Скачать презентацию ПТОГРАФИЯ КРИ М КЛЮЧОМ С ОТКРЫТЫ Вычислительная Скачать презентацию ПТОГРАФИЯ КРИ М КЛЮЧОМ С ОТКРЫТЫ Вычислительная

RSA (Лекция 9).pptx

  • Количество слайдов: 43

ПТОГРАФИЯ КРИ М КЛЮЧОМ С ОТКРЫТЫ ПТОГРАФИЯ КРИ М КЛЮЧОМ С ОТКРЫТЫ

Вычислительная сложность алгоритмов Это функция, определяющая зависимость объёма работы, выполненной алгоритмом, от размера входных Вычислительная сложность алгоритмов Это функция, определяющая зависимость объёма работы, выполненной алгоритмом, от размера входных данных Простран ственная сложность – сложность Временная сложность – объем памяти число компьютера, элементарных необходимой операций, для решения выполняемых в ходе решения задачи Размер входа – число битов числа

О - символика Асимптотическая сложность – поведение сложности алгоритма при увеличении размеров задачи O(f О - символика Асимптотическая сложность – поведение сложности алгоритма при увеличении размеров задачи O(f (n))=g(n), если g(n) «растет» не быстрее, чем f (n) при n → ∞ O(f (n))=g(n), если или С≠∞; С≠ 0

О - символика Для алгоритма со сложностью O (f (n)) при увеличении длины n О - символика Для алгоритма со сложностью O (f (n)) при увеличении длины n входа, время выполнения растет с той же скоростью, что и f (n)

Каждая функция растет быстрее предыдущей 2; n 3; n n log 2 n; n; Каждая функция растет быстрее предыдущей 2; n 3; n n log 2 n; n; C n !; →∞ n 1; log 2 n; n; nlog 2 n;

Асимптотические классы алгоритмов Постоянные алгоритмы со сложностью О(1) Полиномиальные алгоритмы со сложностью О(nm), где Асимптотические классы алгоритмов Постоянные алгоритмы со сложностью О(1) Полиномиальные алгоритмы со сложностью О(nm), где m > 0 Экспоненциальные алгоритмы со сложностью О(C g(n)), где C >0 – const, g(n) – многочлен Суперполиномиальные алг - мы со сложностью О(C g(n)), где многочлен g(n) растет бытрее, чем константа, но медленее линейной функции

Зависимость времени работы алгоритмов с разной временной сложностью от длины входных данных Зависимость времени работы алгоритмов с разной временной сложностью от длины входных данных

Быстродействие компьютера • Измеряется в MIPS’ах 1 MIPS=106 опер/с. • Быстродействие современных компьютеров ограничено Быстродействие компьютера • Измеряется в MIPS’ах 1 MIPS=106 опер/с. • Быстродействие современных компьютеров ограничено пределом 1018 опер. /с, рассчитанном на основе скорости света (300 000 км/с) и минимально возможного расстоянии 10 – 10 м между физическими носителями информации

ROADRUNNER – cамый мощный компьютер в мире (2012 г. ) 1000. 000 опер. / ROADRUNNER – cамый мощный компьютер в мире (2012 г. ) 1000. 000 опер. / с 20 000 двуядерных процессоров 80 терабайт – cистемная память 23 тонны – общий вес IBM США

Как долго компьютер с быстродействием 1 МІPS решает задачи с помощью алгоритмов с разной Как долго компьютер с быстродействием 1 МІPS решает задачи с помощью алгоритмов с разной временной сложностю ? Длина входа n=10 n=20 n=30 n=50 О(n 3) 0, 001 с 0, 027 с 0, 125 с O(2 n) 0, 001 с 1, 05 с 17, 9 мин 35, 7 лет O(3 n) 0, 059 с 58, 1 мин 6, 53 лет 2, 3. 1010 лет O(n!) 3, 63 с 7, 7. 104 лет 8, 4. 1018 лет 9, 6. 1050 лет 1051 =2170 – число атомов планеты 1010 =234 лет – возраст Вселенной

Полиномиальные алгоритмы Вход большой длины РЕШЕНИЕ ЗАДАЧИ Эффективные Экспоненциальные алгоритмы Вход большой длины РЕШЕНИЕ Полиномиальные алгоритмы Вход большой длины РЕШЕНИЕ ЗАДАЧИ Эффективные Экспоненциальные алгоритмы Вход большой длины РЕШЕНИЕ ЗАДАЧИ Практически нереализуемые

Класс сложности задач Это множество всех тех задач, для решения которых существует хотя бы Класс сложности задач Это множество всех тех задач, для решения которых существует хотя бы один алгоритм, сложность которого ≤ O(f (n)), где f (n) - заданная функция В теории сложности выделяют более 400 классов сложности

Задача коммивояжера Факторизация Квадратичные сравнения Дискретное логарифмирование NP- EXPTIME полные Сортировка Р Приведение по Задача коммивояжера Факторизация Квадратичные сравнения Дискретное логарифмирование NP- EXPTIME полные Сортировка Р Приведение по модулю NP Доказательство простоты Основные классы сложности

КЛАСС ЕХРTIME-ЗАДАЧ существуют только экспоненциальные алгоритмы со сложностью О(Сg(n)) Куда относятся алгоритмы полного перебора КЛАСС ЕХРTIME-ЗАДАЧ существуют только экспоненциальные алгоритмы со сложностью О(Сg(n)) Куда относятся алгоритмы полного перебора ключей ? КЛАСС Р-ЗАДАЧ решаются «быстрыми» полиномиальными алгоритмами со сложностью О(nm) КЛАСС NР-ЗАДАЧ Обычно нет полиномиального детерминированного алгоритма Решение «угадывается» или перебираются параллельно все предположения за полиномиальное время

Проблема равенства классов P NP EXPТIME ? NP P = не известно существует ли Проблема равенства классов P NP EXPТIME ? NP P = не известно существует ли NPзадача, не лежащая в P. Если такой задачи нет, то все NP-задачи можно будет решать за полиномиальное время, что дает выгоду в скорости вычислений.

Задача вскрытия криптосистемы должна быть эквивалентна задаче из NP- класса Обосновать стойкость шифра = Задача вскрытия криптосистемы должна быть эквивалентна задаче из NP- класса Обосновать стойкость шифра = доказать отсутствие полино миального алгоритма у задачи, возникающей у криптоаналитика при его вскрытии

Односторонняя функция Легко: P- задача x y=f (x) Трудно: NP- задача «Легко-трудно» с точки Односторонняя функция Легко: P- задача x y=f (x) Трудно: NP- задача «Легко-трудно» с точки зрения теории сложности

Односторонняя функция с секретом Легко: P- задача x Без k трудно : NP- задача Односторонняя функция с секретом Легко: P- задача x Без k трудно : NP- задача y=f (x) С секретом k легко: P- задача

Односторонние функции с секретом в криптографии Умножение Возведение в степень в алгебраич. структуре Задачи Односторонние функции с секретом в криптографии Умножение Возведение в степень в алгебраич. структуре Задачи кодирования Факторизация Дискретное логарифмирование Задачи декодирования

Односторонние функции в криптографии НЕ используют для шифрования Используют для парольной аутентификации пользователей ЭВМ; Односторонние функции в криптографии НЕ используют для шифрования Используют для парольной аутентификации пользователей ЭВМ; получения дайджеста сообщения (хеширование); генерации псевдослучайных последовательностей.

Организация связи с помощью симметричного шифрования • Для сети с n пользователями требуется n(n-1)/2 Организация связи с помощью симметричного шифрования • Для сети с n пользователями требуется n(n-1)/2 секретных ключей • Для n =1000 число ключей 499500 В 2011 г. в Интернете ~2, 1 млрд. пользователей → 2, 2. 1018 ключей

Организация связи с помощью асимметричного шифрования • Для сети с n пользователями требуется n Организация связи с помощью асимметричного шифрования • Для сети с n пользователями требуется n пар ключей • Для n =1000 число необходимо 1000 пар «секретный ключ / открытый ключ»

Мартин Хеллман (Martin Hellman, родился в 1945 г. ) – американский криптограф , доктор Мартин Хеллман (Martin Hellman, родился в 1945 г. ) – американский криптограф , доктор философии (Стэндфорд). Работал в исследовательском центре при ІВМ. Уитфилд Диффи (Bailey Whitfield “White” Diffi, родился в 1932 г. ) – американский криптограф, аспирант Мартина Хеллмана в Стэндфорде. Возглавил работу по защите информации в системах связи Веll-Northern Research. New directions in cryptography/ IEEE Trans. Info. Theory, 1976, v. 22(6), p. 644 -654,

Протокол Диффи – Хеллмана открытого распределения ключей Выбирается циклическая группа G=<g> ga Секретный ключ Протокол Диффи – Хеллмана открытого распределения ключей Выбирается циклическая группа G= ga Секретный ключ а b)a = gab (g gb Секретный ключ b ab= (ga)b g

Протокол открытого распределения ключей Диффи - Хеллмана Общая краска Секретные цвета Публичная передача Секретные Протокол открытого распределения ключей Диффи - Хеллмана Общая краска Секретные цвета Публичная передача Секретные цвета Общий секрет

Асимметричная криптография: история «Пазлы Меркле» , хотя изобретены в RSA 1974 г. 1976 1978 Асимметричная криптография: история «Пазлы Меркле» , хотя изобретены в RSA 1974 г. 1976 1978 Криптосистема Эль-Гамаля 1984 1985 1991 Быстрая криптосистема NTRUE 1993 ЭЦП DSA Протокол открытого распределения ключей Диффи. Хеллмана Эллиптическая криптография 1996 2000 Криптосистема в группе кос.

Гиганты среди нас Гиганты среди нас

Асимметричная криптография: независимое изобретение M. Willi amson C. Cocks J. Ell is В 1999 Асимметричная криптография: независимое изобретение M. Willi amson C. Cocks J. Ell is В 1999 г. Группа по электронной защите средств связи (Великобритания) рассекретила алгоритм первой криптосистемы с открытым ключом, похожий на RSA, изобретенный еще в 1973 г.

RSA: история Колонка «Математические игры» в журнале с описанием алгоритма RSA Популяризатор математики Мартин RSA: история Колонка «Математические игры» в журнале с описанием алгоритма RSA Популяризатор математики Мартин Гарднер За раскрытие шифротекста, полученного на основе RSA-129 По оценкам авторов RSA время взлома 42 квадриллиона лет

RSA: факторизация RSA-129 (1994 г) RSA-129 =11438162575788886766923577997614661201021 8296721242362562561842935706935245733897830597 123563958705058989075147599290026879543541 D. Atkins, M. Graff, A. RSA: факторизация RSA-129 (1994 г) RSA-129 =11438162575788886766923577997614661201021 8296721242362562561842935706935245733897830597 123563958705058989075147599290026879543541 D. Atkins, M. Graff, A. Lenstra, P. Leyland Использовано квадратичное решето для факторизации (600 добровольцев в течение 220 суток, задействовано 1600 компьютеров, координирование через Интернет) The magic words are squeamish ossifrage (волшебные слова – это брезгливый ягнятник)

RSA: генерация ключей Выбрать два больших простых p и q. Найти n= pq числа RSA: генерация ключей Выбрать два больших простых p и q. Найти n= pq числа А Выбрать число е из отрезка (1; (n) ) НОД (e, (n))=1; (n)=(p-1)(q-1) Найти число d из уравнения еd=1(mod (n)) пара n, e p, q, d В А Пользователь отсылает пользователю шифротекст

RSA: шифрование В Открытое сообщение разбивается на блоки М n Уравнение шифрования С=М e(mod RSA: шифрование В Открытое сообщение разбивается на блоки М n Уравнение шифрования С=М e(mod n) Открытый ключ модуль n ; открытая экспонента e В А Пользователь отсылает пользователю шифротекст

RSA: расшифрование А Уравнение расшифрования M=C d (mod n) Закрытая экспонента d В А RSA: расшифрование А Уравнение расшифрования M=C d (mod n) Закрытая экспонента d В А Пользователь отсылает пользователю шифротекст

RSA: корректность работы C d (mod n) =(M e )d (mod n) 1). M RSA: корректность работы C d (mod n) =(M e )d (mod n) 1). M ≡ 0 (mod n) еd ≡ 1 mod (n) ≡ 1 mod(p-1)(q-1) еd =1+k(p-1)(q-1), kє Z M e d (mod p) ≡ M 1+k(p-1)(q-1) (mod p) ≡ ≡M ·(M (p-1) ) k(q-1) (mod p) ≡ ≡ M ·(1) k(q-1) (mod p) ≡ M

RSA: корректность работы 2). M ≡ 0 (mod n) M e d (mod p) RSA: корректность работы 2). M ≡ 0 (mod n) M e d (mod p) ≡ 0 (mod p) ≡ M Для любого М M e d (mod p) ≡ M Аналогично можно показать, что M e d (mod q) ≡ M По китайской теореме об остатках M e d (mod п) ≡ M

RSA: пример Сгенерировать ключи и зашифровать с помощью RSA сообщение СКЛО (алфавит украинский) Решение: RSA: пример Сгенерировать ключи и зашифровать с помощью RSA сообщение СКЛО (алфавит украинский) Решение: СКЛО = 21 14 15 18 = блоки 2114, 1518 p=79; q=43; n=pq=3397; φ(n)=78. 42=3276; e=19; de=1(mod 3276) 19 d=1(mod 3276) d=1207

RSA: пример Шифрование: 211419 =2286(mod 3397) 151819 =960(mod 3397) шифротекст 2286, 960 Расшифрование: 22861207 RSA: пример Шифрование: 211419 =2286(mod 3397) 151819 =960(mod 3397) шифротекст 2286, 960 Расшифрование: 22861207 =2114(mod 3397) 1207 960 =1518(mod 3397) 2114, 1518 = СКЛО

RSA: рекомендации по выбору ключей p и q – не сильно от- личаются, не RSA: рекомендации по выбору ключей p и q – не сильно от- личаются, не близки (100 – 200 знаков) НОД (p-1, q-1) – не большой p = 1(mod r); p = -1(mod s); r = -1(mod t) r, s, t- большие простые р, q – сильно простые |e|>16 бит; при e =216+1 cкорость шифрования – max d > n 0, 292 атака Винера p и q – не числа Ферма и Марсенна

RSA: исследования лаборатории RSA Data Security RSA Симметричный шифр 1024 бит 2048 бит 80 RSA: исследования лаборатории RSA Data Security RSA Симметричный шифр 1024 бит 2048 бит 80 бит или 112 бит

RSA: исследования лаборатории RSA Data Security RSA-768 – для шифрования неценной информации RSA-1024 – RSA: исследования лаборатории RSA Data Security RSA-768 – для шифрования неценной информации RSA-1024 – для шифрования ценной информации RSA-2048 – для шифрования особо ценных данных длина ключа

RSA: скорость шифрования DES скорость шифрования 1000 раз 100 раз скорость RSA шифрования Программная RSA: скорость шифрования DES скорость шифрования 1000 раз 100 раз скорость RSA шифрования Программная реализация Аппаратная реализация

RSA: патент RSA: патент

RSA: использование Шифрование ЭЦП В смарткартах В защищенных мобильных телефонах В протоколах для защищенных RSA: использование Шифрование ЭЦП В смарткартах В защищенных мобильных телефонах В протоколах для защищенных коммуникаций Internet