Return-Path: <tgarcia.3141@gmail.com>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id BF2E0131FBF
 for <cfrg@ietfa.amsl.com>; Thu, 27 Jul 2017 01:51:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.448
X-Spam-Level: 
X-Spam-Status: No, score=-2.448 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25,
 FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7,
 SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
 header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id pEC9TJPQ4orx for <cfrg@ietfa.amsl.com>;
 Thu, 27 Jul 2017 01:51:51 -0700 (PDT)
Received: from mail-lf0-x22e.google.com (mail-lf0-x22e.google.com
 [IPv6:2a00:1450:4010:c07::22e])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 09A03127136
 for <cfrg@irtf.org>; Thu, 27 Jul 2017 01:51:51 -0700 (PDT)
Received: by mail-lf0-x22e.google.com with SMTP id g25so73737045lfh.1
 for <cfrg@irtf.org>; Thu, 27 Jul 2017 01:51:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; 
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=qwOrxtq/CICr1raa85Ces1FmQWjyllGldEGZGtHNTCw=;
 b=Yd9v6Xv7BFzBSyxUJ48uDBVA/GkK+UA4HeAdoUFY5Hb6mPUtwN7jHQJz3aZ7Pm+0WO
 j9+3FZKQMmosh+b3xplG5YtPmUWo7IKOzosBq4GwPn/9UAdICe9cVRQ4tY0Y7RqwBiB3
 4BhXJCQuLzQK1kEgXCevI8X6Dxa4FiOqRTvCE1x8HFe+F+lneIH8It+Lt/tJA5H4Fq2P
 tGzvLw7rAsgnX08kbUAVdceSu1Z2VOAvyzUgjbKf2pO8BMiNqGmS9Ebdd3Yu7d1TDzYF
 k7y0aH9PO8oyFqT+JILqpMWhymPYtBVLiiVVU9QbltnmUd5jwIdc4xngWIOc0Bn6DC0u
 WcLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=qwOrxtq/CICr1raa85Ces1FmQWjyllGldEGZGtHNTCw=;
 b=Xu+uYCzwbjEuCnqAUWdCChx2BPfL8W9OxdeVpDk6mafyBB84prX/r/AVoKNr7LJJPI
 j0uSUbn/mYx00pZd6XnZOFU+Gyg0FoIxLdd+fXb/UYTRFi5MRMT1+JzhD25byT36Hyn9
 pmoYx03VXN8U3VUVE9jEP14MNE+hQaGPQqekgKXS51Wf4uMepdu0uw92pmnwb6BTRqyA
 Hq/pOpOZnDkBv5SX/oeUqfte8SA3+1f0OR1X2lGkbyfQinwsfDtKfqBZpeaVxTUyfo/Z
 AQtdHEizCEaBceTc6i5XKFz7w5GKt9bW4+PqNcqdOSp74L/a/SbUck7lvzUPn9it+pFJ
 WqAw==
X-Gm-Message-State: AIVw113MeSkHzRKdrI0OEhsWzHBM2C2yGvJqItiGB9XwiZVI0PqZLwVv
 rSieLtna1JEcH8QqnY6tHkqKXydhLg==
X-Received: by 10.46.84.83 with SMTP id y19mr1588622ljd.186.1501145509149;
 Thu, 27 Jul 2017 01:51:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.25.22.40 with HTTP; Thu, 27 Jul 2017 01:51:48 -0700 (PDT)
In-Reply-To: <CAJHGrrSh27DFzuGDmTD_GuBF7tCtNQsCJ42XTjZWO1LqqAm3wQ@mail.gmail.com>
References: <CAJHGrrROHxR6WLQFO4+tL7N6DGKSAbwSzQZP-x3es+iy2O6TDg@mail.gmail.com>
 <810C31990B57ED40B2062BA10D43FBF501B63B22@XMB116CNC.rim.net>
 <20170721163204.8573013.1016.15939@blackberry.com>
 <CAJHGrrTbjL3rd_XU9tx28g3QcBe9tJBOxs2t1OebfvZR_c7epA@mail.gmail.com>
 <CAFTSWvfwf34uH1AjzQq7zCMEARGH8rH310pSRe7kkYCZ3TMNeQ@mail.gmail.com>
 <CAJHGrrSh27DFzuGDmTD_GuBF7tCtNQsCJ42XTjZWO1LqqAm3wQ@mail.gmail.com>
From: Thomas Garcia <tgarcia.3141@gmail.com>
Date: Thu, 27 Jul 2017 09:51:48 +0100
Message-ID: <CAFTSWvd5GR_WsesCrfs3QNR1hPNtN-GW7-yn9PwC4GUiq0AxKw@mail.gmail.com>
To: Sharon Goldberg <sharon.goldbe@gmail.com>
Cc: Dan Brown <danibrown@blackberry.com>, "jan@ns1.com" <jan@ns1.com>, 
 "cfrg@irtf.org" <cfrg@irtf.org>, Dimitrios Papadopoulos <dipapado@umd.edu>,
 Leonid Reyzin <reyzin@cs.bu.edu>
