pontifÍcia universidade catÓlica do rio grande do...

85
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO INVESTIGAÇÃO DE ARQUITETURAS CRIPTOGRÁFICAS GALS ROBUSTAS A ATAQUES DPA RAFAEL IANKOWSKI SOARES PROPOSTA DE TESE DE DOUTORADO Prof. Dr. Ney Laert Vilar Calazans Orientador Porto Alegre, 28 de outubro de 2013.

Upload: lytu

Post on 25-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA

PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

INVESTIGAÇÃO DE ARQUITETURAS

CRIPTOGRÁFICAS GALS ROBUSTAS A ATAQUES DPA

RAFAEL IANKOWSKI SOARES

PROPOSTA DE TESE DE DOUTORADO

Prof. Dr. Ney Laert Vilar Calazans

Orientador

Porto Alegre, 28 de outubro de 2013.

Page 2: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

ii

Page 3: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

iii

RESUMO

A evolução da tecnologia VLSI, que se traduz na miniaturização de componentes, juntamente

com as exigências de mercado por sistemas complexos e com melhor desempenho, impõem limi-

tações significativas ao paradigma síncrono de projeto de sistemas digitais. Problemas tais como

o excessivo consumo de potência e os atrasos em sinais globais restringem as técnicas tradicio-

nais de projeto de sistemas digitais. Neste cenário, foram propostos vários modelos e métodos de

projeto visando explorar paradigmas não-síncronos a fim de encontrar alternativas de projeto que

se adequem à tecnologia VLSI atual. Além disso, a crescente demanda por aplicações tais como

comércio eletrônico e operações bancárias exigem segurança no processamento de informações

sigilosas. Atualmente, cresce o número de aplicações em sistemas embarcados que utilizam crip-

tografia, tais como smart cards. Durante muitos anos pesquisadores direcionaram esforços para

desenvolver algoritmos de criptografia robustos a diversos tipos de criptoanálise. Isto revela vul-

nerabilidades físicas que são exploradas por uma classe de ataques conhecidos como ataques a

canal escondido (em inglês, side channel attacks - SCA), que ameaçam a segurança de criptosis-

temas. Estes ataques exploram a relação entre o processamento de dados e o consumo de potên-

cia do circuito, ou a emissão de ondas eletromagnéticas durante o processamento. Várias são as

propostas para aumentar a robustez de sistemas criptográficos e evitar a fuga de informações por

canais escondidos. Estas propostas basicamente buscam evitar a correlação entre dados e a vari-

ação de grandezas nos canais escondidos por três modos: inserir ruído, mascarar o formato dos

dados em módulos vulneráveis e uniformizar a variação de grandezas elétricas ou eletromagnéti-

cas. Obviamente toda contramedida implica custo adicional de projeto, seja em área, em consu-

mo, em desempenho ou uma combinação destes. O objetivo deste trabalho é propor uma investi-

gação de arquiteturas criptográficas que sigam o paradigma GALS de projeto, visando explorar a

capacidade de processamento de ilhas síncronas em diferentes domínios de freqüência para pro-

duzir um perfil de consumo capaz de mascarar a fuga de informações em um formato sensível a

ataques DPA. Com esta proposta espera-se contribuir com uma arquitetura que se adeque a tec-

nologias VLSI futuras e que constitua uma contramedida eficiente a ataques por análise de con-

sumo de potência com baixo custo em área, consumo e desempenho comparado a outras propos-

tas de contramedidas.

Page 4: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

iv

Page 5: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

v

SUMÁRIO

RESUMO ........................................................................................... III

LISTA DE SÍMBOLOS E ABREVIATURAS ................................................... VII

LISTA DE FIGURAS .............................................................................. XI

LISTA DE TABELAS ............................................................................ XIII

1. INTRODUÇÃO ................................................................................... 1 1.1 Descrição do Problema ......................................................................... 2 1.2 Motivação ........................................................................................... 4 1.3 Contexto do Trabalho ........................................................................... 5 1.4 Objetivos ............................................................................................ 6 1.5 Originalidade ....................................................................................... 6 1.6 Organização do documento ................................................................... 7

2. DEFINIÇÕES BÁSICAS E ESTUDO DE CASO DE ALGORITMO DE CRITPTOGRAFIA 9 2.1 Criptologia .......................................................................................... 9

2.1.1 Criptografia ........................................................................................... 9 2.1.2 Criptoanálise ....................................................................................... 10

2.2 Algoritmo de Criptografia DES ............................................................. 13 2.3 Ataques por Análise Diferencial de Potência ........................................... 15

2.3.1 Funcionamento dos Ataques .................................................................. 15

3. PROPOSTAS DE CONTRAMEDIDAS A SCA ............................................. 19 3.1 Métodos por Mascaramento de Dados ................................................... 19

3.1.1 Comparações entre propostas ............................................................... 22 3.2 Método por Injeção de Ruído ............................................................... 22

3.2.1 Comparações entre propostas ............................................................... 25 3.3 Método por Uniformização do Consumo de Potência ............................... 26

3.3.1 Comparações entre propostas ............................................................... 28 3.4 Conclusão ......................................................................................... 29

4. PARADIGMAS NÃO-SÍNCRONOS DE PROJETO ....................................... 30 4.1 Definições Básicas .............................................................................. 30

4.1.1 Fenômenos Temporais .......................................................................... 31 4.1.2 Interação com o Ambiente .................................................................... 31 4.1.3 Protocolos de Comunicação ................................................................... 32

4.2 Classificação dos Sinais Digitais ........................................................... 33 4.3 Revisão de Interfaces Assíncronas ........................................................ 34

4.3.1 Portas de Entrada e Saída ..................................................................... 34 4.3.2 Geradores de Relógio ........................................................................... 35 4.3.3 Árbitros .............................................................................................. 37

4.4 Conclusão ......................................................................................... 39

5. EXPERIMENTOS REALIZADOS ............................................................ 41 5.1 Prototipação de STTL em FPGAs ........................................................... 41 5.2 Sistema de Medição de Consumo de Potência ........................................ 44 5.3 Desenvolvimento de Ataques DPA ........................................................ 46 5.4 Resultados e Análises ......................................................................... 48 5.5 Aperfeiçoamento da Lógica STTL .......................................................... 50

Page 6: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

vi

5.6 Ataques DPA e DEMA sobre STTL ......................................................... 51 5.7 Conclusão ......................................................................................... 52

6. PROPOSTA DE TRABALHO ................................................................. 53 6.1 Proposta de Estruturas de Ilhas Síncronas ............................................. 53

6.1.1 Processo de Geração de Relógio............................................................. 54 6.2 Particionamento de Algoritmos Criptográficos ........................................ 56 6.3 Projeto de Arquiteturas Pipeline GALS ................................................... 56 6.4 Avaliação de Arquiteturas Pipeline GALS ............................................... 56

7. CRONOGRAMA DE ATIVIDADES .......................................................... 58

8. CONCLUSÃO .................................................................................. 61

REFERÊNCIAS BIBLIOGRÁFICAS ............................................................ 62

ANEXO 1 – TABELAS DO ALGORITMO DES............................................... 69

Page 7: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

vii

LISTA DE SÍMBOLOS E ABREVIATURAS

AES Advanced Encryption Standard

AFSM Asynchronous Finite State Machine

ASIC Application Specific Integrated Circuit

CAD Computer Aided Design

CI Circuito Integrado

CMOS Complementary Metal Oxide Semiconductor

CPA Correlation Power Analysis

CPU Central Processing Unit

CRT Chinese Remainder Theorem

DCM Digital Clock Manager

DCVSL Differential Cascode Voltage Switch Logic

DEMA Differential ElectroMagnetic Analysis

DES Data Encryption Standard

DIMS Delay Insensitive Minterm Synthesis

DLL Delay Locked Loop

DPA Differential Power Analysis

DPDN Differential Pull Down Network

DR Dual Rail

DSA Digital Signature Algorithm

DVD Digital Vídeo Disc

DVFS Dynamic Voltage Frequency Scaling

FFD Flip-Flop D

FPGA Field Programmable Gate Array

Page 8: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

viii

FSM Finite State Machine

GALS Globally Asynchronous Locally Synchronous

GF Galois Field

gME Gate Mutual Exclusion

GSM Global System for Mobile Communications

HD Hamming Distance

HW Hamming Weight

LFSR Linear Feedback Shift Register

LR2A Leak Resistant Reconfigurable Architecture

LUT Look Up Table

MDPL Masked Dual Rail Pre-Charged Logic

ME Mutual Exclusion

MPSoC Multiprocessor System on a Chip

PCC Pausible Clocking Control

PI Permutação Inicial

RCDDL Reduced Complementary Dynamic and Differential Logic

RDVFS Random Dynamic Voltage Frequency Scaling

RSA Rivest Shamir Adleman

RNS Residue Number System

SABL Sense Amplifier Based Logic

S-BOX Substitution Box

SCA Side-Channel Attack

SDDL Simple Dynamic and Differential Logic

SEMA Simple ElectroMagnetic Analysis

SNR Signal to Noise Rate

SoC System on Chip

Page 9: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

ix

SPA Simple Power Analysis

STTL Secure Triple Track Logic

UMM Unique Masking Method

VLSI Very Large Scale Integration

WDDL Wave Dynamic Differential Logic

Page 10: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

x

Page 11: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

xi

LISTA DE FIGURAS

Figura 1.1 Inversor implementado por um circuito CMOS clássico. O gráfico mostra o consumo de corrente de acordo com a tensão de entrada. O pico de consumo ocorre apenas durante a transição lógica de entrada ‘1’ para ‘0’, comprovando a dependência entre consumo e dados processados. Este comportamento é explorado pelos ataques DPA........................................................................... 3

Figura 1.2 Um smart card tendo seu consumo de potência monitorado por um simples sistema de medição

formado por um resistor em série com a fonte de alimentação e um osciloscópio. ........................... 3 Figura 2.1 - Funcionamento global do algoritmo DES + detalhes de um Round. .................................... 14 Figura 2.2 - Detalhes do funcionamento de um Round. ...................................................................... 14 Figura 2.3 – Porta NOR representada em nível de transistores à esquerda. À direita sua representação

lógica. .................................................................................................................................. 15 Figura 2.4 - Decomposição de um ataque DPA. ................................................................................ 17 Figura 2.5 - Esquema simplificado do algoritmo DES utilizado como alvo do ataque. ............................. 17 Figura 2.6 – Estrutura em blocos das etapas de uma análise diferencial de potência realizada sobre a S-

BOX do DES, conforme proposto por Kocher [KOC99]. ............................................................... 18 Figura 2.7 - Exemplo de curvas DPA obtidas ao final do tratamento dos dados. .................................... 18 Figura 3.1 Diagrama em blocos de uma função f do round do algoritmo DES. Os autores propõem a

inserção de circuitos para mascarar dados antes do processamento de partes vulneráveis da função (Xor e S-BOXs). Um gerador de números aleatórios é inserido no round para alimentar os circuitos propostos. ............................................................................................................................ 20

Figura 3.2 Estrutura GALS da arquitetura Acácia proposta em [GUR06]. A Acácia é composta pelo modulo

Goliath que executa operações com 128 bits e por dois módulos David com funções de 32 bits. ...... 25 Figura 4.1 Esquema básico de um canal de comunicação utilizando protocolo handshake. O canal de dados

é opcional, Caso ele exista no sentido mostrado, o canal se denomina push channel. ..................... 32 Figura 4.2 Operação do protocolo de comunicação de quatro fases. .................................................... 33 Figura 4.3 Operação do protocolo de comunicação de duas fases........................................................ 33 Figura 4.4 Taxonomia proposta por Messerschmitt em [MES90]. ........................................................ 34 Figura 4.5 Modelo simplificado de uma interface de comunicação assíncrona empregando relógio

extensível. ............................................................................................................................ 34 Figura 4.6 Diagrama de um gerador de relógio extensível implementado através de cadeias de inversores.

Um elemento de exclusão mútua é utilizado para controlar a extensão do relógio. ......................... 36 Figura 4.7 Estrutura de relógio programável proposta por Yun e Dooply em [YUN99]. Na estrutura ME

representa um elemento de exclusão mútua. FSM representa uma máquina de estados síncrona, AFSM uma máquina de estados assíncrona. .............................................................................. 37

Figura 4.8 Exemplo de circuito de exclusão mútua utilizado como árbitro. ........................................... 37 Figura 4.9 Árbitro proposto por Yun e Dooply [YUN99a]. (a) apresenta o circuito lógico do árbitro. (b)

expande a lógica do bloco de Exclusão Mútua do árbitro. (c) mostra uma seqüência de sinais no momento em que chegam requisições ao árbitro. ...................................................................... 39

Figura 5.1 Estrutura lógica e física de uma porta lógica AND de duas entradas STTL. Em (A) o diagrama de portas e em (B) o leiaute da hard macro para um dispositivo da família Spartan 3 de FPGAs da Xilinx [SOA08]. .............................................................................................................................. 42

Figura 5.2 Sub-módulo do algoritmo DES usado como alvo dos estudos, incluindo a S-BOX1. ................ 43 Figura 5.3 Sistema de medição e coleta de perfis de potência para validação do protótipo da S-BOX1 sobre

FPGA. ................................................................................................................................... 44 Figura 5.4 Sistema embarcado desenvolvido para gerenciar o processo de coleta de perfis de consumo de

potência da S-BOX1. .............................................................................................................. 45 Figura 5.5 Máquina de estados finita projetada para receber dados serialmente e sincronizar o processo de

medição do perfil de potência da S-BOX1 com o osciloscópio. ..................................................... 46 Figura 5.6 Resultado de uma simulação, mostrando a ordem dos eventos durante o processo de medição e

coleta de dados. Em (1) end_frame indica que o dado word_rx está disponível para processamento. Em (2) SboxValid indica a validação da codificação SR para STTL. Em (3) synchro_oscillo indica o

inicio do processo de medição do perfil de consumo. Em (4) SboxEnable habilita o cálculo realizado pela S-BOX1. Em (5) ‘s_v’ indica a validade dos dados ‘s_t’ e ’s_f’na saída da S-BOX1. Em (6) os dados estão disponíveis na saída do FPGA. O tempo entre os eventos (4) e (5) representa o tempo de

Page 12: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

xii

processamento da S-BOX1 o qual será analisado durante os ataques DPA. ................................... 46 Figura 5.7 Uma visão geral dos fluxos de análises DPA e CPA. ............................................................ 47 Figura 5.8 Curvas da análise diferencial de potência obtidas com a sub-chave 10 no sub-módulo S-BOX1

implementado com lógica em trilha única. ................................................................................ 48 Figura 5.9 Curvas da análise de potência por correlação obtidas com a sub-chave 10 no sub-módulo S-

BOX1 implementado com lógica em trilha única. ........................................................................ 48 Figura 5.10 Curvas resultantes da análise diferencial de potência obtidas com a sub-chave 57 na S-BOX1

implementada com lógica STTL. .............................................................................................. 49 Figura 5.11 Novo proposta de implementação da biblioteca STTL. Este exemplo mostra uma porta AND de

duas entradas. ...................................................................................................................... 50 Figura 5.12 Sistema de medição de emissão de ondas eletromagnéticas [SOA09]. ............................... 51 Figura 6.1 Proposta de interface estrutura de ilha síncrona com comunicação por protocolo handshake

garantido por sincronizadores.................................................................................................. 54 Figura 6.2 Proposta de estrutura de ilha síncrona para encapsular módulos criptográficos vulneráveis aos

ataques DPA. ........................................................................................................................ 54 Figura 6.3 Gerador de relógios com diferentes freqüências. O multiplexador e o gerador de números

aleatórios (LFSR), selecionam um sinal de relógio. ..................................................................... 55 Figura 6.4 Um exemplo de gerenciador de redes de relógio. No caso apresenta-se um DCM do FPGA da

família Virtex2 da Xilinx [XIL07]. ............................................................................................. 55 Figura 6.5 Algoritmo com módulos funcionais replicados e encapsulados por interface assíncrona formando

um pipeline de execução com n estágios. ................................................................................. 56 Figura 6.6 Ilustração dos possíveis cenários de operação de algoritmos criptográficos implementados como

pipelines adotando, por exemplo, pipeline com 4 estágios de profundidade. Em (a) todos os estágios operam em mesma freqüência. Em (b) as freqüências de cada estágios são fixas, porém distintas. Em (c) o cenário é o mesmo, porém a arquitetura possui filas de armazenamento entre os estágios. Em (d) as freqüências de operação são variadas em cada estágio, dando uma maior aleatoriedade ao criptosistema. ....................................................................................................................... 57

Page 13: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

xiii

LISTA DE TABELAS

Tabela 2.1 Tabela de estados de consumo de uma porta NOR2. Entenda consumo positivo, quando exista uma corrente de carga capacitiva e consumo negativo quando exista corrente de descarga capacitiva. ........................................................................................................................................... 15

Tabela 3.1 Resumo de propostas que visam descorrelacionar dados por mascarar dados. ...................... 22 Tabela 3.2 Resumo de propostas que visam descorrelacionar dados por aleatorizar o consumo de potência.

........................................................................................................................................... 25 Tabela 3.3 Resumo de propostas que visam descorrelacionar dados por mascarar dados. ...................... 28 Tabela 5.1 Tempo de cálculo e área ocupada para implementação da S-BOX1 em 3 versões distintas, SR,

DR (DIMS) e STTL. ................................................................................................................. 43 Tabela 5.2 Resultado das análises de potência para o sub-módulo S-BOX1 implementado com lógica STTL.

........................................................................................................................................... 49 Tabela 5.3 Resultados pos simulação da implementação do Sub-modulo C por 5 diferentes bibliotecas. Os

custos em área e tempo de execução são apresentados [LOM08] [SOA09]. .................................. 51 Tabela 5.4 Percentual de sub-chaves descobertas com a realização de ataques DPA e DEMA. (NR-Não

realizado) ............................................................................................................................. 52 Tabela 7.1 Cronograma de atividades proposto para conclusão do trabalho. ........................................ 60

Page 14: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

xiv

Page 15: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

1

1. INTRODUÇÃO

A indústria de semicondutores dispõe de tecnologias modernas que permitem a construção de circui-

tos integrados (CIs) contendo centenas de milhões de transistores e conexões produzidos em escalas nanomé-

tricas. Isto permite uma alta taxa de integração de componentes em um único chip (em inglês, Very Large

Scale Integration - VLSI). Atualmente, é comum o emprego de CIs VLSI em produtos de consumo de baixo

custo, tais como palmtops, leitores de DVD (Digital Video Disc), jogos eletrônicos e smart cards. Um pro-

blema inerente de usar tecnologias modernas de implementação de CIs reside na complexidade de projeto de

tais componentes.

A evolução da tecnologia de fabricação de semicondutores paulatinamente torna inviável o uso de al-

gumas técnicas de projeto tradicionais de desenvolvimento de CIs. Para agravar esta situação, existe a pressão

do mercado consumidor por sistemas mais complexos produzidos em intervalos de tempo cada vez mais cur-

tos [ITR05]. As técnicas tradicionais de projeto adequavam-se a tecnologia e a demandas do mercado consu-

midor em um cenário onde os projetos digitais eram totalmente síncronos ou quase, e as preocupações basi-

camente concentravam-se em torno da obtenção de maior desempenho e redução de área em silício.

A grande maioria dos CIs VLSI comercializados atualmente emprega o paradigma de projeto síncro-

no, ou seja, o processamento e comunicação realizados sob o comando de um único sinal de relógio e outros

deste derivados. A adoção de um único relógio para controlar todo o sistema digital traz alguns problemas

tais como sua distribuição, o escorregamento e o consumo de potência deste sinal. Estes atrasos até meados

da década de 80 eram desprezíveis ou facilmente tratáveis, porém começam a se tornar difíceis de resolver

com a acentuada miniaturização da tecnologia VLSI. Segundo o International Technology Roadmap for Se-

miconductors [ITR05], a complexidade de sistemas VLSI coloca em risco paradigmas consolidados. Entre

estes cita-se o uso do estilo síncrono, pois os circuitos resultantes tendem a tornar-se menos confiáveis devido

aos limites de potência.

Segundo Ho et al. em [HO01], à medida que a tecnologia VLSI evolui, o tempo de propagação de si-

nais em fios globais vai cada vez mais exceder o período de relógio. Desde a tecnologia 130 nm é necessário

em média mais de um período de relógio para um sinal propagando-se em um fio global atravessar todo o

comprimento de um chip. Além disso, a exigência de altas freqüências de operação para aumentar a velocida-

de de processamento eleva o consumo de potência, o que não é desejável, principalmente em produtos portá-

teis.

A necessidade de alternativas para desenvolver chips motiva o desenvolvimento de trabalhos tais co-

mo [TEE07][VAN08] que visam a eliminação de sinais globais, como por exemplo, o sinal de relógio. A eli-

minação do sinal de relógio em sistemas conduz a outro paradigma de projeto, denominado assíncrono. Este

paradigma apresenta características tais como conexões ponto a ponto entre módulos e uso de interfaces com

handshake explícito, onde são necessárias apenas interconexões de curto alcance e sinais de sincronização

locais. Em contrapartida, a complexidade de projeto é maior em relação ao paradigma síncrono, devido à mul-

tiplicação de preocupações explícitas com a temporização de sinais. Neste contexto, Chapiro [CHA84] pro-

Page 16: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

2

pôs uma solução híbrida, ou seja, sistemas globalmente assíncronos e localmente síncronos (do inglês Global-

ly Asynchronous Locally Synchronous – GALS). Esta solução intermediária mantém o paradigma síncrono na

concepção de módulos funcionais, denominados de ilhas síncronas e elimina o problema do uso de sinais glo-

bais por empregar o paradigma assíncrono na comunicação entre módulos [GUR06].

A miniaturização de tecnologias VLSI modernas permite que sistemas embarcados sejam usados em

aplicações tais como produtos de identificação pessoal, cartões bancários, etiquetas eletrônicas, cartões tele-

fônicos pré-pagos entre outras. Estas aplicações realizam processamento sobre dados sigilosos exigindo me-

didas de proteção para garantir que pessoas ou dispositivos não autorizados tenham acesso aos dados, ou seja,

medidas para garantir segurança aos sistemas. Em função disso, o emprego da criptografia, ciência que se

baseia na aritmética para ocultar dados, tornou-se essencial no projeto de sistemas digitais seguros.

O surgimento de smart cards1 para atender esta demanda de mercado coincide com o uso crescente da

criptografia para proteger informações sigilosas. Embora a criptografia tenha sido continuamente desenvolvi-

da para garantir que algoritmos sejam robustos às tentativas de recuperações de dados secretos, novas técni-

cas demonstram que através de grandezas físicas dos sistemas criptográficos tais como o tempo de processa-

mento, o consumo de potência e emissão de ondas eletromagnéticas seja possível revelar dados sigilosos pro-

cessados pelo sistema. Esta classe de técnicas é conhecida como Ataques a Canais Escondidos

[KOC96][KOC99] (em inglês, Side Channel Attacks - SCA) e surge como uma ameaça à segurança de siste-

mas criptográficos ou também referenciados aqui como criptosistemas. A correlação entre as variações de

grandezas físicas durante o processamento de dados passa a representar uma vulnerabilidade aos criptosiste-

mas e objeto de uma crescente área de interesse e pesquisa em sistemas embarcados.

1.1 Descrição do Problema

No último século foram desenvolvidos estudos a fim de evoluir a criptografia. Porém, com o crescen-

te uso de segurança em sistemas embarcados, desenvolveram-se estudos com o objetivo de encontrar correla-

ções entre dados processados e as variações de grandezas físicas em criptosistemas, conforme discutido ante-

riormente. Como exemplo, é possível citar os ataques por análise simples de potência (do inglês, Simple Po-

wer Analysis - SPA) e ataques por análise diferencial de potência (em inglês, Differential Power Analysis -

DPA) [KOC99], que usam o consumo de potência dos dispositivos para obter informações secretas tais como

uma chave criptográfica, ou seja, obter a senha que permite decifrar qualquer informação criptografada.

Segundo [FIP01], SPA pode ser definido como uma análise direta, ou primariamente visual, de pa-

drões de execução de instruções ou de execuções de instruções individuais, obtidas através do monitoramento

do consumo de potência de um criptosistema com o propósito de revelar características de implementação e

subseqüentemente o valor da chave criptográfica. DPA possui o mesmo propósito de SPA, porém utiliza a-

vançados métodos estatísticos e/ou outras técnicas para estabelecer correlações entre consumo de potência e

dados ou instruções executadas. Além disso, os SCAs podem explorar ainda variações do tempo de execução

para criptografar os dados e das emissões de ondas eletromagnéticas geradas pelo circuito durante sua execu-

ção, como meio de correlacionar aos dados processados.

O princípio dos ataques DPA está baseado no fato de que o consumo de potência em sistemas digitais

está diretamente relacionado com os dados, ou seja, é dependente de dados [KOC99]. Particularmente, para

uma dada computação, o perfil de corrente de um criptosistema poderá ser influenciado pelos dados manipu-

1 um cartão que geralmente assemelha-se em forma e tamanho a um cartão de crédito convencional de plástico. Além de ser usado em

cartões bancários e de identificação pessoal, é encontrado também nos celulares GSM (do inglês, Global System for Mobile Com-

munication). A grande diferença é que ele possui capacidade de processamento, pois contém um microprocessador e memória, am-

bos com sofisticados mecanismos de segurança.

Page 17: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

3

lados. Este fato tem suas origens nas características de consumo de circuitos CMOS clássicos em trilha única

que constituem grande parte dos sistemas intrachip, mais especificamente dos criptosistemas. A Figura 1.1

ilustra um exemplo de um circuito inversor, onde é possível notar a dependência existente entre o consumo de

potência e o dado processado. No exemplo mostrado, visualmente pode-se estabelecer uma correlação entre o

