Un groupe de chercheurs a révélé ce qu’il dit être une vulnérabilité dans une implémentation spécifique de CRYSTALS-Kyber , l’un des algorithmes de chiffrement choisis par le gouvernement américain comme résistant au quantum l’année dernière.

L’exploit concerne « les attaques par canal latéral sur les implémentations masquées jusqu’au cinquième ordre de CRYSTALS-Kyber dans le processeur ARM Cortex-M4 », ont déclaré Elena Dubrova, Kalle Ngo et Joel Gärtner du KTH Royal Institute of Technology dans un article .

CRYSTALS-Kyber est l’un des quatre algorithmes post-quantiques sélectionnés par le National Institute of Standards and Technology (NIST) des États-Unis après un effort rigoureux de plusieurs années pour identifier un ensemble de normes de chiffrement de nouvelle génération capables de résister à d’énormes sauts de puissance de calcul.

Une attaque par canal latéral, comme son nom l’indique, consiste à extraire des secrets d’un système cryptographique en mesurant et en analysant des paramètres physiques. Certains exemples de tels paramètres comprennent le courant d’alimentation, le temps d’exécution et l’émission électromagnétique.

L’idée sous-jacente est que les effets physiques introduits à la suite d’une implémentation cryptographique peuvent être utilisés pour décoder et déduire des informations sensibles, telles que le texte chiffré et les clés de chiffrement.

L’une des contre-mesures populaires pour renforcer les implémentations cryptographiques contre les attaques physiques est le masquage , qui randomise le calcul et détache les informations du canal latéral des variables cryptographiques dépendant du secret.

« Le principe de base du masquage est de diviser chaque variable intermédiaire sensible de l’algorithme cryptographique en plusieurs partages en utilisant le partage secret, et d’effectuer des calculs sur ces partages », expliquait un autre groupe de chercheurs en 2016.

« A partir du moment où l’entrée est divisée jusqu’à ce que la sortie partagée de l’algorithme cryptographique soit publiée, les parts des variables intermédiaires sensibles ne sont jamais combinées de manière à ce que ces variables soient démasquées, c’est-à-dire que les variables sensibles non partagées ne sont jamais révélées. Seulement après la le calcul est terminé, la sortie partagée est reconstruite pour divulguer sa valeur non masquée. »

La méthode d’attaque mise au point par les chercheurs implique une méthode d’entraînement de réseau neuronal appelée apprentissage récursif pour aider à récupérer des bits de message avec une forte probabilité de succès.

« Les attaques par canal latéral basées sur l’apprentissage profond peuvent surmonter les contre-mesures conventionnelles telles que le masquage, le brassage, l’insertion de retards aléatoires, le codage à poids constant, le polymorphisme de code et l’horloge aléatoire », ont déclaré les chercheurs.

Les chercheurs ont également développé une nouvelle méthode de récupération des messages appelée rotation cyclique qui manipule les textes chiffrés pour augmenter la fuite de bits de message, augmentant ainsi le taux de réussite de la récupération des messages.

« Une telle méthode nous permet de former des réseaux de neurones capables de récupérer un bit de message avec une probabilité supérieure à 99 % à partir d’implémentations masquées d’ordre élevé », ont-ils ajouté.

Lorsqu’il a été contacté pour commenter, le NIST a déclaré à The Hacker News que l’approche ne casse pas l’algorithme lui-même et que les résultats n’affectent pas le processus de normalisation de CRYSTALS-Kyber.

« Le travail sur les canaux secondaires faisait partie de l’évaluation et continuera d’être étudié à l’avenir », a déclaré Dustin Moody du NIST à Inside Quantum Technology (IQT) News. « Cela met en évidence la nécessité d’avoir des implémentations protégées. »

« Il existe des articles qui attaquent à peu près tous les algorithmes cryptographiques utilisant des canaux secondaires. Des contre-mesures sont développées et de nombreuses attaques ne sont pas réalistes ou pratiques dans des scénarios réels. »