后量子签名:Fiat-Shamir(上篇)

参考文献:

  1. [vN51] Von Neumann J. Various techniques used in connection with random digits[J]. Applied Math Series, 1951, 12(36-38): 1.
  2. [GGH97] Goldreich O, Goldwasser S, Halevi S. Public-key cryptosystems from lattice reduction problems[C]//Advances in Cryptology—CRYPTO’97: 17th Annual International Cryptology Conference Santa Barbara, California, USA August 17–21, 1997 Proceedings 17. Springer Berlin Heidelberg, 1997: 112-131.
  3. [HILL99] Håstad J, Impagliazzo R, Levin L A, et al. A pseudorandom generator from any one-way function[J]. SIAM Journal on Computing, 1999, 28(4): 1364-1396.
  4. [PS00] Pointcheval D, Stern J. Security arguments for digital signatures and blind signatures[J]. Journal of cryptology, 2000, 13: 361-396.
  5. [BN06] Bellare M, Neven G. Multi-signatures in the plain public-key model and a general forking lemma[C]//Proceedings of the 13th ACM conference on Computer and communications security. 2006: 390-399.
  6. [GPV08] Gentry C, Peikert C, Vaikuntanathan V. Trapdoors for hard lattices and new cryptographic constructions[C]//Proceedings of the fortieth annual ACM symposium on Theory of computing. 2008: 197-206.
  7. [LM08] Lyubashevsky V, Micciancio D. Asymptotically efficient lattice-based digital signatures[C]//Theory of Cryptography: Fifth Theory of Cryptography Conference, TCC 2008, New York, USA, March 19-21, 2008. Proceedings 5. Springer Berlin Heidelberg, 2008: 37-54.
  8. [Lyu09] Lyubashevsky V. Fiat-Shamir with aborts: Applications to lattice and factoring-based signatures[C]//Advances in Cryptology–ASIACRYPT 2009: 15th International Conference on the Theory and Application of Cryptology and Information Security, Tokyo, Japan, December 6-10, 2009. Proceedings 15. Springer Berlin Heidelberg, 2009: 598-616.
  9. [Lyu12] Lyubashevsky V. Lattice signatures without trapdoors[C]//Advances in Cryptology–EUROCRYPT 2012: 31st Annual International Conference on the Theory and Applications of Cryptographic Techniques, Cambridge, UK, April 15-19, 2012. Proceedings 31. Springer Berlin Heidelberg, 2012: 738-755.
  10. [GLP12] Güneysu T, Lyubashevsky V, Pöppelmann T. Practical lattice-based cryptography: A signature scheme for embedded systems[C]//Cryptographic Hardware and Embedded Systems–CHES 2012: 14th International Workshop, Leuven, Belgium, September 9-12, 2012. Proceedings 14. Springer Berlin Heidelberg, 2012: 530-547.
  11. [BG14] Bai S, Galbraith S D. An improved compression technique for signatures based on learning with errors[C]//Topics in Cryptology–CT-RSA 2014: The Cryptographer’s Track at the RSA Conference 2014, San Francisco, CA, USA, February 25-28, 2014. Proceedings. Springer International Publishing, 2014: 28-47.
  12. [SWIFFT] Lyubashevsky V, Micciancio D, Peikert C, et al. SWIFFT: A modest proposal for FFT hashing[C]//Fast Software Encryption: 15th International Workshop, FSE 2008, Lausanne, Switzerland, February 10-13, 2008, Revised Selected Papers 15. Springer Berlin Heidelberg, 2008: 54-72.
  13. [BLISS] Ducas L, Durmus A, Lepoint T, et al. Lattice signatures and bimodal Gaussians[C]//Advances in Cryptology–CRYPTO 2013: 33rd Annual Cryptology Conference, Santa Barbara, CA, USA, August 18-22, 2013. Proceedings, Part I. Springer Berlin Heidelberg, 2013: 40-56.
  14. [Dilithium] Lyubashevsky V, Ducas L, Kiltz E, et al. Crystals-dilithium[J]. Algorithm Specifications and Supporting Documentation, 2020.

简介

Fiat-Shamir 范式:令 Π \Pi Π 是一个 Sigma 协议( 3 3 3-round public-coin ZK proof/argument),证明者和验证者交互的副本形如 ( a , e , z ) (a,e,z) (a,e,z),其中 a a a 是承诺, e e e 是公开掷币的一系列挑战(使得 soundness error 可忽略), z z z 是对这些挑战的回应,证明者将证据 w w w 作为私钥。我们用 H H H 表示随机神谕(Random Oracle)。给定消息 m m m,签名者随机生成 a a a,询问 RO 获得挑战 e = H ( a , m ) e=H(a,m) e=H(a,m),然后利用私钥 s s s 做出恰当的响应 z z z,最后以副本 ( a , e , z ) (a,e,z) (a,e,z) 作为签名值。验证者检验 e e e 是否等于 H ( a , m ) H(a,m) H(a,m),然后验证 ( a , e , z ) (a,e,z) (a,e,z) 是否是一个可接受副本。

在早期格签名中的一个关键问题是,如何使得签名值不过多地泄露私钥信息。最早 [GGH97] 提出了一个基于 SIS 问题的 Hash-and-Sign 范式签名方案,但是它的签名值会泄露私钥的形状信息。[GPV08] 给出的解决思路是,让签名值与私钥的概率分布相互独立。对于 Fiat-Shamir 范式的格签名也有类似的问题,[Lyu09] 仿照 Schnorr 协议将分立的多个挑战合并为一个多项式 c c c,使用一个窄区间 [ − B , B ] [-B,B] [B,B] 上均匀采样的掩码 y y y 来隐藏证据,签名值为 z = y + s c z=y+sc z=y+sc。但是当 ∥ z − s c ∥ ≥ B \|z-sc\| \ge B zscB 时会泄露 y y y 的信息,进而泄露私钥 s s s 的信息,[Lyu09] 通过 abort 技术丢弃那些会泄露私钥信息的签名值,使得签名值的分布成为窄区间上的均匀分布(与私钥相互独立)。在 [Lyu12] 中使用拒绝采样技术,进一步推广到从任意分布 g g g 中采样,然后按照概率 min ⁡ ( f ( x ) / ( M g ( x ) ) , 1 ) \min\left(f(x) / (Mg(x)), 1\right) min(f(x)/(Mg(x)),1) 拒绝样本,这使得最终的输出分布与 f f f 统计接近,其中 f f f 不包含私钥的信息。[Lyu12] 按照中心高斯分布采样 y y y,则签名值 z = y + s c z=y+sc z=y+sc 服从一个偏移为 s c sc sc 的高斯分布,使得 M M M 在截尾区间内满足 M g ( x ) ≥ f ( x ) Mg(x) \ge f(x) Mg(x)f(x)。[Lyu12] 进一步指出,可以把签名方案建立在 LWE 问题上,这将降低公钥的规模。

利用拒绝采样技术可以构造出可证明安全的格签名方案,但是实用化的签名算法还对计算效率和载荷规模有着严格要求。提升格密码计算效率的一个常规手段,就是利用环结构以及 NTT 技术使得矩阵-向量乘法的计算复杂度从 O ( n 2 ) O(n^2) O(n2) 降低到 O ( n log ⁡ n ) O(n \log n) O(nlogn)。然而,[Lyu12] 的格签名除了矩阵运算的开销,拒绝采样会导致签名程序反复执行直到生成一个合适的签名值,如果常数 M M M 过大那么将会造成算力的较大浪费。[BLISS] 提出可以使用一个随机符号位 b b b,那么签名值 z = y + ( − 1 ) b s c z=y+(-1)^bsc z=y+(1)bsc 服从双峰高斯,这可以降低 M M M 的大小,使得签名速度更快、签名值的规模更小。

为了继续降低载荷大小,人们尝试了多种压缩方法。[GLP12] 研究了基于 LWE 的签名方案,其签名值形如 ( z 1 = y 1 + s c , z 2 = y 2 + e c ) (z_1=y_1+sc, z_2=y_2+ec) (z1=y1+sc,z2=y2+ec),前者是对私钥的 ZKPoK,后者是对噪声的 ZKPoK。[GLP12] 提出可以将数字划分为高阶比特和低阶比特两部分,在不影响进位的情况下可以简单丢弃低阶比特,这可以使得签名值第二分量的规模大幅减小。后续 [BG14] 发现对于噪声 e e e 的知识证明可以被隐含在对于私钥 s s s 的证明中,因此签名值的第二分量可以直接被丢弃。[Dilithium] 采用了更加激进的压缩策略,它将公钥也使用类似 [GLP12] 的技术进行了压缩,但是这导致验签时会出现进位错误,因此需要在签名值中引入额外的进位提示信息,虽然签名值变大了数百字节,但是公钥大小缩减了 约 2.5 2.5 2.5 倍,总的载荷规模是下降的。

拒绝采样技术

Aborting Technique

基于格的哈希函数可以被用于构造可证明安全的一次签名方案 [LM08] [SWIFFT],然后根据标准技术,使用 PRF 就可将它转化为树状无状态签名方案。它的复杂度仅为 O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n),这在理论上很有吸引力,然而在实际中有时人们并不希望使用树状结构。[GPV08] 提出的 PSF 在各种优化技术加持下也可以做到 O ( n log ⁡ n ) O(n \log n) O(nlogn) 级别的复杂度,然而其中所需的离散高斯采样的速度很慢,并且对于代码实现的要求极高,否则容易出现漏洞。

[Lyu09] 提出了 Fiat-Shamir 范式的可证明安全格签名方案。首先我们构造一个安全的身份鉴别协议(ID),然后利用 RO 公开掷硬币作为验证者的随机挑战,将交互式协议转化为非交互式的签名方案。一般地我们令 ID 协议是一个 3 3 3-round public-coin WI PoK with negligible soundness error,最知名的一个 ID 协议就是 Schnorr 协议:考虑 q q q 阶循环群 ⟨ g ⟩ ⊆ Z p \langle g \rangle \subseteq \mathbb Z_p gZp,私钥为 s s s,公钥为 g s g^s gs。副本形如 ( a = g y ( m o d p ) , c ∈ Z q , z = y + c ⋅ s ( m o d q ) ) (a=g^y \pmod p, c \in \mathbb Z_q, z=y+c \cdot s \pmod q) (a=gy(modp),cZq,z=y+cs(modq)),验证者检验 a ⋅ ( g s ) c = g z ( m o d p ) a \cdot (g^s)^{c} = g^z \pmod p a(gs)c=gz(modp) 是否成立。虽然在标准假设下没有证明 Schnorr 协议是安全的,但它至今也没有受到过较严重攻击。Schnorr 协议将分立的多比特挑战合并为单个挑战 c ∈ Z q c \in \mathbb Z_q cZq,仅仅一次挑战就达成了 negl. s.e. 的目标,因此副本十分的紧凑。

然而,直接把 Schnorr 协议移植到格上还有一些阻碍。首先是 Schnorr 协议工作在有限群上,然而格是无限群,这导致在格上生成均匀的随机掩码 y y y 成为不可能的任务。一种解决办法是,在一个远比 R = ∥ s c ∥ R=\|sc\| R=sc 大得多的有限子集 [ − k R , k R ] [-kR,kR] [kR,kR] 中随机选取 y y y,这使得 z = y + c s z=y+cs z=y+cs 以极大概率落在 [ − ( k − 1 ) R , ( k − 1 ) R ] [-(k-1)R,(k-1)R] [(k1)R,(k1)R] 内部,此时的 y = z − c s y=z-cs y=zcs 总是会落在 [ − k R , k R ] [-kR,kR] [kR,kR] 内,由于 y y y 是其上均匀的,从而没法确定秘密 s s s 的任何信息。但是这么选取的 S S S 范围过大,这导致直接伪造 z z z 变得更加容易(很大近似因子的 SIS 问题)。[Lyu09] 的解决办法是,在一个很窄的范围内选取 y y y,例如 [ − 2 R , 2 R ] [-2R,2R] [2R,2R],计算 z = y + c s z=y+cs z=y+cs 之后判断它是否落在 [ − R , R ] [-R,R] [R,R] 内部。如果越界了,比如 z ∈ [ R , 2 R ] z \in [R,2R] z[R,2R],那么满足 y = z − c s ≥ 2 R y=z-cs \ge 2R y=zcs2R 的那些候选 s s s 就可以被排除掉,这泄露了秘密的部分信息。因此越界的这些 z z z 都应该被丢弃,然后重复签名过程直到满足此条件。

