Code implemented by Amund Desmarais and Rayan Safieddine.
Three decoding algorithms were implemented :
- Patterson
- Berlekamp-Massey
- Extended Euclidean
Each algorithm creates a Goppa code and decodes a message independently. Methods implemented include, but not limited to :
- Multiplication
- Exponentiation
- Division
- Square Root
- Extended Euclidean algorithm
An m and t are needed to define the dimension of the Goppa code. An irreducible polynomial and parity-check matrix will be generated. However, due to problems with the algorithm the polynomial generated is not always irreducible. Thus it is advised to generate an irreducible polynomial before.
A pari/gp version of the Patterson algorithm has been implemented using a modified previous design.
To generate an irreducible polynomial using the pari/gp code :
Copy the output into the key-generation method will give an irreducible polynomial.
Main function has full implementation of decoding algorithm.