In this repository you will find the implementation of the McEliece cryptosystem with Hamming codes. In the same repository, you will find an implementation of the Hamming code (7,4,3) used in the cryptosystem. Please note that this code is for demonstration purposes only and not for other use.
This code is not recommended for use in document or text encryption of relevance, since, among many reasons, Hamming codes are not the best option to implement in the McEliece criptosistema. For example, the codes of Goppa or Reed Solomon offer greater complexity and therefore greater security
The content of the different files of the repository will be described below:
- hamming/: Folder with Hamming code encoding and decoding functions (7,4,3).
- test/: Folder with some tests to check if McEliece works.
- matrix.c: Functions for operations between matrices and vectors.
- mceliece.c: All cryptosystem functions.
- mceliece.h/: Functions to encrypt and decrypt information with McEliece.
In the hamming
folder there are tests for the implemented Hamming code (7,4,3) and in the test
folder there are
tests for all McEliece. You can test both by running their makefile:
# Probar Hamming
cd hamming/
make test
# Probar McEliece
cd test/
make test