Page 289 - 《软件学报》2025年第5期
P. 289

刘振亚 等: SM2  数字签名算法的两方门限计算方案框架                                                   2189


                 码的概念, 开启了门限密码学的研究. 门限密码算法将私钥进行拆分, 得到若干个部分私钥, 保护在不同的设备中,
                 避免了完整私钥的直接存储和使用. 密码计算需要门限数量的部分私钥的参与才能完成. 门限密码方案一方面提
                 高了系统的可用性, 即使少量部分私钥丢失, 也不会影响密码系统的可用性. 另一方面, 恶意敌手即使窃取了少量
                 部分私钥, 也难以破坏密码系统的机密性. 数字签名算法的两方门限计算方案的特点在于: 2                           个参与方分享签名私
                 钥, 分别持有部分私钥共同计算数字签名. 数字签名算法的两方门限方案在移动互联网中应用广泛, 由移动终端和
                 半可信的中心服务器共同掌握用户的私钥, 每一次数字签名计算同时需要移动终端和中心服务器参与, 从而提升
                 攻击者窃取密钥的难度; 中心服务器也不能单独地使用该私钥来完成数字签名计算.
                    SM2  算法  [5] 是国家密码管理局于    2010  年发布的标准化椭圆曲线公钥密码算法, 包含了数字签名算法, 密钥交
                 换协议和公钥加密算法, 其安全性基于求解有限域上椭圆曲线离散对数问题的困难性. SM2                            算法已成为我国公钥
                 算法标准   GM/T 0003.2-2012, 并进入国际标准    ISO/IEC 14888-3:2016  中. SM2  数字签名算法与大量的椭圆曲线签
                 名算法类似, 签名时先生成签名随机数, 再计算签名随机数对应的椭圆曲线点, 根据椭圆曲线点的横坐标及消息摘
                 要计算出签名的第       1  部分, 最后根据签名私钥、签名随机数以及签名第               1  部分, 计算得到签名第      2  部分, 与签名
                 第  1  部分共同组成消息签名. 在上述签名过程中, 签名随机数和私钥都需要被保护.
                    针对  SM2  签名算法的私钥安全问题, 已有很多两方门限计算方案被提出. 不同的方案区别在于: (1) 不同的密
                 钥生成方式, 例如基于乘法或加法拆分密钥; (2) 不同的签名随机数构造方式, 例如使用不同数量的随机数完成签
                 名随机数的构造; (3) 不同的签名计算方式, 例如使用不同的交互轮数完成数字签名的协作计算. 在此基础上, 本文
                 提出了   SM2  签名算法两方门限计算方案框架: 首先根据乘法或加法密钥拆分, 两个参与方完成协作式的密钥生
                 成, 分别获得一个部分私钥; 然后双方协作计算签名随机数对应的椭圆曲线点, 签名随机数由双方各自构造的随机
                 数共同组成; 最后根据双方分别持有的部分私钥、随机数以及消息摘要和椭圆曲线点, 完成数字签名的协作计算.
                    在协作签名的过程中, 两个参与方使用独立生成的随机数, 结合签名私钥以及各自的部分私钥, 协作构造符合
                 安全要求的签名随机数, 完成该框架的多种实例化, 得到不同的                   SM2  签名门限计算方案. 本文的实例化, 包括了现
                 有已知的   23  种两方门限计算方案, 也包括多种新的方案.
                    本文第   1 节介绍门限签名的相关工作. 第         2 节介绍本文所需基础知识, 包括        SM2 签名算法和    MtA (multiplicative-
                 to-additive share conversion protocol) 协议. 第  3  节介绍本文提出的两方门限签名计算框架并给出安全性说明. 第        4
                 节对提出的框架进行性能分析. 第          5  节总结全文.

                  1   相关工作

                    1991  年, Desmedt 等人  [6] 针对  RSA  算法设计了门限签名方案, 此后, 针对不同密码算法的门限签名方案也相
                 继被设计. DSA   和  ECDSA  签名算法的门限方案需要所有签名参与方共同协商随机数, 并计算随机数的逆, 因此门
                 限方案挑战很大. 针对该问题, 1996       年, Gennaro  等人  [7] 设计了计算乘积和求逆的多方安全计算方法, 完成           DSA  算

                 法门限方案. 但是该方案在合成签名阶段, 各用户需要计算私钥与随机数的乘积以及随机数的逆, 当门限值是                                 t 时,
                 至少需要   2t +1 个用户才能合成签名, 通信消耗非常大. 2016          年, Gennaro  等人  [8] 针对门限数字签名算法的多项式
                 扩张问题, 基于    Paillier 同态加密方案的门限版本和陷门承诺          (trapdoor commitment), 构造了最优化的门限  DSA  签
                 名方案, 该方案也适用于       ECDSA  签名算法. 随后, Gennaro  等人  [9] 对上述方案进行优化, 使用了多方安全计算技术,
                 避免了使用复杂的零知识证明方法, 设计了原理更简单的                   ECDSA  门限方案. 但是该方案依旧使用了          Paillier 同态
                 加密. 针对该问题, 2017    年  Lindell 等人  [10] 使用指数  ElGamal 的加法同态算法代替  Paillier 算法, 设计了更高效率
                 的门限   ECDSA  分布式密钥生成算法和签名算法.
                    SM2  签名算法与    DSA/ECDSA  签名算法的计算过程略有不同, 虽然            SM2  签名中包含私钥的逆运算, 但是可
                 以将私钥   d 的表达式   (1+d) −1  整体视为一个变量, 对其进行乘法或加法密钥拆分获得多个部分私钥, 避免数字签名
                 过程中的求逆运算. 各参与方使用部分私钥以及各自生成的随机数, 通过简单的点乘、点加、数乘、数加等运算,
                 交互得到    SM2  签名结果  (r, s) . 相较于使用多方安全计算、加法同态密码算法等技术, 该方法在性能方面具有明
                 显的优势. 基于上述观察, 林璟锵等人          [11] 在  2014  年公开了一个基于  SM2  的两方协作签名协议, 不需要私钥的求逆
   284   285   286   287   288   289   290   291   292   293   294