Los algoritmos de cifrado (o criptográficos) se utilizan para esconder la información a aquel conjunto de personas que no deberían tener acceso a ella. La idea es muy simple y consiste en alterar la representación de la información usando una clave (o key). Así, sólo quien conozca la clave es capáz de restaurar la representación original (descrifrada) de la información.
Existen dos tipos distintos de algoritmo de cifrado, dependiendo del número de claves que se utilizan:
Para evitar este problema se idearon los algoritmos de clave asimétrica (o algoritmos de clave pública). En estos algoritmos cada extremo de la comunicación maneja dos claves, una pública y otra privada (en total, 4 claves).* Se cumple que: (1) lo que se cifra utilizando la clave pública puede descifrarse, sólo, utilizando la clave privada y (2) es imposible derivar la clave privada a partir de la pública (sin información adicional).
Así, cuando dos personas desean intercambiarse información primero deben intercambiar sus claves públicas. Habiendo hecho esto, cuando yo (por ejemplo) deseo enviar un mensaje a alguien lo cifro usando la clave pública de mi interlocutor. Dicho mensaje puede ser interceptado por una tercera persona, pero sólo mi interlocutor va a ser capaz de descifrarlo porque es la única persona que posee la clave privada que puede descifrarlo. De la misma manera, sólo yo podré descifrar lo que mi interlocutor me envía porque sólo yo poseo la clave privada que permite descifrar el mensaje.