当前位置: 首页 > news >正文

CMAC算法原理

1、CMAC 原理

采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,

增加了分组之间的关联性。

CMAC 计算的步骤可分为:

1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

2、消息加密处理;

3、最后一个块(block)处理,得到固定长度的 MAC 值。

1.1 、子密钥计算(K1/K2 生成)

AES-CMAC 通过 AES-CBC 加密算法对主密钥 K 进行扩展计算,得到子密钥 K1,之后再由 K1 拓展得到子密钥 K2

主要步骤如下:

1、将密钥 K,及全 0 的常量通过 AES-128(K, const_Zero)计算得到密文 L;

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。否则,K1 是 const_Rb 与 L 左移 1 位

的异或;

3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。否则,K2 是 const_Rb 与 K1 左移

1 位的异或;

如下为对应的伪代码:

const_Zero = 0x00000000000000000000000000000000;
const_Rb   = 0x00000000000000000000000000000087;
/* Variables: L    for output of AES-128 applied to 0^128*/

L = AES-128(K, const_Zero);
if (MSB(L) is equal to 0)
{    
  K1 = L << 1;
}else
{    
  K1 = (L << 1) XOR const_Rb; 
}    
if (MSB(K1) is equal to 0)
{     
  K2 = K1 << 1;
}else
{   
  K2 = (K1 << 1) XOR const_Rb; 
}    
return K1, K2;

1.2、CMAC 工作原理

1、初始化:CMAC 使用一个固定长度的密钥来初始化,密钥长度通常与底层的对称加密算法(如 AES)相关联。

2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小

3、生成子密钥,参考上面的子密钥计算;

4、生成 MAC:将消息的每个块与 K1 进行加密。对于最后一个块,若长度不够,则使用填充,填充方式可选 ISO/IEC 9797-1

Padding Method。在与 K2 异或为最后一个块 Mn。若最后一个块 Mn 是完整块,则 Mn 与 K1 异或之后作为最后一个块 Mn。

整体示意图如下:

相关文章:

  • springboot 打包 failed with MalformedInputException: Input length = 1
  • SaaS系统的销售微服务与权限微服务边界设计
  • 湖仓一体:数据湖与数据仓库的融合模式解析
  • 算法系列——有监督学习——3.逻辑回归
  • 现代时尚标签海报包装网站设计几何风PSAI无衬线英文字体安装包 Matahari Sans Font Family
  • 【linux】统信操作系统修改默认编辑模式从nano改为vim
  • Q2流动式起重机司机考试模拟题库
  • 耘想Android NAS 用户权限设置说明书
  • SQL 中 WHERE 与 HAVING 子句的使用
  • 一些关于瓶装燃气送气工考试的常见考点
  • Spring MVC 参数校验-校验注解
  • Asahi Linux 核心开发者暂停苹果 GPU Linux 驱动开发工作
  • GGUF、Transformer、AWQ 详解与关系梳理
  • 【最新版0.47.8】Cursor下载安装教程
  • iPhone 16怎么编辑图片?图片编辑技巧、软件分享
  • [Xilinx]工具篇_PetaLinux自动编译
  • 全面解析软件开发流程与工具对比
  • Evo2:跨所有生命领域的基因组建模与设计
  • 利用Linux的I2C子系统和i2c-tools工具集写出的对I2C设备AP3216C读写的应用程序
  • Python Cookbook-4.8 二维阵列变换
  • 武康大楼再开发:一栋楼火还不够,要带火街区“朋友圈”
  • 用贝多芬八首钢琴三重奏纪念风雨并肩20年
  • 白玉兰奖征片综述丨海外剧创作趋势观察:跨界·融变·共生
  • 查幽门螺杆菌的这款同位素长期被海外垄断,秦山核电站实现突破
  • 韶关一企业将消防安装工程肢解发包,广东住建厅:罚款逾五万
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展