理论教育 对称块密码的工作模式-信息安全基础

对称块密码的工作模式-信息安全基础

时间:2023-11-24 理论教育 版权反馈
【摘要】:前面介绍了3种最重要的对称块加密算法。对多个明文块进行加密的最简单的方式是电码本模式。图2-5显示了ECB模式的工作过程。图2-5ECB模式如果消息中出现多个相同的明文块,它们的密文块也将是相同的。所以,对于长消息,ECB模式的安全性会大大降低。为了克服ECB的缺陷,希望设计一种方案使同一明文块重复出现时产生的密文块不同。图2-6CBC模式由于CBC模式的链接机制,它对加密大于块长度的消息非常合适。

对称块密码的工作模式-信息安全基础

前面介绍了3种最重要的对称块加密算法。在实际使用这些算法加密数据的时候,如加密电子邮件、网络包、数据库记录等,被加密的数据通常大于64 bit或128 bit,此时,必须将它们分成一系列固定长度的明文块(P1,P2,…,Pn),分别处理。

对多个明文块进行加密的最简单的方式是电码本(Electronic Codebook,ECB)模式。在这个模式中,使用相同的算法和相同的密钥K,分别加密每一个比特的明文块Pi,生成一个对应的b比特密文块Ci。对于DES和3DES,b = 64,对于AES,b = 128。图2-5显示了ECB模式的工作过程。

图2-5 ECB模式

如果消息中出现多个相同的明文块,它们的密文块也将是相同的。所以,对于长消息,ECB模式的安全性会大大降低。如果消息是高度结构化的,密码分析者可能会利用这种规律。例如,如果已经知道消息总是以某个事先规定的字段开头,那么密码分析者就有可能会得到许多明文-密文对。如果消息有重复的成分,而重复的周期正好是块长度的倍数,那么这些成分都有可能会被密码分析者识别出来。

为了克服ECB的缺陷,希望设计一种方案使同一明文块重复出现时产生的密文块不同。一种简单的方案就是密码块链接(Cipher Block Chaining,CBC)模式。每次加密使用同一密钥K,加密算法的输入是当前明文块和上一个密文块的异或。这样做,重复的明文块就不会产生相同的密文块。为了产生第一个密文块,需要一个初始向量C0,这是一个事先确定好的秘密值。解密时,每一个密文块解密后,再与上一个密文块异或来产生当前的明文块,如图2-6所示。

图2-6 CBC模式(www.daowen.com)

由于CBC模式的链接机制,它对加密大于块长度的消息非常合适。CBC模式除了能够获得保密性外,还能用于认证,可以识别密文是否被修改过。不过,当在网络上传输加密数据时,如果传输中的密文块出现错误,不仅会导致无法解密当前明文块,还会影响下一个明文块的正确解密。

计数器(Counter mode,CTR)模式是一种近几年开始受到关注的工作模式,尽管它很早就被提出来了。在CTR模式中,加密算法加密一系列与块长度相同的计数值,然后分别与明文块/密文块异或,产生密文块/明文块。使用CTR模式的唯一要求,就是每一个明文块/密文块对应的计数值必须不同。典型地,计数值被初始化为某个值,然后对随后的每一个块,其值加1(模2b,b是块的长度),如图2-7所示。

CTR模式具有如下优点:能够并行处理多个明文块/密文块的加密/解密,能够提前处理加密操作,可以随机地加密任意明文块或解密任意密文块,只要求实现加密算法。

除了上述3种工作模式,还有很多其他工作模式,如密文反馈模式(Cipher Feedback,CFB)和输出反馈模式(Output Feedback,OFB)。这两种模式将块密码转换为流密码。

图2-7 CTR模式

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