Architecture agile de cryptographie légère

Encadrants : 

Occurrences : 

2018

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

3

Nombre d'instances : 

1

L'objectif de ce projet est de participer au développement d'une architecture permettant l'implémentation de multiples algorithmes cryptographiques dits « légers ».

De nos jours le piratage d'information devient un véritable fléau et il est essentiel de pouvoir protéger les informations sensibles. C'est pour cela que les communications utilisent des algorithmes de cryptographie pour chiffrer leurs informations. Les communications chiffrées se font entre des systèmes embarqués des objets connectés ou les futurs véhicules connectés qui requiert un haut niveau de sécurité. Or ces systèmes disposent généralement d'une quantité limitée de ressources et ne peuvent pas se permettre d'implémenter AES qui est le standard en terme d'algorithme cryptographique. Pour répondre à cette problématique, il existe de nombreux algorithmes cryptographiques dis "légers" qui permettent de réduire la quantité de ressources nécessaires à leur implémentation sans pour autant compromettre la sécurité qu'ils apportent.

Ce projet s'inscrit donc dans cette problématique et s'intéresse tout particulièrement à un moyen d'unir ces algorithmes "légers" au sein d'une unique architecture capable de passer d'un algorithme à un autre de façon dynamique. Cette agilité est utile dans le cadre des véhicules connectés qui ont besoin de pouvoir utiliser différents algorithmes de cryptage pour garantir une meilleure sécurité ainsi que de pouvoir réagir dans le cas où un algorithme viendrait à être "cassé".

Il s'agira :

  • Dans un premier temps de comprendre le fonctionnement de cette architecture générique ainsi que des principaux algorithmes de cryptographie légers.
  • Puis dans un second temps d'implémenter ces différents algorithmes sur l'architecture afin d'en vérifier le bon fonctionnement et d'identifier les éventuelles failles.

Il sera également intéressant de proposer d'éventuels améliorations à l'architecture elle-même afin d'en optimiser les performances.