La libreta de un solo uso - ONE TIME PAD Hoy vengo a explicaros sobre el único cifrado en el mundo 100% seguro que no puede ser hackeado por ninguna entidad o persona ajena siempre que se sigan una serie de pasos para proteger la clave. Esta técnica de cifrado es denominada como One Time Pad o Libreta de un solo uso. Al final del post os presentaré varios links con información adicional. El OTS es un cifrado enormemente simple de aplicar, de hecho puede ser utilizado por cualquier persona con un simple lápiz y papel. Sin necesidad de computadoras, y en la teoría resulta irrompible. Ejemplo Lo que hacemos es combinar el texto que queremos cifrar con una clave aleatoria. Por ejemplo imaginémonos que queremos cifrar la letra D. Utilizamos una clave aleatoria que puede ser el numero 2. A = 0 B = 1 C = 2 D = 3 Por lo tanto nuestra letra D (que sería nuestro texto) corresponde a un 3 3 (texto) - 2 (clave) = 1 ó B (texto cifrado) Para descifrar el destinatario necesitará conocer la misma clave. 1 + 2 = 3 (ó D, nuestro texto inicial) Lo que resulta tan simple, en realidad es el proceso de cifrado maś seguro del mundo. Y que durante años ha sido utilizado por los agentes de las agencias de seguridad de todo el mundo e incluso hoy en día. Su efectividad no se basa en un problema matemático que puede ser resuelto o crackeado, sino que se basa en el hecho de que la clave sea verdaderamente aleatoria y destinatario y receptor mantengan sus claves seguras. Las cuatro reglas doradas Pero para que funcione en la practica, deben cumplirse ciertos requisitos para no poner en peligro la clave. 1- Cada clave emprada para cifrar texto debe ser utilizada una única vez. 2- La clave emprada para cifrar el texto debe ser verdaderamente aleatoria. Así que nada de números generados por ordenador que pueden ser resueltos siguiendo un patrón. 3- El emisor debe darle al receptor las claves que utilizarán en sus transmisiones de manera segura. Así que nada de internet o email. Si realmente queréis seguridad las claves deben darse mano a mano. Porque si cifrais vuestras claves y las enviáis por email, estas solo serán tan seguras como vuestro cifrado. Es decir, no será el 100% de seguro, y eso no es lo que buscamos. 4- La clave debe ser tan larga como el texto. Veréis que este post lo escribo en modo paranoia. Luego cada uno que decida hasta que punto quiere llevar las medidas de seguridad. Sin embargo es importante que entendáis el principio. ¿Que pasa si incumplimos alguna de las condiciones anteriores? Si utilizamos números generados por máquina o no verdaderamente aleatorios, empleamos la misma clave dos veces o no las guardamos bien, entonces alguien podría utilizar técnicas de cripto analisis que le den pistas y que le ayuden a resolver el mensaje. Por ejemplo los servicios de inteligencia de alguno países. Ya se que nadie se va a meter con la NSA o el CNI, pero si realmente queréis 100% de seguridad entonces no debéis dejar huecos abiertos. Si seguís los 4 pasos, incluso para estos será imposible descifrar el mensaje. Ventajas y desventajas Desventajas del OTP: - Poco practico de aplicar a gran escala y sobre distancia si no queremos poner en peligro las claves - La clave es tan larga como el texto a cifrar Ventajas del OTP: - Un sistema absolutamente irrompible. - Se puede cifrar y descifrar mentalmente y solo con lápiz y papel - Ideal para mensajes de altísima importancia. Paso a paso Veamos ahora un ejemplo practico. Larry y yo queremos intercambiarnos mensajes de alta confidencialidad. Nos hemos encontrado en un lugar seguro y hemos intercambiado una libreta de claves. Esta libreta de claves contiene 100 claves que puede ser utilizada para 100 mensajes. Por ejemplo la primera clave es: 4503 5485 9658 9688 4563 Ahora yo me dispongo a enviarle un mensaje a mi amigo Larry. Digamos que le quiero enviar el texto: "Hola amigo" 1- Pasamos las letras a numeros. A = 00 B = 01 C = 02 D = 03 Espacio = 26 etc... Podéis utilizar el sistema que queráis, la finalidad de esto no es nada más que poder operarlo con la clave. En este caso el "Hola amigo" se convierte en: 07141100260012080614 Para que se pueda leer mejor: 0714 1100 2600 1208 0614 (Más tarde os enseñaré como pasar letras a números mentalmente de manera fácil). Hay que decir que el método de pasar las letras a números usado anteriormente no es el ideal, ya que te da 2 números por letra y puede resultar demasiado largo, hay otros, pero por ahora este servirá.) Bueno, ahora que tenemos el texto preparado para cifrarlo! Lo único que tenemos que hacer es sobreponer clave y texto. TEXTO: 0714 1100 2600 1208 0614 CLAVE: 4503 5485 9658 9688 4563 Y ahora restamos el numero de arriba con el de abajo. Para demostrarlo tomaremos los números del primer bloque en cursiva. 0 - 4 = 6 7 - 5 = 2 1 - 0 = 1 4 - 3 = 1 Fijados lo que pasa cuando el numero de arriba es mas pequeño que el de abajo. Los negativos no nos interesan para nada así que nos imaginamos que el numero lleva un 1 delante. En vez de cero, nos imaginamos que se trata de un 10. Por lo tanto 10 - 4 = 6 Seguimos con el resto del texto y nos sale: CIFRADO: 6211 6725 3052 2620 6151 Tachán! Ya tenemos nuestro texto listo que podemos enviar a los siete vientos y dormir tranquilos de que solo nuestro amigo Larry lo podrá resolver. Como funciona ¿Porque funciona esto? Puesto que la clave es en principio 100% aleatoria, está compuesta por números del 0 al 9 contemplando todas las posibilidades de formación posible. Así pues el texto cifrado con esa clave también incluye todas las posibilidades de formación posible. O sea que si alguien se dedicara a descifrar mi mensaje con todas las combinaciones de números posibles, por ejemplo con un super computador, obtendría al fin y al cabo todas las posibilidades de texto de 10 letras. Es decir, obtendría que las posibilidades pueden ser todas: AAAAAAAAAA AAAAAAAAAB AAAAAAAABB AAAAAAABBB Y así hasta agotar todas las posibildades. El atacante acabará sabiendo todo y nada a la vez. Es decir, allí donde nosotros hemos cifrado "Hola amigo", un atacante obtendría de manera igualmente valida "Te amo sol" (10 letras incluidos espacios), o también: "KDD el lun", o también "adios " (el resto de espacios en blanco). Es decir, no tendría nada. Ahora que ya he enviado a nuestro amigo Larry el mensaje cifrado, DEBO destruir la página con la clave. Si esta misma clave cayera en manos de un enemigo podría ser utilizada para descubrir el mensaje. Y si jamás se volviera a generar un mensaje con esa misma clave entonces un atacante podría utilizar métodos de probabilidad para averiguar el texto. La clave debe ser destruida ya que es de un solo uso. Arrancamos la página de la libreta y la quemamos. Descifrar el mensaje Ahora, nuestro texto cifrado llega a su destinatario y este procede a descifrarlo con facilidad. Solo tiene que sumar el texto cifrado y la clave. CIFRA: 6211 6725 3052 2620 6151 CLAVE: 4503 5485 9658 9688 4563 Os vuelvo a hacer el ejemplo con el primer bloque: 6 + 4 = 0 2 + 5 = 7 1 + 0 = 1 1 + 3 = 4 Así de fácil. Si en algún momento el resultado fuera mayor a 9 (Por ejemplo 8 + 8) entonces nos quedamos con la última cifra y descartaros el decimal. (8 + 8 = 6 [descartamos el 1 del 16]). Como veis al final vuelve a salir 0714 1100 2600 1208 0614 que si pasamos los numeros a nuestro abecedario: la septima letra es una H, la decimo cuarta una O, etc.. queda "HOLAAMIGO" Ojetivo cumplido. Ahora nuestro amigo Larry también deberá destruir la primera página de su libreta de claves. Puesto que no puede volver a utilizarse la misma clave. Como podréis imaginar, las claves de libretas reales tienen a lo mejor 100 numeros por clave / página, para permitir enviar mensajes largos. Si sobran caracteres se puede truncar, y si faltan se sigue el mensaje con otra clave. Cosas a tener en cuenta - Normalmente se suele utilizar la primera página de la libreta para el primer mensaje recibido y así continuando... Pero es muy recomendable indicar al principio o encima del texto cifrado la página de la libreta que corresponde a la clave utilizada. Imaginad que se nos moja la página 1 nos vemos obligados a utilizar la clave de la página dos. ¿Como se lo comunicamos al destinatario? Por ello un mensaje siempre podría ser: 0002 TEXTO CIFRADO A CONTINUACIÓN Así sabe que debe utilizar la clave dos. Que esto lo lea un atacante nos da bastante igual puesto que no revela ningún dato importante. Cuando el texto haya sido descifrado, la página 2 será destruida y por lo tanto irrecuperable. Si queréis también podéis utilizar algo así como: "Los martes tocan las páginas que empiezan por 2". O alguna chorrada de estas . Lo importante es que vayáis coordinados. Las libretas de códigos de los espías de la guerra fría eran diminutos. Y en caso de peligro podían ser tragados, quemados con una cerilla o escondidos. - Esto ya es más importante En el ejemplo se ha hablado de una libreta, sin embargo es extremadamente recomendable que cada miembro tenga dos. RonAnderson tiene dos libretas: A y B Larry tiene: A y B Cuando yo le envio un mensaje a Larry lo Cifro con A y este lo descifra con A Pero cuando larry me manda un mensaje, el lo cifra con B y yo lo descifro con B. ¿Porque esto? Imaginémonos que por casualidad yo y Larry nos mandamos un mensaje al mismo tiempo utilizando la primera clave de una única libreta. ¿Que es lo que ha pasado? Que se ha utilizado la misma clave dos veces. ¡Somos vulnerables! Solo si se siguen las cuatro premisas del principio, este sistema es 100% Diferencias con otros cifrados Los otros sistemas de cifrado se basan todos en un problema matemático muy complicado de resolver y confiando en que este problema nunca sea resuelto o un atacante no tenga suficiente potencia de computación como para tardar muuuuchos años en resolver todas las combinaciones posibles. Sin embargo como todos sabréis la tecnología avanza muy rápido y ahora estamos a las puertas de la computación cuántica, así que esos cifrados algún día puede que se puedan romper con facilidad. El OTP nunca será vulnerable si es aplicado bien. Ahora también veis porque es tan importante una clave realmente aleatoria. No sirven numeros generados por ordenador ya que no son realmente aleatorios, no se puede teclear como loco al teclado ya que la aletoriedad irá definida por nuestros trazos de dedos. Solo si la clave es perfectamente aleatorio el sistema será perfecto. Algunos utilizan los indices de polvo cósmico que cae sobre la tierra cada día, otros hacen calculos según el ruido ambiental en grandes ciudades, sin embargo un buen método es tirar un par de dados. Os podéis comprar unos 10 dados de esos de 100 caras que se utilizan para jugar a rol, los metéis en un saco y agitáis y tiráis sobre la cama. Es importante que los tiréis sobre superficies blandas ya que si un lado del dado se desgastara demasiado, podría afectar a la aletoriedad. (Ya os digo que esto está en modo paranoico) El OTP ha sido roto... pero solo cuando se hizo un mal uso Procedo a citar de la Wikipedia para que veáis lo que no se tiene que hacer. * En 1944–1945, la Signal Security Agency del ejército de EEUU consiguió resolver un sistema de libreta de un solo uso utilizado por la Oficina de Asuntos Exteriores alemana 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 utilizada para generar las libretas producía una salida predecible. * En 1945, EEUU descubrió que los mensajes Canberra-Moscú se estaban cifrando primero usando un libro de códigos y luego usando 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 utilizadas, 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. Métodos visuales para descifrar y cifrar Si en vez de tener una clave de numeros tenemos una clave aleatoria de letras, entonces podemos pasar directamente a de texto plano a texto cifrado con uno de estos de manera visual. La tabla de Vigenere: http://users.telenet.be/d.rijmenants/pics/vigenere.JPG Imaginémonos que el texto cifrado es: AGTD Y la clave es: COTR 1- Buscamos la letra C en la zona de clave. 2- En la misma linea buscamos la A verde. 3 - Miramos en la zona rosada que significa la letra. 4- Procedemos con las otras letras Y a la inversa para cifrar. Disco de vigenere: http://users.telenet.be/d.rijmenants/pics/vigeneredisk.JPG Aquí alineamos la letra clave en el disco interior con la A del exterior. Buscamos la letra cifrada en el interior y tendremos la normal en el exterior a su lado. Sin embargo algunos preferirán utilizar claves de números porque son más fáciles de calcular y más practicas. El inconveniente es que tenemos que pasar las letras a numeros antes. Las claves con letras también pueden ser calculadas matemáticamente pero tendríamos que emplear aritmética modular. En los links de abajo podéis ver ejemplos de ello. Si utilizáis una clave de números también podéis fabricar vuestros propios discos y tablas. En vez de contener letras, contendrán eso, números del 0 al 9. Incluso puede ser más fácil cifrar y descifrar puesto que no será tan grande la tabla. Pero en realidad nada supera en buen brain training, ya habéis visto que las operaciones son del tipo: 5 - 1 y 12 - 3. Finalmente... El secreto compartido Imaginémonos que queremos revelar la combinación de nuestro Cofre a dos personas en las que confiamos. Pero no queremos que se peleen o que una se quede con el tesoro entero y la otra se que sin nada (Ej. herencias). Si ciframos nuestro codigo de cofre con una clave, le podemos dar a cada persona una parte. A Juan le daremos la clave y a Pepito le daremos el resultado del cifrado. En este caso ambos códigos repartidos se llaman claves. Entonces, solo Y SOLO si los dos se ponen de acuerdo y suman sus claves podrán obtener el código al cofre. Así podemos cifrar información que queremos que solo se revele si varias personas se encuentran y acceden a compartir su clave. Vamos, lo tipico de las películas de que hay un tesoro enterrado y se dividió la información entre los "guardianes del tesoro" que están repartidos por todo el mundo. Pues en vez de complicarse la vida podrían haber cifrado con este metodo tan simple, la localización del tesoro y haberse repartido entre ellos las claves. Entonces si que estaría seguro. Por ejemplo digamos que hay 3 guardianes del tesoro. Seguimos los pasos habituales. TEXTO - CLAVE1 = CIFRADO (o clave 2) Sin embargo esta vez hacemos otra cosa: (TEXTO - CLAVE1) - CLAVE2 = CIFRADO (o clave 3) Y a cada persona le damos una de las 3 claves. Para recuperar el texto tendrán que sumarse las 3 claves. Eso si, si tan solo una llegara a perderse, os podéis olvidar por completo de recuperar el texto. Naturalmente que esto tiene muchos usos. Si le dais tan solo una de las claves a una persona que confiáis, podéis estar seguro que los otros, en caso de ser traidores, no podrán hacer nada sin el. Esto también es útil para distribuir coordenadas de manera segura. Las coordenadas tienen pocos números y la clave será solo tan largo como los números de las coordenadas (Pero no por ello menos seguro). Así pues, una vez me llegue mi clave por correo puedo memorizarla fácilmente, quedar con mi compañero que tiene la otra y localizar el punto de encuentro que indican. Y recordad, que todo esto con el único cifrado del mundo 100% irrompible. Podéis dormir tranquilos siempre y cuando sigáis los 4 pasos vitalicios, nadie en el mundo excepto los intencionados podrán saber que pone. Creo que debo decir en este punto que el almacenado de claves en un ordenador es peligroso. Spyware y otros programas maliciosos impiden que se trate de 100% seguridad. Si almacenáis las claves en un ordenador, estas se pueden ver comprometidas. Guardadlas en una libreta de papel bien escondida a la que solo tengáis acceso vosotros. Si dudáis que alguien pudiera haber visto una de vuestras claves, ¡destruidla y no la utilicéis! Aquí podéis ver como eran las libretas de claves utilizadas por los espias. Links http://users.telenet.be/d.rijmenants/en/onetimepad.htm http://users.telenet.be/d.rijmenants/en/secretsplitting.htm http://users.telenet.be/d.rijmenants/en/otp.htm http://es.wikipedia.org/wiki/Libreta_de_un_solo_uso http://en.wikipedia.org/wiki/One_time_pad
El único cifrado 100% Irrompible: el One Time Pad
Datos archivados del Taringa! original
18puntos
2,364visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos: