_mm_aeskeygenassist_si128 硬件指令执行的操作

根据Intel的文档,`_mm_aeskeygenassist_si128` 指令执行以下操作:

result[31:0] = SubWord(RotWord(temp)) xor Rcon;

result[63:32] = SubWord(RotWord(temp));

result[95:64] = SubWord(RotWord(temp)) xor Rcon;

result[127:96] = SubWord(RotWord(temp));

其中,temp是输入寄存器的32位部分,实际上,该指令将输入分成两个64位部分,对每个64位部分的高32位进行RotWord和SubWord,然后与轮常数异或(对于第一个和第三个32位块),然后复制到输出寄存器的相应位置。

在AES-256的密钥扩展中,我们通常使用该指令生成一个中间值,然后与之前的轮密钥异或。

而 shuffle 操作是为了将这个中间值调整为正确的形式。在代码中,我们使用了0xFF和0xAA。

相关推荐
林shir1 分钟前
Java基础1.4-运算符
java·开发语言
qq_433554549 分钟前
C++ 状压DP(01矩阵约束问题)
c++·算法·矩阵
千里马-horse10 分钟前
CallbackInfo
c++·node.js·napi·callbackinfo
serendipity_hky16 分钟前
【go语言 | 第6篇】Go Modules 依赖解决
开发语言·后端·golang
何小义的AI进阶路29 分钟前
win下 vscode下 C++和opencv的配置与使用
c++·图像处理·vscode·opencv
小oo呆30 分钟前
【学习心得】Python的TypedDict(简介)
开发语言·python
文洪涛34 分钟前
VS Code Python “第一次运行失败 / 先执行 python 再激活 Conda” 问题定位与解决
开发语言·python·conda
wanghowie43 分钟前
01.08 Java基础篇|设计模式深度解析
java·开发语言·设计模式
wjs20241 小时前
Memcached stats 命令详解
开发语言
云技纵横1 小时前
Stream API 从入门到实践:常用操作、易错点与性能建议
开发语言·windows·python