GCM与CCM的的规格和加解密过程

news/2025/3/30 14:32:50/

CCM

CCM(Counter with CBC-MAC)是一种基于对称加密算法的认证加密(Authenticated Encryption)模式,结合了CBC-MAC(Cipher Block Chaining Message Authentication Code)用于消息认证和CTR(Counter)模式用于加密。这种模式可以确保信息的机密性和完整性。它主要用于无线网络安全标准,如IEEE 802.11i(WPA2)和IEEE 802.16e(WiMAX)。

认证加密过程分为三个阶段:初始化、加密和认证。
在这里插入图片描述

初始化阶段:
在此阶段,根据给定的密钥(key)和初始向量(nonce),算法首先生成一个初始计数器(counter)。在CCM中,nonce和计数器共同组成一个大小固定的输入,称为“计数器块”。通常,nonce的长度根据具体实现和安全需求而定。
加密阶段:
使用CTR模式对明文进行加密。通过将计数器块与密钥(key)进行加密,然后将结果与明文异或,生成密文。计数器每次递增(incr),直至加密整个明文。
加密后的认证阶段:
使用CBC-MAC生成认证标签。首先,根据给定的关联数据(Associated Data,AD)生成一个认证头。然后将密文与认证头一起输入到CBC-MAC算法中,最后生成一个认证标签。关联数据是不需要加密但需要认证的数据。
在这里插入图片描述

在解密过程中,我们首先使用CBC-MAC验证密文的认证标签。如果认证通过,再使用CTR模式解密密文,还原成明文。
上图提到的incr和multKh参数,它们在CCM算法中的具体含义如下:
incr:这是一个简化的表示,用于描述计数器递增的过程。在加密阶段,每次处理一个明文块后,计数器的值都会递增。这样,每次加密操作都使用一个不同的计数器块,确保了加密过程的安全性。
multKh:这是在CBC-MAC阶段使用的一个乘法运算。实际上,它是在有限域上的乘法运算。这个乘法操作用于处理输入数据块(关联数据和密文),并与前一个块的加密结果进行异或。multKh操作的目的是确保认证标签的安全性。
总之,CCM结合了CTR模式的加密和CBC-MAC的认证,确保了信息的机密性和完整性。在加密过程中,使用了诸如计数器递增、乘法运算等技术来确保算法的安全性。

GCM

GCM(Galois/Counter Mode)是一种基于对称加密算法的认证加密(Authenticated Encryption)模式,用于确保数据的机密性和完整性。GCM广泛应用于TLS、IPsec等安全协议中。它结合了CTR(Counter)模式用于加密和GHASH(Galois Hash)用于认证。

认证加密过程分为三个阶段:初始化、加密和认证。
初始化阶段:
在此阶段,根据给定的密钥(key)和初始向量(IV),算法首先生成一个初始计数器(ICB)。通常,IV的长度根据具体实现和安全需求而定。接下来,算法计算J0(算法中使用的初始值)。J0的计算方式取决于IV的长度;当IV长度为96位时,J0 = IV || 0^31 || 1,其中"||"表示连接操作。
加密阶段:
在加密阶段,使用GCTR(Galois Counter)模式对明文进行加密。GCTR与CTR类似,通过将计数器块(CB)与密钥(key)进行加密,然后将结果与明文异或,生成密文。计数器每次递增,直至加密整个明文。这里,CB的初始值是J0的递增值(即J0 + 1)。
认证阶段:
使用GHASH进行认证。首先,使用密钥(key)计算一个值H(称为GHASH_H),用于GHASH运算。接着,将关联数据(Associated Data,AD)和密文一起输入到GHASH算法中,生成一个认证标签。关联数据是不需要加密但需要认证的数据。

在这里插入图片描述

解密过程与加密过程类似,首先使用GHASH验证密文的认证标签。如果认证通过,再使用GCTR模式解密密文,还原成明文。
在这里插入图片描述

