Digital Signatures Dennis Hofheinz (slides based on slides by Bjrn - - PowerPoint PPT Presentation

digital signatures
SMART_READER_LITE
LIVE PREVIEW

Digital Signatures Dennis Hofheinz (slides based on slides by Bjrn - - PowerPoint PPT Presentation

Digital Signatures Dennis Hofheinz (slides based on slides by Bjrn Kaidel and Gunnar Hartung) Digital Signatures 2020-05-05 1 Outline More on BLS signatures Programmable Hash Functions Waters PHF Digital Signatures 2020-05-05 2


slide-1
SLIDE 1

Digital Signatures

Dennis Hofheinz (slides based on slides by Björn Kaidel and Gunnar Hartung)

Digital Signatures 2020-05-05 1

slide-2
SLIDE 2

Outline

More on BLS signatures Programmable Hash Functions Waters’ PHF

Digital Signatures 2020-05-05 2

slide-3
SLIDE 3

Recap: pairings

Definition 78 (Pairings): Let G1, G2, GT be groups of prime order p. A pairing is a map e : G1 × G2 → GT with the following properties: 1) Bilinearity: ∀g1, g′

1 ∈ G1, g2, g′ 2 ∈ G2 :

e(g1 · g′

1, g2) = e(g1, g2) · e(g′ 1, g2)

e(g1, g2 · g′

2) = e(g1, g2) · e(g1, g′ 2)

2) Non-degeneracy: e(g1, g2) = GT for any gens. g1, g2 3) e efficiently computable. Note: Here, G1 = G2 (symmetric or “type-1” pairings).

Digital Signatures 2020-05-05 3

slide-4
SLIDE 4

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH

Digital Signatures 2020-05-05 4

slide-5
SLIDE 5

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial

Digital Signatures 2020-05-05 4

slide-6
SLIDE 6

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy

Digital Signatures 2020-05-05 4

slide-7
SLIDE 7

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy
  • Pairing gives e(gx, gy) = e(g, g)xy = gαxy for fixed α

Digital Signatures 2020-05-05 4

slide-8
SLIDE 8

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy
  • Pairing gives e(gx, gy) = e(g, g)xy = gαxy for fixed α
  • Problem: e(g, g) = g (i.e., α = 1) in general

Digital Signatures 2020-05-05 4

slide-9
SLIDE 9

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy
  • Pairing gives e(gx, gy) = e(g, g)xy = gαxy for fixed α
  • Problem: e(g, g) = g (i.e., α = 1) in general
  • Solution: (requires group order p = |GT| = |G1| = |G2|)

Digital Signatures 2020-05-05 4

slide-10
SLIDE 10

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy
  • Pairing gives e(gx, gy) = e(g, g)xy = gαxy for fixed α
  • Problem: e(g, g) = g (i.e., α = 1) in general
  • Solution: (requires group order p = |GT| = |G1| = |G2|)

– Compute gα = e(g, g)

square-and-mult. using e

− → gαp−3 = gα−2 mod p

Digital Signatures 2020-05-05 4

slide-11
SLIDE 11

Remark/addendum to previous lecture

  • Claim: self-bilinear map (GT = G1 = G2) breaks CDH
  • Not (completely) trivial
  • Given g, gx, gy, compute gxy
  • Pairing gives e(gx, gy) = e(g, g)xy = gαxy for fixed α
  • Problem: e(g, g) = g (i.e., α = 1) in general
  • Solution: (requires group order p = |GT| = |G1| = |G2|)

– Compute gα = e(g, g)

square-and-mult. using e

− → gαp−3 = gα−2 mod p – Compute e(gαxy, gα−2) = gxy

Digital Signatures 2020-05-05 4

slide-12
SLIDE 12

Recap: BLS signatures

Gen(1k) :

  • x ← Z∗

p

  • pk = (g, gx), sk = x

Sign(sk, m) :

  • σ := H(m)x ∈ G

Vfy(pk, m, σ) :

  • e(H(m), gx) ?

= e(σ, g) EUF-CMA secure in ROM under CDH assumption

Digital Signatures 2020-05-05 5

slide-13
SLIDE 13

BLS: extra properties

Problem:

  • U1, ..., UN senders (e.g., in a sensor network)
  • Each Ui has their own pki = (g, gxi)

Straightforward (but expensive!) solution:

