首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种用于可变长度密钥的改进SM4加密系统及方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京新数科技有限公司

摘要:本发明提出一种用于可变长度密钥的改进SM4加密系统及方法,基于改进的密钥导出函数使SM4中的密钥扩展算法支持任意长度密钥的输入,可完成导出密钥计算、密钥扩展、明文处理。本发明支持任意长度的输入密钥,密钥长度至少应大于等于128bit,增加了国密商用密码SM4的灵活性,使SM4能够应用于更多场景中,对于国内密码技术的发展与应用具有积极作用,同时提升国内密码产业的竞争力;另外,增加输入的密钥长度,提升密码算法的安全性,128bit密钥长度的SM4算法与AES‑128bit安全性相当,密钥长度越长,破解算法需要的计算资源越多,提高了算法安全性。

主权项:1.一种用于可变长度密钥的改进SM4加密系统,基于改进的密钥导出函数使SM4中的密钥扩展算法支持任意长度密钥的输入,其特征在于:该系统包括导出密钥计算模块、密钥扩展模块、明文处理模块;SM4算法中对称密钥为MK,128bit≤lenMK≤512bit,为对称密钥生成一个导出密钥,令其中FK为导出密钥,且lenFK=128bit;取n个字节tag1=0x01,tag2=0x02,…;执行以下步骤:1.利用导出密钥计算模块完成以下操作:1对于每个i从1到n,计算Ki=SM3tagi||MK||inti,其中inti为计数器i的32比特大端表示;计算K′i,j=L′Ki,j⊕Ki,j+4,其中Ki,j表示Ki的第32j-1+1bit至32jbit的比特串,j=1,2,3,4;L′B=B⊕B<<<2⊕B<<<10⊕B<<<18⊕B<<<24,其中B表示长度为32bit的比特串;计算K′i=K′i,1||K′i,2||K′i,3||K′i,4,其中||表示为拼接符号;2计算导出密钥FK=K′1⊕K′2⊕...⊕K′n;3计算中间密钥FK′=K′1,1⊕...⊕K′1,4⊕...⊕K′n,1⊕...⊕K′n,4;2.利用密钥扩展模块完成以下操作:1输入任意比特的密钥MK,系统参数PK0,PK1,PK2,PK3,固定参数CK0,CK1,…,CK31,其中MK的长度为128~512bit;计算FK=FK0,FK1,FK2,FK3与中间密钥FK′;计算导出密钥与系统参数的异或:SK0,SK1,SK2,SK3=FK0⊕PK0,FK1⊕PK1,FK2⊕PK2,FK3⊕PK3,获取子密钥:rkk=SKk+4=SKk⊕TSKk+1⊕SKk+2⊕SKk+3⊕CKk⊕FK′,其中k=0,1,2,…,31;其中函数T的计算过程为:令A=SKk+1⊕SKk+2⊕SKk+3⊕CKk⊕FK′,执行非线性变换τ,输入A=a0,a1,a2,a3,输出B=τA=Sboxa0,Sboxa1,Sboxa2,Sboxa3,其中Sbox表示8bit输入输出的S盒;将输出结果B作为线性变换L的输入,输出C=TSKk+1⊕SKk+2⊕SKk+3⊕CKk⊕FK′=LB=B⊕B<<<13⊕B<<<23;3.利用明文处理模块完成对称加密,首先,将明文分为4个32bit的字X1,X2,X3,X4,并进行32轮的轮操作,将轮操作的结果的4个字进行反序变换后组成128bit的密文;轮函数与密钥扩展中的T函数过程一致,不同之处在于Xk+4=Xk⊕T′Xk+1⊕Xk+2⊕Xk+3⊕rkk,其中k=0,1,2,…,31;T′函数将线性变换L替换为L′B=B⊕B<<<2⊕B<<<10⊕B<<<18⊕B<<<24。

全文数据:

权利要求:

百度查询: 北京新数科技有限公司 一种用于可变长度密钥的改进SM4加密系统及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。