Vous êtes sur la page 1sur 72

Solutions des exercices de Cryptographie,

Semestre I, 2019/2020.

Exercice 0.1 Crypter le proverbe NO PAINS, NO GAINS à l’aide du chiffrement de César.


Solution :
Le chiffrement de César décale chaque lettre de l’alphabet trois places vers la droite, avec les trois
dernière lettres X, Y,et Z déplacées vers A, B, et C. Ainsi, on la table 1. Selon la table 1, on a

Lettre claire A B C D E F G H I J K L M
Lettre chiffrée D E F G H I J K L M N O P
Lettre claire N O P Q R S T U V W X Y Z
Lettre chiffrée Q R S T U V W X Y Z A B C

Table 1 – Lettres de l’alphabet latin et le chiffrement de César

le texte chiffré QR SDLQV QR JDLQV.

Exercice 0.2 Décrypter le texte chiffré "UHAI PUXQ" crée par le chiffrement affine c = (7m +
13) (mod 26).
Solution :
Puisque c ∼
= (7m + 13) (mod 26), m ∼
= 7−1 (c − 13) (mod 26), et selon l’algorithme d’Euclide, on a

26 = 3 × 7 + 5
7=1×5+2
5=2×2+1

et l’algorithme d’Euclide étendu donne

1=5−2×2
= 5 − 2 × (7 − 1 × 5) = 3 × 5 − 2 × 7
= 3 × (26 − 3 × 7) − 2 × 7
= 3 × 26 − 11 × 7.

Alors −11 (mod 26) ∼


= (26 − 11) (mod 26) ∼
= 15. D’où, m ∼
= 15 ∗ (c − 13) (mod 26). Selon la table
2, le message UHAI PUXQ correspond à 20 07 00 08 15 20 23 16, alors

1
Lettre claire A B C D E F G H I J K L M
Valeur 00 01 02 03 04 05 06 07 08 09 10 11 12
Lettre claire N O P Q R S T U V W X Y Z
Valeur 13 14 15 16 17 18 19 20 21 22 23 24 25

Table 2 – Nombres ordinaux des lettres de l’alphabet latin

m1 = 15 ∗ (20 − 13) (mod 26) ∼


∼ = 15 ∗ 7 (mod 26) = 1,
m2 ∼
= 15 ∗ (7 − 13) (mod 26) ∼
= 15 ∗ (−6) (mod 26) ∼
= 15 ∗ 20 (mod 26) = 14,
m3 = 15 ∗ (0 − 13) (mod 26) = 15 ∗ (−13) (mod 26) ∼
∼ ∼ = 15 ∗ 13 (mod 26) = 13,
m4 ∼ ∼ ∼
= 15 ∗ (8 − 13) (mod 26) = 15 ∗ (−5) (mod 26) = 15 ∗ 21 (mod 26) = 3,
m5 = 15 ∗ (15 − 13) (mod 26) ∼
∼ = 15 ∗ 2 (mod 26) = 4,
m6 ∼
= 15 ∗ (20 − 13) (mod 26) ∼
= 15 ∗ 7 (mod 26) = 1,
m7 ∼ ∼
= 15 ∗ (23 − 13) (mod 26) = 15 ∗ 10 (mod 26) = 20,
m8 = 15 ∗ (16 − 13) (mod 26) ∼
∼ = 15 ∗ 3 (mod 26) = 19.

Le message décrypté est 1 14 13 3 4 1 20 19 correspondant au texte clair "BON DEBUT".

Exercice 0.3 Utiliser le chiffrement de Playfair, pour décrypter le texte chiffré XK JF GX ZJ


YP IC EM, si la clef est AMICAL.
Solution :
Connaissant la clef AMICAL, on doit d’abord former la table de Playfair (3) avec la clef et les
lettres restantes de l’alphabet. Selon la table 3, pour le bloc XK du texte chiffré, on a RE, pour

A M I C L
B D E F G
H J K N O
P Q R S T
U V X Y Z

Table 3 – Table de Playfair pour l’exercice 3.

le bloc JF du texte chiffré, on a ND, pour le bloc GX, on a EZ, pour ZJ, on a VO, pour YP, on
a US, pour IC, on a MI, et pour EM, on a DI. Le message décrypté est RE ND EZ VO US MI
DI et le texte clair correspondant est RENDEZ VOUS MIDI.

Exercice 0.4 Utiliser le mot clef "PAIX" et un chiffrement de Vigenère pour crypter le message
"ENNEMI DE MON AMI".
Solution :
Le texte clair ENNEMI DE MON AMI est traduit en nombres ordinaux comme 04 13 13 04 12
08 03 04 12 14 13 00 12 08 et le mot clef PAIX en 15 00 08 23 . Pour le cryptage utilisant
le chiffrement de Vigenère, voir table 4. Le message crypté est "TNVBBILBBOVXBI". On peut
aussi utiliser la table de Vigenère 1.

Exercice 0.5 Utiliser le chiffrement de Playfair, pour décrypter le texte chiffré KF FB BZ FM


WA SP NV CF DU KD AG CE WP QD PN BS NE, si la clef est WHEATSTONE.
Solution :

2
Texte clair E N N E M I D
Valeur 04 13 13 04 12 08 03
Clef P A I X P A I
Valeur 15 00 08 23 15 00 08
Somme 19 13 21 27 27 08 11
mod 26 19 13 21 01 01 08 11
Texte chiffré T N V B B I L
Texte clair E M O N A M I
Valeur 04 12 14 13 00 12 08
Clef X P A I X P A
Valeur 23 15 00 08 23 15 00
Somme 27 27 14 21 23 27 08
mod 26 01 01 14 21 23 01 08
Texte chiffré B B O V X B I

Table 4 – Solution de l’exercice 4.

Figure 1 – Table de Vigenère

Connaissant la clef WHEATSTONE, on doit d’abord former la table de Playfair (5) avec la clef
et les lettres restantes de l’alphabet. Selon la table 5, pour le bloc KF du texte chiffré, on a ID,
pour le bloc FB du texte chiffré, on a IO, pour le bloc BZ, on a CY, pour FM, on a OF, pour
WA, on a TE, pour SP, on a NL, pour NV, on a OX, pour CF, on a OK, et pour DU, on a SL,
pour KD, on a IK, pour AG, on a EI, pour CE, on a NT, pour WP, on a EL, pour QD, on a
LI, pour PN, on a GE, pour BS, on a NC, et pour NE, on a EX. Le message décrypté est ID

3
W H E A T
S O N B C
D F G I/J K
L M P Q R
U V X Y Z

Table 5 – Table de Playfair pour l’exercice 5.

IO CY OF TE NL OX OK SL IK EI NT EL LI GE NC EX et le texte clair correspondant est


IDIOCY OFTEN LOOKS LIKE INTELLIGENCE.

Exercice
 0.6 Utiliser le crypto-système de Hill avec comme clef de cryptage la matrice A =
8 1
pour décrypter le le texte chiffré MXIHKPTGSIQNXX.
19 14  
a b
Solution : Rappelons que si A = , alors le block i du message chiffré est ci =
c d
Ami mod 26. Pour déterminer mi on a besoin de calculer mi = A−1 ci mod 26. Où
 
−1 ∼ d −b
A =w mod 26.
−c a

On utilise l’algorithme d’Euclide étendu pour calculer w ∼


= (ad − bc)−1 mod 26. Ainsi,
 
−1 ∼ wd w(26 − b)
A = mod 26.
w(26 − c) wa

= 15−1 mod 26 ou 15w ∼


Dans notre cas, w ∼ = 1 mod 26. Alors, selon l’algorithme d’Euclide,

26 = 1 × 15 + 11,
15 = 1 × 11 + 4,
11 = 2 × 4 + 3,
4 = 1 × 3 + 1.

et l’algorithme d’Euclide étendu donne

1 = 4 − 1 × 3,
= 4 − 1 × (11 − 2 × 4) = 3 × 4 − 1 × 11,
= 3 × (15 − 1 × 11) − 1 × 11 = 3 × 15 − 4 × 11,
= 3 × 15 − 4 × (26 − 1 × 11) = 7 × 15 − 4 × 26.
   
14 25 20 19
Ainsi, 1 ∼ = 7 mod 26 et A−1 ∼
= 7 × 15 mod 26 ou w ∼ =7 mod 26 = mod 26.
7 8 23 4
Maintenant, on divise le message chiffré en blocs de deux lettres qu’on convertit en entier pour
avoir le message (12 23), (8 7), (10 15), (19 6), (18 8), (16 13), (23 23). Les blocs du message dé-

4
crypté sont
    
20 19 12 1
m1 = mod 26 = ,
23 4 23 4
    
20 19 8 7
m2 = mod 26 = ,
23 4 7 4
    
20 19 10 17
m3 = mod 26 = ,
23 4 15 4
    
20 19 19 0
m4 = mod 26 = ,
23 4 6 19
    
20 19 18 18
m5 = mod 26 = ,
23 4 8 4
    
20 19 16 21
m6 = mod 26 = ,
23 4 13 4
    
20 19 23 13
m7 = mod 26 = .
23 4 23 23

On convertit les résultats obtenus en lettres et réuni les différents blocs pour obtenir le message
BEHEREATSEVENX ou le message clair BE HERE AT SEVEN.

Exercice 0.7 Un jeune homme dit à son copain, il y’a 1 année, l’age de mon grand père était
un multiple de 3, dans 2 ans, il sera un multiple de 5, et dans 3 ans, il sera un multiple de 7.
Déduire l’age du grand père.
Indice : Peut être le jeune homme était Chinois.
Solution : Prenons x l’age actuelle du grand père, il y’a 1 année, c’est à dire x−1, l’age de mon
grand père était un multiple de 3, alors 3 divise x − 1, et (x − 1) mod 3 = 0 ou x ≡ 1 mod 3. Dans
2 ans, c’est à dire x + 2, il sera un multiple de 5, ou 5 divise x + 2, c’est à dire, (x + 2) mod 5 = 0
ou x ≡ −2 mod 5 et dans 3 ans, on a x + 3, il sera un multiple de 7. 7 divise x + 3, c’est à
dire, (x + 3) mod 7 = 0 ou x ≡ −3 mod 7. On peut alors écrire ce problème comme un système
d’équations récurrentes suivant :

x ≡ 1 mod 3,
≡ −2 mod 5 ≡ (5 − 2) mod 5 ≡ 3 mod 5,
≡ −3 mod 7 ≡ (7 − 3) mod 7 ≡ 4 mod 7.

On peut résoudre ce système d’équations récurrentes sur Z par deux approches différentes
— Approche par substitution : La première équation récurrente x ≡ 1 mod 3 peut s’écrire
comme x = 3q1 + 1. Ainsi, x = 3q1 + 1 ≡ 3 mod 5 implique que 3q1 ≡ 2 mod 5 et
2 × 3q1 ≡ 2 × 2 mod 5 donne q1 ≡ 4 mod 5 ou q1 = 5q2 + 4. D’où

x = 3q1 + 1 = 3(5q2 + 4) + 1 ≡ 4 mod 7


= 15q2 + 13 ≡ 4mod 7.

Alors 15q2 ≡ −9 mod 7 ≡ (14 − 9) mod 7 ≡ 5 mod 7 implique que q2 ≡ 5 mod 7 ou


q2 = 7q3 + 5. Finalement,

x = 15q2 + 13 = 15(7q3 + 5) + 13,


= 105q3 + 88 ≡ 88 mod 105.

5
— Approche du théorème Chinois des restes : Par le théorème Chinois des restes,
pour le système d’équations récurrentes sur Z,

x ≡ a1 mod m1 ,
≡ a2 mod m2 ,
≡ a3 mod m3 .

la solution est
x ≡ (a1 M1 y1 + a2 M2 y2 + a3 M3 y3 ) mod M.
Où a1 = 1, a2 = 3, a3 = 4, m1 = 3, m2 = 5, m3 = 7 et M = m1 × m2 × m3 =
3 × 5 × 7 = 105, M1 = m2 × m3 = 5 × 7 = 35, M2 = m1 × m3 = 3 × 7 = 21 et
M3 = m1 × m2 = 3 × 5 = 15. Maintenant, on doit déterminer les yi ’s comme suit :
Puisque y1 ≡ M1−1 mod(m1 ) ≡ 35−1 mod 3 ou 35y1 ≡ 1 mod 3, mais 35 mod 3 ≡ 2,
alors 2y1 ≡ 1 mod 3 et 2 × 2y1 ≡ 2 × 1 mod 3 donne y1 ≡ 2 mod 3. De la manière,
y2 ≡ M2−1 mod(m2 ) ≡ 21−1 mod 5 ou 21y2 ≡ 1 mod 5, donne y2 ≡ 1 mod 5 et y3 ≡
M3−1 mod(m3 ) ≡ 15−1 mod 7 ou 15y3 ≡ 1 mod 7, donne y3 ≡ 1 mod 5. Ainsi,

x ≡ (a1 M1 y1 + a2 M2 y2 + a3 M3 y3 ) mod(M ),
≡ (1 × 35 × 2 + 3 × 21 × 1 + 4 × 15 × 1) mod 105,
≡ 193 mod 105 ≡ 88 mod 105.

Exercice 0.8 Trouver x telles que les congruences

x ≡ 4 mod 5
≡ 5mod 11.

soient satisfaites Déduire l’inverse de 49 mod 55.


Solution : Selon le théorème Chinois des restes, on a
2
X
x= ai Mi yi mod M.
i=1

M = m1 ∗ m2 = 5 ∗ 11 = 55,
M1 = M/m1 = 11,
M2 = M/m2 = 5,
y1 ≡ M1−1 mod m1 = 11−1 mod 5 = 1−1 mod 5 = 1 mod 5
y2 ≡ M2−1 mod m2 = 5−1 mod 11 = 9 mod 5.

La solution est

x = (a1 ∗ M1 ∗ y1 + a2 ∗ M2 ∗ y2 ) mod M,
= (4 ∗ 11 ∗ 1 + 5 ∗ 5 ∗ 9) mod 55,
= (44 + 225) mod 55 = 269 mod 55,
= 49 mod 55.

6
Pour vérifier la solution, prenons q1 et q2 des entiers positifs, alors

x ≡ 4 mod 5

est équivalente à
x = 5q1 + 4
et x = 5q1 + 4 ≡ 5 mod 11 ou 5q1 ≡ (5 − 4) mod 11 ≡ 1 mod 11 et 9 ∗ 5q1 ≡ 9 ∗ 1 mod 11 alors
q1 ≡ 9 mod 11 aussi q1 = 11q2 + 9, ainsi,

x = 5q1 + 4,
= 5(11q2 + 9) + 4,
= 55q2 + 49,
≡ 49 mod 55.

Pour déterminer l’inverse de 49 mod 55, utilisons l’algorithme d’Euclide pour avoir

55 = 1 ∗ 49 + 6
49 = 8 ∗ 6 + 1,

et l’algorithme d’Euclide étendu donne

1 = 49 − 8 ∗ 6
= 49 − 8 ∗ (55 − 1 ∗ 49)
= 9 ∗ 49 − 8 ∗ 55.

Alors de l’expression 1 = 9 ∗ 49 − 8 ∗ 55, on a 1 mod 55 ≡ (9 ∗ 49 − 8 ∗ 55) mod 55 ≡ (9 ∗ 49) mod 55,


et 49−1 ≡ 9 mod 55.

Exercice 0.9 Un homme dit à son copain, il y’a 2 années, l’age de ma fille était un multiple de
3, dans 4 ans, il sera un multiple de 5. Déduire l’age de la fille.
Solution : Prenons x l’age actuelle de la fille, il y’a 2 ans, c’est à dire x − 2, l’age de la fille
était un multiple de 3, alors 3 divise x − 2, et (x − 2) mod 3 = 0 ou x ≡ 2 mod 3. Dans 4 ans,
c’est à dire x + 4, il sera un multiple de 5, ou 5 divise x + 4, c’est à dire, (x + 4) mod 5 = 0
ou x ≡ −4 mod 5. On peut alors écrire ce problème comme un système d’équations récurrentes
suivant :

x ≡ 2 mod 3,
≡ −4 mod 5 ≡ (5 − 4) mod 5 ≡ 1 mod 5.

On peut résoudre ce système d’équations récurrentes sur Z par deux approches différentes
— Approche par substitution : La première équation récurrente x ≡ 2 mod 3 peut s’écrire
comme x = 3q1 + 2. Ainsi, x = 3q1 + 2 ≡ 1 mod 5 implique que 3q1 ≡ (1 − 2) mod 5 ≡
−1 mod 5 ≡ (5−1) mod 5 ≡ 4 mod 5 et 2×3q1 ≡ 2×4 mod 5 donne q1 ≡ 8 mod 5 ≡ 3 mod 5
ou q1 = 5q2 + 3. D’où

x = 3q1 + 2 = 3(5q2 + 3) + 2 = 15q2 + 11.

Alors x = 15q2 + 11 implique que x ≡ 11 mod 15

7
— Approche du théorème Chinois des restes : Par le théorème Chinois des restes,
pour le système d’équations récurrentes sur Z,

x ≡ a1 mod m1 ,
≡ a2 mod m2 .

la solution est
x ≡ (a1 M1 y1 + a2 M2 y2 mod M.
Où a1 = 2, a2 = 1, m1 = 3, m2 = 5 et M = m1 × m2 = 3 × 5 = 15, M1 = m2 = 5,
M2 = m1 = 3. Maintenant, on doit déterminer les yi ’s comme suit : Puisque y1 ≡
M1−1 mod(m1 ) ≡ 5−1 mod 3 ou 5y1 ≡ 1 mod 3, mais 5 mod 3 ≡ 2, alors 2y1 ≡ 1 mod 3
et 2 × 2y1 ≡ 2 × 1 mod 3 donne y1 ≡ 2 mod 3. De la manière, y2 ≡ M2−1 mod(m2 ) ≡
3−1 mod 5 ou 3y2 ≡ 1 mod 5, donne 2 × 3y2 ≡ 2 × 1 mod 5 ou y2 ≡ 2 mod 5. Ainsi,

x ≡ (a1 M1 y1 + a2 M2 y2 ) mod(M ),
≡ (2 × 5 × 2 + 1 × 3 × 2) mod 15,
≡ 26 mod 15 ≡ 11 mod 15.

Exercice 0.10 Un jeune homme dit à son copain, il y’a 1 année, l’age de mon père était un
multiple de 3, dans 3 ans, il sera un multiple de 5, et dans 4 ans, il sera un multiple de 7. Déduire
l’age du père.
Réponse : 52 mod 105.

Exercice 0.11 Utiliser le théorème Chinois des restes pour résoudre le système des congruences
suivant :

x ≡ 3 mod 17,
≡ 4 mod 11,
≡ 5 mod 6.

Réponse : 785 mod 1122.

Exercice 0.12 Une vieille dame dit à sa copine, si j’aligne les œufs qui sont dans mes paniers
en rangée de 3, il reste 2, en rangée de 7, il reste 4 et en rangée de 11, il reste 6. Combien d’œufs
il y’a dans les paniers.
Réponse : 116 mod 231.

Exercice 0.13 Un homme dit à son copain que dans 7 ans, l’age de son fils serai un multiple
de 11 et une année après ça, il serai un multiple de 17. Quel est l’age du fils ?
Réponse : 26 mod 187.

Exercice 0.14 Un jeune homme dit à son copain, il y’a 3 ans, l’age de mon petit frère était un
multiple de 5, dans 5 ans, il sera un multiple de 7, et dans 10 ans, il sera un multiple de 11.
Déduire l’age du petit frère.
Solution : Prenons x l’age actuelle du petit frère, il y’a 3 année, c’est à dire x− 3, l’age de mon
petit frère était un multiple de 5, alors 5 divise x − 3, et (x − 3) mod 5 = 0 ou x ≡ 3 mod 5. Dans
5 ans, c’est à dire x + 5, il sera un multiple de 7, ou 7 divise x + 5, c’est à dire, (x + 5) mod 7 = 0
ou x ≡ −5 mod 7 et dans 3 ans, on a x + 10, il sera un multiple de 11. 11 divise x + 10, c’est

8
à dire, (x + 10) mod 11 = 0 ou x ≡ −10 mod 11. On peut alors écrire ce problème comme un
système d’équations récurrentes suivant :

x ≡ 3 mod 5,
≡ −5 mod 7 ≡ (7 − 5) mod 7 ≡ 2 mod 7,
≡ −10 mod 11 ≡ (11 − 10) mod 11 ≡ 1 mod 11.

On peut résoudre ce système d’équations récurrentes sur Z par deux approches différentes
— Approche par substitution : La première équation récurrente x ≡ 3 mod 5 peut s’écrire
comme x = 5q1 + 3. Ainsi, x = 5q1 + 3 ≡ 2 mod 7 implique que 5q1 ≡ −1 mod 7 ≡ 6 mod 7
et 3 × 5q1 ≡ 3 × 6 mod 7 donne q1 ≡ 4 mod 7 ou q1 = 7q2 + 4. D’où

x = 5q1 + 3 = 5(7q2 + 4) + 3 ≡ 1 mod 11


= 35q2 + 23 ≡ 1mod 11.

Alors 35q2 ≡ −22 mod 11 ≡ 0 mod 11 ≡ 0 mod 11 implique que q2 ≡ 0 mod 11 ou q2 =


11q3 . Finalement,

x = 35q2 + 23 = 15(11q3 ) + 23,


= 385q3 + 23 ≡ 23 mod 385.

— Approche du théorème Chinois des restes : Par le théorème Chinois des restes,
pour le système d’équations récurrentes sur Z,

x ≡ a1 mod m1 ,
≡ a2 mod m2 ,
≡ a3 mod m3 .

la solution est
x ≡ (a1 M1 y1 + a2 M2 y2 + a3 M3 y3 ) mod M.
Où a1 = 3, a2 = 2, a3 = 1, m1 = 5, m2 = 7, m3 = 11 et M = m1 × m2 × m3 =
5 × 7 × 11 = 385, M1 = m2 × m3 = 7 × 11 = 77, M2 = m1 × m3 = 5 × 11 = 55 et
M3 = m1 × m2 = 5 × 7 = 35. Maintenant, on doit déterminer les yi ’s comme suit :
Puisque y1 ≡ M1−1 mod(m1 ) ≡ 77−1 mod 5 ou 77y1 ≡ 1 mod 5, mais 77 mod 1 ≡ 5,
alors 2y1 ≡ 1 mod 5 et 3 × 2y1 ≡ 3 × 1 mod 7 donne y1 ≡ 3 mod 5. De la manière,
y2 ≡ M2−1 mod(m2 ) ≡ 55−1 mod 7 ou 55y2 ≡ 1 mod 7, donne 6y2 ≡ 1 mod 7 et 6 × 6y2 ≡
6 × 1 mod 7 donne y2 ≡ 6 mod 7. y3 ≡ M3−1 mod(m3 ) ≡ 35−1 mod 11 ou 35y3 ≡ 1 mod 11,
ou 2y3 ≡ 1 mod 11 et 6 × 2y3 ≡ 6 × 1 mod 11 donne y3 ≡ 6 mod 11. Ainsi,

x ≡ (a1 M1 y1 + a2 M2 y2 + a3 M3 y3 ) mod(M ),
≡ (3 × 77 × 3 + 2 × 55 × 6 + 1 × 35 × 6) mod 385,
≡ 1563 mod 385 ≡ 23 mod 385.

Exercice 0.15 Une vieille vendeuse Chinoise a un certain nombre d’œufs. Si elle les aligne en
des rangés de
— 5 œufs, elle lui reste 3 ;
— 7 œufs, elle lui reste 5 ;
— 11 œufs, elle lui reste 2.

9
Quel le nombre d’œufs que la vieille dame possède ?
Solution : Prenons x le nombre total des œufs alors lorsque x est divise par 5 il reste 3, c’est
à dire x5 = q1 + 35 ou x = 5q1 + 3 ou encore x ≡ 3 mod 5 et lorsque x est divise par 7 il reste 5,
c’est à dire x = 7q2 + 5 ou x ≡ 5 mod 7 et aussi lorsque x est divise par 11 il reste 2, c’est à dire
x = 11q3 + 2 ou x ≡ 2 mod 11. On peut alors écrire ce problème comme un système d’équations
récurrentes :

x ≡ 3 mod 5,
≡ 5 mod 7,
≡ 2 mod 11.

On peut résoudre ce système d’équations récurrentes sur Z par deux approches différentes
— Approche par substitution : La première équation récurrente x ≡ 3 mod 5 peut s’écrire
comme x = 5q1 + 3. Ainsi, x = 5q1 + 3 ≡ 5 mod 7 implique que 5q1 ≡ 2 mod 7 et
3 × 5q1 ≡ 3 × 2 mod 7 donne q1 ≡ 6 mod 7 ou q1 = 7q2 + 6. Notez selon l’algorithme
d’Euclide, qu’on a

7=1×5+2
5=2×2+1

et l’algorithme d’Euclide étendu donne

1=5−2×2
= 5 − 2 × (7 − 1 × 5)
= 3 × 5 − 2 × 7.

Alors, 3 × 5q1 ≡ 3 × 2 mod 7 donne q1 ≡ 6 mod 7 ou q1 = 7q2 + 6. D’où

x = 5q1 + 3 = 5(7q2 + 6) + 3 ≡ 2 mod 11


= 35q2 + 33 ≡ 2mod 11.

Alors 35q2 ≡ (2 − 33) mod 11 ≡ −31 mod 11 ≡ (3 × 11 − 31) mod 11 ≡ 2 mod 11 implique
que 2q2 ≡ 2 mod 11 ou 6 × 2q2 ≡ 6 × 2 mod 11 ou encore q2 ≡ 1 mod 11et q2 = 11q3 + 1.
Finalement,

x = 35q2 + 33 = 35(11q3 + 1) + 33,


= 385q3 + 68 ≡ 68 mod 385.

— Approche du théorème Chinois des restes : Par le théorème Chinois des restes, on
a
x ≡ (a1 M1 N1 + a2 M2 N2 + a3 M3 N3 ) modn.
Où a1 = 2, a2 = 4, a3 = 5, n1 = 5, n2 = 7, n3 = 11 et n = n1 ×n2 ×n3 = 5×7×11 = 385,
N1 = n2 × n3 = 7 × 11 = 77, N2 = n1 × n3 = 5 × 11 = 55 et N3 = n1 × n2 = 5 × 7 = 35.
Maintenant, on doit déterminer les Mi ’s comme suit : Puisque M1 ≡ N1−1 mod(n1 ) ≡
77−1 mod 5 ou 77M1 ≡ 1 mod 5, mais 77 mod 5 ≡ 2, alors 2M1 ≡ 1 mod 5 et 3 × 2M1 ≡
3 × 1 mod 5 donne M1 ≡ 3 mod 5. De la manière, M2 ≡ N2−1 mod n2 ≡ 55−1 mod 7 ou
55M2 ≡ 1 mod 7, mais 55 mod 7 ≡ 6, alors 6M2 ≡ 1 mod 7 et 6 × 6M1 ≡ 6 × 1 mod 7 ,
donne M2 ≡ 6 mod 7 et M3 ≡ N3−1 mod(n3 ) ≡ 35−1 mod 11 ou 35M3 ≡ 1 mod 11, mais

10
35 mod 11 ≡ 2, alors 2M3 ≡ 1 mod 11 et 6 × 2M1 ≡ 6 × 1 mod 11 donne M3 ≡ 6 mod 7.
Ainsi,
x ≡ (a1 M1 N1 + a2 M2 N2 + a3 M3 N3 ) modn,
≡ (3 × 3 × 77 + 5 × 6 × 55 + 2 × 6 × 35) mod 385,
≡ 2763 mod 385 ≡ 68 mod 385.
Exercice 0.16 Étant donné l’entier n = 2623 pour un schéma de chiffrement RSA,
1. Utiliser l’algorithme de Fermat pour trouver les nombres premiers p et q tel que n = p ∗ q
et calculer la fonction indicatrice d’Euler φ(n).
2. Lesquels des nombres suivants : 7, 9, 11, 15, 17, 23, 35, 43, 49, 59, 61, 73, 87, 91 sont des
exposants e valables de chiffrement RSA ?
solutions :
1. Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − 1) et n√= 2623. Selon
√ la méthode de factorisation
de Fermat : n = 2623 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2623⌉ = ⌈51.215⌉ = 52, alors
y 2 = x2 − n = 522 − 2623 = 2704 − 2623 = 81 = 92 est un carré parfait. Alors, n = p ∗ q =
(x + y)(x − y) = (52 + 9)(52 − 9) = 61 ∗ 43. D’où ϕ(2623) = ϕ(61 ∗ 43) = (p − 1)(q − 1) =
60 ∗ 42 = 2520.
2. L’exposant de chiffrement e est choisi tel que pgcd(e, φ(n)) = pgcd(e, 2520) = 1. Pour
trouver lesquels des nombres donnés sont relativement premiers à 2520, on doit écrire la
factorisation en nombres premiers de 2520 comme 2520 = 23 ∗ 32 ∗ 5 ∗ 7. Ou appliquer
directement l’algorithme d’Euclide pour calculer le plus grand commun diviseur entre 2520
et chacun de ces nombres, par exemple,
2520 = 58 ∗ 43 + 26
43 = 1 ∗ 26 + 17
26 = 1 ∗ 17 + 8
17 = 2 ∗ 8 + 1
alors pgcd(2520, 43) = 1, il n’y a pas de facteur commun entre 2520 et 43, 43 peut être
un exposant.
2520 = 28 ∗ 87 + 84
87 = 1 ∗ 84 + 3 84 = 28 ∗ 3 + 0
alors pgcd(2520, 87) = 3, 3 est facteur commun entre 2520 et 87, 87 ne peut pas être un
exposant. Ainsi, les exposants valables sont les nombres 11, 17, 23, 43, 59, 61, 73. Tous
les autres partagent un ou plusieurs facteurs avec 2520 et alors ne sont pas relativement
premiers à 2520.
Exercice 0.17 Décrypter le message 1970, 2381, 1787 qui a été crée par le cryptosystème RSA
utilisant la clef de chiffrement (e, n) = (23, 3599).
Solution : √ √
Selon la méthode de factorisation de Fermat : n = 3599 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3599⌉ =
⌈59.99⌉ = 60, alors y 2 = x2 −n = 602 −3599 = 3600−3599 = 1. D’où n = (60+1)(60−1) = 61∗59.
Puisque ϕ(3599) = ϕ(61 ∗ 59) = 60 ∗ 58 = 3480. Remarquer que l’algorithme d’Euclide produit
3480 = 151 ∗ 23 + 7
23 = 3 ∗ 7 + 2
7 = 3∗2+1

