]> Programming ECC - The Tate Exponentiation

The Tate Exponentiation

The fact that each element of 𝔽 q has order q1 can be used to shave time off the final exponentiation of a Tate pairing computation. Suppose we wish to raise a𝔽 q k to the power of

n=q k1 r=r 1 dkΦ d(q)

Since k is the embedding degree, we have rΦ k(q) (and no smaller cyclotomic polynomial, otherwise the embedding degree would be smaller). Then compute a n by first computing a (q k1 )/Φ k(q) using a few multiplications and inversions by exploiting the fact that x q=x for all x𝔽 q, and then exponentiating by Φ k(q)/r in the usual way.

For example, suppose k=2 , and that we have implemented 𝔽 q 2 as 𝔽 q[α]. (A common choice is α=i=1 .) We have rΦ 2 (q)=q+1 . Write a=u+αv where u,v𝔽 q. Then

a q1 =(u+αv) qa 1 =(u+α qv)/a

where α q is some constant that can be precomputed. [In particular, if α 2 =b𝔽 q for some quadratic nonresidue b then α q=αb (q1 )/2 =α.] Then exponentiate by (q+1 )/r to obtain (a q1 ) (q+1 )/r=a n.

Another example. Suppose k=6 and 𝔽 q 6 =𝔽 q[α], and we wish to find a (q 6 1 )/r for some a𝔽 q 6 . We have q 6 1 =Φ 6 (q)(q 4 +q 3 q1 ) where Φ 6 (q)=q 2 q+1 . Write a=u 0 +u 1 α+...+u 5 α 5 . Then compute

a q 4 +q 3 q1 =(u 0 +u 1 α q 4 +...+u 5 α 5 q 4 )(u 0 +u 1 α q 3 +...+u 5 α 5 q 3 )(u 0 +u 1 α q+...+u 5 α 5 q)a

Each power of α q can be precomputed. Finally exponentiate by (q 2 q+1 )/r.