Skip to content →

ECSTR aka XTR

The one thing that makes it hard for an outsider to get through a crypto-paper is their shared passion for using nonsensical abbreviations. ECSTR stands for “Efficient Compact Subgroup Trace Representation” and we are fortunate that Arjen Lenstra and Eric Verheul shortened it in their paper The XTR public key system to just XTR. As both of them speak Dutch, they will know why Ive chosen a magpie-picture on the left… Btw. there is a nice MSRI-talk by Lenstra, starting off with a couple of jokes on what ECSTR is NOT meant to abbreviate (one of them being ‘Elliptic Curve Systems Too Risky’… (( I may even start to share their passion… )) ).

The XTR-system uses safety of Fp6 in the Diffie-Hellman key exchange while transmitting only 2=ϕ(6) pits. The first question one asks is : why the jump from N=2 from last time to N=6? Well, remember that (conjecturally) we want to use safety of Fq for q=pN while using only ϕ(N) pits. That is, we want to have Nlog(p) large (for safety) while at the same time ϕ(N)log(p) small (for efficiency). Thus, the most useful N’s to consider are those in the sequence

N=1, 2, 6=2.3, 30=2.3.5, 210=2,3,5,7, 

that is, the products of the first so many prime numbers. The number of elements of the cyclic group Fq is equal to

p61=(p1)(p+1)(p2+p+1)(p2p+1)

and that the subgroup of order p1 can be embedded in Fp, that of order p+1 can be embedded in Fp2, that of order p2+p+1 can be embedded in Fp3, BUT that the subgroup of order Φ6(p)=p2p+1 CANNOT be embedded in any Fpi for i=1,2,3, or in other words, the p2p+1 subgroup is as hard as Fp6. So, let us take a generator g of the subgroup T6 of order p2p+1 and do the Diffie-Hellman trick with it in a modified manner.

Galois groups of finite fields are cyclic and generated by the Frobenius xxp. In particular, the Galois group Gal(Fp6/Fp2)=C3 is cyclic of order three and consists of the auromorphisms 1=id,σ=(xxp2),σ2=(xxp4), so the corresponding trace map is given by

Tr : Fp6Fp2Tr(x)=x+xp2+xp4

So, how do we perform our key-exchange using my secret number a and yours b? Well, I’ll send you Tr(ga) and as this is an element of the quadratic extension Fp2 I’ll need just 2 pits instead of 6 and you will send me likewise Tr(gb). I claim that the common key we (and only we) can compute is Tr(gab). How does this work?

Given any element xT6Fp6 we can compute the 3-element set Cx=x,σ(x),σ(x2) and hence the characteristic polynomial
 (tx)(tσ(x))(tσ2(x))

=t3(x+σ(x)+σ2(x))t2+(xσ(x)+xσ2(x)+σ(x)σ2(x))txσ(x)σ2(x)

The first coefficient x+σ(x)+σ2(x) is the trace Tr(x) and the second and third coefficients are respectively Tr(xσ(x)) and the norm N(x). Now, if xT6 one can show that

Tr(xσ(x))=Tr(x)p and N(x)=1

That is, from knowing only Tr(x) we can compute the characteristic polynomial and hence recover the 3-element set h,σ(h),σ2(h)!

If I give you Tr(ga) you can compute from it the 3-set ga,σ(ga),σ2(ga) and raise them all the the b-th power (b being your secret number) to obtain

gab,σ(ga)b,σ2(ga)b=gab,σ(gab),σ2(gab)

but then you also know our shared key Tr(gab)=gab+σ(gab)+σ2(gab)… Done!

Published in featured

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *