
Den 2 juni presenterade Eric Biggers (ingenjör pÄ Google) nya implementationer av AES-XTS för betydligt högre prestanda pÄ Intel/AMD-processorer med hjÀlp av nya kodsatser som AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 och VAES + AVX10/512.
AES-NI GCM-koden ersÀtter den tidigare skriven av Intel och ÄtgÀrdar existerande identifierade problem:
"Denna uppsÀttning uppdateringar lÀgger till AES-GCM-implementering i VAES och AVX512/AVX10 (Galois/Counter-lÀget), vilket ökar prestandan för AES-GCM med upp till 162%. Dessutom ersÀtter den den gamla AES-NI GCM-koden frÄn Intel med ny kod som Àr nÄgot snabbare och löser flera problem, inklusive den enorma storleken pÄ den binÀra filen som överstiger 250 KB. Se detaljer i patcharna."
Det slutliga tillstÄndet för x86_64 AES-GCM assemblerkod Àr att vi fÄr tvÄ assemblerfiler: en som genererar AES-NI-kod med eller utan AVX, och en annan som genererar VAES-kod med AVX512/AVX10 med 256-bitars eller 512-bitars vektorer. Stöd för ensamstÄende VAES (utan AVX512/AVX10) saknas. Detta skiljer sig nÄgot frÄn vad jag gjorde med AES-XTS, dÀr en fil genererar AVX och AVX512/AVX10-kod, inklusive kod som endast anvÀnder VAES (utan AVX512/AVX10), och en annan fil genererar endast kod som skiljer sig frÄn AVX. Men för tillfÀllet verkar detta vara rÀtt val för varje specifik algoritm, med tanke pÄ att begrÀnsningen till 16 SIMD-register och 128-bitars vektorer har lett till nÄgra betydligt olika konstruktionslösningar i AES-GCM, men inte lika mycket för AES-XTS. Processorer som levereras endast med VAES verkar ocksÄ vara ett tillfÀlligt fenomen, sÄ vi kanske inte ska anstrÀnga oss för mycket för att stödja denna kombination."
KĂ€lla: linux.org.ru
