ToB企服应用市场:ToB评测及商务社交产业平台
标题:
FIPS203 后量子安全ML-KEM(标准简读)
[打印本页]
作者:
星球的眼睛
时间:
2024-12-11 22:12
标题:
FIPS203 后量子安全ML-KEM(标准简读)
FIPS 203是美国国家标准与技术研究院(NIST)发布的关于模块格基密钥封装机制(ML-KEM)的标准,旨在提供一种能抵御量子计算机攻击的密钥建立方案。以下是对该文档的具体总结:
标准概述
目标与范围
:规定ML-KEM算法及参数集,用于在公共信道上建立共享密钥,提供了差别安全强度与性能衡量的参数集,包括ML-KEM - 512、ML-KEM - 768和ML-KEM - 1024。
配景
:因量子计算机发展对现有公钥暗码体系构成威胁,NIST开展后量子暗码学标准化工作,ML-KEM基于CRYSTALS - KYBER算法,是被选中的标准化算法之一。
术语、缩写与符号
术语界说
:具体解释了如答应、(KEM)密文、暗码模块、解封装、封装等相关术语。
缩写
:列举了AES、CBD、FIPS、KEM、LWE、MLWE、NIST等缩写的寄义。
数学符号
:界说了如n、q、ζ、B、Q、Z、Zm、Zq^n、Rq、Tq等符号的意义。
ML - KEM方案概述
密钥封装机制(KEM)
:由KeyGen、Encaps、Decaps三个算法和参数集组成,用于两边建立共享密钥,ML-KEM的安全性基于Module Learning with Errors (MLWE)题目。
ML - KEM方案
计算假设
:安全性基于MLWE题目,是Learning With Errors (LWE)题目标推广,与模块格中的计算题目相关。
方案构造
:先从MLWE题目构建公钥加密(PKE)方案,再用Fujisaki - Okamoto (FO)变换转换为KEM,使用Number - Theoretic Transform (NTT)提高多项式乘法服从。
参数集与算法
:包括ML-KEMKeyGen、ML-KEMEncaps、ML-KEMDecaps三个算法,有ML-KEM - 512、ML-KEM - 768、ML-KEM - 1024三个参数集,差别参数集影响密钥和密文长度及安全性。
解封装失败
:在正常环境下,解封装失败概率极低,如ML-KEM - 512的失败率为2^-138.8等。
ML - KEM实现要求
K - PKE仅为组件
:K - PKE不能单独使用,只能作为ML - KEM算法的子例程。
内部函数访问控制
:ML - KEM内部函数接口仅用于测试,密钥天生和封装所需随机值由暗码模块天生。
等效实现
:允许使用数学等效步骤替换标准算法。
共享密钥使用
:成功天生的共享密钥为256位,可直接用于对称加密或按规定方式派生密钥。
随机数天生
:ML - KEMKeyGen和ML - KEMEncaps需使用答应的随机位天生器(RBG)天生随机数,差别参数集对RBG安全强度有差别要求。
输入查抄
:ML - KEMEncaps和ML - KEMDecaps需举行输入查抄,确保输入正当。
中心值销毁
:计算过程中的中心数据应及时销毁,部分数据可按规定保留。
克制浮点运算
:实现中不能使用浮点运算,以制止舍入误差导致错误结果。
辅助算法
暗码函数
:使用SHA3 - 256、SHA3 - 512、SHAKE128、SHAKE256等哈希函数和可扩展输出函数(XOF),通过包装函数界说来实例化PRF、哈希函数和XOF等,制止字节数组与位长度混淆。
通用算法
转换与压缩算法
:包括BitsToBytes、BytesToBits用于位数组和字节数组转换,Compress和Decompress用于整数压缩和解压缩,ByteEncode和ByteDecode用于整数与字节转换。
采样算法
:SampleNTT用于从匀称随机字节省天生NTT表示的多项式样本,SamplePolyCBD用于从特定分布采样多项式系数。
数论变换(NTT)
:NTT是ML - KEM提高环Rq上乘法服从的紧张部分,将多项式在Rq和Tq环之间举行转换,Tq环上乘法服从更高,算法9和10分别用于计算NTT和逆NTT,算法11用于计算Tq环上的乘法。
K - PKE组件方案
K - PKE概述
:由K - PKEKeyGen(密钥天生)、K - PKEEncrypt(加密)、K - PKEDecrypt(解密)三个算法组成,不能单独使用,作为ML - KEM算法子例程,其参数集与ML - KEM相关联。
K - PKE密钥天生(K - PKEKeyGen)
:输入随机数,天生加密密钥(可公开)和解密密钥(需保密),涉及矩阵A、向量s和噪声e的天生与计算。
K - PKE加密(K - PKEEncrypt)
:使用加密密钥、明文和随机数天生密文,包括提取向量、重新天生矩阵、采样噪声、计算新的噪声方程、编码消息等步骤。
K - PKE解密(K - PKEDecrypt)
:使用解密密钥解密密文得到明文,通过规复系数、计算真实常数项、解码消息等操纵完成。
ML - KEM主算法
内部密钥天生(ML - KEMKeyGen_internal)
:输入两个随机种子,天生封装密钥(与K - PKE加密密钥相同)和解封装密钥(包罗K - PKE解密密钥、封装密钥哈希值和随机值)。
内部封装(ML - KEMEncaps_internal)
:输入封装密钥和随机字节数组,输出密文和共享密钥,通过K - PKE加密随机值得到密文,并从随机值和封装密钥派生共享密钥。
内部解封装(ML - KEMDecaps_internal)
:输入解封装密钥和密文,输出共享密钥,解析解封装密钥,解密密文得到明文,重新加密明文并计算候选共享密钥,根据密文匹配环境确定最终共享密钥。
ML - KEM密钥天生(ML - KEMKeyGen)
:天生封装密钥和解封装密钥,种子可存储用于重新天生密钥,密钥对可举行查抄但不包管天生正确。
ML - KEM封装(ML - KEMEncaps)
:输入封装密钥,天生密文和共享密钥,需举行封装密钥查抄,包括类型查抄和模数查抄。
ML - KEM解封装(ML - KEMDecaps)
:输入解封装密钥和密文,输出共享密钥,需举行输入查抄,包括密文类型查抄、解封装密钥类型查抄和哈希查抄。
参数集
参数集内容
:ML - KEM有三个参数集,每个参数集包罗k、η1、η2、du、dv五个参数及n = 256和q = 3329两个常数,差别参数影响算法中矩阵、向量维度和分布等,如k决定矩阵A维度。
安全强度与性能
:差别参数集对应差别安全强度,如ML - KEM - 512安全种别为1,ML - KEM - 768为3,ML - KEM - 1024为5,安全强度通过与特定块暗码或哈希函数比力衡量,选择参数集时需衡量安全与性能,NIST推荐默认使用ML - KEM - 768。
代码参考
ML-KEM: https://github.com/pq-crystals/kyber
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4