Skip to content

Commit fd6ead3

Browse files
authored
Update README.md
1 parent cc28485 commit fd6ead3

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

Schnorr/README.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -109,30 +109,29 @@ Schnorr签名广泛应用于区块链和加密货币领域,如比特币的Tapr
109109

110110
#### 2.3. 签名生成
111111

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)$。
127126

128127

129128
#### 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,则签名有效;否则签名无效。
136135

137136

138137
#### 2.5.优点

0 commit comments

Comments
 (0)