Diffie-Hellman 密钥交换&ElGamal协议的安全密钥交换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Diffie-Hellman 密钥交换&ElGamal协议的安全密钥交换相关的知识,希望对你有一定的参考价值。

参考技术A

在整数中, 离散对数 是一种基于同余运算和原根的一种对数运算。而在实数中对数的定义 是指对于给定的 a 和 b ,有一个数 x ,使得 = a 。相同地在任何群 G 中可为所有整数 k 定义一个幂数为 ,而 离散对数 是 指使得 = a的 整数 k 。

离散对数在一些特殊情况下可以快速计算。然而,通常没有具非常效率的方法来计算它们。公钥密码学中几个重要算法的基础,是假设寻找离散对数的问题解,在仔细选择过的群中,并不存在有效率的求解算法。

Diffie-Hellman是一种建立密钥的方法,而不是加密方法。然而,它所产生的密钥可用于加密、进一步的密钥管理或任何其它的加密方式。Diffie-Hellman密钥交换算法及其优化首次发表的公开密钥算法出现在Diffie和Hellman的论文中,这篇影响深远的论文奠定了公开密钥密码编码学。

这种密钥交换技术的目的在于使得两个用户安全地交换一个秘密密钥以便用于以后的报文加密. Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度 。

From WIKI:

最简单,最早提出的这个协议使用一个质数 p 的整数模n乘法群)以及其原根 g 。下面展示这个算法,绿色表示非秘密信息, 红色粗体 表示秘密信息

爱丽丝和鲍伯就同时协商出群元素 ,它可以被用作共享秘密。 和 因为群乘法交换的。

爱丽丝和鲍伯最终都得到了同样的值,因为在模p下 和 相等。 注意a, b 和 是秘密的。 其他所有的值 – p, g, , 以及 – 都可以在公共信道上传递。 一旦爱丽丝和鲍伯得出了公共秘密,他们就可以把它用作对称密钥,以进行双方的加密通讯,因为这个密钥只有他们才能得到。

1984年,T.Elgamal提出了一种基于离散对数的公开密钥体制,是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。ElGamal密码体系应用于一些技术标准中,如数字签名标准(DSS)和S/MIME电子邮件标准。与Diffie-Hellman一样,ElGamal的系统用户也是共同选择一个素数q, 是q的素跟。

ElGamal加密算法由三部分组成:密钥生成、加密和解密。

密钥生成步骤如下:

其他用户可以通过Alice的公钥进行加密。

用Alice的公钥 向她加密一条消息 m的加密算法工作方式如下:

Alice利用自己的私钥进行解密。

如果信息必须分组,然后以加密的密钥块序列发送,那么每个分块要有唯一的x(私钥)。如果x用于多个分块,则利用信息的分块 ,攻击者会计算出其他块。

ElGamal的安全性是基于计算离散对数的困难性之上。

[1]维基百科编者. 迪菲-赫尔曼密钥交换[G/OL]. 维基百科, 2018(20180503)[2018-05-03]. https://zh.wikipedia.org/w/index.php?title=%E8%BF%AA%E8%8F%B2-%E8%B5%AB%E7%88%BE%E6%9B%BC%E5%AF%86%E9%91%B0%E4%BA%A4%E6%8F%9B&oldid=49408565 .

[2]《密码编码学与网络安全 原理与实践》(第6版)斯托林斯著

[3]维基百科编者. ElGamal加密算法[G/OL]. 维基百科, 2016(20161214)[2016-12-14]. https://zh.wikipedia.org/w/index.php?title=ElGamal%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95&oldid=42453545 .

以上是关于Diffie-Hellman 密钥交换&ElGamal协议的安全密钥交换的主要内容,如果未能解决你的问题,请参考以下文章

Diffie-Hellman密钥交换

网络密钥交换协议——Diffie-Hellman

Diffie-Hellman密钥交换

nodejs实现端到端加密

如何处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥?

如何处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥?