Prueba El Cifrado Cuadrado

Utiliza las herramientas proporcionadas a continuación para cifrar o descifrar un mensaje:

Cifrar

Resultado:

Descifrar

Resultado:

Matrices Generadas

Momentos maravillosos de la historia

El Cifrado Cuadrado: Antecedentes Históricos y Principios de Cifrado

El Cifrado Cuadrado es un método de cifrado simétrico inventado por el francés Félix Delastelle (1840-1902) y es parte de la criptografía moderna. Este método de cifrado cifra las letras en pares usando cuatro matrices de 5×5, cada una con 25 letras. Normalmente, se omite la letra Q, o se considera que I y J son la misma letra. Alternativamente, el método se puede adaptar para usar matrices de 6×6 para incluir 10 dígitos.

Durante el proceso de cifrado, se eligen dos palabras en inglés como claves, como "example" y "keyword." Después de eliminar las letras duplicadas, las letras restantes se colocan en orden en las matrices. Estas dos matrices se colocan en las esquinas superior derecha e inferior izquierda, mientras que las esquinas superior izquierda e inferior derecha utilizan la secuencia de la A a la Z para formar las matrices, creando la matriz del Cifrado Cuadrado.

Para cifrar un mensaje, las letras se separan en pares, como "hello world" que se convierte en "he ll ow or ld." Basándose en las posiciones en las matrices, se encuentran las letras cifradas correspondientes. Por ejemplo, el proceso de cifrado para "he" implica encontrar la posición de "h" en la matriz superior izquierda y "e" en la matriz inferior derecha. Luego, en la matriz superior derecha, se ubica la letra en la misma fila que "h" y la misma columna que "e", y en la matriz inferior izquierda, se encuentra la letra en la misma columna que "h" y la misma fila que "e". Estas dos letras forman el texto cifrado.

La debilidad del Cifrado Cuadrado radica en que si dos letras están en la misma columna, se usan las letras originales, lo que puede exponer aproximadamente el 20% del contenido. Además, dado que es un método de cifrado simétrico, se puede romper fácilmente mediante comparaciones registradas, lo que resulta en baja seguridad. Otro problema es que solo puede cifrar un número par de caracteres. Si hay un número impar, el último carácter restante no se puede cifrar, y usar el carácter original o el cifrado de relleno hace que el texto cifrado sea más vulnerable a la exposición.

Como parte de la criptografía clásica, aunque el Cifrado Cuadrado no iguala la seguridad de los algoritmos de cifrado modernos, su simplicidad y significancia histórica han proporcionado inspiración para los métodos de cifrado modernos.

Guía Paso a Paso para el Cifrado Cuadrado

A continuación se muestra una guía detallada paso a paso para cifrar utilizando el Cifrado de Cuatro Cuadrados, con las palabras clave "Four" y "Cipher" y el texto plano "Hello World".

Paso 1: Preparación

  • Elegir Palabras Clave
    • clave1 = "Four"
    • clave2 = "Cipher"
  • Preparar Texto Plano
    • El texto plano es "Hello World".
  • Convertir Texto Plano a un Formato Adecuado para el Cifrado
    • Convertir a letras mayúsculas y reemplazar la letra J con I: Hello World -> HELLOWORLD
    • Eliminar caracteres no alfabéticos: HELLOWORLD
    • Si la longitud del texto plano es impar, añadir el carácter X al final.

Paso 2: Generar Cuadrados de Letras

Usar las palabras clave para generar cuatro cuadrados de letras de 5x5. El alfabeto típicamente omite la letra J, usandoI en su lugar.

Función para Generar Cuadrados de Letras

                
                function createSquare(keyword) {
                    let alphabet = "ABCDEFGHIKLMNOPQRSTUVWXYZ";
                    let used = {};
                    let square = "";
                    keyword = keyword.toUpperCase().replace(/J/g, 'I');
                    for (let i = 0; i < keyword.length; i++) {
                        if (!used[keyword[i]]) {
                            used[keyword[i]] = true;
                            square += keyword[i];
                        }
                    }
                    for (let i = 0; i < alphabet.length; i++) {
                        if (!used[alphabet[i]]) {
                            square += alphabet[i];
                        }
                    }
                    return square;
                }
                
            

Generar 4 Cuadrados de Letras

Cuadrado 1 (cuadrado1) y Cuadrado 4 (cuadrado4) usando clave1 = "FOUR":

                
                F O U R A
                B C D E G
                H I K L M
                N P Q S T
                V W X Y Z
                
            

