< Return to Video

Дефиниције и безбедност (16 min)

  • 0:00 - 0:04
    Прошле недеље, проучили смо теорију бројева која нам је потребна за шифровање јавним кључем.
  • 0:04 - 0:07
    Ове недеље ћемо да применимо ово знање, и да саградимо
  • 0:07 - 0:11
    неколико безбедних шема за шифровање јавним кључем. Али најпре ћемо да дефинишемо шта је
  • 0:11 - 0:15
    шифровање јавним кључем, и шта значи да ово шифровање буде безбедно.
  • 0:15 - 0:18
    Да вас подсетим да у шеми са шифровањем јавним кључем,
  • 0:18 - 0:22
    постоји алгоритам шифровања који је обично означен са Е, и постоји алгоритам дешифровања
  • 0:22 - 0:25
    који означавамо са D. Међутим, овде алгоритам шифровања узима
  • 0:25 - 0:29
    јавни кључ, али алгоритам дешифровања узима тајни кључ. Овај пар се зове пар кључева.
  • 0:29 - 0:34
    Јавни кључ се користи за шифровање, а тајни за
  • 0:34 - 0:39
    дешифровање порука. У овом случају порука m је шифрована
  • 0:39 - 0:44
    јавним кључем, а излаз је шифрат с. И слично томе,
  • 0:44 - 0:49
    шифрат се потхрањује алгоритму дешифровања, и, користећи тајни кључ,
  • 0:49 - 0:54
    излаз из алгоритма дешифровања је изворна порука m. Шифровање јавним кључем
  • 0:54 - 0:58
    има пуно примена. Прошле недеље смо видели класичну примену
  • 0:58 - 1:02
    а то је успостављане сесије, наиме, размена кључева, и за сада посматрамо размену кључева
  • 1:02 - 1:07
    која је безбедна само од прислушкивања. Ако се сећате како овај протокол ради,
  • 1:07 - 1:11
    Алиса би произвела пар јавни кључ - тајни кључ,
  • 1:11 - 1:16
    послала би јавни кључ Бобу, Боб би произвео случајно х,
  • 1:16 - 1:20
    које ће да служи као њихова заједничка тајна, а затим би послао шифровано х Алиси,
  • 1:20 - 1:25
    шифровано њеним јавним кључем. Алиса може да дешифрује, поврати х, и сада обоје
  • 1:25 - 1:30
    имају заједнички кључ х који могу да користе да безбедно комуницирају међусобно.
  • 1:30 - 1:34
    Нападач може да види само јавни кључ,
  • 1:34 - 1:39
    х шифровано под јавним кључем, на основу којег не би требало да може да дође до
  • 1:39 - 1:44
    било каквих података о х. Дефинисаћемо тачније шта то значи
  • 1:44 - 1:49
    не бити у стању да сазнате било шта о х. Шифровање јавним кључем има
  • 1:49 - 1:53
    у ствари много других примена. На пример, јако је корисно код
  • 1:53 - 1:57
    неинтерактивних апликација. Рецимо сетите се система е-поште.
  • 1:57 - 2:02
    Овде Боб жели да пошаље писмо Алиси, и када га пошаље, писмо прелази од
  • 2:02 - 2:07
    једног предајника писама до другог, све док коначно не стигне до Алисе, када га она
  • 2:07 - 2:11
    дешифрује. Систем е-поште је развијен за неку врсту
  • 2:11 - 2:15
    немеђудејствујућих окружења, где Боб шаље писмо, и Алиса треба да прими то писмо,
  • 2:15 - 2:19
    а да при томе не треба да комуницира са Бобом да би га дешифровала.
  • 2:19 - 2:24
    Дакле у овом случају, због одсуства међудејства, не постоји прилика
  • 2:24 - 2:28
    да се успостави заједнички тајни кључ између Алисе и Боба. У овом случају,
  • 2:28 - 2:32
    Боб би послао писмо шифровано коришћењем Алисиног јавног кључа.
  • 2:32 - 2:37
    Дакле он шаље писмо; било ко на свету може да пошаље шифровано писмо Алиси,
  • 2:37 - 2:41
    коришћењем њеног јавног кључа. Када Алиса прими ово писмо, користи
  • 2:41 - 2:46
    свој тајни кључ да дешифрује шифрат и поврати отворени текст поруке.
  • 2:46 - 2:51
    Наравно мана оваквог система је што Боб треба да некако
  • 2:51 - 2:55
    прибави Алисин јавни кључ. За сада претпостављамо да Боб већ има
  • 2:55 - 2:58
    Алисин јавни кључ, а касније, заправо када будемо говорили
  • 2:58 - 3:02
    о дигиталним потписима, видећемо да ово може да се обави врло делотворно
  • 3:02 - 3:07
    коришћењем управљања јавним кључем, дакле, кажем, на ово ћемо да се вратимо нешто касније.
  • 3:07 - 3:11
    Основна ствар коју овде треба да запамтите је да се шифровање јавним кључем
  • 3:11 - 3:15
    користи за успостављање сесија. Ово је врло често у вебу, када се шифровање јавним кључем
  • 3:15 - 3:19
    користи за успостављање безбедног кључа између веб прегледача и веб сервера.
  • 3:19 - 3:23
    Шифровање јавним кључем је такође јако корисно код неинтерактивних апликација,
  • 3:23 - 3:26
    када било ко на свету, неинтерактивно, треба да пошаље поруку Алиси,
  • 3:26 - 3:31
    може да шифрује поруку користећи Алисин јавни кључ, а Алиса може да је дешифрује
  • 3:31 - 3:36
    и поврати отворени текст. Да вас подсетим мало детаљније
  • 3:36 - 3:40
    шта је систем за шифровање јавним кључем. Састоји се из три алгоритма, G, E и D.
  • 3:40 - 3:44
    G је алгоритам за стварање кључа, који у основи
  • 3:44 - 3:49
    ствара пар кључева, јавни и тајни. Као што је овде записано, G нема
  • 3:49 - 3:53
    улазне вредности, мада у стварности G заправо има једну улазну величину, такозвани
  • 3:53 - 3:57
    безбедоносни параметар, којим се одређује дужина кључева који се стварају
  • 3:57 - 4:02
    алгоритмом. Затим постоје алгоритам шифровања, као и обично, он узима
  • 4:02 - 4:06
    јавни кључ и поруку и производи шифрат, и алгоритам дешифровања,
  • 4:06 - 4:11
    који узима одговарајући тајни кључ и шифрат и производи одговарајућу поруку.
  • 4:11 - 4:15
    Као и обично, због усаглашености, кажемо да ако шифрујемо поруку под
  • 4:15 - 4:19
    датим јавним кључем, и затим је дешифрујемо одговарајућим тајним кључем, треба да
  • 4:19 - 4:24
    добијемо изворну поруку. А сада, шта значи за шифовање јавним кључем да буде безбедно?
  • 4:24 - 4:28
    Почећу од дефинисања безбедности од прислушкивања.
  • 4:28 - 4:32
    А затим ћемо да дефинишемо безбедност од активних напада.
  • 4:32 - 4:36
    Безбедност од прислушкивања дефинишемо јако слично као у симетричном случају,
  • 4:36 - 4:41
    који смо видели прошле недеље, зато ћу ово да пређем јако брзо.
  • 4:41 - 4:45
    Нападачка игра се дефинише на следећи начин. Дефинисали смо ова два огледа,
  • 4:45 - 4:49
    оглед нула и један. У оба огледа, изазивач
  • 4:49 - 4:53
    ствара пар од јавног и тајног кључа. Он ће да преда јавни кључ
  • 4:53 - 4:57
    нападачу. Нападач ће да избаци две поруке, m0 и m1,
  • 4:57 - 5:02
    исте дужине, и да добије натраг било шифровану m0 или
  • 5:02 - 5:06
    шифовану m1. У огледу 0 он добија шифровану m0, а у огледу 1,
  • 5:06 - 5:11
    шифровану m1. А затим нападач треба да каже
  • 5:11 - 5:15
    коју је добио - да ли је добио шифровану m0 или m1?
  • 5:15 - 5:20
    Дакле то је игра, нападач добија само један шифрат. То се поклапа
  • 5:20 - 5:24
    са нападом прислушкивања, када је нападач једноставно прислушкивао тај шифрат с.
  • 5:24 - 5:29
    А његов циљ је да каже да ли је шифрат с шифровање од m0 или од m1.
  • 5:29 - 5:34
    Није дозвољено никакво петљање у сам шифрат с за сада. Као и обично, кажемо да је
  • 5:34 - 5:38
    шема за шифровање јавним кључем семантички безбедна, ако нападач не може
  • 5:38 - 5:42
    да разликује оглед 0 од огледа 1. Другим речима, не може да каже
  • 5:42 - 5:48
    да ли је добио шифровање од m0 или од m1. Пре него што пређемо
  • 5:48 - 5:52
    на активне нападе, желим да напоменем у каквом су односу дефиниција коју смо
  • 5:52 - 5:56
    управо видели, и дефиниција безбедности од прислушкивања за симетричне шифре.
  • 5:56 - 6:00
    Ако се сећате, када смо говорили о безбедности од прислушкивања за симетричне шифре,
  • 6:00 - 6:05
    разликовали смо случај када је кључ коришћен једном, и случај када је
  • 6:05 - 6:09
    коришћен више пута. У ствари, видели смо да постоји јасна
  • 6:09 - 6:13
    разлика. На пример, једнократна бележница је безбедна ако се кључ користи само једном
  • 6:13 - 6:17
    за шифровање једне поруке, али није безбедна ако се кључ користи за шифровање
  • 6:17 - 6:21
    више порука. Имали смо две различите дефиниције, ако се сећате, имали смо дефиницију
  • 6:21 - 6:25
    за једнократну безбедност, и посебну дефиницију, која је
  • 6:25 - 6:30
    строжа, када је кључ коришћен више пута. Дефиниција коју сам вам показао на претходном
  • 6:30 - 6:34
    слајду је јако слична дефиницији једнократне безбедности
  • 6:34 - 6:38
    симетричних шифара. Заправо се испоставља да, код шифровања јавним кључем,
  • 6:38 - 6:43
    ако је систем безбедан под једнократним кључем, он је безбедан и под вишекратним кључем.
  • 6:43 - 6:48
    Другим речима, не морамо да изричито дамо нападачу могућност да
  • 6:48 - 6:53
    захтева шифровање порука по избору, зато што би он могао да створи
  • 6:53 - 6:58
    та шифровања и сам. Он располаже јавним кључем, и сходно томе може да самостално
  • 6:58 - 7:05
    шифрује коју год поруку жели. Из тога произилази да се сваки пар јавног и тајног кључа
  • 7:05 - 7:09
    у извесном смислу користи за шифровање више порука, зато што је нападач
  • 7:09 - 7:14
    могао да шифрује много, много порука по свом избору
  • 7:14 - 7:19
    коришћењем датог јавног кључа који смо му дали у првом кораку. Последица тога је
  • 7:19 - 7:24
    да је дефиниција једнократне безбедности довољна да подразумева вишекратну безбедност,
  • 7:24 - 7:29
    због чега овај појам називамо нераспознавањем под нападом са произвољним
  • 7:29 - 7:34
    отвореним текстом. Ово је само мања напомена којом објашњавамо зашто нам у поставци за јавно
  • 7:34 - 7:38
    шифровање не треба сложенија дефиниција да обухватимо
  • 7:38 - 7:43
    безбедност од прислушкивања. Сада када смо разумели ову безбедност,
  • 7:43 - 7:47
    погледајмо моћније противнике који могу да почине активне нападе.
  • 7:47 - 7:52
    Конкретно, погледајмо пример е-поште. Овде имамо нашег пријатеља Боба
  • 7:52 - 7:56
    који жели да пошаље писмо својој пријатељици Каролини. Каролина има
  • 7:56 - 8:01
    налог на Г-мејлу. Ово ради тако што се писмо шаље
  • 8:01 - 8:06
    Г-мејл серверу, шифровано. Г-мејл сервер дешифрује писмо, погледа ко је прималац,
  • 8:06 - 8:09
    и затим, ако је прималац Каролина,
  • 8:09 - 8:14
    прослеђује писмо Каролини. Ако је прималац нападач,
  • 8:14 - 8:19
    прослеђује писмо нападачу. Ово личи на прави начин рада Г-мејла,
  • 8:19 - 8:23
    зато што би пошиљалац послао писмо шифровано путем SSL-a Г-мејл серверу,
  • 8:23 - 8:28
    сервер би отклонио SSL и проследио писмо
  • 8:28 - 8:33
    одговарајућем примаоцу. Претпоставимо сада да Боб шифрује писмо коришћењем система
  • 8:33 - 8:38
    који омогућава нападачу да мења шифрат непримећен.
  • 8:38 - 8:42
    На пример, замислимо да је писмо шифровано коришћењем бројача, или нечим сличним.
  • 8:42 - 8:47
    Тада када нападач пресретне писмо, он може да промени примаоца,
  • 8:47 - 8:51
    тако да је прималац сада нападач@gmail.com, а знамо да је код
  • 8:51 - 8:55
    бројача ово врло лако да се уради. Нападач зна да је
  • 8:55 - 9:00
    писмо упућено Каролини, занима га само тело писма.
  • 9:00 - 9:04
    Лако може да промени примаоца писма на нападач@gmail.com, и сада када сервер
  • 9:04 - 9:08
    прими писмо, он га дешифрује, види да је прималац наводно нападач,
  • 9:08 - 9:12
    и прослеђује писмо нападачу. И сада нападач може
  • 9:12 - 9:16
    да прочита тело писма које је било упућено Каролини.
  • 9:16 - 9:21
    Ово је класичан пример активног напада, и приметићете да је нападач овде могао
  • 9:21 - 9:26
    да дешифрује сваки шифрат где је прималац "за: нападач".
  • 9:26 - 9:32
    Дакле сваки шифрат где отворени текст почиње речима "за: нападач".
  • 9:32 - 9:37
    Дакле циљ нам је да развијемо системе са јавним кључем који су безбедни, чак и ако нападач може
  • 9:37 - 9:43
    да мења шифрат и дешифрује извесне шифрате. Још једном желим да нагласим
  • 9:43 - 9:48
    да је овде циљ нападача да добије тело поруке.
  • 9:48 - 9:52
    Нападач већ зна да је писмо намењено Каролини. Све што је морао да уради је
  • 9:52 - 9:57
    да промени примаоца. Овај напад мењањем шифрата подстиче
  • 9:57 - 10:02
    дефинисање безбедности под произвољним шифратом. Ово је у ствари стандард за појам
  • 10:02 - 10:07
    безбедности код шифровања јавним кључем. Да вам објасним како се овде врши напад.
  • 10:07 - 10:12
    Као што сам рекао, циљ нам је да направимо системе који су безбедни под овим врло затвореним
  • 10:12 - 10:16
    појмом шифровања. Дакле имамо шему шифровања (G, E, D). Рецимо
  • 10:16 - 10:20
    да је дефинисана над простором порука и шифрата (М, С), и као и обично
  • 10:20 - 10:24
    дефинисаћемо два огледа, оглед 0 и 1.
  • 10:24 - 10:28
    Дакле b нам говори да ли изазивач имплементира оглед 0 или 1.
  • 10:28 - 10:33
    Изазивач почиње тако што ствара јавни кључ и тајни кључ, а затим даје
  • 10:33 - 10:37
    јавни кључ нападачу. Сада нападач може да каже: "Ево ти гомила
  • 10:37 - 10:42
    шифрата, молим да ми их дешифрујеш." Дакле овде нападач подноси
  • 10:42 - 10:46
    шифрат с1, и добија дешифровање шифрата с1, наиме m1.
  • 10:46 - 10:51
    Може да ово уради опет и опет, дакле подноси шифрат с2, и добија дешифровање
  • 10:51 - 10:56
    а то је m2, шифрат с3, и добија дешифровање m3, и тако даље.
  • 10:56 - 11:00
    Коначно нападач каже: "Завршили смо са фазом упита", и сада
  • 11:00 - 11:04
    подноси две поруке подједнаке дужине, m0 и m1 као и обично,
  • 11:04 - 11:09
    и прима као одговор шифрат с, који је шифровано
  • 11:09 - 11:13
    m0 или m1, у зависности од тога да ли смо у огледу 0 или 1.
  • 11:13 - 11:17
    Сада нападач може да настави да издаје упите у виду
  • 11:17 - 11:21
    шифрата. Дакле може да настави да издаје захтеве за дешифровањем. Дакле он поднесе
  • 11:21 - 11:25
    шифрат, и добије дешифровање шифрата, али наравно
  • 11:25 - 11:30
    мора да постоји ограничење. Када би нападач могао да поднесе произвољни шифрат,
  • 11:30 - 11:34
    наравно да би могао да добије изазов. Само би требало да поднесе
  • 11:34 - 11:39
    шифрат с из изазова као упит који треба да се дешифрује. И биће му речено
  • 11:39 - 11:43
    да ли је у фази изазова добио шифроване m0 или m1.
  • 11:43 - 11:47
    Зато овде стављамо ограничење, које каже да нападач може да поднесе било који
  • 11:47 - 11:51
    шифрат осим шифрата изазова. Дакле нападач
  • 11:51 - 11:55
    може да затражи дешифровање било којег шифрата по свом избору
  • 11:55 - 11:59
    осим шифрата изазова. Али и поред тога што су му дата сва ова дешифровања, и даље
  • 11:59 - 12:03
    не би требало да може да каже да ли му је враћена шифрована m0
  • 12:03 - 12:09
    или m1. Примећујете да је ово јако затворена дефиниција, која
  • 12:09 - 12:14
    даје нападачу већу моћ од оне коју смо видели на претходном слајду. Претходно је
  • 12:14 - 12:19
    нападач могао само да дешифрује поруке у којима је отворени текст почињао речима
  • 12:19 - 12:24
    "за: нападач". Овде, кажемо да нападач може да дешифрује произвољни шифрат,
  • 12:24 - 12:30
    докле год је он различит од шифрата изазова, с. А његов циљ
  • 12:30 - 12:34
    је да каже да ли је шифрат изазова шифровање од m0
  • 12:34 - 12:38
    или од m1. Као и обично, ако то не може, другим речима,
  • 12:38 - 12:42
    ако је његово понашање у огледу 0 исто као и понашање у огледу 1,
  • 12:42 - 12:47
    дакле ако није успео да разликује шифровање од m0 од шифровања од m1,
  • 12:47 - 12:51
    иако је имао сву ову моћ, тада кажемо да је систем безбедан
  • 12:51 - 12:56
    под произвољним шифратима - ССА безбедан. Понекад постоји акроним
  • 12:56 - 13:01
    за ову нераспознатљивост под нападом произвољним шифратима, али ја ћу да
  • 13:01 - 13:06
    кажем само ССА безбедан. Погледајмо сада како ово обухвата пример са е-поштом који смо видели
  • 13:06 - 13:11
    раније. Дакле претпоставимо да је систем шифровања који се користи такав, да имајући
  • 13:11 - 13:15
    само шифру поруке, нападач може да промени примаоца
  • 13:15 - 13:20
    од Алисе на, рецимо, Чарлија. Ево како тада добијамо ССА игру.
  • 13:20 - 13:25
    У првом кораку, нападач наравно добија јавни кључ. А тада нападач
  • 13:25 - 13:30
    издаје две поруке исте дужине, наиме у првој поруци,
  • 13:30 - 13:34
    тело је 0, а у другој 1. Али обе поруке су
  • 13:34 - 13:40
    намењене Алиси. Као одговор, он добија шифрат изазова, с.
  • 13:40 - 13:45
    Дакле сада имамо наш шифрат изазова с. Сада нападач
  • 13:45 - 13:50
    користи своју способност да промени примаоца.
  • 13:50 - 13:55
    Он ће да пошаље шифрат с', где је с' шифрована
  • 13:55 - 14:02
    порука Чарлију, чије је тело управо тело изазова, b. Дакле ако се сећате, b
  • 14:02 - 14:08
    је или 0 или 1. Пошто је отворени текст различит, знамо да
  • 14:08 - 14:12
    и шифрат мора да буде различит. Дакле с' мора да буде различито
  • 14:12 - 14:17
    од шифрата изазова, с. Дакле с' мора да буде различито од с.
  • 14:17 - 14:22
    Сходно томе, изазивач мора да дешифрује, у складу да дефиницијом ССА игре.
  • 14:22 - 14:26
    Изазивач мора да дешифрује било који шифрат који није једнак шифрату
  • 14:26 - 14:31
    изазова. Дакле изазивач дешифрује, и даје нападачу m'.
  • 14:31 - 14:35
    Дакле дао је нападачу b, и сада нападач може да избаци вредност за b
  • 14:35 - 14:40
    и да добије игру, са предношћу 1. Дакле предност код овакве шеме је 1.
  • 14:40 - 14:45
    Дакле једноставно зато што је нападач могао да промени у шифрату изазова
  • 14:45 - 14:50
    примаоца поруке, то му омогућава да победи у ССА игри са
  • 14:50 - 14:55
    предношћу 1. Дакле као што сам рекао, безбедност под произвољним шифратом је управо
  • 14:55 - 14:59
    исправни појам безбедности за системе шифровања јавним кључем.
  • 14:59 - 15:04
    Ово је јако занимљив појам - иако нападач има могућност
  • 15:04 - 15:08
    да дешифрује све што пожели, осим шифрата изазова, он и даље не може
  • 15:08 - 15:12
    да открије који је шифрат изазова. Дакле циљ до краја ове целине
  • 15:12 - 15:16
    и заправо и следеће јесте да изградимо ССА безбедне системе.
  • 15:16 - 15:20
    Изузетно је што је ово могуће, и показаћу вам
  • 15:20 - 15:24
    како се то ради. У ствари ССА системи које ћемо да изградимо
  • 15:24 - 15:29
    су управо они који се користе у стварности. Сваки пут када је неки систем покушао да примени
  • 15:29 - 15:33
    неки механизам шифровања јавним кључем који није био ССА безбедан, неко би пронашао
  • 15:33 - 15:37
    напад и успевао да га разбије. Видећемо неке примере ових напада
  • 15:37 - 15:39
    у неколико следећих одељака.
Title:
Дефиниције и безбедност (16 min)
Video Language:
English
marija.jelenkovic edited Serbian subtitles for Definitions and security (16 min)
marija.jelenkovic added a translation

Serbian subtitles

Revisions