Vous êtes sur la page 1sur 4

Faculté des NTIC

Département IFA. M1 RSD. Module CRSI

TP cryptographie classique

Dans ce TP vous allez, dans la première partie, implémenter le chiffre de Vigenère et dans la deuxième
partie le chiffre de Hill.

Un compte-rendu contenant le code et les explications nécessaires, me sera envoyé avant le 03 Décembre
2023. Un formulaire expirant le 02/06/24 à 11h59, vous sera envoyé ultérieurement.

La consultation des TPs aura lieu la semaine du 03/12/04 inchallah.

Vous pouvez travailler en binômes.

Partie I : Chiffrement de Vigenère

1. Chiffrer Vigenère

Utilisez un langage de programmation de votre choix pour implémenter la méthode de chiffrement de


Vigenère. Votre programme demandera aux utilisateurs, en entrée, deux chaines de caractères de longueur
variable : la première étant le texte clair, la deuxième est la clé. La sortie sera une chaine de caractère: le
texte chiffré

Votre programme devrait fonctionner pour toute longueur de clé et de texte clair.

2. Déchiffrer Vigenère

Dans le même langage de programmation, implémentez le déchiffrement d’un chiffré obtenu par la méthode
de Vigenère. Votre programme prendra en entrée deux chaines de caractères : un chiffré et une clé. Votre
programme rendra en sortie une chaine de caractère : le texte clair.
Partie II : Chiffrement de HILL

1. Chiffrer Hill

Utilisez un langage de programmation de votre choix pour implémenter la méthode de chiffrement de HILL.

Votre programme demandera aux utilisateurs deux entrées ; une chaine de caractères de longueur variable,
qui représente le texte clair, la deuxième entrée une matrice de dimension 2 x 2 qui est la clé. La sortie sera
une chaine de caractère : le texte chiffré.

Si la matrice en entrée n’est pas inversible, vous demanderez à l’utilisateur de donner une autre matrice. Si
au bout de trois essais la matrice donnée est toujours non inversible, un message d’erreur sera affiché et le
programme prend fin.

2. Déchiffrer HILL

Dans le même langage de programmation, implémentez le déchiffrement d’un chiffré obtenu par la méthode
de Hill. Votre programme prendra en entrée une chaine de caractères ; le chiffré et une matrice ; la clé.
Votre programme rendra en sortie une chaine de caractère : le texte clair.
Chiffre de Hill

Le chiffre publié en 1929 par Lester S. Hill (1891-1961) est un chiffre polygraphique, c'est-à-dire qu'on ne
(dé)chiffre pas les lettres les unes après les autres, mais par paquets. Nous considérons la version
bigraphique du chiffre de Hill, c’est à dire nous grouperons les lettres deux par deux, mais on peut utiliser
des paquets plus grands, par exemple des paquets de trois ou quatre lettres.

Les lettres sont d'abord remplacées par leur rang dans l'alphabet. Les lettres Pk et Pk+1 du texte clair seront
chiffrées Ck et Ck+1 avec la formule ci-dessous:

Ce qui signifie, que les deux premières lettres du message clair (P1 et P2) seront chiffrées (C1 et C2) selon
les deux équations suivantes:

Exemple de chiffrement
Alice prend comme clef de cryptage la matrice pour chiffrer le message "je vous aime" . Après avoir

remplacé les lettres par leur rang dans l'alphabet (a=1, b=2, etc.), elle obtiendra:
Elle fera de même avec les 3e et 4e lettres, 5e et 6e, etc. Elle obtiendra finalement:

Lettres j e v o u s a i m e

Rangs (Pk) 10 5 22 15 21 19 1 9 13 5

Rangs chiffrés
6 7 24 7 5 4 19 16 7 22
(Ck)

Lettres chiffrées F G X G E D S P G

Remarque
Dans cet exemple on a posé "A"=1, "B"=2, ..., "Z"=0. Pour votre TP utilisez "A"=0, "B"=1, ...,
"Z"=25.

Déchiffrement
Pour déchiffrer, le principe est le même que pour le chiffrement: on prend les lettres deux par deux, puis on
les multiplie par une matrice.
Cette matrice doit être l'inverse de matrice de chiffrement (modulo 26). Ordinairement l'inverse de la

matrice est:

Donc la matrice de chiffrement doit être inversible. Mais que cela signifie-t-il dans le contexte Z26?

Exemple de déchiffrement

Pour déchiffrer le message d'Alice, Bob doit calculer

La matrice est inversible car, dans notre contexte, pgdc(43,26)=1, (43)-1 existe dans Z26 et (43)-1 égale 23 .
Bob a donc maintenant la matrice de déchiffrement:

Bob prend donc la matrice pour déchiffrer le message "FGXGE DSPGV". Après avoir remplacé les

lettres par leur rang dans l'alphabet (A=1, B=2, etc.), il obtiendra:

Il fera de même avec les 3e et 4e lettres, 5e et 6e, etc. Il obtiendra finalement:

Lettres
F G X G E D S P G V
chiffrées

Rangs
chiffrés 6 7 24 7 5 4 19 16 7 22
(Ck)

Rangs
10 5 22 15 21 19 1 9 13 5
(Pk)

Lettres j e v o u s a i m e

Vous aimerez peut-être aussi