(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf_第1页
(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf_第2页
(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf_第3页
(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf_第4页
(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(电路与系统专业论文)基于混沌随机数发生器的aes一次一密系统及其fpga实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘莹 摘要 利用有限的信息无法破译密文。在很多对加密算法的攻击中,攻击者需要收 集大量的明文密文对来获得密钥,目前,对于公丌加密算法结构的加密算法 ( d e s ,a e s ,r s a ,e c c 等) 来说,加密算法的可靠性绝大部分取决于密钥。在 数学家香农( c l a u d e e s h a n n o n ) 创立的信息论中,用严格的数学方法证明了这 么一个结论:一切密码算法,除了一次一密以外,在理论上都是可以破解的。所 谓的一次一密系统就是每次加密都使用不同的密钥,并且要保证密钥的随机性。 在本文中,我们主要针对目前易于硬件实现的真随机数发生器方案和a e s 算法开展了研究工作,并得出了基于混沌随机数的a e s 一次一密系统, 论文主要成果及特色如下: 1 提出了一种新的a e s 实现方法和电路实现方案,该方案同时支持3 种密 钥长度而且能对每个数据块加密使用不同长度的密钥。在x i l i n xf p g a 上验证并 实现了我们提出的这种a e s 方案,其最高数据吞吐量可达9 2 6 5 g b p s 。 2 提出了一个量化a e s 硬件实现方案安全性能的公式,并基于这个公式对 比了我们的方案和国外几种a e s 硬件实现方案的综合性能。 3 我们结合了振荡器采样法和离散时间混沌法提出了一种新的混沌随机数 发生器,其数据吞吐量最高可达8 m b p s 。对这种新的混沌随机数发生器进行了多 种严格的随机数序列的随机性测试,并根据测试结果与传统的基于伪随机数的混 沌随机数发生器的测试结果进行了随机性能对比。 4 利用提出的混沌随机数发生器和改进的a e s 电路,我们给出了一种新型 的a e s 一次一密系统的实现方法,在f p g a 上实现了该系统,其最高数据吞吐 量可达5 5 9 m b p s 。 关键字:a e s安全性能评估混沌随机数发生器随机性测试 一次一密 a b s t r a c t p e o p l ec a n ta t t a c kac r y p t o g r a p h ys y s t e mw i t hl i m i t e di n f o r m a t i o n i nk i n d so f k n o w na t t a c km e t h o d t h ea t t a c k e rn e e d st oc o l l e c tm a n yp l a i n t e x t c i p h e r t e x tp a i r n o w a d a y s ,f o rt h ep u b l i cc r y p t o g r a p h ya l g o r i t h m ( d e s ,a e s ,r s a ,e c ce t c ) ,t h e s e c u r i t yo f c r y p t o g r a p h ym o s t l yd e p e n d so nt h es e c u r i t ya n dr a n d o m n e s so f t h ec i p h e r k e y i nt h ei n f o r m a t i o nt h e o r yw h i c hw a sf o u n d e db yc l a u d ee s h a m l o n ,h eu s e d s t r i c tm a t h e m a t i cm e t h o d st op r o v et h a t :a n yc r y p t o g r a p h y , e x c e p td y n a m i ck e y c h a n g i n gs y s t e m ,c a nb ec r a c k e di nt h e o r yt h ed y n a m i ck e yc h a n g i n gs y s t e mm e a n s e v e r ye n c r y p tu s eau n i q u ec i p h e rk e y i nt h i s p a p e r ,w ef o c u s o nt h et r u l yr a n d o m n u m b e rg e n e r a t o ra n da e s c r y p t o g r a p h yw h i c ha r ee a s y t oi m p l e m e n to nh a r d w a r e ,a n dd e v e l o pa na e s d y n a m i ck e yc h a n g i n gs y s t e mb a s e do nc h a o sr a n d o mn u m b e rg e n e r a t o r o u re f f o r t s a sf o l l o w : 1w em o d i f yt h et r a d i t i o n a la e sh a r d w a r ei m p l e m e n t a t i o n ,m a k ei tt os u p p o r t3 k e yl e n g t h sa n dc a ne n c r y p te v e r yd a t ab l o c kw i t hd i f f e r e n tk e yi nd i f f e r e n tl e n g t h i m p l e m e n t i to nx i l i n xf p g a t h eh i g h e s tt h r o u g h o u ti s92 6 5 g b p s 2w ea d v a n c eaf o r m u l at om e a s u r et h es e c u r i t yp e r f o r m a n c eo fa e sh a r d w a r e i m p l e m e n tp l a n s a n db a s eo nt h i sf o r m u l a ,w ec o m p a r et h eg e n e r a lp e r f o r m a n c eo f o u ra e si m p l e m e n t a t i o nt oo t h e ra e sh a r d w a r ei m p l e m e n tp l a n sb a s e do nf p g a 3w ed e v e l o pan e wc h a o sr n gw h i c hw a sc o m b i n e db yd i s c r e t e t i m ec h a o s w i t ho s c i l l a t o rs a m p l i n g a n dw eu s es e v e r a ls t r i c tr a n d o m n e s st e s t sf o ri t ,f i n a l l y , w e i m p l e m e n tt h i sn e wr n g o nx i l i n xf p g a ,t h eh i g h e s tt h r o u g h o u ti s8 m b p s 4w ed e v e l o pa nn e wa e sd y n a m i ck e yc h a n g i n gs y s t e mb a s e do nc h a o sr n g , a n di m p l e m e n ti to nx i l i n xf p g a t h eh i 曲e s tt h r o u g h o u to ft h i ss y s t e mc a na r r i v e 5 5 9 m b p s k e y w o r d s :a e s m e a s u r eo f s e c u r i t yp e r f o r m a n c e c h a o sr n g r a n d o m n e s st e s td y n a m i ck e yc h a n g i n g 图表日录 图表目录 图1 1 对称密钥算法示意图6 图1 2d e s 加密算法流程图i 7 图1 33 d e s 加解密流程8 图1 5 振荡器采样法示意图1 0 图2 1分组矩阵输入和输出1 5 图2 2s u b b y t e s ( ) 操作1 6 图2 3s - b o x :字节x y 的替换值( 1 6 进制模式) 1 7 图2 4s h i f f r o w s ( 1 操作1 7 图2 5m i x c o l u m n s ( ) 操作18 图2 6a d d r o u n d k e y ( ) 操作1 9 图2 7i n v s h i f t r o w s ( ) 操作2 2 图2 8i s b o x :字节x y 的替换值( 1 6 进制模式) 2 2 图2 9a e s 加密解密流程2 5 图2 1 0a e s 每轮迭代中流程图2 6 图2 1 11 2 8 位a e s 密钥扩展模块实现框图2 7 图2 1 2 传统a e s 硬件实现框图一2 8 图2 1 3 支持3 种密钥长度的a e sk e y e x p a n s i o n 模块2 9 图2 1 4 用l o g 操作将乘法转化为加法操作3 0 图2 1 53 级流水线实现s u b b y t e 模块电路图 1 2 】3 2 图2 1 6s - b o x 的流水线级数与l u t 使用数的关系陲q 1 2 1 3 2 图2 1 7 支持3 种密钥长度的a e s 3 k 流水线加密实现框图3 3 图2 1 8 几种a e s 方案的安全性能指标p 随数据流长度l 的变化图3 6 图3 1 直接放大法3 9 图3 2 振荡器采样法一4 0 图3 _ 3 由于两个时钟信号相位差导致的采样值不确定性4 0 图3 4 两个由混沌系统产生的序列4 3 图3 5 传统离散时问混沌法实现电路示f i l l 6 0 1 4 3 图3 6 伪高斯噪声模型 6 7 1 4 4 图3 7 新的混沌随机数模型原理框图4 4 图3 8 本文提出的混沌r n g 方案与【6 7 中的混沌r n g 方案冗余度对比4 5 图3 9 相同的输入在不同时刻经过r n g 生成的1 , 0 4 8 ,5 7 6 个4 b i t 随机数统计 幽表目录 分布 一4 5 图3 1 0 相同的输入在不同时刻经过r n g 的初始2 5 个4 比特生成值轨迹对 比 一4 6 图3 1 1 计算抽样序列s n = 8 h ,s n 的测试参数f l u ( s “) 的p a s c a l 源程序4 9 图3 1 2 8 b i t 光谱测试结果左为我们的方案,右为线性移位寄存器方案5 2 图3 1 3 将2 时钟的振荡器采样扩展为8 位并行输出电路5 4 图4 1 结合随机数发生器的a e s 一次一密加密系统5 7 图5 1一个完整的身份认证数字加解密流程6 3 图5 2 服务器、网络和客户机安全策略对比6 4 图5 3 计算机保护技术的发展6 5 表2 1a e s 算法迭代次数1 5 表2 2 几种a e s 方案硬件性能对比3 5 表3 1f i p s 1 9 7 步长测试要求4 7 表3 2 新的混沌随机数输出序列步长测试结果4 7 表3 3 理论情况下f t u ( r n ) 的均值和l 0 9 2a 。( r ”) 的方差( r ”是真随机序列) 表3 4 最终测试结果及对比 表3 5 本文混沌r n g 的使用的逻辑资源 表4 1a e s 一次一密系统硬件资源 5 0 5 3 5 4 5 7 第1 帝绪论 第1 章绪论 1 1 研究意义及概述 伴随着经济持续高速增长,信息安全在全球的需求不断扩大,而市场也在不 断走向成熟。在未来的几年中,我们有充分的理由相信这种发展趋势将获得延续, 而信息安全自身的形态将发生怎样的变化,也是一个饶有趣味的问题。 在很短的时间内,安全从一个可选问题上升成为个我们在任何时候都无法 回避的问题。正是因为安全威胁的无处不在,才使得安全这个字眼被越来越多的 提及。由于网络规模的不断扩张以及各种应用类型的不断融合,我们的信息社会 正处于一个极大繁荣而又不受控制的“喧嚣”阶段。 目前威胁主流系统的安全漏洞已经数以千计,广大管理员正面临着巨大的压 力。他们的责任是避免所有发生问题的可能,即使有一点疏漏,也可能让大量的 工作前功尽弃。正是在这种安全威胁如火如荼发展的形式下,才将信息安全事务 推到了聚光灯下。现在的信息产品用户,都开始对安全问题表现出了不同程度的 担忧。 在使用产品和服务的时候,安全性已经成为他们非常关心的方面。另外我们 需要注意的是,信息设备也在不断的进化,我们上面提及的还只是在计算机领域 表现得比较明显的问题而已。当更多应用开始在我们随身携带的设备的时候,安 全问题无疑将带给我们更大的压力。 基于这些原因,人们如此快速的提高对安全问题的重视程度就不难理解了。 而在未来的几年中,安全功能也必融入更多的领域,并产生出适应环境发展的变 化。我们认为,安全已经具备了成为基本性需求的条件,并成为信息基础设施的 必要组成部分。 随着诸如计算机网络,i n t e r a c t 和无线设备等数字通信的广泛应用,数据加 密越来越成为人们关注的焦点。作为信息安全重要一环的加密算法面临着需要加 密的信息量越来越大,需要的加密速度越来越高的问题。而非对称的加密算法局 限在于速度和硬件实现的复杂度上,因此在本地机上用高速的对称机密算法将数 据加密成为了首选。 信息安全的很多关键问题属密码学的范畴。好的加密算法往往只有在知道密 钥的情况下才能破译( 加密算法可以是公开的) 。这时候,加密算法的安全性是 以密钥的安全性为基础的。安全的密钥指的是这个密钥必须是随机数。很多加密 塑! 童堑堡 系统的安全性直接依赖于产生的密钥是否不可预测以及非相关 4 1 。然而如何精 也 产生一个密钥昵? 显然,由人来输入一个密码或者密钥是无法达到要求的。因 为那有太强的主观性。如果它们不随机,或如果在产生随机数过程中有一点偏差, 破译者就能利用这个偏差对保密信息进行破译 6 3 】。因此,实现一个有着良好随 机性的真随机数发生器成为了当务之急。 1 2 国内外研究现状介绍 1 2 1 对称密码算法简介 所谓对称算法就是指加密和解密过程均采用同一把密钥,如图i 1 所示。如 d e s ,3 d e s ,a e s 等算法都属于对称算法。下面会对这几种有代表性的算法一一做 介绍。 图1 1 对称密钥算法示意图 1 d e s 算法 d e s ( d a t ae n c r y p t i o ns t a n d a r d ) 是一种经典的对称算法。其数据分组长度 为6 4 位,使用的密钥为6 4 位,有效密钥长度为5 6 位( 有8 位用于奇偶校验) 。 它出i b m 公司在7 0 年代开发,经过政府的加密标准筛选后,于1 9 7 6 年1 1 月被 美国政府采用,随后被美国国家标准局和美国国家标准协会( a m e r i c a nn a t i o n a l s t a n d a r di n s t i t u t e ,a n s i ) 承认。 该技术算法公开,在各行业有着广泛的应用。d e s 算法从公布到现在已有 2 0 多年的历史,随着计算机能力的飞速发展,d e s 的5 6 位密钥长度显得有些短 ,釜 、 第1 章绪论 了。现在,已经有可能通过穷举的方法来对其进行攻击。但是除此以外,还没有 发现穷举以外的能有效破译d e s 的方法。 d e s 算法的数据流程图如下图所示: 明文 密文 图12 d e s 加密算法流程图 2 3 d e s 算法( t r i p l ed e s ) d e s 算法现在已经不能提供足够的安全性,因为其有效密钥只有5 6 位。因 此,后来又提出了三重d e s ( 或称3 d e s ) ,该方法的强度大约和2 5 6 = 1 1 2 比 特的密钥强度相当。 这种方法用两个密钥对明文进行三次运算。设两个密钥是k 1 和k 2 ,其算 法的步骤如图1 3 所示。 加密具体过程为: 1 用密钥k 1 进行d e s 加密。 2 用k 2 对步骤l 的结果进行d e s 解密。 3 用步骤2 的结果使用密钥k 1 进行d e s 加密得出最终密文。 解密具体过程为: 1 用密钥k 1 进行d e s 解密。 2 用密钥k 2 对步骤1 结果进行加密。 3 用密钥k 1 对步骤2 结果进行解密得出最终明文。 第1 章绪论 a ) 加密流程 图1 33 d e s 加解密流程 b ) 解密流程 3 a e s 算法1 1 1 1 9 9 7 年1 月美国国家标准和技术研究所( n i s t ) 宣布征集新的加密算法。 2 0 0 0 年1 0 月2 日,由比利时设计者j o a n d a e m e n 和v i n c e n t r o m a n 设计的r q n d a e l 算法以其优秀的性能和抗攻击能力,最终赢得了胜利,成为新一代的加密标准 a e s ( a d v a n c e de n c r y p t i o ns t a n d a r d ) 。 r i j n d a e l 加密: r i j n d a e l 是一个密钥迭代分组密码,包含了轮变换对状态的重复作用。轮数 n r 的值取决于分组和密钥的长度。对于a e s ,当密钥长度为1 2 8 比特时,n r = 1 0 : 当密钥长度为1 9 2 比特时,n r = 1 2 :当密钥长度为2 5 6 比特时,n r = 1 4 。 它包括一个初始密钥加法,记作a d d r o u n d k e y ,接着进行n r 1 次轮变换 ( r o u n d ) ,最后再使用一个轮变换( f i n a l r o u n d ) 。 轮变换由4 个步骤组成:s u b b y t e s ,s h i f i r o w s ,m i x c o l u m n s 和a d d r o u n d k e y 。 最后一轮与前n r 一1 次轮变换稍有不同,省掉了其中的m i x c o l u m n s 步骤。 步骤s u b b y t e s 是r i j n d a e l 算法中唯一的非线性变换。 步骤s h i f l r o w s 是一个字节换位,它将状态中的行按照不同的偏移量进行循 环移位。使第i 行第j 位的字节移动到位置( j - c i ) r o o dn b ,移动偏移量c i 的 值依赖于n b 的取值。其中n b = 分组长度3 2 ,对于a e s ,n b 取固定长度4 步骤m i x c o l t u n n s 是作用在状态各列的置换算法。 密钥加法a d d r o u n d k e y 将状态与一个轮密钥进行异或。轮密钥是由密码密 第1 章绪论 钥通过密钥编排方案导出。轮密钥的长度等于分组的长度。 r i j n d a e l 解密: r i j n d a e l 解密算法有2 种形式。一种是直接解密算法,即直接利用步骤 i n s u b b y t e s ,i n v s h i f t r o w s ,i n v m i x c o l u m n s 和a d d r o u n d k e y 的逆并倒置其次序 对数据进行解密。 另一种是等价解密算法,其实现原理就是在密钥扩展模块中加入一个 m i x c o l u m n s 操作使得加解密结构能够共用。等价解密算法有利于有效实现良好 的运算次序。 1 2 2 随机数发生器简介 随机性在密码学中占有重要的地位,几乎所有的密码算法和协议都要用到一 些对攻击者来说必须是秘密的数据,比如对一个密码算法来况,如果将秘密寓于 密钥之中,那么密钥就是秘密,包括对称密码算法( d e s ,a e s ,i d e a 等) 的 密钥和非对称密码算法( r s a ,d s a ,e c c 等) 的密钥对等等,而这些密钥必 须是随机数。 有许多方法可用于产生随机二迸制序列,这些方法可分为两类: 一类是通过软件或数字电路实现种确定性算法,这种输出序列是确定的, 称为伪随机数发生器( p s e u d or a n d o m n u m b e rg e n e r a t o r ,p r n g ) ,它是可以再 现的。 另一类是通过一些特殊的物理现象或电路结构,如电磁辐射、热噪声、混沌 现象等实现的非确定性序列,这类序列是不可再现的。伪随机序列可用于电路测 试、仿真等场合,而密码学中通常要求使用真随机序列,或者是密码学意义上安 全的伪随机序列它具有不可预测性,即使给出产生序列的算法和硬件以及 以前所产生序列的所有知识,也不可能通过计算来预测下一个随机位是什么。 易于硬件实现的几种真随机数发生器一般有3 种: 1 放大热噪声 电路中的热噪声来自电子无规则的热运动,与温度有关。只要温度高于绝对 零度,导体中就存在热噪声。 2 振荡器采样 其原理如图1 5 所示。在此种方案中,如果fd 和fc 的频率及初始相位已 知,则可以预测所有的输出fq 。实际应用时由于振荡器的频率及相位抖动,可在 第1 章绪论 一定程度上实现输出位的随机性。 :h i g h 卿科d a t ai n p u t c 只:l o wf r e q u e n c yc l o c ki n p u t 只:m i x e r o u t p u t 图1 5 振荡器采样法示意图 3 混沌系统 混沌学是上世纪7 0 年代兴起的一门新兴学科,由一维离散时问映射差分方 程构成的混沌系统可以利用离散时间模拟信号处理技术来实现。由于混沌系统的 固有特性,以及电路噪声、温度变化、电源电压波动等因素对系统的影响,可使 系统产生具有不可预测性的位流输出。 1 3 存在的问题 1 3 1a e s 硬件实现方案存在的问题 在对称加密算法中,a e s 以其优秀的性能和抗攻击能力遥遥领先于其它的 对称加密算法诸如d e s ,3 d e s 等。 a e s 有着灵活的密钥长度( 1 2 8b i t ,1 9 2 b i t ,2 5 6 b i t ) 口7 供选择,这也为它的实现 方案提供了更多的可选择余地,目前的a e s 实现方案大多数都专注于加密速度 或者面积功耗,因此往往只支持1 种密钥长度而很少有同时在一次加密的过程中 实现3 种密钥长度加密的a e s 方案,而对于信息安全要求越来越严格的今天, 不停变换密钥的一次一密系统是任何一种加密实现方案必须要考虑的问题。 1 3 2 随机数生成器存在的问题 ,对于生成非主观的密钥目前大多数使用的是伪随机数产生器 ( p s e u d o r a n d o mn u m b e rg e n e r a t o r 、p r n g ) 。但再好的p r n g 只要其中一个状态 因为某种原因泄漏极有可能导致整个p r n g 的产生机制被破解,从而使得“伪 随机”变成“不随机”。因此人们开始研究真随机数生成器。有些随机数产生器 是基于一个模糊的类随机源比如键盘的延迟 4 2 】,电脑的系统时钟状态 4 1 ,硬 盘的中断向量地址 4 3 1 等等。这些设计的安全性总是受这种模糊的类随机源的影 响。于是采用自然界中的真随机量产生密钥成为目前最新的研究课题 4 1 。比如 第i 章绪论 电路中的热噪声【4 7 】或者放射源的衰变等都是真随机量。在s o c ( s y s t e m o n c h i p ) 广泛应用的今天,如何设计一个i c 级的r n g 成为安全通信应用的急切需要。 随机噪声源比如热噪声存在于i c 级中却总是被人为的屏蔽掉了,因为它们的存 在可能影响到其他组件的工作。因此,利用电路噪声放大的商用r n g 设计需要 专门的外部组件和特殊硬件来与那些需要屏蔽噪声的组件隔开 4 8 1 。在i c 设计 中对数模混合信号的处理经验表明底层噪声和电源噪声电平总是高于随机噪声 源电平 4 9 1 。所以一个不被干扰的白噪声源在一个基于i c 的数字加解密系统的 r n g 中是不可能被使用的。人们必须考虑如何利用抗干扰的随机源来实现随机 数生成器。 对于放大热噪声的随机数生成器,是目前最受欢迎的单片机和板载方案 r n g 技术。但是噪声源必须被保护起来。在i c 环境中缺乏对电源和基底信号干 扰的屏蔽使得这种方案不适于基于i c 的加解密系统。 对于振荡器采样法,随机性可以通过仔细挑选快的和慢的振荡器的频率比来 人为增强。这种振荡器采样技术证明比目前的确定性噪声更健壮 1 1 ,因为采样 时会发生非线性偏移现象。尽管如此,发表的采用振荡器环的r n g 设计表明典 型的振荡器抖动电平并不是完全统计随机的,需要加一些后续处理来保障它的随 机性。 类似于振荡器法,离散时间混沌系统不受确定的噪声源影响,因为随机数( 一 定范围内) 是动态的而不是依赖于噪声。传统的基于伯努利移位映射的离散时间 混沌系统的硬件实现是基于a d 转换器的,a d 转换器电路的不精确性同样使 得该方案产生随机数时出现了统计非随机性。 1 4 本文的工作与特色 针对目前易于硬件实现的a e s 算法和真随机数发生器方案存在的问题开展 了研究工作,并得出了基于混沌随机数的a e s 一次一密系统,主要有以下一些 成果: 1 选取了密钥长度变化灵活以及易于硬件实现的a e s 对称加密算法进行了 研究,修改了传统的a e s 硬件实现方案,使其不仅能同时支持3 种密钥长度而 且能对每个数据块加密使用不同长度的密钥。我们在x i l i n xf p g a 上实现了我们 的a e s 方案,其最高数据吞吐量可达9 2 6 5 g b p s 。并且我们尝试提出了一个量化 a e s 硬件实现方案安全性能的公式,并基于这个公式对比了我们的方案和国外 第1 章绪论 几种a e s 硬件实现方案的综合性能。 2 我们分析了幽内外常见的3 种真随机数发生器方案:直接放大法、振荡器 采样法、离散时间混沌法的优缺点。并结合了振荡器采样法和离散时间混沌法提 出了一种新的混沌随机数发生器。对这种新的混沌随机数发生器进行了多种严格 的随机数序列的随机性测试,并根据测试结果与传统的基于伪随机数的混沌随机 数发生器的测试结果进行了性能对比。我们在x i l i n xf p g a 上实现了新的混沌随 机数发生器,其数据吞吐量最高可达8 m b p s 。 3 结合我们提出的混沌随机数发生器和改进的a e s 硬件实现方案,我们在 x i l i n xf p g a 上实现了一次一密的a e s 加解密系统,其最高数据吞吐量可达 5 5 9 m b p s 。 1 5 文章内容简介 在第2 章中,我们探讨了a e s 算法的原理,并对a e s 算法的硬件实现方案 进行了一系列改进,提出了一种同时支持3 种密钥长度并能够实现每个数据块用 一个密钥加密的a e s 硬件实现方案,在x i l i n xf p g a 上实现了它,并且尝试提 出了一个新的公式来衡量a e s 硬件实现方案的安全性能,用它对我们的方案与 国外几种a e sf p g a 实现方案进行了对比分析。 在第3 章中,我们提出了一种新的混沌随机数生成器,它结台了振荡器采样 法,通过了多种严格的随机性测试,我们还将测试结果与传统的混沌随机数生成 器的测试结果进行了对比。 第4 章中,我们将混沌随机数生成器与a e s 3 k 方案结合起来,实现了一次 一密的a e s 加密系统,并在x i l i n xf p g a 上进行了验证。 第2 章a e s 劲i 密中实现动态密钢变换 第2 章a e s 加密中实现动态密钥变换 2 1a e s 加密算法概述 4 随着社会的发展和科技进步,原有的商业和非敏感信息加密标准d e s 在其 初期取得的硬件方面优势已不足以弥补其安全性方面的问题。随着更快处理器的 出现和大规模并行系统的发展,只有5 6 b i t 有效密钥值的d e s 算法无法满足人们 对于信息安全的需要,因此1 9 9 7 年4 月1 5 同,美国n i s t ( n a t i o n a li n s t i t u t eo f s t a n d a r d sa n dt e c h n o l o g y ) 发布了向全社会征集a e s ( a d v a n c e de n c r y p t i o n s t a n d a r d ) 算法的通告,a e s 的基本要求是:比3 d e s 快,而且至少和3 d e s 一 样安全,分组长度为1 2 8b i t s ,密钥长度为1 2 8 1 9 2 2 5 6b i t s 。1 9 9 8 年8 月2 0 日 n i s t 召开了第一次候选大会并公布了1 5 个候选算法。1 9 9 9 年3 月2 2 日举行了 第二次a e s 候选大会,从中选出5 个候选算法m a r s 、r c 6 、s e r p e n t 、t w o f i s h 和m j i n d a e l 。最终由比利时的d a e m e n 和r i j m e n 发明的r i j i n d a e l 算法被n i s t 于2 0 0 1 年1 2 月4 日采用和发表。这一新的a e s 加密算法因其优越的安全性、 硬件性能和效率以及实现的简易性和灵活性成为了新的高级加密标准,将在未来 2 0 3 0 年内保护政府的敏感信息。在政府部门之外的商业组织、研究机构和个 人都期望采用这一高级加密标准。 本章将描述a e s 算法的基本原理,对其硬件设计原则进行研究,总结国内 外a e s 现状,并提出新的a e s 加密中实现动态密钥变换的硬件实现方案。 2 1 1a e s 基本参数、符号和函数 a d d r o u n d k e y ( ) s u b b y t e s ( ) s h i f t r o w s ( ) m i x c o l u m n s ( ) i n v m i x c o l u m n s ( ) i n v s h i f t r o w s ( ) 在加密( c i p h e r ) 和解密( i n v e r s ec i p h e r ) 中一个轮 密钥( r o u n d k e y ) 与数据块( s t a t e ) 进行异或( x o r ) 操作。轮密钥的长度等于数据块的大小,均为1 2 8 b i t s 。 通过一个非线性表s - b o x 将明文密文块中的每个字 节替换为其它字节。 对明文密文块每一行执行不同的移位操作。 对明文密文块的每一列进行一定操作产生新的列。 为解密模块中对应m i x c o l u m n s ( ) 的逆操作。 为解密模块中对应s h i f t r o w s ( ) 的逆操作。 第2 章a e s 加密中实现动态密钥变换 l n v s u b b y t e s ( ) r o t w o r d ( ) s u b w o r d ( ) r c o n 【】 n b n r o 0 为解密模块中对应s u b b y t e s ( 1 的逆操作。 在密钥扩展模块( k e ye x p a n s i o n ) 中将一个4b y t e s 字进行循环置换操作。 在密钥扩展模块( k e ye x p a n s i o n ) 中通过非线性表 s - b o x 对一个4b y t e s 字进行替换操作。 轮常数数组。 组成数据块的列数( 每列为3 2b i t s 字) 。对于a e s 标准而言,n b = 4 。 组成密钥的3 2b i t s 字的个数。对于a e s 标准而言, n k = 4 ,6 ,8 。 a e s 加解密运算的轮数,与n k 和n b 相关。对于 a e s 标准而言,n r = 1 0 ,1 2 ,1 4 。 两个多项式( 每个阶数 4 ) 的乘积模x 4 + 1 。 异或x o r 操作。 有限域乘法。 2 1 2a e s 算法原理 a e s 算法的主要设计思想是针对差分密码分析和线性密码分析提出的宽轨 迹策略( w i d et r a i ls t r a t e g y ) ,其最大优势是可以给出算法最佳差分特征的概率及 最佳线性逼近偏差的界。 a e s 与d e s 类似,是基于置换和代替的算法。置换( p e r m u t a t i o n ) 是数据 的重新排列,而代替( s u b s t i t u t i o n ) 是用一个单元数据替换另一个。密钥长度可 以为1 2 8b i t s ,1 9 2b i t s ,2 5 6b i t s ( 即1 6 、2 4 和3 2b y t e s ) 。不同的密钥长度对应不 同的迭代次数,三种长度的密钥依次对应1 0 ,1 2 ,1 4 轮迭代。它的明文密文模 块大小是1 2 8b i t s 即1 6b y t e s 。每个模块读入一个4 x 4 的分组矩阵。矩阵里每个 元素的大小都是8b i t s 就是lb y t e s 。加解密时字节从上到下、从左至右组成4 行 的矩阵。如图2 ,1 所示。 第2 章a e s 加密中实现动态蒋钥变换 i n p u t l o , t e s s t a t e m 7 印,m u p u t 颤榔 l 辫 s 0 1篱篓s o 3 蓊is 1 i霸;s i ,3 i 黼i5 2 1尊黧 s 2 3 鬻 s 3 1鬻is 3 _ 3 图2 1 分组矩i 蜂输入和输出 算法迭代次数由分组长度和密钥长度共同决定,如表2 1 所示。每轮迭代包 括4 个基本操作:非线性的字节替换b y t e s u b ,行移位s h i f t r o w s ,列混合 m i x c o l u m n s 和轮密钥加r o u n d k e y a d d i t i o n 。 表21a e s 算法迭代次数 密钥长度分组大小迭代次数 ( 字节)( 字节) a e s 1 2 844 1 0 a e s 1 9 2641 2 a e s 2 5 684 1 4 2 2 a e s 算法流程 2 2 1 加密( c i p h e r ) 在加密的开始,数据被拷入分组矩阵,在第一轮初始轮密钥加操作( i n t i a l r o u n dk e ya d d i t i o n ) 后,分组矩阵就经过1 0 ,1 2 或者1 4 轮迭代操作( 取决于 密钥长度) ,最后一轮的迭代与前面的n r i 轮迭代稍微有些不同。最后一轮迭 代之后,分组矩阵被拷入输出。 每轮的迭代操作都需要用到一个由4 字节密钥构成的一维轮密钥列表,这个 轮密钥列表由密钥扩展模块产生,将在2 2 3 节中详细说明。 加密过程如下面的伪码所示。s u b b y t e s ( ) ,s h i f t r o w s ( ) ,m i x c o l u m n s ( ) 以及 a d d r o u n d k e y ( ) 都是相互独立的变换操作,数组w 【 包含了轮密钥列表。 第2 章a e s 力密中实现动态密钒变换 c i p h e r ( b y t ei n 4 4 n b ,b y t eo u t 4 8 n b ,w o r dw n b 。( n r + 1 ) ) b e 百n b y t es t a t e 4 ,n b s t a t e = i n a d d r o u n d k e y ( s t a t e ,w o ,n b 一1 ) f o rr o u n d = 1s t e p1t o n r 一1 s u b b y t e s ( s t a t e l s h i f i r o w s ( s t a t e ) m i x c o l u m n s ( s t a t e l a d d r o u n d k e y ( s t a t e ,w r o u n d 4 n b ,( r o u n d + 1 ) + n b 一1 ) e n d f o r s u b b y t e s ( s t a t e ) s h i f l r o w s ( s t a t e ) a d d r o u n d k e y ( s t a t e ,w n r + n b ,( n r + 1 ) + n b 1 ) s u b b y t e s ( ) 操作 如图2 2 所示,s u b b y t e s ( ) 对分组矩阵中每个字节执行一次非线性字节替换 操作,这个替换操作使用了一个非线性表s - b o x ( 訇2 3 ) 。 图2 2 s u b b y t e s ( ) 操作 至! 要垒堕型童! 茎婴垫查堡型兰堡 y o1234 5 67 89bdf o6 3 7 c7 77 bf 2 6 b 6 fa 53 00 1 6 72 bf e唧矗b7 6 10 2c 97 df as 94 7f 0a dd 4 a 2a f9 0a 47 26 0 2b 7f d9 32 63 63 ff 7c c3 4a 5 e 5f 17 1 d 8 3 11 5 3o 蜃 c 12 3c 31 89 6o s9 a0 71 28 0e 2e b2 7 b 27 5 40 98 32 al al b6 e5 aa o5 23 b d 6b 32 9e 32 f8 4 5s 3 d l 0 0e d2 0f ob l5 b6 ac bb e 3 94 a4 a5 8a f 6d oe fa af b4 34 d3 38 5 4 5 f 9 0 27 f5 03 g9 fa 8 15 1 a 34 08 f9 29 d3 8f 5b cb 6 d a2 11 0f ff 3d 2 8c d0 c1 3e cs f9 74 4i 7c 4a 7 7 e3 d6 45 d1 97 3 96 08 l4 fd o2 2 2 a9 08 84 6e eb 81 4d e5 e0 bd b ae 03 23 a0 a4 , 90 62 45 cc 2d 3 a c6 29 19 5e 47 9 be 7c 日 3 76 d8 dd 54 ea 96 65 6f 46 57 a0 8 cb a7 82 52 e l ca 6b 40 6e 8d d7 41 f4 bb d8 b8 a d7 03 eb 56 64 80 3f 60 e 6 王 3 5 5 7b 98 6c 1l d9 e e 1 f 89 81 16 9d 98 e9 49 b1 e8 7e 9s 52 8d f f8 ca l8 9o db fe 6 4 26 84 l9 92 d0 fb 0s 4b b堇6 图2 3s - b o x :字节x y 的替换值( 1 6 进制模式) 例如对于字节s i l = 5 3 ,那么它的替换值应浚是s - b o x 中的第5 行第3 列 中的值,s u b b y t e s ( ) 替换结果s 】l = e d ) 。 s h f f t r o w s ( 1 操作 在s h i f t r o w s ( ) 变换中,在分组矩阵中最后三行的字节分别循环左移位不同 的字节数。第一行不进行循环移位操作。循环移位的偏移值与行数有关,如下: s h i f t ( 1 ,4 ) = 1 ;s h i f t ( 2 ,4 ) = 2 ;s h i f t ( 3 ,4 ) = 3 这个操作的效果就是将高低位的字节互换,图2 4 解释了s h i f t r o w s ( ) 操作 的情况。 s o ,0 s 0 1 s o ,2s o3 s l _ 0s i 1鼍2置3 屯、o 5 ,1矗, s 23 一 s 3o黾l s 3 : s 3 。3 擅皿 虐蛩 震蛩 s s o ,0 s o 1s o2 s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论