Skoči na sadržaj

PCLMULQDQ i CLMUL

Arhitekturna referencaFeex

Također se naziva PCLMULQDQ, CLMUL

PCLMULQDQ izvodi množenje bez prijenosa na odabranim 64-bitnim operandima. CLMUL je uobičajeni kratki naziv za ovu operaciju, koja je korisna u aritmetici binarnih polinoma i algoritmima za provjeru autentičnosti.

Što trebate znati

PCLMULQDQ izvodi množenje bez prijenosa na odabranim 64-bitnim operandima. CLMUL je uobičajeni kratki naziv za ovu operaciju, koja je korisna u aritmetici binarnih polinoma i algoritmima za provjeru autentičnosti.

Kako funkcionira

Množenje bez prijenosa kombinira pomaknute uzorke bitova s XOR-om umjesto običnih cjelobrojnih prijenosa, proizvodeći 128-bitni polinomski umnožak iz dva 64-bitna ulaza. Neposredna vrijednost (immediate) odabire četverostruku riječ iz svakog 128-bitnog izvora. Redukcija po modulu odabranog polinoma zaseban je algoritamski korak.

Gdje je korisno

Implementacija AES-GCM-a može koristiti umnoške bez prijenosa za ubrzavanje GHASH-a. Ispravan redoslijed operanada, reprezentacija bajtova i redukcija su ključni; sama instrukcija ne implementira cjelokupnu funkciju provjere autentičnosti. Druge kontrolne sume polinoma mogu koristiti srodne tehnike s vlastitim polinomima.

Kako provjeriti podršku i omogućavanje

CPUID.01H:ECX bit 1 nabraja naslijeđenu instrukciju PCLMULQDQ. Provjerite zaseban bit za vektorsko množenje bez prijenosa i pravila AVX/AVX-512 stanja pri korištenju širih kodiranja. Potvrdite da zamjensko rješenje biblioteke zadržava istu polinomsku aritmetiku.

Koristite održavanu kriptografsku implementaciju koja upravlja odabirom značajki, uvjetima pogrešaka i potpunim algoritmom. Hardversko ubrzanje pruža primitive; upravljanje ključevima, autentifikacija, pravila za jednokratne brojeve (nonce) i izbori protokola ostaju odgovornost softvera.

Što ova značajka ne utvrđuje

PCLMULQDQ nije normalno cjelobrojno množenje, AES instrukcija za šifriranje niti potpuni autentifikator poruka. Generička oznaka CLMUL ne utvrđuje širu podršku za VPCLMULQDQ. Vrijeme izvođenja i propusnost ovise o implementaciji.

Kompatibilnost i performanse u praksi

Polje značajke nije certifikacija proizvoda niti dokaz da je određena aplikacija sigurna. Performanse ovise o veličinama poruka, načinu rada, obradi u serijama i ostatku protokola. Provjerite stvarnog pružatelja usluga i održavajte njegova sigurnosna ažuriranja ažurnima.

Praktičan kontrolni popis za provjeru

  1. Zabilježite točan model procesora ili platforme te verzije aplikacije, OS-a i izvršnog okruženja. Sačuvajte formulaciju stvarne pogreške ili zahtjeva.
  2. Provjerite proizvođačevu referencu za taj točan model, a zatim pregledajte stvarnu sposobnost i omogućeno stanje u okruženju u kojem se program izvodi.
  3. Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
  4. Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
  5. Napravite jednu po jednu podržanu promjenu i ponovite isto radno opterećenje. Zadržite izvornu konfiguraciju i put oporavka dostupnima.

Ako je značajka navedena, ali je softver ne može koristiti

Počnite s točnom komponentom koja zakazuje. Hardverska baza podataka opisuje zabilježenu sposobnost; operacijski sustav ili hipervizor mogu izložiti drukčije stvarno okruženje. Pogreška nedopuštene instrukcije također zahtijeva istragu stvarne instrukcije koja uzrokuje pogrešku i binarne građe, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.

Instalirajte verziju aplikacije, upravljačkog programa ili izvršnog okruženja podržanu za točnu platformu i upotrijebite proizvođačevu dokumentiranu osnovnu ili zamjensku građu ako je potrebno. Softversko ažuriranje ne može stvoriti instrukciju koja procesoru nedostaje. Promjene u firmwareu i sigurnosnim pravilima trebaju slijediti postupak proizvođača sustava i plan oporavka, a ne generički recept za optimizaciju.

Izvori i opseg ovog objašnjenja

Intel 64 and IA-32 Architectures Software Developer's Manual

Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verificiraju neovisno svaku vrijednost značajke na povezanoj stranici hardverskog modela. Za podršku modela upotrijebite proizvođačeve dokaze s te stranice i provjerite stvarnu konfiguraciju sustava. Ovaj članak ne pruža mjerilo performansi, certifikaciju ili datum neovisnog pregleda.

Izvori i provjera

Uredničko vlasništvo: Feex. Nije zabilježen datum neovisnog pregleda. Kako istražujemo.

Je li ovaj članak bio koristan?

Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.

Je li ovaj članak bio koristan?