Cryptoprocesseur sécurisé
Un cryptoprocesseur sécurisé est un processeur optimisé pour les tâches de cryptographie (exponentiation modulaire, chiffrement DES, etc.) incorporé avec de multiples mesures de sécurité physique, ce qui lui confère une certaine résistance à l'effraction. Contrairement aux processeurs cryptographiques qui émettent des données décryptées sur un bus dans un environnement sécurisé, un cryptoprocesseur sécurisé ne produit pas de données décryptées ou d'instructions de programme décryptées dans un environnement où la sécurité ne peut pas toujours être maintenue.
Derrière ce nom relativement peu courant, on retrouve quantité de matériel que l'on utilise chaque jour : les cartes à puce telles que les cartes de crédit, la carte Vitale en France, etc. Les cryptoprocesseurs sont aussi présents dans le matériel employé par les armées pour leurs communications. Ils doivent résister à des contraintes beaucoup plus grandes que les cryptoprocesseurs pour l'usage civil : résistance au brouillage et les contre-mesures, à la chaleur et la submersion, à une explosion atomique et ses impulsions électromagnétiques particulièrement destructrices pour l'électronique, etc.
Conception et implémentations
Un cryptoprocesseur peut se réaliser de diverses manières selon le profil de l'utilisation : FPGA, ASIC ou encore microcontrôleur. Les capacités de reconfiguration des FPGA permettent d'optimiser considérablement les opérations et de corriger les implémentations si nécessaire. En contrepartie, le coût sera plus élevé qu'avec une solution basée sur un ASIC produit à grande échelle. Certains microcontrôleurs comme le Crypto-Blaze sont basés sur une architecture 8 bits et sont disponibles à des coûts réduits. Certaines applications nécessitent une économie importante des ressources, c'est le cas pour les puces RFID. Le choix des algorithmes est étroitement lié au matériel à disposition. Un chiffrement de flot basé sur un registre à décalage sera plus efficace sur une architecture proposant des rotations optimisées. Dans le cas d'un chiffrement de bloc, la taille du bloc a son importance. Un bloc trop grand peut dépasser les capacités du matériel à disposition.
Certains chiffrements sont moins adaptés que d'autres pour le matériel moderne. DES est par exemple basé sur des permutations entre des bits, ce qui peut ne pas convenir à certains types de matériel. Les candidats de chiffrement par bloc du concours AES, outre les aspects cryptographiques classiques de sécurité, ont été analysés pour des implémentations matérielles qui ne manqueraient pas d'apparaître. Le projet ECRYPT qui vise à mettre en avant un nouveau standard de chiffrement de flot (largement dominé actuellement par RC4) vise également à sélectionner un candidat adapté pour le matériel. Certaines propositions sont même résolument axées vers le matériel, c'est le cas de GRAIN.
Vulnérabilités
Un cryptoprocesseur peut faire l'objet de plusieurs attaques cryptographiques :
- analyse de la consommation électrique qui varie selon les opérations effectuées (analyse de consommation normale ou différentielle)
- étude du temps mis pour effectuer des opérations (attaque temporelle)
- analyse des sons et perturbations électromagnétiques émises par le processeur (cryptanalyse acoustique, analyse d'émanations électromagnétiques)
- insertion volontaire d'erreurs dans le système pour observer son comportement (attaque par faute)
- attaque par mesure de l'activité électrique sur une équipotentielle d'un bus (attaque par sondage)
Pour répondre à ces problèmes, les cryptoprocesseurs doivent suivre des normes précises et faire l'objet d'analyses poussées. Les fabricants veillent en particulier à aplanir la consommation électrique quelles que soient les opérations effectuées. Il en va de même pour les émissions de sons, technique de cryptanalyse acoustique mise en évidence par Adi Shamir.
Liens externes
- (en) Timing Attack, réalisée en 1996 par Paul Kocher, et première attaque officielle sur les canaux cachés
- (en) Cryptanalyse acoustique
- (en) Cache-timing attack on AES