在我的另一篇博客【密码算法 之三】分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析 中已经详细的介绍了对称算法(也称为“分组密码算法”)的各种工作模式。这些工作模式中,CBC、CFB、OFB 三种模式可以解决 ECB 模式中相同明文生成相同密文的缺陷,CTR 又可以在此基础上提供多分组并行加密特性,但是它们都不能提供密文消息完整性校验功能,所有就有了 GCM 模式。
1. 概述
GCM 全称为 Galois/Counter Mode,其中 G 是指 GMAC,C 是指 CTR 模式,可以将 GCM 认为是认证模式的一种,提供认证和加密两种功能。GCM模式的分组大小为128bit。
在进行GCM原理分析之前,首先应该了解一下 GHASH函数 及 GCTR函数。
1.1 GHASH
GHASH函数利用了“伽罗瓦域算法”计算HASH值。关于伽罗瓦域算法的不在这里详述(有兴趣的可以自行学习)。
GHASH函数的执行步骤如下:
(1)将字符串 x 分为 128bit 的块 X1, X2, …, Xm;
(2)置 Y0 为 0128(即 Y0 为 128bit 的 0),由于 Y0 与 X1 异或不改变 X1 的值,故下图没有体现 Y0 的存在;
(3)Y

GCM是一种提供认证和加密的模式,基于CTR和GMAC。它使用GHASH函数进行HASH值计算,并通过GCTR实现加密。GCM适合128位分组长度的加密算法如AES和SM4。在加密和解密过程中,需注意数据的Block对齐以及不同情况下的初始化向量处理。
最低0.47元/天 解锁文章
2397

被折叠的 条评论
为什么被折叠?



