Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
power_analysis — Preuve de concept démontrant une attaque par canal auxiliaire d'analyse de puissance contre une implémentation RSA vulnérable sur Arduino (Atmega328P), avec une configuration matérielle détaillée et une méthodologie de mesure. | Kitploit
Outils/GitHubGitHub/lord-feistel/power_analysis
Sécurité des Systèmes EmbarquésCryptographieSécurité MatérielleArticles et RechercheApprentissage et Éducation
GitHublord-feistel/power_analysis

power_analysis

Preuve de concept démontrant une attaque par canal auxiliaire d'analyse de puissance contre une implémentation RSA vulnérable sur Arduino (Atmega328P), avec une configuration matérielle détaillée et une méthodologie de mesure.

Voir le dépôt
32467il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Attaque par analyse de puissance sur RSA

Index

Index

  • Introduction
  • Attaques par analyse de puissance
  • RSA : Une brève introduction
  • Exemple RSA
  • Équipement
  • Mesure de la puissance : Une brève introduction
    • Loi d'Ohm
    • Loi des tensions de Kirchhoff (LTK)
    • Diviseur de tension
    • Résistance shunt
  • Exemple de mesure de puissance
  • Exponentiation rapide
  • Exponentiation rapide sur Arduino (Atmega328P)
  • Résultats
  • Conclusion
  • Références

Introduction

Récemment, j'ai observé des personnes implémentant elles-mêmes la cryptographie pour Arduino, comme dans ce sujet sur stackoverflow :

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

Plusieurs d'entre eux peuvent être trouvés sur Internet, certains se trouvent d'ailleurs dans des bibliothèques bien connues.

J'ai décidé de réaliser cette petite POC (Preuve de concept) pour montrer pourquoi il est important non seulement de ne pas inventer son propre algorithme cryptographique, mais aussi d'utiliser une implémentation robuste de tels algorithmes.

Cette POC effectue une attaque par canal auxiliaire (attaque par analyse de puissance) contre une mauvaise implémentation d'une routine auxiliaire utilisée dans l'implémentation RSA (exponentiation rapide).

Une attaque par canal auxiliaire est une méthode visant à compromettre un système cryptographique en exploitant des fuites d'informations indirectes plutôt qu'en attaquant directement l'algorithme ou le protocole cryptographique lui-même.

Ce type de fuite peut provenir de diverses sources telles que les informations temporelles, la consommation électrique, les émissions électromagnétiques, ou même le son.

De telles attaques peuvent être très efficaces pour compromettre des systèmes cryptographiques comme RSA sans obliger l'attaquant à résoudre les problèmes mathématiques sous-jacents qui assurent la sécurité du système cryptographique (Kocher, Jaffe, & Jun, 1999).

Cet article réalisera une attaque par analyse de puissance sur une vulnérabilité bien connue dans une implémentation de l'algorithme RSA dans un firmware pour Arduino (Atmega328P).

Remarque : Je l'ai fait rapidement, veuillez m'excuser pour les fautes d'orthographe / de grammaire que vous trouverez éventuellement.

Attaques par analyse de puissance

Les attaques par analyse de puissance consistent à mesurer la consommation électrique d'un appareil lors d'opérations cryptographiques.

L'analyse différentielle de puissance (DPA) implique une analyse statistique des schémas de consommation électrique sur plusieurs opérations cryptographiques pour extraire des secrets, ce qui la rend plus sophistiquée que l'analyse simple de puissance (SPA), qui corrèle directement les fluctuations de puissance avec des opérations cryptographiques spécifiques pour déduire des secrets.

L'analyse différentielle de puissance (DPA) et l'analyse simple de puissance (SPA) peuvent être utilisées pour extraire des clés privées en analysant les schémas de consommation électrique lors des calculs RSA.

Ces attaques peuvent révéler la clé privée en identifiant des schémas distincts d'utilisation de la puissance associés à différents bits de la clé (Kocher, Jaffe, & Jun, 1999).

RSA : Une brève introduction

