密码学中的常见困难问题

密码学中常见的困难问题一般分为两类

计算困难问题(Computational Hard Problems)

如果给定一个问题实例作为输入,在多项式时间内找到这个问题实例的正确解的概率是l的一个可忽略的函数,用 ε ( λ ) \boldsymbol{\varepsilon}(\lambda) ε(λ)(简称 ε \boldsymbol{\varepsilon} ε)表示,那么用安全参数 λ \lambda λ生成的计算问题是困难的。如果 λ \lambda λ不够大,计算问题肯定很容易。

下面给出一些计算难题,其中 G \mathbb{G} G是来自配对群e: G × G → G T \mathbb{G} \times \mathbb{G} \rightarrow \mathbb{G}_T G×GGT

离散对数问题(Discrete Logarithm Problem, DL)
实例: g , g a ∈ G g,g^a \in \mathbb{G} g,gaG G \mathbb{G} G是一般的循环群, a ∈ Z p a \in \mathbb{Z}_p aZp
计算: a a a
解读: 给定 g , g a ∈ G g,g^a \in \mathbb{G} g,gaG,在循环群上计算出指数 a a a是困难的。(因为它涉及在有限群中通过逆运算(即对数)来找回指数 a a a,这在一般情况下是计算上非常困难的。)

计算DH问题(Computational Diffie-Hellman Problem, CDH)
实例: g , g a , g b ∈ G g,g^a,g^b \in \mathbb{G} g,ga,gbG G \mathbb{G} G是一般的循环群, a , b ∈ Z p a,b \in \mathbb{Z}_p a,bZp
计算: g a b g^{ab} gab
解读: 给定生成元 g g g以及两个群元素 g a g^a ga, g b g^b gb,在循环群上计算出 g a b g^{ab} gab是困难的。由于并不知道a,b的具体值,也无法通过幂的逆运算(DL问题)得到a或b,因此计算 g a b g^{ab} gab是非常困难的。

q-强DH问题(q-Strong Diffie-Hellman Problem, q-SDH)
实例: g , g a , g a 2 , ⋯   , g a q ∈ G g,g^a,g^{a^2}, \cdots, g^{a^q} \in \mathbb{G} g,ga,ga2,,gaqG
计算: ( s , g 1 a + s ) ∈ Z p × G (s,g^{\frac{1}{a+s}}) \in \mathbb{Z}_p \times \mathbb{G} (s,ga+s1)Zp×G, s s s Z p \Z_p Zp中任意取得值。
解读: 给定 g , g a , g a 2 , ⋯   , g a q g,g^a,g^{a^2}, \cdots, g^{a^q} g,ga,ga2,,gaq的一系列幂次后,问题是要找到一个数值对 ( s , g 1 a + s ) (s,g^{\frac{1}{a+s}}) (s,ga+s1),即需要通过已知的幂次计算得到 g 1 a + s g^{\frac{1}{a+s}} ga+s1。在没有直接知道 a a a s s s的情况下,这种运算因指数运算的组合性变得及其困难,因此,在循环群 G \mathbb{G} G中,计算数值对 ( s , g 1 a + s ) (s,g^{\frac{1}{a+s}}) (s,ga+s1)是困难的。

q-强 Diffie-Hellman 逆问题 (q-Strong Diffie-Hellman Inversion Problem, q-SDHI)
实例: g , g a , g a 2 , ⋯   , g a q ∈ G g,g^a,g^{a^2}, \cdots, g^{a^q} \in \mathbb{G} g,ga,ga2,,gaqG
计算: g 1 a g^{\frac{1}{a}} ga1
解读: 给定了生成元 g g g以及一系列幂值 g a , g a 2 , ⋯   , g a q g^a,g^{a^2}, \cdots, g^{a^q} ga,ga2,,gaq,求出 g 1 a g^{\frac{1}{a}} ga1。但是 a a a本身是未知的,如何从 g , g a , g a 2 , ⋯   , g a q g,g^a,g^{a^2}, \cdots, g^{a^q} g,ga,ga2,,gaq信息中推到出 g 1 a g^{\frac{1}{a}} ga1在群 G \mathbb{G} G困难的。

