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  方案在存储资源受限
   18   19   20   21   22   23   24   25   26   27   28