Prévia do material em texto
Identificação Nome: Franklyn Viana dos Santos RU: 4298019 Curso: Tecnologia em Desenvolvimento Mobile Matéria: Matemática Computacional Resumo – Enunciado 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 e, em seguida, decodifica-lo, comprovando a reciprocidade do processo. Introdução Teórica A cifra Feistel é uma técnica de cifra de bloco simétrico que divide o texto em duas partes. No processo de criptografia, essas metades são processadas em diversas etapas ou rodadas, sendo cada metade modificada e combinada com a outra metade. A estrutura Feistel garante que a criptografia seja possível. Isso significa que a descriptografia pode ser feita com a mesma estrutura e algoritmo simplesmente alterando a ordem das chaves utilizadas. Dados Utilizados Este exemplo assume os primeiros 4 caracteres do nome "FRAN" codificados em ASCII binário. • F: 01000110 • R: 01110010 • A: 01100001 • N: 01101110 Existem dois blocos de 16 bits para cada dado: • Bloco esquerdo (L0): 01000110 01110010 • Bloco direito (R0): 01100001 01101110 Chave usada para criptografia, K, é 3. Esta chave representa o número de posições de cada bit deslocamentos na função de rotação para a esquerda da função Feistel. Método de criptografia Primeiro passo: 1. A função F: Aplique um deslocamento de 3 ciclos para a esquerda no bloco direito R0. Os três bits mais à esquerda de R0 são deslocados para a direita, invertendo o arranjo original de bits. 2. Operação XOR: O resultado da função F é então combinado com o Bloco Esquerdo L0L0L0 usando a operação XOR, resultando em um novo valor para o Bloco Direito no próximo estágio. 3. Troca dos Blocos: Os valores de L e R são trocados para o próximo estágio. Segundo passo: 1. Operação F: Novamente, um deslocamento circular de 3 para a esquerda é aplicado ao novo bloco à direita. 2. Operação XOR: O resultado é adicionado ao novo bloco esquerdo usando XOR. 3. Finalização: O bloco está pronto para transmissão, o bloco esquerdo é o último valor R, o bloco direito é o resultado do último XOR. Descriptografia A descriptografia é feita invertendo o processo: 1. A aplicação da função F e da função XOR é realizada na ordem inversa usando o mesmo valor de deslocamento. 2. Troca de Blocos como no processo de cifragem. Verificação recíproca Para verificar a validade do processo, é verificado se a codificação dos dados criptografados retorna o texto original. Esta etapa verifica se a cifra Feistel foi implementada corretamente. Desenvolvimento Começamos com a identificação do valor de cada letra se baseando no link informado pelo professor. 1. A Identificação e separação. “FRAN” 0100 0110 0111 0010 0110 0001 0110 1110 Iniciamos realizando a identificação das letras em dois blocos: Bloco Esquerdo (Lo): F + R = 0100 0110 0111 00101 Bloco Direito (RO) A + N = 0110 0001 0110 1110 2. Função de Feistel Codificação: shift left cíclico de 3 posições. Função de Feistel com Shift Left Cíclico 3 3. Aplicar a Cifra de Feistel • Primeiro Estágio Aplicar F em RO - Fazendo um SHIFT LEFT cíclico de 3 posições em 0110 0001 01101110 resulta em 0000 1011 0111 0011. https://www.ime.usp.br/~pf/algoritmos/apend/ascii.html Xor com Lo – 00001011 0111 0011 XOR 0100 0110 0111 0010 = 0100 1101 0000 0001. Trocando os lados para o próximo estágio: Novo L1 = Ro (01100001 01101110) Novo R1 = Resultado do XOR (01001101 00000001) • Segundo Estágio Aplicar F em L1 - Fazendo um SHIFT LEFT cíclico de 3 posições em 01100001 01101110 resulta em 00001011 01110011. XOR com R1 - 00001011 01110011 XOR 01001101 00000001 = 01000110 01110010. Trocando os lados, mas não é necessário trocar no último estágio. 4. Resultado da Cifra Bloco Esquerdo Final: 01100001 01101110 Bloco Direito Final: 01000110 01110010 5. Decodificação Para descompactar, siga o mesmo procedimento, mas inverta as etapas e XOR e altere os valores SHIFT e L e R de acordo. 6. Verificação Após a descriptografia, verifique a reciprocidade e a exatidão da cifra Feistel verificando se o bloco retorna aos valores originais de L0 e R0. O nome "FRAN" codificados em ASCII binário. • F: 01000110 • R: 01110010 • A: 01100001 • N: 01101110 Conclusão Este trabalho demostrou a aplicação prática da cifra de feistel para codificar as letras iniciais de um nome usando o procedimento de dois estágios com shift left cíclico. Confirmei que a estrutura de feistel é eficaz e reversível, permitindo cifrar e depois decifrar os dados de volta ao seu formato original. O sucesso da cifragem e da decifragem reforça a utilidade da cifra de feistel para proteger informações de forma confiável e eficiente. Este método pode ser uma ferramenta valiosa para melhorar a segurança dos dados em diversas aplicações.