首先,我们构造一个基于 Ring-SIS 的加法同态 Hash 函数簇。简记 R : = Z p [ x ] / ( x n + 1 ) \mathcal R := \mathbb Z_p[x]/(x^n+1) R:=Zp[x]/(xn+1),令 D : = { y : ∥ y ∥ ≤ d } ⊆ R \mathcal D:=\{y:\|y\| \le d\} \subseteq \mathcal R D:={y:yd}R 是取值范围很窄的子集。定义一族函数
H ( R , D , m ) = { h a ( y ) : = a T y ,    ∀ y ∈ D m } a ∈ R m \mathcal H(\mathcal R,\mathcal D,m) = \{h_a(y):=a^Ty,\,\, \forall y \in \mathcal D^m\}_{a \in \mathcal R^m} H(R,D,m)={ha(y):=aTy,yDm}aRm
容易看出,对于 ∀ y , y ′ ∈ R m , ∀ c ∈ R \forall y,y' \in R^m, \forall c \in \mathcal R y,yRm,cR,这个它是加法同态的, h ( y + y ′ ) = h ( y ) + h ( y ′ ) h(y+y') = h(y)+h(y') h(y+y)=h(y)+h(y) 以及 h ( y c ) = h ( y ) c h(yc) = h(y)c h(yc)=h(y)c。并且在近似 SVP 假设下,它是个 CRHF(抗原像、抗碰撞)。接下来 [Lyu09] 使用这个 Hash 函数作为承诺方案,来构造类似于 Schnorr 协议的 ID 协议。

n n n 是二的幂次, m m m 是任意整数, p p p 是充分大的素数,令 R : = Z p [ x ] / ( x n + 1 ) R := \mathbb Z_p[x]/(x^n+1) R:=Zp[x]/(xn+1)。假设挑战 c c c 是重量 κ \kappa κ 的二元挑战,满足 2 κ ( n κ ) ≥ 2 160 2^\kappa{n \choose \kappa} \ge 2^{160} 2κ(κn)2160 使得熵足够大。令 σ \sigma σ 是任意的较小整数,它约束秘密 s s s 的规模,那么 s c sc sc 的大小约束在较小范围 σ κ \sigma\kappa σκ 以内。一些重要参数的取值范围如下:
D c : = { c ∈ R : ∥ c ∥ 1 ≤ κ } ⊆ R D s : = { s ∈ R : ∥ s ∥ ∞ ≤ σ } ⊆ D y D y : = { y ∈ R : ∥ y ∥ ∞ ≤ m n σ κ } ⊆ R D z : = { z ∈ R : ∥ z ∥ ∞ ≤ m n σ κ − σ κ } ⊆ D y \begin{aligned} D_c &:= \{c \in R: \|c\|_1 \le \kappa\} \subseteq R\\ D_s &:= \{s \in R: \|s\|_\infty \le \sigma\}\subseteq D_y\\ D_y &:= \{y \in R: \|y\|_\infty \le mn\sigma\kappa\} \subseteq R\\ D_z &:= \{z \in R: \|z\|_\infty \le mn\sigma\kappa - \sigma\kappa\}\subseteq D_y\\ \end{aligned} DcDsDyDz:={cR:c1κ}R:={sR:sσ}Dy:={yR:ymnσκ}R:={zR:zmnσκσκ}Dy
我们令 D = D y , R = R \mathcal D = D_y, \mathcal R = R D=Dy,R=R,那么从 H ( R , D , m ) \mathcal H(\mathcal R,\mathcal D,m) H(R,D,m) 中抽取的 h : D y m → R h: D_y^m \to R h:DymR 是一个随机的同态哈希函数。[Lyu09] 构造的 ID 协议为:

  1. Alice 持有私钥 s ∈ D s m s \in D_s^m sDsm,Bob 持有公钥 S = h ( s ) ∈ R S = h(s) \in R S=h(s)R
  2. Alice 均匀随机采样掩码 y ∈ D y m y \in D_y^m yDym,做承诺 Y = h ( y ) ∈ R Y=h(y) \in R Y=h(y)R 发送给 Bob
  3. Bob 均匀随机采样挑战 c ∈ D c c \in D_c cDc 发送给 Alice
  4. Alice 计算 z = y + c s ∈ R m z=y+cs \in R^m z=y+csRm(这里是向量 s ∈ D s m s \in D_s^m sDsm 关于数量 c ∈ D s c \in D_s cDs 的标量积),如果 z ∈ D z m z \in D_z^m zDzm 则发送给 Bob,而当 z ∉ D z m z \notin D_z^m z/Dzm 时需要 abort
  5. Bob 收到 z z z 后首先检验 z ∈ D z m z \in D_z^m zDzm(确保 z z z 是短的),然后检查 h ( z ) ∈ R h(z) \in R h(z)R 是否等于 Y + S c ∈ R Y+Sc \in R Y+ScR(这里是数量 S ∈ R S \in R SR 和数量 c ∈ D s c \in D_s cDs 的乘积)

对比 D y D_y Dy D z D_z Dz,容易证明 completeness 的概率为 ( 1 − 1 / m n ) m n ≈ 1 / e (1-1/mn)^{mn} \approx 1/e (11/mn)mn1/e,期望上重复执行 e ≈ 2.718 e \approx 2.718 e2.718 次可以完成一次身份鉴别。

与 Schnorr 协议不同(仅有唯一的证据,无法证明安全),[Lyu09] 的协议随机挑选的证据 s ∈ D s s \in D_s sDs,会有多个其他证据使得 S = h ( s ) = h ( s ′ ) S=h(s)=h(s') S=h(s)=h(s)(除了可忽略的概率),其中 s ≠ s ′ ∈ D s s \neq s' \in D_s s=sDs 都是短向量。我们可以证明它是完美证据不可区分的(Perfect WI):对于同一个副本 ( Y , c , z ) (Y,c,z) (Y,c,z),两个证据 s ≠ s ′ s \neq s' s=s 都满足 S = h ( s ) = h ( s ′ ) S=h(s)=h(s') S=h(s)=h(s),那么由于 z = y + c s = y ′ + c s ′ z=y+cs=y'+cs' z=y+cs=y+cs z ∈ D z m z \in D_z^m zDzm,那么存在 y , y ′ ∈ D y m y,y' \in D_y^m y,yDym 使得 h ( y ′ ) = h ( y + c ( s − s ′ ) ) = h ( y ) = Y h(y')=h(y+c(s-s'))=h(y)=Y h(y)=h(y+c(ss))=h(y)=Y,且两个掩码 P r [ y ] = P r [ y ′ ] Pr[y]=Pr[y'] Pr[y]=Pr[y] 是同分布的。

进而我们可以证明这个 ID 协议是主动安全的:如果存在某 PPT 敌手能够在学习之后伪装成 Prover 给出可接受副本,那么对于任意哈希函数 h h h,模拟器随机生成 S = h ( s ) S=h(s) S=h(s) 并为敌手模拟 ID 协议,然后让敌手给出一个可接受副本 ( Y , c , z ) (Y,c,z) (Y,c,z)(这里 Y Y Y 是某随机数 y y y 的承诺),接着模拟器 rewind 敌手,重新选择随机挑战 c ′ c' c 并获得另一个可接受副本 ( Y , c ′ , z ′ ) (Y,c',z') (Y,c,z)(还是同一个 y y y 的承诺),两者满足 h ( z ) = S c + Y , h ( z ′ ) = S c ′ + Y h(z)=Sc+Y, h(z')=Sc'+Y h(z)=Sc+Y,h(z)=Sc+Y,于是 h ( z − s c ) = Y = h ( z ′ − s c ′ ) h(z-sc)=Y=h(z'-sc') h(zsc)=Y=h(zsc),接下来只需证明 z − s c ≠ z ′ − s c ′ z-sc \neq z'-sc' zsc=zsc 即可。因为上述 ID 协议是 Perfect WI 的,因此以至少 1 / 2 1/2 1/2 的概率敌手猜错私钥 s ′ s' s,敌手设置了 z − s ′ c = y = z ′ − s ′ c ′ z-s'c=y=z'-s'c' zsc=y=zsc,替换为 s ≠ s ′ s \neq s' s=s 之后,以极高的概率使得 ( y 1 : = z − s c ) ≠ ( y 2 : = z ′ − s c ′ ) (y_1:=z-sc) \neq (y_2:=z'-sc') (y1:=zsc)=(y2:=zsc),它们是 CRHF 的一对碰撞,出现矛盾。

最后,我们并行多个 ID 协议(例如 30 30 30 个),保持 WI 的同时,可以把 completeness probability 从仅 1 / e 1/e 1/e 提升到 1 − 2 − 20 1-2^{-20} 1220(目的并非是降低 soundness error,因为 c c c 的熵已经足够大),这里只需证明者成功完成其中一次 ID 协议证明即可。然后在 RO 模型下,利用 Fiat-Shamir heuristic 将这个 ID 协议转化为签名方案。值得注意的是,在签名方案中那些最终 abort 的 ID 协议副本不必发送,并且多个副本只需要同一个挑战 c c c 即可(只要 c , y i c,y_i c,yi 相互独立则 abort 概率相同),以及可使用标准的抗碰撞哈希 H ( Y i ) H(Y_i) H(Yi) 取代同态承诺 Y i Y_i Yi(此时验签等式为 H ( Y i ) = H ( h ( z i ) − S c ) H(Y_i) = H(h(z_i)-Sc) H(Yi)=H(h(zi)Sc)),上述三种修正可以极大地减小签名值规模。

Rejection Sampling

von Neumann 拒绝采样技术([vN51]):令 f , g f,g f,g 是集合 R R R 上的两个分布,若存在 M ∈ R M \in \mathbb R MR 使得 f ( x ) ≤ M g ( x ) , ∀ x ∈ R f(x) \le Mg(x), \forall x \in R f(x)Mg(x),xR,那么按照分布 g g g 采样 z z z,然后以概率 f ( z ) / ( M g ( z ) ) ≤ 1 f(z)/(Mg(z)) \le 1 f(z)/(Mg(z))1 输出 z z z,否则重新采样。则输出分布恰好 f f f,期望的循环次数为 M M M

