Primeiro Exercício – 2019.1

A criação da cifra hoje conhecida como “Cifra de Vigenère” tem sido atribuída ao diplomata francês Blaise de Vigenere, que a teria derivado de uma cifra polialfabética descrita em 1553 por Giovan Battista Belaso. A cifra de Vigenère era considerada robusta até que técnicas estatísticas para atacá-la foram descobertas, por volta de 1820, e depois publicadas por Kasiski em 1863 (ref: http://en.wikipedia.org/wiki/Vigenère_cipher). É usada hoje pela telefonia móvel nos EUA, por normatização do FCC, e nos aplicativos MS Word e Excel até a versão 2000.
O exercício 1 de Segurança Computacional/de Dados consiste na quebra da cifra de Vigenère sobre um criptograma pessoal. O arquivo contendo o criptograma pessoal do aluno é o c[nnn].txt, linkado na tabela abaixo junto a sua matrícula. Nele está gravado um criptograma produzido no sistema criptográfico (f = Vigenère com XOR sobre ASCII, L = Português) pelo executável cripto1.exe. Para facilitar a verificação do resultado, esse arquivo também contem, no rodapé, uma lista das frequências exatas de caracteres que ocorrem na mensagem que foi cifrada no criptograma.
O arquivo cripto1.pas contem o código fonte que compilou no executável utilizado para cifrar os criptogramas, onde se pode observar que o algoritmo implementado faz uso de monoalfabéticas XOR na decomposição da cifra de Vigenère. E que o formato do criptograma gerado consiste em um numeral decimal por linha, representando o valor decimal de cada byte do criptograma. O primeiro numeral corresponde, portanto, ao valor decimal do primeiro byte do criptograma, o segundo numeral, ao segundo byte, e assim por diante.
O aluno pode (e para maior eficiência, deve) usar a técnica ensinada em aula – de contar a quantidade de pares de bytes coincidentes que se encontram a uma distância fixa no criptograma, repetindo a contagem com sucessivas distâncias e comparando as contagens das coincidências para distintas distâncias, até selecionar a menor distância cuja contagem se destaque como elevada em relação às demais – conforme o teste kappa (também chamado teste de Friedman) –, a qual em tese indica o tamanho do bloco e da chave, para início da criptoanálise.
Para entender melhor, através de um exemplo, porque o teste kappa (ou de Friedman), quando aplicado em criptogramas onde a distribuição de frequências indique o uso de cifra polialfabética, pode assim revelar o tamanho do bloco e da chave, veja aqui o calculo de probabilidades do teste kappa desenvolvido para criptogramas empíricos em um sistema bem simples – com espaço de mensagens e de chaves binário e com distribuições de frequência triviais.
Para entregar o exercício, o aluno deve enviar ao professor, via e-mail, a mensagem decifrada e a chave que teriam produzido seu criptograma no referido sistema, até 07/06/2019.


Arquivos com os criptogramas: 2019.1

Aluno

Arquivo

12/0131510

c62.txt

12/0151898

c63.txt

14/0016546

c64.txt

14/0080279

c65.txt

14/0151958

c66.txt

14/0156089

c67.txt

14/0159461

c68.txt

14/0160299

c69.txt

14/0163603

c70.txt

15/0005539

c71.txt

15/0007094

c146.txt

15/0015585

c147.txt

15/0015747

c148.txt

15/0021623

c149.txt

15/0048718

c150.txt

15/0122322

c151.txt

15/0126689

c152.txt

15/0126808

c153.txt

15/0132662

c154.txt

15/0134495

c155.txt

15/0143290

c156.txt

15/0146612

c157.txt

15/0146698

c158.txt

16/0002974

c159.txt

16/0003636

c160.txt

16/0007607

c161.txt

16/0027985

c162.txt

16/0056802

c163.txt

16/0058325

c164.txt

16/0071569

c165.txt

16/0071852

c165.txt

16/0117992

c166.txt

18/0136607

c167.txt

.