交个朋友吧

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),定义:

\[e:G_1\times G_1 \to G_T \]

满足以下条件:
(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

posted @ 2022-05-05 14:37  PamShao  阅读(3042)  评论(0)    收藏  举报