Kyber是一种IND-CCA2安全的密钥封装机制。Kyber的安全性基于在模格(MLWE问题)中解决LWE问题的难度。Kyber的构造采⽤两阶段⽅法:⾸先介绍⼀种⽤来加密固定32字节⻓度的消息原⽂的IND-CPA安全性的公钥加密⽅案,我们称之为 CPAPKE, CPAPKE由密钥生成( CPAPKE.KeyGen)、加密( CPAPKE.Encrypt)、解密( CPAPKE.Decrypt)三个算法组成。然后,我们使⽤略微调整的Fujisaki-Okamoto(FO)变换来构建IND-CCA2安全性的CCAKEM,CCAKEM方案由密钥生成(CCAKEM.KeyGen)、封装(CCAKEM.Encaps)、解封装(CCAKEM.Decaps)三个算法组成。
由CPAPKE通过FO变换转换成CCAKEM并不复杂,本文我们主要举例解释一下CPAPKE的三个算法,Kyber出于安全性考虑,系统参数都较大,这里我们只为了简要解释原理,因此采用了压缩版的参数。假设q=17, 多项式模数 。
1.密钥对生成
添加图片注释,不超过 140 字(可选)
对于密钥对生成阶段,我们会获得密钥对(pk,sk),其中pk=t=As+e, sk=s。A,s, e都是随机生成的,我们假设其取值如图上所示,最终计算获得:
由于多项式系数取值模数 ,可以简单理解为 ,对t进行转换:
(将 转换为-1)
又由于q=17, 我们进一步对系数取模得到:
综上,密钥生成阶段我们生成了密钥对
2.密钥封装
添加图片注释,不超过 140 字(可选)
密钥封装阶段我们从公钥中恢复了种子 ρ ,从而恢复出密钥对生成阶段的矩阵A,又随机生成了 r,, , 并假设我们的输入 .转化为多项式系数后
添加图片注释,不超过 140 字(可选)
,
再结合之前生成的 ,A,r, , , 计算
3.密钥解封装
添加图片注释,不超过 140 字(可选)
根据密钥封装阶段的u,v和密钥对生成阶段的sk, 我们计算出密钥解封装阶段的 ,最后我们将 的多项式系数与 q/2 , 0 对比并取round,获取了round后的多项式 ,最终我们计算 ,取系数得 .
标签:CPAPKE,封装,Kyber,生成,密钥,原理,解析,CCAKEM From: https://blog.csdn.net/dedanddwb/article/details/143404541