Content-Type: multipart/alternative; boundary="f403045fc2f2d43ee0055548acd5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/7jNNr8G6S5TctogT4mXwRvWtDSM>
Subject: Re: [Cfrg] draft-goldbe-vrf: Verifiable Random Functions
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/cfrg>,
 <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/cfrg>,
 <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jul 2017 08:51:55 -0000

--f403045fc2f2d43ee0055548acd5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Thanks for helping me clear those things up!

Thomas G.

On Wed, Jul 26, 2017 at 12:42 PM, Sharon Goldberg <sharon.goldbe@gmail.com>
wrote:

> Hi Thomas,
>
> 1. It seems that one of the properties that you are interested that the
>> VRF will have is determinism. On the other hand, the EC-VRF value is
>> dependent on the choice of some random number k. How are these two facts
>> compatible? Am I missing something?
>>
>
> We require determinism from the VRF hash output, which is obtained from
> the VRF proof via the "proof2hash" function.
>
> The EC-VRF proof has 3 values: gamma, c, s
> Values c and s depends on the choice of random number k
> But value gamma does not depend on k.
>
> We get determinism because the VRF hash output (derived using
> "proof2hash") depends only on gamma, but not on c and s.
>
> Slide 28 from my CFRG presentations gives a pictorial explanation of this=
:
> http://www.cs.bu.edu/~goldbe/papers/VRF_ietf99_print.pdf
>
> 2. The value c calculated in EC-VRF is only 128 bits long for Ed25519. In
>> normal usage of Ed25519 the signature uses the full length of the hash
>> output. Doesn't this expose the signature to collision attacks?
>>
>> No. We worked this out in our proofs of security.  Section B.2.1 of this
> paper explains why this works.
>
> https://eprint.iacr.org/2017/099.pdf
>
> Thanks,
> Sharon
>
>
>
>> Thank you for your comments. Indeed, VRFs have been around since 1999.
>>> They are really "verifiable PRFs" but the name is by now standard in th=
e
>>> crypto literature, and changing it will cause more confusion than keepi=
ng
>>> it.
>>>
>>> In terms of the VRF's security properties, there are three:  uniqueness=
,
>>> collision resistance, and pseudorandomness. These are defined in our dr=
aft (
>>> https://tools.ietf.org/html/draft-goldbe-vrf-01#section-3).
>>>
>>> How VRFs prevent dictionary attacks: a public hash is subject to a
>>> dictionary attack because, given the output, an adversary can evaluate =
the
>>> hash on different inputs and see what hits the outputs. In a VRF, the
>>> adversary can't evaluate the hash on different inputs.
>>>
>>> You say it's not surprising that "random oracle model proof can prove
>>> the output of a hash to be random". But actually, the output of a hash =
is
>>> NOT random if the input and the hash function are known. This is becaus=
e
>>> the output of a hash is deterministic (every input maps to a unique
>>> output). That's exactly what enables dictionary attacks. This is in
>>> contrast to a VRF, where the output is (pseudo)random even given knowle=
dge
>>> of the input. Only once the VRF proof is given, does the VRF output sto=
p
>>> looking random. Note that random oracles are not essential for VRFs, an=
d
>>> non-random-oracles constructions exist (but are less efficient than wha=
t we
>>> propose to standardize).
>>>
>>> As far as use cases, here are a few:
>>>
>>> In the NSEC5 use case for DNSSEC, you have sensitive data (domain names=
)
>>> and you sign consecutive pairs of hashes of domain names in order to be
>>> able to prove absence of a name. If you just use standard hashing, when=
ever
>>> signed hash values are disclosed, your sensitive data is subject to
>>> dictionary attacks. VRFs solve that problem, and sensitive names don't =
have
>>> to be disclosed at all. More details are in https://eprint.iacr.org/201
>>> 7/099.pdf
>>>
>>> In CONIKS (also Google Key Transparency, Signal secure messaging, Yahoo=
!
>>> Coname) you also have some sensitive data (user names) that are put int=
o a
>>> Merkle-like authenticated data structure. If you just use standard hash=
ing,
>>> whenever hash values are disclosed, sensitive data is subject to dictio=
nary
>>> attacks. If you use VRFs, sensitive data again can be disclosed only on=
 an
>>> as-needed basis. More details are in  https://eprint.iacr.org/2014/
>>> 1004.pdf.
>>>
>>> In a cryptocurrency use case, you wish perform a coin flip that is
>>> deterministic and provably correct, but cannot be done by just anyone.
>>> More details are in https://people.csail.mit.ed
>>> u/nickolai/papers/gilad-algorand-eprint.pdf and possibly other
>>> cryptocurrency papers.
>>>
>>> Bryan Ford mentioned an additional usecase at the mic on Tuesday:
>>> distributed password protection protocols
>>>
>>> Many of these use case are already putting VRFs into production use
>>> (esp. the CONIKS one).  You can see a list of the various implementatio=
ns
>>> we have found in the "implementation status" section of our draft.  One=
 of
>>> the reasons we think this spec is so important is that we found flaws i=
n
>>> several of the implementations that can be used to trivially break
>>> uniqueness.  (See eg: https://github.com/google/
>>> keytransparency/issues/567)
>>>
>>> Thanks,
>>> Sharon
>>>
>>> On Fri, Jul 21, 2017 at 7:32 PM, Dan Brown <danibrown@blackberry.com>
>>> wrote:
>>>
>>>> Answering myself below: VRFs have been around since 1999, so are not s=
o
>>>> new.  =E2=80=8EStill don't like the name, and still have trouble seein=
g the value.
>>>>
>>>> *From: *Dan Brown
>>>> *Sent: *Tuesday, July 18, 2017 2:29 PM
>>>> *To: *Sharon Goldberg; cfrg@irtf.org
>>>> *Cc: *jan@ns1.com; Leonid Reyzin; Dimitrios Papadopoulos
>>>> *Subject: *Re: [Cfrg] draft-goldbe-vrf: Verifiable Random Functions
>>>>
>>>> Hi Sharon and CFRG,
>>>>
>>>>
>>>>
>>>> On VRFs, my uncertain comments to consider at your leisure:
>>>>
>>>>
>>>>
>>>> Is it fair to say VRFs are relatively new?  If so, then maybe a little
>>>> more caution is needed about their use.  It seems a tad hasty that it =
is
>>>> being used already.
>>>>
>>>>
>>>>
>>>> To me, it seems that VRFs are basically signatures, with an extra
>>>> feature.  My concern is that this extra feature might get overused, be=
fore
>>>> it is thoroughly reviewed.
>>>>
>>>>
>>>>
>>>> It is unsurprising to me that random oracle model proof can prove the
>>>> output of a hash to be random.  My intuitive concern is that at least
>>>> informally, this is kind of circular.  Hashes often have some
>>>> non-random-ish properties that might affect the extra security (over
>>>> signatures) that VRFs are aiming for.  I guess I would much prefer a p=
roof
>>>> saying if the hash has (well-studied) properties XYZ, then your
>>>> construction are VRFs.  (Maybe you have this already?  If so, then tel=
l me
>>>> so.)
>>>>
>>>>
>>>>
>>>> Since, VRFs require sending the =E2=80=9Cproofs=E2=80=9D on the wire, =
I find it hard to
>>>> see how it could be used to prevent dictionary attacks.  I assume that=
 you
>>>> are saying the proofs must be encrypted when one needs to avoid dictio=
nary
>>>> models?  I suppose all the details are there in I-D and papers, but fo=
r
>>>> now, I am confused about the threat model (which parties have keys, et=
c.,
>>>> if they require a secure channel and mutual trust, why just use plain =
old
>>>> hash,=E2=80=A6). To resist dictionary attacks, were already have PAKEs=
 and
>>>> PBHashing.  Now this?
>>>>
>>>>
>>>>
>>>> Finally, on a bikeshed-coloring note, I object to the name =E2=80=9Cve=
rifiable
>>>> random function=E2=80=9D, on several grounds.
>>>>
>>>>
>>>>
>>>>    1. It is not a function.  It is at least four functions, keygen,
>>>>    sign, verify, and hashify.
>>>>    2. If you make it into a keyed function F_sk(m), as in
>>>>    prooftohash(sign_sk(m)), it is not verifiable.
>>>>    3. Verification requires the intermediate proof, which is certainly
>>>>    not even pseudorandom (it is easy to distinguish valid signatures f=
rom
>>>>    random).
>>>>    4. It is pseudorandom, not random.  (The keys are random, but many
>>>>    crypto has keys, without having =E2=80=9Crandom=E2=80=9D in its nam=
e: encryption, MAC,
>>>>    signatures, key exchange, =E2=80=A6, they also don=E2=80=99t verifi=
able or random in their
>>>>    names either.)
>>>>    5. The similar phrase =E2=80=9Cverifiably random=E2=80=9D, albeit a=
s a misnomer,
>>>>    has past precedents, see NIST P-256 and Brainpool, etc.  When I see=
 VRF, I
>>>>    think a function, that aims to VR in that sense, and great, now we =
can
>>>>    improve on Brainpool, etc.
>>>>    6. =E2=80=9CRandom function=E2=80=9D should be reserved for the ide=
al random
>>>>    mapping concept, for example, as studied by Flajolet-Odlyzko (ok th=
ey only
>>>>    studied the case of equal size domain and range).  The random oracl=
e model,
>>>>    is the idea of approximating this ideal, etc.  An actual approximat=
ion
>>>>    should not be name as the ideal (sorry, I=E2=80=99m kind of repeati=
ng my point 4).
>>>>
>>>>
>>>>
>>>> Please forgive the fact that my comments above are not very
>>>> constructive (or if the tone is wrong).  This is a new topic for me, s=
o I
>>>> am reluctant too many suggestions.  Nonetheless, I suggest (0) waiting=
 a
>>>> little, (1) a non-random-oracle security proof (if you don=E2=80=99t h=
ave it yet),
>>>> (2) re-naming the scheme to something like re-hashable (or digestible)
>>>> signatures (and re-name the various parts, i.e. proof -> signature, et=
c.).
>>>>
>>>>
>>>>
>>>> Best regards,
>>>>
>>>>
>>>>
>>>> Dan
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *From:* Cfrg [mailto:cfrg-bounces@irtf.org] *On Behalf Of *Sharon
>>>> Goldberg
>>>> *Sent:* Wednesday, July 12, 2017 5:42 AM
>>>> *To:* cfrg@irtf.org
>>>> *Cc:* jan@ns1.com; Dimitrios Papadopoulos <dipapado@umd.edu>; Leonid
>>>> Reyzin <reyzin@cs.bu.edu>
>>>> *Subject:* [Cfrg] draft-goldbe-vrf: Verifiable Random Functions
>>>>
>>>>
>>>>
>>>> Dear CFRG,
>>>>
>>>> I'm presenting at next week's meeting on Verifiable Random Functions. =
A
>>>> VRF is the public-key version of keyed cryptographic hash. Only the ho=
lder
>>>> of the VRF secret key can compute the hash, but anyone with the public=
 key
>>>> can verify it.  VRFs can be used to prevent dictionary attacks on
>>>> hash-based data structures, and have applications to key transparency
>>>> (CONIKS), DNSSEC (NSEC5), and cryptocurrencies (Algorand).
>>>>
>>>> In advance of the meeting, please see:
>>>>
>>>> 1) Our substantially updated -01 draft:
>>>> https://datatracker.ietf.org/doc/draft-goldbe-vrf/
>>>>
>>>> 2) Our project page, with links to various VRF implementations:
>>>> https://www.cs.bu.edu/~goldbe/projects/vrf
>>>>
>>>> Comments welcome.  Thanks,
>>>>
>>>> Sharon
>>>>
>>>> --
>>>> Sharon Goldberg
>>>> Computer Science, Boston University
>>>> http://www.cs.bu.edu/~goldbe
>>>>
>>>
>>>
>>>
>>> --
>>> ---
>>> Sharon Goldberg
>>> Computer Science, Boston University
>>> http://www.cs.bu.edu/~goldbe
>>>
>>> _______________________________________________
>>> Cfrg mailing list
>>> Cfrg@irtf.org
>>> https://www.irtf.org/mailman/listinfo/cfrg
>>>
>>>
>>
>
>
> --
> ---
> Sharon Goldberg
> Computer Science, Boston University
> http://www.cs.bu.edu/~goldbe
>

