AES CCM模式理解

AES CCM模式理解

  • 涉及概念
  1. AES CCM加密模式使用CBC_MAC和CTR加密模式实现
  2. L长度域,涉及CBC_MAC计算和CTR计算两个计算过程理解,具体见计算过程描述。
  3. M为输出Tag长度。
  4. Tag为校验值内容,具体见计算过程描述。
  5. 输出内容包括CTR加密结果和Tag值。
  • 计算过程
  1. CBC_MAC计算

<上图引用网络资源>

构造B0、B1……、Bn,每组16个字节

CBC_MAC B0结构:

flags | Nonce (即IV,15-L bytes) | data长度(2~8 bytes, MSB

其中flags结构为:

Bit Number     Contents
----------     ----------------------
7              保留位必须为
0
6              Adata是否存在
5 ... 3        M’ = (M-2)/2, M为输出的Tag长度(468121416)
2 ... 0        L’ = L – 1 L为明文数据长度占用字节数

B1结构:

长度(2、6、10字节)| 附加数据(16-长度)

       0 < l(a) < (2^16 - 2^8)         ======è2个字节长度

       (2^16 - 2^8) <= l(a) < 2^32     ======è6个字节长度

       2^32 <= l(a) < 2^64             ======è10个字节长度

       B2 B3……. Bn为附加数据分组,其中包含附件数据和明文数据

       以B0加密结果作为IV分别对B2 B3……. Bn做CBC计算,得到Tag

2. CTR计算

<上图引用网络资源>

构造Ctr0

Octet Number          Contents
------------          ---------
0                     Flags = L-1
1 ... 15-L         Nonce
IV
16-L ... 15           Counter i,默认全0

CBC加密Ctr0,得到结果后续与Tag异或得到校验值(输出)

CTR方式计算明文数据Ctr1、Ctr2….. Ctrn,得到密文(输出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值