学术论文毕业论文加密和密码学的AES加密算法Word下载.docx
- 文档编号:17103808
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:28.22KB
学术论文毕业论文加密和密码学的AES加密算法Word下载.docx
《学术论文毕业论文加密和密码学的AES加密算法Word下载.docx》由会员分享,可在线阅读,更多相关《学术论文毕业论文加密和密码学的AES加密算法Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
在征集公告中,NIST对算法的根本要求是:
算法必须是私钥体制的分组密码,支持128bits分组长度和128,192,256bits密钥长度。
经过三轮遴选,Rijndael最终胜出。
2000年10月2日,NIST宣布采用Rijndael算法作为新一代高级加密标准。
Rijndael的作者是比利时的密码专家JoanDaemon博士和VincentRijmen博士。
美国国家标准和技术研究所〔NIST〕在1999年发布了FIPSPUB46-3,该标准指出DES只能用于遗留系统,同时3DES将取代DES。
3DES密钥长度为168bits,可克服穷举攻击问题,3DES的底层加密算法对密码分析攻击有很强的免疫力,其根本缺点是用软件实现该算法的速度慢,由于此缺陷,3DES不能成为长期使用的加密算法标准。
虽然AES己经生效,但DES和3DES还大量地在各种信息平安产品中使用。
市场上的AES的商用产品还很少,但AES产品取代DES产品已是必然。
对AES的实现和应用进行探讨和研究就具有较大的理论和现实意义。
2001年11月26日联邦信息处理标准出版社发布了正式的AES标准即FIPSPUBS197,其中制定的标准生效时间为2002年5月26日。
AES最终会取代3DES,但过程可能需要几年时间。
Rijndael算法是一种可变分组长度和密钥长度的迭代型分组密码,它的分组长度和密钥长度均可独立地指定为128bits,192bits,256bits,它以其平安性和多方面的优良性能,成为AES的最正确选择〔在高级加密标准标准中,密钥的长度可以是128,192,256bits三者中的任意一种,但分组长度只能是128bits〕。
Rijndael算法能抵抗现在的所有密码攻击,用S盒作为非线性组件,表现出足够的平安性能,其采用的实现方式非常利于防止能量攻击和计时攻击,算法利用了掩码技术防止这些攻击,它在广泛的计算环境中的硬件和软件实现性能都表现得非常优秀,它固有的分布执行机制使得密钥建立时间极短且灵活性强,非常利于在各种平台上执行,它对RAM和ROM的要求低,使其非常适合在存储器受限的环境中使用,并且表现出很好的性能。
其有很好的并行执行能力。
AES对所有的攻击具有免疫性,其设计简单,在各种平台上执行速度快而且代码紧凑。
AES不使用Feistel结构,而是每一轮都使用代换和混淆并行地处理整个数据分组。
AES输入的密钥被扩展成扩展轮密钥。
AES的结构包括四个不同阶段:
字节代换,行移位,列混淆,轮密相加,它们提供了混淆,扩散以及非线性功能。
AES算法结构简单,由10个加密轮次组成。
AES应用了在有限域中的乘法和加法运算法那么。
AES每个阶段均可逆,解密算法中用相对应的逆函数即可。
从AES的应用看,目前AES算法主要用于基于私钥数据加密算法〔对称密钥加密算法〕的各种信息平安技术和平安产品中,AES通常被认为是DES算法的取代者,为原有的数据加密应用提供更强的数据平安保障。
所以在原来DES标准应用的领域中,AES存在着巨大的应用价值。
当前网络技术开展迅猛,所以对于基于网络的数据加密的要求也日益提高,AES的应用首先表达在了网络信息平安领域中。
在AES标准公布前,IPSec协议中ESP〔封装平安负载〕所用的数据加密算法主要用的是DES和其代替者3DES,随着AES标准的公布,IETF的IPSec工作组下一步正试图使AES成为ESP使用的默认加密算法,要求所有IPSec实现必须兼容AES加密算法。
现在大多数提供VPN设备和解决方案的公司都已经使用AES加密算法来代替原来产品中使用的DES加密算法,并将此作为宣传企业产品的重要砝码。
AES在网络技术中另一个主要应用是无线网络应用。
由于无线网络的通信信道相对于有线网络来说是一个更为开放的环境,平安性的要求相对于有线网络来说将会更高。
目前,无线网络的国际标准主要有两个:
一个是用于WLAN的IEEE803.11协议〔Wi-Fi〕;
另一个是用于WMAN的IEEE803.16协议〔WiMAX〕。
这两个协议在制定的初期所采用的平安机制中主要使用的分别是RC4和DES,2004年后这两个协议也都将AES参加到协议的平安机制中。
此外,其他的一些无线网络技术为了保障数据传输平安性也都使用了AES。
ZigBee技术就是一个典型的代表,它作为新一代的无线传感器网络采用了IEEE802.15.41ZigBee协议〔一种低功率WPAN〕。
ZigBee技术是一种近距离,低复杂度,低功耗,低数据速率,低本钱的双向无线通信技术,主要适合于自动控制和远程控制领域,可以嵌入各种设备中。
ZigBee的MAC层使用了AES算法进行加密,并且它基于AES算法生成一系列的平安机制,用来保证MAC帧的机密性,完整性,一致性和真实性。
除了保障网络应用的信息平安外,AES在其他的信息平安领域中也有着广泛的应用。
从AES硬件实现的应用上看,主要研究的方向有射频IC〔集成电路〕卡中的数据平安,智能平安卡和对硬盘数据的加密等方面。
目前射频IC卡在国内的应用范围很广泛,从市民乘车使用的公交IC卡、学校食堂使用的饭卡到新一代的居民身份证中都嵌入了IC芯片。
在IC卡中所存储的数据通常都是含有持卡人的各人隐私信息的,这些信息如果不经过加密处理很容易在不经意间从各种渠道泄露出去。
因此如何在射频IC卡中参加数据加密功能成为AES应用研究的方向。
从AES软件实现的应用上看,其应用领域也十分广泛,包含语音、视频信息的加密,数据库中的数据加密以及当前关注度很高的电子商务平安等。
随着计算机性能的提高,尤其是对于多媒体信息的处理能力的增强,越来越多的多媒体信息出现在人们的日常生活中。
和一般的文字信息类似,多媒体信息也存在对需要保密的信息加密的问题。
由于多媒体信息的数据量很大,如果对其直接进行数据加密的话,其效率很低,将会影响多媒体信息的传播及使用。
因此,在对多媒体信息加密时,不仅要考虑到数据加密算法AES的使用方法,还要设计相应的加密过程。
关于AES在数据库中的应用,其主要的研究方向在于如何生成,分配和管理在数据输入输出中所用的密钥以及平安的数据加密的策略上,形成一个完整的数据加密系统。
关于AES在电子商务中的应用,其研究的重心在于电子商务根底平台中的密码协议和交易平安协议中AES的应用。
如将AES应用在SSL〔平安套接字层〕协议中:
在实时数据网络传输前,发送方通过身份认证后,用SSL平安通道发送AES密钥到接收方,同时用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。
这样接收方可以用接收到的AES密钥解密加密后的实时数据得到具体的实时数据。
此外,将AES与其他的密码算法相结合,尤其是一些公钥加密算法〔非对称加密算法〕,设计出的新的密码也是AES应用研究的主要方向之一。
目前比拟典型的研究包括:
AES与RSA相结合的混合加密体系,AES与ECC〔椭圆曲线加密算法〕相结合的加密体系,利用NTRU公钥密码体系分配AES密钥,AES在公钥加密体系PKI中的应用,AES在数据签名中的应用等等。
高级加密标准AES〔Rijndael〕算法在各行业各部门中将获得广泛的应用,成为虚拟专用网、SONET〔同步光网络〕、远程访问效劳器〔RAS〕、高速ATM/Ethernet路由器、移动通信、卫星通信、电子金融业务等的加密算法,并逐渐取代DES在IPSec、SSL和ATM中的使用。
IEEE802.11i草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域网〔WLAN〕标准中的诸多平安问题。
综上所述,AES的研究从理论到实现,从实现到应用,己经深入到了信息平安技术的各个领域,继续研究与开发新的AES实现和应用具有很重要的理论和实践意义。
当前,从应用的角度上看,拓展数据加密技术应用领域,将现有的关于AES的研究成果与非信息平安领域的相关技术与应用相结合,从而得到新的应用将是一个很好的研究方向。
1.2LDPC低密度奇偶校验码
信道编码是以信息在信道上的正确传输为目标的编码,在研究中它着重强调的是如何防止少量的过失信号对信息内容的影响。
从信息论角度来看的信道编码指的是过失控制编码,包括各种形式的纠错、检错马,可以统称为纠错编码。
LDPC码即低密度奇偶校验码〔LowDensityParityCheckCode,LDPC〕,最早在20世纪60年代由麻省理工学院的RobertGallager在他的博士论文中提出的一种具有稀疏校验矩阵的线性分组纠错码,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间根本上被人们忽略,其间由Tanner在1981年推广了LDPC码并给出了LDPC码的图表示,即后来所称的Tanner图。
1993年Berrou等人发现了Turbo码,在此根底上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。
经过十几年来的研究和开展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,甚至已经开始有了商业化的应用成果,并进入了无线通信等相关领域的标准。
LDPC码是通过校验矩阵H定义的一类线性分组码〔linearblockcodes〕,为使译码可行,在码长较长时需要校验矩阵满足“稀疏性〞,即校验矩阵中1的密度比拟低,也就是要求校验矩阵中1的个数远小于0的个数,并且码长越长,密度就要越低。
LDPC码几乎适用于所有的信道,因此成为编码界近年来的研究热点。
它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。
LDPC码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵的行重、列重非常小,这也是LDPC码之所以称为低密度码的原因。
由于校验矩阵H的稀疏性以及构造时所使用的不同规那么,使得不同LDPC码的编码二分图〔Tanner图〕具有不同的闭合环路分布。
而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在类似置信传播〔BeliefPropagation〕算法的一类迭代译码算法下,表现出完全不同的译码性能。
当H的行重和列重保持不变或尽可能的保持均匀时,我们称这样的LDPC码为正那么LDPC码,反之如果列、行重变化差异较大时,称为非正那么的LDPC码。
研究结果说明正确设计的非正那么LDPC码的性能要优于正那么LDPC。
根据校验矩阵H中的元素是属于还是?
〔〕,我们还可以将LDPC码分为二元域或多元域的LDPC码。
研究说明多元域LDPC码的性能要比二元域的好。
Mackay,Luby提出的非正那么LDPC码将LDPC码的概念推广。
非正那么LDPC码的性能不仅优于正那么LDPC码,甚至还优于Turbo码的性能,是目前己知的最接近香农限的码。
Richardson和Urbank也为LDPC码的开展做出了巨大的奉献。
首先,他们提出了一种新的编码算法,在很大程度上减轻了随机构造的LDPC码在编码上的巨大运算量需求和存储量需求。
其次,他们创造了密度演进理论,能够有效的分析出一大类LDPC译码算法的译码门限。
最后,密度演进理论还可以用于指导非正那么LDPC码的设计,以获得尽可能优秀的性能。
对于低密度奇偶校验码LDPC码而言没有一个最优译码器,且对LDPC进行译码是一个NP-完全问题。
所有的低密度奇偶校验码LDPC的有效译码策略都是使用消息传递算法。
在实际中常用的实用的译码方法是和-积算法,又称作迭代概率译码或者是置信度译码,它是目前的最正确译码。
用和-积算法来译码可以分为初始化,水平步骤,垂直步骤,最后完成即停止,可以在一定次数的迭代之后,产生比特的准确后验概率。
另外二进制LDPC码还可以使用低复杂度的硬判决译码算法:
比特翻转译码算法。
但是性能好复杂度高的LDPC码一般使用软判决译码算法:
BP译码算法。
此迭代算法仅适用于具有低密度的奇偶校验矩阵H而不能用于一般的分组码,因为只有控制了H中“1〞的密度,才有可能控制总运算量。
如果精心设计,LDPC码可以到达优于Turbo码的性能。
Chung等人在2001年已经设计出一种极长〔码长〕,码率1/2的非正那么LDPC码,其性能与香农限仅差0.0045dB。
LDPC码具有逼近香农限的优异性能。
并且具有译码复杂度低〔与码长呈线性关系〕,结构灵活,最小距离正比于码长,可并行译码以及译码错误的可检测性等特点,具有巨大的应用潜力,从而成为了近年信道编码理论新的研究热点。
LDPC码具有以下几个优势:
〔1〕.LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo码等的译码算法,并且由于结构并行的特点,在硬件实现上比拟容易。
因此在大容量通信应用中,LDPC码具有优势。
〔2〕.LDPC码的码率可以任意构造,有更大的灵活性。
〔3〕.LDPC码具有低的错误平层,可以应用于有线通信、深空通信以及磁盘存储工业等对误码率要求很苛刻的场合。
而LDPC码的劣势在于以下几点:
〔1〕.硬件资源需求比拟大。
全并行的译码结构对计算单元和存储单元的需求都很大。
〔2〕.编码比拟复杂,更好的编码算法还有待研究。
同时,由于需要在码长比拟长的情况才能充分表达性能上的优势,所以编码时延也比拟大。
〔3〕.相对而言出现比拟晚,工业界支持还不够。
LDPC码具有巨大的应用潜力,目前已广泛应用于深空通信、光纤通信、卫星数字视频、音频播送、数字水印、磁/光/全息存储、移动和固定无线通信、电缆调制/解调器和数字用户线〔DSL〕等领域。
LDPC码已成为第四代通信系统〔4G〕强有力的竞争者,而基于LDPC码的编码方案已经被下一代卫星数字视频播送标准DVB-S2采纳。
LDPC码由于更接近香农限的误码率性能,完全并行的迭代译码算法使其比Turbo码在局部场合的应用前景更为广阔。
在许多需要高可靠性的通信系统中,LDPC码成了Turbo码的有力竞争者。
LDPC码目前已经被一些通信和播送标准所采纳,开展势头改正了Turbo码。
UWB〔超宽带〕信号的特点是低信噪比、抗多径能力强、高数据速率和信号的频谱宽、功率低,因此其信道编码应该具有较强的纠错能力和较低的编译码复杂度。
LDPC码同时具有以上两个方面的特性。
将LDPC码应用于CDMA〔码分多址〕系统将大大提高通信系统容量。
由相关仿真结果可见,使用LDPC码的CDMA系统的容量是使用正交卷积码的CDMA系统容量的2倍,是未使用纠错码的CDMA系统容量的5倍。
随着移动通信用户的日益增多,LDPC码将在未来的移动通信的扩容中发挥重要作用。
把LDPC码用在DSL〔数字用户线〕中,由相关仿真结果可见,LDPC码获得编码增益与Turbo码相当,但是其运算量大大低于Turbo码,且没有Turbo码中出现的过失平底现象。
模拟结果还显示,在0.5ms10ms延时条件限制下,其获得的编码增益远高于G.922.1建议中使用的TCM所获得的编码增益。
Flarion所开发的集成了V-LDPC的flash-OFDM〔正交频分复用〕移动无线芯片组已用于基于IP的移动宽带网,以增大传输距离和在无线信道中的坚韧性,而且硬件实现较简单。
flash-OFDM用于移动设备上,其最大数据速率可达。
此外,LDPC码在有记忆衰落信道、压缩图像传输和磁记录信道等方面也有重要应用。
M.Chiain等对LDPC码用于有记忆衰落信道时的性能进行了评估。
B.Myher提出一种速率自适应LDPC编码调制的方案用于慢变化平坦衰落信道,经推广还可用于FEC-ARQ系统。
VOCALTechnologies.Ltd提出了一种用于WLAN的LDPC/Turbo不对称解决方案,即下行链路采用LDPC码,上行链路采用Turbo码。
研究说明采用该方案后用于IEEE802.11a/b/g?
WLAN移动终端的电池寿命可延长至原来的4倍。
工业界也己经有LDPC编译码芯片问世。
其中,处于领先地位的Flarion公司推出的基于ASIC的Vector-LDPC解决方案使用了约260万门,最高可以支持50000的码长,0.9的码率,最大迭代次数为10,译码器可以到达10Gbps的吞吐量,其性能己经非常接近香农限,可以满足目前大多数通信业务的需求。
AHA公司、DigitalFountain公司也都推出了自己的编译码解决方案。
LDPC码接近香农限的性能是在码长非常大,迭代次数很多,低信噪比条件下得出的。
而在码长相对短〔利于编码〕,码率较高〔〕情况下的LDPC码还在研究。
LDPC码如何用于MIMO系统,OFDM系统也在进一步的研究中。
综上所述,LDPC的研究从理论到实现,从实现到应用,己经深入到了信道纠错编码的相关各领域,继续研究与开发新的LDPC实现和应用具有很重要的理论和实践意义。
基于LDPC的应用将会越来越多,对其的研究也将会越来越深入。
1.3开发工具与环境
美国AT&
T贝尔实验室的BjarneStroustrup博士在20世纪80年代初期创造并实现了C++,1998年国际标准组织〔ISO〕公布了C++程序设计语言的国际标准ISO/IEC1488-1998。
C++是具有国际标准的编程语言,通常称作ANSI/ISOC++。
C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
C++是一种使用非常广泛的计算机编程语言,是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
C++被设计成给程序设计者更多的选择的语言。
C++设计成尽可能与C兼容,借此提供一个从C到C++的平滑过渡。
C++防止平台限定或没有普遍用途的特性。
C++不使用会带来额外开销的特性。
C++被设计成无需复杂的程序设计环境。
相比与其他的开发工具,使用VC++的向导〔Wizard〕可以生成大量的代码,而不必人工地大量编写代码。
从编写程序的难易程度和程序的性能综合考虑,C++是最正确的选择。
C++性能良好,因为它被编译后生成机器代码。
对于VB和Java等语言,代码在运行时由对应的解释程序解释,而且每次运行程序时都要将代码转换为可直接由机器执行的机器码,这样做效率偏低,不仅仅是已编译过的C++程序运行得较快,而且微软C++编译器已存在多年,这一事实意味着微软的编译器程序员已经把许多优点和经验集中到编译器上,以至于它能产生非常高效的机器码。
因为C++是编译语言,而且非常自然,比其他语言更接近机器代码,所以由C++编译器产生的代码比其他的编译代码效率更高。
Matlab是当今最优秀的科技应用软件之一,具有强大的科学计算能力,可视化功能,开放式可扩展环境,许多科学领域中Matlab成为计算机辅助分析和设计,算法研究及应用开发的根本工具和首选平台。
同时,Matlab具有其他高级语言难以比拟的一些优点:
编写简单,效率高,易学易懂。
Matlab在信号处理,通信,自动控制及科学计算等领域中被广泛应用。
Matlab的内核采用C语言编写,并且增强了数据的可视化功能,现在,Matlab不断提供功能更加强大的软件包,并配以翔实丰富的帮助系统,越来越多地得到各个专业应用领域的认可和青睐。
现今,Matlab已经开展为综合高性能的数值计算软件。
第二章AES加密算法的理论与实现
1.1AES加密算法概述:
1.1.1?
Rijndael算法概述:
Rijndael算法是一个分组长度和密钥长度都可变的分组迭代加密算法,分组长度和密钥长度分别可以为128bits,192bits和256bits。
在加密过程中,每个数据分组都要进行屡次变换操作,每次操作后的中间结果称为状态〔State〕,它可以用一个4行列的矩阵来表示状态,矩阵中的每个元素为一个字节〔的值由分组的长度决定,=分组长度/32〕。
将数据分组中的每个字节按列的顺序置入,就构成了一个状态矩阵,其初值是一个相应大小的按规定顺序装入的明文区块。
Rijndael算法加密完成后,把最终状态矩阵中的每四个字节元素再按列的顺序取出,依此方法操作就可以得到密文。
密钥也可类似地表示为4行列的矩阵(的值由分组的长度决定,=分组长度/32)。
Rijndael算法进行轮变换的轮数N,那么由和的值共同决定。
假设分组长度和密钥长度均为128bits,那么加密时要做10次轮变换。
以下的表1给出了与和的关系。
=4
=6
=8
10
12
14
表1迭代轮数Nr为Nb和Nk的函数
在Rijndael算法的轮变换中,S-盒用于对状态矩阵进行非线性混合,以起到混淆的作用。
这个非线性混合的过程就是一个可逆的字节替换运算(SubstituteByte),利用一张字节替换表,分别对状态矩阵中的每个字节进行查表替换,这张字节替换表就称为S-盒。
S-盒用于加密过程,在解密过程中那么需要逆S-盒。
S-盒是由在域上乘法求逆运算和在域上的一个仿射运算对字节运算后得到的。
其中,乘法取逆运算为:
其中,当时,其逆元素也为0。
Rijndael算法使用了基于有限域的既约多项式。
将从00到FF的十六进制数经过上述运算就可以得到一个1616的字节替换表矩阵,也就是用于加密的S-盒。
对于用于解密的逆S-盒,需要通过在域上的逆仿射运算生成。
经过简化后,只需对S-盒进行循环移位和异或运算就可以实现该逆仿射变换,生成逆S-盒。
S-盒是必须是可逆的,S-盒不是自逆的。
利用非线性变换可以提高算法对差分攻击和线性攻击的抵抗强度。
在进行轮变换前,一般要进行密钥扩展,来产生轮密钥(RoundKey)。
如不算初始密钥,在这一过程中需扩展出个轮密钥,用于每轮变换的最后的轮密钥加运算(AddRoundKey),即把状态矩阵和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学术论文 毕业论文 加密 密码学 AES 加密算法