Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
power_analysis — Prova de conceito demonstrando um ataque de canal lateral por análise de potência contra uma implementação RSA vulnerável em Arduino (Atmega328P), com configuração de hardware detalhada e metodologia de medição. | Kitploit
Ferramentas/GitHubGitHub/lord-feistel/power_analysis
Segurança de Sistemas EmbarcadosCriptografiaSegurança de HardwarePapers e PesquisaAprendizado e Educação
GitHublord-feistel/power_analysis

power_analysis

Prova de conceito demonstrando um ataque de canal lateral por análise de potência contra uma implementação RSA vulnerável em Arduino (Atmega328P), com configuração de hardware detalhada e metodologia de medição.

Ver Repositório
32467há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ataque de análise de potência sobre RSA

Índice

Índice

  • Introdução
  • Ataques de Análise de Potência
  • RSA: Uma Breve Introdução
  • Exemplo RSA
  • Equipamento
  • Medindo Potência: Uma Breve Introdução
    • Lei de Ohm
    • Lei de Tensão de Kirchhoff (KVL)
    • Divisor de Tensão
    • Resistor Shunt
  • Exemplo de Medição de Potência
  • Exponenciação Rápida
  • Exponenciação Rápida no Arduino (Atmega328P)
  • Resultados
  • Conclusão
  • Referências

Introdução

Recentemente, observei pessoas implementando criptografia para Arduino por conta própria, como mencionado neste tópico no Stackoverflow:

https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino

Várias delas podem ser encontradas na internet, algumas, a propósito, estão em bibliotecas bem conhecidas.

Decidi fazer este pequeno PoC (Prova de conceito) para mostrar por que é importante não inventar seu próprio algoritmo de criptografia, mas também usar uma implementação robusta de tais algoritmos.

Este PoC realiza um ataque de canal lateral (ataque de análise de potência) contra uma má implementação de uma rotina auxiliar usada na implementação RSA (exponenciação rápida).

Um ataque de canal lateral é um método de comprometer um sistema criptográfico explorando vazamento indireto de informações, em vez de atacar diretamente o algoritmo ou protocolo criptográfico em si.

Esse tipo de vazamento pode se originar de várias fontes, como informações de temporização, consumo de energia, emissões eletromagnéticas ou até mesmo som.

Tais ataques podem ser altamente eficazes para comprometer sistemas criptográficos como o RSA, sem exigir que o atacante resolva os problemas matemáticos subjacentes que garantem a segurança do esquema criptográfico (Kocher, Jaffe, & Jun, 1999).

Este artigo realizará um ataque de análise de potência sobre uma vulnerabilidade bem conhecida em uma implementação do algoritmo RSA em um firmware para Arduino (Atmega328P).

Nota: Fiz isso com pressa, por favor, perdoe-me pelos erros de ortografia/gramática que você eventualmente encontrará.

Ataques de Análise de Potência

Ataques de análise de potência envolvem medir o consumo de energia de um dispositivo durante operações criptográficas.

A Análise Diferencial de Potência (DPA) envolve análise estatística de padrões de consumo de energia em múltiplas operações criptográficas para extrair segredos, tornando-se mais sofisticada que a Análise Simples de Potência (SPA), que correlaciona diretamente flutuações de potência com operações criptográficas específicas para deduzir segredos.

A Análise Diferencial de Potência (DPA) e a Análise Simples de Potência (SPA) podem ser usadas para extrair chaves privadas analisando padrões no consumo de energia durante computações RSA.

Esses ataques podem revelar a chave privada identificando padrões distintos de uso de energia associados a diferentes bits da chave (Kocher, Jaffe, & Jun, 1999).

RSA: Uma Breve Introdução

RSA (Rivest-Shamir-Adleman) é um algoritmo de criptografia de chave pública amplamente utilizado, nomeado após seus inventores: Ron Rivest, Adi Shamir e Leonard Adleman, que o introduziram em 1977 (Paar & Pelzl, 2010).

