Vous êtes sur la page 1sur 9

1

A. Introduction

Le projet final a pour objectif de développer un site web composé de la partie cliente (frontend) et de
la partie serveur(backend)

• La partie frontend sera structurée en :

une partie libre (votre thème)

Si vous ne savez pas quel thème choisir, la création d’un jeu vous sera proposé.

une partie imposée (la cryptologie) – voir la partie C

• La partie backend permettra la gestion d’une :


Inscription
Identification
Incluant la notion de bases de données pour la persistance (archivage) des données

B. Administratif

• Le projet sera réalisé par groupes de 4 étudiants.


• A déposer dans le drive partagé correspondant au dod et pour le 15 mai 2021.

Sera pris en compte :

• L’organisation de l’espace de travail (workspace)


• La qualité du code javascript et php (indentation, commentaires, compréhension et test des
algorithmes)
• La qualité du thème libre avec les idées personnelles (de présentation, d’utilisation de css, de
javascript, amélioration du jeu de dés, …)
• Vos recherches personnelles pour améliorer, dynamiser votre site

C. La partie imposée (la cryptologie)

Le sujet traité pour le projet est la cryptologie. La cryptologie est la science du cryptage et du
décryptage de messages à l’aide d’algorithmes spécifiques. Certains d’entre eux font de cette étude.

• L'histogramme des fréquences dans un message crypté (ou non crypté) c’est-à-dire l’effectif
correspondant à l’apparition des lettres dans une communication
• Un algorithme de cryptage/décryptage mono alphabétique : alphabet de César
• Un algorithme de cryptage/décryptage poly alphabétique : alphabet de Vigénère

Seul le décryptage sera utilisé pour le projet. Mais le cryptage pourra être utilisé pour le thème
personnel.

2
D. Informations sur la cryptologie

Lorsqu'un message est crypté, la première analyse consiste à étudier l'histogramme des fréquences
d'apparition des lettres du message. Cet histogramme "observé" est comparé à l'histogramme
théorique obtenu empiriquement sur des milliers de cas similaires. L'intérêt de cet outil est de pouvoir
déterminer si le message crypté utilise une méthode mono ou poly alphabétique.
• Histogramme Théorique : cet histogramme a été calculé à partir de plusieurs milliers de lignes et
est appelé histogramme théorique des fréquences

Méthode mono alphabétique Méthode poly alphabétique

Figure 1- Histogrammes théoriques des 2 méthodes de cryptage

Il est clair qu’une méthode mono alphabétique produit un histogramme moins ‘’plat’’ qu’une méthode
poly alphabétique. L’histogramme est donc un indicateur pour décider des algorithmes de décryptage.

• Théorie sur une méthode mono alphabétique

L'alphabet mono alphabétique le plus connu est le chiffre de César. Le principe est une
substitution simple utilisant une clé symétrique égale à 3. En d'autres termes, l'alphabet servant au
cryptage est décalé de 3 positions vers la droite par rapport à l'alphabet normal.
Le principe de décryptage utilise la même valeur de clé que pour le cryptage.

Le Chiffre de César (décalage de l’alphabet de 3 positions)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Exemple :
Texte clair I C A M
Clé 3
Texte crypté L F D P

Texte crypté L F D P
Clé 3
Texte clair I C A M
La clé est identique pour le cryptage et le décryptage. Dans le cas du chiffre de César : 3.

3
• Théorie sur une méthode poly alphabétique - le chiffre de Vigénère

Le chiffre de Vigénère utilise plusieurs alphabets pour crypter un texte. Cette méthode poly
alphabétique utilise un tableau à double entrées tel que présenté ci-dessous :

Remarque : le chiffre de Vigénère utilise obligatoirement un mot-clé qui sert au cryptage et au


décryptage d'un message.
Ce mot-clé est répété tel quel jusqu'à la fin du message à coder.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Pour le cryptage, la lecture du tableau est simple : colonnes = lettre composant le texte clair
lignes = lettre composant le texte de la clé
Intersection lig, col = lettre composant le texte crypté

• Pour le cryptage la règle de lecture (ou algorithme) est : clé + texteclair = textecrypté

Exemple :
texteclair
Texte clair CRYTOLOGIE
Clé ICAMICAMIC
clé textecrypté
Texte crypté KTYFWNOSQG

4
• Pour le décryptage la lecture est la suivante : textecrypté - clé = texteclair
Exemple :
texteclair
Texte crypté KTYFWNOSQG
Clé ICAMICAMIC
Texte clair CRYTOLOGIE clé textecrypté

A SAVOIR POUR LA RESOLUTION EN LANGAGE JAVASCRIPT

Dans l’algorithme de résolution, un vecteur sera utilisé à la place d’un tableau.

Mais attention !!! en informatique les indices commencent toujours à 0 jusqu’à la dimension du vecteur – 1
La position de chaque élément dans le vecteur devra être comprise comme suit :

• Possédant la position du premier caractère du texte à crypté,


• Possédant la position du premier caractère de la clé,
Pour le cryptage : position clé + position texteclair = position textecrypté.
Exemple : Texte clair CRYTOLOGIE
Clé ICAMICAMIC
Texte crypté K T Y F W N O S Q G
position de C = 2 ; la position de I = 8 ; 2 + 8 = 10 soit la lettre K ;

Pour le décryptage : : position textecrypté - position clé = position texteclair


Exemple : Texte crypté KTYFWNOSQG
Clé ICAMICAMIC
Texte clair CRYTOLOGIE
position de K = 10 ; la position de I = 8 ; 10 - 8 = 2 soit la lettre C ;

Important : dans le projet, il ne sera pas utile d’utiliser la clé décryptage plusieurs fois.

5
E. Comment procéder ?

• Lire les informations de la partie F.

• Le sujet de l'application se dévoilera lorsque le premier message aura été décrypté. Il faudra
décider quelle méthode a été utilisée pour le cryptage en utilisant l’histogramme des
fréquences.
Vous trouverez le message dans le fichier texte : introduction.txt

• Résoudre les algorithmes à l’aide du langage javascript pour pouvoir répondre au sujet.
Tous les algorithmes sont déjà initiés. Ils se présentent de la même manière que les
exercices étudiés en TP. Vous devez les compléter. De plus, ils respectent tous la même
présentation …)
Le décryptage effectué avec le chiffre de César ou de Vigénère utilise des clés. Numériques
pour César et alphabétique pour Vigénère.
Si les clés numériques pour César sont simples (de 2 à 9), il faudra découvrir les clés pour
Vigénère à l’aide des définitions suivantes :

Il fut célèbre en Angleterre (1888) à Londres. (serial Killer : jacktheriper) : _ _ c _ l_ _ _ _t _ _ _ r

Partie centrale d'un atome. Il est entouré d’électrons : _ _ y _ _

Elément a partir duquel toutes les substances sont faites (question 2 et électrons) : _ _ o _ _

Situation dans laquelle rien ne change car toutes les forces se compensent : _ q _ _ _ i _ _ _

Mesure de la lourdeur d'une quantité de substance : d _ n _ _ _ e

Force d'attraction entre 2 objets qui possèdent une masse : g _ a _ _ _ e

La qualité de "lourdeur" que possèdent toutes les choses, tous les objets, toute la nature : m _ _s_

Assemblage d'atomes tous liés entre eux : m _ _ e _ _ l _

Tout changement de la vitesse ou de la direction d'un objet en mouvement : a _ c _ _ _ _ _ t _ _ _

Vous trouverez d’autres messages cryptés dans les fichiers textes : fichier1.txt, fichier2.txt,
fichier3.txt (ces fichiers ont peut-être un sens …)

6
F. Pour vous aider

• L’histogramme des fréquences

Figure 2 - Histogramme des fréquences

• Le chiffre de césar

Clé numérique

Figure 3 - Le chiffre de césar

Tester le code avec le texte crypter : lfdp qui donne avec la clé de décryptage 3 l’information suivante : icam
Remarque : la zone de liste peut être travaillée avec le numéro d’indice ou la valeur

7
• Le chiffre de vigénère

Clé alphabétique

Figure 4 - Le chiffre de vigénère

Tester le code avec le texte crypter : icam qui donne avec la clé : icam l’information suivante : AAAA

Remarque : Dans le html, la liste des clés se construite à l’aide d’une zone de.

Cette liste devra être renseignée avec les mots (cf page 7) qui auront été trouvé.
Il sera possible de créer qu’une seule zone cryptée, non cryptée, clé pour décrypter tous les mots.

• Les données qui sont fournies

Les applications

Les 3 fichiers
complémentaires
Le fichier d’introduction

Figure 5 - Les données fournies pour la réalisation de la partie imposée


8
• Le jeu de dés ne fait pas partie des applications imposée mais peut être intégré dans la partie libre.

Figure 6 - Le jeu de dés

Le jeu de dés consiste à faire apparaître dynamiquement les faces des dés lorsque l’on clique sur leur image
2 boutons permettent d’obtenir leur résultat, un autre permet de savoir qui a gagné. Suivant le gagnant, une
image apparaît.
Des variantes peuvent être associées pour dynamiser encore le jeu.