失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > dh算法 理论依据_DH算法为什么属于非对称加密算法?

dh算法 理论依据_DH算法为什么属于非对称加密算法?

时间:2020-03-01 19:08:49

相关推荐

dh算法 理论依据_DH算法为什么属于非对称加密算法?

Diffie-Hellman 密钥交换算法是一个仅用两条消息的密钥交换协议,任何这样的协议都蕴含一个公钥加密算法。Diffie-Hellman 密钥交换所蕴含的加密算法通常叫做 ElGamal 加密。

一个仅用两条消息的密钥交换算法是四个算法 mesg1、mesg2、gen1、gen2(第 1/2 个人的消息生成/密钥生成算法),其中 mesg1 输出消息 m1 和秘密 s1,mesg2 看到 m1 后输出消息 m2 和秘密 s2,gen1 通过 s1、m2 产生 K,gen2 通过 s2、m1 产生 K。

正确性要求 K 必须相等,安全性要求 (m1, m2, K) 和 (m1, m2, K') 不可区分,其中 K' 是一个独立的随机密钥(换言之,窃听通信可以得到 m1、m2,即使看到这两条消息,双方交换得到的密钥仍然是伪随机的)。

有了这样一个密钥交换算法,可以如下构造一个公钥加密算法:密钥生成算法 Gen 运行 mesg1,设定 m1 是公钥 pk,s1 是私钥 sk

加密算法 Enc 运行 mesg2(m1),得到 m2 和 s2,运行 gen2(s2, m1) 得到 K,输出 (m2, K xor M)

解密算法 Dec 运行 gen1(s1, m2),得到 K 后即可还原 M

这个加密算法的 IND-CPA 安全性可以归结为密钥交换算法的安全性:根据密钥交换算法的安全性,我们可以把加密里的 K 替换成 K';一旦完成这样的替换,M 就被完全隐藏,安全性是完美的。

回到 DH 密钥交换。如果用一个 DDH 困难的群,则交换得到的密钥 K 已经是伪随机了,可以直接做出支持 G(那个群)为明文空间的加密算法。如果使用的群只是 CDH 困难,则可以通过 Goldreich-Levin 从 g^(ab) 中提取一个 hardcore bit,于是交换得到的伪随机数是一个 bit,这样即可做出支持加密 1 bit 消息的公钥加密算法,通过串接加密可以支持任意长度的明文。

如果觉得《dh算法 理论依据_DH算法为什么属于非对称加密算法?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。