Abstract:
Provided is a method of calculating a negative inverse of a modulus, wherein the negative inverse, which is an essential element in Montgomery multiplication, is quickly obtained. The method includes setting a modulus, defining P obtained by converting the modulus to a negative number, and defining S obtained by subtracting 1 from P, and calculating a negative inverse of the modulus by using P and S.
Abstract:
The essence of the invention is an effective method for generating the multiplicative inverse in a finite field GF(p) where p is prime, i.e. for generating the modular inverse. This method is derived from the Extended Euclidean Algorithm (EEA). The method is for binary execution of operations during the process of generating the modular inverse, with respect to the lowest number of addition, subtraction and shift operations possible. The proposed method avoids redundant operations for converting odd and negative values, which are performed in methods currently in use. To achieve that, negative numbers are represented in the two's complement code, values in the control part of the EEA are shifted to the left, and a new definition of the boundary and control conditions is utilized in the procedure. Minimizing the number of additions and subtractions is desirable for calculations with large numbers often encountered in cryptography.
Abstract:
A calculation unit in which the inverse of an integer modulo a large number is determined provides a series of binary numbers prime with the large number, divides those numbers into two groups at random, and effects the products of the numbers of each group.
Abstract:
In side-channel attack-resistant encoding methods, a return value (r) is determined as the modular inverse of an input value (a), by a module (M). A resistance to side-channel attack can be achieved with minimal restrictions on implementation on determination of the modular inverse with minimal technical complexity. To this end, in a first sub-step, a first product (d) of the input value (a) and a random number is generated (c), in a second sub-step, the modular inverse (e) of the first product (d) is determined by the module (M), in a third sub-step, a second product (b) of the random number (c) is determined by the modular inverse (e) and in a fourth sub-step the return value (r) is set to the same as the second product (b).
Abstract:
A method, an apparatus, and a computer program are provided for efficiently determining an inverse multiplicative modulo. In many public-key cryptographic algorithms, an inverse modulo is usually calculated in key generation. However, because many Reduced Instruction Set Computers (RISCs) do not have the hardware support for division, good results are often not yielded. Therefore, to efficiently calculate a inverse modulo, an modified algorithm that utilizes a minimum of 3 division and 2 multiplications in conjunction with shifts and addition/subtractions is employed. The modified algorithm then is able to efficiently utilize the properties of the RISC processors to yield good results, especially when developing keys for public-key cryptographic algorithms.
Abstract:
One embodiment of the present invention provides a system that performs modular division. This system contains a number of registers, including: a register A that is initialized with a value X; a register U that is initialized with a value Y; a register B that is initialized with a value M; and a register V that is initialized with a value 0. The system also includes a counter CA that indicates an upper bound for the most-significant non-zero bit of register A. It also includes a counter CB that indicates an upper bound for the most-significant non-zero bit of register B. The system additionally includes a temporary register H, and a temporary register L. An updating mechanism is configured to iteratively reduce the contents of registers A and B to a value of one by applying a plurality of operations to registers A, B, U and V. During operation, this updating mechanism temporarily stores A+B in the temporary register H, and temporarily stores U+V in the temporary register L. Moreover, the updating mechanism is configured to use counters CA and CB to estimate the relative magnitudes of the values stored in registers A and B instead of performing an expensive comparison operation between register A and register B.
Abstract:
In a method for permuting and dividing 16 pieces of k-bit data held in 4 k-bit long registers T0. T1, T2 and T3, k being an integer, the data of each register Ti is ANDed with a desired one of mask data (00ffff00), (ff0000ff), (0000ffff) and (ffff0000), and such ANDs are ORed to obtain desired permuted data.
Abstract translation:在用于置换和分割保存在4k位长寄存器T <下标> 0 highlight>中的16个k位数据的方法中。 T <下标> 1 highlight>,T <下标> 2 highlight>和T <下标> 3 highlight>,k为整数,每个寄存器T i highlight>的数据为 与掩模数据(00ffff00),(ff0000ff),(0000ffff)和(ffff0000)中的期望的一个进行AND匹配,并且这样的“与”运算以获得期望的置换数据。
Abstract:
The integers involved in the computation are embedded into a modular system whose index (i.e., its modulus) is an integer M that is bigger than all of these integers involved. In other words, these integers are treated not as belonging to ordinary integers anymore, but as “modular integers” belonging to the modular system indexed by M. Having completed the embedding, CRT provides the bridge which connects the single modular system indexed by M (ZM) with a collection of k modular systems indexed by m1,m2, . . . , mk respectively (Zm1, Zm2, . . . , Zmk), where M factorizes as m1*m2*m3* . . . *mk, and where each mi is slightly smaller than single precision. Then, after numbers are manipulated within modular arithmetic, the answer is reconstructed via the algorithm of CRT, also known as CRA. Finally, the present invention introduces the process of dinking that overcomes the major weakness of implementing division with modular arithmetic. Particularly, within a composite modular arithmetic system, any theoretically impossible modular division is altered slightly [dinked] to a theoretical possible modular division whose quotient is closed enough to the true quotient sought, thus allowing all four arithmetic operations of modular arithmetic in high precision computation.
Abstract:
A circuit and method for carrying out high-speed ripple-through modulo division includes input registers for inputting two modulo 32 numbers A and B. The output of the circuit is a modulo 32 number Q, where A, B, and Q are related by the equation B*Q mod 32=A. The circuit generates a modulo division operator M.sub.B which is the inverse of B when B is odd, but which is equal to 2.sup.n, n=1, 2, 3, 4, when B is even. Combinational logic is used to calculate the product M.sub.B A, which is then divided by 2.sup.n, or sifted n places, to obtain Q.
Abstract:
A Digital Signature Device includes hardware device for carrying out an operation AB2.sup.-n mod N and an operation AB mod N, and carrying out modular exponentiation and modular multiplication based on an operation AB2.sup.-n mod N and an operation AB mod N. A method of performing an operation AB2.sup.-n mod N, an operation AB mod N, modular exponentiation, and modular multiplication by using hardware device, such as electrical controller, feeder, and delay device, etc.
Abstract translation:数字签名装置包括用于执行操作AB2-n mod N和操作AB mod N的硬件设备,并且基于操作AB2-n mod N和操作AB mod N执行模幂运算和模乘。一种方法 通过使用诸如电气控制器,馈线和延迟装置等硬件设备执行操作AB2-n mod N,操作AB mod N,模幂运算和模乘。