- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •Isbn 978-5-89838-596-5
- •Редактор издательства т.И. Королева
- •Темплан 2011г., п. 57
- •1. Введение в криптографию 10
- •2. Стойкость криптографических систем 34
- •3. Принципы построения симметричных криптографических алгоритмов 61
- •4. Принципы построения асимметричных криптографических алгоритмов 98
- •5. Криптографические хэш-функции и электронно-цифровая подпись 133
- •6. Организация сетей засекреченной связи 160
- •7.Криптоанализ и перспективные направления в криптографии 183
- •Предисловие
- •1. Введение в криптографию
- •1.1. Краткая история развития криптографических методов.
- •1.2. Основные понятия криптографии
- •1.2.1. Термины и определения
- •1.2.2. Классификация шифров
- •1.2.3. Характер криптографической деятельности
- •Контрольные вопросы
- •2. Стойкость криптографических систем
- •2.1. Модели шифров и открытых текстов
- •2.1.1. Алгебраические модели шифров.
- •2.1.2. Вероятностные модели шифров.
- •2.1.3. Математические модели открытых сообщений.
- •2.2. Криптографическая стойкость шифров
- •2.2.1. Теоретико-информационный подход к оценке криптостойкости шифров
- •2.2.2. Практическая стойкость шифров.
- •2.3. Имитостойкость и помехоустойчивость шифров
- •2.3.1. Имитостойкость шифров. Имитация и подмена сообщения
- •2.3.2. Способы обеспечения имитостойкости
- •2.3.3. Помехостойкость шифров
- •2.3.4. Практические вопросы повышения надежности.
- •Контрольные вопросы
- •3. Принципы построения симметричных криптографических алгоритмов
- •3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
- •3.2. Принципы построения блочных шифров
- •3.2.1. Базовые шифрующие преобразования
- •3.2.2. Сеть Файстеля
- •3.3. Современные блочные криптоалгоритмы
- •3.3.1. Основные параметры блочных криптоалгоритмов.
- •3.3.2. Алгоритм des
- •3.3.3. Блочный шифр tea
- •Var key:tLong2x2;
- •Var y,z,sum:longint; a:byte;
- •Inc(sum,Delta);
- •3.3.4. Международный алгоритм idea
- •3.3.5. Алгоритм aes (Rijndael)
- •InverseSubBytes(s);
- •InverseShiftRows(s);
- •InverseSubBytes(s) End;
- •3.4. Принципы построения поточных шифров
- •3.4.1. Синхронизация поточных шифрсистем
- •3.4.2. Структура поточных шифрсистем
- •3.4.3.Регистры сдвига с обратной связью
- •3.4.4. Алгоритм Берленкемпа-Месси
- •3.4.5. Усложнение линейных рекуррентных последовательностей
- •3.5. Современные поточные криптоалгоритмы
- •3.5.1. Алгоритм Гиффорда
- •3.5.2. Алгоритм a5
- •3.6. Режимы использования шифров
- •Контрольные вопросы
- •4. Принципы построения асимметричных криптографических алгоритмов
- •4.1. Математические основы асимметричной криптографии
- •4.1.1. Свойства операций
- •4.1.2. Функция Эйлера. Поле. Теоремы Эйлера - Лагранжа и Ферма
- •4.1.3. Конечные поля
- •4.1.4. Основные алгоритмы
- •Алгоритм разложения чисел на простые множители.
- •4.1.5. Алгоритмы нахождения нод и мультипликативного обратного по модулю
- •4.1.6. Китайская теорема об остатках
- •4.1.7. Символы Лежандра и Якоби. Извлечение корней
- •4.2. Примеры современных асимметричных шифров
- •4.2.1. Криптосистема rsa
- •4.2.2. Взаимосвязь компонентов rsa
- •Слабые моменты реализации rsa
- •4.2.3. Криптосистема Эль-Гамаля
- •4.2.4. Криптосистема Рабина
- •4.2.5. Рюкзачные криптосистемы
- •4.2.6. Шифрсистема Мак-Элиса
- •Контрольные вопросы
- •5. Криптографические хэш-функции и электронно-цифровая подпись
- •5.1. Криптографические хэш-функции
- •5.1.1. Блочно-итерационные и шаговые функции
- •5.1.2. Ключевые функции хэширования
- •5.1.3 Бесключевые функции хэширования
- •5.1.4. Схемы использования ключевых и бесключевых функций
- •5.2. Электронно-цифровая подпись
- •5.2.1. Задачи и особенности электронно-цифровой подписи
- •5.2.2. Асимметричные алгоритмы цифровой подписи на основе rsa
- •5.2.3. Алгоритм цифровой подписи Фиата – Фейге – Шамира
- •5.2.4. Алгоритм цифровой подписи Эль-Гамаля
- •5.2.5. Алгоритм цифровой подписи Шнорра
- •5.2.6. Алгоритм цифровой подписи Ниберга-Руппеля
- •5.2.7. Алгоритм цифровой подписи dsa
- •5.2.8. Симметричные (одноразовые) цифровые подписи
- •Контрольные вопросы
- •6. Организация сетей засекреченной связи
- •6.1. Протоколы распределения ключей
- •6.1.1. Передача ключей с использованием симметричного шифрования
- •6.1.2. Передача ключей с использованием асимметричного шифрования
- •6.1.3. Открытое распределение ключей
- •6.1.4. Предварительное распределение ключей
- •6.1.5. Схемы разделения секрета
- •6.1.6. Способы установления ключей для конференц-связи
- •6.2. Особенности использования вычислительной техники в криптографии
- •6.2.1. Методы применения шифрования данных в локальных вычислительных сетях
- •6.2.2. Обеспечение секретности данных при долгосрочном хранении.
- •6.2.4. Обеспечение секретности ключей при долгосрочном хранении
- •6.2.5. Защита от атак с использованием побочных каналов
- •7.1.2. Атаки на хэш-функции и коды аутентичности
- •7.1.3. Атаки на асимметричные криптосистемы
- •7.2. Перспективные направления в криптографии
- •7.2.1. Эллиптические кривые
- •7.2.2. Эллиптические кривые над конечными полями
- •7.2.3. Алгоритм цифровой подписи ec-dsa
- •7.2.4. Квантовая криптография
- •Контрольные вопросы
- •Приложение
- •Заключение
- •Список использованной и рекомендуемой литературы
- •Учебное издание
- •Аверченков Владимир Иванович Рытов Михаил Юрьевич Шпичак Сергей Александрович
7.1.3. Атаки на асимметричные криптосистемы
Атаки на криптосистемы, основанные на сложности задачи факторизации.
Очевидное направление криптоанализа систем шифрования и цифровой подписи, основанных на сложности решения задачи факторизации – разработка переспективных методов факторизации целых чисел.
Наиболее известные методы факторизации целых чисел.
Методы факторизации с экспоненциальной сложностью:
Метод пробных делений.
Алгоритм Ферма.
(p - 1) – метод Полларда.
δ-метод Полларда.
Метод Шермана-Лемана.
Алгоритм Ленстры.
Алгоритм Полларда-Штрассена.
(p + 1) – метод Уильямса.
Метод Шэнкса.
Практическая значимость данных алгоритмов, как правило невелика. Наибольшие успехи в решении задачи факторизации достигнуты с помощью субэкспоненциальных методов:
Метод Диксона.
Алгоритм Бриллхарта-Моррисона.
Метод квадратичного решета QS (quadratic sieve) предложен К. Померансом в 1981 году эффективен для чисел n < 10110.
Методы Шнорра-Ленстры и Ленстры-Померанса (активно на практике не использовались).
Обобщенный метод решета числового поля GNFS (General number field sieve) на сегодняшний день лучший по показателям из официально опубликованных методов факторизации предложен в 1990 году.
Алгоритм Ленстры для факторизации с помощью эллиптических кривых (аналогичен (p - 1) – методу Полларда, но применяются вычисления в группе точек эллиптической кривой).
Таблица 14. Рекорды факторизации на примере системы RSA
Число |
Дата |
Сложность, MIPS-лет |
Алгоритм |
RSA-100 |
Апрель 1991 |
7 |
QS |
RSA-110 |
Апрель 1992 |
75 |
QS |
RSA-120 |
Июнь 1993 |
830 |
QS |
RSA-129 |
Апрель 1994 |
5000 |
QS |
Окончание табл. 14
RSA-130 |
Апрель 1996 |
500 |
GNFS |
RSA-140 |
Февраль 1999 |
2000 |
GNFS |
RSA-155 |
Август 1999 |
8000 |
GNFS |
Последнее достижение – факторизация числа RSA-155, потребовавшая:
- использования 160 рабочих станций SGI и Sun (175-400 МГц);
- 8 процессоров SGI Origin 2000 (250 МГц);
- 120 персональных компьютеров Pentium II (300-450 МГц);
- 4 кластеров Digital\Compaq (500 МГц);
- 9 недель для настройки параметров GNFS;
- 5.2 месяца для сбора вспомогательных пар чисел;
- 3.2 Гб оперативной памяти, 224 часа вычислений на Cray C916 для обработки матрицы размером 6699191×6711336 c 417132631 ненулевыми элементами.
Возможные атаки на систему RSA.
Факторизация модуля n = p · q.
Решение сравнения для конкретного y - нахождение корня степени e из y по модулю p. (задача не менее сложная, чем задача факторизации).
Метод повторного шифрования – сводится к поиску ключа d’ для дешифрования на основе того, что существует такое натуральное число m, что . Производится последовательное повторное зашифрование сообщения y: до тех пор, пока не получим опять значения y: , решением будет: x = ym-1.(Метод эффективен при неправильном подборе параметров RSA.)
Метод факторизации модуля системы на основе дискредитированного ключа d. (Нельзя использовать одинаковый модуль для многопользовательских систем, при потере хотя бы одного ключа – вскрывается вся система.) Кроме того, знание хотя бы одного секретного ключа многопользовательской системы с единым модулем позволяет найти любой другой секретный ключ даже без факторизации n.
Определение секретного ключа d простым перебором (при малом d.)
Определение секретного ключа d с использованием непрерывных дробей, по теореме Винера (при .)
Бесключевое чтение циркулярных сообщений на общей открытой экспоненте e и трех взаимно простых модулях n1, n2, n3 посредством решения системы из трех сравнений.
Атаки на криптосистемы, основанные на сложности задачи дискретного логарифмирования.
Очевидное направление криптоанализа систем шифрования и цифровой подписи, основанных на сложности решения задачи дискретного логарифмирования – разработка переспективных методов дискретного логарифмирования.
Наиболее известные методы дискретного логарифмирования:
Алгоритм согласования.
Алгоритм Полига-Хеллмана.
δ-метод Полларда для дискретного логарифмирования.
Дискретное логарифмирование в простых полях (алгоритмы Адлемана, COS.)
Дискретное логарифмирование в полях Галуа (алгоритмы index-calculus, Эль-Гамаля, Копперсмита).
Алгоритмы решета числового поля для дискретного логарифмирования.
Рекорды дискретного логарифмирования: логарифмирование по простому модулю (алгоритм COS с гауссовыми целыми). Сложность 60 MIPS-лет для нахождения соотношений и около трех недель – решение системы линейных уравнений.
Криптоанализ рюкзачных систем.
Доказано, что существует алгоритм полиномиальной сложности получения открытого текста по шифртексту на основе так называемой «косозубой функции». Алгоритм известен под названием LLL (Ленстры-Ленстры-Ловаша).