One-Time Pad el cifrado perfecto

Hay quienes creen que no existe un método de cifrado perfecto, o un cifrado que te pueda garantizar seguridad absoluta y se equivocan.

El método de cifrado de One-Time Pad, que fue inventado en 1917 por el Mayor Joseph Mauborgne y Gilbert Vernam de AT&T. Claude Shannon, 25 años después, se encargó de demostrar con la teoría de la información que este cifrado cumple con ser un secreto perfecto, lo que quiere decir que el contenido del mensaje no puede aportar nada de información a un atacante.

Es un método que sin importar el poder computacional que se tenga o si se haya inventado la computadora cuántica o si los extraterrestres de Andrómeda vengan a la tierra con sus métodos computacionales inimaginables, aún asi será seguro.

Preliminares

Necesitamos una llave de la misma longitud que el mensaje, la cual deberá ser de verdad aleatoria y no pseudo aleatoria. Además esta llave se supone que las dos partes la deben conocer (problema de intercambio de llaves) y cuando una parte cifre el mensaje debe destruir esa llave de alguna forma que no pueda recuperarse y luego enviar el mensaje cifrado, luego la otra parte va a descifrarlo y al terminar de hacerlo debe destruir la llave de nuevo.

Es primordial que no se vuelva a usar la misma llave dos veces pues un criptoanalista podría romper el cifrado sabiendo dos mensajes diferentes que se encriptaron con la misma llave.

¿Cómo funciona?

Es algo muy simple de entender, teniendo el texto:

Teniendo la llave:

El texto cifrado sería:

Porque:
A + R mod 26 = S
M + F mod 26 = S
A + T mod 26 = U

Suponiendo que A vale 1 y R vale 17: 1+17 = 18 y 18 / 26 nos daría como residuo 18, entonces el 18 corresponde a la letra S.

Es importante ver que no puede romperse incluso si pudieramos calcular todas las posibilidades y buscar mensajes coherentes, pues al decifrarlo podría decir SIVOY como NOVOY entonces es imposible saber cual es el mensaje cifrado sin saber la llave. Según dicen, los Rusos cifraron algunos mensajes con este método y siguen hasta la fecha sin poderse descifrar, y así seguirán para siempre.

El problema con este método y en general con cualquier método de cifrado simétrico es el intercambio de llaves, pues ¿cómo podrías intercambiar la clave del One Time Pad de una manera segura?

Fin

Si quieren profundizar más en el tema podrían leer en la página 15 del libro Applied Cryptography escrito por Bruce Schneier que explica con un poco más de detalle este algoritmo.

Con este código en javascript podríamos obtenerlo:

var charCodeCero = ("A".charCodeAt(0))-1;
function oneTimePad(mensaje, llave) {
	mensaje = mensaje.toUpperCase();
	llave = llave.toUpperCase();
	var cifrado = "";
        for(var i = 0; i < mensaje.length; i++) {
		cifrado += String.fromCharCode((( mensaje.charCodeAt(i) - charCodeCero +
                                                 llave.charCodeAt(i) - charCodeCero 
                                                 ) % 26) + charCodeCero);
	}
	return cifrado;
}

Los terroristas usaron Google Earth!! además de barcos, comida, coches…

Muy buen artículo de Bruce Schneier en el cual en respuesta a lo que algunos medios de comunicación dijeron “Los terroristas de Mumbai usaron Google Earth”, él dice,

claro que usaron google earth, además seguramente usaron barcos, y comieron en los restaurantes

Lo cual es muy lógico, pues habrá quienes aprovechen la tecnología para bien, y obviamente habrá quien la use para otros fines, pero eso no debe llevarnos a pensar que la tecnología es la causante de que ocurra algun acto terrorista, con o sin Google Earth seguramente hubieran hecho lo mismo, solo que tal vez les facilitó un poco más las cosas, asi como tambien llevar un coche les facilita a los ladrones robar un banco.