@@ -25,60 +25,114 @@ You can get CIRCL by fetching:
2525go get -u github.com/cloudflare/circl
2626```
2727
28+ Alternatively, look at the [ Cloudflare Go] ( https://github.com/cloudflare/go/tree/cf ) fork to see how to integrate CIRCL natively in Go.
29+
2830## List of Algorithms
2931
30- #### Diffie-Hellman Protocol
31- - [ X25519] ( https://datatracker.ietf.org/doc/html/rfc7748/ )
32- - [ X448] ( https://datatracker.ietf.org/doc/html/rfc7748/ )
33- - [ Curve4Q] ( https://datatracker.ietf.org/doc/draft-ladd-cfrg-4q/ )
32+ [ RFC-7748 ] : https://doi.org/10.17487/RFC7748
33+ [ RFC-8032 ] : https://doi.org/10.17487/RFC8032
34+ [ RFC-8235 ] : https://doi.org/10.17487/RFC8235
35+ [ RFC-9180 ] : https://doi.org/10.17487/RFC9180
36+ [ RFC-9380 ] : https://doi.org/10.17487/RFC9380
37+ [ RFC-9474 ] : https://doi.org/10.17487/RFC9474
38+ [ RFC-9496 ] : https://doi.org/10.17487/RFC9496
39+ [ RFC-9497 ] : https://doi.org/10.17487/RFC9497
40+ [ FIPS 202 ] : https://doi.org/10.6028/NIST.FIPS.202
41+ [ FIPS 186-5 ] : https://doi.org/10.6028/NIST.FIPS.186-5
42+ [ BLS12-381 ] : https://electriccoin.co/blog/new-snark-curve/
43+ [ ia.cr/2015/267 ] : https://ia.cr/2015/267
44+ [ ia.cr/2019/966 ] : https://ia.cr/2019/966
3445
35- #### Digital Signature Schemes
36- - [ Ed25519] ( https://datatracker.ietf.org/doc/rfc8032/ )
37- - [ Ed448] ( https://datatracker.ietf.org/doc/rfc8032/ )
46+ ### Elliptic Curve Cryptography
3847
39- #### Groups based on Elliptic Curves
40- - P-256, P-384, P-521, [ FIPS 186-4] ( https://doi.org/10.6028/NIST.FIPS.186-4 )
41- - [ Ristretto] ( https://datatracker.ietf.org/doc/draft-irtf-cfrg-ristretto255-decaf448/01/ )
42- - [ Hash to Curve] ( https://datatracker.ietf.org/doc/draft-irtf-cfrg-hash-to-curve/ )
48+ | Diffie-Hellman Protocol |
49+ | :---:|
4350
44- #### High-Level Protocols
45- - [ HPKE] ( https://datatracker.ietf.org/doc/draft-irtf-cfrg-hpke/ ) : Hybrid Public-Key Encryption
46- - [ VOPRF] ( https://datatracker.ietf.org/doc/draft-irtf-cfrg-voprf/ ) : Verifiable Oblivious Pseudorandom function: OPRF, VOPRF and POPRF modes.
47- - [ BlindRSA] ( https://datatracker.ietf.org/doc/draft-irtf-cfrg-rsa-blind-signatures/ ) : Blind RSA signatures.
48- - [ CPABE] ( ./abe/cpabe ) : Ciphertext-policy Attribute-based Encryption.
51+ - [ X25519] ( ./dh/x25519 ) and [ X448] ( ./dh/x448 ) functions. ([ RFC-7748] )
52+ - [ Curve4Q] ( ./dh/curve4q ) function based on FourQ curve. ([ draft-ladd-cfrg-4q] ( https://datatracker.ietf.org/doc/draft-ladd-cfrg-4q/ ) )
4953
50- #### Post-Quantum Key Encapsulation Methods
51- - [ CSIDH] ( https://csidh.isogeny.org/ ) : Post-Quantum Commutative Group Action
52- - [ Kyber] ( https://pq-crystals.org/kyber/ ) KEM: modes 512, 768, 1024
53- - [ FrodoKEM] ( https://frodokem.org/ ) KEM: modes 640-SHAKE
54- - (** insecure, deprecated** ) [ SIDH/SIKE] ( https://sike.org/ ) : Supersingular Key Encapsulation with primes p434, p503, p751
54+ | Digital Signature Schemes |
55+ | :---:|
5556
56- #### Post-Quantum Public-Key Encryption
57- - [ Kyber] ( https://pq-crystals.org/kyber/ ) PKE: modes 512, 768, 1024
57+ - [ Ed25519] ( ./sign/ed25519 ) and [ Ed448] ( ./sign/ed448 ) signatures. ([ RFC-8032] )
5858
59- #### Post-Quantum Digital Signature Schemes
60- - [ Dilithium ] ( https://pq-crystals.org/dilithium/ ) : modes 2, 3, 5
59+ | Prime Groups |
60+ | :---: |
6161
62- #### Field Arithmetic
63- - Fp25519, Fp448, Fp381
62+ - [ P-256, P-384, P-521] ( ./group ) . ([ FIPS 186-5] )
63+ - [ Ristretto] ( ./group ) group. ([ RFC-9496] )
64+ - [ Bilinear pairings] ( ./ecc/bls12381 ) : with the [ BLS12-381] curve, and hash to G1 and G2.
65+ - [ Hash to curve] ( ./group ) , hash to field, XMD and XOF [ expanders] ( ./expander ) . ([ RFC-9380] )
66+
67+ | High-Level Protocols |
68+ | :---:|
69+
70+ - [ HPKE] ( ./hpke ) : Hybrid Public-Key Encryption ([ RFC-9180] )
71+ - [ VOPRF] ( ./oprf ) : Verifiable Oblivious Pseudorandom functions. ([ RFC-9497] )
72+ - [ RSA Blind Signatures] ( ./blindsign/blindrsa ) . ([ RFC-9474] )
73+ - [ Partilly-blind] ( ./blindsign/blindrsa/partiallyblindrsa/ ) Signatures. ([ draft-cfrg-partially-blind-rsa] ( https://datatracker.ietf.org/doc/draft-amjad-cfrg-partially-blind-rsa/ ) )
74+ - [ CPABE] ( ./abe/cpabe ) : Ciphertext-Policy Attribute-Based Encryption. ([ ia.cr/2019/966] )
75+ - [ OT] ( ./ot/simot ) : Simplest Oblivious Transfer ([ ia.cr/2015/267] ).
76+ - [ Threshold RSA] ( ./tss/rsa ) Signatures ([ Shoup Eurocrypt 2000] ( https://www.iacr.org/archive/eurocrypt2000/1807/18070209-new.pdf ) ).
77+
78+ ### Post-Quantum Cryptography
79+
80+ | KEM: Key Encapsulation Methods |
81+ | :---:|
82+
83+ - [ CSIDH] ( ./dh/csidh ) : Post-Quantum Commutative Group Action ([ CSIDH] ( https://csidh.isogeny.org/ ) ).
84+ - [ Kyber KEM] ( ./kem/kyber ) : modes 512, 768, 1024 ([ KYBER] ( https://pq-crystals.org/kyber/ ) ).
85+ - [ FrodoKEM] ( ./kem/frodo ) : modes 640-SHAKE. ([ FrodoKEM] ( https://frodokem.org/ ) )
86+ - (** insecure, deprecated** ) ~~ [ SIDH/SIKE] ( ./kem/sike ) ~~ : Supersingular Key Encapsulation with primes p434, p503, p751 ([ SIKE] ( https://sike.org/ ) ).
87+
88+ | Digital Signature Schemes |
89+ | :---:|
90+
91+ - [ Dilithium] ( ./sign/dilithium ) : modes 2, 3, 5 ([ Dilithium] ( https://pq-crystals.org/dilithium/ ) ).
92+
93+ ### Zero-knowledge Proofs
94+
95+ - [ Schnorr] ( ./zk/dl ) : Prove knowledge of the Discrete Logarithm. ([ RFC-8235] )
96+ - [ DLEQ] ( ./zk/dleq ) : Prove knowledge of the Discrete Logarithm Equality. ([ RFC-9497] )
6497
65- #### Elliptic Curves
66- - P-384 Curve
67- - [ FourQ] ( https://eprint.iacr.org/2015/565 )
68- - [ Goldilocks] ( https://eprint.iacr.org/2015/625 )
69- - [ BLS12-381] ( https://electriccoin.co/blog/new-snark-curve/ ) : Bilinear pairings, hash to G1 and G2.
7098
71- #### Parallel SIMD
72- - [ Keccak] ( https://keccak.team/keccak_specs_summary.html ) f1600 Permutation
99+ ### Symmetric Cryptography
73100
74- #### XOF: eXtendable Output Functions
75- - [ FIPS 202] ( https://doi.org/10.6028/NIST.FIPS.202 ) : SHAKE128 and SHAKE256
76- - [ BLAKE2X] ( https://www.blake2.net/blake2x.pdf ) : BLAKE2XB and BLAKE2XS
77- - [ KangarooTwelve] ( https://keccak.team/kangarootwelve.html ) : KangarooTwelve
101+ | XOF: eXtendable Output Functions |
102+ | :---:|
78103
79- #### Zero-knowledge Proofs
80- - [ Schnorr] ( ./zk/dl ) : Prove knowledge of the Discrete Logarithm.
81- - [ DLEQ] ( ./zk/dleq ) : Prove knowledge of the Discrete Logarithm Equality.
104+ - [ SHAKE128 and SHAKE256] ( ./xof ) ([ FIPS 202] ).
105+ - [ BLAKE2X] ( ./xof ) : BLAKE2XB and BLAKE2XS ([ Blake2x] ( https://www.blake2.net/blake2x.pdf ) )
106+ - [ KangarooTwelve] ( ./xof/k12 ) : fast hashing based on Keccak-p. ([ KangarooTwelve] ( https://keccak.team/kangarootwelve.html ) ).
107+ - SIMD [ Keccak] ( https://keccak.team/keccak_specs_summary.html ) f1600 Permutation.
108+
109+ | LWC: Lightweight Cryptography |
110+ | :---:|
111+
112+ - [ Ascon v1.2] ( ./cipher/ascon ) : Family of AEAD block ciphers ([ ASCON] ( https://ascon.iaik.tugraz.at/index.html ) )
113+
114+ ### Misc
115+
116+ | Integers |
117+ | :---:|
118+
119+ - Safe primes generation.
120+ - Integer encoding: wNAF, regular signed digit, mLSBSet representations.
121+
122+ | Finite Fields |
123+ | :---:|
124+
125+ - Fp25519, Fp448, Fp511, Fp434, Fp503, Fp751.
126+ - Fp381, and its quadratic, sextic and twelveth extensions.
127+ - Polynomials in monomial and Lagrange basis.
128+
129+ | Elliptic Curves |
130+ | :---:|
131+
132+ - P-384 Curve
133+ - [ FourQ] ( https://eprint.iacr.org/2015/565 )
134+ - [ Goldilocks] ( https://eprint.iacr.org/2015/625 )
135+ - [ BLS12-381] ( https://electriccoin.co/blog/new-snark-curve/ )
82136
83137## Testing and Benchmarking
84138
@@ -105,7 +159,7 @@ APA Style
105159```
106160Faz-Hernández, A. and Kwiatkowski, K. (2019). Introducing CIRCL:
107161An Advanced Cryptographic Library. Cloudflare. Available at
108- https://github.com/cloudflare/circl. v1.3.3 Accessed May , 2023.
162+ https://github.com/cloudflare/circl. v1.3.6 Accessed Oct , 2023.
109163```
110164
111165Bibtex Source
@@ -120,7 +174,7 @@ Bibtex Source
120174 of this library is to be used as a tool for experimental
121175 deployment of cryptographic algorithms targeting Post-Quantum (PQ)
122176 and Elliptic Curve Cryptography (ECC).}},
123- note = {Available at \url{https://github.com/cloudflare/circl}. v1.3.3 Accessed May , 2023},
177+ note = {Available at \url{https://github.com/cloudflare/circl}. v1.3.6 Accessed Oct , 2023},
124178 month = jun,
125179 year = {2019}
126180}
0 commit comments