AES加密算法的实现及应用

合集下载

AES算法原理与应用

AES算法原理与应用

AES算法原理与应用AES(Advanced Encryption Standard,高级加密标准)是一种对称密钥加密算法,被广泛应用于信息安全领域。

它既安全可靠,又高效快速,因此被用于加密和解密敏感信息,防止未经授权的访问。

1.字节替代(SubBytes): 通过将每个字节替换为一个预定义的S盒中的对应值,实现一个非线性代换。

这种代换是AES具有抵抗差分攻击和线性攻击的重要部分。

2.行移位(ShiftRows): 将每一行向左循环移动不同的偏移量,以实现行级移位操作。

这保证了通过变换的有限数量轮后,任何一个字节的位置没有发生改变。

3.列混淆(MixColumns): 这一步骤通过转换矩阵对每一列进行线性组合,以便增加密码的复杂性。

这个步骤是AES算法的关键部分之一4.轮密钥加(AddRoundKey): 将一个密钥块与数据块进行按位异或运算,以增加密码的混淆性。

1.加密通信:AES算法常用于加密通信中,确保通信过程中的数据传输是安全的,防止敏感信息被未经授权的人员访问。

2.数据库加密:数据库中存储的敏感信息可以通过AES算法进行加密,提高数据的安全性,防止黑客入侵和数据泄露。

3.文件加密:通过对文件进行AES加密,可以保护文件的安全性,防止未经授权的访问和篡改。

4.数字货币:很多数字货币使用AES算法进行加密,确保用户的数字资产安全。

5.移动设备安全:AES算法被广泛用于移动设备的安全性保护,包括手机、平板电脑等。

通过对存储在设备上的敏感数据进行加密,可以防止设备被盗取或丢失时,数据被未经授权的人访问。

总之,AES算法是一种广泛应用于信息安全领域的加密算法。

它的安全可靠性以及高效快速的特点,使得它在各种场景下得到广泛的应用。

同时,AES算法的强大防护能力也使得未经授权的人很难破解被加密的数据,提高了数据和信息的安全性。

aes算法的应用场景

aes算法的应用场景

aes算法的应用场景
AES(高级加密标准)是一种对称加密算法,它被广泛应用于信
息安全领域。

以下是一些主要的AES算法的应用场景:
1. 数据加密,AES算法可以用于加密敏感数据,例如个人身份
信息、银行账户信息、医疗记录等。

在数据存储或传输过程中,使
用AES加密可以确保数据的机密性,防止未经授权的访问者获取敏
感信息。

2. 网络通信,在网络通信中,AES算法可以用于加密数据传输,确保数据在传输过程中不被窃取或篡改。

例如,网上银行、电子商
务平台等需要确保用户数据的安全性,就会使用AES算法对通信数
据进行加密。

3. 软件加密,许多软件和应用程序会使用AES算法对存储在本
地或在网络上的数据进行加密,以保护用户隐私和保密性。

4. 加密文件系统,操作系统和存储设备可以使用AES算法来加
密文件系统,以保护存储在硬盘或其他媒体上的数据免受未经授权
的访问。

5. VPN(虚拟私人网络),在建立安全的远程访问连接时,AES 算法可以用于加密VPN通信,确保远程用户与公司网络之间的数据传输安全可靠。

6. 加密电子邮件,在电子邮件通信中,AES算法可以用于加密邮件内容和附件,以确保邮件内容不被未经授权的人查看。

总之,AES算法的应用场景非常广泛,涵盖了信息安全领域的许多方面,包括数据加密、网络通信、软件加密、文件系统加密、VPN等。

它是一种高效、安全的加密算法,被广泛应用于保护各种类型的敏感信息。

AES加密算法的实现及应用

AES加密算法的实现及应用

AES加密算法的实现及应用AES(Advanced Encryption Standard)是一种对称加密算法,旨在替代DES(Data Encryption Standard)以及3DES(Triple Data Encryption Standard)进行数据加密。

AES算法安全可靠,广泛应用于各种场景中,包括网络通信、存储安全和移动设备等领域。

