Experimente a Cifra de Quatro Quadrados

Utilize as ferramentas fornecidas abaixo para criptografar ou descriptografar uma mensagem:

Criptografar

Resultado:

Descriptografar

Resultado:

Matrizes Geradas

Momentos maravilhosos na história

A Cifra de Quatro Quadrados: Contexto Histórico e Princípios de Criptografia

A Cifra de Quatro Quadrados é um método de criptografia simétrica inventado pelo francês Felix Delastelle (1840–1902) e faz parte da criptografia moderna. Este método de criptografia criptografa letras em pares utilizando quatro matrizes de 5×5, cada uma contendo 25 letras. Tipicamente, a letra Q é omitida, ou I e J são consideradas a mesma letra. Alternativamente, o método pode ser adaptado para usar matrizes de 6×6 para incluir 10 dígitos.

Durante o processo de criptografia, duas palavras em inglês são escolhidas como chaves, como "example" e "keyword." Após remover as letras duplicadas, as letras restantes são colocadas em ordem nas matrizes. Essas duas matrizes são colocadas nos cantos superior direito e inferior esquerdo, enquanto os cantos superior esquerdo e inferior direito utilizam a sequência de A a Z para formar as matrizes, criando assim a matriz da Cifra de Quatro Quadrados.

Para criptografar uma mensagem, as letras são separadas em pares, como "hello world" se tornando "he ll ow or ld." Com base nas posições nas matrizes, as letras criptografadas correspondentes são encontradas. Por exemplo, o processo de criptografia para "he" envolve encontrar a posição de "h" na matriz superior esquerda e "e" na matriz inferior direita. Então, na matriz superior direita, a letra na mesma linha de "h" e na mesma coluna de "e" é localizada, e na matriz inferior esquerda, a letra na mesma coluna de "h" e na mesma linha de "e" é encontrada. Essas duas letras formam o texto cifrado criptografado.

A fraqueza da Cifra de Quatro Quadrados reside no caso em que duas letras estão na mesma coluna, as letras originais são usadas, o que pode expor cerca de 20% do conteúdo. Além disso, como é um método de criptografia simétrica, ele é facilmente quebrado por meio de comparações registradas, resultando em baixa segurança. Outro problema é que ele só pode criptografar um número par de caracteres. Se houver um número ímpar, o último caractere restante não pode ser criptografado, e usar o caractere original ou a criptografia de preenchimento torna o texto cifrado mais vulnerável à exposição.

Como parte da criptografia clássica, embora a Cifra de Quatro Quadrados não corresponda à segurança dos algoritmos de criptografia modernos, sua simplicidade e significado histórico forneceram inspiração para os métodos modernos de criptografia.

Guia Passo a Passo para Criptografia com a Cifra de Quatro Quadrados

O seguinte é um guia detalhado passo a passo para criptografar usando a Cifra de Quatro Quadrados, com as palavras-chave "Four" e "Cipher" e o texto simples "Hello World".

Passo 1: Preparação

  • Escolha as Palavras-chave
    • chave1 = "Four"
    • chave2 = "Cipher"
  • Prepare o Texto Simples
    • O texto simples é "Hello World".
  • Converta o Texto Simples para o Formato Adequado para Criptografia
    • Converta para letras maiúsculas e substitua a letra J por I: Hello World -> HELLOWORLD
    • Remova caracteres não alfabéticos: HELLOWORLD
    • Se o comprimento do texto simples for ímpar, adicione o caractere X no final.

Passo 2: Gerar os Quadrados de Letras

Use as palavras-chave para gerar quatro quadrados de letras 5x5. O alfabeto geralmente omite a letra J, utilizandoI em seu lugar.

Função para Gerar os Quadrados 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;
                }
                
            

Gerar 4 Quadrados de Letras

Quadrado 1 (square1) e Quadrado 4 (square4) usando chave1 = "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
                
            

Quadrado 2 (square2) e Quadrado 3 (square3) usando chave2 = "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
                
            

Passo 3: Processo de Criptografia

Divida o texto simples em pares de letras e criptografe cada par. Exemplo de texto simples: HELLOWORLD.

Divida o Texto Simples

HELLOWORLD -> HE LL OW OR LD

Criptografe Cada Par de Letras

Use a seguinte função para encontrar a posição das letras nos quadrados:

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

Criptografe cada par de letras passo a passo:

  • Criptografar o Par "HE"
    • H está na posição (2, 0) no square1
    • E está na posição (1, 3) no square4
    • Pegue (2, 3) do square2 -> M
    • Pegue (1, 0) do square3 -> R
    • Resultado: HE -> MR
  • Criptografar o Par "LL"
    • L está na posição (2, 3) no square1
    • L está na posição (2, 3) no square4
    • Pegue (2, 3) do square2 -> M
    • Pegue (2, 3) do square3 -> M
    • Resultado: LL -> MM
  • Criptografar o Par "OW"
    • O está na posição (0, 1) no square1
    • W está na posição (4, 1) no square4
    • Pegue (0, 1) do square2 -> I
    • Pegue (4, 1) do square3 -> W
    • Resultado: OW -> IW
  • Criptografar o Par "OR"
    • O está na posição (0, 1) no square1
    • R está na posição (0, 3) no square4
    • Pegue (0, 3) do square2 -> H
    • Pegue (0, 1) do square3 -> I
    • Resultado: OR -> HI
  • Criptografar o Par "LD"
    • L está na posição (2, 3) no square1
    • D está na posição (1, 2) no square4
    • Pegue (2, 2) do square2 -> L
    • Pegue (1, 3) do square3 -> D
    • Resultado: LD -> LD

Texto Cifrado Final

Combine os pares de letras criptografados. O texto cifrado para HELLOWORLD é: MRMMIWHILD

Comparação entre a Cifra de Quatro Quadrados, a Cifra Double Playfair e a Cifra Playfair

Semelhanças

  • Cifras de Substituição Poligráfica
    • A Cifra de Quatro Quadrados, a Cifra Double Playfair e a Cifra Playfair são todas cifras de substituição poligráfica. Isso significa que elas usam pares ou grupos de letras como a unidade básica para criptografia e descriptografia, em vez de letras individuais.
  • Matrizes de Letras
    • Todos os três sistemas de cifra utilizam matrizes de letras para criptografia e descriptografia. Cada método depende das posições das letras nessas matrizes para realizar substituições ou transformações.
  • Objetivo
    • O objetivo do design dessas cifras é aumentar a segurança das cifras tradicionais de substituição de letras únicas, aumentando a complexidade da criptografia, assim prevenindo ataques simples de análise de frequência.

Diferenças

Cifra de Quatro Quadrados

  • Matrizes de Letras: Usa quatro matrizes de letras 5x5.
  • Unidade de Criptografia: Processa duas letras de cada vez.
  • Etapas:
    • Quatro matrizes de letras: Duas matrizes são geradas a partir de palavras-chave, e as outras duas geralmente estão em ordem alfabética padrão.
    • Divida o texto simples em pares de letras.
    • Encontre a posição de cada par de letras em duas matrizes diferentes, depois encontre as letras criptografadas correspondentes nas outras duas matrizes.
  • Complexidade: Aumenta a complexidade e a segurança usando mais matrizes em comparação com a cifra Playfair.

Cifra Double Playfair

  • Matrizes de Letras: Usa duas matrizes de letras 5x5.
  • Unidade de Criptografia: Processa duas letras de cada vez.
  • Etapas:
    • Duas matrizes de letras são geradas a partir de diferentes palavras-chave.
    • Divida o texto simples em pares de letras.
    • Use a primeira matriz para encontrar a posição da primeira letra, e a segunda matriz para encontrar a posição da segunda letra, depois substitua as letras de acordo com as regras.
  • Complexidade: Adiciona complexidade e segurança ao introduzir uma segunda matriz em comparação com a cifra Playfair simples.

Cifra Playfair

  • Matrizes de Letras: Usa uma matriz de letras 5x5.
  • Unidade de Criptografia: Processa duas letras de cada vez.
  • Etapas:
    • Uma matriz de letras é gerada a partir de uma palavra-chave.
    • Divida o texto simples em pares de letras.
    • Substitua as letras com base em sua relação posicional (mesma linha, mesma coluna ou diferentes linhas e colunas).
  • Complexidade: Aumenta a complexidade em comparação com cifras simples de substituição de letras únicas, mas é menos complexa que as cifras Double Playfair e Cifra de Quatro Quadrados.

Tabela Comparativa

Características Cifra de Quatro Quadrados Cifra Double Playfair Cifra Playfair
Número de Matrizes de Letras 4 2 1
Unidade de Criptografia Duas letras de cada vez Duas letras de cada vez Duas letras de cada vez
Palavras-chave Duas palavras-chave Duas palavras-chave Uma palavra-chave
Complexidade Alta Média Baixa
Regras de Criptografia Usa quatro matrizes para encontrar substituições Usa duas matrizes para encontrar substituições Usa uma matriz para encontrar substituições

Transposição e Substituição

O Traité Élémentaire de Cryptographie de Felix Delastelle explora em profundidade os métodos de transposição e substituição na criptografia. A transposição envolve alterar as posições das letras no texto simples para criptografar a mensagem. Por exemplo, inverter a ordem das letras, como no caso de "Paul est parti pour Lyon" tornando-se "NOYLRUOPITRAPTSELUAP". Outro método é o agrupamento, onde o texto simples é organizado em uma forma predeterminada, e as letras são extraídas em uma ordem acordada para formar o 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."

Tradução em português:
"A inversão consiste em transpor ou mover as letras do texto claro de acordo com um método acordado entre os correspondentes, de modo que seja fácil para os iniciados restaurar a ordem 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".

Tradução em português:
A inversão é realizada escrevendo as letras do texto claro na direção oposta à ordem normal, a última letra tornando-se a primeira, a penúltima a segunda, a antepenúltima a terceira, etc. Exemplo: "Paul est parti pour Lyon" seria escrito como "NOYLRUOPITRAPTSELUAP". A inversão pode ser aplicada tanto ao texto inteiro, quanto sucessivamente a cada palavra ou a grupos de um número de letras acordado. A frase acima, dividida em dois grupos de dez letras, daria: "RAPTSELUAPNOYLRUOPIT". E em quatro 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."

Tradução em português:
"Muitos sistemas foram imaginados para esse propósito: 1 Reversão de letras; 2 Agrupamentos diversos; 3 Quadrados e grades; 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."

Tradução em português:
"É evidente que a inversão não oferece nenhuma segurança do ponto de vista do sigilo; as mensagens escritas nesse sistema não resistem a um exame minimamente sério."