Table of Contents
Implementação de cifradores simétricos
O objetivo deste trabalho é compreender melhor o funcionamento dos algoritmos de cifragem simétrica mais simples.
Atividade
Todo Aluno deve implementar e defender:
- Um cifrador de César.
- Código.
- Um analisador de frequencia.
- Código
- usar este no texto criptografado abaixo junto com a análise de frequências abaixo e decodificar corretamente a mensagem proposta.
- Um cifrador de Vernam.
- Código
- Usar este no texto aberto encontrado junto com a análise de frequências.
- Usar o cifrador RC4, para conhecer o funcionamento.
- usar este no texto aberto encontrado junto com a análise de frequências.
- OBS Entregar os códigos compactados.
- Relatório:
- Faça a criptanálise da mensagem cifrada com o cifrador de César e mostre a chave usada. Qual é o texto criptografado?
- O algoritmo de Vernam é vulnerável à análise de frequências? Justifique.
- Como será feita a geração da chave?
- É possivel usar o algoritmo de Vernam para cifrar uma base de dados? Justifique.
- O algoritmo RC4 é vulnerável à análise de frequências? Justifique.
O cifrador de César
Atividade: Produzir uma implementação do cifrador de César. Ele deve funcionar da seguinte forma:
Para cifrar:
cesar -c -k 5 < texto-aberto.txt > texto-cifrado.txt
Para decifrar:
cesar -d -k 5 < texto-cifrado.txt > texto-aberto.txt
Opções:
- -c : cifrar
- -d : decifrar
- -k n : valor da chave a ser usada
Ex:
- Z+1 = a.
- z+1 = 0.
- 9+1 = A.
Caracteres acentuados devem ser tratados sem a cento.
Análise de frequências
A análise de frequências é uma técnica simples de criptanálise que consiste em identificar os caracteres do texto cifrado usando a frequência de uso dos caracteres na língua em que se supõe que a mensagem esteja escrita. O algoritmo de César é um cifrador de substituição simples e portanto vulnerável a essa técnica.
Atividade: Considerando a tabela de frequências de caracteres em português informada abaixo (obtida deste site), escreva um programa para fazer a criptanálise de uma mensagem cifrada com o cifrador de César.
Letra | Freq.% | Letra | Freq.% | Letra | Freq.% | Letra | Freq.% | Letra | Freq.% |
---|---|---|---|---|---|---|---|---|---|
a | 14.63 | b | 1.04 | c | 3.88 | d | 4.99 | e | 12.57 |
f | 1.02 | g | 1.30 | h | 1.28 | i | 6.18 | j | 0.40 |
k | 0.02 | l | 2.78 | m | 4.74 | n | 5.05 | o | 10.73 |
p | 2.52 | q | 1.20 | r | 6.53 | s | 7.81 | t | 4.34 |
u | 4.63 | v | 1.67 | w | 0.01 | x | 0.21 | y | 0.01 |
z | 0.47 |
O comprimento médio das palavras em Português do Brasil é de 4.53 letras.
Quando as letras são ordenadas pela frequência, formam grupos bem definidos:
- A, E, O
- S, R, I
- N, D, M, U, T, C
- L, P, V, G, H, Q, B, F
- Z, J, X, K, W, Y
Letras Freq.
- 6 vogais: A, E, I, O, U, (Y) 48.75 %
- 20 consoantes
- 5 de frequência alta: S, R, N, D, M 49.12 %
- 10 de frequência média: T, C, L, P, V, G, H, Q, B, F 21.03 %
- 6 de frequência baixa: Z, J, X, K, W 1.10 %
- As vogais A, E, I, O, U e as consoantes S, R, N, D, M formam mais de 3/4 dos textos em Português.
- A média de vogais a cada 10 letras é de 4.88
A mensagem a ser analisada é:
g5Bt5 t54yvtz3v4A5 wrG t53 7Bv r9 6v995r9 9v 9z4Ar3 58xB2y59r9. dBzA5 t54yvtz3v4A5, 7Bv 9v 9z4Ar3 yB3z2uv9. Vy r99z3 7Bv r9 v96zxr9 9v3 x8r59 v8xBv3 uv9uv4y59r3v4Av r trsvtr 6r8r 5 tvB, v47Br4A5 r9 tyvzr9 r9 srzEr3 6r8r r Av88r, 9Br 3rv. cv54r8u5 Ur mz4tz.
O cifrador de Vernam
Atividade: Escrever um programa cifrador de Vernam que funcione da seguinte forma:
vernam -c chave.dat < texto-aberto.txt > texto-cifrado.txt
Aplicar o cifrador de Vernam ao texto aberto da atividade anterior e efetuar a análise de frequências do arquivo de saída. Comparar a distribuição de frequências da entrada com a da saída.
Questões:
- Como será feita a geração da chave?
- O algoritmo de Vernam é vulnerável à análise de frequências?
O cifrador RC4
O RC4 é um algoritmo de cifragem simétrica por fluxo, proposto por Rivest em 1987. Além de ser eficiente e robusto, ele possui uma implementação bastante simples e didática. Esse cifrador está disponível em linha de comando através do pacote openssl (em Linux):
Exemplos de operações simples (man enc ou man openssl para exemplos mais complexos):
openssl rc4 -in input.txt -out output.rc4
Para decodificar um arquivo:
openssl rc4 -d -in output.rc4 -out inputOriginal.txt
Atividade: aplicar o cifrador RC4 ao texto da atividade anterior e efetuar a análise de frequências do arquivo de saída. Comparar a distribuição de frequências da entrada com a da saída.
Questão:
- O algoritmo de RC4 é vulnerável à análise de frequências?
OBS Entregar os códigos compactados.