--f403045fc2f2d43ee0055548acd5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><br></div><div>Thanks for helping me clear those thin=
gs up!</div><div><br></div><div>Thomas G.</div></div><div class=3D"gmail_ex=
tra"><br><div class=3D"gmail_quote">On Wed, Jul 26, 2017 at 12:42 PM, Sharo=
n Goldberg <span dir=3D"ltr">&lt;<a href=3D"mailto:sharon.goldbe@gmail.com"=
 target=3D"_blank">sharon.goldbe@gmail.com</a>&gt;</span> wrote:<br><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr">Hi Thomas,<div><br></div><div clas=
s=3D"gmail_extra"><div class=3D"gmail_quote"><span class=3D""><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>1. It seems that=
 one of the properties that you are interested that the VRF will have is de=
terminism. On the other hand, the EC-VRF value is dependent on the choice o=
f some random number k. How are these two facts compatible? Am I missing so=
mething?</div></div></blockquote><div><br></div></span><div>We require dete=
rminism from the VRF hash output, which is obtained from the VRF proof via =
the &quot;proof2hash&quot; function.</div><div><br></div><div>The EC-VRF pr=
oof has 3 values: gamma, c, s</div><div>Values c and s depends on the choic=
e of random number k</div><div>But value gamma does not depend on k.</div><=
div><br></div><div>We get determinism because the VRF hash output (derived =
using &quot;proof2hash&quot;) depends only on gamma, but not on c and s.</d=
iv><div>=C2=A0</div><div>Slide 28 from my CFRG presentations gives a pictor=
ial explanation of this:</div><div><a href=3D"http://www.cs.bu.edu/~goldbe/=
papers/VRF_ietf99_print.pdf" target=3D"_blank">http://www.cs.bu.edu/~goldbe=
/<wbr>papers/VRF_ietf99_print.pdf</a><br></div><span class=3D""><div><br></=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div=
>2. The value c calculated in EC-VRF is only 128 bits long for Ed25519. In =
normal usage of Ed25519 the signature uses the full length of the hash outp=
ut. Doesn&#39;t this expose the signature to collision attacks?</div><div><=
br></div></div></blockquote></span><div>No. We worked this out in our proof=
s of security.=C2=A0 Section B.2.1 of this paper explains why this works.</=
div><div><br></div><div><a href=3D"https://eprint.iacr.org/2017/099.pdf" ta=
rget=3D"_blank">https://eprint.iacr.org/2017/<wbr>099.pdf</a><br></div><div=
><br></div><div>Thanks,</div><div>Sharon</div><div><div class=3D"h5"><div><=
br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div><div class=3D"m_2913212881139340244gmail=
-h5"><div dir=3D"ltr"><div style=3D"font-size:12.8px"></div><div style=3D"f=
ont-size:12.8px">Thank you for your comments. Indeed, VRFs have been around=
 since 1999. They are really &quot;verifiable PRFs&quot; but the name is by=
 now standard in the crypto literature, and changing it will cause more con=
