使用 AES-NI 或 GPU 加速的每秒独立 AES 256 CBC 解密操作数

Number of independent AES 256 CBC decryption operations per second with AES-NI or GPU acceleration

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

我目前正在使用 openssl,每个周期调用 EVP_DecryptInit_exEVP_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.