Hoppa till innehåll

PCLMULQDQ och CLMUL

ArkitekturreferensFeex

Kallas aven PCLMULQDQ, CLMUL

PCLMULQDQ utfor carry-less multiplikation pa utvalda 64-bitarsoperander. CLMUL ar ett vanligt kortnamn for denna operation, som ar anvandbar i binarpolynomaritmetik och autentiseringsalgoritmer.

Vad du behöver veta

PCLMULQDQ utfor carry-less multiplikation pa utvalda 64-bitarsoperander. CLMUL ar ett vanligt kortnamn for denna operation, som ar anvandbar i binarpolynomaritmetik och autentiseringsalgoritmer.

Hur det fungerar

Carry-less multiplikation kombinerar skiftade bitmonster med XOR i stallet for vanliga heltalsminnessiffror, vilket producerar en 128-bitars polynomprodukt fran tva 64-bitarsindata. Ett omedelbart varde valjer ett dubbelord om 64 bitar fran varje 128-bitars kalla. Reduktion modulo ett valt polynom ar ett separat algoritmiskt steg.

Där den är användbar

En AES-GCM-implementation kan anvanda carry-less produkter for att accelerera GHASH. Korrekt operandordning, byterepresentation och reduktion ar nojaktigt nodvandiga; instruktionen ensam implementerar inte hela autentiseringsfunktionen. Andra polynomkontrollsummor kan anvanda relaterade tekniker med sina egna polynom.

Hur man kontrollerar stöd och aktivering

CPUID.01H:ECX bit 1 raknar upp den aldre PCLMULQDQ-instruktionen. Kontrollera den separata biten for vektoriserad carry-less multiplikation samt tillstandsreglerna for AVX/AVX-512 nar bredare kodningar anvands. Bekrafta att bibliotekets reservlosning bevarar samma polynomaritmetik.

Använd en underhållen kryptografisk implementering som hanterar funktionsval, feltillstånd och hela algoritmen. Hårdvaruacceleration tillhandahåller grundfunktioner; nyckelhantering, autentisering, nonceregler och protokollval förblir programvarans ansvar.

Vad funktionen inte fastställer

PCLMULQDQ ar inte en vanlig heltalsmultiplikation, en AES-krypteringsinstruktion eller en fullstandig meddelandeautentiserare. En generisk CLMUL-etikett faststaller inte stod for bredare VPCLMULQDQ. Timing och genomstromning beror pa implementationen.

Kompatibilitet och prestanda i praktiken

Ett funktionsfält är inte en produktcertifiering eller ett bevis på att en specifik applikation är säker. Prestanda beror på meddelandestorlekar, läge, batchning och resten av protokollet. Kontrollera den faktiska leverantören och håll dess säkerhetsuppdateringar aktuella.

En praktisk checklista för verifiering

  1. Registrera den exakta processor- eller plattformsmodellen samt de applikations-, OS- och runtime-versioner som berörs. Behåll formuleringen av det faktiska felet eller kravet.
  2. Kontrollera tillverkarens referens för den exakta modellen och granska sedan den faktiska kapaciteten och det aktiverade tillståndet i miljön där programmet körs.
  3. Jämför varje krav för den valda binären eller renderingsmotorn. En snarlikt namngiven funktion, ett alias eller en bred teknikbeteckning räcker inte.
  4. Bekräfta att applikationen har valt den avsedda implementeringen. Använd dess dokumenterade diagnostik och en reservlösning som stöds när kraven inte uppfylls.
  5. Gör en ändring som stöds i taget och upprepa samma arbetsbelastning. Håll den ursprungliga konfigurationen och återställningsvägen tillgängliga.

Om funktionen är listad men programvaran inte kan använda den

Börja med den exakta komponenten som fallerar. En hårdvarudatabas beskriver registrerad kapacitet; operativsystemet eller hypervisorn kan exponera en annan faktisk miljö. Ett fel om otillåten instruktion kräver också undersökning av den faktiska felande instruktionen och binärbygget, eftersom korruption eller en orelaterad instruktion utan stöd kan ge ett liknande symptom.

Installera den version av applikationen, drivrutinen eller runtime-miljön som stöds för den exakta plattformen, och använd vid behov tillverkarens dokumenterade baslinje eller reservbygge. En programvaruuppdatering kan inte skapa en instruktion som processorn saknar. Ändringar i firmware och säkerhetspolicy bör följa systemtillverkarens procedur och en återställningsplan snarare än ett generiskt optimeringsrecept.

Källor och omfattning för denna förklaring

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

Dessa referenser fastställer arkitektoniskt beteende och programvarukrav. De verifierar inte oberoende varje funktionsvärde på en länkad hårdvarumodellsida. För modellstöd, använd den sidans tillverkarbelägg och kontrollera den effektiva systemkonfigurationen. Denna artikel tillhandahåller inte ett prestandatest, en certifiering eller ett oberoende granskningsdatum.

Källor och verifiering

Redaktionellt ägarskap: Feex. Inget oberoende granskningsdatum har registrerats. Hur vi efterforskar.

Var denna artikel användbar?

Ett ja eller nej räcker. Välj en anledning om du vill, eller lägg till en kort anteckning.

Var denna artikel användbar?