[Lyu09] 中,掩码 y y y D y m D_y^m Dym 中均匀采样,可视为半径 r + v r+v r+v m m m 维球体。仅当签名值 z = y + S c z = y+Sc z=y+Sc 落入 D z m D_z^m Dzm 时才输出,可视为半径 r r r m m m 维球体。如果 f f f D z m D_z^m Dzm均匀分布 g g g D y m D_y^m Dym均匀分布,则需要设置 M = ( r + v ) m / r m M = (r+v)^m/r^m M=(r+v)m/rm 才能使得输出 z z z 的分布恰好是 f f f,并且如果 z ∈ D z m z \in D_z^m zDzm 则为 f ( z ) / ( M g ( z ) ) = 1 f(z)/(Mg(z))=1 f(z)/(Mg(z))=1,如果 z ∉ D z m z \notin D_z^m z/Dzm 则为 f ( z ) / ( M g ( z ) ) = 0 f(z)/(Mg(z))=0 f(z)/(Mg(z))=0。然而为了获得较小的 M M M,这需要 r ≥ m v = O ~ ( n 1.5 ) r \ge mv = \tilde O(n^{1.5}) rmv=O~(n1.5),导致签名 z z z 的规模过大。

而 [Lyu12] 选取 f , g f,g f,g 都是标准差 σ = O ~ ( v ) \sigma = \tilde O(v) σ=O~(v)离散高斯分布,并且选择一个较小的常数 M M M 使得 f ( x ) ≤ M g ( x ) f(x) \le Mg(x) f(x)Mg(x) 仅仅对于较短的 x x x 成立(截尾后的区间),此时拒绝概率变成了 min ⁡ ( f ( z ) / ( M g ( z ) ) , 1 ) \min(f(z)/(Mg(z)), 1) min(f(z)/(Mg(z)),1) 并且输出分布与 f f f统计接近的(不再完美了),那么 z z z 的期望长度可缩短为 σ m = O ~ ( n ) \sigma \sqrt m = \tilde O(n) σm =O~(n)

中心 v v v 标准差 σ \sigma σ m m m 维高斯函数定义为 ρ σ , v m ( x ) : = ( 1 2 π σ 2 ) m exp ⁡ ( − ∥ x − v ∥ 2 2 σ 2 ) \rho_{\sigma,v}^m(x) := \left(\frac{1}{\sqrt{2\pi \sigma^2}}\right)^m \exp\left(\frac{-\|x-v\|^2}{2\sigma^2}\right) ρσ,vm(x):=(2πσ2 1)mexp(2σ2xv2),对应的离散高斯分布为 D σ , v m ( x ) = ρ σ , v m ( x ) / ρ σ , v m ( Z m ) D_{\sigma,v}^m(x)=\rho_{\sigma,v}^m(x)/\rho_{\sigma,v}^m(\mathbb Z^m) Dσ,vm(x)=ρσ,vm(x)/ρσ,vm(Zm)。[Lyu12] 证明一个关于离散高斯尾部的重要不等式:对于任意的 v ∈ R m v \in \mathbb R^m vRm 和任意的 σ , r > 0 \sigma,r>0 σ,r>0,都有
P r [ ∣ ⟨ z , v ⟩ ∣ > r : z ← D σ m ] ≤ 2 exp ⁡ ( − r 2 2 ∥ v ∥ 2 σ 2 ) Pr\left[|\langle z, v \rangle|>r: z \leftarrow D_\sigma^m\right] \le 2\exp\left(\frac{-r^2}{2\|v\|^2\sigma^2}\right) Pr[z,v>r:zDσm]2exp(2∥v2σ2r2)
进而可以推出:

  1. 对于任意的 k > 0 k>0 k>0,一维中心离散高斯分布满足 P r [ ∣ z ∣ > k σ : z ← D σ ] ≤ 2 exp ⁡ ( − k 2 / 2 ) Pr[|z| > k\sigma: z \leftarrow D_\sigma] \le 2\exp(-k^2/2) Pr[z>:zDσ]2exp(k2/2)
  2. 对于任意的 z ∈ Z m z \in \mathbb Z^m zZm 以及 σ ≥ 3 / 2 π \sigma \ge 3/\sqrt{2\pi} σ3/2π ,密度函数满足 D σ m ( z ) ≤ 2 − m D_\sigma^m(z) \le 2^{-m} Dσm(z)2m
  3. 对于任意的 k > 1 k>1 k>1,高斯尾部的概率为 P r [ ∥ z ∥ > k σ m : z ← D σ m ] < k m exp ⁡ ( ( 1 − k 2 ) m / 2 ) Pr[\|z\|>k\sigma\sqrt m: z \leftarrow D_\sigma^m] < k^m\exp\left((1-k^2)m/2\right) Pr[z>m :zDσm]<kmexp((1k2)m/2)
  4. 对于任意的 v , z ∈ Z m v,z \in \mathbb Z^m v,zZm 满足 D σ m ( z ) / D σ , v m ( z ) = exp ⁡ ( − 2 ⟨ z , v ⟩ + ∥ v ∥ 2 2 σ 2 ) D_\sigma^m(z)/D_{\sigma,v}^m(z) = \exp\left( \dfrac{-2\langle z,v \rangle + \|v\|^2}{2\sigma^2} \right) Dσm(z)/Dσ,vm(z)=exp(2σ22z,v+v2),选取标准差 σ = τ ∥ v ∥ \sigma = \tau\|v\| σ=τv 和截尾界 r = τ σ ∥ v ∥ r=\tau\sigma\|v\| r=τσv,那么以至少 1 − 2 exp ⁡ ( − τ 2 / 2 ) 1-2\exp(-\tau^2/2) 12exp(τ2/2) 的概率使得 D σ m ( z ) / D σ , v m ( z ) ≤ exp ⁡ ( 1 + 1 / ( 2 τ 2 ) ) D_\sigma^m(z)/D_{\sigma,v}^m(z) \le \exp(1+1/(2\tau^2)) Dσm(z)/Dσ,vm(z)exp(1+1/(2τ2))

General Rejection Sampling Lemma:令 V V V 是任意集合, h : V → R h: V \to \mathbb R h:VR f : Z m → R f: \mathbb Z^m \to \mathbb R f:ZmR 是两个分布。令 { g v : Z m → R } h \{g_v: \mathbb Z^m \to \mathbb R\}_h {gv:ZmR}h 是一族分布,并满足
∃ M ∀ v , P r [ M g v ( z ) ≥ f ( z ) : z ← f ] ≥ 1 − ϵ \exists M \forall v, Pr[Mg_v(z) \ge f(z): z \leftarrow f] \ge 1-\epsilon Mv,Pr[Mgv(z)f(z):zf]1ϵ

  • 算法 A A A 定义为:采样 v ← h v \leftarrow h vh z ← g v z \leftarrow g_v zgv,依概率 min ⁡ ( f ( z ) M g v ( z ) , 1 ) \min\left(\frac{f(z)}{Mg_v(z)},1\right) min(Mgv(z)f(z),1) 输出 ( z , v ) (z,v) (z,v)

  • 算法 F F F 定义为:采样 v ← h v \leftarrow h vh z ← f z \leftarrow f zf,依概率 1 / M 1/M 1/M 输出 ( z , v ) (z,v) (z,v)

