1、DES(Data Encryption Standard)算法:数据加密标准。是替换和置换细致而复杂的结合体,替换和置换一个接着一个,共循环16次。算法首先将明文分块,每块64位。密钥也是64位,但实际上它可以使任意56位的数字(多余的8位通常作为校验位,但不影响加密)。
替换提供了混乱性,置换提供了扩散性。
混乱性:当明文中的字符变化时,截取者不能预知密文会有何变化。
扩散性:将明文中单一字母包含的信息散布到整个输出中的特性。
DES算法加密过程如下图:
2、AES加密算法(Advanced Encryption Standard):高级加密标准。分块大小为128位,像DES一样,也使用重复的循环,对于128、192和256位点的密钥分别会有10、12和14次循环。
AES典型:Rijndael算法:Rijndael是一种快速算法,主要使用的时候替换、置换、移位、加以及特殊的或运算。在Rijndael中,循环称为“轮”;
a、字节替换:这一步使用和DES相似的替换结构,根据一张替换表来替换128位分块中的每个字节,这一步是直接的混乱操作。
b、行移位:一个置换步骤。对于128和192位的分块,第n行循环左移(n-1)个字节;对于256位的分块,第2行移位1个字节,第三行和第四行分别移位3和4个字节。这是一个直接的混乱操作。
c、列移位:该步骤包括左移、与自身的异或运算。这些步骤提供了混乱性和扩散性。
d、加上子密钥:密钥的一部分与循环结果进行特殊或运算,这一部分对于此次循环式唯一的。这步操作提供了混乱性并合并了密钥。
3、RSA(Rivest-Shamir-Adelman)加密算法:是一种公开密钥*,使用两个密钥d和e,分别用于解密和加密。
P=E(D(P))=D(E(P))