Aes
AES-CMAC 測試程式碼中的字節順序
我正在查看AES-CMAC RFC ,我發現在測試程式碼中使用測試向量的方式有點違反直覺。
我們來看看關鍵
K
K 2b7e1516 28aed2a6 abf71588 09cf4f3c
最不重要的八位字節是
0x3c
,對嗎?如果這是真的,為什麼它會變成key[15]
而不是key[0]
在測試程式碼中?unsigned char key[16] = { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c };
AES 的密鑰不是數字;它們被定義為位/八位字節(或字節)。因此,它們沒有“最不重要的八位字節”,它們只是由八位字節組成。所以使用從最低索引(左)到最高索引(右)的相同順序。
通常,這些位是從右到左索引的;這可能是由於人類在轉換十六進制數字時遇到了一些麻煩。它只是表明人類在小端思維方面很糟糕。
fgrieu int he comments 中提到的AES 規範 中指定了確切的順序。