Вы находитесь на странице: 1из 12

Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

Electrónica y ciencia
Blog técnico sobre proyectos caseros de electrónica, informática y física.

Índice de artículos Página principal

Criptoanálisis del cifrado XOR simple


Voy a presentaros un experimento que hice hace tiempo estudiando el cifrado
simple XOR. Se trata de una herramienta que es capaz de adivinar la clave con
que se ha cifrado un archivo y descifrarlo. Nada más que haciendo un
criptoanálisis del texto cifrado. Veréis que el algoritmo es sencillo, y por qué dicen Translate
los expertos que XOR es un cifrado de juguete.
Entradas populares
An XOR might keep your kid sister from reading your files, but it won’t
stop a cryptanalyst for more than a few minutes. -Bruce Schneier-
Receptor coche RC de
dos canales
Alguien anónimo me
dejó un comentario en
Propiedades de la operación XOR esta entrada pidiendo
que, ya que había analizado el
transmisor, describiera también el
Para los muy profanos, no iba a decir lo que es un xor y en su lugar iba a pegar un receptor. ...
enlace a la Wikipedia, pero creo que os ibais a quedar igual, así que tened en

1 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

cuenta esto: un xor es la abreviatura de eXclusive OR. Recordad que un OR es A o Utilizar un micrófono
B y por tanto vale 1 en cuanto A o B valgan 1. electret
Habíamos publicado
0ó0=0
en esta entrada los
0ó1=1 pasos a la hora de
registrar una señal, concretamente
1ó0=1
una señal sonora. Habíamos
1 ó 1 = 1 (y aquí está la diferencia) planteado más o men...

En un or exclusivo sería:
Matamoscas
eléctrónico: flyback
Hace unas semanas
pedí por correo un
aparato poco común
en España, o por lo menos yo no lo
he visto nunca. El caso es que lo
pedí por curios...

Cómo funcionan las


Si separamos la tabla en dos veremos una propiedad curiosa: cuando A es 0, etiquetas magneto-
entonces la salida es lo mismo que B (cuadro azul), pero si A vale 1, entonces la acústicas (o
acustomagnéticas)
salida es lo contrario de B (B negado). Una forma de ver la función XOR es que
En esta entrada quiero
nos permite invertir bits a voluntad. hablaros de un sistema anti hurtos
que casi todos habréis visto. Se
utiliza desde hace unos años en
muchos establecim...

El circuito RLC serie:


oscilaciones
amortiguadas
Antes de nada, os
quiero pedir disculpas
Otras propiedades interesantes de esta operación: por el parón que ha sufrido el blog
lo que va de año. Todos
1. Es conmutativa: Es decir que A xor B = B xor A necesitamos un respiro de vez en
cuando...
2. Asociativa:(A xor B) xor C = A xor (B xor C)

2 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

3. Autoinversa:(A xor B) xor B = A La Distorsión


