2021SC@SDUSC

概念

密钥封装操作模式是NIST制定的最新的一类分组密码工作模式。密钥封装模式使用AES或三种DES作为底层加密算法。
密钥封装的目的是为通信双方安全地交换对称密钥,而通信双方事先已共享有一组称为密码加密密钥的对称密钥。
通常一个协议需要调用不同层次的密钥,其中低级密钥使用频率高,为了抵抗攻击需要频繁更换。而高级密钥使用频率低,受到密码攻击的威胁相对较少。高级密钥通常用于加密新创建的低级密钥,以便在已经共享有高级密钥的通信双方之间进行低级密钥的交换。
密钥封装采用新的工作模式,其目的是为了用于密钥长度比分组长度要长的加密算法。例如AES算法的分组长度是128位,但是密钥长度可以是128位,192位或256位。对于后两种密钥长度,对密钥进行加密需要多个分组才能完成。注意密钥数据的重要性要比其他数据的重要性要高,因为密钥将被多次使用,密钥的泄露意味着所有使用该密钥进行加密数据的泄露。因此NIST需要制定一个鲁棒的加密模式。密钥封装模式是鲁棒的,因为在密钥封装模式下,输出每一位的取值都无规律地收到输入每一位的取值影响。
为了达到鲁棒性的要求,密钥封装模式的吞吐率与其他工作模式相比较低,在一些密钥管理应用中可能需要折中处理。另外,与消息加密或文件加密不同,密钥封装模式一般只用于对少量数据的处理。

SM9密钥封装机制:
密钥封装者产生和加密一个秘密密钥给目标实体,唯有目标实体可以解封装该秘密密钥,并把他作为进一步的会话密钥。
不需要对方回应,例如:发邮件、存储加密。
SM9公钥加密算法:
利用对方标识加密消息发送给对方,唯有目标实体可以解密消息。
密钥封装+对称加密
支持流加密和分组加密
提供消息鉴别
密钥解封装和公钥解密执行前需给用户分配加密私钥。

符合及辅助算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
与SM9的其他文件中的符号定义差别不大,不再赘述。

在这里插入图片描述

密钥封装与公钥加密的算法流程

密钥封装算法

A1:计算群G中的元素QB=[H1, ( IDb || hid ,N )]P1+Ppub- e ;
A2:产生随机数r∈[1,N一1];
A3:计算群G中的元素C=[r]Qs,按GM/T 0044.1—2016的6.2.8和6.2.5给出的细节将C的数据类型转换为比特串﹔
A4 :计算群Gr中的元素g=e ( Ppub-e ,P2);
A5:计算群Gt中的元素w=gr,按GM/T 0044.1—2016的6.2.6和6.2.5给出的细节将w 的数据类型转换为比特串﹔
A6:计算K=KDF(C || ω || IDb , klen),若K为全0比特串,则返回A2。A7 :输出(K ,C),其中K是被封装的密钥,C是封装密文。

在这里插入图片描述

密钥解封算法

密钥解封算法:
B1 :按GM/T 0044.1—2016的4.5给出的细节验证C∈G是否成立,若不成立则报错并退出;
B2:计算群Gr中的元素ω’=e(C,deb) ,按GM/T 0044.1—2016的6.2.6 和6.2.5给出的细节将ω’的数据类型转换为比特串﹔
B3:按GM/T 0044.1—2016的 6.2.6和 6.2.5给出的细节将C的数据类型转换为比特串,计算封装的密钥K’=KDF(C || ω’ lI IDb , klen) ,若K’为全0比特串,则报错并退出;
B4:输出密钥K '。
在这里插入图片描述

密钥解封算法的正确性证明

在这里插入图片描述

公钥加密算法

在这里插入图片描述

在这里插入图片描述

解密算法

在这里插入图片描述
在这里插入图片描述
公钥加解密的正确性证明与密钥封装解封的正确性证明相同,在此不再赘述。

小结

SM9公钥加密算法也有其本身的弱点,在计算效率方面,由于需要计算线性对,没有国际上普遍使用的RSA算法效率高。
IBC基于身份的公钥加密算法,需要一个密钥生成中心,此生成中心与PKI里面的权威机构还略有区别。IBC的密钥生成中心可以连续的生成用户加密的公钥和私钥,甚至包括签名的私钥,所以要比平常PKI权威机构的权威性稍微弱一些。有些学者也正在研究这方面的相关问题,有兴趣的可以去自行了解一下。

如有错误,欢迎批评指正。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