Владимир Иванов - Криптография и шифрование

Preview:

Citation preview

КриптографияСамое краткое введение в предмет

Владимир Иванов ivlad@yandex-team.ru

Примитивы и протоколыПримитивы

• Симметричный шифр (потоковый, блочный)

• Аутентификация сообщений, MAC

• Асимметричный шифр

Протоколы

• Выработка ключа

• Отправка и прием сообщения

Принцип Керкхоффса

Надежность системы шифрования не должна основываться на ее секретности. Система должна оставаться надежной даже если все ее компоненты, кроме ключа стали известны атакующему.

Симметричные шифры

ЕT C

K C = E (k, T)

Е TC

K T = D (k, C)

• Для любого фиксированного ключа k, Ek является биективной функцией на множестве блоков.

• Типичный размер блока – 128 бит

• Типичные размеры ключей – 128 или 256 бит

Шифры подстановки

• Табличная подстановка

• Шифр Цезаря

• Методика взлома

• Полиалфавитные шифры подстановки

• Шифр Виженера

Шифры перестановки

• Простая перестановка

• Перестановка по ключу

Поточные шифры

RC4

Salsa20

Блочный шифр – шифр, оперирующий блоками данных фиксированной длины. Определяется функциями шифрования и расшифрования.

• Для любого фиксированного ключа k, Ek является биективной функцией на множестве блоков.

• Типичный размер блока – 128 бит

• Типичные размеры ключей – 128 или 256 бит

Сеть Фейстеля

DES

• Сеть Фейстеля

• Размер блока - 64 бита

• Размер ключа - 56 бит

• 16 раундов

Как зашифровать несколько блоков?

ECB

ECB

CBC

Birthday paradox

• Какова вероятность совпадения двух блоков выхода шифра?

• Как это влияет на безопасность криптосистемы?

• Сколько времени это займет на реальном трафике?

CFB

OFB

CTR

Как зашифровать сообщение короче одного блока?

Аутентификация

Подделка содержимого

Сообщение

Гамма

Шифротекст

+

=

Сообщение

Гамма

Шифротекст

+

=

1

1

0

Подделка содержимого

• MAC: Message Authentication Code• Принимает на вход сообщение и ключ

• Генерирует код аутентификации или тег

MAC

MAC

Современные хеши

• MD4/MD5

• Семейство SHA

• ГОСТ 34.11-94

• Конкурс на стандартный алгоритм

Применение хеш-функций

• Выработка ключевой информации

• PBKDF2

• Хранение паролей

• Unix crypt(), Windows SAM

Асимметричные шифры

Однонаправленные функции

• Однонаправленными (односторонними) функциями называются такие, которые легко вычислить, но сложно обратить

• Подтверждает, что P≠NP

• Функции с лазейкой (trapdoor functions)

Diffie-Hellman

Diffie-Hellman

RSA

RSA

1.Выбираются два случайных простых числа p и q заданного размера (например, 1024 бита каждое).

2.Вычисляется их произведение n = pq, которое называется модулем.

3.Вычисляется значение функции Эйлера от числа n φ(n)=(q-1)(p-1)

RSA4. Выбирается целое число e (), взаимно простое со значением

функции φ(n).

• Число e называется открытой экспонентой (англ. public exponent)

• Время, необходимое для шифрования с использованием быстрого возведения в степень, пропорционально числу единичных бит в e.

• Слишком малые значения e, например 3, потенциально могут ослабить безопасность схемы RSA.

RSA• Вычисляется число d, мультипликативно

обратное к числу e по модулю , то есть число, удовлетворяющее условию de≡1 (mod φ(n)) или de = 1 + k φ(n), где k — некоторое целое число.

• Число d называется секретной экспонентой.

• Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.

RSA

• Пара P = (e,n) публикуется в качестве открытого ключа RSA

• Пара S = (d,n) играет роль секретного ключа RSA

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

Сравнительная стойкость

Необходимо сравнить стойкость ключей

• Строгой оценки нет• Оценивается вычислительная сложность известных атак

• на процессорах общего назначения и на специальном оборудовании

• Критерий Ленстры

Сравнительная стойкость

СимметричноеАссиметричное

ХешОптимистично Пессимистично2008 74 1062 1077 1472009 74 1087 1114 1482010 75 1112 1152 1502011 76 1138 1190 1512012 76 1164 1229 152

http://keylength.com

Собираем всё вместе

Вопросы?Владимир Иванов ivlad@yandex-team.com

Recommended