Cryptosystem
First Claim
Patent Images
1. An encryptosystem in which integers M, e and n (0≦
- M<
n) are applied to M-, e- and n-registers;
variables C and M2 are stored in C- and M2 -registers;
the integer e being represented by ##EQU86## (ei =1 or
0);
the variable C is initially set to 1;
repetitive calculations are performed in accordance with the following Steps (1) and (2) for each value i in the order i=k, k-1, k-2, . . . 1, 0;
in Step (1) an operation C≡
M1 ×
M2 mod n is performed with M1 =C and M2 =C;
in Step (2) the value of ei is checked and if ei =1, the operation C=M1 ×
M2 mod n is further performed with M1 =C and M2 =M; and
said repetitive calculations are completed with i=0, producing the last C in the form of C≡
Me mod n;
wherein a quotient calculating unit, a main adding unit and a controller are provided for performing the operation C≡
M1 ×
M2 mod n, said main adding unit having an adding register for storing a variable Rj ;
wherein, in order to perform the following operation in the order j=l, l-1, l-2, . . . 1, thereby to obtain the last R1 in the form of C≡
M1 ×
M2 mod n;
##EQU87## where [ ] is a Gaussian symbol, [x] the largest possible integer smaller than or equal to x, and λ and
l constants, said quotient calculating unit is connected to said C-, M2 - and n-registers and said main adding unit and performs an operation ##EQU88## said main adding unit is connected to said quotient calculating unit and said C-, M2 - and n-registers and forms an operation M1 ×
M2,j '"'"'+2.sup.λ
Rj+1 -Qj ·
n, and said controller performs control for obtaining said C by the respective calculations of said quotient calculating unit and said main adding unit.
2 Assignments
0 Petitions
Accused Products
Abstract
A cryptosystem for the RSA cryptography which calculates C≡Me mod n and, for this calculation, performs an operation C=M1 ×M2 mod n. An operation ##EQU1## is performed in the order j=l, l-1, . . . 1 to obtain last R1 as the result of the calculation M1 ×M2 mod n. The calculation ##EQU2## is performed in a quotient calculating unit, and the calculation M1 ×M2,j '"'"'+2.sup.λ Rj+1 -Qj ·n is performed in a main adding unit. Where, variable Rj may be divided into two parts Rj,0 and Rj,1. In this way, the multiplication and the division are simultaneously conducted, thereby to raise the calculation speed.
61 Citations
22 Claims
-
1. An encryptosystem in which integers M, e and n (0≦
- M<
n) are applied to M-, e- and n-registers;
variables C and M2 are stored in C- and M2 -registers;
the integer e being represented by ##EQU86## (ei =1 or
0);
the variable C is initially set to 1;
repetitive calculations are performed in accordance with the following Steps (1) and (2) for each value i in the order i=k, k-1, k-2, . . . 1, 0;
in Step (1) an operation C≡
M1 ×
M2 mod n is performed with M1 =C and M2 =C;
in Step (2) the value of ei is checked and if ei =1, the operation C=M1 ×
M2 mod n is further performed with M1 =C and M2 =M; and
said repetitive calculations are completed with i=0, producing the last C in the form of C≡
Me mod n;wherein a quotient calculating unit, a main adding unit and a controller are provided for performing the operation C≡
M1 ×
M2 mod n, said main adding unit having an adding register for storing a variable Rj ;wherein, in order to perform the following operation in the order j=l, l-1, l-2, . . . 1, thereby to obtain the last R1 in the form of C≡
M1 ×
M2 mod n;
##EQU87## where [ ] is a Gaussian symbol, [x] the largest possible integer smaller than or equal to x, and λ and
l constants, said quotient calculating unit is connected to said C-, M2 - and n-registers and said main adding unit and performs an operation ##EQU88## said main adding unit is connected to said quotient calculating unit and said C-, M2 - and n-registers and forms an operation M1 ×
M2,j '"'"'+2.sup.λ
Rj+1 -Qj ·
n, and said controller performs control for obtaining said C by the respective calculations of said quotient calculating unit and said main adding unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
- M<
-
20. A cryptosystem in which integers M, e and n (0≧
- M<
n) are applied to M, e and n registers;
variables C and M2 are stored in C- and M2 -registers;
the integer e being represented by ##EQU94## (ei =0 or
1);
the variable C is initially set to 1;
repetitive calculations are performed in accordance with the following Steps (1) and (2) for each value i in the order i=k, k-1, k-2, . . . 1, 0;
in Step (1) an operation C≡
M1 ×
M2 mod n is performed with M1 =C and M2 =C;
in Step (2), the value of ei is checked and if ei =1, the operation C≡
M1 ×
M2 mod n is further performed with M1 =C and M2 =M; and
said repetitive calculations are completed with i=0, producing the last C in the form of C≡
Me mod n;said cryptosystem comprising a main adding unit including at least an M1 ·
M2,j calculating section for calculating M1 ×
M2,j '"'"', a -Qj ·
n calculating section for calculating -Qj "×
n, a selector for selecting one of the calculation results M1 ·
M2,j '"'"' and -Qj "·
n, an adding register and an adder for adding the content of said adding register and the output of said selector and storing the addition result, in said adding register, a controller, and a quotient calculating unit;wherein the main adding unit is controlled by said controller so that a 0 is applied as a variable Z to said adding register, said calculation result M1 ·
M2,j '"'"' is selected by said selector, an operation Z=Z+M1 ×
M2,j '"'"' is performed in the order j=1, 2, . . . l to obtain M1 ·
M2 ≡
Z, ##EQU95## (λ
being constant) is applied to said adding register, said calculation result -Qj "·
n is selected by said selector, and an operation Rj =2.sup.λ
Rj+1 +Zj -Qj "·
n is performed in the order j=l, l-1, . . . 1;wherein said main adding unit is divided into a plurality of sliced sections of the same function, said M1 and n are divided into every fixed width of their binary integers and sequentially applied to said sliced sections, said M2,j '"'"' and Q" are applied to said sliced sections in common to them, said sliced sections each perform said operations Z=Z+M1 ×
M2,j '"'"' and R=2.sup.λ
Rj+1 +Zj -Qj "·
n for the M1, n, Qj " and M2,j '"'"' applied to them, said sliced sections are each connected to a higher-order one of them via a first connection signal line for applying thereto one part of the calculation result Z, and said sliced sections are each connected to a lower-order one of them via a second connection signal line for applying thereto the calculation result Rj. - View Dependent Claims (22)
- M<
-
21. A cryptosystem in which integers M, e and n (0≦
- M<
n) are applied to M, e and n registers;
variables C and M2 are stored in C- and M2 -registers;
the integer e being represented by ##EQU96## (ei =0 or
1);
the variable C is initially set to 1;
repetitive calculations are performed in accordance with the following Steps (1) and (2) for each value i in the order i=k, k-1, k-2, . . . 1, 0;
in Step (1) an operation C≡
M1 ×
M2 mod n is performed with M1 =C and M2 =C;
in Step (2), the value of ei is checked and if ei =1, the operation C≡
M1 ×
M2 mod n is further performed with M1 =C and M2 =M; and
said repetitive calculations are completed with i=0, producing the last C in the form of C≡
Me mod n;said cryptosystem comprising a main adding unit including at least an M1 ·
M2,j calculating section for calculating M1 ×
M2,j '"'"', a -Qj ·
n calculating section for calculating -Qj "×
n, a selector for selecting one of the calculation results M1 ·
M2,j '"'"' and -Qj "·
n, an adding register and an adder for adding the content of said adding register and the output of said selector and storing the addition result in said adding register, a controller, and a quotient calculating unit;wherein a 0 is applied as a variable Z to said adding register, said calculation result M1 ·
M2,j '"'"' is selected by said selector, an operation Z=Z+M1 ×
M2,j '"'"' is performed in the order j=1, 2, . . . l to obtain M1 ·
M2 ≡
Z, then Rl+1 of ##EQU97## is applied to said adding register, said calculation result -Qj "·
n is selected by said selector, said quotient calculating unit comprises a calculating section for calculating Xj =[2.sup.λ
·
Rj ·
2-m ]+S (S being a constant) and a calculating section for calculating ##EQU98## and said quotient calculating unit is controlled by said controller to calculate
space="preserve" listing-type="equation">Q.sub.j "=[X.sub.j ×
v×
2.sup.-u ]+1when
space="preserve" listing-type="equation">X.sub.j ≧
0
space="preserve" listing-type="equation">Q.sub.j "=[X.sub.j ×
v×
2.sup.-u ]when
space="preserve" listing-type="equation">X.sub.j <
0or
space="preserve" listing-type="equation">Q.sub.j "=[X.sub.j ×
v×
2.sup.-u ]+1when
space="preserve" listing-type="equation">X.sub.j >
0
space="preserve" listing-type="equation">Q.sub.j "=[X.sub.j ×
v×
2.sup.-u ]when
space="preserve" listing-type="equation">X.sub.j ≦
0and calculate Rj =2.sup.λ
·
Rj +Rj -Qj "·
n in the order j=l, l-1, . . . 1;wherein compensation calculation means is included for calculating, when R1 ≧
0, R1 =R1 +n until R1 ≧
0 is obtained;wherein said main adding unit is divided into a plurality of sliced sections of the same function, said M1 and n are applied to said sliced sections while being sequentially divided for each fixed width of their integers, said M2,j '"'"' and Q" are applied to said sliced sections in common to them, said sliced sections each perform said operations Z=Z+M1 ×
M2,j '"'"' and Rj =2.sup.λ
Rj+1 +Zj -Qj "·
n for the M1, n, Qj " and M2,j '"'"' applied to them, said sliced sections are each connected to a higher-order one of them via a first connection signal line for applying thereto one part of the calculation result Z, and said sliced sections are each connected to a lower-order one of them via a second connection signal line for applying thereto the calculation result Rj.
- M<
Specification