fbpx
Wikipedia

Libreta de un solo uso

En criptografía, la libreta de un solo uso, también llamado Relleno 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 un solo uso es indescifrable. Uno de sus sinónimos puede ser cuaderno.

Extracto de una libreta de un solo uso.

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.[1]

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 un solo uso», 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.[2]

Secreto

Al principio se reconocía que la libreta de un solo uso 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 un solo uso 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.[3]

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

  • requiere libretas de un solo uso perfectamente aleatorias
  • la generación e intercambio de las libretas de un solo uso 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 «un solo uso».

Estas dificultades de implementación han provocado casos en los que se han roto algunos sistemas de libreta de un solo uso, y son tan serios que han evitado que la libreta de un solo uso 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.[4]

La libreta de un solo uso 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 un solo uso.

Historia

Desarrollo técnico

La historia de la libreta de un solo uso está marcada por cuatro descubrimientos separados pero muy relacionados.

El primer sistema de libreta de un solo uso 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.[2]

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.[2]

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 un solo uso 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 un solo uso 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 un solo uso 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 un solo uso, 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.

La mayoría de los algoritmos de cifrado convencionales, tanto simétricos como asimétricos, utilizan patrones complejos de sustitución y trasposición. En el caso del mejor algoritmo que se usa en la actualidad, no se sabe si existe un procedimiento criptoanalítico que pueda revertir (o revertir parcialmente) esas transformaciones sin conocer la clave utilizada durante el cifrado.

En términos prácticos, para el mejor de ellos no se conoce un procedimiento así, aunque puede que existan algoritmos computacionales que puedan hacerlo en un tiempo 'razonable'. Uno de los principales problemas sin resolver en teoría de la computabilidad está relacionado con este problema; si P=NP, entonces sería al menos posible que se puedan hallar algoritmos así, y seguramente se buscarían con más ahínco que hoy en día. Y aunque se demuestre que no, algunos criptosistemas actuales todavía podrían romperse. Sin embargo, la libreta de un solo uso no sería menos segura si se demostrara que P=NP. En la actualidad se cree que P≠NP, y por tanto es dudoso que esta cuestión tenga relevancia práctica para el criptoanálisis o para el diseño de algoritmos de cifrado.

Ataques

Aunque las libretas de un solo uso son demostrablemente seguras si se generan y utilizan adecuadamente, un pequeño error puede posibilitar un criptoanálisis exitoso:

  • En 19441945, la Signal Security Agency del ejército de EE. UU. consiguió resolver un sistema de libreta de un solo uso utilizado por el Ministerio de Asuntos Exteriores alemán para su tráfico de alto nivel, de nombre en clave GEE (Erskine, 2001). El GEE era inseguro porque las libretas no eran completamente aleatorias — la máquina empleada para generar las libretas producía una salida predecible.
  • En 1945, EE. UU. descubrió que los mensajes Canberra-Moscú se estaban cifrando primero mediante un libro de códigos y luego a base de una libreta de un solo uso. Sin embargo, la libreta de un solo uso era la misma que utilizaba Moscú para los mensajes Washington DC-Moscú. Combinado con el hecho de que algunos mensajes Canberra-Moscú incluían documentos gubernamentales británicos que eran conocidos, esto permitió que se rompieran algunos de los mensajes cifrados.
  • Las agencias de espionaje soviéticas empleaban libretas de un solo uso para asegurar las comunicaciones con los agentes y los controladores de los agentes. El análisis demostró que estas libretas las generaban personas utilizando máquinas de escribir. Este método, por supuesto, no es «verdaderamente» aleatorio, ya que implica que ciertas secuencias de teclas convenientes sean más probables que otras, aunque demostró ser efectivo en general. Sin copias de las claves usadas, sólo ofrecían esperanzas de criptoanálisis algunos defectos en el método de generación o la reutilización de las claves. A principios de los 40, la inteligencia estadounidense y británica consiguió romper parte del tráfico de libreta de un solo uso hacia Moscú durante la Segunda Guerra Mundial, como resultado de ciertos errores cometidos al generar y distribuir las claves.

Requisitos para una verdadera aleatoriedad

