Сказать, что q
делит p-1
- то же самое, что сказать, что p ≡ 1 mod q.
Метод FIPS
существенно сдвигает и добавляет последовательные выходные данные хеш-функции для построения псевдослучайного фрагмента правильного размера, а затем вычитает остаток так, что p ≡ 1 mod 2q
, и, наконец, проверяет на простоту. Единственная «настоящая» энтропия в этом процессе - случайное семя.
Обратите внимание также, что старое FIPS-186
выше 'жестко закодировано' для 160 bit q
Если у вас много энтропии, вы можете так же легко получить кусок случайного числа из хорошего источника, установите верхний и нижний биты на 1, вычтите ((p mod q)-1)
, затем проверьте это на простоту.