[发明专利]一种分组密码FBC的实现方法及装置有效
申请号: | 201910523926.1 | 申请日: | 2019-06-17 |
公开(公告)号: | CN110247754B | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 冯秀涛;曾祥勇;张凡;曾光;唐灯;甘国华;王永兴 | 申请(专利权)人: | 中国科学院数学与系统科学研究院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/08 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分组 密码 fbc 实现 方法 装置 | ||
1.一种分组密码FBC的加密方法,其步骤包括:
1)将明文数据分成多个明文数据组,其中每一明文数据组为n比特明文数据;
2)设置主密钥k,其长度为m比特,根据主密钥k生成分组密码FBC的轮密钥;其中,m=Nn,N为自然数;设置循环左移位的比特位数s和t;设置一轮函数F以及轮数r;
3)对每一明文数据组P,首先将明文数据组P分成4个长度为w比特的字a0,b0,c0,d0,对a0,b0,c0,d0进行第i轮加密后的中间状态记为ai,bi,ci,di;然后进行r-1轮基于四路两重Feistel结构轮函数更新,得到中间状态ar-1,br-1,cr-1,dr-1;其中,每一轮更新方法为:将ai,k2i作为轮函数F的输入,将得到的轮函数F的输出值与bi异或得到ai+1,将ai+1与di异或得到ci+1;将di,k2i+1作为F的输入,将得到的轮函数F的输出值与ci异或得到di+1,将di+1与ai异或得到bi+1;k2i为第2i个轮密钥;然后将ar-1,k2r-2作为F的输入,将F的输出值与br-1异或得到密文的第2个w比特,将br与dr-1异或得到密文的第4个w比特,将dr-1,k2r-2作为F的输入,将得到的F的输出值与cr-1异或得到密文的第3个w比特,将cr与ar-1异或得到密文的第1个w比特,最后输出密文C。
2.如权利要求1所述的方法,其特征在于,步骤2)中,若m=n,生成所述轮密钥的方法为:则将主密钥k分为4个w比特的字k0,k1,k2,k3作为前4个轮密钥,i从0取到2r-5,生成后续轮密钥ki+4的方法为:
211)取q为w比特全1字符块,将轮密钥ki和ki+1分别与q异或操作,并将得到的两个字再进行异或操作;
212)将步骤211)最终得到的异或结果与ki+2进行按位与操作,并将得到的结果再与ki+3进行按位与操作,最后再与i进行异或操作,得到中间变量hi+4;
213)将hi+4循环左移a比特、将hi+4循环左移b比特,得到两个字,将这两个字进行异或操作结果与hi+4进行异或操作,得到第i+4个轮密钥ki+4。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数学与系统科学研究院,未经中国科学院数学与系统科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910523926.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于区块链节点网络的出块方法及装置
- 下一篇:飞地启动及认证