游戏流程:挑战者生成密钥对,敌手可多项式次获取明文加密结果;敌手输出两个等长消息 M 0 , M 1 M_0,M_1 M0,M1,挑战者随机加密其中一个(目标密文);敌手猜测加密的是 M 0 M_0 M0还是 M 1 M_1 M1。
敌手优势:KaTeX parse error: Double superscript at position 31: …A}(λ) = |Pr[β'̲=β] - 1/2|,其中 I ^ 2 β I^2是挑战者选择的比特,KaTeX parse error: Double superscript at position 3: β'̲是敌手猜测的比特。
安全定义:若任何多项式时间敌手的优势可忽略,则方案是 IND-CPA 安全的。
选择密文攻击(IND-CCA):
敌手在获得目标密文前,可多项式次询问解密谕言机(输入密文获取明文);其余流程同 IND-CPA。
安全定义:敌手优势可忽略则为 IND-CCA 安全。
适应性选择密文攻击(IND-CCA2):
敌手在获得目标密文后,仍可询问解密谕言机(但不可询问目标密文);其余流程同 IND-CCA。
安全定义:敌手优势可忽略则为 IND-CCA2 安全(最强安全级别)。
关键假设与问题
离散对数问题(DLP):给定群 G G G的生成元 g g g和 h ∈ G h \in G h∈G,求 x x x使得 h = g x h = g^x h=gx,假设其在多项式时间内不可解。
判定性 Diffie-Hellman(DDH)假设:区分 ( g , g a , g b , g a b ) (g, g^a, g^b, g^{ab}) (g,ga,gb,gab)(DH 四元组)与 ( g , g a , g b , g c ) (g, g^a, g^b, g^c) (g,ga,gb,gc)(随机四元组)在计算上不可行,其中 a , b , c a,b,c a,b,c是随机数。
RSA 问题:已知 n = p q n=pq n=pq(大素数乘积)、 e e e(满足 g c d ( e , I ¨ † ( n ) ) = 1 gcd(e,φ(n))=1 gcd(e,I¨†(n))=1)和 y ∈ Z n ∗ y \in \mathbb{Z}_n^* y∈Zn∗,求 x x x使得 y = x e m o d n y = x^e \mod n y=xemodn。
RSA 假设:RSA 问题在多项式时间内不可解。
选择明文安全的 RSA 方案(RSA-CPA)
构造:
密钥生成:生成 n = p q n=pq n=pq、 e , d e,d e,d( e d ≡ 1 m o d I ¨ † ( n ) ed \equiv 1 \mod φ(n) ed≡1modI¨†(n)),公钥 ( n , e ) (n,e) (n,e),私钥 d d d。
加密:对消息 M M M,选随机数 r ∈ Z n ∗ r \in \mathbb{Z}_n^* r∈Zn∗,计算 C = ( r e m o d n , H ( r ) ⊕ M ) C = (r^e \mod n, H(r) \oplus M) C=(remodn,H(r)⊕M)( H H H为哈希函数,视为随机谕言机)。
解密:用 d d d解出 r = ( C 1 ) d m o d n r = (C_1)^d \mod n r=(C1)dmodn,计算 H ( r ) ⊕ C 2 H(r) \oplus C_2 H(r)⊕C2得 M M M。
设 n = p q n=pq n=pq(大素数), Z n 2 ∗ \mathbb{Z}_{n^2}^* Zn2∗中元素 z z z是 n n n次剩余若存在 y y y使得 z = y n m o d n 2 z = y^n \mod n^2 z=ynmodn2。
引理: n n n次剩余构成 Z n 2 ∗ \mathbb{Z}_{n^2}^* Zn2∗的子群,阶为 n I ¨ † ( n ) nφ(n) nI¨†(n);单位元 1 的 n n n次根为 1 + t n 1+tn 1+tn( t = 0 , 1 , . . . , n − 1 t=0,1,...,n-1 t=0,1,...,n−1)。
Paillier 系统构造
密钥生成:选 p , q p,q p,q, n = p q n=pq n=pq,私钥 I ^ » = l c m ( p − 1 , q − 1 ) λ = lcm(p-1,q-1) I^»=lcm(p−1,q−1),公钥 n , g n,g n,g( g g g是 Z n 2 ∗ \mathbb{Z}_{n^2}^* Zn2∗中满足 g n m o d n 2 g^n \mod n^2 gnmodn2的阶为 n n n的元素)。
加密:对 M ∈ Z n M \in \mathbb{Z}_n M∈Zn,选 r ∈ Z n ∗ r \in \mathbb{Z}_n^* r∈Zn∗,计算 C = g M ⋅ r n m o d n 2 C = g^M \cdot r^n \mod n^2 C=gM⋅rnmodn2。
解密:计算 L ( C I ^ » m o d n 2 ) ⋅ I ^ ¼ m o d n L(C^λ \mod n^2) \cdot μ \mod n L(CI^»modn2)⋅I^¼modn,其中 L ( x ) = ( x − 1 ) / n L(x) = (x-1)/n L(x)=(x−1)/n, I ^ ¼ = ( L ( g I ^ » m o d n 2 ) ) − 1 m o d n μ = (L(g^λ \mod n^2))^{-1} \mod n I^¼=(L(gI^»modn2))−1modn。
安全性:基于合数幂剩余判定问题,在标准模型下可证明 IND-CPA 安全(不依赖随机谕言机)。
Cramer-Shoup 密码系统
核心机制:结合 ElGamal 加密与哈希验证,实现 IND-CCA2 安全。
密钥生成:选群 G G G(阶为素数 q q q)、生成元 g 1 , g 2 g_1,g_2 g1,g2,私钥 x 1 , x 2 , y 1 , y 2 , z 1 , z 2 x_1,x_2,y_1,y_2,z_1,z_2 x1,x2,y1,y2,z1,z2,公钥 c = g 1 x 1 g 2 x 2 c = g_1^{x_1}g_2^{x_2} c=g1x1g2x2, d = g 1 y 1 g 2 y 2 d = g_1^{y_1}g_2^{y_2} d=g1y1g2y2, h = g 1 z 1 g 2 z 2 h = g_1^{z_1}g_2^{z_2} h=g1z1g2z2。
加密:对 M M M,选 r ∈ Z q r \in \mathbb{Z}_q r∈Zq,计算 u 1 = g 1 r u_1 = g_1^r u1=g1r, u 2 = g 2 r u_2 = g_2^r u2=g2r, e = M ⋅ h r e = M \cdot h^r e=M⋅hr, I ^ ± = H ( u 1 , u 2 , e ) α = H(u_1,u_2,e) I^±=H(u1,u2,e), v = c r ⋅ d r I ^ ± v = c^r \cdot d^{rα} v=cr⋅drI^±,密文 ( u 1 , u 2 , e , v ) (u_1,u_2,e,v) (u1,u2,e,v)。
解密:验证 v = u 1 x 1 + y 1 I ^ ± ⋅ u 2 x 2 + y 2 I ^ ± v = u_1^{x_1 + y_1α} \cdot u_2^{x_2 + y_2α} v=u1x1+y1I^±⋅u2x2+y2I^±,通过则计算 M = e ⋅ ( u 1 z 1 u 2 z 2 ) − r M = e \cdot (u_1^{z_1}u_2^{z_2})^{-r} M=e⋅(u1z1u2z2)−r。
改进:定理 9-12 给出更紧的归约,优势为 A d v B R S A ≥ ( A d v A E U F − C M A ) 2 / ( 4 q H ) Adv_{B}^{RSA} \geq (Adv_{A}^{EUF-CMA})^2 / (4q_H) AdvBRSA≥(AdvAEUF−CMA)2/(4qH)( q H q_H qH为哈希询问次数)。
BLS 短签名方案
基础:双线性映射与间隙群
双线性映射: e : G 1 × G 1 → G 2 e: G_1 \times G_1 \to G_2 e:G1×G1→G2,满足 e ( g a , g b ) = e ( g , g ) a b e(g^a,g^b) = e(g,g)^{ab} e(ga,gb)=e(g,g)ab。
间隙群:DDH 问题易解但 CDH 问题难解的群(如超奇异椭圆曲线点群)。
BLS 方案构造
密钥生成:选间隙群 G 1 G_1 G1(生成元 g g g),私钥 x ∈ Z q x \in \mathbb{Z}_q x∈Zq,公钥 y = g x y = g^x y=gx。
签名:对 M M M,计算 I ¨ ƒ = H ( M ) x ∈ G 1 σ = H(M)^x \in G_1 I¨ƒ=H(M)x∈G1( H H H为全域哈希)。
验证:检查 e ( I ¨ ƒ , g ) = e ( H ( M ) , y ) e(σ,g) = e(H(M),y) e(I¨ƒ,g)=e(H(M),y)。
安全性:在随机谕言机模型下,若间隙群上 CDH 问题困难,则 BLS 是 EUF-CMA 安全的。
改进:使用第二类双线性映射( e : G 1 × G 2 → G T e: G_1 \times G_2 \to G_T e:G1×G2→GT),签名长度可缩短至 168 比特(椭圆曲线实现)。
基于身份的密码体制(IBE)
核心思想:以用户身份(如邮箱)作为公钥,无需证书,简化 PKI 管理。
IBE 的四个算法
初始化:生成系统参数 p a r a m s params params和主密钥 m s k msk msk。
加密:用接收方身份 I D ID ID加密消息 M M M,得密文 C C C。
密钥生成:用 m s k msk msk和 I D ID ID生成对应私钥 d I D d_{ID} dID。
解密:用 d I D d_{ID} dID解密密文 C C C得 M M M。
Boneh-Franklin(BF)方案
基于 BDH 问题(双线性 Diffie-Hellman 问题):给定 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。
引理内容:若敌手以优势 I ^ µ ε I^µ输出一个有效签名 ( m , I ¨ ƒ 1 , h , I ¨ ƒ 2 ) (m,σ_1,h,σ_2) (m,I¨ƒ1,h,I¨ƒ2),且最多进行 q H q_H qH次哈希询问,则存在概率至少 I ^ µ ( I ^ µ − 2 / q H ) ε(ε - 2/q_H) I^µ(I^µ−2/qH)输出两个签名 ( m , I ¨ ƒ 1 , h , I ¨ ƒ 2 ) (m,σ_1,h,σ_2) (m,I¨ƒ1,h,I¨ƒ2)和 ( m , I ¨ ƒ 1 , h ′ , I ¨ ƒ 2 ′ ) (m,σ_1,h',σ_2') (m,I¨ƒ1,h′,I¨ƒ2′)( h ≠ h ′ h \neq h' h=h′)。