大家好 我正在试图构建一个代码来演示如何在汇编中进行AES加密。 Intel最新手册有AES在汇编中的实现
AESENC xmm1中,XMM2/m128中-Perform AES加密流的一个圆轮密钥 从第二源操作数,从第一 源操作数上的128位数据(状态)下操作,并将结果存储在目标操作数中。
AESENCLAST xmm1中,XMM2/AES加密流 的循环密钥 从第二源操作数,从第一 源操作数上的128位数据(状态)下操作,m128中的最后-Perform回合和存储结果在目标操作数中。
AESKEYGENASSIST xmm1中,XMM2/m128中,imm8指定 协助扩展AES加密密钥,通过计算向生成用于加密的 回合密钥步骤,使用圆在源操作数指定的128位数据和 8位常数指定为立即数,将结果存储在目标操作数 中。
要做到这一点,我会尝试内联汇编,我会建立它来比较在C中完成的正常AES的速度!我第一次头脑风暴带我思考如何在联汇编 使用XMM任何帮助/集思广益/共享的思想有关,一般我probs或想法,欢迎 干杯=)
我宁愿在程序集中编写COBOL编译器,也不愿意使用程序集中的任何加密。 – 2011-01-05 22:07:30
@SanJacint:密码学是少数几个使用手工制作装配真的是个好主意的例子之一。它是短小的,定义明确的代码,需要高性能。而在AES的情况下,甚至还有特别的说明。 – CodesInChaos 2011-01-05 22:09:41
FWIW VIA处理器上的PadLock(xcrypt *)指令也支持AES算法,并且已经比英特尔的扩展功能延长了许多时间,这里有更多的基准测试材料。 – ephemient 2011-01-05 22:19:42