kyber-k2so
liboqs-go
kyber-k2so | liboqs-go | |
---|---|---|
13 | 1 | |
85 | 61 | |
- | - | |
6.8 | 7.0 | |
4 months ago | about 1 month ago | |
Go | Go | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kyber-k2so
-
A quick post on Chen's algorithm
It seems like the post-quantum algorithm that Signal selected [0] involves lattices [1] somehow:
> Kyber is an IND-CCA2-secure key encapsulation mechanism (KEM), whose security is based on the hardness of solving the learning-with-errors (LWE) problem over module lattices.
Curious to see if Chen's work will eventually lead to Signal selecting a different algorithm.
[0]: https://signal.org/blog/pqxdh/
[1]: https://pq-crystals.org/kyber/
- Kyber
-
iMessage with PQ3 Cryptographic Protocol
This is pretty fascinating. For easier reading, the Signal blog post [0] they link to is great.
Both Signal and Apple went with CRYSTALS-Kyber [1] as their post-quantum algorithm. If you're interested in the math, and maybe learned at some point about how classic public key cryptography is built on the idea that it's easy to multiply two primes, but hard to factor them, and how this (or other math problems) can be used as a one-way function to make encryption hard to break, the hard math problem that backs Kyber is the "learning-with-errors" [2] problem.
[0] https://signal.org/blog/pqxdh/
[1] https://pq-crystals.org/kyber/
[2] https://en.wikipedia.org/wiki/Learning_with_errors
-
Post-Quantum Diffie-Hellman?
NIST has chosen to standardize Kyber, which is a Key Encapsulation Mechanism (KEM) rather than a key exchange mechanism like Diffie-Hellman:
-
Signal has begun it's transition towards post-quantum key exchanges
However looks like this wasn't good enough, as the team has merged some code into the Signal protocol's library, that uses the latest NIST standard Crystals-Kyber post-quantum key exchange. I'm not sure if it's a hybrid scheme with X25519, or if it's replacing it, but damn, gotta love how the project not only innovates in terms of secure messaging protocols, but slaps the latest and greatest on top of best practice.
-
Lattice Asymetric Encryption
Kyber is one of the finalists for PQC and has an open source impl: https://pq-crystals.org/kyber/
-
Open-source file encryption software written in Go.
I’d recommend looking into https://github.com/symbolicsoft/kyber-k2so -> for post quantum safety. But I’d highly recommend looking at this: https://github.com/open-quantum-safe/liboqs-go -> this library is significantly more advanced but allows for hybrid key generation so you can have post-quantum security while being at least as secure as more established cryptography schemes like Ed25519. But at very least you should move off of RSA and research current cryptography standards for file encryption.
-
What's your opinion on the future of PKI ?
No, none of that is true. Kyber, one of the approved encryption schemes, actually has a smaller key size than RSA and is pretty fast, around 10,000 encryptions per second on a commercial CPU. Just because it is quantum resistant doesn't necessarily mean it is "more complicated", it is just different. We have had the idea for lattice-based encryption for over 20 years now, it is not new stuff just finally being put to use due to the impending threat of quantum computers.
- NIST announces preliminary winners of post-quantum competition
-
NIST Announces First Four Quantum-Resistant Cryptographic Algorithms
For reference, the Kyber algorithm selected here mentions on their website that, very conservatively, the Kyber-768 parameter set gives 128 bits of security, or roughly on the order of 31 undecillion operations to break.
liboqs-go
-
Open-source file encryption software written in Go.
I’d recommend looking into https://github.com/symbolicsoft/kyber-k2so -> for post quantum safety. But I’d highly recommend looking at this: https://github.com/open-quantum-safe/liboqs-go -> this library is significantly more advanced but allows for hybrid key generation so you can have post-quantum security while being at least as secure as more established cryptography schemes like Ed25519. But at very least you should move off of RSA and research current cryptography standards for file encryption.
What are some alternatives?
tendermint - ⟁ Tendermint Core (BFT Consensus) in Go
CIRCL - CIRCL: Cloudflare Interoperable Reusable Cryptographic Library
kyber
memguard - Secure software enclave for storage of sensitive information in memory.
falcon
branca - :key: Secure alternative to JWT. Authenticated Encrypted API Tokens for Go.
kyberJCE - Pure Java implementation of the Kyber (version 3) post-quantum IND-CCA2 KEM.
FrostBite
argon2pw - Argon2 password hashing package for go with constant time hash comparison
pqcrypto.js
pqc.js - JS bindings and playground of post-quantum asymmetric ciphers