Buscar

Matemática Computacional - Atividade Prática

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais