Skip to content

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

License

Notifications You must be signed in to change notification settings

rexemin/McEliece

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages