TD - LIFL

publicité
École normale supérieure
Département d’informatique
2011-2012
Algorithmique et Programmation
TD n◦ 8 : Entiers
Exercice 1.
Multi-exponentiation
Soit G un groupe commutatif d’ordre n. Donner un algorithme qui étant donnés g1 , . . . , g` ∈ G
`
Y
et des entiers e1 , . . . , e` ∈ {0, . . . , n−1} calcule le produit
giei en O(log(n)+2` ) multiplications
i=1
dans G.
Primes ∈ N P
Exercice 2.
1. Montrer que un entier n est premier si et seulement si il existe un entier a ∈ Z tel que
an−1 ≡ 1 mod n mais a(n−1)/q 6≡ 1 mod n pour tout diviseur premier q de n − 1.
2. En déduire que tout nombre premier admet un certificat de primalité polynomial (en sa
longueur binaire), i.e. Primes ∈ N P.
Exercice 3.
n
On appelle n-ième nombre de Fermat le nombre Fn = 22 + 1 pour n > 0.
Test de Pépin
1. Montrer que si Fn est premier, alors un entier g est un générateur de (Z/Fn Z)∗ si et
seulement si
g
= −1.
Fn
En déduire que si Fn est premier alors 3 est un générateur de (Z/Fn Z)∗ .
2. Montrer que si 3(Fn −1)/2 ≡ −1
(mod Fn ) alors Fn est premier.
Exercice 4 (Nombre pseudo-premier de Fermat en base a). Soit a ≥ 2 un entier. En considérant
les entiers de la forme (a2p − 1)/(a2 − 1) où p est un nombre premier ne divisant pas a2 − 1,
montrer qu’il existe une infinité de nombres pseudo-premiers de Fermat en base a.
Primes ∈ BPP
Exercice 5.
1. Soit n un entier premier impair supérieur ou égal à 3 : n = q2p + 1 avec p impair et soit
a ∈ Z premier à n. On considère la suite (b0 , b1 , . . . , bp ) d’entiers compris entre 0 et n − 1
définie par :
b0 ≡ aq
(mod n),
b1 ≡ b20
(mod n),
(a) Montrer que bp = 1.
1
...,
bp ≡ b2p−1
(mod n).
(b) Si b0 6= 1 montrer qu’il existe un indice i tel que bi = −1.
2. Montrer que si n est un entier composé impair supérieur ou égal à 3 : n = q2p + 1 avec
p impair alors le nombre d’entiers a ∈ (Z/nZ)∗ pour lesquels la suite (bi )i∈[[0,p]] vérifie les
deux conditions précédentes est inférieur à (n − 1)/2.
3. En déduire que Primes ∈ BPP.
Exercice 6.
Logarithme discret
Soit G un groupe cyclique d’ordre n engendré par g et soit h ∈ G. Le problème du logarithme
discret dans G consiste a trouver l’unique entier x dans {1, . . . , n} tel que h = g n .
√
1. Proposer un algorithme qui résoud le problème du logarithme discret en O( n) opérations
dans le groupe G.
2. Montrer que si la factorisation de n = pe11 · · · pekk est connue (où les pi sont des nombres
premiers deux à deux distincts),
alors il existe
un algorithme qui résoud le problème du
P
√ k
logarithme discret en O
i=1 ei (ln n + pi ) opérations dans le groupe G.
Exercice 7.
Soit p un nombre premier.
Extraction de racine carrée modulo p
1. Nous supposons que p ≡ 3 mod 4. Donner un algorithme de complexité 0((log p)3 ) qui
étant donné α ∈ {1, . . . , p − 1} tel que (α|p) = 1 retourne β ∈ {1, . . . , p − 1} tel que
β 2 ≡ α mod p.
2. Nous supposons désormais que p ≡ 1 mod 4. Posons p = 2h m + 1.
(a) Donner un algorithme probabiliste qui étant donné p retourne un élément γ de
{1, . . . , p − 1} tel que (γ|p) = −1 en temps espéré O((log p)2 ). Montrer qu’un tel
γ engendre l’unique sous-groupe d’ordre 2h de (Z/pZ)∗ .
(b) Soit α ∈ {1, . . . , p − 1} tel que (α|p) = 1. Montrer que αm appartient au sous-groupe
engendré par γ et en utilisant un algorithme de logarithme discret, en déduire un
calculer une racine carré de αm modulo p.
(c) Conclure en donnant un algorithme permettant de calculer les racines carrés de α en
temps O((log p)3 + h log(h) log(p)2 ).
2
Téléchargement