常用椭圆曲线介绍

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字节)
安全等级位数:128位(因为密钥长度的一半)

四、NIST P-384:

密钥长度:384位(48字节)
安全等级位数:192位(因为密钥长度的一半)

五、NIST P-521:

密钥长度:521位(66字节)
安全等级位数:256位(因为密钥长度的一半)
安全等级位数是指对称密码学中的密钥长度,其中理论上攻击算法的运行时间与密钥长度的指数成正比。例如,128位的安全等级意味着攻击者需要2^128次操作来成功地破解加密或计算出密钥。这种攻击是不可行的,因为其运行时间将远远超过目前技术的能力。

注意:密钥长度和安全等级位数之间并不是线性关系,128位的安全等级并不意味着密钥长度为128位。在椭圆曲线密码学中,密钥长度通常是安全等级的两倍。

对于大多数应用来说,NIST P-256已经提供了足够的安全性。而NIST P-384和NIST P-521提供了更高的安全强度,但同时也可能导致更大的计算开销。选择合适的曲线取决于特定应用的需求和性能要求。

三、 BLS12系列

BLS12-381、BLS12-383和BLS12-443是三种不同的椭圆曲线密码学中的椭圆曲线,用于配对密码学和签名方案。它们的区别在于它们的位数、安全性和性能等方面。

BLS12-381:

位数:381位
安全性:约128位安全等级
性能:相对较高的性能,适用于大多数应用。

BLS12-383:

位数:383位
安全性:约191位安全等级
性能:略低于BLS12-381,但依然具有良好的性能。

BLS12-443:

位数:443位
安全性:约221位安全等级
性能:相对较低的性能,但提供更高的安全强度。
这些曲线中的数字表示椭圆曲线的位数,而安全性等级位数表示椭圆曲线提供的安全强度。安全性等级位数的一般规则是,安全性等级的位数应大于或等于密码学中所需的对称密钥长度的两倍,以保证足够的安全性。

因此,BLS12-443提供了最高的安全强度,但性能相对较低。BLS12-381提供了适中的安全性和性能,对于大多数应用来说是一个很好的选择。而BLS12-383在安全性和性能之间取得了平衡。

在选择椭圆曲线时,需要根据具体应用的安全需求、性能要求和资源限制来进行权衡。大多数情况下,BLS12-381已经提供了足够的安全性和性能,是一个被广泛采用的选择。

BN系列

根据您提供的信息,有两个"bn254"并没有提到"bn462",让我们来澄清一下:

BN254:

  • 位数:254位
  • 安全性:约128位安全等级
  • 性能:较高的性能,适用于大多数应用。
  • 曲线特征:BN254是一种特定类型的椭圆曲线,即巴拉巴拉-那乔-斯特林(Barreto-Naehrig)曲线。它在配对密码学中被广泛应用,例如在椭圆曲线密码和身份基于密码学中。

BN254a:

  • 位数:254位
  • 安全性:约128位安全等级
  • 性能:较高的性能,类似于BN254。
  • 曲线特征:BN254a是BN254曲线的一种变体,它提供了更快的加法运算,使得某些计算更加高效。

BN462:

  • 位数:462位
  • 安全性:约231位安全等级
  • 性能:相对较低的性能,但提供更高的安全强度。
  • 曲线特征:BN462是一种类似于BN254的巴拉巴拉-那乔-斯特林曲线,但拥有更大的位数,从而提供更高的安全性。

BN254和BN254a是非常相似的椭圆曲线,它们都是BN系列曲线的一部分。在安全性和性能方面,BN254和BN254a都提供了较高的安全性和良好的性能,适合大多数应用。而BN462则提供了更高的安全强度,但可能导致更大的计算开销。

在选择椭圆曲线时,需要根据具体应用的安全需求、性能要求和资源限制来进行权衡。通常情况下,BN254和BN254a已经提供了足够的安全性和性能,是被广泛采用的选择。只有在对更高的安全强度有特殊要求时,才会考虑使用BN462。

