• Aucun résultat trouvé

Stratégies d’implantations et analyse de la surface d’implantation

Afin d’implanter dans le matériel (FPGA ou ASIC) un algorithme de chiffre-ment par bloc, deux stratégies sont communéchiffre-ment utilisées. La première stratégie est nommée parallèle et la seconde implantation série. D’autres stratégies peuvent être employées selon les objectifs de l’application pour laquelle les algorithmes de chiffrement sont implantés. Ces autres stratégies sont généralement appelées im-plantations séries partielles [16]. Dans cette section, les deux stratégies utilisées dans ce chapitre (parallèle et série) sont présentées. La méthode d’analyse de la surface des implantations proposées est expliquée dans la Section 4.2.3.

4.2.1 Stratégie parallèle

La stratégie d’implantation matérielle parallèle est probablement la plus simple qu’il est possible d’utiliser pour implanter un algorithme de chiffrement par bloc. Il s’agit d’une implantation séquentielle dont la granularité est la fonction de ronde : celle-ci est implantée une fois, puis elle est appliquée sur le bloc de données (à chiffrer ou à déchiffrer) plusieurs fois. Lors de chaque passage dans la fonction de ronde, l’intégralité du bloc de données est mis à jour en une seule fois (un seul cycle d’horloge). Si l’une des opérations utilisées dans la fonction de ronde s’applique sur un mot de taille réduite, elle est dupliquée jusqu’à ce que le nombre d’entrées totales dans la fonction soit égale à la taille du bloc de données. Exactement de la même manière, la clé est entièrement mise à jour en un seul cycle d’horloge dans une implantation parallèle et la fonction de gestion de clé est implantée une seule fois. Si besoin, une clé de ronde est extraite de la clé avant d’être envoyée à la fonction de ronde.

Comme cette stratégie est la plus simple à utiliser, elle est le point de départ de l’étude menée dans ce chapitre. En effet, l’utilisation de cette stratégie permet de bien comprendre les différentes fonctions de l’algorithme et donc de trouver où il est possible de réduire la surface d’implantation. La Figure 4.3 montre un schéma général décrivant l’implantation parallèle de n’importe quel algorithme de chiffre-ment par bloc, pour le chiffrechiffre-ment et le déchiffrechiffre-ment. Pour certains algorithmes, quelques changements sont à apporter à ce schéma. Par exemple, il est possible que l’algorithme partage certaines opérations entre le chiffrement et le déchiffre-ment. C’est notamment le cas de LILLIPUT, qui est présenté dans ce chapitre. Pour d’autres algorithmes, il y a une fonction de gestion de clé très simple qui est utilisée à la fois pour le chiffrement et pour le déchiffrement des messages. Dans ce cas, la Figure 4.3 peut très facilement être adaptée pour décrire l’implantation matérielle parallèle de ces algorithmes.

Dans la Figure 4.3, le bloc de données à traiter a une taille de p bits, la clé une taille de k bits et la clé de ronde une taille de sk bits. Lorsque l’opération demandée (chiffrement ou déchiffrement) est terminée, la sortie du système est directement extraite du registre de données.

Registre de données Registre de clé

Chiffrement : fonction de ronde Déchiffrement : fonction de ronde Chiffrement gestion de clé sortie message clé p k p p p k k k sk sk Déchiffrement gestion de clé

Figure 4.3 – Schéma général d’une implantation matérielle parallèle d’un algo-rithme de chiffrement par bloc effectuant le chiffrement et le déchiffrement.

4.2.2 Stratégie série

La stratégie d’implantation série est généralement utilisée pour les implantations matérielles des algorithmes légers de chiffrement par bloc. Le but de cette stratégie est d’utiliser le minimum de ressources pour implanter l’algorithme. En particulier, ce sont très souvent les ressources logiques qui sont prises en compte. Le chemin de données doit être le plus petit possible pour une implantation série. Il faut donc analyser chaque opération utilisée dans l’algorithme pour trouver la taille de ce chemin de données. L’utilisation du plus petit chemin de données se fait dans l’espoir de réduire la surface d’implantation au détriment de la vitesse d’exécution de l’algorithme. Par exemple, supposons que l’algorithme à implanter utilise un message de 64 bits et possède un tableau de substitution transformant des mots de 4 bits. Contrairement à la stratégie parallèle où 16 tableaux de substitution seraient implantés pour mettre à jour les 64 bits du message en une fois, un seul tableau sera implanté avec la stratégie d’implantation série, ce qui implique que ce tableau sera utilisé 16 fois pour mettre à jour tout le message. L’implantation série est donc l’implantation séquentielle possédant la plus petite granularité fonctionnelle de l’algorithme implanté.

Pour parvenir à implanter un algorithme de chiffrement par bloc avec cette stra-tégie, les registres de données et de clé sont généralement transformés en registres à décalage, ce qui permet d’appliquer la fonction de ronde sur une petite partie du message. Malheureusement, la fonction de gestion de clé est très souvent compliquée (voir impossible) à implanter pour cette stratégie. Dans ce cas, la clé est mise à jour en un seul cycle d’horloge, puis elle est conservée durant le temps nécessaire à la mise à jour complète du message.

Une implantation série n’est pas toujours la meilleure stratégie pour réduire la surface d’implantation d’un algorithme de chiffrement par bloc. En effet, le séquen-cement de la fonction de ronde est très intéressant pour réduire la partie logique de l’implantation, mais elle implique souvent une complexification du contrôleur du système ainsi que l’ajout de registres intermédiaires ou de multiplexeurs permettant d’envoyer la bonne partie du message (ou de la clé) à chaque opération. Toutefois, c’est la stratégie d’implantation série qui est utilisée pour prouver qu’un algorithme de chiffrement par bloc est adapté aux applications nécessitant un algorithme léger.

4.2.3 Analyse de la surface d’implantation d’un algorithme de chif-frement par bloc

Dans ce chapitre, seule la surface d’implantation est analysée. De plus, les résul-tats d’implantation sont générés pour des FPGA Xilinx Spartan 6, Xilinx Spartan 3 et pour la technologie ASIC AMS 0.35µm.

En ce qui concerne les résultats sur FPGA Xilinx, la métrique la plus utilisée est le Slice. Un Slice est un bloc élémentaire contenu dans les FPGA Xilinx. Mal-heureusement, un Slice des FPGA Xilinx Spartan 6 est complètement différent de celui des FPGA Xilinx Spartan 3. En effet, un Slice dans les FPGA Xilinx

Spar-tan 6 contient quatre look up tables (LUT) avec six entrées et deux sorties (LUT6) ainsi que huit registres alors qu’un Slice dans les FPGA Xilinx Spartan 3 contient deux LUT avec quatre entrées (LUT4) et une sortie ainsi que deux registres. Il est donc impossible de comparer deux implantations réalisées sur ces deux familles de FPGA en utilisant le Slice comme métrique. De plus cette métrique ne peut pas être utilisée pour comparer des implantations réalisées sur des FPGA de constructeurs différents comme Altera ou Microsemi puisque l’élément Slice est spécifique aux FPGA Xilinx. Il ne faut donc pas utiliser le Slice comme métrique de comparaison de la surface d’implantation d’un système, quelqu’il soit.

Toutefois, il existe des éléments communs à presque tous les FPGA, ce sont les LUT et les registres. Dans ce chapitre, nous avons choisis d’utiliser ces deux éléments comme métrique d’analyse de la surface d’implantation de LILLIPUT. Même s’il n’est pas possible de comparer des implantations effectuées sur des FPGA dont les LUT ont une structure différente, cette métrique permet une analyse plus fine de la surface que le Slice. En effet, un Slice n’est pas toujours rempli à 100% et même si un seul registre du Slice est utilisé, ce dernier sera décompté dans la surface utilisée d’implantation, ce qui conduit à une sur-estimation de la surface. En revanche, pour une LUT ou un registre, soit la ressource est utilisée, soit elle ne l’est pas et il n’est pas possible de diviser ces ressources. La surface finale sera donc plus précise.

Dans le cas des implantations ASIC, la surface de l’implantation peut-être ex-primée soit en µm2, soit en porte équivalente (GE). L’utilisation de la surface en

µm2 est très dépendante de la technologie alors qu’une porte équivalente corres-pond à la surface d’une porte Non Et à deux entrée et une sortie (NAND2). Cette métrique est également dépendante de la technologie utilisée pour implanter l’al-gorithme puisque chaque porte n’utilise pas la même surface (comparée aux autres portes) dans toutes les technologies. Cependant, cette métrique est plus générique que la surface en µm2.