martes, 14 de agosto de 2012

[Extra Points] Code Message

 El cifrado de Vigenère
El cifrado Vigenère es un cifrado basado en diferentes series de caracteres o letras del cifrado César formando estos caracteres una tabla, llamada tabla de Vigenère, que se usa como clave. El cifrado de Vigenère es un cifrado polialfabético y de sustitución.

El cifrado Vigenère se ha reinventado muchas veces. El método original fue descrito por Giovan Batista Belaso en su libro de 1553 "La cifra del Sig. Giovan Batista Belaso", quien construyó el cifrado basándose en la tabula recta de Trithemius, pero añadió una clave repetida para cambiar cada carácter entre los diferentes alfabetos. Sin embargo, fue incorrectamente atribuido en el siglo XIX a Blaise de Vigenère, a partir de un trabajo realizado en 1583, y por ello aún se le conoce como el "cifrado Vigenère".

Este cifrado es conocido porque es fácil de entender e implementar, además parece irresoluble; esto le hizo valedor del apodo el código indescifrable (le chiffre indéchiffrable, en francés).

El primer cifrado polialfabético fue creado por Leone Battista Alberti hacia 1467 y usaba un disco de metal para cambiar entre los diferentes alfabetos del cifrado. El sistema de Alberti sólo cambiaba entre alfabetos después de muchas palabras, y los cambios se indicaban escribiendo la letra del correspondiente alfabeto en el mensaje cifrado. Más tarde, en 1508, Johannes Trithemius, en su trabajo Poligraphia, inventó la tabula recta, que es básicamente la tabla de Vigenère. Trithemius, sin embargo, sólo proporcionó un progresivo, rígido y predecible sistema de cambio entre alfabetos.
A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A
C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B
D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C
E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D
F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E
G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F
H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G
I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H
J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I
K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J
L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K
M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L
N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M
Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ
P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O
Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P
R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P S
S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R
T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S
U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T
V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U
W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V
X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W
Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X
Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y

El cifrado Vigenère ganó una gran reputación por ser excepcionalmente robusto. Incluso el escritor y matemático Charles Lutwidge Dodgson (Lewis Carroll) dijo que el cifrado Vigenère era irrompible en el artículo "The Alphabet Cipher" para una revista de niños. En 1917, "Scientific American" describió el cifrado Vigenère como imposible de romper. Esta reputación fue mantenida hasta que el método Kasiski  (1863) resolvió el cifrado  y algunos criptoanalistas habilidosos pudieron romper ocasionalmente el cifrado en el siglo XVI.

El cifrado Vigenère es lo suficientemente simple si se usa con discos de cifrado. Los Estados confederados de América, por ejemplo, utilizaron un disco de cifrado para implementar el cifrado Vigenère durante la Guerra Civil Americana. Los mensajes confederados fueron poco secretos, ya que los miembros de la Unión solían descifrar los mensajes.
Métodos de cifrado polialfabéticos

Corresponde a la aplicación cíclica de n cifrados monoalfabéticos, (de varios abecedarios desordenados).
- Dada una tabla con un alfabeto por cada letra del abecedario
Método:
Se busca una palabra clave fácil de recordar.
Se escribe la palabra debajo del texto en claro, repitiéndose tantas veces como sea necesario. Cada letra del texto en claro se codifica con el alfabeto de la tabla marcado por la letra inferior, o sea, la letra de la clave que corresponde. -


Cifrar:
C = ( M + K ) Mod N)

Descifrar:
M = ( C - K ) Mod N )

N = 26 (letras alfabeto -1 , ya que empezamos de 0)


Mensaje:    P A R I S  V A U T  B I E N  U N E  M E S S E
Key:      L O U P L  O U P L  O U P L  O U P  L O U P L
Criptograma:A O L X D  J U J E  P C T Y  I H T  X S M H P

Criptoanalisis para el cifrado  vigenere  usando kasiski

•Ideado en 1863 para romper el cifrado de Vigenere.
•Se basa en que ciertas secuencias de letras aparecen muchas  veces en los textos originales, y consecuentemente los textos  cifrados con Vigenere tienen las correspondientes secuencias  de letras cifradas también muy repetidas. 
•Por tanto, la distancia entre las cadenas más repetidas en el texto cifrado debe ser un múltiplo de la longitud de la clave K, y un buen candidato a longitud será el producto de los factores más repetidos en las distancias  encontradas. 

Texto original: TOBEORNOTTOBE
Clave: NOWNOWNOWNOWN
Texto cifrado: GCXRCNACPGCXR


Pasos del Criptoanálisis:
1. Se buscan los poligramas más repetidos y las distancias  desde sus puntos de inicio para cada uno.
2. Se sabe que la longitud de la clave divide a todas esas  distancias, por lo que también dividirá a su mcd
3. Se calculan los factores de cada distancia y se descubren  los factores más repetidos (candidatos a longitud de clave).
4. Se divide el criptograma en filas según cada longitud  candidata (empezando por la mayor) y se compara la  distribución de frecuencias de cada columna con la del  idioma usado.


Ejemplo :
Si un atacante intercepta el texto cifrado con Vigenere:
ANYVG YSTYN RPLWH RDTKX RNYPV QTGHP HZKFE YUMUS AYWVKZYEZM
EZUDL JKTUL JLKQB JUQVU ECKBN RCTHP KESXM AZOEN SXGOLPGNLE EBMMT
GCSSV MRSEZ MXHLP KJEJH TUPZU EDWKN NNRWA GEEXSLKZUD LJKFI
XHTKP IAZMX FACWC TQIDU WBRRL TTKVN AJWVB REAWT NSEZM OECSS
VMRSL JMLEE BMMTG AYVIY GHPEM YFARW AOAELUPIUA YYMGE EMJQK
SFCGU GYBPJ BPZYP JASNN FSTUS STYVG YS


•Texto descifrado:
If signals are to be displayed in the presence ofan enemy, they must be guarded by ciprés. The ciphers must be capable of frequent changes. The rules by  which these changes are made must be simple. Ciphers are undiscoverable in  proportion as their changes are frequent and as the messages in each change are brief. From Albert J. Myer’s Manual of Signals
Mas information
http://cryptull.webs.ull.es/TallerCripto/Criptoanalisis.pdf

El Codigo esta en python:

No hay comentarios:

Publicar un comentario