moduli 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


MODULI(5)                 OpenBSD Programmer's Manual                MODULI(5)

名称
     moduli - 系统模数文件


描述
     /etc/ssh/moduli 文件包含用于 sshd(8) 的全局范围的 Diffie-Hellman 素数模数(prime modulus)。

     这个文件中的每一行都包含下列字段: Time, Type, Tests, Tries, Size, Generator, Modulus 。
     字段之间使用空白符分隔。每个字段的具体含义如下:

     Time: yyyymmddhhmmss  标明这一行被添加时刻的系统时间,00000000000000 表示未知。

     Type: 整数  指定素模(prime modulus)的内部结构
           0:      未知。表示在协议操作时从另一端获取,并保存下来以便将来分析。
           1:      随意的结构。也就是一个普通的大数。
           2:      安全的结构(p = 2q + 1)。满足基本的结构要求。
           3:      满足Schnorr签名方案的要求。强度比较低。
           4:      Sophie-Germain(q = (p-1)/2)。索菲热尔曼素数,通常在检测素数强度的过程中生成。
           5:      强安全的结构。通常用于生成RSA公钥。

     Tests: 整数(位字段)  指定用于判断一个数是否是素数的方法。
       可以是下面值的叠加,比如:6 表示同时使用 sieve 和 Miller-Rabin 方法。推荐使用 30 。
           0:      不测试。表示在协议操作时从另一端获取,并保存下来以便将来分析。
           1:      组合(composite)。会导致一个或多个测试失败。这种情况下,最高位用于指定失败的测试。
           2:      筛子(sieve)。使用一组小素数来检查是否可以整除。
           4:      Miller-Rabin
           8:      Jacobi
           16:     椭圆曲线(Elliptic Curve)

     Tries: 整数  取决于最高有效测试位的值,不同的数值所代表的方法如下:
           0:      不测试(总是零)
           1:      组合
           2:      筛子。过滤多少过素数,一般大约是 32,000,000 个。
           4:      Miller-Rabin;  M-R 迭代次数,一般大约是 32 到 64 次。
           8:      Jacobi;  未知(总是零)
           16:     Elliptic Curve;  未使用(总是零)

     Size: 整数  指定最高有效位的数量(0 到 1,000,000)

     Generator: 16进制字符串  指定用于 Diffie-Hellman 交换最好的发生器。
                        0(未知或可变), 2, 3, 5, 等等...

     Modulus: 16进制字符串  素数模数(prime modulus)

     这个文件用于在需要模数的时候从中搜寻符合条件(Time, Size, Generator)的模数。
     如果有多个模数都是合格的,那么将倾向于选择较新的模数,但也并不是说旧的模数就一定没有机会被使用。

     可以使用 ssh-keygen(1) 工具来生成新模数。


文件
     /etc/ssh/moduli

参见
     ssh-keygen(1), sshd(8)

OpenBSD 4.2                      May 31, 2007                                2