Hallo an alle Ich versuche, einen Code zu erstellen, um die AES-Verschlüsselung in Assembly zu demonstrieren. Das neueste Intel Handbuch hatImplementierung von AES in Assembly
AESENC XMM1, xmm2/m128 -Führen eine Runde einer AES-Verschlüsselung Umströmung Schlüssel aus dem zweiten Quellenoperanden, auf die 128-Bit-Daten (Zustand) von dem ersten Quelloperand arbeitet, und Speichern Sie das Ergebnis im Zieloperanden.
AESENCLAST XMM1, xmm2/m128 -Führen letzte Runde eines AES-Verschlüsselung Fluss einen Rundenschlüssel aus dem zweiten Quellenoperanden, auf die 128-Bit-Daten (Zustand) von dem ersten Quelloperand arbeitet, und das Ergebnis im Zieloperanden.
AESKEYGENASSIST XMM1, xmm2/m128, imm8 in Unterstützung des AES Chiffrierschlüssel erweitert, durch Schritte zur Erzeugung eines Rundenschlüssel zur Verschlüsselung der Berechnung, unter Verwendung von 128-Bit-Daten in dem Quellenoperanden spezifiziert, und eine 8-Bit-Runde Konstante, die als Sofort angegeben wird, speichert das Ergebnis im Ziel Operand.
Um dies zu tun werde ich Inline-Montage versuchen, ich werde es bauen, um Geschwindigkeiten mit normalen AES in C! mein erstes Brainstorming hat mich darüber nachzudenken, wie xmm in Inline-Assemblierung keine Hilfe/Brainstorming/Austausch von Ideen verwenden, um meine probs über oder die Idee, in der Regel willkommen Prost = ist)
Ich würde lieber einen COBOL-Compiler in Assembly als jede Kryptografie in Assembly codieren. –
@SanJacint: Kryptographie ist einer der wenigen Anwendungsfälle, in denen eine handgefertigte Montage wirklich eine gute Idee ist. Es ist ein kurzer, gut definierter Code, der eine hohe Performance benötigt. Und im Falle von AES gibt es sogar spezielle Anweisungen. – CodesInChaos
FWIW Die PadLock (xcrypt *) - Anweisungen auf VIA-Prozessoren unterstützen auch AES-Algorithmen. Da es länger als Intels Erweiterungen existiert, gibt es mehr Benchmark-Material. – ephemient