fusion than keeping it.</div><div style=3D"font-size:12.8px"><br></div><div=
 style=3D"font-size:12.8px">In terms of the VRF&#39;s security properties, =
there are three: =C2=A0uniqueness, collision resistance, and pseudorandomne=
ss. These are defined in our draft (<span style=3D"font-size:12.8px"><a hre=
f=3D"https://tools.ietf.org/html/draft-goldbe-vrf-01#section-3" target=3D"_=
blank">https://tools.ietf.org/html/d<wbr>raft-goldbe-vrf-01#section-3</a></=
span><span style=3D"font-size:12.8px">).<wbr>=C2=A0</span></div><div style=
=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">How VRFs pr=
event dictionary attacks: a public hash is subject to a dictionary attack b=
ecause, given the output, an adversary can evaluate the hash on different i=
nputs and see what hits the outputs. In a VRF, the adversary can&#39;t eval=
uate the hash on different inputs.=C2=A0</div><div style=3D"font-size:12.8p=
x"><br></div><div style=3D"font-size:12.8px">You say it&#39;s not surprisin=
g that &quot;random oracle model proof can prove the output of a hash to be=
 random&quot;. But actually, the output of a hash is NOT random if the inpu=
t and the hash function are known. This is because the output of a hash is =
deterministic (every input maps to a unique output). That&#39;s exactly wha=
t enables dictionary attacks. This is in contrast to a VRF, where the outpu=
t is (pseudo)random even given knowledge of the input. Only once the VRF pr=
oof is given, does the VRF output stop looking random. Note that random ora=
cles are not essential for VRFs, and non-random-oracles constructions exist=
 (but are less efficient than what we propose to standardize).</div><div st=
