可鉴别加密工作模式-同时保护数据机密性和完整性(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模式继承了计数器模式的长处,可以支持并行加密和认证,从而进一步提高了效率和性能。

相关推荐
BenSmith2 分钟前
从零上手嵌入式 RTOS:以 Raspberry Pi Pico 2 WH 为例的烧录、定制构建与多系统对比指南
安全
汇智信科41 分钟前
训练安全管理系统:赋能军消装备训练,实现全流程智能化管控
安全·训练安全管理·装备训练智能化·军事训练保障·消防训练管理
汤愈韬1 小时前
三种常用 NAT 的经典案例
网络协议·网络安全·security
汤愈韬2 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
其实防守也摸鱼4 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼4 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
DevilSeagull4 小时前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
@insist1235 小时前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
不会编程的懒洋洋7 小时前
C# P/Invoke 基础
开发语言·c++·笔记·安全·机器学习·c#·p/invoke
时空系7 小时前
第10篇:归属权与借用——Rust的安全保障 Rust中文编程
开发语言·安全·rust