
Június 2-án Éric Biggers (a Google mérnöke) bemutatta az AES-XTS új megvalósításait, amelyek jelentősen magasabb teljesítményt nyújtanak az Intel/AMD processzorok számára az AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 és VAES + AVX10/512 új kódkészleteivel.
Az AES-NI GCM kód felváltja az Intel által írt korábbi verziót, és megszünteti a már azonosított problémákat:
„Ez a frissítési csomag hozzáadja a VAES és AVX512/AVX10 megvalósítást AES-GCM (Galois/Counter mód), ami akár 162%-kal is növeli az AES-GCM teljesítményét. Ezenkívül felváltja az Intel régi AES-NI GCM kódját egy új kóddal, amely kissé gyorsabb és kijavít számos problémát, beleértve a 250 KB-ot meghaladó bináris fájl óriási méretét is. További részletek a javításokban találhatók.
Az x86_64 AES-GCM assembler kód végső állapota, hogy két assembler fájlunk van: az egyik AES-NI kódot generál AVX-szel vagy anélkül, a másik pedig VAES kódot generál AVX512/AVX10 256 bites vagy 512 bites vektorokkal. Ebben nincs egyedi VAES (AVX512/AVX10 nélkül) támogatás. Ez kicsit eltér attól, amit AES-XTS-sel tettem, ahol egy fájl generálja az AVX és AVX512/AVX10 kódot, beleértve azokat a kódokat, amelyek csak VAES használatával működnek (AVX512/AVX10 nélkül), míg a másik fájl csak nem AVX kódot generál. Jelenleg azonban ez a választás a legjobb minden egyes algoritmus szempontjából, figyelembe véve, hogy a 16 SIMD-regiszterre és a 128 bites vektorokra való korlátozás lényegesen eltérő tervezési döntésekhez vezetett az AES-GCM-ben, de nem annyira az AES-XTS-ben. A VAES-szel forgalmazott processzorok szintén átmeneti jelenségnek tűnnek, ezért lehet, hogy nem kellene túl sokat fáradoznunk ennek a kombinációnak a támogatásával.
Forrás: linux.org.ru
