简述DES与AES的区别
DES是一种分组密码算法,分组长度为64比特,密钥长度为56 比特。使用DES进行加密时,可以分为三个阶段,首先进行一个初始置换,然后在进行具有相同功能的16轮变换,每轮变换都有置换和代换运算,在第16轮时输出分为左右两部分并被交换次序;最后进行一个逆初始变化IP-1 。在进行16轮变换的时候,左右各分为32比特分别记为L,R。把轮输入的右半部分(32比特)扩展成48比特,和轮密钥进行异或,再通过 8 个s盒输出32比特,每个s盒的输入长度为6比特,输出长为4比特。在整个过程中,s盒是唯一的非线性元件。
AES是一种加密的标准,Rijndael是该标准下的具体算法,Rijndael满足:比三重DES快,至少与三重DES一样安全,数据分组长度为128比特,密钥长度为128/192/256比特。
Rijndael有三个层,线性混合层,非线性层,密钥加层。Rijndael是一个迭代型分组密码,分组长度和密钥长度都可变。Rijndael轮函数由四个不同的计算部件组成:字节代换,行移位,列混合,密钥加。AES中的S盒运用了GF(28)的数学基础,DES中的S盒主要是为了确保非线性。与DES相比,AES用到了非常深的数学基础。