Skip to content

erich-9/NistyPQC.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NistyPQC

Nifty PQC promoted by NIST.

License Documentation (stable) Documentation (dev) Build Status Aqua Coverage

These are implementations in Julia of various post-quantum cryptography (PQC) algorithms that were picked as (candidate) winners in the Post-Quantum Cryptography Standardization Project run by the National Institute of Standards and Technology (NIST). They fall in two categories:

All implementations in this package strive for simplicity and close resemblance with the specifications. The focus is not on performance, let alone on security.

Algorithms

Winners

At the moment, NIST has published draft Federal Information Processing Standards (FIPS) for three of the winners:

There is one more winner with no draft standard available yet:

  • Falcon (Fast-Fourier Lattice-based Compact Signatures over NTRU)

Candidates

The team of winners might be joined by some of the submissions to Round 4 of the standardization project. Up to now, three of the candidates remain unbroken. All of them are code-based KEM's. For the time being, I've included two of them in this package:

Security Categories

Each algorithm comes in multiple variants. They are categorized according to the believed security strength. Namely, NIST defined the following five security strength categories based on corresponding attacks on symmetric ciphers:

category successful attack at least as hard as
1 key search on a block cipher with a 128-bit key (e.g. AES128)
2 collision search on a 256-bit hash function (e.g. SHA256/SHA3-256)
3 key search on a block cipher with a 192-bit key (e.g. AES192)
4 collision search on a 384-bit hash function (e.g. SHA384/SHA3-384)
5 key search on a block cipher with a 256-bit key (e.g. AES256)