Solution série 9 Fichier

publicité
sciences de l’information exercices
Cours Sciences de l’Information Printemps 2015
Série 9
Bixio Rimoldi
Délai de soumission : Mercredi 29 avril 2015, 23h59.
Les soumissions seront néanmoins acceptées jusqu’à 24h après le
délai, mais la note sera diminuée de 20%.
Seuls les documents PDF seront acceptés et corrigés (pas de fichiers PS,
DVI, DOCX, RTF, ...). Veillez à ce que vos fichiers puissent être lisibles
avec Adobe Reader avant de les soumettre sur moodle. Toute rendu ne
respectant pas ces consignes recevra la note 0.
Nous apportons votre attention sur le fait que les calculs peuvent
être faits avec l’aide d’une calculatrice uniquement. L’utilisation de
logiciels mathématiques est encouragée, mais seulement pour la
vérification des calculs. L’utilisation d’appareils électroniques ne
sera pas permis lors de l’examen.
(Les réponses non-justifiées ne recevront pas de points)
Problème 9.1. Lisa et Bart communiquent en utilisant la méthode
RSA. Bart choisit donc deux nombres premiers p et q, et calcule leur
produit K = 451. Il choisit un exposant e = 13. Il rend public le
couple (K, e).
1. Quelle est l’exposant de déchiffrement f de Bart?
Solution. 451 étant un petit nombre, on peut le factoriser facilement:
451 = 11 × 41.
L’exposant de déchiffrement est l’inverse de 13 modulo k = ppcm(10, 40) =
40. Pour calculer ([13]40 )−1 , on utilise l’algorithme d’Euclide:
40 = 3 × 13 + 1
13 = 13 × 1 + 0
On a donc 40 − 3 × 13 = 1 et l’inverse de 13 est −3 = 37 (mod 40).
L’exposant de déchiffrement de Bart est donc f = 37.
2. Lisa veut transmettre le message P = 109 à Bart ; quel message C
ce dernier va-t-il recevoir ?
Solution. Bart va recevoir le message
10913 = 109 × ((1092 )2 )3
2 3
= 109 × ((155) )
= 109 × 122
3
(mod 451)
(mod 451)
(mod 451)
= 219 (mod 451).
3. Si le message reçu par Bart est C = 43 , quel est le message
initial P0 que Lisa lui a envoyé ?
1
sciences de l’information exercices
Solution. Le message initial est C37 = 43 × ((((43)2 )2 )3 )3 = 241
(mod 451).
Problème 9.2. Une des utilisations des algorithmes de cryptographie asymétrique est la signature des messages. Le but de cet
exercice est d’étudier un protocole de signature simple basé sur
RSA.
Lisa veut pouvoir signer les messages qu’elle envoie. Pour
cela, elle choisit un couple de nombres premiers ( p, q), donc une
clé publique K = pq, et un exposant e qu’elle rend public. Lisa
calcule l’exposant de déchiffrement f (secret). Un message est
une suite de n symboles u = (u1 , . . . , un ), où chaque symbole
ui ∈ {0, 1, . . . , 9, A, . . . , Z, } est une lettre, un chiffre ou un espace. Pour signer un message, Lisa commence par encoder chaque
lettre ui en une valeur c(ui ) entre 0 et 36: c(0) = 0, c(1) = 1,. . .,
c( A) = 10,. . ., c( Z ) = 35, c( ) = 36. Puis elle transforme le message
u = (u1 , . . . , un ) en un élément [ P(u)]K de Z/KZ par la formule
P(u) = ∑in=1 c(ui )37i−1
Le message [ P(u)]K est ensuite chiffré avec l’exposant de déchiffrement f pour obtenir la signature du message:
[σ(u)]K = ([ P(u)]K ) f , σ(u) ∈ {0, ..., K − 1}
Elle transmet ensuite le message
u1 , u2 . . . , u n , σ ( u )
1. Homer reçoit le message u et la signature σ (u). Il connaît la
clé publique et la méthode d’encodage. Peut-il vérifier que le
message a bien été signé selon ce protocole?
Solution. Homer connaît la clé publique et la méthode d’encodage.
Il peut alors calculer [ P(u)]K et appliquer l’exposant e à [σ(u)]K . Il
obtient alors:
e
([σ(u)]K )e = ([ P(u)]K ) f = ([ P(u)]K )e f = [ P(u)]K
d’après le théorème d’exactitude de RSA. Homer vérifie alors que le
résultat est le message [ P(u)]K . Si oui, Homer peut vérifier que la
signature a été calculée par quelqu’un qui connaît l’exposant de déchiffrement f .
2. Lisa a choisit ( p, q) = (97, 173) et l’exposant public e = 17.
Calculer l’exposant de déchiffrement f .
Solution. Les nombres 97 et 173 sont bien premiers distincts. La clé
privée donne k = ppcm(96, 172) = 25 × 3 × 43 = 4128 qui est
bien premier avec e = 17. L’exposant de déchiffrement f est obtenu en
calculant l’inverse de [e]4128 .
2
sciences de l’information exercices
Pour calculer l’inverse de [17]4128 , on applique l’algorithme d’Euclide:
4128 = 242 × 17 + 14
17 = 1 × 14 + 3
14 = 4 × 3 + 2
3 = 1×2+1
2 = 2×1+0
On a donc:
1 = 1457 × 17 − 6 × 4128
L’inverse de [17]4128 est [1457]4128 , i.e. f = 1457.
3. Quelle est la signature de “CIAO”.
Solution. Calculons d’abord [ P(u)]K . C=12, I=18, A=10, O=24.
4
∑ c(ui )[37]iK−1 = [5027]K
i =1
La signature est donc obtenue en calculant [5027]1457
= [5027]1K+2
K
[1759]K donc σ(u) = 1759.
4 ∗7∗13
4. La signature 14812 correspond-elle au message “POINCARE”?
Solution. Un calcul donne:
8
[ P(“POINCARE”)]K =
∑ c(ui )[37]iK−1 = [1821]K .
i =1
Calculons
[14812]17
K
= [6619]K qui est différent de [1821]K .
5. Lisa a envoyé un message signé “LISA DOIT BART CHF 100”
avec la signature S. Pouvez-vous trouver une signature pour
“LISA DOIT BART CHF 1000000” sans faire de calculs? Que
pensez vous de la méthode de signature de Lisa ?
Solution. La lettre 0 est encodée par c(0) = 0 et donc le nombre
P(u) = ∑in=1 c(ui )37i−1 est le même pour le message u =“LISA DOIT
BART CHF 1000000” que pour le message u0 =“LISA DOIT BART
CHF 100”.
La signature S est donc aussi valide pour ce message. La méthode de
Lisa n’est donc pas très bonne puisqu’on peut modifier le message sans
modifier la signature.
6. Proposer un schéma de signature similaire qui évite ce problème.
Solution. Dans le schéma de Lisa, le nombre P(u) peut être interprété
comme le nombre entier dont la représentation en base 37 est le message
u lu de gauche à droite. Les 0 finaux sont donc non significatifs.
Une solution pour éviter ce problème est d’éviter le 0 car la représentation d’un nombre en base b quelconque est unique si ce nombre ne
comporte pas le chiffre 0 à la fin. On peut utiliser la base 38 et ajouter 1
à l’encodage des caractères du message, i.e. remplacer P(u) par
P0 (u) = ∑in=1 (c(ui ) + 1)38i−1
=
3
sciences de l’information exercices
le reste étant sans changement.
On pourrait aussi penser à encoder en commençant par la droite (
cela ne fonctionne pas car on pourrait alors ajouter des 0 au début du
message), ou encore ajouter un symbole à la fin du message non chiffré
pour indiquer la fin.
Problème 9.3. Lisa utilise RSA avec les paramètres suivants.
— ( p, q) = (83, 59).
— L’exposant de chiffrement est e = 17.
1. Cette combinaison de paramètres est-elle valide? Si oui calculer
la clé pulique K et l’exposant de déchiffrement.
Solution. 83 et 59 sont deux nombres premiers donc ϕ(83 × 59) =
82 × 58 = 4756. On prend k = 4756 = ( p − 1)(q − 1) comme
multiple de p − 1 et q − 1. Cette combinaison de paramètres est donc
valide car 83 et 59 sont deux nombres premiers et e est premier avec
4756.
La clé publique est K = 4897 et l’exposant de déchiffrement f est l’inverse de 17 modulo ϕ(4897) = 4756 qui peut se calculer en utilisant
l’algorithme d’Euclide:
4756 = 279 × 17 + 13
17 = 1 × 13 + 4
13 = 3 × 4 + 1
Donc: 1 = 4 × 4756 − 1119 × 17.
L’exposant de déchiffrement est donc −1119 = 3637 (mod 4756).
On aurait aussi pu prendre comme module pour l’exposant le ppcm(82, 58) =
2378. L’exposant de déchiffrement est alors 17−1 (mod 2378) que
l’on calcul avec l’algorithme d’Euclide pour obtenir 17−1 = 1259
(mod 2378).
Un nombre premier sûr est un nombre premier p de la forme
p = 2p0 + 1 où p0 est aussi un nombre premier. Certaines propriétés des nombres sûrs en rapport avec le chiffrement RSA sont
mentionnées dans le livre du cours.
2. Les nombres p et q de Lisa sont ils sûrs?
Solution. Les nombres de Lisa sont sûrs car p = 41 × 2 + 1, q =
2 × 29 + 1 et 41 et 29 sont des nombres premiers.
3. Trouver tous les messages P de Z/KZ tels que Pe = P mod K
(où ( p, q) = (83, 59)).
Solution. 83 et 59 sont premiers entre eux. Donc par le théorème
des restes chinois, Z/KZ est isomorphe à Z/83Z × Z/59Z et un
isomorphisme est donné par [ x ] pq 7→ ([ x ] p , [ x ]q ).
Donc Pe = P si et seulement si
(
Pe = P mod 83
Pe = P mod 59
Il existe beaucoup de nombres premiers sûrs, on pense que leur nombre
est infini.
4
sciences de l’information exercices
Les nombres 83 et 59 étant sûrs, on utilise le théorème 10.4 pour
conclure que:
(
P = [0]83 , P = [1]83 ou P = [−1]83
P = [0]59 , P = [1]59 ou P = [−1]59
L’application [ x ] pq 7→ ([ x ] p , [ x ]q ) étant un isomorphisme, il y a donc
exactement 9 possibilités, qui sont:
(0, 1, 414, 2241, 2242, 2655, 2656, 4483, 4896)
Nous donnons un exemple pour résoudre. Tout d’abord, en utilisant
Bézout, nous avons que 1 = 59 ∗ 38 − 83 ∗ 27. Si [ x ]83 = [1]83 et
[ x ]59 = [−1]59 , alors on peut trouver k et k0 tels que
x = 1 + 83k
x = −1 + 59k0
et donc 1 + 83k = −1 + 59k0 ou encore 2 = −83k + 59k0 . Avec
l’expression déduite à l’aide de Bézout, nous avons que 2 = 59 ∗ 38 ∗
2 − 83 ∗ 27 ∗ 2 et on peut donc prendre k = 54 et k0 = 76. Utilisant ces
valeurs pour k et k0 , nous obtenons bien x = 4483. Les autres réponses
se calculent de façon similaire.
4. On suppose que p = 17.
(a) p est-il sûr?
Solution. 17 n’est pas sûr car 17 = 2 × 8 + 1 et 8 n’est pas un
nombre premier.
(b) Résoudre l’équation x e = x dans Z/17Z.
Solution. D’après le théorème de Fermat, tous les éléments de
Z/17Z vérifient x17 = x. Tout élément de Z/17Z est donc solution de l’équation.
(c) Combien y a-t-il de messages P de Z/(17 × 59)Z tels que
Pe = P?
Solution. 17 et 59 sont premiers entre eux. Donc par le théorème
des restes chinois, Z/(17 × 59)Z est isomorphe à Z/17Z ×
Z/59Z et un isomorphisme est donné par [ x ]17×59 7→ ([ x ] p , [ x ]q ).
Donc Pe = P si et seulement si
(
Pe = P mod 17
Pe = P mod 59
L’application [ x ]17×59 7→ ([ x ] p , [ x ]q ) étant un isomorphisme, il y a
donc 17 × 3 = 51 messages tels que Pe = P. On utilise ici le fait
qu’il y a 3 solutions dans Z/59Z, voir la question précédente.
5
Téléchargement