2. Tester si un nombre est une puissance pure
Il n’est pas évident de décider en temps polynomial si nest une puissance pure (i.e. de la forme abpour
b>1et anon fixé). On déduit facilement de l’algorithme d’exponentiation modulaire un algorithme de
calcul de aben O(log n)lorsque aet bsont fixés.
2.1. Montrez que si an’est pas donné, il est possible de retrouver sa valeur O(log2n).
2.2. Donnez une majoration de ben fonction de log(n)et déduisez-en le nombre de valeurs de bà tester si
bn’est plus fourni en entrée.
2.3. Déduisez-en le coût d’un algorithme pour vérifier que nn’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 ppremier, run générateur du groupe et 0<n<p,
log(p, r, n)est l’unique entier mqui vérifie rm≡nmod 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 fonctionne-
ment : on choisit k∈Z�
p−1aléatoire et secret, inversible dans Z�
p−1. On définit la signature du message M
comme :
sigK(M,k)=(γ,δ)
pour
γ=αkmod pδ=(M−aγ)k−1mod (p−1)
4.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 ket aet
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−1mod (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)γγmmod p.
2