在装配中实施AES

时间:2011-01-05 22:05:08

标签: c security inline-assembly aes

大家好 我正在尝试构建一个代码来演示在汇编中进行AES加密。最新的英特尔手册

AESENC xmm1,xmm2 / m128 -Perform一轮AES加密流程轮密钥 来自第二个源操作数,从第一个操作数128位数据(状态)开始 源操作数,并将结果存储在目标操作数中。

AESENCLAST xmm1,xmm2 / m128 - 执行最后一轮AES加密流程 圆形钥匙 来自第二个源操作数,从第一个操作数128位数据(状态)开始 源操作数,并将结果存储在目标操作数中。

AESKEYGENASSIST xmm1,xmm2 / m128,imm8 通过计算生成数据的步骤,协助扩展AES密码密钥 用于加密的轮密钥,使用源操作数中指定的128位数据和 指定为立即数的8位循环常量,将结果存储在目标中 操作数。

要做到这一点,我将尝试内联汇编,我将构建它来比较C中使用普通AES的速度!我的第一次头脑风暴让我想到如何在内联装配中使用xmm 关于我的probs或一般的想法的任何帮助/头脑风暴/分享想法是受欢迎的 干杯=)

1 个答案:

答案 0 :(得分:2)

如果要在XMM寄存器中获得128位值,请查看MOVDQA和MOVDQU指令。