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

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

现代加密算法

古典加密算法本质上主要考虑的是语言学上模式的改变。直到20世纪中叶,香农发表了《秘密体制的通信理论》一文,标志着加密算法的重心转移往应用数学上的转移。于是,逐渐衍生出了当今重要的三类加密算法:非对称加密、对称加密以及哈希算法。这三类算法在现实场景中也往往组合起来使用,以发挥最佳效果。

对称加密算法

对称加密算法是使用最广泛的加密算法之一。常用的对称性加密算法有DES算法、AES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法等。对称加密的特点是,加密和解密两方使用同一密钥进行加、解密。加密算法本身泄露不会对安全性造成影响,密钥才是安全性的关键。按照原理不同,对称加密可以大体分成流加密和分组加密两种类型。

流加密

流加密是将明文按字符逐位地,对应地进行加密的一类对称密码算法。流加密中最有名的算法是RC4和GSM。流加密算法相对简单,明文和密钥按位对其做约定的运算,即可获得密文。

由于流加密原理简单,其算法结构存在弱点,如果密钥流又多次重复使用,只要泄露局部明文,攻击者很容易算出密钥。另外,由于是按位进行加密,攻击者即使对数据进行篡改,也不会破坏原有数据结构,接收者很难发现其中变化。流加密虽然是一种快捷高效的加密方法,但其安全性较低,不建议用户使用流加密对关键信息进行加密。

分组加密

分组加密内部实现则复杂的多,每一个加密块都会经历至少16轮运算,其代表算法有DES和AES。目前推荐使用AES,DES已经不在安全。

DES

DES是较早时期的对称加密标准,在当时得到了广泛的应用。随着计算机性能地不断提高,暴力破解DES变得越来越容易。所以DES已经不再安全,近十几年逐渐地被3DES和AES代替。

DES核心主要分成初始置换、轮函数、逆置换三步。

初始置换:把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分长32位,其置换规则为将输入的第58位换到第1位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,其置换规则见下表:

58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

轮函数:DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。

逆置换:DES 使用 16 轮循环,使用异或、置换、代换、移位操作四种基本运算。最后经过16次迭代运算后,得到L16、R16,将此作为输入进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出,解密过程则是整套加密过程的逆运算。

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

预报名

咨询

课程

题库