【题】公钥密码

公钥密码

第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=42036(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) de14171(mod N)

扫描二维码关注公众号,回复: 12273004 查看本文章

所以消息2的签名为 2 4171 ≡ 1626 ( m o d   N ) 2^{4171}\equiv1626(mod\ N) 241711626(mod N)

该题需要注意的是:大整数分解算法&辗转相除求逆。


第4题

在这里插入图片描述

一般方法

在椭圆曲线上计算 P ( x 1 , y 1 ) + Q ( x 2 , y 2 ) P(x_1,y_1)+Q(x_2,y_2) P(x1y1)+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} λ={ x2x1y2y1, 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=λ2x1x2=λ(x1x3)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=23372+17431(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=71633=0
所以有 3 P = ( x 4 , y 4 ) = ( 15 , 16 ) 3P=(x_4,y_4)=(15,16) 3P=(x4,y4)=(15,16)

猜你喜欢

转载自blog.csdn.net/m0_46161993/article/details/109968402
今日推荐