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