Criptografia em hardware usando VHDL aplicado a VOIP



Documentos relacionados
Luckas Andre Farias. Criptografia em hardware usando VHDL aplicado a VOIP

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

ULA Sinais de Controle enviados pela UC

Raquel de Araújo Fábio Borges Gerson Nunes. O algoritmo AES: Apresentação e Descrição da Estrutura p.1/23

Questionário de Estudo - P1 Criptografia

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Memória Cache. Prof. Leonardo Barreto Campos 1

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Hardware Criptográfico para Interface de Comunicação Segura entre Dispositivos

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Quadro de consulta (solicitação do mestre)

Arquitetura de Rede de Computadores

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

SEGURANÇA EM PROCESSADORES DE REDE

Lista de Exercícios Sistemas de Numeração

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

LÓGICA DE PROGRAMAÇÃO

Introdução à Arquitetura de Computadores IFES Campus Serra

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Introdução à Lógica de Programação

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Implementações e Comparação de Multiplicadores de Alta Velocidade para Dispositivos Reconfiguráveis

Dispositivos Lógicos Programáveis

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Microprocessadores e Microcontroladores Prof. Edilson R. R. Kato Simulação do computador SAP-1

Arquitetura de Computadores. Tipos de Instruções

ARQUITETURA DE COMPUTADORES

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Memórias Prof. Galvez Gonçalves

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

B B C F B AC C A C C C F B B B B B B A C B C BF B B A B C B AB C B B AC B CAC C B B B B

Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Orientação a Objetos

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Um Driver NDIS Para Interceptação de Datagramas IP

Dadas a base e a altura de um triangulo, determinar sua área.

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Organização e Arquitetura de Computadores I. de Computadores

TRABALHO BIBLIOTECA MD5

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 13

Sistemas Computacionais II Professor Frederico Sauer

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

SISTEMAS DISTRIBUIDOS

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Montagem e Manutenção de Computadores Aula1

UNIBRATEC Ensino Superior e Técnico em Informática DHD Desenvolvimento em Hardware

1.1. Organização de um Sistema Computacional

CAPÍTULO I. UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA Apostila de Eletrônica Digital. Sistemas de Numeração. 1.

CALCULADORA SIMPLES COM ULA

Introdução a Informática. Prof.: Roberto Franciscatto

2 Diagrama de Caso de Uso

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Componentes de um computador típico

Representação de Dados

ORGANIZAÇÃO CURRICULAR

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Sumário. Parte I Conceitos Básicos de Criptografia, Software e Hardware Agradecimentos...7 Sobre os Autores...9 Prefácio...

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Organização e Arquitetura de Computadores I. de Computadores

Sistema de Computação

Aula 2 Modelo Simplificado de Computador

Prof. Rafael Gross.

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Representação de Dados e Sistemas de Numeração

SHA Descrição e Resumo. Pós Graduação Latu-Sensu

Gerenciamento de Clientes

Manual RbCripto. Sobre o RbCripto. Requisitos. Estatísticas de exemplo. Criptografia assimétrica versus criptografia simétrica. Como usar o programa

Organização de Computadores Hardware

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROJETO INTEGRADOR. Projeto de Redes de Computadores. 5º PERÍODO Gestão da Tecnologia da Informação GOIÂNIA

Endereçamento IP 09/05/2014. Endereçamento IP CLASSE B CLASSE A CLASSE A CLASSE C

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Computador. Algumas definições

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Admistração de Redes de Computadores (ARC)

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Keypad com IR via Rede I 2 C

O que é RAID? Tipos de RAID:

CAPÍTULO 6 ARITMÉTICA DIGITAL

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Exemplo de Subtração Binária

Algoritmos DCC 119. Introdução e Conceitos Básicos

Transcrição:

Criptografia em hardware usando VHDL aplicado a VOIP Luckas Andre Farias Wesley Attrot (orientador) 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011 CEP 86057-970 Londrina PR Brasil luckas.farias@gmail.com.br, wesley@uel.br Abstract. The study aims to develop a chip decrypts using the AES decryption algorithm, which will be tested using a VoIP network service. This process will aggregate the knowledge of computer architecture and the encryption process, aiming to unite these two areas of knowledge. It has been the intention to allow communication and exchange of files over the network to be made more securely, allowing for example a secure channel of communication networks is VoIP. For society the mainly is privacy and security benefit and this would bring for their intercommunications with others through the Internet. Resumo. O trabalho tem como objetivo desenvolver um chip de descriptografia usando-se o algoritmo de descriptografia do AES[1], o qual será testado usando um serviço de rede VoIP. Este processo vem a agregar nos conhecimentos de arquitetura de computadores e no processo de criptografia, visando unir estas duas áreas de conhecimento. Tem-se como intuito possibilitar que a comunicação e troca de arquivos pela rede sejam feitas de forma mais segura, possibilitando por exemplo um canal seguro de comunicação em redes VoIP. Para a sociedade tem-se como benefício a privacidade e a segurança que isso proporcionaria às suas intercomunicações com as demais pessoas através da Internet. 1. Introdução Em um mundo globalizado, onde cada vez mais usa-se a Internet para a comunicação, é de grande importância a proteção de certas informações que são transmitidas pela rede, para que desta maneira pessoas mal intencionadas não consigam compreender as informações que estão tramitando, evitando assim que os dados sejam somente interpretados corretamente pelas pessoas as quais se destina a informação. Por este motivo, pessoas e instituições têm feito o uso de técnicas para a criptografia com o intuito de conseguir e conciliar a proteção de informações, através de algoritmos de criptografia, tais como o DES[2] e o AES[1], chegando inclusive a fazer uso de algoritmos mais complexos como de curvas elípticas (os quais não fazem parte do escopo deste projeto). Para que o processo não se torne algo lento e desgastante, é necessário grande quantidade de poder computacional (visando uma criptografia não perceptível ao usuário final), sendo assim, o proposto neste trabalho é que este processo de criptografar e de descriptografar possa ser feito de maneira mais rápida através do uso de hardware específico (circuitos dedicados de uso restrito, onde sua funcionalidade é pré-definida ). Para a construção deste hardware, se fará o uso de uma linguagem HDL (Hardware Description Language) e de uma FPGA (Field Programmable Gate Array).

2. Fundamentação Teórico Metodológica e Estado da Arte Para a realização deste trabalho será necessária a compreensão do funcionamento do algoritmo de criptografia AES e do que é uma linguagem HDL. 2.1. AES O AES constitui em um processo que consegue usar dados de 128, 192 ou 256 bits, sendo que para cada quantidade de bits o algoritmo é dividido em duas partes [3], a criptografia e a descriptografia, sendo que o enfoque deste trabalho é a descriptografia em 128 bits. Uma informação importante sobre este processo é que ele é baseado em chaves simétricas de até 128 bits, por esta razão o AES define uma quantidade fixa de 10 1 rounds 2. Também se faz necessário conhecer o processo de geração de sub-chaves usadas em todos os rounds. Figura 1. Fluxo de dados e sequência de procedimentos no AES 1 Para 128 bits são 10 rounds, para 192 bits são 12 rounds e para 256 bits são 14 rounds 2 Sequência de passos pré definidos onde dentro deste intervalo nomeado de round serão executadas as tarefas. Os rounds são semelhantes entre si, sendo que também há a possibilidade de serem nomeados como rodadas, pois cada round será uma rodada.

