RSA (Rivest-Shamir-Adleman) é um algoritmo usado pelos computadores modernos para criptografar e decodificar mensagens. É um algoritmo criptográfico assimétrico. Assimétrico significa que existem duas chaves diferentes. Isto também é chamado de criptografia de chave pública, porque uma das chaves pode ser dada a qualquer pessoa. A outra chave deve ser mantida privada. O algoritmo se baseia no fato de que é difícil encontrar os fatores de um grande número composto: quando os fatores são números primos, o problema é chamado de fatorização primária. É também um gerador de par de chaves (chave pública e privada).