A Cifra de César recebeu o nome de Júlio César (100 aC – 44 aC), que a usou para comunicação militar secreta. A Cifra de César é uma cifra de substituição. Júlio César originalmente usou um turno de três para criptografar e descriptografar mensagens. A criptografia é realizada usando uma função afim: f(x)=x+b.
Primeiramente, cada caractere do texto inicial (mensagem a ser criptografada) é convertido em um número de 0 a 25, correspondente à sua posição no alfabeto latino que contém 26 letras --> (a = 0, b = 1 ... z = 25).
Então, cada número obtido é transformado por uma função afim (f(x) = 1x + b). "x" representa o número enquanto "b" é definido durante a criptografia. "b" é a chave usada para descriptografar a mensagem final.
Se pegarmos todas as imagens e as colocarmos em uma lista, obteremos n números correspondentes a n caracteres do texto inicial. O próximo passo consiste em encontrar os valores do módulo 26 de cada número. ( Módulo significa resto )
Exemplo: Módulo 4 de 19 é 3 porque
19 = 4 * 4 + 3
Por outro lado, módulo 26 de 26 é 0 porque26 = 26 * 1 + 0
Portanto, obtemos uma nova lista com n elementos, cada um entre 0 e 25, ambos incluídos. Todos esses números são convertidos em letras do alfabeto latino por meio das tabelas abaixo.
Finalmente criamos a mensagem final colocando todas as letras lado a lado.
As etapas 1 e 4 podem ser realizadas com estas tabelas:
UM | B | C | D | E | F | G | H | EU | J. | K | eu | M | N | Ó | P | P | R | S | T | Você | V | C | X | S | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
Se um invasor souber que a mensagem foi criptografada usando a Cifra de César, ele poderá tentar todas as mudanças (valores b de 1 a 25) para descriptografar a mensagem. Isso é chamado de método de força bruta .
Também podemos usar a análise de frequência para descriptografar a mensagem, pois cada letra é criptografada com o mesmo algoritmo e as letras mais comuns em inglês são:
Usando as tabelas acima, ATTACK pode ser escrito como: 25 0 19 19 0 2 10 25 Imagens de cada número:
A nova lista é: 29 4 23 23 4 6 14 29
Usando o método do módulo 26 , obtemos:
A mensagem final é 3 4 23 23 4 6 14 3 e usando novamente as tabelas, as convertemos na mensagem criptografada:
DEXXEGOD
ZATTACKZ é criptografado com a função x + 4 e se torna DEXXEGOD .
Usando as tabelas acima, DEXXEGOD pode ser escrito como: 3 4 23 23 4 6 14 3 Imagens de cada número:
A nova lista é: -1 0 19 19 0 2 10 -1
Usando o método do módulo 26 , obtemos:
A mensagem final é 25 0 19 19 0 2 10 25 e usando novamente as tabelas, as convertemos na mensagem criptografada:
ZATTACKZ
DEXXEGOD é descriptografado com a função 1x - 4 e se torna ZATTACKZ .
Isso é chamado de método de força bruta.
Usando as tabelas acima, DEXXEGOD pode ser escrito como: 3 4 23 23 4 6 14 3
a é um número entre 0 e 25. (a = 0 significaria que a mensagem já está descriptografada)
Usando a função f(x) = Mod(1x + a, 26) :
Podemos obter todos estes resultados:
um | Texto descriptografado |
---|---|
1 | fgzzgiqf |
2 | gaahjrg |
3 | hibbiksh |
4 | ijccjlti |
5 | jkddkmuj |
6 | kleelnvk |
7 | lmffmowl |
8 | mnggnpxm |
9 | nohhoqyn |
10 | opiiprzo |
11 | pqjjqsap |
12 | qrkkrtbq |
13 | rsllsucr |
14 | stmmtvds |
15 | tunnuwet |
16 | uvoovxfu |
17 | vwppwygv |
18 | wxqqxzhw |
19 | xyrryaix |
20 | yzsszbjy |
21 | zattackz |
22 | Abuubdla |
23 | bcvvcemb |
24 | cdwwdfnc |
25 | dexxegod |
O único texto que faz sentido é zattackz então podemos deduzir que a chave é 21 (25 - b = 21).
DEXXEGOD é descriptografado com a função f(x) = 1x - 4 ou f(x) = 1x + 21 e se torna ZATTACKZ .
Linguagem | Criptografar | Descriptografar |
---|---|---|
C | César.c | Em breve |
C# | César.cs | Em breve |
C++ | principal.cpp | principal.cpp |
JavaScript | criptografar.js | descriptografar.js |
Pitão | criptografar.py | descriptografar.py |
Rápido | lib.swift | lib.swift |
npm i @cryptoolsorg/caesarcipher