U1 with (pk1, sk1) → m1, σ1 U2 with (pk2, sk2) → m2, σ2 . . . Un with (pkn, skn) → mn, σn Verifier ∀i : Vfy(pki, mi, σi) ? = 1 (m1, σ1), ... , (mn, σn)

Digital Signatures 2020-05-05 6

slide-14
SLIDE 14

Better solution: aggregable signature scheme

U1 U2 . . . Un aggregator m1 , σ1 m2, σ2 . . . mn, σn Verifier Vfy(pk1, ... , pkn, m1, ... , mn, σAgg) ? = 1 m1, ... , mn, σAgg

  • Algorithm that aggregates signatures
  • |σAgg| = |σ|
  • Vfy of single aggregated signature more efficient than Vfy of

many single signatures

Digital Signatures 2020-05-05 7

slide-15
SLIDE 15

Aggregable signatures

Advantages and (potential) applications:

  • Saves bandwidth/storage
  • Aggregating signatures more efficient than signing huge

dataset (perhaps over and over again)

  • Applications:

– Sensor networks – Secure logging – (Authenticating) databases – . . .

Digital Signatures 2020-05-05 8

slide-16
SLIDE 16

BLS: aggregability

  • Ui has BLS keypair (pki = (g, gxi), ski = xi)
  • Signatures are of the form σi = H(mi)xi

Digital Signatures 2020-05-05 9

slide-17
SLIDE 17

BLS: aggregability

  • Ui has BLS keypair (pki = (g, gxi), ski = xi)
  • Signatures are of the form σi = H(mi)xi
  • Aggregator computes

σAgg =

n

  • i=1

σi

and sends (m1, ... , mn, σ) to the verifier

  • Aggregation is public computation, no secret key necessary

Digital Signatures 2020-05-05 9

slide-18
SLIDE 18

BLS: aggregability

σAgg =

n

  • i=1

σi

  • Verification of aggregated signatures:

Ideas?

Digital Signatures 2020-05-05 10

slide-19
SLIDE 19

BLS: aggregability

σAgg =

n

  • i=1

σi

  • Verification of aggregated signatures:

e(σAgg, g) ? =

n

  • i=1

e(H(mi), gxi).

Digital Signatures 2020-05-05 10

slide-20
SLIDE 20

BLS: aggregability

σAgg =

n

  • i=1

σi

  • Verification of aggregated signatures:

e(σAgg, g) ? =

n

  • i=1

e(H(mi), gxi).

  • Correctness:

e(σAgg, g) = e(σ1, g) · ... · e(σn, g) = e(H(m1)x1, g) · ... · e(H(mn)xn, g) =

n

  • i=1

e(H(mi), gxi)

Digital Signatures 2020-05-05 10

slide-21
SLIDE 21

BLS: aggregability

  • Verification time approximately halved:

– No aggregation: verifying n signatures takes 2n pairing computations – Aggregated: verifying aggregated signature for n messages takes n + 1 pairing computations

  • Scheme with aggregation EUF-CMA secure

– . . . according to adapted EUF-CMA definition – Difference: allow aggregated forgery – Generalizes “ordinary” EUF-CMA

Digital Signatures 2020-05-05 11

slide-22
SLIDE 22

BLS: batch verification

Problem:

U with (pk, sk) Verifier ∀i : Vfy(pki, mi, σi) ? = 1 (m1, σ1), ... , (mn, σn)

Digital Signatures 2020-05-05 12

slide-23
SLIDE 23

BLS: batch verification

Problem:

U with (pk, sk) Verifier ∀i : Vfy(pki, mi, σi) ? = 1 (m1, σ1), ... , (mn, σn)

Solution: batch verification

  • σ1, ... , σn signatures for m1, ... , mn
  • h = n

i=1 H(mi), σ := n i=1 σi

  • Check

e(σ, g) ? = e(h, gx)

  • Correctness: as with aggregation
  • Only two pairing computations for n signatures

Digital Signatures 2020-05-05 12

slide-24
SLIDE 24

Research

  • Different forms of aggregation

– Sequential aggregation (→ Waters signatures), full aggregation (BLS), . . . – Reason: weaker forms of aggregation easier to achieve (without RO)

  • “Universal aggregators” (aggregation across signature

schemes)

  • Fault-tolerant aggregate signatures

– Aggregating an invalid signature (and valid ones) invalidates aggregate – But: sometimes useful to be able to tell which message has invalid signature – → Vfy outputs list of valid signatures

