椭圆曲线密码学中的点加法与标量乘法
1. 点加法的数学原理
点加法满足一些常见的加法性质,具体如下:
- 单位元性质 :存在一个零元素,即存在一个点 (I),当它与点 (A) 相加时,结果仍为 (A),表示为 (I + A = A),这个点被称为无穷远点。
- 可逆性 :对于任意点 (A),存在另一个点 (-A),使得 (A + (-A) = I)。在曲线上,这两个点关于 (x) 轴对称。
- 交换律 :(A + B = B + A)。因为经过 (A) 和 (B) 的直线与曲线的第三个交点位置与 (A)、(B) 的顺序无关。
- 结合律 :((A + B) + C = A + (B + C))。这一性质不太直观,是进行 (x) 轴翻转操作的原因。
1.1 点加法的代码实现步骤
为了实现点加法,我们将其分为三个步骤:
1. 处理点在垂直线上或使用单位元(无穷远点)的情况。
2. 处理点不在垂直线上且不同的情况。
3. 处理两个点相同的情况。
1.2 处理无穷远点
在 Python 中,由于无法直接使用无穷大,我们使用 None 值来表示无穷远点。以下是相关代码示例:
class Point:
def __init__(self, x, y, a, b):
self.a = a
超级会员免费看
订阅专栏 解锁全文
1962

被折叠的 条评论
为什么被折叠?