consumo de corrente e o dado processado, o que caracteriza um ataque SPA.

Figura 1.1 Inversor implementado por um circuito CMOS clássico. O

gráfico mostra o consumo de corrente de acordo com a tensão de en-

trada. O pico de consumo ocorre apenas durante a transição lógica de

entrada ‘1’ para ‘0’, comprovando a dependência entre consumo e da-

dos processados. Este comportamento é explorado pelos ataques DPA.

Os criptosistemas mais usados comercialmente e por conseqüência os mais visados a ataques DPA

são os smart cards. Sua vulnerabilidade basicamente está associada ao fato do atacante ter acesso não super-

visionado ao dispositivo [HEN01]. Desta maneira o atacante (pessoa maliciosa usando métodos de ataque)

tem o controle de certos elementos do ambiente tais como a tensão de alimentação, freqüência de relógio e a

radiação externa (ondas eletromagnéticas). Deste modo o atacante pode realizar repetidas operações de ata-

que visando extrair informações secretas do criptosistema.

Um exemplo é apresentado na Figura 1.2, onde um smart card armazena internamente uma chave

criptográfica e tem seu consumo de corrente monitorado por um resistor em série com o fio da fonte de ali-

mentação. As variações da corrente consumida durante o processamento representam as vulnerabilidades do

sistema. A partir destas variações, os atacantes podem avaliar a fuga de informação, ou seja, estabelecer a

correlação entre as variações de consumo e os dados processados.

Figura 1.2 Um smart card tendo seu consumo de potência monito-

rado por um simples sistema de medição formado por um resistor

em série com a fonte de alimentação e um osciloscópio.

Page 18: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

4

1.2 Motivação

A criptografia tornou-se um componente essencial à segurança de sistemas de comunicação. Durante

anos, o uso da criptografia foi reservado quase que exclusivamente a aplicações militares. Nos últimos anos, a

criptografia passou a ser aplicada em vários setores tais como sistemas bancários, sistemas corporativos pú-

blicos e privados e comércio eletrônico, além de inúmeras aplicações embarcadas. Atualmente, seria impossí-

vel imaginar a utilização de serviços bancários sem o uso de criptografia, ou mesmo a troca de informações

confidenciais através da Internet. Todas estas aplicações exigem o uso de sistemas criptográficos. Assim, ne-

cessita-se da utilização de um conjunto de métodos que permitam efetuar a troca de informações sem revelar

seu conteúdo. Como exemplo é possível citar a assinatura eletrônica e a criptografia. Em geral, um sistema

criptográfico utiliza uma palavra relativamente curta chamada de chave criptográfica cujo segredo condiciona

sua eficiência. Em todos os sistemas criptográficos modernos, conhecer a chave equivale a ser capaz de efe-

tuar todas as operações no criptosistema.

A priori, os algoritmos criptográficos mais utilizados são supostamente eficazes contra todos os tipos

de ataque. Apesar de o algoritmo ser robusto, o criptosistema pode não sê-lo. A análise diferencial de consu-

mo de potência é uma técnica relativamente recente que deu origem a uma nova classe de ataques sobre im-

plementações de sistemas criptográficos em hardware. Mais precisamente, ao tomar-se como exemplo um

smart card, a partir de medidas de consumo de potência sobre este criptosistema é possível recuperar parte da

chave criptográfica nela contida. Recursivamente, este ataque permite encontrar o valor da chave secreta

completa com excelente eficiência.

Circuitos assíncronos aparecem como uma solução para aplicações de segurança [KUL05]. Aplicações

que empregam dispositivos criptográficos implementados sob o paradigma síncrono têm maior potencial que

versões assíncronas equivalentes para apresentar vulnerabilidade a ataques por análise diferencial de potên-

cia. Os paradigmas não-síncronos podem ser associados a determinados tipos de implementações que pressu-

põe uma codificação não binária de informação como, por exemplo, a codificação 1 de N, que permitem a

obtenção de um consumo de potência menos correlacionado dos dados. Isto pode ser uma contramedida efi-

caz contra ataques DPAs como alegado em [BON97][BOU05].

O desenvolvimento de sistemas de segurança empregando lógica em trilha dupla, ou seja, um bit repre-

sentado por uma codificação em duas trilhas, aumenta a robustez a ataques DPAs segundo

[BOU05][CHE06][TIR04]. Entretanto, alguns experimentos mostram que apenas o uso de estruturas em trilha

dupla não é suficiente para garantir um alto nível de segurança a sistemas. Deste modo, alguns trabalhos tais

como [RAZ04][RAZ06] investigaram a robustez da lógica em trilha dupla e concluíram que a lógica é sensí-

vel à cargas capacitivas parasitas introduzidas durante a síntese nas etapas de roteamento e posicionamento, o

que a torna vulnerável a ataques DPA.

O projeto de sistemas puramente assíncronos sofre com a falta de ferramentas e com a abundância de

estilos de projeto, fato que reduz seu uso na implementação de sistemas intrachip [HAU95]. Assim, o para-

digma GALS proposto por Chapiro mantém o paradigma síncrono no projeto de módulos funcionais de um

sistema e os encapsula com interfaces de comunicação assíncrona. Esta abordagem se apresenta como uma

solução a curto e médio prazo a problemas tais como o uso de sinais globais e o escorregamento do sinal de

relógio no paradigma síncrono e como uma alternativa ao complexo projeto de circuitos assíncronos. Deste

modo, o paradigma GALS mantém o uso de ferramentas de CAD consolidadas e fluxo de projeto de circuitos

síncronos, restringindo a complexidade de projeto assíncrono às interfaces de comunicação.

O paradigma GALS apresenta outras vantagens que contribuem ao desenvolvimento de sistemas intra-

chips sob a perspectiva das novas tecnologias VLSI. A divisão de um sistema em módulos funcionais permite

que cada módulo opere em sua freqüência máxima, proporcionando um desempenho em caso médio ao siste-

ma. Em sistemas síncronos o desempenho em termos de freqüência de operação é sempre de pior caso, devido

Page 19: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

5

ao sinal de relógio ser comum a todos os módulos. Além disso, o encapsulamento em ilhas síncronas permite

a geração e controle do sinal de relógio de forma independente. Em conseqüência deste controle autônomo, é

possível oferecer outras funcionalidades tais como a pausa e extensão do sinal de relógio. Isto favorece o uso

de estratégias para reduzir o consumo de potência dos sistemas que são também muito importantes na con-

cepção de SoCs em novas tecnologias.

O uso de diferentes domínios de freqüência é uma tendência em sistemas intrachips multiprocessados

que exigem baixo custo em consumo de energia. As técnicas de variação dinâmica de freqüência e tensão (em

inglês, Dynamic Frequence Scaling and Dynamic Voltage Scaling – DFS, DVS) são aplicadas para controlar

dinamicamente o consumo de potência de acordo com a demanda de processamento em um sistema

[LEU07][OGR07]. Estas técnicas também são usadas em sistemas criptográficos para evitar a fuga de infor-

mações através de ataques DPA e DEMA conforme proposto por [BAD07]. A simples variação de freqüência

em um sistema puramente síncrono não é eficiente para evitar a fuga de informações através destes ataques,

pois o perfil do consumo de potência pode revelar a freqüência de operação do sistema.

O uso de diferentes contramedidas a ataques DPA é indicado segundo, por exemplo, [AKK01][HAI07]

[GUR06] como um meio para aumentar a robustez de criptosistemas a SCAs. O paradigma GALS permite a

aplicação de contramedidas em diferentes níveis, conforme proposto em [GUR06]. O paralelismo de métodos

de imunidade aumenta a complexidade dos ataques exigindo um esforço maior de processamento para obter

informações sigilosas de sistemas criptográficos. Com o paradigma GALS espera-se oferecer um maior obs-

táculo à fuga de informações por meio da análise do consumo de potência.

1.3 Contexto do Trabalho

A principal ameaça ao projeto e desenvolvimento de criptosistemas esta na correlação entre o proces-

samento de dados e o consumo de potência, conforme demonstrado por Kocher em [KOC99]. Outros canais

escondidos também podem ser explorados por usuários mal intencionados, existindo também a correlação de

dados com o tempo de processamento, a emissão de ondas eletromagnéticas, e mais recentemente a correla-

ção com a vibração do silício e a emissão de luz durante o chaveamento de transistores. Todos estes canais

são fontes potenciais de fuga de informações sigilosas.

Os principais métodos usados para se contrapor à fuga de informações sigilosas de sistemas seguem

basicamente três princípios: (i) uniformizar o consumo de todos os dados; (ii) mascarar os dados processados

e, (iii) introduzir mecanismos que gerem ruído de modo aleatório, ou seja, gerem um consumo de potência

fora do padrão esperado com o objetivo de reduzir a taxa sinal-ruído (em inglês, Signal to Noise Rate - SNR),

dificultando a análise e o tratamento de sinais. Este trabalho visa explorar as vantagens do paradigma GALS,

tais como a geração e o controle independente sobre o sinal de relógio e a capacidade de comunicação assín-

crona, investigar algoritmos que tenham chances potenciais de funcionamento paralelo e definir arquiteturas

GALS em modo pipeline com capacidade de reduzir a fuga de informações através de canais escondidos,

mais precisamente do consumo de potência de criptosistemas. As arquiteturas investigadas neste trabalho vi-

sam a imunização pela redução da SNR.

Este trabalho apresentará estudos com o algoritmo DES como prova de conceito, por este ser um dos

mais utilizados em aplicações com smart cards e realizará protótipos em FPGA para validação de conceitos.

As contramedidas serão avaliadas somente em relação ao consumo de potência devido à disponibilidade de

recursos do laboratório de pesquisa, ficando como tarefas futuras avaliar a correlação de dados com emissão

de ondas eletromagnéticas e outras técnicas.

Page 20: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

6

1.4 Objetivos

Faz parte do escopo deste trabalho a investigação de arquiteturas GALS com capacidade de reduzir a

relação sinal-ruído do perfil de consumo de potência. O foco do trabalho é obter arquiteturas GALS com a

replicação de sub-módulos funcionais de algoritmos criptográficos, formando um pipeline de ilhas síncronas

operando em diferentes domínios de freqüência. Produzir um perfil de consumo aleatório, inviabilizando, na

prática, a realização de ataques DPA bem sucedidos. Desta forma, os objetivos estratégicos deste trabalho

podem ser resumidos como segue:

Contribuir para a pesquisa em Segurança à Sistemas Embarcados;

Disponibilizar ao grupo de pesquisa do Autor conhecimento sobre métodos para evitar ata-

ques por canais escondidos;

Dominar conceitos sobre o paradigma GALS de projeto;

Desenvolver um sistema de medição e aquisição de perfis de potência;

Contribuir com o conhecimento sobre particionamento e replicação de algoritmos criptográ-

ficos;

Para alcançar os objetivos estratégicos são planejadas atividades para atingir os seguintes objetivos

específicos:

Definir interfaces de comunicação assíncronas;

o Definir protocolos de comunicação das ilhas síncronas;

o Propor circuitos para geração de sinal de relógio;

o Definir um controle aleatório para a variação de freqüência do sinal de relógio em i-

lhas síncronas;

o Explorar a possibilidade do uso de mecanismos para extensão do sinal de relógio;

o Definir interfaces para portas de entrada e saída de dados;

o Propor uma biblioteca de hard macros (módulos implementados por componentes

primitivos do FPGA permitindo restrições temporais ou de posicionamento);

o Propor um ambiente de geração/reprodução de hard macros visando a portabilidade

de dispositivos de prototipação.

o Encapsular os módulos funcionais de um algoritmo em ilhas síncronas (estudo de ca-

so com o algoritmo DES);

o Validar os sistemas particionados e replicados.

Propor diferentes configurações de pipelines para evitar ataques DPA;

o Validar os sistemas com contramedidas.

Desenvolver/adaptar o sistema de tratamento de dados realizado no escopo da cooperação do

laboratório LIRMM (Cooperação CAPES/COFECUB).

Avaliar a infra-estrutura proposta quanto aos custos em área, desempenho, consumo e segu-

rança;

O laboratório que o Autor pertence dispõe de recursos adequados para o desenvolvimento, avaliação

e prova deste trabalho, contando com computadores de alto desempenho, equipamentos de medição de alta

precisão tal como osciloscópio e sonda de corrente, além de softwares voltados para projetos de microeletrô-

nica e placas de prototipação. O fluxo de avaliação e tratamento de dados já está validado e trabalhos já pu-

blicados em conferências da área (SBCCI’08, Reconfig’08, DATE’09).

1.5 Originalidade

O uso do paradigma GALS permite o particionamento de um sistema em diferentes blocos funcionais,

Page 21: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

7

onde cada bloco tem sua freqüência de operação própria. GALS permite o empacotamento destes blocos de

modo a obter ilhas síncronas operando em suas freqüências máximas e comunicando-se de modo assíncrono,

visando criar sistemas com características de atraso de caso médio. Gürkaynak et al. em [GUR06] propuseram

o particionamento do algoritmo AES e sua implementação usando o paradigma GALS, visando melhorar a

robustez de criptosistemas a ataques DPA. Este projeto foi desenvolvido com tecnologia CMOS. Outras a-

bordagens tais como [HUI07][SAQ03] visam aumentar a vazão de dados criptografados ao projetar um pipe-

line com a replicação de sub-módulos do algoritmo de criptografia. Especificamente, Huiping et al. em

[HUI07] empregam um esquema de mascaramento de dados na função f do round1 do DES e usam um pipeli-

ne para acelerar o processamento de forma a compensar atrasos com a técnica adotada.

O presente trabalho tem como contribuição original a investigação de algoritmos que permitam a repli-

cação de sub-módulos com o intuito de formar pipelines de ilhas síncronas com diferentes domínios de reló-

gio sob o paradigma GALS de projeto. A infra-estrutura proposta evita a fuga de informações por reduzir a

relação sinal-ruído do consumo de potência tornando quase impraticável os ataques DPAs. O processamento

paralelo dos sub-módulos replicados em ilhas com domínios de freqüência aleatórias distingue esta proposta

de outros trabalhos propostos na literatura.

1.6 Organização do documento

O restante deste documento encontra-se organizado em sete capítulos. O segundo capítulo apresenta

ao leitor conceitos básicos de criptografia, bem como uma revisão sobre os tipos de ataques comumente apli-

cados sobre algoritmos de criptografia e criptosistemas. Neste Capítulo é apresentado o diagrama de blocos

do algoritmo DES, por se tratar do algoritmo alvo deste trabalho e um dois mais usados em criptosistemas. O

terceiro capítulo apresenta uma revisão de métodos propostos para imunizar criptosistemas contra ataques por

análise de potência. No quarto capítulo, são apresentados conceitos e a organização de interfaces GALS. No

quinto capítulo, são mostrados alguns experimentos realizados com a prototipação e avaliação da robustez de

uma biblioteca resistente a ataques DPA. No sexto capítulo a proposta de trabalho para o desenvolvimento da

tese é apresentada. No sétimo capítulo, o cronograma de atividades é apresentado, abordando os trabalhos já

desenvolvidos e propondo uma seqüência para aqueles ainda em desenvolvimento até a conclusão da tese. No

oitavo capítulo, apresenta-se conclusões parciais sobre o trabalho aqui descrito.

1 Conjunto de funções aritméticas e lógicas que são executadas repetidamente.

Page 22: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

8

Page 23: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

9

2. DEFINIÇÕES BÁSICAS E ESTUDO DE CASO

DE ALGORITMO DE CRITPTOGRAFIA

Utilizam-se aqui definições básicas de textos clássicos, tais como o livro de Schneier [SCH96]. Supor

que um emissor deseja enviar uma mensagem a um receptor. Supor também que o emissor deseja enviar a

mensagem de forma segura, tal que nenhum outro ente exceto o receptor possa ler a mensagem. O processo

de disfarçar uma mensagem para conseguir este intento é denominado de encriptação. O processo de obter a

mensagem original a partir da mensagem encriptada se denomina decriptação. Criptografia é a arte e a

ciência de manter mensagens seguras e ela é praticada por criptógrafos. Os criptoanalistas são os pratican-

tes da criptoanálise, a arte e a ciência de violar textos encriptados. Diz-se que um criptoanalista realiza um

ataque criptográfico quando este busca violar um texto encriptado. O ramo da matemática que inclui cripto-

grafia e criptoanálise é a criptologia, e seus praticantes são denominados criptologistas.

Este Capítulo explora alguns conceitos básicos relacionados à criptografia e criptoanálise.Explora-se

também um algoritmo de criptografia largamente utilizado, o Data Encription Standard (DES), e uma técnica

de ataque aplicada a este, a Differential Power Analysis (DPA).

2.1 Criptologia

A criptologia tem como objetivo a concepção e análise de mecanismos que permitem assegurar a inte-

gridade, autenticidade e a confidencialidade de dados em comunicações. A criptografia e a criptoanálise são

discutidas a seguir, respectivamente nas Seções 2.1.1 e 2.1.2.

2.1.1 Criptografia

A criptografia é a arte que se baseia no estudo de princípios e técnicas pelas quais mensagens podem

ser transformadas de sua forma original para outra ilegível de forma que possam ser conhecidas apenas pelos

entes comunicantes, emissor e receptor. A operação de transformar os símbolos que compõem uma mensa-

gem em uma sucessão distinta de símbolos aplicando cálculos de modo que o apenas o receptor das mensa-

gens, de posse de informação privilegiada, possa decifrá-las é a essência da encriptação. A criptografia é rea-

lizada geralmente com ajuda de uma chave criptográfica. Uma chave criptográfica é um conjunto de símbo-

los que permite ao receptor da mensagem aplicar o processo de decriptação a um texto encriptado e assim

obter a mensagem original. A chave é ou está intimamente relacionada com o conceito de senha, muito di-

fundido entre usuários finais de aplicações que empregam criptografia como forma de obter segurança na

comunicação de dados sensíveis. O objetivo principal de ataques criptográficos é descobrir chaves.

Durante vários anos, a criptografia estava exclusivamente reservada ao domínio militar e diplomático.

A literatura científica sobre este assunto ficou longo tempo abandonada. A primeira publicação fundamental

do domínio é de autoria de C. E. Shannon em 1949 [SHA49], que coloca as bases matemáticas de um sistema

de comunicação criptografado, a partir da definição de um novo modelo: a teoria da informação. Uma contri-

buição importante foi realizada em seguida por Feistel, com uma publicação no início da década de 70. Seus

trabalhos sobre esquemas de criptografia iterativa por blocos [FEI73], conduziram em 1977 à proposição do

algoritmo DES como padrão de criptografia com chave secreta.

Em outubro de 2000, foi proposto o algoritmo AES (do inglês, Advanced Encryption Standard) que

Page 24: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

10

opera com dados de 128 bits e permite utilizar chaves com tamanhos opcionais de 128, 192 e 256 bits visando

aumentar a robustez do algoritmo. Embora permita operar com dados e chaves maiores que o DES, o AES

contém caixas de substituições (em inglês, Substitution Boxs – S-BOXs) regulares, ou seja, 8 bits de entrada

e 8 bits de saída de dados. Já as S-BOXs do DES operam com 6 bits de entrada e 4 bits de saída, o que segun-

do Maurine [MAU08], acredita-se garantir maior robustez a ataques DPA.

O grande avanço da criptografia foi contudo incontestavelmente obtido por Diffie e Hellman em 1976

[DIF76]. Este trabalho introduz a concepção revolucionária da criptografia com chave pública. Os Autores

apresentam um protocolo no qual duas entidades podem adequar-se a uma chave secreta a partir do conheci-

mento prévio de dados públicos. A primeira realização de um sistema com chave pública foi proposto por

Rivest et al. em 1978 [RIV78] com o RSA. Desde então, a literatura sobre este assunto não parou de se de-

senvolver.

Recentemente, para fazer frente às novas tentativas de ataques induzidas pelo desenvolvimento de re-

des e da digitalização maciça de documentos, a criptografia oferece novas funcionalidades incluindo: (i) a

garantia de autenticidade das mensagens, realizadas por algoritmos de assinatura digital, e (ii) a certificação

de identidade de uma pessoa (técnicas de identificação).

De acordo com a forma de disponibilização de chaves, os algoritmos de criptografia podem ser classi-

ficados em duas categorias: os algoritmos com chave privada e os algoritmos com chave pública.

Os algoritmos com chave privada, também conhecidos como algoritmos simétricos, têm por princípio

a utilização de uma mesma chave para as operações de encriptação e decriptação de mensagens. Esta última

implica que as entidades que desejam se comunicar de maneira segura devem imperativamente trocar a chave

e este é o principal inconveniente desta classe de algoritmos. Dentre os algoritmos de criptografia com chave

privada, pode-se destacar o DES, o triplo DES (3-DES) e o AES.

Os algoritmos com chave pública, também conhecidos como algoritmos assimétricos, têm por princí-

pio a utilização de duas chaves: uma chave publicamente disponível para a encriptação e uma chave privada

para a decriptação. Assim, em um sistema de criptografia deste tipo, os usuários escolhem uma chave aleató-

ria que apenas eles devem conhecer (a chave privada). A partir desta chave eles inferem cada um automati-

camente um algoritmo, gerando uma chave pública. Em seguida, os usuários disponibilizam a chave pública

através decanais possivelmente não-seguros. Qualquer emissor pode assim criptografar mensagens com a

chave pública que somente poderão ser decriptadas pelo receptor, de posse de sua chave privada. A comuni-

cação bidirecional pressupõe então o uso de duas chaves públicas e duas chaves privadas, todas distintas. Este

tipo de algoritmo foi estabelecido inicialmente por Diffie e Hellman [DIF76], a fim de resolver o problema

ligado à transferência de chaves secretas. Dentre os algoritmos de criptografia com chave pública pode-se

destacar o RSA, o ElGamal e o DSA (em inglês, Digital Signature Algorithm).

2.1.2 Criptoanálise

A encriptação de mensagens via algoritmos de criptografia é necessária devido aos inúmeros meios

disponíveis hoje para quebrar o sigilo de mensagens. Uma tentativa de criptoanálise é comumente chamada

de ataque. O atacante pode empregar vários tipos de informações para ter êxito em sua análise. Dentre as

técnicas existentes é possível destacar essencialmente 4 tipos de ataques [SCH96].

Ataque apenas sobre o texto criptografado: O atacante dispõe de pouca informação, apenas uma ou

algumas mensagens criptografadas.

Ataque sobre o texto de entrada conhecido: O atacante dispõe de vários pares do tipo [mensagem

original - mensagem criptografada].

Page 25: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

11

Ataque sobre o texto de entrada escolhido: O atacante escolhe propriamente a mensagem a ser crip-

tografada. Os algoritmos de chave pública são um exemplo de ataque ao texto de entrada escolhido,

desde que o algoritmo usado seja público. Este é o tipo de ataque envolvido neste trabalho.

Ataque sobre texto criptografado escolhido: O próprio atacante escolhe a mensagem criptografada.

Uma vez de posse de todas estas mensagens, existem vários tipos de ataques contra sistemas criptográ-

ficos que podem ser reagrupados em duas grandes famílias, os ataques lógicos e os ataques físicos, detalhados

a seguir.

1.1.1.1. Ataques Criptográficos

Esta Seção apresenta uma classificação dos diferentes tipos de ataques possíveis de serem realizados

sobre criptosistemas. Inicialmente, revisam-se ataques lógicos, que exploram as vulnerabilidades matemáti-

cas dos algoritmos. Em seguida, revisam-se os ataques físicos, que exploram as vulnerabilidades físicas dos

circuitos de criptografia. Estes últimos motivam a realização do presente trabalho.

2.1.2.1.1 Ataques Lógicos

Dentre os ataques que exploram as vulnerabilidades matemáticas é possível dividi-los em dois grupos,

sendo eles lineares e diferenciais. Os ataques lineares propostos por Matsui em 1993 [MAT93] estudam as

relações estatísticas entre os bits de uma mensagem, os bits do criptograma correspondente e da chave utili-

zada na criptografia. Estas relações são usadas para obter uma expressão linear capaz de predizer valores dos

bits da chave quando muitas mensagens e os respectivos criptogramas são conhecidos. Aumentado o número

de pares mensagem-criptograma disponíveis, é possível melhorar a precisão da aproximação. Os algoritmos

de criptografia devem apresentar resistência a este tipo de ataque. O DES foi concebido para impedir este

método, porém as tabelas de substituição S-BOXs apresentam propriedades lineares, quando justamente fo-

ram projetadas e introduzidas para inserir uma não-linearidade ao algoritmo.

O ataque diferencial proposto por Bihan e Shamir [BIH90] baseia-se em ataque por texto de entrada

(mensagens) escolhidos, as quais são tomadas aos pares e cuja diferença entre os respectivos criptogramas é

analisada. Entende-se por diferença a operação de ou-exclusivo (XOR) entre dois criptogramas. A criptoaná-

lise é realizada sobre pares de criptogramas encriptados com a mesma chave e cujas mensagens correspon-

dentes possuem um certo valor particular de diferença. O efeito desta diferença é analisado através das n ite-

rações do algoritmo resultando em parâmetros que permitem inferir possíveis valores da chave utilizada no

processo de criptografia. Estes parâmetros são expressos analiticamente através de probabilidades, as quais

são usadas como indicadores para tomada de decisão de qual chave foi utilizada para cifrar a mensagem crip-

toanalisada. O método fornece como resultado um conjunto de probabilidades associadas respectivamente a

um conjunto de chaves. A decisão pela chave correta é feita escolhendo-se aquela cuja probabilidade é a de

maior valor.

2.1.2.1.2 Ataques Físicos

Os ataques físicos podem ser divididos em três grandes grupos segundo o acesso físico ao circuito. Os

ataques invasivos violam a integridade física do criptosistema, impossibilitando seu uso após o ataque. Os

