Retour au blog
Technologie7 min de lecture

Tirages au sort vérifiables : pourquoi HMAC-SHA256 surpasse le chapeau

Comment fonctionne un tirage au sort cryptographiquement vérifiable, en quoi il diffère d'un tirage manuel et pourquoi c'est la manière la plus sûre de fixer l'ordre de choix dans un partage.

par Equipo Lex Partis

L'ordre dans lequel chaque partie choisit ses biens détermine ceux avec lesquels elle finira. Fixer cet ordre de manière démontrablement neutre est donc critique. Un tirage manuel — un papier dans un chapeau — fonctionne, mais sa valeur probante dépend entièrement de qui était présent et de la manière dont le moment a été documenté. Un tirage cryptographiquement vérifiable résout le problème en transformant la neutralité en quelque chose de mathématiquement vérifiable a posteriori.

Le problème du tirage manuel

Un tirage manuel devant un notaire ou un greffier est juridiquement valable, mais laisse une trace pauvre. Si des mois plus tard une partie prétend que le tirage n'a pas été équitable, la seule défense est testimoniale : les présents doivent se souvenir et déclarer ce qui s'est passé. La mémoire est fragile et les témoins ne sont pas toujours disponibles. Un tirage vérifiable, en revanche, laisse une trace mathématique qu'un tiers peut revérifier des années plus tard.

Ce qu'est HMAC-SHA256

HMAC-SHA256 est une fonction cryptographique qui combine une graine (un nombre aléatoire) avec un message (les données d'entrée du tirage) et produit un hash déterministe de 256 bits. Deux propriétés clés : avec la même graine et le même message, le résultat est toujours le même (reproductible) ; et il est computationnellement impossible de prédire le résultat sans connaître la graine, ou de l'altérer sans que cela se voie.

Comment s'articule un tirage vérifiable

  1. Avant le tirage, on fixe l'ensemble des parties (avec leur identifiant) et la date-heure du tirage. Ces données forment le message.
  2. On génère une graine aléatoire de 256 bits et on publie son hash (commitment) à toutes les parties.
  3. Au moment du tirage, on publie la graine originale. Chaque partie peut vérifier qu'elle correspond au commitment précédent.
  4. On calcule HMAC-SHA256(graine, message). Le résultat est un hash de 256 bits.
  5. Ce hash sert d'entrée déterministe à un algorithme de mélange (Fisher-Yates, par exemple) qui produit l'ordre définitif des parties.
  6. Tout est publié : graine, message, hash et ordre résultant. Tout tiers peut recalculer et vérifier.

Reproductibilité : la vraie valeur probante

La différence clé est celle-ci : si deux ans plus tard une partie conteste le tirage, il suffit de reprendre les données publiées (graine, message), d'appliquer le même algorithme et de vérifier que le résultat coïncide. S'il coïncide, le tirage est incontestable. Sinon, la manipulation est démontrable. Pas besoin d'appeler des témoins ni de reconstituer le moment : la vérification est mathématique.

Applicabilité réelle

Cette technique est standard dans les applications où la vérifiabilité est critique : loteries, attributions académiques, tirages administratifs. La transposer au domaine du partage est naturel et, à notre avis, devrait devenir une pratique standard lorsque la procédure est gérée numériquement. L'effort additionnel pour bien l'implémenter est minime ; la robustesse probante qu'elle apporte, énorme.

Vous voulez appliquer cela dans votre prochaine procédure ?

Lex Partis structure l'inventaire, les préférences, le tirage et l'attribution avec la traçabilité qu'attendent les professionnels du droit.