Alice Seite
Yves Legris
Le 8 décembre 2016
8INF854 - Cryptographie
C++
ABCDEFGHIJKLMNOPQRSTUVWXYZ .,
César
CBC
Affine
Vigenère
Alphabet utilisé
Plaintext
Cryptext
bloc 1
bloc 2
bloc 3
bloc 4
Bourrage avec des espaces
Etape 1
César
Affine
Vigenère
Etape 2
Vigenère
César
Affine
Affine
Vigenère
César
CBC
Pioche d'une lettre dans chaque bloc (en boucle)
Etape 3
Chiffrement
CRYPTOGRAPHIE
CRYP
TOGR
APHI
E
Bourrage avec 3 espaces
Etape 1
C : 6
A : 3 & 5
V : ALICE
Etape 2
Vigenère
César
Affine
Affine
Vigenère
César
CBC
IV : 0101
>> 2
Etape 3
AWLD.LJ–QHL MWI–
DC4
A.QM
WLHW
LJLI
D– –
DC4
Chiffrement
CRYPTOGRAPHIE
CRYP
TOGR
APHI
E
Etape 3
César
Affine
Vigenère
Etape 2
Vigenère
César
Affine
Affine
Vigenère
César
CBC
Etape 1
AWLD.LJ–QHL MWI–
DC4
A.QM
WLHW
LJLI
D– –
DC4
Déchiffrement
string Cesar_encryption(string text, int key, string alphabet)
{
// Entier représentant la nouvelle position
// de la lettre chiffrée dans l'alphabet
int pos = 0;
// Boucle sur l'ensemble du texte
for (unsigned int i = 0; i < text.length(); i++)
{
// Addition de la clé à la lettre i
pos = (alphabet.find(text[i]) + key) % alphabet.length();
// On remplace la lettre originale par son chiffrement
text[i] = alphabet[pos];
}
return text;
}
Fonction de chiffrement avec César
Arborescence
Alphabet restreint (29 caractères)
Échange de clés
Utilisation de la transposition & substitution
Chiffrement par bloc
Bourrage (insertion d'espaces)