| License | BSD-style | 
|---|---|
| Maintainer | Danny Navarro <j@dannynavarro.net> | 
| Stability | experimental | 
| Portability | Good | 
| Safe Haskell | None | 
| Language | Haskell98 | 
Crypto.Number.F2m
Description
This module provides basic arithmetic operations over F₂m. Performance is
 not optimal and it doesn't provide protection against timing
 attacks. The m parameter is implicitly derived from the irreducible
 polynomial where applicable.
- addF2m :: Integer -> Integer -> Integer
 - mulF2m :: BinaryPolynomial -> Integer -> Integer -> Integer
 - squareF2m :: BinaryPolynomial -> Integer -> Integer
 - modF2m :: Integer -> Integer -> Integer
 - invF2m :: BinaryPolynomial -> Integer -> Maybe Integer
 - divF2m :: BinaryPolynomial -> Integer -> Integer -> Maybe Integer
 
Documentation
Multiplication over F₂m.
n1 * n2 (in F(2^m))
Squaring over F₂m.
 TODO: This is still slower than mulF2m.
Binary polynomial reduction modulo using long division algorithm.
Inversion of @n over F₂m using extended Euclidean algorithm.
If @n doesn't have an inverse, Nothing is returned.