Para explicar la libreta de uso único es necesario distinguir entre dos nociones de seguridad. La primera es la seguridad teórica del sistema de libreta de uso único demostrada por Shannon. La segunda es la seguridad ofrecida por los cifrados más punteros (por ejemplo, el AES) diseñados con los principios aprendidos durante la larga historia de la rotura de códigos y sujetos al testeo intensivo en un proceso de estandarización, bien en público o por un servicio de seguridad de primera clase (seguridad empírica). La primera está demostrada matemáticamente y está sujeta a la disponibilidad práctica de los números aleatorios. La segunda no está demostrada pero recibe la confianza de la mayoría de los gobiernos para proteger sus secretos más vitales.

Métodos que pueden ofrecer seguridad empírica pero no tienen seguridad de Shannon

Si la clave la genera un programa determinista, entonces no es aleatoria ni se puede afirmar que el sistema de cifrado ofrezca la seguridad teórica de la libreta de un solo uso. Se llama cifrado de flujo. Generalmente estos utilizan una clave pequeña que se usa como semilla para un flujo pseudoaleatorio largo, que luego se combina con el mensaje empleando algún mecanismo como los de la libreta de un solo uso (por ejemplo, XOR). Los cifrados en flujo pueden ser seguros en la práctica, pero no pueden ser absolutamente seguros en el mismo sentido demostrable de la libreta de un solo uso.

Los cifrados Fish usados por el ejército alemán en la Segunda Guerra Mundial resultaron ser cifrados en flujo inseguros, no útiles libretas de un solo uso automatizadas como pretendían sus diseñadores. Bletchley Park rompía uno de ellos regularmente, la máquina de cifrado de Lorenz.

Sin embargo, si se utiliza un famoso generador de números pseudoaleatorios criptográficamente seguro moderno, puede formar la base de un cifrado en flujo empíricamente seguro. Hay muchos diseños bien probados en el dominio público, que varían desde la simplicidad del RC4 al uso de un cifrado en bloque como el AES en modo contador. Parecería que hay pocos motivos para inventar nuevos cifrados en flujo, pero se piensa desde hace tiempo que la NSA y las agencias similares emplean un esfuerzo considerable en los cifrados en flujo para sus clientes gubernamentales.

Métodos que no ofrecen seguridad empírica ni seguridad de Shannon

La similitud entre los cifrados en flujo y las libretas de un solo uso lleva a menudo a que los criptográficamente incautos inventen cifrados en flujo inseguros bajo la creencia falsa de haber desarrollado una versión práctica de la libreta de un solo uso. Una versión especialmente insegura son los generadores de números aleatorios que se distribuyen en muchos (quizás la mayoría) de las bibliotecas accesorias de los lenguajes de programación o en forma de llamadas al sistema operativo. Normalmente producen secuencias que pasan alguna (o muchas) pruebas estadísticas, pero sin embargo son rompibles por técnicas criptoanalíticas. Durante un tiempo, el ANSI C estándar restringía la salida de la rutina de números aleatorios del lenguaje C a un entero de precisión simple, 16 bits para la mayoría de las implementaciones, dando 32768 valores distintos antes de repetirse. Esto es completamente inseguro y fácilmente rompible por fuerza bruta (para situarnos, basta saber que una computadora de 1 GHz que tarde 10 000 ciclos de reloj en comprobar un offset del ciclo RNG (un número ridículamente grande) tardaría menos de un tercio de segundo en comprobar todos los offsets posibles). Los generadores de números aleatorios estándar no sirven para propósitos criptográficos, concretamente para la libreta de un solo uso. En particular, el relativamente reciente algoritmo tornado de Mersenne, admirado ampliamente, aunque es lo bastante «aleatorio» para la mayoría de los usos de simulación o investigación, mejor que la mayoría de los generadores de su mismo tipo, y también bastante rápido, no debe utilizarse para generar claves de libreta de un solo uso. El algoritmo es determinista y no fue diseñado para la seguridad criptográfica.

Además, los valores conocidos públicamente como los dígitos finales de los tiempos de las carreras de maratón, los precios de cierre de valores de bolsa, por muy poco conocidos que sean, las temperaturas o presiones atmosféricas diarias, etc., aunque aparentemente aleatorios, son predecibles —después de que se produzca el hecho. De hecho, tampoco pueden usarse secuencias verdaderamente aleatorias que hayan sido publicadas, ya que si se identifican son predecibles. Un ejemplo es la publicación de una tabla de un millón de números aleatorios por la Rand Corp en 1950; ha pasado todos los tests estadísticos de aleatoriedad hasta ahora, y se cree que es verdaderamente aleatoria. Pero, al haberse publicado, es completamente predecible. También lo son los dígitos de pi, e, fi y otros números irracionales o trascendentales; puede que las secuencias sean aleatorias (una cuestión abierta, en realidad), pero son completamente predecibles.

