可鉴别加密工作模式-同时保护数据机密性和完整性(OCB、CCM、KeyWrap、EAX和GCM)第二部分

        当算法用于同时保护数据的机密性和完整性时,应选取合适的可鉴别加密工作模式,例如OCB、CCM、KeyWrap、EAX和GCM等工作模式。以下总结来自GBT36624-2018国标文本(修改采用ISO/IEC 19772-2009)。

        对于加密工作模式上篇(可鉴别加密工作模式-同时保护数据机密性和完整性(OCB、CCM、KeyWrap、EAX和GCM)第一部分_搞搞搞高傲的博客-CSDN博客)有过介绍,这里就直接记录可鉴别加密工作模式。

        (1)OCB(Online/Offline Authenticated Encryption and Bearer Cryptography)

        OCB是瑞士的安全专家Gligor和Duan于2012年提出,是对之前AES-GCM(竞态安全身份验证和加密算法)和CCM (计数器模式)的改进。

        OBC技术结合了对称加密和公钥加密,利用消息认证码 (MAC) 对数据进行认证,并使用令牌 (token) 实现数据的授权和访问验证。OBC技术的一个主要创新点是引入了"蓝牙" (Bluetooth) 等低带宽无线传输技术,从而可以将数据的安全性与传输效率相结合。通过使用 OBC 技术,可以保证通信和数据存储的安全性和完整性,同时支持在线和离线模式的数据交换。OBC 技术已经被广泛地应用于物联网 (IoT)、无线传感器网络 (WSN)、智能交通系统和金融安全领域等多个领域。

        (2)CCM(Counter with CBC-MAC),结合了CBC-MAC(Cipher Block Chaining—Message Authentication Code)和 Counter(计数器)模式。它主要用于具有较低数据传输率和有限内存的嵌入式设备中。CCM 组合了加密、认证和计数器模式,既保证了安全性,又减小了数据尺寸。

        CCM模式中主要包含三个部分:加密、认证和计数器。其中,加密和计数器使用快速的SM4算法,认证则采用CBC-MAC模式,使得CCM模式具有高度的安全性和运行效率。具体而言,CCM加密模式采用交替分组方式,对数据进行加密和认证,同时通过计数器模式来生成加密的密钥流,最后与原始数据进行异或操作,得到最终的密文。在使用CCM模式时,需要指定明文长度、密钥长度以及MAC(消息认证码)的长度等参数。CCM模式也会根据选择的参数来划分计数器块和MAC块的大小。此外,CCM模式的安全性还依赖于计数器值,在实际使用过程中需要仔细考虑计数器溢出等问题。

        (3)KeyWrap,用于保护密钥在网络上的安全传输。此模式使用SM2公钥密钥对对密钥进行封装,并使用对称加密算法对其进行加密。Keywrap可以保护密钥,同时还可以确保传输期间数据的机密性。

        (4)EAX,使用SM4加密算法的基础上结合了OMAC (Offset MAC)算法,可以快速和可靠地加密和验证数据。EAX具有非常高的性能,是一种常用的可鉴别加密模式。

        EAX模式的核心原理是使用加密算法和OMAC算法两种技术相结合,并使用计数器块来生成密钥流。具体而言,在将数据加密时,EAX模式会使用加密算法将消息分成若干个数据块并加密,随后使用OMAC算法生成MAC值,最后通过将MAC值和计数器块进行异或得到最终的密文。而在解密数据时,EAX模式会首先使用计数器块生成与加密过程中相同的密钥流,然后将密文与对应的密钥流异或得到明文,同时使用OMAC算法验证MAC值是否正确。

        在使用EAX模式时,需要提供一个长度为16个字节的初始向量(IV),并且要求IV是唯一的。此外,EAX模式还需要明确数据块大小和加密算法的种类等参数。如果这些参数被正确地选择和使用,EAX模式可以提供很强的安全性和性能,并且可以扩展到更大的数据块。

        (5)GCM(Galois/Counter Mode)是一种经典的可鉴别加密模式,是目前广泛使用的块加密密码协议的一部分,例如TLS、IPsec和SSH。GCM模式结合了加密算法和GHASH哈希函数的特性,实现了高效的加密、认证和完整性保护,可以抵御密码分析和相关密钥攻击等多种安全攻击。

        GCM模式的核心原理是对数据进行加密和认证,其中加密使用计数器模式,认证使用GHASH哈希函数。GCM模式将数据分成若干个数据块,并使用计数器模式生成每个数据块的密钥流,将密钥流与明文异或后,使用GHASH哈希函数生成认证数据(MAC值),MAC值与密文一起发送。在接收端,首先使用计数器模式生成相同的密钥流,然后使用GHASH函数生成MAC值,再将MAC值与接收到的MAC值进行比较,以验证数据的完整性和认证性。如果MAC值匹配,那么数据就可以被认为是完好无损且确认其来源的。

        在使用GCM模式时,需要指定的参数包括密钥长度、明文长度、加密算法、初始向量和MAC长度等,同时要求初始向量和密钥必须是唯一的。特别地,由于GCM模式继承了计数器模式的长处,可以支持并行加密和认证,从而进一步提高了效率和性能。

你可能感兴趣的:(密码学,密码应用安全性评估,国密标准,安全,密码学,网络安全,系统安全,安全威胁分析)