pk_vrf

Susan Hohenberger and Brent Waters (Pairing-based)

From: “Constructing Verifiable Random Functions with Large Input Spaces”
Published in: ePrint
Notes: applications to resetable ZK proofs, micropayment schemes, updatable ZK DBs and verifiable transaction escrow schemes to name a few
  • type: verifiable random functions (family of pseudo random functions)
  • setting: Pairing
Authors:J Ayo Akinyele
Date:1/2012
class pk_vrf.VRF10(groupObj)[source]

Bases: object

>>> from charm.toolbox.pairinggroup import PairingGroup
>>> group = PairingGroup('MNT224')
>>> vrf = VRF10(group)
>>> statement = [0, 1, 1, 0, 1, 0, 1, 0]
>>> n = len(statement) 
>>> (public_key, secret_key) = vrf.setup(n)
>>> witness = vrf.prove(secret_key, statement)
>>> vrf.verify(public_key, statement, witness)
True
F(sk, x)[source]
prove(sk, x)[source]
setup(n)[source]

n = bit length of inputs

verify(pk, x, st)[source]
pk_vrf.main()[source]