La méthode de Vigenère

Blaise de Vigenère diplomate français de la cour d'Henry III de France, (1523-1596), publia, en 1586, dans son Traité des chiffres le principe du chiffre carré connu plus tard sous le nom du chiffrement de Vigenère. Ce chiffrement se base sur la table de Jean Trithème (il l'a nommée tabula recta). Dans cette table, l'alphabet est répété sur 26 lignes, avec un décalage à gauche de une lettre pour chaque nouvelle rangée. Il est amélioré en 1553 par Giovan Batista Belaso. Ce dernier a introduit la notion de clef, qu'il appelle mot de passe. En 1585, Vigenère améliore la table de Trithème en modifiant la façon d'utiliser la clef. Cette technique a introduit une amélioration décisive de la méthode de César, qui était trop facile à craquer.

Carré de Vigenère

La méthode de Vigenère consiste à substituer à chaque lettre du message à crypter, une lettre de l'alphabet calculée à partir d'une clé. Le calcul de cette clé est basée sur le Carré de Vigenère comme suit:

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

Soit la phrase à crypter PROGRAMMER EN JAVA, et la clé secrète nuages.

Le cryptage se déroule comme suit:

On répète autant de fois la clé secrète sur la phrase à crypter


Clé secrète: NUAGESNUAG ES NUAG
Phrase à crypter: PROGRAMMER EN JAVA

Par la suite, on recherche dans le Carré de Vigenère, la paire désignée par (clé secrète,phrase à crypter). Par exemple, la paire (n,p) correspond à la lettre c ; (u,r) c'est l etc. En appliquant cette technique, vous allez obtenir comme résultat:

clomvszgex if wuvg.

Travail à réaliser
Le fichier Vigenere.java doit contenir la méthode de calcul de Vigenère. Vous pouvez utiliser pour cela, les classes ou méthodes déjà définies dans la classe Cesar.java en utilisant pour cela la notion de paquetage.

Pour tester la méthode de Vigenère, vous devrez inclure une méthode main dans votre fichier. Cette méthode devra se comportez comme suit:

exemple -1-: par défaut la clé secrète est NUAGES, et le programme traite la phrase par défaut programmer en java:

java Vigenere
Le texte à crypter est : PROGRAMMER EN JAVA
Le texte crypté est : CLOMVSZGEX IF WUVG

exemple -2-: la clé secrète est toujours par défaut: NUAGES

java Vigenere "un autre exemple"
Le texte à crypter est : UN AUTRE EXEMPLE
Le texte crypté est : HH AAXJR YXKQHYY

exemple -3-: 2 arguments

java Vigenere "un autre exemple" "navigateur"
Le texte à crypter est : UN AUTRE EXEMPLE
Le texte crypté est : HN VCZRX IRVZPGM
arguments:
S'il y a un seul argument, il ne peut s'agir que d'une phrase et la clé secrète par défaut est nuages.
S'il y a deux arguments, le premier ne peut s'agir que de la phrase à crypter alors que le second c'est la clé secrète.