ataques semi-invasivos são uma classe intermediária entre invasivos e não-invasivos, ou seja, o criptosistema

sofre uma ação física, porém seu funcionamento não é alterado. Os ataques não-invasivos operam por meio

da observação do sistema, que permite revelar elementos que comprometem a segurança do circuito.

Ataques invasivos são ataques geralmente conduzidos por peritos e exigem material específico. Este

tipo de ataque pode deteriorar ou mesmo destruir o sistema analisado. Para realizar o ataque é necessário

desmontar o circuito com ajuda de produtos químicos ou materiais sofisticados, a fim de isolar o componente

Page 26: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

12

eletrônico almejado. A partir disto, é possível realizar um ataque por sondagem ou um ataque por reconstru-

ção de leiaute.

Ataque por sondagem consiste em espionar a atividade elétrica do componente extraído do cir-

cuito, com a ajuda de uma sonda. Esta técnica permite recuperar os dados transitando dentro do

circuito, mas permite também impor valores lógicos em certos pontos deste. Pode-se imaginar

que com o controle do ambiente, o atacante pode estar medindo e deduzindo boa parte do se-

gredo do circuito criptográfico.

Ataques por reconstrução de leiaute (engenharia reversa): consistem em estudar o componente

eletrônico extraído, para determinar de maneira precisa a estrutura interna e assim deduzir seu

funcionamento. Para isto é necessário extrair as informações sobre o local exato de todos os

transistores e de todas as conexões, compondo a estrutura do sistema, a fim de reconstruir a to-

talidade do seu leiaute. Este ataque é muito raro, pois exige materiais sofisticados e tem alto

custo.

Os ataques semi-invasivos são particularmente recentes. Foram publicados pela primeira vez em 2002

por Skorobogatov e Anderson [SKO02]. Estes ataques precisam retirar o invólucro do circuito a fim de poder

se aproximar o máximo possível do chip sem deteriorar seu funcionamento. Este tipo de ataque tornou-se a-

traente por não precisar utilizar materiais de alto custo e permitir obter resultados relativamente rápidos. Den-

tre os ataques existentes destacam-se o ataque por injeção de falhas e os ataques por emissão eletromagnética.

Os ataques por injeção de falhas, introduzidos por Boneh et al. [BON97] em 1997, consistem

em gerar intencionalmente falhas no criptosistema a fim de obter comportamentos anormais,

estes podendo então ser explorados para revelar informações secretas. No entanto, estes ata-

ques precisam criar modelos de falhas, exigindo competências particulares e um conhecimento

detalhado da estrutura interna do circuito. Sua eficiência representa hoje um forte perigo para a

segurança dos criptosistemas.

Ataques eletromagnéticos consistem em revelar e analisar as emissões eletromagnéticas de um

circuito criptográfico. A maioria dos criptosistemas atuais é cadenciada por um sinal de relógio

que sincroniza a operação de todo o circuito. Todos sinais elétricos são decorrentes do movi-

mento de cargas elétricas provocado por forças elétricas. Este movimento de cargas produz

campos elétricos e magnéticos. Ciente de que estes sinais elétricos são fortemente dependentes

dos dados manipulados, uma análise minuciosa das emissões eletromagnéticas pode permitir

descobrir informações secretas contidas no dispositivo. Similar aos ataques por análise de con-

sumo de potência, dois métodos de análise destas emissões eletromagnéticas destacam-se: os

ataques por análise simples da emissão eletromagnética (em inglês, Simple ElectroMagnetic

Attack - SEMA) e ataques diferenciais de emissões eletromagnéticas (em inglês, Differential

ElectroMagnetic Attack - DEMA). Estes ataques pode ser classificados como semi-invasivos

caso ocorra o processo de retirada do invólucro do circuito, mas normalmente são considerados

não-invasivos.

Ataques não-invasivos, também conhecidos como ataques a canal escondido, não precisam acessar

diretamente o componente eletrônico. Remediar estes tipos de ataque é o alvo do presente trabalho. De fato,

estes ataques consistem em explorar os canais escondidos (tempo de cálculo, temperatura dos componentes,

etc.) ou os sinais físicos emitidos pela implementação em hardware dos algoritmos de criptografia durante os

cálculos criptográficos. Estes canais escondidos correlacionam-se com o estado interno do circuito, sendo

possível a partir deles extrair algumas informações secretas. Ataques não-invasivos se subdividem em dois

grandes grupos: ataques temporais e ataques por análise de potência e emissão eletromagnética.

Ataques temporais, propostos por Kocher em 1996 [KOC96] exploram a correlação entre os

dados processados e o tempo de cálculo durante as operações criptográficas, a fim de extrair

informações secretas. Algoritmos criptográficos têm tempos de cálculo dependentes dos dados

Page 27: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

13

e da chave secreta. Uma análise destes tempos pode permitir revelar o valor da chave secreta.

Ataques por análise de potência consistem em analisar a corrente e os dados manipulados em

um circuito a fim de extrair a chave criptográfica. Em função do método de análise, é possível

classificar os ataques em duas classes: ataques por análise simples de Potência (SPA) e ataques

por análise diferencial de Potência (DPA).

o Ataques por análise simples de potência [BIH99]: consistem em analisar os perfis de

corrente do circuito durante os cálculos criptográficos. Estes ataques permitem desco-

brir informações sobre o tipo de instrução em execução e ainda uma parte do valor da

chave secreta. No entanto, este ataque precisa ter um conhecimento do algoritmo crip-

tográfico, considerando ainda seu modo de implementação.

o Ataques por análise diferencial de potência [KOC99]: versão mais sofisticada e bem

mais potente do SPA. Este ataque não precisa do conhecimento particular da imple-

mentação do algoritmo considerado.Ele utiliza análise estatística para estabelecer uma

correlação entre o consumo e os dados processados. A análise estatística é capaz de

explorar as menores variações de consumo, o que simplifica a extração das informa-

ções sobre o valor da chave secreta. Atualmente, este tipo de ataque é considerado

muito perigoso pelos projetistas, pois é um ataque simples de aplicar e relativamente

eficaz.

Os princípios de ataques propostos para análise de potência são respectivamente usados em SEMA e

DEMA, diferenciando-se apenas pela grandeza física analisada, emissão eletromagnética ao invés de potên-

cia.

2.2 Algoritmo de Criptografia DES

A escolha por este algoritmo justifica-se pelo fato deste ter sido alvo dos estudos de Kocher [KOC99],

ser um algoritmo usado em smart cards e por apresentar uma estrutura que se enquadra aos objetivos do pre-

sente trabalho. Como este algoritmo servirá como estudo de caso a tese proposta, esta Seção discute detalhes

de sua concepção. A seguir detalha-se o funcionamento deste algoritmo, o que pode ser acompanhado a partir

do esquema geral na Figura 2.1 e do detalhamento de um round de execução, na Figura 2.2. As Tabelas des-

crevendo as permutações, funções de substituição, expansão e redução estão completamente descritas no A-

nexo 1.

Como já mencionado, o DES é um algoritmo de criptografia simétrico que pressupõe a manipulação de

dados de uma mensagem a criptografar em blocos de 64 bits. O algoritmo usa uma chave criptográfica tam-

bém de 64 bits, onde 8 destes são usados para verificar a paridade da chave e os 56 bits restantes são usados

efetivamente no processamento criptográfico. Deste modo podem existir 256

(ou seja, ~7.2*1016

) chaves dife-

rentes. O algoritmo consiste em efetuar combinações, substituições e permutações sobre o conteúdo da men-

sagem a ser criptografada. O DES foi concebido com base na estrutura mostrada na Figura 2.2 inicialmente

proposta por Feistel [FEI73].

Primeiramente, como mostra a Figura 2.1, o texto original é dividido em blocos de 64 bits. Cada um

destes blocos será encriptado segundo o mesmo método: permutação inicial dos 64 bits conforme a Matriz de

Permutação Inicial (PI-1) descrita no Anexo 1, seguido de 16 rodadas de modificações, nas quais o bloco de

64 bits inicialmente é dividido em 2 blocos de 32 bits (os Ri e Li na Figura 2.1 e na Figura 2.2), para em se-

guida passar por etapas de expansão, substituição e permutação, que geram novos Ri e Li. Para finalizar, rea-

liza-se o reagrupamento dos 2 blocos de 32 bits usando uma permutação inversa final, detalhada no Anexo 1.

Page 28: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

14

Figura 2.1 - Funcionamento global do algoritmo DES + detalhes de um Round.

Figura 2.2 - Detalhes do funcionamento de um Round.

No interior de cada round detalhado na Figura 2.2, o bloco de 32 bits Li passa por uma etapa chamada

expansão (E), onde o objetivo é agregar 16 bits a Li, a fim de obter um novo bloco com 48 bits que irá se aco-

plar a uma sub-chave (gerada a partir da chave original). A partir daí (ver lado esquerdo da Figura 2.2), o blo-

co será dividido em 8 partes de 6 bits. Cada uma destas partes passará por uma S-BOX, onde cada parte será

transformada segundo uma das Tabelas de Substituição (ver Anexo 1), em um vetor de 4 bits (realizando as-

sim uma compressão de 48 para 32 bits). Depois, estes vetores serão agrupados em um bloco de 32 bits, que

passará pela Permutação Final (ver Anexo 1). Ao final, é possível constatar que a única incógnita no sistema

são as sub-chaves Ki. É importante saber que, para restaurar a integridade da chave de encriptação do DES, é

preciso ao menos descobrir as sub-chaves. As sub-chaves em questão referem-se às dos dois primeiros

rounds, se é conhecido o texto de entrada, ou às sub-chaves dos dois últimos rounds, se é conhecido o texto

criptografado [STI01]. Aqui, a parte mais sensível do algoritmo DES se encontra no nível da S-BOX imedia-

tamente depois da operação entre a mensagem e da sub-chave.

Page 29: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

15

Esta descrição do DES é apenas um esboço. Uma descrição completa encontra-se em [SCH06].

2.3 Ataques por Análise Diferencial de Potência

Os ataques por análise diferencial de potência consistem em estudar as correntes e tensões de entrada e

saída de um circuito, visando descobrir informações secretas tais como a chave criptográfica. Algumas opera-

ções aumentam o consumo elétrico do circuito, principalmente pela utilização de outros componentes analó-

gicos ou lógicos. Esta análise de variações e de picos permite extrair informações preciosas para o atacante.

Primeiramente aborda-se o funcionamento dos ataques e logo em seguida o princípio do ataque DPA.

2.3.1 Funcionamento dos Ataques

Atualmente a maioria dos criptosistemas é baseada em tecnologia CMOS. As características desta tec-

nologia fazem com que o consumo correspondente a uma transição [10] seja mais importante que a corres-

pondente transição [01]. Por outro lado, a ausência de transições [11] e [00] não geram consumo de

potência. A partir deste fato, o consumo de um circuito CMOS é proporcional ao número de transições

[01]. Todas as transições têm um consumo de energia que os caracteriza. Este é o princípio utilizado pelo

ataque DPA para descobrir a chave secreta. Como exemplo, a Figura 2.3 apresenta uma porta NOR.

Figura 2.3 – Porta NOR representada em nível de transisto-

res à esquerda. À direita sua representação lógica.

Nesta Figura considere-se que a entrada A corresponde à mensagem e que a entrada B corresponde à

chave. A Tabela 2.1 apresenta os estados de consumo de uma porta NOR em função dos valores dos bits de

entrada.

Tabela 2.1 Tabela de estados de consumo

de uma porta NOR2. Entenda consumo po-

sitivo, quando exista uma corrente de carga

capacitiva e consumo negativo quando e-

xista corrente de descarga capacitiva.

Chave Mensagem Consumo

0 - 0

0 - 0 Nenhum consumo

0 - 1 Consumo negativo

Page 30: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

16

1 - 0 Consumo positivo

1 - 1 Nenhum consumo

0 - 1

0 - 0 Consumo negativo

0 - 1 Consumo positivo

1 - 0 Nenhum consumo

1 - 1 Consumo positivo

1 – 0

0 - 0 Consumo positivo

0 - 1 Nenhum consumo

1 - 0 Consumo negativo

1 - 1 Consumo negativo

1 - 1

0 - 0 Nenhum consumo

0 - 1 Consumo positivo

1 - 0 Consumo negativo

1 - 1 Nenhum consumo

A partir desta tabela é possível constatar que a porta consome quando a mensagem é constante e a cha-

ve varia, quando a mensagem e a chave variam simultaneamente em um mesmo sentido, e ainda, se a mensa-

gem varia e a chave permanece constante. Adicionalmente, quando a chave é constante e a mensagem varia

de [10] existe um consumo positivo e o inverso vale para uma variação da mensagem [10]. A partir daí, é

possível concluir que fundamentalmente os ataques por análise de consumo avaliam a dependência entre os

dados manipulados e os perfis de corrente.

1.1.1.2. Princípio de Ataques DPA

Globalmente, o princípio do ataque DPA é eliminar toda informação inútil (ruído de medições, consu-

mo de zonas que não fazem parte do criptosistema, etc.) e amplificar a correlação com os dados secretos. Os

ataques são desenvolvidos em duas etapas: a coleta de dados e o tratamento dos dados. A Figura 2.4 detalha

como ocorrem tais ataques.

Page 31: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

17

Figura 2.4 - Decomposição de um ataque DPA.

A etapa de coleta consiste em registrar os pares dado criptografado ou criptograma e seu consumo de

potência, ou seja, registrar o perfil de consumo de potência do criptosistema durante a encriptação de cada

mensagem de entrada. Esta medida global corresponde a uma medida de integralidade de corrente consumida

pelo sistema para produzir o criptograma observado. É necessário observar um número relativamente grande,

tipicamente vários milhares de criptogramas. Após obter estes pares (criptograma-consumação), não é neces-

sário ter acesso ao sistema de criptografia.

A etapa de tratamento de dados consiste em uma análise estatística do consumo medido durante os cál-

culos criptográficos. Estas medidas são necessárias para se poder efetuar uma hipótese sobre uma parte signi-

ficativa da chave (6 bits da chave, por exemplo no caso de uma S-BOX do DES). Sistemas de criptografia por

blocos, como o DES, se livram particularmente bem deste tipo de análise. Concentra-se aqui atenção sobre o

dispositivo representado na Figura 2.5, que representa parte do algoritmo DES apresentado anteriormente.

Esta parte é composta de uma mensagem de entrada de 6 bits, adicionada a uma chave de mesmo tamanho por

meio de uma função XOR, realizando uma substituição e redução sobre estes 6 bits a fim de obter uma men-

sagem cifrada de 4 bits (saída da S-BOX).

Figura 2.5 - Esquema simplificado do algoritmo DES utilizado como alvo

do ataque.

O ataque consiste em estudar separadamente os 64 valores para as sub-chaves de 6 bits. Para cada cha-

ve, é preciso efetuar uma simulação que permita obter todos os valores de mensagens cifradas na saída do

bloco. Os pares (criptograma-consumo) são repartidos em dois grupos, segundo uma função seleção. Neste

caso, por exemplo, efetuam-se ataques sobre o bit menos significativo da mensagem cifrada. A função de se-

leção agrupa os pares que correspondem ao bit menos significativo, valendo 1 em um mesmo grupo e os pares

Page 32: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

18

que correspondem ao bit menos significativo valendo 0 em outro grupo.

Para cada chave, têm-se dois conjuntos bem diferentes, sendo possível calcular a média dos perfis para

o conjunto de 1s, e a média para o conjunto de 0s. Em seguida determina-se a diferença entre estas duas mé-

dias. A partir disto, obtém-se uma diferença das médias para cada uma das 64 chaves. Se a hipótese sobre a

sub-chave é boa, a curva resultante da diferença de médias apresenta valores maiores em relação às outras

hipóteses, caso contrario as médias se anulam e a curva resulta apenas em ruídos insignificantes. A Figura 2.6

apresenta um resumo sobre o processo de tratamento de dados durante o ataque DPA. Ao final obtém-se um

lote de 64 curvas DPA, correspondendo a 64 hipóteses de chaves. A curva mais distante da média correspon-

derá à boa hipótese, conforme mostrado na Figura 2.7.

Figura 2.6 – Estrutura em blocos das etapas de uma análise diferencial de potên-

cia realizada sobre a S-BOX do DES, conforme proposto por Kocher [KOC99].

A análise pode evidentemente ser feita sobre qualquer bit da mensagem cifrada, ou ainda, os ataques

podem ser executados sobre grupos de dois, três ou mesmo sobre os quatro bits simultaneamente. Uma vez

determinada a sub-chave de 6 bits, é possível determinar o restante da chave por recorrência, inferindo logi-

camente sobre o penúltimo round, depois inferindo sobre o round precedente e assim sucessivamente. O ata-

que pode também ser efetuado sobre o primeiro round do DES, caso exista acesso à mensagem de entrada.

Figura 2.7 - Exemplo de curvas DPA obtidas ao final do tra-

tamento dos dados.

Page 33: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

19

3. PROPOSTAS DE CONTRAMEDIDAS A SCA

Na literatura encontram-se várias propostas para contramedir os ataques por análise do consumo de

potência de criptosistemas. Estas propostas podem ser agrupadas basicamente em três grupos de acordo com a

abordagem usada para imunização. A primeira abordagem consiste em introduzir ruído nas medidas de con-

sumo. A idéia básica é reduzir a relação sinal-ruído de modo a impossibilitar ou praticamente inviabilizar ten-

tativas de correlacionar o consumo do criptosistema com os dados processados. Uma segunda abordagem

consiste em mascarar os dados processados e assim inviabilizar a realização de análises de correlação. Final-

mente, a terceira abordagem concentra esforços para obter um consumo de potência equilibrado ou uniforme

para qualquer seqüência de valores de dados de entrada.

No restante deste Capítulo é apresentada uma revisão de propostas subdivididas de acordo com o tipo

de abordagem usada para a imunizar criptosistemas contra ataques DPA.

3.1 Métodos por Mascaramento de Dados

Os métodos de mascaramento consistem em ocultar os dados manipulados de tal forma que não seja

possível estabelecer correlações com a corrente consumida. Esta técnica não se aplica diretamente sobre o

perfil de corrente, mas sobre os dados manipulados no cálculo criptográfico. A seguir são mostrados diferen-

tes propostas para mascaramento de dados.

Huiping et al. [HUI07] propuseram um método para mascaramento de dados no algoritmo DES. Os

Autores introduzem ao algoritmo operações lógicas e aritméticas (Xor e soma) realizadas entre dados e núme-

ros gerados aleatoriamente para produzir o mascaramento de dados em duas partes do algoritmo. Estas opera-

ções são realizadas na função ƒ do round no momento da entrada da sub-chave e antes da execução das S-

BOXs, conforme mostrado na Figura 3.1. Para aumentar o desempenho do algoritmo é implementado um pi-

peline com a replicação dos rounds do algoritmo. Os Autores propõem 4 configurações diferentes de pipeli-

nes com o DES, de modo a analisar o desempenho do processamento. A partir dos resultados obtidos conclu-

em que o pipeline com 16 estágios (um round para cada estágio) obtém o melhor desempenho, porém o maior

custo em área. O circuito é implementado com tecnologia CMOS 0,25µm e possibilita operações em freqüên-

cias de até 100 MHz, atendendo a exigências de projeto de smart cards.

Page 34: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

20

Figura 3.1 Diagrama em blocos de uma fun-

ção f do round do algoritmo DES. Os autores

propõem a inserção de circuitos para mascarar

dados antes do processamento de partes vulne-

ráveis da função (Xor e S-BOXs). Um gerador

de números aleatórios é inserido no round para

alimentar os circuitos propostos.

Pramstaller et al. em [PRA04] analisam três propostas para mascarar dados no algoritmo AES. O

principal desafio encontrado é evitar a fuga de informações na operação SubBytes (16 S-BOXs paralelos) do

round AES. SubBytes realiza uma transformação também conhecida como Inversão de byte, com base em

operações de campo de Galois (em inglês, Galois Field - GF). O trabalho proposto por Akkar [AKK01] reali-

za uma operação de soma de 128 bits entre dado e máscara (um número gerado aleatoriamente), operação

definida como máscara aditiva. A máscara aditiva é removida antes da função “Inversão de Bytes” e substitu-

ída por uma máscara multiplicativa (operação de multiplicação envolvendo dado e a uma nova máscara) tam-

bém de 128 bits. Após Inversão de byte, a máscara multiplicativa é removida e a máscara aditiva é re-

introduzida. Este método introduz significante custo em área, pois é necessário gerar duas máscaras randômi-

cas por operação de encriptação/decriptação. Este método é vulnerável aos ataques conhecidos como Valor

Zero. Estes ataques exploram um caso específico onde os valores parciais do dado e da chave são iguais

[GOL02]. Na proposta de Trichina [TRI03], a máscara aditiva é reusada, excluindo o uso da máscara multi-

plicativa. Isto consideravelmente reduz o custo de cálculo. Entretanto, uma nova máscara é exigida para cada

operação do round para garantir que a máscara não seja zero. Por outro lado, isto não soluciona o problema

do valor zero. A terceira proposta é denominada de IAIKI pelos Autores [PRA04]. Este método não remove a

máscara aditiva antes da função Inversão de Byte. A saída de Inversão de Byte é portanto (Dado + Máscara)-1

.

O método IAIKI obtém o resultado esperado (Dado-1

+ Máscara) por calcular termos de correção em paralelo.

Aritmética de GF é usada extensivamente nesta abordagem e a Inversão de Byte em GF(28) é primeiro mape-

ada para GF(24) e novamente para GF(2

2). Neste campo, inversão pode ser computada efetivamente. A abor-

dagem IAIKI é a única imune a ataques por Valor Zero. Um criptosistema foi desenvolvido com tecnologia

CMOS de 0,25µm empregando o algoritmo AES com a abordagem IAIKI. O custo para se obter uma maior

resistência a ataques DPA foi a redução entre 40 e 50% de desempenho devido a inserção dos métodos de

segurança.

Ordu e Örs em [ORD07] são os primeiros a apresentarem a implementação em FPGA do algoritmo

AES usando métodos para mascarar dados. Os autores propõem dois diferentes métodos, mascaramento aditi-

vo de IAIKI [OSW05] e mascaramento multiplicativo de Akkar [AKK01]. Os autores realizaram três imple-

mentações do algoritmo AES: (i) sem contramedidas; (ii) AES com método de Akkar e; (iii) AES com méto-

do de IAIKI. Comparações segundo custos em área e desempenho foram realizados no dispositivo FPGA Vir-

Page 35: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

21

tex-E 1000 da Xilinx. Os resultados indicam que a implementação utilizando o método IAIKI apresentou me-

nor custo em área e menor período de relógio em relação ao método proposto por Akkar.

Ghosh et al. em [GHO07] são motivados pelo fato de que os circuitos de mascaramento usados para

evitar fuga de informações em S-BOXs do algoritmo AES apresentam vulnerabilidades devido à ocorrência

de glitchs. Assim, propuseram um método de mascaramento para circuitos multiplicadores do S-BOX AES.

Neste método as entradas dos multiplicadores são sincronizadas por componentes seqüenciais ou portas lógi-

cas And controladas visando evitar a fuga de informações. Este trabalho destaca que a principal desvantagem

das arquiteturas de mascaramento anteriormente propostas é a comutação desbalanceada dos circuitos. A pro-

pagação dos sinais de entrada através de caminhos com diferentes comprimentos faz com que as portas lógi-

cas “Xors” realizem operações bit a bit em diferentes tempos. Isto provoca glitchs internos que são responsá-

veis por fuga de informações. A arquitetura proposta possui dois propósitos: reduzir os glitchs internos do

circuito e reduzir o atraso no pior caso. Duas abordagens de implementação da arquitetura foram propostas. A

primeira é uma estrutura em pipeline de dois estágios baseada na aplicação de elementos seqüenciais para

sincronizar sinais diferentes. Na segunda abordagem, os autores introduziram elementos combinacionais ex-

tras para sincronizar as entradas de modo a terem mesmo tempo de propagação. Em ambas as abordagens os

autores organizaram as Xors internas em uma estrutura balanceada para garantir que as entradas de cada porta

comutem uma vez a cada ciclo de relógio. Simulações SPICE confirmam que as modificações previnem o

algoritmo aos ataques DPA.

Haijun et al. em [HAI07] os autores analisaram várias contramedidas aos ataques DPA e concluiram

que o método de mascaramento único1 (em inglês, Unique Masking Method - UMM) não é eficiente para pro-

teger criptosistemas aos ataques DPA de alta ordem. Os autores apresentam um novo método de proteção ba-

seado em circuitos diferenciais e dinâmicos (SDDL) propostos em [TIR04]. Em um estudo de caso usando o

algoritmo DES, o método propõe implementar em lógica SDDL os dois primeiros e dois últimos rounds do

algoritmo e manter o mascaramento UMM nos rounds restantes, 3 a 14, visando aumentar a resistência a ata-

ques DPA. Os resultados demonstram que o método proposto aumenta a robustez de UMM aos ataques DPA

de alta ordem ao custo de um aumento de 29,3% no consumo de potência em relação à implementação do

algoritmo sem contramedidas.

Popp e Mangard em [POP06] propõem o desenvolvimento de um novo estilo lógico para a concepção

de criptosistemas resistentes a ataques DPA aplicando o mascaramento de dados em nível de portas lógicas.

O estilo denominado pelos autores de Lógica Pré-Carregada com Trilha Dupla Mascarada (em inglês, Masked

Dual Rail Pre-charge Logic - MDPL) permite ao criptosistema um consumo de corrente aleatório, tendo co-

mo principal benefício à não necessidade de balancear o circuito complementado. A idéia básica do masca-

ramento é tornar aleatório cada resultado intermediário de um circuito ou algoritmo aplicando a equação (dm

= d xor m), onde respectivamente dm é o dado mascarado, d o dado propriamente e m uma máscara aleatória.

