Temps d'exécution du MD5

Temps d'exécution du MD5 - Algo - Programmation

Marsh Posté le 24-05-2009 à 17:01:44    

Bonjour,
 
Bon jsuis nouveau sur le forum... Et j'ai une question dont je ne connais pas le niveau d'intérêt...  
 
Je fais actuellement un TIPE sur les fonctions de hachage et on étudie le MD5. Et mon prof m'a demandé à quelle vitesse le MD5 computait... Est-ce que vous auriez un ordre de grandeur à donner, avec une unité intéressante ? =)
Ou comment faire pour connaître le temps d'exécution du MD5?
 
Quelque chose d'intéressant serait de connaître le nombre de mots d'une taille moyenne à 5 lettres hachés par seconde, ou de phrases d'une dizaine de mots...
 
Merci d'avance

Reply

Marsh Posté le 24-05-2009 à 17:01:44   

Reply

Marsh Posté le 24-05-2009 à 19:30:38    

bah tu codes et tu benches quoi ... ca depend de 'larchi, de l'implantation, du langage etc ...

Reply

Marsh Posté le 25-05-2009 à 11:04:38    

Euh... J'y connais rien à vrai dire.
 
Jcode quoi >.< ? Pourquoi ça dépendrait du langage? Y'a le MD5 et puis c'est tout... Par contre jveux bien que ça dépende de la puissance de l'ordi. -_-"
 
Jfais pas d'info vraiment encore alors jdois avoir l'air d'un poisson hors de l'eau là :/

Reply

Marsh Posté le 25-05-2009 à 11:33:48    

ben du javascript, ça va pas aussi vite que du C vu que l'un est interprété et l'autre compilé :/ Et l'asm va plus vite que le C en général car plus optimisé. Mais du javascript sur firefox 3 va plus vite en général que sur firefox 2 car le moteur de FF3 a été optimisé (pour les boucles par ex).
 
Donc, pour ton bench, faudra dire dans quelles conditions t'as fait le test. Du reste, sur HFR (ou n'importe quel autre site de test de matos j'imagine) ils disent toujours le matos qu'ils ont pris pour tester une carte graphique ou un autre matos...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-05-2009 à 11:39:53    

Vouai c'est pas pratique... Mais ça change beaucoup beaucoup? Y'a pas moyen de faire une moyenne?

Reply

Marsh Posté le 25-05-2009 à 11:39:55    

rufo a écrit :


Et l'asm va plus vite que le C en général car plus optimisé


 
[:prozac] Non, merci d'arrêter de propager cette FUD :o

Reply

Marsh Posté le 25-05-2009 à 12:02:27    

Lytho a écrit :

Vouai c'est pas pratique... Mais ça change beaucoup beaucoup? Y'a pas moyen de faire une moyenne?


 
http://shootout.alioth.debian.org/ [...] hino&box=1


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-05-2009 à 12:04:19    

Joel F a écrit :


 
[:prozac] Non, merci d'arrêter de propager cette FUD :o


 
On m'aurait menti? En école d'ingé, mon prof de traitement d'image m'avait dit que l'asm était plus rapide que le C et qu'au besoin, certaines parties de programmes pour de la reconnaissance de forme étaient codé en asm pour accélérer le traitement...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-05-2009 à 12:08:30    

Mdr. Bon jpige rien. Jsais même pas ske désigne bench.
 
Le seul truc que j'aurais voulu c'est un truc du genre "vitesse de 1800Mbits/sec" sur tel processeur à la pointe actuelle, no sé.
 
Tant pis, merci dvotre aide quand même =)
 

Reply

Marsh Posté le 25-05-2009 à 13:19:13    

ce qui fait varier la vitesse d'exe d'un algorithme :
- l'architecture du processeur (fréquence, mémoire cache, prédiction de branchements et j'en passe...) et éventuellement d'uatres éléments de l'ordinateur (ram, HDD...)
- le langage de programmation  et s'il est compilé, interprété...
- la façon dont est implémenté l'algo : optimisations par rapport au langage et à l'architecture de l'ordinateur, comme les instructions SSEE ou 3dnow, si l'algo est threadé (pour les cpu multi-cores)...
 
Donc tu vois, y'a pleins de paramètres à prendre en compte. Et un bench, c'est un ou plusieurs tests de perfs qu'on fait passer à un ou plusieurs éléments qu'on veut évaluer (PC entier, cpu, différentes implémentations d'un même algo, langages de programmation...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-05-2009 à 13:19:13   

Reply

Marsh Posté le 25-05-2009 à 13:52:44    

rufo a écrit :


 
On m'aurait menti? En école d'ingé, mon prof de traitement d'image m'avait dit que l'asm était plus rapide que le C et qu'au besoin, certaines parties de programmes pour de la reconnaissance de forme étaient codé en asm pour accélérer le traitement...


 
oui on t'as menti. C'était vrai en 1650 quand les compilos etait relaivement peu efficace. Maintenant, la difference de temps est négligeable ... Encore un prof bien à jour :E :o

Reply

Marsh Posté le 25-05-2009 à 15:13:06    

Et si on considère le programme MD5 Lambda téléchargeable ici http://www.commentcamarche.net/tel [...] 055119-md5 ... On procède par invité de commandes etc...
 
Tu saurais me donner un ordre de grandeur pour ton pc par exemple de l'exécution du programme? (en partant du principe que ton pc est ds une moyenne actuelle ;o) .  
 
J'ai finalement besoin de savoir que pour ce programme là...
 

Reply

Marsh Posté le 08-06-2009 à 12:04:07    

tu peut test en php si ca t'amuse :o
 

Code :
  1. $t1 = time();
  2.  
  3. for ($i = 0; $i < 100000; $i++){
  4.    md5('Lytho');
  5. }
  6. $t2 = time();
  7.  
  8. echo 'Calculs moyens par seconde : ' . 100000 / ($t2 - $t1);

Reply

Marsh Posté le 08-06-2009 à 12:07:03    

sur mon pc, Calculs moyens par seconde : 326834.76868269 (avec microtime())

Reply

Marsh Posté le 15-06-2009 à 17:52:50    

Petite contribution malgré le style sms :o :
Sinon tu regarde l'algo, tu compte de nombre d'additions/multiplications en fonction du mot (ou de la taille du fichier ou de je ne sis quoi de pertinent), et t'en déduis la complexité, qui est indépendante de la machine/language utilisé.


---------------
Nous vous souhaitons de beaux rêves, c'est le cinéma gratuit.
Reply

Marsh Posté le 15-06-2009 à 18:00:56    

Joel F a écrit :

bah tu codes et tu benches quoi ... ca depend de 'larchi, de l'implantation, du langage etc ...


implémentation [:aloy]

 

Mais à part ça, eres correcto :o (d'ailleurs j'avais vu il y a quelques temps un post sur le MD5 de base de freebsd qui était 20% plus lent que celui d'OpenSSL)

 

Et si vous étudiez MD5 votre prof vous a rappelé qu'il avait été complètement craqué et qu'il ne fallait surtout pas l'utiliser? et que SHA-1 vient de tomber (collision en 2^52)

Joel F a écrit :

[:prozac] Non, merci d'arrêter de propager cette FUD :o


Bah pour un bout de code spécifique ça reste vrai, de même que "le C est plus rapide que le Java" :o

Message cité 2 fois
Message édité par masklinn le 15-06-2009 à 18:01:59

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-06-2009 à 19:27:54    

masklinn a écrit :

Et si vous étudiez MD5 votre prof vous a rappelé qu'il avait été complètement craqué et qu'il ne fallait surtout pas l'utiliser? et que SHA-1 vient de tomber (collision en 2^52)


C'est quoi d'ailleurs en ce moment le plus sécurisé ?

Reply

Marsh Posté le 15-06-2009 à 19:32:23    

Deamon a écrit :


C'est quoi d'ailleurs en ce moment le plus sécurisé ?


La famille SHA-2 et RIPEMD-160, en attendant SHA-3 (vers 2012)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-06-2009 à 23:44:15    

masklinn a écrit :


Bah pour un bout de code spécifique ça reste vrai, de même que "le C est plus rapide que le Java" :o


 
T'es meilleur qu'un algo d'analyse statique pr derouler le pipeline et allouer tes registres ? Chapeau bas mais j'y crois guère.
Et merci de pas me sortir des algo jouet de 5 lignes :o

Reply

Marsh Posté le 15-06-2009 à 23:49:23    

Joel F a écrit :

T'es meilleur qu'un algo d'analyse statique pr derouler le pipeline et allouer tes registres ?


Moi non. Un mec qui s'y connaît bien en ASM pourquoi pas? S'il a une vue d'ensemble de son programme il peut avoir une vue haut niveau du système que le compilo n'aura pas, ou il peut connaître des tricks trop dangereux ou avec trop peu d'intérêt pour être collés dans un compilo [:spamafote]

 

Si l'exemple C vs Java te va pas, on peut aller avec C vs Haskell à la place, dans la mesure où ghc peut sortir du C [:spamafote]

Message cité 1 fois
Message édité par masklinn le 15-06-2009 à 23:50:23

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-06-2009 à 08:20:52    

masklinn a écrit :


Moi non. Un mec qui s'y connaît bien en ASM pourquoi pas? S'il a une vue d'ensemble de son programme il peut avoir une vue haut niveau du système que le compilo n'aura pas, ou il peut connaître des tricks trop dangereux ou avec trop peu d'intérêt pour être collés dans un compilo [:spamafote]


 
Moi j'en suis pas sur des que le code devient complexe. Et du code complexe ca arrive vite.

Reply

Marsh Posté le 16-06-2009 à 12:49:14    

Joel F a écrit :


 
Moi j'en suis pas sur des que le code devient complexe. Et du code complexe ca arrive vite.


Même pas complexe: si t'as une arch avec une poignée de registres, ça va à peine, ton cerveau peut à peu près gérer, mais sur une arch avec 32<->128 registres, j'y crois plus du tout.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed