User Tools

Site Tools


cursos:sas:cifradores

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:

  1. Um cifrador de César.
    1. Código.
  2. Um analisador de frequencia.
    1. Código
    2. usar este no texto criptografado abaixo junto com a análise de frequências abaixo e decodificar corretamente a mensagem proposta.
  3. Um cifrador de Vernam.
    1. Código
    2. Usar este no texto aberto encontrado junto com a análise de frequências.
  4. Usar o cifrador RC4, para conhecer o funcionamento.
    1. usar este no texto aberto encontrado junto com a análise de frequências.
  5. OBS Entregar os códigos compactados.
  6. Relatório:
    1. Faça a criptanálise da mensagem cifrada com o cifrador de César e mostre a chave usada. Qual é o texto criptografado?
    2. O algoritmo de Vernam é vulnerável à análise de frequências? Justifique.
      1. Como será feita a geração da chave?
      2. É possivel usar o algoritmo de Vernam para cifrar uma base de dados? Justifique.
    3. 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
A rotação de caracteres deve ser feita somente sobre os caracteres [A-Z,a-z,0-9]

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
Características do Português do Brasil

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.

cursos/sas/cifradores.txt · Last modified: 2024/10/22 17:20 by fonseca