Oracle External Procedure Calls Теодор Иванов Софтуерен инженер.
Владимир Иванов - Криптография и шифрование
Transcript of Владимир Иванов - Криптография и шифрование
![Page 2: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/2.jpg)
Примитивы и протоколыПримитивы
• Симметричный шифр (потоковый, блочный)
• Аутентификация сообщений, MAC
• Асимметричный шифр
Протоколы
• Выработка ключа
• Отправка и прием сообщения
![Page 3: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/3.jpg)
Принцип Керкхоффса
Надежность системы шифрования не должна основываться на ее секретности. Система должна оставаться надежной даже если все ее компоненты, кроме ключа стали известны атакующему.
![Page 4: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/4.jpg)
Симметричные шифры
![Page 5: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/5.jpg)
ЕT C
K C = E (k, T)
![Page 6: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/6.jpg)
Е TC
K T = D (k, C)
![Page 7: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/7.jpg)
• Для любого фиксированного ключа k, Ek является биективной функцией на множестве блоков.
• Типичный размер блока – 128 бит
• Типичные размеры ключей – 128 или 256 бит
![Page 8: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/8.jpg)
Шифры подстановки
• Табличная подстановка
• Шифр Цезаря
• Методика взлома
• Полиалфавитные шифры подстановки
• Шифр Виженера
![Page 9: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/9.jpg)
Шифры перестановки
• Простая перестановка
• Перестановка по ключу
![Page 10: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/10.jpg)
Поточные шифры
![Page 11: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/11.jpg)
RC4
![Page 12: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/12.jpg)
Salsa20
![Page 13: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/13.jpg)
Блочный шифр – шифр, оперирующий блоками данных фиксированной длины. Определяется функциями шифрования и расшифрования.
![Page 14: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/14.jpg)
• Для любого фиксированного ключа k, Ek является биективной функцией на множестве блоков.
• Типичный размер блока – 128 бит
• Типичные размеры ключей – 128 или 256 бит
![Page 15: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/15.jpg)
Сеть Фейстеля
![Page 16: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/16.jpg)
DES
• Сеть Фейстеля
• Размер блока - 64 бита
• Размер ключа - 56 бит
• 16 раундов
![Page 17: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/17.jpg)
Как зашифровать несколько блоков?
![Page 18: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/18.jpg)
ECB
![Page 19: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/19.jpg)
ECB
![Page 20: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/20.jpg)
CBC
![Page 21: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/21.jpg)
Birthday paradox
• Какова вероятность совпадения двух блоков выхода шифра?
• Как это влияет на безопасность криптосистемы?
• Сколько времени это займет на реальном трафике?
![Page 22: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/22.jpg)
CFB
![Page 23: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/23.jpg)
OFB
![Page 24: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/24.jpg)
CTR
![Page 25: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/25.jpg)
Как зашифровать сообщение короче одного блока?
![Page 26: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/26.jpg)
Аутентификация
![Page 27: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/27.jpg)
Подделка содержимого
Сообщение
Гамма
Шифротекст
+
=
![Page 28: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/28.jpg)
Сообщение
Гамма
Шифротекст
+
=
1
1
0
Подделка содержимого
![Page 29: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/29.jpg)
• MAC: Message Authentication Code• Принимает на вход сообщение и ключ
• Генерирует код аутентификации или тег
MAC
![Page 30: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/30.jpg)
MAC
![Page 31: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/31.jpg)
Современные хеши
• MD4/MD5
• Семейство SHA
• ГОСТ 34.11-94
• Конкурс на стандартный алгоритм
![Page 32: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/32.jpg)
Применение хеш-функций
• Выработка ключевой информации
• PBKDF2
• Хранение паролей
• Unix crypt(), Windows SAM
![Page 33: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/33.jpg)
Асимметричные шифры
![Page 34: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/34.jpg)
Однонаправленные функции
• Однонаправленными (односторонними) функциями называются такие, которые легко вычислить, но сложно обратить
• Подтверждает, что P≠NP
• Функции с лазейкой (trapdoor functions)
![Page 35: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/35.jpg)
Diffie-Hellman
![Page 36: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/36.jpg)
Diffie-Hellman
![Page 37: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/37.jpg)
RSA
![Page 38: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/38.jpg)
RSA
1.Выбираются два случайных простых числа p и q заданного размера (например, 1024 бита каждое).
2.Вычисляется их произведение n = pq, которое называется модулем.
3.Вычисляется значение функции Эйлера от числа n φ(n)=(q-1)(p-1)
![Page 39: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/39.jpg)
RSA4. Выбирается целое число e (), взаимно простое со значением
функции φ(n).
• Число e называется открытой экспонентой (англ. public exponent)
• Время, необходимое для шифрования с использованием быстрого возведения в степень, пропорционально числу единичных бит в e.
• Слишком малые значения e, например 3, потенциально могут ослабить безопасность схемы RSA.
![Page 40: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/40.jpg)
RSA• Вычисляется число d, мультипликативно
обратное к числу e по модулю , то есть число, удовлетворяющее условию de≡1 (mod φ(n)) или de = 1 + k φ(n), где k — некоторое целое число.
• Число d называется секретной экспонентой.
• Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.
![Page 41: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/41.jpg)
RSA
• Пара P = (e,n) публикуется в качестве открытого ключа RSA
• Пара S = (d,n) играет роль секретного ключа RSA
![Page 42: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/42.jpg)
RSA, шифрование
Шифрование на открытом ключе (e, n)
• Открытый текст M• Шифротекст C = Me mod n
Расшифровка за закрытом ключе (d, n)
• Cd mod n = (Me mod n)d mod n = Med mod n = M mod n
![Page 43: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/43.jpg)
Сравнительная стойкость
![Page 44: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/44.jpg)
Необходимо сравнить стойкость ключей
• Строгой оценки нет• Оценивается вычислительная сложность известных атак
• на процессорах общего назначения и на специальном оборудовании
• Критерий Ленстры
![Page 45: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/45.jpg)
Сравнительная стойкость
СимметричноеАссиметричное
ХешОптимистично Пессимистично2008 74 1062 1077 1472009 74 1087 1114 1482010 75 1112 1152 1502011 76 1138 1190 1512012 76 1164 1229 152
http://keylength.com
![Page 46: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/46.jpg)
Собираем всё вместе
![Page 47: Владимир Иванов - Криптография и шифрование](https://reader034.fdocuments.us/reader034/viewer/2022052201/55833069d8b42a752f8b4992/html5/thumbnails/47.jpg)
Вопросы?Владимир Иванов [email protected]