- •1.Введение……………………………………………………………………………….3
- •Введение.
- •Использование pgp в программных продуктах. Создание ключей только для шифрования с помощью Kleopatra
- •Создание ключей только для шифрования с помощью GnuPg
- •Подробно об алгоритмах gnu pg и pgp4win. Стандарт генерации ключей x9.17
- •Описание idea
- •Криптоанализ idea
- •Алгоритм rsa.
- •Описание md5
- •Безопасность md5
- •Алгоритм feal.
- •Описание feal
- •Криптоанализ feal
- •3. Генерация простого числа
- •Практические соображения
- •Список литературы
Криптоанализ feal
Для вскрытия FEAL-16 нужно 228 выбранных или 246.5 известных открытых текстов. Для вскрытия FEAL-8 требуется 2000 выбранных или 237.5 известных открытых текстов. FEAL-4 может быть вскрыт с помощью всего 8 правильно выбранных открытых текстов.
Разработчики FEAL определили также модификацию FEAL - FEAL-NX, в которой используется 128-битовый ключ (см. Рис. 2.9).
Рис. 2.9 Обработка ключа в FEAL-NX.
3. Генерация простого числа
Для алгоритмов с открытыми ключами нужны простые числа. Их нужно множество для любой достаточно большой сети. Для чисел, близких n, вероятность того, что случайно выбранное число окажется простым, равна 1/ln n. Поэтому полное число простых чисел, меньших n, равно n/(ln n).
Существуют различные вероятностные проверки на простоту чисел, определяющие, является ли число простым, с заданной степенью достоверности. При условии, что эта "степень достоверности" достаточна велика, такие способы проверки достаточно хороши.
Solovay-Strassen
Роберт Соловэй (Robert Solovay) и Фолькер Штрассен (Volker Strassen) разработали алгоритм вероятностной проверки простоты числа. Для проверки простоты числа p этот алгоритм использует символ Якоби:
Выберите случайно число a, меньшее p.
Если НОД (a, p) (1, то p не проходит проверку и является составным.
Вычислите j = a(p-1)/2 mod p.
Вычислите символ Якоби J(a,p).
Если j J(a,p), то число p наверняка не является простым.
Если j = J(a,p), то вероятность того, что число p не является простым, не больше 50 процентов.
Число a, которое не показывает, что p наверняка не является простым числом, называется свидетелем. Если p - составное число, вероятность случайного числа a быть свидетелем не ниже 50 процентов. Повторите эту проверку t раз с t различными значениями a. Вероятность того, что составное число преодолеет все t проверок, не превышает 1/2t.
Lehmann
Другой, более простой тест был независимо разработан Леманном (Lehmann). Вот последовательность действий при проверке простоты числа p:
Выберите случайно число a, меньшее p.
Вычислите a(p-1)/2 mod p.
Если a(p-1)/2 1 или -1 (mod p), то p не является простым.
Если a(p-1)/2 1 или -1 (mod p), то вероятность того, что число p не является простым, не больше 50 процентов.
И снова, вероятность того, что случайное число a будет свидетелем составной природы числа p, не меньше 50 процентов. Повторите эту проверку t раз. Если результат вычислений равен 1 или -1, но не всегда равен 1, то p является простым числом с вероятностью ошибки 1/2t.
Rabin-Miller
Повсеместно используемым является простой алгоритм, разработанный Майклом Рабином (Michael Rabin), частично основанным на идеях Гэри Миллера.
Выберите для проверки случайное число p. Вычислите b - число делений p - 1 на 2 (т.е., 2b - это наибольшая степень числа 2, на которое делится p - 1). Затем вычислите m, такое что p = 1 + 2b * m.
Выберите случайное число a, меньшее p.
Установите j = 0 и z = am mod p.
Если z = 1 или если z = p - 1, то p проходит проверку и может быть простым числом.
Если j > 0 и z = 1, то p не является простым числом.
Установите j = j + 1. Если j < b и z (p - 1, установите z = z2 mod p и вернитесь на этап (4). Если z = p - 1, то p проходит проверку и может быть простым числом.
Если j = b и z p - 1, то p не является простым числом.
В этом тесте вероятность прохождения проверки составным числом убывает быстрее, чем в предыдущих. Гарантируется, что три четверти возможных значений a окажутся свидетелями. Это означает, что составное число проскользнет через t проверок с вероятностью не большей (1/4)t, где t - это число итераций. На самом деле и эти оценки слишком пессимистичны. Для большинства случайных чисел около 99.9 процентов возможных значений a являются свидетелями.
