Skip to content

Latest commit

 

History

History
25 lines (20 loc) · 1.46 KB

README.md

File metadata and controls

25 lines (20 loc) · 1.46 KB

McEliece

A proof-of-concept implementation of the McEliece cryptosystem in Julia.

Made under supervision of Dr. Kirill Morozov and mentorship of his PhD student Franz Aguirre Farro, while doing a summer internship at the University of North Texas, in Denton, Texas.

Almost everything is coded from scratch. The whole system is just 6 modules that are (mostly) self-contained. Test.jl is an auxiliar file to time key generation, encryption, and decryption. The system depends on the following non-default packages:

  • DelimitedFiles
  • StatsBase
  • Nemo

At this moment in time, the implementation is not optimized at all, so expect slow running times for everything except encryption.

You can read about the McEliece cryptosystem in the PDF accompanying this repository. You can see the current mean times for various operations in the next table:

Parameters (n, k, m, t) Key generation Encryption Decryption
(2048, 1707, 11, 31) 62s 0.57ms 1.4s
(2048, 1487, 11, 51) 109s 0.45ms 2.9s
(2048, 1157, 11, 81) 171s 0.32ms 5.9s
(4096, 3604, 12, 41) 312s 3.21ms 4.8s
(4096, 3352, 12, 62) 601s 3.26ms 8.2s
(4096, 2884, 12, 101) 552s 2.84ms 15.7s
(6960, 5413, 13, 119) 1550s 19.60ms 36.5s