Cryptoprocesseur résistant aux attaques

Occurrences : 

2014

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

3

Nombre d'instances : 

1

L’objectif de ce projet est le codage SystemVerilog d’une architecture de cryptoprocesseur "Present" protégée contre les attaques par canaux cachés.

1 Cryptoprocesseurs

Les besoins de sécurité des communications nécessitent souvent le chiffrement des données transmises afin d’en préserver la confidentialité et l’authenticité. Parmi les algorithmes de chiffrements, l’algorithme "Present" a donné lieu à des implémentations tant logicielles que matérielles. Les implémentations matérielles appelées « cryptoprocesseurs» sont souvent utilisées pour des raisons de performances (cablage direct de l’algorithme) et de
confidentialité.

2 Attaques par les canaux cachés

La notion de « canaux » cachés, correspond au fait que l’information traitée par le cryptoprocesseur peut être détéctée au travers de la mesure de phénomènes physiques indirects. La mesure, par exemple, de la consommation instantanée du cryptoprocesseur sur plusieurs séquences de codage peut permettre par calculs de corrélation de déterminer la clef de chiffrement. Une des techniques les plus connues pour cela est la DPA (Differntial Power Attack). Les fabriquants de cryptoprocesseurs tentent de ce protéger contre ces attaques.

3 Protection d’un cryptoprocesseur contre les attaques DPA

Une méthode de protection consiste à rendre la consommation instantanée du cryptoprocesseur indépendante de la donnée traitée. Souvent ce type de protection se traduit par une augmentation de la consommation du circuit. Le but du projet est de tester les performances d’une
nouvelle technique de protection, basée sur un encodage des données de type « one hot ». Il s’agit de garantir qu’à chaque étape de calcul un nombre « limité et constant » de bits changent d’état.

4 Travaux demandés, déroulement du projet

  • Etude du standard Present, compréhension de l’algorihme de codage
  • Prise en main d’un code SystemVerilog d’un processeur Present existant, compréhension de son architecture, simulation
  • Attaque contre le processeur par DPA (manip de démo faite par les encadrants)
  • Modification du processeur pour intégrer les mesures de protection (codage SystemVerilog)
  • Synthèse et test du nouveau processeur
  • Attaque contre le nouveau processeur (manip exécutée par les encadrants)
  • Comparaisons de la robustesse à l’attaques.
  • Conclusions.