RSA é un sistema criptográfico con clave pública. Recibe este nome pola inicial do apelido dos seus inventores: RonaldRivest, AdiShamir e LeonardAdleman.
O algoritmo deseñárono no 1977 por tres científicos doInstituto de Tecnoloxía de Massachusetts:Ronald Rivest,Adi Shamir eLen Adleman. Clifford Cocks, un experto en matemáticas que traballaba paraGovernment Communications Headquarters, desenvolvera un algoritmo similar nun documento interno en1973, mais non chegou a implementarse debido ós altos custos do procesamento de datos da época. Este ensaio foi coñecido en1997 debido a que se clasificara coma confidencial. O MIT patentou o algoritmo en1983 nosEstados Unidos coapatente 4.405.829, que expirou no ano2000.
Todo usuario de dito sistema fai pública unha clave de cifrado e oculta unha clave de descifrado. Unha chave é un número de gran tamaño, que unha persoa pode conceptualizar como unha mensaxe dixital, como un ficheiro binario ou como unha cadea de bits ou bytes. Cando se envía unha mensaxe, o emisor procura a clave pública de cifrado do receptor e unha vez que dita mensaxe chega ó receptor, este ocupase de descifralo usando a súa clave oculta. As mensaxes enviadas usando o algoritmo RSA represéntanse mediante números e o funcionamento baséase no produto de dous números primos grandes (maiores que 10100) elixidos ó azar para conformar a clave de descifrado. A seguridade destealgoritmo radica en que non hai maneiras rápidas de factorizar un número grande nos seus factores primos utilizando ordenadores tradicionais. A computación cuántica podería prover unha solución a este problema de factorización.
- A xeración de claves en RSA levase a cabo da maneira seguinte:
- Selecciónanse dous números primos
e
de maneira que
. - Calcúlase
. - Calcúlase
. - Selecciónase un enteiro positivo
tal que o
tales que
e
sexan Primos entre si. - Calcúlase
tal que
. - A clave privada será
e a clave pública será
. *Adicionalmente o parámetro
debe facerse público.