Produkt bez přenášení - Carry-less product

Výpočet produktu bez přenášení.

The produkt bez přenášení ze dvou binární čísla je výsledkem násobení bez přenášení z těchto čísel. Tato operace koncepčně funguje jako dlouhé násobení kromě toho, že nést je zahozeno místo toho, aby bylo aplikováno na významnější pozici konečná pole, zejména množení polynomů z GF (2) [X], polynomiální kruh přes GF (2).

Operace je také známá jako Násobení XOR, protože doplněk carry-discarding je ekvivalentní exkluzivnímu nebo.

Definice

Vzhledem k tomu, dvě čísla a ,s označující bity těchto čísel. Potom je definován součin přenášení těchto dvou čísel, s každým bitem počítáno jako exkluzivní nebo produktů bitů ze vstupních čísel takto:[1]

Příklad

Zvážit A = 101000102 a b = 100101102, přičemž všechna čísla jsou uvedena v binárních číslech. Pak je jejich násobení bez přenášení v podstatě to, co by člověk získal od provedení dlouhého násobení, ale ignorování přenášení.

                  1 0 1 0 0 0 1 0 = a --------------- | --- | ------- | - 1 0 0 1 0 1 1 0 | 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 | 0 0 0 0 0 1 0 0 1 0 1 1 0 | 0 -------------------- ---------- 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 ^ ^

Takže produkt bez přenášení A a b bylo by C = 1011000111011002Pro každý bit nastavený v počtu A, číslo b je posunut doleva jako mnoho bitů, jak je naznačeno polohou bitu v AVšechny tyto posunuté verze jsou poté kombinovány pomocí exkluzivního nebo namísto běžného sčítání, které by bylo použito pro pravidelné dlouhé násobení. To lze vidět ve sloupcích označených ^, kde pravidelné přidávání by způsobilo přenesení do sloupce vlevo, což se zde neděje.

Násobení polynomů

Produkt carry-less lze také chápat jako násobení polynomů nad polem GF (2) Důvodem je, že výhradní nebo odpovídá přidání v tomto poli.

Ve výše uvedeném příkladu čísla A a b odpovídá polynomům

a jejich produktem je

což je číslo C vypočítané výše kóduje. Všimněte si, jak a díky thearithmetic v GF (2). To odpovídá označeným sloupcům ^ v příkladu.

Aplikace

Prvky GF (2n), tj. a konečné pole jehož objednávka je a síla dvou, jsou obvykle reprezentovány jako polynomy v GF (2) [X].Násobení dvou takových prvků pole sestává z násobení odpovídajících polynomů, následovaných redukcí vzhledem k nějakému neredukovatelnému polynomu, který je převzat z konstrukce pole. jsou-li polynomy kódovány jako binární čísla, lze k provedení první krok tohoto výpočtu.

Taková pole mají aplikace v kryptografie a pro některé kontrolní součet algoritmy.

Implementace

Nedávno x86 procesory podporují Sada instrukcí CLMUL a tedy poskytnout hardwarovou instrukci k provedení této operace.

U dalších cílů je možné implementovat výše uvedený výpočet jako softwarový algoritmus a mnoho kryptografických knihoven bude obsahovat implementaci jako součást svých aritmetických operací konečného pole.

Jiné základy

Definice produktu bez přenášení v důsledku dlouhého rozmnožování a vyřazení by se snadno použila základny jiný než 2. Výsledek však závisí na základu, který je tedy podstatnou součástí operace. Protože se tato operace obvykle používá na počítačích pracujících v binárním formátu, výše uvedená binární forma je ta, která se používá v praxi.

Polynomy nad jinými konečnými poli primárního řádu mají aplikace, ale zacházení s koeficienty takového polynomu jako s číslicemi jediného čísla je poměrně neobvyklé, takže znásobení takových polynomů by nebylo považováno za násobení čísel bez přenosu.

Viz také

Reference

  1. ^ Shay Gueron (2011-04-13). „Pokyny pro multiplikaci Intel Carry-Less a její využití pro výpočet režimu GCM - rev. 2“. Intel.