
- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА

166 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
13.2. Тест на основе малой теоремы Ферма
При построении вероятностных критериев простоты возникает ряд типичных вопросов, которые удобно рассмотреть на примере, в качестве которого выберем тест на основе малой теоремы Ферма. Как известно, эта теорема утверждает, что если n - простое, то для всех a , взаимно простых с n,
выполняется условие (сравнение Ферма): an−1 =1(n).
Таким образом, если сравнение Ферма не выполнено, хотя бы для одного числа в интервале{2,K,n −1}, то n - составное.
Тест на основе малой теоремы Ферма заключается в следующем.
Псевдослучайно выбираем вычет a {2,K,n −1}, проверяем условие
(a,n)=1. Если это условие не выполнено, значит, n - составное. Проверяем
сравнение Ферма. Если оно не выполняется, то число n - составное. Иначе, повторяем тест для другого значения a.
Очевидно, основной вопрос состоит в том, чтобы оценить, в какой мере тест является эффективным. Прежде всего, следует выяснить, существуют ли составные числа n, для которых при некотором a выполняется условие малой теоремы Ферма. Оказывается это так, поскольку существуют контрпримеры:
2340 = (210 )34 =1(341), 724 =1(25).
13.2.1. Основные свойства псевдопростых чисел
Назовем составное число n псевдопростым по основанию a, если пара
(a,n) удовлетворяет сравнению Ферма an−1 =1(n).
Оказывается, можно показать, что для любого a >1 существует бесконечно много псевдопростых чисел по основанию a.

Основные свойства псевдопростых чисел 167
В частности, если пара (2,n) удовлетворяет указанному сравнению, то ему удовлетворяет также и пара (2,2n −1). Действительно, по условию,
2n−1 −1 делится на n, поэтому 2(2n−1 −1)= 2tn .
Следовательно, 22tn −1 = (2n −1)(2(2t−1)n +K+1)= 0 mod(2n −1).
Но 2tn = (2n −1)−1, а число 2n −1 не является простым, поскольку n -
составное. Поэтому число 2n −1 является псевдопростым по основанию два.
Основные свойства псевдопростых чисел таковы.
Теорема [16]. Пусть n - нечетное составное число. Тогда:
а) n псевдопростое по основанию a в том и только том случае, когда
(a,n)=1 и ordna |n −1;
б) если n псевдопростое по основаниям a и b, то n псевдопростое по основаниям ab и ab−1(modn);
в) множество Fn ={a Zn : an−1 =1(mod n)}образует мультипликативную
подгруппу в мультипликативной группе Zn* обратимых элементов кольца вычетов по модулю n ;
г) если n не является псевдопростым по основанию a, хотя бы для одного
числа a, то |
F |
≤ (1 2) |
|
Z* |
|
. Заметим, что |
|
Z* |
|
=ϕ(n)≤ n −1. Таким образом, |
|
|
|
|
|||||||
|
n |
|
|
n |
|
|
|
n |
|
|
если тест Ферма выявляет составное n при одном основании a, то существует не менее (n −1)2 оснований с аналогичным свойством.
Действительно, свойство а) следует из определения ordna . Свойства б) и
в) следуют из правила почленного перемножения частей сравнений и проверки сравнения Ферма для основания b−1 .

168 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
Докажем свойство г). Пусть Fn ={a1,K,as } и a - основание, по которому
n не является псевдопростым. Тогда для любого i пара не
удовлетворяет сравнению Ферма. Поэтому количество оснований, для которых
n не является псевдопростым, не меньше, чем количество элементов в Fn . |
||||||||
Следовательно, если |
F |
> (1 2) |
|
Z * |
|
, то общее число элементов в |
Z* |
окажется |
|
|
|||||||
|
n |
|
|
n |
|
|
n |
|
больше n, что невозможно.
Таким образом, можно заключить, что если существует (не известное нам) основание, по которому n не является псевдопростым, то при повторении теста Ферма k раз вероятность k-кратного выбора оснований из множества Fn не
превосходит (12)k . В этом случае вероятность ошибки теста стремится к нулю с увеличениемk.
Проблема может возникнуть лишь в том случае, когда n является псевдопростым для всех (ненулевых) оснований. Оказывается, такие числа существуют. Они называются числами Кармайкла. Например, числом Кармайкла является число n =561=3 11 17 .
13.2.2. Свойства чисел Кармайкла
Свойства чисел Кармайкла описываются следующей теоремой.
Теорема (Кармайкл). Пусть n - нечетное составное число. Тогда
а) если |
p2 |n , p >1, то n не является числом Кармайкла; |
|
б) если |
n = p1 p2 Kpk , pi ≠ pj для (i ≠ j), то n - число Кармайкла в том |
|
и только том случае, когда i |
(pi −1)|(n −1); |
|
в) если |
n = p1 p2 Kpk , |
pi ≠ pj (i ≠ j) - число Кармайкла, то k ≥3. |

(n-1) - и (n+1) - Критерии Люка 169
Числа Кармайкла являются достаточно редкими. В пределах до 100000
существует лишь 16 чисел Кармайкла: 561, 1105, 1729, 2465, 2821, 6601, 8911, 10585, 15841, 29341, 41041, 46657 52633, 62745, 63973, 75361.
13.2.3. (n-1) - критерий Люка
Из предыдущего можно сделать вывод, что в тесте Ферма на простоту простые числа и числа Кармайкла неразличимы.
Тем не менее, сравнение Ферма можно использовать для построения тестов, достаточных для доказательства простоты конкретного числа, путем введения дополнительных условий в соответствующие критерии.
Достаточно эффективным критерием является т.н. (n −1)- критерий Люка,
для применения которого должна быть известны все простые делители числа
(n −1). Основой данного критерия является следующая теорема.
Теорема (Люка). Натуральное число n является простым в том и только том случае, когда существует такое натуральное число a, что для любого собственного делителя q ||(n −1) числа n −1 выполняются следующие условия: an−1 =1(n), a(n−1)q ≠1(n).
k
Доказательство. Пусть n - простое и n −1 = ∏qimi . Тогда существует
i=1
элемент a, порядок которого максимален, т.е. равен условия теоремы выполняются для всех q ||(n −1).
Обратно, предположим, что для некоторого элемента a выполнены условия теоремы и порядок числа a по модулю n равен m, где m≠n−1. В этом случае m|(n −1) и (n −1)= km, где

170 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
Пусть q |k , тогда =1(n). Это возможно лишь при q = k = 1, т.е.
при m = n −1. Таким образом, порядок числа a - максимально возможный,
следовательно, он совпадает с функцией Эйлера от n и ϕ(n)= n −1.
По определению функции Эйлера, это выполнимо только в случае, когда n - простое.
Замечание. Легко видеть, что условия теоремы Люка эквивалентны существованию натурального числа b, такого, что ordnb = n −1.
Покажем, что в критерии Люка можно выбирать число a для каждого q
независимо, т.е. в условии теоремы можно заменить a на a(q).
Теорема (Сэлфридж). Натуральное число n является простым в том и только том случае, когда для любого собственного делителя q ||(n −1) числа n −1 существует такое натуральное число a = a(q), что выполняются следующие условия: an−1 =1(n), a(n−1)q ≠1(n).
Доказательство. Очевидно, из условий теоремы Люка следует выполнение условий теоремы Сэлфриджа. Необходимо доказать, что из условий теоремы Сэлфриджа следуют условия теоремы Люка. Мы сделаем это, убедившись, что в условиях теоремы Сэлфриджа существует натуральное число b, такое, что
ordnb = n −1.
|
|
|
|
|
k |
|
|
|
Действительно, |
пусть |
n −1 = ∏qimi . |
По |
условию, для |
каждого |
|||
|
|
|
|
|
i=1 |
|
|
|
собственного |
простого |
делителя |
q ||(n −1) |
найдется a = a(q), такое, что |
||||
m = ordna(q) |
делит |
(n −1), |
но |
ordna(q) не делит число (n −1) q . Пусть |
||||
(n −1)= md . Тогда |
d |
не делится на q , |
иначе, |
число (n −1) q |
было бы |