经过6年发展,NIST发布三种可以抵御量子计算机未来攻击的算法标准草案

近日,美国国家标准与技术研究院(NIST)发布了2022年选定的四种算法中的三种算法的标准草案:CRYSTALS–KYBER、CRYSTALS–Dilithium和SPHINCS+,第四种算法FALCON的标准草案将在大约一年内发布。

图片

近年关于量子计算机的研究得到大量关注,量子计算机利用量子力学现象来解决传统计算机难以解决的数学问题。如果大规模量子计算机建成,它们能够破解当前使用的众多公钥密码系统。这将严重威胁到互联网和其他平台上数字通信的机密性和完整性。PQC的目标是开发既能抵抗量子计算机又能抵抗传统计算机的密码系统,并且可以与现有的通信协议和网络进行互操作。

虽然过去不太清楚大型量子计算机是否具有物理可能性,但现在许多科学家认为这只是一个重大的工程挑战。一些工程师甚至预测,在未来二十年左右的时间内,将建造出足够大的量子计算机,破解目前使用的所有公钥方案。从历史上看,部署现代公钥加密基础设施花了近二十年的时间。因此,无论能否预测出量子计算时代到来的确切时间,现在都必须开始准备信息安全系统,使其能够抵抗量子计算。

图片

NIST于2016年12月公开呼吁提交后量子密码学标准化流程。在2017年11月截止日期之前,总共提交了82个候选算法。此后不久,满足提交要求和最低可接受标准的69名候选者被接受进入第一轮标准化流程。

经过对候选算法长达一年的审查,NIST选择了26种算法进入2019年1月的第二轮评估。这些算法被认为是最终标准化最有希望的候选算法,并根据内部分析和公开结果进行选择。在第二轮中,NIST和更广泛的密码学界继续进行评估。在考虑了这些分析和整个评估过程中收到的其他公众意见后,NIST选择了7名决赛选手和8名候补选手,进入2020年7月的第三轮。

第三轮于2020年7月开始,持续约18个月。在第三轮中,对用于证明候选算法的安全性理论和经验证据进行了更彻底的分析。还使用各种软件和硬件平台上的优化对其性能进行仔细的基准测试。与前两轮类似,NIST也于2021年6月举行了第三次NIST PQC标准化会议。

经过三轮评估和分析,NIST共选择了四种算法,将作为PQC标准化流程的结果。选择的公钥封装机制是CRYSTALS–KYBER,以及三种数字签名方案:CRYSTALS-Dilithium、FALCON和SPHINCS+。这些算法的目的是在可预见的未来,包括在量子计算机出现之后,能够保护敏感信息。

图片

虽然这三个标准将构成NIST创建的第一组后量子加密标准,但它们不会是最后一个。除了NIST去年选择的四种算法外,项目团队还选择了第二组算法进行持续评估,旨在补充第一组算法。NIST将于明年针对这些选定用于标准化的算法发布标准草案。这些额外的算法是为通用加密而设计的,但它们基于与CRYSTALS-Kyber不同的数学问题,如果所选算法之一在未来表现出弱点,它们将提供替代的防御方法。

图片

从选择算法到完全批准标准需要多个步骤。在算法选择后,将发布该算法的标准文件草案,然后是为期三个月的公众评议期,供公众要求更改或澄清。之后NIST将根据意见更新该标准,并提交给美国商务部长最终批准。目前,NIST发布了选定的四种算法中的三种算法的标准文件草案。

FIPS 203草案基于模块晶格的密钥封装机制标准,该方案源自CRYSTALS-KYBER提交的内容。密钥封装机制(或KEM)是一种特殊类型的密钥建立方案,可用于在通过公共通道进行通信的两方之间建立共享密钥。当前NIST批准的密钥建立方案在SP 800-56A使用离散对数加密的成对密钥建立方案建议和SP 800-56B《使用整数分解加密的成对密钥建立方案建议》中指定。

FIPS 204指定了带有错误的模块学习数字签名算法(ML-DSA),该方案源自CRYSTALS-Dilithium提交的内容。

FIPS 205指定了基于无状态哈希的数字签名算法或SLH-DSA,源自SPHINCS+提交。

当前NIST批准的数字签名方案在FIPS 186-5(数字签名标准)和SP 800-208(基于状态哈希的签名方案的建议)中指定。用于数字签名的第四种算法Falcon 的标准草案预计将于2024年发布。对于上面列出的三种算法,公众可以在2023年11月22日之前提交意见,预计这些算法将得到正式批准2024年。毫无疑问,2024年还会选择更多算法,并在NIST 完成评估后几年内最终确定。

在相关进展中,国家安全局(NSA)、网络安全和基础设施安全局(CISA)以及美国国家标准与技术研究所(NIST)为各组织发布了一份名为《量子就绪迁移到后量子密码学》的指南,其中提供了关于组织如何为过渡做好准备的建议。

参考链接:

[1]https://thequantuminsider.com/2023/08/24/nist-releases-four-pqc-algorithms-for-standardization/

[2]https://csrc.nist.gov/projects/post-quantum-cryptography

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端console.log打印内容与后端请求返回数据不一致

后端传值num0 前端打印num1 ,如图,console.log后台显示的数据与展开后不一致 造成该问题原因是深拷贝与浅拷贝的问题。 var obj JSON.parse(JSON.stringify(res)) 修改后打印 正常

微信小程序隐私协议接入

自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。 相关公告见:关于小程序隐私保…

Python实现T检验

今天来分享一下T检验的python实现方法。 01 先来上一波概念。 1.单样本t检验,又称单样本均数t检验,适用于来自正态分布的某个样本均数与已知总体均数的比较,其比较目的是检验样本均数所代表的总体均数是否与已知总体均数有差别。已知总体均数…

