thumb|290px|Extracto de una libreta de uso único. En criptografía, la libreta de uso único, también llamado libreta de un solo uso (del inglés one-time pad), es un tipo de algoritmos de cifrado por el que el texto en claro se combina con una clave aleatoria o «libreta» igual de larga que el texto en claro y que sólo se utiliza una vez. Fue inventado en 1917. Si la clave es verdaderamente aleatoria, nunca se reutiliza y, por supuesto, se mantiene en secreto, se puede demostrar que el método de la libreta de uso único es indescifrable. Uno de sus sinónimos puede ser cuaderno.

La parte del nombre relativa a la «libreta» procede de las implementaciones iniciales en las que la clave se distribuía en forma de libreta de papel, de manera que la página podía romperse y destruirse tras su uso. Para facilitar la ocultación, a veces la libreta era físicamente muy pequeña. Ver foto.

El cifrado de Vernam pertenece a este tipo de cifrado, de hecho ambos fueron creados por la misma persona, Gilbert Vernam. El sistema de Vernam era un cifrado que combinaba un mensaje con una clave que se leía de un bucle de cinta de papel. En su forma original, el sistema de Vernam no era irrompible porque la clave se podía reutilizar. El uso único vino un poco después, cuando Joseph Mauborgne reconoció que si la cinta de la clave era completamente aleatoria, se incrementaría la dificultad criptoanalítica. Algunos autores emplean el término «cifrado de Vernam» como sinónimo de «libreta de uso único», mientras que otros lo utilizan para cualquier cifrado de flujo aditivo, incluyendo los basados en un generador de números pseudoaleatorios criptográficamente seguro; abajo lo usaremos en este último sentido.David Kahn, 1967. The Codebreakers. Macmillan, ISBN 0-684-83130-9.

Secreto Al principio se reconocía que la libreta de uso único de Vernam-Mauborgne era muy difícil de romper, pero su estatus especial fue descubierto por Claude Shannon unos 25 años después. Usando elementos de la teoría de la información, demostró que la libreta de uso único tenía una propiedad que él llamó secreto perfecto: esto es, el texto cifrado no proporciona absolutamente ninguna información acerca del texto en claro. Por tanto, la probabilidad a priori de un mensaje en claro M es igual que la probabilidad a posteriori de un mensaje en claro M dado el correspondiente texto cifrado. Y de hecho todos los textos en claro son igualmente probables. Esto es una poderosa noción de dificultad criptoanalítica.Claude Shannon, 1949. «Communication Theory of Secrecy Systems». Bell System Technical Journal 28, 4: 656-715.

A pesar de la demostración de Shannon, la libreta de uso único tiene en la práctica serias desventajas:

requiere libretas de un solo uso perfectamente aleatorias la generación e intercambio de las libretas de uso único tiene que ser segura, y la libreta tiene que ser al menos tan larga como el mensaje hace falta un tratamiento cuidadoso para asegurarse de que siempre permanecerán en secreto para cualquier adversario, y es necesario deshacerse de ellas correctamente para evitar cualquier reutilización parcial o completa —de ahí el «uso único».

Estas dificultades de implementación han provocado casos en los que se han roto algunos sistemas de libreta de uso único, y son tan serios que han evitado que la libreta de uso único haya sido adoptada como una herramienta generalizada de seguridad informática.

En particular, el uso único es absolutamente necesario. Si una libreta de un solo uso se utiliza tan sólo dos veces, unas sencillas operaciones matemáticas pueden reducirla a un cifrado de clave corrida. Si ambos textos en claro están en lenguaje natural (por ejemplo, en inglés o en ruso), aunque ambos sean secretos, hay muchas posibilidades de que sean recuperados con criptoanálisis, posiblemente con algunas ambigüedades. Por supuesto, del mensaje más largo de los dos sólo se podrá recuperar la parte que solape con el mensaje más corto, además, quizás, de un poco más completando una palabra o frase. La explotación más famosa de esta vulnerabilidad es el proyecto VENONA.