AES算法的实现可以分为以下几个步骤:1.密钥扩展:根据密钥的长度,生成一系列的轮密钥。

AES算法支持128比特、192比特及256比特三种密钥长度。

2.轮密钥加:将密钥和输入数据按位进行异或运算。

3. 字节替代:通过S盒(Substitution box)对输入数据的每一个字节进行替换,S盒是一个16×16字节的固定查找表,根据输入字节的值查找替换的字节。

4.行移位:对输入数据的每一行进行循环移位操作,第一行不变,第二行循环左移一位,第三行循环左移两位,第四行循环左移三位。

5.列混淆:将输入数据的每一列进行混淆,用固定的矩阵乘法运算。

6.轮密钥加:将轮密钥和上一步得到的结果按位进行异或运算。

以上步骤将重复进行,除了最后一轮以外,每一轮都包含字节替代、行移位、列混淆和轮密钥加四个步骤。

AES算法的应用非常广泛1. 数据通信:AES算法可以用于保护数据的机密性,确保在数据传输过程中不被未经授权的人员所获取。

AES算法被广泛应用于网络通信中,例如TLS(Transport Layer Security)和IPsec(Internet Protocol Security)协议中。

2.文件加密:AES算法可以对文件进行加密,以保护文件的机密性。

例如,一些加密软件可以使用AES算法对敏感文件进行加密,在文件传输或存储过程中保护文件的安全性。

3.移动设备安全:由于移动设备的广泛使用,需求越来越高的数据安全性。

AES算法可以用于对移动设备中的敏感数据进行加密,以防止非法访问和数据泄露。

AES算法研究及应用毕业论文

AES算法研究及应用毕业论文

AES算法研究及应用毕业论文摘要.I Abstract II 第1章绪论11.1 11.2 11.3 11.4 1第2章 AES22.1 22.2 2第3章 AES33.1 33.2 3第4章 AES44.1 44.2 全面与平衡 (4)第5章 AES算法的应用价值 (5)5.1 连续报道 (5)5.2 系列报道 (5)5.3 整合报道 (5)第6章 AES算法的攻击研究 (6)6.1 分兵把守 (6)6.2 通力合作 (7)结语 (8)参考文献 (9)附录 (10)致谢 (11)AES加密算法研究摘要报道等报道方式,实的操作。

关键词:新闻整体真实;操作;连续报道;系列报道;整合报道Research of AES Encryption AlgorithmAbstractThe theory of essential truth is not only an important aspect of the Marxist theoryof truth in journalism, but also a majorsocialistic journalism. However, there arethis theory into practice. Even somecarrying this theory out. This thesistruth. The operation of this theory is anprinciple of the scientific view ofcomplete and balance, journalists canbasis of interaction and combination of individual efforts and group work.Key words: essential truth in journalism; operate; successive report;serial report;Integrated report第1章绪论1.1 课题研究背景及目的新闻传播活动要求新闻报道达到整体真实是新闻真实更高层次的要求[1-4]。

aes的原理及其应用

aes的原理及其应用

AES的原理及其应用一、引言AES(Advanced Encryption Standard)是一种对称密钥加密算法,是美国国家标准和技术研究院(NIST)在全球范围内广泛使用的加密标准。

本文将介绍AES的原理及其应用。

二、AES的原理AES采用分组密码的方式,将明文分为固定长度的块,然后对每个块进行加密。

其原理如下:1.密钥扩展:AES通过对密钥进行扩展,生成多个轮密钥,以增加加密的安全性。

2.轮数和轮函数:AES加密算法的轮数取决于密钥长度,每轮包括轮加密、字节替换、行位移和列混淆等步骤,以增加密文的复杂度和随机性。

3.字节替换:通过AES中的S盒(Substitution Box)对块中的每个字节进行替换,增加混淆度。

4.行位移和列混淆:AES对每个块进行行位移和列混淆操作,使得密文更加散乱,增加破解的难度。

