a verifiable random function with short proofs and keys

28
A Verifiable Random Function With Short Proofs and Keys Yevgeniy Dodis Aleksandr Yampolskiy (NYU) (Yale)

Upload: aleksandr-yampolskiy

Post on 11-Nov-2014

718 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: A verifiable random function with short proofs and keys

A Verifiable Random Function With Short Proofs and Keys

Yevgeniy Dodis

Aleksandr Yampolskiy

(NYU)

(Yale)

Page 2: A verifiable random function with short proofs and keys

Outline

Motivation Previous work Our constructions Extensions Conclusion

Page 3: A verifiable random function with short proofs and keys

Non-interactive lottery [MR02] Lottery organizer has a secret function FSK(.) Each participant chooses a lottery ticket x and

sends it to the organizer

Organizer

FSK(.)x1 = 3

x2 = 8

x3 = 5

Page 4: A verifiable random function with short proofs and keys

Non-interactive lottery (cont.) Organizer computes y = FSK(x) for each x he

receives. The value y somehow determines if the user

wins; e.g., a user wins $100 if his y is a prime.

FSK(.)FSK(3) = 10

FSK(8) = 11

FSK(5) = 15Organizer

Page 5: A verifiable random function with short proofs and keys

Non-interactive lottery (cont.) This scheme almost works except… Problem 1: We must ensure that users

cannot bias the lottery; i.e., FSK(x) should look random.

Problem 2: What stops the organizer from lying about the true FSK(x) value?

Page 6: A verifiable random function with short proofs and keys

Verifiable Random Function

What we need is a verifiable random function (VRF) [MRV99]

On input x, owner of secret key SK can compute y = FSK(x) together with proof SK(x).

The output y looks random. Yet the proof SK(x) convinces every

verifier that y is correct with respect to public key.

Page 7: A verifiable random function with short proofs and keys

Previous work

VRFs have many useful applications (non-interactive lottery, rZK, e-cash, verifiable transaction escrow).

However, they are not very well studied [MRV99, Lys02, Dod03]

Prior constructions are not very efficient.

Page 8: A verifiable random function with short proofs and keys

Previous work (cont.) Use an inefficient Goldreich-Levin

hardcore bit [MRV99, Lys02] Construct a verifiable unpredictable function

(VUF), whose output is hard to guess but not necessarily random.

Use Goldreich-Levin bit to convert a VUF into a VRF.

Page 9: A verifiable random function with short proofs and keys

Previous work (cont.) Use an inefficient Goldreich-Levin

hardcore bit [MRV99, Lys02] Inputs need to be encoded in a special

way [MRV99, Lys02, Dod03] [MRV99]: inputs are first mapped into primes [Lys02, Dod03]: inputs are mapped to

codewords of an error-correcting code

Page 10: A verifiable random function with short proofs and keys

Previous work (cont.) Use an inefficient Goldreich-Levin

hardcore bit [MRV99, Lys02] Inputs need to be encoded in a special

way [MRV99, Lys02, Dod03] Proofs and keys are long [Lys02, Dod03]

[Lys02, Dod03]: keys (PK, SK) and proofs SK(x) consist of O(|x|) group elements.

Page 11: A verifiable random function with short proofs and keys

Our work

We construct a VRF directly without using the Goldreich-Levin hardcore bit.

Inputs need not be encoded in any special way.

Our proofs and keys consist of O(1) group elements regardless of the input size.

Page 12: A verifiable random function with short proofs and keys

Bilinear groups G, G1 : cyclic groups of prime order p

An admissible bilinear map e: G£G G1

bilinear: 8u,v 2 G and 8x,y 2 Z

e(ux, vy) = e(u, v)xy

non-degenerate: e(g, g) ≠ 1 efficiently computable

Can construct such maps from Weil pairing on elliptic curves [JN01]

Page 13: A verifiable random function with short proofs and keys

Compexity assumptions

We make two assumptions: q-DHI assumption: given (g, gx, …, g(xq)), it is

hard to compute g1/x [MSK02] q-DBDHI assumption: given (g, gx, …, g(xq)),

it is hard to distinguish e(g,g)1/x from random [BB04]

Hard = adversary running for s(k) steps is unlikely to succeed. Here, s(k)=(poly(k)) and s(k)=o(2k).

Page 14: A verifiable random function with short proofs and keys

Our VUF Starting point: Boneh-Boyen signature [BB04]

Algorithm Gen(1k): Pick s2R Zp*.The secret key

is SK = s. The public key is PK = gs. Algorithm SignSK(x): To sign x, compute y

= g1/(x+SK). Algorithm VerPK(x, y): Check that

e(y, gx¢PK) = e(g, g).

