https://github.com/rexemin/mceliece
A proof-of-concept implementation of the McEliece cryptosystem in Julia.
https://github.com/rexemin/mceliece
mceliece post-quantum-cryptography
Last synced: about 2 months ago
JSON representation
A proof-of-concept implementation of the McEliece cryptosystem in Julia.
- Host: GitHub
- URL: https://github.com/rexemin/mceliece
- Owner: rexemin
- License: mit
- Created: 2019-07-06T15:23:36.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-07-29T15:43:16.000Z (over 6 years ago)
- Last Synced: 2025-04-09T18:04:18.798Z (11 months ago)
- Topics: mceliece, post-quantum-cryptography
- Language: Julia
- Homepage:
- Size: 652 KB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 |