Groupe - Le site de Mathématiques de Madame Krafft - E

publicité
Groupe : …………
Noms :
Prénoms :
Classe :
Nom de votre équipe :
1
Voici les messages retrouvés par les enquêteurs :
Un des messages retrouvés chez Emma (message 1):
DRTYV IZVZC DVKRI UVHLF EJVMF ZVJRD VUZAR ZDVIR ZJKRE KHLFE
GLZJJ VJVMF ZIKFL JCVJA FLIJA VKRZD VKVCC VDVEK
Message retrouvé dans sa poche lors de la découverte de son corps
(message 2) :
DRTYV IZVKL DVDRE HLVJK IFGIV KIFLM VDFZR CVEUI FZKYR SZKLV
CAVLU ZRGIV JCVJT FLIJ
Autre message retrouvé chez Emma (message 3) :
XCIEX CPVYC PWLJJ RDPDI YTVME RZGSO IKPFY INCYI NOMNP GPMDG
PVBID PLRZW OCPXP GYIAI DWBID PLQJR QWNUF SXIXS NWLUZ PLRZV
YWZVP TJMDX ZPFWV MOWOU FSXIE ODXAC PVFBO VLJVM WSIQL
HCWXO DWUSI IDIDW AONWF FLYTZ HETHX VFEPE CFDZP FVMEW
GWTZY INCPZ CODXN SLYTG ZTLGN IPBOV PBJYD WGQLR ZNLTV MEQJQ
AFZRO FZTWI NHFBZ JZWNU FWGRP GPTAC MXPFV MEDVW BIZNP
TVWDS YYXOG EDOAM WZZNP GVMDE PIEIK IYGZW BIZNP LVKPF ZIEEP
IUSYI GFVMD ZVUFW OXPFH ETGEI EONWF FZUFS HIDQM ETBOI DGJRE
TJROS ZWZBY IGFVM EDVVE WMXCS NPZWI XZWZX XCDPZ WIHPH
JYDQZ WDCPG TGYID EPSYO PVLZZ FLQEI ESEYC SLYZB KECHD VLZJM
YHMID ZJMYR DGTON EXSYM XOXLP FDI
2
1) Observez ces messages.
a) Que remarquez-vous ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
b) Que peut-on supposer ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
2) Effectuer une recherche sur internet sur les thèmes suivants :

Code de César

Analyse fréquentielle
afin de répondre aux questions suivantes :
a) En quoi consiste le code de César ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
b) A quoi doit-il son nom ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
c) Coder le mot « oui » à l’aide du code de César avec une clé de 10
…………………………………………………………………………………………………………………………………………………..
3
d) Compléter cet algorithme (i.e. = cette suite finie d’instructions) vous
permettant de construire un disque de chiffrement, c’est-à-dire un disque de
ce type :

Tracer un disque de rayon 5cm

Marquer son centre

Le découper