sec256k1

secp256k1是另一种椭圆曲线密码学中的椭圆曲线,与之前提到的NIST P-256、BN254等曲线不同,它是比特币和其他加密货币所使用的公钥密码学中的一种椭圆曲线。

secp256k1的参数如下:

位数:256位
安全性:约128位安全等级
曲线方程:y^2 = x^3 + 7
基点G:在secp256k1中,G是一个椭圆曲线上的基点,它的坐标为(x, y)。
secp256k1是比特币中用于生成公钥和私钥,并进行数字签名和验证签名的曲线。比特币的地址、交易和签名都依赖于secp256k1椭圆曲线的特性。由于比特币的广泛应用,secp256k1成为了公众所熟知的椭圆曲线之一。

secp256k1的安全性在椭圆曲线密码学中是相当高的,提供了足够的安全强度,目前没有已知的有效攻击手段。然而,尽管secp256k1在比特币中被广泛应用,它并非NIST标准曲线,因此在其他领域应用时,需要考虑安全性和可信度方面的因素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

一、GitOps-CI/CD的流程图 简单解释: 1.提交代码 2.编译构建 3.测试 4.部署 二、gitlab的实现 1、Runer 1.这个就是jenkins里的worker-slave的角色, 2.git-lab server 下发任务,Runner执行。 3.这个R…

关于样本方差为什么除以 n-1

今天上午集训摸鱼看到同学给我发的这个问题感觉挺有意思的 感性理解 这一部分的内容仅代表本蒟蒻没看严谨证明之前的个人见解,如果您想看严谨的证明,请翻到下一部分 还是先把图放上来罢省的有人不知道讲的什么东西 呃我知道这是生物竞赛的东西&#…

下载列表视频的具体操作

主要是介绍怎样获取上篇博客需要的HAR文件和请求域名

docker: Error response from daemon: No command specified.

执行 docker run -it -d -v /home/dell/workspace/workspace/test_192.168.1.202_pipeline:/home/workspace1 --name test_192.168.1.202_pipeline_10 qnx:7.1报错 问题定位:export导入的镜像需要带上command,以下命令查看command信息 docker ps --no…

十进制、八进制、二进制、十六进制

十进制 每一位都有 0~9 十个数码,逢十进一 二进制 每一位仅有 0 和 1 两个数码,逢二进一 八进制 每一位都有 0~7 八个数码,逢八进一 十六进制 每一位都有 0~9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15),十六个数码&#…

LeetCode每日一题822. 翻转卡片游戏

822. 翻转卡片游戏 中等 68 相关企业 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意…

牛客网Verilog刷题——VL53

牛客网Verilog刷题——VL53 题目答案 题目 设计一个单端口RAM,它有: 写接口,读接口,地址接口,时钟接口和复位;存储宽度是4位,深度128。注意rst为低电平复位。模块的接口示意图如下。 输入输出描…

c++ udp组播总结

概念 多播,也称为“组播”,将网络中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同一分组中进行,其他的主机没有加入此分组不能收发对应的数据。 特点 优点 具有同种业务的主机加入同一数据流&#xff…

【A200】Ubuntu18.04 + ROS-Melodic + 比业电子VISIOSCAN雷达 评测

大家好,我是虎哥,朋友介绍,有一款单线激光雷达,25米的检测距离,有80HZ的扫描频率,而且角度分辨率最高可以到0.1,这个参数我确实没有见过,所以立刻着手从厂家那申请到了VISIOSCAN雷达…

Flask框架-流量控制:flask-limiter的使用

一、flask使用flask-limiter存在版本问题 Flask1.1.4 Flask-Bootstrap3.3.7.1 Flask-Caching1.9.0 Flask-Cors3.0.10 Flask-Limiter1.4 Flask-Migrate2.5.3 Flask-RESTful0.3.8 Flask-Script2.0.6 Flask-SocketIO5.0.1 Flask-Sockets0.2.1 Flask-SQLAlchemy2.4.4 Jinjia22.11.…

