Page 23 - 《软件学报》2025年第10期
P. 23
4420 软件学报 2025 年第 36 卷第 10 期
3.1 符号说明
符号说明如表 2 所示.
表 2 符号说明
符号 说明
M 待签名的明文消息
H 签名方案所使用的国密算法SM3
m 待签名消息的摘要值, m = H(M)
n 签名方案使用的安全参数
PRNF 伪随机数生成函数, 用于生成随机数
base_8 将哈希值转为每8个比特为一组的十进制数
Seed 秘密种子, 为 PRNF 生成随机数使用的种子
m_bin 消息摘要的二进制信息
m_hex 消息摘要的十六进制信息
KeyGen( ) 密钥生成算法
Sign( ) 签名生成算法
Verify( ) 签名验证算法
sk 签名方案私钥, 用于对消息生成签名值
pk 签名方案公钥, 用于对消息签名值有效性验证
pk ′ 验证公钥, 若与 pk 相等, 则签名值有效
σ 签名方案生成的签名值
ADV 攻击者, 意图伪造数字签名
sk_size 私钥大小 (Bytes)
pk_size 公钥大小 (Bytes)
σ_size 签名值大小 (Bytes)
3.2 哈希函数
哈希函数可以将任意长度的输入映射为固定长度的输出, 该输出值一般称为哈希值、摘要值或散列值 [25] . 这
种映射是一种压缩映射, 因为散列值的空间远小于输入的空间, 不同的输入可能会映射成相同的输出, 所以不可能
从散列值来确定唯一的输入值. 一个理想的哈希函数应具有以下性质.
(1) 确定性: 即相同的输入信息经同一个哈希函数始终产生相同的散列值.
(2) 不可逆性: 从散列值计算输入信息在计算上是不可行的.
(3) 无碰撞性: 找到相同散列值的两个输入在计算上是不可行的.
3.3 哈希函数安全性
哈希函数的安全性是哈希基数字签名方案最基本的安全要求. 一个理想的哈希函数具有如下 3 个性质 [25] .
x, 使得
(1) 抗第一原像攻击: 抗第一原象攻击性是指对于给定的哈希值 h, 在合理的时间内找到任何原始输入
H(x) = h 是困难的. 即, 对于给定的 h, 找到任意 x 使得 H(x) = h 在计算上是不可行的 [25] .
(2) 抗第二原像攻击: 抗第二原象攻击性指的是对于一个固定的输入 x, 在合理的时间内很难找到一个不同的
H(x) = H(y) 在计算上是不可行的 [25] .
输入 y, 使得 H(x) = H(y). 即, 对于固定的 x 和任意的 y , x, 找到
x 和 使得它们的哈希值相
(3) 抗碰撞攻击: 抗碰撞攻击性指的是在合理的时间内很难找到两个不同的输入 y
同, 即 H(x) = H(y). 即, 对于所有 x , y, 找到 H(x) = H(y) 在计算上是不可行的 [25] .
4 SM3-OTS 方案
SM3-OTS 方案采用了类似 WOTS+方案中哈希链结构对消息进行签名, SM3-OTS 方案生成的签名值长度较
WOTS+方案缩短了大约 29%, 这种优化显著提升了签名的存储和传输效率, 使得 SM3-OTS 方案在存储资源受限

