Una clave es un grupo de caracteres aleatorios establecidos en un orden determinado. Los protocolos de encriptación utilizan una clave para alterar los datos de manera que queden codificados y así, el que no tenga la clave, no puede descifrar la información.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
En criptografía, una clave es una cadena de caracteres que se utiliza en de un algoritmo de encriptación para alterar los datos de forma que parezcan aleatorios. Como sucede con una llave física, esta bloquea (encripta) los datos para que solo el que tenga la llave correcta pueda abrirlos (desencriptarlos).
Los datos originales se conocen como texto plano, y los datos después de que la clave los cifre se conocen como texto cifrado.
La fórmula:
texto plano
+ clave
= texto cifrado
Antes de que aparecieran los ordenadores, el texto cifrado se solía crear simplemente al sustituir una letra por otra en el texto plano, un método conocido como "cifrado de sustitución". Por ejemplo, supongamos que alguien envía un mensaje que dice "Hello" (Hola, en inglés) a otra persona, y cada letra se sustituye por la que le sigue en el alfabeto: "Hello" se convierte en "Ifmmp."
H | e | l | l | O |
+1 | +1 | +1 | +1 | +1 |
I | F | M | M | P |
"Ifmmp" parece una cadena de letras sin sentido, pero si alguien conoce la clave, puede sustituir las letras adecuadas y desencriptar el mensaje como "Hello." Para este ejemplo, la clave es (letra) - 1, bajando cada letra un punto en el alfabeto para llegar a la letra real.
I | F | M | M | P |
-1 | -1 | -1 | -1 | -1 |
H | e | l | l | O |
Este tipo de cifrado es relativamente fácil de descifrar con un simple análisis estadístico, ya que ciertas letras aparecen con más frecuencia que otras en un texto determinado (por ejemplo, la E es la letra más común en inglés). Para combatir esto, los criptógrafos desarrollaron un sistema llamado libreta de un solo uso.
Una libreta de un solo uso es una clave de un solo uso que tiene al menos tantos valores como caracteres tiene el texto plano. Dicho de otra forma, cada letra será reemplazada por una letra que esté a un número único de letras de distancia de ella en el alfabeto.
Por ejemplo, supongamos que alguien tiene que encriptar el mensaje "Hello," y que utiliza una libreta de un solo uso con los valores 7, 17, 24, 9, 11.
H | e | l | l | O |
7 | 17 | 24 | 9 | 11 |
Mientras que antes nos limitábamos a subir una posición por cada letra (letra + 1), ahora nos movemos un número diferente de lugares en el alfabeto por cada letra. Añadimos 7 a la primera letra, la H; 17 a la segunda letra; y así sucesivamente. Para cualquier cálculo que nos lleve más allá de la Z, simplemente volvemos al principio del alfabeto y seguimos sumando.
H | e | l | l | O |
7 | 17 | 24 | 9 | 11 |
O | V | J | U | Z |
Partiendo del texto plano "Hello," ahora tenemos el texto cifrado "Ovjuz," utilizando la clave "7, 17, 24, 9, 11."
Para que la comunicación mediante una libreta de un solo uso funcione, las dos partes de la conversación tienen que utilizar la misma clave para cada mensaje individual (encriptación simétrica), aunque se utiliza una clave diferente cada vez que hay un nuevo mensaje. Aunque para una persona ajena "Ovjuz" no signifique nada, la persona que reciba el texto cifrado "Ovjuz" sabrá utilizar la clave "7, 17, 24, 9, 11" para desencriptarlo (restando en lugar de sumando):
O | V | J | U | Z |
7 | 17 | 24 | 9 | 11 |
H | e | l | l | O |
Así, un simple mensaje puede ser alterado por una cadena de datos aleatorios, una clave, para ser encriptado o desencriptado.
Aunque los ejemplos anteriores de la criptografía tradicional ilustran cómo funciona el uso de una cadena de información aleatoria para convertir el texto plano en texto cifrado, las claves criptográficas actuales son mucho más complejas.
Por ejemplo, la clave pública de un sitio web podría ser algo así:
04 CE D7 61 49 49 FD 4B 35 8B 1B 86 BC A3 C5 BC D8 20 6E 31 17 2D 92 8A B7 34 F4 DB 11 70 4E 49 16 61 FC AE FA 7F BA 6F 0C 05 53 74 C6 79 7F 81 12 8A F7 E2 5E 6C F5 FA 10 69 6B 67 D9 D5 96 51 B0 (Copiado en 2019 del certificado SSL de cloudflare.com)
Esto es mucho más complejo que la clave "7 17 24 9 11" que utilizamos arriba para encriptar "Hello."
En lugar de simplemente sumar o restar, la encriptación moderna utiliza complejas fórmulas matemáticas conocidas como algoritmos. Y en lugar de una simple cadena de números aleatorios para una clave, las claves modernas suelen estar todavía más aleatorizadas.
Esto es así por diversos motivos:
Combinada con un algoritmo de encriptación, una clave criptográfica codificará un texto de manera que una persona no pueda reconocerlo.
Hay dos tipos de encriptación: la encriptación simétrica y la encriptación asimétrica, también conocida como encriptación de clave pública. En la encriptación simétrica, ambas partes de una conversación utilizan la misma clave para convertir el texto plano en texto cifrado y viceversa.
En la encriptación asimétrica o de clave pública, cada una de las partes de la conversación utiliza una clave diferente. Una de las claves se llama clave pública y la otra, clave privada, esta se llama así porque una de las partes la mantiene en secreto y nunca la comparte con nadie. Cuando el texto plano se encripta con la clave pública, solo la clave privada puede desencriptarlo, no la pública.
SSL (o TLS, como se denomina en la actualidad), es un protocolo de encriptación que se utiliza para mantener seguras las comunicaciones en Internet, y un sitio web que se sirve a través de HTTPS en lugar de HTTP utiliza este tipo de encriptación. En TLS/SSL, un sitio o aplicación web tiene una clave pública y una clave privada. La clave pública se comparte públicamente en el certificado SSL del sitio web para que cualquiera pueda verla. La clave privada se instala en el servidor de origen y nunca se comparte.
Las sesiones de comunicación TLS/SSL comienzan con un protocolo de enlace TLS, durante el cual el sitio web y el cliente utilizan la clave pública y la clave privada para generar nuevas claves, que se denominan claves de sesión. Estas claves de sesión las utilizan ambas partes para encriptar sus mensajes de ida y vuelta.
De este modo, TLS comienza con una encriptación asimétrica (con dos claves) y pasa a una encriptación simétrica (con una clave). Ambas partes utilizan las mismas claves durante la sesión de comunicación, pero al iniciar una nueva sesión, generarán nuevas claves de forma conjunta.