Pour palier les faiblesses des simples chiffres de substitution devenus trop fragiles face au talent des cryptanalystes, le diplomate français Blaise de Vigenère fit un formidable bond en avant vers la fin du XVIème siècle. Certes son chiffre repose toujours sur l'utilisation d'une clef, mais le protocole s'avère beaucoup plus subtil : plutôt que de se contenter de placer la clef en tête de l'alphabet chiffré, le chiffre de Vigenère l'utilise pour décaler une à une les lettres du message (voir ci-dessous).
Pour l'anecdote le chiffre de Vigenère (pourtant inattaquable par l'analyse des fréquences) resta complètement négligé pendant deux siècles. Jusqu'à ce qu'on le considère, à juste titre, comme un vrai petit bijou.
En pratique, supposons qu'un expéditeur veuille transmettre à son destinataire le message "tant va la cruche à l'eau". Sachant que leur clef commune est SOLEIL, le crypteur répète dans un premier temps la clef au-dessus du message clair :
Le crypteur décale alors chacune des lettres du texte clair, d'un rang qui est determiné par celui de la lettre correspondante dans le mot-clef, A introduisant un décalage de 0, B de 1, C de 2, etc... Dans notre exemple, nous avons :
et le message devient :
Le destinataire fera l'opération inverse en prenant l'alphabet à rebours :
L --> t (-18); O --> a (-14); Y --> n (-11); etc...
Toute la magie du chiffre de Vigenère vient de ce que les, lettres d'un message sont rarement codées de la même façon. Ainsi, on remarque tout de suite que le premier a (position 2 dans le texte clair) et le deuxième (position 6 dans le texte clair) sont respectivement codées O et L. Inversement, deux lettres identiques du message chiffré sont souvent liées à des lettres claires différentes. Dans notre exemple, les deux D en cinquième et septième positions correspondent ainsi à un V et un L! Puissant, non? D'un simple chiffre de substitution "monoalphabétique", Vigenère venait d'inventer le premier chiffre "polyalphabétique", inattaquable par l'analyse des fréquences.