Prévia do material em texto
<p>Atividade Prática de Matemática Computacional</p><p>Criptografia Utilizando a Crifra Simétrica de Feistel</p><p>Aluno: Mateus Cunha Da Silva RU: 3350975</p><p>Este Artigo tem por finalidade demostrar a Cifra Simétrica de Feistel, também</p><p>conhecida como Cifra de Blocos. A Demonstração da criptografia de Feistel será</p><p>realizada de acordo com o seguinte Enunciado:</p><p>Codificar as 4 primeiras letras do seu nome pela cifra simétrica de Feistel de apenas 2 estágios,</p><p>utilizando em ambos os estágios a mesma chave criptográfica, K, originada no último dígito não nulo</p><p>do seu RU. A função F será um SHIFT LEFT, cíclico, de K posições. Após a obtenção da cifra preparar</p><p>o trem de bits para transmissão e, em seguida, decodifica-lo, comprovando a reciprocidade do</p><p>processo.</p><p>Criptografia Simétrica de Feistel?</p><p>“Existem dois tipos de cifras. A simétrica e a assimétrica. Em termos práticos, a criptografia simétrica</p><p>tende a ser mais rápida uma vez que exige menos capacidade computacional. Contudo é considerada</p><p>menos segura uma vez que a mesma chave é usada para encriptar e desencriptar a informação é</p><p>partilhada pelos diversos intervenientes (na criptografia assimétrica são usadas duas chaves distintas</p><p>– a chave privada para encriptar e a chave pública para desencriptar a informação – apenas a chave</p><p>pública é partilhada entre emissor e receptor sendo que a chave privada é usada para decifrar a</p><p>informação).” (PROGRAMAR, 2017).</p><p>Em outras palavras, a cifra Simétrica de Horst Feistel estruturada em Blocos L e R e</p><p>compostas por N estágios criptográficos juntamente com uma chave K e função F</p><p>dada um SHIFT LEFT ou RIGHT de K posições.</p><p>Tudo isto com um tamanho especifico que pode ser encontrado na Revista online da</p><p>citação acima. O uso deste tipo de cifragem possui uma vantagem em relação a</p><p>cifragem e decifragem, que é a possibilidade de inverter o Fluxo fazendo o uso da</p><p>mesma chave K para realizar as cifragens.</p><p>A maioria dos algoritmos de cifras de blocos possuem uma estrutura descrita por Horst Feistel da IBM</p><p>em 1973 (FEISTEL, 1973). A cifragem de Feistel é descrita de forma Simplificada da seguinte Forma:</p><p>• As entradas dos algoritmos são divididas em duas partes iguais Left e Right;</p><p>• As duas partes passam por N iterações de processamento para gerar o texto cifrado;</p><p>• cada iteração recebe Left-1 e Right-1 derivadas da iteração anterior e também uma sub-chave</p><p>Ki derivada da chave inicial K;</p><p>• as sub-chaves são geradas por um algoritmo gerador de chaves, fazendo com que cada chave</p><p>seja diferente;</p><p>• todas as iterações têm a mesma estrutura e são chamadas de round (rodada);</p><p>• Para cada round, aplica-se uma função denominada round function e operação de XOR bit a</p><p>bit, como demonstrado na Imagem Abaixo sobre a Cifragem na Pratica;</p><p>Procedimento inicial para a Criptografia:</p><p>1. Codificar as 4 Primeiras Letras do Nome para Binário e utilizar como Texto</p><p>Plano;</p><p>2. Codificar o Ultimo Digito não Nulo do RU para Binário e utilizar como chave K;</p><p>3. Separar a Mensagem (Texto Plano) em 2(Dois) Blocos, cada um contento 16</p><p>Bits;</p><p>4. Chave K;</p><p>Criptografia na Prática com Cifra Simétrica de Feistel com 2</p><p>Estágios:</p><p>FONTE: PROGRAMAR; PERES; (2017, p.36)</p><p>1. Codificar as 4 Primeiras Letras do Nome para Binário e utilizar</p><p>como Texto Plano:</p><p>Nome: Mateus Cunha da Silva</p><p>M a t e Letras</p><p>0100 1101 0110 0001 0111 0100 0110 0101 Binário das Letras</p><p>Tabela ASCII2 Utilizada: https://www.ime.usp.br/~pf/algoritmos/apend/ascii.html</p><p>Nesta Etapa foi Realizada a Conversão das Letras para Binários utilizando a Tabela ASCII.</p><p>https://www.ime.usp.br/~pf/algoritmos/apend/ascii.html</p><p>2. Codificar o Ultimo Digito não Nulo do RU para Binário e utilizar</p><p>como chave K:</p><p>RU: 3350975</p><p>5 Ultimo Digito não Nulo</p><p>000101 Binário do Digito</p><p>Tabela de Números Binários Utilizada: Números Binários - TecCiencia (ufba.br)</p><p>Nesta Etapa foi realizada a Conversão do Número 5 para Binário, onde será utilizado</p><p>Como chave K.</p><p>3. Mensagem (Texto Plano) - 16 Bits Cada Bloco:</p><p>Bloco L Bloco R</p><p>0100 1101 0110 0001 0111 0100 0110 0101</p><p>Nesta Etapa foi Realizada a Divisão dos Blocos L e R, cada um contendo 16Bits.</p><p>4. Chave K:</p><p>A Chave Criptográfica Utilizada será o Número 5, originada do Último Digito Não Nulo</p><p>do RU.</p><p>Dada a Conversão de Decimal para Binário, o valor de K é: 00000101 ou 0101</p><p>Estagio 1 da Cifra de Feistel:</p><p>Bloco L 0100 1101 0110 0001</p><p>Bloco R 0111 0100 0110 0101</p><p>Chave Criptográfica K 0101 ou 5 em Decimal</p><p>Função F de SHIFT LEFT de K Posições do Bloco R 1000110010101110</p><p>No Estágio 1, é realizado o Algoritmo/Operação F de SHIFT LEFT (Deslocamento para</p><p>Esquerda) de K posições do Bloco R.</p><p>Operação XOR entre o Bloco L e o Resultado da função F do Bloco</p><p>R:</p><p>Bloco L 0100110101100001</p><p>Resultado de F do Bloco R 1000110010101110</p><p>Resultado da Operação XOR 1100000111001111</p><p>Lembrete: XOR é uma Operação Lógica entre Dois Valores (0 e 1), onde o resultado</p><p>final será verdadeiro se ambos Forem Igual, e falso se forem diferentes.</p><p>http://teccienciapiloto.ufba.br/numeros-binarios</p><p>FONTE: Arquivo Pessoal</p><p>Nesta etapa será realizada a Operação XOR entre o Bloco L e o Resultado do</p><p>Algoritmo F acima.</p><p>Estagio 2 da Cifra de Feistel:</p><p>F de SHIFT LEFT de K Posições com Resultado do XOR do Bloco L com F de R 0011100111111000</p><p>Nesta Etapa do Estagio 2 será realizada o Algoritmo/Operação F de SHIFT LEFT</p><p>(Deslocamento para Esquerda) de K posições do Resultado da Operação XOR acima.</p><p>Operação XOR entre o Bloco R e o Resultado da função F do Bloco</p><p>L:</p><p>Bloco R 0111010001100101</p><p>Função F de SHIFT LEFT de K Posições do Bloco</p><p>L</p><p>0011100111111000</p><p>Resultado da Operação XOR 0100110110011101</p><p>Nesta Etapa será realizada a Operação XOR entre o Bloco R e o resultado do</p><p>Algoritmo F acima para assim obter a Mensagem Cifrada final.</p><p>Mensagem Cifrada Após 2 Estágios (Texto Plano)</p><p>Rn+1 Ln+1</p><p>0100 1101 1001 1101 1100 0001 1100 1111</p><p>Observação: A Imagem que ilustra a Cifra Simétrica de Feistel demostra 3</p><p>Estágios, entretanto, neste Artigo foi realizada uma Cifragem com apenas 2</p><p>Estágios conforme solicitado no Enunciado Descrito no início do mesmo.</p><p>Sendo assim, as criptografias serão realizadas conforme a Imagem Abaixo</p><p>retirada da Aula Explicativa II.</p><p>Disponível em: https://www.youtube.com/watch?v=WdoUnj0afgg</p><p>https://www.youtube.com/watch?v=WdoUnj0afgg</p>