我应何时单独使用AESIMC,而不是使用AESDEC

问题描述 投票:3回答:1

Intel ISA允许我使用AES指令一起对一轮的所有4个步骤进行加密/解密,或者在最后一轮中仅对其中3个进行加密/解密。唯一具有单独指令的步骤是InvMixColumn Transformation(AESIMC)。

为什么?在哪种条件下,我应该分别使用AESDEC / AESDECLAST?]

assembly encryption aes intel instruction-set
1个回答
2
投票

当执行AES-192(FIPS 197)时,您在密钥上应用了说明。假设您将密钥输入到寄存器xmm2至xmm14中,如下所示:

aesimc xmm2, xmm2
aesimc xmm3, xmm3
aesimc xmm4, xmm4
...
aesimc xmm13, xmm13
aesimc xmm14, xmm14

这发生在aesdec之前。只要aesimc发生在寄存器中,然后与解密指令一起使用,这些指令也可能会发生迁移:

aesimc xmm14, xmm14
aesdec xmm1, xmm14
aesimc xmm13, xmm13
aesdec xmm1, xmm13
...

但是,一次完成所有操作可能会更快,因为那样一来,寄存器就可以方便地用于aesdec指令。

仅供参考,说明文档说:

注意:AESIMC指令应应用于扩展的AES圆形密钥(第一个和最后一个圆形密钥除外),以使其准备使用“等效逆密码”(在FIPS 197中定义)进行解密。

来源:http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/aes-instructions-set-white-paper.pdf(搜索“代码示例”一章。)>

© www.soinside.com 2019 - 2024. All rights reserved.