Patent ID: 7680270

Claim:
A system for elliptic curve encryption, the system comprising a computer having a computer readable medium having stored thereon instructions which, when executed by a processor of the computer, causes the processor to perform the steps of: (a) selecting an elliptic curve E p (a,b) of the form y 2 =x 3 +ax+b mod (p), wherein p is a prime number, wherein a and b are non-negative integers less than p satisfying the formula 4a 3 +27b 2 mod (p) not equal to 0; (b) generating a 160 bit random number by a method of concatenation of a number of smaller random numbers; (c) generating a well hidden point G (x,y) on the elliptic curve E p (a,b) by scalar multiplication of a point B (x,y) on the elliptic curve with a random integer M further comprising the steps of: (i) converting the random integer M into a series of powers of 2 31 ; (ii) converting each coefficient of 2 31 obtained from above step into a binary series; (iii) multiplying the binary series obtained from steps (i) and (ii) above with the point B (x,y) on the elliptic curve; (d) generating a private key n A greater than or equal to 160 bits; (e) generating a public key P A (x,y) given by the formula P A (x,y)=(n A .G(x,y)) mod (p); (f) encrypting an input message MSG further comprising the steps of: (i) generating a random integer K; (ii) setting P mask (x,y)=k.P A (x,y) mod (p); (iii) setting p k (x,y)=k.G(x,y) mod (p); (iv) accepting the input message MSG to be encrypted; (v) converting the input message into a point P c (x,y); (vi) generating a random point P m (x,y) on the elliptic curve E p (a,b); (vii) setting P e (x,y)=(P c (x,y)−P m (x,y)); (viii) setting P mk (x,y)=(P m (x,y)+P mask (x,y)) mod (p); (ix) returning P k (x),P e (x,y), and P mk (x) as a ciphered text; and (g) decrypting the ciphered text further comprising the steps of: (i) getting the ciphered text (P k (x), P a(x,y), and P mk (x); (ii) computing P k (y) from P k (x) using the elliptic curve E p (a,b); (iii) computing P mk (y) from P mk (x) using elliptic curve E p (a,b); (iv) computing P ak (x,y)=(n A . P k (x,y)) mod (p); (v) computing P m (x,y)=P mk (x,y)−P ak (x,y)) mod (p); (vi) computing P c (x,y)=P m (x,y)+P e(x,y); (vii) converting P c (x,y) into the input message MSG.