2.1.1. Noções Matemáticas aplicadas ao algoritmo AES Notação Polinomial GF (2 8 ): Considerando que b 7, b 6, b 5, b 4, b 3, b 2, b 1, b 0 são os bits de um byte B qualquer tem-se b 7 x 7 +b 6 x 6 +b 5 x 5 +b 4 x 4 +b 3 x 3 +b 2 x 2 +b 1 x 1 +b 0. Soma: é nomeada como soma, mas na realidade aplica-se o XOR bit a bit (sem a passagem do excedente ao bit subsequente: não possui o vai 1 ). Sendo assim sua função é A XOR B = C, sendo no algoritmo A, B e C espaços de memória de 128 bits. Multiplicação: a multiplicação ocorre entre 2 bytes (considerando-se eles em notação polinomial). Ao resultado da multiplicação é aplicado o módulo, usandose o polinômio x 8 +x 4 +x 3 +x+1 (11Bh = 100011011). Faz-se necessário observar que a soma é constituída como a soma descrita anteriormente, onde x n + x n = 0. 2.1.2. Expansão da Chave Este processo recebe como entrada uma chave de 128 bits que será usada para expandir e criar outras 10 novas chaves (totalizando 11 chaves), as quais serão usadas uma a uma no round onde lhe cabe. Na criptografia, são usadas as chaves de forma crescente iniciando-se na chave 0 e terminando-se na chave 10, mas no processo descriptografia são usadas de forma decrescente iniciando-se pela chave 10 e terminando com o uso da chave 0. 2.1.3. Criptografia Para a realização da criptografia, é necessário que a informação de 128 bits passe por um preparador seguido de 10 rounds (repetições da parte intermediária do algoritmo de criptografia). No preparador é feito o Add round Key (descrito a seguir). Para o processo a ser executado em cada um dos 9 primeiros rounds é realizada a seguinte sequencia de operações: Substitute bytes, Shift rows, Mix coluns, ADD round Key; e no último round: Substitute bytes, Shift rows, ADD round Key. Para o preparador temos a seguinte função: Add round Key: Neste round, à matriz inicial é adicionada a key 0, esta soma ocorre assim como foi descrita a soma anteriormente, ou seja realiza-se A XOR Key-0, resultando em B, que é a informação para a próxima rodada onde começam a ser aplicados os rounds. E para o processo a ser executado em cada round é realizado o seguinte: Substitute bytes: Existem dois meios de se obter o mesmo resultado neste passo, um deles é calculando-se a S-Box e o outro é usando os valores já armazenados em memória (a tabela resultante será a mesma). Nesta descrição estará em foco apenas no uso da matriz S-Box que é apresentada na Tabela 1, sem ter a preocupação de como ela foi obtida. Como se observa a S-Box é organizada de maneira a possuir 16 colunas e 16 linhas, onde o elemento de entrada (em hexadecimal) é usado e substituído pelo elemento equivalente a seu valor na tabela (a linha representada pelo valor mais significativo e a coluna definida pelo valor menos significativo). Para melhor compreensão tomando-se por exemplo o valor A5h, o mesmo seria substituído pelo elemento que estiver na Ah linha e 5h coluna da matriz, no caso 06h.

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 10 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 20 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 30 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 40 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 50 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 60 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 70 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 80 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 90 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a0 e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c0 ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d0 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e0 e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f0 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 Tabela 1. S-Box Shift rows: Esta função tem como entrada a matriz de 128 bits (4 linhas e 4 colunas, sendo cada elemento composto por 4 bytes (palavra do algoritmo)) e realizar a função shift (do tamanho de bytes, ou seja considerando que cada linha possui 4 elementos), sendo que a primeira linha é deslocada em 0 posições, a segunda linha em 1 posição, a terceira linha em 2 posições e a quarta linha em 3 posições. Exemplificando: S 0,0 S 0,1 S 0,2 S 0,3 S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 1,3 S 1,0 S 1,1 S 1,2 S 2,0 S 2,1 S 2,2 S 2,3 S 2,2 S 2,3 S 2,0 S 2,1 S 3,0 S 3,1 S 3,2 S 3,3 S 3,1 S 3,2 S 3,3 S 3,0 Mix columns: sua função, assim como diz o nome, é embaralhar as colunas desta matriz de informação, preparando-a assim para a próxima etapa. Este processo consiste em multiplicar cada coluna da matriz intermediária por um polinômio constante: p(x) = 03hx 3 + 01hx 2 + 01hx + 02h. Também podendo ser representada na forma matricial: S ( 0, c) 02 03 01 01 S ( 0, c) S ( 1, c) = 01 02 03 01 * S ( 1, c) S ( 2, c) 01 01 02 03 S ( 2, c) S ( 3, c) 03 01 01 02 S ( 3, c) ADD roud Key: Neste round a matriz parcial é adicionada a key referente ao round (key-round), assim como descrita a soma anterior, ou seja realiza-se A XOR Keyround, resultando em B, que é a informação para a próxima rodada (e se esta for a última rodada, esta saída é a informação criptografada do algoritmo. Neste momento a informação inicial de 128 bits está criptografada como uma informação de também 128 bits.

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 10 7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb 20 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e 30 08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25 40 72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92 50 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84 60 90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06 70 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b 80 3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73 90 96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e a0 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b b0 fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4 c0 1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f d0 60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef e0 a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61 f0 17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d Tabela 2. Tabela Inverse S-Box 2.1.4. Descriptografia Assim como para a criptografia na descriptografia também é necessário um processo inicial seguido por 10 rounds do algoritmo, o qual pega a informação resultante do bloco de criptografia e com a chave (key) correta consegue obter a informação de 128 bits original sem prejuízo em seu conteúdo. No processo inicial é necessário a realização de: ADD round key: A key da rodada 0 da descriptografia (key 11 da criptografia) é somada a informação para fazer uso da propriedade matemática que diz que, sendo A o i-ésimo bit da informação atual e X o i-ésimo bit da textitkey (A AND X) AND X = A Após este processo são realizadas as seguintes funções por round: Inverse shift rows: Processo que reverte o shift rows, realizando-se o shift-right de 0 posições na primeira linha, de 1 posição na segunda linha, de 2 posições na terceira linha e 3 posições na quarta linha. Inverse sub bytes: Existem dois meios de se obter o mesmo resultado neste passo, um deles é calculando-se a tabela Inverse-S-Box e o outro é usando os valores já armazenados em memória. Esta descrição será focada apenas no uso da matriz Inverse-S-Box na Tabela 2, sem obrigatoriamente explicar a maneira pela qual ela é obtida. Como pode ser observado a Inverse-S-Box é organizada de maneira a possuir 16 colunas por 16 linhas, onde o elemento de entrada (em hexadecimal) é usado e substituído pelo elemento equivalente a seu valor na tabela (a linha representada pelo valor mais significativo e a coluna definida pelo valor menos significativo). Para melhor compreensão pegando-se por exemplo o valor A5h, o mesmo seria substituído pelo elemento que estiver na Ah linha e 5h coluna da matriz Inverse- S-Box, no caso o valor 29h.

ADD round key: A key da rodada é somada à informação para fazer uso da propriedade matemática que diz que, sendo A o i-ésimo bit da informação atual e X o i-ésimo bit da key (A AND X) AND X = A Inverse mix cols: Desfaz a operação do Mix coluns. Neste momento há informação de 128 bits é exatamente a mesma que foi dada como entrada no algoritmo de criptografia. 2.2. VHDL Considerando-se as referências [4] e [5], observa-se que são expostas técnicas e definições importantes a respeito de decisões de projeto que devem ser tomadas em caráter inicial, intermediário e final. Será utilizada a documentação da IEEE a respeito da VHDL (a atual detentora da biblioteca mais popular no seguimento) std logic 1164.vhdl. Nesta biblioteca muitos circuitos estão implementados, tais como funções booleanas, tipos de variáveis (inteira, com ponto flutuante, indeterminada, etc), estrutura de bits (vetor de bits), etc. 3. Objetivos Objetivo geral: Desenvolvimento de um circuito criptográfico de uso geral, o qual possa ser inserido em um processador RISC [6], tal como ocorre nos chips Intel [7], possibilitando que os dispositivos que com ele sejam equipados sejam capazes de ler corretamente arquivos criptografados com o AES. Para realização e teste deste circuito, o mesmo será aplicado a um sistema VoIP, possibilitando assim a criação de um canal seguro de comunicação[8]. Objetivos específicos: Aprendizado a respeito de criptografia; Aprendizado sobre linguagens de descrição de hardware, no caso a linguagem VHDL (Verilog Hardware Description Language); Melhorar o entendimento a respeito de arquitetura de computadores (mais especificamente de processadores); Possibilitar a comparação da execução de um algoritmo em hardware, software e simulação. Incorporar a um projeto de processador existente um módulo específico de criptografia. 4. Justificativas Hoje se faz necessário a proteção dos dados [9] [10], para tal, a possibilidade do uso de criptografia se torna muito eficaz, sendo assim uma forma segura de se fazer a proteção de dados. A criptografia permite que mesmo com um algoritmo conhecido (no caso o AES) apenas as pessoas com a chave correta consigam abrir o arquivo. Uma das aplicações que requerem segurança e privacidade é o VoIP[8], o qual é uma ótima oportunidade de testar o circuito que está sendo proposto e que será desenvolvido durante este trabalho.

5. Procedimentos Metodológicos/Métodos e Técnicas O procedimento adotado será dividir o trabalho em algumas etapas, sendo em princípio as seguintes: Estudo da técnica de criptografia; Estudo da linguagem de HDL; Divisão do algoritmo em submódulos, para que possa ser implementado em partes na linguagem HDL; Modelagem do circuito em VHDL; Junção dos módulos e teste de aproveitamento; Estudo do funcionamento da FPGA Xilinx Spartan-3A; Uso da FPGA, com o circuito programado, como um dispositivo de entrada de áudio (já criptografado) onde os dados serão passados como entrada de um microfone tradicional a um programa como skype [11], asterisk [12] ou similares. 6. Contribuições e/ou Resultados esperados O resultado esperado é conseguir criar o projeto de um chip de criptografia de baixo consumo energético, de baixo consumo em questão de processamento e eficiência suficiente para tráfego de dados criptografados em tempo real para uma chamada de voz. 7. Cronograma de Execução 1. Estudo do algoritmo AES de criptografia [13] 2. Estudo da linguagem VHDL em conjunto com a placa de simulação FPGA 3. Definição do hardware em alto nível 4. Definição do hardware em baixo nível 5. Escrita de módulos de tarefas em VHDL 6. Teste em simuladores de FPGA dos módulos de VHDL 7. Escrita do algoritmo em software para fins de comparação final 8. Testes finais 9. Redação do texto abr mai jun jul ago set out nov Atividade 1 X X Atividade 2 X X X Atividade 3 X X Atividade 4 X X X Atividade 5 X X X Atividade 6 X X X Atividade 7 X X X Atividade 8 X X X Atividade 9 X X X X X X X X Tabela 3. Cronograma de Execução

8. Departamentos envolvidos Departamento de Computação - UEL Referências [1] ADVANCED ENCRYPTION STANDARD (AES). Federal Information Processing Standards Publication 197, p. 1 51, 2001. [2] DATA Encryption Standard. Federal Information Processing Standards, p. 250 253, 1977. [3] STALLINGS, W. Cryptography and network security: principles and practice. [S.l.: s.n.]. [4] D AMORE, R. VHDL : descrição e síntese de circuitos digitais. [S.l.: s.n.]. [5] COSTA, C. da. Elementos de Lógica Programável com VHDL e DSP - Teoria e Prática. [S.l.: s.n.]. [6] ALVES, R.; FILHO, G. Um Cripto-Processador Reconfigurável Baseado em Algoritmos de Curvas Elípticas e AES. [7] PAPER, W. Intel R Advanced Encryption Standard ( AES ) New Instructions Set. [S.l.: s.n.], 2012. 1 94 p. ISBN 0001000101. [8] NHWAY, O. An Investigation into the Effect of Security on Reliability and Voice Recognition System in a VoIP Network. p. 1293 1297, 2011. [9] BUTCHER, D.; LI, X.; GUO, J. Security challenge and defense in voip infrastructures. Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, v. 37, n. 6, p. 1152 1162, 2007. ISSN 1094-6977. [10] SHACHTMAN, D. A. N. Most U.S. Drones Openly Broadcast Secret Video Feeds. out. 2012. Disponível em: <http://www.wired.com/dangerroom/2012/10/hack-proofdrone/>. [11] SKYPE web page. 2013. Disponível em: <http://www.skype.com/en/>. [12] ASTERISK web page. 2013. Disponível em: <http://www.asterisk.org/>. [13] DESHPANDE, A.; DESHPANDE, M.; KAYATANAVAR, D. Fpga implementation of aes encryption and decryption. In: Control, Automation, Communication and Energy Conservation, 2009. INCACEC 2009. 2009 International Conference on. [S.l.: s.n.], 2009. p. 1 6.

Londrina, 15 de abril de 2013. Luckas Andre Farias Wesley Attrot