PCLMULQDQ ja CLMUL
Kutsutaan myös nimellä PCLMULQDQ, CLMUL
PCLMULQDQ suorittaa kertolaskun ilman muistinumeroa (carry-less multiplication) valituille 64-bittisille operandeille. CLMUL on yleinen lyhyt nimi tälle operaatiolle, jota käytetään binääripolynomiaritmetiikassa ja todennusalgoritmeissa.
Mitä sinun tulee tietää
PCLMULQDQ suorittaa kertolaskun ilman muistinumeroa (carry-less multiplication) valituille 64-bittisille operandeille. CLMUL on yleinen lyhyt nimi tälle operaatiolle, jota käytetään binääripolynomiaritmetiikassa ja todennusalgoritmeissa.
Miten se toimii
Kertolasku ilman muistinumeroa yhdistää siirretyt bittikuviot XOR-operaatiolla tavallisten kokonaislukujen muistinumeroiden sijaan tuottaen 128-bittisen polynomitulon kahdesta 64-bittisestä syötteestä. Välitön operandi (immediate) valitsee nelisanamuotoisen osan kummastakin 128-bittisestä lähteestä. Jakojäännöksen laskenta valitun polynomin suhteen on erillinen algoritmivaihe.
Missä siitä on hyötyä
AES-GCM-toteutus voi käyttää muistinumerottomia tuloja GHASH-laskennan kiihdyttämiseen. Oikea operandien järjestys, tavuesitys ja jakojäännös ovat välttämättömiä; käsky yksinään ei toteuta koko todennustoimintoa. Muut polynomipohjaiset tarkistussummat voivat käyttää vastaavia tekniikoita omilla polynomeillaan.
Tuen ja käyttöönoton tarkistaminen
CPUID.01H:ECX bitti 1 ilmoittaa perinteisen PCLMULQDQ-käskyn. Tarkista erillinen vektorimuotoisen, ilman muistinumeroa tapahtuvan kertolaskun bitti sekä AVX/AVX-512-tilasäännöt, kun käytät laajempia koodauksia. Varmista, että kirjaston korvaava toteutus säilyttää saman polynomiaritmetiikan.
Käytä ylläpidettyä kryptografiatoteutusta, joka käsittelee ominaisuuksien valinnan, virhetilat ja täydellisen algoritmin. Laitteistokiihdytys tarjoaa primitiivejä; avainten hallinta, todennus, kertakäyttönumeroiden säännöt ja protokollien valinnat pysyvät ohjelmiston vastuulla.
Mitä ominaisuus ei takaa
PCLMULQDQ ei ole normaali kokonaislukujen kertolasku, AES-salauskäsky tai täydellinen viestin todennin. Yleinen CLMUL-merkintä ei takaa laajempaa VPCLMULQDQ-tukea. Ajoitus ja suorituskyky riippuvat toteutuksesta.
Yhteensopivuus ja suorituskyky käytännössä
Ominaisuuskenttä ei ole tuotesertifiointi tai todiste siitä, että tietty sovellus on turvallinen. Suorituskyky riippuu viestien koosta, tilasta, eräajosta ja muusta protokollasta. Tarkista todellinen tarjoaja ja pidä sen tietoturvapäivitykset ajan tasalla.
Käytännön tarkistuslista todentamiseen
- Kirjaa tarkka suoritin- tai alustamalli sekä kyseessä olevat sovellus-, käyttöjärjestelmä- ja ajonaikaiset versiot. Säilytä todellisen virheen tai vaatimuksen sanamuoto.
- Tarkista kyseisen tarkan mallin valmistajaviite ja tutki sitten todellinen suorituskyky ja käyttöönottotila ympäristössä, jossa ohjelma suoritetaan.
- Vertaa valitun binaarin tai taustajärjestelmän jokaista vaatimusta. Samankaltaisesti nimetty ominaisuus, alias tai laaja teknologiamerkintä ei riitä.
- Varmista, että sovellus valitsi aiotun toteutuksen. Käytä sen dokumentoitua diagnostiikkaa ja tuettua vararatkaisua, kun vaatimukset eivät täyty.
- Tee yksi tuettu muutos kerrallaan ja toista sama työkuorma. Pidä alkuperäinen kokoonpano ja palautuspolku saatavilla.
Jos ominaisuus on luettelossa, mutta ohjelmisto ei voi käyttää sitä
Aloita tarkasta vikaantuvasta komponentista. Laitteistotietokanta kuvaa tallennettua kykyä; käyttöjärjestelmä tai hypervisori voi tuoda esiin erilaisen todellisen ympäristön. Virheellisen käskyn virhe vaatii myös todellisen virheellisen käskyn ja binaarikäännöksen tutkimista, koska korruptio tai liittymätön tukematon käsky voi aiheuttaa samanlaisen oireen.
Asenna kyseiselle alustalle tuettu sovellus-, ajuri- tai ajoympäristöversio ja käytä tarvittaessa toimittajan dokumentoitua perus- tai varakäännöstä. Ohjelmistopäivitys ei voi luoda käskyä, joka suorittimelta puuttuu. Laiteohjelmisto- ja tietoturvakäytäntömuutosten tulee noudattaa järjestelmävalmistajan menettelyä ja palautussuunnitelmaa yleisen optimointiohjeen sijaan.
Tämän selityksen lähteet ja laajuus
Intel 64 and IA-32 Architectures Software Developer's Manual
Nämä viitteet määrittävät arkkitehtuurisen käyttäytymisen ja ohjelmistovaatimukset. Ne eivät itsenäisesti vahvista kaikkia ominaisuusarvoja linkitetyllä laitteistomallisivulla. Mallikohtaista tukea varten käytä kyseisen sivun valmistajan todisteita ja tarkista todellinen järjestelmäkokoonpano. Tämä artikkeli ei tarjoa suorituskykytestiä, sertifiointia tai riippumatonta arviointipäivämäärää.
Lähteet ja vahvistus
Toimituksellinen omistajuus: Feex. Riippumatonta tarkistuspäivämäärää ei ole kirjattu. Miten tutkimme.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Osat 1 ja 2 kuvaavat nimetyt käskyperheet ja CPUID:n; Osa 3 kuvaa tila-, sivutus-, VMX- ja suojausohjaukset. Arkkitehtuuridokumentaatio ei vahvista tukea tietylle mallille.
Oliko tämä artikkeli hyödyllinen?
Kyllä tai ei riittää. Valitse halutessasi syy tai lisää lyhyt viesti.
Kiitos. Se auttaa meitä parantamaan tätä sivua.