本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
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