参考文献:
- [vN51] Von Neumann J. Various techniques used in connection with random digits[J]. Applied Math Series, 1951, 12(36-38): 1.
- [GPV08] Craig Gentry, Chris Peikert, Vinod Vaikuntanathan. Trapdoors for hard lattices and new cryptographic constructions. STOC 2008: 197-206
- [Duda09] Jarek Duda. Asymmetric numeral systems. CoRR abs/0902.0271 (2009).
- [Lyu09] Vadim Lyubashevsky. Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures. ASIACRYPT 2009: 598-616.
- [AJW12] Gilad Asharov, Abhishek Jain, Adriana López-Alt, Eran Tromer, Vinod Vaikuntanathan, Daniel Wichs. Multiparty Computation with Low Communication, Computation and Interaction via Threshold FHE. EUROCRYPT 2012: 483-501.
- [Lyu12] Vadim Lyubashevsky. Lattice Signatures without Trapdoors. EUROCRYPT 2012: 738-755.
- [DDLL13] Léo Ducas, Alain Durmus, Tancrède Lepoint, Vadim Lyubashevsky. Lattice Signatures and Bimodal Gaussians. CRYPTO (1) 2013: 40-56.
- [VGS17] Voelker, Aaron & Gosmann, Jan & Stewart, Terrence. (2017). Efficiently sampling vectors and coordinates from the n-sphere and n-ball. 10.13140/RG.2.2.15829.01767/1.
- [DFPS22] Julien Devevey, Omar Fawzi, Alain Passelègue, Damien Stehlé. On Rejection Sampling in Lyubashevsky’s Signature Scheme. ASIACRYPT (4) 2022: 34-64.
- [BS23] Katharina Boudgoust, Peter Scholl. Simple Threshold (Fully Homomorphic) Encryption from LWE with Polynomial Modulus. ASIACRYPT (1) 2023: 371-404.
- [CCD+23] Cheon, J.H., Choe, H., Devevey, J., G¨uneysu, T., Hong, D., Krausz, M., Land, G., Shin, J., & Stehl´e, D. (2023). HAETAE Algorithm Specifications and Supporting Documentation.
- [BBRS24] Henry Bambury, Hugo Beguinet, Thomas Ricosset, Éric Sageloli. Polytopes in the Fiat-Shamir with Aborts Paradigm. CRYPTO (1) 2024: 339-372.
文章目录
Lyubashevsky’s Signature
Fiat-Shamir With Aborts
首先回顾下 Sigma 协议和 Fiat-Shamir 转换,
- Sigma-Protocol:一族 3 3 3-round public-coin Interactive proof/argument 系统,满足的性质有 Completeness、Special Soundness(导致了 Soundness 以及 Proof of Knowledge) 和 Special Honest Verifier Zero Knowledge(公开掷硬币的诚实验证者)。其副本(Transcript)包含:从 P P P 到 V V V 的承诺(commitment),从 V V V 到 P P P 的挑战(challenge),从 P P P 到 V V V 的回应(response)。
- Fiat-Shamir Transform:给定某个关系
R
L
(
⋅
,
⋅
)
R_L(\cdot,\cdot)
RL(⋅,⋅) 的 Sigma 协议
Π
=
(
P
,
V
)
\Pi=(P,V)
Π=(P,V),
- Proof:输入公开描述 x x x 和对应的证据 w w w(被用于 x ∈ L x \in L x∈L 的快速检验),想要声明 R L ( x , w ) = 1 R_L(x,w)=1 RL(x,w)=1(即 x ∈ L x \in L x∈L),首先调用 P ( x , w ) P(x,w) P(x,w) 获得承诺 a a a,然后访问 RO 获得(公开掷硬币的)挑战 c = H ( x , a ) c=H(x,a) c=H(x,a)(使用 Hash 实例化,要求 a a a 具有充分大的最小熵),交给 P P P 收到回应 z z z,输出 ( a , z ) (a,z) (a,z) 作为证明。
- Check:输入公开描述 x x x 和证明 ( a , z ) (a,z) (a,z),访问 RO 获得挑战 c c c,调用 V ( x ) V(x) V(x) 检查 ( a , c , z ) (a,c,z) (a,c,z) 是否是可接受的副本。
- 对于数字签名方案, P P P 所持有的 ( x ∈ L , w ) (x\in L,w) (x∈L,w) 是由某个 PPT 程序 Gen 产生的,公开参数 L L L,公钥 x x x,私钥 w w w
[Lyu09] 提出了 Fiat-Shamir 范式的 Lattice-based 数字签名(Fiat-Shamir With Aborts,FSwA)。但与 Schnorr’s ID 协议不同(使用有限阶的乘法循环群 ⟨ g ⟩ \langle g \rangle ⟨g⟩),因为格是无限的,我们无法在整个格上均匀采样掩码 y y y,从而用 z = y + c ⋅ s z=y+c \cdot s z=y+c⋅s 完美隐藏秘密 s s s 的信息。有两种解决办法:
- Flooding techniques:在比 c ⋅ s c \cdot s c⋅s 的界 B 1 B_1 B1 指数大的范围 B 2 B_2 B2 内采样 y y y,根据 Smudging Lemma(最早的门限同态加密,[AJW12]),统计距离为 Δ ( y , y + c ⋅ s ) = B 1 / B 2 = n e g l ( λ ) \Delta(y,y+c \cdot s) = B_1/B_2 = negl(\lambda) Δ(y,y+c⋅s)=B1/B2=negl(λ),从而是统计隐藏的。使用 Renyi 散度而非统计距离作为分布距离的测度(多项式大小模数的门限同态加密,[BS23]),可以有效降低 B 2 B_2 B2 规模,进而减小模数 q > 2 B 2 q > 2B_2 q>2B2 的大小。
- Rejection sampling:在具有较小范围的分布上采样 y y y,利用 [vN51] 的拒绝采样技术,仅输出和 v = c ⋅ s v=c \cdot s v=c⋅s 无关的那些 z z z 值。这里可进一步分为完美的(输出分布就是目标分布)、不完美的(输出分布接近于目标分布)。
目前来看,[Lyu09] 提出的 FSwA 范式的数字签名,相较于 [GPV08] 提出的 Hash-and-Sign 范式(依赖于 Preimage Sampleable Functions),主要优势是实现简单、速度快,缺点是其签名较大。举例 Dilithium 和 Falcon,前者的签名大小几乎是后者的 4 倍,但前者的 KeyGen 和 Sign 速度分别是后者的 160 倍和 15 倍。
Rejection Sampling Strategy
[DFPS22] 研究了已有的拒绝采样策略(仅考虑了连续分布,而非离散情况),包括:超立方上的均匀分布([Lyu09]),单峰的高斯分布([Lyu12])、双峰的高斯分布([DDLL13]),并提出了一种新的策略:超球上的均匀分布。[DFPS22] 使用 Renyi 散度重写了 [Lyu12] 的一般拒绝采样定理。Renyi 散度的定义为:
在 FSwA 范式中,只使用参数 a = ∞ a = \infty a=∞ 的 Renyi 散度,即:
它和统计距离的区别:Renyi 散度考虑的是密度函数的最大比值,统计距离考虑的是密度函数绝对差值的积分。[DFPS22] 定义了上述 Renyi 散度的放松版本,允许目标分布 P P P 的支撑不全包含在源分布 Q Q Q 的支撑内部。用参数 ϵ ≥ 0 \epsilon \ge 0 ϵ≥0 控制落在 Q Q Q 的支撑以外的 P P P 的重量(累积密度),定义如下的散度:
那么 [Lyu12] 提出的一般拒绝采样定理,可以被重写如下:
在签名算法中要求 ϵ \epsilon ϵ 很小,从而算法的输出分布和目标分布基本不可区分(从而不泄露源分布的信息)。当 ϵ = 0 \epsilon = 0 ϵ=0 时,上述散度就退化为标准的 Renyi 散度;此时称之为完美拒绝采样(perfect rejection sampling),否则称之为不完美的(imperfect)。
基于上述的拒绝采样定理,[Lyu12] 的签名算法为:
对于均匀分布情况,令 V s c V_{sc} Vsc 是所有可能的取值,在有限集合 V y V_y Vy 上采样 y ← V y y \gets V_y y←Vy,计算出 z = y + c s z=y+cs z=y+cs,那么拒绝采样可以被简化 z ∈ V z z \in V_z z∈Vz 的隶属问题(如果 V z V_z Vz 是 Lp 超球,则继续简化为 Lp 范数的计算),其中 V z ⊆ ⋂ v ∈ V s c ( V y + v ) V_z \subseteq \bigcap_{v \in V_{sc}}(V_y+v) Vz⊆⋂v∈Vsc(Vy+v) 以确保独立于 c s cs cs,当取等时可以最小化拒绝率 M M M。
由于签名 ( z , c ) (z,c) (z,c) 第一分量是服从(统计接近)某个目标分布 P ( z ) P(z) P(z) 的变量,[DFPS22] 使用期望 L2 范数 E z ← P [ ∥ z ∥ 2 ] \mathbb{E}_{z \gets P}[\|z\|_2] Ez←P[∥z∥2] 来建模签名的紧凑性。[DFPS22] 研究了各种拒绝采样策略的紧凑性以及下界,结果如下:
结果显示:维度 m m m,半径 t t t,拒绝率 M M M,
- 超球上的均匀采样(依赖一维的高斯采样器),其表现与高斯分布一样好,达到了下界;
- 超立方上的均匀采样(依赖一维的均匀采样器),其签名规模比超球的大了约 m \sqrt{m} m 倍。
[DFPS22] 还提出,可以混合使用 Flooding 和 Rejection sampling:固定迭代轮数 i ∈ Z + i \in \mathbb Z^+ i∈Z+,前 i − 1 i-1 i−1 轮执行拒绝采样过程;如果全都失败了,那么第 i i i 轮执行噪声洪泛过程。这样,签名算法的运行时间存在严格上界。
在 NIST PQC 追加第 1 轮竞赛以及韩国 KpaC 竞赛中,韩国团队 [CCD+23] 提出了 Dilithium 的一种变体 HAETAE(没有进入 NIST 追加第 2 轮;唯一进入数字签名的是 HAWK,基于格同构的 Falcon 变体),将单峰的超立方均匀分布替换为了双峰的超球均匀分布,以计算效率降低为代价(减速 4-6 倍),显著降低了签名大小(减少 1000-1500 字节),获得了介于 Dilithium 和 Falcon 之间的综合性能。[CCD+23] 使用了 [VGS17] 提出的超球均匀采样算法:使用 n + 2 n+2 n+2 次一维高斯采样,做范数归一化,可以获得 n + 2 n+2 n+2 维球面上的均匀分布,然后简单丢弃任意的两个坐标(关于它们的正交投影),即可获得 n n n 维球体上的均匀分布;采样算法如下:
由于输出的 z z z 不再是超立方上的均匀分布,而是一个超球,简单存储各个系数并不能获得最佳效果。为了减小签名的大小,[CCD+23] 使用了 [Duda09] 提出的 rANS 编码(一种渐进的最优码)。这种编码的特点是:将输入序列的前缀子序列,迭代地编码为一个不断增大的正整数;它只需要有限精度的整数算术,甚至可以通过查表(tANS)消除所有的算术,因此编码效率很高。具体的编码/解码算法这里不再详细描述。
Rejection Sampling on Polytopes
对比已有算法:Dilithium 具有极为简单的采样器,但是签名规模较大;HAETAE 具有更小的签名,但是依赖高斯采样器,其速度较慢。此外,[DFPS22] 的分析只关注了连续分布,但是实际的签名算法都是在整数点上采样。
[BBRS24] 考虑了一种新的拒绝采样策略:在 L1 超球和 Linf 超球的交集(一种对称的 L2 超球内接多面体)内的整数点上均匀采样。这么做的好处是:源分布和目标分布都定义在整数点上、只需要均匀采样器(消耗的熵少、实现简单高效)、拒绝条件容易计算(基于范数的隶属性判断)、其形状接近 L2 超球(签名较小)。
定义 B p n ( r , c ) \mathcal{B}_p^n(r,c) Bpn(r,c) 表示在 L p L_p Lp 范数下的半径为 r ∈ R r \in \mathbb R r∈R 中心为 c ∈ R n c \in \mathbb R^n c∈Rn 的超球体(Superball),令 S p n ( r ) \mathcal{S}_p^n(r) Spn(r) 是其表面(Supersphere)。不特殊说明时的 “球” 指代 L2 超球。那么,
-
L1 超球 B 1 n ( n r ) \mathcal{B}_1^n(\sqrt{n}r) B1n(nr),它由 2 n 2^n 2n 个 n n n 角超平面拼成,其外接球为 B 2 n ( n r ) \mathcal{B}_2^n(\sqrt{n}r) B2n(nr),其内切球为 B 2 n ( r ) \mathcal{B}_2^n(r) B2n(r)
-
Linf 超球 B ∞ n ( r ) \mathcal{B}_\infty^n(r) B∞n(r),它由 2 n 2n 2n 个 2 n − 1 2^{n-1} 2n−1 角超平面拼成,其外接球为 B 2 n ( n r ) \mathcal{B}_2^n(\sqrt{n}r) B2n(nr),其内切球为 B 2 n ( r ) \mathcal{B}_2^n(r) B2n(r)
-
定义交集 H r n = B ∞ n ( r ) ∩ B 1 n ( n r ) \mathcal{H}_r^n = \mathcal{B}_\infty^n(r) \cap \mathcal{B}_1^n(\sqrt{n}r) Hrn=B∞n(r)∩B1n(nr),它是一个多面体(由上述的 2 n + 2 n 2^n+2n 2n+2n 个超平面围成),其内切球为 B 2 n ( r ) \mathcal{B}_2^n(r) B2n(r),外接球为:
B 2 n ( r ⌊ n ⌋ + ( n − ⌊ n ⌋ ) 2 ) \mathcal{B}_2^n\left(r\sqrt{\lfloor\sqrt{n}\rfloor + (\sqrt{n} - \lfloor\sqrt{n}\rfloor)^2}\right) B2n(r⌊n⌋+(n−⌊n⌋)2)
其半径小于等于 r n 1 / 4 rn^{1/4} rn1/4,当 n n n 是完全平方数时(即 n ∈ Z \sqrt{n} \in \mathbb Z n∈Z)取等。相较于 Linf 超球,该多面体的外接球和内切球的半径比值,从原本的 n \sqrt{n} n 降低到了 n 1 / 4 n^{1/4} n1/4(形状更接近 L2 超球),因此使用它作为 y y y 的范围,可以降低签名 z z z 的大小。
对于 n = 3 n=3 n=3 情况,如图所示:
常用 Lp 超球的体积、基数估计:
Polytopes
首先,给出多面体的定义。集合 X X X 的凸包 c o n v ( X ) conv(X) conv(X) 是指,由有限多个点 x ∈ X x \in X x∈X,经过满足 λ x ∈ ( 0 , 1 ] \lambda_x \in (0,1] λx∈(0,1] 以及 ∑ x λ x = 1 \sum_x \lambda_x=1 ∑xλx=1 的系数,线性组合出的点 ∑ x λ x x \sum_x\lambda_x x ∑xλxx 所形成的区域,它是包含 X X X 的最小凸集。
多面体的顶点集合记为 V ( P ) = { x i } 1 ≤ i ≤ v \mathcal{V}(\mathcal{P})=\{x_i\}_{1\le i \le v} V(P)={xi}1≤i≤v,在无序下是唯一的。可以执行平移、缩放、交集等运算:
[BBRS24] 研究了对称且内接的多面体,并使用满足该条件的 H r n = B ∞ n ( r ) ∩ B 1 n ( n r ) \mathcal{H}_r^n = \mathcal{B}_\infty^n(r) \cap \mathcal{B}_1^n(\sqrt{n}r) Hrn=B∞n(r)∩B1n(nr) 作为 FSwA 所使用的掩码区域。首先,他们证明了凸集连续平移的交集,有如下等式:
然后可以证明(任意的整数点偏移某个整数点后还是一个整数点),对于整的对称且内接的多面体(即
V
(
P
r
)
⊂
Z
n
\mathcal{V}(\mathcal{P}_r) \sub \mathbb Z^n
V(Pr)⊂Zn),它满足:
⋂
c
∈
P
r
,
Z
P
R
,
c
,
Z
=
P
R
−
r
,
c
,
Z
\bigcap_{c \in \mathcal{P}_{r,\mathbb Z}} \mathcal P_{R,c,\mathbb Z} = \mathcal P_{R-r,c,\mathbb Z}
c∈Pr,Z⋂PR,c,Z=PR−r,c,Z
换句话说,如果使用多面体
H
n
\mathcal{H}^n
Hn,令
β
\beta
β 是
c
s
cs
cs 的 L2 范数(启发式)上界,那么:
- 对于任意的 v ∈ V s c : = B 2 n ( β ) ∩ Z n v \in V_{sc}:=\mathcal B_2^n(\beta) \cap \mathbb Z^n v∈Vsc:=B2n(β)∩Zn(因为 H β n \mathcal{H}_\beta^n Hβn 的内切球是 B 2 n ( β ) \mathcal B_2^n(\beta) B2n(β)),
- 在整数点集 V y : = P r + β , Z V_y:=\mathcal P_{r+\beta,\mathbb Z} Vy:=Pr+β,Z 中均匀采样掩码 y y y,计算 z = y + s c ∈ P r + β , v , Z z=y+sc \in \mathcal{P}_{r+\beta,v,\mathbb Z} z=y+sc∈Pr+β,v,Z
- 那么最小化拒绝率 M M M 的区域 V z V_z Vz 就是 P r , c , Z \mathcal P_{r,c,\mathbb Z} Pr,c,Z(此即为不泄露 v v v 信息的最大集合)
不过,由于整数点集的基数难以精确计算,导致 M M M 较难估计。[BBRS24] 首先给出了连续多面体的拒绝采样定理,然后使用连续多面体的体积 V o l ( P r n ) Vol(\mathcal P_r^n) Vol(Prn) 与其整数点集的基数 ∣ P r , Z n ∣ |\mathcal P_{r,\mathbb Z}^n| ∣Pr,Zn∣ 的近似误差 ϵ n , r \epsilon_{n,r} ϵn,r 对其拒绝率 M M M 做个微调,从而得到离散版本的拒绝采样定理。
关于(均匀分布下)多面体中整数点的(完美)拒绝采样定理:
在签名算法中,给定维度 n n n、范数界 β \beta β 和拒绝率 M M M,可以根据该定理计算出最紧凑的 r r r 和 R R R,以及最终的拒绝率 M ′ M' M′,然后根据 r r r 和模数 q q q 评估其 UF-NMA 的安全强度。
Signature
现在,使用特殊多面体 H r n = B ∞ n ( r ) ∩ B 1 n ( n r ) \mathcal{H}_r^n = \mathcal{B}_\infty^n(r) \cap \mathcal{B}_1^n(\sqrt{n}r) Hrn=B∞n(r)∩B1n(nr) 作为上述定理中 P \mathcal P P 的实例化。该多面体相较于超立方,其形状更接近 L2 超球,因此签名规模相对更小;同时,该多面体上的均匀采样器只需要一维的均匀采样器,实现简单高效,消耗的熵比高斯或者超球均匀分布更少。
该多面体是对称的、内接的,其外接球半径为:
r
⌊
n
⌋
+
(
n
−
⌊
n
⌋
)
2
≤
r
⋅
n
1
/
4
r\sqrt{\lfloor\sqrt{n}\rfloor + (\sqrt{n} - \lfloor\sqrt{n}\rfloor)^2} \le r\cdot n^{1/4}
r⌊n⌋+(n−⌊n⌋)2≤r⋅n1/4
该多面体的顶点集合
V
(
H
r
n
)
\mathcal V(\mathcal H_r^n)
V(Hrn) 如下:向量
⌊
n
⌋
⋅
[
r
]
+
[
Δ
n
r
]
+
(
n
−
⌊
n
⌋
−
1
)
⋅
[
0
]
∈
R
n
\lfloor\sqrt{n}\rfloor\cdot[r]+[\Delta_nr]+(n-\lfloor\sqrt{n}\rfloor-1)\cdot[0] \in \mathbb R^n
⌊n⌋⋅[r]+[Δnr]+(n−⌊n⌋−1)⋅[0]∈Rn 的所有符号置换(signed permutation),这里的
+
,
⋅
+, \cdot
+,⋅ 表示级联和重复(仿照 Python
语法),其中
Δ
n
=
n
−
⌊
n
⌋
\Delta_n = \sqrt{n} - \lfloor\sqrt{n}\rfloor
Δn=n−⌊n⌋。证明的思路是:
H
r
n
\mathcal{H}_r^n
Hrn 是两个球的交集,因此顶点必定同时位于两个球面上;Linf 球面的点,其某些坐标是
±
r
\pm r
±r;L1 球面的点,其最多允许
⌊
n
⌋
\lfloor\sqrt{n}\rfloor
⌊n⌋ 个坐标是
±
r
\pm r
±r;如果某点存在两个坐标属于
(
−
r
,
0
)
∪
(
0
,
r
)
(-r,0)\cup(0,r)
(−r,0)∪(0,r) 范围,那么一增一减就还是 L1 球面和 Linf 球面上的点,因此不是顶点。
上一节中介绍,整的、对称的、内接的多面体
P
r
\mathcal P_r
Pr 有性质
⋂
c
∈
P
r
,
Z
P
R
,
c
,
Z
=
P
R
−
r
,
c
,
Z
\bigcap_{c \in \mathcal{P}_{r,\mathbb Z}} \mathcal P_{R,c,\mathbb Z} = \mathcal P_{R-r,c,\mathbb Z}
⋂c∈Pr,ZPR,c,Z=PR−r,c,Z(从而获得了离散的拒绝采样定理),对于
H
r
n
\mathcal{H}_r^n
Hrn 来说这要求
Δ
n
r
∈
Z
\Delta_nr \in \mathbb Z
Δnr∈Z 条件,但这会严重限制
n
n
n 和
r
r
r 的取值。由于 L1 球和 Linf 球都满足
B
Z
(
r
)
=
B
Z
(
⌊
r
⌋
)
,
r
∈
R
+
\mathcal B_{\mathbb Z}(r) = \mathcal B_{\mathbb Z}(\lfloor r\rfloor),r \in \mathbb R^+
BZ(r)=BZ(⌊r⌋),r∈R+,因此有:
H
r
,
Z
n
=
B
∞
,
Z
n
(
⌊
r
⌋
)
∩
B
1
,
Z
n
(
⌊
n
r
⌋
)
\mathcal{H}_{r,\mathbb Z}^n = \mathcal{B}_{\infty,\mathbb Z}^n(\lfloor r\rfloor) \cap \mathcal{B}_{1,\mathbb Z}^n(\lfloor \sqrt{n}r\rfloor)
Hr,Zn=B∞,Zn(⌊r⌋)∩B1,Zn(⌊nr⌋)
对于
r
=
β
∈
Z
+
r=\beta \in \mathbb Z^+
r=β∈Z+ 的情况,可以写作
H
β
,
Z
n
=
B
∞
,
Z
n
(
β
)
∩
B
1
,
Z
n
(
⌊
n
⌋
β
+
⌊
Δ
n
β
⌋
)
\mathcal{H}_{\beta,\mathbb Z}^n = \mathcal{B}_{\infty,\mathbb Z}^n(\beta) \cap \mathcal{B}_{1,\mathbb Z}^n(\lfloor\sqrt{n}\rfloor \beta+\lfloor\Delta_n\beta\rfloor)
Hβ,Zn=B∞,Zn(β)∩B1,Zn(⌊n⌋β+⌊Δnβ⌋),其中的(连续)L1 球和 Linf 球都是整的、对称的、内接的多面体。对于
β
<
R
∈
Z
+
\beta <R \in \mathbb Z^+
β<R∈Z+(数字签名里使用的
R
R
R 是整数),虽然
H
β
n
\mathcal H_\beta^n
Hβn 不一定是整的,依然会有如下性质:
⋂
v
∈
H
β
,
Z
n
H
R
,
v
,
Z
n
=
H
R
−
β
,
Z
n
\bigcap_{v \in \mathcal{H}_{\beta,\mathbb Z}^n} \mathcal{H}_{R,v,\mathbb Z}^n = \mathcal{H}_{R-\beta,\mathbb Z}^n
v∈Hβ,Zn⋂HR,v,Zn=HR−β,Zn
这就获得了离散情况下最小化拒绝率的半径为
R
−
β
R-\beta
R−β 的多面体区域。多面体
H
n
\mathcal{H}^n
Hn 上的拒绝采样定理,如下:
需要计算 H r n \mathcal H_r^n Hrn 的体积和其整数点集的基数,从而根据(连续情况的) M M M 确定出(离散情况的) M ′ M' M′ 的值。前者具有闭合解,且容易计算;后者没有闭合解,可以用多项式乘法来模拟(但是计算复杂度挺高的,基本算不动)。[BBRS24] 计算了某些 n , r n,r n,r 对应的值,发现其 ϵ n , r \epsilon_{n,r} ϵn,r 极小,因此 M M M 本身就是 M ′ M' M′ 足够好的近似值。
剩下的问题就是算法实现了,需要解决:
- 该多面体上的均匀采样器
- 该多面体上的隶属性判定:只需要计算两个范数。
根据 Lemma 7,从相应 L1 超球中均匀采样,大多数点已经位于该多面体内部了,只需再用 Linf 范数做一次拒绝采样(这是额外的),即可获得多面体内的均匀采样。对于 L1 超球中均匀采样,由于(半)L1 球面到其任意坐标轴正交的超平面上投影是双射,[BBRS24] 首先在 n + 1 n+1 n+1 维 L1 球面上均匀采样,然后简单舍弃某个坐标,就获得了 n n n 维 L1 球体的均匀样本。而 L1 球面上的均匀采样,可以采用隔板法。采样算法如下:
它这里 SampleSphere 中的 step 10 情况,似乎有一些样本不应该舍弃:因为第 n + 1 n+1 n+1 坐标轴正交的超平面和 L1 球面相交的部分(是个 n n n 维球面),应当以其他点的两倍密度来采样,这样才能确保舍弃第 n + 1 n+1 n+1 坐标后,整体上(球面、球内)是均匀的。虽然 SampleSphere 并非是常数时间的(constant time),但是它所输出的 ( y i ) (y_i) (yi) 总是由完整的 step 1 - 10 以及 step 12 计算出来的;这被称为同步的(isochronous),其运行时间不会泄露 ( y i ) (y_i) (yi) 的信息。
签名算法中, z z z 被裁剪到区域 H r : = R − β , Z n \mathcal{H}_{r:=R-\beta,\mathbb Z}^n Hr:=R−β,Zn 内,它的形状较为接近 L2 超球(其顶角是 “毛刺”)。为了进一步减小签名规模,[BBRS24] 使用半径为 θ r \theta r θr 的 L2 超球对它继续裁剪。定义形状: C θ , r n : = H r n ∩ B 2 ( θ ⋅ r ) \mathcal C_{\theta,r}^n := \mathcal H_r^n \cap \mathcal B_2(\theta \cdot r) Cθ,rn:=Hrn∩B2(θ⋅r),那么有:
虽然 θ n : = ( α n / 2 ) 1 / n 2 e / π ≈ 1.315 \theta_n:=(\alpha_n/\sqrt2)^{1/n}\sqrt{2e/\pi} \approx 1.315 θn:=(αn/2)1/n2e/π≈1.315 时两者体积相等,但是 H r , Z n \mathcal{H}_{r,\mathbb Z}^n Hr,Zn 的大多数点都不在 C θ n , r n \mathcal C_{\theta_n,r}^n Cθn,rn 的内部。而实验(蒙特卡洛模拟)表明 θ ∈ R + \theta \in \mathbb R^+ θ∈R+ 取值 1.5 1.5 1.5 时,多面体的大多数点就都被这个 L2 超球包含了,从而拒绝率基本不变。参数 θ ∈ [ 1.315 , 1.5 ] \theta \in [1.315, 1.5] θ∈[1.315,1.5] 可用于签名大小和拒绝率的权衡。
Patronus
[BBRS24] 利用上述的多面体,替换掉了 Dilithium 中的超立方(Linf 超球),显著降低了签名大小,代价是采样效率降低 20 倍。不过在 Dilithium 中采样的开销只占约 10 % 10\% 10%,因此整体时间估计会是 3 倍样子(论文没有给出完整实现,只有采样器的实现)。
采样器的实验结果: