tate_bilinear_pairing.f33m
index
/home/ds/workspace/tate_bilinear_pairing/tate_bilinear_pairing/f33m.py

This module is about operations over the Galois Field $GF(3^{3*m})$. 
Such field is an extension field that is $GF(3^m)[z]/h(z)$ where $h(z)=z^3-z-1$.
For more information about such extension field, please read 
the paper by T. Kerins, W. P. Marnane, E. M. Popovici, and P.S.L.M. Barreto,
"Efficient hardware for the Tate pairing calculation in characteristic three".

 
Modules
       
tate_bilinear_pairing.f3m

 
Functions
       
add(a, b, c)
addition in $GF(3^{3*m})$
 
:param a: the first operand
:type a: list
:param b: the second operand
:type b: list
:param c: the destination. $c == a+b \in GF(3^{3*m})$
:type c: list
:returns: None
inverse(a)
inversion in $GF(3^{3*m})$
 
:param a: the operand
:type a: list
:returns: list, $ == a^{-1} \in GF(3^{3*m})$
mult(a, b)
multiplication in $GF(3^{3*m})$
 
:param a: the first operand
:type a: list
:param b: the second operand
:type b: list
:returns: list, $c == a*b \in GF(3^{3*m})$
neg(a, c)
negation in GF(3^{3*m})
 
:param a: the operand
:type a: list
:param c: the destination. $c == -a \in GF(3^m)$
:type c: list
:returns: None
one()
the element with value of one in $GF(3^{3*m})$
random()
a random element in $GF(3^{3*m})$
sub(a, b, c)
subtraction in $GF(3^{3*m})$
 
:param a: the first operand
:type a: list
:param b: the second operand
:type b: list
:param c: the destination. $c == a-b \in GF(3^{3*m})$
:type c: list
:returns: None
zero()
the zero element in $GF(3^{3*m})$