Une lettre que j'ai écrite à la liste de diffusion SHA-3 en 2010 : De : Zooko O'Whielacronx À : hash-forum Date : 2010-10-14 03:46 UTC Mesdames et messieurs : Si un hash a une résistance à la pré-image de 32 bits, cela signifie qu'un attaquant pourrait dépenser environ 2³² ressources pour trouver une pré-image. Si un hash a une résistance à la pré-image de 64 bits, cela signifie qu'un attaquant pourrait dépenser environ 2⁶⁴ ressources pour trouver une pré-image. Que se passerait-il si un hash avait une résistance à la pré-image de 512 bits ? Qu'est-ce que cela signifierait ? Qu'un attaquant pourrait dépenser environ 2⁵¹² ressources pour trouver une pré-image ? C'est une possibilité sans signification à discuter puisque 2⁵¹² ressources n'existeront jamais dans la vie de cet univers, donc cela ne peut pas signifier cela, ou si cela signifie cela, alors il n'y a aucun intérêt à parler de "résistance à la pré-image de 512 bits". Peut-être que cela signifie autre chose ? Par analogie, supposons que vous considériez la construction d'un pont qui résiste à 10³ tonnes de pression. Vous pourriez également envisager un pont qui pourrait résister à 10⁶ tonnes de pression. Si le pont devait être déployé dans une situation où plus de 10³ tonnes mais moins de 10⁶ tonnes pourraient reposer sur lui, alors ce serait une distinction très importante à faire. Mais que signifierait discuter d'un design pour un pont qui pourrait résister à 10¹⁵⁰ tonnes de pression ? Une telle quantité de pression ne pourrait jamais être appliquée au pont. Y aurait-il une valeur dans une distinction entre un design de pont qui résisterait à 10¹⁵⁰ tonnes de pression et un autre qui résisterait à 10³⁰⁰ ? Même si aucun d'eux ne pourrait jamais subir autant que 10¹⁵⁰ tonnes de pression, peut-être que le dernier pont serait encore plus sûr contre une autre menace—une erreur de la part des constructeurs ou des concepteurs ou un événement stressant qui n'était pas inclus dans le modèle que nous avons utilisé pour évaluer nos ponts au départ. Ou peut-être pas. Peut-être que le pont conçu pour résister à 10³⁰⁰ tonnes de pression est en réalité plus susceptible d'échouer que l'autre lorsqu'il est frappé par cet événement imprévu, non modélisé. Qui peut le dire ? Une position raisonnable à adopter est qu'il était une erreur pour le NIST de spécifier que certains des hashes SHA-3 devaient avoir une résistance à la pré-image de 512 bits. (Si c'était une erreur, alors je n'ai vraiment aucune idée de ce qu'il faut en faire à ce stade !) Cette position dit qu'il y a un besoin pour une fonction de hash qui prend beaucoup plus de temps CPU que SHA-3-256 pour fournir beaucoup moins de probabilité qu'un attaquant puisse trouver une pré-image en elle que dans SHA-3-256, mais que cette "probabilité beaucoup moins" n'est pas dans un sens significatif corrélée à l'idée d'avoir "une résistance à la pré-image de 512 bits". Une autre position raisonnable à adopter est qu'une fonction de hash qui est connue pour avoir au maximum une résistance à la pré-image de 384 bits est plus susceptible d'échouer qu'une qui est connue pour avoir au maximum une résistance à la pré-image de 512 bits. C'est là que ma compréhension limitée de la cryptanalyse des fonctions de hash prend fin. Est-ce plausible ? Si je vous donne deux fonctions de hash comme ça, êtes-vous sûr que vous pourriez apprendre à trouver des pré-images dans la première avant de trouver des pré-images dans la seconde ? À quel point êtes-vous sûr ? Est-il possible que ce soit l'inverse—que vous découvriez une méthode pour trouver des pré-images dans la seconde avant de découvrir une méthode pour trouver des pré-images dans la première ? Si quelqu'un qui a une véritable expertise en cryptanalyse des fonctions de hash et qui adopte la seconde position pouvait expliquer ce qu'il entend par "plus susceptible d'échouer", alors je serais fasciné de l'entendre. Quoi qu'il en soit, je suis assez sûr qu'en tant qu'utilisateur de fonctions de hash, ce qui m'importe est "plus susceptible d'échouer" (et l'efficacité), pas "bits de sécurité" pour tout niveau de bits supérieur à environ 128 (y compris la considération des attaques quantiques, des attaques multi-cibles, etc.). Merci d'avoir pris le temps de lire cela. Cordialement, Zooko Wilcox-O'Hearn
4,81K