项目作者: fernandolobato

项目描述 :
Minimalistic implementation of a linkable spontaneously anonymous group (LSAG) signature scheme with python over elliptic curves.
高级语言: Python
项目地址: git://github.com/fernandolobato/ecc_linkable_ring_signatures.git
创建时间: 2017-10-04T18:44:02Z
项目社区:https://github.com/fernandolobato/ecc_linkable_ring_signatures

开源协议:MIT License

下载


Linkable Spontaneous Anonymous Group Signature with Elliptic Curve Cryptograhpy.

Minimalistic pythonic implementation of a linkable spontaneously anonymous group (LSAG)
signature scheme
over elliptic curves.

With this package you can perform a ring signature over a set of public key without revealing which corresponding private key to one of the public keys in the set generated the signature.

This implementation was adapted from finte groups to elliptic curves. The scheme uses a cryptographic function as a random oracle to map numbers into the finit group. This implementation took the random oracle model by hashing into an elliptic curve using the ‘Try-and-Increment’ Method. More information can be found on How to hash into Elliptic Curves.

This implementation serves as a proof of concept. DO NOT TRY TO USE THIS FOR ANY REAL USE CASE. THIS HAS NOT BEEN TESTED EXTERNALLY.

Sign and verify a message:

  1. from linkable_ring_signature import ring_signature, verify_ring_signature
  2. from ecdsa.util import randrange
  3. from ecdsa.curves import SECP256k1
  4. number_participants = 10
  5. x = [ randrange(SECP256k1.order) for i in range(number_participants)]
  6. y = list(map(lambda xi: SECP256k1.generator * xi, x))
  7. message = "Every move we made was a kiss"
  8. i = 2
  9. signature = ring_signature(x[i], i, message, y)
  10. assert(verify_ring_signature(message, y, *signature))

Stuff used to make this:

  • ECDSA ECDSA cryptography python library.