11
et de l’algorithme d’Euclide étendu, on a

1 = 7−3∗2
= 7 − 3 ∗ (23 − 3 ∗ 7)
= 10 ∗ 7 − 3 ∗ 23
= 10 ∗ (3480 − 151 ∗ 23) − 3 ∗ 23
= 10 ∗ 3480 − 1513 ∗ 23,

et −1513 (mod 3480) = (3480 − 1513) (mod 3480) = 1967. D’où la clef de déchiffrement est d =
1967. Maintenant on calcule m ∼
= cd (mod n) pour tous les blocs du texte chiffré. Pour c1 = 1804
donne

m1 ∼
= 19701967 (mod 3599)

= 19701024+512+256+128+32+8+4+2+1 (mod 3599)

= 1804 (mod 3599).

Les autres blocs peuvent être décryptés de la même manière

m2 ∼
= 23811967 (mod 3599)

= 23811024+512+256+128+32+8+4+2+1 (mod 3599)

= 1908 (mod 3599),
m3 ∼
= 17871967 (mod 3599)

= 17871024+512+256+128+32+8+4+2+1 (mod 3599)

= 523 (mod 3599),

donnant 1804, 1908, et 0523 et le message clair est SETIFX ou juste SETIF.

Exercice 0.18 Décrypter le message 1501, 1652, 1054, 2053 qui a été crée par le crypto-système
RSA utilisant la clef de chiffrement (e, n) = (19, 2537).
Solution : √ √
Selon la méthode de factorisation de Fermat : n = 2537 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2537⌉ =
⌈50.369⌉ = 51, alors y 2 = x2 − n = 512 − 2537 = 2601 − 2537 = 64. D’où n = (51 − 8)(51 + 8) =
43 ∗ 59. Puisque ϕ(2573) = ϕ(43 ∗ 59) = 42 ∗ 58 = 2436. Remarquer que l’algorithme d’Euclide
produit

2436 = 128 ∗ 19 + 4
19 = 4 ∗ 4 + 3
4 = 1∗3+1

et de l’algorithme d’Euclide étendu, on a

1 = 4−1∗3
= 4 − 1 ∗ (19 − 4 ∗ 4)
= 5 ∗ 4 − 1 ∗ 19
= 5 ∗ (2536 − 128 ∗ 19) − 1 ∗ 19
= 5 ∗ 2536 − 641 ∗ 19,

12
et −641 (mod 2536) = (2536−641) (mod 2536) = 1795. D’où la clef de déchiffrement est d = 1795.
Maintenant on calcule m ∼= cd (mod n) pour tous les blocs du texte chiffré. Noter que 179510 =
111000000112. Pour c1 = 1501 donne

m1 ∼
= 15011795 (mod 2537)

= 15011024+512+256+128+2+1 (mod 2537)

= 108 (mod 2537).

Les autres blocs peuvent être décryptés de la même manière

m2 ∼
= 16521795 (mod 2537)

= 16521024+512+256+128+2+1 (mod 2537)

= 413 (mod 2537),
m3 ∼
= 10541795 (mod 2537)

= 10541024+512+256+128+2+1 (mod 2537)

= 500 (mod 2537),
m4 ∼
= 20531795 (mod 2537)

= 20531024+512+256+128+2+1 (mod 2537)

= 819 (mod 2537),

donnant 0108, 0413, 0500, et 0819 et le message clair est BIENFAIT ou juste BIEN FAIT.

Exercice 0.19 Décrypter le message 1643, 0775, 1543, 0765, 0044, 1662 qui a été crée par le
crypto-système RSA utilisant la clef de chiffrement (e, n) = (21, 2773).
Solution : √ √
Selon la méthode de factorisation de Fermat : n = 2773 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2773⌉ =
⌈52.659⌉ = 53, alors y 2 = x2 − n = 532 − 2773 = 2809 − 2773 = 36 = 62 . D’où n = (53 + 6)(53 −
6) = 59 ∗ 47. Puisque ϕ(2773) = ϕ(59 ∗ 47) = 58 ∗ 46 = 2668. Remarquer que 2668 = 127 ∗ 21 + 1
ou 1 ∗ 2668 − 127 ∗ 21 = 1, alors −127 (mod 2668) = (2668 − 127) (mod 2668) = 2541. D’où la
clef de déchiffrement est d = 2541. Maintenant on calcule m ∼= cd (mod n) pour tous les blocs du
texte chiffré. Pour c1 = 1643 donne

m1 ∼
= 16432541 (mod 2773)

= 16432048+256+128+64+32+8+4+1 (mod 2773)

= 114 (mod 2773).

13
Les autres blocs peuvent être décryptés de la même manière

m2 ∼
= 7752541 (mod 2773)

= 7752048+256+128+64+32+8+4+1 (mod 2773)

= 1309 (mod 2773).
m3 ∼
= 15432541 (mod 2773)

= 15432048+256+128+64+32+8+4+1 (mod 2773)

= 1420 (mod 2773).
m4 ∼
= 7652541 (mod 2773)

= 7652048+256+128+64+32+8+4+1 (mod 2773)

= 1718 (mod 2773).
m5 ∼
= 442541 (mod 2773)

= 442048+256+128+64+32+8+4+1 (mod 2773)

= 419 (mod 2773).
m6 ∼
= 16622541 (mod 2773)

= 16622048+256+128+64+32+8+4+1 (mod 2773)

= 805 (mod 3599),

donnant 0114, 1309, 1420, 1718, 0419, et 0805 et le message clair est BONJOURSETIF ou
BONJOUR SETIF.

Exercice 0.20 Décrypter le message 0513, 2620, 1534, 1946, 1730, 0007 qui a été crée par le
crypto-système RSA utilisant la clef de chiffrement (e, n) = (19, 2679).
Solution : √ √
Selon la méthode de factorisation de Fermat : n = 2679 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2679⌉ =
⌈51.759⌉ = 52, alors y 2 = x2 − n = 522 − 2679 = 2704 − 2679 = 25 = 52 . D’où n = (52 +
5)(52 − 5) = 57 ∗ 47. Puisque ϕ(2679) = ϕ(57 ∗ 47) = 56 ∗ 46 = 2576. Remarquer que l’algorithme
d’Euclide produit

2576 = 135 ∗ 19 + 11
19 = 1 ∗ 11 + 8
11 = 1 ∗ 8 + 3
8 = 2∗3+2
3 = 1∗2+1

et de l’algorithme d’Euclide étendu, on a

1 = 3−1∗2
= 3 − 1 ∗ (8 − 2 ∗ 3) = 3 ∗ 3 − 1 ∗ 8
= 3 ∗ (11 − 1 ∗ 8) − 1 ∗ 8 = 3 ∗ 11 − 4 ∗ 8
= 3 ∗ 11 − 4 ∗ (19 − 1 ∗ 11) = 7 ∗ 11 − 4 ∗ 19
= 7 ∗ (2576 − 135 ∗ 19) − 4 ∗ 19 = 7 ∗ 2576 − 949 ∗ 19.

et −949 (mod 2576) = (2576−949) (mod 2576) = 1627. D’où la clef de déchiffrement est d = 1627.
Maintenant on calcule m ∼
= cd (mod n) pour tous les blocs du texte chiffré. Pour c1 = 0513 donne

14
Vérifier ces résultats
m1 ∼
= 5131627 (mod 2679)

= 5131024+512+64+16+8+2+1 (mod 2679)

= 114 (mod 2679).
Les autres blocs peuvent être décryptés de la même manière
m2 ∼
= 26201627 (mod 2679)

= 26201024+512+64+16+8+2+1 (mod 2679)

= 2437 (mod 2679).
m3 ∼
= 15341627 (mod 2679)

= 15341024+512+64+16+8+2+1 (mod 2679)

= 1561 (mod 2679).
m4 ∼
= 19461627 (mod 2679)

= 19461024+512+64+16+8+2+1 (mod 2679)

= 1718 (mod 2679).
m5 ∼
= 17301627 (mod 2679)

= 17301024+512+64+16+8+2+1 (mod 2679)

= 419 (mod 2679).
m6 ∼
= 1967 (mod 2679)
7

= 71024+512+256+128+32+8+4+2+1 (mod 2679)

= 805 (mod 3599),
donnant 0114, 1309, 1420, 1718, 0419, et 0805 et le message clair est BONJOURSETIF ou juste
BONJOUR SETIF.
Exercice 0.21 Prenons n = pq, où p et q des nombres premiers avec p > q. Montrer que si n
et ϕ(n) sont connues, alors les facteurs premiers de n peuvent être déterminer. Montrer que
1. p + q = n − ϕ(n) + 1,
2. p − q = (p + q)2 − 4n.
p

Exprimer p et q en termes de n et ϕ(n).


Déterminer les nombres premiers p et q, si
1. n = 3599 et ϕ(n) = 3480
2. n = 3953 et ϕ(n) = 3828.
Solution :

1. Puisque ϕ(n) = ϕ(pq) = ϕ(p)∗ϕ(q) = (p−1)(q−1) = pq−p−q+1 ou ϕ(n) = n−(p+q)+1


alors p + q = n − ϕ(n) + 1.
2. Remarquer que (p + q)2 = (n − ϕ(n) + 1)2 et
(p + q)2 − 4n = p2 + q 2 + 2pq − 4n
= p2 + q 2 + 2n − 4n
= p2 + q 2 − 2n = p2 + q 2 − 2pq
= (p − q)2

15
D’où p p
p−q = (p + q)2 − 4n = (n − ϕ(n) + 1)2 − 4n.
3. Puisque p + q = n − ϕ(n) + 1 et p − q = (n − ϕ(n) + 1)2 − 4n alors
p

1h p i
p = n − ϕ(n) + 1 + (n − ϕ(n) + 1)2 − 4n ,
2
1h p i
q = n − ϕ(n) + 1 − (n − ϕ(n) + 1)2 − 4n .
2

4. Étant donné
√ que n = pq = 3599 et ϕ(n) = 3480 alors p + q = 3599 − 3480 + 1 = 120 et
p − q = 1202 − 4 ∗ 3599 = 2. Ainsi, p = 61 et √
q = 59. Selon
√ la méthode de factorisation
de Fermat : n = 3599 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3599⌉ = ⌈59.99⌉ = 60, alors
y 2 = x2 − n = 602 − 3599 = 3600 − 3599 = 1 et n = (60 + 1)(60 − 1) = 61 ∗ 59.
5. Ayant√ n = pq = 3953 et ϕ(n) = 3828 alors p + q = 3953 − 3828 + 1 = 126 et p −
q = 1262 − 4 ∗ 3953 = 8. Ainsi, p = 67 et q√= 59. Selon√ la méthode de factorisation
de Fermat : n = 3953 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3953⌉ = ⌈62.87⌉ = 63, alors
y 2 = x2 − n = 632 − 3953 = 3969 − 3869 = 16 = 42 et n = (63 + 4)(63 − 4) = 67 ∗ 59.

Exercice 0.22 Supposons que Ferdous est une utilisatrice du crypto-système Knapsack et a
comme clef secrète la suite super-croissante 3, 5, 9, 18, 37, le modulo p = 77 et le multiplicateur
w = 17. Supposons que Maissa veut envoyer à Ferdous le message DEMAIN. Quelle est la tâche
de chacune des deux personnes (cryptage et décryptage) ?
Solution :
Remarquer que p = 77 > 2a5 = 2 ∗ 37 = 74, 0 < w = 17 < p = 77 et pgcd(w, p) = pgcd(17, 77) =
1. Amel doit multiplier chaque membre de la suite super-croissante par w = 17 et le réduire
modulo p = 77 pour produire la suite de chiffrement

(17 ∗ 3) (mod 77) = 51,


(17 ∗ 5) (mod 77) = 8,
(17 ∗ 9) (mod 77) = 76,
(17 ∗ 18) (mod 77) = 75,
(17 ∗ 37) (mod 77) = 13.

C’est à dire, 51, 8, 76, 75, 13. Cette dernière est la clef de chiffrement que Ferdous doit publier
dans le répertoire publique.
Maissa veut envoyer le message DEMAIN, elle doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 9. Le message converti est 00011 00100 01100 00000 01000 01101.
Le message est alors divise en blocs de chiffres, dans ce cas de longueur 5, car le nombre d’élé-
ments de la suite super-croissante est 5. Utilisant maintenant la clef publique de Ferdous, Maissa
transforme les blocs successifs en

51 ∗ 0 + 8 ∗ 0 + 76 ∗ 0 + 75 ∗ 1 + 13 ∗ 1 = 88
51 ∗ 0 + 8 ∗ 0 + 76 ∗ 1 + 75 ∗ 0 + 13 ∗ 0 = 76
51 ∗ 0 + 8 ∗ 1 + 76 ∗ 1 + 75 ∗ 0 + 13 ∗ 0 = 84
51 ∗ 0 + 8 ∗ 0 + 76 ∗ 0 + 75 ∗ 0 + 13 ∗ 0 = 0
51 ∗ 0 + 8 ∗ 1 + 76 ∗ 0 + 75 ∗ 0 + 13 ∗ 0 = 8
51 ∗ 0 + 8 ∗ 1 + 76 ∗ 1 + 75 ∗ 0 + 13 ∗ 1 = 97.

16
Lettre Binaire Lettre Binaire
A 00000 N 01101
B 00001 O 01110
C 00010 P 01111
D 00011 Q 10000
E 00100 R 10001
F 00101 S 10010
G 00110 T 10011
H 00111 U 10100
I 01000 V 10101
J 01001 W 10110
K 01010 X 10111
L 01011 Y 11000
M 01100 Z 11001

Table 6 – Les lettres et leurs équivalents binaires

Le texte chiffré transmis est la suite des entiers positifs suivants : 88, 76, 84, 0, 8, 97.
Pour lire le message, Maissa doit premièrement calculer la congruence 17w−1 ∼ = 1 (mod 77). Pour
cela, elle doit utiliser l’algorithme d’Euclide :

77 = 17 ∗ 4 + 9
17 = 9 ∗ 1 + 8
9 = 8 ∗ 1 + 1.

et sa version étendue :

1 = 9−1∗8
= 9 − 1 ∗ (17 − 1 ∗ 9)
= 2 ∗ 9 − 1 ∗ 17
= 2 ∗ (77 − 4 ∗ 17) − 1 ∗ 17
= 2 ∗ 77 − 9 ∗ 17.

Ainsi w−1 ∼ = (−9) (mod 77) ∼ = (77 − 9) (mod 77) ∼


= 68 (mod 77). Chaque nombre du texte chiffré
est multiplié par 68 et réduit modulo 77. Pour l’instant,

(88 ∗ 68) (mod 77) ∼


= 55
(76 ∗ 68) (mod 77) ∼
= 9
(84 ∗ 68) (mod 77) ∼
= 14
(0 ∗ 68) (mod 77) ∼
= 0
(8 ∗ 68) (mod 77) ∼
= 5

(97 ∗ 68) (mod 77) = 51.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 68 et réduit

17
modulo 77, pour avoir une suite super-croissante. Alors,

(51 ∗ 68) (mod 77) ∼


= 3
(8 ∗ 68) (mod 77) ∼
= 5
(76 ∗ 68) (mod 77) ∼
= 9
(75 ∗ 68) (mod 77) ∼
= 18
(13 ∗ 68) (mod 77) ∼
= 37.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 5, 3+5 = 8 < 9, 3+5+9 =
17 < 18, 3 + 5 + 9 + 18 = 35 < 37, alors la suite est super-croissante. Ainsi, on a produit les
problèmes de Havresac suivants :
Pour le premier problème de Havresac, on a 55 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 où S = 55 >
a5 = 37 produit x5 = 1 avec 3x1 + 5x2 + 9x3 + 18x4 + 37 = 55 ou 3x1 + 5x2 + 9x3 + 18x4 = 18,
alors x4 = 1, et 3x1 + 5x2 + 9x3 = 0, d’où x3 = 10, et 3x1 + 5x2 = 0, x2 = x1 = 0 et la solution
est (0, 0, 0, 1, 1), c’est à dire, 0 + 0 + 0 + 18 + 37 = 55.
Pour le deuxième problème de Havresac, on a 9 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 , où S = 9 <
a5 = 37 produit x5 = 0 avec 3x1 + 5x2 + 9x3 + 18x4 = 9 et 9 < a4 = 18 alors x4 = 0, et
3x1 + 5x2 + 9x3 = 9, donne x3 = 1, et 3x1 + 5x2 = 0. Ainsi, x1 = x2 = 0 et la solution est
(0, 0, 1, 0, 0), c’est à dire, 0 + 0 + 9 + 0 + 0 = 9.
Pour le troisième problème de Havresac, on a 14 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 , où S = 14 <
a5 = 37 produit x5 = 0 avec 3x1 + 5x2 + 9x3 + 18x4 = 14 et S = 14 < a4 = 18 alors x4 = 0, et
3x1 + 5x2 + 9x3 = 14, 14 > a3 = 9, donne x3 = 1, et 3x1 + 5x2 = 5 d’où x2 = 1, et x1 = 0. La
solution est (0, 1, 1, 0, 0), c’est à dire, 0 + 5 + 9 + 0 + 0 = 14.
Pour le quatrième problème de Havresac, on a 0 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 , où S = 0 <
a5 = 37 produit x5 = x4 = x3 = x2 = x1 = 0 et la solution est (0, 0, 0, 0, 0).
Pour le cinquième problème de Havresac, on a 5 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 , où S =
5 < a5 = 37 produit x5 = 0 avec 3x1 + 5x2 + 9x3 + 18x4 = 5 et 5 < a4 = 18 alors x4 = 0, et
3x1 + 5x2 + 9x3 = 5, et 5 < a3 = 9 alors x3 = 0, et 3x1 + 5x2 = 5, alors x2 = 1, et x1 = 0. D’où
la solution est (0, 1, 0, 0, 0), c’est à dire, 0 + 5 + 0 + 0 + 0 = 5.
Pour le sixième problème de Havresac, on a 51 = 3x1 + 5x2 + 9x3 + 18x4 + 37x5 , où S = 51 >
a5 = 37 produit x5 = 1 avec 3x1 + 5x2 + 9x3 + 18x4 = 14 et 14 < a4 = 14 alors x4 = 0, et
3x1 + 5x2 + 9x3 = 14, donne x3 = 1, et 3x1 + 5x2 = 5, alors x2 = 1, et x1 = 0. D’où la solution
est (0, 1, 1, 0, 1), c’est à dire, 0 + 5 + 9 + 0 + 1 = 51.
Alors, le message déchiffré en binaire est 00011 00100, 01100 00000 01000 01101. Selon la table
??, le texte clair est DEMAIN.

Exercice 0.23 Supposons que Hana est une utilisatrice du crypto-système Knapsack et a comme
clef secrète la suite super-croissante 3, 7, 11, 23, 47, le modulo p = 97 et le multiplicateur w = 32.
Supposons que Maissa veut envoyer à Hana le message BONSOIR. Quelle est la tâche de chacune
des deux personnes (cryptage et décryptage) ?
Solution : Remarquer que p = 97 > 2a5 = 2 ∗ 47 = 94, 0 < w = 32 < p = 97 et pgcd(w, p) =
pgcd(32, 97) = 1.
Cryptage : Hana doit multiplier chaque membre de la suite super-croissante par w = 23 et le

18
Lettre Binaire Lettre Binaire
A 00000 N 01101
B 00001 O 01110
C 00010 P 01111
D 00011 Q 10000
E 00100 R 10001
F 00101 S 10010
G 00110 T 10011
H 00111 U 10100
I 01000 V 10101
J 01001 W 10110
K 01010 X 10111
L 01011 Y 11000
M 01100 Z 11001

Table 7 – Les lettres et leurs équivalents binaires

réduire modulo p = 97 pour produire la suite de chiffrement

(32 ∗ 3) (mod 97) = 96,


(32 ∗ 7) (mod 97) = 30,
(32 ∗ 11) (mod 97) = 61,
(32 ∗ 23) (mod 97) = 57,
(32 ∗ 47) (mod 97) = 49.

C’est à dire, 96, 30, 61, 57, 49. Cette dernière est la clef de chiffrement que Hana doit publier
dans le répertoire publique.
Maissa veut envoyer le message BONSOIR, elle doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 7. Le message converti est 00001 01110 01101 10010 01110 01000 10001.
Le message est alors divise en blocs de chiffres, dans ce cas de longueur 5, car le nombre d’élé-
ments de la suite super-croissante est 5. Utilisant maintenant la clef publique de Hana, Maissa
transforme les blocs successifs en

96 ∗ 0 + 30 ∗ 0 + 61 ∗ 0 + 57 ∗ 0 + 49 ∗ 1 = 49
96 ∗ 0 + 30 ∗ 1 + 61 ∗ 1 + 57 ∗ 1 + 49 ∗ 0 = 148
96 ∗ 0 + 30 ∗ 1 + 61 ∗ 1 + 57 ∗ 0 + 49 ∗ 1 = 140
96 ∗ 1 + 30 ∗ 0 + 61 ∗ 0 + 57 ∗ 1 + 49 ∗ 0 = 153
96 ∗ 0 + 30 ∗ 1 + 61 ∗ 1 + 57 ∗ 1 + 49 ∗ 0 = 148
96 ∗ 0 + 30 ∗ 1 + 61 ∗ 0 + 57 ∗ 0 + 49 ∗ 0 = 30
96 ∗ 1 + 30 ∗ 0 + 61 ∗ 0 + 57 ∗ 0 + 49 ∗ 1 = 145.

Le texte chiffré transmis est la suite des entiers positifs suivants : 49, 148, 140, 153, 148, 30, 145.
Décryptage : Pour lire le message, Hana doit premièrement calculer la congruence 32w−1 ≡
1 (mod 97). Puisque 97 = 3 ∗ 32 + 1, ou 1 = 1 ∗ 97 − 3 ∗ 32. Ainsi w−1 ≡ (−3) mod 97 ≡
(97 − 3) mod 97 ≡ 94 mod 97. Chaque nombre du texte chiffré est multiplié par 94 et réduit modulo

19
97. Pour l’instant,

(49 ∗ 94) mod 97 ≡ 47


(148 ∗ 94) mod 97 ≡ 41
(140 ∗ 94) mod 97 ≡ 65
(153 ∗ 94) mod 97 ≡ 26
(148 ∗ 94) mod 97 ≡ 41
(30 ∗ 94) mod 97 ≡ 7
(145 ∗ 94) mod 97 ≡ 50.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 94 et réduit
modulo 97, pour avoir une suite super-croissante. Alors,

(96 ∗ 94) mod 97 ≡ 3


(30 ∗ 94) mod 97 ≡ 7
(61 ∗ 94) mod 97 ≡ 11
(57 ∗ 94) mod 97 ≡ 23
(49 ∗ 94) mod 97 ≡ 47.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 7, 3 + 7 = 10 < 11, 3 +
7 + 11 = 21 < 23, 3 + 7 + 11 + 23 = 44 < 47, alors la suite est super-croissante. Ainsi, on a
produit les problèmes de Havresac suivants :
Pour le premier problème de Havresac, on a 47 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 47 = a5
produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 + 47 = 47 ou 2x1 + 5x2 + 8x3 + 17x4 = 0, alors
x4 = x3 = x2 = x1 = 0 et la solution est (0, 0, 0, 0, 1), c’est à dire, 0 + 0 + 0 + 0 + 47 = 47.
Pour le deuxième et le cinquième problème de Havresac, on a 41 = 3x1 +7x2 +11x3 +23x4 +47x5
où S = 41 < a5 = 47 produit x5 = 0 avec 3x1 + 7x2 + 11x3 + 23x4 = 41 et S = 41 > a4 = 23
alors x4 = 1, et 3x1 + 7x2 + 11x3 + 23 = 41, ou 3x1 + 7x2 + 11x3 = 18 et S = 18 > a3 = 11
donne x3 = 1, et 3x1 + 7x2 = 7. Ainsi, x2 = 1 et x1 = 0 et la solution est (0, 1, 1, 1, 0), c’est à
dire, 0 + 7 + 11 + 23 + 0 = 41.
Pour le troisième problème de Havresac, on a 65 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 65 >
a5 = 47 produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 = 18 et S = 18 < a4 = 23 alors x4 = 0, et
3x1 + 7x2 + 11x3 = 18, 18 > a3 = 11, donne x3 = 1, et 3x1 + 7x2 = 7 d’où x2 = 1, et x1 = 0. La
solution est (0, 1, 1, 0, 1), c’est à dire, 0 + 7 + 11 + 0 + 47 = 65.
Pour le quatrième problème de Havresac, on a 26 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 26 <
a5 = 47 produit x5 = 0, avec 3x1 + 7x2 + 11x3 + 23x4 = 26 et S = 26 > a4 = 23 alors x4 = 1, et
3x1 + 7x2 + 11x3 + 17 = 3, ou 3x1 + 7x2 + 11x3 = 3 et S = 3 < a3 = 11 donne x3 = x2 = 0 et
x1 = 1. La solution est (1, 0, 0, 1, 0), c’est à dire, 3 + 0 + 0 + 23 + 0 = 26.
Pour le sixième problème de Havresac, on a 7 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 7 <
a5 = 47 produit x5 = 0 avec 3x1 + 7x2 + 11x3 + 23x4 = 7 et 7 < a4 = 23 alors x4 = 0, et
3x1 + 7x2 + 11x3 = 7, et 7 < a3 = 11 alors x3 = 0, et 3x1 + 7x2 = 7, alors x2 = 1, et x1 = 0.
D’où la solution est (0, 1, 0, 0, 0), c’est à dire, 0 + 7 + 0 + 0 + 0 = 7.
Pour le septième problème de Havresac, on a 50 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 50 >
a5 = 47 produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 = 3 et 3 < a4 = 23 alors x4 = 0, et
3x1 + 7x2 + 11x3 = 3, donne x3 = 0, et 3x1 + 7x2 = 3, alors x2 = 0, et x1 = 1. D’où la solution
est (1, 0, 0, 0, 1), c’est à dire, 3 + 0 + 0 + 0 + 47 = 50.
Alors, le message déchiffré en binaire est 00001 01110, 01101 10010 01110, 01000 10001. Selon la
table ??, le texte clair est BONSOIR.

20
Lettre Binaire Lettre Binaire
A 00000 N 01101
B 00001 O 01110
C 00010 P 01111
D 00011 Q 10000
E 00100 R 10001
F 00101 S 10010
G 00110 T 10011
H 00111 U 10100
I 01000 V 10101
J 01001 W 10110
K 01010 X 10111
L 01011 Y 11000
M 01100 Z 11001

Table 8 – Les lettres et leurs équivalents binaires

Exercice 0.24 Supposons qu’Amel est une utilisatrice du crypto-système de Havresac et a comme
clef secrète la suite super-croissante 3, 5, 11, 20, 41, le modulo p = 85 et le multiplicateur w = 44.
Supposons que Nadia veut envoyer à Amel le message HELP US. Quelle est la tâche de chacune
des deux personnes ?
Solution :
Remarquer que p = 85 > 2a5 = 2 ∗ 41 = 82, 0 < w = 44 < p = 85 et pgcd(w, p) = pgcd(44, 85) =
1.
Cryptage : Amel doit multiplier chaque membre de la suite super-croissante par w = 44 et le
réduire modulo p = 85 pour produire la suite de chiffrement

