- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
Глава 3.
ТЕСТИРОВАНИЕ УЗЛОВ КРИПТОСХЕМ КАК МЕТОД КОМПРОМЕТАЦИИ ШИФРОВ
Основное в этой главе…
Компрометация шифров..……...36
Задача тестирования линейной рекуррентной составляющей криптоузла……………..……....…...37
Качественная характеристика задачи восстановления параметров искаженной линейной рекур-
ренты…..……………………………..45
36 Глава 3. ТЕСТИРОВАНИЕ УЗЛОВ КРИПТОСХЕМ КАК МЕТОД КОМПРОМЕТАЦИИ ШИФРОВ
Впроцессе внедрения и эксплуатации криптосистемы используется документация, содержащая описания, инструкции и контрольные примеры. В документацию, в частности, входит описание системы шифрования, в которой описываются алгоритмы шифрования и расшифрования, иерархия ключей, их использование при шифровании-расшифровании, а также процедуры ввода открытого текста и вывода текста шифрованного.
Обычно криптоалгоритм представляется в виде графической схемы и ее описания. По традиции, графическое представление криптоалгоритма называется криптосхемой, а ее описание – описанием криптосхемы.
Криптосхемы состоят из элементов – криптоузлов, которые могут объединяться в блоки.
Вописании криптосхемы дается также механизм взаимодействия узлов.
Всовокупности, представленных данных должно быть достаточно для создания программной модели криптосистемы и ее тестирования на контрольных примерах.
Одной из особенностей потоковых шифров является то, что число параметров, влияющих на их стойкость, существенно больше, чем для блочных шифров. Криптосхемы потоковых шифров создаются на основе комбинирования криптоузлов со специфическими характеристиками [30]. По этой причине при их синтезе необходимо учитывать не только угрозу дешифрования для известных типов криптоатак, но и возможность т.н. компрометации шифра.
Необходимость введения этого понятия связана с тем, что в ряде ситуаций возможность дешифрования сообщений злоумышленником не исключается, но и не является неизбежной.
3.1. Компрометация шифров
Неформально, шифр называется скомпрометированным, если с достаточно малой вероятностью ошибки криптоаналитик определяет, получена ли заданная
Компрометация шифров 37
последовательность символов в результате зашифрования конкретным шифром, либо нет [31].
Хотя суть понятия компрометации состоит в том, что неудачный выбор некоторых параметров часто позволяет идентифицировать шифр по шифрованному тексту, на практике возможность компрометации шифра оценивается как предпосылка к существованию неизвестных разработчику криптоатак, специфических для данной шифрсистемы.
Очевидно также, что при построении криптосистемы необходимо стремиться к тому, чтобы максимально затруднить возможность идентификации используемого шифра, т.к. подобный подход существенно затрудняет задачу дешифрования.
Шифр может быть скомпрометирован в той или иной мере. Подобная оценка является качественной и рассматривается в пределах от определения типа шифра до вскрытия отдельных параметров узлов и элементов ключевой системы. Задача обычно сводится к выявлению в шифртексте наличия особенностей, присущих искаженной выходной последовательности какоголибо криптоузла. Для решения подобных задач обычно используется статистический подход, комбинируемый с методами оптимизации.
3.2. Задача тестирования линейной рекуррентной составляющей криптоузла
При синтезе криптосхем потоковых шифров широко применяются криптоузлы, основанные на т.н. регистрах сдвига с обратной связью [30,32].
Регистр сдвига с обратной связью состоит из двух частей: регистра сдвига и функции обратной связи. Ограничений на область определения функции обратной связи не накладывается. Сама функция может быть задана таблично.
38 Глава 3. ТЕСТИРОВАНИЕ УЗЛОВ КРИПТОСХЕМ КАК МЕТОД КОМПРОМЕТАЦИИ ШИФРОВ
Двоичный регистр сдвига с обратной связью – это последовательность битовых ячеек. Их количество называется длиной регистра. Во время работы содержимое ячеек изменяется. Исходное состояние регистра называется его начальным заполнением. Содержимое ячейки называется разрядом (с соответствующим номером).
Врезультате одного такта работы регистра генерируется один бит. Новый бит вычисляется как функция от битов, выбираемых из ячеек регистра с заранее определенными номерами. Указанные ячейки называются ячейками обратной связи, а функция – функцией обратной связи. Номера ячеек обратной связи называются точками съема обратной связи.
Втакте работы вычисляется значение функции обратной связи, затем регистр сдвигается, скажем, влево, теряя левый крайний разряд и освобождая крайнюю правую ячейку. В эту ячейку помещается значение функции обратной связи. Выходом регистра является бит, снятый с фиксированной (обычно, с крайней правой) ячейки.
Простейшим случаем подобного регистра является уже знакомый нам регистр сдвига с линейной обратной связью (РСЛОС). Функция обратной связи такого регистра является суммой по модулю два содержимого ячеек обратной связи.
В результате нескольких тактов работы РСЛОС длины n с точками съема (0, k1, k2, …, kr) и начальным заполнением s0 = (a0, a1, …, an-1) возникает т.н. рекуррентная последовательность R(s0) = a0,a1, …, ai…, для которой выполняется линейное рекуррентное соотношение вида
ai ak1+i K akr +i =an+i , (i=0, 1, 2…).
Напомним, что эта последовательность является периодической. Период не превосходит числа 2n-1 и зависит от длины и набора точек съема регистра.
Тестирование линейной рекуррентной составляющей криптоузла 39
Регистры, генерирующие последовательности с периодами максимальной длины, существуют и используются в криптографии. Будем считать, что рассматриваемая рекуррента обладает максимальным периодом.
Заметим, что нашу рекуррентную последовательность можно записать через все элементы текущего заполнения регистра в виде
n |
(mod 2), где bj+i =1, при j {0, k1, k2,…, kr} и bj+i = 0 в |
an+i + ∑bj+iaj+i = 0 |
|
j=0 |
|
противном случае. |
|
Таким образом, легко видеть, что каждый элемент рекуррентной последовательности выражается в виде линейной комбинации элементов начального заполнения (относительно сложения по модулю два).
Предположим, что криптосхема потокового шифра гаммирования по модулю два генерирует гамму как выход с РСЛОС, а ключом является начальное заполнение. В этом случае шифртекст является искаженной рекуррентной последовательностью и задача дешифрования сводится к восстановлению начального заполнения регистра.
Что касается компрометации шифра, то соответствующим тестом может быть решение некоторой другой задачи, например, задачи определения точек съема обратной связи. При таком подходе мы расширяем область тестируемых узлов.
Как следствие, при положительном результате тестирования уже нельзя утверждать, что тестируемый узел является РСЛОС.
Действительно, в общем случае тестирование покажет лишь наличие линейной составляющей в шифртексте или выходной последовательности узла.
Например, последнее слагаемое в последовательности
a~n+i = ai ak1+i K akr +i ai+1 ai+2 ai+3 ai+4