Page 291 - 《软件学报》2025年第5期
P. 291
刘振亚 等: SM2 数字签名算法的两方门限计算方案框架 2191
常用加法同态密码算法有 Paillier 算法 [16] . 对于 ⊙ 操作定义如下:
Paillier 算法, ⊕ 和
Enc pk (m 1 )⊕ Enc pk (m 2 ) = Enc pk (m 1 )· Enc pk (m 2 ).
k
k ⊙ Enc pk (m) = Enc pk (m) .
Alice 和 Bob 分别持有乘法份额 z A 和 z B , 满足 z = z A z B . Alice 和 Bob 通过如下步骤使用加法同态密码算法实
现 MtA 协议, 从而获得加法份额分享.
Alice.1 计算 c A = Enc pk (z A ) , 发送 c A 给 Bob.
z .
′
Bob.1 随机生成 B
′ ′ c 给 ′ Alice.
,
Bob.2 计算 c B = z B ⊙c A c = c B ⊕ Enc pk (−z ) , 发送
B B B
′
′
Alice.2 计算 z = Dec sk (c ) .
A B
Alice 和 Bob 分别获得加法份额 z 和 z , 满足 z = z A z B = z +z .
′
′
′
′
A
B
B
A
2.2.2 基于不经意传输的 MtA 协议
1-out-of-2 OT 协议 [17] 允许发送方输入 2 个比特串 (α 0 ,α 1 ) , 接收方输入 β ∈ {0,1} , 结果是接收方获得比特串 α β .
OT 协议保证接收方不知道 α¯ β , 发送方不知道 β .
Alice 和 Bob 分别持有乘法份额 z A 和 z B , 满足 z = z A z B z A ,z B ∈ F p , 令 ρ = log |p| . Alice 和 Bob 通过如下步骤
,
2
使用 1-out-of-2 OT 协议实现 MtA 协议, 从而获得加法份额分享.
Bob.1 随机生成 ρ 个随机数, 分别为 µ 0 ,...,µ ρ−1 ∈ F p .
0 1 i 0 1 0 1
Bob.2 对于 i ∈ [0,ρ−1] . 计算 t = µ i t = 2 z B +µ i , 得到 ρ 个比特串对 (t ,t ),...,(t ρ−1 ,t ρ−1 ) .
,
i
i
0
0
Alice.1 记 z A 的二进制形式为 z A ρ−1 ...z A 0 .
Alice 和 Bob 执行 ρ 次 1-out-of-2 OT 协议, 第 i 次执行时, Alice 从比特串对 (t ,t ) 中获得 t z A i .
0
1
i
i
i
∑
′
t
Alice.2 计算 z = ρ−1 z A i .
A i
i=0
∑ ρ−1
′
Bob.3 计算 z = − µ i .
B
i=0
Alice 和 Bob 分别获得加法份额 z 和 z , 满足 z = z A z B = z +z .
′
′
′
′
A B A B
3 SM2 数字签名算法的两方门限计算方案框架
两方门限计算意味着 2 个参与方共同完成 SM2 数字签名的计算过程, 任意一方无法独立完成签名的计算. 因
此, 两个参与方应分别持有 1 个部分私钥, 用于协作计算签名. 在签名计算的过程中, 为了保护各自的部分私钥, 2
个参与方应该通过特定的方式协作生成签名随机数, 使得任意一方都无法获取完整的签名随机数, 从而进一步计
算出完整的签名私钥. SM2 数字签名算法的两方门限计算方案的主要步骤如下.
(1) 2 个参与方完成协作式的密钥生成, 分别得到 1 个部分私钥. 2 个部分私钥与签名私钥满足特定的关系, 并
对应地公开公钥.
(2) 2 个参与方协作计算, 得到一个椭圆曲线点 Q = [k]G , 其中 k 为签名随机数.
(3) 2 个参与方根据步骤 2 所得椭圆曲线点的 x 轴坐标以及待签名消息的摘要 e , 计算得到签名的第 1 部分 r .
(4) 2 个参与方使用步骤 2 中生成或计算的随机数、签名第 1 部分 r 以及各自的部分私钥协作计算, 得到签名
的第 2 部分 s .
上述过程应该满足如下安全要求: 任一参与方无法从中获取完整签名私钥或另一部分私钥的任何信息. 这
要求:
(1) 在密钥生成阶段, 任一参与方不会泄露有关签名私钥或部分私钥的任何信息, 使得另一方无法获取完整的
签名私钥.
(2) 在签名计算阶段, 任一参与方不会泄露有关签名私钥或部分私钥的任何信息, 使得另一方无法获取完整的
签名私钥.