Digital Signatures 2020-05-05 13

slide-25
SLIDE 25

Socrative

Self-checking with quizzes

  • Use following URL: https://b.socrative.com/login/student
  • . . . and enter room “HOFHEINZ8872”
  • Will also be in chat (so you can click on link)
  • No registration necessary
  • Quiz about CDH and BLS starts now!

Digital Signatures 2020-05-05 14

slide-26
SLIDE 26

Outline

More on BLS signatures Programmable Hash Functions Waters’ PHF

Digital Signatures 2020-05-05 15

slide-27
SLIDE 27

Waters signatures

  • Pairing-based signature
  • EUF-CMA secure under CDH in standard model (w/o ROs)
  • Tool: “programmable hash functions” (PHFs)

Note:

  • Waters’ paper did not call this “PHFs”
  • Abstraction only found later on
  • PHFs make presentation more modular

Digital Signatures 2020-05-05 16

slide-28
SLIDE 28

Programmable hash functions

Motivation:

  • RO proofs use programmability of RO (RSA-FDH, BLS, . . . )
  • Problem: ROs do not exist, leads to heuristic arguments
  • Goal: imitate necessary programming operations with

standard-model hash function

Digital Signatures 2020-05-05 17

slide-29
SLIDE 29

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

Digital Signatures 2020-05-05 18

slide-30
SLIDE 30

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

– Most of the time, H(m) = gyi for known yi

Digital Signatures 2020-05-05 18

slide-31
SLIDE 31

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

– Most of the time, H(m) = gyi for known yi – Once, H(m) = gy for unknown y

Digital Signatures 2020-05-05 18

slide-32
SLIDE 32

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

– Most of the time, H(m) = gyi for known yi – Once, H(m) = gy for unknown y

  • Can be viewed as “partitioning” set of messages m into

Digital Signatures 2020-05-05 18

slide-33
SLIDE 33

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

– Most of the time, H(m) = gyi for known yi – Once, H(m) = gy for unknown y

  • Can be viewed as “partitioning” set of messages m into

– . . . “controlled” m for which Dlog of H(m) is known (to reduction) – . . . “uncontrolled” m for which Dlog of H(m) is not known

Digital Signatures 2020-05-05 18

slide-34
SLIDE 34

Programmable hash functions

Motivation, closer look:

  • In BLS proof: H(m) programmed in reduction so that

– Most of the time, H(m) = gyi for known yi – Once, H(m) = gy for unknown y

  • Can be viewed as “partitioning” set of messages m into

– . . . “controlled” m for which Dlog of H(m) is known (to reduction) – . . . “uncontrolled” m for which Dlog of H(m) is not known

  • Goal: signature queries m controlled, forgery m∗ uncontrolled

Digital Signatures 2020-05-05 18

slide-35
SLIDE 35

Programmable hash functions

  • Problem: without random oracle, H fixed in pk

Digital Signatures 2020-05-05 19

slide-36
SLIDE 36

Programmable hash functions

  • Problem: without random oracle, H fixed in pk
  • Hence: want an algebraic object H for which

– Dlog of H(m) computable (using trapdoor) for most m – . . . but for some m, Dlog of H(m) hard even given trapdoor – Hope that all signature queries controlled, forgery uncontrolled

Digital Signatures 2020-05-05 19

slide-37
SLIDE 37

Programmable hash functions

  • Problem: without random oracle, H fixed in pk
  • Hence: want an algebraic object H for which

– Dlog of H(m) computable (using trapdoor) for most m – . . . but for some m, Dlog of H(m) hard even given trapdoor – Hope that all signature queries controlled, forgery uncontrolled

  • Problem: “most DLogs known” algebraically hard to achieve

– Intuition: many known DLogs of H(mi) tell you much about the group elements from which H is computed

Digital Signatures 2020-05-05 19

slide-38
SLIDE 38

Programmable hash functions

  • Problem: without random oracle, H fixed in pk
  • Hence: want an algebraic object H for which

– Dlog of H(m) computable (using trapdoor) for most m – . . . but for some m, Dlog of H(m) hard even given trapdoor – Hope that all signature queries controlled, forgery uncontrolled

  • Problem: “most DLogs known” algebraically hard to achieve

– Intuition: many known DLogs of H(mi) tell you much about the group elements from which H is computed

  • Solution: refine what “controlled” means