(44 ∗ 3) mod 85 ≡ 47,


(44 ∗ 5) mod 85 ≡ 50,
(44 ∗ 11) mod 85 ≡ 59,
(44 ∗ 20) mod 85 ≡ 30,
(44 ∗ 41) mod 85 ≡ 19.

C’est à dire, 47, 50, 59, 30, 19. Cette dernière est la clef de chiffrement qu’Amel doit publiée dans
le répertoire publique.
Nadia veut envoyer le message HELP US, elle doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 8. Le message converti est 00111 00100 01011 01111 10100 10010. Le
message est alors divise en blocs de chiffres, dans ce cas de longueur 5, car le nombre d’éléments
de la suite super-croissante est 5. Utilisant maintenant la clef publique d’Amel, Nadia transforme
les blocs successifs en

47 ∗ 0 + 50 ∗ 0 + 59 ∗ 1 + 30 ∗ 1 + 19 ∗ 1 = 108
47 ∗ 0 + 50 ∗ 0 + 59 ∗ 1 + 30 ∗ 0 + 19 ∗ 0 = 59
47 ∗ 0 + 50 ∗ 1 + 59 ∗ 0 + 30 ∗ 1 + 19 ∗ 1 = 99
47 ∗ 0 + 50 ∗ 1 + 59 ∗ 1 + 30 ∗ 1 + 19 ∗ 1 = 158
47 ∗ 1 + 50 ∗ 0 + 59 ∗ 1 + 30 ∗ 0 + 19 ∗ 0 = 106
47 ∗ 1 + 50 ∗ 0 + 59 ∗ 0 + 30 ∗ 1 + 19 ∗ 0 = 77.

21
Le texte chiffré transmis est la suite des entiers positifs suivants : 108, 59, 99, 158, 106, 77.
Décryptage : Pour lire le message, Nadia doit premièrement calculer la congruence 44w−1 ∼ =
1 (mod 85). Pour cela, elle doit utiliser l’algorithme d’Euclide :

85 = 44 ∗ 1 + 41
44 = 41 ∗ 1 + 3
41 = 3 ∗ 13 + 2
3 = 2 ∗ 1 + 1.

et sa version étendue :

1 = 3−1∗2
= 3 − 1 ∗ (41 − 3 ∗ 13)
= 14 ∗ 3 − 1 ∗ 41
= 14 ∗ (44 − 1 ∗ 41) − 1 ∗ 41
= 14 ∗ 44 − 15 ∗ 41
= 14 ∗ 44 − 15 ∗ (85 − 1 ∗ 44)
= 29 ∗ 44 − 15 ∗ 85.

Ainsi w−1 ∼= 29 (mod 85). Chaque nombre du texte chiffré est multiplié par 29 et réduit modulo
85. Pour l’instant,

(108 ∗ 29) (mod 85) ∼


= 72
(59 ∗ 29) (mod 85) ∼
= 11
(99 ∗ 29) (mod 85) ∼
= 66
(158 ∗ 29) (mod 85) ∼
= 77
(106 ∗ 29) (mod 85) ∼
= 14
(77 ∗ 29) (mod 85) ∼
= 23.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 29 et réduit
modulo 85, pour avoir une suite super-croissante. Alors,

(47 ∗ 29) (mod 85) ∼


= 3
(50 ∗ 29) (mod 85) ∼
= 5
(59 ∗ 29) (mod 85) ∼
= 11
(30 ∗ 29) (mod 85) ∼
= 20
(19 ∗ 29) (mod 85) ∼
= 41.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 5, 3 + 5 = 8 < 11, 3 +
5 + 11 = 19 < 20, 3 + 5 + 11 + 20 = 39 < 41, alors la suite est super-croissante. Ainsi, on a
produit les problèmes de Havresac suivants :
Pour le premier problème de Havresac, on a 72 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 où S = 72 >
a5 = 41 produit x5 = 1 avec 3x1 + 5x2 + 11x3 + 20x4 + 41 = 72 ou 3x1 + 5x2 + 11x3 + 20x4 = 31,
31 > 20 alors x4 = 1, et 3x1 + 5x2 + 11x3 = 11, d’où x3 = 1, et 3x1 + 5x2 = 0, x2 = x1 = 0 et
la solution est (0, 0, 1, 1, 1), c’est à dire, 0 + 0 + 11 + 20 + 41 = 72.
Pour le deuxième problème de Havresac, on a 11 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 , où S =
11 < a5 = 41 produit x5 = 0 avec 3x1 + 5x2 + 11x3 + 20x4 = 11 et 11 < a4 = 20 alors x4 = 0,

22
et 3x1 + 5x2 + 11x3 = 11, donne x3 = 1, et 3x1 + 5x2 = 0. Ainsi, x1 = x2 = 0 et la solution est
(0, 0, 1, 0, 0), c’est à dire, 0 + 0 + 11 + 0 + 0 = 11.
Pour le troisième problème de Havresac, on a 66 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 , où S = 66 >
a5 = 41 produit x5 = 1 avec 3x1 + 5x2 + 11x3 + 20x4 = 25 et 25 > a4 = 20 alors x4 = 1, et
3x1 + 5x2 + 11x3 = 5, 5 < a3 = 11, donne x3 = 0, et 3x1 + 5x2 = 5 d’où x2 = 1, et x1 = 0. La
solution est (0, 1, 0, 1, 1), c’est à dire, 0 + 5 + 0 + 20 + 41 = 66.
Pour le quatrième problème de Havresac, on a 77 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 , où S =
77 > a5 = 41 produit x5 = 1 avec 3x1 + 5x2 + 11x3 + 20x4 = 36 et 36 > a4 = 20 alors x4 = 1, et
3x1 + 5x2 + 11x3 = 16, 16 > a3 = 11 alors x3 = 1, et 3x1 + 5x2 = 5, donne x2 = 1, et 3x1 = 0
ou x1 = 0, et la solution est (0, 1, 1, 1, 1), c’est à dire, 0 + 5 + 11 + 20 + 41 = 77.
Pour le cinquième problème de Havresac, on a 14 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 , où S =
14 < a5 = 41 produit x5 = 0 avec 3x1 + 5x2 + 11x3 + 20x4 = 14 et 14 < a4 = 20 alors x4 = 0, et
3x1 + 5x2 + 11x3 = 14, donne x3 = 1, et 3x1 + 5x2 = 3, et 3 < a2 = 5 alors x2 = 0, et x1 = 1.
D’où la solution est (1, 0, 1, 0, 0), c’est à dire, 3 + 0 + 11 + 0 + 0 = 14.
Pour le sixième problème de Havresac, on a 23 = 3x1 + 5x2 + 11x3 + 20x4 + 41x5 , où S = 23 <
a5 = 41 produit x5 = 0 avec 3x1 + 5x2 + 11x3 + 20x4 = 23 et 23 > a4 = 20 alors x4 = 1, et
3x1 + 5x2 + 11x3 = 3, et 3 < a3 = 11 alors x3 = 0, et 3x1 + 5x2 = 3, et 3 < a2 = 5 alors x2 = 0,
et x1 = 1. D’où la solution est (1, 0, 0, 1, 0), c’est à dire, 3 + 0 + 0 + 20 + 0 = 23.
Alors, le message déchiffré en binaire est 00111 00100 01011 01111 10100 10010. Selon la table 8,
le texte clair est HELP US.

Exercice 0.25 Supposons que Maissa est une utilisatrice du crypto-système Knapsack et a
comme clef secrète la suite super-croissante 3, 7, 11, 23, 47, le modulo p = 97 et le multipli-
cateur w = 19. Supposons que Hana veut envoyer à Maissa le message GOODJOB. Quelle est
la tâche de chacune des deux personnes (cryptage et décryptage) ?
Solution :
Remarquer que p = 97 > 2a5 = 2 ∗ 47 = 94, 0 < w = 19 < p = 77 et pgcd(w, p) = pgcd(19, 97) =
1.
Cryptage : Maissa doit multiplier chaque membre de la suite super-croissante par w = 19 et
le réduire modulo p = 97 pour produire la suite de chiffrement

(19 ∗ 3) mod 97 ≡ 57,


(19 ∗ 7) mod 97 ≡ 36,
(19 ∗ 11) mod 97 ≡ 15,
(19 ∗ 23) mod 97 ≡ 49,
(19 ∗ 47) mod 97 ≡ 20.

C’est à dire, 57, 36, 15, 49, 20. Cette dernière est la clef de chiffrement que Maissa doit publier
dans le répertoire publique.
Hana veut envoyer le message GOODJOB, elle doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 9. Le message converti est 00110 01110 01110 00011 01001 01110 00001.
Le message est alors divise en blocs de chiffres, dans ce cas de longueur 5, car le nombre d’élé-
ments de la suite super-croissante est 5. Utilisant maintenant la clef publique de Maissa, Hana

23
Lettre Binaire Lettre Binaire
A 00000 N 01101
B 00001 O 01110
C 00010 P 01111
D 00011 Q 10000
E 00100 R 10001
F 00101 S 10010
G 00110 T 10011
H 00111 U 10100
I 01000 V 10101
J 01001 W 10110
K 01010 X 10111
L 01011 Y 11000
M 01100 Z 11001

Table 9 – Les lettres et leurs équivalents binaires

transforme les blocs successifs en

57 ∗ 0 + 36 ∗ 0 + 15 ∗ 1 + 49 ∗ 1 + 20 ∗ 0 = 64
57 ∗ 0 + 36 ∗ 1 + 15 ∗ 1 + 49 ∗ 1 + 20 ∗ 0 = 100
57 ∗ 0 + 36 ∗ 1 + 15 ∗ 1 + 49 ∗ 1 + 20 ∗ 0 = 100
57 ∗ 0 + 36 ∗ 0 + 15 ∗ 0 + 49 ∗ 1 + 20 ∗ 1 = 69
57 ∗ 0 + 36 ∗ 1 + 15 ∗ 0 + 49 ∗ 0 + 20 ∗ 1 = 56
57 ∗ 0 + 36 ∗ 1 + 15 ∗ 1 + 49 ∗ 1 + 20 ∗ 0 = 100
57 ∗ 0 + 36 ∗ 0 + 15 ∗ 0 + 49 ∗ 0 + 20 ∗ 1 = 20.

Le texte chiffré transmis est la suite des entiers positifs suivants : 64, 100, 100, 69, 56, 100, 20.
Décryptage : Pour lire le message, Maissa doit premièrement calculer la congruence 19w−1 ∼ =
1 (mod 97). Pour cela, elle doit utiliser l’algorithme d’Euclide :

97 = 5 ∗ 19 + 2
19 = 9 ∗ 2 + 1.

et sa version étendue :

1 = 19 − 9 ∗ 2
= 19 − 9 ∗ (97 − 5 ∗ 19)
= 46 ∗ 19 − 9 ∗ 97.

Ainsi w−1 ∼
= 46 (mod 97). Chaque nombre du texte chiffré est multiplié par 46 et réduit modulo

24
97. Pour l’instant,

(64 ∗ 46) mod 97 ≡ 34


(100 ∗ 46) mod 97 ≡ 41
(100 ∗ 46) mod 97 ≡ 41
(69 ∗ 46) mod 97 ≡ 70
(56 ∗ 46) mod 97 ≡ 54
(100 ∗ 46) mod 97 ≡ 41
(20 ∗ 46) mod 97 ≡ 47.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 46 et réduit
modulo 97, pour avoir une suite super-croissante. Alors,

(57 ∗ 46) mod 97 ≡ 3


(36 ∗ 46) mod 97 ≡ 7
(15 ∗ 46) mod 97 ≡ 11
(49 ∗ 46) mod 97 ≡ 23
(20 ∗ 46) mod 97 ≡ 47.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 7, 3 + 7 = 10 < 11, 3 +
7 + 11 = 21 < 23, 3 + 7 + 11 + 23 = 44 < 47, alors la suite est super-croissante. Ainsi, on a
produit les problèmes de Havresac suivants :
Pour le premier problème de Havresac, on a 34 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 où S = 34 <
a5 = 47 produit x5 = 0 avec 3x1 + 7x2 + 11x3 + 23x4 = 34 et 34 > a4 = 23 donne x4 = 1, et
3x1 + 7x2 + 11x3 = 34 − 23 = 11, d’où x3 = 1, et 3x1 + 7x2 = 0, x2 = x1 = 0 et la solution est
(0, 0, 1, 1, 0), c’est à dire, 0 + 0 + 11 + 23 + 0 = 34.
Pour le deuxième, troisième et sixième problème de Havresac, on a 41 = 3x1 +7x2 +11x3 +23x4 +
47x5 , où S = 41 < a5 = 47 produit x5 = 0 avec 3x1 + 7x2 + 11x3 + 23x4 = 41 et 41 > a4 = 23
alors x4 = 1, et 3x1 + 7x2 + 11x3 = 18, donne x3 = 1, et 3x1 + 7x2 = 7. Ainsi, x2 = 1 et x1 = 0
et la solution est (0, 1, 1, 1, 0), c’est à dire, 0 + 7 + 11 + 23 + 0 = 41.
Pour le quatrième problème de Havresac, on a 70 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 , où S =
70 > a5 = 47 produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 = 70 − 47 = 23 et S = 23 = a4 = 23
alors x4 = 1, et 3x1 + 7x2 + 11x3 = 0, donne x3 = x2 = x1 = 0. La solution est (0, 0, 0, 1, 1),
c’est à dire, 0 + 0 + 0 + 23 + 47 = 70.
Pour le cinquième problème de Havresac, on a 54 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 , où S =
54 > a5 = 47 produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 = 54 − 47 = 7 et 7 < a4 = 23 alors
x4 = 0, et 3x1 + 7x2 + 11x3 = 7, et 7 < a3 = 11 alors x3 = 0, et 3x1 + 7x2 = 7, alors x2 = 1, et
x1 = 0. D’où la solution est (0, 1, 0, 0, 1), c’est à dire, 0 + 7 + 0 + 0 + 47 = 54.
Pour le septième problème de Havresac, on a 47 = 3x1 + 7x2 + 11x3 + 23x4 + 47x5 , où S = 47 =
a5 = 47 produit x5 = 1 avec 3x1 + 7x2 + 11x3 + 23x4 = 0 donne x4 = x3 = x2 = x1 = 0. D’où la
solution est (0, 0, 0, 0, 1), c’est à dire, 0 + 0 + 0 + 0 + 1 = 47.
Alors, le message déchiffré en binaire est 00110 01110, 01110 00011 01001 01110 00001. Selon la
table ??, le texte clair est GOODJOB.

Exercice 0.26 Supposons que le texte 33, 33, 38, 48, 33, 32, 49, 16, 33 chiffré par le crypto-
système Knapsack a été généré avec le modulo p = 53, le multiplicateur w = 23 et la suite
de chiffrement 16, 32, 11, 22. Décrypter ce message.
Pour déchiffrer le message, la personne recevant ce dernier doit premièrement calculer la congruence

25
23w−1 ∼
= 1 (mod 53). Pour cela, elle doit utiliser l’algorithme d’Euclide :

53 = 2 ∗ 23 + 7
23 = 3 ∗ 7 + 2
7 = 3 ∗ 2 + 1.

et sa version étendue :

1 = 7−3∗2
= 7 − 3 ∗ (23 − 3 ∗ 7)
= 10 ∗ 7 − 3 ∗ 23
= 10 ∗ (53 − 2 ∗ 23) − 3 ∗ 23
= 10 ∗ 53 − 23 ∗ 23.

Ainsi −23 (mod 53) ∼ = (53 − 23) (mod 53) ∼ = 30 (mod 53), w−1 ∼
= 30 (mod 53). Chaque nombre du
texte chiffré est multiplié par 30 et réduit modulo 53. Pour l’instant,

(33 ∗ 30) (mod 53) ∼


= 36

(38 ∗ 30) (mod 53) = 27
(48 ∗ 30) (mod 53) ∼
= 9

(32 ∗ 30) (mod 53) = 6
(49 ∗ 30) (mod 53) ∼
= 39
(16 ∗ 30) (mod 53) ∼
= 3.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 30 et réduit
modulo 53, pour avoir une suite super-croissante. Alors,

(16 ∗ 30) (mod 53) ∼


= 3
(32 ∗ 30) (mod 53) ∼
= 6
(11 ∗ 30) (mod 53) ∼
= 12
(22 ∗ 30) (mod 53) ∼
= 24.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 6, 3 + 6 = 9 < 12, 3 + 6 +
12 = 21 < 24, alors la suite est super-croissante. Ainsi, on a produit les problèmes de Havresac
suivants :
Pour le premier problème de Havresac, on a 36 = 3x1 + 6x2 + 12x3 + 24x4 où S = 36 > a4 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 + 24 = 36 ou 3x1 + 6x2 + 12x3 = 12, 31 > 20 alors
x3 = 1, et 3x1 + 6x2 = 0, implique que x2 = x1 = 0 et la solution est (0, 0, 1, 1), c’est à dire,
0 + 0 + 12 + 24 = 36.
Pour le deuxième problème de Havresac, on a 27 = 3x1 + 6x2 + 12x3 + 24x4 où S = 27 > a4 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 + 24 = 27 ou 3x1 + 6x2 + 12x3 = 3 et 3 < a3 = 12 alors
x3 = 0, et 3x1 + 6x2 = 3, et 3 < 6 donne x2 = 0, et 3x1 = 3. Ainsi, x1 = 1 et la solution est
(1, 0, 0, 1), c’est à dire, 3 + 0 + 0 + 24 = 27.
Pour le troisième problème de Havresac, on a 9 = 3x1 + 6x2 + 12x3 + 24x4 où S = 9 < a4 = 24
produit x4 = 0 avec 3x1 + 6x2 + 12x3 = 9 et 9 < a3 = 12 alors x3 = 0, et 3x1 + 6x2 = 9,
et 9 > 6 donne x2 = 1, et 3x1 = 3. Ainsi, x1 = 1 et la solution est (1, 1, 0, 0), c’est à dire,
3 + 6 + 0 + 0 = 9.
Pour le quatrième problème de Havresac, on a 6 = 3x1 + 6x2 + 12x3 + 24x4 où S = 6 < a4 = 24

26
produit x4 = 0 avec 3x1 + 6x2 + 12x3 = 6 et 6 < a3 = 12 alors x3 = 0, et 3x1 + 6x2 = 6, donne
x2 = 1, et 3x1 = 0. Ainsi, x1 = 0 et la solution est (0, 1, 0, 0), c’est à dire, 0 + 6 + 0 + 0 = 6.
Pour le cinquième problème de Havresac, on a 39 = 3x1 + 6x2 + 12x3 + 24x4 où S = 39 > a4 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 + 24 = 39 ou 3x1 + 6x2 + 12x3 = 15 et 15 > a3 = 12 alors
x3 = 1, et 3x1 + 6x2 = 3, et 3 < 6 donne x2 = 0, et 3x1 = 3. Ainsi, x1 = 1 et la solution est
(1, 0, 1, 1), c’est à dire, 3 + 0 + 12 + 24 = 39.
Pour le sixième problème de Havresac, on a 3 = 3x1 + 6x2 + 12x3 + 24x4 où S = 3 < a4 = 24
produit x4 = 0 avec 3x1 + 6x2 + 12x3 = 3 ou 3x1 + 6x2 + 12x3 = 3 et 3 < a3 = 12 alors x3 = 0,
et 3x1 + 6x2 = 3, et 3 < 6 donne x2 = 0, et 3x1 = 3. Ainsi, x1 = 1 et la solution est (1, 0, 0, 0),
c’est à dire, 3 + 0 + 0 + 0 = 3.
Alors, le message déchiffré en binaire est 0011 0011 1001 1100 0011 0100 1011 1000 0011. Pour uti-
liser la table 8, on doit arranger les chiffres de ces nombres binaires en groupes de 5 chiffres
comme suit : 00110 01110 01110 00011 01001 01110 00001 11111. Selon la table 8, le texte clair est
GOOD JOB.
Exercice 0.27 Supposons que le texte 14, 213, 137, 173, 83, 0, 142, 0 64, 168 chiffré par le crypto-
système Knapsack a été généré avec le modulo p = 97, le multiplicateur w = 23 et la suite de
chiffrement 69, 64, 59, 90, 14. Décrypter ce message.
Exercice 0.28 Supposons que le texte 0, 123, 64, 173, 64, 59 chiffré par le crypto-système Knap-
sack a été généré avec le modulo p = 97, le multiplicateur w = 23 et la suite de chiffrement
69, 64, 59, 90, 14. Décrypter ce message.
Exercice 0.29 Anissa et Bachir voudraient s’échanger un message secret utilisant le chiffrement
RSA avec les clefs (17, 2537) et (13, 2537) respectivement. Trouver le texte chiffré signé envoyé
par Bachir, si le texte clair est FINE.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − √ 1) et n√= 2537. Selon la méthode de factorisation de
Fermat : n = 2537 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2537⌉ = ⌈50.369⌉ = 51, alors y 2 = x2 − n =
512 − 2537 = 2601 − 2537 = 64 = 82 est un carré parfait. Alors, n = (51 + 8)(51 − 8) = 59 ∗ 43.
D’où ϕ(2537) = ϕ(59 ∗ 43) = 58 ∗ 42 = 2436.
Noter que e1 d1 ∼= 1 (mod ϕ(n)) ou 17d1 ∼ = 1 (mod 2436). Utilisant l’algorithme d’Euclide, on
obtient
2436 = 143 ∗ 17 + 5
17 = 3 ∗ 5 + 2
5 = 2∗2+1
et de l’algorithme d’Euclide étendu, on a
1 = 5−2∗2
=5 − 2 ∗ (17 − 3 ∗ 5) = 7 ∗ 5 − 2 ∗ 17
=7 ∗ (2436 − 143 ∗ 17) − 2 ∗ 17 = 7 ∗ 2436 − 1003 ∗ 17.
= −1003 (mod 2436) ∼
D’où d1 ∼ = (2436 − 1003) ∼= 1433 (mod 2436).
De la même manière, on a e2 d2 ∼
=∼= 1 (mod ϕ(n)) ou 13d2 ∼ = 1 (mod 2436). Utilisant l’algorithme
d’Euclide, on obtient
2436 = 187 ∗ 13 + 5
13 = 2 ∗ 5 + 3
5 = 1∗3+2
3 = 1∗2+1

27
et de l’algorithme d’Euclide étendu, on a

1 = 3−1∗2
= 3 − 1 ∗ (5 − 1 ∗ 3) = 2 ∗ 3 − 1 ∗ 5
= 2 ∗ (13 − 2 ∗ 5) − 1 ∗ 5 = 2 ∗ 13 − 5 ∗ 5
= 2 ∗ 13 − 5 ∗ (2436 − 187 ∗ 13) = 937 ∗ 13 − 5 ∗ 2436.

D’où d2 ∼= 937 (mod 2436). On veut déterminer le message chiffré et signé envoyé par Bachir si
le message du texte clair est FINE. Puisque le texte clair FINE peut être converti et groupé en
blocs de longueur 4 chacun comme suit 0508, 1304 et Bachir a ses deux clef (e2 , d2 ) = (13, 937)
et connait la clef publique d’Anissa e1 = 17. Utilisant le schéma de codage suivant :

Y = D2 (m) ∼= md2 (mod n)


s = E1 (Y ) = E1 (D2 (m)) ∼
= me1 d2 (mod n).

Bachir peut alors calculer e1 d2 (mod ϕ(n)) = (17 ∗ 937) (mod 2436) = 1313. D’où le premier bloc
du message chiffré et signé s envoyé par Bachir est 5081313 (mod 2537) = 2376. Les blocs de s
sont 2376, 0999.

Exercice 0.30 Anissa et Hana voudraient s’échanger un message secret utilisant le chiffrement
RSA avec les clefs (23, 3717) et (37, 3717) respectivement. Trouver le texte chiffré, signé et envoyé
par Hana, si le texte clair est AMIE.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q √ − 1) et n√ = 3717. Selon la méthode de factorisation de
Fermat : n = 3717 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3717⌉ = ⌈60.9672⌉ = 61, alors y 2 = x2 − n =
612 − 3717 = 3721 − 3717 = 4 = 22 est un carré parfait. Alors, n = (61 − 2)(61 + 2) = 59 ∗ 63.
D’où ϕ(3717) = ϕ(59 ∗ 63) = 58 ∗ 62 = 3596.
Noter que e1 d1 ∼= 1 (mod ϕ(n)) ou 23d1 ∼ = 1 (mod 3596). Utilisant l’algorithme d’Euclide, on
obtient

3596 = 156 ∗ 23 + 8
23 = 2 ∗ 8 + 7
8 = 1∗7+1

et de l’algorithme d’Euclide étendu, on a

1 = 8−1∗7
= 8 − 1 ∗ (23 − 2 ∗ 8) = 3 ∗ 8 − 1 ∗ 23
= 3 ∗ (3596 − 156 ∗ 23) − 1 ∗ 23 = 3 ∗ 2436 − 469 ∗ 23.

D’où d1 = = (3596 − 469) ∼


∼ −469 (mod 3596) ∼ = 3127 (mod 3596).
=∼
De la même manière, on a e2 d2 ∼ = 1 (mod ϕ(n)) ou 37d2 ∼
= 1 (mod 3596). Utilisant l’algorithme
d’Euclide, on obtient

3596 = 97 ∗ 37 + 7
37 = 5∗7+2
7 = 3∗2+1

28
et de l’algorithme d’Euclide étendu, on a

1 = 7−3∗2
= 7 − 3 ∗ (37 − 5 ∗ 7) = 16 ∗ 7 − 3 ∗ 37
= 16 ∗ (3596 − 97 ∗ 37) − 3 ∗ 37 = 16 ∗ 3596 − 1555 ∗ 37.

D’où d2 ∼ = −1555 (mod 3596) ∼ = (3596 − 1555) ∼


= 2041 (mod 3596). On veut déterminer le message
chiffré, signé et envoyé par Hana si le message du texte clair est AMIE. Puisque le texte clair
AMIE peut être converti et groupé en blocs de longueur 4 chacun comme suit 0012, 0804 et Hana
a ses deux clef (e2 , d2 ) = (37, 2041) et connait la clef publique d’Anissa e1 = 23. Utilisant le
schéma de codage suivant :

Y = D2 (m) ∼= md2 (mod n)


s = E1 (Y ) = E1 (D2 (m)) ∼
= me1 d2 (mod n).

Hana peut alors calculer e1 d2 (mod ϕ(n)) = (23 ∗ 2041) (mod 3596) = 195. D’où le premier bloc
du message chiffré et signé s envoyé par Hana est 12195 (mod 3717) = 2169. Les blocs de s sont
2169, 0909.

Exercice 0.31 Hana et Houssam voudraient s’échanger un message secret utilisant le chiffre-
ment RSA avec les clefs (29, 3233) et (31, 3233) respectivement. Trouver le texte chiffré signé et
envoyé par Houssam, si le texte clair est JOYEUX.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q √ − 1) et n
√ = 3233. Selon la méthode de factorisation de
Fermat : n = 3233 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3233⌉ = ⌈56.8595⌉ = 57, alors y 2 = x2 − n =
572 − 3233 = 3249 − 3233 = 16 = 42 est un carré parfait. Alors, n = (57 + 4)(57 − 4) = 61 ∗ 53.
D’où ϕ(3233) = ϕ(61 ∗ 53) = 60 ∗ 52 = 3120.
Noter que e1 d1 ∼
= 1 (mod ϕ(n)) ou 29d1 ∼ = 1 (mod 3120). Utilisant l’algorithme d’Euclide, on
obtient

3120 = 107 ∗ 29 + 17
29 = 1 ∗ 17 + 12
17 = 1 ∗ 12 + 5
12 = 2 ∗ 5 + 2
5 = 2∗2+1

et de l’algorithme d’Euclide étendu, on a

1 = 5−2∗2
= 5 − 2 ∗ (12 − 2 ∗ 5) = 5 ∗ 5 − 2 ∗ 12
= 5 ∗ (17 − 1 ∗ 12) − 2 ∗ 12 = 5 ∗ 17 − 7 ∗ 12
= 5 ∗ 17 − 7 ∗ (29 − 1 ∗ 17) = 12 ∗ 17 − 7 ∗ 29
= 12 ∗ (3120 − 107 ∗ 29) − 7 ∗ 29 = 12 ∗ 3120 − 1291 ∗ 29

D’où d1 ∼
= −1291 (mod 3120) ∼
= (3120 − 1291) ∼= 1829 (mod 3120).
De la même manière, on a e2 d2 ∼
=∼= 1 (mod ϕ(n)) ou 31d2 ∼
= 1 (mod 3120). Utilisant l’algorithme

29
d’Euclide, on obtient

3120 = 100 ∗ 31 + 20
31 = 1 ∗ 20 + 11
20 = 1 ∗ 11 + 9
11 = 1 ∗ 9 + 2
9 = 4∗2+1

et de l’algorithme d’Euclide étendu, on a

1 = 9−4∗2
= 9 − 4 ∗ (11 − 1 ∗ 9) = 5 ∗ 9 − 4 ∗ 11
= 5 ∗ (20 − 1 ∗ 11) − 4 ∗ 11 = 5 ∗ 20 − 9 ∗ 11
= 5 ∗ 20 − 9 ∗ (31 − 1 ∗ 20) = 14 ∗ 20 − 9 ∗ 31
= 14 ∗ (3120 − 100 ∗ 31) − 9 ∗ 31 = 14 ∗ 3120 − 1409 ∗ 31.

= −1409 (mod 3120) ∼


D’où d2 ∼ = (3120 − 1409) ∼
= 1711 (mod 3120).
On veut déterminer le message chiffré signé et envoyé par Houssam si le message du texte clair
est JOYEUX. Ce message peut être converti et groupé en blocs de longueur 4 chacun comme suit
0914, 2404 et 2023, et Houssam a ses deux clef (e2 , d2 ) = (31, 1711) et connait la clef publique
de Hana e1 = 29. Utilisant le schéma de codage suivant :

Y = D2 (m) ∼= md2 (mod n)


s = E1 (Y ) = E1 (D2 (m)) ∼
= me1 d2 (mod n).

Houssam peut alors calculer e1 d2 (mod ϕ(n)) = (29 ∗ 1711) (mod 3120) = 2819. D’où le premier
bloc du message chiffré et signé s envoyé par Houssam est 9142819 (mod 3233) = 1341. Les blocs
de s sont 1341, 1852 et 2190.

Exercice 0.32 Houssam et Imane voudraient s’échanger un message secret utilisant le chiffre-
ment RSA avec les clefs (19, 2337) et (17, 2337) respectivement. Trouver le texte chiffré signé
envoyé par Imane si le texte clair est VIENS.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − √ 1) et n√= 2337. Selon la méthode de factorisation de
Fermat : n = 2337 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2337⌉ = ⌈48.343⌉ = 49, alors y 2 = x2 − n =
492 − 2337 = 2401 − 2337 = 64 = 82 est un carré parfait. Alors, n = (49 + 8)(49 − 8) = 57 ∗ 41.
D’où ϕ(2337) = ϕ(57 ∗ 41) = 56 ∗ 40 = 2240.
Noter que e1 d1 ∼
= 1 (mod ϕ(n)) ou 19d1 ∼ = 1 (mod 2240). Utilisant l’algorithme d’Euclide, on
obtient

2240 = 117 ∗ 19 + 17
19 = 1 ∗ 17 + 2
17 = 8 ∗ 2 + 1

et de l’algorithme d’Euclide étendu, on a

1 = 17 − 8 ∗ 2
= 17 − 8 ∗ (19 − 1 ∗ 17) = 9 ∗ 17 − 8 ∗ 19
= 79 ∗ (2240 − 117 ∗ 19) − 8 ∗ 19 = 9 ∗ 2240 − 1061 ∗ 19.

30
= (2240 − 1061) ∼
= −1061 (mod 2240) ∼
D’où d1 ∼ = 1179 (mod 2240).
De la même manière, on a e2 d2 ∼
=∼= 1 (mod ϕ(n)) ou 17d2 ∼
= 1 (mod 2240). Utilisant l’algorithme
d’Euclide, on obtient

2240 = 131 ∗ 17 + 13
17 = 1 ∗ 13 + 4
13 = 3 ∗ 4 + 1

et de l’algorithme d’Euclide étendu, on a

1 = 13 − 3 ∗ 4
= 13 − 3 ∗ (17 − 1 ∗ 13) = 4 ∗ 13 − 3 ∗ 17
= 4 ∗ (2240 − 131 ∗ 17) − 3 ∗ 17 = 4 ∗ 2240 − 527 ∗ 17.

= −527 (mod 2240) ∼


D’où d2 ∼ = (2240 − 527) ∼ = 1713 (mod 2240).
On veut déterminer le message chiffré et signé envoyé par Imane si le message du texte clair est
VIENS, ce dernier peut être converti et groupé en blocs de longueur 4 chacun comme suit 2108,
0413, 1823 et Imane a ses deux clef (e2 , d2 ) = (17, 1713) et connait la clef publique de Houssam
e1 = 19. Utilisant le schéma de codage suivant :

Y = D2 (m) ∼= md2 (mod n)


s = E1 (Y ) = E1 (D2 (m)) ∼
= me1 d2 (mod n).

Imane peut alors calculer e1 d2 (mod ϕ(n)) = (19 ∗ 1713) (mod 2240) = 1187. D’où le premier bloc
du message chiffré et signé s envoyé par Imane est 21081187 (mod 2337) = 1709. Les blocs de s
sont 1709, 1421, 0626.

Exercice 0.33 Supposons que le texte chiffré suivant

(34, 00), (34, 40), (34, 41), (34, 42),

est reçu par Souad qui a la clef publique (p, α, βs ) = (43, 3, 22) et une clef privée es = 15.
Obtenir le message en texte clair, c’est à dire, décrypter le message chiffré utilisant le crypto-
système d’ElGamal.
Solution :
Pour plus d’éclaircissement, on étudie le cryptage suivi du décryptage. Puisque Souad utilise le
crypto-système d’ElGamal avec une clef publique (p, α, βs ) = (43, 3, 22) et une clef privée es =
15, où 2 ≤ es ≤ p − 2 et pgcd(es , p) = 1. Souad calcule βs ∼= αes (mod p) = 315 (mod 43) ∼ = 22.
Noter que 3 est une racine primitive ou un générateur du groupe Z43 .
1. Cryptage : Maria voudrait envoyer le message AMIE à Souad. Premièrement, elle conver-
tit ce message en chaîne de chiffres 00 12 08 04, et sélectionne sa clef privée em = 23, telles
que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Puis elle calcule a = βm ∼ = αem (mod p) =
23 ∼ ∼
3 (mod 43) = 34 (mod 43) et bi = βs ∗ mi (mod p) = 22 ∗ mi (mod 43) ∼
em 23
= 32 ∗
mi (mod 43). Le produit 32 ∗ mi (mod 43) est calculé pour chaque bloc de 2 chiffres du
message donnant

b1 ≡ 32 ∗ 0 mod 43 ≡ 00,
b2 ≡ 32 ∗ 12 mod 43 ≡ 40,
b3 ≡ 32 ∗ 8 mod 43 ≡ 41,
b4 ≡ 32 ∗ 4 mod 43 ≡ 42,

31
ou le message chiffré 00 40 41 42 et le message chiffré qui est envoyé au destinataire (à
Souad) prend la forme
(a, b1 ), (a, b2 ), (a, b2 ), (a, b3 )
ou
(34, 00), (34, 40), (34, 41), (34, 42).
2. Décryptage : Sachant que a = βm ∼ = αem (mod p) ∼ = 34 (mod 43), à l’arrivée du message
crypté, Souad n’a aucune connaissance de la valeur de em (la clef privée de Maria), mais
elle connait a (inclue dans le message), alors elle calcule

aps −1−es (mod ps ) ∼


p −1−e
= (αesm ) s s
(mod ps )

= 34 43−1−15
(mod 43) ∼
= 3427 (mod 43)

= 39 (mod 43).

= (βsem ∗ mi ) (mod p) ∼
Puisque bi ∼
e
= ((αes ) m ∗ mi ) (mod p) et selon le théorème de Fermat
αp−1
(mod p) ∼
= 1 avec pgcd(α, p) = 1, alors

bi ∗ ap−1−es (mod p) ∼
ps −1−es
= βsem ∗ mi ∗ (αem ) (mod ps )

= es em
(α ) ∗ mi ∗ (α em p−1−es
) (mod p)

= mi ∗ α es em
∗α −em es p−1
∗α (mod p)

= mi (mod p).

C’est à dire, mi ∼
= bi ∗ ap−1−es (mod p), pour 1 ≤ i ≤ 4, alors on a


m1 ∼
= (0 ∗ 39) (mod 43) ∼
= 00,
m2 ∼
= (40 ∗ 39) (mod 43) ∼
= 12,
m3 ∼
= (41 ∗ 39) (mod 43) ∼
= 08,
m4 ∼
= (42 ∗ 39) (mod 43) ∼
= 04,

ou 00 12 08 04 qui correspond au texte clair AMIE.

Exercice 0.34 Supposons que le texte chiffré

(39, 13), (39, 00), (39, 25), (39, 31), (39, 33), (39, 11)

envoyé par Imane, a été reçu par Maissa qui a la clef publique (p, α, βm ) = (47, 5, 10) et une
clef privée em = 19. Obtenir le message en texte clair, c’est à dire, décrypter le message chiffré
utilisant le crypto-système d’ElGamal.
Solution :
Pour plus d’éclaircissement, on étudie le cryptage suivi du décryptage. Puisque Maissa utilise le
crypto-système d’ElGamal avec une clef publique (p, α, βm ) = (47, 5, 10) et une clef privée em =
19, où 2 ≤ em ≤ p−2 et pgcd(em , p) = 1. Maissa calcule βm ∼ = αem (mod p) = 519 (mod 47) ∼ = 10.
Noter que 5 est une racine primitive ou un générateur du groupe Z47 .
1. Cryptage : Imane voudrait envoyer le message DANSER à Maissa. Premièrement, elle
convertit ce message en chaîne de chiffres 03 00 13 18 04 17, et sélectionne sa clef privée
ei = 31, telles que 2 ≤ ei ≤ p − 2 et pgcd(ei , p) = 1. Puis elle calcule a = βi ∼ =
= 39 (mod 47) et bk ∼
αei (mod p) = 531 (mod 47) ∼ ei
= βm ∗ mk (mod p) = 1031 ∗ mk (mod 47) ∼ =

32
3220 ∗ mk (mod 47). Le produit 20 ∗ mk (mod 47) est calculé pour chaque bloc de 2 chiffres
du message donnant

b1 ∼
= 20 ∗ 3 (mod 47) ∼
= 13,
b2 ∼
= 20 ∗ 0 (mod 47) ∼
= 00,
b3 ∼
= 20 ∗ 13 (mod 47) ∼
= 25,
b4 = 20 ∗ 18 (mod 47) ∼
∼ = 31,
b5 ∼ ∼
= 20 ∗ 4 (mod 47) = 33,
b6 ∼
= 20 ∗ 17 (mod 47) ∼
= 11,

ou le message chiffré 13 00 25 31 33 11 et le message chiffré qui est envoyé au destinataire


(à Maissa) prend la forme

(a, b1 ), (a, b2 ), (a, b2 ), (a, b3 ), (a, b4 ), (a, b5 ), (a, b6 )

ou
(39, 13), (39, 00), (39, 25), (39, 31), (39, 33), (39, 11).
2. Décryptage : Sachant que a ∼
= αemi (mod pm ) ∼
= 39 (mod 47), à l’arrivée du message crypté,
Maissa n’a aucune connaissance de la valeur de ei (la clef privée de Imane), mais elle
connait a (inclue dans le message), alors elle calcule

ap−1−em (mod p) ∼
= (αei )
p−1−em
(mod p)

= 39 47−1−19
(mod 47) ∼
= 3927 (mod 47)

= 40 (mod 47).

Puisque bk ∼ ∗ mk ) (mod p) ∼
e
ei
= (βm = ((αem ) i ∗ mk ) (mod p) et selon le théorème de Fermat
αp−1 ∼
(mod p) = 1 avec pgcd(α, p) = 1, alors

bk ∗ ap−1−em (mod p) ∼
= ei
βm ∗ mk ∗ (αei )p−1−em (mod p)

= (αem )ei ∗ mk ∗ (αei )p−1−em (mod p)

= mk ∗ αem ei ∗ α−ei em ∗ αp−1 (mod p)

= mk (mod p).

C’est à dire, mk ∼
= bk ∗ ap−1−em (mod p), pour 1 ≤ k ≤ 6, alors on a


m1 ∼
= (40 ∗ 13) (mod 47) ∼
= 03,
m2 ∼
= ∼
(40 ∗ 0) (mod 47) = 00,
m3 ∼
= (40 ∗ 25) (mod 47) ∼
= 13,
m4 ∼
= ∼ 18,
(40 ∗ 31) (mod 47) =
m5 ∼
= (40 ∗ 33) (mod 47) ∼
= 04,
m6 ∼
= (40 ∗ 11) (mod 47) ∼
= 17,

ou 03 00 13 18 04 17 qui correspond au texte clair DANSER.

Exercice 0.35 Supposons que le texte chiffré

(28, 64), (28, 27), (28, 1), (28, 31), (28, 27), (28, 1), (28, 21), (28, 27)

33
envoyé par Hana, a été reçu par Maissa qui a la clef publique (p, α, βm ) = (67, 13, 44) et une
clef privée em = 31. Décrypter le message chiffré utilisant le crypto-système d’ElGamal.
Solution :
Pour plus d’éclaircissement, on étudie le cryptage suivi du décryptage. Puisque Maissa utilise le
crypto-système d’ElGamal avec une clef publique (p, α, βm ) = (67, 13, 44) et une clef privée em =
31, où 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Maissa calcule βm ∼ = αem (mod p) = 1331 (mod 67) ∼ =
44. Noter que 13 est une racine primitive ou un générateur du groupe Z67 .
1. Cryptage : Hana voudrait envoyer le message HEUREUSE à Maissa. Premièrement, elle
convertit ce message en chaîne de chiffres 07 04 20, 17, 04 20, 18, 04, et sélectionne sa
clef privée eh = 43, telles que 2 ≤ eh ≤ p − 2 et pgcd(eh , p) = 1. Puis elle calcule
a = βh ∼ = αeh (mod p) = 1343 (mod 67) ∼
= 28 (mod 67) et bk ∼
= βm eh
∗ mk (mod p) = 4443 ∗

mk (mod 67) = 57 ∗ mk (mod 67). Le produit 57 ∗ mk (mod 67) est calculé pour chaque bloc
de 2 chiffres du message donnant

b1 ∼
= 57 ∗ 7 (mod 67) ∼
= 64,
b2 = 57 ∗ 4 (mod 67) ∼
∼ = 27,
b3 ∼
= 57 ∗ 20 (mod 67) ∼
= 01,
b4 = 57 ∗ 17 (mod 67) ∼
∼ = 31,
b5 = b8 = b2 ,
b6 = b3 ,
b7 ∼
= 57 ∗ 18 (mod 67) ∼
= 21,

ou le message chiffré 64 27 01 31 27 01, 21, 27 et le message chiffré qui est envoyé au des-
tinataire (à Maissa) prend la forme

(a, b1 ), (a, b2 ), (a, b2 ), (a, b3 ), (a, b4 ), (a, b5 ), (a, b6 ), (a, b7 ), (a, b8 )

ou
(28, 64), (28, 27), (28, 1), (28, 31), (28, 27), (28, 1), (28, 21), (28, 27).
∼ αeh (mod p) ∼
2. Décryptage : Sachant que a = βh = = 1343 (mod 67) ∼ = 28 (mod 67), à l’arrivée
du message crypté, Maissa n’a aucune connaissance de la valeur de eh (la clef privée de
Hana), mais elle connait a (inclue dans le message), alors elle calcule

ap−1−em (mod p) ∼
= (αeh )
p−1−em
(mod p)

= 28 67−1−31
(mod 47) ∼
= 2835 (mod 47)

= 20 (mod 47).

Puisque bk ∼ ∗ mk ) (mod p) ∼
e
= (βmeh
= ((αem ) h ∗ mk ) (mod p) et selon le théorème de Fer-
mat α p−1 ∼
(mod p) = 1 avec pgcd(α, p) = 1, alors

bk ∗ ap−1−em (mod p) ∼ eh p−1−em


= βm ∗ mk ∗ (αeh ) (mod p)

= (α em eh
) eh p−1−em
∗ mk ∗ (α ) (mod p)

= mk ∗ αem eh ∗ α−eh em ∗ αp−1 (mod p)

= mk (mod p).

34
C’est à dire, mk ∼
= bk ∗ ap−1−em (mod p), pour 1 ≤ k ≤ 8, alors on a


m1 ∼= (20 ∗ 64) (mod 67) ∼


= 07,
m2 ∼
= (20 ∗ 27) (mod 67) ∼
= 04,
m3 ∼
= ∼
(20 ∗ 1) (mod 67) = 20,
m4 ∼
= (20 ∗ 31) (mod 67) ∼
= 17,
m5 = m8 = m2 ,
m6 = m3 ,
m7 ∼
= (20 ∗ 21) (mod 67) ∼
= 18,
ou 07 04 20 17 04 20 18, 04 qui correspond au texte clair HEUREUSE.
Exercice 0.36 Supposons que le texte chiffré
(89, 95), (89, 00), (89, 40), (89, 60), (89, 20),
envoyé par Imane, a été reçu par Maissa qui a la clef publique (p, α, βm ) = (113, 17, 94) et une
clef privée em = 31. Obtenir le message en texte clair, c’est à dire, décrypter le message chiffré
utilisant le crypto-système d’ElGamal.
Solution :
Pour plus d’éclaircissement, on étudie le cryptage suivi du décryptage. Puisque Maissa utilise
le crypto-système d’ElGamal avec une clef publique (p, α, βm ) = (113, 17, 10) et une clef pri-
vée em = 31, où 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Maissa calcule βm ∼ = αem (mod p) =

17 (mod 113) = 94. Noter que 17 est une racine primitive ou un générateur du groupe Z113 .
31

1. Cryptage : Imane voudrait envoyer le message TAIME à Maissa. Premièrement, elle


convertit ce message en chaîne de chiffres 19 00 08 12 04, et sélectionne sa clef privée ei =
41, telles que 2 ≤ ei ≤ p − 2 et pgcd(ei , p) = 1. Puis elle calcule βi = a ∼
= αei (mod p) =
17 (mod 113) ∼
41
= 89 (mod 47) et bk ∼= βmi ∗ mk (mod p) = 94 ∗ mk (mod 113) ∼
e 41
= 3220 ∗
mk (mod 113). Le produit 5 ∗ mk (mod 113) est calculé pour chaque bloc de 2 chiffres du
message donnant
b1 ∼= 5 ∗ 19 (mod 113) ∼ = 95,
b2 = 5 ∗ 0 (mod 113) ∼
∼ = 00,
b3 ∼
= 5 ∗ 8 (mod 113) ∼
= 40,
b4 = 5 ∗ 12 (mod 113) ∼
∼ = 60,
b5 ∼ ∼
= 5 ∗ 4 (mod 113) = 20,
ou le message chiffré 95 00 40 60 20 et le message chiffré qui est envoyé au destinataire (à
Maissa) prend la forme
(a, b1 ), (a, b2 ), (a, b2 ), (a, b3 ), (a, b4 ), (a, b5 ), (a, b6 )
ou
(89, 95), (89, 00), (89, 40), (89, 60), (89, 20).
2. Décryptage : Sachant que a = βi ∼ = αei (mod p) ∼ = 89 (mod 113), à l’arrivée du message
crypté, Maissa n’a aucune connaissance de la valeur de ei (la clef privée de Imane), mais
elle connait a = βi (inclue dans le message), alors elle calcule
ap−1−em (mod p) ∼
= (αei )
p−1−em
(mod p)

= 89 113−1−31
(mod 113) ∼
= 8981 (mod 113)

= 68 (mod 113).

35
∼ (β ei ∗ mk ) (mod p) ∼
Puisque bk =
e
= ((αem ) i ∗ mk ) (mod p) et selon le théorème de Fermat
m
αp−1
(mod p) ∼
= 1 avec pgcd(α, p) = 1, alors

bk ∗ ap−1−em (mod p) ∼ ei p−1−em


= βm ∗ mk ∗ (αei ) (mod p)

= (α em ei
) ∗ mk ∗ (α ) ei p−1−em
(mod p)

= mk ∗ α em ei
∗α −ei em
∗α p−1
(mod p)

= mk (mod p).

C’est à dire, mk ∼
= bk ∗ ap−1−em (mod p), pour 1 ≤ k ≤ 6, alors on a


m1 ∼
= (68 ∗ 95) (mod 113) ∼
= 19,
m2 ∼
= ∼
(68 ∗ 0) (mod 113) = 00,
m3 ∼
= (68 ∗ 40) (mod 113) ∼
= 08,
m4 ∼
= (68 ∗ 60) (mod 113) ∼
= 12,
m5 ∼
= (68 ∗ 20) (mod 113) ∼
= 04,

ou 19 00 08 12 04 qui correspond au texte clair TAIME.

Exercice 0.37 Montrer que la suite des entiers positifs a1 , a2 , . . . , an est super-croissante, où
ai = 2i−1 et 1 ≤ i ≤ n.
Solution :
Remarquer que pour un nombre α différent de zéro, on peut avoir
j
X
Sj = 1 + α + · · · + αj−1 + αj = αi
i=0
j+1
X
αSj = α + α2 + · · · + αj + αj+1 = αi .
i=1
j
X j
X
= αi + αj+1 = αi − 1 + αj+1
i=1 i=0

la soustraction de la deuxième expression de la première donne

Sj − αSj = (1 − α)Sj = 1 − αj+1 ,

ou
j  1−αj+1
X α 6= 1,
Sj = αi = 1−α
i=0
j+1 α = 1.
Pour qu’une suite soit super-croissante, il faut que

a2 > a1
a3 > a1 + a2
a4 > a1 + a2 + a3
.. ..
. .
an > a1 + a2 + · · · + an−1 .

36
En général,
j−1
X
aj > ai .
i=1
Si on remplace dans la partie droite de cette inégalité ai par 2i−1 et on fait un changement de
variable k = i − 1, on obtient
j−1 j−1 j−2
X X X 1 − 2j−1
ai = 2i−1 = 2k = = 2j−1 − 1.
i=1 i=1
1−2
k=0
Pj−1
Puisque 2 j−1
− 1 < 2 − 1 < 2 , d’où 2 >
j j j
i=1 2i−1 , pour 2 ≤ j ≤ n, et alors la suite est
super-croissante.
Exercice 0.38 Montrer que la suite des entiers positifs a1 , a2 , . . . , an est super-croissante, où
ai+1 > 2ai et 1 ≤ i ≤ n − 1.
Solution :
Supposons qu’on a la suite a1 , a2 , . . . , an et ai+1 > 2ai avec 1 ≤ i ≤ n − 1. Maintenant, si on
prend les sommes des termes des deux côtés de l’inégalité, on obtient
j
X j
X j
X j
X
ai+1 > 2ai = 2 ai = 2 ai + 2a1 .
i=1 i=1 i=1 i=2

Prenons k = i + 1, alors on a
j
X j+1
X j
X
ai+1 = ak = a2 + a3 + · · · + aj + aj+1 = ai + aj+1 .
i=1 k=2 i=2

Ainsi, on trouve que


j
X j
X
ai + aj+1 > 2 ai + 2a1 .
i=2 i=2
Cette dernière expression donne
j
X j
X
aj+1 > ai + 2a1 = ai + a1
i=2 i=1
j
X
aj+1 > ai .
i=1

D’où la suite a1 , a2 , . . . , an est super-croissante.


Exercice 0.39 Montrer que la suite des entiers positifs a1 , a2 , . . . , an est super-croissante, où
ai = 2i−1 a1 où a1 6= 0 et 1 ≤ i ≤ n.
Solution :
Puisque ai = 2i−1 a1 où a1 6= 0 et 1 ≤ i ≤ n, alors
j−1
X j−1
X j−1
X
ai = 2i−1 a1 = a1 2i−1
i=1 i=1 i=1
j−2
X 1 − 2j−1
= a1 2 k = a1
1−2
k=0
a1 2j−1 − 1 < a1 2j−1 = aj .

=

37
Pj−1
Ainsi, aj > i=1 ai pour 2 ≤ j ≤ n, la suite est super-croissante.

Exercice 0.40 Montrer que la suite des entiers positifs a1 , a2 , . . . , an est super-croissante, où
aj+1 > 2j−1 aj et 1 ≤ j ≤ n.
Solution :
Puisque aj+1 > 2j−1 aj et 1 ≤ j ≤ n, alors

a2 > a1
a3 > 2a2 > a2 + a1
a4 > 4a3 = 3a3 + a3 > 3a3 + a2 + a1
> 2a3 + (a3 + a2 + a1 ) > a3 + a2 + a1
a5 > 8a4 = 7a4 + a4 > 7a4 + a3 + a2 + a1
> 6a4 + (a4 + a3 + a2 + a1 ) > a4 + a3 + a2 + a1
a6 > 16a5 = 15a5 + a5 > 15a5 + a4 + a3 + a2 + a1
> 14a5 + (a5 + a4 + a3 + a2 + a1 ) > a5 + a4 + a3 + a2 + a1 .

Ainsi,
j
X j
X
aj+1 > 2j−1 − 2 aj +

ai > ai .
i=1 i=1
Pj−1
Supposons maintenant que aj+1 > 2j−1 aj et aj > i=1 ai , alors

aj+1 > 2j−1 aj


j−1
X j−1
X
> 2j−1 aj − aj + ai = 2j−1 aj − aj − aj + ai + aj
i=1 i=1
j
X
2j−1 − 2 aj +

> ai
i=1
j
X
> ai ,
i=1

et la suite a1 , a2 , . . . , an est super-croissante.

Exercice 0.41 Amel et Ryan voudraient s’échanger un message secret utilisant le chiffrement
RSA avec les clefs (31, 3599) et (23, 3599) respectivement. Trouver le texte chiffré signé envoyé
par Ryan, si le texte clair est CHANCE.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − 1)√et n = 3599.
√ Selon Selon la méthode de factorisation
de Fermat : n = 3599 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 3599⌉ = ⌈59.99⌉ = 60, alors y 2 = x2 − n =
602 − 3599 = 3600 − 3599 = 1 et n = (60 + 1)(60 − 1) = 61 ∗ 59. D’où ϕ(n) = ϕ(pq) =
(61 − 1)(59 − 1) = 60 ∗ 58 = 3480
Noter que e1 d1 ∼= 1 (mod ϕ(n)) ou 31d1 ∼ = 1 (mod 3480). Utilisant l’algorithme d’Euclide, on
obtient

3480 = 112 ∗ 31 + 8
31 = 3 ∗ 8 + 7
8 = 1∗7+1

38
et de l’algorithme d’Euclide étendu, on a

1 = 8−1∗7
= 8 − 1 ∗ (31 − 3 ∗ 8) = 4 ∗ 8 − 1 ∗ 31
= 4 ∗ (3480 − 112 ∗ 31) − 1 ∗ 31 = 4 ∗ 3480 − 449 ∗ 31.

D’où d1 ∼
= −449 (mod 3480) ∼
= (3480 − 449) (mod 3480) ∼
= 3031 (mod 3480).
= 1 (mod ϕ(n)) ou 23d2 ∼
De la même manière, on a e2 d2 ∼ = 1 (mod 3480). Utilisant l’algorithme
d’Euclide, on obtient

3480 = 151 ∗ 23 + 7
23 = 3 ∗ 7 + 2
7 = 3∗2+1

et de l’algorithme d’Euclide étendu, on a

1 = 7−3∗2
= 7 − 3 ∗ (23 − 3 ∗ 7) = 10 ∗ 7 − 3 ∗ 23
= 10 ∗ (3480 − 151 ∗ 23) − 3 ∗ 23 = 10 ∗ 3480 − 1513 ∗ 23.

D’où d2 =∼ −1513 (mod 3480) ∼ = (3480−1513) (mod 3480) ∼ = 1967 (mod 3480). On veut déterminer
le message chiffré et signé envoyé par Ryan si le message du texte clair est CHANCE. Puisque
le texte clair CHANCE peut être converti et groupé en blocs de longueur 4 chacun comme suit
0207, 0013, 0204 et Ryan a ses deux clef (e2 , d2 ) = (23, 1967) et connait la clef publique d’Amel
e1 = 31. Utilisant le schéma de codage suivant :

Y = D2 (m) ∼= md2 (mod n)


s = E1 (Y ) = E1 (D2 (m)) ∼
= me1 d2 (mod n).

Ryan peut alors calculer e1 d2 (mod ϕ(n)) = (31 ∗ 1967) (mod 3480) = 1817. D’où les blocs du
message chiffré et signé s envoyé par Ryan est

s1 ∼
= 2071817 (mod 3599) ∼= 1395
s2 ∼
= 13 1817 ∼
(mod 3599) = 0962
s3 ∼
= 2041817 (mod 3599) ∼= 1554

Les blocs de s sont 1395, 0962, 1554.

Exercice 0.42 Montrer que la suite des entiers positifs a1 , a2 , . . . , an est super-croissante, où
ai = 2i−1 a1 où a1 6= 0 et 1 ≤ i ≤ n. Vérifier par un exemple en prenant n = 5 et a1 = 5.
Solution :
Remarquer que pour un nombre α différent de zéro, on peut avoir

Sj = 1 + α + · · · + αj−1 + αj
αSj = α + α2 + · · · + αj + αj+1 .