hiredis的安装与使用

hiredis的介绍 Hiredis 是一个用于 C 语言的轻量级、高性能的 Redis 客户端库。它提供了一组简单易用的 API,用于与 Redis 数据库进行交互。Hiredis 支持 Redis 的所有主要功能,包括字符串、哈希、列表、集合、有序集合等数据结构的读写操作&#xff0c…

【CSS 画个梯形】

使用clip-path: polygon画梯形 clip-path: polygon使用方式如下: 效果实现 clip-path: polygon 是CSS的属性之一,用于裁剪元素的形状。它可以通过定义一个具有多边形顶点坐标的值来创建一个多边形的裁剪区域,从而实现元素的非矩形裁剪效果。…

Python实现企业微信群告警

Python实现企业微信告警 1. 创建企业微信群机器人 1-1. 什么是企业微信群机器人? 企业微信群机器人是企业微信平台提供的一种功能,可以通过Webhook方式将消息发送到指定的企业微信群中。它可以用于自动化发送通知、告警等信息,实现监控和信…

设计模式之职责链模式(ChainOfResponsibility)的C++实现

1、职责链模式的提出 在软件开发过程中,发送者经常发送一个数据请求给特定的接收者对象,让其对请求数据进行处理(一个数据请求只能有一个对象对其处理)。如果发送的每个数据请求指定特定的接收者, 将带来发送者与接收…

elementUI moment 年月日转时间戳 时间限制

changeStartTime(val){debuggerthis.startT val// this.startTime parseInt(val.split(-).join())this.startTime moment(val).unix() * 1000 //开始时间毫秒if(this.endTime){this.endTime moment(this.endT).unix() * 1000 //结束时间毫秒if(this.startTime - this.endTi…

webassembly003 ggml GGML Tensor Library part-2 官方使用说明

https://github.com/ggerganov/whisper.cpp/tree/1.0.3 GGML Tensor Library 官方有一个函数使用说明,但是从初始版本就没修改过 : https://github1s.com/ggerganov/ggml/blob/master/include/ggml/ggml.h#L3-L173 This documentation is still a work in progres…

Windows用户如何安装Cpolar

目录 概述 什么是cpolar? cpolar可以用在哪些场景? 1. 注册cpolar帐号 1.1 访问官网站点 2. 下载Windows版本cpolar客户端 2.1 下载并安装 2.2 安装完验证 3. token认证 3.1 将token值保存到默认的配置文件中 3.2 创建一个随机url隧道&#x…

芯片 半导体 晶圆

芯片(chip)就是半导体元件产品的统称,是 集成电路(IC, integrated circuit)的载体,由晶圆分割而成。 半导体集成电路是将很多元件集成到一个芯片内, 以处理和储存各种功能的电子部件。由于半导…

【ES6】—【新特性】—Symbol详情

一、一种新的原始数据类型 定义:独一无二的字符串 二、 声明方式 1. 无描述声明 let s1 Symbol() let s2 Symbol() console.log(s1, s2) // Symbol() Symbol() console.log(s1 s2) // falsePS: Symbol 声明的值是独一无二的 2. 有描述的声明 let s1 Symb…

Linux系统编程系列之进程间通信(IPC)-信号

一、什么是信号 信号是进程间通信的一种方式,它是异步通信的。而异步的意思就是不同步,事件的发生和处理没有协同。 二、信号的特性 Linux/Unix系统下,信号总共分成两大类,一类是最常用的标准信号,另一类是后面的引入…

云服务器 宝塔(每次更新)

su root 输入密码 使用 root 权限 /etc/init.d/bt default 获取宝塔登录 位置和账号密码。进入宝塔 删除数据库 删除php前端站点 删除PM2后端项目 前端更改完配置打包dist文件 后端更改完配置项目打包 数据库结构导出 导入数据库 配置 PM2 后端 安装依赖

任务执行和调度----Spring线程池/Quartz

定时任务 在服务器中可能会有定时任务,但是不知道分布式系统下次会访问哪一个服务器,所以服务器中的任务就是相同的,这样会导致浪费。使用Quartz可以解决这个问题。 JDK线程池 RunWith(SpringRunner.class) SpringBootTest ContextConfi…

java开发之fastjson

依赖 <!-- fastjson依赖 --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> <…

数据分析基础-数据可视化学习笔记04-互动方式

交互方式 交互&#xff08;Interaction&#xff09;是指用户与系统、设备或其他用户之间的相互作用、传递信息和交流的过程。在计算机科学、人机交互和用户体验领域&#xff0c;交互是用户与技术之间的核心概念&#xff0c;它决定了用户如何与计算机系统或其他技术进行沟通、操…

【项目 计网6】 4.17 TCP三次握手 4.18滑动窗口 4.19TCP四次挥手

文章目录 4.17 TCP三次握手4.18滑动窗口4.19TCP四次挥手 4.17 TCP三次握手 TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff…

基于Visual studio创建API项目

API&#xff08;英文全称&#xff1a;Application Programming Interface,中文&#xff1a;应用程序编程接口&#xff09; 为什么要 通过API接口可以与其他软件实现数据相互通信&#xff0c;API这项技术能够提高开发效率。 本文是基于vs2017 .net平台搭建API。希望可以帮助到学…

从2023年世界机器人大会发现机器人新趋势

机器人零部件为何成2023年世界机器人大会关注热门&#xff1f; 在原先&#xff0c;机器人的三大核心零部件是控制系统中的控制器、驱动系统中的伺服电机和机械系统中的精密减速器。如今&#xff0c;机器人的主体框架结构已经落实&#xff0c;更多机器人已经开始深入到各类场景中…