Factorisation de Dixon

From Wikipedia, the free encyclopedia

En arithmétique modulaire, la méthode de factorisation de Dixon (aussi connue comme l'algorithme de Dixon) est un algorithme de décomposition en produit de facteurs premiers à but général. Le crible quadratique est une modification de l'idée de base utilisée dans la méthode de Dixon. L'algorithme a été proposé par John D. Dixon, un mathématicien de l'université Carleton, et publié en 1981[1].

La méthode de Dixon est fondée sur la recherche d'une congruence de carrés. La méthode naïve de recherche d'une telle congruence consiste à choisir aléatoirement de valeurs et espérer qu'elles satisfont à la congruence :

est l'entier naturel à factoriser. En pratique, choisir aléatoirement les valeurs de x prend un long temps et s'avère impraticable pour trouver une congruence de carrés. La méthode de Dixon consiste à chercher plusieurs valeurs qui satisfont à une condition plus faible, puis à combiner les valeurs trouvées pour obtenir une congruence de carrés.

Méthode

Soit N le nombre à factoriser. On choisit un entier B (borne) et on calcule l'ensemble P = {p1,..., pn} des nombres premiers inférieurs ou égaux à B, ce qui forme la base de facteurs (en). On cherche ensuite des entiers z tels que z2 mod N soit B-friable, c'est-à-dire que ses facteurs premiers sont tous dans P. On peut dans ce cas trouver des exposants ai tels que

.

Lorsque l'on a trouvé assez de relations de ce genre – en général on cherche à en avoir n + 1 – ce qui donne des entiers zj et des exposants aij, on cherche des coefficients cj égaux à 0 ou 1 tels que

pour .

Il s'agit de trouver une relation de dépendance linéaire entre les colonnes de la matrice à coefficients dans le corps F2 à deux éléments : l'algorithme du pivot de Gauss permet de le faire. On a alors :

,

où tous les exposants du membre de droite sont pairs.

Cela donne une congruence de carrés a2 = b2 mod N, où et et T est l'ensemble des j tels que cj = 1. Cette congruence conduit à une factorisation de N, à savoir N = pgcd(a + b, N) × (N/pgcd(a + b, N)). Cette factorisation peut s'avérer triviale (i.e. N = N × 1), ce qui se produit exactement lorsque a = ±b mod N, auquel cas on peut réessayer avec une autre combinaison de relations. Si on trouve des facteurs non triviaux de N, l'algorithme s'arrête.

Optimisations

Notes et références

Article lié

Related Articles

Wikiwand AI