[发明专利]一种分组密码FBC的实现方法及装置有效
申请号: | 201910523926.1 | 申请日: | 2019-06-17 |
公开(公告)号: | CN110247754B | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 冯秀涛;曾祥勇;张凡;曾光;唐灯;甘国华;王永兴 | 申请(专利权)人: | 中国科学院数学与系统科学研究院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/08 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分组 密码 fbc 实现 方法 装置 | ||
本发明公开了一种分组密码FBC的实现方法及装置。本发明加密方法为:1)将明文数据分成多个明文数据组,其中每一明文数据组为n比特明文数据;2)设置主密钥k,其长度为m比特,根据主密钥k生成分组密码FBC的轮密钥;其中,m=Nn,N为自然数;设置循环左移位的比特位数s和t;设置一轮函数F以及轮数r;3)对每一明文数据组P,将其分成4个w比特的字,利用轮密钥和轮函数F按四路两重Feistel结构对明文数据组P进行r轮加密,得到密文C。本发明在保证行之间混淆程度的情况下,使得密码实现开销达到最优。
技术领域
本发明属于信息安全技术领域,具体涉及一种分组密码FBC的实现方法以及相应的装置。
背景技术
分组密码是一种主流的密码体制之一。由于其明文信息有良好的扩展性,对插入的敏感性,不需要密钥同步及较强的适用性,分组密码适合作为加密标准。
目前分组密码所采用的整体结构可分为Feistel结构(例如CAST—256、DEAL、DFC、E2等)、SP网络(例如Safer+、Serpent等)及其他密码结构(例如Frog和HPC)。加解密相似是Feistel型密码的一个实现优点,但它在密码的扩散似乎有些慢,例如需要两轮才能改变输入的每一个比特。SP的网络结构非常清晰,S一般被称为混淆层,主要起混淆作用。P一般被称为扩散层,主要起扩散作用。在明确S和P的某些密码指标后,设计者能估计SP型密码抵抗差分密码分析和线性密码分析的能力。SP网络和Feistel网络相比,可以得到更快速的扩散,但是SP密码的加/解密通常不相似。
目前Bit-Slice技术是实现分组密码的一种有效手段,具有良好的安全性。但是对明文分组的行之间的混淆程度不够,通常的做法是对明文分组进行列变换之后再进行一个线性行变换,从而保证行之间的混淆程度,相应地也增加了密码实现的代价。针对这一问题,本发明通过选取合适的S盒以及循环移位的位数,只需要进行S盒变换以及循环移位相加,就能达到之前需要进行行变换的效果,在保证行之间混淆程度的情况下,使得密码实现的开销达到最优。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种快速、高效分组密码FBC实现方法以及相应的装置。
本发明分组密码实现方法的具体方案如下:
一种分组密码FBC的实现方法,其特征在于包括以下步骤:
1.一种分组密码FBC的实现方法,其特征在于包括以下步骤:
步骤1.1:将明文数据按每组n比特分成明文数据组,n可取128和256;
步骤1.2:设置主密钥k,其长度为m比特,由主密钥k产生分组密码FBC的轮密钥;其中,m=Nn,N为自然数;
步骤1.3:设置循环左移位的比特位数s和t(对明文数据分组进行S盒变换后通过循环移位相加实现行之间的混淆);
步骤1.4:设置分组密码算法FBC的轮函数F,并设置该密码算法的轮数r;
步骤1.5:对n比特明文P,将其分成4个w比特的字,利用轮密钥和轮函数F按四路两重Feistel结构对明文P进行r轮加密,得到密文C。
本发明在对明文数据组P进行S盒变换后,添加了一个行变换v是S盒变换后的中间变量,s,t为步骤1.3中选取的参数,s,t参数的选取使得在同样的混淆程度下,实现代价达到最优。
所述正整数n可取128或256;m可取128或256;s和t为正整数;加密轮数r可取48、64或80。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数学与系统科学研究院,未经中国科学院数学与系统科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910523926.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于区块链节点网络的出块方法及装置
- 下一篇:飞地启动及认证