@@ -25,60 +25,114 @@ You can get CIRCL by fetching:
25
25
go get -u github.com/cloudflare/circl
26
26
```
27
27
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
+
28
30
## List of Algorithms
29
31
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
34
45
35
- #### Digital Signature Schemes
36
- - [ Ed25519] ( https://datatracker.ietf.org/doc/rfc8032/ )
37
- - [ Ed448] ( https://datatracker.ietf.org/doc/rfc8032/ )
46
+ ### Elliptic Curve Cryptography
38
47
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
+ | :---:|
43
50
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/ ) )
49
53
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
+ | :---:|
55
56
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] )
58
58
59
- #### Post-Quantum Digital Signature Schemes
60
- - [ Dilithium ] ( https://pq-crystals.org/dilithium/ ) : modes 2, 3, 5
59
+ | Prime Groups |
60
+ | :---: |
61
61
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] )
64
97
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.
70
98
71
- #### Parallel SIMD
72
- - [ Keccak] ( https://keccak.team/keccak_specs_summary.html ) f1600 Permutation
99
+ ### Symmetric Cryptography
73
100
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
+ | :---:|
78
103
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/ )
82
136
83
137
## Testing and Benchmarking
84
138
@@ -105,7 +159,7 @@ APA Style
105
159
```
106
160
Faz-Hernández, A. and Kwiatkowski, K. (2019). Introducing CIRCL:
107
161
An 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.
109
163
```
110
164
111
165
Bibtex Source
@@ -120,7 +174,7 @@ Bibtex Source
120
174
of this library is to be used as a tool for experimental
121
175
deployment of cryptographic algorithms targeting Post-Quantum (PQ)
122
176
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},
124
178
month = jun,
125
179
year = {2019}
126
180
}
0 commit comments