基于 CVP∞ 的数字签名方案
1. 签名方案概述
该数字签名方案包含三个核心算法:设置(Setup)、签名(Sign)和验证(Verify)。
1.1 设置算法(Setup)
设置算法用于生成公钥和私钥,具体步骤如下:
1. 选择一个整数 n。
2. 随机计算一个整数矩阵 M,其中矩阵元素取值范围为 {-1, 0, 1},矩阵大小为 n×n。
3. 计算 D = ⌊2ρ(M) + 1⌋Id,其中 ρ(M) 是矩阵 M 的谱半径,Id 是单位矩阵。
4. 计算基 D - M 的 Hermite 标准型 H。
5. 公钥为 (D, H),私钥为 M。
1.2 签名算法(Sign)
对消息 m ∈ {0, 1} 进行签名的步骤如下:
1. 计算向量 v = h(m) ∈ Zn,其中 h 是一个哈希函数,满足 h : {0, 1} → {x ∈ Zn, ∥x∥D² < 1}。
2. 使用算法 1 计算 v 的约化向量 w。
3. 消息 m 的签名为 w。
1.3 验证算法(Verify)
验证消息 - 签名对 (m, w) 的步骤如下:
1. 检查 ∥w∥D < 1 是否成立。
2. 计算向量 h(m) ∈ Zn。
3. 检查向量 h(m) - w 是否在基 H 生成的格中。
下面是算法 2(签名算法的改进版本)的代码:
Algorithm 2.
基于CVP∞的数字签名方案及优势
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



