L’AES (Advanced Encryption Standard)
Dans cette section, nous présentons l‟algorithme AES adopté actuellement par le gouvernement américain [10]. L‟AES est un algorithme de cryptographie symétrique, il utilise donc la même clef secrète pour le chiffrement et le déchiffrement. Il peut utiliser des clefs cryptographiques de longueurs différentes (128, 192 et 256 bits) pour chiffrer et décrypter des données de 128 bits. Nous présentons ici uniquement le chiffrement pour une clef de 128 bits (les détails sur le déchiffrement et les autres longueurs de clef sont décrites dans [10]). L’unité de données fondamentale dans l’algorithme AES est l‟octet. L‟entrée, la sortie et la clef secrète sont traitées en interne sur une table à deux dimensions d’octets appelée État. L’État se compose d’une matrice de quatre rangées et quatre colonnes d’octets. Dans la table d’État, notée par le symbole s, chaque octet est repéré par son indice de rangée (0 ≤ r <3) et son indice de colonne (0 ≤ c ≤ 3). (Figure 5) L‟AES est basé principalement sur un schéma de substitutions et permutations des données (SPN pour Substitution Permutation Network en anglais). Les permutations sont des réarrangements d’octets dans la matrice d’états. Les substitutions remplacent une valeur d’octet de données par une autre.
Attaques invasives
Le circuit est souvent détruit dans ce type d‟attaques qui nécessitent d‟abord une préparation de circuit en enlevant le boitier, et ensuite ou reconstruire le circuit (c‟est ce qu‟on appelle attaques par Reverse-engineering) ou extraire des données secrètes en utilisant des sondes (attaques par sondes). Dans la Reverse-engineering, l‟attaquant a besoin d‟un accès direct aux différents éléments du circuit. Ceci nécessite du matériel spécifique afin de mettre le circuit intégré à nu et des connaissances électroniques pour comprendre l’architecture de la puce. Ensuite l’attaquant essaie de récupérer le maximum d’informations sur le circuit pour pouvoir le reconstruire en déduisant les algorithmes utilisés, la manière dont ils ont été implémentés et les moyens de sécurité mises en place pour enfin tenter de récupérer toute ou une partie de la clef. Par exemple, l‟attaque présentée en [11] permet la reconstitution du layout du circuit en utilisant des techniques chimiques et de microscopie à haute résolution. Dans les attaques par sonde, également, l‟attaquant a besoin tout d‟abord de mettre le circuit à nu, et ensuite d‟espionner l‟activité électrique du circuit en plaçant une sonde suffisamment proche de ses pistes de façon à pouvoir lire la valeur des signaux internes. En récoltant des données de cette manière, l‟attaquant peut être en mesure de déduire toute ou une partie du secret recherché. Il faut remarquer que peu de laboratoires peuvent se permettre de mettre en place ce type d’attaque, car elle exige du matériel très perfectionné et coûteux.
Mise en œuvre d’une attaque en faute
Le principe de ce type d’attaque repose sur le fait que l‟attaquant peut perturber le fonctionnement normal d‟un circuit pour en révéler les données confidentielles, il s‟agit donc d‟une attaque active. Certains des moyens d‟attaques décrits ci-après ne demandent qu‟une manipulation des signaux sur les broches d‟entrée du circuit (attaques non invasives) et sont donc très facilement exploitables si aucune contre mesure n‟est mise en œuvre. D‟autres demandent au moins l‟ouverture du boitier (attaques semi-invasives) et des moyens pour réaliser l‟attaque plus importants. Ils sont aussi plus difficiles à détecter ou à contrecarrer que de simples perturbations des signaux d‟entrée. Ces attaques sont extrêmement puissantes et présentent une menace réelle. Il est extrêmement difficile de répertorier l‟ensemble des fautes qui permettraient de révéler le secret. Tout dysfonctionnement utile à l‟attaquant pourrait être envisagé : faute permettant de sauter une étape de vérification lors d‟un protocole d‟authentification, faute permettant de réduire la complexité d‟un algorithme de chiffrement en réduisant le nombre d‟itération normalement requises, etc. Les fautes produisant de tels dysfonctionnements nécessitent néanmoins de perturber une zone très précise du circuit. Il existe toutefois des attaques [25] qui ne demandent que l’obtention d’un résultat de chiffrement erroné et, éventuellement, le résultat de ce même chiffrement sans erreur. Le nombre d‟erreurs produites reste néanmoins une contrainte comme cela sera détaillé dans la section 2.3. Nous présentons ici le principe et les moyens de mise en œuvre de telles attaques en décrivant à chaque fois les effets escomptés sur le circuit et les possibilités d‟utilisation ([26] à [34]). Les attaques en faute exploitent les propriétés physiques des circuits. Nous donnerons dans cette section, une vue globale des moyens permettant l‟injection de fautes ([35] et [36]) que nous pouvons classer essentiellement en deux classes :
Variation des conditions de fonctionnement standard du circuit.
Exposition du circuit à une source optique
Injection laser
Pour présenter l‟effet d‟une injection laser on va considérer l‟exemple d‟une cellule mémoire SRAM (1 bit). Une cellule classique SRAM (1 bit) est composée de deux inverseurs en plus de deux transistors de contrôle d‟accès lecture/écriture dans la cellule. Chaque inverseur est composé lui-même de deux transistors. Par conception, la cellule mémoire admet deux états stables : « 0 » ou « 1 ». Pendant un état stable, deux transistors se trouvent dans l‟état « passant » et deux dans l‟état « bloqué ». Quand un faisceau laser frappe le drain d‟un transistor bloqué, et comme il traverse le silicium. L‟énergie amenée par lee faisceau laser peut créer des paires électrons-trous. Ces charges induites dans la jonction drain-substrat du transistor bloqué sont collectées et créent un courant transitoire qui inverse logiquement la tension de sortie de l‟inverseur. Cette tension inversée serait donc appliquée à son tour sur le deuxième inverseur qui va commuter vers son état inverse ([35] et [50]). Les principaux avantages du laser sont qu‟il permet une bonne maîtrise temporelle et spatiale de l‟injection de fautes favorisant ainsi la reproductibilité de l‟attaque, même si la réduction des motifs de gravure actuels complique le processus. L‟autre avantage est que le coût des bancs laser est nettement inférieur à celui des accélérateurs de particules par exemple.
|
Table des matières
Contexte
Introduction générale
1.1 Cryptologie
1.2 Circuits sécurisés
1.3 Algorithmes cryptographiques
1.3.1 Cryptographie asymétrique
1.3.2 Cryptographie symétrique
1.4 Attaques
1.4.1 Attaques invasives
1.4.2 Attaques semi-invasives
1.4.3 Attaques non invasives
1.4.4 Attaques actives
1.4.5 Attaques passives
1.4.6 Résumé
Attaques en Fautes
2.1 Mise en œuvre d‟une attaque en faute
2.1.1 Attaques par perturbation de la tension d‟alimentation
2.1.2 Attaques par perturbation de l‟horloge
2.1.3 Attaques par perturbation de la température
2.1.4 Attaques Électromagnétiques
2.1.5 Attaques optiques
2.1.6 Résumé
2.2 Types de fautes et leurs effets
2.2.1 Fautes destructives
2.2.2 Fautes Permanentes
2.2.3 Fautes Transitoires
2.3 Exploitation des attaques en fautes
2.3.1 Attaques sur 1 bit
2.3.2 Attaques sur 1 octet
2.3.3 Attaques sur plusieurs octets
2.3.4 Résumé
2.4 Contre-mesures aux attaques en fautes
2.4.1 Redondance matérielle
2.4.2 Redondance temporelle
2.4.3 Redondance d’information
2.5 Conclusion
Détection concurrente d’erreurs
3.1 Types d‟implémentations de la SBox
3.2 Protection de l’AES par redondance d’information
3.2.1 Protection avec 1 bit de parité par mot de 128 bits
3.2.2 Schéma avec 16 bits de parité par mot de 128 bits
3.2.3 Protection par Code de Redondance Cyclique
3.2.4 Protection par double parité de la sous fonction SubBytes
3.2.5 SBox avec 5 bits de parité
3.3 Optimisation
3.3.1 Optimisation de l’architecture
3.3.2 Optimisation de l’architecture
3.4 Évaluation des contre-mesures
3.4.1 Coûts
3.4.2 Erreurs dans un octet simple
3.4.3 Erreurs dans plusieurs octets
3.5 Fautes et multiplicité d’Erreur
3.5.1 ShiftRows
3.5.2 AddRoundKey
3.5.3 MixColumns
3.5.4 SubBytes
3.5.5 Résultats
3.6 Conclusions
Combinaison de deux contre-mesures pour l’AES
4.1 Attaques par analyse de puissance
4.1.1 Analyse simple de consommation
4.1.2 Analyse différentielle de consommation
4.2 Contre-mesures des attaques par analyse de consommation
4.3 Protection par masquage adaptatif
4.3.1 Masquage additif
4.3.2 Implantations
4.3.3 Conclusion
4.4 Combinaison de deux contre-mesures vis-à-vis des attaques en fautes et des attaques par analyse différentielle de consommation
4.4.1 SBox robuste vis-à-vis des attaques DPA
4.4.2 Ajout de la technique de détection concurrente de fautes
4.4.3 Taux de détection d’erreurs simples
4.4.4 Amélioration d’architecture : propagation d’erreur vers un nombre impair de chemins de sortie
4.4.5 Taux de détection d’erreurs simples pour l’architecture améliorée
4.4.6 Sorties indépendantes
4.5 Surcoûts
4.6 Conclusion
Bibliographie
Références
Télécharger le rapport complet