椭圆曲线加法运算(二)

1. 椭圆曲线加法运算

1.1. 问题描述

给定椭圆曲线y2=x3+8y^2=x^3+8y2=x3+8,点P=(1,3)(1, 3)(1,3),求P+P=?

请添加图片描述
[图片来自: https://www.desmos.com/calculator/fttnxuzryp?lang=zh-TW]

1.2. 解决方案

步骤一: 计算椭圆曲线y2=x3+8y^2=x^3+8y2=x3+8在P点的切线的方程

对椭圆曲线的隐函数在x,y方向上分别求导,有,
2ydy=3x2dx2ydy=3x^2dx2ydy=3x2dx
dydx=3x22y=12\frac{dy}{dx}=\frac{3x^2}{2y}=\frac{1}{2}dxdy=2y3x2=21

代入P点,得到过P点切线的方程
y=12x+52y=\frac{1}{2}x+\frac{5}{2}y=21x+25

步骤二: 计算切线方程与椭圆曲线的第三个交点

联立切线方程和椭圆曲线,得到,
{y=12x+52y2=x3+8\begin{cases} y=\frac{1}{2}x+\frac{5}{2} & \\ y^2=x^3+8 & \end{cases}{y=21x+25y2=x3+8

切线方程代入椭圆曲线,得到,
(12x+52)2=x3+8\left ( \frac{1}{2}x+\frac{5}{2}\right )^2=x^3+8(21x+25)2=x3+8
4x3−x2−10x+7=04x^3-x^2-10x+7=04x3x210x+7=0
(x−1)⋅(4x−4)⋅(x+74)=0\left ( x-1 \right )\cdot \left ( 4x-4 \right ) \cdot \left ( x+\frac{7}{4} \right )=0(x1)(4x4)(x+47)=0

得到第三个交点: R′=(−74,1698)R'=\left ( -\frac{7}{4}, \frac{\sqrt{169}}{8} \right )R=(47,8169)

即,P+P=R=(−74,−1698)\left ( -\frac{7}{4}, -\frac{\sqrt{169}}{8} \right )(47,8169)


参考资料

[1. 椭圆曲线的加法运算] https://www.ruanx.net/elliptic-curve/
[2. 椭圆曲线的加法运算] https://zh.wikipedia.org/zh-cn/%E6%A9%A2%E5%9C%93%E6%9B%B2%E7%B7%9A%E7%9A%84%E7%B4%94%E9%87%8F%E4%B9%98%E6%B3%95

<think>好的,我现在需要帮助用户理解椭圆曲线加密中的加法运算法则,并找到相关的流程图。首先,我需要回顾椭圆曲线的基本概念和加法运算的定义。椭圆曲线在密码学中通常指的是定义在有限域上的曲线,其一般方程为$y^2 = x^3 + ax + b$,且满足判别式$4a^3 + 27b^2 \neq 0$,以避免奇点[^1]。 接下来,加法法则的要点是:椭圆曲线上的点构成一个阿贝尔群,加法运算满足封闭性、结合律、存在单位元和逆元,以及交换律。具体来说,单位元是无穷远点,记为$O$。任意点$P$的逆元$-P$是其关于x轴的对称点。对于两个不同的点$P$和$Q$,它们的和$P + Q$是通过画线找到第三个交点再取对称得到的点。当$P = Q$时,加法变为倍点运算,即通过切线找交点。 然后,我需要将这些步骤转化为流程图。流程图应该包括开始、判断是否为单位元、计算不同情况下的加法或倍点、以及结束。需要注意在P和Q不同时,计算斜率并找到交点;在相同时,使用切线斜率。同时,要处理特殊情况,比如交点为无穷远点的情况。 用户可能还需要具体的数学公式来支持解释,比如斜率的计算公式。对于不同的情况,斜率m的计算方式不同:当P ≠ Q时,$m = (y_Q - y_P)/(x_Q - x_P)$;当P = Q时,$m = (3x_P^2 + a)/(2y_P)$。 另外,我需要确保引用的正确性,根据用户提供的参考资料,引用[1]详细讨论了椭圆曲线的算法原理,包括加法的几何解释。流程图部分虽然没有直接引用,但可以通过这些数学规则构建出来。 用户还可能对实际应用或代码实现感兴趣,比如在Python或Go中的实现方式。引用[3]提到了Python的实现,但用户的问题主要关注加法法则和流程图,因此可能需要简要提及代码结构,但重点应在原理上。 最后,生成的相关问题需要围绕加法法则的细节、图形化表示、不同情况处理以及实际应用展开,确保覆盖用户可能进一步探索的方向。</think>### 椭圆曲线加密的加法运算法则 椭圆曲线加密中的加法运算遵循**阿贝尔群**的代数结构,具体法则如下: 1. **单位元**:无穷远点$O$,满足$P + O = P$ 2. **逆元**:点$P=(x,y)$的逆元为$-P=(x,-y)$,满足$P + (-P) = O$ 3. **点相加(P ≠ Q)**: - 画直线连接$P$和$Q$,找到第三个交点$R'$ - 取$R'$关于x轴的对称点$R$,则$P + Q = R$ - 数学公式: $$ m = \frac{y_Q - y_P}{x_Q - x_P}, \quad x_R = m^2 - x_P - x_Q, \quad y_R = m(x_P - x_R) - y_P $$ 4. **倍点运算(P = Q)**: - 画曲线在$P$点的切线,找到第个交点$R'$ - 取$R'$关于x轴的对称点$R$,则$2P = R$ - 数学公式: $$ m = \frac{3x_P^2 + a}{2y_P}, \quad x_R = m^2 - 2x_P, \quad y_R = m(x_P - x_R) - y_P $$ ### 椭圆曲线加法流程图 ```plaintext 开始 | |-- 输入点P和Q | |-- 判断是否为特殊情况: | |-- 若P=O → 结果为Q | |-- 若Q=O → 结果为P | |-- 若P=-Q → 结果为O | |-- 一般情况处理: | |-- 如果P ≠ Q: | | |-- 计算斜率m=(yQ - yP)/(xQ - xP) | |-- 如果P = Q: | | |-- 计算切线斜率m=(3xP² + a)/(2yP) | |-- 计算新点坐标: | |-- xR = m² - xP - xQ | |-- yR = m(xP - xR) - yP | |-- 输出结果点R=(xR, yR) | 结束 ``` ### 示例说明 对于椭圆曲线$y^2 = x^3 - 2x + 4$上的点$P=(1, \sqrt{3})$和$Q=(2, \sqrt{8})$,按上述公式计算可得$P+Q=(0,2)$,可通过几何作图验证交点的对称性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值