Page 303 - 《软件学报》2025年第5期
P. 303
刘振亚 等: SM2 数字签名算法的两方门限计算方案框架 2203
w 2 , 并从方程 w 1 . 根据上述安全性分析可知, Alice 和
w 2 d 2 = 0 中解出 d 2 和 2: s−(r +w 1 )d 1 − s 1 +r = 0 中解出 d 1 和
Bob 无法分别求解方程 1 和方程 2, 且 Adv 所掌握的信息少于 Alice 和 Bob. 因此, Adv 无法从方程 1 和方程 2 中
解出 d 1 、 d 2 、 w 1 、 w 2 . 进一步, 根据签名随机数构造的安全要求, w 1 和 w 2 总是包含至少 1 个独立随机生成的随
机数, 因此在具体的两方门限计算方案中, 敌手 Adv 也无法求解所得的方程. 综上, Adv 无法从协作签名的交互过
程中获取任何 Alice 和 Bob 的私密信息, 从而无法获取完整的签名私钥或任一参与方的部分私钥.
4 性能分析
Alice 和 Bob 使用一对公私钥多次进行两方协作签名, 密钥生成过程只执行一次. 因此, 本文只讨论签名生成
过程的计算消耗和通信消耗. 签名生成过程的计算消耗主要由点乘、点加、数乘和数加运算组成. 相关文献 [40] 指
出, 点乘运算的计算消耗大约是点加运算的 300 倍, 且远大于数乘和数加运算的计算消耗, 因此本文只讨论签名生
成过程中的点乘计算消耗. 以下分别讨论不同 SM2 两方门限计算方案框架的计算消耗以及通信消耗, 如表 6
所示.
表 6 性能分析
已知点点 未知点点 通信 通信量
框架 离线预计算 在线计算
乘/次 乘/次 轮数 (bit)
乘法密钥拆分、两随机数 2 1 [w 1 ]G,[w 2 ]G [ d −1 ] 2 1 280
2 Q 1
乘法密钥拆分、多随机数 γ +1 γ [w 1 ]G,...,[w γ+1 ]G [w γ+2 ]Q 1 ,...,[w 2γ +1 ]Q γ 2 768γ +512
加法密钥拆分、服务器/客户端1-to-1 2 0 [d 1 w 1 ](P+G),[d 2 w 2 ](P+G) Null 2 1 280
加法密钥拆分、服务器/客户端1-to-n 1 1 [d 1 w 1 ](P+G) [d 2 w 2 ](P+G) 2 1 280
4.1 基于乘法密钥拆分的两随机数两方门限计算方案框架
该框架所给出的签名生成过程包含 3 次点乘运算, 分别为 Alice 端的一次基点点乘 [w 1 ]G , Bob 端的一次基点
[ −1 ]
点乘 [w 2 ]G 和一次未知点点乘 d 2 Q 1 . 由于基点 G 为已知点, 且随机数 w 1 和 w 2 分别由 Alice 和 Bob 独立生成, 因
[ −1 ]
此点乘 [w 1 ]G 和 [w 2 ]G 可以离线预计算, 将点乘结果分别存储, 节省签名生成的计算消耗. 而点乘 d 2 Q 1 中的 Q 1
是签名生成过程中 Alice 发送给 Bob 的点, 对于 Bob 而言是未知点, 因此只能在线计算.
该框架所给出的签名生成过程包含两次通信, 分别是 Alice 给 Bob 发送椭圆曲线点 Q 1 和消息摘要 , 以及 Bob
e
给 Alice 发送签名中间值 s 1 和签名第 1 部分 r . 根据 SM2 椭圆曲线的标准参数可知, 椭圆曲线点 Q 1 包含两个 256 bit
的坐标, 消息摘要 e 、签名中间值 s 1 和签名第 1 部分 r 的长度均为 256 bit, 因此该签名生成过程的通信量为 1 280 bit.
4.2 基于乘法密钥拆分的多随机数两方门限计算方案框架
该框架所给出的签名生成过程的计算消耗与随机数的数量相关, 当随机数数量为 (2γ +1) 时, 签名生成过程包
]
[
]
含 (2γ +1) 个点乘. 分别为 Alice 端的 γ 次基点点乘 Q 1 = [w 1 ]G,...,Q γ = w γ G , Bob 端的一次基点点乘 [ w γ+1 G 和
[ ] [ ]
γ 次未知点点乘 w γ+2 Q 1 ,..., w 2γ +1 Q γ . 由于基点 G 为已知点, 且随机数 w 1 ,w 2 ,...,w γ 和 w γ+1 分别由 Alice 和 Bob
[ ] [ ]
独立生成, 因此点乘 Q 1 = [w 1 ]G,...,Q γ = w γ G 和 w γ+1 G 可以离线预计算, 将点乘结果分别存储, 节省签名生成
[ ] [ ]
的计算消耗. 而点乘 w γ+2 Q 1 ,..., w 2γ+1 Q γ 中的 Q 1 ,...,Q γ 是签名生成过程中 Alice 发送给 Bob 的点, 对于 Bob 而
言是未知点, 因此只能在线计算.
该框架所给出的签名生成过程包含两次通信, 分别是 Alice 给 Bob 发送椭圆曲线点 Q 1 ,...,Q γ 和消息摘要 ,
e
以及 Bob 给 Alice 发送签名中间值 s 1 ,..., s γ+1 和签名第 1 部分 r . 每个椭圆曲线点都包含两个 256 bit 的坐标, 消息
摘要 e 签名中间值 s 1 ,..., s γ+1 和签名第 1 部分 r 的长度均为 256 bit, 因此该签名生成过程的通信量为 (768γ +512) bit.
4.3 基于加法密钥拆分的两方门限计算方案框架
该框架所给出的签名生成过程包含两次点乘运算, 分别为 Alice 端的一次点乘 [d 1 w 1 ](P+G) , 和 Bob 端的一