Digital Signatures 2020-05-05 19

slide-39
SLIDE 39

Programmable hash functions

  • Solution: refine what “controlled” means

Digital Signatures 2020-05-05 20

slide-40
SLIDE 40

Programmable hash functions

  • Solution: refine what “controlled” means
  • BLS: “reduction can sign m” ⇔ “m controlled” ⇔

Dlog of H(m) known (to reduction)

Digital Signatures 2020-05-05 20

slide-41
SLIDE 41

Programmable hash functions

  • Solution: refine what “controlled” means
  • BLS: “reduction can sign m” ⇔ “m controlled” ⇔

Dlog of H(m) known (to reduction)

  • Now: “reduction can sign m” ⇔ “m controlled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

Digital Signatures 2020-05-05 20

slide-42
SLIDE 42

Programmable hash functions

  • Solution: refine what “controlled” means
  • BLS: “reduction can sign m” ⇔ “m controlled” ⇔

Dlog of H(m) known (to reduction)

  • Now: “reduction can sign m” ⇔ “m controlled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • Also: “CDH can be embedded into m” ⇔ “m uncontrolled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • g, h, H public, but exponents am, bm only known to reduction

Digital Signatures 2020-05-05 20

slide-43
SLIDE 43

Programmable hash functions

  • Solution: refine what “controlled” means
  • BLS: “reduction can sign m” ⇔ “m controlled” ⇔

Dlog of H(m) known (to reduction)

  • Now: “reduction can sign m” ⇔ “m controlled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • Also: “CDH can be embedded into m” ⇔ “m uncontrolled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • g, h, H public, but exponents am, bm only known to reduction
  • Reduction can sign if and only if H(m) has h-component

Digital Signatures 2020-05-05 20

slide-44
SLIDE 44

Programmable hash functions

  • Solution: refine what “controlled” means
  • BLS: “reduction can sign m” ⇔ “m controlled” ⇔

Dlog of H(m) known (to reduction)

  • Now: “reduction can sign m” ⇔ “m controlled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • Also: “CDH can be embedded into m” ⇔ “m uncontrolled” ⇔

H(m) = hamgbm for known g, h, am, bm with am = 0

  • g, h, H public, but exponents am, bm only known to reduction
  • Reduction can sign if and only if H(m) has h-component
  • Requires different signature scheme, suitable H

Digital Signatures 2020-05-05 20

slide-45
SLIDE 45

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Digital Signatures 2020-05-05 21

slide-46
SLIDE 46

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G

Digital Signatures 2020-05-05 21

slide-47
SLIDE 47

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G
  • Two Gen algorithms for H: Gen and TrapGen

Digital Signatures 2020-05-05 21

slide-48
SLIDE 48

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G
  • Two Gen algorithms for H: Gen and TrapGen
  • Gen → κ, but TrapGen → (κ, τ) also outputs trapdoor τ

Digital Signatures 2020-05-05 21

slide-49
SLIDE 49

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G
  • Two Gen algorithms for H: Gen and TrapGen
  • Gen → κ, but TrapGen → (κ, τ) also outputs trapdoor τ
  • κ-output by Gen and TrapGen indistinguishable

Digital Signatures 2020-05-05 21

slide-50
SLIDE 50

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G
  • Two Gen algorithms for H: Gen and TrapGen
  • Gen → κ, but TrapGen → (κ, τ) also outputs trapdoor τ
  • κ-output by Gen and TrapGen indistinguishable
  • Trapdoor allows to represent every H-output as follows:

hamgbm = Hκ(m)

Digital Signatures 2020-05-05 21

slide-51
SLIDE 51

Programmable hash functions

  • Let G be a finite cyclic group g, h generators

Intuition:

  • Hash function Hκ : {0, 1}ℓ → G
  • Two Gen algorithms for H: Gen and TrapGen
  • Gen → κ, but TrapGen → (κ, τ) also outputs trapdoor τ
  • κ-output by Gen and TrapGen indistinguishable
  • Trapdoor allows to represent every H-output as follows:

hamgbm = Hκ(m)

  • Besides: exponents am, bm “well-distributed”, so that

– for every κ and all fixed sequences m∗

1, ... , m∗ v , m1, ... , mw

– we have am∗

i = 0 and amj = 0 for all i, j with sufficiently high

probability (over the choice of τ)

Digital Signatures 2020-05-05 21

slide-52
SLIDE 52

Programmable hash functions

Def.: A group hash function over a group G consists of two PPT algorithms:

  • Gen(1k) → κ (for g ∈ G): key generation
  • Eval(κ, m) → Hκ(m) ∈ G: evaluation (deterministic)

Digital Signatures 2020-05-05 22

slide-53
SLIDE 53

Programmable hash functions

Def.: A group hash function over a group G consists of two PPT algorithms:

  • Gen(1k) → κ (for g ∈ G): key generation
  • Eval(κ, m) → Hκ(m) ∈ G: evaluation (deterministic)
  • Interesting property of a group hash function: programmability

(next slides)

Digital Signatures 2020-05-05 22

slide-54
SLIDE 54

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

Digital Signatures 2020-05-05 23

slide-55
SLIDE 55

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

  • TrapGen(g, h) → (κ, τ): trapdoor key generation
  • TrapEval(τ, m) → (am, bm) with

hamgbm = Hκ(m) (deterministic)

Digital Signatures 2020-05-05 23

slide-56
SLIDE 56

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

  • TrapGen(g, h) → (κ, τ): trapdoor key generation
  • TrapEval(τ, m) → (am, bm) with

hamgbm = Hκ(m) (deterministic) that fulfill the following two requirements:

Digital Signatures 2020-05-05 23

slide-57
SLIDE 57

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

  • TrapGen(g, h) → (κ, τ): trapdoor key generation
  • TrapEval(τ, m) → (am, bm) with

hamgbm = Hκ(m) (deterministic) that fulfill the following two requirements:

  • κ from Gen statistically close to κ from TrapGen

Digital Signatures 2020-05-05 23

slide-58
SLIDE 58

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

  • TrapGen(g, h) → (κ, τ): trapdoor key generation
  • TrapEval(τ, m) → (am, bm) with

hamgbm = Hκ(m) (deterministic) that fulfill the following two requirements:

  • κ from Gen statistically close to κ from TrapGen
  • TrapEval has (v, w, γ)-well-distributed outputs (next slide)

Digital Signatures 2020-05-05 23

slide-59
SLIDE 59

Programmable hash functions

Def.: A group hash function (Gen, Eval) is (v, w, γ)-programmable (for v, w ∈ N, γ ∈ [0, 1]), if there are two PPT algorithms as follows:

  • TrapGen(g, h) → (κ, τ): trapdoor key generation
  • TrapEval(τ, m) → (am, bm) with

hamgbm = Hκ(m) (deterministic) that fulfill the following two requirements:

  • κ from Gen statistically close to κ from TrapGen
  • TrapEval has (v, w, γ)-well-distributed outputs (next slide)

A (v, w, γ)-PHF is a (v, w, γ)-programmable group hash function.

Digital Signatures 2020-05-05 23

slide-60
SLIDE 60

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

Digital Signatures 2020-05-05 24

slide-61
SLIDE 61

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

Digital Signatures 2020-05-05 24

slide-62
SLIDE 62

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

Digital Signatures 2020-05-05 24

slide-63
SLIDE 63

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G,

Digital Signatures 2020-05-05 24

slide-64
SLIDE 64

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

Digital Signatures 2020-05-05 24

slide-65
SLIDE 65

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

– m1, ... , mw ∈ {0, 1}ℓ (s.t. ∀i, j : m∗

i = mj)

Digital Signatures 2020-05-05 24

slide-66
SLIDE 66

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

– m1, ... , mw ∈ {0, 1}ℓ (s.t. ∀i, j : m∗

i = mj)

– κ in the range of TrapGen’s first output

Digital Signatures 2020-05-05 24

slide-67
SLIDE 67

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

– m1, ... , mw ∈ {0, 1}ℓ (s.t. ∀i, j : m∗

i = mj)

– κ in the range of TrapGen’s first output

we have:

Digital Signatures 2020-05-05 24

slide-68
SLIDE 68

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

– m1, ... , mw ∈ {0, 1}ℓ (s.t. ∀i, j : m∗

i = mj)

– κ in the range of TrapGen’s first output

we have: Pr

  • am∗

i = 0

for i = 1, ... , v

amj = 0 for j = 1, ... , w

  • ≥ γ,

Digital Signatures 2020-05-05 24

slide-69
SLIDE 69

Programmable hash functions

Well-distributedness condition of TrapEval’s outputs:

  • (v, w, γ)-well-distributed (for v, w ∈ N, γ ∈ [0, 1]):

