Upload
lytu
View
216
Download
0
Embed Size (px)
Citation preview
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.
ii
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.
iv
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
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
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
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
ix
SPA Simple Power Analysis
STTL Secure Triple Track Logic
UMM Unique Masking Method
VLSI Very Large Scale Integration
WDDL Wave Dynamic Differential Logic
x
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
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
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
xiv
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-
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.
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.
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
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.
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,
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.
8
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
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].
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
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
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.
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.
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
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.
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
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.
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.
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-
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.
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ó-
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.
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.
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
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
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-
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
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.
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
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-
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
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
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
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.
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.
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
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.
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.
40
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-
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.
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%
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.
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.
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.
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
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
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.
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.
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].
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.
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.
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.
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-
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
68
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
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
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