5.轮密钥加:AES的每轮中,将轮密钥与块进行异或运算,以增加加密的随机性。

三、AES的应用AES广泛应用于各个领域,以下是一些主要的应用场景:1.数据加密:AES可用于对数据进行加密,保护数据的安全性。

在互联网、电子商务、移动应用等领域,AES被广泛应用于对敏感数据的加密,如用户密码、信用卡信息等。

2.文件加密:AES可用于对文件进行加密,保护文件的机密性。

在企业组织中,常用AES对文件进行加密,以防止未授权访问和数据泄露。

3.通信加密:AES可用于对通信数据进行加密,保护通信内容的机密性。

在网络通信和密码学协议中,AES被广泛应用于HTTPS、IPSec、SSL/TLS等加密算法中,保障通信过程的安全性。

4.硬件加密:AES可用于硬件设备中的加密运算,如智能卡、USB加密盘等。

硬件加密能够提供更高的安全性和更快的加密速度。

5.数据存储:AES可用于对数据存储介质进行加密,如硬盘、数据库等。

通过对数据进行加密,可以防止数据泄露和未授权访问。

四、AES的优势相比于其他加密算法,AES具有以下优势:1.安全性高:AES采用了高度复杂的算法和密钥扩展技术,提供了很高的安全性,能够抵抗多种破解手段。

AES加密解密算法的设计与实现

AES加密解密算法的设计与实现

AES加密解密算法的设计与实现AES(Advanced Encryption Standard)是一种对称密钥加密算法,目前被广泛应用于保护敏感信息的安全传输和存储中。

AES算法的设计与实现主要包括以下几个方面。

1.算法设计:AES算法的设计基于分组密码结构,将明文按照固定长度(128位)进行分组,并通过多轮迭代的方式对每个分组进行加密。

AES算法包括四个密钥长度选项:128位、192位和256位。

算法设计中的关键操作包括字节替换、行移位、列混淆和轮密钥加。

2.实现方案选择:实现AES加密解密算法可以采用硬件和软件两种方案。

硬件实现方案通常能够提供更高的加密速度,但成本较高。

软件实现方案则相对成本较低,但加密速度较慢。

实际应用中可根据需求选择合适的实现方案。

3.加密算法实现:AES加密算法的实现包括明文输入、密钥生成、轮密钥加、字节替换、行移位和列混淆等步骤。

在明文输入和密钥生成阶段,需要对输入数据进行预处理和密钥扩展。

在加密过程中,需进行多次轮迭代,每轮迭代都包括轮密钥加、字节替换、行移位和列混淆等操作。

最后一轮迭代不包括列混淆,而是进行轮密钥加,输出密文。

4.解密算法实现:AES解密算法是加密算法的逆过程。

解密算法包括密文输入、密钥生成、密钥逆运算、逆字节替换、逆行移位和逆列混淆等步骤。

在解密过程中,逆操作的顺序与加密过程中的操作顺序相反。

最后一轮逆迭代不包括逆列混淆,而是进行逆轮密钥加,输出明文。

5.安全性考虑:AES算法的安全性主要取决于密钥的长度和选择。

为了保证AES算法的安全性,应选择足够长且随机的密钥,并避免使用弱密钥。

此外,还可以采用密钥派生算法对密钥进行处理,增加密钥的复杂度。

6.性能优化:为了提高AES算法的加密解密速度,可以考虑一些性能优化技术。

例如,利用并行计算技术可以同时处理多个分组,提高加密解密的并行度。

另外,还可以采用数据流加密模式,在明文输入的同时输出密文,减少加密解密的延迟。

AES算法在数据库加密中的应用

AES算法在数据库加密中的应用

AES算法在数据库加密中的应用AES(Advanced Encryption Standard)是一种对称加密算法,广泛应用于数据库加密中,用于保护数据库中的敏感信息。

AES算法提供了高强度的加密保护,使得黑客难以破解数据库中的信息,从而保护用户的隐私和数据安全。

在数据库中,通常存储着大量的敏感信息,如用户的个人资料、信用卡信息、密码等。