For all

– generators g, h of G, – m∗

1, ... m∗ v ∈ {0, 1}ℓ,

– m1, ... , mw ∈ {0, 1}ℓ (s.t. ∀i, j : m∗

i = mj)

– κ in the range of TrapGen’s first output

we have: Pr

  • am∗

i = 0

for i = 1, ... , v

amj = 0 for j = 1, ... , w

  • ≥ γ,

where Pr is over τ from (κ, τ) ← TrapGen(g, h) (cond. on κ)

Digital Signatures 2020-05-05 24

slide-70
SLIDE 70

Outline

More on BLS signatures Programmable Hash Functions Waters’ PHF

Digital Signatures 2020-05-05 25

slide-71
SLIDE 71

Waters’ programmable hash function

Waters’ group hash function:

  • Gen(1k): choose u0, ... , uℓ ← G.

κ = (u0, ... , uℓ)

Digital Signatures 2020-05-05 26

slide-72
SLIDE 72

Waters’ programmable hash function

Waters’ group hash function:

  • Gen(1k): choose u0, ... , uℓ ← G.

κ = (u0, ... , uℓ)

  • Eval(κ, m = m1 · · · mℓ): compute

Hκ(m) = u0

  • i=1

umi

i

Digital Signatures 2020-05-05 26

slide-73
SLIDE 73

Waters’ programmable hash function

Waters’ group hash function:

  • Gen(1k): choose u0, ... , uℓ ← G.

κ = (u0, ... , uℓ)

  • Eval(κ, m = m1 · · · mℓ): compute

Hκ(m) = u0

  • i=1

umi

i

(mi ∈ {0, 1})

Digital Signatures 2020-05-05 26

slide-74
SLIDE 74

Waters’ programmable hash function

Waters’ group hash function:

  • Gen(1k): choose u0, ... , uℓ ← G.

κ = (u0, ... , uℓ)

  • Eval(κ, m = m1 · · · mℓ): compute

Hκ(m) = u0

  • i=1

umi

i

(mi ∈ {0, 1}) Theorem: Let q = q(k) be a polynomial. Then, Waters’ group hash function is (1, q, γ)-programmable for γ = 1/O(q

k).

Digital Signatures 2020-05-05 26

slide-75
SLIDE 75

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

Digital Signatures 2020-05-05 27

slide-76
SLIDE 76

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi.

Digital Signatures 2020-05-05 27

slide-77
SLIDE 77

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm =

Digital Signatures 2020-05-05 27

slide-78
SLIDE 78

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm = h

a0 ℓ

  • i=1

h

aimi · g b0 ℓ

  • i=1

g

bimi

Digital Signatures 2020-05-05 27

slide-79
SLIDE 79

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm = h

a0 ℓ

  • i=1

h

aimi · g b0 ℓ

  • i=1

g

bimi = (h a0g b0) · ℓ

  • i=1

(h

aig bi) mi

Digital Signatures 2020-05-05 27

slide-80
SLIDE 80

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm = h

a0 ℓ

  • i=1

h

aimi · g b0 ℓ

  • i=1

g

bimi = (h a0g b0)

  • u0

·

  • i=1

(h

aig bi) mi

Digital Signatures 2020-05-05 27

slide-81
SLIDE 81

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm = h

a0 ℓ

  • i=1

h

aimi · g b0 ℓ

  • i=1

g

bimi = (h a0g b0)

  • u0

·

  • i=1

(h

aig bi) ui mi

Digital Signatures 2020-05-05 27

slide-82
SLIDE 82

Waters’ programmable hash function

Proof sketch:

  • TrapGen(g, h): choose

ai ∈ Zp suitably, bi ← Zp. Let ui := h

aig bi

for i ∈ {0, ... , ℓ},

κ = (u0, ... , uℓ), τ = (

a0, ... , aℓ, b0, ... , bℓ).

  • TrapEval(τ, m = m1 · · · mℓ): compute

am =

  • a0 + ℓ

i=1 mi

ai and bm =

  • b0 + ℓ

i=1 mi

bi. Then: hamgbm = h

a0 ℓ

  • i=1

h

aimi · g b0 ℓ

  • i=1

g

bimi = (h a0g b0)

  • u0

·

  • i=1

(h

aig bi) ui mi

= Hκ(m)

Digital Signatures 2020-05-05 27