yle=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">As far a=
s use cases, here are a few:=C2=A0</div><div style=3D"font-size:12.8px"><br=
></div><div style=3D"font-size:12.8px">In the NSEC5 use case for DNSSEC, yo=
u have sensitive data (domain names) and you sign consecutive pairs of hash=
es of domain names in order to be able to prove absence of a name. If you j=
ust use standard hashing, whenever signed hash values are disclosed, your s=
ensitive data is subject to dictionary attacks. VRFs solve that problem, an=
d sensitive names don&#39;t have to be disclosed at all. More details are i=
n=C2=A0<a href=3D"https://eprint.iacr.org/2017/099.pdf" target=3D"_blank">h=
ttps://eprint.iacr.org/201<wbr>7/099.pdf</a></div><div style=3D"font-size:1=
2.8px"><br></div><div style=3D"font-size:12.8px">In CONIKS (also Google Key=
 Transparency, Signal secure messaging, Yahoo! Coname) you also have some s=
ensitive data (user names) that are put into a Merkle-like authenticated da=
ta structure. If you just use standard hashing, whenever hash values are di=
sclosed, sensitive data is subject to dictionary attacks. If you use VRFs, =
sensitive data again can be disclosed only on an as-needed basis. More deta=
ils are in =C2=A0<a href=3D"https://eprint.iacr.org/2014/1004.pdf" target=
=3D"_blank">https://eprint.iacr.org/2014/<wbr>1004.pdf</a>.</div><div style=
=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">In a crypto=
currency use case, you wish perform a coin flip that is deterministic and p=
rovably correct, but cannot be done by just anyone.=C2=A0 More details are =
in=C2=A0<a href=3D"https://people.csail.mit.edu/nickolai/papers/gilad-algor=
and-eprint.pdf" target=3D"_blank">https://people.csail.mit.ed<wbr>u/nickola=
i/papers/gilad-algora<wbr>nd-eprint.pdf</a>=C2=A0and possibly other cryptoc=
urrency papers.</div><div style=3D"font-size:12.8px"><br></div><div style=
=3D"font-size:12.8px">Bryan Ford mentioned an additional usecase at the mic=
 on Tuesday: distributed password protection protocols</div><div style=3D"f=
