- •Содержание
- •Введение
- •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
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА
Глава 16.
ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
Основное в этой главе…
Общие требования к выбору параметров…………………………....190
Метод Гордона построения сильно простых чисел………….……….……192
190 Глава 16. ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
Ранее нами были рассмотрены различные частные случаи ослабления криптосистемы RSA с параметрами (e,d,n), n=pq, которые возникают вследствие ее неправильного использования, либо при специфических (слабых) значениях параметров.
Данная криптосистема широко распространена, так что вопрос о правильном выборе ее параметров является достаточно актуальным.
16.1. Общие требования к выбору параметров
Корректность параметров связана с оценкой стойкости системы и может быть определена лишь с точки зрения практической стойкости. Следовательно, корректные параметры должны быть построены так, чтобы минимизировать ущерб от известных подходов к ослаблению криптосистемы.
Исходя из этого соображения, рассмотрим наиболее общие требования к выбору чисел p, q, e, d [16].
Прежде всего, следует учитывать, что слабость одного из параметров практически не компенсируется усилением свойств других параметров.
Очевидно, число n=pq должно быть большим. Числа p, q не должны содержаться в списках известных больших простых чисел, не должны быть слишком близки друг к другу, либо существенно различаться по величине. Они не должны быть построенными по детерминированным алгоритмам с небольшим числом известных вариантов начальных параметров или содержать закономерности в двоичной записи. В общем, p и q не должны отличаться от типичных представителей случайных простых чисел.
Аналогичными свойствами должны обладать параметры e и d.
Например, если секретный ключ d содержит в двоичной записи небольшое количество единиц, то номера мест этих единиц легко определить перебором.
Можно доказать, что при известном d существует возможность факторизации модуля.
Общие требования к выбору параметров 191
Известно, что для чтения сообщений, зашифрованных криптосистемой RSA, достаточно знания некоторого кратного функции Эйлера от модуля, т.к. в этом случае можно вычислить ключ, криптоэквивалентный ключу d.
Заметим также, что при наличии легко получить a из сравнения ae = c(n). Достаточно возвести c в степень h, удовлетворяющую соотношению
eh =1(ordna)
Далее. Для любого a, взаимно простого с n, ordp a делит p-1, а ordq a делит q-1. Поэтому ordn a делит G=НОК(p −1,q −1). Следовательно, для построения криптосистемы, вместо определения d из сравнения
воспользоваться решением сравнения ed1 =1(G).
Пусть g=НОД(p −1,q −1). Тогда Gg =ϕ(n). Очевидно, из соотношения ed =1(ϕ(n)) следует ed =1(G), поэтому d = d1(G) и d ≠ d1(ϕ(n)). Этим условиям удовлетворяют ключи d1, d1+G, d1+2G, …, d1+ (g −1)G,
криптоэквивалентные, таким образом, ключу d. Следовательно, чем больше НОД(p −1,q −1), тем больше криптоэквивалентных ключей, тем хуже для системы.
Очевидно, |
в наилучшем |
случае НОД(p −1,q −1)= 2, при этом |
|||
p = 2s +1, q = 2t +1, где (s,t)=1. |
|
|
|||
Чтобы |
исключить |
возможность |
применения |
(p ±1)-методов |
|
факторизации, |
необходимо |
потребовать, |
чтобы числа |
p1 = (p −1) 2 , |
|
p2 = (p +1) 2 |
, q1 = (q −1) |
2, |
q2 = (q +1) |
2 не разлагались в произведение |
степеней небольших простых чисел, т.е. чтобы они содержали в разложении большое простое число.
192 Глава 16. ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
Требования, сформулированые Р. Ривестом в наиболее сильной форме, заключаются в том, чтобы числа p1, p2, q1, q2 были простыми, причем в разложении как p1 −1, так и q1 −1 содержалось большое простое число.
Заметим, кстати, что неизвестно, является ли множество простых чисел вида p1 =(p −1)2 бесконечным.
Для практики достаточно, чтобы существовал достаточно большой
простой делитель числа p −1. Очевидно, такой делитель имеет вид
r = (p −1)(2 j).
Таким образом, мы должны выделить некоторый специфический класс простых чисел.
16.2. Метод Гордона построения сильно простых чисел
Определение. Простое число p называется сильно простым, если выполняются условия:
p =1(mod r), p = −1(mod s), r =1(mod t),
где r, s, t - большие простые числа. |
|
|
||
Поскольку числа p, r, |
s, t - нечетные, то они |
представляются в |
виде |
|
p =1 + 2 jr , |
p = −1+ 2ks , |
r =1+ 2lt . Кроме того, |
для наших целей, |
чем |
меньше числа |
j,k,l , тем лучше. |
|
|
Существует т.н. метод Гордона для построения больших сильно простых чисел. Заметим, что при реализации метода машинный алгоритм требует отслеживания ряда особых ситуаций. Это связано с тем, что в методе неоднократно используются вероятностные процедуры построения промежуточных данных, а также применяется тестирование чисел на простоту.
Данные процедуры работают тем лучше, чем больше разрядность чисел, используемых в вычислениях.
Метод Гордона построения сильно простых чисел 193
Тем не менее, всегда необходимо предусматривать соответствующие действия в случае, если промежуточные данные на соответствующем шаге построить не удалось. Кроме того, как правило, необходимо контролировать разрядность промежуточных данных и результатов, поскольку для криптосистемы RSA требуется построение сильно простых чисел заданной разрядности.
Суть метода Гордона построения сильно простого числа p заключается в следующем [16,53].
1. Строим случайное простое число s, исходя из заранее выбранной для него разрядности. Для этого выбираем псевдослучайно число x разрядности s и
с помощью метода пробных делений оставляем в промежутке [x, x +log2 x]
числа, не имеющие малых делителей. Среди оставшихся чисел с помощью тестов на простоту определяем простое число s.
2.Строим случайное простое число t аналогично построению числа s.
3.С помощью метода пробных делений и тестов на простоту, аналогично
пункту 1, строим простое число r =1+ 2lt , перебирая l в промежутке
[1,log2 t].
4. Вычисляем u = u(r,s)= (sr−1 − rs−1 )mod rs . |
Это удобно |
сделать с |
помощью китайской теоремы об остатках, т.к. u =1(r) и u = −1(s). |
|
|
Для дальнейшего заметим, что искомое число p должно удовлетворять тем |
||
же условиям: u = p =1(mod r), u = p = −1(mod s). |
|
|
5. Если число u - нечетное, то присваиваем |
p0 =u , иначе, |
полагаем |
p0 = u + rs . |
|
|