版权声明:欢迎转载,但请注明出处,若有什么不对的地方,欢迎指正https://blog.csdn.net/wutenglong123/article/details/82623001

Diffie-Hellman 算法

DH计算快速但难以逆转,类似Diffie-Hellman算法不计其数,如基于整数分解的RSA,原则上讲,DH是基于离散对数众多加密算法的一种,1978年文章正式发表,目的为在不安全的网络环境中交换**。


对于我们常听到的DH assumption到底是么呢?

在密码学中,对于某些群体,假设 DHP(problem)很难,就被称为Diffie-Hellman假设。

这个问题经过了几十年,依旧没有任何“简单”的解决方案。
截至2006年,解决DHP的最有效方法是求解离散对数问题 (DLP),即找到给定gggxg^x。事实上,已经取得进展(by Boer, Maurer ,Wolf, Boneh and Lipton ),表明在许多群中,DHP几乎与DLP一样难。
除了通用组(Nechaev和Shoup)到目前为止,没有证据表明DHP或DLP是一个难题。
搬wiki的图,DH的交换过程一目了然:
Diffie-Hellman**交换算法(DDH,DBDH)
pp决定了复杂性,许多文章指出gg多为2或5,事实上ggpp的一个原根:

原根为一个数学符号。设mm是正整数,aa是整数,若aamm的阶等于φ(mm),则称aa为模mm的一个原根。其中φ(mm)为mm的欧拉函数。


欧拉函数:对正整数nn,欧拉函数是小于或等于nn的正整数中与nn互质的数的数目。
φ(1)=1与1互质(小于等于)的数为1本身。
此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。

gab=gba(modp)g^{ab} = g^{ba} \pmod{p}为秘密信息。
IETF RFC3526中有几个常用的pp可供使用,当a,b,p足够大时,**就会变得很困难,这就是著名的离散对数问题。当a,b交换后,便可成为双方的交换**。
pp, ga(modp)g^a\pmod{p}, gb(modp)g^b\pmod{p}, gg, 均能够直接发送。
Diffie-Hellman**交换算法(DDH,DBDH)


Decisional Diffie–Hellman assumption

决策Diffie-Hellman(DDH)假设是关于涉及循环群1

(1)若|aa|=∞,则(aa)与整数加群Z\mathbb{Z}同构;
(2)若IaaI=nn,则(aa)与模几的剩余类加群Zn\mathbb{Z}_n同构。

中的离散对数的特定问题的计算难度假设 。 它被用作证明许多加密协议安全性的基础,最值得注意的是ElGamal和Cramer-Shoup密码系统 。

循环群:
循环群是一种很重要的群,也是目前已被完全解决了的—类群。其定义为若一个群GG的每—个元都是GG的某一个固定元aa的乘方
(求n个相同因数乘积的运算,叫做乘方,乘方的结果叫做幂)
则称GG为循环群,记作GG=(aa),aa称为GG的一个生成元。循环群有无阶循环群和有阶循环群两种类型。


计算难度:
即特定问题不能有效地解决(通常为“在多项式时间内”)。目前基本上不清楚如何证明(无条件)任何有用问题的难度。

给定一个qq阶乘法群(循环群)GG及其生成集合gg

在抽象代数中,群的生成集是一个子集,使得群的每个元素可以表示为在群操作下,其子集的有限个元素及其反转的组合。

DDH假设指出, 在独立均匀的选择a,bZqa,b \in \mathbb{Z}_q 的情况下给定gag^agbg^{b}, 值gabg^{ab}GG中的随机元素。
这种直观的概念通过阐述下面的两个概率分布证明在计算上无法区分。(在安全性参数中,n=log(q)n = log(q))

在密码学中,安全性参数是测量计算问题的输入大小的变量。 加密算法,协议的资源要求或对手破坏安全性的概率都以安全参数表示。

(ga,gb,gab)(g^a,g^b,g^{ab})a,ba,b独立随机的从Zq\mathbb{Z}_q中选取
(ga,gb,gc)(g^{a},g^{b},g^{c})a,b,ca,b,c独立随机的从Zq\mathbb{Z}_q中选取
第一类三元组通常被称为DDH三元组或DDH元组。

DBDH

(Decisional Bilinear Diffie-Hellman)

DBDH 假设:
给定阶为素数 pp 的乘法 群 G1G_1G2G_2,然后随机选择生成元 gG1g\in G_1 和随机数 c1,c2,c3Zpc_1,c_2,c_3 \in Z_p ,并将元素 g,gc1,gc2,gc3G1g ,g^{c1},g^{c2},g^{c3} \in G_1TG2T\in G_2 发送给A\mathcal{A},由e(g,g)c1c2c3e(g,g)^{c1c2c3}判定 TT 是否等于e(g,g)c1c2c3e(g,g)^{c1c2c3}, 当T=e(g,g)c1c2c3T=e(g,g)^{c1c2c3} 时,A\mathcal{A}输出 11;否则输出 00
定义算法A\mathcal{A} 解决上述问题的优势是:
AdvDBDH=Pr[A(g,gc1,gc2,gc3,e(g,g)c1c2c3)=1]Pr[A(g,gc1,gc2,gc3,T)=1]Adv_{DBDH} = Pr[\mathcal{A}(g,g^{c1},g^{c2},g^{c3},e(g,g)^{c1c2c3})=1]-Pr[\mathcal{A}(g,g^{c1},g^{c2},g^{c3},T)=1]

如果没有多项式时间算法以不可忽略的优势解决DBDH假设,则我们就称DBDH假设在群 G1,G2G_1 , G_2 中是成立的。



  1. 循环群: ↩︎

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-12
  • 2021-07-20
  • 2021-05-02
  • 2021-12-29
  • 2021-07-07
猜你喜欢
  • 2021-12-11
  • 2021-11-27
  • 2021-11-17
  • 2022-01-02
相关资源
相似解决方案