已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除 毕业设计题 目 AES算法在智能卡中的应用 所在院(系) 数学与计算机科学学院 专业班级 信息与计算科学 指导教师 完成地点 陕西理工学院 精品文档AES算法在智能卡中的应用 摘要随着现代社会的不断进步,在当今现代社会中数据的增长速率和增长量已经超越了我们所能想象的范围,再加之现在智能技术及智能手机的不断发展与创新的前景及趋势下,对于各种数据的安全性保护,提出了各式各样的挑战。其中加密算法在安全性保护方面有着重要的作用,对于之前的DES或者DES类加密算法,虽然有着很好地加密保护性,但是在当今的社会发展的前景下,DES以及DES类加密算法已经不能够提供足够的安全性保护了。因此,当前趋势下,能够代替DES算法的新的加密算法,AES算法便诞生了。本文通过三个方面研究了AES算法的安全性分析,AES算法的原理,最后研究了AES算法在智能卡中的应用。 关键字 AES算法、安全性、智能卡 The application of AES algorithm in the smart card Abstract: with the progress of modern society, in todays modern society of the data in the growth rate and growth beyond the scope of we can imagine, plus now intelligent technology and the development of smart phones and innovation under the prospect and trend of to protect the security of all kinds of data, and so on, puts forward a variety of constantly challenging.The encryption algorithm has an important role in safety protection, for before DES or DES encryption algorithm, although has a good encryption protection, but in todays social development, the prospect of DES and DES encryption algorithm is not able to provide enough security protection. Therefore, the current trend, can replace new encryption algorithm of DES algorithm, AES algorithm was born.The performance of AES count, advantages, and the use of smart CARDS are introduced. Finally, the effect of AES algorithm in the application is studied.Key words: AES algorithm; security; smart card目录1绪论11.1课题背景11.2国内外相关技术发展历史和研究现状11.2.1 AES算法的发展11.2.2 AES算法的研究现状11.3课题研究的目的和意义22 AES算法安全性分析32.1 SPN结构32.2宽轨迹策略32.3安全性研究42.3.1蛮力攻击42.3.2差分与线性密码分析42.3.3 Square攻击42.3.4碰撞攻击53 AES算法的数学基础及原理53.1 AES算法简介53.2 AES算法的数学基础53.3 AES算法原理63.4 AES与DES的比较74 AES算法在智能卡中的应用84.1 智能卡简介84.2 智能卡安全技术94.3 AES算法在智能卡中的应用94.3.1 AES作为哈希算法94.3.2 混合加密算法104.3.3 智能卡加密算法11结 论11参考文献13致 谢141绪论1.1课题背景20世纪以来,信息技术的快速发展与其广泛的应用使得我们进入一个新型的信息化时代,也成为影响最广泛和最深刻的新兴领域。在社会信息化的发展已经在人类信息化发展史上打下了深刻的烙印。因此,信息已经成为我们人文、生活、经济和军事等方面最为重要和突出的因素,以开放式互联网信息为载体的信息机制已成为当今信息时代重要部分。与此同时,由于互联网络信息是一个开放性的、全球性的信息系统,信息安全隐患也将日益突出。信息安全已关系到国家和人民主权利益安危、经济命脉的控制和传统核心文化的弘扬等方面。作为交流通信和资源分享的互联网信息,由于其具有开放性、共享性和全球性等特点,其对不法信息攻击抵御能力是非常脆弱,而对不法攻击对其只需通过互联网就能轻易实现,因此信息安全问题已成为当今社会信息化发展和国家安全战略等的研究重点。密码学是一门古老的数学分支,随着社会信息化的发展,信息安全问题的严重性和迫切性要求,使得密码学应用到我们的商业、生活和文化中。密码学基本思想是把可理解的原始信息通过加密变换成为不可理解的信息,同时又可通过解密变换恢复到可读的原始信息。一般来说,把加密、解密双方使用相同的密钥来处理原始信息或加密后的信息这种方法称为对称密码体制。分组密码是对称密码的一种,也是现代密码学最重要、最常用的体制之一,其在密码学领域中占据着领导地位。1977年1月美国国家标准局(NBS)正式向社会公布采纳了由IBM公司提出的候选算法作为数据加密标准DES。在随后短短几年中,DES算法以其稳固的安全性和易于实现等特性迅速广泛被应用于在全球金融、通信等领域。但是由于DES算法在加、解密时有效密钥仅为56位,并且DES算法的设计标准和S盒方案被NBS多次秘密修改后都未公布。在密码学学者对DES持续不断的研究和分析时,1998年EFF组织使用当时最先进、最昂贵的计算机在56小时内利用穷举所搜密钥的方法破解了DES算法,1999年1月又将破译时间缩短到22小时15分。这意味着DES已经不能保障信息的安全性,已经暴露出它致命的缺陷和弱点。在此背景下,新一代、向社会公开的加密算法AES诞生了,其由NIST征集用以替代过时的DES加密算法。1.2国内外相关技术发展历史和研究现状1.2.1 AES算法的发展NIST在征集的过程中指明对称分组密码AES算法在处理分组长度时只能是128位,而且密钥的长度是灵活的,同时最少能支持128位密钥,另外还可以扩展到192和256位。这个规范也要求AES是一种开放式算法,可以在全世界公开使用。为了得到全世界的响应与认可,NIST在世界范围内发布了这个公告。1999年3月22日,NIST从征集的15个候选算法中公布了5个来自不同国家的候选算法进入第二轮选择:MARS、RC6、Rijindael、SERPENT和Twofish。2000年10月2日,NIST发布了其选择算法的标准,其中包括能否在各种平台上快速实现、能有效抵御当时已有的各种密码分析攻破、运行时能适应各种处理器特性、运行速度快以及占用内存小等,符合标准的由VincentRijimen和Joandaemen提出的Rijndael算法于2001年被NIST正式宣布作为AES标准(FIPSPUB197)。作为新一代取代DES的对称密码算法,AES算法可抵御强大的攻击,其安全性能是毋庸置疑的。1.2.2 AES算法的研究现状自AES算法被广泛应用到全球各个领域以来,人们从未曾间断过对其进行分析和研究。目前对AES算法的研究分析主要分为两个方向:(1)目前在算法安全性研究方面密码学专家采用的攻击方式主要有穷举攻击法、差分攻击法、线性攻击法、Square攻击法:穷举攻击法因为至少需要计算2128次,这种对密钥的穷举计算,大概需要数百亿光年,而以目前计算速度和能力这种攻击方法是没有效果的。差分攻击法是对AES算法的最后一轮S盒分析以得到部分密钥,再通过穷举尝试的方法得出全部密钥,但是对于4轮运算来说差分攻击概率上限是2-150。线性攻击方法是通过寻找部分密钥的一个最大概率的线性式以推导出全部密钥,但是其概率上限只有2-75,对于十轮运算来说,是远远不够的。Square攻击法是针对明文字节数据的攻击,但是只能够对不超过六次轮运算的AES算法有效,然而AES-128模式算法是十轮运算的,足以保证其安全性。综上所述,AES加密算法对目前已知的密码分析攻击具备非常强的抗攻击性,因此,可以作为信息安全的重要保障。(2)在算法的硬件实现研究方向AES算法的简单、计算量小和占用内存少等特点,非常适合用软件和硬件来实现。用硬件实现其研究主要朝着两个方向发展:一个方向是追求高数据吞吐率和高的性能以及工作频率,一般是通过采用循环展开轮内和轮间混合流水线结构、用带流水线结构的组合逻辑来实现S盒、加解密资源共享复用等方法。其中Samiee和Atani等人通过循环展开轮内和轮间混合流水线结构等方法将AES算法数据吞吐率提升到43.7Gbits/sec。在2010年国内北京邮电大学的陈东等人通过对S盒进行有限域降阶处理后再进行六级流水线划分将吞吐率提升到82.65Gbits/sec,时钟频率高达645.7MHZ,而面积却高达12256Slices。另一个方向是尽量减少是使用面积,降低硬件资源的消耗,一般有:使用BLOCKRAM来存贮解密时密钥扩展过程产生密钥、使用ROM来实现S盒、采用循环迭代的结构来实现AES算法等方法。其中2011年Kshirsagar和Vyawahare通过使用20个256x8bit的ROM实现加密S盒和循环迭代的结构并将加、解密电路分开实现,其加密电路面积缩小到1853个Slices、3645个4输入LUT,但时钟频率只有140.39MHZ,吞吐率仅有0.352Gbits/sec。本文采用第二种设计方法,即实现一个小面积、硬件资源占用少的AES加密算法,并在实现过程中尽量减少算法所占用的存储空间。随着芯片集成度的提高和发展,这种设计方法的方法越来越被人们接受,成为目前设计AES加密芯片的主流方向。同时这也正是本文所要研究的方向。1.3课题研究的目的和意义该课题需要针对智能卡的安全性要求设计一款加密芯片算法,该加密算法能将有效的保护智能卡中个人隐私信息及重要数据。本课题所研究与设计的AES加密算法是该加密芯片所支持的加密算法中的一种。传统的AES加密算法研究朝着1.2节中提到的速度和面积两个方向发展,而本课题对于AES加密算法的设计将会以智能卡安全芯片为背景进行展开,以芯片的实际用途、安全性、性能、面积等因素为基准来进行设计。故采用循环迭代的结构来实现AES加密算法硬件结构。本文针对AES加密算法设计中的三大重点部分:S盒、密钥扩展编排方案和硬件架构进行深入分析和研究。AES加密算法在运算过程中,资源消耗最多是S盒的实现和解密密钥扩展过程中的存储,只有这两部分涉及到大量数据的存储问题。在传统设计中,由于考虑到S盒的构造复杂性,而采用两个256x8的ROM来实现正、逆向两个S盒,但在调用S盒的过程中往往会占用大量芯片面积。另外由于解密密钥使用的顺序与加密时相反,故大部分设计在采用使用RAM来存储加密过程密钥扩展的密钥,然后在解密过程中倒序使用,虽然实现起来比较方便,但是其额外的存储单元与本来面积不大AES加密算法相比,显得有些浪费资源。在本设计中对S盒的设计和解密密钥扩展将不使用任何存储单元,极大的节省面积资源的消耗,而且在硬件结构上简单精巧的设计同时也能在面积和速度之间找到一个平衡点。另外为了能提高本设计的应用性,本文不仅仅只停留在对AES加密算法硬件实现的层上,而在此基础上将其设计成为一个兼容Wishbone总线标准的AES加密算法IP核。这样有着规范接口的AESIP核可以很方便的挂载在片上总线上,以便集成到SOC芯片上。2 AES算法安全性分析AES算法使用SPN结构和宽轨迹设计方法,这种结构和方法的设计使AES算法的安全性和高效得到很好的发挥。2.1 SPN结构 分组密码设计主要采用了两种结构:Feistel网络和SPN结构。最初的设计中,主要采用Feistel结构及其变形。Feistel结构的主要优点是解密容易实现,设计主要是构造好的S盒,典型代表是DES;SPN是继Feistel结构之后的另一种分组密码的总体结构,它的特点是层次清晰,便于分析,AES算法就是采用这种结构的典范。现代分组密码设计原理没有变,即还是遵循仙农提出的两个准则:混乱和扩散。众所周知,结构决定功能,流行的SPN正是采用功能明确的三个模块,代替层(用来实现混乱作用),置换层或称扩散层(用来实现扩散作用),密钥加层(实现数据和密钥的混合)。一个采用SPN结构的分组密码是一个密钥交替分组密码,它具有下面一些性能:(a)交替性:该定义为独立于密钥的轮函数与密钥加法的交替使用。在轮函数开始之前和最后一轮之后也都应用密钥加法。(b)简单的密钥加法:轮密钥通过简单XOR运算与中间状态相加。一轮的SPN结构一般由与密钥加法、替换和线性变换三层构成。若一个非零输入差分的s盒称为差分活动s盒,给定了一个非零输出掩码值的s盒称为线性活动s盒,则对于SPN结构,在差分概率和差分活动的s盒的数目之间,有紧密的联系。当差分活动的S盒数目最多时,差分概率达到最小,反之达到最大。因此,分支数的概念被引用。从差分分析的观点来看,分支数指两轮SPN结构差分活动的s盒的最少数目;从线性分析角度来看,指两轮SPN结构线性活动S盒的最小数目。对于SPN结构,线性变换的设计影响分支数的多少。AES算法的SPN结构采用了宽轨迹策略,经过两轮轮函数,分支数达到25。2.2宽轨迹策略宽轨迹策略是一种用于设计密钥交替分组密码轮变换的手段,它同时兼备高效率与抗差分和密码分析两种特性。其把轮变换分成两种可逆步骤:(1)一个局部的非线性变换。所谓局部性是指任何一位输出比特只依赖于有限数量的输入比特,并且邻近的输出比特只依赖于邻近的输入比特。(2)一个可提供高度扩散性的线性混合变换。因此轮变换可以表示为: (1)在之前的密码设计中(如DES),着重于y步骤的设计,主要是设计出好的s一盒,但是这种着重y步骤的设计很容易增加软件实现重中程序的大小和硬件实现中芯片的面积大小。宽轨迹策略则主要重视了A步骤的设计,其主要目的就是设计一种变换,使得这种变换不存在过多的非活跃s盒,从而可抗击线性和差分分析。作为宽轨迹设计的结果,AES的轮函数由三个起不同作用的步骤构成。依据宽轨迹策略而设计的密码中,相当多的资源花费在后两个线性步骤上,以提供高的多轮扩散性。为了达到更好的效果,AES算法把步骤分为两个不同步骤:(1):提供高的局部扩散性。(2):提供高的全局分散性。从而(1)式变为: (2)在AES算法中,这三种步骤分别对应了不同的变换:(a)SubByte:非线性步骤y。并行地对每个状态字节进行操作。(b)ShiftRow:换位步骤玎。换位每个字节的位置,提供全局分散性。(c)fclMixColumn:混合步骤0,对列进行操作,每列包含4个字节。宽轨迹策略允许达到差分特征概率的可证明上界。这样的概率特征可成为轨迹,降低轨迹的概率,即限制差分传播的概率是宽轨迹策略的设计策略。抵抗差分分析的安全性证明的第一步是确定足够大的轮数使得所有的差分轨迹都小于2nr-1Rijndael的轮函数强调了多轮轨迹能达到的相关性和概率的上限,通过建立在MDS码上的混乱函数结合字节变换这样的轮函数。已经证明在四轮差分轨迹下活动的S-盒数限定在25以下,既然在一个活动的S盒下差分传播概率最多是2-6,因而八轮差分轨迹的概率最多是2-300。相似的结论应用到线性分析,我们可以看到八轮的线性相关性贡献低予2-150。Keliher建议一个找到SPN结构的最大线性逼近概率的上界的方法,此方法应用到AES七轮或更多轮大约将产生2-75的最大逼近概率上界。应用到九轮或更多轮的AES,将产生2-92的线性逼近上界。但都只是理论分析,不具有可操作性。从而可看出AES算法有很好的抵抗差分和线性分析的能力。2.3安全性研究常用的密码分析攻击有:(1)唯密文攻击;(2)已知明文攻击;(3)选择明文攻击;(4)自适应选择明文攻击;(5)选择密文攻击;(6)选择密钥攻击。2.3.1蛮力攻击现有的蛮力攻击手段有穷尽密钥搜索攻击、字典攻击、查表攻击和时间一存储权衡密钥攻击,这些攻击手段可以作用于任何一种密码算法,攻击的复杂度只依赖于分组长度和密钥长度,而它们的复杂程度是随着密钥长度增加成指数增长的,对于AES算法,密钥长度最小也是128比特,就算是每秒钟能够完256(DES的密钥长度为56,即一秒钟就攻破DES)个密钥的搜索,要完成AES的密钥搜索,最少需要的时间大约是149万亿年,这在时间和空间上都是不可行的。因此在现在和将来一段时间里,Rijndael算法对强力攻击是免疫的。2.3.2差分与线性密码分析差分与线性密码分析方法是迄今己知的攻击迭代密码算法普遍适用且最有效的方法。差分密码分析差分密码分析实质上是一种选择明文攻击,其基本思想是通过分析明文对的特定差分对密文对差分的影响来恢复某些密钥比特,所以其本质是研究明文对的差分、密码算法中间过程输出对的差分及密文对差分之间的关系。线性密码分析是一个已知明文攻击,其中使用大量的明文密文对来确定密钥位的值,线性密码攻击的本质是找出密码算法的有效线性逼近及各轮线性逼近之间的关系。对于AES算法,其不存在可预测的扩散率大于2-150的4一轮差分轨迹。同样可以证明不存在相关系数大于2-75的4一轮线性轨迹。因此,4轮的Rijndael算法就可以有效的抵抗差分密码分析和线性密码分析。2.3.3 Square攻击Square攻击是迄今为止对AES算法威胁最大的密码分析方法。这个攻击也称为“渗透攻击”,这种攻击是一种针对具有AlES轮结构密码的选择明文攻击,它的实施与非线性步骤中s-盒的选择和密钥扩展都无关。它对于一个至多6到7轮的AES简化版本(对AES-192和AES-256版本)的攻击要比密钥穷举攻击方法更快。NFerguson等人优化了这种攻击的工作因子,优化的算法可攻击到9轮的AES算法。2.3.4碰撞攻击这种攻击方法是Gilbert和Minier提出的。其可对一种简化到7轮的AES算法进行攻击,尽管这种攻击的工作因子提高了,但仍比只对AES-128的穷举密钥搜索方法更有效。3 AES算法数学基础及原理3.1 AES算法简介2001年l1月NIsT宣布将比利时人Joan Daemen和Vicent Rijinen提交的Rijndael算法作为高级加密标准(AES)。2006年,AES算法已成为对称密钥加密中最流行的算法之一。AES算法是一种迭代型分组密码,其分组长度和密钥长度均可变。各自可以独立指定为128位、192位、256位。轮数Nr依赖于密钥长度。如果密钥长度为128比特,则Nr=10;如果密钥长度为192比特,则Nr=12;如果密钥长度为256比特,则Nr=14。文中主要讨论分组长度和密钥长度为128位的情况。AES算法可以用软件也可以用硬件实现。实际使用中根据具体的应用环境两种情况都有。软件实现是靠CPU的运算来实现算法,易受使用条件限制,加密速度慢,易受到破坏,影响数据传输质量。硬件实现是用专用芯片实现密码算法。通过芯片对数据进行加密。专用加密芯片是实现信息安全与保密的核心模块,具有保密性高,加密效率高,易于嵌入,总体成本低等优点,因此在复杂系统和大数据量加密系统中,一般都使用硬件来实现AES加密。3.2 AES算法的数学基础AES密码中的订多运算都是按byte运行的,用字节表示有限域GF(28)(下同)中的元素,另有一些运算是按4-字节的方式定义的。由构成的一个字节b可看成系数在GF(28)中的多项式:GF(28)中的加法定义为多项式的二元加法,系数为模2加。域加法就是简单的按byte为单位的bit异或。GF(28)中的乘法定义为模一个8次不可约二元多项式乘法,所谓不可约二元多项式是指该多项式除了能被1和自身整除外不能被其它任何二元多项式整除。对于AES算法,这一特定的多项式为。上面的讨论把多项式系数限定在GF(2)中。同时,多项式也可以定义为其系数在GF(28)中。这样,4字节向最对应次数小于4的多项式。对应的系数相加就可以实现多项式的相加。两个向量的加法是一个简单的异或。对系数在GF(28)中的多项式的乘法,定义为多项式相乘后再模多项式。如此,两个多项式和等于,。写成矩阵形式,有将用x乘以b(x)这一运算称之为x乘,按上面的表示法有:3.3 AES算法原理AES的加密流程为,首先将明文映射到状态矩阵(State),进行初始密钥加运算;然后进行Nr次轮运算,各轮都由字节替换(ByteSub)、行移位(RowShift)、列混淆(MixColumn)、轮密钥加(Addroundkey)4个置换来实现,但第Nr轮不做列混淆;最后将状态矩阵映射为密文。解密过程与加密过程类似。加密解密流程图如图1所示。解 密加 密解 密加 密轮密钥加位变换行移位列混淆第1轮反轮密钥加反位变换反行移位反列混淆第Nr 轮轮密钥2128bit 明文轮密钥加128bit 明文轮密钥加轮密钥1位变换轮密钥加行移位第 Nr 轮反位变换轮密钥加反行移位第 1轮轮密钥Nr128bit密文128bit密文图1 AES加密解密流程图1位替换位替换是对状态阵列的字节到字节的变换它使用字节替换表(S盒)作用于状态矩阵的每个字节。字节替换有正向字节替换和逆向字节替换。正向字节替换是一个简单的查表操作。AES定义的S盒是由16x16个字节组成的矩阵,包含了8位值所能表达的256种可能的变换。State中每个字节按照如下的方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,取出S盒中对应行列的元素作为输出。AES的S盒被设计成能防止已有的各种密码分析攻击Rijndael开发者特别寻求输入位和输出位之间几乎没有相关性的设计。并且输出值不能通过利用一个简单的数学函数变换输入值所得到。当然,S盒必须是可逆的,但S盒不是自逆的。2行移位行移位是对状态阵列的行到行的变换也就是将某个字节从一列移到另一列中,它的线性距离是4字节的倍数。在这里要注意到,行移位变换确保了某列的4字节被扩展到了4个不同的列。正向行移位变换,即State的第1行保持不变,把State的第2行循环左移一个字节,State的第3行循环左移2个字节,State的第4行循环左移3个字节。而逆向行移位变换则是将State中的第一行保持不变,后3行执行与正向行移位相反方向的移位操作。3. 列混淆列混淆是对状态阵列的列到列的变换它作用于状态阵列的每一列。正向列混淆变换对每列独立地进行操作每列中的每个字节被映射为一个新值,此值由该列中的4个字节通过函数变换得到。4. 轮密钥加轮密钥加是轮密钥与状态阵列中的对应字节按位异或的变换,轮密钥由密钥扩展得到。在正向轮密钥加变换中,128位的State按位与128位的密钥XOR把这个操作看成是基于State列的操作即把State的一列中的4个字节与轮密钥的一个字进行异或。逆向轮密钥加变换与正向轮密钥加变换相同。因为异或操作是其本身的逆。也可以说由于AddmundKey只包括一个异或操作。所以InvAddR0undKev与AddroundKey变换一致。5. 密钥扩展模块密钥扩展模块负责把输入的初始密钥扩展为每一轮轮变换所需要的轮密钥。文中所设计的模块,预先对输入的密钥进行扩展,一次性完成加密和解密每一轮轮变换所需要的轮密钥。扩展所得的轮密钥存储于轮密钥存储器中,加密和解密过程直接调用轮密钥以节省时间。密钥扩展模块如图2所示。时钟信号原始密钥状态机密钥扩展轮密钥存储器图2 密钥扩展模块3.4 AES与DES的比较自DES算法1997年首次公诸于世以来,学术界对其进行了深入的研究,围绕他的安全性等方面展开了激烈的论述。在技术上,对DES的评论只要集中在以下几个方面:(1)作为分组密码,DES的加密单位仅有64位二进制,对于数据传输来说太小,因为每个分组仅含8个字符而且其中某些位还要用于奇偶校验或其他通讯开销。(2)DES的密钥的位数太短,只有比特,而且各次迭代中使用的密钥是递推产生的,这种相关必然降低密码体制的安全性,在现有技术下用穷举法寻找密钥已趋于可行。(3)DES不能对抗差分和线性密码分析。迄今为止,DES算法中的S盒8个选择函数矩阵的设计原理因美国政府方面的干预,不予公布。从这一方面严格地讲DES算法并不是一个真正的公开加密算法。S盒设计中利用了重复因子,致使加密或解密变换的密钥具有多值性,造成使用DES合法用户的不安全性。而且,在DES加密算法的所有部件中,S盒是唯一的具有差分扩散功能的部件(相对于逐位异或),其它都是简单的位置交换,添加或删减等功能,毫无差分扩散能力。,DES的安全性几乎全部依赖于S盒,攻击者只要集中力量对付S就行了。(4)DES用户实际使用的密钥长度为56bit,理论上最大加密强度为256。DES算法要提高加密强度(例如增加密钥长度),则系统开销呈指数增长。除采用提高硬件功能和增加并行处理功能外,从算法本身和软件技术方面无法提高DES算法的加密强度。相对DES算法来说,AES算法则解决了上述问题,主要表现在如下几方面:(1)运算速度快,在有反馈模式、无反馈模式的软硬件中,AES都表现出非常好的性能。(2)对内存的需求非常低,适合于受限环境。(3)AES是一个分组迭代密码,分组长度和密钥长度设计灵活。(4)AES标准支持可变分组长度,分组长度可设定为32比特的任意倍数,最小值为128比特,最大值为256比特。(5)AES的密钥长度比DES大,它也可设定为32比特的任意倍数,最小值为128比特,最大值为256比特,所以用穷举法是不可能破解的。在可预计的将来,如果计算机的运行速度没有根本性的提高,用穷举法破解AES密钥几乎不可能。(6)AES算法的设计策略是宽轨迹策略(WideTrailStrategy,WTS)。WTS是针对差分分析和线性分析提出的,可对抗差分密码分析和线性密码分析。总之,AES算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法。经过对DES算法和AES算法的比较分析,我们可以得出结论,后者的效率明显高于前者,而且由于AES算法的简洁性,使得它的实现更为容易。AES作为新一代的数据加密标准,其安全性也远远高于DES算法。更为重要的是,AES算法硬件实现的速度大约是软件实现的3倍,这就给用硬件实现加密提供了很好的机会。4 AES算法在智能卡中的应用4.1 智能卡简介智能卡即SmartCard,也被称为芯片卡或集成电路卡,他是将一个集成电路芯片镶嵌于符合IS07810的塑料基片中,封装成卡的形式。自1972年法国人罗兰莫雷诺首先提出Ic卡的设想,1976年法国布尔(BULL)公司研制出世界第一张IC卡以来,IC卡技术飞速发展。智能卡之所以如此普及,不仅仅在于他有数据存储和计算能力,更重要的原因就是他能为用户数据提供强有力的安全保护。智能卡中的集成电路芯片是一种单片机(MCU)。这种单片机唯一的工作方式是“用户方式”,分为通用和专用两种。专用的单片机是指其中的微处理器为专用的、保密的单片机。它与通用的单片机差别很大,主要差别在于“保密”的单片机有很好的物理保护措施。智能卡的发展方向是保密的单片机。智能卡的外形一般同信用卡的大小一样,但为便于用户携带、插入、取回以及与设备的连接,也可制成形状、大小和厚度各异的卡片。智能卡所采用的封装可从最简单的单张芯片到具有键盘、显示器、电源和通信接口的“工作站”。智能卡的功能是多样化的,它具有暂时或永久的数据存储能力,存储的内容可以供外部读取,或供内部信息处理的判定用。它比磁卡具有更大的存储容量和更多的“智能”,使用起来更安全、方便。4.2 智能卡安全技术智能卡的安全技术主要包括三方面:(1)智能卡芯片的安全技术(2)智能卡卡片的安全制造技术(3)智能卡软件的安全技术。其中智能卡软件的安全技术包括:智能卡与读写器的相互认证、软硬件测试功能、安全传输管理、个人身份识别管理、密钥管理、随机数产生和传输、加密解密等。智能卡业界一直在努力开发更先进的技术,使得AES和ECC等现代安全技术能够普遍应用在智能卡中。常用的智能卡加密算法有以下三类:流密码体制:这种密码可直接对当前字符进行变换,也就是说,能够以单个字符为单位进行加密变换。这类密码适用于通信领域,是早期智能卡通常采用的加密技术。分组密码体制:使用这类密码时,明文按固定长度分组,对各组数据用不同的密钥加密。分组密码技术主要用于存储加密环境,是当前智能卡较为常用的重要技术。非对称密码体制:非对称密码体制利用两个密码取代常规的一个密码,其中一个公共密钥被用来加密数据,另一个私密钥被用来解密数据。对称密码体制:是传统的密码,加密和解密是对称的,加密解密密钥相同。数据加密是所有数据通信安全的基石。数据加密过程是由形形色色的加密算法来具体实施,并以较小的代价换取了很大的安全性。由于数字签名技术所使用的加密技术可以证明信息发送者和接收者的身份、文件的完整性及不可否认性,因而也被普遍应用于高级智能卡中。4.3 AES算法在智能卡中的应用AES作为新一代的加密算法,其在智能卡上的应用也将是一个崭新的并且很有研究价值的课题,对智能卡这样存储空间和计算速度都很有限的系统,如何设计适合其应用的算法实现方案是很具实际意义的问题。AES算法在智能卡上可设计很多的应用,主要有:(a)设计成一个哈希函数来应用到智能卡。(b)作为智能卡与服务器传输信息时的加密算法。4.3.1 AES作为哈希算法作为新一代加密标准的AES算法,其不仅是一种加密算法,而且可设计成哈希算法,且这种算法的安全性也是很可观的。基于AES算法的哈希函数:假定其都是长度为128比特的明文块(如果整个消息的长度是128比特的整数倍,则对消息进行填充,填充最高位为1,其余各位均为0),k是密钥,长度也是128比特。,和均是64比特。若,则转,否则作。这里“|”符号表示把和连接起来。Rijndael算法作为新一代的高级加密标准采用的算法,将安全、高效、方便使用及灵活性集于一体。它在不同的硬件和软件运行环境下表现出始终如一的良好性能。它的操作可以很容易的抵御时间和空间上的攻击,从分组长度和密钥长度的观点来看,Rijndael设计具有很大的灵活性。同时这种算法允许一定循环次数的修正。由于Rijndael具有的这些优点,使本文构造的哈希函数也继承了这些优点。该算法的单向哈希性能很好,具有十分高的初值敏感性,混乱和散布性质也较稳定,满足了单向哈希函数的条件,可以很好的抵御线性攻击和穷举攻击。4.3.2 混合加密算法在智能卡中,我们可设计混合加密系统,使用ECC(椭圆曲线密码)加密算法和AES加密算法。ECC算法是一个公钥加密算法,这个算法可用来加密信息和数字签名。在这个混合系统中,数据通信之前,用AES算法对信息加密,同时用ECC算法对AES密钥进行加密和实现数字签名。为了减少DES数据加密的复杂度和加密时间,我们仅对数据明文进行AES加密,而数字签名部分则不在AES加密的范围之内。因为对消息摘要(对信息进行HASH算法的结果)已进行了ECC加密,再进行一次AES加密的意义不大,况且同时会增加加密所需的时间。若我们设发送方和接收方分别为A和B,其都有各自的ECC算法的加、解密密钥,分别为EA、DA和EB、DB,上述混合系统的信息传输的实现步骤如下:1发送方先随机生成用于AES加密的临时密钥K,为了提高数据的安全性,密钥K要定期更换。2发送方从密钥服务器中获取接收方的ECC的公开加密密钥EB,并用EB加密AES的临时密钥K形成密文Ck。3发送方生成明文的消息摘要信息M,并用自己的ECC的解密密钥DA形成数字签名S。4发送方用K加密明文信息,然后连同S,Ck一起形成密文C发往接收方。5接收方接收到C后,先用自己的解密密钥DA解密出C中的AES密钥K,再利用K解密出明文,并从C中提取出签名信息S。6,接收方用发送方的公开密钥EB对签名信息进行解密,解密出的信息为M;然后对明文进行消息摘要变换,形成M,比较M和M,确定数据的正确性。7 发送、接收双方均删除AES密钥K。密钥随机产生对密钥加密ECCEB对密钥解密ECCDB密文Hash明文明文用ECC(DA)对hash加密形成电子签名加密AES明文明文明文密文解密AES用ECC(EA)对hash加密形成电子签名明文Hash 比较图4 数据加密通讯的完整过程发送方和接收方分别为智能卡和服务器其中之一,其中的密钥服务器为系统服务器,其用来生成消息摘要的HASH算法使用上文提出的HASH算法。AES算法作为消息加密算法,其使用频率非常频繁,因此我们可把AES算法固化到智能卡上用硬件实现,以提高它的加密速度;而使用频率小的ECC算法则使用速度较慢的软件实现。通讯过程如图4所示。4.3.3 智能卡加密算法加密就是对将需要保护的信息进行加密伪装的过程。被加密的原信息称为“明文”,加密后得到的信息称为“密文”,而把密文重新翻译成明文的过程称为“解密”。如图3所示:加 密 E(P)解 密 D(C)明文P原明文P密文P图3 加密解密过程 用P表示明文,在智能卡中,明文P可以是一组比特流,也可以是一组二进制数据。用C表示密文,密文C可以是一组二进制数据,明文P通过加密函数E的运算得到密文C,公式如下:解密函数D作于密文C产生明文P,其表达式为:由于对明文P先加密C,再解密将恢复出原来的明文,因此下面的等式成立:现代的加密算法都使用密钥,用k表示,则下述加密/解密表达式成立:在本文中,算法指的是加密和解密时所用的数学变换,密码体制指的是算法和它的实现方法。密码体制的两个基本要素是:密码算法和密码密钥。其中,密码算法是计算公式和函数、法则或者程序,这些一般与现代数学中的某些理论相联系;而密钥是密码算法中的可变参数。相对来说,密码算法在一个时期内是相对比较稳定的,密钥则是易变化的。而从数学角度来看,改变密钥这个参数,就是改变了明文与密文之间的等价的数学函数关系。因为密码算法本身是不能做到绝对的保密,所以现代密码学总是假设密码算法是公开的,而密钥需要进行保密,即完全通过密钥保护明文信息。结论从美国科学家Shannon在1949年发表“保密系统的通信理论”从而确立了密码学的科学体系以来,经过了大约1/4个世纪,Rivest、Sham
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初中地理必刷题库及答案
- 2025年急诊医学模拟试卷及答案
- 备战2026年高考英语考试易错题(新高考)易错点07 代词(原卷版)
- 备战2026年高考英语考试易错题(新高考)【消灭易错】动词的时态和语态(解析版)(3大题组)
- 肠道菌群与反射关联-洞察与解读
- 2025年策略顾问岗位招聘面试参考试题及参考答案
- 2025年内容创作编辑岗位招聘面试参考试题及参考答案
- 2025年现场协调员岗位招聘面试参考试题及参考答案
- 2025年仓储管理人员岗位招聘面试参考试题及参考答案
- 2025年初级技术支持专员岗位招聘面试参考题库及参考答案
- 初中英语高频词汇表
- 汽车机械制图(第二版)试题试卷及答案2套
- 某某市畜牧路供热管网工程全套资料表格
- 物业工程夜班岗位职责
- 学校校服选用采购会议记录
- 备考2024年中考数学专题突破(全国通用)专题2-3 八种隐圆类最值问题圆来如此简单(解析版)
- 山东省精神卫生中心招聘试题及解析
- 企业员工廉洁行为规范培训课件
- JT-T 795-2023 事故汽车修复技术规范
- 国家开放大学《数据结构》课程实验报告(实验2-线性表)参考答案
- DBJ50-200-2014建筑桩基础设计与施工验收规范
评论
0/150
提交评论