Файл /etc/ssh/moduli

Содержит простые числа и генераторы(?) которые использует sshd(8) в методе обмена ключа Diffie-Hellman Group Exchange.

Новые модули могут быть сгенерированы при помощи ssh-keygen(1) используя процесс проходящий в два этапа. An initial candidate generation pass, using ssh-keygen -G, calculates numbers that are likely to be useful. A second primality testing pass, using ssh-keygen -T даёт высокую степень уверенности в том что числа являются простыми и безопасны для использования sshd(8) в операциях Diffie Hellman. Этот формат модулей используется as the output from each pass.

Файл состоит записей, по одной на модуль, содержащих семь полей, разделённых пробелом:
timestamptypeteststrialssizegeneratormodulus
Каждая запись начинается с новой строки. Поля следующие:
timestamp
The time that the modulus was last processed as YYYYMMDDHHMMSS.

type
десятичное число, определяющее внутреннюю структуру простого/главного модуля.
Поддерживаемые типы:
0 - неизвестен, не протестирован.
2 - безопасное простое число; (p-1)/2 также простое число.
4 - Sophie Germain; (p+1)*2 также простое число.
Кандидаты в модули изначально создаваемые утилитой ssh-keygen(1) являются простыми числами Sophie Germain(type 4). Futher primality testing with ssh-keygen(1) produces safe prime moduli (type 2) которые sshd(8) может использовать. OpenSSH не использует другие типы.

tests
Десятичное число отображающее тип теста простых чисел которым число было подвергнуто представляемое как побитовая маска из следующих значений:
0x00 Not tested.
0x01 Composite number - not prime.
0x02 Sieve of Eratosthenes.
0x04 Probabalistic Miller-Rabin primality tests.

The ssh-keygen(1) moduli candidate generation uses the Sieve of Eratosthenes (flag 0x02). Subsequent ssh-keygen(1) primality tests are Miller-Rabin tests (flag 0x04).

trials
Десятичное число отображающее испытания простых чисел которые были выполнены на модуле (во всех модулях указана цифра 100)

size
Десятичное число отображающее размер простого числа в битах.

generator
Генератор, рекомендуемый для использования с данным модулем (шестнадцатеричное чило).

modulus
Сам модуль в шестнадцатеричном виде.

Когда выполняется Diffie Hellman Group Exchange, sshd(8) первым делом оценивает размер модуля требуемого to produce enough Diffie Hellman output to sufficiently key the selected symmetric cipher. После этого sshd(8) случайным образом выбирает модуль из /etc/ssh/moduli который лучше всего подходит требуемому размеру.