
(Image générée avec Copilot)
TP2-ESCAPE-01 : Escape Game !#
Objectif pédagogique#
mobiliser l’entier des sujets vus en première et en deuxième année pour résoudre une énigme informatique
représentation de l’information (images, sons, etc..)
algorithmique (tri, recherche, etc..)
programmation en Python (variables, tests conditionnels, boucles, etc..)
réseaux (TCP/IP, routage, passerelles, etc..)
enjeux sociaux du numérique
Énigme 1 : L’Interception Réseau#
Un message d’alerte a transité dans l’ancien réseau de Raspberry Pi. Retrouvez la machine finale pour obtenir la Clé Réseau.
Le message part de la machine de départ et suit aveuglément ces règles de routage :
Départ : IP 192.168.1.10
-> Règle : Envoyer le paquet à la machine qui a le plus petit dernier octet pair.
Suite : IP 192.168.1.XXX
-> Règle : Toujours envoyer le paquet à la machine dont le dernier octet est un multiple de 7.

La Clé Réseau est égale à : (Dernier octet de la deuxième machine) + (Dernier octet de la machine finale).
Énigme 2 : Le Message Caché#
Voici une image :

Le lanceur d’alerte a caché le mot de passe de l’archive dans l’image.
Énigme 3 : Le Briseur de Code#
Voici un fichier nommé anti_virus.py. Il contient un algorithme de tri.
Copiez-le
Collez-le dans une fenêtre de l’éditeur Thonny
Enregistrez-le avec le nom :
anti_virus.pyExécutez-le
# =====================================================================
# MISSION 3 : RECONSTRUIRE LE MANIFESTE ÉCOLOGIQUE
# =====================================================================
# Consignes :
# 1. Lancez le script et entrez le mot de passe trouvé à l'énigme 2.
# 2. Répondez à la question sur la complexité.
# 3. Corrigez l'erreur dans l'algorithme de tri pour décoder le message.
# =====================================================================
# --- ÉTAPE 1 : VÉRIFICATION DU MOT DE PASSE ---
mot_de_passe = input("Entrez le mot de passe secret de l'énigme 2 : ")
if mot_de_passe != "VERDURE":
print("ACCÈS REFUSÉ. Le système s'est verrouillé.")
else:
print("\n--- ACCÈS ACCÉPTÉ ---")
print("Vérification de vos compétences en algorithmique...")
# --- ÉTAPE 2 : QUESTION DE COMPLEXITÉ ---
print("Ce programme utilise un tri à bulles (deux boucles imbriquées).")
print("Quelle est sa complexité dans le pire des cas si la liste contient N éléments ?")
print("Options disponibles : 'N', 'N^2', ou '1'")
reponse = input("Votre réponse : ")
if reponse != "N^2":
print("Erreur d'analyse algorithmique. Fin du programme.")
else:
print("\n--- ANALYSE LOGIQUE CORRECTE ---")
print("Début du processus de tri des données...")
# Deux listes simples (les positions et les lettres correspondantes)
positions = [5, 2, 6, 1, 4, 3]
lettres = ["T", "L", "E", "A", "R", "E"]
# Algorithme de tri à bulles pour remettre les positions dans l'ordre (1, 2, 3...)
taille = 6
for i in range(taille):
for j in range(0, taille - i - 1):
if positions[j] < positions[j+1]:
# On échange les positions
temporaire_pos = positions[j]
positions[j] = positions[j+1]
positions[j+1] = temporaire_pos
# On échange AUSSI les lettres pour qu'elles suivent leur position
temporaire_lettre = lettres[j]
lettres[j] = lettres[j+1]
lettres[j+1] = temporaire_lettre
# Reconstruction du message final sous forme de texte
message_decode = ""
for k in range(taille):
message_decode = message_decode + lettres[k]
print("\nRésultat du décodage :", message_decode)
---------------------------------------------------------------------------
StdinNotImplementedError Traceback (most recent call last)
Cell In[1], line 11
1 # =====================================================================
2 # MISSION 3 : RECONSTRUIRE LE MANIFESTE ÉCOLOGIQUE
3 # =====================================================================
(...) 9
10 # --- ÉTAPE 1 : VÉRIFICATION DU MOT DE PASSE ---
---> 11 mot_de_passe = input("Entrez le mot de passe secret de l'énigme 2 : ")
13 if mot_de_passe != "VERDURE":
14 print("ACCÈS REFUSÉ. Le système s'est verrouillé.")
File ~/.local/pipx/venvs/jupyter-book/lib/python3.11/site-packages/ipykernel/kernelbase.py:1274, in Kernel.raw_input(self, prompt)
1272 if not self._allow_stdin:
1273 msg = "raw_input was called, but this frontend does not support input requests."
-> 1274 raise StdinNotImplementedError(msg)
1275 return self._input_request(
1276 str(prompt),
1277 self._parent_ident["shell"],
1278 self.get_parent("shell"),
1279 password=False,
1280 )
StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.
Énigme 4 : Le Choix Éthique#
Pour terminer le jeu, voici un fichier texte brut. A vous de résoudre l’énigme
=====================================================================
ULTIME ÉTAPE : TRANSMISSION DU CODE DE DÉSACTIVATION
=====================================================================
Pour couper le centre de surveillance de la NSA, vous devez calculer
le code de sécurité "S" et le donner immédiatement à votre professeur.
Formule mathématique :
S = (Clé Réseau de l'énigme 1) x (Valeur ASCII de la première lettre du mot décodé à l'enigme 3) + Le Bonus Environnement
Pour trouver le "Bonus Environnement", répondez à la question suivante :
Quelle est la cause majeure de l'empreinte carbone de la surveillance de masse et du numérique aujourd'hui ?
- Si c'est la fabrication des millions de kilomètres de câbles réseau sous marin : le bonus vaut 10
- Si c'est la consommation électrique des Data Centers : le bonus vaut 100
- Si c'est l'utilisation des smartphones : le bonus vaut 500
Solution#
Que vaut \(S\) ?