NIST密码学未来展望:Naughty Step 上的 SHA-1、3DES 和 SHA-224
1. 引言
NIST 几十年来一直致力于推动密码学标准的发展,2024年10月,其发布了Transitioning the Use of Cryptographic Algorithms and Key Lengths 草案:
- 概述了 SHA-1(为160位哈希算法) 将在不久的将来退役,并添加了新定义的 PQC 标准(用于密钥交换的ML-KEM 和 用于数字签名的ML-DSA)。
- 其为各密码学算法定义的类型有:
- Acceptable 可接受
- Deprecated 已弃用——将在不久的将来被删除。
- Disallowed 不允许——应该不得使用
- Legacy 遗留——只应用于遗留应用程序中。
2. 远离 112-bit 安全性
DES 加密方法使用 56 位等效密钥大小。DES已升级为 3DES(又名 TDEA——Triple Data Encryption Algorithm 三重数据加密算法),并使用两个加密密钥元素(K1 和 K2)来提供 112 位等效密钥大小。

3DES 方法使用 EDE(加密、解密、加密)的原因是 K1 等于 K2,并且将变成单个 56 位密钥和标准 DES 加密。从而允许与 DES 实现兼容。
虽然 3DES 仍在一些金融应用中使用,但 NIST 现在警告称,112 位密钥大小需要迁移到至少 128 位安全性。还有一些公钥方法(如 RSA 和密钥交换)具有 112 位等效安全性,因此 NIST 希望将所有加密方法普遍升级到至少 128 位。这需要在 2030 年 12 月 31 日之前完成,同时在同一天之前禁止使用 SHA-1 和 224 位哈希。

TDEA 现在不允许用于加密,仅允许用于遗留应用的解密:

3. 对称密钥模式
对于块模式,不应使用 ECB 进行加密,因为它不使用salt盐值。可接受的模式包括 CBC、CFB、CTR、OFB、CCM 和 GCM。对于Format Preserving Encryption 格式保留模式(可用于隐藏信用卡细节)(如 FF1 和 FF1),仅可接受 FF1:

4. 数字签名

对于数字签名,DSA 不允许用于签名生成,ECDSA、EdDSA 和 RSA 仅允许用于 112 位以上的安全级别。ML-DSA(又名 Dilithium)的新 PQC 方法已完全获得 FIPS 204 中定义的参数集的认可。

5. 随机位生成器
对于随机位生成器,重点是 SHA-2 和 SHA-3 以实现长期安全性,而 SHA-1 和 224 位哈希函数将被弃用:

6. 密钥交换
不推荐使用长度小于 112 位的密钥,而是允许使用至少具有 128 位安全性的椭圆曲线方法。这些方法包括 P-256、P-384 和 P-521 曲线以及 Brainpool 曲线,但不包括 224 位曲线(如 P-224)。
对于使用 RSA 的密钥封装,2030 年以后 128 位安全性的限制为:

对于新定义的 PQC 密钥封装 ML-KEM-512、ML-KEM-768 和 ML-KEM-1024 均已获得完全认可。
7. 密钥派生函数
总体而言,这些应该使用至少 256 位的哈希方法:

8. 哈希函数
如前所述,所有小于 256 位的哈希函数在 2030 年之前都将被弃用,此后将不再允许使用。使用 TupleHash 和 ParallelHash,可以得到 SHA-3 的派生函数:

9. 密钥包装

对于密钥包装,不允许使用 3DES:

10. MACs

对于消息认证码 (Message Authentication Codes,MAC) 来说,情况也是一样的,任何小于 256 位的哈希值和小于 128 位的安全性都将被弃用:


11. XOF

使用 XOF,可以创建一个长度可变的哈希输出。NIST 非常看好 SHAKE128 和 SHAKE256 是 XOF 的未来,其在 FIPS 202 中定义:

