{"id":319,"date":"2012-09-07T23:39:56","date_gmt":"2012-09-07T21:39:56","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=319"},"modified":"2016-03-29T19:04:59","modified_gmt":"2016-03-29T17:04:59","slug":"collisions-dempreintes-multi-algorithmique","status":"publish","type":"post","link":"https:\/\/blog.nebule.org\/?p=319","title":{"rendered":"Collisions d&#8217;empreintes multi-algorithmique"},"content":{"rendered":"<p style=\"text-align: justify;\">On peut utiliser de multiples algorithmes pour calculer l&#8217;empreinte des objets. Certains algorithmes sont plus r\u00e9sistants, plus fiables ou plus s\u00fcrs que d&rsquo;autres. Cette r\u00e9sistance est repr\u00e9sent\u00e9 par l&rsquo;impossibilit\u00e9 (relative) d&rsquo;inverser la fonction algorithmique, c&rsquo;est \u00e0 dire de retrouver l&rsquo;objet source \u00e0 partir de l&#8217;empreinte. Il en d\u00e9coule l&rsquo;impossibilit\u00e9 (relative aussi) de calculer une collision dans les empreintes entre deux objets, c&rsquo;est \u00e0 dire de calculer un objet qui a une empreinte pr\u00e9cise, par exemple la m\u00eame empreinte qu&rsquo;un autre objet pr\u00e9-existant. Ces impossibilit\u00e9s sont relatives parce qu&rsquo;il sera toujours possible dans le pire des cas (pour l&rsquo;attaquant) de tester toutes les combinaisons possible afin de trouver une collision, mais cela lui prendra un temps tel que c&rsquo;est jug\u00e9 \u00e9quivalent \u00e0 impossible dans l&rsquo;\u00e9tat actuel de nos connaissances math\u00e9matiques et de nos moyens informatiques.<\/p>\n<p style=\"text-align: justify;\">Premi\u00e8re conclusion, inutile de s&rsquo;attarder sur des algorithmes de prise d&#8217;empreinte triviales comme CRC qui n&rsquo;ont pour vocation que de permettre une v\u00e9rification extr\u00eamement rapide de donn\u00e9es transmises (par exemple sur la couche TCP sur IP). Ces algorithmes ne sont pas pr\u00e9vus pour r\u00e9sister aux collisions volontaires.<\/p>\n<p style=\"text-align: justify;\">Seconde conclusion, rappel de principes de base en s\u00e9curit\u00e9 informatique, on ne doit pas utiliser des algorithmes qui sont reconnus non fiables ou pour lesquels on est sur le point de r\u00e9ussir des collisions. Exit donc MD5, SHA0 et SHA1 par exemple.<\/p>\n<p style=\"text-align: justify;\">Jusque l\u00e0, on reste en territoire connu. SHA256 est encore aujourd&rsquo;hui reconnu comme s\u00fcr et ne semble pas pr\u00e9senter de faiblesse \u00e0 moyen terme. Il peut servir sans risque intrins\u00e8que aux premi\u00e8res exp\u00e9riences n\u00e9cessitant un bon niveau de s\u00e9curit\u00e9. D&rsquo;autres algorithmes connus sont susceptibles d&rsquo;\u00eatre utilis\u00e9s dans un futur proche.<\/p>\n<p style=\"text-align: justify;\">Mais que ce passe-t-il si on m\u00e9lange plusieurs algorithmes diff\u00e9rents pour le calcul d&#8217;empreinte ?<br \/>\nNe risque-t-on pas d&rsquo;affaiblir non pas les algorithmes mais le syst\u00e8me dans son ensemble ?<\/p>\n<p style=\"text-align: justify;\">En pr\u00e9sentant un objets sous diff\u00e9rentes empreintes g\u00e9n\u00e9r\u00e9es par des algorithmes diff\u00e9rents, ne risque-t-on pas d&rsquo;affaiblir un ou plusieurs algorithmes ?<\/p>\n<p style=\"text-align: justify;\">De fa\u00e7on plus g\u00e9n\u00e9rale, si une faille importante est d\u00e9couverte dans un algorithme et que celui-ci n&rsquo;est plus jug\u00e9 s\u00fcr, quelles cons\u00e9quences pour l&rsquo;ensemble du syst\u00e8me ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On peut utiliser de multiples algorithmes pour calculer l&#8217;empreinte des objets. Certains algorithmes sont plus r\u00e9sistants, plus fiables ou plus s\u00fcrs que d&rsquo;autres. Cette r\u00e9sistance est repr\u00e9sent\u00e9 par l&rsquo;impossibilit\u00e9 (relative) d&rsquo;inverser la fonction algorithmique, c&rsquo;est \u00e0 dire de retrouver l&rsquo;objet source \u00e0 partir de l&#8217;empreinte. Il en d\u00e9coule l&rsquo;impossibilit\u00e9 (relative aussi) de calculer une collision &hellip; <a href=\"https:\/\/blog.nebule.org\/?p=319\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Collisions d&#8217;empreintes multi-algorithmique<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[58,72,3,4,24],"tags":[130,152,158,227,300,301,302],"_links":{"self":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/319"}],"collection":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=319"}],"version-history":[{"count":1,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/319\/revisions"}],"predecessor-version":[{"id":2345,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/319\/revisions\/2345"}],"wp:attachment":[{"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}