- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
176 Глава 14. ТЕСТЫ СОЛОВЕЯ-ШТРАССЕНА И РАБИНА-МИЛЛЕРА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
При тестировании чисел на простоту с помощью вероятностного теста, основанного на малой теореме Ферма, может возникнуть ситуация, когда вероятность ошибки не снижается с количеством повторений теста. В подобном случае упомянутая вероятность равна единице и в результате тестирования может быть принято неверное решение. В этой связи разработаны и применяются на практике вероятностные тесты, свободные от указанного недостатка.
Примерами таких тестов являются тест Соловея-Штрассена [50] и тест Рабина-Миллера [51,52] проверки чисел на простоту. См. также [8,15,16].
14.1. Тест Соловея-Штрассена
На основании следующей теоремы в тесте Соловея-Штрассена используется критерий Эйлера для определения значения символа Лежандра (квадратичного характера числа по простому модулю).
В самом тесте, естественно, вычисляется символ Якоби по модулю n .
Теорема [16]. Нечетное целое число n является простым тогда и только
тогда, |
когда для всех чисел a: 1≤ a ≤ n −1 выполняется сравнение вида |
||
|
n−1 |
|
a |
a 2 = mod n .n
Назовем указанное сравнение соотношением Эйлера.
Доказательство. Если n простое, то данное сравнение, очевидно, выполнено в силу свойств символа Лежандра.
n−1 |
a |
|
|
, 1≤ a ≤ n −1, но n составное. |
|
|||||
Пусть теперь a 2 |
= |
|
mod n |
|
||||||
|
|
|||||||||
|
n |
|
|
|
|
|
|
|
||
|
|
n−1 |
|
n−1 |
2 |
a 2 |
|
|||
|
|
|
|
|
2 |
|
|
|
|
|
В любом случае, |
a |
|
|
= =1mod n , поэтому n |
- число |
|||||
|
|
= a |
|
|
||||||
|
|
|
|
|
|
|
n |
|
Кармайкла, т.е. n = p1 p2 Kpk , k > 2 , pi ≠ pj для i ≠ j и i ϕ(pi )|(n −1).
Тест Соловея-Штрассена 177
Выберем элемент b, не являющийся квадратичным вычетом по модулю p1 . По китайской теореме об остатках, существует число a, удовлетворяющее
системе сравнений: a =b(p1 ), a =1(p2 ), K, a =1(pk ). |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
a |
|
|
a |
|
|
a |
|
|
|
a |
|
|
|
b |
|
|
|
|||
|
|
|
|
= |
|
|
|
|
= |
|
|
= |
|
|
= −1 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
По определению символа Якоби, |
|
|
|
|
|
|
, |
|||||||||||||||||
|
p |
|
K |
p |
|
|
|
p |
|
|
p |
|
||||||||||||
|
|
|
|
n |
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
1 |
|
|
|
k |
|
|
1 |
|
|
|
1 |
|
|
|
|
n−1 |
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
следовательно, по условию, a 2 |
= |
|
mod n = −1mod n . |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Последнее сравнение выполняется по любому делителю n, следовательно, |
||||||||||||||||||||||||
n−1 |
|
|
|
|
|
|
|
|
|
(n −1) 2 |
делится на ϕ(p2 ) - |
|||||||||||||
a 2 = −1mod p2 . Однако это не так, |
поскольку |
противоречие.
14.1.1. Эйлеровы псевдопростые числа
Составное число n, удовлетворяющее соотношению Эйлера, называется эйлеровым псевдопростым по основанию a.
Из доказанного следует, что составных чисел, которые были бы эйлеровыми псевдопростыми по любому основанию, не существует.
Следовательно, мы можем предложить следующий тест, аналогичный тесту Ферма.
Псевдослучайно выбираем вычет a {2,K,n −1}, проверяем условие
(a,n)=1. Если условие не выполнено, значит, n - составное. Проверяем соотношение Эйлера. Если оно не выполняется, то число n - составное. Иначе, повторяем тест для другого значения a.
Если мы могли бы проверить соотношение Эйлера для всех a, то мы смогли бы точно определить, является ли число n простым. Но для больших n это невозможно. Поэтому необходимо оценить, как ведет себя вероятность ошибки при увеличении числа k повторений теста.