- •Содержание
- •Введение
- •1.1. Общая система секретной связи (по К. Шеннону)
- •1.1.1. Основные криптографические термины
- •1.1.2. Модель системы секретной связи К.Шеннона
- •1.2. Подходы к оценке надежности реальных криптосистем
- •1.2.2. Метод сведения к общей алгоритмической проблеме
- •Глава 2. ОБЩИЕ АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ АНАЛИЗА ОСНОВНЫХ ТИПОВ ШИФРОВ
- •2.1. Элементарные шифры
- •2.2. Основные типы шифров
- •2.2.1 Потоковые шифры. Последовательность выбора шифрпреобразований
- •2.2.2. Качество гаммы
- •2.2.3. Периодичность гаммы
- •2.2.4. Блочные шифры
- •2.2.5. Алгоритмические проблемы, связанные со стойкостью основных типов шифров
- •Глава 3. ТЕСТИРОВАНИЕ УЗЛОВ КРИПТОСХЕМ КАК МЕТОД КОМПРОМЕТАЦИИ ШИФРОВ
- •3.1. Компрометация шифров
- •3.2. Задача тестирования линейной рекуррентной составляющей криптоузла
- •3.3. Задача восстановления параметров искаженной линейной рекурренты
- •3.3.1. Представление элементов рекурренты через элементы начального заполнения
- •3.3.2. Производные соотношения
- •3.3.4. Качественная характеристика задачи восстановления параметров линейной искаженной рекурренты
- •Глава 4. КРИПТОГРАФИЧЕСКИЕ СВОЙСТВА БУЛЕВЫХ ФУНКЦИЙ
- •4.1. Нелинейность булевой функции
- •4.2. Критерии распространения и корреляционная иммунность
- •4.3. Устойчивые булевы отображения
- •Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89
- •5.1. Криптоэквивалентная схема алгоритма ГОСТ 28147-89
- •5.2. Влияние блока подстановки на последовательности выходов итераций
- •5.2.1 Расшифрование в режиме простой замены
- •5.2.2. Возможность ослабления шифра за счет структуры сеансового ключа
- •5.3. Замечания о режимах шифрования и имитовставки
- •Глава 6. ВЫБОР ДОЛГОВРЕМЕННОГО КЛЮЧА АЛГОРИТМА ГОСТ 28147-89
- •6.1. Область сильных ключей
- •6.1.1. Достаточность условия равновероятности псевдогаммы для выбора сильного блока подстановки
- •6.2. Контроль долговременного ключа алгоритма ГОСТ 28147-89
- •6.2.1. Угроза внедрения слабых параметров
- •6.2.2. Подход к выявлению слабых долговременных ключей
- •6.2.3. Свойства теста
- •6.2.4. Тестирование долговременного ключа
- •Глава 7. ЭЛЕМЕНТЫ ТЕОРИИ СРАВНЕНИЙ
- •7.1.1. Расширенный алгоритм Эвклида
- •7.2. Модульная арифметика
- •7.2.1. Функция Эйлера и малая теорема Ферма
- •7.3. Сравнения первой степени от одного неизвестного
- •7.3.1. Китайская теорема об остатках
- •7.3.2. Степенные сравнения по простому модулю
- •Глава 8. ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
- •8.1.1. Символ Лежандра
- •8.1.2. Символ Якоби
- •8.2. Алгоритм нахождения квадратного корня в простом поле
- •9.1. Построение криптосистемы RSA. Идея цифровой подписи
- •9.2. Смешанные криптосистемы. Протокол Диффи-Хэллмана ключевого обмена
- •9.3. Цифровая подпись Эль-Гамаля
- •9.3.1. Криптосистема Эль-Гамаля
- •9.3.2. Механизм цифровой подписи Эль-Гамаля
- •9.3.3. Ослабление подписи Эль-Гамаля вследствие некорректной реализации схемы
- •9.3.4. Варианты цифровой подписи типа Эль-Гамаля
- •10.1 Обозначения и постановка задачи
- •10.2. Построение корней из единицы в поле
- •10.3. Алгоритм дискретного логарифмирования
- •10.3.1. Пример вычисления дискретного логарифма
- •10.4. Фальсификация подписи Эль-Гамаля в специальном случае выбора первообразного элемента и характеристики поля
- •10.4.1. Слабые параметры в подписи Эль-Гамаля
- •Глава 11. МЕТОДЫ ФАКТОРИЗАЦИИ ПОЛЛАРДА
- •11.2.1. Оценка вероятности выбора критической пары
- •11.2.2. Оптимизация выбора критической пары
- •Глава 12. НЕКОТОРЫЕ СЛУЧАИ ОСЛАБЛЕНИЯ КРИПТОСИСТЕМЫ RSA
- •12.1. Атаки на RSA, не использующие факторизацию модуля
- •12.2. Атаки на RSA, использующие факторизацию модуля
- •12.2.1. Алгоритм факторизации Диксона
- •Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
- •13.1. Решето Эратосфена и критерий Вильсона
- •13.2. Тест на основе малой теоремы Ферма
- •13.2.1. Основные свойства псевдопростых чисел
- •13.2.2. Свойства чисел Кармайкла
- •13.2.3. (n-1) - критерий Люка
- •13.2.3. Понятие о последовательностях Люка. (n+1) - критерий Люка
- •Глава 14. ТЕСТЫ СОЛОВЕЯ-ШТРАССЕНА И РАБИНА-МИЛЛЕРА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
- •14.1. Тест Соловея-Штрассена
- •14.1.1. Эйлеровы псевдопростые числа
- •14.2. Тест Рабина-Миллера
- •14.2.1. Сильно псевдопростые числа
- •Глава 15. ПОСТРОЕНИЕ БОЛЬШИХ ПРОСТЫХ ЧИСЕЛ
- •15.1. Детерминированный тест, основанный на обобщенном критерии Люка
- •15.1.1. Теорема Поклингтона
- •15.1.2. Обобщение критерия Люка
- •15.2. Детерминированный тест, основанный на теореме Димитко
- •Глава 16. ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
- •16.1. Общие требования к выбору параметров
- •16.2. Метод Гордона построения сильно простых чисел
- •16.3. Пример построения сильно простого числа
- •Глава 17. ОБЩИЕ СВЕДЕНИЯ ОБ ИНОСТРАННЫХ КРИПТОСРЕДСТВАХ
- •17.1. Аппаратные криптосредства
- •17.2. Основные принципы построения систем управления ключами
- •17.2.1. Ключевые системы потоковых шифров
- •17.3. Блочные шифры в смешанных криптосистемах
- •17.3.2. Смешанная криптосистема на основе алгоритмов RSA и IDEA
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
Основные типы шифров 31
Одним из общих подходов анализа потоковых шифров является декомпозиция автомата на соответствующие узлы и анализ выходных последовательностей узлов и шифратора в целом.
2.2.4. Блочные шифры
Необходимость применения криптографической защиты информации в сетях ЭВМ, в базах данных, в системах электронных платежей привела к широкому использованию программных средств шифрования. При этом оказалось, что программная реализация потоковых шифров, в ряде случаев, уступает в быстродействии шифрам другого типа, так называемым, блочным шифрам.
Блочным шифром называется система шифрования, использующая на каждом такте постоянный, выбранный до начала шифрования, в зависимости от ключей, алгоритм [2,5,8].
Поскольку зашифрование должно быть взаимно однозначным преобразованием, то блочные шифры являются шифрами замены с очень большим алфавитом. Знаки алфавита представляются в виде двоичных блоков данных фиксированной длины. Например, алгоритм ГОСТ 28147-89 предназначен для работы с блоками длиной 64 бита. В режиме простой замены этот шифр взаимнооднозначно отображает множество мощности 264 на себя.
Существуют потоковые шифры, использующие блочный шифр в качестве узла генерации гаммы. В криптографии принято рассматривать подобные шифры как режимы работы соответствующего блочного шифра.
Например, в режимах шифрования алгоритм ГОСТ 28147-89 работает как шифр гаммирования по модулю два, используя двоичную гамму, выработанную в режиме, соответствующем блочному шифру.
32 Глава 2. ОБЩИЕ АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ АНАЛИЗА ОСНОВНЫХ ТИПОВ ШИФРОВ
2.2.5. Алгоритмические проблемы, связанные со стойкостью основных типов шифров
Для блочных шифров оценка стойкости связана с оценкой качества т.н. виртуальных таблиц замены, т.е. таблиц замены, представить которые целиком на носителе невозможно из-за большого объема данных. Блочный шифр является совокупностью виртуальных таблиц замены. Ключ служит для выбора таблицы, которая является неизменной в процессе шифрования отдельного сообщения.
Очевидно, что криптографические свойства шифра простой замены существенно зависят от ключей. Поэтому в блочном шифре ключи, вообще говоря, могут быть неравноценны.
Например, виртуальные таблицы могут осуществлять нестойкие преобразования над элементами (блоками) открытого текста. Кроме того, не исключается, что выбор одной и той же виртуальной таблицы может быть осуществлен с помощью различных ключей.
Общая проблема оценки качества блочного шифра сводится к задаче определения больших областей ключей, которым соответствуют подстановки, наиболее сложные для вскрытия шифра простой замены.
В ситуации, когда виртуальная таблица замены легко описывается формулами, могут быть сформулированы общие задачи, решение которых приводит к дешифрованию соответствующих криптосистем.
К подобным задачам сводится стойкость значительного числа современных асимметричных криптоалгоритмов.
Рассмотрим, например, |
степенную функцию вида g(x)= xemod n , где |
n = pq, p, q - различные |
простые числа. Для обращения этой функции |
достаточно решить задачу разложения числа n на сомножители. Эта задача
Основные типы шифров 33
является алгоритмической проблемой, на которой основана стойкость распространенной криптосистемы RSA.
Аналогичная ситуация имеет место с дискретной экспонентой, т.е.
функцией вида f (x)= axmod p , где p - большое простое число. Эта функция
часто используется в процедурах аутентификации.
Вследствие конечности множества вычетов по модулю p,
последовательность ak mod p , k =1,2K, периодична. Наименьший период
называется показателем (порядком) числа a по модулю p и обозначается
ordpa .
Известно, что функция при больших значениях x и
ord p a ведет себя как односторонняя.
Обратная функция (дискретный логарифм) вычислительно нереализуема и задача дискретного логарифмирования также является алгоритмической проблемой, на которой основана стойкость ряда криптоалгоритмов.
Что касается качественных потоковых шифров, то фактически каждый такой шифр сводится к очередной, ранее неизвестной математической задаче, которая поддается решению лишь в частных случаях.
Тем не менее, можно сформулировать общую алгоритмическую проблему, лежащую в основе стойкости шифров модульного гаммирования.
Очевидно, модульное гаммирование можно рассматривать как процедуру искажения гаммы знаками открытого текста.
При неравновероятном открытом тексте это позволяет использовать связи в гамме для составления соответствующих систем уравнений, а затем рассматривать полученные уравнения как выполняющиеся для шифртекста, но с искаженными правыми частями. Относительно искажений известно лишь распределение вероятностей.
34 Глава 2. ОБЩИЕ АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ АНАЛИЗА ОСНОВНЫХ ТИПОВ ШИФРОВ
Данный подход приводит к общей проблеме решения систем уравнений с искаженными параметрами.
Так, для шифров гаммирования, построенных на использовании комбинаций регистров сдвига, общая проблема восстановления искаженной (нелинейной) рекуррентной последовательности является алгоритмической проблемой, на которой основывается стойкость шифра.