Ma solution à l’énigme n°3 “ENJOY” de TimeValor


Le 25 janvier 2019, j’ai résolu l’énigme n°3 de TimeValor (aka Arthur Myard sur Twitter), publié le 06 octobre 2018. Il m’aura donc fallu environ 4 mois pour en venir à bout ! Je vous livre ici la démarche que j’ai suivi pour y arriver.

Enoncé

Il s’agissait de trouver la clé privée associée à l’adresse bitcoin : 1ENJoYRgWjo8Dzz3DMYVegGsfg5jLdapdf et contenant environ 0,026 BTC.

La clé privée était codée dans l’image suivante :

Pour décoder la clé, voici l’énoncé dont on disposait initialement :

  • Nous sommes en 2018.
  • Il s’agit d’un groupe de 51 personnes portant chacun un maillot avec un numéro dans le dos et un Saint Patron de l’année en cours. Chacun porte un bracelet avec une année dessus.
  • Le groupe est composé de trois familles :

On a ensuite le listing des 51 personnes composant le groupe, avec pour chacune des informations spécifiques :

  1. Arthur porte le maillot Saint “Théophile” et un bracelet indiquant 2003.

Premières analyses

L’image est composée de 51 lignes. Une clé privée bitcoin étant composée de 51 caractères, j’ai vite compris qu’un caractère de la clé devait être codé sur chaque ligne. De plus, il y a 51 personnes dans le groupe. Une personne doit donc être associée à une ligne.

De même, on remarque qu’il y a 34 colonnes et que les dates de naissance données dans la liste sont comprises entre 1984 et 2017, c’est à dire 34 années de naissance. Une colonne doit donc correspondre à une année de naissance ou un age.

Avec ces infos, j’ai essayé de nombreuses combinaisons mais sans résultat. Le problème est que je n’exploitais pas toutes les données de l’énoncé, notamment l’association des saints sur les maillots. J’ai essayé alors d’extraire des données avec les noms des saints mais rien de concluant non plus.

Indices supplémentaires

Plusieurs mois ont passé, avec un nouvel indice à chaque mois :

  • Indice novembre 2018: Chaque personne a un point commun avec une autre personne du groupe sauf “Yann”.
  • Indice décembre 2018: Environ 98% des personnes possèdent le maillot d’une autre personne du groupe.
  • Indice janvier 2019: Le calendrier de 2018 est nécessaire pour réussir.

Les nouveaux indices de novembre et décembre m’ont emmené dans une mauvaise direction car j’ai mal interprété un terme : le “groupe”. J’ai confondu la notion de groupe avec celle de famille :-/. Et j’ai alors cherché à associer des couples de personnes par famille, en vain …

Sans cette erreur d’interprétation, l’indice de novembre devient évident : le point commun qui unit 2 personnes est simplement son initiale. Il y a 25 personnes qui sont liées à 25 autres par une initiale commune (ex : Arthur-Antoine) et 1 personne toute seule : Yann. Ce qui donne du sens à la phrase qualifiant Yann : il porte le maillot Saint “Honoré” et se la joue “Solo”.

Concernant l’indice de décembre, j’ai également fait une erreur d’interprétation. Voyant que Yann était tout seul, j‘ai pensé que c’était lui qui ne possédait pas le maillot d’une autre personne. Je ne comprenais pas l’intérêt de cet indice. J’aurais dû y prêter plus d’attention :-/

Dénouement

C’est l’indice supplémentaire de janvier qui m’a permis de trouver l’élément manquant pour recoller les morceaux : le calendrier de 2018 est nécessaire pour réussir. J‘avais bien compris qu’il fallait faire quelque chose avec les dates à laquelle on fête les saints. Mais je ne comprenais pas en quoi le fait d’utiliser le calendrier de 2018 pouvait influer sur ces dates.

C’est alors que j’ai décidé de marquer ces différentes dates sur le calendrier de 2018 :

Voilà ce que cela donne sur les 6 premiers mois, en utilisant 3 couleurs différentes pour différencier les 3 familles. Vous remarquez quelque chose ? Il y a seulement un saint par semaine ! Cela pour les semaines de 1 à 51, comme par hasard :-)

J’ai donc effectué un nouveau classement des personnes du groupe en utilisant le numéro de semaine auquel leur saint est affecté.

Exemple : Arthur porte le maillot Saint “Théophile”. On fête les Théophile le 20 décembre, qui se trouve en semaine 51 dans le calendrier 2018. Arthur porte donc le maillot n°51.

J’ai positionné dans ce nouvel ordre chaque personne en face des lignes de l’image, en allant de haut en bas.

Ensuite, pour identifier le caractère sur la ligne, il fallait utiliser la date de naissance de son homologue de même initiale.

Exemple : Arthur est associé à Antoine qui est né en 1986. Il a donc 32 ans par rapport à 2018. Il faut donc se rendre à la 32 ème colonne sur la ligne d’Arthur (la 51 ème) pour trouver son caractère : 5

Ce qui semble correct puisqu’une clé privée sur 51 caractères commence par un 5 :-)

Ensuite vient le côté fastidieux de la tâche : répéter ces opérations pour chaque personne du groupe, en évitant de faire des erreurs :-/. Et voilà ce que j’ai obtenu :

Une fois tous les caractères obtenus, il suffit de les remettre dans l’ordre initiale des personnes du groupe (Arthur, Bénédicte, …) en leur attribuant la bonne casse en fonction de leur famille. En effet, comme pour l’énigme précédente, les familles permettent de faire la distinction entre majuscule, minuscule et chiffre.

La famille 1 est associé aux majuscules car elle contient 2 fois le caractère ‘l’ qui ne peut pas être en minuscule en base 58 (pour ne pas être confondu avec le chiffre 1). La famille 2 correspond aux minuscules. Et la famille 3 ne contient que des chiffres.

Grace à cela, j’ai pu trouver la clé privée et vérifier qu’elle correspondait bien à l’adresse publique 1ENJoYRgWjo8Dzz3DMYVegGsfg5jLdapdf

Conclusion

Voilà donc quelle a été ma démarche pour résoudre cette énigme. J’avoue que cela n’a pas été simple et je passe sous silence les nombreuses tentatives infructueuses que j’ai dû faire avant d’arriver à la solution. Néanmoins, cette recherche était stimulante et enrichissante.

Un grand merci à Arthur Myart pour la mise en place de cette énigme. En attendant impatiemment les prochaines ;-)