Por otro lado, debemos establecer una distinción entre la regla de encriptación( que hemos utilizado, que es de aplicación general) y los parámetros concretos de encriptación( específica de cada mensaje o bien grupo de mensaje). Ambos son necesarios para descifrar el mensaje. A la regla general de encriptación se la denomina algoritmo de encriptación mientras que el parámetro concreto empleado para cifrar o codificar el mensaje se denomina clave. Dado un algoritmo de encriptación, el número de llaves puede ser muy grande, es muy útil conocer la clave empleada para poder encriptar el mensaje. Siendo las claves más fáciles de cambiar y de distribuir, tiene sentido concretar los esfuerzos en proteger el sistema de encriptación que mantenga en secreto las claves. Este principio se conoce como "principio de Kerckhoffs" nombre que recibe del lingüística neerlandés Auguste Kerckhoffs. En cualquier sistema de encriptación encontraremos: un emisor y un receptor del mensaje, un algoritmo de encriptación y una clave que permite al emisor cifrar el mensaje y al receptor, descifrarlo.
Como hemos dicho anteriormente, el principio de Kerckhoffs concibe a la clave como el elemento fundamental en la seguridad de un sistema criptográfico. Hasta ahora, las claves de un emisor y de un receptor en cualquier sistema criptográfico tenía que ser iguales o simétricos, es decir, tenía que servir igualmente para encriptar y desencriptar. La clave era un secreto compartido entre emisor y receptor, y por tanto, el sistema criptográfico en cuestión era vulnerable. Este tipo de criptografía donde el emisor y el receptor comparten clave se denomina criptografía clásica o de clave privada. Sin embargo, hace 50 años, todo cambió. Hoy en día, los algoritmos de encriptación consisten en, al menos, 2 claves: una privada, como la criptografía clásica, y otra pública que conoce todo el mundo. Este tipo de criptografía se conoce como de clave pública o criptografía pública. Esta criptografía constituye la base del desarrollo de la criptografía pública está las matemáticas. Y, muy específicamente, la aritmética modular, por un lado, y la teoría de números, por el otro.