微软宣布更新SymCrypt加密库,新增对PQC算法的支持
2024年9月9日,微软(Microsoft)在其博客中宣布,已开始在其开源核心加密库SymCrypt中引入后量子算法的支持。目前,微软已经发布了包含ML-KEM和XMSS算法的SymCrypt更新,并计划在接下来的几个月内推出其他算法。微软表示,这是他们为迎接量子时代并帮助客户防范未来量子威胁所迈出的重要一步。
SymCrypt是什么?
SymCrypt是Microsoft的主要加密库,用于Azure、Microsoft 365、Windows 11、Windows 10、Windows Server 2025、Windows Server 2022、Azure Stack HCI和 Azure Linux等产品和服务。这些产品和服务使用SymCrypt为电子邮件安全、云存储、Web浏览、远程访问和设备管理等场景提供加密安全。
SymCrypt通常使用对称和非对称算法为加密、解密、签名、验证、哈希和密钥交换提供一致的接口。该库于2006年开始提供操作和算法,开发人员可以使用它们在他们创建的应用中安全地实现安全加密、解密、签名、验证、散列和密钥交换。它旨在实现跨多个平台和架构的快速、安全和可移植性。在Windows操作系统中,SymCrypt加密库嵌入在经过多次FIPS 140验证的加密基元库 (bcryptprimitives.dll和cng.sys) 。SymCrypt还作为基于Linux的操作系统的加密模块经过了FIPS 140验证。
PQC算法
2024年8月13日,NIST 发布首批 3 个最终确定的后量子加密标准:
- FIPS 203,基于模块晶格的密钥封装机制标准
- FIPS 204,基于模块点阵的数字签名标准
- FIPS 205,基于哈希的无状态数字签名标准
其中:
- FIPS 203,旨在作为通用加密的主要标准。它的优点之一是双方可以轻松交换的相对较小的加密密钥,以及它的运行速度。该标准基于 CRYSTALS-Kyber 算法,该算法已更名为 ML-KEM,是 Module-Lattice-Based Key-Encapsulation Mechanism 的缩写。
- FIPS 204,旨在作为保护数字签名的主要标准。该标准使用 CRYSTALS-Dilithium 算法,该算法已更名为 ML-DSA,即 Module-Lattice-Based Digital Signature Algorithm 的缩写。
- FIPS 205,也是为数字签名设计的。该标准采用 Sphincs+ 算法,该算法已更名为 SLH-DSA,即无状态基于哈希的数字签名算法的缩写。该标准基于与 ML-DSA 不同的数学方法,旨在作为 ML-DSA 被证明易受攻击的备用方法。
将PQC标准引入SymCrypt
微软表示,随着NIST发布首批后量子加密标准,首先已经将ML-KEM(FIPS 203)算法引入 SymCrypt。
在接下来的几个月内,微软还将集成基于格的数字签名方案 ML-DSA(FIPS 204)和基于无状态哈希的签名方案 SLH-DSA(FIPS 205)。
此外,NIST于2020年发布了SP 800-208指南,推荐具有状态哈希的签名方案,这些方案能够抵御量子计算威胁。NIST指出,这类算法并不适用于所有场景,因为其安全性依赖于对状态的严格管理,但在固件签名等特定应用中极为有效。
根据该建议,微软已将扩展的Merkle签名方案 (XMSS) 添加至SymCrypt,并计划在不久后引入 Leighton-Micali 签名方案(LMS)及其他算法。
“PQC算法【抗量子密码算法】经过NIST精心挑选,具备高安全性、高性能以及良好的兼容性。这些算法经过优化,提升了速度和效率,并通过了严格的安全性和稳健性测试。多个行业标准组织正在积极推动这些算法的应用,以确保其兼容现有标准和协议,如传输层安全性(TLS)、安全套接字外壳(SSH)和互联网协议安全性(IPSec)。同时,它们还能够与经典算法,如RSA、椭圆曲线Diffie-Hellman(ECDH)和椭圆曲线数字签名算法(ECDSA)在混合模式下共存。”微软强调,随着PQC标准的不断发展,他们将进一步将其他算法引入SymCrypt,以确保合规性、安全性和兼容性。
在Windows平台上,建议通过Cryptography API: Next Generation (CNG)来使用SymCrypt,而在Linux平台上,用户可以选择直接调用SymCrypt API,或通过OpenSSL的SymCrypt引擎(SCOSSL)或SymCrypt Rust Wrapper来使用。
在接下来的几个月内,这些接口将增加对PQC算法的支持,使客户能够在各自的环境和应用程序中进行测试和实验。
使用PQC算法保护TLS通信是一个快速发展的领域。虽然NIST算法的最终确定标志着这一领域的重大进展,但要实现广泛应用,仍需完成量子安全密钥交换和量子安全签名认证这两个关键标准。
微软表示,他们正在与IETF密切合作,开发并标准化这些关键标准,适用于TLS和其他IETF协议。
随着这些标准的最终敲定,微软将在Windows TLS堆栈(Schannel)和Linux上的OpenSSL SymCrypt引擎中提供这些标准。
此外,微软首席产品经理Aabha Thipsay强调:“PQC 算法为密码学的未来提供了一种有希望的解决方案,但它们也有一些缺点。例如,与传统算法相比,这些算法通常需要更大的密钥大小、更长的计算时间和更多的带宽。因此,在实际应用中实施PQC需要仔细优化并与现有系统和标准集成。”
未来展望
微软表示,PQC算法仍处于较新的阶段,因此不应将第一代PQC算法视为最终解决方案,而应把它视作一个不断发展的领域。
这突显了“加密敏捷性”的重要性,即设计能够适应不同算法的解决方案,或随着PQC标准的发展而升级到未来算法。
微软提倡构建加密敏捷的解决方案,并推广使用混合PQC操作模式的解决方案。“随着PQC算法和标准的成熟,我们预计将逐步转向纯PQC部署。”
“为底层加密引擎添加后量子算法支持是迈向量子安全的第一步。随着我们在更多系统组件和应用程序中启用PQC支持,我们将能够实现受PQC保护的端到端服务场景,并让客户在其环境和应用程序中进行试验和应用。”
同时,微软表示,向PQC的过渡是一个复杂而长期的过程,需要认真规划和关注。“我们建议组织首先创建正在使用的加密资产清单,以更好地了解现状并制定基于风险的PQC过渡计划。”
微软宣布更新SymCrypt加密库,新增对PQC算法的支持的更多相关文章
- 著名加密库收集 Encrypt
CryptoAPI 微软的CryptoAPI crypt32.lib,advapi32.lib,cryptui.lib #include <wincrypt.h>#include < ...
- 【Java库】如何使用优秀的加密库Jasypt来保护你的敏感信息?
1 简介 今天我们介绍一个Java库-Jasypt,全称为Java Simplified Encryption,用于加密解密.它能够让开发者用花费最小的工作而把加密集成到项目中,并且不需要对加密/解密 ...
- 12. 前后端联调 + ( proxy代理 ) + ( axios拦截器 ) + ( css Modules模块化方案 ) + ( css-loader ) + ( 非路由组件如何使用history ) + ( bodyParser,cookieParser中间件 ) + ( utility MD5加密库 ) + ( nodemon自动重启node ) + +
(1) proxy 前端的端口在:localhost:3000后端的端口在:localhost:1234所以要在webpack中配置proxy选项 (proxy是代理的意思) 在package.jso ...
- SharePoint 更新文档库文档标题(Title)字段
前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要 ...
- AES加密 C++调用Crypto++加密库 样例
这阵子写了一些数据加密的小程序,对照了好几种算法后,选择了AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES).听这名字就非常厉害的样子 预计会搜索到这 ...
- 批量自动更新SVN版本库 - Windows
开发过程中每天都要从SVN代码库里一个一个的update各个项目代码,不仅效率实在是低,也不符合程序员的"懒"精神,由于是在Windows环境做开发,自然就想到了使用bat来实现自 ...
- app 下载更新 file-downloader 文件下载库的简单介绍和使用
app 下载更新 file-downloader 文件下载库的简单介绍和使用 今天介绍一个下载库:file-downloader 文件下载库 说明: * 本文内容来自原 file-downloader ...
- Node.js_密码明文_密文_加密库_sha1
加密库 sha1 加密模块,能够将指定 明文 加密成一个长度相等的 密文 let pwd = 'qwe123456'; const secret = sha1(pwd); 同样的明文,加密得到同样的密 ...
- JS 的加密库简介
作为前端,数据提交到后台之前,重要的数据要进行加密一下,虽然已经有 https 等技术,但是增加一道前端的加密还是相对更安全的.虽然,前端的加密很容破解,但是有总比没有强. 尤其是涉及到用户名和密码, ...
- 【JS加密库】SJCL :斯坦福大学JS加密库
斯坦福大学Javascript加密库简称SJCL,是一个由斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全.快速.短小精悍.易使用.跨浏览器的JavaScript加密库. 斯坦福大学下载地址:h ...
随机推荐
- KTL (0.9.2,通达信mdt文件)
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 斯坦福大学推出线性前沿LLM技术,训练模型成本仅为20美元
序言:当前基于 Transformer 架构的大语言模型人工智能技术,由于投入大.成本高.人才需求苛刻,导致许多企业望而却步.动辄几千万甚至上亿的成本,现实中有几家企业能够承担?真正具有竞争力的技术应 ...
- cmu15545笔记-Join算法(Join Algorithms)
目录 Overview Nested Loop Join Naïve Block Index Sort-Merge Join Hash Join Simple Hash Join Partition ...
- MagicQuill,AI动态图像元素修改,AI绘图,需要40G的本地硬盘空间,12G显存可玩,Win11本地部署
最近由 magic-quill 团队开源的 MagicQuill 项目十分引人瞩目,这个项目可以通过定制的 gradio 客户端针对不同的图像元素通过提示词进行修改,从而生成新的图像.值得一提的是,这 ...
- Dell 塔式t440 安装centos (Non-Raid 成功版)
前情提要 这篇文章是2021年我发布在csdn上,最近搬到博客园了,我把这篇文章重新整理发布下.有的图带有水印 csdn@at_the_Moment正常的,这就是我在csdn的账号. 提前声明一下这是 ...
- configuration file routines:DEF_LOAD_BIO:missing equal sign:conf_def.c:362
报错: Auto configuration failed 139868431284128:error:0E079065:configuration file routines:DEF_LOAD_BI ...
- 你想有多pwn
第一章 1.1 认识程序 file.ldd 1.2 gdb调试 一.指令 1.start.run 2.断点 设置断点 b mian.b *0x123456 查看断点 info b.i b 让断点失效 ...
- 使用 SemanticKernel 对接 Ollma
前面的 2 篇文章已经介绍了 ollama 的基本情况.我们也已经能在本地跟 LLM 进行聊天了.但是如何使用代码跟 LLM 进行交互呢?如果是 C# 选手那自然是使用 SK (SemanticKer ...
- github访问不了解决方法
github突然无法访问,解决办法如下-迷恋自留地 首先通过网址https://tool.chinaz.com/dns?type=a&host=github.com 修改hosts文件,win ...
- Win10虚拟机安装Docker解决Docker Engine Stopped问题记录
跟着网上的帖子开启WSL2安装DockerDesktop, 但是无法启动Docker,一直[Docker Engine stopped] 继续跟着网上的帖子解决问题,检查电脑各种配置都搞一通后还是无法 ...