数据安全实践:能力体系、产品实现与解决方案
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 分组密码

分组密码(Block Cipher)同样属于对称加密,它先将原始明文序列按照固定长度进行分组,然后在同一密钥控制下用同一算法逐组进行加密,从而将各个明文分组变成长度固定的密文分组,如图1-2所示。在确定了分组密码算法之后,分组的大小是固定的。分组大小的选择并不直接影响密码的强度,密码的强度取决于密钥的长度。分组密码可以有效抵抗明文攻击,是现代加密算法的基础。

图1-2 分组密码技术示意

分组密码技术的基本思想是将原始明文分割为固定长度的分组,例如64位或128位,然后对每个分组使用密钥相关的变换算法进行置换和替代,生成对应的加密分组,再将所有加密分组链接起来构成密文。在解密时,使用相同的算法和密钥对每个密文分组进行逆变换,恢复明文分组。

常见的分组密码算法如下。

1)DES(Data Encryption Standard,数据加密标准):分组密码的基础。关于分组密码的早期研究都是围绕DES展开的。其初始密钥长64位,其中实际参与加解密运算的只有56位,其余8位为校验位。DES对64位分组数据加密,以每个64位大小的分组加密数据,这意味着DES的输入是64位明文,输出是64位密文。该算法在20世纪70年代提出,受到高强度攻击时容易被破解,目前仅供研究参考。

2)3DES(Triple DES):DES的加强版。DES密钥长度较短,容易被暴力破解,而3DES算法对DES算法进行了改进,通过增加DES的密钥长度来避免类似的攻击。它针对每个分组进行三次DES,使用两个或三个不同的56位密钥对信息进行三次加密,从而有效抵抗暴力破解。相比DES,3DES因密钥长度变长,安全性有所提高,但其处理速度不快。于是又出现了速度更快、安全性更高的AES算法。

3)AES(Advanced Encryption Standard,高级加密标准):使用128位、192位或256位密钥对128位分组信息进行加密。AES是美国联邦政府采用的一种加密标准。这个标准被用来替代DES,截至目前仍是最强的分组密码之一,得到了广泛使用。

4)SM4:国产商用密码算法,目前已成为ISO/IEC国际标准。SM4的分组长度和密钥长度均为128位。其加密处理方式具有密文反馈连接和流密码的某些特点,前一轮加密的结果与前一轮的加密数据拼接起来供下一轮加密处理。一次加密处理4个字,产生一个字的中间密文,这个中间密文和前三个字拼接起来后再供下一次加密处理。一共会迭代加密处理32轮,产生4个字的密文。整个加密处理的过程就像一个宽度为4个字的窗口在滑动,加密处理完一轮,窗口就滑动一个字,窗口一共滑动32次后加密迭代就结束了。整个过程如图1-3所示。SM4算法设计简洁,安全高效,不仅适用于软件编程实现,也特别适用于硬件芯片实现。

图1-3 SM4算法加密过程示意

5)IDEA(International Data Encryption Algorithm,国际数据加密算法):由DES发展而来,同样是为了解决DES密钥较短的问题。IDEA包含子密钥产生、数据加密、数据解密三部分,采用128位密钥对64位分组信息加密,对密码攻击具有很强的抵抗力。IDEA曾被用于PGP(Pretty Good Privacy,优良保密)协议,目前是OpenPGP标准中的一种可选算法。

分组密码算法的复杂性直接影响了算法的安全性,通常要从两个方面考虑:一个是扩散(diffusion),另一个是混淆(confusion)。扩散是指将算法设计成明文,使每一位的变化都尽可能地引起输出密文序列的变化,以便隐蔽明文的统计特性,这被形象地称为雪崩效应。扩散的目的是让密文中的任一位都尽可能与明文、密钥相关联,或者说使得明文和密钥中任何一位发生改变,都会在某种程度上引起密文序列的变化,以防止攻击者将密钥分解成若干个孤立的小部分,然后各个击破。

混淆则是指使加解密变换过程中明文、密钥以及密文之间的关系尽可能复杂,以防密码破解者采用解析法进行破解。混淆可以用“搅拌机”来形象地解释,即将一组明文和一组密钥输入算法中,经过充分混合,最后变成密文。

分组密码技术是现代密码学的基石,被广泛用于信息加密、数字签名等场景。自1976年以来,分组密码在许多加密标准中被广泛使用,提供了大多数现代密码底层的关键算法技术。在很长一段时间内,破解这些密码成为世界各地密码破解者的首要目标。随着信息技术的发展,它也面临密钥管理、算法攻击等风险,这需要在实际应用中进行风险评估和控制。

流密码与分组密码的对比如表1-1所示。

表1-1 流密码与分组密码对比