M1 IFI, le 9 mars 2011 AKS, Log discret, etc. . . 1 Complexité des opérations arithmétiques On rappelle la complexité des opérations arithmétiques pour des entiers sur N bits : Opération multiplication division multiplication modulaire Notation M (N ) D(N ) Mmod (N ) Complexité O(N log N log log N ) O(M (N )) O(M (N )) Asymptotiquement, un terme en log log est négligeable devant un terme plus que logarithmique. 2 Un algorithme polynomial de test de primalité En s’appuyant sur l’identité (1) (un dérivé du petit théorème de Fermat) Agrawal, Kayal et Saxena ont pu construire un algorithme déterministe de test de primalité. si pgcd(a, n) = 1, 1. Preuve [(x − a)n ≡ (xn − a) mod n ⇔ n premier] (1) de l’égalité (1) � � 1.1. Prouvez que si n est premier, n divise les coefficients binomiaux ni pour i �= 1, n. 1.2. Si n est composé, il existe� q�premier diviseur de n. Soit q k la plus grande puissance de q qui divise n. Montrez que q k ne divise pas nq . 1.3. Déduisez-en l’identité (1). Dès lors que l’on dispose de l’identité (1), étant donné un entier n dont on veut décider la primalité, il suffit de choisir P (x) = (x − a) et de vérifier si l’identité (1) est satisfaite. Cependant, cette technique est coûteuse en temps dans le pire des cas. L’idée qui permet d’améliorer cette complexité est d’évaluer la congruence modulo un polynôme xr − 1 pour un premier r bien choisi1 . Une itération de l’algorithme sera alors (x − a)n ≡ (xn − a) mod (xr − 1, n) √ On vérifie cette nouvelle congruence pour un petit nombre de valeurs de a (de l’ordre de O( r log n)). On dispose alors de l’algorithme suivant dont on se propose d’étudier la ligne 1. Algorithme 1 Entrée : un entier n > 1 1. Si n est de la forme ab , b > 1 alors Retourne (n est COMPOSE) fsi 2. Trouver le plus petit r tel que l’ordre de n dans Z�r or (n) > 4�log2 n� (or (n) est le plus petit k √ t.q. nk ≡ 1 mod r) 3. Pour a ← 1 jusqu’à 2� r log n� faire 4. Si (x − a)n �≡ (xn − a) mod (xr − 1, n) alors Retourne (n est COMPOSE) fsi fpour Retourne (n est PREMIER) 1 Un théorème de théorie des nombres garantit qu’il existe un tel r de l’ordre de O(log6 n) 1 2. Tester si un nombre est une puissance pure Il n’est pas évident de décider en temps polynomial si n est une puissance pure (i.e. de la forme ab pour b > 1 et a non fixé). On déduit facilement de l’algorithme d’exponentiation modulaire un algorithme de calcul de ab en O(log n) lorsque a et b sont fixés. 2.1. Montrez que si a n’est pas donné, il est possible de retrouver sa valeur O(log2 n). 2.2. Donnez une majoration de b en fonction de log(n) et déduisez-en le nombre de valeurs de b à tester si b n’est plus fourni en entrée. 2.3. Déduisez-en le coût d’un algorithme pour vérifier que n n’est pas une puissance pure. 3 Le logarithme discret Depuis le résultat Primes in P, il est possible que P=NP ∩ co-NP soit vrai (pour le log. discret). On s’intéresse ici au problème Plog qui est lui aussi dans la classe NP ∩ co-NP. On définit la fonction log(p, r, n) comme suit : pour p premier, r un générateur du groupe et 0 < n < p, log(p, r, n) est l’unique entier m qui vérifie rm ≡ n mod p, un problème de calcul. 3. Construction du problème de décision On construit Plog un problème de décision à partir du problème de calcul en ajoutant t, un paramètre entier qui minore la valeur du logarithme discret. 3.1. Formulez Plog sous la forme d’un problème de décision. 3.2. Montrez que s’il s’avérait que Plog ∈ P, on serait en mesure de calculer le logarithme discret en temps polynomial. 4 Sécurité de la signature par El Gamal On étudie ici quelques propriétés de la signature par El Gamal dont on rappelle brièvement le fonctionnement : on choisit k ∈ Z�p−1 aléatoire et secret, inversible dans Z�p−1 . On définit la signature du message M comme : sigK (M, k) = (γ, δ) pour 4.1 γ = αk mod p δ = (M − aγ)k −1 mod (p − 1) Panne de générateur aléatoire Supposons que le générateur de nombres pseudo-aléatoires d’Alice soit tombé en panne. Alice décide d’utiliser a, son paramètre privé, à la place. 1. Comment un indiscret qui intercepte (M, γ, δ) peut-il se rendre compte de cette panne ? 2. Comment notre indiscret peut utiliser cette panne à son avantage pour retrouver les valeurs de k et a et casser ainsi le système de signature d’Alice ? 4.2 Variation autour d’El Gamal Il existe plusieurs variantes à la signature d’El Gamal qui sont toutes obtenues en modifiant l’équation de signature : δ = (M − aγ)k −1 mod (p − 1). 1. On considère l’équation de signature δ = aγ + km mod (p − 1). Montrer la validité du prédicat Ver(M, γ, δ) = vrai ⇔ αδ = (αa )γ γ m mod p. 2 Dies ist ein WWF-Dokument und kann nicht ausgedruckt werden! Das WWF-Format ist ein PDF, das man nicht ausdrucken kann. So einfach können unnötige Ausdrucke von Dokumenten vermieden, die Umwelt entlastet und Bäume gerettet werden. Mit Ihrer Hilfe. Bestimmen Sie selbst, was nicht ausgedruckt werden soll, und speichern Sie es im WWF-Format. saveaswwf.com This is a WWF document and cannot be printed! The WWF format is a PDF that cannot be printed. It’s a simple way to avoid unnecessary printing. So here’s your chance to save trees and help the environment. Decide for yourself which documents don’t need printing – and save them as WWF. saveaswwf.com Este documento es un WWF y no se puede imprimir. ® SAVE AS WWF, SAVE A TREE Un archivo WWF es un PDF que no se puede imprimir. De esta sencilla manera, se evita la impresión innecesaria de documentos, lo que beneficia al medio ambiente. Salvar árboles está en tus manos. Decide por ti mismo qué documentos no precisan ser impresos y guárdalos en formato WWF. saveaswwf.com Ceci est un document WWF qui ne peut pas être imprimé! Le format WWF est un PDF non imprimable. L’idée est de prévenir très simplement le gâchis de papier afin de préserver l’environnement et de sauver des arbres. Grâce à votre aide. Définissez vous-même ce qui n’a pas besoin d’être imprimé et sauvegardez ces documents au format WWF. saveaswwf.com ® WWF International – World Wide Fund For Nature, Gland/Switzerland.