aes-ni似乎已被优化以加密/解密大量数据。但是,我正在尝试解密一个密码,并且我有很多很小的尝试要尝试(IV 第一个CBC块,总计32个字节)。
目前我正在使用openssl,每个周期都调用 EVP_DecryptInit_ex
, EVP_DecryptUpdate
(每线程一次EVP_CIPHER_CTX_init
)。
我可以在一个核心上每秒大约200万次。
我认为这是我可以期望使用AES-NI指令的性能,我不必担心进一步优化。这是正确的吗?
有人知道这可能会在高端GPU或不太年就的FPGA上速度快多少?
fpga:您可以将输入块转换为任何合理的FPGA上的输出块,并在几百个MHz处使用2个周期吞吐量,延迟为16个周期。因此,可能是256 mblocks/s管道,或者32 mblocks/s未管道。您可能会在相当便宜的FPGA上获得其中的5个,或者在昂贵的FPGA上获得30多个。ymmv。