参考资料
[1] Prof Bill Buchanan OBE FRSE 2024年10月23日博客 NIST Looks To The Future of Cryptography: SHA-1, 3DES and SHA-224 on Naughty Step (相应视频解读见:NIST Looks To The Future of Cryptography: SHA-1, 3DES and SHA-224 on Naughty Step)
相关文章:
NIST密码学未来展望:Naughty Step 上的 SHA-1、3DES 和 SHA-224
1. 引言 NIST 几十年来一直致力于推动密码学标准的发展,2024年10月,其发布了Transitioning the Use of Cryptographic Algorithms and Key Lengths 草案: 概述了 SHA-1(为160位哈希算法) 将在不久的将来退役…...
go 集成gorm 数据库操作
一、什么是gorm GORM 是一个用于 Go 语言的 ORM(对象关系映射)库,它提供了一种简单而强大的方式来与数据库进行交互。GORM 支持多种数据库,包括 MySQL、PostgreSQL、SQLite、SQL Server 等,并且提供了丰富的功能&…...
进程 线程 和go协程的区别
进程和线程是操作系统中两个重要的执行单元,理解它们的区别对于编程和系统设计非常重要。以下是它们的主要区别: ### 进程(Process) 定义:进程是一个正在执行的程序的实例,具有独立的地址空间。 资源&…...
STM32获取SHT3X温湿度芯片数据
目录 一、概述 二、单次数据采集模式的测量 1、配置说明 2、代码实现方式 三、周期性数据采集模式的测量 1、配置说明 2、代码实现方式 四、完整代码下载链接 一、概述 SHT3X是Sensirion公司推出的一款高精度、完全校准的温湿度传感器,基于CMOSens技术。它提…...
卸载miniconda3
1. 找到miniconda目录,删除。 rm -rf miniconda3/ 2. 编辑bashrc sudo vim .bashrc setup路径改回anaconda3的,注释掉“>>> conda initialize >>>”和"<<< conda initialize <<<"之间的miniconda的语…...
游戏中的设计模式及杂项
概述 如果要做以下游戏功能会用到哪些设计模式。比如创建一个人物角色,这个角色可以装备刀,然后角色可以用刀砍怪物,造成流血。 对于这个游戏功能,可以使用以下设计模式: 工厂模式(Factory Pattern&#x…...
Docker网络和overlay的基础讲解
本人发现了两篇写的不错的文章:Docker网络 - docker network详解-CSDN博客,Docker 容器跨主机通信 overlay_docker overlay 网络-CSDN博客 因为这两篇文章中含有大量的例子,新手看起来毫不费力。于是我偷了个小懒,在本篇文章中没有…...
分布式数据库:深入探讨架构、挑战与未来趋势
引言 在数字化时代,数据已成为企业的核心资产。随着数据量的爆炸性增长和业务需求的多样化,传统的集中式数据库已难以满足现代应用对于高可用性、可扩展性和性能的需求。分布式数据库以其独特的优势,如数据的高可用性、容错性和可扩展性&…...
基于Springboot+Vue的仓库管理系统 (含源码数据库)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…...
基于立体连接与开源链动 2+1 模式的新商业路径探索
摘要:本文深入剖析了立体连接的内涵,包括其核心关键词、连接路径与主体,同时详细阐述了开源链动 2 1 模式、AI 智能名片和 S2B2C 商城小程序源码的特点与功能。在此基础上,深入研究这些要素的融合方式及其在商业实践中的应用&…...
开启鸿蒙开发之旅:核心组件及其各项属性介绍——布局容器组件
写在前面 组件的结构 rkTS通过装饰器 Component 和 Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件。 自定义组件中提供了一个 build 函数,开发者需在该函数内以链式调用的方式进行基本的 UI 描述 今天我们要学习的就是写在build 函数里的系…...
RabbitMQ 全面解析:语法与其他消息中间件的对比分析
1. 引言 在分布式系统和微服务架构中,消息中间件扮演着重要的角色。它们能够解耦服务、平衡负载、提高系统的可扩展性和可靠性。RabbitMQ 是其中广受欢迎的一种。本文将从 RabbitMQ 的基础概念、语法介绍、以及与其他消息中间件的对比角度,全面剖析其在…...
Three.js 搭建3D隧道监测
Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…...
「IDE」集成开发环境专栏目录大纲
✨博客主页何曾参静谧的博客📌文章专栏「IDE」集成开发环境📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定…...
MySQL-初识数据库
目录 一、数据库基础概念 1、SQL 2、数据(Data) 3、数据库(DB) 4、数据库管理系统DBMS 5、数据库系统DBS 6、关系模型(Relational Model) 7、E-R图 8、常见的数据库 9、数据库基本操作 一、数据库…...
初始 html
html 文件结构 html 标签是整个 html 文件的根标签(最顶层标签) head 标签中写页面的属性. body 标签中写的是页面上显示的内容 title 标签中写的是页面的标题 <html><head><title>这是一个标题</title></head><body></body> <…...
前端 call、bind、apply的实际使用
目录 一、call 1、继承的子类可以使用父类的方法 2、可以接收任意参数 二、call、apply、bind比较 1、案例一 2、案例二 三、总结 这个三个方法都是改变函数的this指向的方法。 一、call 代码: const obj{uname:"pink"}function fn(){console.log…...
非关系型数据库NoSQL的类型与优缺点对比
NoSQL数据库根据数据模型和应用场景主要分为四种类型:键值型、列族型、文档型和图形型。以下是对每种类型的详细描述,包括其应用场景、优缺点的比较: 1. 键值型数据库 (Key-Value Store) 典型代表 RedisMemcachedAmazon DynamoDB 应用场景…...
面试击穿mysql
Mysql三大范式: 第一范式(1NF): 不符合第一范式的典型情况是在一个字段中存放多种不同类型的详细信息。例如,在商品表中,若将商品名称、价格和类型都存储在同一个字段中,会带来诸多弊端。首先,在…...
PyQt5超详细教程终篇
PyQt5超详细教程 前言 接: [【Python篇】PyQt5 超详细教程——由入门到精通(序篇)](【Python篇】PyQt5 超详细教程——由入门到精通(序篇)-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果,方便理…...
Kafka连接报错?手把手教你解决localhost:9092不可用问题(附真实案例)
Kafka连接报错?手把手教你解决localhost:9092不可用问题(附真实案例) 当你第一次尝试在本地环境运行Kafka生产者时,看到"Connection to node -1 (localhost/127.0.0.1:9092) could not be established"这样的报错信息&a…...
VSCode + CMake + MinGW 配置踩坑实录:从‘make’命令报错到一键编译调试全搞定
VSCode CMake MinGW 配置踩坑实录:从‘make’命令报错到一键编译调试全搞定 如果你正在尝试用VSCode搭建C开发环境,大概率已经看过无数篇教程,但依然会在某个环节卡住——可能是CMake找不到编译器,可能是调试器无法启动&#x…...
5个高效实用的英雄联盟工具集使用指南
5个高效实用的英雄联盟工具集使用指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一款基于LCU API开发的开源…...
不止于读写:在HC32F460上为FATFS和SDIO驱动添加调试信息与性能测试
HC32F460深度优化:FATFS与SDIO驱动的调试技巧与性能压测实战 当你的HC32F460开发板已经能够读取SD卡文件时,真正的挑战才刚刚开始。那些隐藏在初始化失败、数据错位、速度瓶颈背后的秘密,往往需要更精密的调试手段才能揭开。本文将带你超越基…...
目标检测损失函数进化史:从IoU到EIoU/SIoU/WIoU,YOLOv8性能提升完全指南
引言在目标检测领域,损失函数的设计直接影响着模型的收敛速度和检测精度。作为YOLOv8等先进检测器的核心组件,边界框回归损失函数经历了从简单到复杂的演进过程。传统的IoU(Intersection over Union)损失虽然直观有效,…...
小白友好!Gemma-3-12B-IT WebUI部署常见错误及修复方法
小白友好!Gemma-3-12B-IT WebUI部署常见错误及修复方法 1. 为什么你的WebUI总是打不开? 你是不是也遇到过这种情况:跟着教程一步步部署Gemma-3-12B-IT的WebUI,最后一步打开浏览器,输入地址,结果页面一直转…...
清音刻墨镜像免配置亮点:内置10+中文领域词典(医疗/法律/IT)开箱即用
清音刻墨镜像免配置亮点:内置10中文领域词典(医疗/法律/IT)开箱即用 1. 为什么字幕对齐需要专业词典? 做视频字幕的朋友都知道,最头疼的不是生成文字,而是让文字和声音完美对齐。普通字幕工具遇到专业术语…...
QRazyBox:5分钟解决二维码修复难题的专业工具
QRazyBox:5分钟解决二维码修复难题的专业工具 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 二维码已经成为现代生活中无处不在的数字桥梁,但你是否遇到过这样的情况&…...
OpenClaw负载测试:GLM-4.7-Flash并发处理能力评估
OpenClaw负载测试:GLM-4.7-Flash并发处理能力评估 1. 测试背景与目标 上周在尝试用OpenClaw自动化处理一批市场调研报告时,遇到了一个典型问题:当我同时提交20份PDF文件让AI助手提取关键数据时,系统开始出现响应延迟和部分任务超…...
Android 基于ViewPager2+ExoPlayer+VideoCache 打造短视频无缝预加载方案
1. 为什么需要短视频无缝预加载方案 刷短视频已经成为现代人日常娱乐的重要方式,但卡顿、加载慢这些问题总是让人抓狂。想象一下,当你滑动到下一个视频时,如果出现黑屏等待,体验就会大打折扣。这正是我们需要实现无缝预加载的关键…...
