AES-NI似乎已经过优化,可以加密/解密大块数据。但是我正在尝试解密密码而且我有很多非常小的位要尝试(iv +第一个cbc块,总共32个字节)。
我现在正在使用openssl,每个周期调用EVP_DecryptInit_ex
,EVP_DecryptUpdate
(每个线程调用一次EVP_CIPHER_CTX_init
)。
我可以在一个核心上每秒执行大约200万次。
我认为这是我使用AES-NI指令所期望的那种性能,我不应该担心进一步优化它。这是对的吗?
有谁知道在高端GPU或不太昂贵的FPGA上可能会有多快?
答案 0 :(得分:0)
FPGA:您可以在任何合理的FPGA上将输入模块转换为输出模块,具有数百MHz的2周期吞吐量,延迟为16个周期。因此,可能是256 Mblocks / s流水线,或者32 Mblocks / s不流水线。你可以在相当便宜的FPGA上获得其中的5个,或者在昂贵的FPGA上获得30+。 YMMV。