Keynote SSTIC 2009 – Calcul sur cartes graphiques, cryptographie et sécurité

Présentation : Antoine Joux

Principe : utiliser les processeurs de cartes graphiques, comme accélérateur cryptographique.
Les premières implémentations datent de 2006, mais ne sont pas très efficaces.
Quelques temps plus tard, les gains se sont avérés impressionnants, et l’intérêt de cette méthode est apparu.
Finalement, l’implémentation est assez simple, surtout pour la cryptographie à clef secrète, où le gain de performance est très significatif (allant jusqu’à 20x)

Par contre, pour la cryptographie à clef publique qui demande des calculs plus imposants, le gain est de 20 ou 30%, ce qui ne vaut pas le coup à l’heure actuelle, d’autant qu’il faut prendre en compte les transferts de données.

En ce qui concerne la cryptanalyse, c’est différent.
Notamment à l’aide de la parallélisation massive, qui fait gagner un temps important, sans transfert de données (dans le cas du brute force). Il s’agit donc de puissance de calcul pure, avec des formules mathématiques qui s’appliquent parfaitement au parallélisme des cartes.

A noter que toutes les optimisations réalisées sur CPU ne sont pas bonnes pour un GPU. Il est cependant une bonne idée d’optimiser le code pour utiliser au maximum les opérations arithmétiques de base (xor, etc)

Les performances peuvent être réellement intéressantes, jusqu’à plusieurs 10aines de fois plus rapide, en fonction des algorithmes (bien) implémentés.

Quelle en est l’utilisation principale ?
– Cracker de mots de passe est de loin l’activité la plus intéressante à l’heure actuelle, nécessitant essentiellement de la puissance de calcul et peu de transfert de données.
– La reconnaissance des signatures de virus peu aussi être une activité intéressante (rapide, et surtout, cachée !)
– Le point ci-dessus amène aussi une question : Le GPU, nouvel hôte pour virus et parasites ?