- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
70 Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89
соответствующего узла Kj и циклическом сдвиге полученного подблока на 11 разрядов влево.
~ |
является циклически |
Обратим внимание, что, таким образом, Ui−1 |
|
сдвинутым выходом с блока подстановки K. |
|
Расшифрование происходит в соответствии с алгоритмом зашифрования, однако выбор подключей производится в обратном порядке, по отношению к t(i). Подчеркнем, что это свойство не зависит от количества циклов и последовательности t(i), используемых в преобразовании GA.
Два последних наблюдения позволяют сделать некоторые выводы о связи между виртуальными таблицами замены рассматриваемого блочного шифра и ключами.
5.2. Влияние блока подстановки на последовательности выходов итераций
Влияние долговременного ключа K на выходы циклов (последовательность u) можно проследить, исходя из того, что блок U30||U31 поразрядно отличается от входного блока U-2||U-1, на слагаемое L||R, где подблоки L и R являются
|
|
~ |
~ |
~ |
|
|
|
|
линейными комбинациями вида V1 V2 K Vh . |
|
|
||||||
|
|
|
|
~ |
=Ui (i = 0,1,K,31). |
|
||
Действительно, по определению, Ui−2 Ui−1 |
|
|||||||
Таким |
|
~ |
=U1 |
|
и |
~ |
следует |
|
образом, из U−1 U0 |
|
U1 U2 =U3 |
||||||
~ |
~ |
=U3 . |
|
|
|
|
|
|
U−1 U0 |
U2 |
|
|
|
|
|
|
|
|
|
~ |
~ |
~ |
|
, |
(k = 0,1,K,15). |
|
По индукции: U2k +1 =U−1 U0 |
U2 K U2k |
|
||||||
|
|
~ |
~ |
~ |
|
, |
(k = 0,1,K,15). |
|
Аналогично, U2k =U−2 U−1 U1K U2k −1 |
|
Итак, левый и правый подблоки открытого текста, фактически, шестнадцать раз гаммируются поразрядным сложением выходами с блока подстановки в нечетных и четных циклах соответственно. Следовательно,
Влияние блока подстановки на последовательность выходов итераций 71
определенную информацию о свойствах «псевдогаммы» L и R можно получить, исходя из свойств K, без учета остальных параметров.
Рассмотрим долговременный ключ K как таблицу, колонки которой являются правыми частями булевых функций от четырех переменных.
Очевидно, при преобладании, скажем, нулей в колонке, при случайном равновероятном и независимом выборе аргументов, на соответствующем месте выходного блока вероятность нуля также будет завышена. В данном случае появление нуля или единицы являются событиями, соответствующими схеме Бернулли с постоянными вероятностями.
Наименьшее (на два бита) возможное преобладание нулей в колонке соответствует распределению вероятностей единицы (p) и нуля (q), при котором q − p =18.
Действительно, пусть количество нулей и единиц в колонке равно z и e соответственно.
Очевидно, сумма нулей и единиц равна z + e =16 , а их разность равна преобладанию: z −e = h . Поэтому h - минимальное четное число большее нуля, т.е. h = 2, откуда q − p = (z −e) 16 =1 8 .
Легко получить формулу для вычисления вероятности нуля в сумме из k
битов при заданном преобладании q − p =δ : P(0)=1 2 +1 2(δ)k .
Если h = 2, то после суммирования шестнадцати подблоков псевдогаммы бит на выходе GA совпадает с битом на входе с вероятностью
Следовательно, возможна генерация
ослабленной гаммы.
Например, если каждый узел замены Ki содержит лишь одинаковые тетрады, скажем mi, то блок L||R равен нулю, как поразрядная сумма шестнадцати одинаковых блоков m1|| K||m8. В этом случае U−2 лишь меняются местами и все сеансовые ключи являются криптоэквивалентными.
72 Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89
Таким образом, качество псевдогаммы полностью зависит от свойств булевых функций, составляющих блок подстановки K. В частности, видно, по какой причине функции, для которых p − q = 0 , предпочтительнее остальных.
5.2.1. Расшифрование в режиме простой замены
Процесс расшифрования в режиме простой замены является типичным для ряда блочных шифров. Остановимся на нем подробнее, т.к. его свойства мы существенно используем в дальнейшем.
Вспомним, что зашифрование в режиме простой замены |
T = GA(S ) |
||||||
представляется в виде: |
u = (U−2 ,U−1,U0 ,U1,U2 ,K,U30 ,U31 ), U−2 || U−1 = S , |
||||||
U31 || U30 =T . |
|
|
|
|
|
||
При расшифровании используется |
обратный порядок подключей, |
а роль |
|||||
U−2 || U−1 |
играет блок Т. |
|
|
|
|
||
Суть |
механизма |
расшифрования |
состоит в повторении |
вычисления |
|||
|
|
|
|
|
|
|
~ |
значений цикловой функции на циклах 31, 30,..., 1, 0, т.е. подблоков вида Ui−1 . |
|||||||
Если Ui |
|
~ |
, |
то из соотношения Ui−2 |
~ |
|
|
поразрядно сложить с Ui−1 |
Ui−1 =Ui |
||||||
следует, |
что |
результат будет равен |
|
Ui−2 . Таким образом, |
исходя из |
||
U31 || U30 =T , i = 31, |
мы получим U29 . Аналогично, исходя из U30 || U29 , |
||||||
получим U28 |
и т.д. |
|
|
|
|
|
|
При этом именно дополнительное преобразование выходного блока сводит |
|||||||
расшифрование к изменению порядка следования подключей. |
|
|
|||||
Действительно, |
расшифрование |
представляется |
в |
виде |
|||
uˆ = (U31,U30 ,U29 ,U28 ,K,U0 ,U−1,U−2 ), |
U31 || U30 =T , а U−2 || U−1 = S |
(после дополнительного преобразования результата последнего цикла алгоритма).