FrançaisEnglish

Optimisation d'algorithmes de cryptographie sur FPGA

Sujet

Il existe plusieurs langages pour programmer / configurer un FPGA. Les langages initiaux comme VHDL et Verilog ont été rejoints par le langage C (via la synthèse de haut niveau ou HLS) et OpenCL (pour ses capacités multiplateformes).

Le département SoC du LIP6 recherche trois candidats pour trois stages d'optimisation:

  • Optimisation de code en VHDL,
  • Optimisation de code en C + HLS,
  • Optimisation de code en OpenCL,

Les objectifs de ces stages se composent de 2 étapes. La première étape consiste à réaliser différentes implémentations d'un même algorithme et analyser les performances obtenues. C'est un travail itératif où chaque implémentation devra permettre d'en réaliser une plus efficace, ou au contraire si on estime que les performances crêtes sont atteintes, de l'expliquer. Les optimisations viseront plusieurs critères antagonistes comme la surface, la consommation, la vitesse. Les algorithmes à implémenter sont des algorithmes de cryptographie : SHA et AES. La seconde étape consiste à concevoir une implémentation parallèle de ces algorithmes c'est à dire utiliser la surface totale du FPGA pour instancier le plus grand nombre possible d'algorithmes avec deux objectifs: aller le plus vite possible ou consommer le moins.

Durée et lieu du stage

6 mois au laboratoire LIP6, à partir de février/mars, en fonction de la date de début de stage de la formation

Compétences nécessaires

Bonne connaissance en algorithmique et dans l'un des 3 langages. Des bases en architecture et en compilation seront un plus.

Personnes à contacter