Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
power_analysis — Prova di concetto che dimostra un attacco side-channel tramite analisi di potenza contro un'implementazione RSA vulnerabile su Arduino (Atmega328P), con configurazione hardware dettagliata e metodologia di misurazione. | Kitploit
Strumenti/GitHubGitHub/lord-feistel/power_analysis
Sicurezza Sistemi EmbeddedCrittografiaSicurezza HardwarePaper e RicercaApprendimento e Formazione
GitHublord-feistel/power_analysis

power_analysis

Prova di concetto che dimostra un attacco side-channel tramite analisi di potenza contro un'implementazione RSA vulnerabile su Arduino (Atmega328P), con configurazione hardware dettagliata e metodologia di misurazione.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
324672 anni faRevisionato da Kitploit

Power analysis attack over RSA

Index

Index

  • Introduction
  • Power Analysis Attacks
  • RSA: A Short Introduction
  • RSA Example
  • Equipment
  • Measuring Power: A Short Introduction
    • Ohm's Law
    • Kirchhoff's Voltage Law (KVL)
    • Voltage Divider
    • Shunt Resistor
  • Example Power Measurement
  • Fast Exponentiation
  • Fast Exponentiation in Arduino (Atmega328P)
  • Results
  • Conclusion
  • References

Introduzione

Recentemente ho osservato persone che implementano la crittografia per Arduino da sole, come descritto in questo topic su stackoverflow:

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

Diverse di queste implementazioni si trovano su Internet, alcune peraltro in librerie ben note.

Ho deciso di realizzare questa piccola PoC (Proof of concept) per mostrare perché è importante non solo non inventare il proprio algoritmo crittografico, ma anche utilizzare un'implementazione robusta di tali algoritmi.

Questa PoC esegue un attacco a canale laterale (attacco di analisi del consumo) contro una cattiva implementazione di una routine ausiliaria utilizzata nell'implementazione RSA (esponenziazione veloce).

Un attacco a canale laterale è un metodo per compromettere un sistema crittografico sfruttando la fuga indiretta di informazioni, piuttosto che attaccare direttamente l'algoritmo crittografico o il protocollo stesso.

Questo tipo di fuga può provenire da varie fonti come informazioni temporali, consumo energetico, emissioni elettromagnetiche o persino suoni.

Tali attacchi possono essere molto efficaci nel compromettere sistemi crittografici come RSA senza richiedere all'attaccante di risolvere i problemi matematici sottostanti che garantiscono la sicurezza dello schema crittografico (Kocher, Jaffe, & Jun, 1999).

Questo documento effettuerà un attacco di analisi del consumo su una nota vulnerabilità in un'implementazione dell'algoritmo RSA in un firmware per Arduino (Atmega328P).

Nota: l'ho fatto di fretta, per favore perdonate gli errori di ortografia/grammatica che eventualmente troverete.

Attacchi di analisi del consumo

Gli attacchi di analisi del consumo implicano la misurazione del consumo energetico di un dispositivo durante le operazioni crittografiche.

La Differential Power Analysis (DPA) prevede l'analisi statistica dei modelli di consumo energetico su più operazioni crittografiche per estrarre segreti, rendendola più sofisticata della Simple Power Analysis (SPA), che correla direttamente le fluttuazioni di potenza con specifiche operazioni crittografiche per dedurre segreti.

La Differential Power Analysis (DPA) e la Simple Power Analysis (SPA) possono essere utilizzate per estrarre chiavi private analizzando i modelli di consumo energetico durante i calcoli RSA.

Questi attacchi possono rivelare la chiave privata identificando modelli di consumo energetico distinti associati a diversi bit della chiave (Kocher, Jaffe, & Jun, 1999).

RSA: una breve introduzione

RSA (Rivest-Shamir-Adleman) è un algoritmo di crittografia a chiave pubblica ampiamente utilizzato, chiamato così dai suoi inventori: Ron Rivest, Adi Shamir e Leonard Adleman, che lo introdussero nel 1977 (Paar & Pelzl, 2010).

