L2 Mathématiques Structures algébriques et arithmétique Année

publicité
L2 Mathématiques
Structures algébriques et arithmétique
Année 2008-2009
CHAPITRE III
Rappel et compléments en Arithmétique
I
- Complément sur le groupe
U(Z/nZ)
II - Résolutions pratiques de certaines équations dans
Z
III - Codage RSA
I - Complément sur le groupe U(Z/nZ)
Notation. Pour tout n ∈ N, n ≥ 2 on désigne par U(Z/nZ) l’ensemble des éléments
inversibles de l’anneau Z/nZ. Il se note également (Z/nZ)∗ .
Proposition 1. (Rappel)
Soit n ∈ N, n ≥ 2.
Alors l’ensemble U(Z/nZ) est un groupe pour la multiplication.
Proposition 2. Soit n ∈ N, n ≥ 2.
Soit k ∈ Z, k = 0, on note k la classe de k dans l’anneau quotient Z/nZ. Alors les
trois propriétés suivantes sont équivalentes.
1) k est premier avec n.
2) k est générateur du groupe (Z/nZ, +).
3) k ∈ U(Z/nZ).
Démonstration. L’équivalence 1) ⇐⇒ 2) a déjà été vue plus haut.
Montrons 1) ⇐⇒ 3)
34
et
Z/nZ
On a :
k ∈ U(Z/nZ) ⇐⇒ ∃k ∈ Z tel que k · k = 1
⇐⇒ ∃k ∈ Z tel que k · k − 1 ∈ nZ
⇐⇒ 1 ∈ nZ + kZ
⇐⇒ n et k sont premiers entre eux.
Définition (Rappel). On appelle fonction indicatrice d’Euler la fonction ϕ : N\{0} → N
donnée par :
∀n ∈ N \ {0}, ϕ(n) est le cardinal de l’ensemble {k/k ∈ N, 1 ≤ k ≤ n, k premier avec n}.
Remarque.
1) On a ϕ(1) = 1 par définition.
2) Pour n ≥ 2, d’après la proposition 2, on a :
ϕ(n) = cardinal(U(Z/nZ)).
On verra un peu plus loin comment calculer ϕ(n). Donnons tout de suite un corollaire de la
proposition 2.
Corollaire. On a un isomorphisme de groupes
Aut(Z/nZ) U(Z/nZ).
où Aut(Z/nZ) désigne le groupe des automorphismes du groupe Z/nZ.
En particulier Aut(Z/nZ) est un groupe abélien de cardinal ϕ(n).
Démonstration.
1) Donner un morphisme f de groupes additifs de Z/nZ dans lui-même revient à donner
f (1) = k ∈ Z/nZ et à poser ∀ ∈ Z, f () = f (1) = k = · k en notant la classe
d’un élément dans Z/nZ.
Le morphisme ainsi obtenu est un automorphisme si et seulement s’il est surjectif, c’està-dire si et seulement si k est d’ordre n dans Z/nZ pour l’addition.
F
2) L’application de U(Z/nZ) → Aut(Z/nZ) qui a k associe f telle que ∀, f () = k · est donc une bijection.
D’autre part si k 1 et k 2 sont dans U(Z/nZ) et si ∈ Z/nZ on a :
F (k 1 · k 2 )() = k 1 .k 2 . = F (k 1 ) F (k 2 )() .
Donc F est un morphisme de groupes.
Proposition 3. Soit p un nombre premier et r un entier, r ≥ 2. On a :
1) ϕ(p) = p − 1.
1
2) ϕ(pr ) = (p − 1)pr−1 = pr 1 − .
p
Démonstration.
1) Les entiers k ∈ {1, . . . , p} qui sont premiers avec p sont {1, . . . , p − 1}.
35
2) Il y a exactement pr entiers dans l’ensemble {1, . . . , pr }. Ceux qui ne sont pas premiers
avec pr sont ceux qui sont divisibles par p, donc qui sont du type p · k avec 1 ≤ k ≤
pr−1 , il y en a donc pr−1 .
D’où ϕ(pr ) = pr − pr−1 = pr−1 (p − 1).
Proposition 4. Soit r ∈ N, r ≥ 2. Soient n1 , . . . , nr des nombres entiers, ni ≥ 2, deux
à deux premiers entre eux. Alors l’isomorphisme d’anneaux du théorème chinois
∼
Z/n1 ...nr Z → Z/n1 Z × . . . × Z/nr Z
se restreint en un isomorphisme de groupes :
∼
U(Z/n1 ...nr Z ) → U(Z/n1 Z) × . . . × U(Z/nr Z).
Démonstration. Il suffit d’utiliser les deux lemmes évidents suivants.
Lemme 1. Si A et B sont des anneaux unitaires et si f : A → B est un isomorphisme
d’anneaux unitaires, alors f se restreint en un isomorphisme de groupes de A∗ sur B ∗ .
Lemme 2. Si A1 , . . . , Ar sont des anneaux unitaires, alors (A1 × . . . × Ar )∗ = A∗1 × . . . × A∗r .
Corollaire 1. Soient n1 , . . . , nr des nombres entiers, nr ≥ 2, deux à deux premiers entre
eux. Alors on a :
ϕ(n1 . . . nr ) = ϕ(n1 ) . . . ϕ(nr ).
Corollaire 2. Soient n ∈ N, n ≥ 2
αr
1
n = pα
où p1 , . . . , pr sont des nombres premiers distincts et où ∀i αi ∈ N \ {0}.
1 . . . pr
Alors on a :
r
(α −1)
αr
1
ϕ(n) = ϕ(pα
pi i (pi − 1)
1 ) . . . ϕ(pr ) =
i=1
Exemples, exercices, remarques.
1) ϕ(12) = ϕ(4).ϕ(3) = ϕ(22 )ϕ(3) = 2 × 2 = 4.
Les éléments de {1, . . . , 12} qui sont premiers avec 12 sont en nombre 4 :
(Z/2Z)∗ = {1, 5, 7, 11}.
2) La formule précédente peut aussi s’écrire sous la forme :
1 1
ϕ(n) = n 1 −
... 1 −
.
p1
pr
Exemple d’application : Démontrer que si n et m sont des entiers, n ≥ 2, m ≥ 2,
d
et si d est leur PGCD, alors on a ϕ(mn) = ϕ(m)ϕ(n)
et en déduire ϕ(mn) =
ϕ(d)
ϕ(m) · ϕ(n) ⇐⇒ m et n sont premiers entre eux .
36
2) Montrer que si n ∈ N, n ≥ 2, si d est un diviseur de n alors le nombre d’éléments de
Z/nZ qui sont d’ordre d est ϕ(d) et en déduire :
n=
ϕ(d)
d/n
1≤d≤n
4) Une autre application de la proposition 4 est par exemple de déterminer l’ordre d’un
élément de U(Z/n1 . . . nr Z) en considérant l’élément correspondant au produit
U(Z/n1 Z) × . . . × U(Z/nr Z).
Exemple. Considérons l’élément 2 dans U(Z/105Z). On a
U(Z/105Z) U(Z/3Z) × U(Z/5Z) × U(Z/7Z)
→ (s1 (), s2 (), s3 ()
• L’ordre de s1 (2) dans U(Z/3Z) est 2.
• L’ordre de s2 (2) dans U(Z/5Z) (qui est d’ordre 4) est 4 car 22 ≡ −1 (5).
• L’ordre de s3 (2) dans U(Z/7Z) (qui est d’ordre 6) est 3 car 22 ≡ 1 (7)
23 ≡ 1 (7)
L’ordre de 2 est donc PPCM(2,4,3) = 12.
On pourra pour l’instant admettre le résultat suivant qui sera démontré plus loin dans le
chapitre suivant suivant sur les polynômes.
Proposition 5. Soit K un corps commutatif. Alors tout sous-groupe fini de (K ∗ , ×)
est cyclique.
Corollaire. Si p est un nombre premier alors U(Z/pZ) est un groupe cyclique.
Démonstration. En effet si p est premier alors Z/pZ est un corps.
En fait on peut démontrer les résultats complémentaires suivants. On ne demande pas de les
retenir, on les démontrera en exercice.
1) Si p est un nombre premier, p ≥ 3 et α ∈ N, α ≥ 2, U(Z/pα Z) est cyclique. On a
donc U(Z/pα Z) Z/pα−1 (p − 1)Z.
2) U(Z/2Z) = {1}, U(Z/4Z) Z/2Z. Pour α ∈ N, α ≥ 3, U(Z/2α Z) n’est pas cyclique,
on a U(Z/2α Z) Z/2Z × Z/2α−2 Z.
On va retrouver ici le petit théorème de Fermat et sa généralisation, le théorème d’Euler,
comme application de la structure de groupe de U(Z/nZ).
Théorème 6 (théorème d’Euler). Soit n ∈ Z, n ≥ 2, soit k ∈ Z, k premier avec n.
Alors on a :
k ϕ(n) ≡ 1 mod n.
Démonstration. Le groupe U(Z/nZ) a pour ordre ϕ(n). Pour tout k premier avec n,
l’élément k de Z/nZ est dans ce groupe U(Z/nZ) et donc son ordre dans ce groupe divise
ϕ(n).
37
Dans le cas où n est premier, on retrouve ainsi le petit théorème de Fermat, déjà démontré
par des méthodes élémentaires.
Corollaire 1 (petit théorème de Fermat). Soit p un nombre premier, soit k ∈ Z, k
premier avec n. Alors on a
k p−1 ≡ 1 mod p.
Corollaire 2 (théorème de Wilson). Soit p ∈ N, p ≥ 2. Alors les deux propriétés suivantes
sont équivalentes :
1) p est un nombre premier.
2) (p − 1)! ≡ −1 mod p.
Démonstration. La propriété 2) est évidemment remplie pour p = 2. Supposons désormais
p ≥ 3.
a) Supposons p premier, p = 2.
On considère la partition de U(Z/nZ) obtenue en regroupant dans une classe chaque
élément et son inverse.
Cherchons les classes ne comportant qu’un seul élément, c’est-à-dire les k ∈ U(Z/pZ)
−1
2
tels que k = k , c’est-à-dire k = 1, c’est-à-dire (k − 1)(k + 1) = 0. Comme p est
premier, on obtient deux solutions
k = 1 et k = −1 et comme p = 2, ces solutions
k = −1 (en effet si on fait le produit en regroupant
sont distinctes. D’où
k∈U (Z/pZ)
les éléments par classes, les classes à deux éléments vont avoir une contribution égale
à 1 dans le produit).
D’où (p − 1)! ≡ −1 mod p.
b) Réciproquement, supposons p non premier. On a alors
1 < a < p, 1 < b < p. Supposons qu’il existe k ∈ Z tel que
p = a.b
avec
(p − 1)! + 1 = kp.
Mais alors a divise kp et (p − 1)! donc divise 1, ce qui est impossible.
Exercice. Soit p un nombre premier.
1) On suppose p ≡ 1 mod 4. En utilisant le théorème de Wilson, trouver α ∈ Z/pZ tel que
α2 = −1.
2) Réciproquement, montrer que s’il existe α ∈ Z/pZ tel que α2 = −1, alors on a
p ≡ 1 mod 4.
II - Résolutions pratiques de certaines équations
1. Algorithme d’Euclide et théorème de Bezout.
Rappel. Soient a et b des entiers non nuls, alors ∃δ ∈ N, δ = 0 tel que Za + Zb = Zδ.
On a déjà vu que l’on a δ = PGCD(a, b), ce qui permet de retrouver le théorème de Bezout :
38
Théorème 7 (théorème de Bezout). Soient a et b des entiers non nuls. Alors :
1) PGCD(a, b) = 1 ⇐⇒ 1 ∈ Za + Zb.
2) Si PGCD(a, b) = δ, alors on a δ ∈ Za + Zb.
L’algorithme d’Euclide va permettre dans la pratique de déterminer le PGCD de deux nombres
et de trouver un couple (m, n) ∈ Z × Z tel que ma + nb = PGCD(a, b).
On retrouvera ce procédé pour faire des calculs analogues sur les polynômes.
Rappel de l’algorithme d’Euclide.
• Supposons a et b dans N avec 0 < a < b on pose a0 = a, b0 = b.
• On effectue la division euclidienne de b par a :
∃(p, r) ∈ Z × Z tels que
b = ap + r
0 ≤ r < a.
a) Si on a r = 0 alors PGCD(a, b) = a.
b) Si on a r > 0 on pose a1 = r, b1 = a.
Comme l’ensemble des diviseurs communs à a et b est l’ensemble des diviseurs communs à
a et r, on a PGCD(a, b) = PGCD(a1 , b1 ) avec a1 < a, et on a encore 0 < a1 < b1 . On
réitère le procédé. La suite obtenue (a, b), (a1 , b1 ), . . . ne peut pas être infinie car la suite
des ai est strictement décroissante dans N.
Donc le procédé s’arrête après un nombre fini d’étapes. PGCD(a, b) est le dernier reste non
nul obtenu.
On remarque aussi que a1 et b1 peuvent s’exprimer comme combinaisons à coefficients dans
Z de a et b ; donc chaque (ai , bi ) peut s’exprimer en fonction du précédent (a1−i , b1−i ),
en “remontant les calculs” on va pouvoir exprimer PGCD(a, b) comme combinaison linéaire
de a et b.
Exemples.
1) Calculer PGCD(998,42) par l’algorithme d’Euclide et trouver m et n dans Z tels
que 998m + 42n = PGCD(998, 42)
998
158
32
42
23
42
10
32
1
32
2
10
3
10
0
2
5
(a1 , b1 ) = (32, 42)
(a2 , b2 ) = (10, 32)
(a3 , b3 ) = (2, 10)
PGCD(998,42) = 2 = “dernier reste non nul”
2 = 32 − 3 × (42 − 32)
= −3 × 42 + 4 × (998 − 42 × 23)
= 4 × 998 − 42 × 95
2) Calculer l’inverse de 17 dans Z/26Z.
On considère le codage suivant : on code chaque lettre par un entier x entre 0 et 25 puis
on pose c(x) ≡ 17x + 22 mod 26.
Ecrire la fonction de décodage.
On remarque que 17 est premier avec 26 (il est premier) donc 17 est bien un élément
de U(Z/26Z). Il existe donc m et n dans Z tels que 17m + 26n = 1. En passant
aux classes modulo 26 on obtient :
17 · m = 1 ; donc m est l’inverse de 17.
39
26
9
17
1
17
8
9
1
9
1
8
1
1 = 9 − (17 − 9) = −17 + 2(26 − 17)
= 2 × 26 − 3 × 17
l’inverse de 17 est −3.
On a y = 17 x + 22
17 · x = y + 4
x = −3 y − 12.
2. L’équation diophantienne ax + by = c.
Proposition 8. Soient a, b, c dans Z, avec a = 0, b = 0. On considère l’équation :
(E)
ax + by = C
où les inconnues x et y sont dans Z.
1) Si a et b sont premiers entre eux.
Alors
a) L’équation (E) admet une solution particulière (x0 , y0 ).
b) La solution générale s’écrit en fonction d’une solution particulière (x0 , y0 ) :
(x0 + bk, y0 − ak) pour k ∈ Z.
2) Si a et b sont quelconques (non nuls)
a) L’équation (E) admet des solutions si et seulement si PGCD(a, b) = δ divise c.
b) Si PGCD(a, b) = δ divise c, l’équation (E) est équivalente à l’équation
a
b
c
·x+ ·y = .
δ
δ
δ
(E )
(on est ramené au premier cas).
Démonstration et méthode pratique.
1) Si a et b sont premiers entre eux, on sait calculer par l’algorithme d’Euclide un couple
(m0 , n0 ) ∈ Z2 tel que
am0 + bm0 = 1.
On a alors a · m0 c + b · n0 c = c : on peut donc poser x0 = m0 c et y0 = n0 c.
Si (x, y) ∈ Z2 on a :
(x, y) solution de (E) ⇐⇒ ax + by = c
⇐⇒ ax + by = ax0 + by0
⇐⇒ a(x − x0 ) = b(y0 − y).
On remarque que comme a et b sont premiers entre eux si a divise b(y0 − y), il existe
k ∈ Z tel que (y0 − y) = ak et alors
a(x − x0 ) = b(y0 − y) ⇐⇒ a(x − x0 ) = bak
⇐⇒ (x − x0 ) = bk.
40
D’où
(x, y) solution de (E) ⇐⇒ ∃k ∈ Z tel que
x = x0 + bk
y = y0 − ak.
2) Si a et b sont quelconques (non nuls).
Si (x, y) est une solution de (E) alors PGCD(a, b) divise ax + by, donc divise c.
Donc si PGCD(a, b) ne divise pas c, l’équation (E) n’admet aucune solution. Si
PGCD(a, b) = δ divise c, il est évident que (E) est équivalente à (E ).
Exemples.
1) Résoudre : 998x + 42y = 15 (x, y) ∈ Z2
PGCD(998, 42) = 2 ne divise pas 15, donc l’équation n’admet aucune solution.
2) Résoudre 998x + 42y = 6.
Cette fois-ci le PGCD(998,42) divise 6. L’équation équivaut à :
449x + 21y = 3.
Or on a 1 = 4 × 499 − 21 × 95
d’où 3 = 12 × 499 − 21 × 285.
Solution particulière : (x0 , y0 ) = (12, −285)
Solution générale : (x, y) = (12 + 21k, −285 − 499k) pour k ∈ Z.
3) Congruences multiples.
Rappel. Théorème 9 (théorème chinois. Soient n1 , . . . , nr des entiers, supérieurs ou
égaux à deux et deux à deux premiers entre eux.
Alors l’application canonique :
Z/n1 ...nr Z → (Z/n1 Z × . . . × Z/nr Z)
est un isomorphisme d’anneaux unitaires.
Corollaire. Soient n1 , . . . , nr des entiers, supérieurs ou égaux à deux et deux à deux
premiers entre eux.
Soient a1 , . . . , ar dans Z. Alors le système
(S)
z∈Z
∀i ∈ {1, . . . , r} z ≡ ai mod ni
admet au moins une solution z0 et sa solution générale est z0 + n1 . . . nr Z.
Démonstration. C’est une simple traduction de la bijectivité de l’application Z/n1 . . . nr Z →
Z/n1 Z × . . . × Z/nr Z.
Voyons maintenant une méthode pratique pour déterminer z.
1er cas. r = 2. Soient k1 et k2 dans Z tels que k1 n1 + k2 n2 = 1.
• On peut bien entendu trouver z en écrivant qu’il existe u1 , u2 dans Z tels que
z = a1 + u1 n1 = (a2 + u2 n2 ).
On trouve u1 et u2 tels que (a2 − a1 ) = u1 n1 − u2 n2 puis on pose z = a1 + u1 n1 .
41
• On peut procéder autrement en faisant la remarque suivante. Soient
e1 ≡ 1 mod n1 e1 ≡ 0 mod n2
e2 ≡ 0 mod n1 e2 ≡ 1 mod n2
e1 = k2 n2
e2 = k1 n1
et donc a1 e1 + a2 e2 = z0 est solution particulière de (S)
z0 = a1 k2 n2 + a2 k1 n1
2ème cas. r ≥ 3. On utilise le même procédé. On sait calculer pour tout i ∈ {1, . . . , r} ei ∈ Z
vérifiant :

 e1 ≡ 1 mod ni
 ei ≡ 0 mod n1 . . . nr .
ni
Alors z0 =
r
ai ei est solution particulière de (S).
i=1
Exemple. Résoudre dans Z :
Calcul de e1 .
15 | 2
1 7
Calcul de e2 .
z≡1
z≡2
z≡3
mod 2
mod 3
mod 5
e1 ≡ 1
e1 ≡ 0
mod 2
mod 15
1 = 15 − 2 × 7
10 | 3
1 3
Calcul de e3 .
e2 ≡ 1
e2 ≡ 0
mod 3
mod 10
1 = 10 − 3 × 3
e1 = 15.
e3 ≡ 1
e3 ≡ 0
1=6−5
e2 = 10.
mod 5
mod 6
e3 = 6
Solution particulière : 15 + 2 × 10 + 3 × 6 = 53.
Solution générale : 53 + 30Z.
III - Le procédé de codage RSA (Rivest, Shamir, Adleman).
1. Principe.
Un ou plusieurs utilisateurs doivent pouvoir envoyer un message secret à un destinataire grâce
à un codage. Le codage est dit à clé publique si la clé de codage est publique, c’est-à-dire
connue de tous, mais seule la clé de décodage est secrète et uniquement connue du destinataire.
Grâce à l’arithmétique, on va pouvoir fabriquer des fonctions “trappes”, c’est-à-dire des fonctions bijectives permettant un codage “facile”, mais dont les fonctions réciproques sont “impossibles” à déterminer à partir des fonctions directes.
42
(“impossible” signifie que leur détermination nécessiterait un nombre de calculs qui est avec
la technologie actuelle impossible à faire en un temps raisonnable).
Evidemment, on commence par chiffrer (de façon standard) les caractères, par exemple un
caractère est représenté par deux chiffres, puis les chiffres sont regroupés par blocs (par
exemple 10 chiffres correspondant à 5 caractères) et ce sont les blocs qu’on code.
Dans l’exemple précédent, il faut construire une bijection
éléments. . .
f
sur un ensemble à
1010
2. Une fonction “trappe”.
Proposition 10. Soient p et q des nombres premiers distincts. On pose n = p · q.
Soient e un nombre entier 1 < e < ϕ(n), e premier avec ϕ(n) = (p − 1)(q − 1). Alors
1) L’application Z/nZ → Z/nZ qui à tout x ∈ Z/nZ associe xe est une bijection.
2) Il existe un (unique) entier d, tel que
1 < d < ϕ(n)
e · d ≡ 1 mod ϕ(n).
3) ∀x ∈ Z on a xed ≡ x mod n.
Démonstration.
a) Dans Z/ϕ(n)Z la classe de e est un élément inversible autre que l’élément neutre,
d’où
∃! d ∈ N, 1 < d < ϕ(n) tel que e · d ≡ 1 mod ϕ(n)
(la classe de d est l’inverse de celle de e dans Z/ϕ(n)Z.
b) Démontrons la propriété 3), on obtiendra que la bijection inverse de l’application
Z/nZ → Z/nZ qui à x associe xe est l’application qui à x associe xd .
Par hypothèse, il existe k ∈ Z tel que
ed = 1 + k(p − 1)(q − 1).
Soit x ∈ Z.
1er cas. x ∈
/ pZ, alors xp−1 ≡ 1 mod p
d’où xk(p−1)(q−1) ≡ 1 mod p
d’où xk(p−1)(q−1)+1 ≡ x mod p
2ème cas. x ∈ pZ k(p − 1)(q − 1) + 1 = ed > 0 et on a
xk(p−1)(q−1)+1 ≡ x ≡ 0 mod p.
Dans tous les cas xed ≡ x mod p.
Par un raisonnement analogue xed ≡ x mod q d’où xed ≡ x mod pq.
3. Codage simple.
• On choisit deux grands nombres premiers p et q dont le produit n = pq doit avoir
150 voire 200 chiffres et un nombre e, 1 < e < ϕ(pq), premier avec ϕ(pq). La fonction
de codage est l’application :
C : {0, . . . , n − 1} → {0, . . . , n − 1}
x → reste de la division euclidienne de xe par n.
43
La fonction de décodage est
D : {0, . . . , n − 1} → {0, . . . , n − 1}
x → reste de la division euclidienne de xd par n où d
est défini comme à la proposition 10.
• Sont publics (connues de tous) : n et e.
• Sont secrets (seulement connus du destinataire) p et q (et donc aussi d).
La connaissance de n ne permet pas en un temps raisonnable de calculer la factorisation
en p.q et donc de trouver d.
Exemple.
• Supposons l’usage de l’alphabet décimal suivant :
a = 00, . . . , z = 25 (t = 19) (h = 1)
A = 26, . . . , Z = 51 (M = 38)
0 = 52, . . . , 9 = 61
= 62, . . .
Le message étant Math avec (n, e) = (11023, 11) on a :
n = 73 × 151
d = inverse de 11 modulo 72 × 150
= 5891
• Codage.
Math → 38001907
n = 11023. On peut prendre des blocs de 4 chiffres correspondant à 2 caractères (on ne
pourrait pas prendre des blocs de 6 chiffres, n est ici trop petit).
Il faut calculer (3800)11 mod 11023
(1907)11 mod 11023.
Le résultat sera envoyé comme une suite de nombres à 5 chiffres.
Détaillons un calcul de (1907)11 modulo 11023 on a 11 = 23 + 2 + 1.
(1907)2 ≡ 10082
≡ −941
(1907)4 ≡ (941)2 ≡ 3641
(1907)8 ≡ (3641)2 ≡ 7235
(1907)11 ≡ (1907)8 .(1907)2 .(1907)
≡ (7235) × (−941) × (1907)
≡ −3580 ≡ 7443.
De même (3800)11 ≡ 4177.
Le codage sera : 0417707443.
4. Autres utilisations des fonctions “trappes”.
• On suppose au contraire la fonction D connue de tous et la fonction codage tenue secrète.
Ceci permet d’envoyer des messages codés, non falsifiables et dont tout le monde peut
connaı̂tre le contenu.
44
• Codage avec signature.
On suppose U1 , . . . , Ur divers utilisateurs. Chacun possède une fonction de codage
propre Ci dont la fonction de décodage est Di .
Tout le monde connaı̂t C1 , . . . , Cr , mais pour chaque i seul l’utilisateur Ui connaı̂t
Di .
L’utilisateur Ui peut envoyer à Uj le message M en codant de la façon suivante :
Cj (utilisateur Ui , Di (M )).
Alors Uj en faisant Dj retrouvera le message : utilisateur Ui , Di (M ) et saura qu’il
faut utiliser le code Ci pour retrouver M, et sera sûr que c’est bien de Ui que provient
le message, d’autre part la sécurité du codage est doublée.
45
Téléchargement