Contenido principal

Cifrado de Blaise de Vigenère

Noviembre 19, 2008

Buscando entre unas carpetas de mi disco, encontré un código que había realizado hace mas o menos un año, se trata del cifrado vigenère, atribuido a su inventor Blaise de Vigenère. Es una cifra derivada del cifrado de Julio César, la cual utiliza varias sustituciones en lugar de una sola como lo hace el cifrado César.

Para llevar a cabo el cifrado es fundamental tener tres cosas
:arrow: Un alfabeto
:arrow: El texto en plano
:arrow: La clave con la cual cifrar el texto

Primero debemos armar una tabla con el alfabeto. Para hacer corto el ejemplo, escogemos el alfabeto "ABCDEFG".
La tabla se arma de la siguiente forma:

Texto plano
Clave
  A B C D E F G
A A B C D E F G
B B C D E F G A
C C D E F G A B
D D E F G A B C
E E F G A B C D
F F G A B C D E
G G A B C D E F


La columna naranjada representa la clave a usar, y la fila naranjada representa el texto en plano.
Si queremos cifrar el texto plano "CADA BACA BAGA" con la clave "GEA", primero debemos eliminar los caracteres del texto plano que no se encuentran en el alfabeto. Así el texto plano a cifrar sería "CADBACABAGA"

Ahora debemos sobreponer la clave en el texto plano, de modo que la clave se repita tantas veces esté en el texto plano, de esta forma:
CADBACABAGA
GEAGEAGEAGE

Para dar por terminado el cifrado, lo que se hace es buscar la intersección entre cada letra del texto plano con su correspondiente de la clave en la tabla.
De este modo, la intersección entre la letra "C" del texto plano y su correspondiente "G" de la clave, según la tabla antes vista, es "B"
CG=B
AE=E
DA=D
BG=A
...
GG=F
AE=E

CADBACABAGA+
GEAGEAGEAGE
-----------
BEDAECGFAFE

El resultado es "BEDAECGFAFE".

Para llevar a cabo el proceso de descifrado, primero buscamos la fila que contiene cada letra de la clave, y allí buscamos su correspondiente del texto cifrado, a continuación seleccionamos la letra que está en la columna superior.
Para la primera letra, se busca la columna que empieza con la letra "G", luego en esa misma fila se localiza la letra "B" y se proyecta hacía la primera fila. El resultado es entonces la letra "C".
El proceso ilustrado se entiende mejor:

También he agregado a Cryptos la opción para poder utilizar este cifrado, tiene la opción de ingresar cualquier alfabeto, clave, texto y texto cifrado. El texto está limitado a 1000 caracteres, porque si se ingresa un texto demasiado grande, puede que el navegador se quede interpretando el script.
Ésta es la imagen del cifrado extendido a caracteres imprimibles de este cifrado, es un poco grande, así que dejo el link:
http://www.sinfocol.org/archivos/2008/11/vigenere_extendido.png
Link a Cryptos: http://www.sinfocol.org/herramientas/cryptos.php#vigenere

Archivado en: Criptografía |

2 comentarios

  1. Phicar Mayo 17, 2009 @ 12:25 pm

    Primero que todo, áspera la web..Los felicito

    segundo :P
    http://my.opera.com/phicar/blog/recopilacion-algunos-codes-de-cripto-basica

  2. Cifrado de Garbo parte I | Seguridad Informática Colombiana Septiembre 26, 2009 @ 11:49 pm

    [...] el mismo proceso de cifrado, pero usando las tablas inversas, de la misma forma que se hizo en el cifrado de vigenère. La siguiente tabla representa los alfabetos inversos a la hora de descifrar el [...]

Deja un comentario