Problème de la résiduosité quadratique

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Ébauche En théorie algorithmique des nombres, le problème de la résiduosité[note 1] quadratique est celui de distinguer, à l'aide de calculs, les résidus quadratiques modulo un nombre composé N fixé.

Ce problème est considéré comme étant calculatoirement difficile dans le cas général et sans information supplémentaire[1]. Par conséquent, il s'agit d'un problème important en cryptographie où il est utilisé comme hypothèse calculatoire comme indiqué dans la section Application.

Formulation

Soit N un nombre composé de la forme particulière N=pq, où p et q sont deux nombres premiers distincts. L'application d'élévation au carré,

a(modN)a2(modN)

est un endomorphisme du groupe des inversibles de l'anneau ℤ/N, et son noyau est isomorphe au groupe de Klein, d'ordre 4. Par conséquent, l'image de cette application est un sous-groupe d'indice 4, donc d'ordre (p-1)(q-1)/4. Ce sous-groupe est donc d'indice 2 dans celui des éléments dont le symbole de Jacobi vaut 1. Le symbole de Jacobi permet ainsi d'éliminer la moitié des éléments du groupe (ceux dont le symbole vaut -1 et qui ne sont donc pas des carrés), et le problème reste de déterminer, pour un élément arbitraire de la moitié restante, si c'est un carré ou pas (il a une chance sur deux d'en être un).

Application

Le problème de la résiduosité quadratique est utilisé comme hypothèse de complexité dans différents protocoles cryptographiques, comme le cryptosystème de Goldwasser-Micali, ou pour le générateur de nombres pseudo-aléatoires de Blum Blum Shub.

Calcul avec factorisation de N connue

Si la factorisation de N est connue, le problème devient alors calculatoirement facile, grâce à la loi de réciprocité quadratique et au théorème des restes chinois. La procédure suivante détermine si x est un carré modulo N.

  1. Calculer xp:=x mod p et xq:=x mod q.
  2. Si xp(p1)/2=1 mod p et xq(q1)/2=1 mod q, alors x est un résidu quadratique modulo N.

Ce qui aboutit, en utilisant l'exponentiation modulaire rapide par exemple, à un algorithme de complexité 𝒪((logN)2), ce qui est polynomial en la taille de l'entrée (ici logN).

Notes et références

Modèle:Traduction/Référence

Notes

Modèle:Références

Références

Modèle:Références

Article connexe

Problème de la résiduosité supérieure

Modèle:Portail


Erreur de référence : Des balises <ref> existent pour un groupe nommé « note », mais aucune balise <references group="note"/> correspondante n’a été trouvée