slide-83
SLIDE 83

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G

Digital Signatures 2020-05-05 28

slide-84
SLIDE 84

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h):

Digital Signatures 2020-05-05 28

slide-85
SLIDE 85

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h): ◮

bi uniform over Zp

Digital Signatures 2020-05-05 28

slide-86
SLIDE 86

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h): ◮

bi uniform over Zp ◮ = ⇒ g

bi uniform over G (g generator!) Digital Signatures 2020-05-05 28

slide-87
SLIDE 87

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h): ◮

bi uniform over Zp ◮ = ⇒ g

bi uniform over G (g generator!)

◮ = ⇒ ui = h

ai g bi uniform over G Digital Signatures 2020-05-05 28

slide-88
SLIDE 88

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h): ◮

bi uniform over Zp ◮ = ⇒ g

bi uniform over G (g generator!)

◮ = ⇒ ui = h

ai g bi uniform over G

  • (v, w, γ)-well-distribution:

Digital Signatures 2020-05-05 28

slide-89
SLIDE 89

Waters’ programmable hash function

  • Distribution of (real/trapdoor) κ?

– Gen(1k): all ui uniform over G – TrapGen(g, h): ◮

bi uniform over Zp ◮ = ⇒ g

bi uniform over G (g generator!)

◮ = ⇒ ui = h

ai g bi uniform over G

  • (v, w, γ)-well-distribution:

– Need to define ai suitably (next slide)

Digital Signatures 2020-05-05 28

slide-90
SLIDE 90

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}

Digital Signatures 2020-05-05 29

slide-91
SLIDE 91

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)

Digital Signatures 2020-05-05 29

slide-92
SLIDE 92

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)
  • Hence: 1/Θ(q

k) ≤ Pr[am = 0] ≤ 1/Θ(q) for any m

Digital Signatures 2020-05-05 29

slide-93
SLIDE 93

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)
  • Hence: 1/Θ(q

k) ≤ Pr[am = 0] ≤ 1/Θ(q) for any m

  • In fact: Pr[am = 0|am∗ = 0] ≥ 1 − 1/(2q) for any m = m∗

Digital Signatures 2020-05-05 29

slide-94
SLIDE 94

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)
  • Hence: 1/Θ(q

k) ≤ Pr[am = 0] ≤ 1/Θ(q) for any m

  • In fact: Pr[am = 0|am∗ = 0] ≥ 1 − 1/(2q) for any m = m∗
  • ⇒ (by union bound:) Pr[∀i : ami = 0|am∗ = 0] ≥ 1/2

Digital Signatures 2020-05-05 29

slide-95
SLIDE 95

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)
  • Hence: 1/Θ(q

k) ≤ Pr[am = 0] ≤ 1/Θ(q) for any m

  • In fact: Pr[am = 0|am∗ = 0] ≥ 1 − 1/(2q) for any m = m∗
  • ⇒ (by union bound:) Pr[∀i : ami = 0|am∗ = 0] ≥ 1/2
  • ⇒ Pr[∀i : ami = 0 ∧ am∗ = 0] ≥ 1/O(q

k)

Digital Signatures 2020-05-05 29

slide-96
SLIDE 96

Waters’ programmable hash function

Closer look at (1, q, γ)-well-distribution:

  • Recall: am =

a0 +

i mi

ai

  • Idea: set up all

ai as random walks of length L = O(q2):

  • ai =

L

  • j=1
  • ai,j

for

  • ai,j ← {−1, 0, 1}
  • Random walks: back at origin after n steps with prob. 1/Θ(√n)
  • Hence: 1/Θ(q

k) ≤ Pr[am = 0] ≤ 1/Θ(q) for any m

  • In fact: Pr[am = 0|am∗ = 0] ≥ 1 − 1/(2q) for any m = m∗
  • ⇒ (by union bound:) Pr[∀i : ami = 0|am∗ = 0] ≥ 1/2
  • ⇒ Pr[∀i : ami = 0 ∧ am∗ = 0] ≥ 1/O(q

k)

Digital Signatures 2020-05-05 29

slide-97
SLIDE 97

Socrative

Self-checking with quizzes

  • Use following URL: https://b.socrative.com/login/student
  • . . . and enter room “HOFHEINZ8872”
  • Will also be in chat (so you can click on link)
  • No registration necessary
  • Quiz about PHFs starts now!

Digital Signatures 2020-05-05 30