• Aucun résultat trouvé

1.1 La cryptographie asymétrique

1.1.6 Sécurité et attaques physiques

Les attaques par canaux cachés sont un type d’attaques important, notamment dans un contexte d’implantation matérielle. En effet, ces attaques sont extrêmement dangereuses car elles ne reposent pas sur la qualité du cryptosystème en terme de sécurité purement mathématique, mais sur son implantation. Une implantation matérielle peut être observée ou bien agressée, fautée et ainsi révéler des secrets à l’attaquant, tout en semblant parfai- tement sûre mathématiquement. Une implantation cryptographique doit donc être aussi résistante aux deux types d’attaques.

On peut globalement classer en 2 catégories les attaques physiques. D’une part les attaques par observation (ou attaques passives), qui demandent de pouvoir disposer d’un canal de mesure fuitant de l’information, classiquement la consommation de courant [33,69], le rayonnement électromagnétique [4, 100] ou bien le temps d’exécution [68]. D’autre part les attaques par perturbation (ou attaques actives), où l’attaquant va, par exemple, essayer d’introduire des fautes dans le circuit en modifiant un ensemble de bits à l’aide d’un laser. L’exemple probablement le plus simple d’attaque par observation est l’analyse simple de courant (SPA pour simple power analysis), proposée par Kocher et al. [69]. Comme présenté dans la section 1.1.4, certains algorithmes d’exponentiation ou de multiplication scalaire effectuent des calculs complètement différents suivant les bits de la clé secrète. Par exemple, l’algorithme 5 effectue dans un cas un simple doublement, et dans l’autre une addition et un doublement. Les additions étant des opérations bien différentes des double- ments dans le cas standard (sans contre-mesure spécifique avec des formules unifiées comme dans [23, 61]), les différences de consommation entre les 2 opérations sont très facilement perceptibles. Toujours dans [69] sont proposées des attaques plus sophistiquées, qui à la suite d’un certain nombre de mesures appliquent un traitement statistique afin de retrouver une partie de la clé. On appelle ces attaques DPA, pour Differential Power Analysis attacks. Un exemple connu d’attaque active a été proposé par Boneh et al. dans [21]. La propo- sition est une attaque contre les implantations dites RSA-CRT, où le théorème chinois des restes (détaillé en 1.2.1) est appliqué directement sur la factorisation du module RSA. En injectant une faute dans le calcul effectué sur l’un des facteurs premiers du modulus, on peut retrouver directement la factorisation de celui-ci, et donc casser le système. Une autre exemple est l’attaque safe error, présentée dans [128,129], qui permet d’attaquer certaines implantations d’exponentiation ou de multiplication scalaire. Ces attaques révèlent des in- formations sur les branchements pris suivant les bits de clé. Cela permet notamment de différencier ces différents branchements, lorsqu’une analyse de courant simple SPA ne suffit pas. Le modèle d’attaquant est par contre ici plus fort que celui d’une SPA car il requiert de pouvoir attaquer avec une très bonne précision le circuit sans le détruire, comme par exemple attaquer un registre contenant une coordonnée d’un point à un moment précis. Des exemples de contre-mesure

Pour lutter contre les attaques de type SPA, on va généralement chercher à briser le lien entre la consommation de courant et le côté du branchement choisi dans les algorithmes d’exponentiation et de multiplication scalaire. Il existe notamment plusieurs façons d’uni- formiser les calculs effectués si le bit de clé ki vaut 1 ou 0.

La contre-mesure présentée par Joye et Yen dans [62], appelée échelle de Montgomery permet d’effectuer une multiplication scalaire en effectuant pour chaque bit de k exacte- ment une addition de points et un doublement. En utilisant cet algorithme (présenté plus en détail dans la section 3.2), on s’attend à ce que la consommation de courant varie très peu suivant que le bit kisoit à 1 ou 0. De même, la contre-mesure de Möller [86] propose une adaptation de l’algorithme de multiplication par fenêtre de Yao [125] qui effectue toujours w doublements puis une addition, quelque soit la valeur de la fenêtre (ki+m−1, . . . , ki). Cette contre-mesure nécessite donc le pré-calcul de constantes comme pour l’algorithme [125] et requiert en plus un recodage de la clé pour être sûr de ne pas effectuer des opérations irrégulières, comme une addition entre P et l’élément neutre O.

Une autre contre-mesure visant à uniformiser les calculs est par exemple proposé par Brier et Joye dans [23]. Cette contre-mesure propose l’utilisation de formules unifiées pour l’addition et le doublement de point. Autrement dit, on effectue exactement de la même façon l’addition de points et le doublement de point, la consommation ne dépend alors plus des opérations effectuées. On remarque que contrairement aux deux premières contre- mesures [62, 86] qui proposent une protection au niveau algorithme de multiplication sca- laire ou d’exponentiation, celle-ci propose une protection directement au niveau des for- mules pour ADD et DBL.

Pour se protéger contre les attaques statistiques, on peut aussi citer les contre-mesures de Coron [33] qui sont des contre-mesures classiques pour les implantations ECC. Pour protéger le circuit d’une analyse statistique, l’idée est d’introduire de l’aléa à chaque exé- cution. Dans [33] est proposé par exemple de rendre aléatoire les coordonnées du point de base P en coordonnées projectives ou encore d’ajouter des bits d’aléa à la clé sans changer le résultat final.

Une autre façon de se protéger contre les attaques statistiques, mais aussi des attaques de type SPA, est d’utiliser du matériel pour ne plus avoir de lien entre le canal observé et les données ou les calculs effectués. Par exemple, la logique WDDL pour wave dynamic differential logic est utilisée par Tiri et Verbauwhede [122] ou encore McEvoy et al. [76] pour protéger le système. Dans une implantation WDDL, tout signal s est implanté de paire avec son complémentaire s. Ainsi, un changement sur s implique un changement sur s, ce qui rend plus difficile l’analyse de la consommation de courant et le lien qui peut être fait avec les calculs effectués. Nous remarquons que cette contre-mesure est proposée au plus bas niveau en terme d’implantation, elle peut donc être implantée en complément d’autres contre-mesures.

Enfin, pour se protéger contre certaines attaques en faute, Giraud [50] propose de tes- ter le résultat de certains algorithmes de multiplication scalaire ou d’exponentiation avant de retourner un résultat qui donnerait potentiellement des informations à un attaquant. Ce type de contre-mesure doit être utilisé avec un algorithme adapté, comme l’échelle de Montgomery. En effet, certains types d’algorithmes protégés contre la SPA peuvent retour- ner un résultat juste, malgré qu’une faute ait été commise. Dans ce cas, le test final ne protège plus de la fuite d’information.

Pour conclure sur cette section, ma thèse se plaçant dans un contexte d’implantations matérielles de cryptographie, il est important d’évoquer les attaques par canaux cachés.

Les propositions que nous avons faites dans la thèse portent sur l’accélération des calculs du corps de base, elles sont pour la plupart compatibles avec les contre-mesures qui sont faites aux autres niveaux de la figure 1.4, que ce soit sur l’arithmétique de la courbe ou bien l’algorithme de multiplication scalaire. Par exemple, elles sont compatibles avec les contre-mesures classiques de Coron [33] contre la DPA ou celles de Joye et Yen [62] ou Möller [86] contre la SPA.