1
0
鏡像自 https://github.com/henrydcase/nobs.git synced 2024-11-22 07:15:32 +00:00
nobs/kem/mkem
dependabot[bot] 25b66236df
Bump golang.org/x/sys in /kem/mkem (#50)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.0.0-20191120155948-bd437916bb0e to 0.1.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](https://github.com/golang/sys/commits/v0.1.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 23:15:16 +00:00
..
cmd adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00
csidh_test.go adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00
csidh.go adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00
go.mod Bump golang.org/x/sys in /kem/mkem (#50) 2023-03-13 23:15:16 +00:00
Makefile adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00
README.md Update README.md 2021-04-02 17:34:03 +01:00
sike_test.go adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00
sike.go adds cycle count. fixes csidh which provides 128 not 512 bits of security 2020-08-25 11:21:11 +01:00

mKEM for cSIDH/p512

Implementation of multi-KEM for SIKE and multi-PKE for cSIDH.

Implementation

The implementation is done in Go. Compilation requires go 1.12 or newer to compile with GO111MODULE=on. Implementation is based on cSIDH and SIDH from NOBS NOBS library.

Running and benchmarking

To run all benchmarks use following command

make run

It is possible to run only subset of benchmarks. The command make run-cycles will calculate CPU cycles for encryption/encapsulation to N users. The command make run-ns will produce results in nanoseconds.

Results

Benchmarks has been run on i7-8665U (Whiskey Lake) @ 1.90GHz

  • CPU cycle count
Test name:                | Cycle count:
--------------------------|--------------
bench_SIKEp434_KEM        | 1720710678
bench_SIKEp503_KEM        | 2411750152
bench_SIKEp751_KEM        | 7225841287
bench_SIKEp434_mKEM       | 783353356
bench_SIKEp503_mKEM       | 1100170053
bench_SIKEp751_mKEM       | 3304027422
bench_CSIDH_PKE           | 38200232832
bench_CSIDH_mPKE          | 19203013803
  • Time in ns
./mkem.test -test.run="notest" -test.bench=BenchmarkMultiEncaps -test.cpu=1

BenchmarkMultiEncaps_100keys/P-434         	       3	 357838360 ns/op
BenchmarkMultiEncaps_100keys/P-503         	       2	 503749852 ns/op
BenchmarkMultiEncaps_100keys/P-751         	       1	1514791804 ns/op


./mkem.test -test.run="notest" -test.bench=BenchmarkEncaps -test.cpu=1
BenchmarkEncaps/P-434         	     151	   7888643 ns/op
BenchmarkEncaps/P-503         	     100	  11150691 ns/op
BenchmarkEncaps/P-751         	      36	  34494941 ns/op

./mkem.test -test.run="notest" -test.bench=BenchmarkEncrypt_CSIDH_p512 -test.cpu=1
BenchmarkEncrypt_CSIDH_p512 	       7	 185828599 ns/op

./mkem.test -test.run="notest" -test.bench=BenchmarkMultiEncrypt_CSIDH_100keys -test.cpu=1
BenchmarkMultiEncrypt_CSIDH_100keys 	       1	1025902914 ns/op

Paper

Details of this construction has been presented at ASIACRYPT 2020 and are described in the ia.cr/2020/1107