这些信息如果不经过加密就直接存储在数据库中,一旦数据库受到黑客攻击或者内部员工泄露,将会导致严重的后果。

因此,对数据库中的敏感信息进行加密是非常重要的。

AES算法是目前最流行和最安全的对称加密算法之一,其密钥长度可以是128位、192位或256位,越长的密钥长度越难以被破解。

AES算法通过替换、置换和混淆等操作来加密数据,使得黑客难以通过暴力破解等手段来获取明文信息。

因此,在数据库加密中使用AES算法可以有效保护数据库中的信息安全。

数据库加密一般分为两种方式:全盘加密和字段级加密。

全盘加密是指对整个数据库进行加密保护,而字段级加密则是指对数据库中的特定字段进行加密。

在实际应用中,一般会结合两种方式来确保数据库的安全性。

在全盘加密中,将使用AES算法对整个数据库进行加密,对数据库文件进行加密存储,使得黑客无法直接访问数据库文件。

只有在合法授权的情况下,才能通过解密操作来读取数据库中的信息。

这种方式适用于特别敏感的数据库信息,如金融机构的客户信息、医疗机构的病人信息等。

在字段级加密中,将使用AES算法对数据库中的特定字段进行加密。

例如,对用户的密码字段进行加密存储,使得即使数据库被盗,黑客也无法直接获取用户的明文密码。

只有在合法授权的情况下,才能通过解密操作来读取相关字段的信息。

这种方式适用于需要进行频繁读写操作的字段,如用户的登录密码、信用卡号等。

除了加密之外,数据库还需要考虑密钥管理、权限控制等安全问题。

密钥管理是指如何生成、存储和管理加密解密的密钥,需要确保密钥的安全性。

基于AES加密算法的实现与应用

基于AES加密算法的实现与应用

