
AES EMA
Ce projet a été réalisé dans le cadre du cours de Sécurité des composants électroniques à l'Ensta Bretagne. Le but de ce projet était de réaliser une attaque par canal caché (side chanel) sur l'algorithme AES 128 en utilisant le modèle du poids de Hamming sur le dernier round du processus de chiffrement en utilisant des fuites électromagnétiques. Le projet a été réalisé avec Matlab.
Proof of concept
AES 128 est un algorithme de chiffrement symétrique. 128 fait référence à la taille de la clé de l'algorithme ainsi que la taille des blocs (c'est à dire que le texte à chiffrer est divisé en blocs de 128bits). Un appareil vulnérable à une attaque par canal caché est un appareil qui fait fuiter des informations sur son état interne. Ces fuites peuvent être de différentes natures, par exemple des fuites électromagnétiques, des fuites acoustiques, des fuites thermiques, etc. Si la consommation d'énergie d'un appareil est connue, il est possible de déduire la clé utilisée pour chiffrer les données. Pour ce faire, on compare la consommation d'énergie de l'appareil avec la consommation d'énergie de l'appareil lorsqu'il exécute l'algorithme de chiffrement avec différentes clés. Ce projet est basé sur la mesure des fuites électromagnétiques sur une carte FPGA qui a effectué 20 000 cryptages de texte. Nous disposons donc des textes chiffrés et des fuites mesurées. En analysant la moyenne de la consommation d'énergie de l'appareil lors du dernier tour du processus de cryptage, nous pouvons déduire la clé utilisée pour chiffrer les données en utilisant une attaque par corrélation basée sur le modèle du poids de Hamming. L'idée est d'effectuer ces corrélations pour chaque octet de la clé, soit 16 corrélations. Comme il y a 10 tours de cryptage, 10 sous-clés sont utilisées pour chaque tour. Ces clés proviennent du processus d'extension de clé qui est effectué au début du processus de chiffrement.

Schéma de l'attaque
Résultat
Le code réalisé sur Matlab à permis de retrouver la dernière sous-clé avec succès, démontrant ainsi la faisabilité de l'attaque par canal caché sur l'algorithme AES 128 si celui-ci est implémenté sur un FPGA vulnérable aux fuites électromagnétiques. Le code est disponible sur Github, accessible via le lien ci-dessous.
Github