0

AES-NI 似乎经过优化以加密/解密大块数据。但是我正在尝试解密密码并且我有很多非常小的位要尝试(iv + 第一个 cbc 块,总共 32 个字节)。

我目前正在使用 openssl ,为每个周期(每个线程一次)调用EVP_DecryptInit_ex, 。EVP_DecryptUpdateEVP_CIPHER_CTX_init

我可以在单核上每秒执行大约 200 万次。

我认为这是使用 AES-NI 指令可以预期的性能,我不应该担心进一步优化它。它是否正确?

有谁知道这在高端 GPU 或不太昂贵的 FPGA 上可能会快多少?

4

1 回答 1

0

FPGA:您可以在任何合理的 FPGA 上将输入块转换为输出块,其 2 周期吞吐量为数百 MHz,延迟为 16 个周期。因此,可能是 256 Mblocks/s 流水线,或者可能是 32 Mblocks/s 未流水线。您可以在相当便宜的 FPGA 上获得其中的 5 个,或者在昂贵的 FPGA 上获得 30 多个。YMMV。

于 2017-12-19T16:27:05.300 回答