Armónica Total (THD)
La propiedad 2 dice que si ciframos un texto con dos claves distintas es lo mismo Cualquier aficionado a
que si cifráramos con una única clave resultado de hacer XOR entre las dos la música o a la
anteriores. Por lo que dar dos o mas pasadas en un cifrado XOR carece de lógica, electrónica conoce lo
que es la distorsión. En este
ya que por la propiedad siguiente hasta podría dejar el texto claro tal cual estaba.
artículo hablaremos de la
importancia de la no l...
La propiedad 3 se deduce de la 2 sabiendo que cualquier número xor consigo
mismo es 0: A xor A = 0 por la propia definición de xor. Esto hace de xor una Reutilizar el motor de
un lector CDROM
función nilpotente, tal que si se aplica dos veces con la misma clave, se vuelve al
Hoy tenemos un lector
original. Además 0 xor B = B, así que si ciframos con xor un texto que de CDROM para
contenga bloques de 0 seguidos estamos guardando en el archivo la clave de desguazar. Es un tanto
cifrado. antiguo, pero eso nos favorece.
Como ya os podéis imaginar
mientras más moderno e...
La propiedad 2 es peligrosa para aplicaciones criptográficas pues nos permite
modificar datos predecibles sin necesidad de conocer la clave de cifrado. El Multivibrador astable
cifrado wireless WEP, por ejemplo, es lo mismo que un generador de números a transistores:
explicación
aleatorios más un XOR. En los paquetes cifrados con WEP, y concretamente en
El astable con dos
las cabeceras de las capas inferiores (ARP, IP, TCP) hay datos que son conocidos transistores NPN es de
como la MAC del router, o fácilmente predecibles, como la IP del PC cliente o del los primeros circuitos que se
punto de acceso. Sabiendo el texto en claro podemos extraer de él la clave, y estudian cuando se habla de
transistores en conmutación. Como
volver a cifrar los datos alterados. Se conocen varios ataques a WEP que dan muy su esq...
buenos resultados, de hecho ya no se aconseja utilizar WEP.
Reparación de un
cd-radio-casete
Cifrado XOR simple He pensado que
podría empezar este
año publicando una
Para cifrar un texto se escoge una clave y se aplica la operación a cada byte de entrada en el blog, que lo tengo algo
texto. Como generalmente la longitud de la clave es menor que la longitud de olvidado desde el verano. Así que
feliz año nuev...
texto que ciframos lo que se hace es repetirla cíclicamente. Un ejemplo se puede
ver en la Wikipedia pero hay multitud de sitios que lo explican bien.

3 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

Preamplificador
Como habíamos apuntado arriba, es lo mismo que invertir bits del texto en claro. micrófono electret:
¿cuales bits? Pues depende de la clave. Cuando el bit de la clave sea 1 se invierte el operacional
bit original, y cuando toque 0 en la clave, se deja igual. En teoría sin la clave es Viendo las estadísticas
del blog me sorprende
imposible saber qué bit se han invertido y cuales se han dejado igual, así que no
la cantidad de gente que busca un
tenemos información para descifrar el texto a menos que tengamos la clave. preamplificador para micrófono.
Creo que sería bueno publica...
¿Seguro?
Otros artículos
Criptoanálisis
¿Vierten la tinta
adrede las impresoras
Vamos con el análisis de un texto cifrado. Lo primero será averiguar la longitud de
de inyección?
la clave ¿pero eso se puede? Pues en general sí que se puede. Suponed que
tenemos un texto sin cifrar, de un libro por ejemplo. Si lo desplazamos un carácter
y contamos las letras que coinciden ronda el 6%. Si lo desplazamos dos caracteres Convertir palabras en
o n, lo que sean, y contamos la tasa de coincidencia ronda también el 6%. Es números (II)
debido a la redundancia de los lenguajes escritos, no me voy a detener en eso
ahora.

Sensor óptico sencillo


El caso es que en un texto cifrado eso no se cumple. Si cogemos un texto cifrado con amplio rango
parecen caracteres aleatorios. Y si lo desplazamos y lo superponemos no va a dinámico
coincidir más de un 1% o como mucho 2%, porque una 'a' estará cifrada con la
primera letra de la clave que puede ser 'E' mientras que más adelante otra 'a'
puede estarlo con la cuarta letra de la clave, una 'h'. Pero seguimos desplazándolo Termostato para
y superponiéndolo consigo mismo, 2 caracteres, 3, 4... hasta que llegamos a la estufa de incubación
casera
longitud de la clave. En ese momento, como la clave es cíclica, las coincidencias
aumentan súbitamente hasta el 6%. Serán coincidencias de caracteres raros, pero
coincidencias. Así vamos rotando el texto y superponiéndolo. Y esos picos se Mezclador de
producen justamente cuando el desplazamiento del texto es un múltiplo exacto de frecuencias con el
la longitud de la clave. integrado 4066

4 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

Preamplificador
micrófono electret:
operacional

Programación PIC
para decodificar RC5

Los dominios de la
entropía

Convolución de dos
Ved arriba cómo varían las coincidencias al superponer consigo mismo un texto imágenes:
cifrado con una clave de 16 caracteres de longitud. Los picos están en los Homógrafos UTF
múltiplos de 16. A partir de ahí inmediatamente deducimos la longitud de la clave.
Este efecto sólo funciona cuando:
Contraseña dinámica
La longitud de la clave es mayor que 2 caracteres. para acceder al PC de
casa
La longitud del texto es muy grande comparada con la de la clave.
La clave no tiene grupos de caracteres repetidos.
Y ahora que sabemos cómo es de larga la clave ¿qué hacemos? Pues hay dos Rastreador de redes
inalámbricas
caminos.

Camino A: Schneier propone hacer xor del texto original con el mismo texto
desplazado tantos caracteres como tiene la clave, con esto anulamos la clave: Reparación de un
cd-radio-casete
Esto es un ejemplo de texto cifrado con la palabra (XOR)
claveclaveclaveclaveclaveclaveclaveclaveclaveclave

5 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

(XOR) Frecuencímetro para


es un ejemplo de texto cifrado con la palabra clav (XOR) el PC
claveclaveclaveclaveclaveclaveclaveclaveclaveclave
--------------------------------------------------------
Esto es un ejemplo de texto cifrado con la palabra (XOR) Difraccion en un DVD
es un ejemplo de texto cifrado con la palabra clav

porque por las propiedades antes dichas:


Medir distancias con
(TEXTO xor CLAVE) xor (TEXTODESPLAZADO xor CLAVE) = un ratón de bola
(TEXTO xor TEXTODESPLAZADO) xor (CLAVE xor CLAVE) =
(TEXTO xor TEXTODESPLAZADO)

A partir de ahí tenemos suficiente información para descifrar el texto.


Suscribirse a

Camino B: Dividir el texto en tantas columnas como caracteres tenga la clave.


Entradas
Así cada una de las columnas está cifrada con el mismo carácter de la clave. Y
podemos aplicar un análisis de frecuencias para saber cual es ese carácter que Comentarios
cifra toda la columna. Dicho de forma más técnica, hemos pasado de tener un
texto cifrado con un sistema de sustitución polialfabético a tener varios textos Etiquetas
cada uno con un cifrado de sustitución simple.
amplificadores (11)
Precisamente los cifrados de sustitución polialfabéticos se inventaron para evitar biología (2)
el análisis de frecuencias de letras que hacía posible descifrar las sustituciones circuitos (24)
simples. No tenemos más que tomar una columna y ver qué carácter es el que más DimmerIR (6)
se repite. Generalmente será el correspondiente al ESPACIO o bien, si hemos estadística (9)
suprimido los espacios, la E, o la A, dependiendo del idioma en que esté escrito el física (15)
texto. Como cualquier cosa estadística, esta afirmación es más cierta cuanto más gnuplot (8)
largo sea el texto que tengamos.
linux (5)
microcontroladores (10)
Cuando sepamos con qué carácter se cifra cada columna, ya sabemos la clave

6 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

completa y ya podríamos descifrar el texto. óptica (6)


osciladores (8)
Herramientas del estudio PC (15)
Perl (17)
Hice un par de herramientas mientras investigaba este campo. Una se llama
programacion (16)
simplemente XOR.pl y sirve para aplicar la operación XOR al texto que se le pase
química (2)
como parámetro, usando una clave proporcionada por el usuario. Sirve tanto para
reciclado (8)
cifrar como para descifrar. Porque recordad que para descifrar el texto es
suficiente con volver a aplicar el xor con la misma clave. La otra se llama reparaciones (1)
xor_frecs.pl y es la que realiza el estudio de frecuencias y finalmente obtiene la sonido (12)
clave. telemandos (6)

Para ver cómo funcionan primero tomaremos un texto, por ejemplo un Lorem Buscar en este blog
Ipsum y lo cifraremos con la clave que queramos:
Buscar
$ XOR.pl loremipsum.txt
-= Estudio de Cifrado =-
Archivo del blog
Introduce la clave de cifrado: 3lectronic4
$ ► 2015 (3)
► 2013 (4)
Se crea un archivo cifrado. Ahora aplicaremos el criptoanálisis que he descrito
► 2012 (2)
antes para encontrar la clave:
► 2011 (11)
$ xor_frecs.pl loremipsum_XOR_3lectronic4 ▼ 2010 (50)
-= Estudio de Cifrado =- ► diciembre (2)
Desplazamiento: 1 caracteres, grado de coincidencia
► noviembre (3)
2.103310%
... ► octubre (4)
Desplazamiento: 10 caracteres, grado de coincidencia ► septiembre (6)
2.078164%
► agosto (4)
Desplazamiento: 11 caracteres, grado de coincidencia

7 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

6.701831% ► julio (4)


Desplazamiento: 12 caracteres, grado de coincidencia
► junio (6)
1.893234%
▼ mayo (7)
...
Desplazamiento: 21 caracteres, grado de coincidencia Preamplificador micrófono
electret: operacional
2.458761%
Desplazamiento: 22 caracteres, grado de coincidencia Convertir palabras en números
(II)
5.821918%
Desplazamiento: 23 caracteres, grado de coincidencia Convertir palabras en números
(I)
2.086577%
Transmisor protocolo NEC con
PIC
Primero aplica desplazamiento de varios caracteres y anota el índice de
coincidencia. Por cómo aumenta la coincidencia cuando el desplazamiento es 11 o Criptoanálisis del cifrado XOR
simple
22 intuimos ya que la clave podría tener 11 caracteres.
Receptor con PIC para mandos
Filtrando resultados (coincidencia > media + n * varianza): infrarrojos tipo NEC
Media estadística de los resultados: 2.0445164058409 Mando de un coche teledirigido
Varianza: 2.32809936248974
► abril (10)
Con n = 2.36 (9 resultados) longitud obtenida 76.27 -> r =
0.982123 ► marzo (4)
Con n = 2.13 (42 resultados) longitud obtenida 37.43 -> r =
0.998094
Blogs que me gusta leer
Con n = 1.91 (92 resultados) longitud obtenida 17.11 -> r =
0.999388 El tao de la física
Tres deliciosas y científicas etapas
Con n = 1.72 (131 resultados) longitud obtenida 12.34 -> r =
en la fuente de chocolate, ¡Yomi!
0.999476
Con n = 1.55 (144 resultados) longitud obtenida 11.24 -> r = Electrónica: teoría y
0.999909 práctica
Como programar
Con n = 1.39 (147 resultados) longitud obtenida 11.00 -> r = microcontroladores PIC
1.000000
Enchufa2

8 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

La longitud de la clave parece que es 11. #LDOnda: Cajas de resonancia

Gaussianos
Para saber cual es la longitud podríamos hacer el mínimo común múltiplo de los “La circunferencia de Feuerbach”,
desplazamientos que dan un máximo. Pero en este caso yo he preferido hacer una nuevo artículo en “El Aleph”
regresión lineal, la pendiente nos dará la longitud de la clave, y por el factor de Ikkaro
correlación tendremos una idea de si vamos por buen camino. El algoritmo Finalistas del Google Science Fair
iterativo que veis se usa para filtrar los picos. Al principio se consideran picos los 2015
que superen la media más cuatro veces la normal, pero no hay ninguno así que se MedTempus
va rebajando el umbral n hasta que se obtiene un resultado exacto. Ya a la venta la revista Naukas #3

