imtypist / group-signature-interface

a group signature client for https://github.com/FISCO-BCOS/group-signature-server implemented in Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Achieve anonymity-yet-accoutability in blockchain-based VANET systems by using group signature

workflow

+----------------------------------------------------------------------------------------+

gpk: group public key
gsk: group secret key
gsk_ra: group secret key of RA
gsk_ve: group secret key of vehicle
pk_ve: public key of vehicle

+----------------------------------------------------------------------------------------+

+------+  create group: param  +------+
|      | +-------------------> |      |
|  RA  |                       |  RA  |
|      | <-------------------+ |      |
+------+  gpk, gsk, gsk_ra     +------+

+---------+  join group: gpk, pk_ve  +------+
|         | +----------------------> |      |
| vehicle |                          |  RA  |
|         | <----------------------+ |      |
+---------+  gsk_ve                  +------+

+---------+  sign message and post transaction  +------------+
|         | +---------------------------------> |            |
| vehicle |                                     | blockchain |
|         | <---------------------------------+ |            |
+---------+  return OK                          +------------+

+-------+  verify signature of message  +------------+
|       | +---------------------------> |            |
|  RSU  |                               | blockchain |
|       | <---------------------------+ |            |
+-------+  return OK                    +------------+

+------+  reveal someone's real identity by signature  +------------+
|      | +-------------------------------------------> |            |
|  RA  |                                               | blockchain |
|      | <-------------------------------------------+ |            |
+------+  pk_ve                                        +------------+

group signature

group signature

performance

The experiment setting is that using a virtual machine (VM) ubuntu16.04 running on VirtualBox, the number of VM's CPU core is 2, the size of memory is 4GB; The localhost CPU is Intel i7-7700, the size of memory is 16GB. In this experiment, the implemented group signature scheme is BBS04 and the ring signature scheme is LSAG.

Note that maximum ring size is hard coded as 32 in FISCO-BCOS/group-signature-server. Here I set it to 1024 for testing a larger ring size. You can change it by yourselves.

In this experiment result, I added the performance of revoke and update member private key operations. To achieve that, I implemented revoke_member and revoke_update_private_key RPC interfaces, which are not yet implemented in the original repository. If you want to use them directly, you can git clone from imtypist/group-signature-server.

About

a group signature client for https://github.com/FISCO-BCOS/group-signature-server implemented in Python


Languages

Language:Python 100.0%