Résumé : Hamming-Quasi Cyclic est un candidat du concours du NIST pour la standardisation de cryptosystèmes résistant aux attaques des ordinateurs quantiques. Les étapes de décodage sont connues pour être sensibles aux attaques par canaux cachés et HQC ne fait pas exception à cette règle. Je présenterai une nouvelle attaque à chiffrés choisis permettant de retrouver la clef secrète de HQC. Cette attaque exploite la réutilisation d'une clef statique ainsi qu'un accès physique à un microcontrôleur qui exécute HQC. Nous attaquons le décodage des codes de Reed-Muller utilisés dans HQC, et plus précisément la transformée de Hadamard (FHT), connue pour ces propriétés de diffusion que nous exploitons pour l'attaque. L'information extraite est utilisé pour classifier plusieurs patterns de décodage du code de Reed-Muller. Je montrerai comment bien choisir la valeur des chiffrés pour "forcer" l'apparition de ces classes et retrouver tous les bits de la clef secrète. Les acquisitions physiques que nous avons effectuées montrent que moins de 20.000 traces électromagnétiques d'attaques sont nécessaires pour retrouver l'entièreté de la clef secrète. Une contremesure simple à base de masquage est proposée pour empêcher cette attaque.
Abstract: Hamming Quasi-Cyclic (HQC) is a code-based candidate of NIST post-quantum standardization procedure. The decoding steps of code-based cryptosystems are known to be vulnerable to side-channel attacks and HQC is no exception to this rule. In this paper, we present a new key recovery side-channel attack on HQC with chosen ciphertext. Our attack takes advantage of the reuse of a static secret key on a micro-controller with a physical access. The goal is to retrieve the static secret key by targeting the Reed-Muller decoding step of the decapsulation and more precisely the Hadamard transform. This function is known for its diffusion property, a property that we exploit through side-channel analysis. The side-channel information is used to build an Oracle that distinguishes between several decoding patterns of the Reed-Muller codes. We show how to query the Oracle such that the responses give a full information about the static secret key. Experiments show that less than 20.000 electromagnetic attack traces are sufficient to retrieve the whole static secret key used for the decapsulation. Finally, we present a masking-based countermeasure to thwart our attack.