@@ -109,30 +109,29 @@ Schnorr签名广泛应用于区块链和加密货币领域,如比特币的Tapr
109
109
110
110
#### 2.3. 签名生成
111
111
112
- - 选择随机数 \( k_i \) ** :每个签名者 \( i \) 随机选择一个 \( k_i \) 满足 \( 0 < k_i < n \) 。
113
- - 计算 \( r_i \) ** :每个签名者计算 \( r_i = g^{k_i} \) 。
114
- - 广播 \( r_i \) ** :各个签名者相互广播 \( r_i \) 。
115
- - 计算 \( r \) ** :汇总所有签名者的 \( r_i \) 计算出联合值 \( r \) :
116
- \[
117
- r = \prod_ {i=1}^{t} r_i = g^{\sum_ {i=1}^{t} k_i}
118
- \]
119
- - 计算哈希值 \( e \) ** :将消息 \( m \) 和联合值 \( r \) 结合,计算哈希值 \( e = H(m, r) \) 。
120
- - 计算部分签名 \( s_i \) ** :每个签名者计算部分签名 \( s_i = k_i + x_i \cdot e \mod n \) 。
121
- - 汇总部分签名 \( s \) ** :所有签名者将他们的部分签名相加得到联合签名 \( s \) :
122
- \[
123
- s = \sum_ {i=1}^{t} s_i \mod n
124
- \]
125
-
126
- 生成的联合签名为 \( (e, s) \) 。
112
+ - 选择随机数 $k_i$:每个签名者 $i$ 随机选择一个 \( k_i \) 满足 $0 < k_i < n$。
113
+ - 计算 $r_i$:每个签名者计算 $r_i = g^{k_i}$。
114
+ - 广播 $r_i$:各个签名者相互广播 $r_i$。
115
+ - 计算 $r$:汇总所有签名者的 $r_i$计算出联合值 $r$:
116
+
117
+ $$ r = \prod_{i=1}^{t} r_i = g^{\sum_{i=1}^{t} k_i} $$
118
+
119
+ - 计算哈希值 e:将消息 m 和联合值 r 结合,计算哈希值 $ e = H(m, r)$。
120
+ - 计算部分签名 $s_i$:每个签名者计算部分签名 $s_i = k_i + x_i \cdot e \mod n$。
121
+ - 汇总部分签名 $s$:所有签名者将他们的部分签名相加得到联合签名 $s$:
122
+
123
+ $$ s = \sum_{i=1}^{t} s_i \mod n $$
124
+
125
+ 生成的联合签名为 $(e, s)$。
127
126
128
127
129
128
#### 2.4.签名验证
130
- - 验证 \( r \) ** :通过联合公钥 \( y \) 和联合签名 \( ( e, s) \) 计算 \( r' \) :
131
- \[
132
- r' = g^s \cdot y^{-e}
133
- \]
134
- - 计算哈希值 \( e' \) ** :将消息 \( m \) 和计算得到的 \( r' \) 结合,计算哈希值 \( e' = H(m, r') \) 。
135
- - 验证签名** :如果 \( e' = e \) ,则签名有效;否则签名无效。
129
+ - 验证 r :通过联合公钥 y 和联合签名 ( e, s) 计算 r':
130
+
131
+ $$ r' = g^s \cdot y^{-e} $$
132
+
133
+ - 计算哈希值 e' :将消息 m 和计算得到的 r' 结合,计算哈希值 $ e' = H(m, r')$ 。
134
+ - 验证签名:如果 e' = e,则签名有效;否则签名无效。
136
135
137
136
138
137
#### 2.5.优点
0 commit comments