双线性DH问题(Bilinear Diffie-Hellman Problem, BDH)
实例: g , g a , g b , g c ∈ G g,g^a,g^b,g^c \in \mathbb{G} g,ga,gb,gcG a , b , c ∈ Z p a,b,c \in \mathbb{Z}_p a,b,cZp
计算: e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc
解读: 给定 g , g a , g b , g c g,g^a,g^b,g^c g,ga,gb,gc ,计算 e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc,其中e是两个循环群 G \mathbb{G} G的元素映射到目标群 G T \mathbb{G}_T GT的双线性函数,由于无法计算出a,b,c的值(DL)。因此从给定的条件中无法计算出 e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc

q-双线性Diffie-Hellman逆问题(q-Bilinear Diffie-Hellman Inversion Problem, q-BDHI)
实例: g , g a , g b , g c ∈ G g,g^a,g^b,g^c \in \mathbb{G} g,ga,gb,gcG a , b , c ∈ Z p a,b,c \in \mathbb{Z}_p a,b,cZp
计算: e ( g , g ) 1 a e(g,g)^{\frac1a} e(g,g)a1
解读: 给定 g , g a , g b , g c ∈ G g,g^a,g^b,g^c \in \mathbb{G} g,ga,gb,gcG条件,无法从这些条件中计算出 a a a或者 1 a \frac1a a1,因此需要计算 e ( g , g ) 1 a e(g,g)^{\frac1a} e(g,g)a1是非常困难的。

q-双线性DH问题 (q-Bilinear Diffie-Hellman Problem, q-BDH)
实例: g , g a , g a 2 , ⋯   , g a q , g a q + 2 , g a q + 3 , ⋯   , g a 2 q , h ∈ G g,g^a,g^{a^2},\cdots,g^{a^q},g^{a^{q+2}},g^{a^{q+3}},\cdots,g^{a^{2q}},h\in\mathbb{G} g,ga,ga2,,gaq,gaq+2,gaq+3,,ga2q,hG
计算: e ( g , h ) a q + 1 e(g,h)^{a^{q+1}} e(g,h)aq+1
解读: 给定 g , g a , g a 2 , ⋯   , g a q , g a q + 2 , g a q + 3 , ⋯   , g a 2 q , h g,g^a,g^{a^2},\cdots,g^{a^q},g^{a^{q+2}},g^{a^{q+3}},\cdots,g^{a^{2q}},h g,ga,ga2,,gaq,gaq+2,gaq+3,,ga2q,h计算 e ( g , h ) a q + 1 e(g,h)^{a^{q+1}} e(g,h)aq+1。由于计算 e ( g , h ) a q + 1 e(g,h)^{a^{q+1}} e(g,h)aq+1需要依赖于已知的元素,意味着解决这个问题需要推到出 a a a q q q的值,而通过给定的条件,计算 a a a q q q的值在群 G \mathbb{G} G是困难的,所以q-BDH是困难的。

决策困难问题(Decisional Hard Problems)

如果给定一个目标为 Z Z Z的问题实例作为输入,在多项式时间内返回正确猜测的优势是l的一个可忽略的函数,表示为 ε ( λ ) \boldsymbol{\varepsilon}(\lambda) ε(λ)(简称 ε \boldsymbol{\varepsilon} ε),则用安全参数 λ \lambda λ生成的决策问题是困难的。
ε = Pr ⁡ [ Guess  Z = True ∣ Z = True ] − Pr ⁡ [ Guess  Z = True ∣ Z = False ] \varepsilon=\Pr\left[\text{Guess }Z=\text{True}|Z=\text{True}\right]-\Pr\left[\text{Guess }Z=\text{True}|Z=\text{False}\right] ε=Pr[Guess Z=TrueZ=True]Pr[Guess Z=TrueZ=False]

  • Pr ⁡ [ Guess  Z = True ∣ Z = True ] \Pr\left[\text{Guess }Z=\text{True}|Z=\text{True}\right] Pr[Guess Z=TrueZ=True]表示如果 Z Z Z为真,猜对 Z Z Z的概率。
  • Pr ⁡ [ Guess Z = True ∣ Z = False ] \Pr\left[\text{Guess Z}=\text{True}|Z=\text{False}\right] Pr[Guess Z=TrueZ=False]表示如果 Z Z Z为假,猜错 Z Z Z的概率。