Page 15: A verifiable random function with short proofs and keys

Our VUF (cont.) Boneh-Boyen signature is secure against non-

adaptive queries (and uses stronger q-SDH assumption)

A VUF must be secure against adaptive queries

adversarychallenger

(PK, SK) PKx1 x2 xk…

y1 y2 yk…

adversarychallenger

(PK, SK) PKxi

yi

Page 16: A verifiable random function with short proofs and keys

Our VUF (cont.) Trick: Restrict input size to be small,

a(k) = (log s(k)) (s(k) is the security) Then, we can enumerate all possible

queries in less than s(k) time and give answers adaptively.

Page 17: A verifiable random function with short proofs and keys

Our VUF (cont.)

Boneh-Boyen signature becomes a verifiable unpredictable function (VUF) for small inputs

We can use Goldreich-Levin bit to convert a VUF into a VRF, but this is very inefficient

Page 18: A verifiable random function with short proofs and keys

Our VRF Instead, we construct a VRF directly:

Algorithm Gen(1k): Pick s2R Zp*.The secret

key is SK = s. The public key is PK = gs. Algorithm ProveSK(x) : Compute

(FSK(x), SK(x)) = (e(g,g)1/(x+SK), g1/(x+SK))

Algorithm VerPK(x,y,): Verify that e(gx¢PK, ) = e(g,g) and y = e(g, ).

our VUF

Page 19: A verifiable random function with short proofs and keys

Proof of security : big picture Our VRF is provably secure for inputs of

small size, a(k) = O (log s(k)). If there is an algorithm A that breaks the

VRF in time t, with probability , then there is an algorithm B that solves

the q-DBDHI problem (q=2a(k)) in time ¼ t/(2a(k)¢poly(k)), with probability /2a(k).

Page 20: A verifiable random function with short proofs and keys

Proof of security : big picture

B

A

Construct reduction algorithm B that answers A’s queries and then uses A’s answers to solve the q-DBDHI instance

(g, g, …, g(q), )

Is = e(g,g)1/Challenger

VRF game

Page 21: A verifiable random function with short proofs and keys

Proof of security : sketch Idea:

1. Want to know if = e(g,g)1/ ?

2. Guess that A can distinguish VRF value of x* from random.

3. Prepare keys (PK, SK) such that SK = - x* is unknown, yet we can correctly compute hFSK(x), SK(x)i for any x ≠ x*.

4. We construct * from such that FSK(x*) = * if = e(g,g)1/

FSK(x*) = $ if = $

Page 22: A verifiable random function with short proofs and keys

Proof of security : sketch

B

A(g, g, …, g(q), )

Challenger

We can then use A to distinguish the original from random.

(PK, SK) PK

is not e(g,g)1/ not randomx*

Page 23: A verifiable random function with short proofs and keys

Extending the input size

Our VRF is secure for small inputs, a(k)=(log s(k)).

Inputs of arbitrary size are no problem! Just use a collision-resistant hash

function H(¢): {0,1}* {0,1}a(k). Trivially, composition FSK(H(¢)) is secure.

Page 24: A verifiable random function with short proofs and keys

Extending the input size (cont.) Alternatively, we can truncate basic VRF’s

output to a(k)-1 bits and use [MRV99] tree construction:

0a-1

y=F(0a) z=F(0a-11)

F(z0) F(z1)F(y0) F(y1)

F(F(y1)1)F(F(y1)0)

0 1

0 1 0 1

0 1

VRF value for x = 011

Page 25: A verifiable random function with short proofs and keys

Efficiency

Length of proofs and keys

Group size

Our VRF 125 bytes 1,000 bits, elliptic group

[MRV99] 280,000 bytes 14,383 bits,

Zn*

[Dod03], [Lys02] >3,200 bytes 160 bits,

elliptic group

Suppose a(k) = 160 bits, the length of SHA-1 digests.

We then have:

Page 26: A verifiable random function with short proofs and keys

Compact e-cash [CHL05]

Offline anonymous e-cash scheme. A user can withdraw a wallet of 2l coins from the

bank and later spend them. In best known schemes, withdraw and spend

operations take O(2l¢k) time (k is the security parameter).

In EuroCrypt ’05, [CHL05] used our VRF to construct a scheme whose withdraw/spend operations take O(l+k) time.

Page 27: A verifiable random function with short proofs and keys

Conclusion

We give a simple and efficient VRF construction. It can be instantiated with elliptic groups of

reasonable size. Proofs and keys consist of only one group

element regardless of the input size. Can obtain a VRF value on committed values. Our VRF can be made distributed and proactive.

Page 28: A verifiable random function with short proofs and keys