Español | English
rss facebook linkedin Twitter

ONE TIME PAD: El sistema de cifrado irrompible



















En nuestro día a día dentro de la Seguridad IT, observamos como el cifrado de las comunicaciones es una parte fundamental de todos los servicios y aplicaciones que monitorizamos. Entramos en debates sobre si determinado cripto sistema o clave es lo suficientemente robusto para preservar la seguridad de las comunicaciones.
Pero… ¿realmente existe un sistema de cifrado que nos pueda garantizar este punto?

Los métodos o sistemas de cifra tienen una importancia fundamental en el mundo IT; la mayoría de servicios, protocolos y aplicaciones hacen uso de distintos métodos de cifra para proteger y firmar las comunicaciones en curso.
Una de las preguntas que debemos plantearnos es la siguiente: ¿realmente existe un método de cifra que pueda considerarse seguro? Entendemos como seguro un método de cifra que no pueda ser violado, que sea irrompible. Para poder responder a la cuestión sobre qué consideramos “seguro”, deberíamos retomar la definición de ‘secreto perfecto’ creada por el padre de la Teoría de la Información, Claude Shannon.

CLAUDE SHANNON
Ingeniero y matemático estadounidense, padre y creador entre otras cosas de la palabra bit, del concepto de entropía y sobretodo fundador de Teoría de la Información,  de la que beben muchos conceptos y aplicaciones de hoy en día.

Shannon postulaba que un sistema se considera perfectamente secreto si el texto cifrado o criptograma no revela ninguna información sobre el mensaje original, provocando por tanto que su criptoanálisis sea imposible.
Todos los sistemas de cifra que conocemos ya sea de clave simétrica o asimétrica, por sustitución o permutación, no son considerados perfectamente secretos, puesto que, de una manera u otra revelan información sobre el mensaje original.

Bueno, realmente todos menos uno: One Time Pad. Un sistema de cifrado de sustitución poli-alfabética cuyo origen data de finales del siglo XIX, y que puede presumir de ser el único que cumple con la norma de secreto perfecto. Y para conseguir este hito se basa en el operador lógico XOR.

LA MAGIA DE XOR

NOTA: Por cuestiones de espacio, alguno de los conceptos tratados han sido enfocados desde un punto de vista más general y abstracto, ya que son conceptos que de por sí podrían ocuparnos cientos y cientos de líneas.
Esta es la tabla de verdad del operador XOR, a nivel de bits:









El resultado sólo es verdadero (valor 1) cuando A o B son verdaderos; si los dos son iguales, se considera falso (valor 0).

Si extrapolamos a un método de cifra en el que:
•    A sea el texto original
•    B sea la clave
•    C sea el criptograma (o texto cifrado) como resultado de A XOR B

La magia de XOR radica en que si conseguimos acceder únicamente al criptograma C, es decir, sólo podemos acceder al criptograma, no conoceremos los valores de B (llave usada) ni lógicamente el mensaje A. Obtener alguna información sobre el mensaje original (A) resulta imposible. Veámoslo:

Si el valor de C es 0, puede ser porque:
•    A sea igual a 1 y B sea igual a 1
•    A sea igual a 0 y B sea igual a 0

Es decir, A puede tomar cualquiera de los dos valores disponibles, 0 o 1.

Si el valor de C es 1, puede ser porque:
•    A sea igual a 1 y B sea igual a 0
•    A sea igual a 0 y B sea igual a 1

Es decir, A puede tomar cualquiera de los dos valores disponibles, 0 o 1.
Por lo que podemos afirmar que si únicamente conocemos el texto cifrado o criptograma, no podremos nunca obtener información sobre mensaje original, de ningún tipo, ya que este puede tomar todos los posibles valores.

Una de las propiedades de XOR es la distribución de 0 y 1, que está repartida –como podemos observar en su tabla de verdad- al 50% entre 0 y 1. En contraste con otros operadores lógicos como AND (75% de 0 y 25% de 1) y OR (25% de 0 y 75% de 1)

También podemos afirmar que el operador lógico XOR nos permite funcionar en dos sentidos, tanto para cifrar –como ya hemos visto anteriormente- como para descifrar la información. Es decir, si M es el mensaje original, K la clave y C el criptograma resultante de hacer M (XOR) K, podríamos obtener el mensaje original mediante:

M = K (XOR) C

Otra de las características intrínsecas es que si tenemos un mensaje que no está uniformemente distribuido, pongamos por caso 11111111 y usamos una clave ‘aleatoria’ como podría ser 00101001, su criptograma usando XOR sería

11111111 XOR 00101001 >> 11010110

Lo que provoca que aunque partamos de un mensaje que no está uniformemente distribuido o con una distribución no conocida, si la clave es aleatoria, el criptograma volverá a estará distribuido de forma aleatoria. Dificultando enormemente el criptoanálisis del texto cifrado.

Por otra parte, podríamos pensar que otros operadores lógicos (a nivel de bit), como AND u OR también podrían servirnos para el mismo propósito, pero por desgracia, estos operadores, al carecer de las propiedades anteriormente explicadas de XOR, resultan poco útiles para estas tareas. Veámoslo gráficamente con un ejemplo a continuación.

Si tenemos la siguiente imagen:










Y aplicamos el operador AND entre cada bit de la imagen y una clave aleatoria (compuesta por 1 y 0 de forma ‘aleatoria’), obtenemos:











Si aplicamos un operador OR, obtenemos:










Como podemos observar, aún somos capaces de ver y/o distinguir los motivos de la imagen. En cambio, si aplicamos un filtro XOR a nivel de bits, esto es lo que obtenemos:











ONE TIME PAD

One Time Pad es un método de cifra que consiste en aplicar el operador XOR entre cada bit del mensaje original y los bits de una clave aleatoria. Su nombre proviene de que la clave se solía destruir en cuadernos (Pads) y sólo se debe emplear la misma clave una sola vez (One Time) para garantizar su seguridad.
Si garantizamos que no se re usan las claves y que éstas permanecen realmente aleatorias, podemos afirmar que obtenemos un cripto-sistema perfectamente seguro.


¿ADIÓS A LA MAGIA?
Entonces, ¿por qué no usamos este método de cifra?
Lo veremos en el siguiente artículo.


David Conde
SOC/CERT S21sec

1 comentario:

Anónimo dijo...

No sirve eso, se puede revertir muy facil


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login