Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior | |||
sas:cifradores [2013/11/14 17:44] – [O cifrador de César] maziero | sas:cifradores [2014/04/25 19:01] (atual) – [Análise de frequências] maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Implementação de cifradores simétricos ====== | ||
+ | |||
+ | O objetivo desta atividade prática é compreender melhor o funcionamento dos algoritmos de cifragem simétrica mais simples. | ||
+ | |||
+ | ===== O cifrador de César ===== | ||
+ | |||
+ | 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: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | A rotação de caracteres deve ser feita **somente** sobre os caracteres [A-Za-z0-9]. Caracteres acentuados devem ser tratados sem acento. | ||
+ | |||
+ | ===== 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. | ||
+ | |||
+ | Considerando a tabela de frequências de caracteres em português informada abaixo (obtida [[http:// | ||
+ | |||
+ | ^ 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 | | | | | | ||
+ | |||
+ | A mensagem a ser analisada é: | ||
+ | |||
+ | g5Bt5 t54yvtz3v4A5 wrG t53 7Bv r9 6v995r9 9v 9z4Ar3 | ||
+ | 58xB2y59r9. dBzA5 t54yvtz3v4A5, | ||
+ | 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 RC4 ===== | ||
+ | |||
+ | O [[http:// | ||
+ | |||
+ | Exemplos de operações simples ('' | ||
+ | |||
+ | < | ||
+ | openssl rc4 -in input.txt -out output.rc4 | ||
+ | </ | ||
+ | |||
+ | Para decodificar um arquivo: | ||
+ | |||
+ | < | ||
+ | openssl rc4 -d -in input.txt -out output.rc4 | ||
+ | </ | ||
+ | |||
+ | **Atividade**: | ||
+ | |||
+ | ===== O cifrador de Vernam ===== | ||
+ | |||
+ | Escrever um programa cifrador de Vernam que funcione da seguinte forma: | ||
+ | |||
+ | < | ||
+ | vernam -c chave.dat < texto-aberto.txt > texto-cifrado.txt | ||
+ | </ | ||
+ | |||
+ | Questões para refletir: | ||
+ | |||
+ | * Como será feita a geração da chave? | ||
+ | * Como você pode testar seu cifrador? | ||
+ | * O algoritmo de Vernam é vulnerável à análise de frequências? | ||