
2. juuni Eric Biggers (Google'i insener) tutvustas uusi AES-XTS rakendusi, et parandada Intel/AMD protsessorite jõudlust uute AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 ja VAES + AVX10/512 koodikomplektide abil.
AES-NI GCM kood asendab varasema, Intel'i kirjutatud koodi ja kõrvaldab olemasolevad tuvastatud probleemid:
„See värskenduste komplekt lisab VAES-i ja AVX512/AVX10-le AES-GCM (Galois/Counter režiim) rakenduse, mis suurendab AES-GCM jõudlust kuni 162%. Lisaks asendab see vanemad AES-NI GCM koodid Intelilt uue koodiga, mis on natuke kiirem ja lahendab mitmeid probleeme, sealhulgas tohutu binaarfaili suuruse, mis ületab 250 KB. Üksikasju vaata parandustes.”
x86_64 AES-GCM assambleerimiskoodi lõpptulemusena saame kaks assambleerimisfaili: üks genereerib AES-NI koodi AVX-i või ilma, teine genereerib VAES koodi AVX512/AVX10 koos 256-bitiste või 512-bitiste vektoritena. See ei toeta ühte VAES-i (ilma AVX512/AVX10). See erineb veidi sellest, mida ma tegin AES-XTS-iga, kus üks fail genereerib AVX ja AVX512/AVX10 koodi, sealhulgas koodi, mis kasutab ainult VAES-i (ilma AVX512/AVX10), ja teine fail genereerib ainult mitte-AVX koodi. Siiski tundub, et see on praegu iga konkreetse algoritmi jaoks õige valik, arvestades, et piirang 16 SIMD register ja 128-bitised vektorid on viinud mõningate oluliselt erinevate konstrueerimisotsusteni AES-GCM-is, kuid mitte nii palju AES-XTS-is. Protsessorid, mis on varustatud ainult VAES-iga, näivad ka ajutine nähtus, seega ei peaks me võib-olla liiga palju pingutama selle kombinatsiooni säilitamiseks.
Allikas: linux.org.ru