则两者的输出分布的统计距离为 ϵ / M \epsilon/M ϵ/M,且算法 A A A 有输出的概率至少为 ( 1 − ϵ ) / M (1-\epsilon)/M (1ϵ)/M。如果令 V ⊆ Z m V \subseteq \mathbb Z^m VZm 是范数至多为 T T T 的整数格点的收集,选取 σ = w ( T log ⁡ m ) \sigma = w(T\sqrt{\log m}) σ=w(Tlogm ),再令 g v = D σ , v m g_v=D_{\sigma,v}^m gv=Dσ,vm f = D σ m f=D_{\sigma}^m f=Dσm,那么存在小常数 M = O ( 1 ) M=O(1) M=O(1) 使得 A , F A,F A,F 的输出分布统计距离为 2 − w ( log ⁡ m ) / M 2^{-w(\log m)}/M 2w(logm)/M,且算法 A A A 有输出的概率至少为 ( 1 − 2 − w ( log ⁡ m ) ) / M \left(1-2^{-w(\log m)}\right)/M (12w(logm))/M

Main Theorem:对于离散高斯分布 f = D σ , g v = D σ , v f=D_\sigma, g_v=D_{\sigma,v} f=Dσ,gv=Dσ,v,我们选取 σ = τ T \sigma=\tau T σ=τT,并设置 M = exp ⁡ ( 1 + 1 / ( 2 τ 2 ) ) ≈ e M = \exp(1+1/(2\tau^2)) \approx e M=exp(1+1/(2τ2))e,则以至少 1 − 2 exp ⁡ ( − τ 2 / 2 ) 1-2\exp(-\tau^2/2) 12exp(τ2/2) 的概率满足 f ( z ) ≤ M g v ( z ) f(z) \le Mg_v(z) f(z)Mgv(z),选取 τ = 12 \tau=12 τ=12 时此概率约为 1 − 2 − 100 1-2^{-100} 12100

基于 SIS 问题的签名方案:

  1. K e y G e n ( 1 n ) KeyGen(1^n) KeyGen(1n):均匀采样 S ← U [ − d , d ] m × k S \leftarrow_\mathcal U [-d,d]^{m \times k} SU[d,d]m×k A ← U Z q n × m A \leftarrow_\mathcal U \mathbb Z_q^{n \times m} AUZqn×m,计算 T = A S ∈ Z q n × k T=AS \in \mathbb Z_q^{n \times k} T=ASZqn×k,公开参数为 A A A 私钥为 S S S 公钥为 T T T
  2. S i g n ( μ , A , S ) Sign(\mu,A,S) Sign(μ,A,S):高斯采样 y ← D σ m y \leftarrow D_\sigma^m yDσm,访问 RO 计算挑战 c ← H ( A y , μ ) c \leftarrow H(Ay,\mu) cH(Ay,μ)(这里是 Hash to point D H : = { c ∈ { − 1 , 0 , 1 } k : ∥ c ∥ 1 ≤ κ } D_H:=\{c \in \{-1,0,1\}^k: \|c\|_1 \le \kappa\} DH:={c{1,0,1}k:c1κ}),然后计算 z ← y + S c z \leftarrow y+Sc zy+Sc(服从偏移高斯分布 D σ , S c m ( z ) D_{\sigma,Sc}^m(z) Dσ,Scm(z)不要取模,否则容易伪造签名),最后以概率 min ⁡ ( D σ m ( z ) M D σ , S c m ( z ) , 1 ) \min\left(\frac{D_\sigma^m(z)}{MD_{\sigma,Sc}^m(z)},1\right) min(MDσ,Scm(z)Dσm(z),1) 输出签名值 ( c , z ) (c,z) (c,z)
  3. V e r i f y ( μ , ( c , z ) , A , T ) Verify(\mu,(c,z),A,T) Verify(μ,(c,z),A,T):首先检查 ∥ z ∥ ≤ η σ m \|z\| \le \eta\sigma\sqrt m zησm 确保签名值是短的(对于短格基 S S S 的 PoK),然后验证 H ( A z − T c , μ ) H(Az-Tc,\mu) H(AzTc,μ) 是否等于 c c c,其中系数 η ∈ [ 1.1 , 1.3 ] \eta\in[1.1,1.3] η[1.1,1.3] 确保正确签名极大概率可通过长度检查。

Renyi 熵:令 D \mathcal D D 是集合 S S S 上分布,定义 H R e n y i ( D ) : = − log ⁡ P r [ X = Y ] H_{Renyi}(\mathcal D) := -\log Pr[X=Y] HRenyi(D):=logPr[X=Y],其中 X , Y ← D S X,Y \leftarrow_{\mathcal D} \mathcal S X,YDS 是独立选取的。可以证明 H R e n y i ( D ) ≤ H S h a n n o n ( D ) , ∀ D H_{Renyi}(\mathcal D) \le H_{Shannon}(\mathcal D), \forall \mathcal D HRenyi(D)HShannon(D),D,并且对于均匀分布 H R e n y i = H S h a n n o n H_{Renyi} = H_{Shannon} HRenyi=HShannon