随着计算机网络的不断发展 , 信息的安全性和保密性变得尤为 结果的比特被混合起来 以得到扩散 , 这里的混合步骤不是 由比特的 重要。 加密技术是对通信 系统或者存储系统中的信息数据进 行保护 简单置换 组成 的 , 而是使用 比特的可逆线性转换来完成 的。 密钥 的一个很重要 的方式 。 而AE ( d a cd E cy t n Sa d r ) S A v n e n r p i tn a d o 算法是美国国家标准和技术研究所 ( S 在2 世纪初 正式推 出的 NIT) 1 旨在取代D S E 算法 的高级加密标 准算法 。 用它对数据文件进行加密 的运算 , 其优势在于AE 是一种高效 、 S 安全的对称加 密算法 , 具备很 强的扩散性能 , 最终形成的密码有很高的随机性。 数据文件经AE S 算法 加密 后 , 信息 会得 到有效保护 。
()u B t ( 替 换 ) 非线 形 变 换 , 置 换 包 含 一 个作 用 在 1 b ye 字节 S s 是 该 状态字节上的S OX, RD —B 用S 表示 ; 他是 由字节在G (8域 中求其 F 2) 乘法 逆并外加一个仿射变换 实现。 ()hf o ( 2S iR ws t 行位移变换) , 在这一 步中, 状态数组每一行 的字 图 1 1AE — S的算法结构 节按如下方 式循环左移 : 第一行不动, 第二行左移一位 , 第三行左移 AE 算法 采用S u r( S q ae方形) 算法结构 , 主要有 以下特点 : 两位 , 第四行左移三位。 所有的移位都是循环 的, 例如第二行中第一 () 1采用 乘积密码迭代 , 实现扩散 与混淆。 个字 节变 成了第 四个字节 。 它和列混合运 算相 互影响 , 在多轮变换 () 2每一轮都 使用代换和混淆技术并行地处理 整个 数据分组 。 后, 使密码信息达 到充分 的混乱 , 高非线形度。 提 () 3无论是加密还 是解密 , 除了最后一轮少了列混 合运算 外, 其 () x 0u 1( 3Mic lmI 列混合变换 ) S , 它用Sae tt字节列的值进行数学 解密为四种基本 域加和域乘 的结果代替每个字节 , 以状态 的列为单位进行 的操 他各轮都是按照相 同顺序依次执行四种基本运算( 是 运算 的逆运算 ) 。 作。 () 4解密算法完全是加密算法 的倒推 , 、 加 解密原理清晰 , 便于 () d Ro n K y 轮密钥加)加密例程获 取该 密钥 数组并生 4A d u d e ( , 成一个名为w[ 的密钥调度表 。 】 密钥调度表中的前4 行对Sae tt实行 理 解 。 () 5和其他分组密码相 同 , 轮密钥在解密 时颠倒顺序使用 。 个字节一个字节 的异或( O 操作 , X R) 并用轮密钥表w[,l er 异或输 1 E 的解 密算 法 .A S 3 入 的Sae ,l tt[ c。 r AE 的解密算法可直接 利用步骤Iv u B t 、 v hf o 、 S n S b y ̄ I S i R ws sn t 通过将第2 个和第3 个运算一起视为“ 混合” 阶段 , 可看到A S E 的 n Mi Co mn 和Ad Ro n Ke 的逆并倒置其次序而得 到, d ud y 此算 每一轮都有代替置换网络结构 : 某轮 的子密钥首先和当前这一轮的 Iv x lu s
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代经济信息前言: AES加密算法作为DES加密算法的替代品,具有安全、高效以及在不同硬件和软件[6]运行环境下表现出的始终如一的良好性能,因此该算法具有较高的开发潜力和良好的实用价值。

本研究主要包括AES加密算法的改进,C语言实现,以及完成对数据流的加密和解密过程,同时对AES加密算法的应用进行了简单介绍。

一、AES加密算法的改进及实现(1)AES加密算法的流程图在图1.1中,Round代表加密的轮数,即程序循环次数。

State代表状态矩阵,一个存储原始数据的数组。

RoundKey代表经过扩展运算后的密钥数组。

ByteSub()代表置换函数,对状态矩阵State中的数据进行置换。

ShiftRow()代表移位函数,对状态矩阵State中的数据进行移位运算。

MixColumn()代表列混合运算函数,对状态矩阵State中的数据进行列混合运算。

AddRoundKey()代表异或运送函数,对数组State和数组RoundKey进行异或运算。

由上图可以看出,最后一次轮变换比前几次轮变换少执行一次MixColumn()函数。

(2)A E S解密算法的流程图在图1.2中,Round代表加密的轮数,即程序循环次数。

State代表状态矩阵,一个存储原始数据的数组。

RoundKey代表经过扩展运算后的密钥数组。

InvByteSub()代表置换函数,对状态矩阵State中的数据进行置换。

InvShiftRow()代表移位函数,对状态矩阵State中的数据进行移位运算。

InvMixColumn()代表列混合运算函数,对状态矩阵State中的数据进行列混合运算。

由上图可以看出,最后一次轮变换比前几次轮变换少执行一次MixColumn()函数。

二、AES加密算法复杂度分析下面对改进前的算法和改进后的算法进行复杂度分析[8]以及程序执行效率的分析。

设b为0x00—0xff中的任意常数,以0x09*b为例进行讨论。

该算式分解如下:0x09*b=(0x08+1)*b=0x08*b+b=(0x06+0x02)*b+b=0x06*b+0x02*b+b=(0x04+0x02)*b+0x02*b+b=0x04*b+0x02*b+0x02*b+b=(0x02+0x02)*b+0x02*b+0x02*b+b=0x02*b+0x02*b+0x02*b+0x02*b +b将上述算式进行C语言实现得到以下程序:(1)程序1int i,t;t=b;t=t<<2;for(i=0;i<3;i++){t=t^t;}t=t^b;由此可见,该程序的时间复杂度为O(n)。

将上述程序做一改进可得到如下程序:(2)程序2int i,t;t=b;t=t<<2;t=t^t;t=t^t;t=t^t;t=t^t;t=t^b;由此可见,该程序的时间复杂度为O(1)。

若通过表格法对公式进行编成,可以得到如下程序:(3)程序3int t;t=Tab0e[0x0e][b];由此可见,该程序的时间复杂度为O(1)。

通过上述程序可以发现,程序2与程序3的时间复杂度相同。

但这只能说明两程序的时间效率相似,并不一定相同,具体判断还要看程序的规模。

虽然程序之间的规模只有几行代码的差距,但如果将这些程序放在循环体中执行,程序之间在时间上的执行效率就会表现出较大的差距,循环次数越多,循环层数越多,效率差距就越明显。

AES加密算法本身是一种非常适用于硬件加密的算法,因此当该算法应用于硬件编程时,就更要把算法的时间效率考虑在内,否则很可能由于算法执行时间过长,导致尚未加密的数据被新加入的数据冲掉,造成数据的遗失,如此一来也就失去了数据加密的意义。

这也是为什么要对算法的程序实现进行效率考察的主要原因。

AES加密算法的实现及应用赵雪梅 盐城工学院,江苏 盐城 224003图1.1 AES加密算法流程图图1.2 AES解密算法流程图学术探讨三、AES加密算法的C语言实现AES加密算法主要分为三大块[9],即密钥扩展,数据加密和数据解密。

(一)密钥扩展(1)使用Rotword()函数对数组中的数字实现循环左移一位的运算,即将数组中左端第一个数字移至数组的末端,而原来在它之后的数字依次前移一位。

要说明的是,由于数组中的4个数字已经合并为一个数字,因此在程序的实际执行过程中并不是做数组的循环左移运算,而是进行数字的循环移位运算,这样一来便大大简化了运算过程,对运算效率有一定程度的提高。

(2)使用SubWord()函数依据S置换表对4个数字进行置换,规则如下。

例如,有一个数字为0x2a,则在表1•1中查找‘2’行‘a’列的数字,得到数字e5,则该数字即是数字0x2a 的置换数字。

此函数的C 语言实现相对简单,只是一个查表的问题,但过程比较繁琐细碎,编成时应仔细对待,避免出错。

(二)数据加密(1)使用SubByte()函数依据S置换表对状态矩阵State[4][4]中的数字进行置换,查表的方法在前文已经介绍,这里不再赘述。

有一点需要注意的是,虽然SubByte()函数与SubWord()函数原理相同,但在程序中的运算过程却不尽相同。

SubByte()函数是提取状态矩阵State[4][4]中的每一个数组元素进行置换运算,而SubWord()则是提取一个unsigned long 整型数字中的某8位数据进行置换运算。

SubByte()函数的C语言实现与SubWord()的C语言实现雷同,这里也不再赘述。

(2)使用ShiftRow()函数对状态矩阵State[4][4] 中的各行数据进行循环移位运算。

该函数所进行的循环移位规则如下。

状态矩阵State[4][4] 中的第一行数据位置不变,第二行数据循环左移一位数字,第三行数据循环左移两位数字,第四行数据循环左移三位数字。

在对ShiftRow()函数进行C语言编程时主要是要注意行数以及所对应的移位个数,保证运算的准确性。

加密时,不仅要多次调用上述三个函数,同时还要结合密钥扩展所得的数据对文件进行加密。

加密过程简要如下:(1)第0轮加密本轮加密是将状态矩阵State[4][4]中的16字节数字与密钥扩展数组中的w[0]至w[3]这16字节数字进行异或运算,得到16字节新的数字,这些数字存放于状态矩阵State[4][4]中,取代原来的数据。

(2)第1至9轮加密为说明方便,在这里设轮数为k,显然k的值是从1至9的。

程序执行当中,首先对状态矩阵State[4][4] 使用SubByte()函数,将矩阵中的数字进行置换。

再次,对置换后的状态矩阵使用ShiftRow()函数,将矩阵中相应行中的数字进行移位。

再次,对移位后的状态矩阵使用MixColumns()函数,利用上述的列混合运算公式对状态矩阵中的数字进行运算,得到一个新的状态矩阵。

最后,将经过列混合运算之后的状态矩阵与密钥扩展数组中w[4k]至w[4k+4] 的数字进行异或运算,将所得结果存入状态矩阵中,至此一轮加密完成。

(3)第10轮加密第10轮加密的不同之处在于,该轮加密不进行列混合运算,即不调用MixColumns()函数,其他部分与第1至9轮加密相同。

经过第0至10轮加密后所得到的状态矩阵State[4][4]便是实验所需要的密文。

(三)数据解密(1)使用InvSubByte()函数依据S置换表的逆表对状态矩阵State[4][4]中的数字进行置换,置换方法与SubByte()函数相同。

该函数的C语言实现与SubByte()函数基本相同,在此不再赘述。

(2)使用InvShiftRow()函数对状态矩阵State[4][4] 中的各行数据进行循环移位运算。

该函数所进行的循环移位规则如下。

状态矩阵State[4][4] 中的第一行数据位置不变,第二行数据循环右移一位数字,第三行数据循环右移两位数字,第四行数据循环右移三位数字。

该函数的C语言实现与ShiftRow()函数基本相同,在此不再赘述。

下面对解密过程进行简要介绍。

(1)第0轮解密与第0轮加密类似,第0轮解密也不是一轮完整的解密。

InvSubByte()函数,InvShiftRow()函数和InvMixColumns()函数均未参与到该轮运算中来。

在这里设轮数为k。

本轮解密是将状态矩阵State[4][4]中的16字节数字与密钥扩展数组中的w[44-k]至w[44-4k]这16字节数字进行异或运算,得到16字节新的数字,这些数字存放于状态矩阵State[4][4]中,取代原来的数据。

(2)第1至9轮解密这9轮解密过程相同,因此在用C语言实现时可写入循环之中运行。

程序执行当中,首先对状态矩阵State[4][4] 使用InvSubByte()函数,将矩阵中的数字进行置换。

再次,对置换后的状态矩阵使用InvShiftRow()函数,将矩阵中相应行中的数字进行移位。

再次,将移位后的状态矩阵与密钥扩展数组中w[44-k]至w[44-4k]的数字进行异或运算。

最后,对经过异或运算后的状态矩阵使用InvMixColumns()函数,对矩阵中的数字进行列混合运算,至此一轮加密完成。

(3)第10轮解密该轮解密与第1至9轮解密相比少了一步对InvMixColumns()函数的调用,即不进行列混合运算,其他部分与第1至9轮解密相同。

经过第0至10轮解密后所得到的状态矩阵State[4][4]便是刚开始所输入的原文。

四、AES加密算法的应用当一组数据向闪存盘内写入时,对数据流进行实时加密,即输入闪存盘内的数据以加密的形式存储于盘内;当对盘中的数据进行读取时,通过加密算法对输出的密文进行实时解密,即输出的数据为解密后的原文。

计算机中所有类型的文件都是以01数字的形式进行存储的,文件的输入和输出过程实际上就是数据流的输入与输出,只要实现了数据流的加密,便可以实现对任意形式文件的加密。

因此,通过AES加密算法完成数据流的加密和解密具有实际的应用价值和意义。

结论:通过对AES加密算法的分析找到对算法进行改进的方法,并将此方法应用于程序的编写当中,提高了程序的执行效率。

同时课题研究使用C语言完成了AES加密算法的程序实现。

参考文献:[1]张洁,朱丽娟. DES 加密算法分析与实现[J].软件导刊,2007,3.[2]罗祖玲. 基于DES 算法的数据库加密[J].2007,装备制造技术,6.[3]吴文玲,冯登国,卿斯汉. 简评美国公布的15个AES 候选算法[J].软件学报,1999,19.[4]何明星,范平志. 新一代私钥加密标准AES 进展与评述[J].计算机应用研究,2001,18.作者简介:赵雪梅 (1975-),女,讲师,主要从事计算机软件开发与教学工作,现任职于盐城工学院。

相关文档
最新文档