Date:         Tue, 25 Sep 2001 13:37:18 -0400
Reply-To:     Reynald LERCIER <lercier@club-internet.fr>
Sender:       Number Theory List <NMBRTHRY@LISTSERV.NODAK.EDU>
From:         Reynald LERCIER <lercier@club-internet.fr>
Subject:      Discrete logarithms in GF(2^n)

We are pleased to announce a new record for the discrete logarithm problem. We were able to compute discrete logarithms in GF(2^521). This was done in one month on a unique 525MHz quadri-processors Digital Alpha Server 8400 computer. The approach that we followed is a careful implementation of the general Function Field Sieve as described from a theoretical point of view by Adleman [Ad94].

As far as we know, the largest such computation previously done was performed in GF(2^401) [GoMc92] using an algorithm due to Coppersmith [Co84]. An attempt for GF(2^503) is also described in [GoMc92], but it seems that the linear algebra step was too hard to be completed. Finally, another attempt that we are aware of seems to be a computation in GF(2^607) with Coppersmith's algorithm, but we have no more detail about it [Th01].

The software we used is an adaptation of our GF(p) code [JoLe00] to the characteristic 2 case taking advantage of a generic software based on a Finite Field C Library called ZEN. It turns out, in addition to some specific algorithmic improvement due to the characteristic 2 case, that most of the ideas developed for the characteristic p case can be applied in GF(2^n). A preprint is in preparation [JoLe01].

Precisely, let

GF(2^521) = GF(2)[t]/ (t^521+t^519+t^518+t^517+t^514+t^513+t^512+t^511+t^510+t^509+t^507+t^506+ t^504+t^501+t^499+t^497+t^496+t^494+t^493+t^490+t^489+t^488+t^486+t^481+ t^479+t^478+t^475+t^474+t^473+t^471+t^469+t^466+t^465+t^464+t^463+t^460+ t^455+t^453+t^452+t^450+t^449+t^447+t^445+t^444+t^443+t^442+t^441+t^439+ t^437+t^435+t^433+t^432+t^426+t^425+t^424+t^423+t^419+t^416+t^415+t^414+ t^413+t^408+t^404+t^402+t^401+t^399+t^398+t^397+t^396+t^393+t^392+t^388+ t^387+t^386+t^385+t^383+t^379+t^377+t^376+t^371+t^370+t^367+t^366+t^364+ t^361+t^349+t^345+t^344+t^343+t^341+t^338+t^336+t^335+t^333+t^330+t^329+ t^328+t^327+t^323+t^321+t^315+t^313+t^311+t^310+t^309+t^304+t^300+t^299+ t^298+t^295+t^293+t^292+t^288+t^285+t^283+t^275+t^272+t^271+t^270+t^267+ t^264+t^258+t^256+t^255+t^253+t^250+t^247+t^246+t^241+t^238+t^237+t^236+ t^235+t^233+t^232+t^230+t^229+t^227+t^223+t^220+t^219+t^218+t^215+t^214+ t^212+t^211+t^209+t^201+t^198+t^197+t^193+t^192+t^191+t^190+t^188+t^182+ t^179+t^176+t^175+t^173+t^172+t^169+t^168+t^167+t^165+t^160+t^159+t^158+ t^156+t^154+t^153+t^150+t^149+t^147+t^146+t^145+t^144+t^139+t^137+t^136+ t^135+t^134+t^129+t^128+t^125+t^124+t^121+t^118+t^117+t^116+t^115+t^114+ t^113+t^109+t^104+t^102+t^101+t^100+t^99+t^94+t^86+t^85+t^83+t^82+t^81+ t^77+t^76+t^75+t^74+t^73+t^72+t^70+t^69+t^67+t^64+t^61+t^60+t^58+t^57+ t^56+t^52+t^51+t^49+t^44+t^42+t^39+t^37+t^35+t^33+t^29+t^28+t^26+t^25+ t^24+t^22+t^20+t^19+t^14+t^13+t^10+t^5+t^3+1)

and

g = t.

Let F(x) be the mapping defined from the set of integers to GF(2)[t] which sends an integer x to a polynomial F(x) such that substituting t by 2 in F(x) yields x. For instance, F(5) = t^2+1.

Let

e(t) = F(\lfloor 2^519 \exp(1) \rfloor) = t^520+t^518+ ... +t^6+t^3,

pi(t) = F(\lfloor 2^519 \pi \rfloor) = t^520+t^519+ ... +t^6+t^3+1.

Then,

e(t) = g^2632477621938341298849947024285383602893174070932731771900256\ 0095841802532546548170764837586429284565024547468908202520438\ 76734626779920800953806109457874358,

pi(t) = g^5475291480121133585788840019440488343960416954316922618373225\ 4379376071733986861125955339801609047087900511385882090917394\ 55561530487613513767198209433496844,

and, similarly,

e(t)+pi(t) = g^4159201401120253179205437750401930764399753767149916610720425\ 4336716803038673658116807896648515062724652393078628468989571\ 89950632165222399100568185398518167.

As for the large characteristic case, this computation was done in three steps: _ the sieving step, _ the linear algebra, _ the final computation of individual logarithms.

Sieving: --------

