常用椭圆曲线介绍

chat-gpt生成,对应python的miracl/core/python库

ED系列

一、ED25519
  • ED25519使用的椭圆曲线是Curve25519,它是一种高效且安全的椭圆曲线,由Daniel J. Bernstein等人设计。
  • ED25519的密钥长度为256位,提供了128位的安全性。
  • ED25519可以用于生成密钥对、进行数字签名和验证签名。
    由于其高效性和安全性,ED25519在现代加密领域广泛使用,特别是在密码学签名方案中。
二、ED448
  • ED448也使用了Edwards-curve Digital Signature Algorithm (EdDSA),但使用了更大的448位的椭圆曲线,也由Daniel J. Bernstein等人设计。
  • ED448的密钥长度为456位,提供了228位的安全性。
  • ED448同样可以用于生成密钥对、进行数字签名和验证签名,但相比于ED25519,ED448提供了更高的安全强度。
  • ED448通常在那些需要更高安全性的应用中使用,但可能会带来更大的计算开销。

当谈论密钥长度和安全等级时,通常指的是椭圆曲线密码学中的椭圆曲线参数。下面是NIST P-256、NIST P-384和NIST P-521的密钥长度和安全等级位数:

NIST P系列

三、NIST P-256:

密钥长度:256位(32字节&#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
椭圆曲线加法和乘法是密码学中常用的加密算法,Python中也提供了相应的库来实现这些操作。下面简单介绍一下如何使用Python实现椭圆曲线加法和乘法。 1. 加法运算 椭圆曲线加法的基本原理是将两个点相加得到第三个点。具体实现过程如下: 首先定义一个椭圆曲线的类,包括曲线参数a、b和模数p,以及点的坐标x和y。 ```python class EllipticCurve: def __init__(self, a, b, p): self.a = a self.b = b self.p = p class Point: def __init__(self, x, y): self.x = x self.y = y ``` 接下来,实现椭圆曲线上的点加法运算。如果两个点相同,则需要进行点的倍乘运算。如果两个点不同,则需要计算斜率k,然后根据斜率和点的坐标计算第三个点的坐标。 ```python def add(self, P, Q): if P == None: return Q if Q == None: return P if P.x == Q.x and P.y != Q.y: return None if P.x == Q.x: k = (3 * P.x * P.x + self.a) * pow(2 * P.y, -1, self.p) % self.p else: k = (Q.y - P.y) * pow(Q.x - P.x, -1, self.p) % self.p x3 = (k * k - P.x - Q.x) % self.p y3 = (k * (P.x - x3) - P.y) % self.p return self.Point(x3, y3) ``` 2. 乘法运算 椭圆曲线乘法的基本原理是将一个点倍乘得到另一个点。具体实现过程如下: 首先定义一个椭圆曲线的类,包括曲线参数a、b和模数p,以及点的坐标x和y。 ```python class EllipticCurve: def __init__(self, a, b, p): self.a = a self.b = b self.p = p class Point: def __init__(self, x, y): self.x = x self.y = y ``` 接下来,实现椭圆曲线上的点倍乘运算。通过不断相加同一个点来实现倍乘运算。 ```python def mul(self, n, P): R = None while n > 0: if n % 2 == 1: R = self.add(R, P) P = self.add(P, P) n = n // 2 return R ``` 以上就是Python实现椭圆曲线加法和乘法的基本方法。需要注意的是,在实际应用中,需要选择合适的曲线参数和模数,以确保算法的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值