1 Introduç˜ao 2 Método 3 Material
Transcrição
1 Introduç˜ao 2 Método 3 Material
Instituto de Computação Universidade Estadual de Campinas 2o¯ Trabalho Prático MO421/MC889 - Introdução à Criptografia Prof. Julio López 1o¯ Semestre de 2009 1 Introdução O trabalho objetiva implementar um método de criptografia de imagens que permite comparar visualmente as propriedades estatı́sticas de cifras distintas a partir de imagens cifradas. 2 Método Neste trabalho, é requisitada a implementação de dois métodos de cifração: a cifra Afim e a cifra TEA. A cifra Afim é um caso mais geral da cifra de substituição clássica que realiza uma transformação linear em cada caractere do texto claro. A função de cifração é dada por Ea,b (x) = (ax + b) (mod m) e a função de decifração é dada por Da,b (y) = a−1 (y − b) (mod m), com a e m coprimos. O par de inteiros (a, b) é a chave da cifra. Para implementação em computadores, considera-se que m = 256 e um byte é processado por vez. A cifra TEA (Tiny Encryption Algorithm) é uma cifra de bloco minimalista que utiliza técnicas modernas de cifração simétrica requerendo baixo poder computacional para execução. Os detalhes da cifra são fornecidos no documento tea.pdf. Um método possı́vel de cifração de imagens é considerar a imagem como uma seqüência de bytes que especificam as componentes de cor RGB dos pixels da imagem em seqüência. Pode-se implementar uma cifra qualquer em uma imagem completandose esta seqüência de bytes com zeros até que seu comprimento seja múltiplo do tamanho do bloco da cifra. 3 Material É fornecido um programa em C que cifra uma imagem no formato PPM utilizando a Cifra de Vigenére. A Cifra de Vigenére é um método clássico de encriptação que utiliza uma série de diferentes Cifras de César baseadas em caracteres de uma chave. 1 O código-fonte deste programa encontra-se no arquivo cifraimagem.c. Utilize este arquivo para entender o método de cifração de imagens e a interface das rotinas que implementam a leitura e escrita de imagens. Para compilar este arquivo, execute: $ gcc cifraimagem.c ppm.c -o cifraimagem Para utilizar o programa em modo de cifração: $ ./cifraimagem -e -v entrada.ppm saida.ppm O programa pedirá o comprimento da chave e uma seqüência de inteiros que especifica a chave: Digite o tamanho da chave: 5 Digite a chave: 40 67 23 200 56 Para utilizar o programa em modo de decifração: $ ./cifraimagem -d -v saida.ppm entrada.ppm A chave deverá ser informada no formato descrito anteriormente. Para converter imagens para o formato PPM, utilize o pacote ImageMagick : $ convert arquivo_imagem imagem.ppm 4 Objetivo O objetivo é implementar a cifra Afim e a cifra TEA e observar as propriedades estatı́sticas das duas cifras a partir da execução do programa em imagens diferentes. O modo de operação a ser utilizado para a cifra TEA é o modo ECB (Electronic CodeBook ), onde cada bloco deve ser cifrado com a mesma chave de forma independente. A cifra Afim deve solicitar um par de inteiros (a, b) entre 0 e 255 como chave e checar se a e 256 são co-primos. A cifra TEA deve solicitar uma seqüência de 4 inteiros de 32 bits como chave, representados em formato hexadecimal. O programa deve funcionar corretamente em arquiteturas de 32 bits. 5 Entrega É imprescindı́vel a entrega do programa final, implementando a cifração e a decifração utilizando as cifras Afim e TEA supracitadas e a confecção de um breve relatório contendo imagens de exemplo que ilustrem as seguintes questões: 2 • Quais as diferenças perceptı́veis nas imagens produzidas pelas cifras de Vigenére, Afim e TEA? • A utilização da cifra TEA com o modo de operação ECB escolhido tem limitações visı́veis? Observe como o método se comporta em imagens com regiões sólidas, como a imagem de exemplo fornecida. • Como podemos aperfeiçoar a utilização da cifra TEA? Implemente um método aperfeiçoado adicionando uma opção -t2 no programa principal e ilustre as melhorias obtidas com este novo método. 3
Documentos relacionados
Trabalho Prático 1
No fundo, é uma variante da cifra de César em que, em vez de se transportar cada letra um número fixo de posições, esse número é determinado pela palavra-chave (a posição no alfabeto de ca...
Leia maisCifras por Blocos
É utilizado um “vector de inicialização” (IV) previamente conhecido para iniciar o processo (fixo ou, preferencialmente, enviado cifrado em ECB). Obs.: se o IV for enviado em claro, o
Leia mais