Set de patch-uri pentru accelerarea criptării/decriptării AES-GCM

Set de patch-uri pentru accelerarea criptării/decriptării AES-GCM

Pe 2 iunie, Eric Biggers (inginer de la Google) a prezentat noi implementări AES-XTS pentru o performanță mult mai mare a procesorilor Intel/AMD, folosind noi seturi de instrucțiuni AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 și VAES + AVX10/512.

Codul AES-NI GCM înlocuiește versiunea anterioară, scrisă de Intel, și elimină problemele existente identificate:

„Această serie de actualizări adaugă în VAES și AVX512/AVX10 implementarea AES-GCM (modul Galois/Counter), ceea ce îmbunătățește performanța AES-GCM cu până la 162%. De asemenea, înlocuiește vechiul cod AES-NI GCM de la Intel cu un nou cod care este puțin mai rapid și corectează o serie de probleme, inclusiv dimensiunea uriașă a fișierului binar, care depășește 250 KB. Detalii pot fi găsite în corecții.

Starea finală a codului assembler x86_64 AES-GCM este că obținem două fișiere assembler: unul generează cod AES-NI cu sau fără AVX, iar celălalt generează cod VAES cu AVX512/AVX10 folosind vectori de 256 sau 512 biți. Nu există suport pentru VAES singular (fără AVX512/AVX10). Acest lucru este puțin diferit față de ceea ce am realizat cu AES-XTS, unde un fișier generează cod AVX și AVX512/AVX10, inclusiv cod care utilizează doar VAES (fără AVX512/AVX10), iar celălalt fișier generează doar cod diferit de AVX. Totuși, în prezent, aceasta pare a fi alegerea corectă pentru fiecare algoritm specific, având în vedere că restricția de 16 registre SIMD și vectori de 128 biți a dus la unele decizii de design considerabil diferite în AES-GCM, dar nu atât de mult pentru AES-XTS. Procesorii livrați doar cu VAES par a fi, de asemenea, un fenomen temporar, așa că poate nu ar trebui să ne străduim prea mult să menținem această combinație.”

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster