The rapid expansion of internet and wireless based communications across open networks is creating an increasing need to encrypt the frequently sensitive or confidential data being transmitted. The RSA public key cryptographic algorithm (invented in 1978 by Rivest, Shamir and Adleman) is often used in these applications, either as the primary method of encryption or, more often, to exchange secret information such as keys. RSA is a secure, high quality public key, but is computationally intensive, operating on very large (typically thousands of bits long) integers. Throughput is, therefore, very slow when compared to secret key algorithms like DES and AES. For this reason, RSA is usually paired with a secret key algorithm for high performance applications; RSA is used to exchange the keys, while the secret key algorithm is used to encrypt the bulk of the data. Using RSA for cryptography has, until now, forced a difficult choice on system designers. There are several well known techniques for implementing the modular exponentiations and other components of the algorithm in software; although processors are flexible and can be very cost effective ― especially when an existing processor in the system also runs the cryptographic application ― RSA in processors is inefficient.
展开▼