Cuadrado 2 (cuadrado2) y Cuadrado 3 (cuadrado3) usando clave2 = "CIPHER":

                
                C I P H E 
                R A B D F
                G K L M N
                O Q S T U
                V W X Y Z
                
            

Paso 3: Proceso de Cifrado

Dividir el texto plano en pares de letras y cifrar cada par. Ejemplo de texto plano: HELLOWORLD.

Dividir Texto Plano

HELLOWORLD -> HE LL OW OR LD

Cifrar Cada Par de Letras

Usar la siguiente función para encontrar la posición de las letras en los cuadrados:

                
                    function findPosition(square, char) {
                        let index = square.indexOf(char);
                        let row = Math.floor(index / 5);
                        let col = index % 5;
                        return [row, col];
                    }
                
            

Cifrar cada par de letras paso a paso:

  • Cifrar Par "HE"
    • H está en la posición (2, 0) en cuadrado1
    • E está en la posición (1, 3) en cuadrado4
    • Tomar (2, 3) de cuadrado2 -> M
    • Tomar (1, 0) de cuadrado3 -> R
    • Resultado: HE -> MR
  • Cifrar Par "LL"
    • L está en la posición (2, 3) en cuadrado1
    • L está en la posición (2, 3) en cuadrado4
    • Tomar (2, 3) de cuadrado2 -> M
    • Tomar (2, 3) de cuadrado3 -> M
    • Resultado: LL -> MM
  • Cifrar Par "OW"
    • O está en la posición (0, 1) en cuadrado1
    • W está en la posición (4, 1) en cuadrado4
    • Tomar (0, 1) de cuadrado2 -> I
    • Tomar (4, 1) de cuadrado3 -> W
    • Resultado: OW -> IW
  • Cifrar Par "OR"
    • O está en la posición (0, 1) en cuadrado1
    • R está en la posición (0, 3) en cuadrado4
    • Tomar (0, 3) de cuadrado2 -> H
    • Tomar (0, 1) de cuadrado3 -> I
    • Resultado: OR -> HI
  • Cifrar Par "LD"
    • L está en la posición (2, 3) en cuadrado1
    • D está en la posición (1, 2) en cuadrado4
    • Tomar (2, 2) de cuadrado2 -> L
    • Tomar (1, 3) de cuadrado3 -> D
    • Resultado: LD -> LD

Texto Cifrado Final

Combina los pares de letras cifrados. El texto cifrado para HELLOWORLD es: MRMMIWHILD

Comparación entre el Cifrado Cuadrado, el Cifrado Playfair Doble y el Cifrado Playfair

Similitudes

  • Cifrados de Sustitución Poligráfica
    • El Cifrado Cuadrado, el Cifrado Playfair Doble y el Cifrado Playfair son todos cifrados de sustitución poligráfica. Esto significa que utilizan pares o grupos de letras como la unidad básica para el cifrado y descifrado, en lugar de letras individuales.
  • Matrices de Letras
    • Los tres sistemas de cifrado utilizan matrices de letras para el cifrado y descifrado. Cada método se basa en las posiciones de las letras en estas matrices para realizar sustituciones o transformaciones.
  • Objetivo
    • El objetivo de diseño de estos cifrados es mejorar la seguridad de los cifrados de sustitución de una sola letra tradicionales al aumentar la complejidad del cifrado, evitando así los ataques simples de análisis de frecuencia.

Diferencias

Cifrado Cuadrado

  • Matrices de Letras: Utiliza cuatro matrices de letras de 5x5.
  • Unidad de Cifrado: Procesa dos letras a la vez.
  • Pasos:
    • Cuatro matrices de letras: Dos matrices se generan a partir de palabras clave, y las otras dos suelen estar en orden alfabético estándar.
    • Dividir el texto plano en pares de letras.
    • Encontrar la posición de cada par de letras en dos matrices diferentes, luego encontrar las letras cifradas correspondientes en las otras dos matrices.
  • Complejidad: Aumenta la complejidad y la seguridad al usar más matrices en comparación con el Cifrado Playfair.

Cifrado Playfair Doble

  • Matrices de Letras: Utiliza dos matrices de letras de 5x5.
  • Unidad de Cifrado: Procesa dos letras a la vez.
  • Pasos:
    • Se generan dos matrices de letras a partir de diferentes palabras clave.
    • Dividir el texto plano en pares de letras.
    • Usar la primera matriz para encontrar la posición de la primera letra, y la segunda matriz para encontrar la posición de la segunda letra, luego sustituir las letras según las reglas.
  • Complejidad: Añade complejidad y seguridad al introducir una segunda matriz en comparación con el cifrado Playfair simple.