Ele continua sendo um dos métodos mais seguros para transmitir dados de forma segura pela internet.

Um dos fundamentos da segurança do RSA reside na dificuldade de fatorar grandes números compostos em seus fatores primos (Menezes, van Oorschot, & Vanstone, 1996).

Este problema, conhecido como problema da fatoração, envolve encontrar os números primos que se multiplicam para formar um determinado número grande.

A criptografia RSA depende da suposição de que este problema de fatoração é computacionalmente difícil o suficiente para tornar impraticável quebrar a criptografia fatorando o módulo em seus fatores primos (Menezes, van Oorschot, & Vanstone, 1996).

Exemplo RSA

A Figura 1 ilustra o processo de criptografia e descriptografia RSA usando um exemplo simples.

RSA Example

Figura 1 - Exemplo RSA.

Observe que neste caso, 3 e 33 são públicos. O número 7 no exemplo é a chave privada.

A função Phi (N), função totiente de Euler, calcula todos os números coprimos no intervalo de 1 a 33.

O valor 33 é obtido da multiplicação de P e Q; neste caso, 11 multiplicado por 3.

O resultado da função Phi é obtido multiplicando (P - 1) por (Q - 1); neste caso, 10 multiplicado por 2.

A operação e<sup>-1</sup> mod 20 denota a operação de inverso modular (Menezes, van Oorschot, & Vanstone, 1996).

Nota: Se desejar se aprofundar no RSA, o que não é necessário para entender este artigo. Há uma introdução rápida a essas operações básicas de teoria dos números neste repositório, no arquivo number_theory.md. A explicação pode aprimorar seu entendimento das operações RSA.

Equipamento

O experimento utilizou um osciloscópio DS1102 (apresentado na Figura 2) fabricado pela Rigol.

O manual do osciloscópio pode ser encontrado nas referências (RIGOL Technologies, Inc., 2017).

Uma fonte de alimentação genérica também foi usada (apresentada na Figura 3).

osciloscope

Figura 2 - Osciloscópio usado no experimento.

power_supply

Figura 3 - Fonte de alimentação usada no experimento.

Medindo potência: uma breve introdução

Lei de Ohm

A Lei de Ohm é um princípio fundamental no campo da engenharia elétrica e da física.

Ela afirma que a corrente que flui através de um condutor entre dois pontos é diretamente proporcional à tensão entre os dois pontos e inversamente proporcional à resistência entre eles (Boylestad, 2015).

A Figura 4 mostra um circuito e a Lei de Ohm.

ohm_law

Figura 4 - Ilustração da Lei de Ohm.

A Lei de Ohm implica que, se você aumentar a tensão através de um condutor, a corrente também aumentará, desde que a resistência permaneça constante (Johnson & Hilburn, 2013). A Figura 5 apresenta um exemplo de aplicação da Lei de Ohm cujo objetivo é encontrar a corrente no circuito.

ohm_example

Figura 5 - Exemplo da Lei de Ohm.

Lei de Kirchhoff e

A Lei de Tensão de Kirchhoff (KVL) é um princípio fundamental na engenharia elétrica e na física (Boylestad, 2015).

Ela afirma que a soma de todas as diferenças de potencial elétrico (tensões) em qualquer rede ou malha fechada é zero (Boylestad, 2015).

A Figura 6 ilustra a Lei de Tensão de Kirchhoff.

kirchoff_lay

Figura 6 - Ilustração da Lei de Kirchhoff.

Há um exemplo da aplicação da Lei de Kirchhoff na Figura 7 para encontrar a corrente sobre os resistores R1 e R2.

kirchoff_example

Figura 7 - Exemplo da Lei de Kirchhoff.

Divisor de Tensão

O divisor de tensão é uma consequência da Lei de Tensão de Kirchhoff (KVL) e estabelece uma maneira de calcular a Vout, que é a tensão entre o resistor R1 e R2.

A fórmula do divisor de tensão é apresentada na Figura 8.

Baixar ferramenta