提出了一种分组密码算法的延迟结合模式,进行了基于信息论原则的安全性证明,并对加入延迟后的密钥执行效率进行了评估。对于算法公开的分组密码,使用密钥延迟技术加强密码体制本身的强度,弱化种子密钥通过互联网公开分发造成的信息泄漏,特别可以有效阻止中间人唯密文进行的算法还原攻击。
分组密码是网络上广泛使用的一类密码,也是国际上公开密码算法中最活跃的一个分枝。其设计理念是保密依赖于密钥,而算法大多公开;设计结构分为Feistel、代替/置换(Substitution-Permutation,SP)两大类。Feistel网络结构是由Horst Feistel 在设计Lucifer分组密码时发明的,并在数据加密标准(Data Encryption Standard,DES)中得以使用。还有许多密码体制如:GOST、FEAL、RC5、CAMELLIA等都采用了Feistel网络结构。SP网络结构的轮变换分为两层:(1) S混乱层,是由密钥控制的非线性置换,通常由并行查表(S盒)[1]实现;(2) P扩散层,通常由与密钥无关的可逆线性变换实现。SP结构分组密码的抗线性攻击和抗差分攻击的能力容易衡量,而且扩散速度快,因此许多著名的密码算法都采用了SP结构:如高级加密标准(Advanced Encryption Standard,AES)。
随着美国、欧洲、日本等地区对分组密码算法的公开征集,推动了全球对分组密码算法设计与分析的研究。以AES[2]为代表的新一代分组密码算法在设计上明显加强了密钥在整个密码体制中的作用程度。但是对密钥的结合方式上没有给予过多的关注。密钥设计上的漏洞会导致整个算法的抗攻击性质减弱。并且在全球公开标准中的分组密码算法,对密钥的使用没有采取过延迟的方式。事实上,对于掩盖明文的固有特征,密钥的延迟可以产生直接快速的效果。虽然分组密码算法的运算模式已得到国际密码学界广泛的关注,但是密钥延迟的技术还未见公开报道。本文提出对分组密码算法进行唯密文攻击,增强了密钥初始向量的抗分析能力。
1 带比特延迟密钥模块设计
分组密码算法在设计思想上仍然基于香侬关于信息的混乱与扩散原理[3],通过简单函数进行若干圈迭代使得明文规律被充分掩盖。其优点是:密钥可以在一定时间内固定,不必每次变换,因此给密钥配发带来了方便。但是,由于分组密码存在着密文传输错误在明文中扩散的问题,因此在信道质量较差的情况下无法使用。
分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是分组密码体制的设计要点。由于其使用环境的宽泛性,较其他密码而言,在强调密码学性质的同时,还要求工程实现上的高速。为了硬件设计在时效上的经济性,其密钥在安全上通常依赖密码算法本身的一些函数;在密钥结合及密码工作模式上的一些设计可以弥补分组密码算法自身的某些缺陷,而且能够提高速度和加强安全。设计者会针对最坏情况原则进行设计。但是对于攻击者,进行密码算法分析时通常面临的是唯密文的情况。因此,通过算法设计的各个模块加强安全程度是必要的。
2 分组密码算法密钥设计简介
目前使用的分组密码算法无论是FEISTEL网络结构模型或是SP网络结构模型,密钥算法的设计相对密码算法设计是独立的一部分,并且密钥算法都是基于加密算法已经使用的一些运算函数。例如分组密码算法AES的密钥设计即是使用了密码算法中的非线性部分S盒与线性仿射变换,再利用递推关系实现密钥的生成,如图1、2所示。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !