基于格的数字签名算法:BLISS(Bimodal Lattice Signature Scheme)的密钥生成过程
题目描述
BLISS(Bimodal Lattice Signature Scheme)是一种基于格上困难问题的后量子数字签名算法,其安全性基于环上带舍入学习(Ring-Learning With Errors,Ring-LWE)和最短向量问题(SVP)。BLISS以其较短的签名长度和高效的签名生成速度而闻名。本题目将详细讲解BLISS算法中密钥生成的具体步骤,包括参数选择、私钥生成、公钥计算及相关的数学原理。
解题过程循序渐进讲解
步骤1:理解BLISS的数学基础与参数
BLISS运行在一个多项式环 \(R_q = \mathbb{Z}_q[x] / (x^n + 1)\),其中 \(n\) 是2的幂(如 \(n=512\)),\(q\) 是一个模数(如 \(q=12289\))。关键参数包括:
- 维度 \(n\):多项式的次数。
- 模数 \(q\):多项式的系数模 \(q\)。
- 私钥密度参数 \(\delta_1, \delta_2\):控制私钥系数的分布(通常为稀疏二元多项式)。
- 公钥噪声参数 \(\kappa\):影响安全性。
- 签名参数 \(M, \sigma\):用于签名时的拒绝采样。
密钥生成的目标是产生一对密钥:私钥 \(sk\) 和公钥 \(pk\),使得从公钥推导私钥等价于解决格上的困难问题。
步骤2:生成私钥(Secret Key)
私钥由两个短多项式 \(f, g \in R_q\) 组成,其系数取自集合 \(\{-1, 0, 1\}\),并且满足稀疏性和可逆性条件。具体过程如下:
- 随机生成两个多项式 \(f, g\),其中:
- 每个多项式的系数独立采样:\(\Pr(1) = \Pr(-1) = \delta_1/2\),\(\Pr(0) = 1 - \delta_1\)。
- 确保 \(f\) 在模 \(q\) 下可逆(即存在 \(f^{-1} \in R_q\)),否则重新生成。这通过检查 \(f\) 在 \(R_q\) 中的逆元存在性实现。
- 私钥记为 \(sk = (f, g)\)。
- 实际中,\(f\) 和 \(g\) 通常以紧凑的稀疏格式存储(如记录非零系数的位置和符号)。
步骤3:计算公钥(Public Key)
公钥是一个多项式 \(a \in R_q\),满足以下关系:
- 计算 \(a = g \cdot f^{-1} \mod q\)。
- 这里 \(f^{-1}\) 是 \(f\) 在环 \(R_q\) 中的乘法逆元。
- 公钥记为 \(pk = a\)。
- 从公钥 \(a\) 和关系 \(a = g \cdot f^{-1} \mod q\) 中,推导 \((f, g)\) 等价于求解Ring-LWE问题,因为 \(g = a \cdot f \mod q\) 看起来像是一个带有噪声的线性方程。
步骤4:密钥的数学性质验证
为确保密钥有效,需验证:
- \(f\) 可逆:计算 \(f \cdot f^{-1} \equiv 1 \mod (q, x^n+1)\)。
- 公钥一致性:检查 \(a \cdot f \equiv g \mod q\) 是否成立。
- 此验证在生成后本地进行,不公开。
步骤5:密钥存储与优化
在实际实现中,BLISS使用以下优化:
- 私钥 \((f, g)\) 可进一步转换为更紧凑的形式,如存储种子用于重新生成,以减少存储开销。
- 公钥 \(a\) 通常以向量形式存储(\(n\) 个模 \(q\) 的系数)。
- 预计算:为加速签名过程,可预先计算 \(f^{-1}\) 和 \(2f^{-1}\) 等值并存储在私钥中。
步骤6:安全性考虑
密钥生成的安全性基于:
- 稀疏二元私钥:\(f, g\) 的系数来自 \(\{-1, 0, 1\}\),但稀疏性(密度约 \(\delta_1=0.3\))确保私钥短,同时防止暴力搜索。
- 公钥的Ring-LWE结构:给定 \(a\),寻找满足 \(a \cdot f \approx g\) 的短 \((f, g)\) 是Ring-LWE问题的变体,被认为在量子计算机下困难。
- 参数选择:BLISS的原始参数(如 BLISS-I 到 BLISS-IV)针对不同安全级别(如128位安全性)优化了 \(n, q, \delta_1, M, \sigma\) 等,平衡安全性与效率。
总结
BLISS的密钥生成过程通过生成稀疏短私钥 \((f, g)\) 和计算公钥 \(a = g \cdot f^{-1} \mod q\),构建了一个基于Ring-LWE问题的公私钥对。该过程确保了从公钥推导私钥的困难性,同时私钥的稀疏性为高效签名奠定了基础。后续的签名过程将利用私钥和拒绝采样技术,生成短且安全的签名。