Cryptographie!

L'attaque par canaux auxiliaires

  Même si un système cryptographique est, théoriquement, très bien conçu, même si sa sécurité est, mathématiquement, prouvée, son implémentation matérielle peut être sujette à des fuites d'information : un processeur émet des rayonnements, il consomme de l'énergie, un algorithme a un temps d'exécution plus ou moins long… L'analyse de ces fuites d'information, et leur exploitation pour décrypter des messages, s'appelle la cryptanalyse par canal auxilaire.

  Ces attaques nécessitent des connaissances souvent différentes de celles que l'on rencontre souvent en cryptologie : ici, l'informatique et les mathématiques ne sont plus prédominants, mais la physique, l'électronique sont les ressources les plus utiles. Décrivons toutefois quelques-unes de ces attaques par canaux auxiliaires :
  • l'attaque par temps de calcul. Cette attaque peut-être très utile par exemple pour trouver la clé privée du système RSA. En effet, les calculs effectués comportent une exponentiation modulaire, c'est-à-dire le calcul d'une puissance $C^d$ modulo $n$, où $d$ est la clé secrète. Si l'algorithme d'exponentiation modulaire est mal programmée, son temps d'exécution dépend beaucoup de la valeur de la clé secrète $d$. L'analyse du temps de calcul de $C^d$, pour quelques valeurs de $C$, permet alors de retrouver $d$.
  • l'attaque par mesure de la consommation électrique. Voici une image simple expliquant pourquoi la consommation électrique peut donner des renseignements. Imaginons qu'un paparazzi observe un couple célèbre et veut savoir si les deux personnes font chambre à part. Après avoir observé la consommation électrique de leur maison avant leur retour du restaurant, il observe la consommation électrique après le retour. La différence lui permet de savoir s'il y a une ou deux lampes allumées.
  • l'attaque par analyse des émanations électromagnétiques. Cette attaque se rapproche de la précédente, puisqu'un circuit électrique en fonctionnement émet un champ électrique et magnétique.
  • l'attaque par faute. L'idée est ici différente. Il s'agit d'obliger le processeur à faire une faute pour en déduire des informations, ou l'obliger à faire un nouveau calcul et comparer au calcul erroné précédent. Ceci est techniquement possible, par exemple en émettant un flash intense sur une carte à puce.
  Il existe bien sûr des mesures que l'on peut prendre pour lutter contre les attaques par canal auxiliaire : blindage pour limiter le rayonnement externe, lissage de la consommation électrique,...