ont-size:12.8px"><br></div><div style=3D"font-size:12.8px">Many of these us=
e case are already putting VRFs into production use (esp. the CONIKS one).=
=C2=A0 You can see a list of the various implementations we have found in t=
he &quot;implementation status&quot; section of our draft.=C2=A0 One of the=
 reasons we think this spec is so important is that we found flaws in sever=
al of the implementations that can be used to trivially break uniqueness. =
=C2=A0(See eg:=C2=A0<a href=3D"https://github.com/google/keytransparency/is=
sues/567" target=3D"_blank">https://github.com/google/<wbr>keytransparency/=
issues/567</a>)</div><div style=3D"font-size:12.8px"><br></div><div style=
=3D"font-size:12.8px"><span style=3D"font-size:12.8px">Thanks,</span><br></=
div><div style=3D"font-size:12.8px">Sharon=C2=A0</div><div class=3D"gmail_e=
xtra"><div><div class=3D"m_2913212881139340244gmail-m_4922457647511857001h5=
"><br><div class=3D"gmail_quote">On Fri, Jul 21, 2017 at 7:32 PM, Dan Brown=
 <span dir=3D"ltr">&lt;<a href=3D"mailto:danibrown@blackberry.com" target=
=3D"_blank">danibrown@blackberry.com</a>&gt;</span> wrote:<br><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">




<div lang=3D"EN-US">
<div style=3D"width:100%;font-size:initial;font-family:Calibri,&quot;Slate =
Pro&quot;,sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;bac=
kground-color:rgb(255,255,255)">
Answering myself below: VRFs have been around since 1999, so are not so new=
. =C2=A0=E2=80=8EStill don&#39;t like the name, and still have trouble seei=
ng the value.</div>
<div style=3D"width:100%;font-size:initial;font-family:Calibri,&quot;Slate =
Pro&quot;,sans-serif,sans-serif;color:rgb(31,73,125);text-align:initial;bac=
kground-color:rgb(255,255,255)">
<span style=3D"font-family:Calibri,&quot;Slate Pro&quot;,sans-serif,sans-se=
rif;font-size:initial;line-height:initial;text-align:initial"><br>
</span></div>
<table width=3D"100%" style=3D"background-color:white">
<tbody>
<tr>
<td colspan=3D"2" style=3D"font-size:initial;text-align:initial;background-=
color:rgb(255,255,255)">
<div style=3D"border-style:solid none none;border-top-color:rgb(181,196,223=
);border-top-width:1pt;padding:3pt 0in 0in;font-family:Tahoma,&quot;BB Alph=
a Sans&quot;,&quot;Slate Pro&quot;;font-size:10pt">
<div><b>From: </b>Dan Brown</div>
<div><b>Sent: </b>Tuesday, July 18, 2017 2:29 PM</div>
<div><b>To: </b>Sharon Goldberg; <a href=3D"mailto:cfrg@irtf.org" target=3D=
"_blank">cfrg@irtf.org</a></div>
<div><b>Cc: </b><a href=3D"mailto:jan@ns1.com" target=3D"_blank">jan@ns1.co=
m</a>; Leonid Reyzin; Dimitrios Papadopoulos</div>
<div><b>Subject: </b>Re: [Cfrg] draft-goldbe-vrf: Verifiable Random Functio=
ns</div>
</div>
</td>
</tr>
</tbody>
</table><div><div class=3D"m_2913212881139340244gmail-m_4922457647511857001=
m_-6153101734044142155m_4165835283928257204gmail-h5">
<div style=3D"border-style:solid none none;border-top-color:rgb(186,188,209=
);border-top-width:1pt;font-size:initial;text-align:initial;background-colo=
r:rgb(255,255,255)">
</div>
<br>
<div>
<div class=3D"m_2913212881139340244gmail-m_4922457647511857001m_-6153101734=
044142155m_4165835283928257204gmail-m_6358749242748202832WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Hi Sharon and CFRG,</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">On VRFs, my uncertain comments to consider at your leisure:</span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Is it fair to say VRFs are relatively new?=C2=A0 If so, then mayb=
e a little more caution is needed about their use.=C2=A0 It seems a tad has=
ty that it is being used already.</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">To me, it seems that VRFs are basically signatures, with an extra=
 feature.=C2=A0 My concern is that this extra feature might get overused, b=