Pentester.es
Ahora se aplica la separación por columnas y se busca el carácter que más se Inyección de comodines SQL en
repite en cada una. Esperamos que sea el espacio. Y de ahí deducimos ya el búsquedas de tipo LIKE
carácter de la clave que corresponde a cada columna.
Per Ardua ad Astra
Cuando la Medicina se toca con la
Estudio de las frecuencias de aparición para obtener la ciencia ficción: bolsas de la compra
clave. e infartos (revista Naukas nº3)
El caracter de la clave para la columna 1 podría ser '3'. Security By Default
El caracter de la clave para la columna 2 podría ser 'l'. Regalamos 5 entradas para
El caracter de la clave para la columna 3 podría ser 'e'. #Dragonjarcon 2016
El caracter de la clave para la columna 4 podría ser 'c'. Tall & Cute
El caracter de la clave para la columna 5 podría ser 't'. La ciencia también es actualidad:
El caracter de la clave para la columna 6 podría ser 'r'. Carta abierta a Ana Pastor.
El caracter de la clave para la columna 7 podría ser 'o'. Wardog y el Mundo
El caracter de la clave para la columna 8 podría ser 'n'. Los caminos del BOFH son infinitos
El caracter de la clave para la columna 9 podría ser 'i'.
El caracter de la clave para la columna 10 podría ser 'c'.
El caracter de la clave para la columna 11 podría ser '4'.

Clave encontrada: 3lectronic4

Así hemos roto el cifrado. En el programa se asume que el carácter más

9 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

abundante en el texto plano es el espacio. También he asumido que la clave consta


sólo de caracteres alfanuméricos, con algunas verificaciones adicionales se puede
saltar esta restricción. Os dejo las herramientas y unos archivos para probar aquí.
Hay un archivo que se llama cifrado.txt. Está cifrado usando este método,
intentad descifrarlo.

No obstante, hay más herramientas que ilustran este mismo método para romper
un cifrado XOR, por ejemplo CyptoTool. Si os interesa el tema, encontrad un rato
para leer Applied Cryptography de Bruce Schneier.

Como nota adicional, no penséis que todos los cifrados basados en xor son débiles
por naturaleza, sólo los que cifran en flujo de datos. Esta operación se utiliza
habitualmente como parte de cifradores en bloque.

Etiquetas: estadística, Perl, programacion

3 comentarios:

Anónimo 1 de abril de 2013, 20:47


Muy buen post, está bien explicado de manera sencilla y formal.

Por cierto, ¿también se le suele llamar análisis de autocorrelación?

Gracias!
Responder

Alejandro L 18 de abril de 2014, 15:59


Muy bueno,, lo estoy aplicando en una rutina de comunicación entre

10 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

microcontroladores
Responder

Anónimo 25 de enero de 2016, 14:03


Una explicación genial. Deberías dedicarte a la enseñanza si no lo haces ya. La
redacción es muy buena y haces el tema asequible. Le darías mil vueltas a muchos
profesores que tengo en la facultad y que se creen los mejores en su campo pero
que no saben transmitir nada.

¡Muchas gracias por la aportación!

Un saludo.
Responder

Introduce tu comentario...

Comentar como: Seleccionar perfil...

Publicar Vista previa

Por favor, usa mayúsculas, minúsculas, puntos, comas, interrogaciones y todo eso.
Muchas gracias.

11 de 12 19/09/16 03:37
Electrónica y ciencia: Criptoanálisis del cifrado XOR simple http://electronicayciencia.blogspot.com.es/2010/05/criptoanalisis-del-cif...

Enlaces a esta entrada


Crear un enlace

Entrada más reciente Página principal Entrada antigua

Plantilla Simple. Imágenes de plantillas de Dizzo. Con la tecnología de Blogger.

To the extent possible under law, Reinoso Guzmán has waived all copyright and related or neighboring rights to Electronicayciencia.

12 de 12 19/09/16 03:37

Вам также может понравиться