- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AES算法加密解密原理及其编程实现
AES算法加密解密原理及其编程实现
张敏瑞1 苏初旭1,2 李寒2
(1. 西安科技大学通信与信息工程学院 陕西 西安 710054; 2. 陕西威蓝工业自动化有限公司 陕西 西安 710072)
摘要:AES(Advanced Encryption Standard)是美国高级加密标准算法,将在未来几十年里代替DES(Data Encryption Standard)在各个领域中的应用。本文在研究分析AES加密解密算法原理的基础上,着重介绍了加密解密整个过程。最后说明了AES算法的部分核心代码,并利用VC++集成开发环境完整地实现AES加密和解密。
关键词:AES;DES;加密;VC++
中图分类号:TP309 文献标识码:A
the encryption and decryption of AES algorithm and it’s implementation
ZHANG Minrui1 SU Chuxu1,2 Li Han2
(1. college of communication and information engineering, xi’an university of science and technology, xi’an shaanxi, 710054; 2. Shaanxi Westland Industial Automation Limited Company, xi’an shaanxi,710072)
Abstract: AES is advanced encryption standard algorithm in the United States, it will substitute for DES in various fields in the coming decades. Based on the study of principle of AES, the whole encryption and decryption process is introduced in detail. Finally illustrated part of the core code of AES algorithm, and realized AES encryption and decryption in VC + + integrated development environment.
Key words: AES;DES; encryption;VC++
1 引言
随着密码分析水平、芯片处理能力和计算技术的不断进步,以前广泛使用的DES数据加密标准算法由于密钥长度较小(56位),已经难以适应新的安全需要,其实现速度、代码大小和跨平台性均难以继续满足新的应用要求。在这种形势下,迫切需要设计一种强有力的算法作为新的一代分组加密标准,因此1997年美国国家标准技术研究院(NIST,National Institute of Standards and Technology)公开征集新的数据加密标准,即AES。该算法作为新一代的数据加密标准汇聚了安全性、效率、密钥灵活性、多样性、简单性和对称性等优点[1]。
2 AES算法加密解密原理
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥长度,并且用128位分组长度加密和解密数据[2]。该算法输入分组、输出分组、状态长度均为128比特。
对于AES算法的运算是在一个称为状态的二维字节数组上进行。一个状态由四行组成,每一行包括Nb个字节,Nb等于分组长度除以32,AES分组长度为128位,因此,Nb=4,该值反应了状态中32-bit字的个数(列数);密钥长度128、192和256位可分别表示为Nk=4、6或8,反应了密钥中32-bit字的个数(列数)。而AES算法的轮数Nr仅依赖于密钥长度Nk,轮数和密钥长度的关系可以表示为:Nr=6+Nk。密钥长度—分组长度—轮数的关系如表1所示。
表1 Key-Block-Round关系
密钥长度
(Nk words) 分组长度
(Nb words) 轮数
(Nr) 4 4 10 6 4 12 8 4 14 对于加密和解密变换,AES算法使用的轮函数由4个不同的以字节为基本单位的变换复合而成,该过程由四个不同的阶段组成[3]:
(1)S盒变换,用一个S盒完成分组中的按字节代替;(2)行移位变换,一个简单的置换;(3)列混淆变换,一个利用在域GF(28) 上的算术性的代替;(4)轮密钥加变换,一个利用当前分组和扩展密钥的一个部分进行按位异或。
AES对数据的加密过程是通过把输入的明文和密钥由轮函数经Nr轮迭代来实现的,结尾
文档评论(0)