- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
Глава 7.
ЭЛЕМЕНТЫ ТЕОРИИ СРАВНЕНИЙ
Основное в этой главе…
Расширенный алгоритм Эвклида....95
Функция Эйлера и малая теорема Ферма……………………………………97
Сравнения первой степени от одного неизвестного…………….…………….98
Степенные сравнения по простому модулю………………………………...100
94 Глава 7. ЭЛЕМЕНТЫ ТЕОРИИ СРАВНЕНИЙ
Внедрение средств криптографической защиты информации, основанных на асимметричных криптоалгоритмах, потребовало существенного расширения диапазона средств теории чисел, используемых в криптографии.
Тем не менее, терминология, используемая в рекомендациях стандартов, а также при описании криптоалгоритмов и результатов их анализа, основана, как правило, на ряде простых понятий теории чисел, которые мы кратко рассмотрим ниже. Более полно, см. [14,15,16].
7.1. Некоторые сведения из арифметики Числа 1,2,3,… называются натуральными. Число 0, а также числа вида
± a , где a натуральное число, называются целыми числами. Отношение двух целых чисел называется рациональной дробью и является формальной записью результата деления одного числа на другое. Деление на ноль не определено.
Простым числом называется натуральное число, у которого есть в точности два неравных натуральных делителя.
Основная теорема арифметики: каждое натуральное число m единственным, с точностью до порядка сомножителей, образом представляется в виде произведения степеней простых чисел: m = p1a p2b Kpst .
Наибольшим общим делителем двух целых чисел a и b называется наибольшее целое число, которое делит как a, так и b. Обозначения:
или НОД(a,b).
Наименьшим общим кратным целых чисел a и b называется число НОК(a,b)= (aab, b), делящееся, очевидно, как на a , так и на b.
Числа a и b называются взаимно простыми, если d = (a,b)=1.
Имеет место следующее утверждение. Пусть d = (a,b). Тогда существуют целые числа x , y , являющиеся решением уравнения xa + yb = d .
Некоторые сведения из арифметики 95
7.1.1. Расширенный алгоритм Эвклида
Решение x, y , d уравнения xa + yb = d , a>b, d = (a,b), можно найти с
помощью т.н. расширенного алгоритма Эвклида. Очевидно, общий случай сводится к решению подобных уравнений, при положительных a и b.
Рассмотрим схему расширенного алгоритма Эвклида на примере числе 15 и 25. Мы будем находить остатки и (неполные) частные от деления двух чисел,
т.е. пользоваться равенствами |
вида A = kB + r , где |
все числа |
целые и |
||||
0 ≤ r < B . |
|
|
|
|
|
|
|
Поскольку |
должно |
выполняться |
неравенство |
a > b , то |
изменим |
||
обозначения: r0 = 25, r1 =15 . |
|
|
|
|
|
||
Выпишем последовательность строк: |
|
|
|
||||
|
|
r0 = 25 x0 =1 y0 = 0 |
|
|
|
||
|
|
r1 =15 x1 = 0 y1 =1 ( d2 =1, r2 =10). |
|
||||
Пояснение. |
Делим |
r0 на |
r1 с остатком. Получаем: |
r0 = d2r1 + r2 т.е. |
|||
25 =1 15 +10 , откуда |
d2 =1, |
r2 =10 |
. Проверяем: r2 =0 |
? Нет – |
работаем |
дальше. Вычисляем x2 , y2 : x2 = x0 − x1d2 =1 y2 = y0 − y1d2 = −1. Формируем очередную строку: r2 , x2 , y2 .
Исходными данными для шага 2 будут строки r1, x1, y1 (из предыдущего шага) и r2 , x2 , y2 . С этими строками действуем аналогично.
Если очередной остаток от деления равен нулю, выписываем решение из данных предыдущего шага (см. ниже).
r2 =10 x2 =1 y2 = −1 ( d3 =1, r3 =5 )
r3 =5 x3 = −1 y3 = 2 ( d4 = 2, r4 =0 ).