Rimane uno dei metodi più sicuri per trasmettere dati in modo sicuro su Internet.

Uno dei fondamenti della sicurezza di RSA risiede nella difficoltà di fattorizzare grandi numeri composti nei loro fattori primi (Menezes, van Oorschot, & Vanstone, 1996).

Questo problema, noto come problema della fattorizzazione, consiste nel trovare i numeri primi che moltiplicati insieme formano un dato numero grande.

La crittografia RSA si basa sul presupposto che questo problema di fattorizzazione sia computazionalmente abbastanza difficile da rendere impraticabile rompere la crittografia fattorizzando il modulo nei suoi fattori primi (Menezes, van Oorschot, & Vanstone, 1996).

Esempio RSA

La Figura 1 illustra il processo di crittografia e decrittografia RSA utilizzando un semplice esempio.

Esempio RSA

Figura 1 - Esempio RSA.

Si noti che in questo caso 3 e 33 sono pubblici. Il numero 7 nell'esempio è la chiave privata.

La funzione Phi (N), la funzione totient di Eulero, calcola tutti i numeri coprimi nell'intervallo da 1 a 33.

Il valore 33 si ottiene dalla moltiplicazione di P e Q; in questo caso, 11 moltiplicato per 3.

Il risultato della funzione Phi si ottiene moltiplicando (P - 1) per (Q - 1); in questo caso, 10 moltiplicato per 2.

L'operazione e<sup>-1</sup> mod 20 denota l'operazione di inverso modulare (Menezes, van Oorschot, & Vanstone, 1996).

Nota: Se si desidera approfondire RSA, cosa non necessaria per comprendere questo documento. Nel repository è presente una breve introduzione a queste operazioni di base della teoria dei numeri, il file number_theory.md. La spiegazione può migliorare la comprensione delle operazioni RSA.

Attrezzatura

L'esperimento ha utilizzato un oscilloscopio DS1102 (presentato nella Figura 2) prodotto da Rigol.

Il manuale dell'oscilloscopio si trova nei riferimenti (RIGOL Technologies, Inc., 2017).

È stato utilizzato anche un alimentatore generico (presentato nella Figura 3).

oscilloscopio

Figura 2 - Oscilloscopio utilizzato nell'esperimento.

alimentatore

Figura 3 - Alimentatore utilizzato nell'esperimento.

Misurazione della potenza: una breve introduzione

Legge di Ohm

La legge di Ohm è un principio fondamentale nel campo dell'ingegneria elettrica e della fisica.

Essa afferma che la corrente che scorre attraverso un conduttore tra due punti è direttamente proporzionale alla tensione tra i due punti e inversamente proporzionale alla resistenza tra di essi (Boylestad, 2015).

La Figura 4 mostra un circuito e la legge di Ohm.

legge_di_ohm

Figura 4 - Illustrazione della legge di Ohm.

La legge di Ohm implica che se si aumenta la tensione attraverso un conduttore, la corrente aumenterà, a condizione che la resistenza rimanga costante (Johnson & Hilburn, 2013). La Figura 5 presenta un esempio di applicazione della legge di Ohm il cui obiettivo è trovare la corrente nel circuito.

esempio_ohm

Figura 5 - Esempio della legge di Ohm.

Legge di Kirchhoff e

La legge di Kirchhoff delle tensioni (KVL) è un principio fondamentale nell'ingegneria elettrica e nella fisica (Boylestad, 2015).

Essa afferma che la somma di tutte le differenze di potenziale elettrico (tensioni) attorno a qualsiasi rete chiusa o anello è zero (Boylestad, 2015).

La Figura 6 illustra la legge di Kirchhoff delle tensioni.

legge_di_kirchhoff

Figura 6 - Illustrazione della legge di Kirchhoff.

Un esempio di applicazione della legge di Kirchhoff è mostrato nella Figura 7 per trovare la corrente attraverso i resistori R1 e R2.

esempio_kirchhoff

Figura 7 - Esempio della legge di Kirchhoff.

Partitore di tensione

Scarica lo strumento