Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 1.42 KB

README.md

File metadata and controls

38 lines (27 loc) · 1.42 KB

McEliece

About

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.

Considerations

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

Structure

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.

Test

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