Public key cryptosystem method and apparatus
First Claim
1. A method for encoding and decoding a digital message m, comprising the steps of:
- selecting ideals p and q of a ring R;
generating elements f and g of the ring R, and generating element Fq which is an inverse of f (mod q), and generating element Fp which is an inverse of f (mod p);
producing a public key that includes h, where h is congruent, mod q, to a product that can be derived using g and Fq ;
producing a private key from which f and Fp can be derived;
producing an encoded message e by encoding the message m using the public key and a random element .o slashed.; and
producing a decoded message by decoding the encoded message e using the private key.
6 Assignments
0 Petitions
Accused Products
Abstract
The public key encryption system of the present invention has short and easily created encryption keys and wherein the encoding and decoding processes are performed extremely rapidly, and has low memory requirements. The encoding and decoding processes use both the addition and multiplication operations in a ring modulo with two different ideals. The cryptosystem of the present invention allows encryption keys to be chosen essentially at random from a large set of binary vectors, for which key lengths are comparable to the key lengths of the most widely used prior art cryptosystems. The present invention features an appropriate security level (˜280), with encoding and decoding processes ranging from approximately one to two orders of magnitude faster than the prior art, particularly the exponentiation cryptosystems.
163 Citations
31 Claims
-
1. A method for encoding and decoding a digital message m, comprising the steps of:
-
selecting ideals p and q of a ring R; generating elements f and g of the ring R, and generating element Fq which is an inverse of f (mod q), and generating element Fp which is an inverse of f (mod p); producing a public key that includes h, where h is congruent, mod q, to a product that can be derived using g and Fq ; producing a private key from which f and Fp can be derived; producing an encoded message e by encoding the message m using the public key and a random element .o slashed.; and producing a decoded message by decoding the encoded message e using the private key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for encoding and decoding a digital message m, comprising the steps of:
- selecting integers p and q;
generating polynomials f and g; determining inverses Fq and Fp, where
space="preserve" listing-type="equation">F.sub.q *f≡
1(mod q)
space="preserve" listing-type="equation">F.sub.p *f≡
1(mod p);producing a public key that includes p, q, h, where
space="preserve" listing-type="equation">h≡
F.sub.q *g(mod q);producing a private key that includes f and Fp ; producing an encoded message e by encoding the message m in the form of a polynomial using the public key and a random polynomial .o slashed.; and producing a decoded message by decoding the encoded message e using the private key. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
- 16. The method as defined by claim 15, wherein said decoded message is produced by computing
- space="preserve" listing-type="equation">a≡
f*e(mod q),
and then computing the decoded message, m'"'"', as
space="preserve" listing-type="equation">m'"'"'≡
F.sub.p *a(mod p). - space="preserve" listing-type="equation">a≡
- selecting integers p and q;
- 17. The method as defined by claim 14, wherein said step of generating polynomials f and g includes selecting a positive integer K and generating K polynomials g, as g1, g2, . . . ,gK, and wherein said public key comprises hi, h2, . . . ,hK, where
- space="preserve" listing-type="equation">h.sub.i F.sub.q *g.sub.i (mod q), i=1,2, . . . ,K.
- space="preserve" listing-type="equation">e≡
p.o slashed..sub.1 *h.sub.1 +p.o slashed..sub.2 *h.sub.2 + . . . +p.o slashed..sub.K *h.sub.K +m(mod q)
-
25. A method for encoding and decoding a digital message, comprising the steps of:
-
selecting relatively prime integers p and q; selecting a non-zero integer K; producing K+2 matrices, f,g,w1,w2, . . . wK from a ring of matrices with integer coefficients, with wi ≡
0 (mod p) for i=1,2, . . . ,K,producing inverse matrices Fp, Fq, Gp and Gq, from said ring of matrices where fFp ≡
I (mod p)fFq ≡
I (mod q)gGp ≡
I (mod p)gGq ≡
I (mod q)where I is an identity matrix; producing a public key as a list of K matrices (h1,h2, . . . hK) where
space="preserve" listing-type="equation">h.sub.i ≡
F.sub.q w.sub.i G.sub.q (mod q), i=1,2, . . . ,K;producing a private key as the matrices (f, g, Fp, Gp); producing an encoded message e by encoding the message m using the private key and random integers .o slashed.1, .o slashed.2, . . . ,.o slashed.K as
space="preserve" listing-type="equation">e≡
.o slashed..sub.1 h.sub.1 +.o slashed..sub.2 h.sub.2 + . . . +.o slashed..sub.K h.sub.K +m(mod q); andproducing a decoded message m'"'"' by computing
space="preserve" listing-type="equation">a≡
feg(mod q)
space="preserve" listing-type="equation">and
space="preserve" listing-type="equation">b≡
a(mod p)and then computing the decoded message m'"'"' as
space="preserve" listing-type="equation">m'"'"'≡
F.sub.p bG.sub.p (mod p). - View Dependent Claims (26, 27, 28, 29)
-
-
30. A system for encoding and decoding a digital message m, comprising:
-
means for selecting ideals p and q; means for generating elements f and g of a ring R, and generating element Fq which is an inverse of f (mod q), and generating element Fp which is an inverse of f (mod p); means for producing a public key that includes h, where h is congruent, mod q, to a product that can be derived using g and Fq ; means for producing a private key from which f and Fp can be derived; means for producing an encoded message e by encoding the message m using the public key and a random element .o slashed.; and means for producing a decoded message by decoding the encoded message e using the private key. - View Dependent Claims (31)
-
Specification