上图提到的参数在GCM算法中的具体含义:
GCTR:Galois Counter模式,用于加密和解密操作。与CTR模式类似,它使用计数器和密钥进行加密操作,然后将结果与明文(或密文)异或。
GHASH_H:GHASH运算中使用的H值。H是由密钥(key)计算得出的,用于Galois Hash运算。
GCTR_K:这是GCTR模式中用于加密和解密的密钥(key)。
MSB:Most Significant Bit,即最高有效位。在GCM中,它通常用于提取计数器递增后的最高有效位。
J0:GCM算法中使用的初始值。它由给定的初始向量(IV)计算得出。
CB:Counter Block,即计数器块。在GCTR模式中,它用于加密和解密操作。
ICB:Initial Counter Block,即初始计数器块。在GCM算法的初始化阶段,根据给定的密钥(key)和初始向量(IV),首先生成ICB。ICB是GCTR模式加密和解密过程中使用的第一个计数器块。接下来,计数器会递增,生成后续的计数器块。

综上所述,GCM是一种认证加密模式,通过结合GCTR模式进行加密和GHASH进行认证,确保了数据的机密性和完整性。在加密和认证过程中,使用了诸如J0、ICB、CB等参数。解密过程与加密过程类似,首先验证密文的认证标签,然后使用GCTR模式进行解密。GCM广泛应用于诸如TLS、IPsec等安全协议中。


http://www.ppmy.cn/news/55444.html

相关文章

vue3 vite typescript volar element-plus element标签报红问题的解决

故障就这样的: 模块 ""element-plus"" 没有导出的成员 "FormInstance" 至于原因咱也不知道,也没搞明白,一直以为是volar校验的问题,能开发咱就接着干,到了发布的时候傻眼了。所有这种…

骨传导蓝牙耳机哪款好,分享几款性能比较高的骨传导耳机

骨传导耳机是一种新型的耳机,它将声音转化为不同频率的机械振动,通过人的颅骨、骨迷路、内耳淋巴液、螺旋器、听觉中枢来传递声波。不需要通过耳道,是一种耳挂式的无线耳机。 骨传导耳机与普通耳机相比,最大的优势是不需要入耳&am…

新代系统怎么解锁cnc解锁

新代系统怎么解锁根据该项的状态机,我们从创世纪状态开始,当交易被执后,这个创世纪状态就会转变成最终状态。在任何时刻,这个最终状态都代表着当前的状态,在项中指针 Bptr永远指向最新的状态。每个状态可能包含数个物流…

Clickhouse的数据副本协同原理详解(借助ZK实现)

Clickhouse的数据副本协同原理详解(借助ZK实现) 文章目录 Clickhouse的数据副本协同原理详解(借助ZK实现)Clickhouse数据副本副本的特点 ReplicatedMergeTree原理解析数据结构Zookeeper内的节点结构元数据判断标识操作日志 Entry日…

AI失业潮来袭,某些部门裁员过半

历史的车轮滚滚向前,每次生产力的大幅跃进,都会造成一批失业潮。想当年,纺纱机的出现让无数手工作坊的织布师傅失业。如今,在AI技术的催化下,同样的事正在互联网行业的各个领域重演。 疯狂的裁员浪潮 “AI15秒做的&am…

什么是索引?MySQL索引的底层数据结构

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引…

Verilog带参数的`define用法

宏除了可以进行简单的文本替换,还可以像函数和任务一样传递指定多个参数分别对文本进行对应的替换. 示例1: define Disp(pa,pb,pc) \initial \begin \#1200; \$display("%d \n",(papbpc)); \$display(" data_ pa data_ pb data_ pc %d",(…

ChatGPT如何写作-ChatGPT写作程序

ChatGPT如何写作 ChatGPT是一款自然语言处理模型,它无法像人类一样进行“写作”。但是,您可以利用ChatGPT的生成文本功能来帮助您生成文字。以下是一些使用ChatGPT写作的建议: 确定主题和目标受众。在开始写作之前,请确保您清楚知…