针对确定性Falcon签名的差分故障攻击技术剖析
1. 算法基础
在密码学签名方案中,Falcon签名算法有着重要地位。下面先介绍两个关键算法:
- SamplerZ算法 :
Algorithm 3. SamplerZ(-)
Require: μ, σ′ ∈R with σmin ≤σ′ ≤σmax
Ensure: z ∈Z is sampled from a distribution close to DZ,μ,σ′
1: procedure SamplerZ(μ, σ′)
2:
r ←μ −⌊μ⌋
3:
c ←σmin/σ′
4:
while True do
5:
z0 ←BaseSampler()
6:
b ←UniformBits(8)&1
7:
z ←b + (2b −2)z0
8:
x ←(z−r)2
2σ′2
−
z2
0
2σmax2
9:
if BerExp(x, c) = 1 then
▷See [27] for the definition of BerExp.
10:
return z + ⌊μ⌋
该算法的目的是从接近 $D_{Z,\mu,\sigma’}$ 的分布中采样出整数 $z$。它接收参数 $\mu$ 和 $\sigma’$,在循环中通过调用 BaseSampler
等函数,结合一些计算和条件判断来确定最终的采样值。
- BaseSampler算法 :