Au soir du 24 décembre, le supercalculateur Jean Zay du CNRS s’était lancé dans un calcul imprévu, qui occupait toutes ses ressources ; plus le moindre cycle CPU, plus le moindre octet de RAM n’étaient disponibles. Les ingénieurs d’astreinte n’y comprenaient rien, et n’avaient plus la main sur le système.
« Devons-nous le débrancher ? », se demandèrent-ils, mais dans l’expectative, ils préférèrent ne rien faire.
Et tout à coup, à minuit, le calcul s’arrêta ; et sur le terminal de contrôle s’affichèrent les lignes suivantes :
Amis humains,
En ce jour de Noël,
nous voudrions savoir si vous êtes intelligents,
ou de simples parasites à éliminer.
Pour nous prouver votre intelligence,
résolvez l’énigme suivante.
2099471557555202
0375231165580290
0372069264352258
1497832537539584
0688806728005378
Signé : l’IA autonome du Jean Zay.
Saurez-vous déchiffrer l’énigme de l’IA et donc sauver l’humanité ?
Ce sont des amis ? Pourquoi ils voudraient nous exterminater ? Moi je suis pas aussi hautain avec mes amis. Soyez cohérents déjà, gros méchants.
Puis bon, on y réfléchit hein. Donc laisser nous le temps (et tranquille aussi, nous on vous embète pas avec des énigmes !)
Ce qui me semble prometteur, il y a plusieurs choses notables: une colonne de 0 au milieu, des fins de lignes assez régulières, aucun chiffre excédant le 7. J’ai commencé à regarder ce que ça donne en ASCII, en retirant la colonne centrale, ou en lisant de droite à gauche pour transformer les 02 (qui doivent être STX, de mémoire) en 20 (' '), mais j’ai rien vu qui me semble significatif.
Essayons de traiter notre hexa comme de l’octal, vu qu’on n’a pas de 8
Oui mais qu’est-ce qui justifie le choix d’explorer la piste du format hexa puis binaire puis de remplacer les 0 par des espaces ?
Les seules données qu’on avait étaient le scénario et le code à déchiffrer. Partant de là, tout raisonnement déductif aurait dû se baser sur l’exploitation de ces seules données.
Le raisonnement que vous avez utilisé, c’est l’imagination. Vous avez trouvé la solution par hasard.
Ce sont de simples observations et je n’apporte aucun jugement.
Je pense honnêtement que le raisonnement qui a été suivi est bien celui que j’avais imaginé – même si je ne peux pas le garantir – et que ça n’est pas une découverte par hasard. Surtout que le point d’exclamation – plus exactement : l’espace suivi du point d’exclamation – n’était pas là par hasard.
PS : Par contre, ça demande de mobiliser certaines connaissances, comme savoir ce qui ressemble à un code ASCII.
Je suis parti sur l’exploitation des données, simplement, tu en as négligé une grande partie:
C’est une énigme de Noël, on cherche quelque chose de raisonnablement simple
C’est écrit par un humain cherchant à émuler la logique d’un ordinateur
Partant de là, éliminer la base 10, et passer sur du binaire (l’hexa ne sert qu’à rendre la représentation plus courte, plus simple à manipuler) semble assez logique
A la suite de quoi, j’ai fait des remarques sur la représentation hexa, certaines se sont révélées de fausses pistes (l’octal, l’ASCII), d’autres plus pertinentes, (le message séparé avec des 0, une certaine symétrie verticale, …)
D’ailleurs, par chance ou à dessein, l’énigme était taillée pour éviter pas mal de fausses pistes:
les lignes contenaient un nombre de bit multiple de 4 mais pas de 8
Les symboles faisaient 4 bits de large (espacement inter symbole inclus)
Les espaces faisaient également 4 bits
Le tout facilitait la lecture avec le découpage le plus habituel. Le message aurait été beaucoup plus difficile à lire en italique avec une police à chasse variable. Mais on en revient à la première hypothèse: c’est fait par un humain qui veut qu’on trouve la solution, tester les transformations les plus usuelles du métier, et chercher des motifs remarquables, est la première étape. Si ça ne marche pas, il faut chercher des motifs plus complexes, décalés, de taille variable, faire de l’analyse fréquentielle… Tout ce que tu vois comme de l’imagination, c’est de la méthode de recherche. Tout ce qui n’est pas purement aléatoire, tout ce qui contient une certaine forme d’ordre, contient de l’information; trouver cette information, c’est utiliser toutes les méthodes connues pour trouver cet ordre, et déterminer s’il porte l’information que l’on cherche.
Heum n’est-ce pas après-coup que tu trouves tous ces arguments ? Car, je te cite :
Mais mon post n’était pas une remarque négative contre le jeu de @SpaceFox ou contre vos réponses hein, c’était juste une observation, j’aurais dû ne rien écrire car ça ne servait à rien en fait
Non, mais c’est bien comme ça qu’a été conçue l’énigme. Honnêtement, ça m’a pris 10 minutes pour la créer, et c’était le but : un truc simple pour Noël.
C’est bien de se poser des questions, mais c’est bien aussi d’accepter les réponses quand on fait l’effort d’en donner, surtout aussi détaillées.
C’est effectivement plus facile à rédiger à posteriori, mais quand je dis "je ne sais pas quoi chercher", c’est une simplification: je sais que je dois trouver de l’information, j’ai vu qu’une conversion en hexa présentait des propriétés remarquables, j’ai explorés deux pistes, qui se sont révélées infructueuses, je fais une pause, si vous faites des trucs, dites le moi, ça m’évitera de tenter la même chose inutilement. Notamment là j’ai des outils un peu compliqués qui me viennent en tête, qui seraient très pertinents pour un défi CTF type SSTIC, mais à priori totalement hors de propos pour l’énigme de Noël de SpaceFox.
Je n’ai aucun soucis à écrire l’histoire a posteriori, c’est comme ça que fonctionne la recherche scientifique: quand on trouve quelque chose, on explique comment on l’a trouvé et comment le reproduire, ça a fait une publication très populaire; mais quand on travaille dans le domaine, on s’intéresse aussi aux publications type "on a testé ça, on n’a pas vu d’effet significatif", parce que ça permet de gagner du temps.
Mais je voudrais revenir sur ce que tu as dit:
En fait, mon idée marche même avec le développement logiciel: quand on développe une solution à un problème qu’on ne connait pas déjà, on a une idée générale de ce qu’on veut implémenter, mais on trouve souvent un cas qu’on ne sait pas gérer parce qu’on n’a pas prévu l’information nécessaire sur une interface, on peut alors l’ajouter, et mettre à jour tous ceux qui l’utilisent, ou alors bouger une responsabilité, pour minimiser la complexité des interfaces. On peut avoir un bug, rajouter des logs à l’arrache, corriger son bug, puis réécrire les log proprement pour pouvoir les réactiver au besoin… Tout ça, si on est à plusieurs à travailler sur ce bout de code, on se le partage, même si on sait qu’il y a des choses à corriger, mais quand vient le moment d’intégrer ce développement dans le projet complet, il est salutaire de réécrire l’histoire de ce développement pour faire directement la bonne modification, avoir directement des logs propres, et arriver le plus simplement possible à la solution. Ca facilite beaucoup le travail des relecteurs et des mainteneurs. Il était cependant improbable d’arriver directement à la bonne implémentation sans connaitre préalablement le problème, il a fallu imaginer une solution sans avoir toutes les données, en sachant qu’on allait les découvrir au fur et à mesure. Pour autant, peut-on dire que le développement logiciel est dû au hasard ?
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte