# moduli(5) - man - phpMan

[MODULI(5)](https://www.chedong.com/phpMan.php/man/MODULI/5/markdown)                   BSD File Formats Manual                  [MODULI(5)](https://www.chedong.com/phpMan.php/man/MODULI/5/markdown)

## NAME
     **moduli** — Diffie-Hellman moduli

## DESCRIPTION
     The _/etc/ssh/moduli_ file contains prime numbers and generators for use by [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown) in the
     Diffie-Hellman Group Exchange key exchange method.

     New moduli may be generated with [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown) using a two-step process.  An initial _candidate_
     _generation_ pass, using **ssh-keygen** **-G**, calculates numbers that are likely to be useful.  A sec‐
     ond _primality_ _testing_ pass, using **ssh-keygen** **-T**, provides a high degree of assurance that the
     numbers are prime and are safe for use in Diffie-Hellman operations by [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown).  This **moduli**
     format is used as the output from each pass.

     The file consists of newline-separated records, one per modulus, containing seven space-sepa‐
     rated fields.  These fields are as follows:

           timestamp    The time that the modulus was last processed as YYYYMMDDHHMMSS.

           type         Decimal number specifying the internal structure of the prime modulus.  Sup‐
                        ported types are:

                        0     Unknown, not tested.
                        2     "Safe" prime; (p-1)/2 is also prime.
                        4     Sophie Germain; 2p+1 is also prime.

                        Moduli candidates initially produced by [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown) are Sophie Germain
                        primes (type 4).  Further primality testing with [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown) produces safe
                        prime moduli (type 2) that are ready for use in [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown).  Other types are
                        not used by OpenSSH.

           tests        Decimal number indicating the type of primality tests that the number has
                        been subjected to represented as a bitmask of the following values:

                        0x00  Not tested.
                        0x01  Composite number – not prime.
                        0x02  Sieve of Eratosthenes.
                        0x04  Probabilistic Miller-Rabin primality tests.

                        The [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown) moduli candidate generation uses the Sieve of Eratosthenes
                        (flag 0x02).  Subsequent [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown) primality tests are Miller-Rabin
                        tests (flag 0x04).

           trials       Decimal number indicating the number of primality trials that have been per‐
                        formed on the modulus.

           size         Decimal number indicating the size of the prime in bits.

           generator    The recommended generator for use with this modulus (hexadecimal).

           modulus      The modulus itself in hexadecimal.

     When performing Diffie-Hellman Group Exchange, [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown) first estimates the size of the modulus
     required to produce enough Diffie-Hellman output to sufficiently key the selected symmetric ci‐
     pher.  [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown) then randomly selects a modulus from _/etc/ssh/moduli_ that best meets the size
     requirement.

## SEE ALSO
     [ssh-keygen(1)](https://www.chedong.com/phpMan.php/man/ssh-keygen/1/markdown), [sshd(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown)

## STANDARDS
     M. Friedl, N. Provos, and W. Simpson, _Diffie-Hellman_ _Group_ _Exchange_ _for_ _the_ _Secure_ _Shell_ _(SSH)_
     _Transport_ _Layer_ _Protocol_, RFC 4419, March 2006 2006.

BSD                           September 26, 2012                           BSD
