离散对数假设
定义离散对数实验 DLog A , G ( n ) \text{DLog}_{\mathcal{A, G}}(n) DLogA,G(n):
- ( G , q , g ) ← G ( 1 n ) (\mathbb{G},q,g)\leftarrow \mathcal{G}(1^n) (G,q,g)←G(1n)。 G \mathbb{G} G 是阶为 q q q,生成元为 g g g 的群。其中 ∣ ∣ q ∣ ∣ = n ||q|| = n ∣∣q∣∣=n
- 随机选择 h ∈ G h \in \mathbb{G} h∈G
- 给 A \mathcal{A} A 输入 G , q , g , h \mathbb{G}, q, g, h G,q,g,h,输出 x ∈ Z q x \in \mathbb{Z}_q x∈Zq
- DLog A , G ( n ) = 1 \text{DLog}_{\mathcal{A, G}}(n) = 1 DLogA,G(n)=1 当且仅当 g x = h g^x = h gx=h
对于所有多项式时间算法 Pr [ DLog A , G ( n ) = 1 ] ≤ negl ( n ) \Pr[\text{DLog}_{\mathcal{A, G}}(n) = 1] \le \text{negl}(n) Pr[DLogA,G(n)=1]≤negl(n),简单来说,就是难以计算离散对数。
CDH 假设
定义 CDH 实验 CDH A , G ( n ) \text{CDH}_{\mathcal{A, G}}(n) CDHA,G(n):
- ( G , q , g ) ← G ( 1 n ) (\mathbb{G},q,g)\leftarrow \mathcal{G}(1^n) (G,q,g)←G(1n)。 G \mathbb{G} G 是阶为 q q q,生成元为 g g g 的群。其中 ∣ ∣ q ∣ ∣ = n ||q|| = n ∣∣q∣∣=n
- 随机选择 x 1 , x 2 ∈ Z q x_1, x_2 \in \mathbb{Z}_q x1,x2∈Zq, 计算 h 1 = g x 1 h_1 = g^{x_1} h1=gx1, h 2 = g x 2 h_2 = g^{x_2} h2=gx2
- 给 A \mathcal{A} A 输入 G , q , g , h 1 \mathbb{G}, q, g, h_1 G,q,g,h1, h 2 h_2 h2, 输出 h h h.
- CDH A , G ( n ) = 1 \text{CDH}_{\mathcal{A, G}}(n) = 1 CDHA,G(n)=1 当且仅当 g x 1 ⋅ x 2 = h g^{x_1\cdot x_2}=h gx1⋅x2=h
对于所有多项式时间算法 Pr [ CDH A , G ( n ) = 1 ] ≤ negl ( n ) \Pr[\text{CDH}_{\mathcal{A, G}}(n) = 1] \le \text{negl}(n) Pr[CDHA,G(n)=1]≤negl(n),简单来说,就是给定 g x , g y g^x,g^y gx,gy,难以计算 g x y g^{xy} gxy
DDH 假设
类似上面两个。简单来说,就是给定 g x , g y , g z g^x, g^y, g^z gx,gy,gz,难以判断 g z g^z gz 是否等于 g x y g^{xy} gxy。