[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:04.01,Default,,0000,0000,0000,,У овом одељку, желим да вам дам неколико примера шифара тока, које се користе у пракси. Dialogue: 0,0:00:04.01,0:00:07.07,Default,,0000,0000,0000,,Почећу од два стара примера, који не би Dialogue: 0,0:00:07.07,0:00:11.02,Default,,0000,0000,0000,,требало да се користе у новим системима. Међутим, и даље су доста заступљени, Dialogue: 0,0:00:11.02,0:00:14.16,Default,,0000,0000,0000,,тако да само желим да напоменем њихова имена, тако да би вам били познати ови концепти. Dialogue: 0,0:00:14.16,0:00:19.09,Default,,0000,0000,0000,,Прва шифра тока о којој желим да вам говорим је RC4, која је развијена Dialogue: 0,0:00:19.09,0:00:23.43,Default,,0000,0000,0000,,1987. Желим само да вам дам њен уопштени опис, Dialogue: 0,0:00:23.43,0:00:27.82,Default,,0000,0000,0000,,а онда ћемо да говоримо о њеним слабостима. RC4 има као улаз Dialogue: 0,0:00:27.82,0:00:32.70,Default,,0000,0000,0000,,неку вредност променљиве дужине - семе; овде ћемо као пример да узмемо Dialogue: 0,0:00:32.70,0:00:36.98,Default,,0000,0000,0000,,128 битова за семе, које се затим користи као кључ за шифру тока. Dialogue: 0,0:00:36.98,0:00:41.74,Default,,0000,0000,0000,,Прво што уради јесте да прошири 128-битни тајни кључ на 2048 битова, Dialogue: 0,0:00:41.74,0:00:46.38,Default,,0000,0000,0000,,који се користе као унутрашње стање генератора. Након што се уради Dialogue: 0,0:00:46.38,0:00:51.20,Default,,0000,0000,0000,,ово проширење, извршава се врло једноставна петља, где сваки пролаз Dialogue: 0,0:00:51.20,0:00:55.90,Default,,0000,0000,0000,,кроз петљу враћа као излаз један бајт. Тако да, у суштини, генератор може да се извршава Dialogue: 0,0:00:55.90,0:01:00.65,Default,,0000,0000,0000,,колико год пута желите, и сваки пролаз даје један бајт. RC4 је заправо врло заступљен. Dialogue: 0,0:01:00.65,0:01:05.20,Default,,0000,0000,0000,,Користи се уобичајено у HTTPS-у. Dialogue: 0,0:01:05.20,0:01:11.89,Default,,0000,0000,0000,,Гугл га на пример користи у свом HTTPS-у. Користи се и у WEP-у који Dialogue: 0,0:01:11.89,0:01:15.69,Default,,0000,0000,0000,,смо разматрали у претходном одељку, али ту се користи неправилно Dialogue: 0,0:01:15.69,0:01:18.86,Default,,0000,0000,0000,,тако да није нимало безбедан. Током година, Dialogue: 0,0:01:18.86,0:01:23.89,Default,,0000,0000,0000,,пронађене су неке слабости у RC4, тако да се препоручује да се у новим пројектима Dialogue: 0,0:01:23.89,0:01:28.79,Default,,0000,0000,0000,,не користи, већ да се користи савремени псеудо-случајни генератор који ћемо да Dialogue: 0,0:01:28.79,0:01:34.06,Default,,0000,0000,0000,,разматрамо при крају овог одељка. Споменућу само две његове слабости. Dialogue: 0,0:01:34.06,0:01:39.56,Default,,0000,0000,0000,,Прва, која је у ствари мало чудна, ако погледате други бајт Dialogue: 0,0:01:39.56,0:01:44.63,Default,,0000,0000,0000,,излаза RC4, испоставља се да је други бајт делимично пристрасан. Када би RC4 био потпуно Dialogue: 0,0:01:44.63,0:01:49.78,Default,,0000,0000,0000,,случајан, вероватноћа да други бајт буте 0 Dialogue: 0,0:01:49.78,0:01:54.74,Default,,0000,0000,0000,,била би тачно 1 / 256. Постоји 256 могућих бајтова, тако да вероватноћа Dialogue: 0,0:01:54.74,0:01:59.65,Default,,0000,0000,0000,,да буде 0 треба да буде 1 / 256. Испоставља се да је за RC4 ова вероватноћа Dialogue: 0,0:01:59.65,0:02:04.49,Default,,0000,0000,0000,,у ствари 2 / 256, што значи да ако користите RC4 да шифрујете Dialogue: 0,0:02:04.49,0:02:09.57,Default,,0000,0000,0000,,поруку, постоји извесна вероватноћа да се други бајт уопште не шифрује. Другим речима, Dialogue: 0,0:02:09.57,0:02:14.58,Default,,0000,0000,0000,,биће ХОR-ован са 0 са два пута већом вероватноћом него што треба да буде. Dialogue: 0,0:02:14.58,0:02:19.44,Default,,0000,0000,0000,,Значи 2 / 256 уместо 1 / 256. Узгред треба да кажем да не постоји Dialogue: 0,0:02:19.44,0:02:22.85,Default,,0000,0000,0000,,ништа посебно везано за други бајт. Испоставља се да су први и трећи бајт Dialogue: 0,0:02:22.85,0:02:27.82,Default,,0000,0000,0000,,такође пристрасни. Тако да постоји препорука, да ако се користи RC4, Dialogue: 0,0:02:27.82,0:02:32.80,Default,,0000,0000,0000,,треба да се занемати првих 256 бајтова излаза, и да се Dialogue: 0,0:02:32.80,0:02:37.25,Default,,0000,0000,0000,,излаз генератора користи почев од бајта 257. Првих пар бајтова Dialogue: 0,0:02:37.25,0:02:41.24,Default,,0000,0000,0000,,је пристрасно, тако да их само занемарите. Dialogue: 0,0:02:41.24,0:02:48.48,Default,,0000,0000,0000,,Други напад који је откривен, јесте да ако погледате врло дугачак излаз из RC4, Dialogue: 0,0:02:48.48,0:02:53.86,Default,,0000,0000,0000,,постоји повећана вероватноћа да се добије низ 00. Другим речима, Dialogue: 0,0:02:53.86,0:02:58.97,Default,,0000,0000,0000,,постоји мало већа вероватноћа да се добије ових 16 битова (2 бајта) 0, 0, него што би требало. Dialogue: 0,0:02:58.97,0:03:03.95,Default,,0000,0000,0000,,Да је RC4 сасвим насумичан, вероватноћа да се појави 00 била би тачно (1 / 256) на 2. Dialogue: 0,0:03:03.95,0:03:08.56,Default,,0000,0000,0000,,Испоставља се да је RC4 делимично пристрасан, тако да вероватноћа износи (1 / 256) на 3. Dialogue: 0,0:03:08.56,0:03:13.72,Default,,0000,0000,0000,,Ова пристрасност се појављује тек након излаза дужине неколико гигабајта података. Dialogue: 0,0:03:13.72,0:03:18.63,Default,,0000,0000,0000,,Ипак, овако нешто може да се користи како би се предвидео генератор Dialogue: 0,0:03:18.63,0:03:23.12,Default,,0000,0000,0000,,и свакако може да послужи да би се разликовао излаз генератора Dialogue: 0,0:03:23.12,0:03:28.10,Default,,0000,0000,0000,,од истински случајног низа. Та чињеница да се 00 појављује чешће него што би требало Dialogue: 0,0:03:28.10,0:03:32.41,Default,,0000,0000,0000,,је показатељ разлике. У последњем одељку већ смо говорили Dialogue: 0,0:03:32.41,0:03:36.31,Default,,0000,0000,0000,,о нападима који користе везу између кључева, који су били уперени на WEP, а који показују Dialogue: 0,0:03:36.31,0:03:41.08,Default,,0000,0000,0000,,да ако се користе блиско повезани кључеви, тада је могуће Dialogue: 0,0:03:41.08,0:03:45.73,Default,,0000,0000,0000,,да се дође до полазног кључа. Дакле то су слабости које су уочене у RC4, тако да Dialogue: 0,0:03:45.73,0:03:50.22,Default,,0000,0000,0000,,се препоручује да нови системи не користе RC4, већ да уместо тога користе Dialogue: 0,0:03:50.22,0:03:54.42,Default,,0000,0000,0000,,савремене псеудо-насумичне генераторе. Други пример који желим да вам дам је Dialogue: 0,0:03:54.42,0:03:59.13,Default,,0000,0000,0000,,врло слаба шифра тока која се користи код шифровања двд филмова. Када купите Dialogue: 0,0:03:59.13,0:04:03.50,Default,,0000,0000,0000,,двд у радњи, сам филм се шифрује коришћењем шифре тока која се назива Dialogue: 0,0:04:03.50,0:04:07.93,Default,,0000,0000,0000,,систем за кодирање садржаја, CSS. CSS се показао као врло слаба шифра тока, Dialogue: 0,0:04:07.93,0:04:12.52,Default,,0000,0000,0000,,која лако може да се пробије, и ја желим да вам покажем како ради алгоритам напада. Dialogue: 0,0:04:12.52,0:04:16.89,Default,,0000,0000,0000,,Одрадићемо овај пример да бисте видели како изгледа алгоритам напада, Dialogue: 0,0:04:16.89,0:04:21.44,Default,,0000,0000,0000,,али постоје многи системи који користе управо овај напад да декриптују Dialogue: 0,0:04:21.44,0:04:25.75,Default,,0000,0000,0000,,шифроване двд-јеве. CSS шифра тока заснива се на нечему што воле пројектанти хардвера. Dialogue: 0,0:04:25.75,0:04:30.29,Default,,0000,0000,0000,,Развијена је да буде хардверска шифра тока, Dialogue: 0,0:04:30.29,0:04:34.49,Default,,0000,0000,0000,,која се лако хардверски примењује, а заснива се на механизму регистра са Dialogue: 0,0:04:34.49,0:04:38.75,Default,,0000,0000,0000,,линијским повратним померањем. Ово је регистар Dialogue: 0,0:04:38.75,0:04:43.80,Default,,0000,0000,0000,,који се састоји од једнобитних поља. Dialogue: 0,0:04:43.80,0:04:49.05,Default,,0000,0000,0000,,Постоје нека поља, не сва, која називамо доточним пољима, Dialogue: 0,0:04:49.05,0:04:54.13,Default,,0000,0000,0000,,а њихове вредности се доводе у ХОR, Dialogue: 0,0:04:54.13,0:04:59.05,Default,,0000,0000,0000,,а затим се на сваки циклус клока, регистар помера на десно. Последњи бит отпада Dialogue: 0,0:04:59.05,0:05:04.34,Default,,0000,0000,0000,,а нови први бит постаје излаз из овог ХОR-а. Dialogue: 0,0:05:04.34,0:05:08.70,Default,,0000,0000,0000,,Видите да је ово једноставан механизам за примену, и заузима врло мало транзистора. Dialogue: 0,0:05:08.70,0:05:13.62,Default,,0000,0000,0000,,Само померај удесно, последњи бит отпада, а први бит постаје Dialogue: 0,0:05:13.62,0:05:18.54,Default,,0000,0000,0000,,ХОR претходних битова. Дакле почетна вредност - семе - код овог регистра је Dialogue: 0,0:05:18.54,0:05:23.46,Default,,0000,0000,0000,,заправо његово почетно стање. Dialogue: 0,0:05:23.65,0:05:28.54,Default,,0000,0000,0000,,На њему се заснива више шифара тока. Ево и неких примера. Dialogue: 0,0:05:28.54,0:05:33.36,Default,,0000,0000,0000,,Рекли смо да двд шифровање користи два оваква регистра. То ћу да вам покажем за који тренутак. Dialogue: 0,0:05:33.36,0:05:38.06,Default,,0000,0000,0000,,GSM шифровање садржи два алгоритма, А51 и А52, Dialogue: 0,0:05:38.06,0:05:43.46,Default,,0000,0000,0000,,који користе 3 регистра померања. Bluetooth шифровање садржи алгоритам Е0, такође Dialogue: 0,0:05:43.46,0:05:48.53,Default,,0000,0000,0000,,шифру тока, са 4 регистра. Испоставља се да су сви они доста слаби, Dialogue: 0,0:05:48.53,0:05:53.24,Default,,0000,0000,0000,,и да заиста не би требало да се ослања на њих ради шифровања саобраћаја, Dialogue: 0,0:05:53.24,0:05:56.70,Default,,0000,0000,0000,,али су сви уграђени у хардвер, тако да је сада мало теже да се измени то што хардвер ради. Dialogue: 0,0:05:56.70,0:06:01.05,Default,,0000,0000,0000,,Најједноставнији од њих, CSS, може јако згодно да се нападне, Dialogue: 0,0:06:01.05,0:06:05.46,Default,,0000,0000,0000,,тако да хајде да вам покажем како се изводи овај напад. Dialogue: 0,0:06:05.46,0:06:11.07,Default,,0000,0000,0000,,Кључ за CSS је 5-бајтни, тј. 40-битни, 5 х 8 је 40 битова. Dialogue: 0,0:06:11.07,0:06:15.59,Default,,0000,0000,0000,,Ограничили су се на 40 битова зато што је двд шифровање развијено Dialogue: 0,0:06:15.59,0:06:19.94,Default,,0000,0000,0000,,у време када је прописима извоза из САД био дозвољен само извоз Dialogue: 0,0:06:19.94,0:06:25.09,Default,,0000,0000,0000,,алгоритама за шифровање где је кључ само 40 битова. Тако да су пројектанти CSS-а били Dialogue: 0,0:06:25.09,0:06:30.21,Default,,0000,0000,0000,,ограничени на јако, јако кратке кључеве. Њихов поступак је следећи: Dialogue: 0,0:06:30.21,0:06:35.40,Default,,0000,0000,0000,,користе се два регистра померања, један 17-битни, Dialogue: 0,0:06:35.40,0:06:40.81,Default,,0000,0000,0000,,и други 25-битни, Dialogue: 0,0:06:40.81,0:06:46.65,Default,,0000,0000,0000,,нешто дужи. Њима се почетна вредност задаје Dialogue: 0,0:06:46.65,0:06:51.87,Default,,0000,0000,0000,,на следећи начин. Дакле кључ изгледа овако. Dialogue: 0,0:06:51.87,0:06:57.67,Default,,0000,0000,0000,,Почне се са јединицом, која се придодаје на прва два бајта кључа. Dialogue: 0,0:06:57.67,0:07:02.95,Default,,0000,0000,0000,,А то је почетно стање регистра померања. Dialogue: 0,0:07:02.95,0:07:08.26,Default,,0000,0000,0000,,И другом регистру померања се почетно стање задаје на сличан начин. Dialogue: 0,0:07:08.26,0:07:14.01,Default,,0000,0000,0000,,Јединица придружена на последња 3 бајта кључа, Dialogue: 0,0:07:14.01,0:07:19.89,Default,,0000,0000,0000,,што се спушта као почетно стање регистра. Можете да видите да су прва два бајта Dialogue: 0,0:07:19.89,0:07:25.41,Default,,0000,0000,0000,,- 16 битова, плус почетни, то је укупно 17 битова, а за други регистар померања Dialogue: 0,0:07:25.41,0:07:31.22,Default,,0000,0000,0000,,24 бита плус један - то је 25 битова. Примећујете да смо искористили свих 5 битова кључа. Dialogue: 0,0:07:31.22,0:07:36.88,Default,,0000,0000,0000,,Затим се ови регистри померања покрећу у осам циклуса, тако да се њима добија Dialogue: 0,0:07:36.88,0:07:42.33,Default,,0000,0000,0000,,по 8 излазних битова. Излази пролазе кроз овај сабирач који извршава Dialogue: 0,0:07:42.33,0:07:48.20,Default,,0000,0000,0000,,сабирање по модулу 256. Дакле ово је блок сабирања по модулу 256. Постоји још једна Dialogue: 0,0:07:48.20,0:07:54.32,Default,,0000,0000,0000,,техничка ствар која се извршава - додаје се пренесени бит Dialogue: 0,0:07:54.32,0:07:59.72,Default,,0000,0000,0000,,из претходног блока. Али то није тако важно. Dialogue: 0,0:07:59.72,0:08:04.76,Default,,0000,0000,0000,,Дакле примећујете да у сваком блоку радимо сабирање по модулу 256 Dialogue: 0,0:08:04.76,0:08:09.98,Default,,0000,0000,0000,,да бисмо занемарили бит преноса, мада се он у ствари додаје као 0 или 1 у збир Dialogue: 0,0:08:09.98,0:08:15.15,Default,,0000,0000,0000,,у наредном блоку. Тако да се у сваком пролазу добија по један бајт. Dialogue: 0,0:08:15.15,0:08:20.41,Default,,0000,0000,0000,,Затим се овај бајт наравно користи, у XOR-у са одговарајућим Dialogue: 0,0:08:20.41,0:08:25.17,Default,,0000,0000,0000,,бајтом филма који се шифрује. Тако да је ово врло једноставна шифра тока, Dialogue: 0,0:08:25.17,0:08:29.99,Default,,0000,0000,0000,,потребно је врло мало хардвера за имплементирање. Извршава се брзо, чак и на Dialogue: 0,0:08:29.99,0:08:35.83,Default,,0000,0000,0000,,јефтином хардверу, и шифрује филмове. Шифра се лако пробија Dialogue: 0,0:08:35.83,0:08:41.22,Default,,0000,0000,0000,,у времену оквирно 2 на 17. Да вам покажем како. Dialogue: 0,0:08:41.22,0:08:45.73,Default,,0000,0000,0000,,Претпоставимо да пресретнете филм, овде имамо рецимо Dialogue: 0,0:08:45.73,0:08:50.65,Default,,0000,0000,0000,,шифрован филм који желите да дешифрујете, и будући да је шифрован Dialogue: 0,0:08:50.65,0:08:55.28,Default,,0000,0000,0000,,немате никакву представу о томе шта је овде. Међутим, само захваљујући томе Dialogue: 0,0:08:55.28,0:08:59.97,Default,,0000,0000,0000,,што двд шифровање користи MPEG датотеке, ви знате префикс Dialogue: 0,0:08:59.97,0:09:04.25,Default,,0000,0000,0000,,отвореног текста, на пример можда је ово 20 бајтова. Дакле знамо да Dialogue: 0,0:09:04.25,0:09:08.59,Default,,0000,0000,0000,,ако извршите ХОR ових двеју ствари, Dialogue: 0,0:09:08.59,0:09:13.52,Default,,0000,0000,0000,,добијате почетни одељак од PRG-а. Дакле добићете Dialogue: 0,0:09:13.52,0:09:18.47,Default,,0000,0000,0000,,првих 20 бајтова излаза из CSS-a. Dialogue: 0,0:09:18.47,0:09:23.99,Default,,0000,0000,0000,,Дакле ево шта ћемо да урадимо. Имамо првих 20 бајтова излаза. Dialogue: 0,0:09:23.99,0:09:31.40,Default,,0000,0000,0000,,Урадимо сада следеће. Покушамо свих 2 на 17 могућих вредности за први Dialogue: 0,0:09:31.40,0:09:37.09,Default,,0000,0000,0000,,регистар померања. Дакле 2 на 17 могућих вредности. За сваку вредност, Dialogue: 0,0:09:37.09,0:09:42.62,Default,,0000,0000,0000,,за сваку од ових 2 на 17 почетних вредности регистра, одрадићемо пролазак Dialogue: 0,0:09:42.62,0:09:47.95,Default,,0000,0000,0000,,кроз регистар за 20 бајтова. Дакле добијамо 20 бајтова од овог Dialogue: 0,0:09:47.95,0:09:53.28,Default,,0000,0000,0000,,првог регистра, за сваки од 2 на 17 могућих почетних вредности. Dialogue: 0,0:09:53.28,0:09:58.62,Default,,0000,0000,0000,,Сетите се да имамо пун излаз из CSS-a. Тако да можемо Dialogue: 0,0:09:58.62,0:10:03.81,Default,,0000,0000,0000,,да узмемо овај излаз, и да га одузмемо од 20 бајтова Dialogue: 0,0:10:03.81,0:10:08.93,Default,,0000,0000,0000,,које смо добили из првог регистра, тако да ако је наш погодак за почетно стање првог регистра Dialogue: 0,0:10:08.93,0:10:14.04,Default,,0000,0000,0000,,исправан, оно што добијемо је првих 20 бајтова излаза Dialogue: 0,0:10:14.04,0:10:19.22,Default,,0000,0000,0000,,из другог регистра. Зато што је то оно што је по дефиницији излаз из CSS система. Dialogue: 0,0:10:19.22,0:10:24.50,Default,,0000,0000,0000,,Испоставља се да је посматрајући 20-бајтни низ, врло лако Dialogue: 0,0:10:24.50,0:10:29.76,Default,,0000,0000,0000,,да се закључи да ли је овај 20-бајтни низ потекао од 25-битног регистра померања или не. Dialogue: 0,0:10:29.76,0:10:33.56,Default,,0000,0000,0000,,Ако није, онда знамо да је наша претпоставка за 17-битни регистар померања била Dialogue: 0,0:10:33.56,0:10:37.42,Default,,0000,0000,0000,,погрешна, и тада прелазимо на следећи покушај за регистар, Dialogue: 0,0:10:37.42,0:10:41.90,Default,,0000,0000,0000,,па на следећи, итд. Све док коначно не погодимо право почетно стање Dialogue: 0,0:10:41.90,0:10:46.94,Default,,0000,0000,0000,,17-битног регистра померања, а тада заправо добијамо Dialogue: 0,0:10:46.94,0:10:51.97,Default,,0000,0000,0000,,да 20 бајтова које смо узели као кандидате за излаз 25-битног регистра Dialogue: 0,0:10:51.97,0:10:56.94,Default,,0000,0000,0000,,јесу заиста могући излаз из 25-битног регистра. А тада, не само да смо Dialogue: 0,0:10:56.94,0:11:02.16,Default,,0000,0000,0000,,открили право почетно стање за 17-битни регистар, већ смо открили Dialogue: 0,0:11:02.16,0:11:07.52,Default,,0000,0000,0000,,и право почетно стање за 25-битни регистар. А тада можемо да предвидимо Dialogue: 0,0:11:07.52,0:11:12.80,Default,,0000,0000,0000,,преостале излазе из CSS-a, и наравно, користећи ово, можемо да дешифрујемо остатак филма. Dialogue: 0,0:11:12.80,0:11:17.56,Default,,0000,0000,0000,,Можемо да откријемо преостали отворени текст. Dialogue: 0,0:11:17.56,0:11:22.34,Default,,0000,0000,0000,,О овоме смо и раније говорили. Испричао сам ово мало брже, али надам се Dialogue: 0,0:11:22.34,0:11:27.33,Default,,0000,0000,0000,,да је било јасно. Такође ћемо да урадимо вежбу за домаћи над овом врстом шифара тока Dialogue: 0,0:11:27.33,0:11:31.44,Default,,0000,0000,0000,,тако да ћете да стекнете представу како раде ови алгоритми напада. Dialogue: 0,0:11:31.44,0:11:36.02,Default,,0000,0000,0000,,И требало би још да напоменем да сада постоје многи системи са отвореним софтвером Dialogue: 0,0:11:36.02,0:11:41.45,Default,,0000,0000,0000,,који заправо користе овај начин рада да декриптују податке шифроване CSS-ом. Dialogue: 0,0:11:41.45,0:11:45.89,Default,,0000,0000,0000,,Сада када смо видели две слабе шифре, пређимо на боље примере; заправо Dialogue: 0,0:11:45.89,0:11:49.37,Default,,0000,0000,0000,,бољи псеудо-насумични генератори потичу од такозваног еСтрим пројекта. Ово је пројекат Dialogue: 0,0:11:49.37,0:11:55.56,Default,,0000,0000,0000,,који је завршен у 2008-ој, и њиме је квалификовано 5 различитих шифара тока, Dialogue: 0,0:11:55.56,0:12:00.21,Default,,0000,0000,0000,,али ћу овде да вам представим само једну. Пре свега, параметри за Dialogue: 0,0:12:00.21,0:12:04.03,Default,,0000,0000,0000,,ове шифре тока се мало разликују од оног на шта смо до сада навикли. Dialogue: 0,0:12:04.03,0:12:08.34,Default,,0000,0000,0000,,Дакле ове шифре тока као и обично имају семе. Али поред тога, имају и такозвану. Dialogue: 0,0:12:08.34,0:12:12.82,Default,,0000,0000,0000,,привремену вредност, видећемо како се она користи за који тренутак. Dialogue: 0,0:12:12.82,0:12:17.49,Default,,0000,0000,0000,,Дакле имамо два улаза: семе и привремену вредност, коју ћемо ускоро да објаснимо. Dialogue: 0,0:12:17.49,0:12:21.27,Default,,0000,0000,0000,,Наравно добија се јако велики излаз, n је Dialogue: 0,0:12:21.27,0:12:26.60,Default,,0000,0000,0000,,много, много веће него s. Под привременом вредношћу подразумевам вредност која Dialogue: 0,0:12:26.60,0:12:31.22,Default,,0000,0000,0000,,неће бити поновљена докле год је кључ исти. Ускоро ћу то мало темељније да Dialogue: 0,0:12:31.22,0:12:35.40,Default,,0000,0000,0000,,објасним. За сада, само је посматрајте као јединствену вредност која се не Dialogue: 0,0:12:35.40,0:12:40.53,Default,,0000,0000,0000,,понавља све док је вредност кључа иста. Једном када имате псеудо-насумични генератор (ПНГ), Dialogue: 0,0:12:40.53,0:12:45.36,Default,,0000,0000,0000,,са којим шифрујете, добијате шифру тока као и раније, осим што сада, као што видите, Dialogue: 0,0:12:45.36,0:12:49.96,Default,,0000,0000,0000,,ПНГ узима као улазне вредности и кључ и привремену вредност. Уз својство Dialogue: 0,0:12:49.96,0:12:56.35,Default,,0000,0000,0000,,да се пар (k, r), дакле (кључ, привремена вредност), никад, никад не понавља. Dialogue: 0,0:12:56.35,0:13:03.10,Default,,0000,0000,0000,,Никад се не користи више него једном. Суштина је у томе, да кључ може да се поново употреби, Dialogue: 0,0:13:03.10,0:13:09.71,Default,,0000,0000,0000,,зато што привремена вредност чини пар јединственим, зато што се k и r заједно Dialogue: 0,0:13:09.71,0:13:16.14,Default,,0000,0000,0000,,користе само једном. Пар је јединствен. Дакле привремена вредност је згодна досетка Dialogue: 0,0:13:16.14,0:13:21.54,Default,,0000,0000,0000,,која нас поштеђује тога да прелазимо на нови кључ сваки пут. Конкретан пример Dialogue: 0,0:13:21.54,0:13:26.00,Default,,0000,0000,0000,,из еСтрима који желим да вам покажем је Салса 20. Dialogue: 0,0:13:26.00,0:13:30.29,Default,,0000,0000,0000,,То је шифра тока која је развијена како за софтверску тако и за хардверску Dialogue: 0,0:13:30.29,0:13:33.38,Default,,0000,0000,0000,,примену. Ово је занимљиво. Разумели сте да су неке шифре тока Dialogue: 0,0:13:33.38,0:13:38.76,Default,,0000,0000,0000,,развијене за софтвер, као RC4. Све што се врши њоме је развијено на такав начин Dialogue: 0,0:13:38.76,0:13:42.69,Default,,0000,0000,0000,,да софтверску примену чини брзом, док су неке друге шифре тока развијене Dialogue: 0,0:13:42.69,0:13:48.14,Default,,0000,0000,0000,,за хардвер, на пример CSS, која користи регистар померања нарочито развијен Dialogue: 0,0:13:48.14,0:13:50.96,Default,,0000,0000,0000,,да хардверску примену учини јефтином. Добра ствар код Салсе је Dialogue: 0,0:13:50.96,0:13:55.01,Default,,0000,0000,0000,,што је развијена на такав начин, да осим што је лака за примену у хардверу, њена Dialogue: 0,0:13:55.01,0:13:59.75,Default,,0000,0000,0000,,софтверска примена је такође јако брза. Да вам објасним како Салса ради. Салса Dialogue: 0,0:13:59.75,0:14:05.13,Default,,0000,0000,0000,,узима 128-битне или 256-битне кључеве. Објаснићу вам 128-битну верзију. Dialogue: 0,0:14:05.13,0:14:11.24,Default,,0000,0000,0000,,Ово је семе. Затим се узима и привремена вредност, као и раније, која је Dialogue: 0,0:14:11.24,0:14:15.42,Default,,0000,0000,0000,,у овом случају 64 бита. И ствара се велики излаз. Како ово Dialogue: 0,0:14:15.42,0:14:21.06,Default,,0000,0000,0000,,заправо ради? Сама функција је одређена на следећи начин. За дате Dialogue: 0,0:14:21.06,0:14:26.38,Default,,0000,0000,0000,,вредности кључа и привремене вредности, ствара се јако дугачак, псеудонасумични Dialogue: 0,0:14:26.38,0:14:31.22,Default,,0000,0000,0000,,низ, које год дужине је потребно. А то ћу чини користећи ову функцију коју ћу да означим Dialogue: 0,0:14:31.22,0:14:35.65,Default,,0000,0000,0000,,са H. Функција Н има три улаза. Кључ, тј. семе k, Dialogue: 0,0:14:35.65,0:14:40.50,Default,,0000,0000,0000,,привремену вредност r, и бројач који се повећава из корака у корак. Дакле иде Dialogue: 0,0:14:40.50,0:14:45.26,Default,,0000,0000,0000,,од нуле, до 1, 2, 3, 4, докле год је потребно. Значи, Dialogue: 0,0:14:45.26,0:14:49.96,Default,,0000,0000,0000,,одређујући вредност за Н за ове k, r и растући бројач, добијамо Dialogue: 0,0:14:49.96,0:14:54.88,Default,,0000,0000,0000,,низ који је оне дужине коју хоћемо. Све што имам да урадим јесте да опишем како функција Dialogue: 0,0:14:54.88,0:14:59.46,Default,,0000,0000,0000,,Н ради. Хајде да то и урадимо. Она ради на следећи начин. Dialogue: 0,0:14:59.46,0:15:04.69,Default,,0000,0000,0000,,Почнемо тако што проширимо стања на прилично велику вредност, 64-бајтну, Dialogue: 0,0:15:04.69,0:15:10.16,Default,,0000,0000,0000,,на следећи начин. Поставимо константу на почетак, Dialogue: 0,0:15:10.16,0:15:15.55,Default,,0000,0000,0000,,т0, ово је 4 бајта, 4-бајтна константа, Dialogue: 0,0:15:15.55,0:15:20.61,Default,,0000,0000,0000,,Салса вам задаје вредност за т0. Затим стављамо k које је Dialogue: 0,0:15:20.61,0:15:25.47,Default,,0000,0000,0000,,16 бајта. Затим ставимо још једну константу. Поново, ово је 4 бајта. Dialogue: 0,0:15:25.47,0:15:30.80,Default,,0000,0000,0000,,Као што сам рекао, ова константа има унапред задату вредност. Затим ставимо Dialogue: 0,0:15:30.80,0:15:37.44,Default,,0000,0000,0000,,привремену вредност, која је 8 бајта. Затим ставимо индекс - то је бројач - 0, Dialogue: 0,0:15:37.44,0:15:43.06,Default,,0000,0000,0000,,1, 2, 3, 4, који заузима још 8 бајта. Затим ставимо још једну константу, Dialogue: 0,0:15:43.06,0:15:49.06,Default,,0000,0000,0000,,т2, која заузима још 4 бајта. Затим поново ставимо кључ, ово је додатних Dialogue: 0,0:15:49.06,0:15:54.71,Default,,0000,0000,0000,,16 бајтова. Најзад стављамо и трећу константу, т3, која је Dialogue: 0,0:15:54.71,0:15:59.95,Default,,0000,0000,0000,,4-бајтна. Као што само рекао, сабравши ово имамо укупно 64 Dialogue: 0,0:15:59.95,0:16:05.25,Default,,0000,0000,0000,,бајта. Дакле проширили смо кључ, привремену вредност и бројач до 64 Dialogue: 0,0:16:05.25,0:16:10.89,Default,,0000,0000,0000,,бајта. Значи кључ се јавља два пута. А затим применимо Dialogue: 0,0:16:10.89,0:16:16.32,Default,,0000,0000,0000,,функцију, назваћу је малим словом h. Дакле применимо ову функцију h, Dialogue: 0,0:16:16.32,0:16:21.66,Default,,0000,0000,0000,,а она је 1-на-1, дакле додељује 64-бајтну вредност за 64-бајтни улаз. Dialogue: 0,0:16:21.66,0:16:26.00,Default,,0000,0000,0000,,Она је потпуно иверзибилна. Дакле функција h је Dialogue: 0,0:16:26.00,0:16:30.26,Default,,0000,0000,0000,,иверзибилна функција. То значи да за задати улаз добијамо један излаз, и за задати Dialogue: 0,0:16:30.26,0:16:34.91,Default,,0000,0000,0000,,излаз добијамо улаз. Развијена је нарочито на такав начин да буде, као прво, лака Dialogue: 0,0:16:34.91,0:16:39.55,Default,,0000,0000,0000,,за примену у хардверу, а као друго, на х86 је нарочито лака за примену зато што Dialogue: 0,0:16:39.55,0:16:44.20,Default,,0000,0000,0000,,х86 има SSE2 скуп наредби, који подржава све операције потребне Dialogue: 0,0:16:44.20,0:16:48.62,Default,,0000,0000,0000,,за ову функцију. Она је врло, врло брза. Захваљујући томе, Салса је јако брза Dialogue: 0,0:16:48.62,0:16:52.76,Default,,0000,0000,0000,,шифра тока. Ово се затим извршава поново, и поново, и поново. Дакле врши Dialogue: 0,0:16:52.76,0:16:57.74,Default,,0000,0000,0000,,се ова функција h поново и добије још 64 бајта. И тако даље, Dialogue: 0,0:16:57.74,0:17:05.32,Default,,0000,0000,0000,,ово се одради 10 пута. Дакле све ово овде се понавља 10 пута, Dialogue: 0,0:17:05.32,0:17:17.96,Default,,0000,0000,0000,,дакле применити h 10 пута. Само по себи, ово и није тако насумично. Dialogue: 0,0:17:17.96,0:17:22.14,Default,,0000,0000,0000,,Неће да изгледа насумично зато што, као што сам рекао, H је потпуно иреверзибилна. Dialogue: 0,0:17:22.14,0:17:25.52,Default,,0000,0000,0000,,Имајући коначни излаз, лако је да се обрне h и да се врати Dialogue: 0,0:17:25.52,0:17:31.83,Default,,0000,0000,0000,,до изворног улаза и провери да ли улаз има праву грађу. Зато се изврши још једна Dialogue: 0,0:17:31.83,0:17:36.98,Default,,0000,0000,0000,,ствар, а то је да се изврши XOR над улазом и коначним излазом. У ствари, Dialogue: 0,0:17:36.98,0:17:42.40,Default,,0000,0000,0000,,ово није XOR већ збир. Врши се сабирање реч по Dialogue: 0,0:17:42.40,0:17:47.76,Default,,0000,0000,0000,,реч. Имамо 64 бајта, сабирамо реч по реч, 4 бајта Dialogue: 0,0:17:47.76,0:17:52.98,Default,,0000,0000,0000,,у истом кораку, и коначно добијамо излаз од 64 бајта, и то је то. То је цели Dialogue: 0,0:17:52.98,0:17:57.18,Default,,0000,0000,0000,,псеудо-насумични генератор. Дакле то је цела функција h. Dialogue: 0,0:17:57.18,0:18:01.76,Default,,0000,0000,0000,,Као што сам објаснио, цела ова конструкција овде јесте функција Н. Она се рачуна Dialogue: 0,0:18:01.76,0:18:06.01,Default,,0000,0000,0000,,тако што се бројач i повећава од 0 на 1, 2, 3 итд. Dialogue: 0,0:18:06.01,0:18:10.41,Default,,0000,0000,0000,,То вам даје псеудо-насумични низ који је оне дужине која вам треба. Dialogue: 0,0:18:10.41,0:18:15.32,Default,,0000,0000,0000,,Не постоје значајни напади на ово. Безбедност овог система је Dialogue: 0,0:18:15.32,0:18:20.37,Default,,0000,0000,0000,,јако близу 2 на 128. Видећемо шта то значи нешто касније. Dialogue: 0,0:18:20.37,0:18:25.42,Default,,0000,0000,0000,,То је јако брза шифра тока, и хардверски и софтверски. Колико Dialogue: 0,0:18:25.42,0:18:30.43,Default,,0000,0000,0000,,можемо да видимо, изгледа непредвидиво као што је и захтев за шифру тока. Dialogue: 0,0:18:30.43,0:18:34.80,Default,,0000,0000,0000,,Треба да напоменем да пројекат еСтрим има 5 шифара тока попут Dialogue: 0,0:18:34.80,0:18:39.40,Default,,0000,0000,0000,,ове. Одабрао сам Салсу зато што ми делује најелегантније. Али могу да вам дам Dialogue: 0,0:18:39.40,0:18:44.05,Default,,0000,0000,0000,,неке вредности перформанси. Овде можете да видите вредности перформанси за Dialogue: 0,0:18:44.05,0:18:48.77,Default,,0000,0000,0000,,машину типа х86, на 2.2 гигахерца. И можете да видите да је RC4 заправо најспорији. Dialogue: 0,0:18:48.77,0:18:53.02,Default,,0000,0000,0000,,Зато што он и не користи заправо предности хардвера, Dialogue: 0,0:18:53.02,0:18:57.48,Default,,0000,0000,0000,,јер обавља само бајтне операције. Тако да има много изгубљених циклуса. Dialogue: 0,0:18:57.48,0:19:01.18,Default,,0000,0000,0000,,Али кандидати еСтрима, како Салса тако и овај Dialogue: 0,0:19:01.18,0:19:05.20,Default,,0000,0000,0000,,други кандидат, Сосеманук (треба рећи да су ово еСтрим финалисти, Dialogue: 0,0:19:05.20,0:19:09.59,Default,,0000,0000,0000,,шифре тока које је одобрио еСтрим пројекат), као што видите Dialogue: 0,0:19:09.59,0:19:13.71,Default,,0000,0000,0000,,постигли су значајну стопу. Ово је 643 мегабајта у секунди Dialogue: 0,0:19:13.71,0:19:18.15,Default,,0000,0000,0000,,на овој архитектури, више него довољно за један филм, ово су у ствари прилично упечатљиве Dialogue: 0,0:19:18.15,0:19:22.43,Default,,0000,0000,0000,,стопе. Дакле, сада сте видели примере двеју старих шифара тока које не би требало Dialogue: 0,0:19:22.43,0:19:26.66,Default,,0000,0000,0000,,да се користе, као и нападе на ове шифре. Видели сте како изгледају савремене шифре тока Dialogue: 0,0:19:26.66,0:19:30.48,Default,,0000,0000,0000,,са привременом вредношћу. И видите вредности перформански за ове Dialogue: 0,0:19:30.48,0:19:34.55,Default,,0000,0000,0000,,савремене шифре тока, тако да ако вам буде била потребна шифра тока, можете да користите неку Dialogue: 0,0:19:34.55,0:19:37.99,Default,,0000,0000,0000,,од финалиста еСтрима, на пример Салсу.