Skip to content

Trabalho Final de Modelagem de Sistemas em Silício 1/2017

License

Notifications You must be signed in to change notification settings

LSantos06/SystemC_IDEA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trabalho Final de Modelagem de Sistemas em Silício 1/2017

O trabalho consiste em implementar, utilizando a linguagem SystemC, um módulo de criptografia que utiliza o IDEA (International Data Encryption Algorithm) que é um algoritmo de cifra de bloco (simétrica) que faz uso de uma chave secreta de 128 bits e tanto o texto legível (entrada) quanto o texto ilegível (saída) possuem 64 bits. O algoritmo é usado tanto para a cifragem quanto para a decifragem.

Impelementação

No resultado final da implementação: O membro Lucas Nascimento codificou a estrutura do módulo em SystemC, definindo os registradores, os processos e as funções utilizadas no módulo como por exemplo a implementação dos rounds e half-round, realizando também a parte dos testes do módulo para a verificação do projeto. O membro Lucas Avelino implementou principalmente a conexão do módulo com a Network on Chip, realizando também parte da geração das sub-chaves. O projeto foi implementado em alto nível, utilizando loops ao invés de módulos de round e half-round, que podem ser utilizados no futuro. Mais detalhes sobre a implementação do projeto e as tarefas de cada um estão no GitHub do projeto: https://github.com/LSantos06/SystemC_IDEA.

Grupo

  • Lucas Avelino
  • Lucas Nascimento

Operações Básicas

O IDEA possui três grupos algébricos cujas operações são misturadas. Estas operações, que podem ser facilmente implementadas via hardware e/ou software, são:

  • #f03c15 Multiplicação módulo 2¹⁶+1 (multiplicação ignorando qualquer overflow);
  • #c5f015 Adição módulo 2¹⁶ (adição ignorando qualquer overflow);
  • #1589F0 Xor.

Todas estas operações são feitas com blocos de 16 bits, o que faz com que este algoritmo também seja eficiente em processadores de 16 bits.

Geração das sub-chaves

A partir da chave secreta de 128 bits, são geradas 52 sub-chaves de 16 bits. Cada round utiliza 6 sub-chaves, totalizando 48 sub-chaves, mais 4 sub-chaves são geradas para a realização do half-round.

Round e Half-round


Figura 1: Um round de criptografia do IDEA (Repetido 8 vezes).


Figura 2: Round final (half-round) de criptografia do IDEA.

Referências

About

Trabalho Final de Modelagem de Sistemas em Silício 1/2017

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published