基于AES的软件加密解密的设计与实现
AES算法加密与解密的设计与实现

成都信息工程学院课程设计报告AES算法加密与解密的设计与实现课程名称:密码算法程序设计学生姓名:***学生学号:**********专业班级:信安101任课教师:***2012年6月3日目录1. 背景 (1)2 信息安全技术 (2)2.1 信息加密技术概述 (2)2.2 对称密码技术体制概述 (2)2.3 非对称密码技术体制概述 (3)2.4 消息摘要概述 (3)3 高级加密标准 (4)3.1概念 (4)3.2 AES加密 (4)4实现加密算法5.测试 (6)5.1 AES类控制台各功能模块测试 (10)5.1.1 密钥扩展(KeyExpansion) (10)5.1.2轮密钥加(AddRoundKey) (10)5.1.3 字节代替(SubKytes) (10)HYPERLINK \l _Toc27866 5.1.4 行移位(ShiftRows) (10)5.1.5 列混合(MixColumns) (10)5.1.6 轮结构加密验证 (10)5.2消息加解密功能测试 (11)5.2.1 与FIPS-197(AES)比对验证 (11)5.2.2 ASCII加密验证 (13)5.5.3 加密模式验证 (14)结论 (17)参考文献 (18)1. 背景近年来,随着Internet的迅猛发展,计算机网络技术正在日益广泛的应用到商业,金融,国防等各个领域,Internet在人民的日程生活中发挥着越来越重要的作用。
World Wide Web(WWW)系统已经从最初的提供信息查询浏览一类的静态服务发展成可提供动态交互的综合系统,Internet提供的互联性和开放性使信息的交换和共享成为现实,为社会带来了巨大的收益。
然而,Internet是一个给予TCP/IP协议的开放系统,它建立的初衷是为了使用者提供一种快捷的通信和资源的共享方式,并没有考虑到数据传输的安全性,机密性和通信实体的身份鉴别等安全因素,因此在Internet的日益广泛应用的同时,通信安全问题也日益突出。
多功能AES加密与解密软件的设计与实现

中图分类号
m , y m
n G
U
~
h
D e i n n nd I p e e a i n o he M uliu to s g i g a m l m nt to ft tf nc i n Enc y to r p in
a e r p i n So t r nd D c y to f wa e
U n
V
G U
y n
g
Ab ta t Th s p p r r s n same h d f ru i g AES ag rt m o e c y tn n e i h r g a srn ra f e s r c i a e e e t t o o sn p lo i h t n r p i g a d d cp e i t i g o i .M e n n l a wh l ,t e c n e t n o e c y to a a e s p o o e . I h r c s fe c y t n,t e t c n l g e fp e c mp t t n i e h o c p i f” n r p in p k g ”i r p s d n t e p o e so n r p i o o h e h o o iso r - o u a i o o h o n — a l ,cp e s a ewh mo e n su e o d v l p t ee f c i e e so h o ft e f u d t b e i h rme s g v me ti s d t e eo h fe t n s ft ec mp t t n a d r s l et e p o — v u a i n e o v h r b o lm h tt e ln t f h a ab e ig p o e s d i n tt e mu tp e t a h to a a bo k g o p e t a h e g h o e d t e n n r c s e s o h l l h n t a fd t — l c r u .M u t Th e d n ,M u t t i li r a i g — li
AES算法加密与解密的设计与实现