Conseguir la seguridad de Shannon

Para conseguir la seguridad de Shannon se necesita una fuente de datos aleatorios perfectamente impredecibles. Una base teórica para la existencia física de la impredecibilidad es la mecánica cuántica. Sus afirmaciones de impredecibilidad están sujetas a la comprobación experimental. Ver: Experimentos de Bell. Otra base es la teoría de los sistemas dinámicos inestables y la teoría del caos. Estas teorías sugieren que incluso en el mundo determinista de la mecánica newtoniana, los sistemas reales evolucionan de maneras que no se pueden predecir en la práctica porque haría falta conocer las condiciones iniciales con una precisión que crece exponencialmente con el tiempo.

Para que se puedan usar en una libreta de un solo uso, los datos deben mostrar una aleatoriedad perfecta. En la práctica, la mayoría de las fuentes muestran alguna imperfección o desviación. La calidad de la aleatoriedad se mide por entropía. Un bit perfectamente aleatorio tiene una entropía uno. Una idea procedente de Von Neumann es utilizar un algoritmo para combinar varios bits aleatoriamente imperfectos, con una entropía menor que uno, para producir un bit con entropía igual a uno. Este proceso se llama destilación de entropía o blanqueamiento de Von Neumann, y permite generar en la práctica datos aleatorios adecuados para su uso en una libreta de un solo uso. El blanqueamiento de Von Neumann consiste en lo siguiente:[5]

Bits de entrada Salida
00 Sin salida
01 Devolver bit «1»
10 Devolver bit «0»
11 Sin salida

En Linux (y otros sistemas tipo Unix), el generador de números aleatorios del kernel, /dev/random, utiliza el ruido ambiental para generar datos aleatorios y es mejor que muchos diseños basados en llamadas al sistema. Intenta estimar la cantidad de entropía que recoge y se bloquea si el fondo de entropía se agota. Pretende ser, y se piensa que realmente es, mejor que muchos generadores parecidos, y si es así, está muy cerca de ser satisfactoriamente aleatorio. Pero este proceso es lento en sistemas que tienen pocas fuentes de ruido utilizables. Sin embargo, puede alimentarse con entropía adicional leyendo de un dispositivo generador de ruido.

Linux también proporciona /dev/urandom, que emplea un algoritmo determinista para generar los datos cuando no hay ruido ambiental disponible. Existen diseños mejorados, como el algoritmo de Yarrow. Las claves de libreta de un solo uso generadas con este método (es decir, con generadores de números aleatorios deterministas) carecen de la seguridad teórica de una libreta de un solo uso. Yarrow ofrece al menos tanta fuerza como un cifrado en bloque basado en el Triple DES.

Si una computadora que se utiliza para generar libretas de un solo uso queda comprometida por un virus informático u otros malwares, o por un adversario que consiga acceso físico, el software puede ser modificado para que transmita los datos o genere datos aparentemente aleatorios que en realidad son predecibles. Una forma de reducir este riesgo es generar libretas en una máquina que nunca esté conectada a una red informática y que preferiblemente no se utilice para ninguna otra tarea. Si se recogen los datos en dispositivos de almacenamiento nuevos y vírgenes (por ejemplo, un disquete o un CD-R), se elimina otra fuente de infección de malware. Si se van a producir libretas de papel, es mejor que la impresora también sea dedicada. Una opción puede ser emplear un ordenador portátil antiguo para generar las libretas, borrado y reinstalado con una copia confiable de un sistema operativo de código abierto, como Linux o BSD. Su pequeño tamaño permitiría guardarlo fácilmente en una caja fuerte cuando no esté en funcionamiento.

