Jump to content

Товар без переноски

(Перенаправлено из умножения без переноса )
Вычисление продукта без переноса.

Произведение без переноса двух двоичных чисел является результатом без переноса умножения этих чисел . Эта операция концептуально работает как длинное умножение. за исключением того, что перенос отбрасывается, а не применяется к более значимой позиции. Его можно использовать для моделирования операций над конечными полями . в частности умножение полиномов из GF(2)[ X ], кольцо полиномов над GF(2) .

Эта операция также известна как умножение XOR , поскольку сложение с отбрасыванием переноса эквивалентно исключающему или.

Определение

[ редактировать ]

Даны два числа и , с обозначающие биты этих чисел. Тогда произведение этих двух чисел без переноса определяется как , с каждым битом вычисленный как исключающее или произведение битов входных чисел следующим образом: [1]

Рассмотрим a = 10100010 2 и b = 10010110 2 , со всеми числами, заданными в двоичном формате. Тогда их умножение без переноса — это, по сути, то, что можно было бы получить от выполнения длинного умножения, но игнорирования переносов.

                  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
             ^ ^

Таким образом, произведение a и b без переноса будет равно c = 101100011101100 2 . Для каждого бита, установленного в числе a , число b сдвигается влево. столько бит, сколько указано позицией бита в файле . Все эти смещенные версии затем объединяются с использованием исключающего или, вместо обычного сложения, которое использовалось бы для обычного длинного умножения. Это можно увидеть в столбцах, обозначенных ^, где регулярное сложение приведет к переносу в столбец слева, чего здесь не происходит.

Умножение многочленов

[ редактировать ]

Произведение без переноса также можно рассматривать как умножение полиномов. над полем GF(2) . Это потому, что эксклюзив или соответствует дополнению в этом поле.

В приведенном выше примере числа a и b соответствуют полиномам.

и продукт их

что и кодирует вычисленное выше число c . Обратите внимание, как и благодаря арифметика в GF(2). Это соответствует столбцам, отмеченным ^ в примере.

Приложения

[ редактировать ]

Элементы GF(2 н ), т.е. конечное поле , порядок которого равен степени двойки , обычно представляются в виде полиномов в GF(2)[ X ]. Умножение двух таких элементов поля состоит из умножения соответствующих многочленов, с последующей редукцией по некоторому неприводимому многочлену который взят из конструкции поля. Если полиномы закодированы как двоичные числа, Умножение без переноса можно использовать для выполнения первого шага этого вычисления.

Такие поля находят применение в криптографии и некоторых алгоритмах контрольных сумм .

Реализации

[ редактировать ]

Последние процессоры x86 поддерживают набор инструкций CLMUL и, таким образом, предоставляют аппаратную инструкцию для выполнения этой операции.

Это также часть RISC-V Bit-Manipulation ISA-расширения Zbc: умножение без переноса.

Для других целей можно реализовать приведенные выше вычисления в виде программного алгоритма. и многие библиотеки криптографии будут содержать реализацию как часть их арифметических операций с конечными полями.

Другие базы

[ редактировать ]

Определение произведения без переноса как результата длительного умножения с отбрасыванием переноса легко применимо к основаниям, отличным от 2. Но результат зависит от базиса, который поэтому является существенной частью операции. Поскольку эта операция обычно используется на компьютерах, работающих в двоичном формате, двоичная форма, обсуждавшаяся выше, используется на практике.

Полиномы над другими конечными полями простого порядка имеют приложения: но рассматривать коэффициенты такого многочлена как цифры одного числа довольно редко, поэтому умножение таких полиномов не будет рассматриваться как умножение чисел без переноса.

См. также

[ редактировать ]
  1. ^ Шей Герон (13 апреля 2011 г.). «Инструкция Intel по умножению без переноса и ее использование для вычисления режима GCM — ред. 2» . Интел .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c8c6d61759495fc645b6b9e8c9b4748__1707034380
URL1:https://arc.ask3.ru/arc/aa/1c/48/1c8c6d61759495fc645b6b9e8c9b4748.html
Заголовок, (Title) документа по адресу, URL1:
Carry-less product - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)