e) Construire un disque de chiffrement (qui sera à joindre à ce dossier- mettez
le nom de votre groupe au dos)
f) Coder le mot « MATHEMATIQUES » à l’aide du chiffre de César avec une
clé de 8 :
…………………………………………………………………………………………………………………………………………..…
g) Décoder le mot « XNWRK » avec une clé de 22 :
……………………………………………………………………………………………………………………………………………..…..
3) Quelle est la donnée manquante pour décoder les messages retrouvés par
les enquêteurs, à supposer qu’ils utilisent un code de César ?
…………………………………………………………………………………………………………………………………………………..
4) Comment peut-on « casser » un code de César ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………..
4
5) On considère le texte ci-dessous :
« J’adore suivre l’enseignement d’exploration « méthodes et
pratiques scientifiques », surtout en mathématiques ! Je me demande
ce qui a bien pu arriver à cette pauvre Emma et si on va retrouver
l’assassin. »
Notre but est de construire un tableau donnant la fréquence d’apparition de
chacune des lettres de l’alphabet dans ce texte, puis dans les messages 1 et 2
retrouvés par les enquêteurs de la police criminelle.
a) Aller à l’adresse : http://[email protected], puis dans la rubrique
MPS télécharger la feuille de calcul intitulée « fréquence d’apparition ».
b) Compléter cette feuille puis imprimer. (On fera afficher les fréquences sous
forme de pourcentage avec deux chiffres après la virgule).
c) Quelles sont les lettres qui ont la plus grande fréquence d’apparition ?
…………………………………………………………………………………………………………………………………………………..
d) D’après ce que vous venez de faire, quelle(s) clef(s) êtes-vous tenté de
tenter ?
………………………………………………………………………………………………………………………
e) Trouvez quelle est la bonne clef puis décoder la séquence de lettres :
« DRTYVIZV » commune aux messages 1 et 2 inscrits en page 2 :
…………………………………………………………………………………………( avec la clef ……………………)
Vous pensez avoir découvert la clé des messages, mais décoder toutes les
lettres des trois messages risque d’être fastidieux.
C’est pourquoi vous allez écrire un algorithme que vous allez programmer sur
Algobox, pour qu’il décode le message à votre place. Pour cela vous aurez besoin
d’être un peu formés :
5
1) Boucle :
Il s’agit du procédé itératif le plus courant en algorithmique, on demande de
faire une action pour i allant de telle valeur initiale à telle valeur finale.
Exemple :
Ecrire un algorithme faisant afficher à l’écran tous les entiers de
1 à 100 (un nombre sur chaque ligne)
2) Faîtes une recherche sur internet sur le code ASCII puis répondre aux
questions suivantes :
a) Que signifient les initiales ASCII ?
…………………………………………………………………………………………………………………………………………………..
b) Dans le code ASCII, par quels nombres sont codées les lettres A à Z ?
…………………………………………………………………………………………………………………………………………………..
c) Quelle opération faudrait-il appliquer au code ASCII des lettres A à Z pour
qu’elles soient codées cette fois-ci par les nombres 0 à 25 ?
…………………………………………………………………………………………………………………………………………………..
d) Sur Algobox :
L’instruction a.charCodeAt(p) permet d’obtenir le nombre égal au code ascii de la
lettre figurant à la position p dans la chaîne de caractère a
Atttention : dans une chaîne de caractères, le premier caractère est à la position 0,
le deuxième à la position 1, etc…
Application :
Si la variable a contient le mot « MATHEMATIQUES » et qu’on stocke dans la
variable b : a.charCodeAt(1), que contient la variable b ?……………………………………………
L’instruction String.fromCharCode(nombre) renvoie une chaîne contenant le
caractère dont le code ascii est égal à ce nombre
Application :
Si on stocke dans la variable b : String.fromCharCode(67), que contient la
variable b ? …………………………………………………………………………………
3) Congruences modulo n :
En se servant du code ASCII des lettres du message, on se ramène à des
nombres, on peut donc faire des calculs.
Admettons qu’on soit parvenu à représenter chacune des lettres de A à Z par un
chiffre de 0 à 25 de la sorte : (cf remarque du 2)c))
6
Imaginons à présent qu’on ait un message crypté par un code de César avec une
clé de 5.
a) Quel calcul devez-vous faire pour retrouver la lettre dans le message en clair
correspondant à un N dans le message codé ?
…………………………………………………………………………………………………………………………………………………
b) Même question pour la lettre J :
…………………………………………………………………………………………………………………………………………………
c) Que se passe-t-il si on applique le même raisonnement à la lettre C ?
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
Pour pallier ce problème, les mathématiciens ont inventé un ensemble appelé
anneau d’entiers, noté ℤ 26ℤ qui contient des nombres notés 0, 1, …, 25.
A chaque entier relatif, on associe un et un seul de ces nombres en prenant son
reste dans sa division euclidienne par 26.
Exemple 1 : 59 = 26 × 2 + 𝟓, Le reste de 59 dans sa division euclidienne par 26
est donc 5. On dit que 59 est congru à 5 modulo 26.
On note aussi : 59 ≡ 5 modulo26
Le nombre 59 est donc représenté par le nombre 5 dans l’anneau des entiers
ℤ
26ℤ.
Exemple 2 : Reprenons l’exemple de tout-à-l’heure : en voulant décoder le C avec
une clé de 5, on était tombé sur le nombre -3.
Or : −3 = 26 × −1 + 23. Donc −3 ≡ 23 modulo26
On trouve donc que la lettre C cryptait en fait la lettre …………………………………………
d) A vous de jouer :
Retrouvez à quels entiers de ℤ 26ℤ correspondent les nombres suivants : (la 1ère
ligne a été remplie d’après ce qui précède à titre d’exemple)
Nombre donné : Nombre
Calcul explicatif
ℤ
correspondant dans 26ℤ
59 = 26 × 2 + 𝟓
5
59
27
79
-8
-12
e) Vérifiez les nombres trouvés dans la 2ème colonne grâce à l’instruction
nombre%26 d’Algobox qui donne le reste d’un nombre dans sa division
euclidienne par 26.
Attention : pour Algobox il faut que nombre soit positif, donc vous pouvez lui
rajouter 26 (qui ne changera pas le reste) pour avoir un nombre positif
7
4) L’algorithme enfin !!
Ci-dessous a été écrit un algorithme en français, permettant de décrypter un
message donné si on a la clef. Certaines parties sont manquantes.
a) Compléter les pointillés
Algorithme en Français :
Commentaires :
Variables :
i est de type …………………………….
i sera le Compteur de la boucle
L est de type …………………………….
L contiendra la Longueur du message
a est de type …………………………….
a contiendra le message à déchiffrer
Clé est de type ………………………….
Clé contiendra la clé à utiliser
b est de type nombre
b contiendra le code ascii de chaque
lettre après décryptage
c est de type ……………………………….
c contiendra chaque lettre décryptée
Début de l’algorithme :
Afficher : « entrer le message à
(avec un retour à la ligne)
décoder en majuscules et sans espace »
Lire ce message et le stocker dans ……..
Afficher : « quel clef dois-je utiliser ? » (avec un retour à la ligne)
Lire la clef et la stocker dans ……………..
Stocker dans L la longueur du message a La fonction a.length donne la
longueur du message contenu dans la
variable a
Pour i allant de 0 à L-1 :
 Prendre le code ascii de la lettre
