Přejít k obsahu

PCLMULQDQ a CLMUL

Referenční příručka k architektuřeFeex

Také nazýváno PCLMULQDQ, CLMUL

PCLMULQDQ provádí násobení bez přenosu (carry-less multiplication) na vybraných 64bitových operandech. CLMUL je běžný zkrácený název pro tuto operaci, která je užitečná v binární polynomiální aritmetice a v autentizačních algoritmech.

Co potřebujete vědět

PCLMULQDQ provádí násobení bez přenosu (carry-less multiplication) na vybraných 64bitových operandech. CLMUL je běžný zkrácený název pro tuto operaci, která je užitečná v binární polynomiální aritmetice a v autentizačních algoritmech.

Jak to funguje

Násobení bez přenosu kombinuje posunuté bitové vzory pomocí operace XOR namísto běžných celočíselných přenosů a vytváří 128bitový polynomiální součin ze dvou 64bitových vstupů. Přímá hodnota (immediate) vybírá quadword z každého 128bitového zdroje. Redukce modulo zvolený polynom je samostatný algoritmický krok.

Kde je funkce užitečná

Implementace AES-GCM může použít součiny bez přenosu k akceleraci GHASH. Správné pořadí operandů, bajtová reprezentace a redukce jsou zásadní; instrukce sama o sobě neimplementuje celou autentizační funkci. Jiné polynomiální kontrolní součty mohou používat příbuzné techniky s vlastními polynomy.

Jak ověřit podporu a aktivaci

CPUID.01H:ECX bit 1 uvádí starší instrukci PCLMULQDQ. Při použití širších kódování zkontrolujte samostatný bit pro vektorové násobení bez přenosu a stavová pravidla pro AVX/AVX-512. Ověřte, že záložní řešení knihovny zachovává stejnou polynomiální aritmetiku.

Používejte udržovanou kryptografickou implementaci, která zajišťuje výběr funkcí, ošetření chybových stavů a kompletní algoritmus. Hardwarová akcelerace poskytuje základní stavební prvky; správa klíčů, autentizace, pravidla pro nonce a volba protokolu zůstávají v odpovědnosti softwaru.

Co tato funkce nezajišťuje

PCLMULQDQ není běžné celočíselné násobení, instrukce pro šifrování AES ani kompletní nástroj pro autentizaci zpráv. Obecný štítek CLMUL nedokazuje podporu širší instrukce VPCLMULQDQ. Časování a propustnost závisí na konkrétní implementaci.

Kompatibilita a výkon v praxi

Pole s uvedenou funkcí není certifikací produktu ani důkazem, že je konkrétní aplikace bezpečná. Výkon závisí na velikostech zpráv, režimu, dávkování a zbytku protokolu. Zkontrolujte skutečného poskytovatele a udržujte jeho bezpečnostní aktualizace aktuální.

Praktický kontrolní seznam pro ověření

  1. Zaznamenejte přesný model procesoru nebo platformy a použité verze aplikace, operačního systému a běhového prostředí. Uchovejte přesné znění chybové zprávy nebo požadavku.
  2. Zkontrolujte dokumentaci výrobce pro daný konkrétní model a poté prověřte skutečně dostupnou kapacitu a stav aktivace v prostředí, kde program běží.
  3. Porovnejte veškeré požadavky vybraného binárního souboru nebo backendu. Podobně pojmenovaná funkce, alias nebo obecné technologické označení nestačí.
  4. Ověřte, že aplikace vybrala zamýšlenou implementaci. Pokud nejsou požadavky splněny, použijte její zdokumentovanou diagnostiku a podporované náhradní řešení.
  5. Provádějte vždy jen jednu podporovanou změnu a zopakujte identickou zátěž. Původní konfiguraci a postup obnovy mějte neustále k dispozici.

Pokud je funkce uvedena, ale software ji nemůže použít

Začněte u přesné komponenty, u níž dochází k selhání. Databáze hardwaru popisuje zaznamenané schopnosti; operační systém nebo hypervizor však může vystavit odlišné efektivní prostředí. Chyba neplatné instrukce vyžaduje také prozkoumání skutečné chybující instrukce a sestavení binárního souboru, protože poškození dat nebo nesouvisející nepodporovaná instrukce mohou vyvolat podobný projev.

Nainstalujte verzi aplikace, ovladače nebo běhového prostředí podporovanou pro danou platformu a v případě potřeby použijte výrobcem zdokumentované základní nebo náhradní sestavení. Aktualizace softwaru nemůže vytvořit instrukci, kterou procesor fyzicky postrádá. Změny firmwaru a zásad zabezpečení by se měly řídit postupem výrobce systému a plánem obnovy, nikoli obecným návodem na optimalizaci.

Zdroje a rozsah tohoto vysvětlení

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

Tyto referenční dokumenty stanovují architektonické chování a softwarové požadavky. Neověřují nezávisle každou hodnotu funkce na odkazované stránce hardwarového modelu. Informace o podpoře konkrétního modelu čerpejte z podkladů výrobce na příslušné stránce a zkontrolujte platnou konfiguraci systému. Tento článek neposkytuje benchmark, certifikaci ani datum nezávislého přezkumu.

Zdroje a ověření

Redakční vlastnictví: Feex. Není zaznamenáno žádné datum nezávislého přezkoumání. Jak provádíme výzkum.

Byl tento článek užitečný?

Stačí ano nebo ne. Pokud chcete, vyberte důvod nebo přidejte krátkou poznámku.

Byl tento článek užitečný?