[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,,повиненні використовуватися в нових системах.\NАле тим не менше, вони як і раніше досить 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 і залишимо його. Так RC4 Dialogue: 0,0:00:27.82,0:00:32.70,Default,,0000,0000,0000,,з перемінним розміром насіння, тут я просто навів приклад, де він буде приймати 128 біт Dialogue: 0,0:00:32.70,0:00:36.98,Default,,0000,0000,0000,,як розмір зерна, який потім будуть використовуватися в якості ключа для потокового шифру. 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,,У ці дні, наприклад, Google використовує RC4 в своєму HTTPS. Він також використовується у WEP як ми Dialogue: 0,0:01:11.89,0:01:15.69,Default,,0000,0000,0000,,обговорювалися в останньому сегменті, але, звичайно, у WEP, воно неправильно і Dialogue: 0,0:01:15.69,0:01:18.86,Default,,0000,0000,0000,,це повністю небезпечно, так, як воно всередині WEP. Так, протягом багатьох років, 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,,фактично не використовували RC4, а використовувати більш сучасні псевдо-генератор випадкових чисел, як ми будемо 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,,зовсім випадковим, ймовірність того, що другий байт буває рівним нулю Dialogue: 0,0:01:49.78,0:01:54.74,Default,,0000,0000,0000,,б рівно через 256. Є 256 можливих байтів, ймовірність того, що Dialogue: 0,0:01:54.74,0:01:59.65,Default,,0000,0000,0000,,це нуль повинна бути одна на 256. Буває так, що для RC4 ймовірності Dialogue: 0,0:01:59.65,0:02:04.49,Default,,0000,0000,0000,,насправді два більше 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,,XOR з нулем в два рази ймовірність того, що він повинен. Dialogue: 0,0:02:14.58,0:02:19.44,Default,,0000,0000,0000,,Так, дві за 256, замість одного за 256.\NІ до речі, я повинен сказати, що немає 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,,швидше за все, отримаєте шістнадцять біт, два байти нуль, нуль, більше ніж потрібно. Знову ж таки якщо RC4 Dialogue: 0,0:02:58.97,0:03:03.95,Default,,0000,0000,0000,,був цілком випадковий, ймовірність побачити нуль, нуль буде точно 1/256 Dialogue: 0,0:03:03.95,0:03:08.56,Default,,0000,0000,0000,,в квадраті. Виявляється RC4 є трохи упередженим та зсуву складає 1/256 у кубі. Його 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,,RC4. Але тим не менш, це щось, що може використовувати для прогнозування генератора 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,,з дійсно випадковою послідовностю. Основне те, що нуль, нуль частіше з'являється Dialogue: 0,0:03:28.10,0:03:32.41,Default,,0000,0000,0000,,чим потрібно є у distinguisher. А потім в останньому сегменті ми говорили про 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,,вам зламаний потоковий шифр, який використовується для шифрування DVD фільмів.Коли ви купуєте DVD 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,,зашифрованих дисків DVD. Так що 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,,позиції називаються крани. І тоді ці крани каналу в на XOR а потім в 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,,і перший біт, то стає результатом цього XOR. Так що ви можете бачити, що 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,,стає XOR попередніх бітів. Так що насіння для цього LFSR Dialogue: 0,0:05:18.54,0:05:23.46,Default,,0000,0000,0000,,в основному, це початковий стан на LFSR. 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,,Я сказав, DVD шифрування використовує два LFSRs.\NЯ покажу вам, як це працює просто на Dialogue: 0,0:05:33.36,0:05:38.06,Default,,0000,0000,0000,,друге. GSM шифрування, вони алгоритмів, що називається A51 і A52. І що Dialogue: 0,0:05:38.06,0:05:43.46,Default,,0000,0000,0000,,три LFSRs. Bluetooth використовує шифрування — алгоритм під назвою Електронна нуля. Вони всі Dialogue: 0,0:05:43.46,0:05:48.53,Default,,0000,0000,0000,,потік шифри, і що використання чотирьох LFSRs. виявляється всі ці порушуються погано, 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,,мені показати вам, як працює атака. Отже, давайте описати, як CSS насправді працює. Так, Dialogue: 0,0:06:05.46,0:06:11.07,Default,,0000,0000,0000,,ключ для CSS п'ять байт, а саме 40 біт, п'ять разів восьмий – 40 біт. На Dialogue: 0,0:06:11.07,0:06:15.59,Default,,0000,0000,0000,,причина, вони хочуть обмежити себе до лише 40 біт є був DVD шифрування 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,,crpyto алгоритми, де ключ був лише 40 біт. Таким чином були дизайнерів CSS Dialogue: 0,0:06:25.09,0:06:30.21,Default,,0000,0000,0000,,вже обмежена до дуже, дуже короткий ключів.\NПросто 40 біт ключі. Отже, їх дизайн працює Dialogue: 0,0:06:30.21,0:06:35.40,Default,,0000,0000,0000,,наступним чином. В основному, CSS використовує два LFSR. Один, LFSR 17-біт. Іншими словами, Dialogue: 0,0:06:35.40,0:06:40.81,Default,,0000,0000,0000,,Реєстр містить 17 біти. А інші є 25-розрядні LFSR, Dialogue: 0,0:06:40.81,0:06:46.65,Default,,0000,0000,0000,,Це трохи більше часу, 25-розрядні LFSR. І як ці LFSRs seeded 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,,ключ. І це початковий стан на LFSR. Dialogue: 0,0:07:02.95,0:07:08.26,Default,,0000,0000,0000,,А потім другий LFSR в основному intitialized так само. Dialogue: 0,0:07:08.26,0:07:14.01,Default,,0000,0000,0000,,Один об'єднані останніх трьох байт ключ. Ось Dialogue: 0,0:07:14.01,0:07:19.89,Default,,0000,0000,0000,,завантажені в початковий стан на LFSR.\NВи можете побачити, що перші два байти Dialogue: 0,0:07:19.89,0:07:25.41,Default,,0000,0000,0000,,шістнадцять біти, плюс провідних один, що сімнадцять біти в цілому, у той час як другий Dialogue: 0,0:07:25.41,0:07:31.22,Default,,0000,0000,0000,,LFSR є 24 біта, плюс один, який є 25 біти.\NІ ви помітите, що ми використовували всі п'ять біти Dialogue: 0,0:07:31.22,0:07:36.88,Default,,0000,0000,0000,,ключ. Так, то ці LFSRs в основному балотуватися на вісім циклів, так що вони генерувати 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,,Ми ігнорування на нести, але до виконання в основному додається як нуль або один до на 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,,байт фільм, який під час шифрування.\NДобре, так що це дуже простий потік 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,,Дешеві устаткування і вона буде шифрувати фільми.\NТак виходить, що це дуже просто розірвати Dialogue: 0,0:08:35.83,0:08:41.22,Default,,0000,0000,0000,,у час приблизно двох до в сімнадцять років. Тепер, дозвольте мені показати вам, як. 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,,зашифровані фільму, які потрібно розшифрувати.\NТак що давайте говорити, що це всі зашифровані так Dialogue: 0,0:08:50.65,0:08:55.28,Default,,0000,0000,0000,,вас не знаю, що там всередині тут.\NОднак, так буває, що тільки тому, що Dialogue: 0,0:08:55.28,0:08:59.97,Default,,0000,0000,0000,,DVD шифрування використовує файли MPEG, так буває, якщо ви знаєте про префікс у Dialogue: 0,0:08:59.97,0:09:04.25,Default,,0000,0000,0000,,звичайний текст, давайте просто сказати, може бути це двадцять байт. Ну, ми знаємо, що якщо ви Dialogue: 0,0:09:04.25,0:09:08.59,Default,,0000,0000,0000,,XOR ці дві речі разом, так само в інших словах, ви робите XOR тут, 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,,перші двадцять байт вихідний CSS, вихід цього PRG. Гаразд, так що тепер Dialogue: 0,0:09:18.47,0:09:23.99,Default,,0000,0000,0000,,Ось що ми будемо робити. Так, у нас є перші двадцять байт виводу. Зараз Dialogue: 0,0:09:23.99,0:09:31.40,Default,,0000,0000,0000,,Ми виконайте такі дії. Ми спробуємо всі двох до сімнадцять можливі значення першого Dialogue: 0,0:09:31.40,0:09:37.09,Default,,0000,0000,0000,,LFSR. Добре? Таким чином, два сімнадцять можливих значень. Так що для кожного значення, так і для Dialogue: 0,0:09:37.09,0:09:42.62,Default,,0000,0000,0000,,кожен з цих двох до сімнадцять початкові значення у LFSR, ми збираємося працювати на Dialogue: 0,0:09:42.62,0:09:47.95,Default,,0000,0000,0000,,LFSR для двадцяти байт, добре? Так що ми будемо генерувати двадцять байт виходи з цієї Dialogue: 0,0:09:47.95,0:09:53.28,Default,,0000,0000,0000,,Перший LFSR, припускаючи, — для кожної з двох сімнадцять можливі параметри. Dialogue: 0,0:09:53.28,0:09:58.62,Default,,0000,0000,0000,,Тепер пам'ятаю, ми маємо повний вихідний CSS системи. Так що ми можемо зробити це ми Dialogue: 0,0:09:58.62,0:10:03.81,Default,,0000,0000,0000,,можна прийняти цей висновок, який ми маємо. Вилучення його з двадцяти укусів і що ми Dialogue: 0,0:10:03.81,0:10:08.93,Default,,0000,0000,0000,,отримав від першого LFSR і якщо насправді наші припущення для початкового стану перший Dialogue: 0,0:10:08.93,0:10:14.04,Default,,0000,0000,0000,,LFSR є правильним, що ми повинні отримати є перші двадцять байтове вихід на Dialogue: 0,0:10:14.04,0:10:19.22,Default,,0000,0000,0000,,Другий LFSR. Право? Тому що, за визначенням, що вихід з 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-розрядні LFSR, чи ні. Якщо це Dialogue: 0,0:10:29.76,0:10:33.56,Default,,0000,0000,0000,,не, то ми знаємо, що наші припущення за 17-розрядні LFSR Dialogue: 0,0:10:33.56,0:10:37.42,Default,,0000,0000,0000,,неправильні і потім ми перейдемо до наступного вгадати для LFSR 17-біт і Dialogue: 0,0:10:37.42,0:10:41.90,Default,,0000,0000,0000,,наступний думаю, і так далі і так далі.\NПоки врешті-решт ми потрапили права початковий Dialogue: 0,0:10:41.90,0:10:46.94,Default,,0000,0000,0000,,держави за 17-трохи LFSR і тоді ми будемо реально отримати, ми побачимо, що Dialogue: 0,0:10:46.94,0:10:51.97,Default,,0000,0000,0000,,20 байтів, що ми отримуємо, як кандидат вихід для 25-розрядні LFSR Dialogue: 0,0:10:51.97,0:10:56.94,Default,,0000,0000,0000,,справді можливий вихід для 25-розрядні LFSR. І потім, не тільки буде ми повинні Dialogue: 0,0:10:56.94,0:11:02.16,Default,,0000,0000,0000,,дізнався правильну початковий стан для LFSR 17-біт, ми повинні також Dialogue: 0,0:11:02.16,0:11:07.52,Default,,0000,0000,0000,,дізнався правильну початкового стану 25-розрядні LFSR. І тоді ми можемо передбачити, що Dialogue: 0,0:11:07.52,0:11:12.80,Default,,0000,0000,0000,,залишаючись виходи, CSS і, звичайно, використовуючи, що, ми можемо дешифрувати залишок 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,,псевдовипадкових генератори приходять від те, що називається eStream проекту. Це є Dialogue: 0,0:11:49.37,0:11:55.56,Default,,0000,0000,0000,,проект, що уклали в 2008 році, і вони право в основному п'ять різних потоку 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,,потік шифрів, як звичайно, вони мають насіння.\NАле крім цього них, що і в 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,,вони приймають два входи, насіння і в даний час.\NМи побачимо, що в даний час використовується для 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. Тепер, коли я кажу nonce, що я маю на увазі — це значення, що з 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,,повторення тих пір, як ключ це те ж саме.\NІ тому, звичайно, якщо у вас є цей PRG 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,,PRG приймає як введення ключа і в даний час. І є власність в даний час Dialogue: 0,0:12:49.96,0:12:56.35,Default,,0000,0000,0000,,що пара, k r кома, так ключових кома nonce, що ніколи не — ніколи не повторюється. Він має 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,,використовується один раз. Я скажу, що вони унікальні. Добре, так що ця nonce роду милий трюк що 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,,приклад з eStream, що я хочу, щоб показати вам, називається сальса двадцять. Це є 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,,реалізацій. Це навіть цікавий.\NВи розумієте, що деякі потік шифри Dialogue: 0,0:13:33.38,0:13:38.76,Default,,0000,0000,0000,,розроблений для програмного забезпечення, як RC4.\NВсе це робить покликана зробити 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, за допомогою LFSR, які особливо покликаний зробити устаткування 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. це функція h бере три входи.\NВ основному ключ. Ну, насіння k Dialogue: 0,0:14:35.65,0:14:40.50,Default,,0000,0000,0000,,nonce r а потім лічильник, який збільшує від кроку до кроку. Так само... Dialogue: 0,0:14:40.50,0:14:45.26,Default,,0000,0000,0000,,від нуля до один, два, три, чотири як тривалих як [нечутний] ми, щоб бути. Добре? Тому в основному, Dialogue: 0,0:14:45.26,0:14:49.96,Default,,0000,0000,0000,,на оцінці цього h на цьому k r, але з використанням цього incrementing лічильник, ми можемо отримати на 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,,H працює. Тепер дозвольте мені зробити це тут для вас.\NЯк це працює, виглядає наступним чином. Ну, ми 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,,Існує Тао нуль, ці чотири байт, це чотири байт константа, так специфікації для Dialogue: 0,0:15:15.55,0:15:20.61,Default,,0000,0000,0000,,Сальса в основному надає значення для Тао нуль. Потім ми покласти k, у яких є Dialogue: 0,0:15:20.61,0:15:25.47,Default,,0000,0000,0000,,шістнадцять байт. Потім ми покласти іншу константа. Знову ж таки це чотири байт. І 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 байт. Потім ми ставимо індексу. Це лічильник нуль, Dialogue: 0,0:15:37.44,0:15:43.06,Default,,0000,0000,0000,,один, два, три, чотири, яка є ще вісім байт. Потім ми покласти іншу константа Dialogue: 0,0:15:43.06,0:15:49.06,Default,,0000,0000,0000,,Тау два, яка є ще чотирьох байтів.\NПотім ми покласти ключ знову, це ще одна Dialogue: 0,0:15:49.06,0:15:54.71,Default,,0000,0000,0000,,шістнадцять байт. І потім, нарешті ми третій постійною, Тау три, яка є Dialogue: 0,0:15:54.71,0:15:59.95,Default,,0000,0000,0000,,інший чотирьох байтів. Добре, так як я вже сказав, якщо ви підсумувати дані, ви бачите, що ви отримаєте 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,,І це функція, що один до одного, так що це співставляє 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,,invertable функції. Так дано вводу можна отримати на виході і з огляду на 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,,для реалізації в устаткування і b-x-86, це дуже легко реалізувати, тому що Dialogue: 0,0:16:39.55,0:16:44.20,Default,,0000,0000,0000,,x86 має цей SSE2 інструкція встановити, який підтримує всі операції потрібно робити Dialogue: 0,0:16:44.20,0:16:48.62,Default,,0000,0000,0000,,для цієї функції. Це дуже, дуже швидко.\NВ результаті, сальса має дуже швидкий потік 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,,він робить це в десять разів. Добре, так що все це тут, сказати повторюється в десять разів, так Dialogue: 0,0:17:05.32,0:17:17.96,Default,,0000,0000,0000,,в основному застосовуються h десять разів. А то сам по собі, це насправді не досить випадковий. Dialogue: 0,0:17:17.96,0:17:22.14,Default,,0000,0000,0000,,Це не буде дивитися випадкові, тому що, як ми вже казали, H є повністю invertable. Так, зважаючи 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 байт, ви робите слово за словом доповнення чотирьох байтів в на 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,,пояснили, це цілий будівництво тут є функція великих h. І тоді вам оцінити Dialogue: 0,0:18:01.76,0:18:06.01,Default,,0000,0000,0000,,Великий h на збільшує лічильник я з нуля, один, два, три року. І що 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,,в основному, це не signifigant зазнає нападу на це. Це має безпеки що з Dialogue: 0,0:18:15.32,0:18:20.37,Default,,0000,0000,0000,,дуже близько двох до 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,,треба сказати, проект eStream насправді має п'ять потік шифри як 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,,2.2 Гігагерц, ви знаєте, x86 типа.\NІ ви можете бачити, що 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,,устаткування. Він тільки робить байтів операцій.\NІ так багато даремно циклів, Dialogue: 0,0:18:57.48,0:19:01.18,Default,,0000,0000,0000,,не використовується. Але E-потік кандидатів, сальса та інші Dialogue: 0,0:19:01.18,0:19:05.20,Default,,0000,0000,0000,,кандидат називається Sosemanuk. Я повинен сказати, що це eStream фіналістів. Ці Dialogue: 0,0:19:05.20,0:19:09.59,Default,,0000,0000,0000,,власне потік шифрів, які затверджені eStream проекту. Ви можете бачити, що Dialogue: 0,0:19:09.59,0:19:13.71,Default,,0000,0000,0000,,вони досягли значних ставки.\NЦе 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,,використовуються, включаючи нападів на ці потік шифрів.\NВи бачили, сучасний ефір шифри Dialogue: 0,0:19:26.66,0:19:30.48,Default,,0000,0000,0000,,схожі з цього nonce. І ви побачите цифри продуктивності для цих 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,,eStream фіналістів. Зокрема, ви могли б використовувати щось подібне до сальси.