Implantation de l'algorithme DES dans des circuits FPGA de type XILINX

Mémoire d'ingénieur C.N.A.M. en électronique
par Maurice Diamantini
Soutenu le : 24 janvier 1994

Mots clés : FPGA, circuits XILINX, cryptographie, algorithme DES, langage VHDL, GRAFCET

Keywords : FPGA, XILINX, Data Encryption Standard, VHDL, GRAFCET model

URL : algoDES_FPGA.tbz

Résumé

Ce mémoire décrit les résultats de deux études ayant pour but d'implanter l'algorithme de cryptage "Data Encryption Standard" (DES) dans des circuits intégrés FPGA de la société XILINX. La finalité de ces études était l'évaluation des circuits intégrés et des logiciels utilisés plutôt que la seule fonctionnalité des réalisations.

L'algorithme DES est un standard américain qui permet le chiffrement / déchiffrement de blocs de 64 bits à l'aide d'une clé de 64 bits.

Les circuits intégrés XILINX sont des réseaux logiques programmables par l'utilisateur (Field-Programmable Gate Array). Leur particularité est que la fonctionnalité logique est contenue dans une RAM statique interne. Un procédé de configuration doit donc être prévu à chaque mise sous tension.

Le premier projet (appelé carte DES 3000) a consisté en l'étude complète d'une carte dans son environnement d'exploitation, dont le but était le chiffrement ou déchiffrement de données selon l'algorithme DES, en utilisant des circuits XILINX de la série 3000. Son fonctionnement (configuration et exploitation) devait être piloté par un micro-ordinateur compatible PC. Les outils logiciels utilisés étaient également sur PC (saisie DASH-LCA, simulateur SILOS, logiciel XILINX).

Sa conception a mis en évidence un certain nombre de problèmes, dont les solutions sont exposées. En particulier, le manque de ressources de routage de ces circuits a nécessité l'utilisation de deux circuits pour l'Unité de Traitement, alors qu'un seul aurait dû suffire en terme de ressources logiques. Par ailleurs, des problèmes d'optimisation ont nécessité la réalisation d'un programme de synthèse pour la partie critique de l'Unité de Traitement : les fonctions de sélection. Sa réalisation ³wrappée² a nécessité trois circuits XC3090-50. Les performances limites de l'UT atteignaient 13.55 Mbits (1.3 Mbits/s sans erreurs, soit 10 fois moins).

Le deuxième projet (appelé circuit DES 4000) a ensuite été développé. Il consistait à implanter l'algorithme DES, à l'aide de circuits XILINX de la série 4000 développés entre temps (début 1992), en utilisant des outils logiciels de Viewlogic. En particulier, le langage VHDL a été testé et utilisé pour la saisie de l'application (par la synthèse) et pour la simulation. La carte était pilotée par une interface de type VME (parallèle sur 32 bits) et non de type série RS232, mais cette étude concernait la partie circuit intégré seul.

Sa conception a montré que les problèmes rencontrés lors de la première étude se sont déplacés : en effet les difficultés de routage ont été corrigées, alors que les outils VHDL utilisés se sont trouvés mal adaptés à ces composants. Un seul circuit intégré XC4010-6 a suffit pour la conception (comprenant l'UT et l'UC), portant le débit limite obtenu à 49,85 Mbits/s (pour 49,5 Mbits/s sans erreurs).

Au cours de cette étude, une méthode formelle de spécification et d'implantation de la logique de contrôle synchrone a été développée en reposant sur le modèle Grafcet.