Ce défi est tiré de c0d1ngUP 2015

Histoire

Pour son 9e travail, Eurysthée demanda à Hercule d'offrir en cadeau à Admède, sa fille, la ceinture d'Hippolyte, la reine des Amazones. On raconte que, malgré les bonnes dispositions d'Hippolyte, qui aurait volontiers remis sa ceinture à Hercule, l'épisode tourna à la tragédie à cause des manigances d'Héra, qui, déguisée, accusa Hercule de nourrir de mauvaises intentions envers la reine.

Après une sanglante bataille, Hercule repartit avec la ceinture et l'amazone Mélanippe. La ceinture était couverte de symboles sur toute sa longueur. En voici la transcription :

YOJATKZYSASMFEVSQASHM_ARPDFMAGVJ_TEGUGIFBBA_HXWXSEGXNT_XLXQE_JBIO_ATSESP_NUG_GCDDNUWALY_BDIDCSEVNE_NDEARFAUSP_DKLQ_XUDEQ_DMMHODMVPT_

Mélanippe expliqua à Hercule que ces symboles renfermaient un code qui permettait de localiser la toison d'or. Hercule, qui comptait justement embarquer prochainement avec Jason et les Argonautes, estima que l'information était capitale et tenta de déchiffrer le message.

Mélanippe ne possédait malheureusement pas toutes les indications nécessaires au déchiffrement, mais elle put lui indiquer le principe :

Le message en clair a été chiffré en utilisant deux procédés successivement. D'abord, les lettres du message ont été modifiées une à une, selon un procédé que je vais décrire. Puis, les lettres résultantes ont ensuite été mélangées selon un autre procédé.

Premier procédé de chiffrement :

Le message en clair est écrit en utilisant uniquement les lettres majuscules et le symbole _ qui sert d'espace et de ponctuation. Cela constitue l'alphabet : _ABCDEF....XYZ. Dans cet alphabet, _ est en position 0, A est en position 1, et Z en position 26. Puis chaque lettre du message à chiffrer, par exemple : BONJOUR_HERCULE, est décalée d'un nombre égal à la position dans l'alphabet de la lettre qui le précède, exceptée la première lettre du message (car elle n'est précédée d'aucune lettre). Par exemple, le premier O de BONJOUR est précédé de B qui est en position 2 dans l'alphabet. Ce O est donc décalé de 2 positions dans l'alphabet et il est transformé en Q. Le N qui suit, est décalé de 15 rangs, car il est précédé d'un O qui est en position 15. Il est donc transformé en lettre B. Il faut s'imaginer que l'alphabet est circulaire. Si on décale N de 12 rangs, on arrive sur Z. En le décalant de 13 rangs, on revient donc sur _. En le décalant de 14 rangs, on est sur A et en le décalant de 15 rangs, on est sur B. On procède ainsi pour toutes les lettres du message.

La première lettre du message, quant-à-elle, est décalée d'un nombre arbitraire, inconnu de Mélanippe. Avec ce procédé, et si la première lettre était décalée de 3, le message BONJOUR_HERCULE serait transformé en EQBXYILRHMWUXFQ.

Second procédé de chiffrement :

Le second procédé consiste à mélanger les lettres. Mélanippe apprit à Hercule qu'Hippolyte était la détentrice d'une sorte de sceptre, qu'elle gardait jalousement dans un coffre. Pour chiffrer un message, après avoir appliqué le premier procédé, elle entourait une longue bande de tissus similaire à sa ceinture autour du sceptre, de manière à le recouvir :

Puis elle écrivait le message (en reprenant l'exemple précédant EQBXYILRHMWUXFQ) sur un certain nombre de lignes (par exemple 3) :

Enfin, elle déroulait la lanière de tissus. Naturellement, le résultat dépend de la taille du sceptre, inconnue de Mélanippe :

En supposant qu'on ait choisi d'écrire 3 lignes de lettres autour du sceptre, le message précédent aurait été transformé en EIWQLUBRXXHFYMQ.

Voilà le secret de la ceinture d'Hippolyte. La clé initiale utilisée dans le premier processus de chiffrement, et la taille du sceptre, c'est-à-dire le nombre de lignes écrites sur son pourtour n'ont pas été révélés par Mélanippe. Toutefois, il y a fort à parier que dans le message original, le caractère qui revient le plus souvent est '_'.

Saurez-vous localiser la toison d'or ?

Type de retour
une chaîne de caractères
Entrées du problème
Pas de données d'entrée
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.