La libreta de uso único no proporciona ningún mecanismo para asegurar la integridad del mensaje, y en teoría un atacante en el medio que conozca el mensaje exacto que se está enviando podría sustituir fácilmente parte o todo el mensaje con un texto de su elección que sea de la misma longitud. Se pueden usar las técnicas estándar para evitar esto, como un código de autentificación de mensaje, pero carecen de la prueba de seguridad de la que gozan las libretas de uso único.

Historia Desarrollo técnico La historia de la libreta de uso único está marcada por cuatro descubrimientos separados pero muy relacionados.

El primer sistema de libreta de uso único era eléctrico. En 1917, Gilbert Vernam (de AT&T) inventó y posteriormente patentó un cifrado basado en la tecnología de teletipo. Cada carácter del mensaje se combinaba eléctricamente con un carácter de una clave en cinta de papel. El capitán Joseph Mauborgne (más tarde capitán del ejército de los Estados Unidos y después jefe del Signal Corps) se dio cuenta de que la secuencia de la clave podía ser completamente aleatoria y que, en tal caso, el criptoanálisis sería más difícil. Juntos inventaron el primer sistema de cinta de un solo uso.

El segundo desarrollo fue el sistema de libreta de papel. Los diplomáticos llevaban mucho tiempo usando códigos y cifrados para la confidencialidad y para minimizar los gastos en telégrafo. En el caso de los códigos, las palabras y las frases se convertían en grupos de números (normalmente 4 o 5 dígitos) utilizando un libro de códigos de tipo diccionario. Para más seguridad, podían combinarse números secretos (normalmente con suma modular) con cada grupo codificado antes de la transmisión, y los números secretos se cambiaban periódicamente (esto se llamaba supercifrado). A principio de los años 20, tres criptógrafos alemanes, Werner Kunze, Rudolf Schauffler y Erich Langlotz, que se dedicaban a romper sistemas así, se dieron cuenta de que nunca podrían romperse si se usaba un número aditivo separado, escogido al azar, para cada grupo codificado. Tenían libretas de papel duplicadas con líneas de grupos de números aleatorios. Cada página tenía un número de serie y ocho líneas. Cada línea tenía seis números de 5 dígitos. Una página se usaba como hoja de trabajo para codificar un mensaje y luego se destruía. El número de serie de la página se enviaba con el mensaje codificado. El destinatario haría el procedimiento a la inversa y luego destruiría su copia de la página. El Ministerio de Asuntos Exteriores alemán puso en funcionamiento este sistema en 1923.

Ejemplo Supongamos que Alicia quiere enviarle el mensaje 'HOLA' a Roberto. Supongamos también que previamente, de alguna manera, se han producido dos libretas de papel que contienen idénticas secuencias de letras aleatorias y que se han enviado por vía segura a ambos. Alicia elige la página apropiada sin utilizar de la libreta. Normalmente la manera de hacer esto se decide a priori, por ejemplo «usar la hoja número 12 el Día del Trabajador», o «usar la siguiente hoja disponible para el siguiente mensaje». El material de la hoja seleccionada es la clave para este mensaje. Todas las letras de la libreta se combinarán de una forma predeterminada con una letra del mensaje. Es común, aunque no obligatorio, asignar a cada letra un valor numérico: por ejemplo, «A» es 0, «B» es 1, y así hasta la «Z», que es 26. En este ejemplo, la técnica es combinar la clave y el mensaje usando la suma modular. Se hace la suma módulo 27 (si se contabiliza la A como 0, siendo por tanto Z=26) de los valores numéricos de las letras correspondientes al mensaje y la clave. Si la clave empieza por:

X M C K

y el mensaje es «HOLA», entonces el cifrado se haría de la siguiente manera:

24 (X) 12 (M) 2 (C) 10 (K) clave + 7 (H) 15 (O) 11 (L) 0 (A) mensaje = 31 27 13 10 clave + mensaje = 4 (E) 0 (A) 13 (N) 10 (K) Resultado (mod 27) = texto cifrado

Nótese que cuando el número es mayor que 26, entonces, por aritmética modular, el valor resultante queda truncado.

El texto cifrado que habría que enviarle a Roberto sería entonces «EANK». Para obtener el texto en claro, Roberto utiliza la página clave correspondiente y realiza el mismo proceso, pero a la inversa. Ahora, la clave es restada del texto cifrado, de nuevo usando aritmética modular:

27 27 27 27 valor 27 + 4 (E) 0 (A) 13 (N) 10 (K) texto cifrado - 24 (X) 12 (M) 2 (C) 10 (K) clave = 7 15 38 27 27 + texto cifrado - clave = 7 (H) 15 (O) 11 (L) 0 (A) resultado (mod 27) = texto descifrado

Nótese que a todo valor se le suma previamente 27, y al final se aplica igualmente el módulo 27.

Así, Roberto recupera el texto en claro de Alicia, el mensaje vital «HOLA». Tanto Alicia como Roberto destruyen la hoja con la clave inmediatamente después de su uso, previniendo así su reutilización y un ataque contra el cifrado que sería trivial en esencia. La KGB enviaba con frecuencia a sus agentes libretas de uso único impresas en minúsculas hojas de «papel flash» —papel convertido químicamente en nitrocelulosa, que arde casi instantáneamente y no deja cenizas.

La libreta de un solo uso clásica del espionaje (que solía consistir en verdaderas libretas de papel -a menudo minúsculas para su fácil ocultación-, un lápiz afilado y el uso de algún cálculo mental) se puede implementar en forma de software usando ficheros de datos como entrada (texto en claro), salida (texto cifrado) y clave (la secuencia aleatoria requerida). A menudo se utiliza la operación XOR para combinar el texto en claro con la clave, y es especialmente atractiva en computación, ya que normalmente es una instrucción máquina nativa y por tanto es muy rápida. Sin embargo, no es trivial asegurar que la clave es realmente aleatoria, que sólo se utiliza una vez, que nunca acaba en manos de adversarios y que queda completamente destruida tras su empleo. Las partes auxiliares de una implementación de la libreta de uso único por software presentan verdaderos desafíos: el manejo/transmisión seguro del texto en claro, claves verdaderamente aleatorias y el uso único de la clave.

Seguridad Las libretas de uso único son seguras desde el punto de vista de la teoría de la información, en el sentido de que el mensaje cifrado no le proporciona a un criptoanalista ninguna información sobre el mensaje original. Esto es una poderosa noción de seguridad, desarrollada por primera vez durante la Segunda Guerra Mundial por Claude Shannon y demostrada matemáticamente por Shannon en la misma época. Sus resultados fueron publicados en el Bell Labs Technical Journal en 1949. Las libretas de uso único, utilizadas adecuadamente, son seguras en este sentido incluso contra adversarios con poder computacional infinito. Para seguir con el ejemplo de arriba, supongamos que Eva intercepta el texto cifrado de Alicia: «EANK». Si Eva dispusiera de una potencia computacional infinita, hallaría rápidamente que la clave «XMCK» produciría el texto en claro «HOLA», pero también hallaría que la clave «FCJR» produciría el texto en claro «ZYES», un mensaje igualmente plausible: 27 27 27 27 valor 27 + 4 (E) 0 (A) 13 (N) 10 (K) texto cifrado − 5 (F) 2 (C) 9 (J) 18 (R) posible clave = 26 25 31 19 27 + texto cifrado - posible clave = 26 (Z) 25 (Y) 4 (E) 19 (S) resultado (mod 27) = posible texto descifrado De hecho, es posible «descifrar» cualquier mensaje con el mismo número de caracteres a partir del texto cifrado simplemente usando una clave diferente, y no existe ninguna información en el texto cifrado que le permita a Eva escoger entre las posibles lecturas del texto cifrado.