首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有256位密钥的RFC 4493 (AES-CMAC)算法

具有256位密钥的RFC 4493 (AES-CMAC)算法
EN

Cryptography用户
提问于 2020-05-26 19:21:09
回答 1查看 2K关注 0票数 2

我为新手的问题道歉。如果我使用一个256位键和AES256 (假设我有函数而不是AES128 ),函数xor_128、leftshift_bit、generate_subkey等中的for循环的长度将保持为16正确吗?因为AES256还返回128位的结果。

示例xor_128函数

代码语言:javascript
复制
void xor_128(unsigned char *a, unsigned char *b, unsigned char *out)
 {
      int i;
      for (i=0;i<16; i++)
      {
          out[i] = a[i] ^ b[i];
      }
  }

法4493中的AES-CMAC算法

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-05-26 20:40:24

AES有128、192和256位密钥大小,并且始终是128位块大小.它们通常被写成AES128、AES192和AES256。块大小是隐式的,因为它总是128。

基本功能xor_128用于支持CBC对消息块、密文块和密钥的x-or操作。无论键大小如何,块大小始终为128。

rfc4493没有提到AES192或AES256。这并不意味着一个人不能使用AES128以外的任何其他东西。rfc4493只为AES128提供测试代码。

NIST在NIST:分组密码操作模式- CMAC认证模式中为AES128、AES192和AES256提供测试向量。

Generate_Subkey算法还需要xor-128来派生密钥,因为密钥是带块的xored。从代码中可以看出这一点。

代码语言:javascript
复制
  Step 4.  if flag is true                                        
           then M_last := M_n XOR K1;                             
           else M_last := padding(M_n) XOR K2;

常数是相同的,标准可以在NIST 800-38B:分组密码操作模式推荐: CMAC认证模式中找到

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/81006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档