De entre todos los sistemas de cifrado, la libreta de un solo uso (OTP / One-time pad) es el método de criptografía más robusto y simple. Ampliamente usado y comprobado, permite un cifrado cien por cien irrompible cuando se usa correctamente. Su invención se atribuye comúnmente a Gilbert S. Vernam, de los Laboratorios Telefónicos Bell en el año 1917 en la comunicación télex, aunque ya había sido descrito anteriormente por Frank Miller, un banquero de California en 1882 (lo utilizó en telegrafía eléctrica terrestre - morse americano, combinándolo con un libro de códigos), y se puede cifrar y descifrar manualmente de forma sencilla.
Para que este sistema sea efectivo hay que tener en cuenta lo siguiente:
Los caracteres aleatorios de la clave se combinarán con los del texto mediante un cifrado XOR (OR exclusivo) creando el resultado final (cifrado o descifrado). Si se cumple con todos los pasos citados el mensaje encriptado resultante será imposible de descifrar por ningún medio.
Mediante esta herramienta de cifrado y descifrado introduce en el primer recuadro el mensaje en claro (para cifrar) o, indistintamente, uno ya cifrado (para descifrar). A continuación tienes dos opciones para introducir la clave o libreta:
Por último pulsa sobre la operación deseada, cifrar o descifrar. El resultado aparecerá en el último recuadro de texto. Para una seguridad extra (posible uso por personal no autorizado, sospecha de robo o copia de claves, etc.), en el texto de cada mensaje en claro se puede añadir una autenticación previamente acordada entre remitente y destinatario que puede consistir por ejemplo en un código, una serie, un número basado en la fecha-hora, en cada nuevo mensaje, cada grupo/s, etc. Ver ejemplo práctico de uso.
El sistema se ha usado prácticamente en todos los ámbitos: servicio télex, embajadas, inteligencia, civil, militar, telegráfico, etc. y continúa usandose en versiones digitales o informáticas para cualquier tipo de datos (texto, archivos, vídeos, etc.) y solo se han detectado vulnerabilidades cuando las claves se han visto expuestas o se han usado repetidamente, porque el mensaje una vez cifrado no ofrece ninguna pista de su contenido mediante ningún sistema criptográfico (análisis de frecuencia, estadística o fuerza bruta). La telegrafía morse junto con el uso de la libreta de un solo uso supone uno de los métodos mas simples pero a la vez más robustos y eficaces para comunicaciones confidenciales.
Genera hasta 500 claves OTP para cifrar o descifrar mensajes de hasta 5000 caracteres
Ejemplo práctico del uso de las OTP e instrucciones para el cifrado y descifrado manual
Supongamos que Carlos y Julia quieren intercambiar mensajes usando libretas de un solo uso - OTP.
Un método alternativo es el de enviar la clave OTP por un canal de comunicación y el mensaje cifrado por otro, de forma totalmente independiente y bien diferenciada. Es decir, el mensaje cifrado se podría enviar, por ejemplo, vía radio, y la clave a través de email, mensajería, etc. Ninguno de los datos enviados ofrece ninguna pista sobre el mensaje original en caso de interceptación o mirada de terceros. Una vez que el destinatario obtiene los dos datos (clave OTP y mensaje cifrado) puede descifrar el contenido original.
Para cifrar o descifrar manualmente, partimos de una tabla de caracteres lo más reducida posible a fin de simplificar. Esta tabla podría ser todo lo amplia que se quisiera añadiendo por ejemplo caracteres especiales y signos de puntuación pero aumentaría la complejidad al enviar telegráficamente los mensajes cifrados. En esta versión se usan 36 caracteres asignando un número a cada uno de ellos (0 - 35). Los caracteres no incluidos en la tabla, incluyendo el espacio, no se cifrarán y no se realizará ninguna operación con ellos (se enviarán en claro).
Para cifrar manualmente el texto de un mensaje recorreremos uno a uno los caracteres del mensaje. Sumamos el número del primer caracter del mensaje con el número del primer caracter de la clave. Si el resultado es igual o menor que 35 ese será el número del caracter ya cifrado. Si el resultado es igual o mayor que 36 le restamos otros 36 (aritmética modular). Así sucesivamente con el resto de caracteres hasta terminar el mensaje.
Para descifrar manualmente el texto de un mensaje cifrado recorreremos uno a uno los caracteres del texto. Sumamos 36 al número del primer caracter del mensaje, al resultado le restamos el número del primer caracter de la clave. Si el resultado es igual o menor que 35 ese será el número del caracter ya cifrado. Si el resultado es igual o mayor que 36 le restamos otros 36 (aritmética modular). Así sucesivamente con el resto de caracteres hasta terminar el mensaje.
CIFRAR manualmente: H 7 O 14 L 11 A 0 MENSAJE + X 23 M 12 C 2 K 10 CLAVE = 30 26 13 10 MENSAJE + CLAVE = 5 30 1 26 N 13 K 10 Resultado (mod 36) = MENSAJE CIFRADO DESCIFRAR manualmente: 36 36 36 36 valor 36 + 5 30 1 26 N 13 K 10 MENSAJE cifrado - X 23 M 12 C 2 K 10 CLAVE = 43 50 47 36 36 + MENSAJE cifrado - CLAVE = H 7 O 14 L 11 A 0 Resultado (mod 36) = MENSAJE DESCIFRADO
Ventajas e inconvenientes
El principal inconveniente de las OTP es la distribución de las propias claves o libretas que convierte al sistema, aunque muy seguro, en algo difícil de mantener en la práctica. Remitente y destinatario deben tener y utilizar la misma clave para cada mensaje a fin de cifrar y descifrar. Estas claves, además, deben repartirse idealmente por canales distintos e independientes al del mensaje para descartar totalmente cualquier robo, copia, pérdida o filtración. No importa si el destinatario las obtiene antes o después de recibir un mensaje cifrado o si se reparten una o varias libretas para varios mensajes, el problema es la forma en que se envían éstas. El método más seguro y usado en toda la historia de las OTP es la de repartirlas o entregarlas directamente en mano, físicamente.
Aún así existe el método de enviar mensaje cifrado y clave OTP por medios de comunicación diferentes, ya explicado antes. Si alguien intercepta el cifrado o la clave por separado, no supondría ningún riesgo, pero la posibilidad de que un tercero se haga con los dos datos, mensaje cifrado y clave, siempre sería posible. Hay que tener en cuenta que, especialmente si se usa internet, no existe ningún sistema seguro al cien por cien.
La ventaja de las libretas de un solo uso es que si se guarda la confidencialidad de las claves, la encriptación no solo es irrompible sino que además el cifrado y descifrado se puede hacer a mano, con lápiz y papel y sin necesidad de ningún programa informático, con simples sumas o restas. Está demostrado que sería imposible descifrar una OTP que cumpla con todos los requisitos incluso si dispusiésemos de computación cuántica con velocidad y capacidad ilimitada de proceso.