如果 λ \lambda λ不够大,决策问题肯定很容易。

下面给出一些决策难题,其中 G \mathbb{G} G是来自配对群e: G × G → G T \mathbb{G} \times \mathbb{G} \rightarrow \mathbb{G}_T G×GGT

决策DH问题(Decisional Diffie-Hellman Problem, DDH)
实例: g , g a , g b , Z ∈ G g,g^a,g^b,Z\in\mathbb{G} g,ga,gb,ZG G \mathbb{G} G是个一般的循环群。
计算: Z = ? g a b Z \overset{\text{?}}{=} g^{ab} Z=?gab
解读: 给定 g , g a , g b , Z g,g^a,g^b,Z g,ga,gb,Z ,但我们并不知道 a a a b b b的具体值,因此 g a b g^{ab} gab的值在计算上是不可得的。因此现在没有一个有效的算法能够判断 Z = ? g a b Z \overset{\text{?}}{=} g^{ab} Z=?gab

变种决策DH问题(Variant Decisional Diffie-Hellman Problem, Variant DDH)
实例: g , g a , g b , g a c , Z ∈ G g,g^{a},g^{b},g^{ac},Z\in\mathbb{G} g,ga,gb,gac,ZG G \mathbb{G} G是一个一般的循环群。
决策: Z = ? g b c Z \overset{\text{?}}{=} g^{bc} Z=?gbc
解读: 给定 g , g a , g b , g a c , Z g,g^{a},g^{b},g^{ac},Z g,ga,gb,gac,Z,与标准的DDH问题类似,由于我们不能直接计算出 b b b c c c的值,因此 g b c g^{bc} gbc在计算上是不可得的,因此现在没有一个有效的算法能够判断 Z = ? g b c Z \overset{\text{?}}{=} g^{bc} Z=?gbc

决策双线性DH问题(Decisional Bilinear Diffie-Hellman Problem, DBDH)
实例: g , g a , g b , g c ∈ G , Z ∈ G T g,g^a,g^b,g^c\in\mathbb{G},Z\in\mathbb{G}_T g,ga,gb,gcG,ZGT
决策: Z = ? e ( g , g ) a b c Z \overset{\text{?}}{=} e(g,g)^{abc} Z=?e(g,g)abc
解读: 给定 g , g a , g b , g c g,g^a,g^b,g^c g,ga,gb,gc,计算 e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc。从BDH问题中我们可以得出,计算a,b,c的值是不可能的,因此计算 e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc是困难的。所以现在没有一个有效的算法能够判断 Z = ? e ( g , g ) a b c Z \overset{\text{?}}{=} e(g,g)^{abc} Z=?e(g,g)abc

决策线性问题(Decisional Linear Problem)
实例: g , g a , g b , g a c 1 , g b c 2 , Z ∈ G g,g^a,g^b,g^{ac_1},g^{bc_2},Z\in\mathbb{G} g,ga,gb,gac1,gbc2,ZG
决策: Z = ? g c 1 + c 2 Z \overset{\text{?}}{=} g^{c_1+c_2} Z=?gc1+c2
解读: 给定 g , g a , g b , g a c 1 , g b c 2 g,g^a,g^b,g^{ac_1},g^{bc_2} g,ga,gb,gac1,gbc2,计算 g c 1 + c 2 g^{c_1+c_2} gc1+c2。从DDH问题中我们可以得出计算 a , b , c 1 , c 2 a,b,c_1,c_2 a,b,c1,c2的值是困难的,从而从 g a c 1 , g b c 2 g^{ac_1},g^{bc_2} gac1,gbc2中提取出 c 1 , c 2 c_1,c_2 c1,c2是困难的,因此现在没有一个有效的算法能够判断 Z = ? g c 1 + c 2 Z \overset{\text{?}}{=} g^{c_1+c_2} Z=?gc1+c2