la soustraction de la deuxième expression de la première donne

Sj − αSj = (1 − α)Sj = 1 − αj+1 ,

39
A0 B1 C2 D3 E4 F5 G6
H7 I8 J9 K 10 L 11 M 12 N 13
O 14 P 15 Q 16 R 17 S 18 T 19 U 20
V 21 W 22 X 23 Y 24 Z 25

Table 10 – Les lettres du texte clair

H7 K 10 N 13 Q 16 T 19 W 22 Z 25
C2 F5 I8 L 11 O 14 R 17 U 20
X 23 A0 D3 G6 J9 M 12 P 15
S 18 V 21 Y 24 B1 E4

Table 11 – Les lettres de texte chiffré par ci = (3mi + 7) (mod 26).

ou
j
1−αj+1

X α 6= 1,
Sj = αi = 1−α
i=0
j+1 α = 1.

Puisque ai = 2 i−1
a1 où a1 6= 0 et 1 ≤ i ≤ n, et α = 2, alors
j−1
X j−1
X j−1
X
ai = 2i−1 a1 = a1 2i−1
i=1 i=1 i=1
j−2
X 1 − 2j−1
= a1 2 k = a1
1−2
k=0
a1 2j−1 − 1 < a1 2j−1 = aj .

=
Pj−1
Ainsi, aj > i=1 ai pour 2 ≤ j ≤ n, la suite est super-croissante.
Prenons pour l’instant, n = 5 et a1 = 5, alors la suite (a1 , a2 , a3 , a4 , a5 ) = (5, 10, 20, 40, 80)
vérifie les inégalités a2 = 10 > a1 = 5, a3 = 20 > a1 + a2 = 5 + 10 = 15, a4 = 40 > a1 + a2 + a3 =
5 + 10 + 20 = 35, a5 = 80 > a1 + a2 + a3 + a4 = 5 + 10 + 20 + 40 = 75, est donc super-croissante.

Exercice 0.43 Crypter le message A THING OF BEAUTY IS A JOY FOR EVER utilisant le
chiffrement affine ci = (3mi + 7) (mod 26).
Solution :
Puisque tout le travail a été fait dans les tables 10 et 11, on groupe les lettres du texte clair en
blocs de longueur 5, pour avoir ATHIN GOFBE AUTYI SAJOY FOREV ER. Puis on remplace
chaque lettre appartenant à la table ?? par la lettre chiffrée correspondante occupant la même
position dans la table ??.
Le message chiffré résultant est HMCFU ZXWKT HPMBF JHIXB WXGTS TG

Exercice 0.44 Décrypter le message QFLHCBZXLEDB utilisant le chiffrement affine ci ∼ =


(5mi + 11) (mod 26).
Solution :
Pour décrypter le message QFLHCBZXLEDB utilisant le chiffrement affine ci ∼ = (5mi +11) (mod 26),
on doit calculer mi ∼= 5−1 (ci − 11) (mod 26), qui a besoin de 5−1 (mod 26), pour cela, on utilise
l’algorithme d’Euclide : 26 = 5∗5+1 ou 1 = 1∗26−5∗5, mais −5 (mod 26) ∼ = (26−5) (mod 26) ∼ =
∼ ∼
21 (mod 26). D’où, mi = 5 (ci −11) (mod 26) = 21(ci −11) (mod 26), selon la table 12, le message
−1

40
A0 B1 C2 D3 E4 F5 G6
H7 I8 J9 K 10 L 11 M 12 N 13
O 14 P 15 Q 16 R 17 S 18 T 19 U 20
V 21 W 22 X 23 Y 24 Z 25

Table 12 – Les lettres du texte clair

chiffré QFLHCBZXLEDB est converti en nombres ordinaux 16, 5, 11, 7, 2, 1, 25, 23, 11, 4, 3, 1,
puis on applique l’algorithme de décryptage mi ∼
= 21(ci − 11) (mod 26), comme suit :

m1 ∼
= 21 ∗ (16 − 11) mod 26 ∼
= 105 mod 26 ∼
=1
m2 ∼ = 21(−6) mod 26 ∼
= 21 ∗ (5 − 11) mod 26 ∼ = 21 ∗ 20 mod 26 ∼
= 21(26 − 6) mod 26 ∼ =4
∼ ∼ ∼
m3 = 21 ∗ (11 − 11) mod 26 = 21(0) mod 26 = 0
m4 ∼ = 21(−4) mod 26 ∼
= 21 ∗ (7 − 11) mod 26 ∼ = 21 ∗ 22 mod 26 ∼
= 21(26 − 4) mod 26 ∼ = 20
m5 ∼
= 21 ∗ (2 − 11) mod 26 ∼
= 21(−9) mod 26 ∼
= 21(26 − 9) mod 26 ∼
= 21 ∗ 17 mod 26 ∼
= 19
m6 ∼ = 21(−10) mod 26 ∼
= 21 ∗ (1 − 11) mod 26 ∼ = 21 ∗ 16 mod 26 ∼
= 21(26 − 10) mod 26 ∼ = 24
∼ ∼ ∼
m7 = 21 ∗ (25 − 11) mod 26 = 21 ∗ 14 mod 26 = 8
m8 ∼
= 21 ∗ (23 − 11) mod 26 ∼
= 21 ∗ 12 mod 26 ∼
= 18
m9 = 21(0) mod 26 ∼
= 21 ∗ (11 − 11) mod 26 ∼
∼ =0
m10 ∼
= 21 ∗ (4 − 11) mod 26 = 21(−7) mod 26 ∼
∼ = 21(26 − 7) mod 26 ∼= 21 ∗ 19 mod 26 ∼
=9
m11 ∼ ∼ ∼ ∼ ∼
= 21 ∗ (3 − 11) mod 26 = 21(−8) mod 26 = 21(26 − 8) mod 26 = 21 ∗ 18 mod 26 = 14
m12 ∼
= 21 ∗ (1 − 11) mod 26 ∼
= 21(−10) mod 26 ∼= 21(26 − 10) mod 26 ∼
= 21 ∗ 16 mod 26 ∼
= 24

Noter que

21 ∗ (−11) mod 26 ∼
= 21 ∗ (26 − 11) mod 26 ∼= 21 ∗ 15 mod 26
∼ ∼
= 315 mod 26 = 3, ou

= −231 mod 26 ∼ = (9 ∗ 26 − 231) mod 26
= (234 − 231) mod 26 ∼
∼ = 3.

Alors mi = (21 ∗ ci + 3) mod 26 et par exemple m1 ∼


= (21 ∗ 16 + 3) mod 26 ∼
= 339 mod 26 ∼
= 1. Le
message clair est BEAUTYISAJOY ou BEAUTY IS A JOY.

Exercice 0.45 Supposons que Meriam et Salim s’échangent des messages secrets utilisant le
crypto-système d’ElGamal et que le texte chiffré suivant

(26, 0), (26, 40), (26, 11), (26, 32), (26, 11), (26, 29)

a été reçu par Salim dont la clef publique est (p, α, βs ) = (47, 5, 10) et la clef privée est es = 19.
Obtenir le message en texte clair, c’est à dire, décrypter le message chiffré.
Solution :
Pour plus d’éclaircissement, on étudie d’abord le cryptage suivi du décryptage. Puisque Salim uti-
lise le crypto-système d’ElGamal avec une clef publique (p, α, βs ) = (47, 5, 10) et une clef privée
es = 19, où 2 ≤ es ≤ p − 2 et pgcd(es , p) = 1. Salim calcule βs ∼ = αes mod p = 519 (mod 47) ∼ = 10.
Noter que α = 5 est une racine primitive ou un générateur du groupe Z47 .

41
1. Cryptage : Meriam voudrait envoyer le message AMITIE à Salim. Premièrement, elle le
convertit en chaîne de chiffres 00 12 08 19 08 04, et sélectionne sa clef privée em . Pour faci-
liter la compréhension, prenons plusieurs valeurs de em . Pour cela supposons que Meriam
a choisi :
(a) em = 23, tels que 2 ≤ em ≤ p−2 et pgcd(em , p) = 1. Puis elle calcule a ∼ = αem mod p =
∼ ∼ ∼
5 mod 47 = 46 mod 47 et bi = βs ∗ mi mod p = 10 ∗ mi mod 47 = 46 ∗ mi mod 47,
23 em 23

(ceci est vrai, car 1023 mod 47 ∼ = 46.) Pour chaque bloc de 2 chiffres du message,
Meriam calcule bi ∼= (46 ∗ mi ) mod 47 obtenant

b1 ∼
= (46 ∗ 0) (mod 47) ∼
= 0,
b2 = (46 ∗ 12) (mod 47) ∼
∼ = 35,
b3 ∼ ∼
= (46 ∗ 8) (mod 47) = 39,
b4 = (46 ∗ 13) (mod 47) ∼
∼ = 34,
b5 ∼
= (46 ∗ 8) (mod 47) ∼
= 39,
b6 = (46 ∗ 4) (mod 47) ∼
∼ = 43,

où le message chiffré 0 35 0 39 34 39 43 et le message chiffré qui est envoyé à Salim


prend la forme
(a, b1 ), (a, b2 ), (a, b3 ), (a, b4 ), (a, b5 ), (a, b6 )
ou
(46, 0), (46, 35), (46, 39), (46, 34), (46, 39), (46, 43).
(b) em = 29, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Puis Meriam calcule a ∼ =
αem mod p = 529 mod 47 ∼ = 26 mod 47 et bi ∼ = βsem ∗ mi mod p = 1029 ∗ mi mod 47 ∼=
19 ∗ mi mod 47, (ceci est vrai, car 1029 mod 47 ∼= 19.) Pour chaque bloc de 2 chiffres
du message, elle calcule bi ∼
= (19 ∗ mi ) mod 47 obtenant

b1 ∼
= (19 ∗ 0) mod 47 ∼
= 0,
b2 ∼
= ∼ 40,
(19 ∗ 12) mod 47 =
b3 ∼
= ∼
(19 ∗ 8) mod 47 = 11,
b4 ∼
= (19 ∗ 13) mod 47 ∼
= 32,
b5 ∼
= (19 ∗ 8) mod 47 ∼
= 11,
b6 ∼
= (19 ∗ 4) mod 47 ∼
= 29,

où le message chiffré 0 40 0 11 32 11 29 et le message chiffré qui est envoyé au destina-


taire (à Salim) prend la forme

(a, b1 ), (a, b2 ), (a, b3 ), (a, b4 ), (a, b5 ), (a, b6 )

ou
(26, 0), (26, 40), (26, 11), (26, 32), (26, 11), (26, 29).
(c) em = 31, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Meriam calcule a ∼
= αem mod p =
∼ ∼ ∼
5 mod 47 = 39 mod 47 et bi = βs ∗ mi mod p = 10 ∗ mi mod 47 = 20 ∗ mi mod 47,
31 em 31

(ceci est vrai, car 1023 mod 47 ∼


= 20.) Pour chaque bloc de 2 chiffres du message, elle

42
doit calcule bi ∼
= (46 ∗ mi ) mod 47 obtenant

b1 ∼
= (20 ∗ 0) mod 47 ∼
= 0,
b2 ∼
= (20 ∗ 12) mod 47 ∼
= 5,
b3 ∼
= ∼ 19,
(20 ∗ 8) mod 47 =
b4 ∼
= (20 ∗ 13) mod 47 ∼
= 25,
b5 ∼
= ∼
(20 ∗ 8) mod 47 = 19,
b6 ∼
= (20 ∗ 4) mod 47 ∼
= 33.

Le message chiffré envoyé au destinataire est

(39, 0), (39, 5), (39, 19), (39, 25), (46, 19), (39, 33).

(d) em = 37, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Meriam calcule a ∼


= αem mod p =
5 mod 47 ∼
37
= 20 mod 47 et bi ∼= βs m ∗ mi mod p = 10 ∗ mi mod 47 ∼
e 37
= 43 ∗ mi mod 47,
(ceci est vrai, car 1037 mod 47 ∼
= 43.) Pour chaque bloc de 2 chiffres du message, elle
calcule bi ∼
= (43 ∗ mi ) mod 47 obtenant

b1 ∼
= (43 ∗ 0) mod 47 ∼
= 0,
b2 ∼
= (43 ∗ 12) mod 47 ∼
= 46,
b3 ∼
= (43 ∗ 8) mod 47 ∼
= 15,
b4 ∼
= (43 ∗ 13) mod 47 ∼
= 42,
b5 ∼
= (43 ∗ 8) mod 47 ∼
= 15,
b6 ∼
= (43 ∗ 4) mod 47 ∼
= 35.

Le message chiffré envoyé au destinataire est

(20, 0), (20, 46), (20, 15), (20, 42), (20, 15), (20, 35).

(e) em = 41, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Meriam calcule a = ∼ αem mod p =


5 mod 47 ∼
41
= 45 mod 47 et bi ∼
= βs m ∗ mi mod p = 10 ∗ mi mod 47 ∼
e 41
= 44 ∗ mi mod 47.
Pour chaque bloc de 2 chiffres du message, elle calcule bi ∼
= (44 ∗ mi ) mod 47 obtenant

b1 ∼
= (44 ∗ 0) mod 47 ∼
= 0,
b2 ∼
= (44 ∗ 12) mod 47 ∼
= 11,
b3 ∼
= ∼ 23,
(44 ∗ 8) mod 47 =
b4 ∼
= (44 ∗ 13) mod 47 ∼
= 8,
b5 ∼
= (44 ∗ 8) mod 47 ∼
= 23,
b6 ∼
= (44 ∗ 4) mod 47 ∼
= 35.

Le message chiffré envoyé à Salim est

(45, 0), (45, 11), (45, 23), (45, 8), (45, 23), (45, 35).

(f) em = 43, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Meriam calcule a ∼


= αem mod p =
5 mod 47 ∼
41
= βs m ∗ mi mod p = 10 ∗ mi mod 47 ∼
= 44 mod 47 et bi ∼ e 43
= 29 ∗ mi mod 47.

43
Pour chaque bloc de 2 chiffres du message, elle calcule bi ∼
= (29 ∗ mi ) mod 47 obtenant

b1 ∼
= (29 ∗ 0) mod 47 ∼
= 0,
b2 ∼
= (29 ∗ 12) mod 47 ∼
= 19,
b3 ∼
= (29 ∗ 8) mod 47 ∼
= 44,
b4 ∼
= (29 ∗ 13) mod 47 ∼
= 1,
b5 ∼
= ∼ 44,
(29 ∗ 8) mod 47 =
b6 ∼
= (29 ∗ 4) mod 47 ∼
= 22.

Le message chiffré envoyé à Salim est

(44, 0), (44, 19), (44, 44), (44, 1), (44, 44), (44, 22).

Il est évident que Meriam a choisi em = 29 comme clef privée pour envoyer le message.
2. Décryptage : Sachant que a ∼ = αem mod p ∼ = 26 mod 47, à l’arrivée du message crypté,
Salim n’a aucune connaissance de la valeur de em (la clef privée de Meriam), mais il
connait a (inclue dans le message), alors il calcule

ap−1−es (mod p) ∼
= (αem )
p−1−es
mod p

= 26 47−1−19
mod 47 ∼
= 2627 mod 47

= 5 mod 47.

= (βsem ∗ mi ) mod p ∼
Noter que 2 ≤ es ≤ p − 2, alors 1 ≤ p − 1 − es ≤ p − 3. Puisque bi ∼ =
es em
((α ) ∗ mi ) mod p et selon le théorème de Fermat α p−1 ∼
mod p = 1 avec pgcd(α, p) = 1,
alors

bi ∗ ap−1−es mod p ∼
= βsem ∗ mi ∗ (αem )
p−1−es
mod p

= es em
(α ) ∗ mi ∗ (α ) em p−1−es
mod p

= mi ∗ αes em ∗ α−em es ∗ αp−1 mod p

= mi mod p.
∼ bi ∗ ap−1−es mod p, pour 1 ≤ i ≤ 6.
C’est à dire, mi =


Une autre alternative est de calculer mi ∼


= (bi ∗ a−es ) mod p, pour 1 ≤ i ≤ 6, pour
 cela,
il faut déterminer (a ) mod p, qui fait partie de l’expression mi ∼
−1
= bi ∗ (a−1 )es mod p.
Dans notre cas, on a 26−1 mod 47, pour trouver l’inverse, on fait recours à l’algorithme
d’Euclide :

47 = 1 ∗ 26 + 21
26 = 1 ∗ 21 + 5
21 = 4 ∗ 5 + 1.

et sa version étendue :

1 = 21 − 4 ∗ 5
= 21 − 4 ∗ (26 − 1 ∗ 21)
= 5 ∗ 21 − 4 ∗ 26
= 5 ∗ (47 − 1 ∗ 26) − 4 ∗ 26
= 5 ∗ 47 − 9 ∗ 26.

44
Alors, −9 ∼ ∼ (47−9) mod 47 ∼
= mod 47 = = 38 mod 47. D’où 26−1 mod 47 ∼
= 38 mod 47. D’où,
38 mod 47 ∼
19
= 5 mod 47, et mi ∼
= (bi ∗ 5) mod 47. On a

m1 ∼
= (0 ∗ 5) mod 47 ∼
= 0,
m2 ∼
= (40 ∗ 5) mod 47 ∼
= 12,
m3 ∼
= (11 ∗ 5) mod 47 ∼
= 8,
m4 ∼
= (32 ∗ 5) mod 47 ∼
= 19,
m5 ∼
= (11 ∗ 5) mod 47 ∼
= 8,
m6 ∼
= (29 ∗ 5) mod 47 ∼
= 4,

ou 00 12 08 19 08 04 qui correspond au texte clair AMITIE.

Exercice 0.46 Supposons que le texte 98, 130, 123, 82, 95, 82, 85, 3, 82, 98 chiffré par le crypto-
système Knapsack a été généré avec le modulo p = 107, le multiplicateur w = 31 et la suite de
chiffrement 48, 3, 82, 57, 38. Décrypter ce message.

Exercice 0.47 Supposons que le texte 145, 23, 50, 75, 127, 145, 23, 129, 50 chiffré par le crypto-
système Knapsack a été généré avec le modulo p = 97, le multiplicateur w = 31 et la suite de
chiffrement 93, 23, 50, 34, 2. Décrypter ce message.

Exercice 0.48 Assia et Rafik voudraient s’échanger un message secret utilisant le chiffrement
RSA avec les clefs (ea , n) = (17, 2537) et (er , n) = (13, 2537) respectivement. Trouver le texte
chiffré signé envoyé par Assia, si le texte clair est DESTIN.
Solution :
Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − 1) et n = 2537, et selon √ la méthode
√ de factorisation de
Fermat : n = 2537 = x2 − y 2 = (x + y)(x − y) = pq, où x = ⌈ n⌉ = ⌈ 2537⌉ = ⌈50.37⌉ = 51,
alors y 2 = x2 − n = 512 − 2537 = 2601 − 2537 = 64, d’où y = 8 et n = (51 + 8)(51 − 8) = 59 ∗ 43.
Ainsi, ϕ(n) = ϕ(pq) = (59 − 1)(43 − 1) = 58 ∗ 42 = 2436
Noter que ea da ∼= 1 mod ϕ(n) ou 17da ∼ = 1 mod 2436. Utilisant l’algorithme d’Euclide, on obtient

2436 = 143 ∗ 17 + 5
17 = 3 ∗ 5 + 2
5 = 2∗2+1

et de l’algorithme d’Euclide étendu, on a

1 = 5−2∗2
= 5 − 2 ∗ (17 − 3 ∗ 5) = 7 ∗ 5 − 2 ∗ 17
= 7 ∗ (2436 − 143 ∗ 17) − 2 ∗ 17 = 7 ∗ 2436 − 1003 ∗ 17.

D’où da ∼
= −1003 mod 2436 ∼
= (2436 − 1003) mod 2436 ∼
= 1433 mod 3480.
= 1 mod ϕ(n) ou 13dr ∼
De la même manière, on a er dr ∼ = 1 mod 2436. Utilisant l’algorithme
d’Euclide, on obtient

2436 = 187 ∗ 13 + 5
13 = 2 ∗ 5 + 3
5 = 1∗3+2
3 = 1∗2+1

45
et de l’algorithme d’Euclide étendu, on a

1 = 3−1∗2
= 3 − 1 ∗ (5 − 1 ∗ 3) = 2 ∗ 3 − 1 ∗ 5
= 2 ∗ (13 − 2 ∗ 5) − 1 ∗ 5 = 2 ∗ 13 − 5 ∗ 5
= 2 ∗ 13 − 5 ∗ (2436 − 187 ∗ 13) = 937 ∗ 13 − 5 ∗ 2436.

D’où dr ∼ = 937 mod 2436. On veut déterminer le message chiffré et signé envoyé par Assia si le
message du texte clair est DESTIN. Puisque le texte clair peut être converti et groupé en blocs de
longueur 4 chacun comme suit 0304, 1819, 0813 et Assia a ses deux clefs (ea , da ) = (17, 1433)
publique et privée et connait la clef publique de Rafik er = 13. Utilisant le schéma de codage
suivant :

X = Da (m) ∼= mda (mod n)


s = Er (Y ) = Er (Da (m)) ∼
= mer da (mod ϕ(n)) (mod n).

Assia peut alors calculer er da (mod ϕ(n)) = (13 ∗ 1433) (mod 2436) = 1577. D’où les blocs du
message chiffré et signé s envoyé par Assia sont

s1 ∼
= 3041577 mod 2537 ∼= 1195
s2 ∼
= 18191577 mod 2537 =∼ 2405
s3 ∼
= 813 1577 ∼
mod 2577 = 1833

Les blocs s du message chiffré signé envoyé par Assia sont 1195, 2405, 1833.

Exercice 0.49 Décrypter le texte chiffré "YXJQPWNRQMP" crée par le chiffrement affine c =
(7m + 13) mod 26.
Solution :
= (7m + 13) mod 26, m ∼
Puisque c ∼ = 7−1 (c − 13) mod 26, alors

26 = 3 ∗ 7 + 5
7 = 1∗5+2
5 = 2 ∗ 2 + 1.

et

1 = 5−2∗2
= 5 − 2 ∗ (7 − 1 ∗ 5) = 3 ∗ 5 − 2 ∗ 7
= 3 ∗ (26 − 3 ∗ 7) − 2 ∗ 7 = 3 ∗ 26 − 11 ∗ 7

Mais, −11 mod 26 ∼ = (26 − 11) mod 26 ∼= 15. D’où, m ∼ = 15 ∗ (c − 13) mod 26. Puisque tout le
travail est fait dans les tables 13 et 14, on groupe les lettres du texte chiffré en blocs de longueur
5, pour avoir YXJQP WNRQM P. Puis on remplace chaque lettre appartenant à la table ?? par
la lettre chiffrée correspondante occupant la même position dans la table ??.
Une autre alternative, on peut faire le calcul suivant, puisque le message YXJQPWNRQMP

46
A0 B1 C2 D3 E4 F5 G6
H7 I8 J9 K 10 L 11 M 12 N 13
O 14 P 15 Q 16 R 17 S 18 T 19 U 20
V 21 W 22 X 23 Y 24 Z 25

Table 13 – Les lettres du texte clair

N 13 U 20 B1 I8 P 15 W 22 D3
K 10 R 17 Y 24 F5 M 12 T 19 A0
H7 O 14 V 21 C2 J9 Q 16 X 23
E4 L 11 S 18 Z 25 G6

Table 14 – Les lettres de texte chiffré par ci = (7mi + 13) mod 26.

correspond à 24 23 9 16 15 22 13 17 16 12 15, alors

m1 = 15 ∗ (24 − 13) mod 26 ∼


∼ = 15 ∗ 11 mod 26 = 9,
m2 ∼
= 15 ∗ (23 − 13) mod 26 ∼
= 15 ∗ 10 mod 26 = 20,
m3 = 15 ∗ (−4) mod 26 ∼
= 15 ∗ (9 − 13) mod 26 =∼
∼ = 15 ∗ 22 mod 26 = 18,
m4 ∼
= 15 ∗ (16 − 13) mod 26 ∼
= 15 ∗ 3 mod 26 = 19,
m5 ∼
= 15 ∗ (15 − 13) mod 26 ∼
= 15 ∗ 2 mod 26 = 4.
m6 ∼
= ∼
15 ∗ (22 − 13) mod 26 = 15 ∗ 9 mod 26 = 5,
m7 ∼
= 15 ∗ (13 − 13) mod 26 ∼
= 15 ∗ 0 mod 26 = 0,
m8 ∼
= 15 ∗ (17 − 13) mod 26 ∼
= 15 ∗ 4 mod 26 = 8,
m9 ∼
= ∼
15 ∗ (16 − 13) mod 26 = 15 ∗ 3 mod 26 = 19,
m10 = 15 ∗ (−1) mod 26) ∼
= 15 ∗ (12 − 13) mod 26 ∼
∼ = 15 ∗ 25 (mod 26) = 11,
m11 ∼ ∼
= 15 ∗ (15 − 13) (mod 26) = 15 ∗ 2 (mod 26 = 4.

Le message décrypté est 9 20 18 19 4 5 0 8 19 11 4 correspondant au texte clair "JUSTE FAIT


LE".

Exercice 0.50 Supposons qu’Amel est une utilisatrice du crypto-système de Havresac et a comme
clef secrète la suite super-croissante 5, 7, 13, 27, 53, le modulo p = 107 et le multiplicateur
w = 43. Supposons que Nadia veut envoyer à Amel le message VIENS VITE. Quelle est la
tâche de chacune des deux personnes ?

Exercice 0.51 Supposons que le message chiffré 57 87 24 143 92 57 87 124 24 a été crée par
le chiffrement de Havresac avec le modulo p = 107, le multiplicateur w = 43 et la suite de
chiffrement 1, 87, 24, 91, 32. Décrypter ce message.
Solution :
Le message chiffré transmis est la suite des entiers positifs suivants : 57 87 24 143 92 57 87 124 24.
Pour lire le message, on doit premièrement calculer la congruence 43w−1 ≡ 1 mod 107. Pour
cela, on doit utiliser l’algorithme d’Euclide :

107 = 2 ∗ 43 + 21
43 = 2 ∗ 21 + 1.

47
et sa version étendue :

1 = 43 − 2 ∗ 21
= 43 − 2 ∗ (107 − 2 ∗ 43)
= 5 ∗ 43 − 2 ∗ 107.

Alors, w−1 ≡ 5 mod 107. Chaque nombre du texte chiffré est multiplié par 5 et réduit modulo 107.
Pour l’instant,

(57 ∗ 5) mod 107 ≡ 71


(87 ∗ 5) mod 107 ≡ 7
(24 ∗ 5) mod 107 ≡ 13
(143 ∗ 5) mod 107 ≡ 73
(92 ∗ 5) mod 107 ≡ 32
(124 ∗ 5) mod 107 ≡ 85.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 5 et réduit
modulo 107, pour avoir une suite super-croissante. Alors,

(1 ∗ 5) mod 107 ≡ 5
(87 ∗ 5) mod 107 ≡ 7
(24 ∗ 5) mod 107 ≡ 13
(91 ∗ 5) mod 107 ≡ 27
(32 ∗ 5) mod 107 ≡ 53.

Puisque les éléments de la suite obtenue satisfont la propriété que 5 < 7, 5 + 7 = 12 <
13, 5 + 7 + 13 = 25 < 27, et 5 + 7 + 13 + 27 = 52 < 53 alors la suite est super-croissante.
Ainsi, on a produit les problèmes de Havresac suivants :
Pour le premier problème de Havresac, on a 71 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où S =
71 > a5 = 53 ceci dit que x5 = 1 et 5x1 + 7x2 + 13x3 + 27x4 = 18 mais 18 < a4 = 27, donne
x4 = 0 5x1 + 7x2 + 13x3 = 18, où 18 > a3 = 3 le même argument se traduit par x3 = 1, et
5x1 + 7x2 = 5 d’où x2 = 0, et 5x1 = 5 donne x1 = 1, la solution est (1, 0, 1, 0, 1, ), c’est à dire,
5 + 0 + 13 + 0 + 53 = 71.
Pour le deuxième problème de Havresac, on a 7 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où S = 7 <
a5 = 53 produit x5 = 0 avec 5x1 + 7x2 + 13x3 + 27x4 = 7, et 7 < a4 = 27 alors x4 = 0, et
5x1 + 7x2 + 13x3 = 7 et 7 < a3 = 13 alors x3 = 0, et 5x1 + 7x2 = 7, ou x2 = 1, et 5x1 = 0 donne
x1 = 0. Ainsi, la solution est (0, 1, 0, 0, 0), c’est à dire, 0 + 7 + 0 + 0 + 0 = 7.
Pour le troisième problème de Havresac, on a 13 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où
S = 13 < a5 = 53 produit x5 = 0 avec 5x1 + 7x2 + 13x3 + 27x4 = 13, et 13 < a4 = 27
alors x4 = 0, et 5x1 + 7x2 + 13x3 = 13, 13 = a3 = 13, donne x3 = 1, et 5x1 + 7x2 = 0, d’où
x2 = x1 = 0. La solution est (0, 0, 1, 0, 0), c’est à dire, 0 + 0 + 13 + 0 + 0 = 13.
Pour le quatrième problème de Havresac, on a 73 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où
S = 73 < a5 = 53 produit x5 = 1 avec 5x1 + 7x2 + 13x3 + 27x4 = 20, et 20 < a4 = 27
alors x4 = 0, et 5x1 + 7x2 + 13x3 = 20, et 20 > a3 = 13 alors x3 = 1, et 5x1 + 7x2 = 7,
donne x2 = 1, et 5x1 = 0 se traduit en x1 = 0. Ainsi, la solution est (0, 1, 1, 0, 1), c’est à dire,
0 + 7 + 13 + 0 + 53 = 73.
Pour le cinquième problème de Havresac, on a 32 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où
S = 32 < a5 = 53 produit x5 = 0 avec 5x1 + 7x2 + 13x3 + 27x4 = 32, et 32 > a4 = 27

48
alors x4 = 1, et 5x1 + 7x2 + 13x3 = 5, et 5 < a3 = 13 donne x3 = 0, et 5x1 + 7x2 = 5, et
5 < a2 = 7 donne x2 = 0, alors 5x1 = 5 se traduit en x1 = 1. D’où la solution est (1, 0, 0, 1, 0),
c’est à dire, 5 + 0 + 0 + 27 + 0 = 32.
Pour le sixième problème de Havresac, on a 85 = 5x1 + 7x2 + 13x3 + 27x4 + 53x5 , où S = 85 >
a5 = 53 produit x5 = 1 avec 5x1 + 7x2 + 13x3 + 27x4 = 32, et 32 > a4 = 27 alors x4 = 1, et
5x1 + 7x2 + 13x3 = 5, et 5 < a3 = 13 donne x3 = 0, et 5x1 + 7x2 = 5, et 5 < a2 = 7 donne
x2 = 0, alors 5x1 = 5 se traduit en x1 = 1. D’où la solution est (1, 0, 0, 1, 1), c’est à dire,
5 + 0 + 0 + 0 + 27 + 53 = 53.
Le message déchiffré en binaire est 10101, 01000, 00100, 01101, 10010, 10101, 01000, 10011, 00100.
En groupant les nombres binaires en groupes de 5 chiffres chacun et en rembourrant le dernier
groupe avec des 1s, si c’est nécessaire, on obtient 10101, 01000, 00100, 01101, 10010, 10101, 01000, 10011, 00100.
Selon la table 15, le texte clair est VIENSVITE ou VIENS VITE.

Exercice 0.52 Supposons que Samia est une utilisatrice du crypto-système Knapsack ou de
Havresac et a comme clef secrète la suite super-croissante 1, 7, 9, 18, 37, 73, le modulo p = 149
et le multiplicateur w = 67. Supposons que Samia veut envoyer à Hana le message PLAISIR.
Quelle est la tâche de chacune des deux personnes ?
Solution :
Les deux personnes connaissent p = 149 > 2a6 = 2 × 73 = 146 et w = 67 telle que pgcd(p, w) =
pgcd(149, 67) = 1.
1. Cryptage : Pour crypter le message PLAISIR et l’envoyer à Hana, Samia doit multiplier
chaque membre de la suite super-croissante par w = 67 et le réduire modulo p = 149, c’est
à dire, effectuer l’opération bi ≡ w∗ai mod p pour produire la suite de chiffrement suivante :

(67 ∗ 1) mod 149 ≡ 67,


(67 ∗ 7) mod 149 ≡ 22,
(67 ∗ 9) mod 149 ≡ 7,
(67 ∗ 18) mod 149 ≡ 14,
(67 ∗ 37) mod 149 ≡ 95,
(67 ∗ 73) mod 149 ≡ 123.

C’est à dire, 67, 22, 7, 14, 95, 123. Cette dernière est la clef de chiffrement que Samia doit
publier dans le répertoire publique.
Samia veut envoyer le message PLAISIR, elle doit d’abord le convertir en chaîne de carac-
tères de 0’s et 1’s, utilisant la table 15. Le message converti est 01111 01011 00000 01000 10010 01000 10001.
Le message est alors divisé en blocs de chiffres, dans ce cas de longueur 6, car le nombre
d’éléments de la suite super-croissante est 6, pour avoir les blocs suivants 011110 101100 000010 001001 001000 10
Utilisant maintenant la clef publique, Samia transforme les blocs successifs en

67 ∗ 0 + 22 ∗ 1 + 7 ∗ 1 + 14 ∗ 1 + 95 ∗ 1 + 123 ∗ 0 = 138
67 ∗ 1 + 22 ∗ 0 + 7 ∗ 1 + 14 ∗ 1 + 95 ∗ 0 + 123 ∗ 0 = 88
67 ∗ 0 + 22 ∗ 0 + 7 ∗ 0 + 14 ∗ 0 + 95 ∗ 1 + 123 ∗ 0 = 95
67 ∗ 0 + 22 ∗ 0 + 7 ∗ 1 + 14 ∗ 0 + 95 ∗ 0 + 123 ∗ 1 = 130
67 ∗ 0 + 22 ∗ 0 + 7 ∗ 1 + 14 ∗ 0 + 95 ∗ 0 + 123 ∗ 0 = 7
67 ∗ 1 + 22 ∗ 0 + 7 ∗ 0 + 14 ∗ 0 + 95 ∗ 1 + 123 ∗ 1 = 285.

Le texte chiffré transmis est la suite des entiers positifs suivants : 138, 88, 95, 130, 7, 285.

49
Lettre Décimal Binaire Lettre Décimal Binaire
A 0 00000 N 13 01101
B 1 00001 O 14 01110
C 2 00010 P 15 01111
D 3 00011 Q 16 10000
E 4 00100 R 17 10001
F 5 00101 S 18 10010
G 6 00110 T 19 10011
H 7 00111 U 20 10100
I 8 01000 V 21 10101
J 9 01001 W 22 10110
K 10 01010 X 23 10111
L 11 01011 Y 24 11000
M 12 01100 Z 25 11001

Table 15 – Les lettres et leurs équivalents binaires

2. Décryptage : Pour lire le message, Hana doit premièrement calculer la congruence


67w−1 ≡ 1 mod 149. Pour ce faire, elle doit utiliser l’algorithme d’Euclide :

149 = 2 ∗ 67 + 15
67 = 4 ∗ 15 + 7
15 = 2 ∗ 7 + 1.

et sa version étendue :

1 = 15 − 2 ∗ 7
= 15 − 2 ∗ (67 − 4 ∗ 15) = 9 ∗ 15 − 2 ∗ 67,
= 9 ∗ (149 − 2 ∗ 67) − 2 ∗ 67 = 9 ∗ 149 − 20 ∗ 67.

ou encore si on prend a = 149 et b = 67, alors de l’expression 149 = 2 ∗ 67 + 15, on a


15 = a−2b et de la seconde expression 67 = 4∗15+7, on obtient 7 = b−4(a−2b) = −4a+9b
et la troisième équation 15 = 2 ∗ 7 + 1 donne 1 = (a − 2b) − 2(−4a + 9b) = 9a − 20b. D’où,
19 ∗ 149 − 20 ∗ 67 = 1. Ainsi w−1 ≡ −20 mod 97 ≡ (149 − 20) mod 149 =≡ 129. Chaque
nombre du texte chiffré est multiplié par 129 et réduit modulo 149. Pour l’instant,

(138 ∗ 129) mod 149 ≡ 71


(88 ∗ 129) mod 149 ≡ 28
(95 ∗ 129) mod 149 ≡ 37
(130 ∗ 129) mod 149 ≡ 82
(7 ∗ 129) mod 149 ≡ 9
(285 ∗ 129) mod 149 ≡ 111.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 129 et
réduit modulo 149, pour avoir une suite super-croissante. C’est à dire, ai ≡ bi ∗w−1 mod p.

50
Alors,
(67 ∗ 129) mod 149 ≡ 1
(22 ∗ 129) mod 149 ≡ 7
(7 ∗ 129) mod 149 ≡ 9
(14 ∗ 129) mod 149 ≡ 18
(95 ∗ 129) mod 149 ≡ 37
(123 ∗ 129) mod 149 ≡ 73.
Puisque les éléments de la suite obtenue satisfont la propriété que 1 < 7, 1 + 7 = 8 <
9, 1 + 7 + 9 = 17 < 18, 1 + 7 + 9 + 18 = 35 < 37, 1 + 7 + 9 + 18 + 37 = 72 < 73, alors
la suite est super-croissante. Ainsi, on a produit les problèmes de Knapsack ou Havresac
suivants :
Pour le premier problème de Havresac, on a 71 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 ,
où S = 71 < a6 = 73 ceci dit que x6 = 0 et x1 + 7x2 + 9x3 + 18x4 + 37x5 = 71 et
71 > a5 = 37, donne x5 = 1 et x1 + 7x2 + 9x3 + 18x4 = 71 − 37 = 34, avec 34 > a4 = 18
alors x4 = 1 et x1 + 7x2 + 9x3 = 34 − 18 = 16 où 16 > a3 = 9 alors x3 = 1 et
x1 + 7x2 = 16 − 9 = 7 avec 7 = a3 alors x2 = 1 et x1 = 0. La solution est (0, 1, 1, 1, 1, 0),
c’est à dire, 0 + 7 + 9 + 18 + 37 + 0 = 71.
Pour le deuxième problème de Havresac, on a 28 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 , où
S = 28 < a6 = 73 produit x6 = 0 avec x1 + 7x2 + 9x3 + 18x4 + 37x5 = 28, et 28 < a5 = 37
alors x5 = 0, et x1 + 7x2 + 9x3 + 18x4 = 28 donnant 28 > a4 = 18, donc x4 = 1 et
x1 + 7x2 + 9x3 = 28 − 18 = 10 10 < a3 = 9 alors x3 = 1, avec x1 + 7x2 = 10 − 9 = 1,
où S = 1 < a2 = 7 alors x2 = 0, et x1 = 1. La solution est (1, 0, 1, 1, 0, 0), c’est à dire,
1 + 0 + 9 + 18 + 0 + 0 = 28.
Pour le troisième problème de Havresac, on a 37 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 ,
où S = 37 < a6 = 73 produit x6 = 0 avec x1 + 7x2 + 9x3 + 18x4 + 37x5 = 37, et 37 = a5
alors x5 = 1, et x1 + 7x2 + 9x3 + 18x4 = 37 − 37 = 0, résultant en x4 = x3 = x2 = x1 = 0.
La solution est (0, 0, 0, 0, 1, 0), c’est à dire, 0 + 0 + 0 + 0 + 37 + 0 = 37.
Pour le quatrième problème de Havresac, on a 82 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 ,
où S = 82 > a6 = 73 produit x6 = 1 avec x1 + 7x2 + 9x3 + 18x4 + 37x5 = 82 − 73 = 9,
et 9 < a5 = 37 alors x5 = 0, et x1 + 7x2 + 9x3 + 18x4 = 9, et 9 < a4 = 18 alors x4 = 0,
et x1 + 7x2 + 9x3 = 9, donne x3 = 1, et x1 + 7x2 = 9 − 9 = 0 se traduit en x2 = x1 = 0.
Ainsi, la solution est (0, 0, 1, 0, 0, 1), c’est à dire, 0 + 0 + 9 + 0 + 0 + 73 = 82.
Pour le cinquième problème de Havresac, on a 9 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 , où
S = 9 < a6 = 73 produit x6 = 0 avec x1 +7x2 +9x3 +18x4 +37x5 = 9, et 9 < a5 = 37 alors
x5 = 0, et x1 + 7x2 + 9x3 + 18x4 = 9, et 9 < a4 = 18 donne x4 = 0, et x1 + 7x2 + 9x3 = 9,
et 9 = a2 donne x3 = 1, alors x1 + 7x2 = 9 − 9 = 0 se traduit en x2 = x1 = 0. D’où la
solution est (0, 0, 1, 0, 0, 0), c’est à dire, 0 + 0 + 0 + 9 + 0 + 0 = 9.
Pour le sixième problème de Havresac, on a 111 = x1 + 7x2 + 9x3 + 18x4 + 37x5 + 73x6 , où
S = 111 > a6 = 73 produit x6 = 1 avec x1 + 7x2 + 9x3 + 18x4 + 37x5 = 111 − 73 = 38, et
S = 38 > a5 = 37 alors x5 = 1, et x1 + 7x2 + 9x3 + 18x4 = 38 − 37 = 1, et S = 1 < a4 = 18
donne x4 = 0, et x1 + 7x2 + 9x3 = 1, et 1 < a3 = 9 donne x3 = 0, alors x1 + 7x2 = 1
et S = 1 < a2 = 7 donne x2 = 0, et x1 = 1. D’où la solution est (1, 0, 0, 0, 1, 1), c’est à
dire, 1 + 0 + 0 + 0 + 0 + 37 + 73 = 111.
Le message déchiffré en binaire est 011110, 101100, 000010, 001001, 001000, 100011. En
groupant les nombres binaires en groupes de 5 chiffres chacun et en rembourrant le dernier
groupe avec des 1s, si c’est nécessaire, on obtient 01111, 01011, 00000, 01000, 10010, 01000, 10001.
Selon la table 15, le texte clair est PLAISIR.

51
Exercice 0.53 Supposons que Anis est un utilisateur du crypto-système Knapsack et a comme
clef secrète la suite super-croissante 3, 7, 11, 23, le modulo p = 51 et le multiplicateur w = 19.
Supposons que Anis veut envoyer à Fouzia le message BIEN. Quelle est la tâche de chacune des
deux personnes ?
Solution :
Anis a choisi p = 51 > 2a5 = 2 × 23 = 46 et w = 19 telle que pgcd(p, w) = pgcd(51, 19) = 1.
1. Cryptage : Pour crypter le message BIEN et l’envoyer à Fouzia, Anis doit multiplier
chaque membre de la suite super-croissante par w = 19 et le réduire modulo p = 51, c’est à
dire, effectuer l’opération bi ≡ w ∗ ai mod p pour produire la suite de chiffrement suivante :

(19 ∗ 3) mod 51 ≡ 6,
(19 ∗ 7) mod 51 ≡ 31,
(19 ∗ 11) mod 51 ≡ 5,
(19 ∗ 23) mod 51 ≡ 29.

C’est à dire, la suite 6, 31, 5, 29 est la clef publique de chiffrement d’Anis.


Anis veut envoyer le message BIEN, il doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 15. Le message converti est 00001 01000 00100 01101. Le
message est alors divisé en blocs de chiffres, dans ce cas de longueur 4, car le nombre d’élé-
ments de la suite super-croissante est 4, pour avoir les blocs suivants 0000 1010 0000 1000 1101.
Utilisant maintenant la clef publique et les derniers blocs résultants, Anis transforme les
blocs successifs en

6 ∗ 0 + 31 ∗ 0 + 5 ∗ 0 + 29 ∗ 0 = 0
6 ∗ 1 + 31 ∗ 0 + 5 ∗ 1 + 29 ∗ 0 = 11
6 ∗ 0 + 31 ∗ 0 + 5 ∗ 0 + 29 ∗ 0 = 0
6 ∗ 1 + 31 ∗ 0 + 5 ∗ 0 + 29 ∗ 0 = 6
6 ∗ 1 + 31 ∗ 1 + 5 ∗ 0 + 29 ∗ 1 = 66.

Le message chiffré transmis est la suite des entiers positifs suivants : 0, 11, 0, 6, 66.

2. Décryptage : Pour lire le message, Fouzia doit premièrement calculer la congruence


19w−1 ≡ 1 mod 51. Pour ce faire, elle doit utiliser l’algorithme d’Euclide :

51 = 2 ∗ 19 + 13
19 = 1 ∗ 13 + 6
13 = 2 ∗ 6 + 1.

et sa version étendue :

1 = 13 − 2 ∗ 6
= 13 − 2 ∗ (19 − 1 ∗ 13) = 3 ∗ 13 − 2 ∗ 19,
= 3 ∗ (51 − 2 ∗ 19) − 2 ∗ 19 = 3 ∗ 51 − 8 ∗ 19.

Une autre méthode : si on prend a = 51 et b = 19, alors de l’expression 51 = 2 ∗ 19 + 13,


on a a = 2b + 13 qui donne 13 = a − 2b et de la seconde expression 19 = 1 ∗ 13 + 6,
on obtient b = a − 2b + 6 donnant 6 = b − (a − 2b) = −a + 3b et la troisième équation
13 = 2 ∗ 6 + 1, on a a − 2b = 2(−a + 3b) + 1 donne 1 = (a − 2b) − (−a + 3b) = 2a − 8b. D’où,

52
2 ∗ 51 − 8 ∗ 19 = 1. Ainsi w−1 ≡ −8 mod 51 ≡ (51 − 8) mod 51 =≡ 43. Chaque nombre du
texte chiffré est multiplié par 43 et réduit modulo 51. Pour l’instant,

(0 ∗ 43) mod 51 ≡ 0
(11 ∗ 43) mod 51 ≡ 14
(0 ∗ 43) mod 51 ≡ 0
(6 ∗ 43) mod 51 ≡ 3
(66 ∗ 43) mod 51 ≡ 33.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 43 et
réduit modulo 51, pour avoir une suite super-croissante. C’est à dire, ai ≡ bi ∗ w−1 mod p.
Alors,

(6 ∗ 43) mod 51 ≡ 3
(31 ∗ 43) mod 51 ≡ 7
(5 ∗ 43) mod 51 ≡ 11
(29 ∗ 43) mod 51 ≡ 23.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 7, 3 + 7 = 10 <
11, 3 + 7 + 11 = 21 < 23, alors la suite est super-croissante. Ainsi, on a produit les
problèmes de Knapsack suivants :
Pour le premier problème de Havresac, on a 0 = 3x1 + 7x2 + 11x3 + 23x4 , où S = 0 <
a4 = 23 ceci dit que x4 = 0 et le même argument s’applique aux autres pour donner
x3 = x2 = x1 = 0. La solution est (0, 0, 0, 0).
Pour le deuxième problème de Havresac, on a 14 = 3x1 + 7x2 + 11x3 + 23x4 , où S = 14 <
a4 = 23 produit x4 = 0 avec 3x1 + 7x2 + 11x3 = 14, et S = 14 < a3 = 11 alors x3 = 1, et
3x1 + 7x2 = 14 − 11 = 3 donnant S = 3 < a2 = 7, donc x2 = 0 et 3x1 = 3 alors x1 = 1.
La solution est (1, 0, 1, 0), c’est à dire, 3 + 0 + 11 + 0 = 14.
Pour le troisième problème de Havresac est exactement comme le premier.
, on a 32 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où S = 32 > a5 = 21 produit x5 = 1
avec x1 + 3x2 + 5x3 + 10x4 = 32 − 21 = 11, et S = 11 > a4 = 10 alors x4 = 1, et
x1 + 3x2 + 5x3 = 11 − 10 = 1, résultant en x3 = x2 = 0 et x1 = 1. La solution est
(1, 0, 0, 1, 1), c’est à dire, 0 + 0 + 0 + 0 + 37 + 0 = 37.
Pour le quatrième problème de Havresac, on a 3 = 3x1 + 7x2 + 11x3 + 23x4 , où S = 3 <
a4 = 23 produit x4 = 0 avec 3x1 + 7x2 + 11x3 = 3, et S = 3 < a3 = 11 et x3 = 0, et
3x1 + 7x2 = 3, et S = 3 < a2 = 7 alors x2 = 0, et 3x1 = 3, alors x1 = 1. Ainsi, la solution
est (1, 0, 0, 0), c’est à dire, 3 + 0 + 0 + 0 = 3.
Pour le cinquième problème de Havresac, on a 33 = 3x1 + 7x2 + 11x3 + 23x4 , où S =
33 > a4 = 23 produit x4 = 1 avec 3x1 + 7x2 + 11x3 = 33 − 23 = 10, et S = 10 < a3 = 11
et x3 = 0, et 3x1 + 7x2 = 10, et S = 10 > a2 = 7 alors x2 = 1, et 3x1 = 10 − 7 = 3, alors
x1 = 1. Ainsi, la solution est (1, 1, 0, 1), c’est à dire, 3 + 0 + 0 + 0 = 3.
Le résultat de déchiffrement en binaire est 0000, 1010, 0000, 1000, 1101. Groupant ces
nombres binaires en groupes de 5 chiffres chacun, on a 00001, 01000, 00100, 01101, et
utilisant la table 15, on obtient le texte clair BIEN.

Exercice 0.54 Supposons que Samir est un utilisateur du crypto-système Knapsack et a comme
clef secrète la suite super-croissante 1, 3, 5, 10, 21, le modulo p = 43 et le multiplicateur w = 17.
Supposons que Samir veut envoyer à Ali le message VITE. Quelle est la tâche de chacune des
deux personnes ?

53
Solution :
Les deux personnes connaissent p = 43 > 2a5 = 2 × 21 = 43 et w = 17 telle que pgcd(p, w) =
pgcd(43, 17) = 1.
1. Cryptage : Pour crypter le message VITE et l’envoyer à Ali, Samir doit multiplier
chaque membre de la suite super-croissante par w = 17 et le réduire modulo p = 43,
c’est à dire, effectuer l’opération bi ≡ w ∗ ai mod p pour produire la suite de chiffrement
suivante :

(17 ∗ 1) mod 43 ≡ 17,


(17 ∗ 3) mod 43 ≡ 8,
(17 ∗ 5) mod 43 ≡ 42,
(17 ∗ 10) mod 43 ≡ 41,
(17 ∗ 21) mod 43 ≡ 13.

C’est à dire, 17, 8, 42, 41, 13. Cette dernière est la clef de chiffrement que Samir doit
publier dans le répertoire publique.
Samir veut envoyer le message VITE, il doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 15. Le message converti est 10101 01000 10011 00100. Le
message est alors divisé en blocs de chiffres, dans ce cas de longueur 5, car le nombre d’élé-
ments de la suite super-croissante est 5, pour avoir les blocs suivants 10101 01000 10011 00100.
Utilisant maintenant la clef publique, Samir transforme les blocs successifs en

17 ∗ 1 + 8 ∗ 0 + 42 ∗ 1 + 41 ∗ 0 + 13 ∗ 1 = 72
17 ∗ 0 + 8 ∗ 1 + 42 ∗ 0 + 41 ∗ 0 + 13 ∗ 0 = 8
17 ∗ 1 + 8 ∗ 0 + 42 ∗ 0 + 41 ∗ 1 + 13 ∗ 1 = 71
17 ∗ 0 + 8 ∗ 0 + 42 ∗ 1 + 41 ∗ 0 + 13 ∗ 1 = 42.

Le texte chiffré transmis est la suite des entiers positifs suivants : 72, 8, 71, 42.

2. Décryptage : Pour lire le message, Ali doit premièrement calculer la congruence 17w−1 ≡
1 mod 43. Pour ce faire, elle doit utiliser l’algorithme d’Euclide :

43 = 2 ∗ 17 + 9
17 = 1∗9+8
9 = 1 ∗ 8 + 1.

et sa version étendue :

1 = 9−1∗8
= 9 − 2 ∗ (67 − 4 ∗ 15) = 9 ∗ 15 − 2 ∗ 67,
= 9 ∗ (149 − 2 ∗ 67) − 2 ∗ 67 = 9 ∗ 149 − 20 ∗ 67.

ou encore si on prend a = 43 et b = 17, alors de l’expression 43 = 2 ∗ 17 + 9, on a


9 = a − 2b et de la seconde expression 17 = 1 ∗ 9 + 8, on obtient 8 = b − (a − 2b) = −a + 3b
et la troisième équation 9 = 1 ∗ 8 + 1 donne 1 = (a − 2b) − (−a + 3b) = 2a − 5b. D’où,
2 ∗ 43 − 5 ∗ 17 = 1. Ainsi w−1 ≡ −5 mod 43 ≡ (43 − 5) mod 37 =≡ 43. Chaque nombre du

54
texte chiffré est multiplié par 37 et réduit modulo 43. Pour l’instant,
(72 ∗ 38) mod 43 ≡ 27
(8 ∗ 38) mod 43 ≡ 3
(71 ∗ 38) mod 43 ≡ 32
(42 ∗ 38) mod 43 ≡ 5.
D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 38 et
réduit modulo 43, pour avoir une suite super-croissante. C’est à dire, ai ≡ bi ∗ w−1 mod p.
Alors,
(17 ∗ 38) mod 43 ≡ 1
(8 ∗ 38) mod 43 ≡ 3
(42 ∗ 38) mod 43 ≡ 5
(41 ∗ 38) mod 43 ≡ 10
(13 ∗ 38) mod 43 ≡ 21.
Puisque les éléments de la suite obtenue satisfont la propriété que 1 < 3, 1 + 3 = 4 <
5, 1 + 3 + 5 = 9 < 10, 1 + 3 + 5 + 10 = 19 < 21, alors la suite est super-croissante. Ainsi,
on a produit les problèmes de Knapsack suivants :
Pour le premier problème de Havresac, on a 27 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 27 > a5 = 21 ceci dit que x5 = 1 et x1 + 3x2 + 5x3 + 10x4 = 27 − 21 = 6 et
6 < a4 = 10, donne x4 = 0 et x1 + 3x2 + 5x3 = 6, avec 6 > a3 = 5 alors x3 = 1 et
x1 + 3x2 = 6 − 5 = 1 où 1 < a2 = 3 alors x2 = 0 et x1 = 1. La solution est (1, 0, 1, 0, 1),
c’est à dire, 1 + 0 + 5 + 0 + 21 = 27.
Pour le deuxième problème de Havresac, on a 3 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 3 < a5 = 21 produit x5 = 0 avec x1 + 3x2 + 5x3 + 10x4 = 3, et 3 < a4 = 10 alors
x4 = 0, et x1 + 3x2 + 5x3 = 3 donnant 3 < a3 = 5, donc x3 = 0 et x1 + 3x2 = 3 3 = a2
alors x2 = 1, et x1 = 0. La solution est (0, 1, 0, 0, 0), c’est à dire, 0 + 3 + 0 + 0 + 0 = 3.
Pour le troisième problème de Havresac, on a 32 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 32 > a5 = 21 produit x5 = 1 avec x1 + 3x2 + 5x3 + 10x4 = 32 − 21 = 11, et
S = 11 > a4 = 10 alors x4 = 1, et x1 + 3x2 + 5x3 = 11 − 10 = 1, résultant en x3 = x2 = 0
et x1 = 1. La solution est (1, 0, 0, 1, 1), c’est à dire, 0 + 0 + 0 + 0 + 37 + 0 = 37.
Pour le quatrième problème de Havresac, on a 5 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 5 < a5 = 21 produit x5 = 0 avec x1 + 3x2 + 5x3 + 10x4 = 5, et 5 < a4 = 10 alors
x4 = 0, et x1 + 3x2 + 5x3 = 5, et 5 = a3 alors x3 = 1, et x2 = x1 = 0. Ainsi, la solution
est (0, 0, 1, 0, 0), c’est à dire, 0 + 0 + 5 + 0 + 0 = 5.
Le message déchiffré en binaire est 10101, 01000, 10011, 00100. En groupant les nombres
binaires en groupes de 5 chiffres chacun, chose déjà faite pour ce cas, on a d’après la table
15, le texte clair est VITE.
Exercice 0.55 Utiliser le mot clef "TOI" et un chiffrement de Vigenère pour crypter le message
"DEMAIN MIDI".

Exercice 0.56 Utiliser le mot clef "FAITH" et un chiffrement de Vigenère pour crypter le mes-
sage "THE HIGHEST RESULT OF EDUCATION IS TOLERANCE".
Solution :
Pour le cryptage utilisant le chiffrement de Vigenère, voir table 16. Le message crypté est "YH-
MAPLHMLAWEANSYONXKZBIMPTNQLATLMKHSBM".

55
Texte clair T H E H I G H E S T
Valeur 19 07 04 07 08 06 07 04 18 19
Clef F A I T H F A I T H
Valeur 05 00 08 19 07 05 00 08 19 07
Somme 24 07 12 26 15 11 07 12 37 26
mod 26 24 07 12 00 15 11 07 12 11 00
Texte chiffré Y H M A P L H M L A
Texte clair R E S U L T O F E D
Valeur 17 04 18 20 11 19 14 05 04 03
Clef F A I T H F A I T H
Valeur 05 00 08 19 07 05 00 08 19 07
Somme 22 04 26 39 18 24 14 13 23 10
mod 26 22 04 00 13 18 24 14 13 23 10
Texte chiffré W E A N S Y O N X K
Texte clair U C A T I O N I S T
Valeur 20 01 00 19 08 14 13 08 18 19
Clef F A I T H F A I T H
Valeur 05 00 08 19 07 05 00 08 19 07
Somme 25 01 08 38 15 19 13 16 37 26
mod 26 25 01 08 12 15 19 13 16 11 00
Texte chiffré Z B I M P T N Q L A
Texte clair O L E R A N C E
Valeur 14 11 04 17 00 13 01 04
Clef F A I T H F A I
Valeur 05 00 08 19 07 05 00 08
Somme 19 11 12 36 07 18 01 12
mod 26 19 11 12 10 07 18 01 12
Texte chiffré T L M K H S B M

Table 16 – Solution de l’exercice 6.

56
Exercice 0.57 Supposons que Manel et Sofia s’échangent des messages secrets utilisant le crypto-
système d’ElGamal et que le texte chiffré suivant

(20, 18), (20, 26), (20, 31), (20, 22), (20, 43), (20, 15), (20, 31), (20, 42).

a été reçu par Sofia dont la clef publique est (ps , αs , βs ) = (47, 5, 10) et la clef privée est es = 19.
Obtenir le message en texte clair, c’est à dire, décrypter le message chiffré.
Solution :
Pour plus d’éclaircissement, on étudie d’abord le cryptage suivi du décryptage. Puisque Sofia
utilise le crypto-système d’ElGamal avec une clef publique (ps , αs , βs ) = (47, 5, 10) et une clef
privée es = 19, où 2 ≤ es ≤ ps − 2 et pgcd(es , ps ) = 1. Salim calcule βs ∼ = αess (mod ps ) =

5 (mod 47) = 10. Noter que 5 est une racine primitive ou un générateur du groupe Z47 .
19

1. Cryptage : Manel voudrait envoyer le message TRESBIEN à Sofia. Premièrement, elle le


convertit en chaîne de chiffres 19 17 04 18 01 08 04 13, et sélectionne sa clef privée em . Pour
cela supposons que Manel a choisi : em = 37, tels que 2 ≤ em ≤ ps −2 et pgcd(em , ps ) = 1.
Manel calcule a ∼= αesm (mod ps ) = 537 (mod 47) ∼ = 20 (mod 47) et bi ∼ = βsem ∗ mi (mod ps ) =
1037 ∗ mi (mod 47) ∼= 43 ∗ m i (mod 47), (ceci est vrai, car 10 37
(mod 47) ∼
= 43.) Pour chaque
bloc de 2 chiffres du message, elle calcule bi ∼= (43 ∗ m i ) (mod 47) obtenant

b1 ∼
= (43 ∗ 19) (mod 47) ∼
= 18,
b2 ∼
= (43 ∗ 17) (mod 47) ∼
= 26,
b3 ∼
= (43 ∗ 4) (mod 47) ∼
= 31,
b4 ∼
= (43 ∗ 18) (mod 47) ∼
= 22,
b5 ∼
= (43 ∗ 1) (mod 47) ∼
= 43,
b6 ∼
= (43 ∗ 8) (mod 47) ∼
= 15,
b7 ∼
= (43 ∗ 4) (mod 47) ∼
= 31,
b8 ∼
= (43 ∗ 13) (mod 47) ∼
= 42.

Le message chiffré envoyé au destinataire est

(20, 18), (20, 26), (20, 31), (20, 22), (20, 43), (20, 15), (20, 31), (20, 42).

= αesm (mod ps ) ∼
2. Décryptage : Sachant que a ∼ = 26 (mod 47), à l’arrivée du message crypté,
Sofia n’a aucune connaissance de la valeur de em (la clef privée de Manel), mais elle
connait a (inclue dans le message), alors elle calcule

aps −1−es (mod ps ) ∼


p −1−e
= (αesm ) s s
(mod ps )

= 20 47−1−19
(mod 47) ∼
= 2027 (mod 47)

= 35 (mod 47).

Noter que 2 ≤ es ≤ ps −2, alors 1 ≤ ps −1−es ≤ ps −3. Puisque bi ∼


= (βsem ∗ mi ) (mod ps ) ∼
=
es em
((αs ) ∗ mi ) (mod ps ) et selon le théorème de Fermat αs
ps −1
(mod ps ) ∼
= 1 avec pgcd(αs , ps ) =
1, alors

bi ∗ aps −1−es (mod ps ) ∼


ps −1−es
= βsem ∗ mi ∗ (αesm ) (mod ps )

=
e p −1−es
(αess ) m ∗ mi ∗ (αesm ) s (mod ps )

= mi ∗ αess em ∗ αs−em es ∗ αsps −1 (mod ps )

= mi (mod ps ).

57
∼ bi ∗ aps −1−es (mod ps ) ou mi =
C’est à dire, mi = ∼ (35 ∗ bi ) (mod 47) pour 1 ≤ i ≤ 8.


Une autre alternative du calcul de mi ∼ = (bi ∗ a−es ) (mod ps ), pour 1 ≤ i ≤ 8, est : il faut
d’abord déterminer (a−1 ) (mod ps ), qui fait partie de l’expression mi ∼
= bi ∗ (a−1 )es (mod ps ).
Dans notre cas, on a 20 (mod 47), pour trouver l’inverse, on fait usage de l’algorithme
−1

d’Euclide :

47 = 2 ∗ 20 + 7
20 = 2∗7+6
7 = 1 ∗ 6 + 1.

et sa version étendue :

1 = 7−1∗6
= 7 − 1 ∗ (20 − 2 ∗ 7)
= 3 ∗ 7 − 1 ∗ 20
= 3 ∗ (47 − 2 ∗ 20) − 1 ∗ 20
= 3 ∗ 47 − 7 ∗ 20.

Alors, −7 ∼
= (mod 47) ∼= (47−7) (mod 47) ∼ = 40 (mod 47). D’où 26−1 (mod 47) ∼
= 40 (mod 47).
D’où, 4019 (mod 47) ∼
= 35 (mod 47), et m ∼
i = (b i ∗ 35) (mod 47). On a

m1 ∼
= (18 ∗ 35) (mod 47) ∼
= 19,
m2 ∼
= (26 ∗ 35) (mod 47) ∼
= 17,
m3 ∼
= (31 ∗ 35) (mod 47) ∼
= 4,
m4 ∼
= ∼
(22 ∗ 35) (mod 47) = 18,
m5 ∼
= (43 ∗ 35) (mod 47) ∼
= 1,
m6 ∼
= ∼
(15 ∗ 35) (mod 47) = 8,
m7 ∼
= ∼ 4,
(31 ∗ 35) (mod 47) =
m8 ∼
= (42 ∗ 35) (mod 47) ∼
= 13,

ou 19 17 04 18 01 08 04 13 qui correspond au texte clair TRESBIEN ou TRES BIEN.

Exercice 0.58 Étant donné l’entier n = 2623 pour un schéma de chiffrement RSA,
1. Utiliser l’algorithme de Fermat pour trouver les nombres premiers p et q tel que n = p ∗ q
et calculer la fonction indicatrice d’Euler φ(n).
2. Lesquels des nombres suivants : 7, 9, 11, 15, 17, 23, 35, 43, 49, 59, 61, 73, 87, 91 sont des
exposants e valables de chiffrement RSA ?
solutions :
1. Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − 1) et n√= 2623. Selon
√ la méthode de factorisation
de Fermat : n = 2623 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2623⌉ = ⌈51.215⌉ = 52, alors
y 2 = x2 − n = 522 − 2623 = 2704 − 2623 = 81 = 92 est un carré parfait. Alors, n = p ∗ q =
(x + y)(x − y) = (52 + 9)(52 − 9) = 61 ∗ 43. D’où ϕ(2623) = ϕ(61 ∗ 43) = (p − 1)(q − 1) =
60 ∗ 42 = 2520.
2. L’exposant de chiffrement e est choisi tel que pgcd(e, φ(n)) = pgcd(e, 2520) = 1. Pour
trouver lesquels des nombres donnés sont relativement premiers à 2520, on doit écrire la
factorisation en nombres premiers de 2520 comme 2520 = 23 ∗ 32 ∗ 5 ∗ 7. Ou appliquer

58
directement l’algorithme d’Euclide pour calculer le plus grand commun diviseur entre 2520
et chacun de ces nombres, par exemple,
2520 = 58 ∗ 43 + 26
43 = 1 ∗ 26 + 17
26 = 1 ∗ 17 + 8
17 = 2 ∗ 8 + 1
alors pgcd(2520, 43) = 1, il n’y a pas de facteur commun entre 2520 et 43, 43 peut être
un exposant.
2520 = 28 ∗ 87 + 84
87 = 1 ∗ 84 + 3
84 = 28 ∗ 3 + 0
alors pgcd(2520, 87) = 3, 3 est facteur commun entre 2520 et 87, 87 ne peut pas être un
exposant. Ainsi, les exposants valables sont les nombres 11, 17, 23, 43, 59, 61, 73. Tous
les autres partagent un ou plusieurs facteurs avec 2520 et alors ne sont pas relativement
premiers à 2520.
Exercice 0.59 Supposons que Amina est une utilisatrice du crypto-système Knapsack et a comme
clef secrète la suite super-croissante 1, 4, 7, 13, 27, le modulo p = 107 et le multiplicateur w = 31.
Supposons que Amina veut envoyer à Sofiane le message SALUT. Quelle est la tâche de chacune
des deux personnes ?
Solution :
Amina a choisi p = 107 > 2a5 = 2 × 27 = 54 et w = 31 telle que pgcd(p, w) = pgcd(107, 31) = 1.
1. Cryptage : Pour crypter le message SALUT et l’envoyer à Sofiane, Amina doit multi-
plier chaque membre de la suite super-croissante par w = 31 et le réduire modulo p = 107,
c’est à dire, effectuer l’opération bi ≡ w ∗ ai mod p pour produire la suite de chiffrement
suivante :
(31 ∗ 1) mod 107 ≡ 31,
(31 ∗ 4) mod 107 ≡ 17,
(31 ∗ 7) mod 107 ≡ 3,
(31 ∗ 13) mod 107 ≡ 82,
(31 ∗ 27) mod 107 ≡ 88.
C’est à dire, 31, 17, 3, 82, 88. Cette dernière est la clef publique de chiffrement d’Amina.
Amina veut envoyer le message SALUT, il doit d’abord le convertir en chaîne de caractères
de 0’s et 1’s, utilisant la table 15. Le message converti est 10010 00000 01011 10100 10011.
Les parties du message sont concaténées puis divisés en blocs de chiffres, dans ce cas
de longueur 5, car le nombre d’éléments de la suite super-croissante est 5, pour avoir
les blocs suivants 10010 00000 01011 10100 10011. Utilisant maintenant la clef publique,
Amina transforme les blocs précédents en
31 ∗ 1 + 17 ∗ 0 + 3 ∗ 0 + 82 ∗ 1 + 88 ∗ 0 = 113
31 ∗ 0 + 17 ∗ 0 + 3 ∗ 0 + 82 ∗ 0 + 88 ∗ 0 = 0
31 ∗ 0 + 17 ∗ 1 + 3 ∗ 0 + 82 ∗ 1 + 88 ∗ 1 = 187
31 ∗ 1 + 17 ∗ 0 + 3 ∗ 1 + 82 ∗ 0 + 88 ∗ 0 = 34
31 ∗ 1 + 17 ∗ 0 + 3 ∗ 0 + 41 ∗ 1 + 88 ∗ 1 = 201.

59
Le texte chiffré transmis est la suite des entiers positifs suivants : 113, 0, 187, 34, 201.

2. Décryptage : Pour lire le message, Sofiane doit premièrement calculer la congruence


31w−1 ≡ 1 mod 107. Pour ce faire, elle doit utiliser l’algorithme d’Euclide :

107 = 3 ∗ 31 + 14
31 = 2 ∗ 14 + 3
14 = 4∗3+2
3 = 1 ∗ 2 + 1.

et sa version étendue :

1 = 3−1∗2
= 3 − 1 ∗ (14 − 4 ∗ 3) = 5 ∗ 3 − 1 ∗ 14,
= 5 ∗ (31 − 2 ∗ 14) − 1 ∗ 14 = 5 ∗ 31 − 11 ∗ 14,
= 5 ∗ 31 − 11 ∗ (107 − 3 ∗ 31) = 38 ∗ 31 − 11 ∗ 107.

ou encore si on prend a = 107 et b = 31, alors de l’expression 107 = 3 ∗ 31 + 14, ou


a = 3b+14 on a 14 = a−3b et de la seconde expression 31 = 2∗14+3, ou b = 2(a−3b)+3,
on obtient 3 = b − 2(a − 3b) = −2a + 7b et de la troisième expression 14 = 4 ∗ 3 + 2,
ou a − 3b = 4(−2a + 7b) + 2, on obtient 2 = a − 3b − 4(−2a + 7b) = 9a − 31b et la
quatrième équation 3 = 1 ∗ 2 + 1 donne 1 = (−2a + 7b) − (9a − 31b) = −11a + 38b. D’où,
−11 ∗ 107 + 38 ∗ 31 = 1. Ainsi w−1 ≡ 38 mod 107. Chaque nombre du texte chiffré est
multiplié par 38 et réduit modulo 107. Pour l’instant,

(113 ∗ 38) mod 107 ≡ 14


(0 ∗ 38) mod 107 ≡ 0
(187 ∗ 38) mod 107 ≡ 44
(34 ∗ 38) mod 107 ≡ 8
(201 ∗ 38) mod 107 ≡ 41.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 38 et
réduit modulo 43, pour avoir une suite super-croissante. C’est à dire, ai ≡ bi ∗ w−1 mod p.
Alors,

(31 ∗ 38) mod 107 ≡ 1


(17 ∗ 38) mod 107 ≡ 4
(3 ∗ 38) mod 107 ≡ 7
(82 ∗ 38) mod 107 ≡ 13
(88 ∗ 38) mod 107 ≡ 27.

Puisque les éléments de la suite obtenue satisfont la propriété que 1 < 4, 1 + 4 = 5 <
7, 1 + 4 + 7 = 12 < 13, 1 + 4 + 7 + 13 = 25 < 27, alors la suite est super-croissante.
Ainsi, on a produit les problèmes de Knapsack suivants :
Pour le premier problème de Havresac, on a 14 = x1 + 4x2 + 7x3 + 13x4 + 27x5 , où
S = 14 < a5 = 27 ceci dit que x5 = 0 et x1 + 4x2 + 7x3 + 13x4 = 14 et S = 14 > a4 = 13,
donne x4 = 1 et x1 + 4x2 + 7x3 = 14 − 13 = 1, avec S = 1 < a3 = 7 alors x3 = 0 et

60
x1 + 4x2 = 1 où S = 1 < a2 = 4 alors x2 = 0 et x1 = 1. La solution est (1, 0, 0, 1, 0),
c’est à dire, 1 + 0 + 0 + 13 + 0 = 14.
Pour le deuxième problème de Havresac, on a 0 = x1 + 4x2 + 7x3 + 13x4 + 27x5 , produit
x5 = x4 = x3 = x2 = x1 = 0 La solution est (0, 0, 0, 0, 0).
Pour le troisième problème de Havresac, on a 44 = x1 + 4x2 + 7x3 + 13x4 + 27x5 , où
S = 44 > a5 = 27 produit x5 = 1 avec x1 + 4x2 + 7x3 + 13x4 = 44 − 27 = 17, et
S = 17 > a4 = 13 alors x4 = 1, et x1 + 4x2 + 7x3 = 17 − 13 = 4, résultant en x3 = 0,
x2 = 1 et x1 = 0. La solution est (0, 1, 0, 1, 1), c’est à dire, 0 + 4 + 0 + 13 + 27 = 44.
Pour le quatrième problème de Havresac, on a 8 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 8 < a5 = 27 produit x5 = 0 avec x1 + 4x2 + 7x3 + 13x4 = 8, et S = 8 < a4 = 13 alors
x4 = 0, et x1 + 4x2 + 7x3 = 8, et S = 8 > a3 = 7 alors x3 = 1, et x2 = 0 et x1 = 1. Ainsi,
la solution est (1, 0, 1, 0, 0), c’est à dire, 1 + 0 + 7 + 0 + 0 = 8.
Pour le cinquième problème de Havresac, on a 41 = x1 + 3x2 + 5x3 + 10x4 + 21x5 , où
S = 41 > a5 = 27 produit x5 = 1 avec x1 + 4x2 + 7x3 + 13x4 = 41 − 27 = 14, et S = 14 ><
a4 = 13 alors x4 = 1, et x1 +4x2 +7x3 = 14−13 = 1, et S = 1 < a3 = 7 alors x3 = x2 = 0,
et x1 = 1. Ainsi, la solution est (1, 0, 0, 1, 1), c’est à dire, 1 + 0 + 0 + 13 + 27 = 41.
Le message déchiffré en binaire est 10010, 00000, 01011, 10100, 10011. En groupant les
nombres binaires en groupes de 5 chiffres chacun, chose déjà faite pour ce cas, on a
d’après la table 15, le texte clair est SALUT.

Exercice 0.60 Créer deux clef publiques RSA utilisant les nombres premiers p = 29 et q = 41.
solutions : La valeur de n = pq = 29 ∗ 41 = 1189. Maintenant, la valeur de e est sélectionnée
tel que pgcd(e, φ(n)) = 1. Puisque φ(n) = φ(pq) = (p − 1)(q − 1) = 28 ∗ 40 = 1120, la valeur
de e peut être n’importe quel entier relativement premier à 1120. La factorisation en nombres
premiers de 1120 est 1120 = 25 ∗ 5 ∗ 7, alors e est un entier positif qui ne partage aucun de ces
facteurs premiers. Deux choix possibles de e sont e = 9 et e = 13. Ces derniers produisent les
clefs publiques (e, n) = (9, 1189) ou (13, 1189).

Exercice 0.61 Étant donné l’entier n = 2623 pour un schéma de chiffrement RSA,
1. Utiliser l’algorithme de Fermat pour trouver les nombres premiers p et q tel que n = p ∗ q
et calculer φ(n).
2. Lesquels des nombres suivants : 7, 9, 11, 15, 17, 23, 35, 43, 49, 59, 61, 73, 87, 91 sont des
exposants e valables de chiffrement RSA ?
solutions :
1. Sachant que ϕ(n) = ϕ(pq) = (p − 1)(q − 1) et n√= 2623. Selon
√ la méthode de factorisation
de Fermat : n = 2623 = x2 − y 2 , et x = ⌈ n⌉ = ⌈ 2623⌉ = ⌈51.215⌉ = 52, alors
y 2 = x2 − n = 522 − 2623 = 2704 − 2623 = 81 = 92 est un carré parfait. Alors, n =
(52 + 9)(52 − 9) = 61 ∗ 43. D’où ϕ(2623) = ϕ(61 ∗ 43) = 60 ∗ 42 = 2520.
2. L’exposant de chiffrement e est choisi tel que pgcd(e, φ(n)) = pgcd(e, 2520) = 1. Pour
trouver lequel des nombres donnés est relativement premier à 2520, on doit premièrement
écrire la factorisation en nombres premiers de 2520 comme 2520 = 23 ∗ 32 ∗ 5 ∗ 7. Ainsi,
les exposants valables sont les nombres 11, 17, 23, 43, 59, 61, 73. Tous les autres partagent
un facteur avec 2520 et alors ne sont pas relativement premiers à 2520.

Exercice 0.62 Supposons que Assia et Salim s’échangent des messages secrets utilisant le crypto-
système d’ElGamal et que le texte chiffré suivant

(22, 15), (22, 13), (22, 3), (22, 17)

61
a été reçu par Salim dont la clef publique est (p, α, βs ) = (31, 11, 3) et la clef privée est es = 17.
Décrypter le message.
Solution :
Pour plus d’éclaircissement, on étudie d’abord le cryptage suivi du décryptage. Puisque Salim uti-
lise le crypto-système d’ElGamal avec une clef publique (p, α, βs ) = (31, 11, 3) et une clef privée
es = 17, où 2 ≤ es ≤ p − 2 et pgcd(es , p) = 1. Salim calcule βs ∼ = αes mod p = 1117 mod 31 ∼ = 3.
Noter que 11 est une racine primitive ou un générateur du groupe Z31 .
1. Cryptage : Assia voudrait envoyer le message JOIE à Salim. Premièrement, elle le conver-
tit en chaîne de chiffres 09 14 08 04, et sélectionne sa clef privée em et supposons que Assia
a choisi em = 19, tels que 2 ≤ em ≤ p − 2 et pgcd(em , p) = 1. Puis elle calcule a ∼ =
αem mod p = 1119 mod 31 ∼ = 22 et bi ∼= βsem ∗ mi mod p = 319 ∗ mi mod 31 ∼ = 12 ∗ mi mod 31.
Pour chaque bloc de 2 chiffres du message, Assia calcule bi ∼ = (12 ∗ mi ) mod 31 obtenant
b1 = (12 ∗ 9) mod 31 ∼
∼ = 15,
b2 ∼
= (12 ∗ 14) mod 31 ∼
= 13,
b3 ∼ ∼
= (12 ∗ 8) mod 31 = 3,
b4 ∼
= (12 ∗ 4) mod 31 ∼
= 17,
ou le message chiffré 15 13 3 17 et le message chiffré qui est envoyé à Salim prend la forme
(a, b1 ), (a, b2 ), (a, b3 ), (a, b4 ))
ou
(22, 15), (22, 13), (22, 3), (22, 17).
2. Décryptage : Sachant que a ∼ = αem mod p ∼ = 22 mod 31, à l’arrivée du message crypté,
Salim n’a aucune connaissance de la valeur de em (la clef privée d’Assia), mais il connait
a (inclue dans le message), alors il calcule
ap−1−es mod p ∼
= (αem )p−1−es mod p

= 2231−1−17 (mod 31) ∼
= 2213 mod 31

= 13 (mod 31).
= (βsem ∗ mi ) mod p ∼
Noter que 2 ≤ es ≤ p − 2, alors 1 ≤ p − 1 − es ≤ p − 3. Puisque bi ∼ =
es em
((α ) ∗ mi ) mod p et selon le théorème de Fermat α p−1 ∼
mod p = 1 avec pgcd(α, p) = 1,
alors
bi ∗ aps −1−es (mod ps ) ∼
ps −1−es
= βsem ∗ mi ∗ (αesm ) (mod ps )

=
e p −1−es
(αess ) m ∗ mi ∗ (αesm ) s (mod ps )

= mi ∗ αess em ∗ αs−em es ∗ αsps −1 (mod ps )

= mi (mod ps ).
C’est à dire, mi ∼
= bi ∗ aps −1−es mod p, pour 1 ≤ i ≤ 6.


Une autre alternative est de calculer mi ∼


= (bi ∗ a−es ) mod p, pour 1 ≤ i ≤ 6, pour
 cela,
il faut déterminer (a ) mod p, qui fait partie de l’expression mi ∼
−1
= bi ∗ (a−1 )es mod p.
Dans notre cas, on a 22−1 mod 31, pour trouver l’inverse, on fait recours à l’algorithme
d’Euclide :
31 = 1 ∗ 22 + 9
22 = 2∗9+4
9 = 2 ∗ 4 + 1.

62
et sa version étendue :
1 = 9−2∗4
= 9 − 2 ∗ (22 − 2 ∗ 9)
= 5 ∗ 9 − 2 ∗ 22
= 5 ∗ (31 − 1 ∗ 22) − 2 ∗ 22
= 5 ∗ 31 − 7 ∗ 22.
= (31−7) mod 31 ∼
= mod 31 ∼
Alors, −7 ∼ = 24 mod 31. D’où 22−1 mod 31 ∼
= 24 mod 31. D’où,
∼ ∼
24 mod 31 = 13 mod 31, et mi = (bi ∗ 13) mod 31. On a
17

m1 ∼
= (15 ∗ 13) mod 31 ∼
= 9,
m2 ∼
= (13 ∗ 13) mod 31 ∼
= 14,
m3 ∼
= ∼ 8,
(3 ∗ 13) mod 31 =
m4 ∼
= (17 ∗ 13) mod 31 ∼
= 4,
ou 09 14 08 04 qui correspond au texte clair JOIE.
Exercice 0.63 Supposons que Houssam et Kenza s’échangent des messages secrets utilisant le
crypto-système d’ElGamal, avec le nombre premier p = 23 et l’élément primitif α = 2.
Solution : Houssam voudrait envoyer le message Hi à Kenza. Premièrement, il le convertit en
chaîne de chiffres 07 08, et sélectionne ses clefs privées eh1 = 3 et eh2 = 4 tels que 2 ≤ ehi ≤
p − 2 et pgcd(ehi , p) = 1. Supposons que Kenza a aussi choisi sa clef secrète ek = 5, tels que
= αek mod p = 25 mod 23 ∼
2 ≤ ek ≤ p − 2 et pgcd(ek , p) = 1. Puis elle calcule betak ∼ = 9 et envoie
sa clef publique (α, p, βk ) = (2, 23, 9) à Houssam.
1. Cryptage : Houssam alors, pour chaque lettre du message, calcule ai = ∼ βh = αehi mod p
i
e
et bi ∼
= βk ∗ mi mod p, pour
hi

— m1 = 7 il obtient
a1 = 23 mod 23 ≡ 8
b1 = 93 ∗ 7 mod 23 ≡ 20
— m2 = 8 il obtient
a2 = 24 mod 23 ≡ 16
b2 = 94 ∗ 8 mod 23 ≡ 2
Houssam envoie les paires (8, 20) et (16, 2) à Kenza.
2. Décryptage : Pour déchiffrer et lire le message Kenza utilise sa clef privée ek = 5, et
calcule pour chaque l’expression suivante
mi ≡ bi ∗ ai−ek mod p = bi ∗ ap−1−e
i
k
mod p.
Ainsi
m1 ≡ 20 ∗ 823−1−5 mod 23 ≡ 20 ∗ 817 mod 23 ≡ 7
m2 ≡ 2 ∗ 1623−1−5 mod 23 ≡ 2 ∗ 1617 mod 23 ≡ 8

Alors m1 = 7 correspond à la lettre "H" et m2 = 8 correspond à la lettre "I". D’où le


message "HI".

63
Exercice 0.64 Supposons que Hamza et Kenza s’échangent des messages secrets utilisant le
crypto-système d’ElGamal, avec le nombre premier p = 23 et l’élément primitif α = 5.
Solution : Hamza voudrait envoyer le message JOIE à Kenza. Il le convertit en une suite de
chiffres 9, 14, 8 4, et sélectionne ses clefs privées eh1 = 8, eh2 = 9, eh3 = 12, et eh4 = 13 tels que
2 ≤ ehi ≤ p − 2 et pgcd(ehi , p) = 1. Supposons que Kenza a aussi choisi sa clef secrète ek = 17,
tels que 2 ≤ ek ≤ p − 2 et pgcd(ek , p) = 1. Puis elle calcule betak ∼= αek mod p = 517 mod 23 ∼ = 15
et envoie sa clef publique (α, p, βk ) = (5, 23, 15) à Hamza.
1. Cryptage : Hamza alors, pour chaque lettre du message, calcule ai ∼ = βhi = αehi mod p et
∼ ehi
bi = βk ∗ mi mod p, pour
— m1 = 9 il obtient
a1 = 58 mod 23 ≡ 16
b1 = 158 ∗ 9 mod 23 ≡ 13
— m2 = 14 il obtient
a2 = 59 mod 23 ≡ 11
b2 = 159 ∗ 14 mod 23 ≡ 12
— m3 = 8 il obtient
a3 = 512 mod 23 ≡ 18
b3 = 1512 ∗ 8 mod 23 ≡ 18
— m4 = 4 il obtient
a4 = 513 mod 23 ≡ 21
b4 = 1513 ∗ 4 mod 23 ≡ 20
Hamza envoie les paires (16, 13) , (11, 12) , (18, 18) , et (21, 20) à Kenza.
2. Décryptage : Pour déchiffrer et lire le message Kenza utilise sa clef privée ek = 17, et
calcule pour chaque paire l’expression suivante
mi ≡ bi ∗ ai−ek mod p = bi ∗ ap−1−e
i
k
mod p.
Ainsi
m1 ≡ 13 ∗ 1623−1−17 mod 23 ≡ 13 ∗ 165 mod 23 ≡ 9
m2 ≡ 12 ∗ 1123−1−5 mod 23 ≡ 12 ∗ 115 mod 23 ≡ 14
m3 ≡ 18 ∗ 1823−1−17 mod 23 ≡ 18 ∗ 185 mod 23 ≡ 8
m4 ≡ 20 ∗ 2123−1−5 mod 23 ≡ 20 ∗ 215 mod 23 ≡ 4

Alors m1 = 9 correspond à la lettre "J", m2 = 14 correspond à la lettre "O", m3 = 8


correspond à la lettre "I" et m4 = 4 correspond à la lettre "E". D’où le message "JOIE".
Exercice 0.65 Supposons que Maissa veut envoyer le message "Queen" à Amel utilisant le chif-
frement d’El-Gamal avec le code ASCII, alors le message est converti en suite de nombres
{81, 117, 101, 101, 110} , avec le nombre premier p = 131 et l’élément primitif α = 2, un gé-
nérateur du groupe Z131 . Amel choisit sa clef secrète eA = 14 et calcule βA ≡ αeA mod p =
214 mod 131 = 9. Puis elle envoie sa clef publique (α, p, βA ) = (2, 131, 9) à Maissa. Maissa à
son tour choisit cinq valeurs {3, 4, 5, 6, 7} , comme clef secrète eM .

