pk_vrf

Verifiable Random Functions with Large Input Spaces (HW10)

Authors: Susan Hohenberger, Brent Waters

Title: “Constructing Verifiable Random Functions with Large Input Spaces”
Published in: ePrint Archive, 2010
Notes: Applications to resettable ZK proofs, micropayment schemes, updatable ZK DBs

Scheme Properties

  • Type: verifiable random function (VRF)

  • Setting: bilinear groups (pairing-based)

  • Assumption: q-DBDHI

Implementation

Authors:
  1. 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]