剩余哈希引理(Leftover Hash Lemma, [HILL99]):令 H : X → Y \mathcal H:X \to Y H:XY 是一族 Pairwise Independent 哈希函数(即 P r h ← H [ h ( x ) = h ( x ′ ) ] = 1 / ∣ Y ∣ , ∀ x ≠ x ′ Pr_{h \leftarrow \mathcal H}[h(x)=h(x')]=1/|Y|, \forall x \neq x' PrhH[h(x)=h(x)]=1/∣Y,x=x)。令 D \mathcal D D 是集合 X X X 上的 H R e n y i ( D ) = m H_{Renyi}(\mathcal D)=m HRenyi(D)=m 的分布,值域大小 ∣ Y ∣ = 2 m − 2 e |Y| = 2^{m-2e} Y=2m2e,那么
Δ ( { ( h , h ( x ) ) : h ← U H , x ← D X } ,    U ( H × Y ) ) ≤ 2 − ( e + 1 ) \Delta\left(\{(h,h(x)): h \leftarrow_{\mathcal U} \mathcal H, x \leftarrow_{\mathcal D} X\},\,\, \mathcal U(\mathcal H \times Y)\right) \le 2^{-(e+1)} Δ({(h,h(x)):hUH,xDX},U(H×Y))2(e+1)
如果 D \mathcal D D X X X 上均匀分布,那么 Δ ≤ 1 2 ∣ Y ∣ / ∣ X ∣ \Delta \le \dfrac{1}{2}\sqrt{|Y|/|X|} Δ21Y∣/∣X ,当值域 Y Y Y 对比定义域 X X X 是极度压缩的,那么 { h ( x ) } \{h(x)\} {h(x)} U ( Y ) \mathcal U(Y) U(Y) 统计不可区分。

对于由 A ∈ Z q n × m A \in \mathbb Z_q^{n \times m} AZqn×m 索引的同态哈希函数 h A ( s ) : = A s , ∀ s ∈ Z m h_A(s) := As, \forall s \in \mathbb Z^m hA(s):=As,sZm,当 q q q 是素数时它是 Pairwise Independent 的。对于均匀的 S ∈ [ − d , d ] m × k S \in [-d,d]^{m \times k} S[d,d]m×k,那么承诺值 T ← h A ( S ) T \leftarrow h_A(S) ThA(S) 与均匀分布的统计距离为 Δ ≤ 1 2 q n / ( 2 d + 1 ) m \Delta \le \dfrac{1}{2}\sqrt{q^n/(2d+1)^m} Δ21qn/(2d+1)m 。安全参数 λ \lambda λ,我们设置 m ≫ n m \gg n mn 使得 Δ ≤ 2 − λ \Delta \le 2^{-\lambda} Δ2λ,从而可以抵御私钥恢复攻击

另外通过降低 d d d,这使得 SIS 问题变得更难,我们就可以降低 q q q m m m 使得载荷减小。如果令 m = 2 n m=2n m=2n 那么 A = [ A 1 ∣ I ] , S = [ S 1 ∣ S 2 ] T A=[A_1|I], S=[S_1|S_2]^T A=[A1I],S=[S1S2]T,那么 T = A S = A 1 S 1 + S 2 T=AS=A_1S_1+S2 T=AS=A1S1+S2,这就转化为了基于 LWE 的格签名,签名值形如 ( c , z 1 , z 2 ) (c,z_1,z_2) (c,z1,z2),满足 z 1 = y 1 + S 1 c , z 2 = y 2 + S 2 c z_1=y_1+S_1c, z_2=y_2+S_2c z1=y1+S1c,z2=y2+S2c。也容易将 LWE 和 SIS 转化到 RLWE 和 RSIS 变体上。

Forking Lemma

接下来证明 [Lyu12] 的签名方案可以抵御签名伪造攻击

General Forking Lemma([PS00], [BN06]):令 I G IG IG 是 input generator, H H H 是大小 h ≥ 2 h \ge 2 h2 的集合, q q q 是随机访问 H H H 的次数。敌手 A A A 定义为
x ← I G , { h 1 , ⋯   , h q } ← R H , ( J , σ ) ← A ( x , { h 1 , ⋯   , h q } ) x \leftarrow IG, \{h_1,\cdots,h_q\} \leftarrow_R H, (J,\sigma) \leftarrow A(x,\{h_1,\cdots,h_q\}) xIG,{h1,,hq}RH,(J,σ)A(x,{h1,,hq})
其中 σ \sigma σ 是关于 h J h_J hJ 的,当 J ≥ 1 J \ge 1 J1 时我们说 A A A 的输出是可接受的,其概率记为 a c c acc acc。我们再定义一个分叉程序 F A F_A FA

  1. 输入 x x x,为 A A A 挑选随机带 ρ \rho ρ,访问 H H H 获得 h 1 , ⋯   , h q h_1,\cdots,h_q h1,,hq,调用 A ( x , { h 1 , ⋯   , h q } ; ρ ) A(x,\{h_1,\cdots,h_q\};\rho) A(x,{h1,,hq};ρ) 得到 ( I , σ ) (I,\sigma) (I,σ)
  2. I = 0 I=0 I=0 时输出 ( 0 , ⊥ , ⊥ ) (0,\perp,\perp) (0,,),当 I = 1 I=1 I=1 时访问 H H H 获得新的 h I ′ , ⋯   , h q ′ h_I',\cdots,h_q' hI,,hq,调用 A ( x , { h 1 , ⋯   , h I − 1 , h I ′ , ⋯   , h q ′ } ; ρ ) A(x,\{h_1,\cdots,h_{I-1},h_I',\cdots,h_q'\};\rho) A(x,{h1,,hI1,hI,,hq};ρ) 得到 ( I ′ , σ ′ ) (I',\sigma') (I,σ)
  3. I = I ′ I=I' I=I h I ≠ h I ′ h_I \neq h_I' hI=hI 时,输出 ( 1 , σ , σ ′ ) (1,\sigma,\sigma') (1,σ,σ),否则输出 ( 0 , ⊥ , ⊥ ) (0,\perp,\perp) (0,,)

定义成功分叉的概率为 f r k : = P r [ b = 1 : x ← I G , ( b , σ , σ ′ ) ← F A ( x ) ] frk := Pr\left[b=1: x \leftarrow IG, (b,\sigma,\sigma') \leftarrow F_A(x)\right] frk:=Pr[b=1:xIG,(b,σ,σ)FA(x)],那么有
f r k ≥ a c c ⋅ ( a c c q − 1 h ) frk \ge acc \cdot (\dfrac{acc}{q} - \dfrac{1}{h}) frkacc(qacch1)
[Lyu09] 可以作为 [Lyu12] 的 Ring-SIS 版本变体,并且其中分布 f , g f,g f,g 选取了窄区间均匀分布。对于 [Lyu12] 的格签名方案,其安全归约为:首先利用 Hybrid 技术,修改挑战为 c ← U { v ∈ { − 1 , 0 , 1 } k : ∥ v ∥ 1 ≤ κ } c \leftarrow_\mathcal U \{v \in \{-1,0,1\}^k: \|v\|_1 \le \kappa\} cU{v{1,0,1}k:v1κ},修改回应为 z ← D σ m z \leftarrow D_\sigma^m zDσm,修改拒绝概率为 1 / M 1/M 1/M,则它与原始签名方案统计不可区分。假设 PPT 敌手 F F F 是成功概率 δ \delta δ 的 Forger,我们构造 PPT 敌手 B B B,它持有 Forger 和上述的 Signer 的代码并为它们提供随机带 r F , r S r_F,r_S rF,rS 作为子程序。在学习阶段它为 F F F 模拟它与 Signer 以及 RO 的交互视图,模拟 RO 时依次使用 r 1 , ⋯   , r t r_1,\cdots,r_t r1,,rt 来回应并打表。在伪造阶段 F F F 给出了一个可接受副本 ( μ , ( c , z ) ) (\mu,(c,z)) (μ,(c,z))。如果 c = H ( A z − T c , μ ) c=H(Az-Tc,\mu) c=H(AzTc,μ) 之前没有 RO 查询过,根据 RO 定义可知其成功率不会超过 1 / ∣ D H ∣ 1/|D_H| 1/∣DH,因此以至少 δ − 1 / ∣ D H ∣ \delta-1/|D_H| δ1/∣DH 的概率使得 H ( A z − T c , μ ) = r j H(Az-Tc,\mu)=r_j H(AzTc,μ)=rj 位于表格中。

  • 假设 r j r_j rj 是被 Signer 使用的(即 μ ′ , ( c = r j , z ′ ) \mu',(c=r_j,z') μ,(c=rj,z) 是合法签名),则 H ( A z ′ − T c , μ ′ ) = H ( A z − T c , μ ) H(Az'-Tc,\mu')=H(Az-Tc,\mu) H(AzTc,μ)=H(AzTc,μ),于是 A z − T c ≡ A z ′ − T c Az-Tc \equiv Az'-Tc AzTcAzTc μ = μ ′ \mu=\mu' μ=μ(除了可忽略的概率 F F F 找到了 RO 的一对碰撞),因此 A ( z − z ′ ) ≡ 0 A(z-z') \equiv 0 A(zz)0,然而 z ≠ z ′ z \neq z' z=z(因为 F F F 成功伪造)从而 v = z − z ′ v=z-z' v=zz 是一个满足 A v = 0 ( m o d q ) Av=0 \pmod q Av=0(modq)非零短向量,这打破了 SIS 问题。
  • 假设 r j r_j rj 是被 Forger 做 RO 查询时使用的,那么我们记录下 ( c = r j , z ) (c=r_j,z) (c=rj,z) 后 rewind,对相同的 μ \mu μ 和随机带 r F , r S r_F,r_S rF,rS,使用新的 RO 查询结果 r 1 , ⋯   , r j − 1 , r j ′ , ⋯   , r t ′ r_1,\cdots,r_{j-1},r_j',\cdots,r_t' r1,,rj1,rj,,rt,根据分叉引理 Forger 将会以至少 ( δ − 1 / ∣ D H ∣ ) ( ( δ − 1 / ∣ D H ∣ ) / t − 1 / ∣ D H ∣ ) (\delta - 1/|D_H|)((\delta - 1/|D_H|)/t - 1/|D_H|) (δ1/∣DH)((δ1/∣DH)/t1/∣DH) 的概率输出一个新的可接受伪造签名 ( μ ′ , ( c ′ = r j ′ , z ′ ) ) (\mu',(c'=r_j',z')) (μ,(c=rj,z)),并且 r j ′ ≠ r j r_j' \neq r_j rj=rj。由于两次调用中的 y y y 是相同的,从而有 A z − T c ≡ A y ≡ A z ′ − T c ′ Az-Tc \equiv Ay\equiv Az'-Tc' AzTcAyAzTc(除了可忽略的概率 F F F 找到了 RO 的一对碰撞),也就是 A ( z − S c − z ′ + S c ′ ) ≡ 0 A(z-Sc-z'+Sc') \equiv 0 A(zScz+Sc)0,那么 v = z − S c − z ′ + S c ′ v=z-Sc-z'+Sc' v=zScz+Sc 以至少 1 / 2 1/2 1/2 的概率(因为 ID 协议是 WI 的)是一个满足 A v = 0 ( m o d q ) Av=0 \pmod q Av=0(modq)非零短向量,这也打破了 SIS 问题。

在 SIS 困难性假设下,敌手 B B B 不存在,那么任意的敌手 F F F 都不存在。这就证明了基于 SIS 问题的签名方案是 EUF-CMA 的。

而基于 LWE 问题的签名方案,由于 d d d m m m 都较小,那么 T = A S T=AS T=AS 不一定拥有多个证据 S ≠ S ′ S \neq S' S=S,所以 WI 性质是平凡的,依照上述的归约过不去。[Lyu12] 的思路是,使用 Hybrid 技术将 d d d 扩大到足够大的 d ′ d' d 使得存在多个证据,然后便可以用上述的安全归约了。需要注意,基于 LWE 的签名方案,抵御私钥恢复攻击是基于 LWE 问题的,但是抵御签名伪造依然是基于 SIS 问题的。

双峰高斯分布

虽然 [Lyu12] 使用高斯分布取代 [Lyu09] 的均匀分布,在保持 M ≈ e M \approx e Me 时使得签名值 z z z 的规模从 O ~ ( n 1.5 ) \tilde O(n^{1.5}) O~(n1.5) 降低到了 O ~ ( n ) \tilde O(n) O~(n),但是仍需要选取标准差为 σ = 12 ∥ S c ∥ \sigma = 12\|Sc\| σ=12∥Sc 的离散高斯分布,系数 τ = 12 \tau=12 τ=12 依然过大。[BLISS] 将 g v ( z ) g_v(z) gv(z) 替换为了双峰离散高斯分布 ( D σ , S c m + D σ , − S c m ) / 2 (D_{\sigma,Sc}^m + D_{\sigma,-Sc}^m)/2 (Dσ,Scm+Dσ,Scm)/2,这使得 g v ( z ) g_v(z) gv(z) 与中心离散高斯分布 f ( z ) = D σ m f(z)=D_\sigma^m f(z)=Dσm 更加接近,从而可以降低 M M M 的大小。可以证明:
D σ m 1 2 D σ , S c m + 1 2 D σ , − S c m ( x ) = exp ⁡ ( ∥ S c ∥ 2 σ 2 ) cosh ⁡ ( ⟨ x , S c ⟩ σ 2 ) ≤ exp ⁡ ( ∥ S c ∥ 2 σ 2 ) \dfrac{D_\sigma^m}{\dfrac{1}{2}D_{\sigma,Sc}^m + \dfrac{1}{2}D_{\sigma,-Sc}^m}(x) = \dfrac{\exp\left(\dfrac{\|Sc\|}{2\sigma^2}\right)}{\cosh\left(\dfrac{\langle x, Sc\rangle}{\sigma^2}\right)} \le \exp\left(\dfrac{\|Sc\|}{2\sigma^2}\right) 21Dσ,Scm+21Dσ,ScmDσm(x)=cosh(σ2x,Sc)exp(2σ2Sc)exp(2σ2Sc)
其中 cosh ⁡ ( x ) = ( e x + e − x ) / 2 ≥ 1 , ∀ x \cosh(x)=(e^x+e^{-x})/2 \ge 1,\forall x cosh(x)=(ex+ex)/21,x,它以概率 1 1 1 成立(而不仅仅是 1 − 2 − 100 1-2^{-100} 12100,因此不必截尾)。如果维持 M ≈ e M \approx e Me,这可以降低标准差为 σ = ∥ S c ∥ / 2 \sigma=\|Sc\|/\sqrt 2 σ=Sc∥/2 ,从而缩小签名的大小。

对于 y ← D σ m y \leftarrow D_{\sigma}^m yDσm,选取 b ← U { − 1 , + 1 } b \leftarrow_\mathcal U \{-1,+1\} bU{1,+1},计算签名值 z = y + b S c z=y+bSc z=y+bSc,它服从双峰高斯。对于验签程序,给定公钥 T = A S T=AS T=AS,需要满足 H ( A y , μ ) = H ( A z − T c , μ ) H(Ay,\mu)=H(Az-Tc,\mu) H(Ay,μ)=H(AzTc,μ),这需要 A y = A z − T c = A y + b T c − T c Ay=Az-Tc=Ay+bTc-Tc Ay=AzTc=Ay+bTcTc,于是有 b T c ≡ T c ( m o d q ) bTc \equiv Tc \pmod q bTcTc(modq),那么必须满足 T c ≡ − T c , ∀ c Tc \equiv -Tc,\forall c TcTc,c,当 q q q 是素数时 Z q \mathbb Z_q Zq 是无零因子环,从而求出 T ≡ 0 ( m o d q ) T \equiv 0 \pmod q T0(modq)。因此 [Lyu12] 中的验签公式不再奏效,[BLISS] 的解决方案是转换到 Z 2 q \mathbb Z_{2q} Z2q 上工作,选取 T ≡ q I ( m o d 2 q ) T\equiv qI \pmod{2q} TqI(mod2q),那么验签公式 A y ≡ A z − T c ( m o d 2 q ) Ay\equiv Az-Tc \pmod{2q} AyAzTc(mod2q) 就可以正确验签了。

签名方案构造如下:

  1. K e y G e n ( 1 λ ) KeyGen(1^\lambda) KeyGen(1λ):采样一个短矩阵 S ∈ Z 2 q m × n S \in \mathbb Z_{2q}^{m \times n} SZ2qm×n,计算矩阵 A ∈ Z 2 q n × m A \in \mathbb Z_{2q}^{n \times m} AZ2qn×m 使得 A S ≡ q I ( m o d 2 q ) AS \equiv qI \pmod{2q} ASqI(mod2q)(也就是 A = q S − 1 ( m o d 2 q ) A=qS^{-1} \pmod{2q} A=qS1(mod2q)),公开参数为 A A A 私钥为 S S S,公钥为 q I qI qI 可省略
  2. S i g n ( μ , A , S ) Sign(\mu,A,S) Sign(μ,A,S):采样 y ← D σ m y \leftarrow D_\sigma^m yDσm,计算 c ← H ( A y , μ ) c \leftarrow H(Ay,\mu) cH(Ay,μ)(Hash to point, c ∈ { − 1 , 0 , 1 } n c \in \{-1,0,1\}^n c{1,0,1}n κ \kappa κ 重的短向量),然后采样 b ← U { 0 , 1 } b \leftarrow_\mathcal U \{0,1\} bU{0,1},计算 z ← y + ( − 1 ) b S c z \leftarrow y+(-1)^bSc zy+(1)bSc,依概率 exp ⁡ ( ∥ S c ∥ / 2 σ 2 ) M cosh ⁡ ( ⟨ z , S c ⟩ / σ 2 ) \dfrac{\exp\left(\|Sc\|/2\sigma^2\right)}{M\cosh\left(\langle z, Sc\rangle/\sigma^2\right)} Mcosh(z,Sc/σ2)exp(Sc∥/2σ2) 输出 ( c , z ) (c,z) (c,z),否则重新执行 S i g n ( μ , A , S ) Sign(\mu,A,S) Sign(μ,A,S)
  3. V e r i f y ( μ , ( c , z ) , A ) Verify(\mu,(c,z),A) Verify(μ,(c,z),A):首先检查 ∥ z ∥ ≤ η m σ \|z\| \le \eta\sqrt m\sigma zηm σ(其中 η ∈ [ 1 , 1 , 1 , 4 ] \eta \in [1,1,1,4] η[1,1,1,4] 使得正确签名通过此检查的概率至少为 1 − 2 − λ 1-2^{-\lambda} 12λ),额外检查 ∥ z ∥ ∞ < q / 4 \|z\|_\infty < q/4 z<q/4(出于安全归约的需要),最后检查 H ( A z + q c , μ ) H(Az+qc,\mu) H(Az+qc,μ) 是否等于 c c c(因为 ( − 1 ) b A S c = q c (-1)^bASc = qc (1)bASc=qc

由于 M = exp ⁡ ( ∥ S c ∥ 2 σ 2 ) M = \exp\left(\dfrac{\|Sc\|}{2\sigma^2}\right) M=exp(2σ2Sc),选取 σ ≥ τ ∥ S c ∥ \sigma \ge \tau\|Sc\| στSc 时使得 M = exp ⁡ ( 1 / ( 2 τ 2 ) ) M = \exp(1/(2\tau^2)) M=exp(1/(2τ2))。因此确定 ∥ S c ∥ \|Sc\| Sc紧上界可以降低签名大小。容易知道 ∥ S c ∥ ≤ κ ∥ S ∥ \|Sc\| \le \kappa\|S\| ScκS([Lyu12] 使用的),另一个上界 ∥ S c ∥ ≤ κ s 1 ( S ) \|Sc\| \le \sqrt\kappa s_1(S) Scκ s1(S),其中 s 1 ( S ) s_1(S) s1(S) 是奇异范数(singular norm, ∥ A ∥ L S V : = max ⁡ ∥ x ∥ 2 = 1 x T A T A x \|A\|_{LSV}:=\sqrt{\max_{\|x\|_2=1} x^TA^TAx} ALSV:=maxx2=1xTATAx 或者是 ∥ A ∥ ∞ , 1 : = max ⁡ ∥ x ∥ ∞ = 1 ∥ A x ∥ 1 \|A\|_{\infty,1}:=\max_{\|x\|_\infty=1}\|Ax\|_1 A,1:=maxx=1Ax1,文章中没写啊)。[BLISS] 给出了一个更紧的上界,定义 N k : R m × n → R N_k:\mathbb R^{m \times n} \to \mathbb R Nk:Rm×nR
N κ ( X ) : = max ⁡ I ⊆ { 1 , ⋯   , n } , ∣ I ∣ = κ ∑ i ∈ I ( max ⁡ J ⊆ { 1 , ⋯   , n } , ∣ J ∣ = κ ∑ j ∈ J T i j ) ,    T = X T X ∈ R n × n N_\kappa(X) := \max_{I \subseteq \{1,\cdots,n\},|I|=\kappa} \sum_{i \in I}\left( \max_{J \subseteq \{1,\cdots,n\},|J|=\kappa} \sum_{j \in J} T_{ij}\right),\,\, T=X^TX \in \mathbb R^{n \times n} Nκ(X):=I{1,,n},I=κmaxiI J{1,,n},J=κmaxjJTij ,T=XTXRn×n
那么对于任意的 S ∈ R m × n S \in \mathbb R^{m \times n} SRm×n 以及任意的 c ∈ B κ n c \in \mathbb B_\kappa^n cBκn,都有 ∥ S c ∥ 2 ≤ N κ ( S ) \|Sc\|^2 \le N_\kappa(S) Sc2Nκ(S)。相较于 [Lyu12],标准差 σ \sigma σ 降低了大约 κ / 2 \sqrt\kappa/2 κ /2 的因子。并且, N κ ( S ) N_\kappa(S) Nκ(S) 可以快速计算:计算 T = S T S T=S^TS T=STS,找出最长的 κ \kappa κ 列加起来,然后找出它最大的 κ \kappa κ 个元素加起来。

我们还要实现 Hash to B κ n B_\kappa^n Bκn,[BLISS] 从 RO 中获得 κ ′ > κ \kappa' > \kappa κ>κ 个随机数 x i ∈ Z n x_i \in \mathbb Z_n xiZn(丢弃 ≥ k n \ge kn kn 的值保证均匀),然后设置 c x i = 1 c_{x_i}=1 cxi=1 直到 ∥ c ∥ 1 = κ \|c\|_1=\kappa c1=κ。选取足够大的 κ ′ \kappa' κ 使得成功率够高,否则需要重新执行。在 [GLP12] 中,它将 512 512 512 长的串分成 32 32 32 组,对每组使用 5 5 5 比特 r 1 r 2 r 3 r 4 r 5 r_1r_2r_3r_4r_5 r1r2r3r4r5,其中 r 2 r 3 r 4 r 5 r_2r_3r_4r_5 r2r3r4r5 用来确定组内的位置, r 1 r_1 r1 用于确定符号,于是 32 32 32 个分组中恰有 1 1 1 个位置非零,且一共只需 160 160 160 比特的哈希值。而在 [Dilithium] 中,对于 i = n − τ , ⋯   , n i=n-\tau,\cdots,n i=nτ,,n,从 X O F ( ρ ) XOF(\rho) XOF(ρ) 中获得 j ∈ { 0 , 1 , ⋯   , i } j \in \{0,1,\cdots,i\} j{0,1,,i} 以及 s ∈ { 0 , 1 } s \in \{0,1\} s{0,1},然后设置 c i ← c j c_i \leftarrow c_j cicj 以及 c j ← ( − 1 ) s c_j \leftarrow (-1)^s cj(1)s(布谷鸟)。

虽然 A S = 0 ( m o d q ) AS=0 \pmod q AS=0(modq) 很特殊,但是可以证明仅根据 A A A 难以求解出短矩阵 S S S 或者短向量 v = S c v=Sc v=Sc:任给一个格基 B B B,设置 A ∈ Z 2 q n × m A \in \mathbb Z_{2q}^{n \times m} AZ2qn×m 满足 A = 2 B ( m o d q ) A=2B \pmod q A=2B(modq),如果 PPT 敌手找到了一个短向量 v v v 使得 A v = 0 ( m o d q ) Av=0 \pmod q Av=0(modq),那么由于 2 ( m o d q ) 2 \pmod{q} 2(modq) 是可逆的,因此有 B v = 0 ( m o d q ) Bv=0 \pmod q Bv=0(modq),这就破解了 SIS 问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值