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 消息的公钥加密算法,通过串接加密可以支持任意长度的明文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值