Os experimentos realizados mostram elevados custos de potência e área comparados a circuitos projetados

em lógica CMOS tradicional. Motivados por estes resultados os autores adicionam técnicas de redução de

potência aos circuitos MDPL. Durante o período que os circuitos não desempenham operações consideradas

críticas ao ataques DPA, estas técnicas reduzem em torno de 4 vezes o consumo de potência em relação ao

circuito CMOS tradicional.

Ghellar e Lubaszewski em [GHE08] propuseram uma nova implementação do algoritmo criptográfi-

co AES para resistir a ataques DPA. O método proposto pelos Autores visa mascarar os dados com base em

propriedades da álgebra Galois Field - GF, mais precisamente em GF(2). Resumidamente, esta álgebra possui

elementos representados por dois algarismos (0 e 1), permite apenas duas operações binárias (soma e multi-

plicação) e, para o caso específico GF(28), contém 256 elementos. Uma propriedade desta álgebra é o fato de

que campos GF(n) com mesmo número de elementos são isomórficos entre si, ou seja, matematicamente os

1 O UMM tem como objetivo oferecer proteção aos ataques DPA de qualquer ordem. Este método tem dois princípios: (i) mascarar

apenas os valores que dependem de menos de 32 bits da chave criptográfica; (ii) variáveis independentes intermediárias dependentes

de menos de 32 bits da chave criptográfica devem ser mascaradas por valor distintos para evitar ataques DPAs de alta ordem.

Page 36: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

22

campos são os mesmos, porém com representações diferentes. Deste modo, o mascaramento de dados é reali-

zado através da definição de uma função de mapeamento para converter as representações existentes em mó-

dulos do round AES. Como vantagem do método destaca-se um aumento pelo fator de 240 na complexidade

dos ataques. Em contrapartida, o hardware adicional aumenta 295% em área e reduz a freqüência de operação

em 60% em relação ao algoritmo original.

3.1.1 Comparações entre propostas

Tabela 3.1 Resumo de propostas que visam descorrelacionar dados por mascarar dados.

Algoritmo Método Custos Tecnologia

Huiping et al.

[HUI07] DES Operações (+ e x) Área CMOS 0,25µm

Pramstaller et al.

[PRA04] AES

Operações

(+ e mapeamento GF) Latência CMOS 0,25µm

Ordu e Örs

[ORD07] AES

Operações

(+ e mapeamento GF) Latência FPGA

Ghosh et al.

[GHO07] AES Circuitos balanceados - CMOS 0,65µm

Haijun et al.

[HAI07] DES Usa SDDL e UMM Área CMOS 0,25µm

Popp e Mangard

[POP06] AES

Lógica geradora de

ruído Potência CMOS

Ghellar e Lubaszewski

[GHE08] AES Mapeamento de

campos GF(2)

Área e

Latência CMOS

Ao analisar as propostas resumidas na Tabela 3.1 é possível concluir que o uso de mascaramento em

nível algorítmico causa um considerável aumento na latência de processamento, sofrendo também penalida-

des quanto ao consumo de potência e área. O uso desta contramedida em nível de circuito também eleva os

custos em área e no tempo de execução. A exceção é possível citar [POP06]. Apesar da lógica proposta impor

um aumento considerável no consumo de potência, os autores conseguem adaptar estratégias que reduzem

substancialmente o consumo de potência do circuito.

3.2 Método por Injeção de Ruído

A introdução de ruído tem por objetivo tornar o consumo completamente inexplorável por ataques de

consumo de potência, conforme proposto em [DAE99]. O ruído pode ser introduzido com a ajuda de um ge-

rador de jitter sobre o sinal de alimentação ou ainda sobre o sinal de relógio do sistema. Outra forma de gerar

ruídos seria a utilização de um gerador de números aleatórios, de modo a realizar a execução aleatória de ins-

truções de escrita e leitura em registradores, sem perturbar o resultado das operações criptográficas [MUL01].

Os métodos por introdução de ruído atuam sobre o perfil de corrente dos criptosistemas ou, mais espe-

cificamente, sobre suas amplitudes de perfil de corrente. Por exemplo, tornando a ocorrência de dados aleató-

Page 37: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

23

ria, reduz-se o número de portas comutando a cada instante. Naturalmente, isto tem por conseqüência reduzir

a amplitude da corrente a cada instante. Em termos de segurança, a introdução de ruído permite reduzir a re-

lação sinal-ruído aumentando a complexidade das análises de correlação. Isto tem como conseqüência tornar

ataques DPA mais complexos. Por outro lado, este tipo de contramedida dificulta a sincronização das aquisi-

ções e o tratamento dos perfis de consumo. A seguir algumas propostas que empregam o uso de operações

aleatórias para contramedir os ataques DPA.

Benini et al. em [BEN03] propuseram uma combinação de técnicas de redução de potência e de con-

trole aleatório da ativação do sinal de relógio visando introduzir uma aleatoriedade significante no perfil de

potência sem aumentar e, em alguns casos até reduzindo, o consumo de potência de sistemas. Deste modo a

técnica introduz ruído ao processamento determinístico de operações criptográficas. A maior contribuição dos

autores é não aumentar o consumo de potência com o uso da técnica. Esta abordagem reduz o consumo de

potência se comparada com uma implementação inicial. A idéia básica é oferecer um conjunto de primitivas

de hardware (macros) que podem ser instanciadas pelos projetistas em muitos algoritmos. Adicionalmente é

permitido ao projetista reduzir o consumo de potência de um modo controlado em tempo de projeto. Isto é

uma característica desejável, pois encriptação e decriptação são freqüentemente exigidas em ambientes com

restrições de potência.

Mesquita et al. em [MES06] propuseram o projeto de um criptosistema sob uma arquitetura reconfi-

gurável de modo a mascarar seu consumo de potência. Os autores exploram funções modulares de cálculo do

algoritmo RSA. Este algoritmo basicamente divide seu processamento em operações de multiplicação e ex-

ponenciação. Os autores propõem o uso da multiplicação modular proposta por Montgomery que permite o

uso do sistema numérico residual (em inglês, Residue Number System - RNS) baseado no teorema chinês do

resto (em inglês, Chinese Remainder Theorem - CRT). Deste modo, o módulo de multiplicação é capaz de

realizar cálculos em diferentes bases numéricas. Isto produz um mascaramento dos dados processados e con-

seqüentemente o descorrelacionamento com o consumo de potência. A arquitetura proposta denominada de

Arquitetura Reconfigurável Resistente a Fuga (do inglês, Leak Resistant Reconfigurable Architecture –

LR2A) permite que em tempo de execução o módulo de multiplicação tenha sua base alterada aleatoriamente.

Mesmo sofrendo penalidades com custo em área, a arquitetura proposta apresenta um bom desempenho com

relação as criptosistemas existentes.

Ciet et al. em [CIE03] propuseram o desenvolvimento de um criptosistema tomando como base o al-

goritmo RSA. Para imunizar o criptosistema a ataques DPA, os autores empregam o algoritmo de multiplica-

ção de Montgomery que permite cálculos em diferentes bases numéricas usando como recurso os números

RNS, tal como realizado posteriormente em [MES06]. A arquitetura proposta replica o módulo de multiplica-

ção de 16 bits de largura de dados de modo a evitar perdas em desempenho. Diferentes estratégias de controle

são aplicadas de modo a ter operações de 512 bits. O processamento paralelo e o uso de diferentes bases nu-

méricas para realizar a multiplicação contribuem para descorrelacionar o consumo de potência com o dados

processados. A arquitetura é validada em FPGA e os resultados mostram uma promissora eficiência, obtendo

tempos de processamento inferiores a 150 ms para uma chave de 1024 bits e com área adicional competitiva a

outras contramedidas.

Yang et al. em [YAN05] apresentam uma nova abordagem contra ataques DPA, baseada no chavea-

mento aleatório de freqüência e tensão de alimentação (em inglês, Dynamic Voltage and Frequency Switching

- DVFS). Os autores reutilizam uma estrutura proposta originalmente para redução do consumo de energia em

sistemas intrachip para descorrelacionar o consumo de potência dos dados processados. Os autores propõem

3 estratégias de controle diferentes para descorrelacionar o consumo de potência. As estratégias são classifi-

cadas pelos autores de acordo com seu nível de imunidade, sendo elas ingênua (naive), melhorada (improved)

e avançada (advanced). As duas primeiras aumentam a robustez, porém ainda apresentam vulnerabilidades. A

terceira revelou-se uma eficiente estratégia para bloquear ataques SPA e DPA. Os resultados mostram que os

perfis de potência apresentam níveis de aleatoriedade suficiente para prevenir a fuga de informações. Além

disso, o consumo médio de energia é reduzido em 27% na implementação do algoritmo DES. Por outro lado,

o criptosistema sofre um aumento de 16% em seu tempo de execução em relação à implementação original.

Page 38: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

24

Baddam e Zwolinski em [BAD07] apresentam uma análise e discussão sobre o uso de chaveamento

aleatório de freqüência e tensão (em inglês, Random Dynamic Voltage and Frequency Scaling - RDVFS) co-

mo contramedida aos ataques DPA. Os autores mostram que a partir da análise do perfil de corrente é possí-

vel medir a freqüência de operação e/ou o par (tensão e freqüência) durante o processo de criptografia. Os

autores propõem um método que emprega apenas chaveamento aleatório de tensão e mantém constante a fre-

qüência de operação do circuito. Os resultados comprovam a eficiência do método a ataques DPA e destacam

como vantagem o fato de não exigir mudanças na lógica e/ou fluxo de projeto, bem como não implicar em

significantes custos adicionais de área, desempenho e consumo de potência. A principal restrição da proposta

é não permitir ao atacante acessar a conexão entre o gerador de números randômicos e o controlador de vol-

tagem. Caso isso aconteça, o sistema perderia sua aleatoriedade e se tornaria vulnerável a ataques DPA. Outra

restrição do método é que a taxa de mudança de voltagem seja menor que o tempo para processar o número

de entradas mínimo de modo a evitar um ataque DPA. Se a taxa é muito próxima ao número mínimo o atacan-

te poderia implementar um ataque bem sucedido antes da aleatoriedade ser introduzida.

Bucci et al. em [BUC05] propuseram uma nova contramedida a ataques DPA baseada na inserção de

dispositivos de atraso no caminho de dados de criptosistemas. Inicialmente, cada dispositivo é composto por

um flip-flop do tipo D (FFD), uma cadeia com n elementos de atraso em série (sendo n o número de elemen-

tos) e um multiplexador (MUX). Um circuito de controle aleatoriamente deve selecionar entre a saída direta

do FFD ou a saída do FFD através da cadeia de atraso. O dispositivo proposto pode ainda ser estendido para

2m possibilidades de cadeias de atraso (sendo m o número de cadeias), de modo a aumentar a aleatoriedade,

mas por outro lado, aumentar o hardware adicional. Este dispositivo é inserida em cada bit que compõe o ca-

minho de dados do criptosistema visando aleatorizar o consumo de potência e assim reduzir a correlação en-

tre dado processado e potência consumida. Estudos de caso foram realizados com um S-BOX do algoritmo

AES, usando tecnologia CMOS 0,18µm. Os resultados foram obtidos por simulação usando a ferramenta Na-

nosim da Synopsys. Como vantagens do método, destaca-se o uso de um fluxo de projeto padrão e a não in-

terferência na árvore de relógio do circuito. Como desvantagem destaca-se a excessiva área adicional ao cir-

cuito. Além disso, a inserção de atrasos aumenta a latência de processamento no criptosistema.

Gürkaynak et al. em [GUR06] apresentam desafios e experiências de projeto com o paradigma GALS

tomando como estudo de caso o algoritmo criptográfico AES. Os autores propuseram o uso do paradigma

GALS para aumentar a robustez de um criptosistema a ataques por consumo de potência. O paradigma GALS

oferece aos projetistas recursos adicionais para implementar contramedidas a DPA. Para demonstrar isto, os

autores desenvolveram o criptosistema chamado Acácia. A Acácia, mostrada na Figura 3.2, implementa o

algoritmo AES que basicamente executa sucessivamente um round composto por 4 blocos funcionais: Ad-

droundKey, S-BOX, ShiftRows e MixColumns. A Acácia é subdividida em um modulo chamado Goliath

composto por um caminho de dados de 128 bits e um gerador aleatório de chaves criptográficas. Dois outros

módulos menores chamados de David completam o criptosistema. Estes módulos são equipados com caminho

de dados de 32 bits e realizam as operações S-BOXs e Mixcolumns do round do AES. A Acácia é equipada

com várias camadas de contramedidas a ataques DPA. São elas: (i) operações com dados falsos; (ii) David

contém dois operadores S-BOX de 8 bits. Para executar a operação MixColumns são necessários 4 S-BOXs.

David escalona estas 4 operações aleatoriamente de forma que em um dado ciclo de relógio, todos, apenas

um, ou nenhum dos S-BOXs podem processar dados reais enquanto o caminho de dados esteja com dados

falsos. (iii) para cada round do AES, o resultado de 4 operações MixColumns é necessário. (iv) todos os três

caminhos de dados são implementados em módulos GALS com geradores de relógio próprios. (v) os módulos

GALS usam geradores de relógio que podem estender pulsos de relógio a cada ciclo. Com a combinação de

todas as contramedidas listadas os autores esperam oferecer um maior desafio aos atacantes que usam técni-

cas de analise de consumo de potência.

Page 39: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

25

Figura 3.2 Estrutura GALS da arquitetura Acácia proposta em [GUR06]. A Acá-

cia é composta pelo modulo Goliath que executa operações com 128 bits e por

dois módulos David com funções de 32 bits.

3.2.1 Comparações entre propostas

Tabela 3.2 Resumo de propostas que visam descorrelacionar dados por aleatorizar o consumo de

potência.

Algoritmo Método Custos Tecnologia

Benini et al.

[BEN03] RSA Ativação do relógio

Baixo ou redução

de potência CMOS 0,18μm

Mesquita et al.

[MES06] RSA

Reconfiguração modu-

lar de bases numéricas Alto custo em área FPGA

Ciet et al.

[CIE03] RSA

Replicação e proces-

samento paralelo

Área e desempenho

compatíveis FPGA

Yang et al.

[YAN05] DES DVFS

Redução de potên-

cia e desempenho CMOS

Baddam e Zwolinski

[BAD07] AES DVS Baixo em potência CMOS

Bucci et al.

[BUC05] AES

Atrasos no caminho de

dados Alto custo em área CMOS 0,18µm

Gürkaynak et al.

[GUR06] AES

Dados falsos e chave-

amento de módulos Alto custo em área CMOS 0,25µm

Page 40: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

26

Conforme a revisão das propostas resumidas na Tabela 3.2 é possível afirmar que esta abordagem é

dependente da capacidade de embaralhamento de informações do método. Quanto maior for à aleatoriedade

inserida no sistema melhor será a eficiência do método. A necessidade de inserção de dispositivos que produ-

zam um aumento da aleatoriedade do consumo exige um aumento em área e conseqüentemente um aumento

no consumo de potência do sistema. Observa-se ainda que esta técnica pode ser desenvolvida hibridamente

em hardware e software. Em [YAN05] os Autores usam uma estrutura de hardware para efetivamente atuar

no escalonamento de freqüência e tensão, porém o gerenciamento é executado em software sob um processa-

dor de propósito geral.

3.3 Método por Uniformização do Consumo de Potência

Este método tem por objetivo suprimir as assimetrias observadas nos processos de carga e descarga

capacitivas em uma porta lógica CMOS típica. Conforme discutido anteriormente, este é o principal problema

na concepção dos criptosistemas em hardware que causam a fuga de informações através do consume de po-

tência. Este método visa tratar o problema da correlação diretamente sobre a estrutura de implementação de

portas lógicas. A seguir são apresentadas algumas estratégias adotadas para concepção de circuitos com con-

sumo de potência independente de dados.

Tiri et al. em [TIR02] propuseram um estilo lógico que opera com um consumo de potência indepen-

dente de valores lógicos e da seqüência de dados. O estilo denominado lógica baseada em amplificação cons-

ciente (em inglês, Sense Amplifier Based Logic - SABL) apresenta um consumo invariável segundo dois prin-

cípios: (i) ter apenas um evento de chaveamento por ciclo de relógio independentemente da seqüência de da-

dos de entrada e; (ii) ter uma carga capacitiva constante igual para todos os nós internos combinados a uma

das saídas diferenciais. SABL apresenta uma estrutura dinâmica e diferencial similar à lógica DCVSL (do

inglês, Differential Cascode Voltage Switch Logic) [RAB96], embora o consumo de potência desta lógica não

seja uniforme para todos os dados devido à assimetria de sua estrutura. A porta SABL é baseada no flip-flop

StrongArm110 (SAFF) [NIK00]. Para conceber uma porta básica, os autores mantêm o amplificador consci-

ente do flip-flop e substituem o par de entradas diferenciais por uma rede pull down diferencial (em inglês,

Differential Pull Down Network - DPDN). A DPDN é implementada de tal modo que para uma dada entrada

todos os nós internos conectam-se a um dos nós de saída. Durante a fase de avaliação, a rede de interconexões

detectará um caminho e oferecerá uma saída estável. Experimentos realizados demonstram uma variação de

energia normalizada 116 vezes menor quando comparada a implementações CMOS típicas. Por outro lado,

apresenta um custo de área e potência duas vezes maior.

Tiri e Verbauwhede em [TIR04] apresentam um novo método de projeto de Standard Cells visando

construir portas lógicas com consumo de potência uniforme para fluxos de projeto ASIC e FPGA. Embora

SABL [TIR02] tenha sido projetado para este fim, o fluxo de projeto de CIs com esta lógica requer a caracte-

rização da nova biblioteca. O método proposto pelos autores em [TIR04] evita o projeto de uma nova biblio-

teca completa permitindo construir portas complexas a partir de bibliotecas já existentes seguindo o compor-

tamento de SABL. A lógica diferencial dinâmica simples (em inglês, Simple Dynamic Differential Logic -

SDDL) introduz uma lógica complementar à lógica original. Além disso, adiciona um circuito de pré-carga às

saídas original e complementar de modo a forçar-las ao nível lógico ‘0’. Uma variação desta lógica é a im-

plementação do circuito de pré-carga na entrada do circuito e introdução de registradores na saída. Esta varia-

ção é chamada de lógica diferencial dinâmica em onda (em inglês, Wave Dynamic Differential Logic -

WDDL). Experimentos revelam que a lógica é eficiente na redução da variação do consumo de potência tanto

em ASIC quanto em FPGAs, porém apresenta significantes custos em área, desempenho e consumo de potên-

cia.

Razafindraibe et al. em [RAZ07] realizaram uma avaliação detalhada da robustez da lógica em trilha

dupla (em inglês, Dual Rail - DR) a ataques DPA e mostraram que a região de projeto considerada efetiva-

mente robusta é surpreendentemente pequena. DR não reduz suficientemente a correlação entre dados e o

Page 41: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

27

tempo de computação para caracterizar-se como uma contramedida extremamente robusta aos ataques DPA.

Motivados por esta análise, os autores propõem o uso de uma lógica DR evoluída chamada de lógica segura

em três trilhas (em inglês, Secure Triple Track Logic - STTL) como uma alternativa à lógica DR. Esta lógica

utiliza uma terceira trilha para a validação de dados. O circuito de validação é projetado com portas de baixa

corrente cujos atrasos de propagação são maiores que o restante do circuito. Esta característica garante que a

validação seja gerada após a estabilização dos dados na saída do circuito e independentemente dos dados pro-

cessados. Outra característica de STTL é que o processamento do dado ocorre somente após a chegada de

todos os sinais de validação envolvidos em seu processamento. Isto garante a STTL uma robustez contra ca-

pacitâncias parasitas e ao desequilíbrio do tempo de propagação entre fios complementares introduzidos pela

etapa de posicionamento e roteamento. A lógica de validação redundante garante que os dados sejam proces-

sados independentemente de tempo e do consumo de potência. Experimentos realizados em [SOA08] indicam

que a lógica pode ser empregada no fluxo de projeto de FPGAs, mantendo suas características originalmente

definidas em tecnologia CMOS. Como desvantagem, a lógica STTL sofre penalidades com o custo em área e

tempo de execução.

Rammohan et al. em [RAM08] apresentaram o estilo lógico nomeado de Lógica Diferencial e Dinâ-

mica Complementar Reduzida (em inglês, Reduced Complementary Dynamic and Differential Logic -

RCDDL) para conceber sistemas imunes aos ataques DPA. Este estilo garante um consumo de potência uni-

forme para dados de entrada (mensagem e chaves criptográfica). Como oposição aos estilos DDLs existentes

que complementam todas as portas lógicas para gerar a saída diferencial, o estilo RCDDL propõe o reuso de

portas lógicas de modo a reduzir o número de portas na geração da lógica complementar para obter a saída

diferencial. Esta é a primeira proposta de reuso de portas lógicas para conceber uma lógica complementar e

conseqüentemente reduzir o custo em área. Duas são as exigências para garantir uma perfeita segurança a ló-

gicas DDLs: (i) exatamente uma transição de saída a cada ciclo de relógio; (ii) capacitância total em (carga e

descarga) deve permanecer constante a cada ciclo de relógio. Resultados experimentais sobre circuitos tais

como o algoritmo criptográfico DES e circuitos sintéticos mostram que o uso de RCDDL tem um significati-

vo aumento de resistência apresentando uma redução de 42% na variação de corrente máxima em relação a

lógica WDDL e 11 vezes comparadas a lógica CMOS tradicional. Os resultados também mostram uma me-

lhora no consumo médio de potência e área, mas com uma penalidade de atraso comparado à lógica WDDL.

Muresan et al. em [MUR08] propuseram o uso de um circuito de proteção contra ataques DPA para

criptosistemas tais como smart cards. O circuito é baseado na técnica de regulação de corrente (em inglês,

current flattening technique) inicialmente introduzida em [MUR04] e posteriormente usada em

[MUR05][MES05]. Este circuito pode ser integrado ao mesmo chip ou ao mesmo encapsulamento do cripto-

sistema. O objetivo desta técnica é manter constante a corrente necessária para suprir o criptosistema, e assim

mascarando a dependência entre dados processados e a corrente consumida. Como a corrente Is consumida

pelo criptosistema varia a cada dado processado, o circuito de proteção monitora Is e varia dinamicamente

seu consumo de corrente If de modo que a corrente total consumida pela fonte Idd = Is+If seja constante. A

principal vantagem desta proposta é a simplicidade da integração ao criptosistema existente, não sendo neces-

sário o uso de biblioteca dedicada, reprojeto do criptosistema ou modificações em software. Por outro lado,

esta técnica eleva o consumo de potência para mascarar o consumo do criptosistema.

Vahedi et al. em [VAH06] propuseram um circuito para uniformizar a corrente consumida em um

criptosistemas microprocessado. O circuito proposto produz uma injeção de corrente e regulação de voltagem

para obter um consumo de potência eficiente no criptosistema. Este circuito é funcional até sem regulador de

voltagem. Entretanto, a corrente de referência precisa ser ajustada ao pico do perfil de corrente e logo, o custo

em consumo de potência será relativamente alto. A adição de um bloco regulador de voltagem permite estabi-

lizar a corrente com uma referência baixa e, portanto, reduzir o custo em potência. Isto pode levar a um maior

atraso no processamento de operações devido à baixa tensão de alimentação. Estes atrasos podem limitar o

processador de satisfazer exigências de tempo de processamento.

Vahedi et al. em [VAH08] propuseram modificações no trabalho proposto em [VAH06]. Neste traba-

lho é adicionado ao controle um método de chaveamento de freqüências para remediar as penalidades com

atrasos no processamento. Durante a operação de encriptação no processador, se a corrente não alcança a fai-

Page 42: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

28

xa de alimentação pré-definida ao processador, então um bloco de chaveamento de freqüência é ativado para

forçar uma freqüência de operação mínima para satisfazer as exigências de tempo de processamento. Este

bloco aumenta a faixa de voltagens de alimentação do processador e contribui com dois benefícios: (i) garan-

tir a funcionalidade do processador e; (ii) reduzir os custos com consumo de potência. Este novo método de

projeto introduz um circuito de uniformização de corrente mais eficiente quanto ao consumo de potência. A

proposta apresenta um circuito com baixos custos de potência e área sendo útil para aplicações tais como

smart cards e dispositivos de comunicação móvel.

3.3.1 Comparações entre propostas

Esta abordagem visa eliminar a fuga de informação por tornar o consumo de potência independente

dos dados processados pelo sistema criptográfico. Com este objetivo, os Autores buscam propor novas estru-

turas lógicas para conceber circuitos com consumo uniforme evitando o quanto possível às variações de car-

gas capacitivas no circuito. A vantagem deste método é atuar diretamente na origem do problema buscando

alternativas para contornar os problemas inerentes das tecnologias atualmente disponíveis. Por outro lado, os

custos para se obter uma lógica com tais características são altos em termos de área, consumo e latência, prin-

cipalmente devido às portas lógicas passarem a terem estruturas diferenciais (uso de lógica complementar) e

comportamento dinâmico (ter obrigatoriamente o mesmo número de chaveamento para cada dado processado)

a fim de obter cargas capacitivas constantes. Além disso, alterações no fluxo de projeto podem ser necessá-

rias para permitir a concepção do circuito com uma nova biblioteca lógica.

Tabela 3.3 Resumo de propostas que visam descorrelacionar dados por mascarar dados.

Algoritmo Método Custos Tecnologia

Tiri et al.

[TIR02] Kasumi

Lógica diferencial

e dinâmica (carac-

terizada)

Alto custo em

potência CMOS 0,18µm

Tiri e Verbauwhede

[TIR04]

Kasumi,

DES, AES

Lógica diferencial

e dinâmica

Alto custo em

potência

CMOS 0,18µm e

FPGA

Razafindraibe et al.

[RAZ07] DES

Lógica em três

trilhas (validação)

Alto custo em

área

CMOS 0,35µm e

FPGA

Rammohan et al.

[RAM08] DES

DDL com reuso

de portas Médio CMOS

Muresan et al.

[MUR08] DES

Circuito regulador

de corrente

Alto custo em

potência CMOS

Vahedi et al.

[VAH06] DES

Circuito regulador

de voltagem Custo em área CMOS

Vahedi et al.

[VAH08] DES

Circuito regulador

de voltagem e

freqüência

Custo em área CMOS

Page 43: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

29

3.4 Conclusão

Na presente Seção, uma revisão de propostas com o objetivo de evitar a fuga de informações em sis-

temas criptográficos foram apresentados. Deste modo pode-se notar que existem basicamente 3 tipos de estra-

tégias para evitar a correlação de dados aplicadas em diferentes níveis de projeto. Estes trabalhos contribuem

para a revisão do estado da arte de estratégias para a eliminação de fuga de informações por canais escondi-

dos. Neste trabalho propõe-se inserir aleatoriedade ao processamento de um criptosistema em nível arquitetu-

ral para evitar a fuga de informações. A idéia é atingir um nível de entropia que seja na prática inviável esta-

belecer uma correlação entre o consumo de potência e o processamento de dados. A arquitetura proposta

permite ainda a adição de estratégias já propostas tais como o processamento de dados falsos de modo a au-

mentar o nível de segurança do criptosistema.

Page 44: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

30

4. PARADIGMAS NÃO-SÍNCRONOS DE

PROJETO

Com o objetivo de superar as limitações do projeto síncrono, diversos grupos de pesquisa estão reto-

mando o interesse no desenvolvimento de circuitos não-síncronos. Para facilitar a distinção entre os estilos de

projeto, o termo não-síncrono é utilizado neste trabalho para englobar paradigmas assíncronos (clockless), o

paradigma GALS e outros paradigmas tal como a dessincronização [COR06].

Circuitos não-síncronos são circuitos que assumem sinais binários, mas não assumem o pressuposto

de discretização do tempo, isto é, em circuitos assíncronos o tempo é tratado como uma variável contínua

[SPA02]. Este tipo de circuito pode eliminar os problemas de escorregamento e de dissipação de potência do

sinal de relógio. Entretanto, o desenvolvimento de sistemas não-síncronos esbarra na falta de ferramentas a-

dequadas para a automatização do processo de desenvolvimento.

Motivados pelas limitações do estilo síncrono de projeto, pela falta de ferramentas para dar suporte a

circuitos totalmente assíncronos, e pela grande popularidade do estilo síncrono de projeto, alguns trabalhos de

pesquisa propõem soluções intermediárias entre o projeto síncrono e o projeto assíncrono. O objetivo princi-

pal é manter as ferramentas do projeto síncrono e eliminar ou reduzir o uso de sincronização através do sinal

de relógio. Entre essas propostas pode-se destacar o uso de sistemas GALS e o uso da dessincronização (do

inglês, desynchronization) [COR06].

A dessincronização é uma técnica de geração de circuitos assíncronos a partir do estilo síncrono

[COR06]. A única alteração do estilo síncrono é a substituição da etapa de geração da árvore de relógio por

uma etapa de inserção de circuitos de handshake, um para o controle de cada etapa do circuito síncrono. O

período do sinal de relógio é substituído por um elemento de atraso que deve possuir atraso maior que o atra-

so de propagação de pior caso da lógica combinacional a qual está associado.

A segunda proposta que pode potencialmente preencher a lacuna entre sistemas síncronos e assíncro-

nos é a decomposição de um sistema síncrono em diversos módulos que não trabalham globalmente sincroni-

zados, ou seja, onde cada módulo possua um domínio de relógio distinto. Este estilo de projeto é conhecido

como Globalmente Assíncrono e Localmente Síncrono - GALS [CHA84]. Em sistemas GALS, cada módulo

trabalha sincronamente [TEE07] [KRS07], mas a interação entre módulos utiliza uma interface de comunica-

ção assíncrona, responsável por efetuar a transferência de informações entre os módulos síncronos [PON07].

4.1 Definições Básicas

Durante a evolução da eletrônica, alguns pressupostos foram criados para simplificar o desenvolvi-

mento de circuitos. Um pressuposto fundamental da eletrônica consiste na discretização de valores de grande-

zas elétricas tais como a tensão e o uso destes valores para codificar informação. A eletrônica digital e toda a

sua difusão nas tecnologias atuais decorrem da adoção desse pressuposto. Nele, dois níveis distintos de tensão

são associados a valores lógicos e números binários. Técnicas matemáticas derivadas de álgebras Booleanas

podem ser usadas para sistematizar o tratamento de informações. Um segundo pressuposto criado foi a discre-

tização do tempo, implementado utilizando o sinal de relógio para cadenciar as operações do circuito. O estilo

Page 45: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

31

de projeto síncrono assume esses dois pressupostos.

Estilos de projeto não-síncronos mantêm o pressuposto de discretização dos níveis de tensão, mas a-

dotam outros pressupostos quanto ao tempo ou nenhum pressuposto neste sentido. Dessa forma, o tempo ter

de ser tratado como uma variável contínua, o que torna tais circuitos mais sensíveis a fenômenos temporais

que ocorrem em circuitos digitais.

A seguir serão descritos alguns destes fenômenos temporais, protocolos de comunicação, codificação

de dados extraídos na sua maioria do trabalho de Sparsø e Furber [SPA02].

Sistemas digitais complexos possuem muitos módulos desempenhando funções diferentes e intera-

gindo entre si de maneiras diferentes. Em sistemas síncronos, cada um destes módulos recebe periodicamente

um sinal de relógio para controlar sua operação e sua interação com outros módulos. Entretanto, por exemplo,

um computador típico tem componentes tais como CPU, disco, terminais e linhas de comunicação que clara-

mente não operam com mesmo sinal de relógio. Por isso, sistemas complexos não são projetados como uma

única estrutura síncrona, mas como um grupo de módulos síncronos interagindo sem a existência de um sinal

de relógio global. Quando um sistema é particionado em sub-módulos que não compartilham o mesmo sinal

de relógio diz-se que os sub-módulos são assíncronos entre si.

4.1.1 Fenômenos Temporais

Transitórios (em inglês, hazards) são exemplos de fenômenos temporais que podem afetar o funcio-

namento de circuitos não-síncronos. Em sistemas síncronos, valores transitórios podem ocorrer sem proble-

mas, desde que no instante de amostragem todos os valores estejam estáveis. Em sistemas assíncronos, um

valor transitório pode levar o circuito a um estado inválido ou indesejado [CAL98].

A existência de transitórios acontece devido à ocorrência de atrasos diferenciados de componentes a-

tivos e fios ao longo do circuito. Entretanto, existem algumas técnicas que podem garantir o desenvolvimento

de circuitos combinacionais com comportamento livre de transitórios [NOW05][SPA02].

Outro fenômeno temporal que pode prejudicar o funcionamento de circuitos digitais é a metaestabili-

dade. Este fenômeno é mais difícil de tratar quando técnicas não-síncronas de projeto são adotadas. A metaes-

tabilidade é um fenômeno que pode ocorrer em dispositivos de armazenamento [WES94]. Quando um dado a

ser registrado em um elemento de armazenamento altera o seu valor simultaneamente ou muito próximo à

transição do sinal que habilita a amostragem, a saída pode apresentar problemas. Isto provavelmente ocorre se

não forem respeitadas as restrições de tempos de setup e hold [WES94] dos elementos de memória. Algumas

falhas possíveis são a saída apresentar um valor indeterminado entre 0 e 1, ou haver uma demora arbitraria-

mente longa para que a transição de valor surja na saída. Quando este fenômeno ocorre, ele pode produzir

uma falha de sincronização, isto é, o valor de saída do elemento de armazenamento pode ser interpretado co-

mo distinto do valor correto por circuitos subseqüentes.

4.1.2 Interação com o Ambiente

Durante o desenvolvimento de circuitos assíncronos a imposição de restrições à interação entre o cir-

cuito e seu ambiente é uma etapa fundamental para determinar qual estilo de projeto assíncrono adotar. Quan-

to menor o conjunto de restrições impostas a essa interação, mais complexo é o processo de projeto. Tradi-

cionalmente, a interação do circuito com o seu ambiente é classificada em três categorias:

Modo Fundamental: neste modo, quando um circuito parte de um estado estável, ou seja, um estado

onde todos os sinais de entrada, saída e sinais internos estão estáveis, é permitida a mudança de um

único sinal de entrada. Após esta mudança, é necessário que todos os sinais alcancem novamente um

estado estável antes que o ambiente possa realizar outra mudança unitária de alguma entrada do cir-

Page 46: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

32

cuito.

O modo rajada (do inglês, burst mode), é uma extensão do modo fundamental. Ele é uma forma res-

trita de permitir múltiplas alterações de entradas e múltiplas alterações de saídas. Quando um circuito

operando nesse modo se encontra em um estado estável, ele aguarda por um conjunto definido de al-

terações na suas entradas. As alterações desse conjunto podem acontecer em ordem arbitrária. Uma

vez que o conjunto de alterações na entrada é observado, esse computa um conjunto de saídas. O am-

biente não pode gerar nenhuma nova alteração na sua entrada até que o circuito se estabilize, isso é,

gere o conjunto de saídas e estabilize seus sinais internos. Para funcionar de acordo com as restrições

de ambiente, tanto circuitos operando no modo fundamental quanto circuitos operando no modo raja-

da utilizam elementos de atraso em seus sinais de realimentação. Isso ocorre por que esses sinais são

vistos como novas entradas e devem obedecer ao tempo de estabilização do circuito.

Modo Entrada e Saída: neste modo é permitida a alteração de mais de um sinal simultaneamente. O

circuito opera sobre essas entradas e pode gerar ou não sinais de saída correspondentes. Assim que o

ambiente observa que a saída correspondente foi definida, esse pode gerar novas entradas. Uma for-

ma de o circuito interagir com o ambiente no modo entrada e saída é utilizando um protocolo de

handshake, onde cada conjunto de entradas gerado pelo ambiente é assinalado com um sinal de requi-

sição. Uma vez que estas entradas são processadas, o circuito responde com um sinal de reconheci-

mento, o qual é usado pelo ambiente como sinalização para geração de novos dados. O protocolo de

handshake pode ser implementado de diversas maneiras, a Seção a seguir caracteriza este protocolo.

4.1.3 Protocolos de Comunicação

O protocolo de comunicação assíncrono mais simples e mais comum é conhecido como handshake.

Este protocolo utiliza dois sinais, geralmente denominados de request e acknowledge, para controlar um pro-

cesso de transmissão de dados ou de sincronização. A Figura 4.1 mostra um esquema básico de canal de co-

municação utilizando handshake. O canal de dados é opcional, uma vez que o protocolo pode ser utilizado

apenas para sincronização entre os módulos, sem troca de dados. No caso de troca de dados, a Figura 4.1 ilus-

tra um canal do tipo push channel, isto é, um canal onde a fonte de dados é o mestre do protocolo de hand-

shake. Uma forma alternativa desse protocolo é a utilização de pull channels, onde o destino dos dados atua

como mestre.

u2

u1

x1

f(x1...x

n)

u2

u1

x1

f(x1...x

n)

DadosMestre Escravo

Req

Ack

Figura 4.1 Esquema básico de um canal de comunicação

utilizando protocolo handshake. O canal de dados é op-

cional, Caso ele exista no sentido mostrado, o canal se

denomina push channel.

De acordo com o número de sinalizações envolvidas no protocolo handshake têm-se duas versões

deste: protocolo de quatro fases e protocolo de duas fases.

O protocolo de quatro fases, ilustrado na Figura 4.2, inicia uma transmissão com a requisição de

transmissão (Req+) (e eventual disponibilização do dado). Quando o receptor recebe esta requisição, executa

processa a requisição (que pode incluir o recebimento do dado) e sinaliza para o transmissor a finalização da

recepção através de um reconhecimento (Ack+). O transmissor então retira a requisição (Req-) que, quando

Page 47: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

33

percebida pelo receptor, faz com que este retire o reconhecimento (Ack-).

req

ack

1ª transmissão 2ª transmissão

Figura 4.2 Operação do protocolo de comu-

nicação de quatro fases.

O protocolo de duas fases ilustrado na Figura 4.3, elimina metade das transições do protocolo de qua-

tro fases. O transmissor sinaliza o início de uma comunicação invertendo o valor do sinal de requisição

(Req+/-). O receptor, após processar o pedido, responde com a inversão do sinal de reconhecimento (Ack+/-).

req

ack

1ª 2ª 3ª 4ª

Transmissões

Figura 4.3 Operação do protocolo de co-

municação de duas fases.

4.2 Classificação dos Sinais Digitais

Segundo Messerschmitt [MES90], um sinal digital pode ser definido pela freqüência e fase do sinal de

relógio associado. Um forma conveniente de descrever matematicamente um sinal de relógio com transições

uniformemente espaçadas é a seguinte: x(t) = p((ƒt + ф) modulo 1), onde p(t) é um sinal de relógio igualmen-

te distribuído em níveis baixo e alto, ƒ é a freqüência nominal e ф é a fase. A fase ф varia sobre o intervalo 0

≤ ф < 1, ou seja, as transições são deslocadas no tempo sobre um ciclo do relógio. Logo, a fase é expressa

como uma fração de um ciclo. Um modelo mais genérico onde inclui outros efeitos possíveis em um sinal de

relógio é mostrado como segue: x(t) = p(((ƒ+Δƒ)t + ф(t)) modulo 1), onde Δƒ é uma possível variação na fre-

qüência nominal e ф(t) é a variação de fase instantânea. Com este modelo espera-se que ф(t) não incorpore

variações de freqüência, estabelecendo que essas variações sejam resumidas por Δƒ. De acordo com o modelo

genérico, pressupondo-se que um sinal tenha freqüência média constante, embora não conhecida a priori, este

sinal é denominado como Isócrono, enquanto que se sua freqüência média não for constante, o sinal será dito

Anisócrono.

Com estas definições e com base no modelo genérico apresentado, Messerschmitt [MES90] propôs

uma taxonomia de sincronização de sinais digitais como indicado na Figura 4.4. Como já definido, um sinal

digital pode ser isócrono ou anisócrono. Considerando dois sinais digitais, se ambos são isócronos, as varia-

ções de freqüência são as mesmas e a diferença de fase instantânea é zero Δф(t) = 0, então eles são ditos sín-

cronos. Quaisquer dois sinais que não são síncronos são ditos assíncronos. Se dois sinais isócronos têm exa-

tamente a mesma freqüência média ƒ+Δƒ, então eles são chamados Mesócronos. Dois sinais gerados pelo

mesmo relógio, mas com diferentes fases devido a atrasos em conexões são mesócronos entre si. Dois sinais

com freqüências médias que são nominalmente iguais, mas não exatamente a mesma (geralmente porque eles

Page 48: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

34

são derivados de osciladores independentes) são ditos Plesiócronos. Supondo que as freqüências nominais

sejam ƒ, mas as freqüências reais são ƒ+Δƒ1 e ƒ+Δƒ2, então a diferença de fase instantânea pode ser modelada

como Δф(t)=(Δƒ1-Δƒ2)t + (ф1(t)- ф2(t)). Finalmente, se dois sinais têm freqüências médias diferentes nomi-

nalmente, eles são denominados Heterócronos.

Figura 4.4 Taxonomia proposta por Messerschmitt

em [MES90].

4.3 Revisão de Interfaces Assíncronas

O estilo de desenvolvimento GALS mais difundido, consiste em empacotar uma unidade funcional

síncrona em um invólucro assíncrono (em inglês, wrapper asynchronous). Este empacotamento transforma a

interface da unidade funcional em uma interface totalmente assíncrona. Cada unidade funcional possui um

gerador de relógio, uma porta de comunicação e um árbitro. Um modelo de estrutura de comunicação assín-

crona aplicada a uma unidade funcional síncrona é apresentada na Figura 4.5.

Porta de Entrada

Relógio Extensível

Porta de

Saída

Lógica Síncrona

Interface

Assíncrona Dados Dados

Ri

Ai Ai

Ri

Handshake Handshake

Figura 4.5 Modelo simplificado de uma interface de comunicação assíncro-

na empregando relógio extensível.

Uma detalhada descrição dos componentes que compõem a interface são apresentados nas próximas

Seções.

4.3.1 Portas de Entrada e Saída

Page 49: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

35

As portas são a interface do invólucro e funcionam como adaptadores entre o sistema síncrono e o sis-

tema assíncrono. A comunicação através da interface assíncrona utiliza um protocolo de conversação (em

inglês, handshake) para a validação dos dados nas portas.

Existem várias propostas de circuitos de controle para portas da interface assíncrona

[MUT99][YUN99][MOO00]. Estas propostas variam de acordo com as formas de sinalização de controle e

dados. O modelo lógico de comunicação assíncrona mais comum em sistemas GALS é a sinalização de dados

empacotados. Este modo de comunicação pressupõe que o atraso dos sinais de requisição e confirmação é

sempre maior que o atraso dos sinais de dados. Isto garante a estabilização dos dados na porta de entrada do

receptor até ocorrer à transição do sinal de requisição.

O circuito que implementa o controle da porta pode ser desenvolvido utilizando diferentes estilos de

projeto de circuitos assíncronos. Muttersbach [MUT99] utiliza a ferramenta 3D Tool que gera circuitos em

modo rajada a partir de uma especificação descrita por uma máquina de estados [YUN99]. Moore [MOO00]

propõe ainda uma outra forma de resolver a metaestabilidade. Segundo Moore [MOO00] a metaestabilidade

pode ser prevenida fazendo com que os dados percorram dois latches em série, método denominado em inglês

latching the data at least twice. Este método não previne totalmente a metaestabilidade embora reduza consi-

deravelmente sua probabilidade.

A sincronização dos dados gerados em um sistema assíncrono é realizada utilizando um gerador de re-

lógio extensível. Quando a lógica síncrona necessita enviar ou receber um dado, a porta gera uma requisição

ao árbitro do gerador para que o relógio seja estendido. Quando a porta é atendida o relógio é estendido até

que se garanta que os dados foram corretamente amostrados. Na implementação da porta do sistema proposto

por Najibi [NAJ05], o sinal de relógio é estendido até que todo o protocolo de quatro fases seja completado.

A proposta de [MOO00] procura a menor extensão possível do relógio para diminuir a latência entre a trans-

missão de dados.

4.3.2 Geradores de Relógio

Os geradores de relógio em sistemas GALS possuem a capacidade de estender o sinal de relógio para

prevenir a metaestabilidade.

A implementação mais comum de geradores de relógio extensível é mostrada na Figura 4.6. Esta im-

plementação consiste em uma cadeia contendo um número ímpar de inversores, os quais geram atrasos que

possibilitam determinar a freqüência do sinal de relógio. O período do sinal de relógio pode ser definido pela

equação 2T , onde γ é o atraso total das portas e dos fios da cadeia.

Uma vez que o período do ciclo de relógio depende do atraso da porta e dos fios, a freqüência do reló-

gio pode alterar seu valor quando o circuito é submetido a variações de temperatura e tensão de alimentação.

Este tipo de comportamento em alguns sistemas pode ser indesejável, fato que requer o projeto de um gerador

mais complexo. Moore e Taylor respectivamente em [MOO02] e [TAY00] propõem uma abordagem de con-

cepção de gerador mais elaborada, de tal forma que é possível o ajuste dinâmico da freqüência do relógio com

base em um sinal externo.

O período mínimo do ciclo de relógio utilizado em blocos síncronos deve ser projetado de modo ade-

quar-se ao caminho crítico de cada bloco. Teoricamente, é possível projetar geradores de relógio que incluem

linhas de atrasos próximos ao caminho crítico de cada bloco síncrono. Na prática, entretanto, o valor exato do

atraso no caminho crítico de um dado bloco pode apenas ser determinado ao final do projeto. Além disto, um

sistema GALS contêm diferentes blocos síncronos, cada um com seu caminho crítico.

Page 50: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

36

Figura 4.6 Diagrama de um gerador de re-

lógio extensível implementado através de

cadeias de inversores. Um elemento de ex-

clusão mútua é utilizado para controlar a ex-

tensão do relógio.

Segundo Gürkaynak et al. [GUR06a], a solução para este problema é usar geradores de relógios locais

que podem ser programados para operar em diferentes freqüências. Os Autores propõem um oscilador genéri-

co capaz de gerar freqüências para todos os blocos síncronos. Com esta abordagem, não é necessário o co-

nhecimento prévio do exato valor do caminho crítico de cada bloco síncrono. Os geradores de relógio podem

ser ajustados localmente depois da fabricação do circuito, de modo adequarem-se ao caminho crítico de cada

bloco síncrono. Como um exemplo numérico, considere um gerador de relógio com uma resolução de período

de 0.5 ns por passo, iniciando com período mínimo de 1.5ns. Se o caminho crítico da ilha é de 2.05ns

(487MHz), o gerador utiliza um período de 2.5ns (400MHz).

Yun e Dooply em [YUN99] propõem um mecanismo de comunicação entre blocos síncronos o qual u-

tiliza um esquema de controle de pausa de relógio (do inglês, Pausible Clocking Control - PCC) que permite

a geração de diferentes fases ou freqüências de relógio.

A abordagem proposta evita falhas de comunicação através do ajuste do período de relógio. Uma falha

de sincronização entre blocos síncronos ocorre quando o tempo de chegada de uma transição de sinal externo

e uma borda de relógio ocorram simultaneamente, de forma que sejam indistinguíveis. Na proposta de Yun e

Dooply, estas falhas de sincronização são contornadas através de pausas ou esticamentos do relógio local.

A Figura 4.7 apresenta a estrutura proposta pelos Autores em [YUN99]. O esquema proposto usa um

elemento de exclusão mútua (ME) para forçar a separação temporal das bordas de relógio e transições de si-

nais externos. Quando duas requisições de entrada chegam simultaneamente, uma é selecionada arbitraria-

mente. Em casos onde blocos requisitantes competem por recursos compartilhados, o circuito proposto esten-

de o ciclo de relógio. Este esquema utiliza um oscilador em anel ao invés de um oscilador a cristal, de modo a

possibilitar o ajuste do período do relógio.

Page 51: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

37

Figura 4.7 Estrutura de relógio programável proposta por Yun e Dooply em

[YUN99]. Na estrutura ME representa um elemento de exclusão mútua. FSM

representa uma máquina de estados síncrona, AFSM uma máquina de estados

assíncrona.

4.3.3 Árbitros

O árbitro ou elemento de exclusão mútua é o circuito responsável por decidir se o sinal de relógio será

ou não estendido. O circuito mais comum do árbitro é mostrado na Figura 4.8. Esta implementação consiste

em um flip-flop Set-Reset, que determina qual das entradas realiza primeiro a requisição. Se as duas requisi-

ções ocorrem ao mesmo tempo o flip-flop entra no estado de metaestabilidade, causando um resultado inde-

terminado. Existem propostas de filtros para a extração da metaestabilidade, porém estas soluções não são

possíveis de serem implementadas em FPGAs.

Figura 4.8 Exemplo de circuito de exclusão mútua utilizado como árbitro.

Nesta proposta de arbitro a ocorrência de duas requisições simultâneas pode levar o circuito a um esta-

do metaestável tornando inconsistentes suas saídas.

Em um sistema GALS o árbitro deve decidir entre atender uma requisição da porta ou a borda de subi-

da do relógio. Quando o árbitro atende a requisição da porta o nível baixo do sinal de relógio é estendido até

que a requisição da porta seja retirada, então o sinal de relógio retorna a funcionar normalmente.

Yun e Dooply em [YUN99a] propõem um árbitro pouco convencional como apresentado na Figura

Page 52: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

38

4.9. Como esperado de um árbitro, o circuito propaga requisições (R) e ao reconhecê-las propaga um sinal

indicando uma confirmação (em inglês, Grant (G)). Quando os sinais de requisição R1 ou R2 chegam ao árbi-

tro, este as repassa ao módulo de exclusão mútua (ME), sem determinar quem chegou primeiro. Os sinais R1

e R2 podem chegar simultaneamente, tornando a porta de entrada do ME (em inglês, Gate Mutual Exclusion

(gME)) metaestável. Quando uma transição de subida em R chega ao ME, uma borda de relógio também pode

chegar ao mesmo tempo. Se ME determina que R chegou primeiro (depois de resolver sua metaestabilidade

interna), então ocorre uma transição em G e conseqüentemente um bloqueio do sinal de relógio resultando na

extensão do sinal até R retornar ao estado inicial.

A resolução da metaestabilidade em gME e é realizada concorrentemente com o processo de arbitra-

ção. Quando ¬G é ativado, G1 é transicionado resultando no reset de R e R1. A descida do sinal R permite a

descida de G, habilitando o sinal de relógio a ter uma borda de subida. Uma requisição pendente R2 habilita

uma nova ativação de R depois de G1 ser resetada.

Considere um exemplo, mostrado na Figura 4.9(c), na qual uma transição de subida em R2 inicia uma

cadeia de eventos, iniciando com R+. Depois ¬G á ativado, G2 é ativado conseqüentemente. Este evento faz

com que os sinais R e R2 sejam desativados. Se o sinal R2 não é desativado até ¬G ser desativado, então R2

residual pode ser visto como uma nova requisição ao gME.

A proposta de Yun e Dooply [YUN99a] apresenta-se como uma melhor solução para arbitração de re-

quisições de sinais em uma interface assíncrona, pois esta possui um mecanismo que resolve o problema de

metaestabilidade. Esta proposta foi realizada para a concepção de circuitos ASICs, porém nada impede que a

lógica empregada seja adaptada em dispositivos FPGAs. Isto permite que estudos detalhados sejam realizados

futuramente empregando esta proposta. Já a proposta inicial de árbitro é muito restrita, possuindo problemas

com a metaestabilidade, não sendo indicada para sistemas que exigem maior confiabilidade de processamen-

to.

Page 53: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

39

Figura 4.9 Árbitro proposto por

Yun e Dooply [YUN99a]. (a) apre-

senta o circuito lógico do árbitro.

(b) expande a lógica do bloco de

Exclusão Mútua do árbitro. (c)

mostra uma seqüência de sinais no

momento em que chegam requisi-

ções ao árbitro.

4.4 Conclusão

O estilo GALS proposto por Chapiro apresenta-se como uma solução alternativa ao projeto de siste-

mas intrachip. Pode-se dizer que este estilo é uma forma híbrida, utilizando ambos os paradigmas síncrono e

assíncrono. A manutenção do paradigma síncrono em módulos locais de um sistema permite a utilização de

ferramentas e técnicas de projeto tradicionais. Os problemas encontrados no paradigma síncrono tais como o

escorregamento do sinal de relógio e consumo excessivo de potência são contornados com o estilo GALS. O

encapsulamento de módulos permitindo a comunicação assíncrona entre os módulos do sistema é uma possí-

vel solução a estes problemas. Isto motiva e justifica uma investigação mais detalhada sobre este estilo.

Page 54: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

40

Page 55: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

41

5. EXPERIMENTOS REALIZADOS

Os estudos e avaliações de lógicas propostas em trilha dupla para imunizar sistemas criptográficos de

ataques SCAs revelaram vulnerabilidades destas lógicas conforme indicado em [RAZ07]. Com base nestas

avaliações os Autores propuseram novas diretivas para conceber a lógica STTL visando reforçar a imunidade

da lógica em trilha dupla ao introduzir uma lógica de validação associada a um sinal de validade redundante

conforme discutido anteriormente. A biblioteca lógica foi projetada com tecnologia CMOS e um estudo de

caso como prova de conceito foi realizado através de simulações. Os resultados obtidos mostram um proces-

samento de dados quase independente do consumo de potência e do tempo de propagação motivando o uso da

lógica.

Para melhor avaliar a lógica proposta torna-se imprescindível obter dados reais de consumo. O tempo

de projeto e os custos para desenvolver estudos de caso sobre um circuito integrado são muito altos. Deste

modo a prototipação em dispositivos FPGA mostra-se atrativa para esta nova etapa de validação da lógica.

Este foi basicamente o objetivo do estágio sanduíche realizado no LIRMM (Université Montpellier II - Fran-

ça) durante um ano. Este Capítulo apresenta as atividades e os resultados obtidos com o desenvolvimento de

protótipos da biblioteca STTL em FPGA bem como sua avaliação com relação aos ataques DPA.

5.1 Prototipação de STTL em FPGAs

O primeiro passo para prototipar a lógica STTL é mapear a biblioteca de funções lógicas com tecnolo-

gia CMOS em funções lógicas implementáveis sobre os blocos lógicos reconfiguráveis de um FPGA. FPGAs

da Xilinx possuem recursos que habilitam a implementação desta biblioteca, como já observado, por exem-

plo, em [PON07].

A maior parte dos circuitos implementados em FPGAs baseiam-se no uso de ferramentas de síntese au-

tomática. Entretanto, pode ser difícil satisfazer requisitos de temporização estritos (como os exigidos em mó-

dulos assíncronos) ou obter um percentual muito alto de uso de um dispositivo FPGA pode não ser factível

via síntese automática apenas. Para tentar superar estas restrições, a maioria das ferramentas de síntese auto-

mática dá suporte à especificação de uma ampla variedade de restrições, indo desde especificações de planta

baixa e freqüência de operação mínima até o controle de atrasos em fios específicos. Ainda assim, restrições

são apenas guias para ferramentas de alto nível e um processo de síntese pode chegar ao seu final violando

uma ou mais das restrições impostas. Um dos recursos oferecidos em FPGAs da Xilinx para ir além no con-

trole do processo de síntese são as chamadas hard macros. Hard macros são células definíveis em nível de

leiaute do FPGA, através de uma ferramenta (FPGA Editor) que dá acesso a fios, LUTs e outros elementos

específicos de um dispositivo FPGA específico de uma família específica. Como FPGAs são em essência ma-

trizes bidimensionais de componentes idênticos, uma vez projetadas, hard macros podem ser utilizadas como

uma célula de biblioteca, manipuladas como um módulo de leiaute rígido por ferramentas de síntese lógica e

física. Partes críticas em funcionalidade e/ou temporização podem assim ser projetadas “a mão”. Hard macros

provêem controle adicional sobre projetos, obviamente ao custo de complexidade adicional.

Hard macros não são uma novidade recente em projeto de FPGAs. Elas foram usadas, por exemplo,

por Martín-Langerwerf et al. em [MAR02] para reduzir o número de FPGAs e o tempo de execução para a-

Page 56: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

42

plicações de tratamento de vídeo. Além disto, hard macros já foram usadas para habilitar o uso de reconfigu-

ração dinâmica e parcial de FPGAs, como descrito, por exemplo, em [HUE04] e [MOL06]. Este trabalho em-

prega hard macros para implementar primitivas assíncronas da lógica STTL, viabilizando o uso desta lógica

em FPGAs de forma compacta.

As funções lógicas de STTL foram mapeadas em hard macros com roteamento interno fixo garantindo

tempos de propagação internos constantes e previsíveis Uma possível solução para realizar uma porta AND

STTL de duas entradas sobre um FPGA [SOA08] é ilustrada na Figura 5.1.

(A) (B)

Figura 5.1 Estrutura lógica e física de uma porta lógica

AND de duas entradas STTL. Em (A) o diagrama de portas

e em (B) o leiaute da hard macro para um dispositivo da fa-

mília Spartan 3 de FPGAs da Xilinx [SOA08].

Como mostrado, a lógica é composta por elementos-C de Muller [MAR06], responsáveis por evitar

transições espúrias (em inglês, hazards), sobre as entradas das tradicionais portas lógicas OR. Para imple-

mentar esta porta STTL, é necessário que os caminhos de dados da lógica-verdade (V) e lógica-falsa (F) te-

nham a mesma profundidade lógica. Esta característica é importante para se obter consumo de potência e

tempo de propagação quase independentes dos dados em nível de células.

A lógica de validade em portas STTL é implementada a partir das entradas AV e BV conforme discutido

anteriormente para circuitos CMOS. Assim, uma lógica independente com tempo de propagação maior em

relação aos sinais de saída ST e SF é projetada em forma de um elemento de atraso ‘D’ como mostrado na Fi-

gura 5.1. Este atraso é obtido pelo uso de LUTs em cascata implementando a função identidade, de modo a

obter um atraso constante para todos os dados de entrada.

De acordo com as definições da lógica STTL, o mapeamento de uma porta AND de duas entradas

STTL pode ser realizado usando 11 LUTs (ou 6 slices) como mostrado na Figura 5.1. Destas 11 LUTs, 6 são

usadas para a definição da lógica propriamente dita e 5 empregadas na lógica de validação. Com esta propos-

ta de porta lógica é possível notar que a área necessária para mapear sobre o FPGA uma porta STTL simples

apresenta alto custo de área. Porém, o objetivo principal desta proposição é validar os conceitos de STTL e

não necessariamente encontrar um meio ótimo de mapeamento da lógica sobre FPGAs. Outras portas lógicas

STTL foram implementadas, incluindo: NAND, OR, NOR, XOR e XNOR. Um inversor tanto em lógica de

trilha dupla como em STTL é simplesmente definido como a troca dos fios verdadeiro e falso da codificação

trilha dupla, não sendo necessário o uso de componentes ativos para sua implementação.

Page 57: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

43

Para avaliar a robustez de STTL aos ataques DPA foi realizada a implementação de uma S-BOX1 em

FPGA. Este sub-módulo é formado por um circuito combinacional de 175 portas lógicas de duas entradas,

tendo como interface de entrada de dados 6 bits de texto, 6 bits de chave e 4 bits de saída de dados, conforme

descrito na Figura 5.2. O sub-módulo foi implementado em 3 diferentes versões de modo a obterem-se parâ-

metros de comparação tais como área, tempo de cálculo e consumo de potência. Foram implementados sub-

módulos usando a tradicional lógica em trilha simples (em inglês, single rail - SR), lógica em trilha dupla

DIMS (do inglês, Delay Insensitive Minterm Synthesis) e lógica STTL.

Figura 5.2 Sub-módulo do algoritmo DES usado como

alvo dos estudos, incluindo a S-BOX1.

A Tabela 5.1 apresenta os resultados preliminares da implementação do sub-módulo S-BOX em FPGA.

Os resultados foram obtidos através de simulação, onde fixou-se um valor de chave de entrada e aplicou-se

todas as 64 combinações possíveis de dado de entrada (vetores de 6 bits). Deste modo, foi possível analisar os

tempos de cálculos para cada versão bem como a área necessária para implementar o circuito.

Os resultados descritos na Tabela 5.1 demonstram que o tempo de computação do sub-módulo STTL é

rigorosamente constante como esperado [SOA08]. Entretanto, o tempo de cálculo de STTL é 5 vezes maior

que o tempo de cálculo obtido na versão trilha simples. A lógica de validação independente implementada

pelo atraso D segundo a Figura 5.1 explica este resultado.

Tabela 5.1 Tempo de cálculo e área ocupada pa-

ra implementação da S-BOX1 em 3 versões dis-

tintas, SR, DR (DIMS) e STTL.

SR DR

(DIMS) STTL

Min (ns) 15,627 50,367 102,664

Max (ns) 26,603 58,262 102,664

Média (ns) 22,231 54,561 102,664

Variação (ns) 10,976 7,895 0

Área (slices) 175 504 994

Área (%) 9% 26% 51%

Page 58: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

44

5.2 Sistema de Medição de Consumo de Potência

Após o projeto e a prototipação da S-BOX1 e a obtenção de resultados preliminares que validam seu

funcionamento e revelam tempos de cálculo e área utilizada, ainda é necessário obter o perfil do consumo de

potência do sub-módulo para cada dado de entrada. Para isso, foi necessário desenvolver um sistema de me-

dição capaz de enviar dados ao sub-módulo, sincronizá-lo com um osciloscópio para efetuar a medição de

consumo no momento em que o cálculo é realizado e ainda, registrar as medições em arquivos texto para que

sejam realizadas análises.

A Figura 5.3 apresenta o sistema de medição desenvolvido para validar e propiciar uma medição preci-

sa do consumo de potência da S-BOX1. O sistema é composto por um microcomputador onde são armazena-

dos os vetores de dados que serão enviados ao sub-módulo, por meio de um canal serial. Neste mesmo micro-

computador são registradas as medições de consumo de potência em arquivos. Estes dados são lidos direta-

mente da memória do osciloscópio através de uma rede local Ethernet. Utilizou-se um programa descrito em

linguagem C e uma biblioteca de funções disponibilizadas pelo fabricante do osciloscópio para a medição e a

leitura de dados. O sistema também emprega controladores de periféricos no FPGA, o que permite a recepção

de dados através de uma interface RS-232. Outro controlador interno ao FPGA permite sincronizar a chegada

de dados, o disparo da leitura do osciloscópio e o uso de módulos decodificadores para o mostrador de 7

segmentos, usado no controle visual e verificação de dados de entrada e saída do sistema.

Figura 5.3 Sistema de medição e coleta de perfis de potência para validação do pro-

tótipo da S-BOX1 sobre FPGA.

Para realizar a medição de consumo de potência, uma plataforma de prototipação da Digilent equipada

com um FPGA XC3S200 da família Spartan 3 da Xilinx sofreu uma alteração no sistema de alimentação do

FPGA. O regulador de tensão dedicado do FPGA foi removido para que uma pilha recarregável com mesmo

valor nominal de tensão o alimentasse. O objetivo principal desta alteração é reduzir o nível de ruídos produ-

zidos pela atividade de periféricos disponíveis na plataforma, tais como chaves, interruptores, displays, me-

mórias e a própria fonte de alimentação. Uma sonda eletromagnética foi usada para medir a corrente que su-

pre o FPGA, usada para monitorar o consumo de potência do sub-módulo durante o cálculo.

Page 59: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

45

digit[4]

led[8]

seg[8]

chiffre[4]

synchro_oscillo

clk_50

RX

TX

pb[4]

sw[8]

display1[16] <= “0000”& message_chiffre_tmp[4] & “00”& message_clair[6]

led[8] <= debug & debug2 & “000000”

clef[6] <= sw[5..0]

h

reset

reset_rs232

h_khz

rs_e

clk_gbf

Clk Gen

clk_50

reset

flag

h_khz

rs_e

clk_gbf

clk_gbf

reset

end_frame

word_rx[8]

message_clair[6]

synchro_oscillo

sbox_enable

debug

debug2 FSM Ctrl

clk_gbf

reset

end_frame

word_rx[8]

message_clair[6]

synchro_oscillo

sbox_enable

debug

debug2

h50

h_khz

reset

data_in[16]

digit[4]

seg[8]

Ctrl Display

clk_50

h_khz

reset

data1[16]

digit[4]

seg[8]

h

reset

enable

start_tx

tx_done

TX

word_tx[8]

rx_ok

RX

end_frame

flag

word_rx[8]

RS 232

clk_50

reset

rs_e

tx_start

tx_done

TX

word_tx[8]

rx_ok

RX

end_frame

flag

word_rx[8]

plain[6]

key[6]

clk

so[4]

SBOX SR

sa_in[6]

sk_in[6]

message_chiffre_tmp[4]

entree[4]

clk

sortie[4]

Register_out

message_chiffre_tmp[4]

clk_gbf

chiffre[4]

entree[6]

clk

sortie[6]

Register_in

message_clair[6]

sbox_enable

sa_in[6]

entree[6]

clk

sortie[6]

Register_in

clef[6]

sbox_enable

sk_in[6]

Figura 5.4 Sistema embarcado desenvolvido para gerenciar o processo de coleta de perfis

de consumo de potência da S-BOX1.

A estrutura em blocos do sistema prototipado para viabilizar as medições de consumo de potência so-

bre a S-BOX1 é mostrada na Figura 5.4. O controlador RS-232 é utilizado para receber dados de um PC via

porta serial. Um módulo gerenciador de freqüências produz as freqüências necessárias à operação do circuito

a partir do oscilador externo de 50 MHz disponível na plataforma. Os registradores de entrada são responsá-

veis por armazenar os dados recebidos, sub-chave e texto de entrada, até o momento em que a medição é ha-

bilitada. Neste instante, o dado é disponibilizado à S-BOX1, para que o cálculo seja efetuado e seu consumo

seja simultaneamente monitorado pelo osciloscópio. O resultado do cálculo é armazenado em um registrador

de saída, que tem a função de atrasar por um ciclo de relógio a saída do dado cifrado nos pinos do FPGA. Es-

te atraso é necessário porque a saída destes sofre amplificação, resultando em um alto consumo de potência

que não representa verdadeiramente o consumo do circuito propriamente dito. Logo, isto justifica o uso do

registrador na saída para isolar o consumo do circuito e o consumo do dado disponível na saída do FPGA.

Para controlar todos os eventos durante a medição, desde a recepção dos dados até a disponibilização

na saída do FPGA foi necessário projetar um módulo de controle responsável por gerenciar este processo. A

Figura 5.5 mostra a máquina de estados finita (em inglês, Finite State Machine - FSM) que controla as etapas

do processo de medição do consumo de potência do sistema. O sinal ‘end_frame’ controla o ciclo de medi-

ção. Este sinal indica a chegada de uma palavra de 8 bits no controlador serial. A FSM monitora este sinal

para dar início ao processo de medição, ativando o sinal de início de leitura do osciloscópio (synchro_oscillo)

e em seguida disponibiliza o dado ao sub-módulo S-BOX1 através dos registradores de entrada. Ao final do

cálculo, o dado é disponibilizado na porta de saída e a FSM aguarda a chegada de um novo dado. Este pro-

cesso se repete para cada dado de entrada.

Page 60: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

46

S1

S2

S3

S4

end_frame=‘1’

message_clair[5..0]=word_rx[7..2]

synchro_oscillo=‘1’ SboxEnable=‘1’

SboxEnable=‘0’

synchro_oscillo=‘0’

end_frame=‘0’

S0 end_frame=‘0’

S5 end_frame=‘1’

Figura 5.5 Máquina de estados finita projetada para receber dados serial-

mente e sincronizar o processo de medição do perfil de potência da S-

BOX1 com o osciloscópio.

A Figura 5.6 mostra um exemplo de diagrama de tempos de uma simulação onde acontece a recepção,

cálculo e saída de dados no FPGA. Todo o gerenciamento do sistema é sincronizado pelo sinal de relógio.

1

2 3

4

5

6

Figura 5.6 Resultado de uma simulação, mostrando a ordem dos eventos durante o processo de medição e

coleta de dados. Em (1) end_frame indica que o dado word_rx está disponível para processamento. Em (2)

SboxValid indica a validação da codificação SR para STTL. Em (3) synchro_oscillo indica o inicio do

processo de medição do perfil de consumo. Em (4) SboxEnable habilita o cálculo realizado pela S-BOX1.

Em (5) ‘s_v’ indica a validade dos dados ‘s_t’ e ’s_f’na saída da S-BOX1. Em (6) os dados estão disponí-

veis na saída do FPGA. O tempo entre os eventos (4) e (5) representa o tempo de processamento da S-

BOX1 o qual será analisado durante os ataques DPA.

5.3 Desenvolvimento de Ataques DPA

Para desenvolver a análise diferencial do consumo de potência dos circuitos propostos é preciso inici-

almente coletar os perfis de consumo dos circuitos implementados, conforme o fluxo apresentado anterior-

mente. Após esta fase de coleta, é possível aplicar um tratamento nos dados adquiridos e desenvolver as aná-

lises DPA e CPA. Neste trabalho foram realizadas análises apenas sobre as implementações em trilha única e

STTL. A prototipação e avaliação da robustez das propostas em outras lógicas de trilha dupla serão realizadas

futuramente e servirão como parâmetro de comparação com a lógica STTL. Neste momento, o objetivo prin-

cipal é verificar se criptosistemas implementados em lógica SR sobre FPGA são vulneráveis e se implemen-

tações usando STTL são robustas.

Page 61: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

47

Na etapa de coleta de dados foram obtidos perfis de consumo para todas as transições possíveis de en-

trada do sub-módulo S-BOX1. Para a lógica STTL é possível encontrar 64 possíveis transições diferentes de

entrada de dados. Isto se deve ao uso obrigatório do espaçador entre dois dados válidos que faz com que uma

transição na entrada ocorra sempre a partir do espaçador ‘000000’. Já na implementação em trilha única, as

possibilidades de variação de entrada são bem maiores, é possível combinar 4033 diferentes transições com

os 6 bits de entrada da S-BOX1.

O processo de coleta de dados é desenvolvido em um ambiente onde as condições e o comportamento

dos equipamentos e materiais não são ideais, havendo portanto interferência de outros equipamentos bem

como ruídos nas instalações elétricas entre outras fontes. Para reduzir estes ruídos nas medições, bem como

aumentar a relação sinal-ruído (em inglês, Signal to Noise Ratio ou SNR), cada transição foi realizada 50 ve-

zes, de modo a obter um perfil médio de consumo para cada dado processado pela S-BOX1, e assim garantir

uma melhor confiabilidade para os experimentos.

Na etapa seguinte do fluxo de análise DPA foram executadas várias análises baseadas em dois diferen-

tes modelos de consumo de potência: o peso de Hamming e a distância de Hamming. Estas análises são ilus-

tradas na Figura 5.7. Neste processo foram desenvolvidas análises diferenciais de potência considerando dife-

rentes funções de seleção, conforme introduzido por Kocher [KOC99]. Desenvolveram-se quatro análises

diferentes, uma para cada bit de saída da S-BOX1.

Figura 5.7 Uma visão geral dos fluxos de

análises DPA e CPA.

Em seguida, também foram desenvolvidas análises diferenciais multi-bits, ou seja, foram ordenados os

perfis de consumo de acordo com o valor de dois bits de saída da S-BOX1 ao invés de um bit apenas. Neste

caso, de todos os perfis de consumo coletados apenas aqueles onde os dois bits analisados possuem respecti-

vamente valores “11” e “00” são agrupados em dois conjuntos distintos, chamados V1 e V0. Os perfis de con-

sumo correspondentes aos outros valores são descartados, não fazendo parte desta análise.

Para realizar ataques DPA foram utilizadas duas variações da função seleção de Kocher. Estas varia-

ções visam basicamente considerar o Peso de Hamming (em inglês, Hamming Weight - HW) ou a Distância

de Hamming (em inglês, Hamming Distance - HD) dos quatro bits de saída da S-BOX1. Assim, é preciso de-

finir dois conjuntos de perfis de consumo de acordo com o valor do HW ou da HD ao invés do valor de um

bit de saída apenas.

Outra possível análise sobre os perfis de consumo de potência coletados é denominada de Análise de

Potência por Correlação (em inglês, Correlation Power Analysis - CPA). Esta análise é baseada no Peso de

Hamming e na Distância de Hamming. Estas análises são desenvolvidas no domínio tempo, ou seja, para cada

Page 62: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

48

amostra de perfil de consumo de potência, existe um valor correlacionado entre o valor instantâneo de corren-

te e a HD ou o HW.

Como ilustrado na Figura 5.8 e na Figura 5.9, foram realizadas todas as análises de potência possíveis,

ou seja, para a S-BOX1 que possui 6 bits de sub-chave houve 64 análises, uma para cada possível hipótese de

sub-chave. As Figuras mostram respectivamente curvas que correspondem às diferenças de corrente e a corre-

lação por unidade de tempo. Normalmente, após o desenvolvimento completo da análise DPA, a chave secre-

ta corresponde à curva que apresenta a maior amplitude, conforme mostrado nas Figura 5.8 e Figura 5.9.

Figura 5.8 Curvas da análise diferencial

de potência obtidas com a sub-chave 10

no sub-módulo S-BOX1 implementado

com lógica em trilha única.

Figura 5.9 Curvas da análise de potên-

cia por correlação obtidas com a sub-

chave 10 no sub-módulo S-BOX1 im-

plementado com lógica em trilha única.

5.4 Resultados e Análises

Ao analisar os resultados obtidos, é necessário considerar teoricamente que, se a hipótese correspon-

dente à chave secreta é caracterizada pela curva de maior amplitude, uma margem deve ser estabelecida na

prática para garantir um maior nível de confiança para se concluir sobre o sucesso das análises DPA ou CPA.

Esta margem é definida como a diferença relativa mínima entre a amplitude do perfil DPA obtido para a cha-

ve correta e a amplitude obtida para as hipóteses de chave falsas. Neste trabalho foi considerado que uma

análise DPA ou CPA tem sucesso se a margem do resultado for maior que 10%.

Todas as análises de potência foram realizadas primeiramente sobre o sub-módulo S-BOX1 implemen-

tado em trilha única. Estas análises foram desenvolvidas usando uma seqüência de entrada de 4033 diferentes

vetores de entrada. Ela foi definida para obter o perfil médio de potência de todas as transições possíveis para

Page 63: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

49

os 6 bits de entrada. Para cada valor de sub-chave considerado, a maioria das análises diferenciais de potência

obteve sucesso com margens entre 10% e 30% dependendo da função de seleção considerada. Além disso,

durante estas análises, foi observado que o modelo HD tem, como esperado, resultados com margens maiores

que o modelo HW. Como ilustração, a Figura 5.8 apresenta os perfis DPA obtidos para a sub-chave “10”, en-

quanto a Figura 5.9 representa a evolução dos coeficientes de correlação com relação ao número de vetores

de entrada usados para desenvolver a correlação da análise de potência. Como mostrado na última Figura,

200 entradas são geralmente suficientes para revelar a sub-chave secreta mesmo que a convergência estatísti-

ca não seja alcançada.

Tabela 5.2 Resultado das análises de potência para o sub-módulo S-BOX1 implementado

com lógica STTL.

Sub-chave Modelo HW Modelo HD

0 → 34 Análise de potência falhou Análise de potência falhou

35 Análise de potência falhou Sucesso (DPA Kocher bits 0 e 2) margem: 8%

36 → 56 Análise de potência falhou Análise de potência falhou

57 Sucesso (DPA Kocher bit0) margem: 13%

Análise de potência falhou

58 → 63 Análise de potência falhou Análise de potência falhou

Em um segundo experimento, as análises de potência foram realizadas sobre o sub-módulo S-BOX1

implementado com lógica STTL. Estas análises foram desenvolvidas para todos os valores possíveis de chave

secreta. A Tabela 5.2 resume os resultados obtidos com as análises. Como mostrado, apenas a hipótese de

chave secreta “57” foi revelada com um alto nível de confiança pela análise de potência baseada no modelo

HW, obtendo uma margem igual a 13%, superior aos 10% definidos inicialmente como certo. Este resultado

pode ser visto na Figura 5.10, onde é possível observar que a margem é obtida em um intervalo de tempo ex-

tremamente curto, o que poderia caracterizar como um pico esporádico.

Figura 5.10 Curvas resultantes da análi-

se diferencial de potência obtidas com a

sub-chave 57 na S-BOX1 implementada

com lógica STTL.

Page 64: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

50

Estes resultados demonstraram a robustez da lógica STTL sobre um sub-módulo do algoritmo DES, ou

seja, demonstraram que projetar um módulo com tempo de cálculo e consumo de potência quase independen-

te de dados é uma boa solução para aumentar a robustez contra DPA e CPA.

5.5 Aperfeiçoamento da Lógica STTL

Como visto nos resultados na Tabela 5.1, a principal desvantagem da lógica STTL é seu custo em área

e tempo de processamento. Assim, uma nova proposta de implementação da lógica permite a redução da área.

A Figura 5.1 apresenta 4 diferentes implementações de uma porta AND desenvolvidas para melhor avaliar a

lógica STTL. A Figura 5.1 mostra a estrutura de portas DR DIMS em (a) versão original e (b) versão balan-

ceada. Já (c) e (d) respectivamente mostram a estrutura STTL anteriormente discutida e a versão reduzida,

conforme apresentado em [LOM08][SOA09].

Figura 5.11 Novo proposta de implementação da biblioteca

STTL. Este exemplo mostra uma porta AND de duas entradas.

O uso de um elemento-C assimétrico permite a implementação da mesma lógica obtida por três portas

lógicas e conseqüentemente a redução da profundidade lógica da estrutura. Isso leva a redução de mais uma

porta lógica usada simplesmente para equilibrar o tempo e consumo das lógicas diferenciais. O atraso D pode

ser reduzido em duas portas lógicas, totalizando uma redução de seis portas na composição de uma porta

AND STTL de duas entradas. Esta otimização pode ser realizada nas portas lógicas NAND, OR e NOR, sen-

do inviável na porta XOR devido à simetria dos circuitos lógicos diferenciais.

A Tabela 5.3 mostra uma comparação com as simulações anteriormente realizadas segundo custos de

área e tempo de processamento. Os resultados mostram uma redução de 26% em área e uma pequena redução

no tempo de execução. Os ganhos obtidos em área motivam a utilização desta nova versão da biblioteca

STTL, porém ainda é necessário submetê-la aos ataques DPA de maneira a investigar sua robustez.

Page 65: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

51

Tabela 5.3 Resultados pos simulação da implementação do Sub-modulo C por 5 diferentes

bibliotecas. Os custos em área e tempo de execução são apresentados [LOM08] [SOA09].

SR DR DR2 STTL STTL2

Min (ns) 15,6 48,1 55,9 103,0 81,7

Max (ns) 26,6 58,5 61,7 103,0 81,7

Média (ns) 22,2 53,5 58,9 103,0 81,7

Dif (ns) 10,9 10,4 5,8 0 0

Área (slices) 175 490 490 966 501

Área (%) 9 25% 25% 50% 26%

5.6 Ataques DPA e DEMA sobre STTL

Os ataques realizados nos experimentos anteriores foram novamente aplicados sobre a S-BOX1 com as

bibliotecas descritas na Figura 5.11. Porém neste instante, os circuitos propostos são submetidos a outro tipo

de ataque a canal escondido. Ataques por analise da emissão de ondas eletromagnéticas são também usados

para avaliar a robustez das bibliotecas propostas. Para desenvolver estes ataques é necessário o uso de uma

sonda eletromagnética. Trata-se de uma microbobina capaz de captar campos eletromagnéticos de baixa in-

tensidade, a exemplo de um circuito integrado. O uso de um amplificador de baixo ruído faz-se também ne-

cessário para aumentar a amplitude dos sinais medidos.

Nos experimentos realizados foi usado um amplificador de 63db de baixo ruído e uma sonda eletro-

magnética (EM) artesanal feita com fio de um mm2 de área transversal. A Figura 5.12 mostra os equipamen-

tos usados durante as medições. A sonda deve ser posicionada sobre a superfície do FPGA, especificamente

sobre a área onde existe a maior intensidade de emissão EM.

Figura 5.12 Sistema de medição de emissão de ondas eletro-

magnéticas [SOA09].

Page 66: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

52

A Tabela 5.4 resume os resultados de análises de potência sobre todas as versões descritas na Figura

5.11.

Tabela 5.4 Percentual de sub-chaves descobertas com a

realização de ataques DPA e DEMA. (NR-Não realizado)

Bibliotecas DPA DEMA

S-BOX1 SR 70% 99%

S-BOX1 DR Figura 5.11(a) 90% NR

S-BOX1 DR Figura 5.11(b) 3% 31%

S-BOX1 STTL Figura 5.11(c) 5% NR

S-BOX1 STTL Figura 5.11(d) 1,5% 9%

A partir disto conclui-se que o comportamento temporal quase independente de dados de STTL explica

o aumento da robustez contra a fuga de informação pela emissão de ondas eletromagnéticas, pois balancear

simultaneamente o chaveamento de corrente e o tempo permite teoricamente balancear o campo eletromagné-

tico ß que é proporcional a di/dt radiado pelo chip inteiro. Entretanto este balanceamento em nível de bloco

não garante que todos os pontos do chip radiam o mesmo campo magnético desde que o posicionamento das

células e o roteamento dos fios de alimentação não possuem restrições. Isto explica a vulnerabilidade rema-

nescente de DR e STTL contra DEMA e CEMA.

5.7 Conclusão

Estes experimentos avaliaram a robustez da lógica STTL contra os ataques DPA e DEMA. Esta avalia-

ção foi realizada sobre FPGAs usando hard macros e algoritmos de roteamento e posicionamento padrões. Os

resultados obtidos demonstram que a lógica STTL é definitivamente mais robusta contra DPA e CPA que a

lógica SR e ligeiramente melhor que DR. Os resultados também mostram que o custo em área para ambas às

lógicas STTL e DR é praticamente o mesmo. Por outro lado, verifica-se que STTL mesmo sendo mais robusta

que SR e DR ainda não é completamente a robusta a DEMA/CEMA.

Page 67: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

53

6. PROPOSTA DE TRABALHO

Este trabalho propõe investigar algoritmos criptográficos com o objetivo de identificar módulos fun-

cionais que sejam executados repetidamente, de modo que seja possível construir circuitos específicos para

cada passo da execução estabelecendo uma replicação de módulos funcionais. Isto leva a formação de uma

arquitetura pipeline de encriptação de dados sem alteração do algoritmo originalmente proposto. A tese é que

a execução simultânea de cada estágio do pipeline tende a sobrepor o consumo de potência de operações vul-

neráveis e conseqüentemente aumenta a robustez do circuito a ataques DPA. Ainda como parte da tese sus-

tenta-se que a arquitetura proposta permite o aumento na vazão de dados, o que a torna indicada para aplica-

ções que exijam desempenho de processamento.

Para o cumprimento desta proposta prevê-se: (i) o desenvolvimento de interfaces de comunicação as-

síncrona para encapsular módulos funcionais; (ii) investigar o particionamento de algoritmos criptográficos;

(iii) projetar ilhas síncronas com a replicação de módulos funcionais de modo a constituir um pipeline; (iv)

implementar um esquema de chaveamento de freqüências nas ilhas síncronas, avaliando a aleatoriedade do

consumo introduzidos no sistema; (v) realizar ataques DPA para avaliar a robustez do método proposto. To-

dos os estudos de casos para prova de conceito serão realizados através de prototipações em FPGA. As Se-

ções a seguir detalham os componentes que serão utilizados na arquitetura proposta.

6.1 Proposta de Estruturas de Ilhas Síncronas

Para obter uma ilha síncrona é necessário encapsular módulos síncronos usando estruturas de suporte a

sincronização entre ilhas síncronas, como visto no Capítulo 4. Nesta Seção são apresentadas algumas propos-

tas de estruturas candidatas para uso na arquitetura a ser proposta. Como dito, os circuitos apresentados aqui

funcionam como modelos genéricos, podendo ser incrementadas e/ou combinadas durante o andamento do

trabalho, de acordo com os resultados obtidos. A Figura 6.1 mostra uma proposta de forma de encapsulamen-

to de módulos síncronos para construir uma ilha síncrona. A comunicação entre dois módulos operando em

domínios de freqüência diferentes é estabelecida com o uso de sincronizadores cuja função é isolar fenôme-

nos de metaestabilidade durante a comunicação. Um sincronizador nada mais é, em sua forma mais simples,

que uma cadeia de flip-flops em série controlados pelo relógio do domínio local. A comunicação será avaliada

com protocolos de duas e quatro fases.

A estrutura mostrada na Figura 6.1, uma interface assíncrona de baixa complexidade, exigindo pouca

área adicional. No entanto, a estrutura pipeline pretendida tem como exigência operar em diferentes domínios

de freqüência o que pode levar a formação de gargalos de comunicação entre módulos. O uso de dispositivos

de armazenamento na interface de comunicação pode ser uma solução para amenizar estes gargalos. A Figura

6.2 apresenta uma outra proposta de ilha síncrona, utilizando filas bi-síncronas para estabelecer a interface de

comunicação entre os módulos. Estas filas permitem acessos de leitura e escrita em freqüências de operação

diferentes, podendo ser uma alternativa para evitar congestionamentos na comunicação. Por outro lado, esta

solução pode representar um alto custo em área, visto que os dados e chaves criptográficas trocados entre os

módulos possuem, tipicamente, pelo menos 64 bits de largura.

Page 68: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

54

Figura 6.1 Proposta de interface estrutura de ilha síncrona com comunica-

ção por protocolo handshake garantido por sincronizadores.

Figura 6.2 Proposta de estrutura de ilha síncrona para

encapsular módulos criptográficos vulneráveis aos ata-

ques DPA.

6.1.1 Processo de Geração de Relógio

A geração de relógio é um processo fundamental da arquitetura proposta, pois ele tem como função

produzir o sinal que sincroniza o processamento interno da ilha GALS. Além disso, este módulo eventual-

mente deve ser capaz de variar a freqüência do sinal de relógio, para que contribua em adição ao processa-

mento paralelo dos estágios com o aumento da aleatoriedade do padrão de consumo do criptosistema. Para

isso, projeta-se que ao término do processamento em cada ilha GALS exista a mudança aleatória para uma

nova freqüência de relógio. Isto garante que os perfis de potência tenham variações temporais. Em um exem-

plo de arquitetura pipeline com 4 estágios, onde cada estágio possua 8 freqüências diferentes, o número total

de combinações de freqüências pode ser obtido por análise combinatória [SAN95]. Segundo o princípio fun-

damental da contagem, se um determinado acontecimento ocorre em etapas diferentes, e se a primeira etapa

pode ocorrer k1 maneiras diferentes, a segunda K2 maneiras diferentes e assim sucessivamente, então o núme-

ro total T de maneiras de ocorrer tal acontecimento é dado por nkkkT 21 . Para o exemplo em

questão, 40968888 T combinações de freqüências para a encriptação completa de dados. Se o

pipeline tiver um número maior de estágios, o número de combinações cresce exponencialmente. A Figura

6.3 mostra um esboço da estrutura candidata a geração de relógio nas ilhas síncronas.

Page 69: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

55

Gerador de

relógios

M

U

X

f1

f2

fn

LFSR

Figura 6.3 Gerador de relógios com di-

ferentes freqüências. O multiplexador e

o gerador de números aleatórios (LFSR),

selecionam um sinal de relógio.

Outra opção para geração de sinais de relógio é o uso de circuitos gerenciadores de relógio (em inglês,

Delay Locked Loop - DLL). Estes circuitos foram desenvolvidos como uma solução alternativa aos problemas

de escorregamento de relógio e atrasos na rede de distribuição do sinal de relógio. Os circuitos DLLs ofere-

cem algumas funcionalidades adicionais tais como multiplicação, divisão e deslocamento de fase da freqüên-

cia de um sinal de relógio [XAP06]. Estas funções podem ser aproveitadas e utilizadas como uma alternativa

para a geração de relógios nas arquiteturas propostas. Algumas famílias de FPGAs Xilinx tais como Spartan e

Virtex são equipadas com componentes DLLs que são especificamente denominados pelo fabricante de

DCMs (do inglês, Digital Clock Manager). Apenas um DCM é capaz de gerar 8 diferentes sinais de relógio a

partir de um sinal de relógio externo, conforme indicado na Figura 6.4.

Figura 6.4 Um exemplo de gerenciador de redes de

relógio. No caso apresenta-se um DCM do FPGA

da família Virtex2 da Xilinx [XIL07].

Outra alternativa para geração de sinais de relógio pode ser o uso de osciladores em anel dedicados. O

número de inversores que compõem a cadeia determina a freqüência do sinal gerado baseado nos tempos de

chaveamento dos inversores e de propagação nos fios que interconectam os inversores no anel. Importante

citar que o número de inversores deve ser impar para que exista a oscilação. Adicionalmente poder-se-ia inse-

Page 70: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

56

rir flip-flops para dividir a freqüência gerada, caso necessário. Este tipo de estrutura apresenta baixo custo em

área como vantagem. Por outro lado, as faixas de freqüências geradas ficam limitadas pelas cadeias de inver-

sores. Mesmo assim, caracteriza uma possibilidade de projeto e implementação.

6.2 Particionamento de Algoritmos Criptográficos

Outra etapa importante deste trabalho é investigar algoritmos criptográficos que se enquadrem à tese

proposta. A idéia nesta etapa é estudar e identificar módulos funcionais dos algoritmos criptográficos que

sejam vulneráveis a SCAs e que permitam sua replicação sem alteração do algoritmo proposto, formando um

pipeline de processamento e conseqüentemente serem sujeito a ter sua robustez elevada. Os algoritmos simé-

tricos cujo processo de encriptação baseia-se na execução sucessiva de um round enquadram-se ao perfil des-

ta proposta. Neste trabalho os estudos de caso serão realizados com o algoritmo DES, mas o conceito propos-

to deve abranger outros algoritmos, tais como AES, MD-5 e SHA-1 entre outros algoritmos sob análise.

6.3 Projeto de Arquiteturas Pipeline GALS

O objetivo deste trabalho é encapsular módulos funcionais, no caso do algoritmo DES seus rounds, em

ilhas síncronas, de modo a formar um pipeline. O perfil de consumo é alterado a cada dado processado e a

cada freqüência utilizada durante o processamento dos rounds. O número de módulos replicados depende de

cada algoritmo criptográfico utilizado. O AES, por exemplo, varia o número de rounds de acordo com o ta-

manho da chave criptográfica. No total são 10 rounds para uma chave de 128 bits e 14 rounds para chaves de

256 bits. Já o DES exige o processamento de 16 rounds para encriptar um dado de 64 bits usando uma chave

criptográfica também de 64 bits. Portanto, no caso do algoritmo DES, é possível replicar 16 vezes seu round,

permitindo que no melhor caso, quando o pipeline estiver completo, tenham-se 16 dados diferentes sendo

processados simultaneamente. A Figura 6.5 mostra um exemplo genérico de uma arquitetura pipeline.

Entrada

Estágio 1

Saída E2 Entrada

Estágio 2

Saída Entrada

Estágio n

Saída

Figura 6.5 Algoritmo com módulos funcionais replicados e encapsulados por interface assíncrona forman-

do um pipeline de execução com n estágios.

6.4 Avaliação de Arquiteturas Pipeline GALS

Após a conclusão de duas atividades importantes, o projeto e validação de interfaces propostas e a va-

lidação do criptosistema sobre uma arquitetura pipeline síncrona, o próximo desafio passa a ser a criação de

diferentes cenários de operação de algoritmos criptográficos implementados como pipelines de modo a inserir

aleatoriedade na execução do criptosistema. Estes cenários propostos visam provar a hipótese de que a fuga

de informações é mascarada pelo aumento da aleatoriedade do consumo do circuito. Cada cenário apresentará

um conjunto de relógios e modo de controle aleatório para seleção de sinal de relógio para o processamento

Page 71: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

57

do round. A Figura 6.6 ilustra de maneira simplificada alguns possíveis cenários com diferentes níveis de ale-

atoriedade.

Figura 6.6 Ilustração dos possíveis cenários de operação de

algoritmos criptográficos implementados como pipelines ado-

tando, por exemplo, pipeline com 4 estágios de profundidade.

Em (a) todos os estágios operam em mesma freqüência. Em (b)

as freqüências de cada estágios são fixas, porém distintas. Em

(c) o cenário é o mesmo, porém a arquitetura possui filas de

armazenamento entre os estágios. Em (d) as freqüências de

operação são variadas em cada estágio, dando uma maior alea-

toriedade ao criptosistema.

Como mostrado na Figura 6.6, no cenário (a) todos os estágios operam em mesma freqüência. Em (b)

as freqüências de cada estágios são fixas, porém distintas. Em (c) o cenário é o mesmo, porém a arquitetura

possui filas de armazenamento entre os estágios. Já em (d), as freqüências de operação são variadas em cada

estágio, dando uma maior aleatoriedade ao criptosistema.

Page 72: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

58

7. CRONOGRAMA DE ATIVIDADES

Esta Seção descreve o conjunto de atividades que foram desenvolvidas, estão em desenvolvimento,

ou que ainda devem ser elaboradas para completar a Tese de Doutorado do Autor desta proposta. As ativida-

des estão dispostas na Tabela 7.1 em ordem cronológica de seu início.

O cronograma de trabalho proposto compreende dezesseis atividades. São elas:

Atividade 1

Concluída

Cursar disciplinas: Esta atividade compreende a realização dos 36 créditos ne-

cessários ao programa de doutorado. As disciplinas foram concluídas no

primeiro ano de doutorado.

Atividade 2

Parcialmente Concluída

Estado da arte: Esta tarefa diz respeito à investigação de trabalhos atuais que tra-

tam do tema alvo deste trabalho. No Capítulo 3 apresentou-se um resumo

de trabalhos relacionados ao tema proposto. Esta atividade exige atualiza-

ção constante. Logo, continuará sendo desenvolvida até o final do doutora-

do.

Atividade 3

Concluída

Biblioteca de hard macros: Nesta tarefa desenvolveram-se diversos circuitos bá-

sicos para dar suporte à implementação de circuitos assíncronos em FPGAs

usando ferramentas e o fluxo de projeto de circuitos síncronos, associado a

ferramentas e técnicas de projeto de baixo nível.

Atividade 4

Concluída (sanduíche)

Prototipação da lógica STTL: Nesta etapa, foi realizado o mapeamento da bibli-

oteca CMOS STTL [RAZ07] em FPGAs através de hard macros. O sub-

módulo S-BOX1 do DES foi prototipado e validado em FPGA usando a ló-

gica STTL.

Atividade 5

Concluída (sanduíche)

Realização de ataques DPA: O fluxo de ataques DPA foi realizado sobre uma S-

BOX1 implementada em lógica single rail típica.

Atividade 6

Concluída (sanduíche)

Avaliação da robustez da lógica STTL: Após a validação do fluxo de tratamento

e análises de consumo de potência, o S-BOX1 STTL foi submetido a ata-

ques DPA e DEMA. Os resultados mostram que o estilo lógico proposto

tem uma melhor imunidade comparada a implementações DR equivalentes.

Page 73: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

59

Atividade 7

Parcialmente Concluída

Escrita e submissão de artigos: Está prevista a escrita e submissão de artigos ao

final de cada uma das principais etapas desse trabalho. A avaliação do pro-

tótipo da lógica STTL já obteve 3 publicações (SBCCI’08, Reconfig’08 e

DATE’09). O artigo publicado no SBCCI ficou classificado entre os 10 me-

lhores da conferência, sendo convidado para ser submetida uma versão es-

tendida do mesmo a revista JICS. Este artigo encontra-se em processo de

elaboração. Como ainda faltam etapas do trabalho, novos resultados devem

ser publicados. Esta etapa encontra-se parcialmente concluída.

Atividade 8

Concluída

Exame de qualificação: No ano de 2008 foi submetido o exame de qualificação à

avaliação da Comissão Coordenadora do PPGCC e obtida aprovação no

mesmo.

Atividade 9

Concluída (sanduíche)

Estágio de doutorado: Teve início em setembro de 2007 o estágio de doutorado,

realizado no LIRMM de Montpellier. Durante este foram realizadas ativi-

dades 2, 4, 5 e 6.

Atividade 10

Em avaliação

Proposta de tese: Essa etapa compreende a escrita de documentação da proposta

de tese e defesa perante Comissão avaliadora.

Atividade 11

Iniciada

Particionamento do algoritmo DES: Um estudo de caso será realizado com o al-

goritmo DES. Nesta atividade será implementada e validada uma arquitetu-

ra pipeline síncrona.

Atividade 12

Iniciada

Desenvolvimento de interface de comunicação assíncrona: Nesta atividade,

Atividade 13

Não Iniciada

Implementação de um pipeline GALS: Dentro desta atividade busca-se inserir os

rounds do DES em interfaces GALS. Esta é uma etapa importante, pois re-

presenta o uso de um paradigma para garantir diferentes domínios de fre-

qüências. Nesta atividade, utilizar-se-á uma freqüência fixa para todas as

ilhas GALS.

Atividade 14

Não Iniciada

Projeto de relógios aleatórios: Nesta atividade será projetada uma estrutura ca-

paz de gerar sinais de relógio com diferentes freqüências, bem como um

circuito de chaveamento livre de sinais espúrios capaz de selecionar aleato-

riamente um sinal de relógio.

Atividade 15

Não Iniciada

Estudos de caso: Esta atividade prevê a realização de estudos de caso com a ar-

quitetura proposta. Está previsto o uso de pipelines com diversas profundi-

dades e diversas variações de freqüência em cada ilha síncrona.

Atividade 16

Não Iniciada

Avaliação da robustez das contramedidas propostas: Esta atividade tem o objeti-

vo de avaliar a fuga de informações do criptosistema proposto. O fluxo de

análise DPA empregado e validado na atividade 5 será reutilizado.

Atividade 17

Não Iniciada

Escrita da tese e apresentação: Nesta etapa desenvolve-se a escrita do volume e a

apresentação da Tese em questão.

Page 74: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

60

A Tabela 7.1 apresenta a distribuição das tarefas de acordo com o período do doutorado. Nessa tabela

células azuis claras representam as etapas concluídas, azuis escuras indicam as tarefas em andamento e as

verdes restantes representam as atividades necessárias para a conclusão do trabalho.

Tabela 7.1 Cronograma de atividades proposto para conclusão do trabalho.

Atividades 2006 2007 2008 2009

1. Cursar disciplinas

2. Estado da arte

3. Biblioteca de hard macros

4. Estágio de doutorado (LIRMM)

5. Prototipação da lógica STTL

6. Realização de ataques DPA

7. Avaliação da robustez de STTL

8. Escrita e submissão de artigos

9. Exame de qualificação

10. Proposta de tese

11. Particionamento do DES

12. Desenvolvimento de uma interface

de comunicação assíncrona

13. Implementação de um pipeline

GALS

14. Projeto de relógios aleatórios

15. Estudos de Caso

16. Avaliação da robustez de contra-

medida

17. Escrita e apresentação da tese

Page 75: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

61

8. CONCLUSÃO

A evolução da tecnologia VLSI que se traduz na miniaturização de transistores e fios põe em risco o

consolidado paradigma síncrono de projeto de sistemas digitais. As exigências do mercado consumidor por

sistemas com maior complexidade e maior poder computacional fazem com que problemas tais como o con-

sumo de potência, e o escorregamento do sinal de relógio tomem proporções incontornáveis pelo paradigma

síncrono. Deste modo o uso do paradigma não-síncrono torna-se uma alternativa ao projeto de sistemas digi-

tais com as novas tecnologias VLSI. A proposta GALS de Chapiro torna-se uma solução em curto prazo ao

desenvolvimento de sistemas digitais.

O crescente uso de sistemas embarcados fez expandir as áreas de aplicações sendo usado atualmente

em aplicações bancárias, comércio eletrônico, sistemas de autenticação de usuários onde a segurança sobre os

dados e a confiabilidade dos sistemas tornam-se questões importantes de projeto. O uso de criptografia pas-

sou a ser imprescindível para garantir a troca de informações através de meios de comunicação não confiáveis

tal como a rede Internet, por exemplo. Muitos esforços foram direcionados na concepção de algoritmos crip-

tográficos robustos às diversas criptoanálises. O uso de criptografia em sistemas embarcados tal como smart

cards passou a impulsionar o mercado de dispositivos contendo dados pessoais. Neste cenário, Kocher propôs

um novo tipo de ataque que explora vulnerabilidades físicas de criptosistemas permitindo correlacionar os

dados processados através do consumo de potência, emissão de ondas eletromagnéticas e tempos de proces-

samento, ataques estes conhecidos como SCAs.

Este trabalho contribuiu com a revisão da literatura sobre o problema causado pelos SCAs e as abor-

dagens propostas para imunizar sistemas criptográficos contra estes tipos de ataques. Este trabalho teve como

objetivo propor uma nova abordagem de imunização baseada no paradigma GALS de projeto. Uma investiga-

ção de arquiteturas GALS em forma de pipeline operando em diferentes domínios de freqüência é apresenta-

da, visando impor uma aleatoriedade ao perfil de consumo do sistema de forma a mascarar a fuga de informa-

ções. Comparações com abordagens do estado da arte serão estabelecidas como meio de avaliação da propos-

ta segundo custos de área, consumo, desempenho e segurança. Este trabalho dará continuidade às atividades

desenvolvidas no estágio sanduíche realizado no laboratório LIRMM na França. O grupo de pesquisa GAPH

conta com um laboratório equipado com recursos suficientes para dar suporte ao desenvolvimento e conclu-

são deste trabalho.

Page 76: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

62

REFERÊNCIAS BIBLIOGRÁFICAS

[AKK01] Akkar, M.; Giraud, C.; “An Implementation of DES and AES Secure Against some

Attacks”. In: Cryptographic Hardware and Embedded Systems (CHES’01), May, pp.

309-318, 2001.

[BAD07] Baddam, K.; Zwolinski, M.; “Evaluation of Dynamic Voltage and Frequency Scaling

as a Differential Power Analysis Countermeasure”. In: 20th International Conference

on VLSI Design (VLSID’07), January, pp. 854-862, 2007.

[BEN03] Benini, L.; Macii, A.; Macii, E.; Omerbegovic, E.; Pro, F.; Poncino, M.; “Energy-

Aware Design Techniques for Differential Power Analysis Protection”. In: 40th De-

sign Automation Conference (DAC '03), June, pp. 36-41, 2003.

[BIH90] Biham, E.; Shamir, A.; “Differential Cryptanalysis of DES-like Cryptosystems”. In:

10th Annual International Cryptology Conference (CRYPTO’90), August, pp. 2-21, 1990.

[BIH99] Biham, E.; Shamir, A.; “Power Analysis of the Key Scheduling of the AES Candi-

dates”. In: 2nd

AES Candidate Conference (AES2), March, 1999.

[BON97] Boneh, D.; DeMillo, R.; Lipton, R.; “On the Importance of checking Cryptographic

Protocols for Faults”. In: International Conference on the Theory and Application of

Cryptographic Techniques (EUROCRYPT’97), May, pp. 37-51, 1997.

[BOU05] Bouesse, G.; Renaudin, M.; Dumont, S.; Germain, F.; “DPA on Quasi Delay Insensi-

tive Asynchronous Circuits: Formalization and Improvement”. In: Design, Automa-

tion and Test in Europe Conference and Exposition (DATE’05), March, pp. 424-429,

2005.

[BUC05] Bucci, M.; Luzzi, R.; Guglielmo, M.; Trifiletti, A.; “A Countermeasure against Differ-

ential Power Analysis based on Random Delay Insertion”. In: IEEE International

Symposium on Circuits and Systems (ISCAS’05), May, pp. 3547-3550, 2005.

[CAL98] Calazans, N. L. V. “Projeto Lógico Automatizado de Circuitos Lógicos Seqüênciais”.

Imprinta, 342p. 1998.

[CHA84] Chapiro, D. “Globally Asynchronous Locally Syncronous”. PhD Thesis, Stanford

University, Stanford, USA, October 1984.

[CHE06] Chen, Z.; Zhou, Y.; “Dual-Rail Random Switching Logic: A Countermeasure to Re-

duce Side Channel Leakage”. In: 8th Workshop on Cryptographic Hardware and Em-

bedded Systems (CHES’06), October, pp. 242-254, 2006.

[CIE03] Ciet, M.; Neve, M.; Peeters, E.; Quisquater, J.-J.; “Parallel FPGA Implementation of

RSA with Residue Number Systems - Can Side-Channel Threats be Avoided?”. In:

46th IEEE International Midwest Symposium on Circuits and Systems (MWSCAS'03),

December, pp. 27-30, 2003.

[COR06] Cortadella, J.; Kondratyev, A.; Lavagno, L.; Sotiriou, C.P., “Desynchronization: Syn-

thesis of Asynchronous Circuits from Synchronous Specifications”. IEEE Transac-

tions on Computer-Aided Design of Integrated Circuits and Systems, 25(10), pp. 1904-

1921, October, 2006.

Page 77: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

63

[DAE99] Daemen, J.; Rijmen, V.; “Resistence Against Implementation Attacks: A Compara-

tive Study of the AES Proposal”. In: 2nd

Advanced Encryption Standard (AES), March,

1999.

[DIF76] Diffie, W.; Hellman, M.; “New Directions in Cryptography”. IEEE Transactions on

Information Theory, 22(6), pp. 644-654, November, 1976.

[FEI73] Feistel, H.; “Cryptography and Computer Privacy”. Scientific American, 228(5), pp.

15-23, May, 1973.

[FIP01] Federal Information Processing Standards Publication; “Security Requirements for

Cryptographic Modules”. National Institute of Standards and Technology (NIST),

May, Standard Publication, 64p. 2001.

[GHE08] Ghellar, F.; Lubaszewski, M.; “A Novel AES Cryptographic Core Highly Resistant to

Differential Power Analysis”. In: 21st Symposium on Integrated Circuits and Systems

Design (SBCCI’08), September, pp. 140-145, 2008.

[GHO07] Ghosh, S.; Alam, M.; Kumar, K.; Mukhopadhyay, D.; Chowdhury, D.; “Preventing the

Side-Channel Leakage of Masked AES S-Box”. In: International Conference on Ad-

vanced Computing and Communications (ADCOM’07), December, pp. 18-21, 2007.

[GOL02] Golic, J.; Tymen, C.; “Multiplicative Masking and Power Analysis of AES”. In: Cryp-

tographic Hardware and Embedded Systems (CHES’02), August, pp. 198-212, 2002.

[GUR06] Gürkaynak, F.; Oetiker, S.; Kaeslin, H.; Felber, N.; Fichtner, W. “Design Challenges

for a Differential-Power-Analysis Aware GALS-based AES Crypto ASIC”. Elec-

tronic Notes in Theoretical Computer Science, 146(2), pp. 133-149, January, 2006.

[GUR06a] Gürkaynak, F.; Oetiker, S.; Kaeslin, H.; Felber, N.; Fichtner, W.; “GALS at ETH Zur-

ich: Success or Failure?”. In: 12th IEEE International Symposium on Asynchronous

Circuits and Systems (ASYNC’06), March, pp. 150-169, 2006.

[HAI07] Haijun, L.; Tao, Z.; Huiling, L.; Qiang, S.; “A New Method Against High-Order Dif-

ferential Power Analysis”. In: International Conference on Wireless Communications,

Networking and Mobile Computing (WiCom’07), September, pp. 2188-2191, 2007.

[HAU95] Hauck, S.; “Asynchronous Design Methodologies”. Proceedings of the IEEE. 83(1), pp.

69-93, January, 1995.

[HEN01] Hendry, M.; “Smart Card Security and Applications”. Second Edition. Artech House,

328 p. 2001.

[HO01] Ho, R.; May, K.; Horowitz, M.; “The Future of Wires”. Proceedings of the IEEE.

89(4), pp. 490-504, April, 2001.

[HUE04] Hüebner, M.; Becker, T.; Becker, J.; “Real-Time LUT-Based Network Topologies for

Dynamic and Partial FPGA Self-Reconfiguration”. In: 17th Symposium on Integrated

Circuits and Systems (SBCCI’04), September, pp. 28-32, 2004.

[HUI07] Huiping, J.; Rui, X.; Sheng, B.; “Advanced DES Algorithm against Differential Pow-

er Analysis and its Hardware Implementation Data”. In: The First International Sym-

posium on Privacy and E-Commerce, 2007. (ISDPE 2007). November. pp. 316-320,

2007.

[ITR05] International Technology Roadmap for Semiconductors. “ITRS 2005 Edition”. Captu-

rado em http://www.itrs.net/Links/2005ITRS/Home2005.htm, December, 2005.

[KOC96] Kocher, P.; “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and

others Systems”. In: 16th International Cryptology Conference on Advances in Cryptol-

ogy (CRYPTO’96), August, pp. 104-113, 1996.

Page 78: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

64

[KOC99] Kocher, P.; Jaffe, J.; Jun, B.; “Differential Power Analysis”. In: 19th International

Cryptology Conference on Advances in Cryptology (CRYPTO’99), August, pp. 388-397,

1999.

[KRS07] Krstic, M.; Grass, E.; Gurkaynak, F.; Vivet, P., “Globally Asynchronous, Locally Syn-

chronous Circuits: Overview and Outlook”. IEEE Design & Test of Computers, 24(5),

pp. 430-441, September-October, 2007.

[KUL05] Kulikowski, K.; Su, M.; Smirnov, A.; Taubin, A.; Karpovsky, M.; MacDonald, D.; “De-

lay Insensitive Encoding and Power Analysis: A Balancing Act”. In: 11th IEEE Inter-

national Symposium on Asynchronous Circuits and Systems (ASYNC’05), March, pp.

116-125, 2005.

[LEU07] Leung, L.; Tsui, C.; “Energy-Aware Synthesis of Network-on-Chip Implemented

with Voltage Islands”. In: 44th Design Automation Conference (DAC '07), June, pp.

128-131, 2007.

[LOM08] Lomné,V.; Ordas, T.; Maurine, P.; Torres, L.; Robert, M.; Soares, R.; Calazans, N.;

“Triple Rail Logic Robustness against DPA”. In: International Conference on Recon-

figurable Computing and FPGA (RECONFIG’08), December, (approved paper).

[MAR02] Martín-Langerwerf, J.; Reuter, C.; Kropp, H.; Pirsch, P.; “Benefits of Macro-based

Multi-FPGA Partitioning for Video Processing Applications”. In: 13th Workshop on

Rapid Systems Prototyping (RSP’02), July, pp. 60-65, 2002.

[MAR06] Martin, A.; Nystrom, M.; “Asynchronous Techniques for System-on-Chip Design”.

Proceedings of the IEEE, 94(6), pp. 1089-1120, June, 2006.

[MAT93] Matsui, M.; “Linear Cryptoanalysis Method for DES Cypher”. In: Workshop on the

Theory and Application of Cryptographic Techniques Advances in Cryptology

(EUROCRYPT’93), May, pp. 386-397, 1993.

[MAU08] Maurine, P.; “Internal Meetings”. 2008.

[MES90] Messerschmitt, D.; “Synchronization in Digital System Design”. IEEE Journal on Se-

lected Areas in Communications, 8(8), pp. 1404-1419, October, 1990.

[MES05] Mesquita, D.; Techer, J.-D.; Torres, L.; Sassatelli, G.; Cambon, G.; Robert, M.; Moraes,

F.; “Current Mask Generation: A Transistor Level Security Against DPA Attacks”.

In: 18th Symposium on Integrated Circuits and Systems Design (SBCCI’05), September,

pp. 115-120, 2005.

[MES06] Mesquita, D.; Badrignans, B.; Torres, L.; Sassatelli, G.; Robert, M.; Moraes, F.G.; “A

Leak Resistant SoC to Counteract Side Channel Attacks”. In: International Symposi-

um on System-on-Chip (SoC’06), November, pp. 1-4, 2006.

[MOL06] Möller, L.; Soares, R.; Carvalho, E.; Grehs, I.; Calazans, N.; Moraes, F.;

“Infrastructure for Dynamic Reconfigurable Systems: Choices and Trade-offs”. In:

19th Symposium on Integrated Circuits and Systems Design (SBCCI’06), September, pp.

44-49, 2006.

[MOO00] Moore, S.; Taylor, G.; Cunningham, P.; Mullins, R.; Robinson, P.; “Using Stoppable

Clocks to Safely Interface Asynchronous and Synchronous Subsystem”. In: Work-

shop on Asynchronous Interfaces: Tools, Techniques and Implementations (AINT’00),

November, 2000.

[MOO02] Moore, S.; Taylor, G.; Mullins, R.; Robinson, P.; “Point to Point GALS Interconnect”.

In: 8th IEEE International Symposium on Asynchronous Circuits and Systems

(ASYNC’02), April, pp. 69-75, 2002.

Page 79: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

65

[MUL01] Muller, D.; Smart, N.; “Random Register Renaming to Foil DPA”. In: 3rd

Workshop

on Cryptographic Hardware and Embedded Systems (CHES’01), May, pp. 28-38, 2001.

[MUR04] Muresan, R.; Gebotys, C.; “Current Flattening in Software and Hardware for Secu-

rity Applications”. In: International Conference on Hardware/Software Codesign and

System Synthesis (CODES/ISSS’04), September, pp. 218-223, 2004.

[MUR05] Muresan, R.; Vahedi, H.; Yang, Z.; Gregori, S.; “Power Smart System On Chip Archi-

tecture for Embedded Cryptosystems”. In: International Conference on Hard-

ware/Software Codesign and System Synthesis (CODES/ISSS’05), September, pp. 184-

189, 2005.

[MUR08] Muresan, R.; Gregori, S.; “Protection Circuit against Differential Power Analysis

Attacks for Smart Cards”. IEEE Transaction on Computers, 57(11), pp. 1540-1549,

November, 2008.

[MUT99] Muttersbach, J.; Villiger, T.; Kaeslin, H.; Felber, N.; Fichtner, W.; “Globally Asyn-

chronous Locally Synchronous Architectures to Simplify the Design of On-chip

Systems”. In: 20th Annual IEEE International ASIC/SOC Conference, September, pp.

317-321, 1999.

[NAJ05] Najibi, M.; Saleh, K.; Naderi, M.; Pedran, H.; Sedigui, M.; “Prototyping Globally

Asynchronous Locally Synchronous Circuits on Commercial Synchronous FPGAs”.

In: IEEE International Workshop on Rapid System Prototyping (RSP’05), June, pp. 63-

69, 2005.

[NIK00] Nikolic, B.; Oklobzija, V.; Stojanovic, V.; Jia, W.; Chiu, J.; Leung, M.; “Improved

Sense Amplifier Based FlipFlop”. IEEE Journal of Solid-State Circuits, 35(6), pp. 876-

883, June, 2000.

[NOW95] Nowick, S.; Dill, D.; “Exact Two-Level Minimization of Hazard-Free Logic with

Multiple-Input Changes”. IEEE Transactions on Computer-Aided Design of Integrated

Circuits and Systems, 14(8), pp. 986-997, August, 1995.

[OGR07] Ogras, U.; Marculescu, R.; Choudhary, P.; Marculescu, D.; “Voltage-Frequency Island

Partitioning for GALS-based Network-on-Chip”. In: 44th Design Automation Con-

ference (DAC '07), June, pp. 110-115, 2007.

[ORD07] Ordu, L.; Örs, B.; “Power Analysis Resistant Hardware Implementations of AES”.

In: 14th IEEE International Conference on Eletronics, Circuits and Systems (ICECS’07),

December, pp. 1408-1411, 2007.

[OSW05] Oswald, E.; Mangard, S.; Pramstaller, N.; Rijmen, V.; “A Side-Channel Analysis Re-

sistant Description of the AES S-box”. In: 12th International Workshop on Fast Soft-

ware Encryption (FSE’05), February, pp. 413-423, 2005.

[PON07] Pontes, J.; Soares, R.; Carvalho, E.; Moraes, F.; Calazans, N.; “SCAFFI: An Intrachip

FPGA Asynchronous Interface based on Hard Macros”. In: 25th IEEE International

Conference on Computer Design (ICCD’07), May, pp. 541-546, 2007.

[POP06] Popp, T.; Mangard, S.; “Implementation Aspects of the DPA-Resistant Logic Style

MDPL.” In: IEEE International Symposium on Circuits and Systems (ISCAS’06), May,

pp. 2913-2916, 2006.

[PRA04] Pramstaller, N.; Gürkaynak, F.; Haene, S.; Kaeslin, H.; Felber, H.; Fichtner, W.; “To-

wards an AES Crypto-chip Resistent to Differential Power Analysis”. In: 30th Euro-

pean Solid-State Circuits Conference (ESSCIRC’04), September, pp. 307-310, 2004.

Page 80: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

66

[RAB96] Rabaey, J.; “Digital Integrated Circuits: A Design Perspective”. Prentice Hall, 702p,

1996.

[RAM08] Rammohan, S.; Sundaresan, V.; Vemuri, R.; “Reduced Complementary Dynamic and

Differential Logic: A CMOS Logic Style for DPA-Resistant Secure IC Design”. In:

21st International Conference on VLSI Design (VLSID’08), January, pp. 699-705, 2008.

[RAZ04] Razafindraibe, A.; Maurine, P.; Robert, M.; Bouesse, F.; Folco, B.; Renaudin, M.; “Se-

cured Structures for Secured Asynchronous QDI Circuits”. In: 19th International

Conference on Design of Circuits and Integrated Systems (DCIS’04), November, pp. 20-

26, 2004.

[RAZ06] Razafindraibe, A.; Robert, M.; Maurine, P.; “Formal Evaluation of the Robustness of

Dual-Rail Logic against DPA Attacks”. In: 16th International Workshop on Power and

Timing Modeling, Optimization and Simulation (PATMOS’06), September, pp. 634-644,

2006.

[RAZ07] Razafindraibe, A.; Robert, M.; Maurine, P.; “Improvement of Dual Rail Logic as a

Countermeasure against DPA”. In: IFIP International Conference on Very Large Scale

Integration (VLSI-SoC’07), October, pp. 270-275, 2007.

[RIV78] Rivest, R.; Shamir, A.; Adleman, L.; “A Method For Obtaining Digital Signatures

and Public-Key Cryptosystems”. Communications of the ACM, 21(2), pp. 120-126,

February, 1978.

[SAN95] Santos, J.; Mello, M.; Muraci, I.; “Introdução a Análise Combinatorial”. Unicamp,

295p. 1995.

[SAQ03] Saqib, N.; Rodriguez-Henriquez, F.; Diaz-Perez, A.; “AES Algorithm Implementation

- An Efficient Approach for Sequential and Pipeline Architectures”. In: Fourth Mex-

ican International Conference on Computer Science (ENC’03), September, pp. 126-130,

2003.

[SCH96] Schneier, B. “Applied Cryptography – Protocols, Algorithms and Source Code in

C”. Wiley Interscience, New York, 782 p. 1996.

[SHA49] Shannon, C. E.; “Communication Theory of Secrecy Systems”. Bell System Technical

Journal, 28(4), pp. 656-715, October, 1949.

[SKO02] Skorobogatov, S.; Anderson, R.; “Optical Fault Induction Attacks”. In: 4th Workshop

on Cryptographic Hardware and Embedded Systems (CHES’02), August, pp. 2-12, 2002.

[SOA08] Soares, R.; Lomné, V.; Calazans, N.; Maurine, P.; Torres, L.; Robert, M.; “Evaluating

the Robustness of Secure Triple Track Logic through Prototyping”. In: 21st Sympo-

sium on Integrated Circuits and Systems Design (SBCCI’08), September, pp. 193-198,

2008.

[SOA09] Soares, R.; Lomné, V.; Ordas, T.; Calazans, N.; Maurine, P.; Torres, L.; Robert, M.;

“Evaluation on FPGA of Triple Rail Logic Robustness against DPA and DEMA”.

In: Design, Automation and Test in Europe Conference and Exposition (DATE’09),

March, 2009. (approved paper).

[SPA02] Sparsø, J. and Furber, S. (Eds). “Principles of Asynchronous Circuit Design - A Sys-

tems Perspective”. Springer, 360p. 2002.

[STI01] Stinson, D. ; “Cryptographie Théorie et Pratique”. Vuibert, 394p. 2001.

[TAY00] Taylor, G.; Moore, S.; Wilcox, S.; Robinson, P.; “An On-chip Dynamic Recalibrated

Delay Line for Embedded Self Timed Systems”. In: Advanced Research in Asynchro-

nous Circuits and Systems (ASYNC’00), April, pp. 45-51, 2000.

Page 81: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

67

[TEE07] Teehan, P.; Greenstreet, M.; Lemieux, G.; “A Survey and Taxonomy of GALS Design

Styles”. IEEE Design & Test of Computers, 24(5), pp. 418-428, September-October

2007.

[TIR02] Tiri, K.; Akmal, M.; Verbauwhede, I.; “A Dynamic and Differential CMOS Logic

with Signal Independent Power Consumption to withstand Differential Power

Analysis on Smart Cards”. In: 28th European Solid-State Circuits Conference

(ESSCIRC’02), September, pp. 403-406, 2002.

[TIR04] Tiri, K.; Verbauwhede, I.; “A Logic Level Design Methodology for a Secure DPA Re-

sistant ASIC or FPGA Implementation”. In: Design, Automation and Test in Europe

Conference and Exhibition (DATE’04), February, pp. 246-251, 2004.

[TRI03] Trichina, E.; De Seta, D.; Germani, L.; “Simplified Adaptative Multiplicative Mask-

ing for AES and its Secure Implementation”. In: Cryptographic Hardware and Em-

bedded Systems (CHES’03), September, pp. 187-197, 2003.

[VAH06] Vahedi, H.; Muresan, R.; Gregori, S.; “On-chip Current Flattening Circuit with Dy-

namic Voltage Scaling”. In: IEEE International Symposium on Circuits and Systems

(ISCAS’06), May, pp. 4277-4280, 2006.

[VAH08] Vahedi, H.; Gregori, S.; Muresan, R.; “Improved Current Flattening Circuit using

Current Injection, Voltage Regulation, and Frequency Switching”. In: Canadian

Conference on Electrical and Computer Engineering (CCECE’08), May, pp. 2061-2066,

2008.

[VAN08] Vangal, S.; Howard, J.; Ruhl, G.; Dighe, S.; Wilson, H.; Tschanz, J.; Finan, D.; Singh,

A.; Jacob, T.; Jain, S.; Erraguntla, V.; Roberts, C.; Hoskote, Y.; Borkar, Nitin.; Borkar,

S.; “An 80-Tile Sub-100-W TeraFLOPS Processor in 65-nm CMOS”. IEEE Journal

of Solid State Circuits, 43(1), pp. 29-41, January, 2008.

[WES94] Weste, N.; Eshraghian, K.; “Principles of CMOS VLSI Design”. Addison-Wesley, 2nd

edition, 735p. 1994.

[XAP06] Xilinx, Inc.; “Using the Virtex Delay-Locked Loop”. Xilinx Application Note

(XAPP132), v2.8, 16p, January, 2006.

[XIL07] Xilinx, Inc.; “Virtex-II Platform FPGAs: Complete Data Sheet”. Product Specifica-

tion (DS031), v3.5, 318p, November, 2007.

[YAN05] Yang, S.; Wolf, W.; Vijaykrishnan, N.; Serpanos, D.N.; Xie, Y.; “Power Attack Re-

sistant Cryptosystem Design: A Dynamic Voltage and Frequency Switching Ap-

proach”. In: Design, Automation and Test in Europe (DATE’05), March, pp. 64-69,

2005.

[YUN99] Yun, K.; Dooply, A.; “Pausible Clocking Based Heterogeneous Systems”. IEEE

Transaction on VLSI Systems, 7(4), pp. 482-487, December, 1999.

[YUN99a] Yun, K.; Dill, D.; “Automatic Synthesis of Extended Burst-Mode Circuits: Part I.

(Specification and Hazard Free Implementation)”. IEEE Transaction on Computer

Aided Design, 18(2), pp. 101-117, February, 1999.

Page 82: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

68

Page 83: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

69

ANEXO 1 – TABELAS DO ALGORITMO DES

Tabelas de permutação, substituição e função do algoritmo DES. As tabelas devem ser lidas da esquer-

da para a direita e de cima para baixo. Por exemplo, a especificação da Permutação Inicial diz que o bit 58 de

uma palavra de 64 bits deve ser movido para a posição 1, o bit 50 para a posição 2, o bit 42 para a posição 3 e

assim por diante. Note que os vetores de 64 bits são numerados de 1 a 64 e não de 0 a 63 como se faz em mui-

tos projetos de hardware.

Permutação Inicial

PI-1

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

Permutação Inicial Inversa

PI-2

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

Função de Expansão – E (Permutação de Expansão)

E

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

Tabela de Substituição S-box 1

S-box 1

14 4 13 1 2 15 11 8

3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1

10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11

15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7

5 11 3 14 10 0 6 13

Page 84: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

70

Tabela de Substituição S-box 2

S-box 2

15 1 8 14 6 11 3 4

9 7 2 13 12 0 5 10

3 13 4 7 15 5 8 14

12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1

5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2

11 6 7 12 0 5 14 9

Tabela de Substituição S-box 3

S-box 3

10 0 9 14 6 3 15 5

1 13 12 7 11 4 2 8

13 7 0 9 3 4 6 10

2 8 5 14 12 11 15 1

13 6 4 9 8 15 3 0

11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7

4 15 14 3 11 5 2 12

Tabela de Substituição S-box 4

S-box 4

7 13 14 3 0 6 9 10

1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3

4 7 2 12 1 10 14 9

10 6 9 0 12 11 7 13

15 1 3 14 5 2 8 4

3 15 0 6 10 1 13 8

9 4 5 11 12 7 2 14

Tabela de Substituição S-box 5

S-box 5

2 12 4 1 7 10 11 6

8 5 3 15 13 0 14 9

14 11 2 12 4 7 13 1

5 0 15 10 3 9 8 6

4 2 1 11 10 13 7 8

15 9 12 5 6 3 0 14

11 8 12 7 1 14 2 13

6 15 0 9 10 4 5 3

Tabela de Substituição S-box 6

S-box 6

12 1 10 15 9 2 6 8

0 13 3 4 14 7 5 11

10 15 4 2 7 12 9 5

6 1 13 14 0 11 3 8

9 14 15 5 2 8 12 3

7 0 4 10 1 13 11 6

4 3 2 12 9 5 15 10

11 14 1 7 6 0 8 13

Page 85: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO …calazans/graduate/SSD/Proposta_Tese_RafaelSoares.pdf · pontifÍcia universidade catÓlica do rio grande do sul faculdade de

71

Tabela de Substituição S-box 7

S-box 7

4 11 2 14 15 0 8 13

3 12 9 7 5 10 6 1

13 0 11 7 4 9 1 10

14 3 5 12 2 15 8 6

1 4 11 13 12 3 7 14

10 15 6 8 0 5 9 2

6 11 13 8 1 4 10 7

9 5 0 15 14 2 3 12

Tabela de Substituição S-box 8

S-box 8

13 2 8 4 6 15 11 1

10 9 3 14 5 0 12 7

1 15 13 8 10 3 7 4

12 5 6 11 0 14 9 2

7 11 4 1 9 12 14 2

0 6 10 13 15 3 5 8

2 1 14 7 4 10 8 13

15 12 9 0 3 5 6 11

Permutação P-Box

P

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10

2 8 24 14 32 27 3 9

19 13 30 6 22 11 4 25

Permutação da Chave - CP-1

cp-1

57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 43 35 27 19 11 3 60 52 44 36

63 55 47 39 31 23 15 7 62 54 46 38 30 22

14 6 61 53 45 37 29 21 13 5 28 20 12 4

Permutação de Compressão (da Chave) - CP-2

cp-2

14 17 11 24 1 5 3 28 15 6 21 10

23 19 12 4 26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40 51 45 33 48

44 49 39 56 34 53 46 42 50 36 29 3211