2017-12-19 12 views
-1

AES-NI scheint für das Verschlüsseln/Entschlüsseln großer Datenmengen optimiert zu sein. Ich versuche jedoch, ein Passwort zu entschlüsseln, und ich habe viele sehr kleine Bits zu versuchen (iv + erster cbc Block, 32 Bytes insgesamt).Anzahl der unabhängigen AES 256 CBC-Entschlüsselungsoperationen pro Sekunde mit AES-NI- oder GPU-Beschleunigung

Ich benutze OpenSSL im Moment, Anruf EVP_DecryptInit_ex, EVP_DecryptUpdate für jeden Zyklus (und einmal pro Thread).

Ich kann dies etwa 2 Millionen Mal pro Sekunde auf einem einzigen Kern tun.

Ich gehe davon aus, dass dies die Art von Leistung ist, die ich mit AES-NI-Anweisungen erwarten kann, und ich sollte mich nicht darum kümmern, dies weiter zu optimieren. Ist das richtig?

Hat jemand eine Idee, wie viel schneller dies auf einer High-End-GPU oder nicht zu teuer FPGA sein könnte?

Antwort

0

FPGA: Sie können einen Eingangsblock zu einem Ausgangsblock auf einem vernünftigen FPGA mit einem 2-Zyklus-Durchsatz bei mehreren hundert MHz mit einer Latenzzeit von 16 Zyklen konvertieren. Also, möglicherweise 256 Mblöcke/s Pipeline, oder vielleicht 32 Mblöcke/s nicht Pipeline. Sie könnten vielleicht 5 davon auf einem relativ günstigen FPGA bekommen, oder 30+ auf einem teuren. YMMV.

Verwandte Themen