The sieving step consisted in finding couples (a(t),b(t)) \in GF(2)[t]^2 such that the divisor of the function (a(t)*u+b(t)) is of smooth norm in the so-called ``right'' algebraic function field defined by a curve of genus 0 given by

u^5 + u + F(3)

and such that the factorization of the polynomial

F(240821905985569136136) * a(t) + F(34953265866511665874758795389039) * b(t)

is smooth too.

The sieving was done efficiently following a ``sieving by vector'' with ``special-q'' technique classically used in the large characteristic case. It yields many linear equations between ``logarithms of ideals'' of norms smaller than F(6157313) (300000-th irreducible polynomial over GF(2)) in the left field and of norms smaller than F(4194307) (210870-th irreducible polynomial) in the right field.

After a 3 weeks computation on a quadri-processors alpha server 8400 computer, we obtained 472121 equations with 450940 unknowns.

Linear algebra: ---------------

The linear algebra was further divided in two phases.

We first applied structured Gaussian eliminations to reduce our system to 197039 equations in 196939 unknowns with 12220108 non null entries [LaOd91, JoLe00]. Time needed for this on only one processor was about one hour.

Then, the critical phase was the final computation via Lanczos's algorithm [GoLo89]. Our parallelized version of this algorithm took 10 days over 4 processors. At the end, we had ``logarithms for ideals'' of small norms. As a consequence, we had logarithms for small irreducible polynomials.

For instance,

F(3) = g ^ 9468157715212229407617517359865032460621888852201905263910\ 8014879989858843458649522013207549688251336155264179231636\ 5389142863458255063795516109214621940159,

F(7) = g ^ 4099453203357757668284443933632134015543756038796071121488\ 0627918982361730130023913248564073810794905281894307814220\ 62155331435951419903283877277822018761891,

F(11) = g ^ 5993393783882148815449649153225147145392118903526654848802\ 3002525852428492484287946073847933216844736572675883441815\ 48639112359865833736964986527249492347548,

F(13) = g ^ 2970623240405268942772078849793030115355234738306410306089\ 4070723309597937692641825394305454861135524387715335257436\ 94515204664884894850566138301634815009693,

.

.

.

F(4194253) = g ^ 4079138049200743992418711990400391098564834260917757444528\ 8207760275309787006774877156017081053556941109636212184673\ 07521054150349999295225433479794718437954.

Individual Logarithms: ----------------------

We found in few hours, two polynomials,

num(t) = F(416505357177365) * F(13902762769) * F(2209798967) * F(143323807) * F(80322227) * F(27405533) * F(14596985) * F(406927) * F(12367) * F(1717) * F(1051) * F(117) * F(2)^4,

and

den(t) = F(72489510916391) * F(8084941431379) * F(48967193557) * F(222438663) * F(185273873) * F(863301) * F(530537) * F(21729) * F(2693) * F(1033) * F(607) * F(253) * F(59) * F(7) * F(3),

such that

F(4194253)^43*e(t) = num(t)/den(t) in GF(2^521).

Then, using special-q descents, computing discrete ``logarithms for the ideals'' of norms larger than F(6157313) in the left algebraic field was (thanks to a one hour computation for each ideal, on a unique processor) equivalent to compute discrete ``logarithms for ideals'' of norms larger than those of the factor basis in the right algebraic function field. Time needed for computing the corresponding discrete logarithms was at most one hour for each on a unique processor.

So, as a conclusion, time that we need for computing discrete logarithms in GF(2^521) on a 525 MHz quadri-processor alpha server 8400 computer is approximatively 12 hours for each, once the sieving step (21 days) and the linear algebra step (10 days) is performed.

Antoine JOUX (DCSSI, Issy les Moulineaux, France, Antoine.Joux@ens.fr), Reynald LERCIER (CELAR, Rennes, France, lercier@celar.fr).

References: ===========

[JoLe01] A. Joux and R. Lercier, ``The function field sieve in GF(2^n)'', Preprint.

[Th01] E. Thome, ``Computing discrete logarithms over GF(2^607)'', submitted at Asiacrypt 2001.

[JoLe00] A. Joux and R. Lercier, Improvements to the general Number Field Sieve for discrete logarithms in prime fields, acceped for publication at Math. of Comp., 2000. Preprint available at http://www.medicis.polytechnique.fr/~lercier.

[Ad94] L.M. Adleman, ``The Function Field Sieve'', ANTS I, Lecture Notes in Math., 1994, volume 877.

[GoMc92] D.M. Gordon and K.S. McCurley, ``Massively Parallel Computation of Discrete Logarithms''. Advances in Cryptology, CRYPTO'92, Lecture Notes in Computer Science, 1992, volume 740.

[LaOd91] B.A. Lamacchia and A.M. Odlyzko, Computation of discrete logarithm in prime fields, Designs, Codes and Cryptography, 1991, volume 1, pages 47-62.

[GoLo89] G.H. Golub and C.F. van Loan, Matrix computations, chapter 9, The John Hopkins University Press, 1989, Mathematical Sciences.

[Co84] D. Coppersmith, ``Fast Evaluation of discrete logarithms in fields of characteristic 2''. IEEE Transactions on Information Theory, 1984, volume 30, pages 587-594.