
Më 2 qershor, Erik Biggers (inxhinier nga Google) paraqiti implementime të reja të AES-XTS për një performancë shumë më të lartë të procesorëve Intel/AMD duke përdorur grupe të reja të kodit AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 dhe VAES + AVX10/512.
Kodi AES-NI GCM zëvendëson kodin e mëparshëm të shkruar nga Intel dhe eliminon problemet ekzistuese:
«Ky grup azhurnimesh shton në VAES dhe AVX512/AVX10 implementimin e AES-GCM (reajoni Galois/Counter), që rrit performancën e AES-GCM deri në 162%. Për më tepër, zëvendëson kodin e vjetër AES-NI GCM nga Intel me një kod të ri, i cili është pak më i shpejtë dhe rregullon një sërë problemesh, duke përfshirë madhësinë e madhe të skedarit binar që kalon 250 KB. Detajet mund të shihni në rregullimet.
Gjendja përfundimtare e kodit assembler x86_64 AES-GCM është se ne marrim dy dosje assembler: një gjeneron kod AES-NI me AVX ose pa të, ndërsa tjetri gjeneron kod VAES me AVX512/AVX10 me vektorë 256-bit ose 512-bit. Nuk ka mbështetje për VAES të vetëm (pa AVX512/AVX10). Kjo është pak ndryshe nga ajo që kam bërë me AES-XTS, ku një skedar gjeneron kod AVX dhe AVX512/AVX10, duke përfshirë kodin që përdor vetëm VAES (pa AVX512/AVX10), ndërsa skedari tjetër gjeneron vetëm kod të ndryshëm nga AVX. Megjithatë, për momentin kjo duket si zgjedhja e duhur për çdo algoritëm të veçantë, duke pasur parasysh se kufizimi deri në 16 regjistrat SIMD dhe vektorët 128-bit solli disa zgjidhje konstruktive shumë të ndryshme në AES-GCM, por jo aq për AES-XTS. Procesorët që ofrohen vetëm me VAES gjithashtu duken si një fenomen kalimtar, kështu që ndoshta nuk duhet të mundohemi shumë për të mbështetur këtë kombinim».
Burimi: linux.org.ru
