由古论今,三千年加密算法发展史(四)

报名入口来源:中国教育在线 2022-05-31

AES

AES的诞生是为了替代原先的DES,它已经被多方分析论证,在全世界范围广泛使用,是目前最为安全的对称加密算法之一。近十年,AES已然成为对称密钥加密中最流行的算法之一。不同于它的前任标准DES,AES使用的是代换-置换网络,而非Feistel架构。

大多数AES计算是在一个特别的有限域内完成的,加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:

AddRoundKey——矩阵中的每一个字节都与该次轮密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。

SubBytes——通过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。

ShiftRows——将矩阵中的每个横列进行循环式移位。

MixColumns ——为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。最后一个加密循环中省略MixColumns步骤,以另一个ddRoundKey取代。

模式

无论是AES还是DES他们内部都支持不同的加密模式,每一种模式的安全性和效率都大不相同。这里,只简单介绍两种最常见的模式ECB和CBC

ECB模式加密效率高,但安全性低

每次都是Key对单独块进行加密,容易被对方破解。但由于每个模块之间毫无关联,所以可以并发运算,极大地提高了加密效率。通常,ECB的加密效率比CBC高5-6倍。

CBC加密效率虽然没有ECB高,但安全性则高得多。

每块加密引入一个IV,每块的IV都不同,需要上一块进行迭代,最终完成整个加密过程。由于每块的IV和密文块有关,所以无法采用并发的模式,必须串行整个过程。

如果不是出于极高的性能要求,建议还是采用CBC模式进行加密,该模式更为安全、可靠。

非对称加密算法

非对称加密算法和对称加密算法的最大区别在于,加密的密钥和解密的密钥不再是一个。这就像两个人互对暗号一样。这种加密方式主要为了应对“多个加密者,一个解密者”的模式,对称密钥只能解决解密用户为一对一的关系。

于是在这种多对一的关系中就出现了一个公钥体系。一个公钥对应一个私钥。公钥是公开的,任何数据发送者都用公钥对数据进行加密,但公钥加密的内容只有私钥才能解开。其中著名的算法包括DSA算法、RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法、ECC算法。背后的数学原理从大数分解到复杂的椭圆曲线上的离散对数问题,非常复杂。这里,笔者就不做展开。

虽然背后的数学支撑不同,但模式类似,均采用公私钥密钥对的方式,公钥解密私钥加密的信息,私钥解密公钥加密的信息。非对称加密算法的执行效率成为这种算法实际应用的最大阻碍。大部分应用主要把非对称加密算法用在身份验证中,并不会在通讯中使用。

我的题库在线题库
近期直播
联系方式

预报名

咨询

课程

题库