Ferramentas do usuário

Ferramentas do site


isc:cifradores_simetricos

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

isc:cifradores_simetricos [2019/08/09 16:44] (atual)
Linha 1: Linha 1:
 +====== 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:
 +<​code>​
 +cesar -c -k 5 < texto-aberto.txt > texto-cifrado.txt
 +</​code>​
 +
 +Para decifrar:
 +<​code>​
 +cesar -d -k 5 < texto-cifrado.txt > texto-aberto.txt
 +</​code>​
 +
 +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-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, 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 | | | | |
 +
 +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.
 +
 +/*
 +  Pouco conhecimento faz com que as pessoas se sintam
 +  orgulhosas. Muito conhecimento,​ que se sintam
 +  humildes. Eh assim que as espigas sem graos erguem
 +  desdenhosamente a cabeca para o ceu, enquanto as
 +  cheias as baixam para a terra, sua mae.
 +  Leonardo Da Vinci.
 +  ​
 +  (chave = 17)
 +*/
 +
 +Considere que os sinais de pontuação não foram codificados.
 +
 +===== O cifrador RC4 =====
 +
 +O [[http://​pt.wikipedia.org/​wiki/​RC4|RC4]] é um algoritmo de cifragem simétrica por fluxo, proposto por [[http://​en.wikipedia.org/​wiki/​Ron_Rivest|Ron Rivest]] em 1987. Apesar de ser considerado obsoleto, 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):
 +
 +<​code>​
 +openssl rc4 -in input.txt -out output.rc4
 +</​code>​
 +
 +Para decodificar um arquivo:
 +
 +<​code>​
 +openssl rc4 -d -in input.txt -out output.rc4
 +</​code>​
 +
 +**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.
 +
 +===== O cifrador de Vernam =====
 +
 +Escrever um programa cifrador de Vernam que funcione da seguinte forma:
 +
 +<​code>​
 +vernam -c chave.dat < texto-aberto.txt > texto-cifrado.txt
 +</​code>​
 +
 +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?​
  
isc/cifradores_simetricos.txt · Última modificação: 2019/08/09 16:44 (edição externa)