A calculating unit for reducing an input number with respect to a modulus, wherein the input number has input number portions of different significances, wherein the input number portions represent the input number with respect to a division number, wherein the modulus has modulus portions of differ
A calculating unit for reducing an input number with respect to a modulus, wherein the input number has input number portions of different significances, wherein the input number portions represent the input number with respect to a division number, wherein the modulus has modulus portions of different significances, and wherein the modulus portions represent the modulus with respect to the division number, includes a unit for estimating a result of an integer division of the input number by the modulus using a stored most significant portion of the number, a stored most significant portion of the modulus and the number, and for storing the estimated result in a memory of the calculating unit, and a unit for calculating a reduction result based on a subtraction of a product of the modulus and a value derived from the estimated result from the number.
대표청구항▼
1. A device for calculating a result of a modular multiplication with a multiplier, a multiplicand and a modulus, comprising: a unit for providing the multiplicand in at least three portions, wherein each portion comprises a number of digits less than half the number of digits of the multiplicand, a
1. A device for calculating a result of a modular multiplication with a multiplier, a multiplicand and a modulus, comprising: a unit for providing the multiplicand in at least three portions, wherein each portion comprises a number of digits less than half the number of digits of the multiplicand, and wherein the at least three portions include all digits of the multiplicand; anda sequential calculator circuit, wherein the sequential calculator circuit is formedto calculate a first intermediate result using a more significant portion of the multiplicand,to calculate a second intermediate result using a less significant portion of the multiplicand and the first intermediate result, andto calculate and store a third intermediate result using a still less significant portion of the multiplicand and the second intermediate result, wherein the third intermediate result represents the result of the modular multiplication, if the multiplicand is divided into exactly three portions, or wherein the result of the modular multiplication is derivable from the third intermediate result by a further sequential calculation, if the multiplicand is divided into more than three portions,wherein the sequential calculator circuit comprises a calculating unit for reducing an input number with respect to a modulus, wherein the input number comprises input number portions of different significances, wherein the input number portions represent the input number with respect to a division number, wherein the modulus comprises modulus portions of different significances, and wherein the modulus portions represent the modulus with respect to the division number, the calculating unit comprising:a unit for estimating a result of an integer division of the input number by the modulus using a stored most significant portion of the input number, using a stored most significant portion of the modulus and using the division number, and for storing the estimated result or an estimated value derived from the estimated result in a memory of the calculating unit; anda reduction result calculator circuit configured for calculating a reduction result based on a result of a subtraction of a product of the modulus and the estimated result from the input number or based on a result of a subtraction of a product of the modulus and the estimated value from the input number. 2. The device of claim 1, wherein the unit for providing is formed to comprise at least one register comprising a length less than a length of the whole multiplicand, but larger than or equal to a portion of the multiplicand, andwherein the sequential calculator circuit is formed to load a portion of the multiplicand into the register during calculation. 3. The device of claim 1, wherein the unit for providing is formed to also divide the multiplier and the modulus into at least three portions each, andwherein the sequential calculator circuit is formed to use both the portions of the multiplier and the modulus for one or more calculations. 4. The device of claim 1, wherein the sequential calculator circuit is formed to comprise ten or less registers with a length at least as large as a length of a portion and smaller than a whole length of the modulus. 5. The device of claim 1, formed as configurable calculating unit, wherein the configurable calculating unit comprises a bit slice structure, wherein each bit slice comprises a calculating unit part and a register part, wherein the configurable calculating unit further comprises a register configuration unit formed to configure the calculating unit into a long mode or a short mode, wherein the calculating unit in the long mode comprises a first number of long registers, wherein the calculating unit in the short mode comprises a second number of short registers, wherein the second number is larger than the first number, and wherein a length of a short register is such that a portion of the multiplicand is storable in the short register. 6. The device of claim 1, wherein the sequential calculator is formed to first perform a modulus transform as pre-calculation, and to perform a modulus back-transform as post-calculation. 7. The device of claim 1, further comprising an external memory, wherein the external memory is formed to store the portions of the multiplier, the multiplicand and the modulus, wherein a most significant portion of the modulus is not stored in the external memory, but in a calculating unit-internal register. 8. The device of claim 7, formed to provide the result of the modular multiplication also in a number of portions, wherein the sequential calculator circuit is further formed to store the portions of the result of the modular multiplication into the external memory instead of portions of equal significance of the multiplier after completion of a modular multiplication. 9. A method for calculating a result of a modular multiplication with a multiplier, a multiplicand and a modulus, comprising: providing, by a unit for providing, the multiplicand in at least three portions, wherein each portion comprises a number of digits less than half the number of digits of the multiplicand, and wherein the at least three portions include all digits of the multiplicand; andsequentially calculating, by a sequential calculator circuit, wherein the step of sequentially calculating is formedto calculate a first intermediate result using a more significant portion of the multiplicand,to calculate a second intermediate result using a less significant portion of the multiplicand and the first intermediate result, andto calculate and store a third intermediate result using a still less significant portion of the multiplicand and the second intermediate result, wherein the third intermediate result represents the result of the modular multiplication, if the multiplicand is divided into exactly three portions, or wherein the result of the modular multiplication is derivable from the third intermediate result by a further sequential calculation, if the multiplicand is divided into more than three portions,wherein, in the step of sequentially calculating, a method for reducing an input number with respect to a modulus with a calculating unit is executed, wherein the input number comprises input number portions of different significances, wherein the input number portions represent the input number with respect to a division number, wherein the modulus comprises modulus portions of different significances, and wherein the modulus portions represent the modulus with respect to the division number, the method comprising:estimating a result of an integer division of the input number by the modulus using a stored most significant portion of the number, using a stored most significant portion of the modulus and using the division number;storing the estimated result or an estimated value derived from the estimated result in a memory of the calculating unit; andcalculating a reduction result based on a result of a subtraction of a product of the modulus and the estimated result from the input number or based on a result of a subtraction of a product of the modulus and the estimated value from the input number,wherein the unit for providing or the sequential calculator circuit comprises a hardware implementation. 10. A non-transitory storage medium having stored thereon a computer program with a program code for performing a method for calculating a result of a modular multiplication with a multiplier, a multiplicand and a modulus, when the computer program runs on a computer, the method comprising: providing the multiplicand in at least three portions, wherein each portion comprises a number of digits less than half the number of digits of the multiplicand, and wherein the at least three portions include all digits of the multiplicand; andsequentially calculating, wherein the step of sequentially calculating is formedto calculate a first intermediate result using a more significant portion of the multiplicand,to calculate a second intermediate result using a less significant portion of the multiplicand and the first intermediate result, andto calculate and store a third intermediate result using a still less significant portion of the multiplicand and the second intermediate result, wherein the third intermediate result represents the result of the modular multiplication, if the multiplicand is divided into exactly three portions, or wherein the result of the modular multiplication is derivable from the third intermediate result by a further sequential calculation, if the multiplicand is divided into more than three portions,wherein, in the step of sequentially calculating, a method for reducing an input number with respect to a modulus with a calculating unit is executed, wherein the input number comprises input number portions of different significances, wherein the input number portions represent the input number with respect to a division number, wherein the modulus comprises modulus portions of different significances, and wherein the modulus portions represent the modulus with respect to the division number, the method comprising:estimating a result of an integer division of the input number by the modulus using a stored most significant portion of the input number, using a stored most significant portion of the modulus and using the division number;storing the estimated result or an estimated value derived from the estimated result in a memory of the calculating unit; andcalculating a reduction result based on a result of a subtraction of a product of the modulus and the estimated result from the input number or based on a result of a subtraction of a product of the modulus and the estimated value from the input number.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (8)
Hadad Isaac,ILX ; Arazi Benjamin,ILX ; Gressel Carmi David,ILX ; Dror Itai,ILX, Apparatus & method for modular multiplication & exponentiation based on Montgomery multiplication.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.