Vous voulez vous entraîner un peu avant c0d1ngUP ?
Voici le denier volet de la phase d’entraînement.
Le fichier donnée en entrée (le message inaudible) est disponible ici : message inaudible
Ce défi ne fait pas partie des plus faciles. Une fois assimilée la méthode de chiffrement, qui est classique, on est réduit, à essayer de tester toutes les valeurs de clés possibles. Mais il y en a beaucoup.
On doit donc disposer ici d’un moyen automatique de détecter si un message déchiffré avec une clé particulière est le bon message.
L’audio est un signal échantillonné c’est à dire une succession de points de mesure le long d’une courbe. Ces points sont tellement proches que la variation entre la valeur d’un échantillon et celle de l’échantillon suivant est assez faible. En tous cas, elle sera beaucoup plus faible que si on met les échantillons dans le désordre.
Pour tester automatiquement si on a réussi à remettre les échantillons dans l’ordre, il suffit, parmi toutes les possibilités obtenues, de conserver celle pour laquelle la variation entre chaque échantillon et son successeur est la plus petite.
Une fois cette mesure programmée, il ne reste plus qu’à tester toutes les clés !
Par ailleurs, si on sait que la transformation envisagée n’est réversible que si cle
et n
sont premiers entre eux, et puisque la transformation doit ici être réversible (sinon, ce ne serait pas une méthode de chiffrement), on peut se contenter de ne tester que les valeurs de cle
qui n’ont aucun facteur premier commun avec n
(plutôt que de tester toutes les valeurs de 1 à n
)
Enfin, toujours pour aller plus vite, il est possible de tester la réussite du déchiffrement sur une fraction du message seulement.
Techniquement, il faut aussi disposer de la bibliothèque adéquate pour relire un fichier audio, même si dans le cas du format wav
, il est tout à fait possible de le faire directement (les donnée ne sont pas compressées).