Gyorsabb kriptográfiát ígér az NVIDIA CUDA 13.3 új utasítása

Az NVIDIA CUDA 13.3 új, clmad nevű PTX-utasítással egészíti ki az Ampere és újabb GPU-kat. Az NVIDIA mérései szerint a megoldás jelentősen felgyorsítja a GHASH hitelesítési hash-t és a nulla tudású bizonyítások egyik alapműveletét.
- A CUDA 13.3 bevezeti a clmad carryless multiply-accumulate PTX-utasítást.
- A funkció minden Ampere és újabb NVIDIA GPU-n, SM 80 vagy magasabb verziótól érhető el.
- A B200-on a GHASH mért csúcsteljesítménye körülbelül 6335 GB/s volt.
- Az NVIDIA szerint a GHASH akár 18,8-szor gyorsabb a bitszeletelt megoldásnál.
- A sum-check protokoll teljesítménye 4 és 13 közötti szorzóval javult.
Hardveres támogatást kapott a carryless szorzás
A CUDA 13.3 olyan hardveresen gyorsított utasítást vezet be, amely két 64 bites bemenet carryless szorzását végzi el, 128 bites eredménnyel. A clmad működése az x86 processzorok PCLMULQDQ utasításához hasonló. Az utasítás .hi és .lo változata az eredmény felső, illetve alsó 64 bitjét számítja ki, miközben egy 64 bites akkumulátorértéket is hozzáad.
A funkció minden NVIDIA Ampere és újabb GPU-n elérhető, vagyis az SM 80 vagy magasabb verziójú rendszereken. A fejlesztők a műveletet közvetlenül CUDA-kernelfüggvényekben használhatják, így nem kell kizárólag bitszeletelt áramkörökre, valamint ezekhez kapcsolódó biteltolásokra és maszkolásra támaszkodniuk.
A carryless szorzás a bináris kiterjesztési testek, például a GF(2128) műveleteinek egyik alapja. Ezekben az összeadás XOR-művelet, a szorzás pedig polinomok szorzásaként írható le, amelyet egy irreducibilis polinom szerinti redukció követ.
A GHASH teljesítménye több terabájtot érhet el másodpercenként
Az NVIDIA két kriptográfiai feladaton vizsgálta a clmad hatását. Az egyik a GHASH, amely az AES-GCM hitelesítési hash-e. Az AES-GCM-et a forrás a TLS, a VPN-ek és az adatközponti titkosítás széles körben használt AEAD-rejtjeleként írja le.
A GHASH a bemenetet 128 bites blokkokra bontja, ezeket XOR-olja egy futó akkumulátorhoz, majd az értéket egy, a GF(2128) testben végzett szorzással frissíti. A CUDA 13.3-ban a művelet clmad-utasításokkal és moduláris redukcióval gyorsítható.
Az NVIDIA GeForce RTX 5090-en a mérés csúcsteljesítménye körülbelül 1300 GB/s volt, ami kétszerese a bitszeletelt megoldásénak. Az NVIDIA B200-on körülbelül 6335 GB/s-os értéket mértek, ami közel van a DRAM olvasási sávszélességéhez, és legfeljebb 18,8-szor múlja felül a korábbi bitszeletelt változatot.
A technológia több kriptográfiai területet érint
A másik vizsgált feladat a sum-check protokoll, amely számos nulla tudású bizonyítási rendszer alapvető eleme. Ezekben az egyik fél úgy bizonyíthatja egy számítás eredményének helyességét, hogy az ellenőrzőnek nem kell újra elvégeznie a teljes számítást. A forrás szerint a GF(2128) felett végzett sum-check teljesítménye a korábbi bitszeletelt megközelítéshez képest 4 és 13 közötti szorzóval javul.
A carryless szorzás használata ennél szélesebb körű. A műveletre épülnek többek között a CRC-k, a tárolórendszerekben és távközlési alapsávi feldolgozásban használt Reed-Solomon-kódok, a flashmemóriák BCH-kódjai, kvantum-stabilizátorkódok, egyes posztkvantum-kriptográfiai sémák, valamint a Biniushoz hasonló bináris mezőket használó nulla tudású rendszerek.
A bejelentés elsősorban a CUDA-fejlesztőknek szól, akik GPU-s feldolgozási láncokba építenek kriptográfiát, továbbá a bináris mezőkre épülő protokollokkal foglalkozó biztonsági és adatvédelmi kutatóknak. Az NVIDIA a CUDA 13.3 letöltését, a posztkvantum-kriptográfiai munkafolyamatokhoz pedig a cuPQC SDK megismerését javasolja.
NVIDIA Developer: Building Faster Cryptography with Carryless Multiplication in NVIDIA CUDA 13.3


