Dossier - Lycée Colbert

Transcription

Dossier - Lycée Colbert
SPEYBROUCK Clément
DELSINNE Louis
TSSI 2012-2013
PROJET LIÉ A LA SPÉCIALITÉ ISN
TROIS MÉTHODES DE CRYPTAGE
ET DÉCRYPTAGE DE TEXTE
Année 2012/2013
Lycée Colbert, Tourcoing
1
Présentation
Le projet conçu dans le cadre de la spécialité Informatique et Sciences du Numérique présenté
ici est un site concernant différentes méthodes de cryptage.
Il a principalement suscité l'utilisation des langages HTML5 et JavaScript, dans le but de
concevoir dans un premier temps le support du projet, c'est à dire le site, et dans un second
temps les applets Javascript qui sont présentes sur le site.
Ce projet a été conçu dans le but de répondre à une demande de pouvoir crypter du contenu en
utilisant un site accessible à tous les utilisateurs et relativement facile à utiliser et à
comprendre.
Dans cette optique, plusieurs méthodes de cryptage seront brièvement présentées l’une après
l’autre.
Le code César : En cryptographie, le chiffrement par décalage, aussi connu comme le chiffre de
César, est une méthode de chiffrement très simple utilisée par Jules César dans ses
correspondances secrètes (ce qui explique son appellation « chiffre de César »).
Il est basé sur un simple décalage de l'alphabet dans lequel, on note A = 1, B = 2, ..., Z = 26, on y
ajoute une constante chiffrée (+1, +2,…) dont le résultat donnera une nouvelle valeur, à laquelle
on appliquera si nécessaire un modulo 26. Cette nouvelle valeur permettra d’obtenir le texte
codé.
Par exemple, si on code le mot « BONJOUR » en utilisant un décalage de 2, on obtiendra le mot
crypté tel que « DQPLQWT ». Car la valeur de B dans l’alphabet classique = 2 , on y ajoute la
constante +2 =4 et 4 = D.
Pour déchiffrer ce message, rien de plus simple, on fait l’opération inverse, D = 4 et si le
décalage est de 2 on obtient : 4-2 =2 et 2 = B.
On retrouve bien la lettre B précédemment codée.
Le code Vigenère : Le chiffrement utilise une clé composée de lettres.
Pour chiffrer, on prend la première lettre du message et la première lettre de la clé que l'on
ajoute (les lettres ont une valeur de A=0 à Z=25, on prend la somme modulo 26), on note alors
la lettre associée au résultat.
Si la longueur de la clé est inférieure à celle du texte, on reprend au début de la clé.
Plus la clé est longue, plus le code sera difficile à décrypter.
Par exemple :
Texte en clair : L ISN C EST GENIAL
Clé répétée : C LES C LES CLESCL
2
La première lettre vaut : L + C = 11 + 2 = 13 mod 26 = 13 soit N.
Texte chiffré : N TWF E PWL IPRACW
Le principe du déchiffrement est le même que le chiffrement, sauf que l'on soustrait la lettre
chiffrée par une autre de la clé.
En reprenant l’exemple précédent :
Texte chiffré : N TWF E PWL IPRACW
Clé répétée : C LES C LES CLESCL
La première lettre vaut : N- C = 13 - 2 = 11 mod 26 = 11 soit L.
Texte en clair : L ISN C EST GENIAL
La table de Vigenère, utilisée pour coder le texte est la suivante :
Source: bibmath.net
3
Le code affine : Le chiffre affine est une méthode de cryptographie basée sur un chiffrement par
substitution.
Il s'agit d'un code simple à appréhender mais aussi un des plus faciles à « casser ».
On commence par remplacer chaque lettre par son rang dans l'alphabet en commençant par A =
0. Ensuite, on considère deux entiers A et B choisis comme clé et A premier avec 26. Chaque
lettre claire est d'abord remplacée par son équivalent numérique x puis chiffrée par le calcul du
reste de la division euclidienne par 26 de l'expression affine, on a donc (Ax+B) mod 26.
Par exemple, le message « BONJOURATOUS » encodé à l'aide du code affine avec les
coefficients A=3 et B=1 nous donne « EROCRJABGRJD ».
Pour le décryptage on associe à chaque valeur de y du message codé, une valeur x, résultat de la
fonction réciproque x = A'*(y-B) mod 26. La valeur A' est un entier tel que A*A' = 1 mod(26).
Soit un chiffrement affine de coefficients A = 3, B = 5. On recherche la valeur A' pour A = 3, une
des valeurs possibles est A'=9, car A*A'=3*9=27=1 mod 26.
A chaque lettre du message codé OLVOR (O = 14, L = 11, V = 21, O = 14, R = 17) on réalise le
calcul A'*(x-B) mod 26.
Soit 9*(14-5)=81(mod26)=3=D,
9*(11-5)=54(mod26)=2=C,
9*(14-5)=144(mod26)=14=O,
9*(14-5)=81(mod26)=3=D,
9*(17-5)=108(mod26)=4=E.
Le message clair est donc DCODE.
Valeurs de A’ possibles :
1 3 5 7 9 11 15 17 19 21 23 25
1 9 21 15 3 19 7 23 11 5 17 2
4
Application pratique :
Pour pouvoir réaliser ces 3 moyens de cryptage et/ou décryptage sur le site, nous avons utilisé
une méthode permettant d’avoir accès au code ASCII d’une lettre .
De plus il existe aussi une méthode qui associe une valeur numérique à un caractère ASCII.
Grâce à ces deux techniques, nous n’avons pas eu besoin d’affecter nous même une valeur à
une lettre, ce qui a grandement simplifié notre tâche.
La première méthode est : charCodeAt(?) qui récupère le code ASCII d’une lettre.
Par exemple charCodeAt(A) = 65.
La deuxième méthode est : fromCharCode(?) qui en fonction d’une valeur, retrouve son
caractère ASCII associé.
Par exemple fromCharCode(65) = A.
Durant le développement de ces outils, nous avons rencontré principalement un problème,
celui du codage de la ponctuation et des espaces.
Nous n’avons pas pu le résoudre. Cela pose réellement un problème dans le code Vigenère car
la phrase clef doit absolument respecter la ponctuation de la phrase à coder ou à décoder.
C’est la raison pour laquelle nous avons précisé ce point à l’utilisateur.
5
Code Javascript du code César :
6
Code Javascript du code Vigenère :
7
Code Javascript du chiffre Affine (partiel) :
8
9
SPEYBROUCK Clément
DELSINNE Louis
TSSI 2012-2013
PROJET LIE A LA SPECIALITE ISN :
TROIS METHODES DE CRYPTAGE
Année 2012/2013
Lycée Colbert, Tourcoing
10
Présentation
Le projet conçu dans le cadre de la spécialité Informatique et Sciences du Numérique présenté
ici est un site concernant différentes méthodes de cryptage.
Il a principalement suscité l'utilisation des langages HTML5 et JavaScript, dans le but de
concevoir dans un premier temps le support du projet, c'est à dire le site, et dans un second
temps les applets Javascript qui sont présentes sur le site.
Ce projet a été conçu dans le but de répondre à une demande de pouvoir crypter du contenu en
utilisant un site accessible à tous les utilisateurs et relativement facile à utiliser et à
comprendre.
Dans cette optique, plusieurs méthodes de cryptage seront brièvement présentées l’une après
l’autre.
Le code César : En cryptographie, le chiffrement par décalage, aussi connu comme le chiffre de
César, est une méthode de chiffrement très simple utilisée par Jules César dans ses
correspondances secrètes (ce qui explique son appellation « chiffre de César »).
Il est basé sur un simple décalage de l'alphabet dans lequel, on note A = 1, B = 2, ..., Z = 26, on y
ajoute une constante chiffrée (+1, +2,…) dont le résultat donnera une nouvelle valeur, à laquelle
on appliquera si nécessaire un modulo 26.Cette nouvelle valeur permettra d’ obtenir le texte
codé.
Par exemple, si on code le mot « BONJOUR » en utilisant un décalage de 2, on obtiendra le mot
crypté tel que « DQPLQWT ». Car la valeur de B dans l’alphabet classique = 2 , on y ajoute la
constante +2 =4 et 4 = D.
Pour déchiffrer ce message, rien de plus simple, on fait l’opération inverse, D = 4 et si le
décalage est de 2 on obtient : 4-2 =2 et 2 = B. On retrouve bien la lettre B précédemment codée.
Le code Vigenère : Le chiffrement utilise une clé composée de lettres.
Pour chiffrer, on prend la première lettre du message et la première lettre de la clé que l'on
ajoute (les lettres ont une valeur de A=0 à Z=25, on prend la somme modulo 26), on note alors
la lettre associée au résultat.
Si la longueur de la clé est inférieure à celle du texte, on reprend au début de la clé.
Plus la clé est longue, plus le code sera difficile à décrypter.
Par exemple :
Texte en clair : L ISN C EST GENIAL
Clé répétée : C LES C LES CLESCL
La première lettre vaut : L + C = 11 + 2 = 13 mod 26 = 13 soit N.
Texte chiffré : N TWF E PWL IPRACW
11
Le principe du déchiffrement est le même que le chiffrement, sauf que l'on soustrait la lettre
chiffrée par une autre de la clé.
En reprenant l’exemple précédent :
Texte chiffré : N TWF E PWL IPRACW
Clé répétée : C LES C LES CLESCL
La première lettre vaut : N- C = 13 - 2 = 11 mod 26 = 11 soit L.
Texte en clair : L ISN C EST GENIAL
La table de Vigenère, utilisée pour coder le texte est la suivante :
Source: bibmath.net
12
Le code affine : Le chiffre affine est une méthode de cryptographie basée sur un chiffrement par
substitution.
Il s'agit d'un code simple à appréhender mais aussi un des plus faciles à « casser ».
On commence par remplacer chaque lettre par son rang dans l'alphabet en commençant par A =
0. Ensuite, on considère deux entiers A et B choisis comme clé et A premier avec 26. Chaque
lettre claire est d'abord remplacée par son équivalent numérique x puis chiffrée par le calcul du
reste de la division euclidienne par 26 de l'expression affine, on a donc (Ax+B) mod 26.
Par exemple, le message « BONJOURATOUS » encodé à l'aide du code affine avec les
coefficients A=3 et B=1 nous donne « EROCRJABGRJD ».
Pour le décryptage on associe à chaque valeur de y du message codé, une valeur x, résultat de la
fonction réciproque x = A'*(y-B) mod 26. La valeur A' est un entier tel que A*A' = 1 mod(26).
Soit un chiffrement affine de coefficients A = 3, B = 5. On recherche la valeur A' pour A = 3, une
des valeurs possibles est A'=9, car A*A'=3*9=27=1 mod 26.
A chaque lettre du message codé OLVOR (O = 14, L = 11, V = 21, O = 14, R = 17) on réalise le
calcul A'*(x-B) mod 26.
Soit 9*(14-5)=81(mod26)=3=D,
9*(11-5)=54(mod26)=2=C,
9*(14-5)=144(mod26)=14=O,
9*(14-5)=81(mod26)=3=D,
9*(17-5)=108(mod26)=4=E.
Le message clair est donc DCODE.
Valeurs de A’ possibles :
1 3 5 7 9 11 15 17 19 21 23 25
1 9 21 15 3 19 7 23 11 5 17 2
13
Application pratique :
Pour pouvoir réaliser ces 3 moyens de cryptage et/ou décryptage sur le site, nous avons utilisé
une méthode permettant d’avoir accès au code ASCII d’une lettre .
De plus il existe aussi une méthode qui associe une valeur numérique à un caractère ASCII.
Grâce à ces deux techniques, nous n’avons pas eu besoin d’affecter nous même une valeur à
une lettre, ce qui a grandement simplifié notre tâche.
La première méthode est : charCodeAt(?) qui récupère le code ASCII d’une lettre. Par exemple
charCodeAt(A) = 65.
La deuxième méthode est : fromCharCode(?) qui en fonction d’une valeur, retrouve son
caractère ASCII associé. Par exemple fromCharCode(65) = A.
Durant le développement de ces outils, nous avons rencontré principalement un problème,
celui du codage de la ponctuation et des espaces. Nous n’avons pas pu le résoudre. Cela pose
réellement un problème dans le code Vigenère car la phrase clef doit absolument respecter la
ponctuation de la phrase à coder ou à décoder. C’est la raison pour laquelle nous avons précisé
ce point à l’utilisateur.
14
Code Javascript du code César :
15
Code Javascript du code Vigenère :
16
Code Javascript du chiffre Affine (partiel) :
17
HTML et CSS :
La création du site a également comme on l’a dit suscité l’utilisation des langages informatiques
HTML5 et CSS3. Ces deux ci nous ont permis de créer la structure pages et de leur donner un
meilleur aspect esthétique.
Diverses balises HTML et CSS permettent de modifier l’apparence d’un site internet, notamment
le fond de la page ou les couleurs utilisées, parmi d’autres possibilités de personnalisation.
Par exemple, dans la création de notre site, on a utilisé la balise HTML « ul » pour créer une
zone de navigation qui sera en permanence présente sur le site.
On a également, toujours en HTML, utilisé la bannière « textarea », pour permettre à
l’utilisateur de rentrer le texte qu’il désire crypter ou décrypter.
Le langage CSS permet de personnaliser encore plus un texte ou une page internet. Brièvement,
on attribue plusieurs caractéristiques et on les laisse apparaître dans le code HTML de la page
internet.
18
Code HTML de la page d’accueil :
19
Code CSS du site (partiel) :
20

Documents pareils