On utilise :
en position i,
…………………………………………………………………
lui enlever …………………
Pour se ramener à un nombre entre 0
et 25
soustraire …………………….
Pour déchiffrer
Rajouter 26
Pour être sûr d’avoir un nombre
positif
prendre le résultat modulo 26 de
(pour rester entre 0 et 25) :
ce calcul
On utilise : ……………………………………………
rajouter ………………………
Pour retourner entre 65 et 90
stocker le résultat dans b
Stocker dans c la lettre ayant
On utilise :
pour code ascii le nombre b
…………………………………………………………………
 Afficher c
(sans retour à la ligne !)
Fin de la boucle pour
Fin de l’algorithme.
b) Programmer l’algorithme sur algobox, et s’en servir pour décrypter les
messages
8
c) Que donne chacun des messages ?
Message 1 :
Message 2 :
Message 3 :
Vous avez constaté que le message n°3 semble avoir été codé dans un autre
langage. En examinant l’historique de l’ordinateur d’Emma, les enquêteurs ont
remarqué qu’elle avait fait une recherche sur Vigénère. Nous supposons que le
message 3 a été codé par un chiffre de Vigénère et allons tenter de le
déchiffrer grâce au test de Kasiski.
1) Effectuer une recherche sur les termes en gras et soulignés ci-dessus.
2) Repérer dans le message 3 des séquences répétées puis compléter le
tableau ci-après
Longueurs de clef possibles
(diviseurs de la distance différents de 1)
Séquence
répétée
Distance
entre les
répétitions
BID
PZWI
BIZNP
ZJMY
9
3) Quelle est selon vous la longueur de la clef utilisée ? ……………………….
4) Soit k ce nombre. Alors les 1er, (k+1)ème, (2k+1)ème etc. caractères ont
été codés par la même lettre : la première lettre de la clef de Vigénère.
Retrouvez cette première lettre à l’aide d’une analyse fréquentielle.
Procéder de même avec les autres lettres du code.
Selon vous, quel est le code qui a été utilisé ? …………………………….
5) Programmer Algobox en adaptant l’algorithme du 4) de la deuxième partie,
puis noter dans le cadre ci-dessous le message 3 après décryptage :
Correction pour les groupes qui ont du mal :
THE END, alors qu’en pensez-vous ? qu’est-il-arrivé à Emma ?
10
Téléchargement