Skip to content

Commit 055020a

Browse files
authored
Update README.md
1 parent 8c832e8 commit 055020a

File tree

1 file changed

+54
-15
lines changed

1 file changed

+54
-15
lines changed

README.md

Lines changed: 54 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# SIDH v3.1 (C Edition)
1+
# SIDH v3.2 (C Edition)
22

33
The **SIDH** library is an efficient supersingular isogeny-based cryptography library written in C language.
4-
**Version v3.1** of the library includes the ephemeral Diffie-Hellman key exchange scheme "SIDH" [1,2], and the CCA-secure
4+
**Version v3.2** of the library includes the ephemeral Diffie-Hellman key exchange scheme "SIDH" [1,2], and the CCA-secure
55
key encapsulation mechanism "SIKE" [3]. These schemes are conjectured to be secure against quantum computer attacks.
66

77
Concretely, the SIDH library includes the following KEM schemes:
@@ -18,6 +18,25 @@ And the following ephemeral key exchange schemes:
1818
* SIDHp610: matching the post-quantum security of AES192 (level 3).
1919
* SIDHp751: matching the post-quantum security of AES256 (level 5).
2020

21+
It also includes the following compressed KEM schemes:
22+
23+
* SIKEp434_compressed: matching the post-quantum security of AES128 (level 1).
24+
* SIKEp503_compressed: matching the post-quantum security of SHA3-256 (level 2).
25+
* SIKEp610_compressed: matching the post-quantum security of AES192 (level 3).
26+
* SIKEp751_compressed: matching the post-quantum security of AES256 (level 5).
27+
28+
And the following compressed ephemeral key exchange schemes:
29+
30+
* SIDHp434_compressed: matching the post-quantum security of AES128 (level 1).
31+
* SIDHp503_compressed: matching the post-quantum security of SHA3-256 (level 2).
32+
* SIDHp610_compressed: matching the post-quantum security of AES192 (level 3).
33+
* SIDHp751_compressed: matching the post-quantum security of AES256 (level 5).
34+
35+
The compressed schemes exhibit reduced public keys at the expense of longer computing times.
36+
Their implementation is based on [11], which in turn is based on and improves upon [9] and [10].
37+
Note that the supported compressed schemes are not compatible with the compressed variants submitted to the NIST PQC
38+
standardization process (round 2), which are based on [10].
39+
2140
The library was developed by [Microsoft Research](http://research.microsoft.com/) for experimentation purposes.
2241

2342
## Contents
@@ -34,6 +53,7 @@ The library was developed by [Microsoft Research](http://research.microsoft.com/
3453
* [`Generic implementation for p503`](src/P503/generic/): implementation of the field arithmetic over the prime p503 in portable C.
3554
* [`Generic implementation for p610`](src/P610/generic/): implementation of the field arithmetic over the prime p610 in portable C.
3655
* [`Generic implementation for p751`](src/P751/generic/): implementation of the field arithmetic over the prime p751 in portable C.
56+
* [`compression folder`](src/compression/): main C files of the compressed variants.
3757
* [`random folder`](src/random/): randombytes function using the system random number generator.
3858
* [`sha3 folder`](src/sha3/): SHAKE256 implementation.
3959
* [`Test folder`](tests/): test files.
@@ -58,16 +78,13 @@ The library was developed by [Microsoft Research](http://research.microsoft.com/
5878
assembly for Linux.
5979
- Includes Known Answer Tests (KATs), and testing/benchmarking code.
6080

61-
## New in Version 3.1
62-
63-
- Updated with the round 2 submission to NIST's post-quantum crypto standardization process [4].
64-
- Added two new parameter sets over the primes p434 and p610 that match the post-quantum security of AES128
65-
and AES192, respectively [6,7,8]. Security categories for parameter sets have been adjusted upward [4].
66-
- The starting curve has been changed from A = 0 to A = 6 [4].
81+
## New in Version 3.2
82+
83+
- Added four new parameter sets of compressed SIDH and four new parameter sets of compressed SIKE based on [11].
6784

6885
## Supported Platforms
6986

70-
**SIDH v3.1** is supported on a wide range of platforms including x64, x86 and ARM devices running Windows
87+
**SIDH v3.2** is supported on a wide range of platforms including x64, x86 and ARM devices running Windows
7188
or Linux OS. We have tested the library with Microsoft Visual Studio 2015, GNU GCC v5.4, and clang v3.8.
7289
See instructions below to choose an implementation option and compile on one of the supported platforms.
7390

@@ -132,6 +149,14 @@ $ ./sidh434/test_SIDH
132149
$ ./sidh503/test_SIDH
133150
$ ./sidh610/test_SIDH
134151
$ ./sidh751/test_SIDH
152+
$ ./sike434_compressed/test_SIKE
153+
$ ./sike503_compressed/test_SIKE
154+
$ ./sike610_compressed/test_SIKE
155+
$ ./sike751_compressed/test_SIKE
156+
$ ./sidh434_compressed/test_SIDH
157+
$ ./sidh503_compressed/test_SIDH
158+
$ ./sidh610_compressed/test_SIDH
159+
$ ./sidh751_compressed/test_SIDH
135160
```
136161

137162
To run the KEM implementations against the KATs, execute:
@@ -141,6 +166,10 @@ $ ./sike434/PQCtestKAT_kem
141166
$ ./sike503/PQCtestKAT_kem
142167
$ ./sike610/PQCtestKAT_kem
143168
$ ./sike751/PQCtestKAT_kem
169+
$ ./sike434_compressed/PQCtestKAT_kem
170+
$ ./sike503_compressed/PQCtestKAT_kem
171+
$ ./sike610_compressed/PQCtestKAT_kem
172+
$ ./sike751_compressed/PQCtestKAT_kem
144173
```
145174

146175
The program tries its best at auto-correcting unsupported configurations. For example, since the `FAST` implementation is currently only available for x64 and ARMv8 doing `make ARCH=x86 OPT_LEVEL=FAST` is actually processed using `ARCH=x86 OPT_LEVEL=GENERIC`.
@@ -153,11 +182,11 @@ Open the solution file [`SIDH.sln`](Visual%20Studio/SIDH/SIDH.sln) in Visual Stu
153182

154183
### Running the tests:
155184

156-
After building the solution file, there should be the following executable files: `arith_tests-P434.exe`, `arith_tests-P503.exe`, `arith_tests-P610.exe` and `arith_tests-P751.exe`, to run tests for the underlying arithmetic, `test-SIDHp434.exe`, `test-SIDHp503.exe`, `test-SIDHp610.exe` and `test-SIDHp751.exe`, to run tests for the key exchange, and `test-SIKEp434.exe`, `test-SIKEp503.exe`, `test-SIKEp610.exe` and `test-SIKEp751.exe`, to run tests for the KEM.
185+
After building the solution file, there should be the following executable files: `arith_tests-P434.exe`, `arith_tests-P503.exe`, `arith_tests-P610.exe` and `arith_tests-P751.exe`, to run tests for the underlying arithmetic, `test-SIDHp[SET].exe` to run tests for the key exchange, and `test-SIKEp[SET].exe` to run tests for the KEM, where SET = {434, 503, 610, 751, 434_compressed, 503_compressed, 610_compressed, 751_compressed}.
157186

158187
### Using the library:
159188

160-
After building the solution file, add the generated `P434.lib`, `P503.lib`, `P610.lib` and `P751.lib` library files to the set of References for a project, and add [`P434_api.h`](src/P434/P434_api.h), [`P503_api.h`](src/P503/P503_api.h), [`P610_api.h`](src/P610/P610_api.h) and [`P751_api.h`](src/P751/P751_api.h) to the list of header files of a project.
189+
After building the solution file, add the generated `P434.lib`, `P503.lib`, `P610.lib` and `P751.lib` library files to the set of References for a project, and add [`P434_api.h`](src/P434/P434_api.h), [`P503_api.h`](src/P503/P503_api.h), [`P610_api.h`](src/P610/P610_api.h), [`P751_api.h`](src/P751/P751_api.h), [`P434_compressed_api.h`](src/P434/P434_compressed_api.h), [`P503_compressed_api.h`](src/P503/P503_compressed_api.h), [`P610_compressed_api.h`](src/P610/P610_compressed_api.h) and [`P751_compressed_api.h`](src/P751/P751_compressed_api.h) to the list of header files of a project.
161190

162191
## License
163192

@@ -172,7 +201,8 @@ The library includes some third party modules that are licensed differently. In
172201

173202
## Contributors
174203

175-
- Joost Renes, while he was an intern with Microsoft Research.
204+
- Geovandro Pereira.
205+
- Joost Renes.
176206

177207
# References
178208

@@ -188,17 +218,26 @@ The round 2 submission package is available [`here`](https://csrc.nist.gov/CSRC/
188218
[4] Craig Costello, and Huseyin Hisil, "A simple and compact algorithm for SIDH with arbitrary degree isogenies". Advances in Cryptology - ASIACRYPT 2017, LNCS 10625, pp. 303-329, 2017.
189219
The preprint version is available [`here`](https://eprint.iacr.org/2017/504).
190220

191-
[5] Armando Faz-Hernández, Julio López, Eduardo Ochoa-Jiménez, and Francisco Rodríguez-Henríquez, "A faster software implementation of the supersingular isogeny Diffie-Hellman key exchange protocol". IEEE Transactions on Computers (to appear).
221+
[5] Armando Faz-Hernández, Julio López, Eduardo Ochoa-Jiménez, and Francisco Rodríguez-Henríquez, "A faster software implementation of the supersingular isogeny Diffie-Hellman key exchange protocol". IEEE Transactions on Computers, Vol. 67(11), 2018.
192222
The preprint version is available [`here`](https://eprint.iacr.org/2017/1015).
193223

194224
[6] Gora Adj, Daniel Cervantes-Vázquez, Jesús-Javier Chi-Domínguez, Alfred Menezes and Francisco Rodríguez-Henríquez, "On the cost of computing isogenies between supersingular elliptic curves". SAC 2018, LCNS 11349, pp. 322-343, 2018.
195225
The preprint version is available [`here`](https://eprint.iacr.org/2018/313).
196226

197-
[7] Samuel Jaques and John M. Schanck, "Quantum cryptanalysis in the RAM model: Claw-finding attacks on SIKE", 2019.
227+
[7] Samuel Jaques and John M. Schanck, "Quantum cryptanalysis in the RAM model: Claw-finding attacks on SIKE". Advances in Cryptology - CRYPTO 2019 (to appear), 2019.
198228
The preprint version is available [`here`](https://eprint.iacr.org/2019/103).
199229

200230
[8] Craig Costello, Patrick Longa, Michael Naehrig, Joost Renes and Fernando Virdia, "Improved Classical Cryptanalysis of the Computational Supersingular Isogeny Problem", 2019.
201-
The preprint version is available [`here`](https://eprint.iacr.org/2019/298).
231+
The preprint version is available [`here`](https://eprint.iacr.org/2019/298).
232+
233+
[9] Craig Costello, David Jao, Patrick Longa, Michael Naehrig, Joost Renes and David Urbanik, "Efficient compression of SIDH public keys". Advances in Cryptology - EUROCRYPT 2017, LNCS 10210, pp. 679-706, 2017.
234+
The preprint version is available [`here`](https://eprint.iacr.org/2016/963).
235+
236+
[10] Gustavo H.M. Zanon, Marcos A. Simplicio Jr, Geovandro C.C.F. Pereira, Javad Doliskani and Paulo S.L.M. Barreto, "Faster key compression for isogeny-based cryptosystems". IEEE Transactions on Computers, Vol. 68(5), 2019.
237+
The preprint version is available [`here`](https://eprint.iacr.org/2017/1143).
238+
239+
[11] Michael Naehrig and Joost Renes, "Dual Isogenies and Their Application to Public-key Compression for Isogeny-based Cryptography". Advances in Cryptology - ASIACRYPT 2019 (to appear), 2019.
240+
The preprint version is available [`here`](https://eprint.iacr.org/2019/499).
202241

203242
# Contributing
204243

0 commit comments

Comments
 (0)