AES算法加密与解密的设计与实现AES(Advanced Encryption Standard)算法是一种对称加密算法,用于保护敏感数据的机密性。
它在现代密码学中得到广泛应用,包括数据通信、电子商务、云存储等领域。
AES算法采用分组密码方式进行加密和解密操作,每个分组的大小为128位。
1.密钥长度选择:AES算法支持三种不同密钥长度,即128位、192位和256位。
在实际应用中,可以根据安全要求选择合适的密钥长度。
较长的密钥长度提供更高的安全性,但也增加了算法的复杂性和计算成本。
2.分组密码结构:AES算法使用分组密码的方式进行加密和解密操作。
它采用了倒序灵活的区块结构,包括初始轮、重复轮和最终轮。
初始轮包括密钥加扩展和初始轮变换两个步骤;重复轮包括轮变换和混合列变换两个步骤;最终轮只包括最终轮变换。
3.轮变换操作:轮变换是AES算法中最重要的操作之一、它包括字节替换、行移位、列混淆和轮密钥加四个步骤。
字节替换使用S盒进行,行移位将每一行进行循环左移,列混淆使用由数学运算构成的矩阵进行线性变换。
轮密钥加将轮密钥与状态矩阵进行异或操作。
4.密钥扩展:AES算法中的密钥扩展操作是为了生成扩展密钥以供每一轮的轮密钥加使用。
密钥扩展包括密钥调度、密钥块扩展和轮密钥生成三个步骤。
密钥调度使用密钥排列算法生成每个轮的轮密钥,密钥块扩展使用字节替换和循环左移操作生成直接生成的扩展密钥。
5.加密与解密过程:AES算法的加密和解密过程是类似的,区别仅在于密钥使用的顺序。
加密过程包括初始轮、重复轮和最终轮三个步骤,解密过程包括解密的初始轮、重复轮和解密的最终轮三个步骤。
解密过程使用逆向的操作进行。
6. 硬件与软件实现:AES算法可以在硬件和软件两个层面上进行实现。
硬件实现可以通过专用的加密芯片来实现,提供了较高的加密性能。
软件实现可以通过编程语言来实现,提供了较高的灵活性和可移植性。
常见的软件实现方式包括C/C++、Java、Python等。
基于AES的软件加密解密的设计与实现

基于AES的软件加密解密的设计与实现1.引言随着互联网的飞速发展,信息的传输和存储变得越来越重要。
为了保护敏感信息的安全性,数据加密成为一种必要手段。
AES(Advanced Encryption Standard)是一种对称加密算法,被广泛应用于软件加密解密中。
本文将介绍基于AES的软件加密解密的设计与实现。
2.AES算法简介AES算法是一种对称加密算法,它采用固定长度的密钥对数据进行加密和解密。
AES算法支持128位、192位和256位密钥长度,其中128位密钥长度被广泛应用。
AES算法根据密钥长度将明文分为多个块进行处理,每个块的大小为128位。
加密过程中,密钥将经过一系列变换加密明文块,解密过程则是将密文块进行逆变换得到明文块。
加密部分的输入是明文和密钥,输出是密文。
步骤如下:1)根据密钥长度生成轮密钥,轮密钥由一系列字节组成,每个字节都是一个无符号8位整数。
2)将明文划分为128位的块,对每个块进行以下操作:a)使用轮密钥进行初始加密。
b)进行加密的轮数取决于密钥长度,一般为10轮(128位密钥)。
c)将加密后的明文块连接起来得到密文。
例子伪代码:```def encrypt(plaintext, key):round_keys = key_expansion(key) # 生成轮密钥ciphertext = ""blocks = divide_into_blocks(plaintext, 128) # 分割明文为块for block in blocks:state = add_round_key(block, round_keys[0]) # 初始加密for i in range(1, 10): # 加密轮数state = sub_bytes(state)state = shift_rows(state)state = mix_columns(state)state = add_round_key(state, round_keys[i])state = sub_bytes(state)state = shift_rows(state)state = add_round_key(state, round_keys[10])ciphertext += state_to_string(state) # 连接密文块return ciphertext```解密部分的输入是密文和密钥,输出是明文。
基于AES加解密系统的设计与实现

基于AES加解密系统的设计与实现作者:曾炜王科怀来源:《软件导刊》2014年第06期作者简介作者简介:曾炜(1987-),男,中国人民解放军国防信息学院助教,研究方向为网络安全;王科怀(1987-),男,硕士,中国人民解放军国防信息学院助教,研究方向为软件可靠性、容错计算、移动计算、服务可用性评测。
0引言在信息时代,数据有着异常重要的地位。
因此,数据在存储、传送中必须保证安全,研究和设计相关的数据加密解密系统因而显得十分必要。
本文利用AES(Advanced Encryption Standard)对称加密标准,设计和实现了一套数据加密解密系统,为数据安全提供保障。
1高级加密标准AES1.1Rijndael算法简介NIST将Rijndael算法作为高级加密标准[1]。
Rijndael的运算易于抵抗强力和时间选择攻击[2],此外,无需显著降低Rijndael的性能就可提供对抗这些攻击的防护。
Rijndael算法是一个可变数据块长和可变密钥长的分组迭代加密算法,数据块长和密钥长可分别为128、192或256比特,但为了满足AES的要求,分组长度为128比特,密钥长度为128、192或256比特[3]。
数据块要经过多次数据转换操作,每一次转换操作产生一个中间结果,这个中间结果被称为状态[1]。
状态可表示为二维字节数组即状态矩阵,它有4行、Nb列,且Nb等于数据块长除以32,在标准AES里Nb=4。
密钥也可类似地表示为二维字节数组,它有4行、Nk列,且Nk等于密钥块长除以32。
算法转换的轮数Nr由Nb和Nk共同决定[1],具体数值如表1所示。
表1在不同Nb和Nk下轮的数值NrNrNb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=8141414Rijndael算法采用替代/置换(SP)网络结构[4],每一轮由3层组成:①非线性层:进行SubByte变换(即S盒替换),起混淆作用;②线性混合层:进行ShiftRow行变换运算和MixColumn列变换运算,以确保多轮之上的高度扩散;③密钥加层:子密钥简单的异或到中间状态上。
AES加密解密算法的设计与实现