Cifrado Playfair

  • Matrices de Letras: Utiliza una matriz de letras de 5x5.
  • Unidad de Cifrado: Procesa dos letras a la vez.
  • Pasos:
    • Se genera una matriz de letras a partir de una palabra clave.
    • Dividir el texto plano en pares de letras.
    • Reemplazar las letras según su relación posicional (misma fila, misma columna o diferentes filas y columnas).
  • Complejidad: Aumenta la complejidad en comparación con los cifrados de sustitución de una sola letra simples, pero es menos complejo que los cifrados Playfair Doble y Cuadrado.

Tabla de Comparación

Característica Cifrado Cuadrado Cifrado Playfair Doble Cifrado Playfair
Número de Matrices de Letras 4 2 1
Unidad de Cifrado Dos letras a la vez Dos letras a la vez Dos letras a la vez
Palabras Clave Dos palabras clave Dos palabras clave Una palabra clave
Complejidad Alta Media Baja
Reglas de Cifrado Usa cuatro matrices para encontrar sustituciones Usa dos matrices para encontrar sustituciones Usa una matriz para encontrar sustituciones

Transposición y Sustitución

El Traité Élémentaire de Cryptographie de Félix Delastelle explora en profundidad los métodos de transposición y sustitución en criptografía. La transposición implica alterar las posiciones de las letras en el texto plano para cifrar el mensaje. Por ejemplo, invirtiendo el orden de las letras, como en el caso de "Paul est parti pour Lyon" que se convierte en "NOYLRUOPITRAPTSELUAP". Otro método es el agrupamiento, donde el texto plano se organiza en una forma predeterminada, y luego las letras se extraen en un orden acordado para formar el texto cifrado.

Original en français:
"L'inversion consiste à transposer ou déplacer les lettres du texte clair suivant une méthode convenue entre les correspondants, de telle sorte qu'il soit facile aux initiés de rétablir l'ordre primitif."

Traducción al español:
"La inversión consiste en transponer o mover las letras del texto claro según un método acordado entre los corresponsales para que sea fácil para los iniciados restablecer el orden original."

Original en français:
Le renversement s'effectue en écrivant les lettres du clair en sens inverse de l'ordre normal, la dernière lettre devenant la première, l'avant-dernière la seconde, l'antépénultième la troisième, etc. Exemple: "Paul est parti pour Lyon" s'écrira "NOYLRUOPITRAPTSELUAP". Le renversement peut s'appliquer soit au texte entier, soit successivement à chaque mot ou à des groupes d'un nombre de lettres convenu. La phrase ci-dessus, divisée en deux groupes de dix lettres, donnerait: "RAPTSELUAPNOYLRUOPIT". Et en quatre groupes de cinq lettres: "ELUAPRAPTSUOPITNOYLR".

Traducción al español:
La inversión se lleva a cabo escribiendo las letras del texto claro en el sentido opuesto al orden normal, la última letra convirtiéndose en la primera, la penúltima en la segunda, la antepenúltima en la tercera, etc. Ejemplo: "Paul est parti pour Lyon" se escribiría "NOYLRUOPITRAPTSELUAP". La inversión puede aplicarse al texto entero, o sucesivamente a cada palabra o a grupos de un número acordado de letras. La frase anterior, dividida en dos grupos de diez letras, daría: "RAPTSELUAPNOYLRUOPIT". Y en cuatro grupos de cinco letras: "ELUAPRAPTSUOPITNOYLR".

Original en français:
"De nombreux systèmes ont été imaginés dans ce but: 1 Renversement des lettres; 2 Groupements divers; 3 Carrés et grilles; 4 Méthodes diverses."

Traducción al español:
"Se han ideado muchos sistemas para este propósito: 1 Inversión de letras; 2 Agrupamientos diversos; 3 Cuadrados y rejillas; 4 Métodos diversos."

Original en français:
"Il est évident que le renversement ne donne aucune sécurité au point de vue du secret, les dépêches écrites dans ce système ne résistant pas à un examen un peu sérieux."

Traducción al español:
"Es evidente que la inversión no proporciona ninguna seguridad desde el punto de vista del secreto; los mensajes escritos en este sistema no resisten ni un examen ligeramente serio."