JVM基础篇-虚拟机栈

JVM基础篇-虚拟机栈 定义 Java Virtual Machine Stacks (Java 虚拟机栈) 每个线程运行时所需要的内存,称为虚拟机栈每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动…

机房断网断电监测网关支持远程告警

RTU5028E网络故障监测终端是一款功能强大且方便实用的设备,集合了断网、断电、网线故障报警功能。它支持同时监测多达7台网络设备,可以帮助用户快速定位远程网络设备离线的原因。此外,它还具备自动重启和远程重启网络设备的功能,为…

思科模拟器配置静态路由(下一跳使用IP)

Router0配置代码:##端口配置 Router(config)#int fastEthernet 0/0 Router(config-if)#ip address 192.168.10.254 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#int fastEthernet 0/1 Router(config-if)#ip address 192.168.20.1 255.255.255.2…

stm32串口通信,收发字符串,并对其进行解析

串口以字符串接收和发送 将传输的数据转化为整数(正负) stm32发送端 motor_position Read_Encoder_Angle(Encoder);sensor_position Get_Adc_Average_Angle(Adc);motor_velocity Read_Encoder_Speed(Encoder);sensor_velocity Get_Adc_Average_Spe…

深度剖析数据在内存中的存储

目录 数据类型介绍 类型的基本归类 整形家族: 浮点数家族: 构造类型: 指针类型 空类型: 整形在内存中的存储 原码、反码、补码 大小端介绍 什么大端小端: 为什么有大端和小端: 练习 浮点型在内存中的储存 一个例子 浮点数存储规则 数据类型介绍 前面我们…

SpringBoot实现多数据源,集成mybatis和JPA

前言&#xff1a; 使用2个数据库&#xff0c;数据库A&#xff1a;phm 数据库B&#xff1a;mcs 。 在项目中主要使用hibernate实现全自动ORM,但是在复杂的业务中&#xff0c;需要使用mybatis来实现业务需求。 一、入门 1、添加依赖 <!-- 整合mybatis --><dependen…

Windows同时安装两个版本的JDK并随时切换,以JDK6和JDK8为例,并解决相关存在的问题(亲测有效)

Windows同时安装两个版本的JDK并随时切换&#xff0c;以JDK6和JDK8为例&#xff0c;并解决相关存在的问题&#xff08;亲测有效&#xff09; 1.下载不同版本JDK 这里给出JDK6和JDK的百度网盘地址&#xff0c;具体安装过程&#xff0c;傻瓜式安装即可。 链接&#xff1a;http…

【Linux】用户相关内容

如果命令ll 出现以上信息&#xff0c;UID为具体的数字&#xff0c;代表之前UID为502的用户被删除了。 更改目录或文件所属用户和所属组 在Linux中&#xff0c;创建一个文件时&#xff0c;该文件的拥有者都是创建该文件的用户。 更改所属用户 chown 用户名 文件名/目录名 更…

VisualStudioWindows下 远程调试

前置条件 1、调试方与被调试方&#xff0c;以下简称调试方为A&#xff0c;被调试方为B。A与B双方能相互ping通 2、B需要运行RemoteDebugger服务&#xff0c;该程序位于C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Remote Debugger下。 我这里是安装…

基于总线加锁和缓存锁(CPU实现原子操作的两种方式)

总线锁 总线锁就是使用处理器提供的一个 LOCK&#xff03;信号&#xff0c;当一个处理器在总线上输出此信号时&#xff0c;其他处理器的请求将被阻塞住&#xff0c;那么该处理器可以独占共享内存。 CPU和内存之间的通信被锁&#xff01;&#xff01; 如果多个 处 理器同 时对 …