- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
Глава 8.
ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
Основное в этой главе…
Квадратичные вычеты по простому модулю……………….……………..104
Алгоритм нахождения квадратного корня в простом поле………...…109
104 Глава 8. ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
8.1. Квадратичные вычеты по простому модулю
Квадратичным сравнением называется сравнения вида неизвестный вычет.
Целое число a называется квадратичным вычетом по модулю n, если сравнение x2 ≡ a(n) разрешимо. Если сравнение разрешимо, то для составного модуля количество решений, как правило, больше двух.
Поиск решений квадратичного сравнения часто используется в криптографии.
Оказывается, что в общем случае не только данная задача, но даже вопрос о разрешимости квадратичного сравнения по составному модулю, факторизация которого неизвестна, является нерешенной проблемой.
В то же время для модулей, являющихся простыми числами, задача легко поддается анализу. Это позволяет исследовать задачу и в общем случае,
поскольку, |
если |
x2 ≡ a(n), то a является квадратичным вычетом по модулю |
|||||||||||||
любого простого делителя числа n. |
|
|
|
|
|||||||||||
|
Пусть |
|
p |
- |
|
нечетное простое |
число. |
Очевидно, |
при a = 0(p) |
имеется |
|||||
единственное решение сравнения x2 ≡ a(p): |
x = 0(p). |
|
|
||||||||||||
|
Все |
ненулевые |
вычеты |
|
по |
модулю p находятся среди |
чисел |
||||||||
±1,±2,K,± |
p −1 |
, |
следовательно, |
их |
квадраты |
составляют |
список |
||||||||
|
|
||||||||||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
p −1 |
2 |
. Сравнение x |
2 |
≡ a(p) имеет решение, если a принадлежит |
|||||||||
1 ,2 |
|
,K, |
|
|
|
|
|
||||||||
|
2 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
этому списку.
Далее, сравнение x2 ≡ k2 (p) имеет два очевидных решения: ± k . Кроме того, количество решений не может превышать степени многочлена в левой части, т.е. двух.
Квадратичные вычеты в простом поле 105
Чтобы убедиться, что решений в точности два, достаточно показать, что k ≠ −k(p).Очевидно, если это не так, то 2k = 0(p), что верно только для
k = 0(p).
Заметим теперь, что в нашем списке квадратичных вычетов все вычеты
попарно |
несравнимы. Действительно, если, например, a ≡ k2 ≡l2 (p) и |
||||
1≤ k < l ≤ |
|
p −1 |
, то сравнение x2 |
≡ a(p) имело бы четыре решения: ± k , ±l , |
|
|
2 |
|
|||
|
|
|
|
что невозможно. Таким образом, количество ненулевых квадратичных вычетов
равно |
p −1 |
. Следовательно, количество квадратичных невычетов также равно |
2 |
p −1 2 .
8.1.1. Символ Лежандра
Пусть g - примитивный элемент поля GF(p). Тогда a - квадратичный вычет в том и только том случае, когда в представлении a = g j (p) число j -
четно.
Действительно, если x2 ≡ a(p), то дискретное логарифмирование дает разрешимое сравнение вида 2y = j(p −1), где модуль четен.
Существуют алгоритмы для определения, является ли данное число квадратичным вычетом по простому модулю или нет. Один из алгоритмов связан с вычислением значения т.н. символа Лежандра, который для нечетного
простого p определяется следующим образом. |
|
|||||||
|
|
|
0, a ≡ 0 mod p |
|
||||
|
a |
|
= |
1, x : x2 |
≡ a mod p a ≠ 0 mod p |
|||
|
||||||||
|
|
|
|
|
|
|
|
|
p |
|
|
|
2 |
≡ a mod p a |
≠ 0 mod p |
||
|
|
|
|
−1, ¬x : x |
|
106 Глава 8. ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
|
a |
|
|
p . |
|
Значение |
|
называется квадратичным характером числа a по модулю |
|||
|
|||||
|
|
|
|
|
|
|
p |
|
|
Основные свойства символа Лежандра. |
|
|
|
|
||||
|
|
|
|
|
a |
|
|
|
a |
= a(p) a1 |
|
= |
|
; |
|||
|
||||||||
1 |
|
p |
|
|
|
|
||
|
|
|
|
p |
|
Критерий Эйлера: ap ≡ a(p−1)2 mod p ;
|
|
|
|
ab |
|
|
|
a |
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
= |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
p |
|
|
p |
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
b |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
(a, p)=1 |
a |
|
= |
b |
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
; |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
1 |
|
|
|
|
−1 |
|
|
(p−1) 2 |
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
=1 |
, |
|
= (−1) |
|
; |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
p |
|
|
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
2 |
|
|
|
|
|
p2 −1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
= (−1) |
8 |
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Кроме того, имеет место квадратичный закон взаимности Гаусса: для любых |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(p−1)(q−1) |
||||||
простых нечетных чисел |
p и |
q выполняется равенство |
|
p |
|
= (−1) |
4 |
q |
. |
|||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q |
|
|
p |
||||
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Символ Лежандра |
|
|
|
можно |
вычислить |
с помощью |
следующей |
|||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
p |
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
последовательности действий:
1)если a <0, то выделяем сомножитель −1 ;
p
2)приводим a по модулю p ;