Herramienta para decodificar / codificar Vigenere automáticamente. El Cifrado de Vigenere es un sistema de cifrado de sustitución polialfabético que utiliza una clave y una tabla de doble entrada.
Cifrado de Vigenere - dCode
Etiqueta(s): Cifrado Polialfabético
dCode es gratuito y sus herramientas son una valiosa ayuda en juegos, matemáticas, geocaching, acertijos y problemas para resolver todos los días.
¿Una sugerencia? ¿Un comentario? ¿Un error? ¿Una idea? ¡Escribe en dCode!
El cifrado Vigenère es un método de cifrado polialfabético que utiliza una palabra clave para codificar un mensaje.
Inventado por el criptólogo francés Blaise de Vigenère en el siglo XVI, se basa en el uso de una cuadrícula/tabla llamada cuadrado de Vigenère que permite desplazar las letras según la palabra clave.
El cifrado Vigenère utiliza una clave (y un alfabeto).
Ejemplo: Codifica el texto simple DCODE con la clave CLE y el alfabeto latino ABCDEFGHIJKLMNOPQRSTUVWXYZ.
El cifrado Vigenère se puede describir mediante 2 métodos de cifrado (que llegan al mismo resultado)
MÉTODO 1: cifrado Vigenère mediante la adición de letras
El cifrado Vigenère consiste en añadir la clave al texto simple.
— Asigna, para cada letra, el valor de su rango en el alfabeto, empezando por 0: A=0,B=1,…,Z=25. Los siguientes cálculos de adición de letras son en realidad adiciones de números (se suman los valores de las letras).
— Realiza el cálculo (letra simple + letra de la palabra clave) (módulo 26). NB: si el resultado es mayor o igual a 26, resta 26 del resultado (donde 26 es la longitud del alfabeto).
— Repetir el cálculo para las siguientes letras, si es necesario, hacer coincidir la longitud del texto con la clave, esto se repite infinitamente: CLECLECLEC..
Ejemplo: Tomar las primeras letras del mensaje D (=3) y la clave K (=10) y sumarlas 3+10=13. Anotar el valor y continuar con la siguiente letra del mensaje C (=2) y la siguiente letra de la clave E (=4): 2+4=6 etc. Cuando se llega al final de la clave, empezar de nuevo desde el principio de la misma.
— Para cada número obtenido (que debe ser un valor entre 0 y 25), hacer coincidir la letra con el mismo rango en el alfabeto. El mensaje cifrado se compone de la secuencia de letras obtenida.
Ejemplo:
D | C | O | D | E | mensaje sencillo |
3 | 2 | 14 | 3 | 4 | valores para cada letra |
K | E | Y | K | E | clave (repetida) |
10 | 4 | 24 | 10 | 4 | valores de letras para la clave |
13 | 6 | 12 | 13 | 8 | resultado de la suma (módulo 26) |
N | G | M | N | I | mensaje cifrado |
MÉTODO 2: cifrado Vigenere con una tabla
Para cifrar con Vigenere mediante una tabla de dos entradas, utilice la siguiente cuadrícula/matriz (caso en el que el alfabeto es ABCDEFGHIJKLMNOPQRSTUVWXYZ):
— Ubica la columna correspondiente a la letra del texto plano y la línea correspondiente a la letra de la clave, la intersección de la línea y la columna devuelve la letra cifrada.
Ejemplo: La intersección de la columna D (cuarta columna) y la línea K (décima fila) da la letra cifrada N.
— Repita con la siguiente letra del mensaje y la siguiente letra de la clave; cuando llegue al final de la clave, comience nuevamente desde el principio.
Ejemplo: NGMNI es el mensaje cifrado.
El descifrado Vigenère requiere una clave (y un alfabeto).
Ejemplo: Descifrar el mensaje NGMNI con la clave KEY y el alfabeto latino ABCDEFGHIJKLMNOPQRSTUVWXYZ
El Vigenère se puede describir mediante 2 métodos de descifrado (que llegan al mismo resultado)
MÉTODO 1: descifrado Vigenère por sustracción de letras
El descifrado Vigenère consiste en restar la clave del texto cifrado.
— Hacer coincidir, para cada letra, el valor de su rango en el alfabeto, empezando por 0: 0=A,1=B,…,25=Z. Los siguientes cálculos de resta de letras son, de hecho, restas de números (se restan los valores de las letras).
— Realizar el cálculo (letra cifrada - letra de la palabra clave) (módulo 26). NB: si el resultado es negativo (menor que 0), se añade 26 al resultado (donde 26 es la longitud del alfabeto).
— Repetir el cálculo para las letras siguientes, si es necesario, hacer coincidir la longitud del texto con la clave, esto se repite infinitamente: KEYKEYK..
Ejemplo: Tomar las primeras letras del mensaje N (=13) y la clave K (=10) y restarlas (13-10=3), la letra de rango 3 es D.
— Para cada número obtenido (que debe ser un valor entre 0 y 25), hacer coincidir la letra que tenga el mismo rango en el alfabeto. El mensaje simple está compuesto por la secuencia de letras obtenida.
Ejemplo:
N | G | M | N | I | ciphered message |
13 | 6 | 12 | 13 | 8 | values for each letter |
K | E | Y | K | E | key (repeated) |
10 | 4 | 24 | 10 | 4 | letter values for the key |
3 | 2 | 14 | 3 | 4 | result of the subtraction (modulo 26) |
D | C | O | D | E | plain original message |
MÉTODO 2: Descifrado Vigenere con una tabla
Para descifrar con Vigenere mediante una tabla cuadrada con dos entradas, utilice la siguiente cuadrícula/matriz (caso donde el alfabeto es ABCDEFGHIJKLMNOPQRSTUVWXYZ):
— Localice la línea de la letra clave (columna de la izquierda) y recorra la línea hasta encontrar la primera letra del mensaje cifrado. Luego, suba por la columna para leer la letra simple correspondiente (en la parte superior).
Ejemplo: La letra K corresponde a la fila 10, recorra la línea hasta encontrar N, y el nombre de esta columna es D, es la primera letra del mensaje simple.
— Repita con la siguiente letra del mensaje y la siguiente letra de la clave, cuando llegue al final de la clave, comience nuevamente desde el principio de la misma.
Ejemplo: DCODE es el texto simple original.
Después de un cifrado Vigenere, el mensaje tiene un índice de coincidencia que disminuye entre 0.05 y 0.04 dependiendo de la longitud de la clave, disminuye hacia 0.04 cuanto más larga sea la clave.
Cualquier vínculo con Francia o la nacionalidad francesa de Blaise de Vigenere es una pista.
Las técnicas de descifrado sin llave de Vigenère comienzan con métodos estadísticos que permiten encontrar la longitud de la clave, luego un análisis de frecuencia permite encontrar cada letra de la clave.
PRUEBA DE KASISKI
La prueba de Kasiski (desarrollada por Friedrich Kasiski en 1863) ayuda a identificar la longitud de la clave utilizada para el cifrado. Se basa en la observación de que, en un texto cifrado con una clave repetida, cualquier secuencia de letras que aparecen varias veces en el mensaje simple tiene probabilidad de ser cifrada con la misma porción de la clave, creando así la misma secuencia de letras cifradas. en el mensaje codificado.
La prueba de Kasiski consiste en identificar repeticiones de letras en el texto cifrado y calcular la distancia (en número de caracteres) entre sus apariciones. Los divisores comunes de las distancias obtenidas corresponden a posibles longitudes de la clave.
Ejemplo: ABC aparece tres veces en el mensaje ABCXYZABCKLMNOPQRSABC. Las posiciones de ABC son 0, 6 y 18. Los espacios entre dos redundancias de secuencia idénticas son 6, 12 y 18 (probablemente múltiplos de la longitud de la clave). Los divisores más comunes de estos números son 2, 3 y 6, por lo que la clave tiene una alta probabilidad de tener una longitud de 2, 3 o 6.
CÁLCULO DEL ÍNDICE DE COINCIDENCIA
La prueba del índice de coincidencia consiste en tomar una letra de N del mensaje y medir el índice de coincidencia del mensaje obtenido. Cuanto más cercano sea el índice de coincidencia al del supuesto lenguaje del mensaje claro, mayor será la probabilidad de que N sea la longitud de la clave utilizada.
De hecho, sacar una letra de N cuando N es la longitud de la clave equivale a tomar una serie de letras cifradas siempre con el mismo desplazamiento (equivalente a una sustitución monoalfabética), por lo que el índice de coincidencia es igual a ese texto claro. .
ANÁLISIS DE FRECUENCIA
Una vez determinada la longitud de la clave, es posible descifrar el cifrado de Vigenère mediante el análisis de frecuencia. Este método se basa en la distribución predecible de las letras en un idioma determinado (como la alta frecuencia de las letras E, A, T o S en francés o inglés).
— Dividir el texto codificado en varios subtextos, correspondiendo cada subtexto al mismo desplazamiento según el ciclo de clave. (Si la clave tiene una longitud de N, esto equivale a agrupar todas las letras ubicadas en posiciones que son múltiplos de N).
— Analizar cada subtexto de forma independiente: cada subtexto se cifra con un cifrado de desplazamiento (o cifrado César)
— Calcular la frecuencia de las letras en el subtexto (cuenta cuántas veces aparece cada letra) y comparar estas frecuencias con las frecuencias de las letras en el idioma de destino. Por tanto, el objetivo es encontrar el desplazamiento aplicado a cada subtexto y deducir la letra correspondiente al desplazamiento.
— Una vez determinado el desplazamiento de cada subtexto, deducir la clave o aplicar el desplazamiento inverso (negativo) al texto codificado.
Durante el cifrado, la clave se agrega al texto sin formato para obtener texto cifrado. Entonces, del texto cifrado, reste el texto plano para obtener la clave.
NB: esto equivale a descifrar el texto cifrado con el mensaje claro como clave. La clave aparecerá repetida.
Ejemplo: El texto cifrado es FNSFP y el texto plano conocido es DCODE. El uso de DCODE como clave para descifrar FNSFP le permite encontrar como texto claro CLECL, que de hecho es la clave de cifrado repetida ???.
La figura de Vigenère inspiró varias variaciones:
— El cifrado Beaufort: variante del cifrado Vigenère donde el cifrado consiste en sustraer el texto plano de la clave.
— El cifrado de Gronsfeld: variante donde la clave es directamente numérica (compuesta únicamente por dígitos del 0 al 9).
— El cifrado Vernam o One-Time Pad (o clave única): se aplica el cifrado Vigenère, pero la clave es aleatoria y tan larga como el texto plano y nunca se reutiliza (un solo uso para garantizar la seguridad).
— Un cifrado Vigenère de autoclave (o clave actual): en lugar de repetir una clave fija, al final de la clave, es el texto plano (o el texto cifrado) el que se utiliza como clave. Esto hace que el sistema sea menos susceptible a ataques estadísticos.
— Un cifrado Vigenère con alfabeto desordenado: el alfabeto utilizado en el cuadrado Vigenère se puede modificar para que no siga el orden ABCD..XYZ, sino que puede derivarse de una palabra clave o ser completamente aleatorio.
— El cifrado Vigenère con alfabeto personalizado: se utilizan otros conjuntos de caracteres, símbolos o números.
— Un cifrado Vigenère con clave dinámica: la clave puede cambiar dinámicamente después de ciertos caracteres o según reglas predefinidas.
— La regla Saint-Cyr: idéntica a la Vigenère, la regla mecánica utiliza dos tiras de alfabetos móviles para facilitar las operaciones de cifrado y descifrado.
Para que Vigenere sea resistente a los ataques, el codificador debe determinar la clave de cifrado más segura posible. Todos los ataques se basan en la detección de repeticiones de claves, por lo que para evitar este problema, es necesario utilizar la clave más larga posible para que no se repita, debe ser aleatoria y de longitud mayor o igual al tamaño del texto a cifrar. Este es el caso especial del cifrado de Vernam (One-Time Pad).
Para una seguridad aún mayor, es necesario que la clave no se utilice para cifrar 2 mensajes diferentes, porque un segundo uso de la clave equivale a una repetición que hará que pierda su seguridad.
La variante de clave actual utiliza una longitud de clave al menos igual a la del texto. Esta técnica hace posible asegurar el cifrado de Vigenere porque el ataque de Kasiski ya no es válido.Para obtener una clave lo suficientemente larga, es común usar un libro largo u otro mensaje. El uso de este tipo de clave abre la posibilidad de otros ataques, por palabra probable y / o por análisis de las frecuencias de los caracteres si el mensaje es lo suficientemente largo.En el caso particular donde la clave completa está compuesta de caracteres aleatorios (ver cifrado de Vernam), el mensaje se vuelve completamente inatacable por cualquier método de criptoanálisis (seguridad incondicional).
Al utilizar un alfabeto desordenado, o una clave que permita modificar el alfabeto latino clásico, el análisis de frecuencia es más complejo y el cifrado es más resistente a los ataques clásicos.
César es en realidad el equivalente de un código Vigénere de una letra. El código de Vigenere usa claves más largas y, por lo tanto, cada letra se puede codificar de varias maneras. El análisis de frecuencia no se puede usar directamente.
La regla Saint-Cyr es un instrumento con forma de regla que facilita el cifrado y descifrado manual de un mensaje codificado con Vigenère. Su parte fija está compuesta por el alfabeto, y su parte móvil deslizante es un alfabeto doble. Para cifrar una letra, mueva la diapositiva de modo que la A de la parte fija corresponda a la letra de la clave. Luego mire la letra de la parte móvil directamente debajo de la letra del mensaje claro escrito en la parte fija.
El cifrado Vigenère lleva el nombre de Blaise de Vigenère, un diplomático y criptógrafo francés del siglo XVI (1523-1596).
Aunque no inventó este método de cifrado, lo popularizó mejorándolo y describiéndolo en su obra publicada en 1586 Tratado sobre cifrados o formas secretas de escritura disponible here (affiliate link)
El método fue propuesto inicialmente por Giovan Battista Bellaso, un criptógrafo italiano, en 1553. Sin embargo, el trabajo más completo y detallado de Vigenère ayudó a asociar su nombre con este sistema.
Blaise de Vigenère escribió un tratado que describe esta cifra en 1586. Una reedición completa está disponible here (affiliate link) Sin embargo, otro tratado que data de 1553 por Giovan Battista Bellaso ya describió un sistema muy similar.
dCode conserva la propiedad del código fuente "Cifrado de Vigenere". Excepto la licencia explícita de código abierto (indicada Creative Commons/gratis), el algoritmo "Cifrado de Vigenere", el subprograma o fragmento (convertidor, solucionador, cifrado / descifrar, codificar / decodificar, cifrar / descifrar, descifrar, traducir), o las funciones "Cifrado de Vigenere" (calcular, convertir, resolver, descifrar / cifrar, descifrar / cifrar, decodificar / codificar, traducir) escritas en cualquier lenguaje informático (Python, Java, PHP, C#, Javascript, Matlab, etc.) y todas las descargas de datos, secuencias de comandos o acceso API para "Cifrado de Vigenere" no son públicas, lo mismo ocurre con el uso sin conexión en PC, dispositivos móviles, tabletas, iPhone o Android. aplicación!
Recordatorio: dCode es de uso gratuito.
¡Está permitido copiar y pegar la página "Cifrado de Vigenere" o cualquiera de sus resultados (incluso con fines comerciales) siempre que le das crédito a dCode!
Exportar resultados como un archivo .csv o .txt es gratuito haciendo clic en el icono exportar
Citar como fuente (bibliografía):
Cifrado de Vigenere en dCode.fr [sitio web en línea], recuperado el 2025-01-21,