. 1.已知点G=(2,7)在椭圆曲线E11(1,6)上,求2G和3G。
时间: 2024-03-18 16:44:55 浏览: 230
根据椭圆曲线的加法规则,可以通过将点 G 与自身相加得到 2G,再将点 G 与 2G 相加得到 3G。
首先,计算斜率 k = (3x1^2 + a) / 2y1,其中 x1 = 2,y1 = 7,a = 11。
k = (3*2^2 + 11) / (2*7) = 29/14
然后,计算 x3 = k^2 - 2x1 = (29/14)^2 - 4 = 117/49
计算 y3 = k(x1 - x3) - y1 = (29/14)(2 - 117/49) - 7 = -958/343
因为椭圆曲线是对称的,所以2G 的另一个解是 (x3, -y3)。
因此,2G = (117/49, 958/343) 和 (117/49, -958/343)。
接下来,我们将点 G 与 2G 相加来得到 3G。
计算斜率 k = (y2 - y1) / (x2 - x1),其中 x1 = 2,y1 = 7,x2 = 117/49,y2 = 958/343。
k = (958/343 - 7) / (117/49 - 2) = -29/21
计算 x3 = k^2 - x1 - x2 = (-29/21)^2 - 2 - 117/49 = 340/441
计算 y3 = k(x1 - x3) - y1 = (-29/21)(2 - 340/441) - 7 = -2975/9261
因为椭圆曲线是对称的,所以3G 的另一个解是 (x3, -y3)。
因此,3G = (340/441, 2975/9261) 和 (340/441, -2975/9261)。
相关问题
对E11 (1,6)上的点G=(2,7),计算2G,3G,4G,5G的值。
给定E11上的椭圆曲线方程为:$y^2=x^3+x+6$,点G=(2,7)。
首先计算2G的值:
计算斜率$k=\frac{3x^2+1}{2y}=\frac{3\cdot2^2+1}{2\cdot7}=\frac{13}{14}$。
然后根据加法公式计算2G的值:
$x_2=k^2-x_1-x_1= \left(\frac{13}{14}\right)^2-2-2=-\frac{489}{196}$
$y_2=k(x_1-x_2)-y_1=\frac{13}{14}(2+\frac{489}{196})-7=\frac{345}{196}$
因为$(x_2,y_2)$不在E11上,需要将其变换到E11上。计算$x_2^{-1}\bmod{11}$的值为$5$,则
$x_2=5(-\frac{489}{196})=4$
$2G=(4,6)$。
接下来,我们可以用类似的方法计算3G、4G和5G的值:
- 3G=2G+G
- $k=\frac{y_2-y_1}{x_2-x_1}=\frac{3}{4}$
- $x_3=k^2-x_1-x_2=\frac{25}{16}-4-4=-\frac{39}{16}$
- $y_3=k(x_1-x_3)-y_1=\frac{3}{4}(4+\frac{39}{16})-6=\frac{63}{16}$
- $3G=(-\frac{39}{16}, \frac{63}{16})$
- 4G=2(2G)
- $k=\frac{y_2-y_1}{x_2-x_1}=\frac{5}{9}$
- $x_4=k^2-x_2-x_2=\frac{25}{81}-4-4=-\frac{332}{81}$
- $y_4=k(x_2-x_4)-y_2=\frac{5}{9}(4+\frac{332}{81})-\frac{345}{196}=\frac{935}{81}$
- $4G=(-\frac{332}{81}, \frac{935}{81})$
- 5G=4G+G
- $k=\frac{y_4-y_1}{x_4-x_1}=\frac{11}{9}$
- $x_5=k^2-x_1-x_4=\frac{121}{81}-4+\frac{332}{81}=\frac{373}{81}$
- $y_5=k(x_1-x_5)-y_1=\frac{11}{9}(2-\frac{373}{81})-7=-\frac{34883}{6561}$
- $5G=(\frac{373}{81}, -\frac{34883}{6561})$
因此,2G=(4,6),3G=(-39/16,63/16),4G=(-332/81,935/81),5G=(373/81,-34883/6561)。
三、有圆曲线密码按照如下算法进行加密:首先选取一条椭圆曲线, 并得E(ab),将明文消息m嵌入到曲线上得点P,再对点P做加密变换。取E(a,b)的一个生成元G,作为公开参数。用户A选整数nn 作为秘密钥,并以PA=nG作为公开钥。任一用户B若想向A发 送消息Pm,可选取一随机正整数k,产生点对C1=kG,C2=Pm+kPA 密文为Cm={C1,C2},B将Cm发送给A A用自己的秘密钥解密C2-nC1可得明文Pm 若椭圆曲线为E11(1,6),生成元G=(2,7),用户A的私钥=7, 请求出(1)A的公钥(2)明文Pm=(10,9),k=3求出对应的密文 Cm? (3)显示接收方A从密文恢复出明文消息的过程。(40分)
好的,让我来回答你的问题。
1. 用户A的公钥是多少?
根据题目中给出的信息,用户A的私钥为7,生成元为G=(2,7),椭圆曲线为E11(1,6)。因此,用户A的公钥为PA=nG=7G。在椭圆曲线上进行点的加法,可以使用倍点算法,即将点G加上自身,然后再加上自身,循环进行,直到加上私钥值为止。具体计算过程如下:
2G=(2,7)+(2,7)=(3,-1)
3G=(2,7)+(3,-1)=(1,-6)
4G=(2,7)+(1,-6)=(10,-29)
5G=(2,7)+(10,-29)=(4,-5)
6G=(2,7)+(4,-5)=(44,-237)
7G=(2,7)+(44,-237)=(10,9)
因此,用户A的公钥为PA=7G=(10,9)。
2. 密文Cm是多少?
根据题目中给出的信息,明文消息为Pm=(10,9),随机正整数k为3,用户B需要产生点对C1=kG=3G=(44,-237),C2=Pm+kPA=(10,9)+3(10,9)=(40,-63)。因此,密文Cm={C1,C2}={(44,-237),(40,-63)}。
3. 显示接收方A从密文恢复出明文消息的过程。
接收方A收到密文Cm后,需要使用自己的私钥n=7来解密C2-nC1,从而恢复出明文消息Pm。具体计算过程如下:
C2-nC1=(40,-63)-7(44,-237)=(40,-63)-(308,-1659)=(-268,1596)
由于椭圆曲线为E11(1,6),因此其方程为y^2=x^3+x+6,将x坐标-268代入该方程,可得y^2=(-268)^3-268+6=1596^2,因此y=1596或y=-1596。由于题目中要求点Pm在曲线上,因此取y=1596,即明文消息为Pm=(-268,1596)。
阅读全文