|
|
Компьютеры - Случайное простое число - Требования к алгоритму и его реализации23 января 2011
Оглавление: 1. Случайное простое число 2. Требования к алгоритму и его реализации 3. Генерация простых чисел Софи Жермен
Требования к алгоритмам генерации случайных простых чисел сводятся к следующим двум:
- Распределение получаемых простых чисел должно быть близко к равномерному на множестве всех простых чисел, содержащих k битов. Существует несколько способов обеспечить выполнимость этого требования.
- Процесс генерации конкретного случайного простого числа нельзя воспроизвести, даже зная детали алгоритма и его реализации. Обычно выполнение этого требования обеспечивается использованием криптостойкого ГПСЧ, проинициализированного некоторым ключом, получаемым извне. В качестве ключа может выступать, например, значение криптографической хеш-функции от секретной фразы, запрашиваемой у пользователя.
Типовые алгоритмы генерации случайных простых чисел
Везде далее предполагается использование криптографически стойкого ГПСЧ, проинициализированного с помощью секретного ключа.
Тестирование простоты
Проверить простоту числа p, содержащего k битов, можно так:
- Убедиться, что p не делится на небольшие простые числа 3, 5, 7, 11, и т.д. до некоторого небольшого предела. Такая проверка позволяет эффективно отсечь множество заведомо составных чисел, прежде чем проверять их посредством более трудоёмких алгоритмов. Так, проверка делимости p на простые числа 2, 3, 5 и 7 отсеивает все четные числа и 54% нечетных чисел, проверка делимости p на все простые числа до 100 отсеивает 76% нечетных чисел, а проверка делимости p на все простые числа до 256 отсеивает 80% нечетных чисел.
- Выполнить тест Миллера — Рабина с количеством раундов не меньше k.
Если число p не проходит хотя бы одной проверки — оно не является простым. В противном случае с большой вероятностью число p является простым.
Типовой алгоритм 1
- Сгенерировать k − 1 случайных битов и составить из них k-битное число p.
- Увеличить p на 1 и проверить его простоту. Повторять этот шаг до тех пор, пока не будет найдено простое число.
Второй шаг можно ускорить, если рассматривать только нечетные числа или числа сравнимые с 1 и 5 по модулю 6 и т.п.
Типовой алгоритм 2
Этот алгоритм описан в книге «Введение в криптографию» под редакцией В. В. Ященко.
Просмотров: 2616
|