# Itoh–Tsujii inversion algorithm

The **Itoh–Tsujii inversion algorithm** is used to invert elements in a finite field. It was introduced in 1988 and first used over GF(2^{m}) using the normal basis representation of elements, however the algorithm is generic and can be used for other bases, such as the polynomial basis. It can also be used in any finite field, GF(*p*^{m}).

The algorithm is as follows:

**Input**:*A*∈ GF(*p*^{m})**Output**:*A*^{−1}*r*← (*p*^{m}− 1)/(*p*− 1)- compute
*A*^{r − 1}in GF(*p*^{m}) - compute
*A*^{r}=*A*^{r − 1}·*A* - compute (
*A*^{r})^{−1}in GF(*p*) - compute
*A*^{−1}= (*A*^{r})^{−1}·*A*^{r −1} - return
*A*^{−1}

This algorithm is fast because steps 3 and 5 both involve operations in the subfield GF(*p*). Similarly, if a small value of *p* is used a lookup table can be used for inversion in step 4. The majority of time spent in this algorithm is in step 2, the first exponentiation. This is one reason why this algorithm is well-suited for the normal basis, since squaring and exponentiation are relatively easy in that basis.

## See also[edit]

## References[edit]

- T. Itoh and S. Tsujii. A Fast Algorithm for Computing Multiplicative Inverses in GF(2
^{m}) Using Normal Bases.*Information and Computation*, 78:171–177, 1988.