RSA (Rivest-Shamir-Adleman) est un algorithme de chiffrement à clé publique largement utilisé, nommé d'après ses inventeurs : Ron Rivest, Adi Shamir et Leonard Adleman, qui l'ont introduit en 1977 (Paar & Pelzl, 2010).

Il reste l'une des méthodes les plus sécurisées pour transmettre des données de manière sécurisée sur Internet.

L'un des fondements de la sécurité de RSA réside dans la difficulté de factoriser de grands nombres composés en leurs facteurs premiers (Menezes, van Oorschot, & Vanstone, 1996).

Ce problème, connu sous le nom de problème de factorisation, consiste à trouver les nombres premiers qui se multiplient pour former un grand nombre donné.

Le chiffrement RSA repose sur l'hypothèse que ce problème de factorisation est suffisamment difficile sur le plan computationnel pour qu'il soit irréaliste de briser le chiffrement en factorisant le module en ses facteurs premiers (Menezes, van Oorschot, & Vanstone, 1996).

Exemple RSA

La Figure 1 illustre le processus de chiffrement et de déchiffrement RSA à l'aide d'un exemple simple.

Exemple RSA

Figure 1 - Exemple RSA.

Veuillez noter que dans ce cas, 3 et 33 sont publics. Le nombre 7 dans l'exemple est la clé privée.

La fonction Phi (N), fonction indicatrice d'Euler, calcule tous les nombres premiers entre eux dans l'intervalle de 1 à 33.

La valeur 33 est obtenue par la multiplication de P et Q ; dans ce cas, 11 multiplié par 3.

Le résultat de la fonction Phi est obtenu en multipliant (P - 1) par (Q - 1) ; dans ce cas, 10 multiplié par 2.

L'opération e<sup>-1</sup> mod 20 désigne l'opération d'inverse modulaire (Menezes, van Oorschot, & Vanstone, 1996).

Remarque : Si vous souhaitez approfondir RSA, ce qui n'est pas nécessaire pour comprendre cet article. Il y a une introduction rapide à ces opérations de base de théorie des nombres dans ce dépôt, dans le fichier number_theory.md. L'explication peut améliorer votre compréhension des opérations RSA.

Équipement

L'expérience a utilisé un oscilloscope DS1102 (présenté dans la Figure 2) fabriqué par Rigol.

Le manuel de l'oscilloscope peut être trouvé dans les références (RIGOL Technologies, Inc., 2017).

Une alimentation générique a également été utilisée (présentée dans la Figure 3).

oscilloscope

Figure 2 - Oscilloscope utilisé dans l'expérience.

alimentation

Figure 3 - Alimentation utilisée dans l'expérience.

Mesure de la puissance : une brève introduction

Loi d'Ohm

La loi d'Ohm est un principe fondamental dans le domaine du génie électrique et de la physique.

Elle stipule que le courant traversant un conducteur entre deux points est directement proportionnel à la tension entre ces deux points et inversement proportionnel à la résistance entre eux (Boylestad, 2015).

La Figure 4 montre un circuit et la loi d'Ohm.

loi_ohm

Figure 4 - Illustration de la loi d'Ohm.

La loi d'Ohm implique que si vous augmentez la tension aux bornes d'un conducteur, le courant augmentera également, à condition que la résistance reste constante (Johnson & Hilburn, 2013). La Figure 5 présente un exemple d'application de la loi d'Ohm dont l'objectif est de trouver le courant dans le circuit.

exemple_ohm

Figure 5 - Exemple de la loi d'Ohm.

Loi de Kirchhoff et

La loi des tensions de Kirchhoff (LTK) est un principe fondamental en génie électrique et en physique (Boylestad, 2015).

Elle stipule que la somme de toutes les différences de potentiel électrique (tensions) autour de tout réseau ou boucle fermée est nulle (Boylestad, 2015).

La Figure 6 illustre la loi des tensions de Kirchhoff.

loi_kirchhoff

Figure 6 - Illustration de la loi de Kirchhoff.

Télécharger l’outil