efore it is thoroughly reviewed.=C2=A0
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">It is unsurprising to me that random oracle model proof can prove=
 the output of a hash to be random.=C2=A0 My intuitive concern is that at l=
east informally, this is kind of circular.=C2=A0
 Hashes often have some non-random-ish properties that might affect the ext=
ra security (over signatures) that VRFs are aiming for.=C2=A0 I guess I wou=
ld much prefer a proof saying if the hash has (well-studied) properties XYZ=
, then your construction are VRFs.=C2=A0 (Maybe
 you have this already?=C2=A0 If so, then tell me so.)</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Since, VRFs require sending the =E2=80=9Cproofs=E2=80=9D on the w=
ire, I find it hard to see how it could be used to prevent dictionary attac=
ks.=C2=A0 I assume that you are saying the proofs must
 be encrypted when one needs to avoid dictionary models?=C2=A0 I suppose al=
l the details are there in I-D and papers, but for now, I am confused about=
 the threat model (which parties have keys, etc., if they require a secure =
channel and mutual trust, why just use
 plain old hash,=E2=80=A6). To resist dictionary attacks, were already have=
 PAKEs and PBHashing.=C2=A0 Now this?</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Finally, on a bikeshed-coloring note, I object to the name =E2=80=
=9Cverifiable random function=E2=80=9D, on several grounds.</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<ol start=3D"1" type=3D"1" style=3D"margin-top:0in">
<li class=3D"m_2913212881139340244gmail-m_4922457647511857001m_-61531017340=
44142155m_4165835283928257204gmail-m_6358749242748202832MsoListParagraph" s=
tyle=3D"margin-left:0in"><span style=3D"font-size:11pt;font-family:Calibri,=
sans-serif">It is not a function.=C2=A0 It is at least four functions, keyg=
en, sign, verify, and hashify.</span></li><li class=3D"m_291321288113934024=
4gmail-m_4922457647511857001m_-6153101734044142155m_4165835283928257204gmai=
l-m_6358749242748202832MsoListParagraph" style=3D"margin-left:0in"><span st=
yle=3D"font-size:11pt;font-family:Calibri,sans-serif">If you make it into a=
 keyed function F_sk(m), as in prooftohash(sign_sk(m)), it is not verifiabl=
e.=C2=A0
</span></li><li class=3D"m_2913212881139340244gmail-m_4922457647511857001m_=
-6153101734044142155m_4165835283928257204gmail-m_6358749242748202832MsoList=
Paragraph" style=3D"margin-left:0in"><span style=3D"font-size:11pt;font-fam=
ily:Calibri,sans-serif">Verification requires the intermediate proof, which=
 is certainly not even pseudorandom (it is easy to distinguish valid signat=
ures from random).</span></li><li class=3D"m_2913212881139340244gmail-m_492=
2457647511857001m_-6153101734044142155m_4165835283928257204gmail-m_63587492=
42748202832MsoListParagraph" style=3D"margin-left:0in"><span style=3D"font-=
size:11pt;font-family:Calibri,sans-serif">It is pseudorandom, not random.=
=C2=A0 (The keys are random, but many crypto has keys, without having =E2=
=80=9Crandom=E2=80=9D in its name: encryption, MAC, signatures,
 key exchange, =E2=80=A6, they also don=E2=80=99t verifiable or random in t=
heir names either.)</span></li><li class=3D"m_2913212881139340244gmail-m_49=
22457647511857001m_-6153101734044142155m_4165835283928257204gmail-m_6358749=
242748202832MsoListParagraph" style=3D"margin-left:0in"><span style=3D"font=
-size:11pt;font-family:Calibri,sans-serif">The similar phrase =E2=80=9Cveri=
fiably random=E2=80=9D, albeit as a misnomer, has past precedents, see NIST=
 P-256 and Brainpool, etc.=C2=A0 When I see VRF, I think
 a function, that aims to VR in that sense, and great, now we can improve o=
n Brainpool, etc.</span></li><li class=3D"m_2913212881139340244gmail-m_4922=
457647511857001m_-6153101734044142155m_4165835283928257204gmail-m_635874924=
2748202832MsoListParagraph" style=3D"margin-left:0in"><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif">=E2=80=9CRandom function=E2=80=9D =
should be reserved for the ideal random mapping concept, for example, as st=
udied by Flajolet-Odlyzko (ok they only studied
 the case of equal size domain and range).=C2=A0 The random oracle model, i=
s the idea of approximating this ideal, etc.=C2=A0 An actual approximation =
should not be name as the ideal (sorry, I=E2=80=99m kind of repeating my po=
int 4).</span></li></ol>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Please forgive the fact that my comments above are not very const=
ructive (or if the tone is wrong).=C2=A0 This is a new topic for me, so I a=
m reluctant too many suggestions.=C2=A0 Nonetheless,
 I suggest (0) waiting a little, (1) a non-random-oracle security proof (if=
 you don=E2=80=99t have it yet), (2) re-naming the scheme to something like=
 re-hashable (or digestible) signatures (and re-name the various parts, i.e=
. proof -&gt; signature, etc.).</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Best regards,</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">Dan</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif">From:</span></b><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif"> Cfrg [mailto:<a href=3D"mailto:cfrg-bounces@irtf.org" targ=
et=3D"_blank">cfrg-bounces@irtf.org</a>]
<b>On Behalf Of </b>Sharon Goldberg<br>
<b>Sent:</b> Wednesday, July 12, 2017 5:42 AM<br>
<b>To:</b> <a href=3D"mailto:cfrg@irtf.org" target=3D"_blank">cfrg@irtf.org=
</a><br>
<b>Cc:</b> <a href=3D"mailto:jan@ns1.com" target=3D"_blank">jan@ns1.com</a>=
; Dimitrios Papadopoulos &lt;<a href=3D"mailto:dipapado@umd.edu" target=3D"=
_blank">dipapado@umd.edu</a>&gt;; Leonid Reyzin &lt;<a href=3D"mailto:reyzi=
n@cs.bu.edu" target=3D"_blank">reyzin@cs.bu.edu</a>&gt;<br>
<b>Subject:</b> [Cfrg] draft-goldbe-vrf: Verifiable Random Functions</span>=
</p>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<p class=3D"MsoNormal">Dear CFRG,<br>
<br>
I&#39;m presenting at next week&#39;s meeting on Verifiable Random Function=
s. A VRF is the public-key version of keyed cryptographic hash. Only the ho=
lder of the VRF secret key can compute the hash, but anyone with the public=
 key can verify it.=C2=A0 VRFs can be used to
 prevent dictionary attacks on hash-based data structures, and have applica=
tions to key transparency (CONIKS), DNSSEC (NSEC5), and cryptocurrencies (A=
lgorand).<br>
<br>
In advance of the meeting, please see:<br>
<br>
1) Our substantially updated -01 draft:<br>
<a href=3D"https://datatracker.ietf.org/doc/draft-goldbe-vrf/" target=3D"_b=
lank">https://datatracker.ietf.org/d<wbr>oc/draft-goldbe-vrf/</a><br>
<br>
2) Our project page, with links to various VRF implementations:<br>
<a href=3D"https://www.cs.bu.edu/~goldbe/projects/vrf" target=3D"_blank">ht=
tps://www.cs.bu.edu/~goldbe/<wbr>projects/vrf</a><br>
<br>
Comments welcome.=C2=A0 Thanks,<br>
<br>
Sharon<br>
<br>
--<br>
Sharon Goldberg<br>
Computer Science, Boston University<br>
<a href=3D"http://www.cs.bu.edu/~goldbe" target=3D"_blank">http://www.cs.bu=
.edu/~goldbe</a></p>
</div>
</div>
</div>
</div></div></div>

</blockquote></div><br><br clear=3D"all"><div><br></div></div></div>-- <br>=
<div class=3D"m_2913212881139340244gmail-m_4922457647511857001m_-6153101734=
044142155m_4165835283928257204gmail_signature">---<span><br>Sharon Goldberg=
<br>Computer Science, Boston University<br><a href=3D"http://www.cs.bu.edu/=
~goldbe" target=3D"_blank">http://www.cs.bu.edu/~goldbe</a></span></div>
</div></div>
<br></div></div><span class=3D"m_2913212881139340244gmail-">_______________=
_______________<wbr>_________________<br>
Cfrg mailing list<br>
<a href=3D"mailto:Cfrg@irtf.org" target=3D"_blank">Cfrg@irtf.org</a><br>
<a href=3D"https://www.irtf.org/mailman/listinfo/cfrg" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.irtf.org/mailman/l<wbr>istinfo/cfrg</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div></div></div><div><div class=3D"h5"><br><br clear=3D"all"=
><div><br></div>-- <br><div class=3D"m_2913212881139340244gmail_signature">=
---<br>Sharon Goldberg<br>Computer Science, Boston University<br><a href=3D=
"http://www.cs.bu.edu/~goldbe" target=3D"_blank">http://www.cs.bu.edu/~gold=
be</a></div>
</div></div></div></div>
</blockquote></div><br></div>

--f403045fc2f2d43ee0055548acd5--

