BitInit / SecureUnionID

Secure ECC-based DID intersection in Go, Java and C.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SecureUnionID

Secure ECC-based DID intersection.

ABSTRACT

This project is used to protect device ID using Elliptic Curve Cryptography algorithm. The details of this project can be found in INTRODUCTION.

INSTALLION

For Golang User

go get -u github.com/volcengine/SecureUnionID

For Java User The Java source code is under the bindings/java directory.

Please see the README.md under the bindings/java directory.

RUN DEMOS

For Golang User

We provide three demos without http communication (/bingdings/go/demo/demo.go, /bingdings/go/demo/demo1.go, /bingdings/go/demo/demo2.go). Run demo with the following command:

go run demo.go
go run demo1.go
go run demo2.go

We also provide a demo with http communication (/bingdings/go/httpdemo/http_client_demo.go, /bingdings/go/httpdemo/http_sever_demo.go). Run this demo with the following command in two terminals:

go run http_client_demo.go
go run http_sever_demo.go

For Java User

Please see the README.md under the bindings/java directory.

BENCHMARK

We provide a benchmark file for Golang user, the path of which is /bindings/go/benchmark/benchmark.go. The performance on a 2.3 GHz core i7, 32G DDR4 mac with 2 media is as follows:

GenMasterKey -    35572 iterations       0.28 ms per iteration
KeyGen -    13785 iterations       0.73 ms per iteration
SystemKeygen -    87311 iterations       0.11 ms per iteration
Blindv2 -    16344 iterations       0.61 ms per iteration
Enc -    43323 iterations       0.23 ms per iteration
Unblind -    34110 iterations       0.29 ms per iteration
Verify -     5111 iterations       1.96 ms per iteration

Doc

We provide API documents of C, Go, Java, Python (English version in C_EN, Go_EN, Java_EN, Python_EN). Other contributors can develop interfaces in other languages according to this document.

Released under the Apache License.

About

Secure ECC-based DID intersection in Go, Java and C.

License:Apache License 2.0


Languages

Language:C 87.8%Language:Go 6.1%Language:Java 4.0%Language:Python 0.8%Language:SWIG 0.8%Language:CMake 0.4%