q-决策扩展双线性DH指数问题(q-Decisional Augmented Bilinear Diffie-Hellman Exponentiation Problem, q-DABDHE)
实例: g , g a , g a 2 , ⋯   , g a q , h , h a q + 2 ∈ G g,g^a,g^{a^2},\cdots,g^{a^q},h,h^{a^q+2} \in \mathbb{G} g,ga,ga2,,gaq,h,haq+2G Z ∈ G T Z \in \mathbb{G}_T ZGT
决策: Z = ? e ( g , h ) a q + 1 Z \overset{\text{?}}{=} e(g,h)^{a^{q+1}} Z=?e(g,h)aq+1
解读: q-DABDHE问题的关键是无法直接计算出 a q + 1 a^{q+1} aq+1并验证该结果。提供的实例条件很难推导出 a q + 1 a^{q+1} aq+1,复杂性比DBDH问题更高,映射关系更加困难。
运用场景:身份基加密,分层加密方案。

Decisional ( P,Q, f \mathit{f} f ) - GDHE Problem
实例: g P ( x 1 , x 2 , ⋯   , x m ) ∈ G g^{P(x_1,x_2,\cdots,x_m)}\in \mathbb{G} gP(x1,x2,,xm)G, e ( g , g ) Q ( x 1 , x 2 , ⋯   , x m ) e(g,g)^{Q(x_1,x_2,\cdots,x_m)} e(g,g)Q(x1,x2,,xm), Z ∈ G T Z \in \mathbb{G}_T ZGT
P = ( p 1 , p 2 , ⋯   , p s ) ∈ Z p [ X 1 , ⋯   , X m ] s P=(p_1,p_2,\cdots,p_s) \in \mathbb{Z}_p[X_1,\cdots,X_m]^s P=(p1,p2,,ps)Zp[X1,,Xm]s是一个由变量m多项式组成的s元组。
Q = ( q 1 , q 2 , ⋯   , q s ) ∈ Z p [ [ X 1 , ⋯   , X m ] s Q=(q_1,q_2,\cdots,q_s) \in \mathbb{Z}_p[[X_1,\cdots,X_m]^s Q=(q1,q2,,qs)Zp[[X1,,Xm]s是一个由变量m多项式组成的s元组。
f ∈ Z p [ X 1 , ⋯   , X m ] \mathit{f} \in \mathbb{Z}_p[X_1,\cdots,X_m] fZp[X1,,Xm]
f ≠ ∑ a i , j p i p j + ∑ b i q i  holds for  ∀ a i , j , b i f\neq\sum a_{i,j}p_ip_j+\sum b_iq_i\text{ holds for }\forall a_{i,j},b_i f=ai,jpipj+biqi holds for ai,j,bi
决策: Z = ? e ( g , h ) f ( x 1 , x 2 , ⋯   , x m ) Z \overset{\text{?}}{=} e(g,h)^{\mathit{f}(x_1,x_2,\cdots,x_m)} Z=?e(g,h)f(x1,x2,,xm)

Decisional ( f \mathit{f} f, g, F)-GDDHE Problem
实例: g , g a , g a 2 , ⋯   , g n − 1 , g a f ( a ) , g b a f ( a ) ∈ G g,g^a,g^{a^2},\cdots,g^{n-1},g^{a\mathit{f}(a)},g^{ba\mathit{f}(a)} \in \mathbb{G} g,ga,ga2,,gn1,gaf(a),gbaf(a)G
h , h a , h a 2 , ⋯   , h a 2 k , h b ⋅ g ( a ) ∈ G h,h^{a},h^{a^{2}},\cdots,h^{a^{2k}},h^{b\cdot g(a)}\in\mathbb{G} h,ha,ha2,,ha2k,hbg(a)G
Z ∈ G T Z\in\mathbb{G}_T ZGT
f ( x ) , g ( x ) f(x),g(x) f(x),g(x)是阶数为n,k,且阶数互素的多项式。
决策: Z = ⁡ ? e ( g , h ) b ⋅ f ( a ) Z\overset{?}{\operatorname*{=}}e(g,h)^{b\cdot f(a)} Z=?e(g,h)bf(a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值