DH问题汇总
本节内容主要学习有关DH的假设问题:
DLP(Discrete Logarithm Problem)
离散对数问题就是:
在\(n\)阶加法群\((G,+)\)中,给出两个群元素\(P,Q\),求整数\(n\in [0,n-1]\),满足\(Q=nP\)
DLP在某些群上计算是困难的,比如有限域上的乘法群(the multiplicative group of a finite field)和有限域上的椭圆曲线点群(the group of points on an elliptic curve defined over a finite field)。
具体如下:
(1)乘法群
在\(n\)阶乘法群\((G,*)\)中,给出两个群元素\(P,Q\),求整数\(n\in [0,n-1]\)是困难的,满足\(Q=P^n\)
比如:原始的ElGamal加密算法。详细,请见:ElGamal算法
(2)椭圆曲线
即椭圆曲线上的离散对数问题(ECDLP)
取一条椭圆曲线,给出\(P,Q\),找出一个整数\(x\)是困难的,使其满足\(P=xQ\)(椭圆曲线上的倍乘)。
例如:基于椭圆曲线的ElGamal加密算法。
DHP(Diffie-Hellman Problem)
已知\(P,aP,bP\),求\(abP\)。
基于该问题设计了DH密钥交换协议,具体请参考:计算困难假设(Computational hardness assumption),DH密钥交换
在多项式时间内,DHP可以规约为DLP,以及在某些情况下,DLP也可以规约为DHP。
BDHP(bilinear Diffie-Hellman Problem)
双线性对
设\(n\)是一个素数,\((G_1,+)\)是一个\(n\)阶加法群(单位元是\(\infty\)),\((G_T,*)\)是一个\(n\)阶乘法群(单位元是1),定义:
满足以下条件:
(1)(bilinearity)对于任意的\(R,S,T\in G_1\),有\(e(R+S,T)=e(R,T)e(S,T)\)和\(e(R,S+T)=e(R,S)e(R,T)\)
(2)(non-degeneracy)\(e(P,P)\neq 1\)
(3)(computability)\(e\)是可计算的
性质
双线性对有以下性质:
(1)\(e(S,\infty)=1\)和\(e(\infty,S)=1\)
(2)\(e(S,-T)=e(-T,S)=e(S,T)^{-1}\)
(3)\(e(aS,bT)=e(S,T)^{ab}\),对于\(a,b\in Z\)
(4)\(e(S,T)=e(T,S)\)
(5)如果\(e(S,R)=1\),对于所有的\(R\in G_1\),则\(S=\infty\)
由双线性对性质产生一个引理:
\(G_1\)上的DLP可以规约到\(G_T\)上的DLP
例如:\((P,Q)\)是\(G_1\)上的一个DLP实例,其中\(Q=xP\),那么\(e(P,Q)=e(p,xP)=e(P,P)^x\),所以\(log_PQ=log_gh\),其中\(g=e(P,P),h=e(P,Q)\)是\(G_T\)上的元素。
即\(Q=xP\)问题变成了\(g=h^x\)问题
而很多基于双线性对协议的安全性是BDHP。
BDHP
\(e\)是一个双线性映射在\((G_1,G_T)\)上,该问题可描述为:给出\(P,aP,bP,cP\),计算\(e(P,P)^{abc}\)是困难的,其中其中\(a,b,c\in Z\)。
BDHP依赖于DHP在\(G_1\)和\(G_T\)上的困难性。
若DHP在\(G_1\)上能解决(即给出\(aP,bP\),可以计算出\(abP\)),则可以通过计算\(abP\),然后计算\(e(abP,cP)=e(P,P)^{abc}\),从而解决BDHP。
同样若对于\(G_T\)上能解决(即给出\(g,g^{ab},g^c\),可以计算出\(g^{abc}\)),则可以计算\(g=e(P,P),g^{ab}=e(aP,bP),g^c=(P,P)^{abc}\),然后计算出\(g^{abc}\),从而解决BDHP。
BDDHP(bilinear decisional Diffie-Hellman Problem)
\(e\)是一个双线性映射在\((G_1,G_T)\)上,该问题可描述为:给出\(P,aP,bP,cP\),区分\(e(P,P)^{abc}\)和\(e(P,P)^d\)是困难的,其中\(a,b,c,d\in Z\)。
DDHP(Decision Diffie-Hellman Problem)
(在加法群上)\(e\)是一个双线性映射在\((G_1,G_T)\)上,该问题可描述为:给出\(P,aP,bP,cP\),区分\(e(P,P)^{ab}\)和\(e(P,P)^c\)是困难的,其中\(a,b,c\in Z\)。
如果给出\(G_1\)上的四元组\(P,aP,bP,cP\),使得\(cP=abP\),即\(r_1=e(P,cP)^c,r_2=e(aP,bP)^{ab}\),若\(r_1=r_2\),这样DDHP可以解决。
否则,不能!
CDHP(Computational Diffie-Hellman Problem)
(在加法群上)\(e\)是一个双线性映射在\((G_1,G_T)\)上,该问题可描述为:给出\(P,aP,bP,\),求\(e(P,P)^{ab}\)是困难的,其中\(a,b\in Z\)。
CDHP又分为两种:
Inv-CDHP(Inverse Computational Diffie-Hellman Problem)
求逆:对于\(a ∈ Z_q^*\), 给出\(P, P^a\),计算\(P^{a^{-1}}\)是困难的.
Squ-CDHP(Square Computational Diffie-Hellman Problem)
求平方:对于\(a ∈ Z_q^*\), 给出\(P, P^a\),计算\(P^{a^{2}}\)是困难的.
BCDHP(Bilinear Computational Diffie-Hellman problem )
任意选取\((a,b,c)\),在多项式时间内计算出\(g^{abc}\)是困难的
GHP群(Gap Diffie-Hellman group)
在一个群中,DDHP是容易的但CDHP很难的就被称为GDH。通过双线性对(bilinear pairing),我们可以得到GDH群,这种群在有限域上的supersingular 椭圆曲线或者hyperelliptic 椭圆曲线上可以找到,双线性对来自Weil 或者 Tate pairing。
可以看出BDDHP和BCDHP比DDHP和CDHP多了一个变量,为什么要多加一个变量?
因为,如果存在一个\(GxG\to G'\)(\(G,G'\)都是群)的双线性对的话, DDH问题是可以被快速解决的。所以就有了BDDH,故即使存在双线性对,BDDH问题仍然是难以计算的。
参考
1、An Efficient Signature Scheme from Bilinear Pairings and Its Applications
2、An Introduction to Pairing-Based Cryptography学习笔记
3、An Introduction to Pairing-Based Cryptography
4、DL,D-H,CDH problem,CDH assumption,DDH,BDDH,BCDH

浙公网安备 33010602011771号