Simulador Cesar
INSTITUTO DE INFORMÁTICA – INFORMÁTICA APLICADA
Arquitetura e Organização de Computadores I – 2013/2
Turmas A e C
Trabalho de Programação 2
Processador CESAR
1.
Descrição Geral
Você deverá desenvolver um programa em assembler do CESAR para decriptar uma frase, usando a cifra de Affine
(http://en.wikipedia.org/wiki/Affine_cipher).
A frase a ser decriptada é chamada de “texto cifrado” e o resultado da decriptação é o “texto claro” (ou texto decriptado).
A frase a ser decriptada deverá ser fornecida pelo usuário através do teclado. O mesmo pode acontecer com o parâmetro
“a”, necessário para o processo de decodificação.
Para realizar a decriptação o programa deve escolher valores para os parâmetros “a” e “b”. Inicialmente, o programa atribui os valores iniciais aos dois parâmetros e realiza a decriptação, fornecendo o resultado no visor.
Então, o usuário pode decidir como o programa deverá se comportar: (1) se deve passar, automaticamente, para uma nova combinação de valores de “a” e “b” e fornecer no visor a decriptação correspondente ou (2) se deve solicitar ao usuário que altere o valor dos parâmetros para então fornecer no visor a decriptação correspondente.
Essa implementação corresponde ao processo de criptoanálise (ou quebra de código) empregando a técnica de “força bruta”, onde todas as combinações possíveis são tentadas, até que se encontre aquela que fornece um texto claro com significado. 2.
Especificação do Trabalho
O texto cifrado será formado apenas pelas letras maiúsculas, representadas pelos seus códigos ASCII (‘A’=65 (41H),
‘B’=66 (42H), ..., ‘Z’=90 (5AH)). Existem 26 letras maiúsculas na tabela ASCII.
Para determinar o valor de cada caractere do texto claro deverá ser utilizado o seguinte procedimento:
1) Converter as letras ‘A’, ‘B’, ... ‘Z’ do texto cifrado em números 0, 1, ..., 25. Esses números serão colocados em um vetor chamado de “Y”.
2) Considerando-se “i” como a