Patent ID: 7853012

Claim:
An authentication system executing an elliptic curve digital signature cryptographic process for signing data using a private key ‘d’ being randomly selected such that 0<d<n, where n is a large prime number, said system consisting of a combination of hardware and software components comprising the following: a first software component adapted to process the following step: step A: performing hash operation on the data to be signed; a second software component, adapted to process the following step: step B: generating a random number ‘k’, 0<k<n; a hardware component and a third software component, adapted to, in combination, process the following step: step C: performing a point multiplication step using ‘k’ and a base point G(x, y) selected on an elliptic curve satisfying a function of the type y.sup.2+xy=x.sup.3+ax.sup.2+b, where a and b are elements of an underlying binary field, using at least one intermediate sub step to obtain intermediate results and consolidating said intermediate results to obtain a consolidated point M(x.sub.1, y.sub.1) on the same curve and computing a number ‘r’ by performing a modulus operation on the co-ordinate ‘x.sub.1’; wherein said hardware component is adapted to perform at least a portion of the point multiplication of step C and said second software component is adapted to receive this intermediate result of point multiplication from said hardware component and is further adapted to consolidate the result of step C; said third software component means, further being adapted to process the following steps: step D: computing a number ‘z1’ by performing inverse operation on the random number ‘k’ obtained from step B followed by a modulus operation; step E: computing a number ‘z2’ by performing multiplication operation on ‘d’ and the number obtained from step D, followed by a modulus operation; step F: computing a number ‘z3’ by performing multiplication operation on the hash transformed data obtained from step A and the number ‘z1’ obtained from step D followed by a modulus operation; step G: computing a number ‘s’ by first performing a multiplication operation on the number z2 and r obtained from Step E and Step C respectively and then performing an additive operation on the product with ‘z3’ obtained from step F followed by a modulus operation; and step H: sending out a signature (r, s); said system adapted to be partitioned between a first, second and third software component and a hardware component for parallely executing at least a portion of some of the steps of said process; wherein said second software component, said hardware component, and said third software component are adapted to communicate with each other in a memory mapped format.