Baixe o app para aproveitar ainda mais
Prévia do material em texto
ATIVIDADE PRÁTICA CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER Disciplina: Matemática Computacional Professor Gian Carlo Brustolin ALUNO: Sérgio Luiz Neves Rodrigues RU: 4087749 https://portal.uninter.com/ 2 Resumo Codificar as 4 primeiras letras de seu nome pela cifra simétrica de Feistel de apenas 2 estágios, utilizando em ambos os estágios a mesma chave criptográfica, K, originada no último dígito não nulo de seu RU. A função F será um SHIFT LEFT, cíclico, de K posições. Após a obtenção da cifra preparar o trem de bits para transmissão. Após a obtenção da cifra preparar o trem de bits para transmissão e, em seguida, decodifica-lo, comprovando a reciprocidade do processo. Palavras-chave: Criptografia Simétrica. Criptografia de Cifra de Feistel. Introdução A Cifra de Feistel é categorizada como uma criptografia simétrica, ou seja, utiliza uma menor capacidade computacional para o seu funcionamento, que por sua vez é considerada menos segura por utilizar apenas uma chave para encriptar e desencriptar. O processo de codificação da Cifra de Feistel é dividido em 2 ciclos, que consiste em receber e utilizar um conjunto de bits dividindo em dois blocos denominado como L e R (Left e Right), fazendo com que o bloco L passe por uma função de alteração de bits (XOR), com o uso de uma chave criptográfica chamada de K obtida ao utilizar um Shift Left/Right Cíclico no bloco R. Após esse processo invertemos os dois blocos e refazemos todo o algoritmo com o bloco de bits que não sofreu alteração, assim finalizando os dois ciclos da Cifra de Feistel gerando uma nova cifra. Tenha em mente que o segundo processo não pode ser invertido, pois caso ao contrário ocorrerá um erro na decodificação. A decodificação é o processo inverso da codificação, utilizaremos a mesma chave criptográfica K em todo o processo, chegando ao final da decodificação achando o valor inicial da codificação. Primeiro e segundo Ciclo de codificação da Cifra de Feistel Utilizamos a tabela ASCII para converter as 4 letras do meu primeiro nome (Serg) em conjuntos de bits, e a chave criptográfica do RU (9) em ambos os estágios. S e r g 0101 0011 0110 0101 0111 0010 0110 0111 3 Após a conversão de todos os caracteres em bits, podemos começar a criptografia de Feistel. Em todo o processo irei utilizar o “S” (0101 0011) como exemplo. Para começar o primeiro ciclo iremos separar o bit em 2, 0101 que corresponde ao bloco L e 0011 que corresponde ao bloco R. O bloco L passa por um processo de XOR com a chave criptográfica K obtida em um SHIFT LEFT Cíclico 9 com o bloco R (K = 0110), e a parte R será invertida sem nenhuma alteração. No segundo ciclo o bloco L passa pelo mesmo processo de XOR com uma nova chave criptográfica K, e finalizamos processo sem a inversão dos blocos criando um trem de bits codificado. Após a codificação teremos obtido os seguintes valores de bits e seus respectivos caracteres: Primeiro e segundo Ciclo de decodificação da Cifra de Feistel O processo da decodificação será bem semelhante ao de codificação, ao invés de começarmos com um texto simples (L0 e R0), iniciaremos a decodificação com o valor final obtido na codificação seguindo os mesmos processos de XOR no L com o valor obtido da chave K. S Ì C h 0101 0011 1100 1100 0100 0011 0110 1000 4 Para confirmar que a decodificação foi concluída com sucesso, comparamos os trens de bits decodificado com as iniciais. S e r g 0101 0011 0110 0101 0111 0010 0110 0111 Conclusão Podemos observar que a codificação e a decodificação passam pelo mesmo processo de algoritmo, e a segurança não é das melhores por conta de utilizar a mesma chave criptográfica em todo o processo, claro que podemos aumentar a segurança adicionando n ciclos. Referências Programar Revista Portuguesa de Programação. Cifra Feistel. Edição de 12 julho de 2017. Disponível em https://www.revista-programar.info/?s=feistel Abstract The Feistel Cipher is categorized as a symmetric cryptography, that is, it uses less computational capacity for its operation, which in turn is considered less secure because it uses only one key to encrypt and decrypt. The Feistel Cipher encoding process is divided into 2 cycles, which consists of receiving and using a set of bits by dividing them into two blocks called L and R (Left and Right), causing the L block to 5 pass through a function of change of bits (XOR), with the use of a cryptographic key called K obtained by using a Shift Left/Right Cyclic in block R. After this process we invert the two blocks and redo the entire algorithm with the block of bits that did not suffer change, thus ending the two cycles of the Feistel Cipher generating a new cipher. Keep in mind that the second process cannot be reversed, otherwise a decoding error will occur. Decryption is the reverse process of encryption, we will use the same cryptographic key K throughout the process, reaching the end of decryption by finding the initial value of the encryption
Compartilhar