Où en sont les GPU brute forcer ?

cudaAprès avoir essayé d’extrapoler le temps nécessaire pour casser un mot de passe avec des supercalculateur dans ce billet, puis dans celui-ci avec PBKDF2. Je vais à présent m’intéresser dans cet article à essayer de définir le temps réel qu’il faut aujourd’hui pour une machine du commerce de milieu-haut de gamme pour casser des mots de passe MD5 à l’aide de la puissance de la carte graphique et donc le GPGPU.

Voila maintenant un peu plus d’un 1 an (mai 2008) que le premier brute forcer se servant de la puissance des GPU et de l’API CUDA de NVIDIA est apparut. Ce brut forcer possède le doux nom MD5-GPU et pour la petite histoire il a été écris par un Français : Benjamin Vernoux (cocorico). Avec une 8800GT, la version 0.1 de MD5-GPU générait une puissance de 60Mhash/s, la version 0.2 qui suivit dans le même mois atteignait déjà 200MHash/s.

2 mois après, en Juillet 2008, le Biélorusse Svarychevski Michail Aleksandrovich est propulsé sur le devant de la scène avec son BarsWF qui permet de cumuler la puissance de calcul du CPU avec celle du GPU. En octobre 2008, BarsWF devenait le bruteforcer MD5 le plus rapide du monde avec une puissance de 450MHash/sec toujours avec une 8800GT ce qui cumulé avec un processeur de type e6750 pouvait donner une puissance de 550Mhash/sec.

L’année 2008 se termine donc dans l’hégémonie de CUDA et des cartes NVIDIA pour les bruteforcer.

ati-streamMais c’était sans compter sur AMD, avec la déferlente de carte HD4xx0 sortie pour l’été 2008. Bien que CUDA soit plus stable et plus performant que brook+, le rapport puissance/cout des nvidia est très largement défavorable. Et c’est au tout début de l’année 2009 que Svarychevski Michail Aleksandrovich sort la première version de BarsWF pour carte ATI se basant sur Brook+. Brook+ maintenant appelé ATI Stream est une API GPGPU issus de BrookGPU de l’université de Standford qui permet de tirer profit de la puissance de carte ATI pour le calcul. Et dés la première beta de BarsWF-Brook+ les résultats furent à la hauteur des esperances. Une HD4870 (coutant dans les 130 euros pour 1200Gflops) atteins les 1100MHash MD5 /sec tandis qu’un GTX285 (coutant dans les 330 euros pour 1063 Gflops) ne dépasse pas les 800 Mhash MD5 /sec. Pas besoin de plus d’explication pour comprendre pourquoi ATI à la faveur des bruteforcer depuis le début de l’année.

Et c’est en juillet 2009 que sort IGHASHGPU qui se veut plus rapide que BarsWF sur les cartes ATI et trés proche pour les carte Nvidia. Contrairement à BarsWF la dernière version de IGHASHGPU (sortie le 6 aout) peut gérer la salt pour le MD5. Avec IGHASHGPU une 4870×2(2400Gflops) atteins 1960 Mhash/sec tandis qu’une 4850(1000Gflops) atteins 950Mhash/sec.

black_hat-fad62-3-fb5ee

Le clou est enfoncé dans le dos de Nvidia, lors de la black hat 2009 par Marc Bevand, encore un français et ancien de l’Epita. Il fait la démonstration que ces performances peuvent être encore amélioré en se basant sur le paradoxe des anniversaires. En utilisant une 4850×2 (2000 Gflops), il annonce avoir obtenu des performances  de l’ordre de 1630 Mhash, et en implémentant les anniversaires il arrive a obtenir 2090 Mhash/sec. Toutefois après la black hat il a annonce avoir fait quelques erreurs dans son benchmark et la publication de son code prévu initialement pour la première semaine d’aout et repoussé.

La course continue, cela ne fait que 1 ans que le GPGPU est utilisé pour les brute forcer. Et le chemin parcourus d’un français a un autre français et impressionnant. La fin de l’année 2009 devrait être riche en rebondissement avec l’arrivé simultanée de la nouvelle plateforme GT300 de nvidia et Rv8x0 de ATI. Mais surtout de la temps attendus OPENCL qui devrait réunir ATI et NVIDIA pour le GPGPU. Dans un prochain billet je ferais un récapitulatif sous forme de tableau des capacités actuelle de brute force sur les différents algorithme de hash.