Referencias

  1. «One-Time-Pad (Vernam's Cipher) Frequently Asked Questions». Consultado el 12 de mayo de 2006.  Ver foto.
  2. David Kahn, 1967. The Codebreakers. Macmillan, ISBN 0-684-83130-9.
  3. Claude Shannon, 1949. «Communication Theory of Secrecy Systems». Bell System Technical Journal 28, 4: 656-715.
  4. . Archivado desde el original el 7 de marzo de 2004. 
  5. Cryptography Research, Inc. (27 de febrero de 2003). «Evaluation of VIA C3 Nehemiah Random Number Generator» (PDF). Consultado el 12 de mayo de 2006. 
  •   Datos: Q150474

libreta, solo, criptografía, libreta, solo, también, llamado, relleno, solo, inglés, time, tipo, algoritmos, cifrado, texto, claro, combina, clave, aleatoria, libreta, igual, larga, texto, claro, sólo, utiliza, inventado, 1917, clave, verdaderamente, aleatoria. En criptografia la libreta de un solo uso tambien llamado Relleno de un solo uso del ingles 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 solo 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 metodo de la libreta de un solo uso es indescifrable Uno de sus sinonimos puede ser cuaderno Extracto de una libreta de un solo uso La parte del nombre relativa a la libreta procede de las implementaciones iniciales en las que la clave se distribuia en forma de libreta de papel de manera que la pagina podia romperse y destruirse tras su uso Para facilitar la ocultacion a veces la libreta era fisicamente muy pequena 1 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 leia de un bucle de cinta de papel En su forma original el sistema de Vernam no era irrompible porque la clave se podia reutilizar El uso unico vino un poco despues cuando Joseph Mauborgne reconocio que si la cinta de la clave era completamente aleatoria se incrementaria la dificultad criptoanalitica Algunos autores emplean el termino cifrado de Vernam como sinonimo de libreta de un solo uso mientras que otros lo utilizan para cualquier cifrado de flujo aditivo incluyendo los basados en un generador de numeros pseudoaleatorios criptograficamente seguro abajo lo usaremos en este ultimo sentido 2 Indice 1 Secreto 2 Historia 2 1 Desarrollo tecnico 3 Ejemplo 4 Seguridad 5 Ataques 6 Requisitos para una verdadera aleatoriedad 6 1 Metodos que pueden ofrecer seguridad empirica pero no tienen seguridad de Shannon 6 2 Metodos que no ofrecen seguridad empirica ni seguridad de Shannon 6 3 Conseguir la seguridad de Shannon 7 ReferenciasSecreto EditarAl principio se reconocia que la libreta de un solo uso de Vernam Mauborgne era muy dificil de romper pero su estatus especial fue descubierto por Claude Shannon unos 25 anos despues Usando elementos de la teoria de la informacion demostro que la libreta de un solo uso tenia una propiedad que el llamo secreto perfecto esto es el texto cifrado no proporciona absolutamente ninguna informacion 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 nocion de dificultad criptoanalitica 3 A pesar de la demostracion de Shannon la libreta de un solo uso tiene en la practica serias desventajas requiere libretas de un solo uso perfectamente aleatorias la generacion e intercambio de las libretas de un solo uso 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 permaneceran en secreto para cualquier adversario y es necesario deshacerse de ellas correctamente para evitar cualquier reutilizacion parcial o completa de ahi el un solo uso Estas dificultades de implementacion han provocado casos en los que se han roto algunos sistemas de libreta de un solo uso y son tan serios que han evitado que la libreta de un solo uso haya sido adoptada como una herramienta generalizada de seguridad informatica En particular el uso unico es absolutamente necesario Si una libreta de un solo uso se utiliza tan solo dos veces unas sencillas operaciones matematicas pueden reducirla a un cifrado de clave corrida Si ambos textos en claro estan en lenguaje natural por ejemplo en ingles o en ruso aunque ambos sean secretos hay muchas posibilidades de que sean recuperados con criptoanalisis posiblemente con algunas ambiguedades Por supuesto del mensaje mas largo de los dos solo se podra recuperar la parte que solape con el mensaje mas corto ademas quizas de un poco mas completando una palabra o frase La explotacion mas famosa de esta vulnerabilidad es el proyecto VENONA 4 La libreta de un solo uso no proporciona ningun mecanismo para asegurar la integridad del mensaje y en teoria un atacante en el medio que conozca el mensaje exacto que se esta enviando podria sustituir facilmente parte o todo el mensaje con un texto de su eleccion que sea de la misma longitud Se pueden usar las tecnicas estandar para evitar esto como un codigo de autentificacion de mensaje pero carecen de la prueba de seguridad de la que gozan las libretas de un solo uso Historia EditarDesarrollo tecnico Editar La historia de la libreta de un solo uso esta marcada por cuatro descubrimientos separados pero muy relacionados El primer sistema de libreta de un solo uso era electrico En 1917 Gilbert Vernam de AT amp T invento y posteriormente patento un cifrado basado en la tecnologia de teletipo Cada caracter del mensaje se combinaba electricamente con un caracter de una clave en cinta de papel El capitan Joseph Mauborgne mas tarde capitan del ejercito de los Estados Unidos y despues jefe del Signal Corps se dio cuenta de que la secuencia de la clave podia ser completamente aleatoria y que en tal caso el criptoanalisis seria mas dificil Juntos inventaron el primer sistema de cinta de un solo uso 2 El segundo desarrollo fue el sistema de libreta de papel Los diplomaticos llevaban mucho tiempo usando codigos y cifrados para la confidencialidad y para minimizar los gastos en telegrafo En el caso de los codigos las palabras y las frases se convertian en grupos de numeros normalmente 4 o 5 digitos utilizando un libro de codigos de tipo diccionario Para mas seguridad podian combinarse numeros secretos normalmente con suma modular con cada grupo codificado antes de la transmision y los numeros secretos se cambiaban periodicamente esto se llamaba supercifrado A principio de los anos 20 tres criptografos alemanes Werner Kunze Rudolf Schauffler y Erich Langlotz que se dedicaban a romper sistemas asi se dieron cuenta de que nunca podrian romperse si se usaba un numero aditivo separado escogido al azar para cada grupo codificado Tenian libretas de papel duplicadas con lineas de grupos de numeros aleatorios Cada pagina tenia un numero de serie y ocho lineas Cada linea tenia seis numeros de 5 digitos Una pagina se usaba como hoja de trabajo para codificar un mensaje y luego se destruia El numero de serie de la pagina se enviaba con el mensaje codificado El destinatario haria el procedimiento a la inversa y luego destruiria su copia de la pagina El Ministerio de Asuntos Exteriores aleman puso en funcionamiento este sistema en 1923 2 Ejemplo EditarSupongamos que Alicia quiere enviarle el mensaje HOLA a Roberto Supongamos tambien que previamente de alguna manera se han producido dos libretas de papel que contienen identicas secuencias de letras aleatorias y que se han enviado por via segura a ambos Alicia elige la pagina apropiada sin utilizar de la libreta Normalmente la manera de hacer esto se decide a priori por ejemplo usar la hoja numero 12 el Dia 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 combinaran de una forma predeterminada con una letra del mensaje Es comun aunque no obligatorio asignar a cada letra un valor numerico por ejemplo A es 0 B es 1 y asi hasta la Z que es 26 En este ejemplo la tecnica es combinar la clave y el mensaje usando la suma modular Se hace la suma modulo 27 si se contabiliza la A como 0 siendo por tanto Z 26 de los valores numericos 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 haria 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 Notese que cuando el numero es mayor que 26 entonces por aritmetica modular el valor resultante queda truncado El texto cifrado que habria que enviarle a Roberto seria entonces EANK Para obtener el texto en claro Roberto utiliza la pagina clave correspondiente y realiza el mismo proceso pero a la inversa Ahora la clave es restada del texto cifrado de nuevo usando aritmetica 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 Notese que a todo valor se le suma previamente 27 y al final se aplica igualmente el modulo 27 Asi Roberto recupera el texto en claro de Alicia el mensaje vital HOLA Tanto Alicia como Roberto destruyen la hoja con la clave inmediatamente despues de su uso previniendo asi su reutilizacion y un ataque contra el cifrado que seria trivial en esencia La KGB enviaba con frecuencia a sus agentes libretas de un solo uso impresas en minusculas hojas de papel flash papel convertido quimicamente en nitrocelulosa que arde casi instantaneamente y no deja cenizas La libreta de un solo uso clasica del espionaje que solia consistir en verdaderas libretas de papel a menudo minusculas para su facil ocultacion un lapiz afilado y el uso de algun calculo 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 operacion XOR para combinar el texto en claro con la clave y es especialmente atractiva en computacion ya que normalmente es una instruccion maquina nativa y por tanto es muy rapida Sin embargo no es trivial asegurar que la clave es realmente aleatoria que solo se utiliza una vez que nunca acaba en manos de adversarios y que queda completamente destruida tras su empleo Las partes auxiliares de una implementacion de la libreta de un solo uso por software presentan verdaderos desafios el manejo transmision seguro del texto en claro claves verdaderamente aleatorias y el uso unico de la clave Seguridad EditarLas libretas de un solo uso son seguras desde el punto de vista de la teoria de la informacion en el sentido de que el mensaje cifrado no le proporciona a un criptoanalista ninguna informacion sobre el mensaje original Esto es una poderosa nocion de seguridad desarrollada por primera vez durante la Segunda Guerra Mundial por Claude Shannon y demostrada matematicamente por Shannon en la misma epoca Sus resultados fueron publicados en el Bell Labs Technical Journal en 1949 Las libretas de un solo uso 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 hallaria rapidamente que la clave XMCK produciria el texto en claro HOLA pero tambien hallaria que la clave FCJR produciria 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 numero de caracteres a partir del texto cifrado simplemente usando una clave diferente y no existe ninguna informacion en el texto cifrado que le permita a Eva escoger entre las posibles lecturas del texto cifrado La mayoria de los algoritmos de cifrado convencionales tanto simetricos como asimetricos utilizan patrones complejos de sustitucion y trasposicion En el caso del mejor algoritmo que se usa en la actualidad no se sabe si existe un procedimiento criptoanalitico que pueda revertir o revertir parcialmente esas transformaciones sin conocer la clave utilizada durante el cifrado En terminos practicos para el mejor de ellos no se conoce un procedimiento asi aunque puede que existan algoritmos computacionales que puedan hacerlo en un tiempo razonable Uno de los principales problemas sin resolver en teoria de la computabilidad esta relacionado con este problema si P NP entonces seria al menos posible que se puedan hallar algoritmos asi y seguramente se buscarian con mas ahinco que hoy en dia Y aunque se demuestre que no algunos criptosistemas actuales todavia podrian romperse Sin embargo la libreta de un solo uso no seria menos segura si se demostrara que P NP En la actualidad se cree que P NP y por tanto es dudoso que esta cuestion tenga relevancia practica para el criptoanalisis o para el diseno de algoritmos de cifrado Ataques EditarAunque las libretas de un solo uso son demostrablemente seguras si se generan y utilizan adecuadamente un pequeno error puede posibilitar un criptoanalisis exitoso En 1944 1945 la Signal Security Agency del ejercito de EE UU consiguio resolver un sistema de libreta de un solo uso utilizado por el Ministerio de Asuntos Exteriores aleman para su trafico de alto nivel de nombre en clave GEE Erskine 2001 El GEE era inseguro porque las libretas no eran completamente aleatorias la maquina empleada para generar las libretas producia una salida predecible En 1945 EE UU descubrio que los mensajes Canberra Moscu se estaban cifrando primero mediante un libro de codigos y luego a base de una libreta de un solo uso Sin embargo la libreta de un solo uso era la misma que utilizaba Moscu para los mensajes Washington DC Moscu Combinado con el hecho de que algunos mensajes Canberra Moscu incluian documentos gubernamentales britanicos que eran conocidos esto permitio que se rompieran algunos de los mensajes cifrados Las agencias de espionaje sovieticas empleaban libretas de un solo uso para asegurar las comunicaciones con los agentes y los controladores de los agentes El analisis demostro que estas libretas las generaban personas utilizando maquinas de escribir Este metodo por supuesto no es verdaderamente aleatorio ya que implica que ciertas secuencias de teclas convenientes sean mas probables que otras aunque demostro ser efectivo en general Sin copias de las claves usadas solo ofrecian esperanzas de criptoanalisis algunos defectos en el metodo de generacion o la reutilizacion de las claves A principios de los 40 la inteligencia estadounidense y britanica consiguio romper parte del trafico de libreta de un solo uso hacia Moscu durante la Segunda Guerra Mundial como resultado de ciertos errores cometidos al generar y distribuir las claves Requisitos para una verdadera aleatoriedad EditarPara explicar la libreta de uso unico es necesario distinguir entre dos nociones de seguridad La primera es la seguridad teorica del sistema de libreta de uso unico demostrada por Shannon La segunda es la seguridad ofrecida por los cifrados mas punteros por ejemplo el AES disenados con los principios aprendidos durante la larga historia de la rotura de codigos y sujetos al testeo intensivo en un proceso de estandarizacion bien en publico o por un servicio de seguridad de primera clase seguridad empirica La primera esta demostrada matematicamente y esta sujeta a la disponibilidad practica de los numeros aleatorios La segunda no esta demostrada pero recibe la confianza de la mayoria de los gobiernos para proteger sus secretos mas vitales Metodos que pueden ofrecer seguridad empirica pero no tienen seguridad de Shannon Editar Si la clave la genera un programa determinista entonces no es aleatoria ni se puede afirmar que el sistema de cifrado ofrezca la seguridad teorica de la libreta de un solo uso Se llama cifrado de flujo Generalmente estos utilizan una clave pequena que se usa como semilla para un flujo pseudoaleatorio largo que luego se combina con el mensaje empleando algun mecanismo como los de la libreta de un solo uso por ejemplo XOR Los cifrados en flujo pueden ser seguros en la practica pero no pueden ser absolutamente seguros en el mismo sentido demostrable de la libreta de un solo uso Los cifrados Fish usados por el ejercito aleman en la Segunda Guerra Mundial resultaron ser cifrados en flujo inseguros no utiles libretas de un solo uso automatizadas como pretendian sus disenadores Bletchley Park rompia uno de ellos regularmente la maquina de cifrado de Lorenz Sin embargo si se utiliza un famoso generador de numeros pseudoaleatorios criptograficamente seguro moderno puede formar la base de un cifrado en flujo empiricamente seguro Hay muchos disenos bien probados en el dominio publico que varian desde la simplicidad del RC4 al uso de un cifrado en bloque como el AES en modo contador Pareceria que hay pocos motivos para inventar nuevos cifrados en flujo pero se piensa desde hace tiempo que la NSA y las agencias similares emplean un esfuerzo considerable en los cifrados en flujo para sus clientes gubernamentales Metodos que no ofrecen seguridad empirica ni seguridad de Shannon Editar La similitud entre los cifrados en flujo y las libretas de un solo uso lleva a menudo a que los criptograficamente incautos inventen cifrados en flujo inseguros bajo la creencia falsa de haber desarrollado una version practica de la libreta de un solo uso Una version especialmente insegura son los generadores de numeros aleatorios que se distribuyen en muchos quizas la mayoria de las bibliotecas accesorias de los lenguajes de programacion o en forma de llamadas al sistema operativo Normalmente producen secuencias que pasan alguna o muchas pruebas estadisticas pero sin embargo son rompibles por tecnicas criptoanaliticas Durante un tiempo el ANSI C estandar restringia la salida de la rutina de numeros aleatorios del lenguaje C a un entero de precision simple 16 bits para la mayoria de las implementaciones dando 32768 valores distintos antes de repetirse Esto es completamente inseguro y facilmente rompible por fuerza bruta para situarnos basta saber que una computadora de 1 GHz que tarde 10 000 ciclos de reloj en comprobar un offset del ciclo RNG un numero ridiculamente grande tardaria menos de un tercio de segundo en comprobar todos los offsets posibles Los generadores de numeros aleatorios estandar no sirven para propositos criptograficos concretamente para la libreta de un solo uso En particular el relativamente reciente algoritmo tornado de Mersenne admirado ampliamente aunque es lo bastante aleatorio para la mayoria de los usos de simulacion o investigacion mejor que la mayoria de los generadores de su mismo tipo y tambien bastante rapido no debe utilizarse para generar claves de libreta de un solo uso El algoritmo es determinista y no fue disenado para la seguridad criptografica Ademas los valores conocidos publicamente como los digitos finales de los tiempos de las carreras de maraton los precios de cierre de valores de bolsa por muy poco conocidos que sean las temperaturas o presiones atmosfericas diarias etc aunque aparentemente aleatorios son predecibles despues de que se produzca el hecho De hecho tampoco pueden usarse secuencias verdaderamente aleatorias que hayan sido publicadas ya que si se identifican son predecibles Un ejemplo es la publicacion de una tabla de un millon de numeros aleatorios por la Rand Corp en 1950 ha pasado todos los tests estadisticos de aleatoriedad hasta ahora y se cree que es verdaderamente aleatoria Pero al haberse publicado es completamente predecible Tambien lo son los digitos de pi e fi y otros numeros irracionales o trascendentales puede que las secuencias sean aleatorias una cuestion abierta en realidad pero son completamente predecibles Conseguir la seguridad de Shannon Editar Para conseguir la seguridad de Shannon se necesita una fuente de datos aleatorios perfectamente impredecibles Una base teorica para la existencia fisica de la impredecibilidad es la mecanica cuantica Sus afirmaciones de impredecibilidad estan sujetas a la comprobacion experimental Ver Experimentos de Bell Otra base es la teoria de los sistemas dinamicos inestables y la teoria del caos Estas teorias sugieren que incluso en el mundo determinista de la mecanica newtoniana los sistemas reales evolucionan de maneras que no se pueden predecir en la practica porque haria falta conocer las condiciones iniciales con una precision que crece exponencialmente con el tiempo Para que se puedan usar en una libreta de un solo uso los datos deben mostrar una aleatoriedad perfecta En la practica la mayoria de las fuentes muestran alguna imperfeccion o desviacion La calidad de la aleatoriedad se mide por entropia Un bit perfectamente aleatorio tiene una entropia uno Una idea procedente de Von Neumann es utilizar un algoritmo para combinar varios bits aleatoriamente imperfectos con una entropia menor que uno para producir un bit con entropia igual a uno Este proceso se llama destilacion de entropia o blanqueamiento de Von Neumann y permite generar en la practica datos aleatorios adecuados para su uso en una libreta de un solo uso El blanqueamiento de Von Neumann consiste en lo siguiente 5 Bits de entrada Salida00 Sin salida01 Devolver bit 1 10 Devolver bit 0 11 Sin salidaEn Linux y otros sistemas tipo Unix el generador de numeros aleatorios del kernel dev random utiliza el ruido ambiental para generar datos aleatorios y es mejor que muchos disenos basados en llamadas al sistema Intenta estimar la cantidad de entropia que recoge y se bloquea si el fondo de entropia se agota Pretende ser y se piensa que realmente es mejor que muchos generadores parecidos y si es asi esta muy cerca de ser satisfactoriamente aleatorio Pero este proceso es lento en sistemas que tienen pocas fuentes de ruido utilizables Sin embargo puede alimentarse con entropia adicional leyendo de un dispositivo generador de ruido Linux tambien proporciona dev urandom que emplea un algoritmo determinista para generar los datos cuando no hay ruido ambiental disponible Existen disenos mejorados como el algoritmo de Yarrow Las claves de libreta de un solo uso generadas con este metodo es decir con generadores de numeros aleatorios deterministas carecen de la seguridad teorica de una libreta de un solo uso Yarrow ofrece al menos tanta fuerza como un cifrado en bloque basado en el Triple DES Si una computadora que se utiliza para generar libretas de un solo uso queda comprometida por un virus informatico u otros malwares o por un adversario que consiga acceso fisico el software puede ser modificado para que transmita los datos o genere datos aparentemente aleatorios que en realidad son predecibles Una forma de reducir este riesgo es generar libretas en una maquina que nunca este conectada a una red informatica y que preferiblemente no se utilice para ninguna otra tarea Si se recogen los datos en dispositivos de almacenamiento nuevos y virgenes por ejemplo un disquete o un CD R se elimina otra fuente de infeccion de malware Si se van a producir libretas de papel es mejor que la impresora tambien sea dedicada Una opcion puede ser emplear un ordenador portatil antiguo para generar las libretas borrado y reinstalado con una copia confiable de un sistema operativo de codigo abierto como Linux o BSD Su pequeno tamano permitiria guardarlo facilmente en una caja fuerte cuando no este en funcionamiento Referencias Editar One Time Pad Vernam s Cipher Frequently Asked Questions Consultado el 12 de mayo de 2006 Ver foto a b c David Kahn 1967 The Codebreakers Macmillan ISBN 0 684 83130 9 Claude Shannon 1949 Communication Theory of Secrecy Systems Bell System Technical Journal 28 4 656 715 NSA Pagina del Venona Archivado desde el original el 7 de marzo de 2004 Cryptography Research Inc 27 de febrero de 2003 Evaluation of VIA C3 Nehemiah Random Number Generator PDF Consultado el 12 de mayo de 2006 Datos Q150474Obtenido de https es wikipedia org w index php title Libreta de un solo uso amp oldid 133629784, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos