Criptografia Numaboa
DPA - Análise Diferencial do Consumo de Energia
Qui 22 Mar 2007 19:29 |
- Detalhes
- Categoria: Criptoanálise
- Atualização: Sábado, 27 Fevereiro 2010 17:15
- Autor: vovó Vicki
- Acessos: 7939
Até há pouco tempo atrás, a criptoanálise era considerada produto exclusivo de intensa elaboração mental - o computador era apenas uma ferramenta de apoio e o intelecto roubava a cena. Aí surgiu a idéia: os especialistas costumam fritar os miolos, mas qual seria o estresse da máquina?
Paul Kocher, Joshua Jaffe e Benjamin Jun resolveram estudar o comportamento do computador durante trabalhos criptográficos e descobriram que as máquinas e os microchips atuais deixam vazar informações que podem ser obtidas medindo-se o consumo de energia dos circuitos. Satisfeitos com os resultados obtidos, em 1998 publicaram os detalhes da DPA, a Differential Power Analysis. {faqslider tabs} :::: Introdução ::::
Ataques que envolvem várias partes de um sistema de segurança são difíceis de predizer e de modelar. Se os projetistas de cifras, desenvolvedores de software e engenheiros de hardware não entenderem ou revisarem o trabalho dos colegas, a avaliação da segurança em cada nível do projeto pode estar incompleta ou não corresponder à realidade. Como resultado, falhas de segurança com frequência envolvem interações imprevistas entre componentes projetados por pessoas diferentes.
Muitas técnicas foram criadas para testar algoritmos criptográficos isolados. Por exemplo, a criptoanálise diferencial e a criptoanálise linear podem se aproveitar de características estatísticas extremamente pequenas que se mostram nas entradas ou nas saídas de cifras. Estes métodos foram muito bem estudados porque podem ser aplicados através da análise de apenas uma das partes da arquitetura do sistema - a estrutura matemática de um algoritmo.
A implementação correta de um protocolo forte não é necessariamente segura porque podem existir falhas causadas por processamento defeituoso e vazamento de informações durante operações com a chave secreta (o governo dos EUA gastou somas consideráveis no programa secreto TEMPEST para prevenir que informações sigilosas vazem através de radiações eletromagnéticas).
A maioria dos dispositivos criptográficos modernos são constituídos por gates lógicos semicondutores feitos com transistores. Quando uma carga é aplicada (ou removida) num gate, os elétrons fluem através do substrato de silício consumindo energia e produzindo radiação eletromagnética. Para medir o consumo de energia de um circuito insere-se um pequeno resistor (por exemplo, de 50 ohm) em série com a entrada de energia ou com o terra. A diferença de voltagem entre a entrada e a saída do resistor, dividida pela sua resistência, dá a corrente. Laboratórios de eletrônica bem equipados possuem equipamentos capazes de obter amostras digitais de diferenças de voltagem numa velocidade extraordinária (acima de 1GHz) com excelente precisão (margem de erro menor do que 1%). É aqui que entra a análise de consumo de energia, mas, antes de encarar a DPA, é melhor começar com a Simple Power Analysis, conhecida como SPA.
:::: :::: SPA ::::A Simple Power Analysis (SPA) é uma técnica que envolve interpretações diretas de medidas de consumo de energia coletadas durante operações criptográficas. A SPA pode fornecer tanto informações sobre uma operação do dispositivo, quanto material da chave.
Um traço é um conjunto de medidas de consumo de energia obtidas durante uma operação criptográfica. Por exemplo, uma operação de 1 milésimo de segundo a 5 MHz produz um traço que contém 5.000 pontos. A Fig.1 mostra um traço de SPA obtido de um smart card típico durante uma operação DES. Observe que as 16 rodadas do DES podem ser vistas claramente.
Na Fig.2 pode-se ver o mesmo traço mostrando a segunda e a terceira rodada de uma operação de encriptação DES. Muitos detalhes da operação do DES tornam-se visíveis. Por exemplo, os registros de 28 bits da chave, C e D, sofrem uma rotação na segunda rodada (seta da esquerda) e duas na terceira (setas da direita). Também é possível perceber pequenas variações entre as rodadas. Muitas destas características perceptíveis são fraquezas SPA causadas por saltos condicionais baseados em bits da chave e intermediários computacionais.
A Fig.3 apresenta o traço numa resolução ainda maior mostrando o consumo de energia em duas regiões, cada uma delas com 7 ciclos de clock a 3.5714 MHz. As variações percebidas entre ciclos de clock são essencialmente o resultado das diferenças de consumo de energia de diferentes instruções do microprocessador. O traço superior mostra o caminho da execução através de uma característica SPA onde uma instrução de salto é executada; o traço inferior mostra um caso onde o salto não é realizado. O ponto de divergência está no ciclo de clock 6 e é perfeitamente identificável.
Como a SPA pode revelar a sequência das instruções executadas, ela pode ser usada para quebrar implementações criptográficas nas quais o caminho da execução depende dos dados que estejam sendo processados. Por exemplo:
- Esquema da chave DES: o processamento do esquema da chave DES exige a rotação de registros de 28 bits da chave. Geralmente uma ramificação condicional é usada para checar o bit deslocado para fora para que bits 1 possam ser reposicionados. O consumo de energia resultante indica bits 1 e bits 0 possuem características SPA diferentes se o caminho da execução seguir por ramificações diferentes.
- Permutações do DES: implementações do DES executam diversas permutações de bits. Desvios condicionais no software ou no microcódigo podem causar diferenças de consumo de energia significantes para bits 0 e 1.
- Comparações: operações de comparação de strings ou de memória provocam um desvio condicional quando os valores comparados são diferentes. Este desvio condicional cria características SPA significantes (e, algumas vezes, características de tempo - timing).
- Multiplicadores: circuitos de multiplicação modulares costumam deixar vazar muita informação sobre os dados que estejam processando. As funções de vazamento dependem da arquitetura do multiplicador, mas, com frequência, estão relacionadas aos valores dos operandos e pesos Hamming (Hamming weight: a quantidade de bits 1 numa sequência de bits).
- Exponenciadores: uma função exponenciadora modular simples rastreia o expoente realizando operações de elevação ao quadrado em cada iteração com uma operação de multiplicação adicional para cada bit do expoente que seja igual a 1. O expoente pode ser comprometido se a elevação ao quadrado e a multiplicação tiverem características diferentes de consumo de energia, se forem realizadas em tempos diferentes ou se estiverem separadas por código diferente. Funções exponenciadoras modulares que atuam em dois ou mais bits do expoente ao mesmo tempo podem apresentar funções de vazamento mais complexas.
A SPA é a base da DPA - Differential Power Analysis ou Análise Diferencial do Consumo de Energia. Esta técnica pode ser usada para realizar um ataque classificado como side channel attack ou ataque de canal lateral.
Um ataque do tipo canal lateral depende de informações obtidas das implementações físicas de um criptossistema, ou seja, não leva em conta possíveis fraquezas dos algoritmos utilizados. Exemplos deste tipo de ataque são consumo de tempo (timing), vazamentos eletromagnéticos, vazamentos de som e, logicamente, consumo de energia. Estas informações podem ser usadas para quebrar o sistema.
Para realizar um ataque de DPA são necessários conhecimentos de várias áreas: estatística e criptografia para o ataque propriamente dito, habilidade em programação, experiência em instrumentação para construir um sistema automático de medidas e habilidade em eletrônica para depurar os resultados. Mas existem mais algumas condições que precisam ser preenchidas.
Em primeiro lugar, o atacante precisa ser capaz de medir com precisão o consumo de energia. Além disto, é preciso saber qual algoritmo está sendo utilizado e, em terceiro lugar, o atacante precisa de textos claros ou cifrados. A estratégia é fazer uma porção de medições, dividi-las em dois ou mais conjuntos diferentes e depois aplicar métodos estatísticos que revelam picos se as hipóteses iniciais estiverem corretas. Resumindo: a DPA é uma SPA à qual se aplicam métodos estatísticos.
Os detalhes de eletrônica e estatística fogem do escopo deste artigo e podem ser encontrados no texto Power Analysis Tutorial mostrado nas Referências. O interessante é observar os resultados obtidos pelos autores do método analisando o consumo de energia dos circuitos durante o processamento do algoritmo DES. Numa certa altura do processamento, as operações envolvem um "jogo" de bits nas chamadas S boxes (maiores detalhes você encontra no artigo O algoritmo DES ilustrado): em cada uma das oito caixas S entram 6 bits e saem 4. Neste ponto do processamento, se um dos bits de entrada estiver correto, o traço revela a sua presença.
A Fig.4 mostra 4 traços de DPA. O superior indica o consumo médio de energia durante operações DES. O segundo mostra nitidamente um pico, indicativo de que o bit de entrada está correto. Nos restantes, os valores dos bits são incorretos.
A Fig.5 mostra o efeito médio de um único bit em medidas de consumo de energia detalhadas. No topo está o traço de referência do consumo de energia. O traço do centro mostra o desvio padrão das medidas de consumo. Finalmente, a linha inferior mostra um traço diferencial preparado com m=104.
O tamanho da característica da DPA é cerca de 40 µA, que é muitas vezes menor do que o desvio padrão observado neste ponto. A elevação no desvio padrão no ciclo de clock 6 coincidindo com uma característica forte indica que o valor do operando tem um efeito significante no consumo de energia da instrução e que existe uma variação considerável nos valores do operando que está sendo manipulado. Como instruções de baixo nível geralmente manipulam diversos bits, uma função de seleção pode selecionar simultaneamente valores de múltiplos bits. As características da DPA tendem a apresentar picos maiores, apesar de não necessariamente terem uma relação sinal-para-ruído melhor porque as amostras incluídas na média são em menor número.
:::: {/faqslider}Referências
- Differential Power Analysis, trabalho original de Kocher, Jaffe e Jun (Cryptography Research, Inc.)
- Power Analysis Tutorial, de Manfred Aigner e Elisabeth Oswald (Institute for Applied Information Processing and Communication da Universidade de Tecnologia Graz, Áustria)