RU2368942C2 - Device for generating remainder with arbitrary modulus - Google Patents
Device for generating remainder with arbitrary modulus Download PDFInfo
- Publication number
- RU2368942C2 RU2368942C2 RU2007124282/09A RU2007124282A RU2368942C2 RU 2368942 C2 RU2368942 C2 RU 2368942C2 RU 2007124282/09 A RU2007124282/09 A RU 2007124282/09A RU 2007124282 A RU2007124282 A RU 2007124282A RU 2368942 C2 RU2368942 C2 RU 2368942C2
- Authority
- RU
- Russia
- Prior art keywords
- modulo
- input
- adders
- adder
- inputs
- Prior art date
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
Изобретение относится к вычислительной технике и может быть использовано в цифровых вычислительных устройствах, а также в устройствах для формирования элементов конечных полей и в криптографических приложениях.The invention relates to computer technology and can be used in digital computing devices, as well as in devices for forming finite field elements and in cryptographic applications.
Известно устройство для формирования остатка по произвольному модулю от числа, содержащее регистры, элементы ИЛИ, вычислитель, схемы сравнения, мультиплексор, элемент задержки, сумматор, группу блоков элементов И и блок постоянной памяти со связями (см. авт. св. СССР №1633495, кл. H03M 7/18, 1991).A device is known for generating a remainder modulo an arbitrary number, containing registers, OR elements, a calculator, comparison circuits, a multiplexer, a delay element, an adder, a group of blocks of AND elements, and a read-only memory block with communications (see ed. St. USSR No. 1633495,
Недостатком известного устройства является низкая надежность, так как для его реализации требуется большой объем оборудования.A disadvantage of the known device is low reliability, since its implementation requires a large amount of equipment.
Наиболее близким по технической сущности к заявляемому изобретению является комбинационный рекуррентный формирователь остатков, содержащий комбинационный формирователь частичных остатков, блок ключей и блок сумматоров по модулю (см. патент РФ №2029435, кл. 6 H03M 7/18, 20.02.1995, бюл. №5).Closest to the technical nature of the claimed invention is a combination recurrent residual shaper containing a combination shaper of partial residues, a key block and a block of adders modulo (see RF patent No. 2029435,
Недостатком данного устройства является низкое быстродействие.The disadvantage of this device is the low speed.
Целью изобретения является повышение быстродействия.The aim of the invention is to increase performance.
Сущность изобретения заключается в реализации следующего способа формирования остатка по произвольному модулю.The essence of the invention lies in the implementation of the following method of forming a residue in an arbitrary modulus.
Пусть требуется сформировать остаток r от числа А по модулю р.Let it be required to form the remainder r of the number A modulo p.
Число А может быть представлено в позиционной системе счисления в видеThe number A can be represented in the positional number system in the form
где ai, - коэффициенты, принимающие значения 0 или 1, n - количество разрядов в представлении числа А. Это выражение может быть представлено в следующем виде:where a i -
где , если n четное, и , если n нечетное, [] - целая часть от деления.Where if n is even, and if n is odd, [] is the integer part of the division.
Из теории чисел известно, что операция приведения по модулю инвариантна к сложению и умножению, т.е. величина остатка не зависит от того, вычислен он от суммы (произведения) или от каждого слагаемого (сомножителя), а затем соответствующие частичные остатки просуммированы (перемножены) и от результата вычислен остаток по модулю.It is known from number theory that the modulo reduction operation is invariant to addition and multiplication, i.e. the value of the remainder does not depend on whether it is calculated on the sum (product) or on each term (factor), and then the corresponding partial balances are summed (multiplied) and the remainder is calculated modulo.
В таком виде значительно облегчается задача нахождения остатка r от числа A.In this form, the task of finding the remainder r of the number A. is greatly facilitated.
Для вычисления остатка от числа А по модулю р достаточно в выражении (2) просуммировать частичные остатки по модулю р от чисел 22i(a2i+12+a2i), где - при n четном и при n нечетном. Частичные остатки получаются в результате умножения частичного остатка от 22i по модулю р на число To calculate the remainder of the number A modulo p, it suffices to sum in the expression (2) the partial residues modulo p of the numbers 2 2i (a 2i + 1 2 + a 2i ), where - for n even and for n odd. Partial residues are obtained by multiplying the partial remainder of 2 2i modulo p by the number
(a2i+12+a2i). Способ вычисления частичных остатков от 22i по модулю р состоит в следующем. Вычисление частичного остатка от 22i заключается в умножении на четыре частичного остатка от 22(i-1) и приведение результата по модулю р. Операция умножения на четыре может быть реализована сдвигом всех разрядов числа на два разряда влево. Операция приведения по модулю реализуется следующим образом. Если число не превышает величину р, то оно остается без изменения. Если оно лежит в интервале от р до 2р-1, то из него вычитается модуль р. Если число лежит в интервале от 2р до 3р-1, то из него вычитается удвоенный модуль р. Если число лежит в интервале от 3р до 4р-1, то из него вычитается утроенный модуль р. Способ умножения частичного остатка от 22i по модулю p на число (a2i+12+a2i) состоит в следующем. Частичный остаток от 22i по модулю р, умноженный на a2i+12, складывается с частичным остатком от 22i по модулю р, умноженный на a2i. Если полученный результат не превышает величину р, то оно остается без изменения. Если оно лежит в интервале от p до 2р-1, то из него вычитается модуль р. Если число лежит в интервале от 2р до 3p-1, то из него вычитается удвоенный модуль р. Суммирование по модулю р частичных остатков происходит последовательно.(a 2i + 1 2 + a 2i ). A method for calculating partial residues from 2 2i modulo p is as follows. The calculation of the partial remainder of 2 2i consists in multiplying by four partial remainders of 2 2i (i-1) and the result is modulo p. The operation of multiplying by four can be implemented by shifting all the digits of the number by two digits to the left. The reduction operation modulo is implemented as follows. If the number does not exceed p, then it remains unchanged. If it lies in the range from p to 2p-1, then the module p is subtracted from it. If the number lies in the range from 2p to 3p-1, then the doubled module p is subtracted from it. If the number lies in the range from 3p to 4p-1, then the triple module p is subtracted from it. The method of multiplying the partial remainder of 2 2i modulo p by the number (a 2i + 1 2 + a 2i ) is as follows. The partial remainder of 2 2i modulo p multiplied by a 2i + 1 2 is added to the partial remainder of 2 2i modulo p multiplied by a 2i . If the result obtained does not exceed p, then it remains unchanged. If it lies in the interval from p to 2p-1, then the module p is subtracted from it. If the number lies in the range from 2p to 3p-1, then the doubled module p is subtracted from it. Summation modulo p of partial residues occurs sequentially.
На фиг.1 представлена схема устройства для формирования остатка по произвольному модулю от числа; на фиг.2 - формирователя частичных остатков; на фиг.3 - умножителя по модулю.Figure 1 presents a diagram of a device for forming a remainder in an arbitrary modulus of a number; figure 2 - shaper partial residues; figure 3 - multiplier modulo.
Устройство формирования остатка по произвольному модулю от числа (фиг.1) содержит блок 1 формирователей частичных остатков, блок 2 умножителей по модулю и блок 3 сумматоров по модулю. Входы 4 служат для подачи двоичного кода числа А. Выход 5 является выходом остатка устройства формирования остатка по произвольному модулю от числа.A device for generating a remainder modulo an arbitrary modulus of a number (Fig. 1) comprises a
Блок 1 формирователей частичных остатков (фиг.1) содержит n/2 формирователей частичных остатков 6, соединенных последовательно, причем на вход первого формирователя частичных остатков 6 подан код единицы, разряд которого сдвинут на два разряда влево. Выходы разрядов предыдущего формирователя частичных остатков 6 подаются на входы последующего формирователя частичных остатков 6 со сдвигом на два в сторону старших. Выходы каждого формирователя частичных остатков 6 являются информационными выходами формирователя. Блок 2 умножителей по модулю (фиг.1) содержит n/2 умножителей по модулю 7, на информационные входы которых подаются коды с выходов формирователей частичных остатков 6. Блок 3 сумматоров по модулю (фиг.1) содержит n/2 сумматоров по модулю 8, на информационные входы которых подаются коды с выходов умножителей по модулю 7 и с выходов предыдущего сумматора по модулю 8, причем на первый сумматор по модулю 8 подаются два младших разряда кода числа А.
Каждый формирователь частичных остатков (фиг.2) содержит три сумматора 12 и мультиплексор 13. На входы переносов трех сумматоров 12 подается код единицы. На первые информационные входы трех сумматоров 12 подается код с выхода формирователя частичных остатков 6. Вход 9 служит для подачи инверсного кода модуля, вход 10 - для подачи инверсного кода удвоенного кода модуля, вход 11 - для подачи инверсного кода утроенного кода модуля.Each shaper of partial residuals (Fig. 2) contains three
Каждый умножитель 7 по модулю (фиг.3) содержит два ключа 16, которые управляются разрядами кода числа А, три сумматора 17 и мультиплексор 18. Вход 14 служит для подачи инверсного кода модуля, вход 15 - для подачи инверсного кода удвоенного кода модуля.Each
Устройство для формирования остатка по произвольному модулю от числа работает следующим образом.A device for generating a remainder modulo an arbitrary number modulus works as follows.
На вход первого формирователя частичных остатков 6 подается код единицы, сдвинутый на два разряда в сторону старших, выходы разрядов предыдущего формирователя частичных остатков 6 подключены к входам последующего формирователя частичных остатков 6 со сдвигом на два разряда в сторону старших. Таким образом на выходах блока формирования частичных остатков 1 формируются частичные остатки по модулю р от числа 22i, где при n четном и при n нечетном.At the input of the first shaper of
Код числа А через входы 4 поступает на управляющие входы умножителя 7 по модулю. Умножитель 7 по модулю умножает частичный остаток по модулю р от числа 22i на число (a2i+12+a2i), где ai коэффициенты двоичного кода числа А, и вычисляет частичный остаток по модулю р от полученного результата. Блок сумматоров 3 по модулю суммирует по модулю р частичные остатки и число (а12+а0). Результат суммирования выдается на информационные выходы 5 устройства для формирования остатка по произвольному модулю от числа.The code of the number A through
Формирователь частичных остатков работает следующим образом. На первые информационные входы трех сумматоров 12 и на первый информационных вход мультиплексора 13 подается частичный остаток ti-1 по модулю р от числа 22(i-l), сдвинутый на два разряда в сторону старших. На входы переносов трех сумматоров 12 подается код единицы. На второй вход первого сумматора 12 подается инверсный код модуля р. На второй вход второго сумматора 12 подается инверсный код удвоенного модуля р. На второй вход третьего сумматора 12 подается инверсный код утроенного модуля р. Первый сумматор 12 выполняет операцию . Сигнал со старшего (k+1)-го разряда полученного значения, где k - количество разрядов инверсного двоичного кода модуля р, поступает на выход переноса первого сумматора 12. Остальные разряды представляют собой разность (ti-1-р). Второй сумматор выполняет операцию . Сигнал со старшего (k+1)-го разряда полученного значения, где k - количество разрядов инверсного двоичного кода удвоенного модуля р, поступает на выход переноса второго сумматора 12. Остальные разряды представляют собой разность (ti-1-2р). Третий сумматор выполняет операцию . Сигнал со старшего (k+1)-го разряда полученного значения, где k - количество разрядов инверсного двоичного кода утроенного модуля р, поступает на выход переноса третьего сумматора 12. Остальные разряды представляют собой разность (ti-1-3р). Если на выходе переноса третьего сумматора 12 сигнал равен "1", то на выходе формирователя частичных остатков будет разность (ti-1-3р). Если на выходе переноса третьего сумматора 12 сигнал равен "0", а на выходе переноса второго сумматора 12 сигнал равен "1", то на выходе формирователя частичных остатков будет разность (ti-1-2р). Если на выходе переноса третьего сумматора 12 сигнал равен "0" и на выходе переноса второго сумматора 12 сигнал равен "0", а на выходе переноса первого сумматора 12 сигнал равен "1", то на выходе формирователя частичных остатков будет разность (ti-1-р). Если на выходе переноса третьего сумматора 12 сигнал равен "0", на выходе переноса второго сумматора 12 сигнал равен "0" и на выходе переноса первого сумматора 12 сигнал равен "0", то на выходе формирователя частичных остатков будет число ti-1.Shaper partial residues works as follows. The first information inputs of the three
Умножитель по модулю работает следующим образом. Коэффициенты ai+1 и ai, через входы 4 поступают на управляющие входы двух ключей 16. На информационные входы двух ключей подается частичный остаток ti по модулю р от числа 22t. В зависимости от того, на управляющий вход какого из ключей 16 поступает логическая "1", тот из ключей 16 оказывается открытым и коммутирует на свои выходы значения с информационных входов, которые поступают на входы первого сумматора 17. Причем на первый вход первого сумматора 17 поступает значение, сдвинутое на один разряд влево. На выходе первого сумматора оказывается результат умножения частичного остатка t1, по модулю р от числа 22i на число (a2i+12+a2i,). Результат вычисления поступает на первые входы второго и третьего сумматоров 17. На входы переносов второго и третьего сумматоров 17 подается код единицы. На второй вход второго сумматора 17 подается инверсный код модуля р. На второй вход третьего сумматора 17 подается инверсный код удвоенного модуля р. Второй сумматор 17 выполняет операцию . Сигнал со старшего (k+1)-го разряда полученного значения, где k - количество разрядов инверсного двоичного кода модуля р, поступает на выход переноса второго сумматора 17. Остальные разряды представляют собой разность (ti-р). Третий сумматор выполняет операцию Сигнал со старшего (k+1)-го разряда полученного значения, где k - количество разрядов инверсного двоичного кода удвоенного модуля р, поступает на выход переноса третьего сумматора 17. Остальные разряды представляют собой разность (ti-2р). Если на выходе переноса третьего сумматора 17 сигнал равен "1", то на выходе умножителя по модулю будет разность (ti-2p). Если на выходе переноса третьего сумматора 17 сигнал равен "0", а на выходе переноса второго сумматора 17 сигнал равен "1", то на выходе умножителя по модулю будет разность (ti-р). Если на выходе переноса третьего сумматора 17 сигнал равен "0" и на выходе переноса второго сумматора 17 сигнал равен "0", то на выходе умножителя по модулю будет число ti.The multiplier modulo works as follows. The coefficients a i + 1 and a i , through
Рассмотрим работу устройства формирования остатка по произвольному модулю от числа на примере.Consider the operation of the device for the formation of the remainder of an arbitrary module of the number on an example.
Пусть A=4910=1100012, p=910=0010012. Первый формирователь частичных остатков формирует значение частичного остатка от 22 по модулю р, который равен 0001002. Второй формирователь частичных остатков формирует частичный остаток от 24 по модулю р, который равен 0001112. Первый умножитель по модулю производит умножение частичного остатка, полученного на первом формирователе частичных остатков, и коэффициентов а2=0 и а3=0. В результате получается значение, равное 0. Первый сумматор по модулю выполняет операцию сложения полученного значения и коэффициентов а0=1 и 2а1=00 и находит остаток по модулю р. В результате получается значение, равное 1. Второй умножитель по модулю производит умножение частичного остатка, полученного на втором формирователе частичных остатков, и коэффициентов а4=1 и a5=1. В результате получается значение, равное 000011. Второй сумматор по модулю выполняет операцию сложения полученного значения и результата с первого сумматора по модулю и находит остаток по модулю р. В результате получается значение, равное 1002=410.Let A = 49 10 = 110001 2 , p = 9 10 = 001001 2 . The first shaper of partial residues generates the value of the partial residue of 2 2 modulo p, which is equal to 000100 2 . The second shaper of partial residues forms a partial residue of 2 4 modulo p, which is equal to 000111 2 . The first multiplier modulates the partial residue obtained on the first shaper of the partial residues, and the coefficients a 2 = 0 and a 3 = 0. The result is a value equal to 0. The first adder modulo performs the operation of adding the obtained value and the coefficients a 0 = 1 and 2a 1 = 00 and finds the remainder modulo p. The result is a value equal to 1. The second multiplier modulates the partial residue obtained on the second shaper of the partial residuals, and the coefficients a 4 = 1 and a 5 = 1. The result is a value equal to 000011. The second adder modulo performs the operation of adding the obtained value and the result from the first adder modulo and finds the remainder modulo p. The result is a value equal to 100 2 = 4 10 .
49=9·3+449 = 9.3 + 4
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007124282/09A RU2368942C2 (en) | 2007-06-27 | 2007-06-27 | Device for generating remainder with arbitrary modulus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007124282/09A RU2368942C2 (en) | 2007-06-27 | 2007-06-27 | Device for generating remainder with arbitrary modulus |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007124282A RU2007124282A (en) | 2009-01-10 |
RU2368942C2 true RU2368942C2 (en) | 2009-09-27 |
Family
ID=40373694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007124282/09A RU2368942C2 (en) | 2007-06-27 | 2007-06-27 | Device for generating remainder with arbitrary modulus |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2368942C2 (en) |
-
2007
- 2007-06-27 RU RU2007124282/09A patent/RU2368942C2/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
RU2007124282A (en) | 2009-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200004506A1 (en) | Integrated circuits with modular multiplication circuitry | |
CA2530015C (en) | Division and square root arithmetic unit | |
RU2348965C1 (en) | Computing mechanism | |
RU2316042C1 (en) | Device for multiplying numbers with arbitrary modulus | |
JP4660066B2 (en) | Device for modular multiplication | |
RU2717915C1 (en) | Computing device | |
RU2299461C1 (en) | Modulus multiplexer | |
US6662201B1 (en) | Modular arithmetic apparatus and method having high-speed base conversion function | |
RU2368942C2 (en) | Device for generating remainder with arbitrary modulus | |
KR101136972B1 (en) | method for evaluating Elliptic Curve Cryptosystem | |
RU2324972C2 (en) | Creator of random module reminder of number | |
RU2661797C1 (en) | Computing device | |
RU2356086C2 (en) | Computing device | |
RU2029435C1 (en) | Combination recurrent former of remainders | |
RU2804380C1 (en) | Pipeline calculator | |
RU2012137C1 (en) | Device for forming remainder on arbitrary modulus | |
RU2299462C1 (en) | Device for forming remainder by double modulus | |
Ercegovac et al. | Design and FPGA implementation of radix-10 algorithm for square root with limited precision primitives | |
RU2791440C1 (en) | Pipeline generator of remainders by an arbitrary modulus | |
RU2756408C1 (en) | Computing apparatus | |
RU2739338C1 (en) | Computing device | |
RU2797164C1 (en) | Pipeline module multiplier | |
RU2797163C1 (en) | Pipeline calculator | |
Ercegovac et al. | Design and FPGA implementation of radix-10 algorithm for division with limited precision primitives | |
KR20070062901A (en) | Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20090628 |