公钥密码
第1题
因此首先使用 S h a n k s Shanks Shanks算法计算出 a a a的值,如下:
因此明文应为:
d
k
(
y
1
,
y
2
)
=
y
2
(
y
1
a
)
−
1
=
5
∗
(
2
27
)
−
1
=
12
d_k(y_1,y_2)=y_2(y_1^a)^{-1}=5*(2^{27})^{-1}=12
dk(y1,y2)=y2(y1a)−1=5∗(227)−1=12
第2题
已知: 5 x = 3 , 5 y = 4 5^x=3,5^y=4 5x=3,5y=4,求 5 x y 5^{xy} 5xy:
首先利用 S h a n k s Shanks Shanks算法计算出 x x x的值,如下:
然后计算 4 x = 4 20 ≡ 36 ( m o d 47 ) 4^x=4^{20}\equiv 36(mod\ 47) 4x=420≡36(mod 47)。
第3题
因此,计算 φ ( N ) = 4620 \varphi(N)=4620 φ(N)=4620,再计算 d ≡ e − 1 ≡ 4171 ( m o d N ) d\equiv e^{-1}\equiv 4171(mod\ N) d≡e−1≡4171(mod N)。
所以消息2的签名为 2 4171 ≡ 1626 ( m o d N ) 2^{4171}\equiv1626(mod\ N) 24171≡1626(mod N)。
该题需要注意的是:大整数分解算法&辗转相除求逆。
第4题
一般方法
在椭圆曲线上计算 P ( x 1 , y 1 ) + Q ( x 2 , y 2 ) P(x_1,y_1)+Q(x_2,y_2) P(x1,y1)+Q(x2,y2):
首先计算
λ
\lambda
λ如下:
λ
=
{
y
2
−
y
1
x
2
−
x
1
,
P
≠
Q
3
x
1
2
+
a
2
y
1
,
P
=
Q
\lambda=\begin{cases} &\frac{y_2-y_1}{x_2-x_1},\ P\not=Q\\ &\frac{3x_1^2+a}{2y_1},\ P=Q \end{cases}
λ={x2−x1y2−y1, P=Q2y13x12+a, P=Q
注意当$P=Q$时该式子可以看作为导数相除。
再计算:
x
3
=
λ
2
−
x
1
−
x
2
y
3
=
λ
(
x
1
−
x
3
)
−
y
1
\begin{aligned} x_3&=\lambda^2-x_1-x_2\\ y_3&=\lambda(x_1-x_3)-y_1 \end{aligned}
x3y3=λ2−x1−x2=λ(x1−x3)−y1
计算过程
先计算
2
P
2P
2P的值,此时
P
=
Q
P=Q
P=Q,所以有:
λ
1
=
3
∗
7
2
+
1
2
∗
3
≡
74
∗
3
−
1
(
m
o
d
19
)
≡
16
(
m
o
d
19
)
\lambda_1=\frac{3*7^2+1}{2*3}\equiv74*3^{-1}(mod\ 19)\equiv16(mod\ 19)
λ1=2∗33∗72+1≡74∗3−1(mod 19)≡16(mod 19)
所以有
2
P
=
(
x
3
,
y
3
)
=
(
16
,
3
)
2P=(x_3,y_3)=(16,3)
2P=(x3,y3)=(16,3),再计算
λ
2
\lambda_2
λ2,此时
P
≠
Q
P\not=Q
P=Q,因此:
λ
2
=
3
−
3
7
−
16
=
0
\lambda_2=\frac{3-3}{7-16}=0
λ2=7−163−3=0
所以有
3
P
=
(
x
4
,
y
4
)
=
(
15
,
16
)
3P=(x_4,y_4)=(15,16)
3P=(x4,y4)=(15,16)。