论文部分内容阅读
密码杂凑函数(Cryptographic Hash Function)是一种单向函数,广泛应用于数字签名、消息认证、密码协议及密钥生成等方面,在密码学领域中扮演着极其重要的角色。2012年10月Keccak杂凑函数凭借其新颖的设计方法和较强的安全性能,被美国国家标准与技术研究所推选为密码学中杂凑函数新标准—SHA-3标准,选择该算法是在综合考虑其安全性能、实现性能以及复杂性能的基础上,并且Keccak算法满足散列函数对伪随机数生成及完整性验证等应用方面的要求。鉴此,本文以Keccak算法为研究对象,综合分析Keccak算法和当前国内外研究现状,首先,提出速度优先的Keccak算法硬件设计方案;其次,提出一种Keccak算法抗原象攻击性能优化方案;再次,提出一种Keccak算法抗区分攻击性能优化方案;最后,提出一种基于Keccak算法的密钥生成方法。论文研究内容主要包括以下四个部分:1、Keccak算法硬件设计与实现:通过对Keccak算法结构的研究与分析,利用硬件语言设计实现该算法。首先,在研究Keccak算法五步迭代置换函数结构的基础上,分别设计每步置换函数的电路结构;其次,在考虑Keccak算法填充规则的基础上,以速度优先的方式设计Keccak算法硬件实现过程;最后,使用Modelsim SE 6.5a完成算法功能仿真,并利用硬件平台Altera CycloneⅣ系列开发板DE2-115实现算法的硬件综合。2、Keccak算法抗原象攻击性能优化:通过对Keccak算法置换函数Keccak-f的线性性质以及缩减轮数的Keccak杂凑函数原象攻击的研究,提出一种Keccak算法抗原象攻击方案。该方案首先结合Keccak杂凑函数的差分特点和?置换函数的奇偶性质,分析基于CPkernel的Keccak算法原象攻击;然后针对目前实施原象攻击的方法,在?置换函数运算后异或随机数以打乱?置换函数运算后的汉明重量,改变CP-kernel的校验性质,阻止攻击者利用中间相遇的方法寻找原象,从而设计新的算法以提高抗原象攻击的目的;最后利用VHDL硬件语言实现抗原象攻击Keccak算法设计方案,验证该算法的正确性以及安全性。3、Keccak算法抗区分攻击性能优化:通过对SHA-3标准算法—keccak杂凑函数的分析,对Keccak算法的数学性质及其特点进行研究,提出一种Keccak算法抗区分攻击方案。该方案首先分析Keccak-f中置换函数的线性性质以及对缩减轮数的Keccak杂凑函数的区分攻击;然后根据Keccak置换函数所具有的零和子集性质,针对目前Keccak算法的区分攻击现状以及攻击方法,在?置换函数运算后异或随机数以破坏原有零和子集性质,改变CPkernel的校验性质,阻止攻击者利用Hash值寻找相对应的零和子集消息值,从而设计新的算法以提高抗区分攻击的目的;最后利用VHDL硬件语言实现抗区分攻击Keccak算法设计方案,验证该算法的正确性以及安全性。4、基于Keccak算法的图像密钥生成方法:通过对新发布的Hash标准SHA-3算法和常规密码算法研究,提出一种新颖的密钥生成方案。该方案采用Keccak算法与图像相结合的方法,首先,将图像处理成Keccak算法能够吸收的数据形式,使其经过Keccak算法的三维矩阵空间变换后生成密钥;其次,利用像素直方分布图将生成的密钥以图像形式显示,证明生成的密钥满足密码算法中对初始密钥以及密钥流的安全性要求;最后,利用VS2013以及Quartus II软件对所提方案加以实现,验证所生成的密钥随机性最小可达到97.7%,密钥空间最小可达到2224。