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 |
|
12/0151898 |
|
14/0016546 |
|
14/0080279 |
|
14/0151958 |
|
14/0156089 |
|
14/0159461 |
|
14/0160299 |
|
14/0163603 |
|
15/0005539 |
|
15/0007094 |
|
15/0015585 |
|
15/0015747 |
|
15/0021623 |
|
15/0048718 |
|
15/0122322 |
|
15/0126689 |
|
15/0126808 |
|
15/0132662 |
|
15/0134495 |
|
15/0143290 |
|
15/0146612 |
|
15/0146698 |
|
16/0002974 |
|
16/0003636 |
|
16/0007607 |
|
16/0027985 |
|
16/0056802 |
|
16/0058325 |
|
16/0071569 |
|
16/0071852 |
|
16/0117992 |
|
18/0136607 |
.