Skip to content →

Category: featured

A cat called CEILIDH

We will see later that the cyclic subgroup T6Fp6 is a 2-dimensional torus.

Take a finite set of polynomials fi(x1,,xk)Fp[x1,,xk] and consider for every fieldextension FpFq the set of all k-tuples satisfying all these polynomials and call this set

X(Fq)=(a1,,ak)Fqk : fi(a1,,ak)=0 i

Then, T6 being a 2-dimensional torus roughly means that we can find a system of polynomials such that
T6=X(Fp) and over the algebraic closure Fp we have X(Fp)=Fp×Fp and T6 is a subgroup of this product group.

It is known that all 2-dimensional tori are rational. In particular, this means that we can write down maps defined by rational functions (fractions of polynomials) f : T6Fp×Fp and j : Fp×FpT6 which define a bijection between the points where f and j are defined (that is, possibly excluding zeroes of polynomials appearing in denumerators in the definition of the maps f or j). But then, we can use to map f to represent ‘most’ elements of T6 by just 2 pits, exactly as in the XTR-system.

Making the rational maps f and j explicit and checking where they are ill-defined is precisely what Karl Rubin and Alice Silverberg did in their CEILIDH-system. The acronym CEILIDH (which they like us to pronounce as ‘cayley’) stands for Compact Efficient Improves on LUC, Improves on Diffie-Hellman

A Cailidh is a Scots Gaelic word meaning ‘visit’ and stands for a ‘traditional Scottish gathering’.

Between 1997 and 2001 the Scottish ceilidh grew in popularity again amongst youths. Since then a subculture in some Scottish cities has evolved where some people attend ceilidhs on a regular basis and at the ceilidh they find out from the other dancers when and where the next ceilidh will be.
Privately organised ceilidhs are now extremely common, where bands are hired, usually for evening entertainment for a wedding, birthday party or other celebratory event. These bands vary in size, although are commonly made up of between 2 and 6 players. The appeal of the Scottish ceilidh is by no means limited to the younger generation, and dances vary in speed and complexity in order to accommodate most age groups and levels of ability.

Anyway, let us give the details of the Rubin-Silverberg approach. Take a large prime number p congruent to 2,6,7 or 11 modulo 13 and such that Φ6(p)=p2p+1 is again a prime number. Then, if ζ is a 13-th root of unity we have that Fp12=Fp(ζ). Consider the elements

{z=ζ+ζ1y=ζ+ζ1+ζ5+ζ5

Then, for every  (u,v)Fp×Fp define the map j to T6 by

j(u,v)=rs13r+s13T6

and one can verify that this is indeed an element of T6 provided we take

{r=(3(u2+v2)+7uv+34u+18v+40)y2+26uy(21u(3+v)+9(u2+v2)+28v+42)s=3(u2+v2)+7uv+21u+18v+14

Conversely, for tT6 write t=a+b13 using the basis Fp6=Fp31Fp313, so a,bFp3 and consequently write

1+ab=wy2+u(y+y22)+v

with u,v,wFp using the basis y2.y+y22,1 of Fp3/Fp. Okay, then the invers of j iis the map f : T6Fp×Fp given by

f(t)=(uw+1,v3w+1)

and it takes some effort to show that f and j are indeed each other inverses, that j is defined on all points of Fp×Fp and that f is defined everywhere except at the two points
1,2z5+6z34z1T6. Therefore, as long as we avoid these two points in our Diffie-Hellman key exchange, we can perform it using just 2=ϕ(6) pits : I will send you f(ga) allowing you to compute our shared key f(gab) or gab from my data and your secret number b.

But, where’s the cat in all of this? Unfortunately, the cat is dead…

Leave a Comment

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!

Leave a Comment

key-compression

The main application of tori to cryptography is to exchange keys more efficiently while preserving the same security standards.

In the Diffie-Hellman key-exchange one interchanges elements of the finite field Fq where q=pN is a prime-power of a large prime number p. If we call an element of the prime field Fp a pit (similar to bit when p=2) then we can measure transmssions in pits. An element hFq requires N pits, for we can write the finite field as the quotient of ring of polynomials Fp[x]

Fq=Fp[x](f(x))

modulo an _irreducible_ polynomial f(x) of degree N. Hence, any hFq can be written as a polynomial of degree <N,
h=a1+a2x++aNxN1
with all aiFp, so we can represent h=(a1,a2,,aN) as N pits. Now, we are going to limit this number of pits (from N to about ϕ(N) where ϕ is the Euler totient function, that is the number of integers smaller than N and coprime to it) by restricting the elements h to be transfered to a subgroup of the group of units of the finite field Fq while not compromising on the security of the public key system (the large order of the basic element gFq of which h is a power).

To see that this is indeed possible, let us consider the easiest case (that of N=2) and keep the discussion tori-free (those of you who know more will realize that Hilbert’s Satz 90 is never too far away…). If q=p2 then the order of the cyclic group Fq is p21=(p1)(p+1) so in order to get a safe system let us choose the large prime number p such that also tex/2=r $ is a prime number.

Right, now define T2 to be the subgroup of Fq of order p+1 and let g be a generator of it that we will use in the Diffie-Hellman exchange. Can we describe the element of T2 (our torus in disguise)? Take dFp a non-square element, then we can write
Fq=Fp(d) and T2=a+bd : (a+bd)p+1=1 (here, a,bFp). But we claim that
 (a+bd)p=abd. Indeed, ap=a,bp=b and from Fermat’s little theorem we deduce that

1=(dp)dp12 mod(p)

where the middle term is the Legendre symbol which is equal to -1 because d was a non-square modulo p. That is, we can then write T2 as the algebraic variety of dimension one defined over Fp and given by the equation

T2=a+bdFq  (a,b)F2 : a2db2=1

Because T2 is of dimension one over Fp we can hope that most of its elements can be represented by just one pit (instead of the two pits necessary to represent them as elements of Fq). This is indeed the case, for we have explicit maps (in geometric terms, these maps show that T2 is a rational variety)

j : FpT2  j(a)=a+dad=a2+da2d+2aa2dd

which has a well-defined invers on the complement of 1,1

f : T21,1Fp  f(a+bd)=1+ab

From the right-hand description of j(a) one deduces that indeed we have that f(j(a))=a. Using this we can indeed compress the Diffie-Hellman exchange by a factor 2.

Instead of giving you the element gaT2 computed using my secret number a, I’ll send you (using only one pit) the number f(ga)Fp. On this number, you can apply the j-function to recover ga and then compute the common key  (ga)b=gab using your secret number b). Still, we didnt compromise on security because we used the most difficult elements around in Fq. By going to higher dimensional tori one can even improve on the efficiency rate!

Leave a Comment