Tópicos
- Cifra de César
- Cifra de Substituição Monoalfabética
- Cifra de Vigenère
- Cifra de Transposição
- One-Time Pad
Cifra de César
Simplesmente shiftar a letra atual do alfabeto K
vezes. A desencriptação é feita através do shift inverso.
O plaintext CartagoEstaNoPapo
com K
= 6 resultaria no ciphertext IGXZGMUKYZGTUVGVU
.
O número total de chaves é igual a 26, visto que existem 26 letras (maiúsculas) no alfabeto.
Ataque
Simplesmente testar todas as combinações de chaves e ver qual das vezes o resultado “faz sentido”.
Ainda melhor, se se utilizar análise de frequências. Por exemplo, a alta frequência da letra L
sugere que o mesma está a encriptar a letra A
, visto que A
é uma das letras mais comuns em palavras. Daqui, é possível retirar que K
= 11 (L
- A
= 11).
Nota
O tamanho da chave utilizada para cifrar o plaintext é bastante importante. A baseline é uma chave com 112 bits.
Cifra de Substituição Monoalfabética
O processo de encriptação utilizada uma dada permutação do alfabeto para tal.
A | B | C | … | W | Y | Z |
---|---|---|---|---|---|---|
R | X | K | … | B | I | F |
Desta vez, o espaço das possíveis chaves sobe para . |
Ataque
Através de análise de frequências, com histogramas das letras mais comuns numa dada língua.
Cifra de Vigenère
Também conhecida como cifra de substituição polialfabética. A ideia é, essencialmente, executar várias cifras de César.
Cifra de Transposição
Encriptação permuta os caracteres, em vez de os alterar. O que significa que análise de frequências passa a ser inútil.
Seja a chave de encriptação a permutação [2, 1, 3]
e o plaintext AindaOutraCifra
, é possível construir a seguinte matriz.
2 | 1 | 3 |
---|---|---|
A | I | N |
D | A | O |
U | T | R |
A | C | I |
F | R | A |
Assim, o ciphertext resultante é igual a IATCRADUAFNORIA . |
One-Time Pad
Simplesmente pegar numa chave (gerada randomicamente) e com, pelo menos, o tamanho do plaintext e aplicar a operação XOR a cada bit.
De notar que a chave apenas poderá ser utilizada numa encriptação e nada mais.
Apesar de boa, esta cifra possui alguns problemas, nomeadamente associados à geração da chave, à distribuição da mesma1 e à não garantia de difusão.
Footnotes
-
A distribuição de uma chave é abordada na secção de criptografia simétrica. ↩