资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
PKCSPKCS #3:#3: Diffie-HellmanDiffie-Hellman 密钥交换标准密钥交换标准 RSA 实验室 1.4 版本 1993 年 11 月 3 日 目录目录 目录目录 1.1. 使用范围使用范围 2.2. 参考文献参考文献 3.3. 定义定义 4.4. 记号和缩写记号和缩写 5.5. 概要概要 6.6. 参数的产生参数的产生 注意 7.7. PhasePhase I I 7.1 保密数的产生 7.2 指数运算 7.3 整数与八位字符串的转换 8.8. PhasePhase IIII 8.1 八位字符串与整数的转换 8.2 指数运算 8.3 整数与八位字符串的转换 9.9. 方案标识方案标识 修订历史修订历史 版本 1.01.2 版本 1.3 版本 1.4 AuthorsAuthors addressaddress 1.1. 使用范围使用范围 本标准叙述了一种实现 Diffie-Hellman 密钥建立的方法,以及为什么两个 参与者在没有预先安排的情况下能够生成一个只有他们双方共享的密钥(尤其 是除了参与者外,任何攻击者都不可能得到这个密钥)。这个安全的密钥可以 被参与双方用于在将来的通信中做加密密钥。 这个修订的标准已经被应用于许多的安全通信中,例如:OSI 传输层和网络 层ISO90aISO90b。 关于安全密钥的建立过程的详细描述将在下文中做详细的叙述,其中将会 详细的介绍这个标准中所需要的伪随机比特的生成。 2.2. 参考文献参考文献 X.208 CCITT. Recommendation X.208: Specification of Abstract Syntax Notation One (ASN.1). 1988. X.509 CCITT. Recommendation X.509: The DirectoryAuthentication Framework. 1988. DH76 W. Diffie and M.E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22:644654, 1976. Sch90 C.P. Schnorr. Efficient identification and signatures for smart cards. In G. Brassard, editor, Advances in CryptologyCRYPTO 89 Proceedings, volume 435 of Lecture Notes in Computer Science, pages 239251. Springer-Verlag, New York, 1990. ISO90a ISO. JTC1/SC6/N6285: Draft Transport Layer Security Protocol. Draft, November 1990. ISO90b ISO. JTC1/SC6/N2559: Draft Network Layer Security Protocol. Draft, September 1990. 3.3. 定义定义 在本标准中使用了以下的定义: AlgorithmIdentifier::一类确定的算法和器相关的参数。这种类型在 X.509 中被定义。 ASN.1:ASN.1:一种一种抽象符号描述,见 X.208。 Diffie-HellmanDiffie-Hellman parameters:parameters:是最主要的和基础的。 Diffie-HellmanDiffie-Hellman:就是 Diffie-Hellman 密钥建立协议,也叫做“指数密钥协议” ,见文献DH76. 4.4. 记号和缩写记号和缩写 大写的斜体符号(例如:PV)代表八位字节字符串;小写的斜体符号(例如: g)代表整数。 PV 公开数p 素数 PV 其它用户的公开数x 保密数 SK secret key 安全密钥x 其它用户的保密数 g 基数y 整数公开数 k 八位字节中素数的长度y 其它用户的整数公开数 l 保密数的字节长度z 整数安全密钥 mod n 模 n运算 5.5. 概要概要 在下面的四节中详细的介绍了参数的生成、Diffie-Hellman 密钥建立的两 个阶段和对用户进行认证。 Diffie-Hellman 的参数应该由一个权威的中心来产生,在 Diffie-Hellman 密钥建立的过程的两个阶段中这个参数将会被使用。显然一个权威的中心可以 产生不只一个参数,也不是仅仅只有一个权威中心。事实上每一个用户都可以 是自己的权威中心,这样不同的用户就可以得到不同的参数。Diffie-Hellman 密钥建立中 Diffie-Hellman 参数的产生算法将会被使用。 两个用户为了建立一个安全的密钥在第一个阶段将会独立的产生两个公开 数PV 和 PV, 在 Diffie-Hellman 的第二个阶段两个实体将会使用对方的公开数做为输入, 通过数学算法来保证双方得到相同的安全 Diffie-Hellman 密钥SK。 6.6. 参数的产生参数的产生 本节将介绍 Diffie-Hellman 参数的生成。 权威的中心应该选择一个素数p和一个整数基g,它们满足 0 g p.。 且权威的中心还要随机的选择一个整数l,其作为保密数的长度,它满足 2l- 1 p。 素数 p 的长度满足: 28(k1) p 28k . 注意注意 1. 一些计算离散对数的方法中素数的长度决定该种方法的计算代价大小, 而其它的代价由保密数 的长度来决定。如何通过降低保密数的长度来达到减少计算时间,但 是又不降低所生成密钥的 安全性,在文献Sch90中给出了一个最优化的方法。 2. 在素数、基和保密数长度等参数的选择时出现失误导致离散对数的计 算失败,这时这些情况使得密钥的不安全并不在本标准的使用范围内。 7.7. PhasePhase I I 本节介绍 Diffie-Hellman 密钥建立的第一个步骤。 第一步由以下三步构成:保密数的产生、幂模运算和整数变换成八位字符 串的转换。第一步的输入是 Diffie-Hellman 的参数,而第一步结束的输出应该 是八位字符串公开数PV、整数x和保密数。 为了得到一个安全的秘密密钥,这一步将由参与双方各自独立的执行。 7.17.1 保密数的产生保密数的产生 整数x,也就是保密数应该随机的、保密的产生,且这个数应该满足 0 x p1。如果权威中心对保密数的长度了l,做了具体的规定那么这时整数将要 求满足 2l-1 x 2l。 7.27.2 指数运算指数运算 基数g主要时用来对保密数x进行幂模运算的来得到y,也就是公开数: y = gx mod p, 0 y p . 这是一个一般的离散对数的计算问题。 7.37.3 整数与八位字符串的转换整数与八位字符串的转换 公开数y应该转换成长为k的八位字节字符串PV,这个公开数PV应该满足: y = , (1) 这里PV1, , PVk 是八位字节的第一位到最后一位。 也可以说PV的第一位字节在整数中是最重要的,而PV的最后一位字节与 其它位的字节相比是是最不重要的。 8.8. PhasePhase IIII 本节介绍 Diffie-Hellman 密钥建立的第二步。 第二步包括以下部分:八位字符串转换位整数、指数运算和整数变换成八 位字符串的转换。第二步的输入是八位字符串PV,也就是另外一个对等实体 的公开数和自己的保密数x。第二步结束后的输出应该是八位字符串SK,也就 是生成的秘密密钥。 这一步在第一步执行完后与其它实体交换过了公开数后,双方独立的执行 计算得到秘密密钥。 8.18.1 八位字符串与整数的转换八位字符串与整数的转换 其它实体的公开数PV转换为整数y。将PV 从第一位到最后一位分开 PV1, PVk 。则其它实体的整数公开数y 应该满足: y = . 也可以说PV 的第一位字节在整数中是最重要的,而PV 的最后一位字节 与其它位的字节相比是是最不重要的。 8.28.2 指数运算指数运算 计算出其它实体的公开数y 后进行如下运算得到一个整数z,这个数也就 是整数形式的安全秘密密钥。 z = (y)x mod p, 0 z p . 这是一个一般的离散对数的计算问题。 注意:注意:这个秘密密钥 z 应该满足以下的要求: z = (y)x = (gx)x = (gx)x = yx mod p , 这里的x是其它实体的秘密数,这个数学表达式说明了为什么双方可以得到相 同的秘密密钥。 8.38.3 整数与八位字符串的转换整数与八位字符串的转换 这个秘密密钥z应该转换成长为k八位字符串SK,且这个秘密密钥SK应 该满足: z = , 这里SK1, , SKk是第一位到最后一位。 也可以说SK的第一位字节在整数中是最重要的,而SK的最后一位字节与 其它位的字节相比是是最不重要的。 9.9. 方案标识方案标识 这个标准中定义了两个对象标识:pkcs-3 和 dhKeyAgreement. 以下是对 pkcs-3 的定义标识的定义: pkcs-3 OBJECT IDENTIFIER := iso(1) member-body(2) US(840) rsadsi(113549) pkcs(1) 3 对象标识 dhKeyAgreement 标识了 7、8 节中介绍的 Diffie-Hellman 密钥建 立的方法。 dhKeyAgreement OBJECT IDENTIFIER := pkcs-3 1 对象标识 dhKeyAgreement 的目的是使用 algorithm 文件中的类型值 AlgorithmIdentifier。这个文件类型参数有明确的运算法则 也就是 ASN.1 中的类型 DHParameter 。 DHParameter := SEQUENCE prime INTEGER, - p base INTEGER, - g privateValueLength INTEGER OPTIONAL 文件类型 DHParameter 有以下的含义: prime 是素数 p. base 是基数 g. privateValueLength 是可以选择的保密数长度 l. 修订历史修订历史 版本版本 1.01.01.21.2 版本 1.01.2 是为了参与 RSA 的数据安全,即 1991 年二月和三月公司的公 开密钥密码标准会议。 版本版本 1.31.3 版本 1.4 是 1991 年 6 月 3 日首次公开发布的 PKCS 的一部分。版本 1.3 是作为 NIST/OSI 实现的专题讨论会文档 SEC-SIG-91-18 而发布的。 版本版本 1.41.4 版本 1.4 编入了几个版本的变化,包括参考文档的更新和增加修订历史。 下面是主要的变化: 第 6 节:参数的选择修改为允许由权威中心来选择保 密数的字节长度。 7.1 节: 保密数的产生被修改为处理保密数的长度。 第 9 节: 可以随意选择文件 privateValueLength 中加入了 DHParameter 类型。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号