Buscar

Franklyn Viana dos Santos - 4298019 - Matemática Computacional


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.

Mais conteúdos dessa disciplina