版权声明:欢迎转载,但请注明出处,若有什么不对的地方,欢迎指正https://blog.youkuaiyun.com/wutenglong123/article/details/82623001
Diffie-Hellman 算法
DH计算快速但难以逆转,类似Diffie-Hellman算法不计其数,如基于整数分解的RSA,原则上讲,DH是基于离散对数众多加密算法的一种,1978年文章正式发表,目的为在不安全的网络环境中交换密钥。
对于我们常听到的DH assumption到底是么呢?
在密码学中,对于某些群体,假设 DHP(problem)很难,就被称为Diffie-Hellman假设。
这个问题经过了几十年,依旧没有任何“简单”的解决方案。
截至2006年,解决DHP的最有效方法是求解离散对数问题 (DLP),即找到给定
g
g
g和
g
x
g^x
gx。事实上,已经取得进展(by Boer, Maurer ,Wolf, Boneh and Lipton ),表明在许多群中,DHP几乎与DLP一样难。
除了通用组(Nechaev和Shoup)到目前为止,没有证据表明DHP或DLP是一个难题。
搬wiki的图,DH的交换过程一目了然:
p
p
p决定了复杂性,许多文章指出
g
g
g多为2或5,事实上
g
g
g为
p
p
p的一个原根:
原根为一个数学符号。设 m m m是正整数, a a a是整数,若 a a a模 m m m的阶等于φ( m m m),则称 a a a为模 m m m的一个原根。其中φ( m m m)为 m m m的欧拉函数。
欧拉函数:对正整数 n n n,欧拉函数是小于或等于 n n n的正整数中与 n n n互质的数的数目。
φ(1)=1与1互质(小于等于)的数为1本身。
此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。
g
a
b
=
g
b
a
(
m
o
d
p
)
g^{ab} = g^{ba} \pmod{p}
gab=gba(modp)为秘密信息。
IETF RFC3526中有几个常用的
p
p
p可供使用,当a,b,p足够大时,破解就会变得很困难,这就是著名的离散对数问题。当a,b交换后,便可成为双方的交换密钥。
p
p
p,
g
a
(
m
o
d
p
)
g^a\pmod{p}
ga(modp),
g
b
(
m
o
d
p
)
g^b\pmod{p}
gb(modp),
g
g
g, 均能够直接发送。
Decisional Diffie–Hellman assumption
决策Diffie-Hellman(DDH)假设是关于涉及循环群1
(1)若| a a a|=∞,则( a a a)与整数加群 Z \mathbb{Z} Z同构;
(2)若I a a aI= n n n,则( a a a)与模几的剩余类加群 Z n \mathbb{Z}_n Zn同构。
中的离散对数的特定问题的计算难度假设 。 它被用作证明许多加密协议安全性的基础,最值得注意的是ElGamal和Cramer-Shoup密码系统 。
循环群:
循环群是一种很重要的群,也是目前已被完全解决了的—类群。其定义为若一个群 G G G的每—个元都是 G G G的某一个固定元 a a a的乘方
(求n个相同因数乘积的运算,叫做乘方,乘方的结果叫做幂)
则称 G G G为循环群,记作 G G G=( a a a), a a a称为 G G G的一个生成元。循环群有无阶循环群和有阶循环群两种类型。
计算难度:
即特定问题不能有效地解决(通常为“在多项式时间内”)。目前基本上不清楚如何证明(无条件)任何有用问题的难度。
给定一个 q q q阶乘法群(循环群) G G G及其生成集合 g g g
在抽象代数中,群的生成集是一个子集,使得群的每个元素可以表示为在群操作下,其子集的有限个元素及其反转的组合。
DDH假设指出, 在独立均匀的选择
a
,
b
∈
Z
q
a,b \in \mathbb{Z}_q
a,b∈Zq 的情况下给定
g
a
g^a
ga和
g
b
g^{b}
gb, 值
g
a
b
g^{ab}
gab为
G
G
G中的随机元素。
这种直观的概念通过阐述下面的两个概率分布证明在计算上无法区分。(在安全性参数中,
n
=
l
o
g
(
q
)
n = log(q)
n=log(q))
在密码学中,安全性参数是测量计算问题的输入大小的变量。 加密算法,协议的资源要求或对手破坏安全性的概率都以安全参数表示。
(
g
a
,
g
b
,
g
a
b
)
(g^a,g^b,g^{ab})
(ga,gb,gab)当
a
,
b
a,b
a,b独立随机的从
Z
q
\mathbb{Z}_q
Zq中选取
(
g
a
,
g
b
,
g
c
)
(g^{a},g^{b},g^{c})
(ga,gb,gc)当
a
,
b
,
c
a,b,c
a,b,c独立随机的从
Z
q
\mathbb{Z}_q
Zq中选取
第一类三元组通常被称为DDH三元组或DDH元组。
DBDH
(Decisional Bilinear Diffie-Hellman)
DBDH 假设:
给定阶为素数
p
p
p 的乘法 群
G
1
G_1
G1 和
G
2
G_2
G2,然后随机选择生成元
g
∈
G
1
g\in G_1
g∈G1 和随机数
c
1
,
c
2
,
c
3
∈
Z
p
c_1,c_2,c_3 \in Z_p
c1,c2,c3∈Zp ,并将元素
g
,
g
c
1
,
g
c
2
,
g
c
3
∈
G
1
g ,g^{c1},g^{c2},g^{c3} \in G_1
g,gc1,gc2,gc3∈G1和
T
∈
G
2
T\in G_2
T∈G2 发送给
A
\mathcal{A}
A,由
e
(
g
,
g
)
c
1
c
2
c
3
e(g,g)^{c1c2c3}
e(g,g)c1c2c3判定
T
T
T 是否等于
e
(
g
,
g
)
c
1
c
2
c
3
e(g,g)^{c1c2c3}
e(g,g)c1c2c3, 当
T
=
e
(
g
,
g
)
c
1
c
2
c
3
T=e(g,g)^{c1c2c3}
T=e(g,g)c1c2c3 时,
A
\mathcal{A}
A输出
1
1
1;否则输出
0
0
0。
定义算法
A
\mathcal{A}
A 解决上述问题的优势是:
A
d
v
D
B
D
H
=
P
r
[
A
(
g
,
g
c
1
,
g
c
2
,
g
c
3
,
e
(
g
,
g
)
c
1
c
2
c
3
)
=
1
]
−
P
r
[
A
(
g
,
g
c
1
,
g
c
2
,
g
c
3
,
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]
AdvDBDH=Pr[A(g,gc1,gc2,gc3,e(g,g)c1c2c3)=1]−Pr[A(g,gc1,gc2,gc3,T)=1]
如果没有多项式时间算法以不可忽略的优势解决DBDH假设,则我们就称DBDH假设在群 G 1 , G 2 G_1 , G_2 G1,G2 中是成立的。
附
循环群: ↩︎