Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ feat(Cryptography): Post-Quantum cryptography #145

Merged
merged 11 commits into from
Apr 17, 2024
1 change: 1 addition & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
- Polynomials
- Commitment schemes
- ZK
- [Post-Quantum Cryptography](/wiki/Cryptography/post-quantum-cryptography.md)
- [Protocol Fellowship](/wiki/epf.md)

- **Wiki Info**
Expand Down
3 changes: 3 additions & 0 deletions docs/wiki/Cryptography/ecdsa.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,9 @@ This discussion is a preliminary treatment of Elliptic Curve Cryptography. For a

And finally: **never roll your own crypto!** Use trusted libraries and protocols to protect your data and transactions.

> ℹ️ Note
> ECDSA faces potential obsolescence from quantum computers – learn about how [Post-Quantum Cryptography tackles this challenge.](/wiki/Cryptography/post-quantum-cryptography.md)

## Further reading

**Elliptic curve cryptography**
Expand Down
36 changes: 36 additions & 0 deletions docs/wiki/Cryptography/post-quantum-cryptography.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Post-Quantum Cryptography

Classical cryptography safeguards information by leveraging the inherent difficulty of certain mathematical problems. These problems fall under the area of mathematical research called the ["Hidden Subgroup Problem (HSP)"](https://en.wikipedia.org/wiki/Hidden_subgroup_problem). Imagine a large group with a secret subgroup known only to insiders, these problems makes determining the structure of the secret subgroup (size, elements) computationally intractable for an outsider. Whereas, someone with the "secret" (the private key) can easily identify the subgroup.

Public-key cryptography leverages this concept. Algorithms like RSA, DSA, and [ECDSA](/wiki/Cryptography/ecdsa.md) rely on hidden subgroup problems like prime factorization of large integers or discrete logarithm calculations to secure private keys. The difficulty of solving these problems increases exponentially with key size, making brute-force attacks impractical for classical computers. This inherent difficulty safeguards encrypted data.
raxhvl marked this conversation as resolved.
Show resolved Hide resolved

However, the landscape is shifting.

Quantum computers, harnessing the principles of quantum mechanics, offer novel computational approaches. Certain quantum algorithms can solve these classical cryptographic problems with exponential efficiency compared to their classical counterparts. This newfound capability poses a significant threat to the security of data encrypted with classical cryptography.
raxhvl marked this conversation as resolved.
Show resolved Hide resolved

[Shor's algorithm](https://ieeexplore.ieee.org/document/365700) for integer factorization is the most celebrated application of quantum computing. It factors n-digit integers in a time complexity less than $O(n^3)$, a significant improvement over the best classical algorithms.

This is where the field of post-quantum cryptography comes in. It aims to develop new algorithms that remain secure even in the presence of powerful quantum computers.

Post-quantum cryptography is an active area of research. Currently, NIST is evaluating submissions to standardize quantum-resistant algorithms.

raxhvl marked this conversation as resolved.
Show resolved Hide resolved
## Selected Algorithms 2022

### Public-key Encryption and Key-establishment Algorithms

- [CRYSTALS-KYBER](https://pq-crystals.org/) by Peter Schwabe et al.
raxhvl marked this conversation as resolved.
Show resolved Hide resolved

### Digital Signature Algorithm

- [CRYSTALS-DILITHIUM](https://pq-crystals.org/) by Vadim Lyubashevsky et al.
- [FALCON](https://falcon-sign.info/) by Thomas Prest et al.
- [SPHINCS+](https://falcon-sign.info/) by Andreas Hulsing et al.

NIST's ["status report"](https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=934458) documents the standardization process, evaluation criteria, and security models.

## Resources

- 📝 Daniel J. Bernstein and et al, ["Introduction to post-quantum cryptography"](https://pqcrypto.org/www.springer.com/cda/content/document/cda_downloaddocument/9783540887010-c1.pdf)
- 📝 Wikipedia, ["Quantum algorithm."](https://en.wikipedia.org/wiki/Quantum_algorithm)
- 📝 P.W. Shor, ["Algorithms for quantum computation: discrete logarithms and factoring."](https://ieeexplore.ieee.org/document/365700)
- 📝 NIST, ["Post-Quantum Cryptography."](https://csrc.nist.gov/projects/post-quantum-cryptography)
24 changes: 20 additions & 4 deletions wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ API
APIs
ary
ASE
assignees
Assche
Assertoor
assignees
autoplay
backfill
Bankless
Barnabe
backfill
Beiko
Bertoni
BFT
Expand All @@ -42,14 +43,15 @@ cdots
centric
chainId
cli
cmd
CoC
codebase
codebases
CODECOPY
config
congestions
Consensys
Corbellini
cmd
Crypto
cryptocurrencies
cryptocurrency
Expand Down Expand Up @@ -82,6 +84,7 @@ Devops
devp
Devs
Diffie
DILITHIUM
discv
distro
docsify
Expand Down Expand Up @@ -164,6 +167,8 @@ Guillaume
hoc
Holesky
Hsiao
HSP
Hulsing
ics
iframe
ify
Expand All @@ -190,6 +195,7 @@ Keccak's
keecak
Kleppmann
Koblitz
KYBER
KZG
KZGCommitment
KZGProof
Expand All @@ -207,6 +213,7 @@ Longrightarrow
LST
Lua
LuaVM
Lyubashevsky
mainnet
Mário
mathbb
Expand Down Expand Up @@ -236,6 +243,7 @@ natively
newPayloadV
NFT
NIST
NIST's
NOXX
Occhipinti
offsites
Expand All @@ -259,10 +267,11 @@ pmod
POC
POS
pre
preconfirmations
precompile
precompiled
precompiles
preconfirmations
Prest
privateKey
programmability
proto
Expand Down Expand Up @@ -290,11 +299,13 @@ rollup
rollups
RPC
RPCs
RSA
runtime
scalability
scalable
schemas
Schocken
Schwabe
SECG
secp
SELFDESTRUCT
Expand All @@ -305,13 +316,16 @@ sharding
ShareAlike
Shead
Shimon
Shor
Shor's
Silverman
Sipser
SLOAD
smlXL
SNARKify
socio
solvm
SPHINCS
SSF
SSLE
SSTORE
Expand All @@ -326,6 +340,7 @@ StreamEth
systemd
Takenobu
Tani
Teku
testnet
Tetris
textnormal
Expand All @@ -346,6 +361,7 @@ underbrace
Unformatted
upstreamed
utils
Vadim
validator
validators
Vanstone
Expand All @@ -365,4 +381,4 @@ WSS
XORed
xy
Yellowpaper
zk
zk