TD2 - Stream ciphers and classical ciphers - Correction
Correction exercice 1: attaques sur le cryptosystème de Cesar
COA : l’attaque frequentielle n’est pas efficace pour un message tres court. Il faut faire une
brute force attack dans ce cas.
KPA : k= (D – P) mod 26 = 3 – 15 mod 26= -12 mod 26 = 14 -> plaintext = salut
CPA : on choisit le plaintext « A » comme entrée à la machine de cryptage, on obtient comme
ciphertext « D » -> donc la clé est (D-A) mod 26= D=3
CCA : on choisit comme ciphertext « A », comme entrée à la machine de décryptage, on
Publicité
obtient S. donc k=(A-S) mod 26 = -S mod 26 = 8
Correction Exercice 2 :
THIS IS THE WHEATSTONE CIPHER
Correction Exercice 3 : Affine Cipher
1) L’inverse modulaire par rapport à n d’un nombre a peut être trouvé si gcd (a,n) = 1. on
a gcd(5,21) = 1 donc il ya un inverse et peut être trouvé par l’alg d’euclide etendu :
Alg d’euclide etendu :
26 = 5 * 5 + 1
Publicité
1 = 26 – 5 * 5
5-1 mod 26 = -5 = 21 mod 26
2) 21(11-11)=0 mod 26 ; 21(10 – 11) =5 mod 26 ; on termine le reste on obtient :
M= (0, 5, 5, 8, 13, 4, 2, 8, 15, 7, 4, 17, 18, 0, 17, 4, 4, 0, 18, 24)
Si on veut l’afficher sous forme de lettres en anglais, on utilise le tableau suivant :
On trouve M = affine ciphers are easy.
Correction Exercice 4 : Stream cipher
1)
Publicité
2)
3)
4) Les deux premiers LFSR sont irreductibles puisqu’ils passent par tous les etats de
n’importe quelle condition initiale. La periode etant 2n-1 = 15 avec n est le nombre de
bascules. Alors que le troisième LFSR n’est pas generé par un polynome irreductible, et ne
peut donc être utilisé comme cœur de PRNG : Pseudo-random number generator.
Correction Exercice 5: LFSR complexe
1) Periode est 31 * 15 = 465
Publicité
2) Periode 31157 = 3255
3) Periode 63 15 7/(3*7) = 315 puisque 3 et 7 sont des diviseurs communs du groupe
(63, 7, 15)