AES加密解密算法的设计与实现咨询中心网站建设方案书目录1.引言............................................................. 错误!未指定书签。
2.AES加密解密原理................................................. 错误!未指定书签。
3.AES加密解密算法的组成部分....................................... 错误!未指定书签。
3.1密钥部分..................................... 错误!未指定书签。
3.1.1AES的S盒.............................. 错误!未指定书签。
3.1.2AES的逆S盒............................ 错误!未指定书签。
3.1.3轮常量................................. 错误!未指定书签。
3.1.4密钥移位函数........................... 错误!未指定书签。
3.1.5密钥字代换函数......................... 错误!未指定书签。
3.1.6密钥扩展算法........................... 错误!未指定书签。
3.2加密的部分................................... 错误!未指定书签。
3.2.1轮密钥加变换AddRoundKey(与密钥扩展的异或运算)错误!未指定书签。
3.2.2字节代换SubBytes(即S盒变换)......... 错误!未指定书签。
3.2.3行移位变换ShiftRows .................... 错误!未指定书签。
3.2.4列混淆变换MixColumns ................... 错误!未指定书签。
AES加密解密算法的设计与实现
AES加密解密算法的设计与实现AES(Advanced Encryption Standard)是一种对称加密算法,被广泛应用于数据安全领域。
其设计与实现的详细过程如下。
1.算法设计:- 初始置换(Initial Permutation,IP):对输入的明文进行初始置换,以增加算法的强度。
- 轮函数(Round Function):使用子密钥对数据进行处理,包括字节代换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和密钥加法(AddRoundKey)。
- 逆初始置换(Inverse Initial Permutation,IP-1):对加密后的数据进行逆初始置换,以得到最终的密文。
2.密钥扩展:- 使用密钥生成轮密钥(Round Key):根据输入的密钥生成每一轮需要使用的子密钥。
具体过程包括密钥扩展(Key Expansion)、轮密钥生成(Round Key Generation)和子密钥存储(Subkey Storage)。
3.加密过程:-分组:将明文按照固定大小(通常为128位)进行分组。
-初始化:进行初始置换(IP)处理,以增强加密算法的强度。
- 轮函数:重复执行轮函数操作,包括字节代换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和密钥加法(AddRoundKey)。
-逆初始置换:对加密后的数据进行逆初始置换(IP-1)处理。
4.解密过程:-分组:将密文按照固定大小进行分组。
-初始化:进行初始置换(IP)处理,以准备进行解密操作。
- 逆轮函数:重复执行逆轮函数操作,包括逆行移位(Inverse ShiftRows)、逆字节代换(Inverse SubBytes)、逆列混淆(Inverse MixColumns)和密钥加法(AddRoundKey)。
-逆初始置换:对解密后的数据进行逆初始置换(IP-1)处理。
5.实现细节:- 字节代换(SubBytes):使用固定的S盒进行字节代换,即将每个明文字节替换为S盒中对应位置的值。
AES算法设计与实现毕业设计
AES算法的实现
编程语言的选择
C语言:高效、简洁,适合底层开发 Python:易学易用,适合快速原型开发 Java:面向对象,适合大型项目开发 JavaScript:前端开发,适合Web应用开发
加密过程的实现
密钥生成:使用密钥生成器生成密 钥
解密过程:将密文与密钥进行异或 运算,得到明文
添加标题
AES算法设计与实现毕 业设计
汇报人:
目录
添加目录标题
01
AES算法的实现
04
AES算法概述
毕业设计过程与成果
02
05
AES算法的设计
总结与展望
03
06
添加章节标题
AES算法概述
加密算法简介
AES算法:一种高级加密标准,用于保护数据安全 特点:高效、安全、易于实现 应用领域:广泛应用于网络通信、数据存储等领域 加密过程:包括密钥生成、数据加密、数据解密等步骤
对AES算法的改进建议
提高加密速度:优化算法实现,减少计算量 增强安全性:引入新的加密技术,提高抗攻击能力 提高灵活性:支持多种加密模式,满足不同应用场景需求 优化内存管理:减少收获与不足
收获:掌握了AES算法的原理和实 现方法
不足:在实现过程中遇到了一些技 术难题,需要进一步学习和研究
密钥更新:定期更新密钥, 提高安全性
安全性分析
加密算法:采用对称加密算法,安 全性高
加密模式:支持多种加密模式,如 CBC、CFB、OFB等,提高安全性
添加标题
添加标题
添加标题
添加标题
密钥长度:支持128、192、256 位密钥长度,满足不同安全需求
抗攻击能力:具有较强的抗攻击能 力,如抗差分攻击、抗线性攻击等
基于AES的加密系统的设计与实现
2016年第21期信息与电脑China Computer&Communication软件开发与应用基于AES的加密系统的设计与实现曹同庆(天津电子信息职业技术学院,天津 300350)摘 要:如今,随着计算机科学和通信技术的进步与发展,相关研究给人们带来了诸多便利,同时也带来了信息泄露的隐患,信息安全成为了相关研究人员的科研任务之一。
AES是美国国家标准与技术研究所用于加密电子信息的一种标准,被广泛应用于诸如金融、电信和政府数据等领域的加密过程之中。
笔者介绍了AES算法的原理,并对其软件系统进行了设计与实现。
关键词:信息安全;ASE算法;加密系统中图分类号:TP309.7 文献标识码:A 文章编号:1003-9767(2016)21-141-021 引言对称加密算法指的是在加密和解密过程中使用同一套密钥的加密方案。
在大多数对称算法之中,加密密钥与解密密钥是一样的,因此,也把这样的加密算法称作私钥加密算法和单密钥算法。
对称加密算法需要发端与收端在安全通信以前,确立一个通信过程中使用的密钥,而且整个通信系统安全性的关键就在于密钥,如果密钥被窃取,那么窃取到密钥的人便能够解密收、发两端传递的信息,因此,密钥保密对于信息安全而言极为重要。
对称加密算法的主要特征包括:加密步骤公开、加密计算量较小、加密的速率和效率较高。
被广泛使用过的对称加密算法包括DES和IDEA等,目前,美国国家标准局所选定的AES算法是最为主流的算法之一,应用也非常广[1]。
2 AES加密算法2.1 AES算法简介AES算法,即密码学中被人熟知的高级加密标准(Advanced Encryption Standard),是美国联邦政府使用的一套加密标准,这套算法是被用来顶替原先的DES标准的,目前被广泛使用,且有大量人员在研究。
AES算法主要有如下特征:是一种分组的算法,每一帧信息数据都被分为128bit的块,密钥可以是128、192或256bit;可以在软、硬件平台中高速高效地实施加解密过程,利于实现,且对于存储空间的要求较低,实现成本低;最为重要的一点是加密算法的安全性能高[2]。
基于AES的加密系统的设计与实现
基于AES的加密系统的设计与实现一、引言AES(Advanced Encryption Standard,高级加密标准)是一种对称密钥加密算法,广泛应用于信息安全领域。
AES算法使用对称密钥进行加密和解密,其优点包括高速度、安全性高、适用性广泛等。
本文将基于AES算法设计并实现一个加密系统,包括AES算法的原理介绍、系统设计和实现细节等。
二、AES算法的原理介绍1.分组密码:AES算法将明文分成一组一组的数据块,每个数据块的长度为128位(16个字节)。
对于超出128位的数据,需要进行填充处理。
2.密钥扩展:AES算法的加密过程中,需要将密钥扩展为多个轮密钥,用于加密每一轮的数据块。
3.轮函数:AES算法中的主要加密操作是轮函数,它包括四个步骤:字节替代、行移位、列混合和轮密钥加。
这四个步骤将对数据块进行一系列复杂的变换。
4.轮数:AES算法中进行多轮加密,轮数由密钥长度决定,主流的AES算法有AES-128(10轮)、AES-192(12轮)和AES-256(14轮)。
三、系统设计1.用户界面设计:设计一个用户友好的界面,包括选择加密/解密功能、输入明文/密文、选择密钥等功能。
2.加密模块设计:将用户输入的明文/密文按照128位进行分组,对每一组数据块进行AES加密/解密操作。
3.密钥管理模块设计:实现AES算法中的密钥扩展功能,根据用户选择的密钥长度生成相应的轮密钥。
4.文件处理模块设计:实现对文件的读取和保存功能,包括读取明文文件、保存密文文件和读取密文文件等。
四、系统实现细节1. 编程语言选择:可以选择C/C++、Python等编程语言进行实现。
C/C++语言的优点是执行效率高,Python语言的优点是编码简洁。
2. AES算法的实现:可以使用现有的AES算法库,如OpenSSL、Crypto++等。
这些库已经实现了AES算法的细节,可以直接调用进行加密/解密操作。
3. 用户界面的实现:使用GUI框架实现用户界面,如Java的Swing、Python的tkinter等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于AES的软件加密解密的设计与实现作者:唐高阳孙世坤来源:《科技视界》2015年第18期【摘要】随着计算机的普及以及重视知识产权保护,使得软件加密技术蓬勃兴起,AES 算法正取代DES算法成为使用广泛的新标准。
介绍了如何运用AES算法对文档进行加密和解密,并给出了一个基于Visual C++ 2010开发平台和AES算法的实例。
【关键词】软件加密;AES算法;S盒1 AES算法基本原理AES(Advanced Encryption Standard,高级加密标准)是一个对称分组算法,用来取代DES算法,从而成为使用广泛的新标准。
选用Rijndael算法来作为AES,Rijndael是比利时的两位密码学家Daemen和Rijmen共同设计的。
Rijndael算法是具有分组长度和密钥长度均可变的分组算法。
密钥长度和分组长度可以独立地指定为128位、192位或是256位。
Feistel结构是数据分组中的一半被用来修改数据分组中另外一半,然后交换这两部分,AES算法不是Feistel结构的算法。
AES定义了一个S盒,它是由16×16个字节组成的矩阵,包含了8位值所能表达的256种可能的变换。
1.1 字节代换AES中输入分组是用以字节为单位的正方形矩阵来描述的,该分组被复制到State数组,这个数组在加密或解密的每个阶段都会被改变,运算完最后的轮密钥加变换后,State被复制到输出矩阵中。
字节代换是一个简单的查表操作,用State数组中的每个字节的高4位作为行值,低4位作为列值,然后取S盒中对应行列的元素作为输出,最后把State数组的该字节用输出的这个元素替换。
例如,十六进制值19,所对应的S盒的行值是1,列值是9,S盒中在此位置的值是D4,然后用D4替换19。
1.2 行位移行位移是这样来实现的,State的第一行保持不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
1.3 列混淆列混淆是对每列独立地进行操作。
列混淆变换是这样进行的,把经行位移变换操作后的State数组的一列取出来,然后与一个4×4的矩阵进行与操作,把得到的结果覆盖取出来的那一列,依次类推,处理完4列以后就完成了列混淆变换。
1.4 轮密钥加轮密钥加变换就是把经过列混淆得到的State与密钥进行异或运算,也就是State的第1列与密钥的第1列进行异或运算,运算结果替换State的第1列,后面的几列以此方法类推。
2 实现过程2.1 定义类CASE作为AES算法的实现类typedef enum ENUM_KeySize_ //密钥长度类型{BIT128 = 0,BIT192,BIT256}ENUM_KEYSIZE;typedef enum GFCALCMODE_ //列混合变换模式{MODE01 = 0,MODE02,MODE03,MODE09,MODE0b,MODE0d,MODE0e}GFCALCMODE;typedef struct BYTE4_{BYTE w[4];}BYTE4;class CAES //AES加密算法类{private:int Nk,Nr; //Nk-密钥在调度表中所占行数;Nr-轮密钥加的运算次数减1 byte (* State)[4],*w[4],*key[4]; //状态、密钥表、密钥void SubBytes(); //字节转换void ShiftRows(); //行位移变换void MixColumns(); //列混合运算void AddRoundKey(int round); //轮密钥加void KeyExpansion(); //生成调度表void InvShiftRows(); //反向行位移变换void InvSubBytes(); //反向字节转换void InvMixColumns(); //反向列混合运算BYTE GfCalc(BYTE b,GFCALCMODE Mode); //域运算方法void Encrypt(BYTE * input,BYTE * output); //加密16字节数据void Decrypt(BYTE * input,BYTE * output); //解密16字节数据void EncryptBuffer(BYTE * input,int length); //加密指定长度数据void DecryptBuffer(BYTE * input,int length); //解密指定长度数据public:CAES();virtual ~CAES();bool SetKeys(ENUM_KEYSIZE KeySize,CString sKey); //设置密钥CString &EncryptString(CString &input); //加密字符串CString &DecryptString(CString &input); //解密字符串void EncryptFile(CString SourceFile,CString TagerFile); //加密文件void DecryptFile(CString SourceFile,CString TagerFile); //解密文件};2.2 在CAES类中实现SetKeys方法,该方法用于指定密钥及轮密钥加运算的次数 bool CAES::SetKeys(ENUM_KEYSIZE KeySize,CString sKey){int i,j;switch( KeySize ) //Nk为轮密钥加的次数减1{case BIT128:this->Nk = 4; //128÷?8÷?4this->Nr = 10; //Nr = Nk + 6;break;case BIT192:this->Nk = 6; //192÷8÷4this->Nr = 12; //Nr = Nk + 6; break;case BIT256:default:this->Nk = 8; //256÷8÷4this->Nr = 14; //Nr = Nk + 6; break;}for(i=0;i{if(key[i]!=NULL){delete key[i];key[i]=NULL;}if(w[i]!=NULL){delete w[i];w[i]=NULL;}}for(i=0;i{key[i]=new byte[Nk];if(key[i]==NULL){return false;}}for(i=0;i{w[i]=new byte[4*(Nr+1)];if(w[i]==NULL){return false;}}for(i=0;ifor(j=0;jkey[i][j]=sKey.GetAt(Nk*i+j);KeyExpansion(); //生成密钥调度表return true;}2.3 在CASE类中实现SubBytes方法,该方法用于单字节代替变换操作void CAES::SubBytes() //字节代替变换{for(int i=0;ifor(int j=0;jState[i][j]=SBox[(State[i][j]>>4)&0x0F][State[i][j]&0x0F];}2.4 GfCalc方法用来计算单字节的乖加计算,并根据不同的计算模式进行不同的计算 BYTE CAES::GfCalc(BYTE b,GFCALCMODE Mode){switch(Mode){case MODE01:return b;break;case MODE02:if (b < 0x80)return (BYTE)(int)(belsereturn (BYTE)((int)(bbreak;case MODE03://(b*2)+b*1return (BYTE)((int)GfCalc(b,MODE02) ^ (int)b );break;case MODE09://(b*2*2*2)+b*1return (BYTE)((int)GfCalc(GfCalc(GfCalc(b,MODE02),MODE02),MODE02) ^(int)b );break;case MODE0b://(b*2*2*2)+(b*2)+b*1return (BYTE)((int)GfCalc(GfCalc(GfCalc(b,MODE02),MODE02),MODE02) ^(int)GfCalc(b,MODE02) ^(int)b );break;case MODE0d://(b*2*2*2)+(b*2*2)+b*1return (BYTE)((int)GfCalc(GfCalc(GfCalc(b,MODE02),MODE02),MODE02) ^(int)GfCalc(GfCalc(b,MODE02),MODE02) ^(int)(b));break;case MODE0e://(b*2*2*2)+(b*2*2)+b*2return (BYTE)((int)GfCalc(GfCalc(GfCalc(b,MODE02),MODE02),MODE02) ^(int)GfCalc(GfCalc(b,MODE02),MODE02) ^(int)GfCalc(b,MODE02));break;default:return b;}}3 运行结果图14 结束语在商业企业的计算机中往往存在大量的机密文件,这些机密文件对企业的发展将会产生不可估量的作用。
如果这些机密文件保管不善,将会使企业遭受巨大的损失。
AES是一个新的可以用于保护电子数据并被广泛使用的加密算法。
【参考文献】[1]史子荣.软件加密技术从入门到精通[M].北京:清华大学出版社,2007:69-74.[2]张翟.加密解密与网络安全技术[M].北京:冶金工业出版社,2002.[3]段钢.加密与解密[M].北京:冶金工业出版社,2003.[4]徐海风,曹小军.软件加密方法及技术[J].山西冶金,2007,1.[5]魏光村,孙忠林,徐燕妮.软件加密技术研究[J].福建电脑,2009,9.[6]Ivor Horton.Visual C++ 2010 入门经典[M].北京:清华大学出版社,2010. [责任编辑:汤静]。