64
1. Chiffrement : Pour chaque lettre mi du message, Maissa calcule les expressions ai ∼
=
em
βmi = αemi mod p et bi ∼
= βA i ∗ mi mod p,
— m2 = 81 il obtient

a1 = 23 mod 131 ≡ 8
b1 = 93 ∗ 81 mod 131 ≡ 99

— m2 = 117 il obtient

a2 = 24 mod 131 ≡ 16
b2 = 94 ∗ 117 mod 131 ≡ 108

— m3 = 101 il obtient

a3 = 25 mod 131 ≡ 32
b3 = 95 ∗ 101 mod 131 ≡ 43

— m4 = 101 il obtient

a4 = 26 mod 131 ≡ 64
b4 = 96 ∗ 101 mod 131 ≡ 125

— m5 = 110 il obtient

a5 = 27 mod 131 ≡ 128


b5 = 97 ∗ 110 mod 131 ≡ 67

Maissa envoie à Amel comme message chiffré, les paires (8, 99) , (16, 108) , (32, 43) , (64, 125) ,
et (128, 67) .
2. Déchiffrement : Pour déchiffrer et lire le message, Amel applique l’expression

mi ≡ bi ∗ ai−eA mod p = bi ∗ ap−1−e


i
A
mod p.

m1 ≡ 99 ∗ 8131−1−14 mod 131 ≡ 99 ∗ 8116 mod 131 ≡ 81 correspond à Q


131−1−14 116
m2 ≡ 108 ∗ 16 mod 131 ≡ 108 ∗ 16 mod 131 ≡ 117 correspond à u
131−1−14 116
m3 ≡ 43 ∗ 32 mod 131 ≡ 43 ∗ 32 mod 131 ≡ 101 correspond à e
131−1−14 116
m4 ≡ 125 ∗ 64 mod 131 ≡ 125 ∗ 64 mod 131 ≡ 101 correspond à e
131−1−14 116
m5 ≡ 67 ∗ 128 mod 131 ≡ 67 ∗ 128 mod 131 ≡ 110 correspond à n.

Ainsi, le message clair est "Queen".

Exercice 0.66 Supposons que Kenza veut envoyer le message "SETIF" à Amel utilisant le chif-
frement d’El-Gamal, alors le message est converti en suite de nombres {18, 4, 19, 8, 5} , avec le
nombre premier p = 59 et l’élément primitif α = 6, un générateur du groupe Z59 . Amel choi-
sit sa clef secrète eA = 11 et calcule βA ≡ αeA mod p = 611 mod 59 = 38. Puis elle envoie sa
clef publique (α, p, βA ) = (6, 59, 38) à Kenza. Cette dernière à son tour choisit cinq valeurs
{8, 10, 12, 13, 15} , comme clef secrète eK .

65
1. Chiffrement : Pour chaque lettre mi du message, Kenza calcule les expressions ai ∼
= βki =
ek
αeki mod p et bi ∼
= βA i ∗ mi mod p, pour
— m1 = 18 elle a

a1 = 68 mod 59 ≡ 4
b1 = 388 ∗ 18 mod 59 ≡ 10

— m2 = 4 elle obtient

a2 = 610 mod 59 ≡ 26
b2 = 3810 ∗ 4 mod 59 ≡ 36

— m3 = 19 elle a

a3 = 612 mod 59 ≡ 51
b3 = 3812 ∗ 19 mod 59 ≡ 9

— m4 = 8 elle trouve

a4 = 613 mod 59 ≡ 11
b4 = 3813 ∗ 8 mod 59 ≡ 26

— m5 = 5 elle a

a5 = 615 mod 59 ≡ 42
b5 = 3815 ∗ 5 mod 59 ≡ 42
Kenza envoie à Amel comme message chiffré, les paires (4, 10) , (26, 36) , (51, 9) , (11, 26) ,
et (42, 42) .
2. Déchiffrement : Pour déchiffrer et lire ce message, Amel applique l’expression

mi ≡ bi ∗ ai−eA mod p = bi ∗ ap−1−e


i
A
mod p.

Pour déterminer

m1 ≡ 10 ∗ 459−1−11 mod 59 ≡ 10 ∗ 447 mod 59 ≡ 18 correspond à S


59−1−11 47
m2 ≡ 36 ∗ 26 mod 59 ≡ 36 ∗ 26 mod 59 ≡ 4 correspond à E
59−1−11 47
m3 ≡ 9 ∗ 51 mod 59 ≡ 9 ∗ 51 mod 59 ≡ 19 correspond à T
59−1−11 47
m4 ≡ 26 ∗ 11 mod 59 ≡ 26 ∗ 11 mod 59 ≡ 8 correspond à I
59−1−11 47
m5 ≡ 42 ∗ 42 mod 59 ≡ 42 ∗ 42 mod 59 ≡ 5 correspond à F.

Ainsi, le message clair est "SETIF".

Exercice 0.67 Supposons que Amine utilise le crypto-système Knapsack et a comme clef secrète
la suite super-croissante 1, 3, 5, 11, 21, 43, le modulo p = 101 et le multiplicateur w = 39.
Supposons que Amine veut envoyer à Sofia le message HEALTH AND WEALTH. Quelle est la
tâche de chacune des deux personnes ?
Solution :
Amine a choisi p = 101 > 2a6 = 2 × 43 = 86 et w = 39 telle que pgcd(p, w) = pgcd(101, 39) = 1.

66
1. Cryptage : Pour crypter le message HEALTH AND WEALTH et l’envoyer à Sofia,
Amine doit multiplier chaque membre de la suite super-croissante par w = 39 et le réduire
modulo p = 101, c’est à dire, effectuer l’opération bi ≡ w ∗ ai mod p pour produire la suite
de chiffrement suivante :
(39 ∗ 1) mod 101 ≡ 39,
(31 ∗ 3) mod 101 ≡ 16,
(31 ∗ 5) mod 101 ≡ 94,
(31 ∗ 11) mod 101 ≡ 25,
(31 ∗ 21) mod 101 ≡ 11,
(31 ∗ 43) mod 101 ≡ 61.
C’est à dire, 39, 16, 94, 25, 11, 61. Cette dernière est la clef publique de chiffrement d’Amine.
Amine veut envoyer le message HEALTH AND WEALTH, il doit d’abord le conver-
tir en chaîne de caractères de 0’s et 1’s, utilisant la table 15. Le message converti est
00111 00100 00000 01011 10011 00111 00000 01101 00011 10110 00100 00000 01011 10011 00111.
Les parties du message sont concaténées puis divisés en blocs de chiffres, dans ce cas
des blocs de longueur 6 chacun, car le nombre d’éléments de la suite super-croissante
est 6,et rembourrer de 1s le dernier bloc, si c’est nécessaire, pour avoir les blocs suivants
001110 010000 0000010 111001 100111 000000 110100 011101 100010 000000 010111 001100 111111.
Utilisant maintenant la clef publique, Amine transforme les blocs précédents en
39 ∗ 0 + 16 ∗ 0 + 94 ∗ 1 + 25 ∗ 1 + 11 ∗ 1 + 61 ∗ 0 = 130
39 ∗ 0 + 16 ∗ 1 + 94 ∗ 0 + 25 ∗ 0 + 11 ∗ 0 + 61 ∗ 0 = 16
39 ∗ 0 + 16 ∗ 0 + 94 ∗ 0 + 25 ∗ 0 + 11 ∗ 1 + 61 ∗ 0 = 11
39 ∗ 1 + 16 ∗ 1 + 94 ∗ 1 + 25 ∗ 0 + 11 ∗ 0 + 61 ∗ 1 = 210
39 ∗ 1 + 16 ∗ 0 + 94 ∗ 0 + 25 ∗ 1 + 11 ∗ 1 + 61 ∗ 1 = 136
39 ∗ 0 + 16 ∗ 0 + 94 ∗ 0 + 25 ∗ 0 + 11 ∗ 0 + 61 ∗ 0 = 0
39 ∗ 1 + 16 ∗ 1 + 94 ∗ 0 + 25 ∗ 1 + 11 ∗ 0 + 61 ∗ 0 = 80
39 ∗ 0 + 16 ∗ 1 + 94 ∗ 1 + 25 ∗ 1 + 11 ∗ 0 + 61 ∗ 1 = 196
39 ∗ 1 + 16 ∗ 0 + 94 ∗ 0 + 25 ∗ 0 + 11 ∗ 1 + 61 ∗ 0 = 50
39 ∗ 0 + 16 ∗ 0 + 94 ∗ 0 + 25 ∗ 0 + 11 ∗ 0 + 61 ∗ 0 = 0
39 ∗ 0 + 16 ∗ 1 + 94 ∗ 0 + 25 ∗ 1 + 11 ∗ 1 + 61 ∗ 1 = 113
39 ∗ 0 + 16 ∗ 0 + 94 ∗ 1 + 25 ∗ 1 + 11 ∗ 0 + 61 ∗ 0 = 119
39 ∗ 1 + 16 ∗ 1 + 94 ∗ 1 + 25 ∗ 1 + 11 ∗ 1 + 61 ∗ 1 = 246.
Le message chiffré transmis est la suite des entiers positifs suivants : 130, 16, 11, 210, 136, 0, 80, 196, 50, 0, 113

2. Décryptage : Pour lire le message, Sofia doit premièrement calculer la congruence


39w−1 ≡ 1 mod 101. Pour ce faire, elle doit utiliser l’algorithme d’Euclide :
101 = 2 ∗ 39 + 23
39 = 1 ∗ 23 + 16
23 = 1 ∗ 16 + 7
16 = 2∗7+2
7 = 3 ∗ 2 + 1.

67
et sa version étendue :

1 = 7−3∗2
= 7 − 3 ∗ (16 − 2 ∗ 7) = 7 ∗ 7 − 3 ∗ 16,
= 7 ∗ (23 − 1 ∗ 16) − 3 ∗ 16 = 7 ∗ 23 − 10 ∗ 16,
= 7 ∗ 23 − 10 ∗ (39 − 1 ∗ 23) = 17 ∗ 23 − 10 ∗ 39,
= 17 ∗ (101 − 2 ∗ 39) − 10 ∗ 39 = 17 ∗ 101 − 44 ∗ 39.

ou encore si on prend a = 101 et b = 39, alors de l’expression 101 = 2 ∗ 39 + 23,


ou a = 2b + 23 on a 23 = a − 2b et de la seconde expression 39 = 1 ∗ 23 + 16, ou
b = a − 2b + 16, on obtient 16 = b − (a − 2b) = −a + 3b et de la troisième expression
23 = 1 ∗ 16 + 7, ou a − 2b = (−a + 3b) + 7, on obtient 7 = a − 2b − (−a + 3b) = 2a − 5b
et de la quatrième expression 16 = 2 ∗ 7 + 2, ou −a + 3b = 2(2a − 5b) + 2, on obtient
2 = −a + 3b − 2(2a − 5b) = −5a + 13b et la cinquième équation 7 = 3 ∗ 2 + 1 ou
2a − 5b = 3(−5a + 13b) + 1 donne 1 = (2a − 5b) − (15a − 39b) = 17a − 44b. Voir la table
17. D’où, 17 ∗ 101 − 44 ∗ 39 = 1.

101 = 2 × 39 + 23 ou a = 2b + 23 et 23 = a − 2b
39 = 1 × 23 + 16 ou b = a − 2b + 16 et 16 = −a + 3b
23 = 1 × 16 + 7 ou a − 2b = −a + 3b + 7 et 7 = 2a − 5b
16 = 2 × 7 + 2 ou −a + 3b = 2(2a − 5b) + 2 et 2 = −5a + 13b
7=3×2+1 ou 2a − 5b = 3(−5a + 13b) + 1 et 1 = 17a − 44b

Table 17 – Algorithme d’Euclide étendu

Ainsi w−1 ≡ −44 mod 101 ≡ (101 − 44) mod 101 ≡ 57. Chaque nombre du message chiffré
est multiplié par 57 et réduit modulo 101. Pour l’instant,

(130 ∗ 57) mod 101 ≡ 37


(16 ∗ 57) mod 101 ≡ 3
(11 ∗ 57) mod 101 ≡ 21
(210 ∗ 57) mod 101 ≡ 52
(136 ∗ 57) mod 101 ≡ 76
(0 ∗ 57) mod 101 ≡ 0
(80 ∗ 57) mod 101 ≡ 15
(196 ∗ 57) mod 101 ≡ 62
(50 ∗ 57) mod 101 ≡ 22
(0 ∗ 57) mod 101 ≡ 0
(113 ∗ 57) mod 101 ≡ 78
(119 ∗ 57) mod 101 ≡ 16
(246 ∗ 57) mod 101 ≡ 84.

D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 57 et
réduit modulo 101, pour avoir une suite super-croissante. C’est à dire, ai ≡ bi ∗w−1 mod p.

68
Alors,
(41 ∗ 57) mod 101 ≡ 1
(22 ∗ 57) mod 101 ≡ 3
(3 ∗ 57) mod 101 ≡ 5
(47 ∗ 57) mod 101 ≡ 11
(53 ∗ 57) mod 101 ≡ 21
(51 ∗ 57) mod 101 ≡ 43.
Puisque les éléments de la suite obtenue satisfont la propriété que 1 < 3, 1 + 3 = 4 <
5, 1 + 3 + 5 = 9 < 11, 1 + 3 + 5 + 11 = 19 < 21, 1 + 3 + 5 + 11 + 21 = 41 < 43, alors la
suite est super-croissante. Ainsi, on a produit les problèmes de Knapsack suivants :
Pour le premier problème de Havresac, on a 37 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 37 < a6 = 43 ceci dit que x6 = 0 et x1 + 3x2 + 5x3 + 11x4 + 21x5 = 37 et
S = 37 > a5 = 21, donne x5 = 1 et x1 + 3x2 + 5x3 + 11x4 = 37 − 21 = 16, avec
S = 16 > a4 = 11 alors x4 = 1 et x1 + 3x2 + 5x3 = 16 − 11 = 5 où S = 5 = a3 alors x3 = 1
et x2 = x1 = 0. La solution est (0, 0, 1, 1, 1, 0), c’est à dire, 0 + 0 + 5 + 11 + 21 + 0 = 37.
Pour le deuxième problème de Havresac, on a 3 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
produit x6 = x5 = x4 = x3 = x1 = 0 et x2 = 1. La solution est (0, 1, 0, 0, 0, 0).
Pour le troisième problème de Havresac, on a 21 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
produit x6 = x4 = x3 = x2 = x1 = 0 et x5 = 1. La solution est (0, 0, 0, 0, 1, 0).
Pour le quatrième problème de Havresac, on a 52 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 52 > a6 = 43 produit x6 = 1 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 52 − 43 = 9, et
S = 9 < a5 = 21 alors x5 = x4 = 0, et x1 + 3x2 + 5x3 = 9, résultant en x3 = x2 = x1 = 1.
La solution est (1, 1, 1, 0, 0, 1), c’est à dire, 1 + 3 + 5 + 0 + 0 + 43 = 52.
Pour le cinquième problème de Havresac, on a 76 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 76 > a6 = 43 produit x6 = 1 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 76 − 43 = 33, et
S = 33 > a5 = 21 alors x5 = 1, et x1 +3x2 +5x3 +11x4 = 33−21 = 12, et S = 12 > a4 = 7
alors x4 = 1, et x1 + 3x2 + 5x3 = 12 − 11 = 1, et x3 = x2 = 0 et x1 = 1. Ainsi, la solution
est (1, 0, 0, 1, 1, 1), c’est à dire, 1 + 0 + 7 + 0 + 0 = 8.
Pour le sixième et le dixième problèmes de Havresac, on a 0 = x1 + 3x2 + 5x3 + 11x4 +
21x5 + 43x6 , la solution est (0, 0, 0, 0, 0).
Pour le septième problème de Havresac, on a 15 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 15 < a6 < a5 produit x6 = x5 = 0 avec x1 + 3x2 + 5x3 + 11x4 = 15, et
S = 15 > a4 = 11 alors x4 = 1, et x1 + 3x2 + 5x3 = 15 − 11 = 4, et S = 4 < a3 = 5 alors
x3 = 0, et x1 + 3x2 = 4, et x2 = x1 = 1. Ainsi, la solution est (1, 1, 0, 1, 0, 0), c’est à
dire, 1 + 3 + 0 + 11 + 0 + 0 = 15.
Pour le huitième problème de Havresac, on a 62 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 62 > a6 = 43 produit x6 = 1 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 62 − 43 = 19,
et S = 19 < a5 = 21 alors x5 = 0, et x1 + 3x2 + 5x3 + 11x4 = 19, et S = 19 > a4 = 11
alors x4 = 1, et x1 + 3x2 + 5x3 = 19 − 11 = 8, et S = 8 > a3 = 5 alors x3 = 1, et
x1 + 3x2 = 8 − 5 = 3, x2 = 1 et x1 = 0. Ainsi, la solution est (0, 1, 1, 1, 0, 1), c’est à
dire, 1 + 0 + 7 + 0 + 0 = 8.
Pour le neuvième problème de Havresac, on a 22 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 22 < a6 = 43 produit x6 = 0 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 22, et
S = 22 > a5 = 21 alors x5 = 1, et x1 + 3x2 + 5x3 + 11x4 = 22 − 21 = 1, alors
x4 = x3 = x2 = 0 et x1 = 1. Ainsi, la solution est (1, 0, 0, 0, 1, 0), c’est à dire,
1 + 0 + 0 + 0 + 21 + 0 = 22.
Pour le onzième problème de Havresac, on a 78 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,

69
où S = 78 > a6 = 43 produit x6 = 1 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 78 − 43 = 35,
et S = 35 > a5 = 21 alors x5 = 1, et x1 + 3x2 + 5x3 + 11x4 = 35 − 21 = 14, et
S = 14 > a4 = 11 alors x4 = 1, et x1 + 3x2 + 5x3 = 14 − 11 = 3, et x3 = 0 et x2 = 1 et
x1 = 0. Ainsi, la solution est (0, 1, 0, 1, 1, 1), c’est à dire, 1 + 0 + 7 + 0 + 0 = 8.
Pour le douzième problème de Havresac, on a 16 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 , où
S = 16 < a6 < a5 produit x6 = x5 = 0 avec x1 +3x2 +5x3 +11x4 = 16, et S = 16 > a4 = 11
alors x4 = 1, et x1 + 3x2 + 5x3 = 16 − 11 = 5, alors x3 = 1, et x2 = x1 = 0. La solution
est (0, 0, 1, 1, 0, 0), c’est à dire, 1 + 0 + 7 + 0 + 0 = 8.
Pour le treizième problème de Havresac, on a 84 = x1 + 3x2 + 5x3 + 11x4 + 21x5 + 43x6 ,
où S = 84 > a6 = 43 produit x6 = 1 avec x1 + 3x2 + 5x3 + 11x4 + 21x5 = 84 − 43 = 41,
et S = 41 > a5 = 21 alors x5 = 1, et x1 + 3x2 + 5x3 + 11x4 = 41 − 21 = 20, et
S = 20 > a4 = 11 alors x4 = 1, et x1 + 3x2 + 5x3 = 20 − 11 = 9, et x3 = x2 = x1 = 1.
Ainsi, la solution est (1, 1, 1, 1, 1, 1), c’est à dire, 1 + 0 + 7 + 0 + 0 = 8.

Le message déchiffré en binaire est 001110, 010000, 000010, 111001, 100111, 000000, 110100,
011101, 100010, 000000, 010111, 001100, 111111. En groupant les nombres binaires en groupes
de 5 chiffres chacun, on obtient 00111 00100 00000, 01011 10011 00111 00000 01101 00011
10110 00100 00000 01011 10011 00111. D’après la table 15, le texte clair est HEALTHAND-
WEALTH ou HEALTH AND WEALTH.
Exercice 0.68 Supposons que le message chiffré 33 33 38 48 33 32 49 16 33 a été crée par le chif-
frement de Havresac avec le modulo p = 53, le multiplicateur w = 23 et la suite de chiffrement
16, 32, 11, 22. Décrypter ce message.
Solution :
Le message chiffré transmis est la suite des entiers positifs suivants : 33 33 38 48 33 32 49 16 33.
Pour lire le message, on doit premièrement calculer la congruence 23w−1 ∼ = 1 (mod 53). Pour
cela, on doit utiliser l’algorithme d’Euclide :
53 = 2 ∗ 23 + 7
23 = 3 ∗ 7 + 2
7 = 3 ∗ 2 + 1.
et sa version étendue :
1 = 7−3∗2
= 7 − 3 ∗ (23 − 3 ∗ 7)
= 10 ∗ 7 − 3 ∗ 23
= 10 ∗ (53 − 2 ∗ 23) − 3 ∗ 23
= 10 ∗ 53 − 23 ∗ 23.
= (mod 53) ∼
Alors, −23 ∼ = (53 − 23) (mod 53) ∼ = 30 (mod 53). D’où w−1 ∼ = 30 (mod 53). Chaque
nombre du texte chiffré est multiplié par 30 et réduit modulo 53. Pour l’instant,
(33 ∗ 30) (mod 53) ∼
= 36

(38 ∗ 30) (mod 53) = 27
(48 ∗ 30) (mod 53) ∼
= 9

(32 ∗ 30) (mod 53) = 6
(49 ∗ 30) (mod 53) ∼
= 39
(16 ∗ 30) (mod 53) ∼
= 3.

70
D’une manière similaire, chaque élément de la suite de chiffrement est multiplié par 30 et réduit
modulo 53, pour avoir une suite super-croissante. Alors,

(16 ∗ 30) (mod 53) ∼


= 3

(32 ∗ 30) (mod 53) = 6
(11 ∗ 30) (mod 53) ∼
= 12
(22 ∗ 30) (mod 53) ∼
= 24.

Puisque les éléments de la suite obtenue satisfont la propriété que 3 < 6, 3 + 6 = 9 < 12, 3 + 6 +
12 = 21 < 24, alors la suite est super-croissante. Ainsi, on a produit les problèmes de Havresac
suivants :
Pour le premier problème de Havresac, on a 36 = 3x1 + 6x2 + 12x3 + 24x4 où S = 36 > a4 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 + 24 = 36 ou 3x1 + 6x2 + 12x3 = 12, alors x3 = 1, et
3x1 + 6x2 = 0, d’où x2 = x1 = 0 et la solution est (0, 0, 1, 1, ), c’est à dire, 0 + 0 + 12 + 24 = 36.
Pour le deuxième problème de Havresac, on a 27 = 3x1 + 6x2 + 12x3 + 24x4 , où S = 27 > a5 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 = 3 et 3 < a3 = 12 alors x3 = 0, et 3x1 + 6x2 = 3, et
3 < a2 = 6 alors x2 = 0, et 3x1 = 3, ou x1 = 1. Ainsi, la solution est (1, 0, 0, 1), c’est à dire,
3 + 0 + 0 + 24 = 27.
Pour le troisième problème de Havresac, on a 9 = 3x1 + 6x2 + 12x3 + 24x4 , où S = 9 < a4 = 24
produit x4 = 0 avec 3x1 + 6x2 + 12x3 = 9 et 9 < a3 = 12 alors x3 = 0, et 3x1 + 6x2 = 9,
9 > a2 = 6, donne x2 = 1, et 3x1 = 3 d’où x1 = 1. La solution est (1, 1, 0, 0), c’est à dire,
3 + 6 + 0 + 0 = 9.
Pour le quatrième problème de Havresac, on a 6 = 3x1 + 6x2 + 12x3 + 24x4 , où S = 6 < a4 = 24
produit x4 = 0 avec 3x1 + 6x2 + 12x3 = 6 et 6 < a3 = 12 alors x3 = 0, et 3x1 + 6x2 = 6, alors
x2 = 1, et 3x1 = 0, donne x1 = 0, et la solution est (0, 1, 0, 0), c’est à dire, 0 + 6 + 0 + 0 = 6.
Pour le cinquième problème de Havresac, on a 39 = 3x1 +6x2 +12x3 +24x4 , où S = 39 > a4 = 24
produit x4 = 1 avec 3x1 + 6x2 + 12x3 = 15 et 15 > a3 = 12 alors x3 = 1, et 3x1 + 6x2 = 3, et
3 < a2 = 6 donne x2 = 0, et 3x1 = 3, donne x1 = 1. D’où la solution est (1, 0, 1, 1), c’est à
dire, 3 + 0 + 12 + 24 = 39.
Pour le sixième problème de Havresac, on a 3 = 3x1 +6x2 +12x3 +24x4 , où S = 3 < a4 = 24 pro-
duit x4 = 0 avec 3x1 +6x2 +12x3 = 3 et 3 < a3 = 12 alors x3 = 0, et 3x1 +6x2 = 3, et 3 < a2 = 6
ou x2 = 0, et 3x1 = 3, donne x1 = 1. D’où la solution est (1, 0, 0, 0), c’est à dire, 3+0+0+0 = 3.
Le message déchiffré en binaire est 0011, 0011, 1001, 1100, 0011, 0100, 1011, 1000, 0011. En grou-
pant les nombres binaires en groupes de 5 chiffres chacun et en rembourrant le dernier groupe
avec des 0, on obtient 00110 01110 01110 00011 01001 01110, 00001, 10000. Selon la table 15, le
texte clair est GOOD JOBQ ou GOOD JOB.

Exercice 0.69 Supposons que Hana veut envoyer le message "CORRECT" à Samy utilisant le
chiffrement d’El-Gamal, alors le message est converti en suite de nombres {2, 14, 17, 17, 4, 2, 19} ,
avec le nombre premier p = 73 et l’élément primitif α = 15, un générateur du groupe Z73 . Samy
choisit sa clef secrète eS = 43 et calcule βS ≡ αeS mod p = 1543 mod 73 = 45. Puis il envoie
sa clef publique (α, p, βS ) = (15, 73, 45) à Hana. Cette dernière à son tour choisit cinq valeurs
{26, 28, 29, 31, 33, 34, 37} , comme clef secrète eH .
1. Chiffrement : Pour chaque lettre mi du message, Hana calcule les expressions ai ∼ = βHi =
eH
αeHi mod p et bi ∼
= βS i ∗ mi mod p, pour
— m1 = 2 elle a

a1 = 1526 mod 73 ≡ 48
b1 = 4526 ∗ 2 mod 73 ≡ 61

71
— m2 = 14 elle obtient

a2 = 1528 mod 73 ≡ 69
b2 = 4528 ∗ 14 mod 73 ≡ 63

— m3 = 17 elle a

a3 = 1529 mod 73 ≡ 20
b3 = 4529 ∗ 17 mod 73 ≡ 48

— m4 = 17 elle trouve

a4 = 1531 mod 73 ≡ 5
b4 = 4531 ∗ 17 mod 73 ≡ 37

— m5 = 4 elle a

a5 = 1533 mod 73 ≡ 30
b5 = 4533 ∗ 4 mod 73 ≡ 45

— m6 = 2 elle a

a6 = 1534 mod 73 ≡ 12
b6 = 4534 ∗ 2 mod 73 ≡ 27

— m7 = 19 elle a

a7 = 1537 mod 73 ≡ 58
b7 = 4537 ∗ 19 mod 73 ≡ 21.

Hana envoie à Samy comme message chiffré, les paires (48, 61) , (69, 63) , (20, 48) , (5, 37) , (30, 45) , , (12, 27
et (58, 21) .
2. Déchiffrement : Pour déchiffrer et lire ce message, Samy applique l’expression

mi ≡ bi ∗ ai−eS mod p = bi ∗ ap−1−e


i
S
mod p.

Pour déterminer

m1 ≡ 61 ∗ 4873−1−43 mod 73 ≡ 61 ∗ 4829 mod 73 ≡ 2 correspond à C


73−1−43 29
m2 ≡ 63 ∗ 69 mod 73 ≡ 63 ∗ 69 mod 73 ≡ 14 correspond à O
73−1−43 29
m3 ≡ 48 ∗ 20 mod 73 ≡ 48 ∗ 20 mod 73 ≡ 17 correspond à R
73−1−43 29
m4 ≡ 37 ∗ 5 mod 73 ≡ 37 ∗ 5 mod 73 ≡ 17 correspond à R
73−1−43 29
m5 ≡ 45 ∗ 30 mod 73 ≡ 45 ∗ 30 mod 73 ≡ 4 correspond à E
73−1−43 29
m6 ≡ 27 ∗ 12 mod 73 ≡ 27 ∗ 12 mod 73 ≡ 2 correspond à C
73−1−43 29
m7 ≡ 21 ∗ 58 mod 73 ≡ 21 ∗ 58 mod 73 ≡ 19 correspond à T.

Ainsi, le message clair est "CORRECT".

72

Vous aimerez peut-être aussi