georg fuchsbauer - ens

60
Georg Fuchsbauer IST Austria joint work with Mihir Bellare available on eprint 2013/413 University of Bristol, 29 Oct 2013 Policy-based signatures

Upload: others

Post on 26-Apr-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Georg Fuchsbauer - ENS

Georg FuchsbauerIST Austria

joint work with Mihir Bellareavailable on eprint 2013/413

University of Bristol, 29 Oct 2013

Policy-based signatures

Page 2: Georg Fuchsbauer - ENS

Overview

● New signature primitive

● Signer can only sign messages conforming to policy

Page 3: Georg Fuchsbauer - ENS

Overview

● New signature primitive

● Signer can only sign messages conforming to policy

● Practical applications: use for corporations

● Theoretical: unification of existing work

Page 4: Georg Fuchsbauer - ENS

Signatures

vk

sk

Signer

Page 5: Georg Fuchsbauer - ENS

Signatures

vk

sk

VerifierSigner(m,

Page 6: Georg Fuchsbauer - ENS

Policy-based signatures

Signer

pp

skp

Authority

Page 7: Georg Fuchsbauer - ENS

Policy-based signatures

Signer

pp

skp

Authority

only if (p,m) L {0,1}* {0,1}*

p ... PolicyL ... Policy language

Verifier(m,

Page 8: Georg Fuchsbauer - ENS

Security

● Unforgeability:

You can only sign a message m if you have a key for a policy p satisfied by m

Page 9: Georg Fuchsbauer - ENS

Security

● Unforgeability:

You can only sign a message m if you have a key for a policy p satisfied by m

● Privacy:

The signature does not reveal the policy

Page 10: Georg Fuchsbauer - ENS

Theoretical Motivation

● Signature analog to functional encryption [BSW11]

Page 11: Georg Fuchsbauer - ENS

Theoretical Motivation

● Signature analog to functional encryption [BSW11]

● Unification of existing notions for signatures with privacy:

Group signatures [Cv91]

(Anonymous) proxy signatures [MUO96,FP08]

Ring signatures, mesh signatures [RST01,Boy07]

Attribute-based signatures [MPR11]

Anonymous credentials [CL01,BCKL08]

Page 12: Georg Fuchsbauer - ENS

Group signatures

Member i

gvk

ski(m,

Manager

Verifier

Page 13: Georg Fuchsbauer - ENS

Group signatures

Member i

gvk

ski(m,

Manager

anonymous, but can be opened:

Verifier

Manager i

Page 14: Georg Fuchsbauer - ENS

Attribute-based signatures

Signer

pp

sk

Authority

{a1,a2,...,an}

{a1,...,an}

{a1,a2,...,an} ... Attributes ... Predicate

Page 15: Georg Fuchsbauer - ENS

Attribute-based signatures

Signer

pp

sk

Authority

only if (a1,a2,...,an) = 1

does not reveal {a1,a2,...,an}

Verifier(,m,

{a1,a2,...,an}

{a1,...,an}

{a1,a2,...,an} ... Attributes ... Predicate

Page 16: Georg Fuchsbauer - ENS

Practical Motivation

● Company with public key vk

● Employees get signing keys enabling signing

anonymously on behalf of company

Page 17: Georg Fuchsbauer - ENS

Practical Motivation

● Company with public key vk

● Employees get signing keys enabling signing

anonymously on behalf of company

● Group signatures:

– Anonymous signing, no control of what can be signed

Page 18: Georg Fuchsbauer - ENS

Practical Motivation

● Company with public key vk

● Employees get signing keys enabling signing

anonymously on behalf of company

● Group signatures:

– Anonymous signing, no control of what can be signed

● Attribute-based signatures:

– Signing w.r.t policies like

CEO (board member manager)

Page 19: Georg Fuchsbauer - ENS

Can we do better?

Public policies...

● Does verifier need to know?

Page 20: Georg Fuchsbauer - ENS

Can we do better?

Public policies...

● Does verifier need to know?

Verification w.r.t. policies...

● Verifier must judge if message ok under policy:

CEO Intern

Page 21: Georg Fuchsbauer - ENS

Can we do better?

Public policies...

● Does verifier need to know?

Verification w.r.t. policies...

● Verifier must judge if message ok under policy:

CEO Intern

Policy-based signatures:

● No public policies● Verification w.r.t. vk only

Page 22: Georg Fuchsbauer - ENS

Can we do better?

Public policies...

● Does verifier need to know?

Verification w.r.t. policies...

● Verifier must judge if message ok under policy:

CEO Intern

Policy-based signatures:

● No public policies● Verification w.r.t. vk only

Example:

Employee gets key with which she can sign contracts only with company B.

Page 23: Georg Fuchsbauer - ENS

Definition of PBS

Page 24: Georg Fuchsbauer - ENS

Definition

● Policy languages:

We allow any language in NP, defined by policy checker

PC : ((p,m),w) {0,1}

(p,m) L(PC) : w {0,1}* : PC((p,m),w) = 1

... iff signing of m is permitted under p

Page 25: Georg Fuchsbauer - ENS

Definition

● Policy languages:

We allow any language in NP, defined by policy checker

PC : ((p,m),w) {0,1}

(p,m) L(PC) : w {0,1}* : PC((p,m),w) = 1

... iff signing of m is permitted under p

● Algorithms:

Setup(1) (pp,msk)

KeyGen(msk,p) skp

Sign(skp,m,w) Verify(pp,m,) b

Page 26: Georg Fuchsbauer - ENS

Unforgeability

● Game

ChallengerAdversaryQuery key for p

Query signature on m

m*,*

pp

Page 27: Georg Fuchsbauer - ENS

Unforgeability

● Game

ChallengerAdversaryQuery key for p

Query signature on m

m*,*

pp

A wins if - Verify(pp,m*,*) = 1,

- no signature query for m*,

- for all key queries for p: (p, m*) L(PC)

Page 28: Georg Fuchsbauer - ENS

Indistinguishability

● Game

Challenger

b {0,1}

Adversaryp0, p1, m, w0, w1

b'

pp,msk

sk0 KeyGen(p0)sk1 KeyGen(p1)Sign(skb,m,wb)

Page 29: Georg Fuchsbauer - ENS

Indistinguishability

● Game

Challenger

b {0,1}

Adversaryp0, p1, m, w0, w1

b'

sk0 KeyGen(p0)sk1 KeyGen(p1)Sign(skb,m,wb)

A wins if - PC((p0,m),w0) = PC((p1,m),w1) = 1,

- b' = b

pp,msk

Page 30: Georg Fuchsbauer - ENS

Indistinguishability

● Game

Challenger

b {0,1}

Adversaryp0, p1, m, w0, w1

b'

sk0 KeyGen(p0)sk1 KeyGen(p1)Sign(skb,m,wb)

A wins if - PC((p0,m),w0) = PC((p1,m),w1) = 1,

- b' = b

pp,msk

Page 31: Georg Fuchsbauer - ENS

Security notions

● Indistinguishability

● Adversary gets sk0 and sk1 unlinkability

Page 32: Georg Fuchsbauer - ENS

Security notions

● Indistinguishability

● Adversary gets sk0 and sk1 unlinkability

● Policy-revealing schemes still secure! (e.g. if only one policy per message)

Page 33: Georg Fuchsbauer - ENS

Security notions

● Indistinguishability

● Adversary gets sk0 and sk1 unlinkability

● Policy-revealing schemes still secure! (e.g. if only one policy per message)

Simulation-based definition

Page 34: Georg Fuchsbauer - ENS

Security notions

● Indistinguishability

● Adversary gets sk0 and sk1 unlinkability

● Policy-revealing schemes still secure! (e.g. if only one policy per message)

Simulation-based definition

● Unforgeability

● Not efficiently verifiable if game was won (have to check whether (m*, p) L(PC))

Page 35: Georg Fuchsbauer - ENS

Security notions

● Indistinguishability

● Adversary gets sk0 and sk1 unlinkability

● Policy-revealing schemes still secure! (e.g. if only one policy per message)

Simulation-based definition

● Unforgeability

● Not efficiently verifiable if game was won (have to check whether (m*, p) L(PC))

Extraction-based definition

Extr+Sim UF+IND

Page 36: Georg Fuchsbauer - ENS

Constructions of PBS

Page 37: Georg Fuchsbauer - ENS

Constructions

● Generic construction (à la [BMW03])

based on - signatures

- IND-CPA encryption

- NIZK proofs

for any policy language in NP

Page 38: Georg Fuchsbauer - ENS

Constructions

● Generic construction (à la [BMW03])

based on - signatures or based on

- IND-CPA encryption - SSE-NIZK

- NIZK proofs

for any policy language in NP

Page 39: Georg Fuchsbauer - ENS

Constructions

● Generic construction (à la [BMW03])

based on - signatures or based on

- IND-CPA encryption - SSE-NIZK

- NIZK proofs

for any policy language in NP

● Efficient construction

based on - structure-preserving signatures [AFG+10]

- Groth-Sahai proofs [GS08]

for policy languages over pairing groups

(policies define pairing-product equations)

Page 40: Georg Fuchsbauer - ENS

Primitives from PBS

Page 41: Georg Fuchsbauer - ENS

Signer

pp

sk

Authority

only if (a1,a2,...,an) = 1

does not reveal {a1,a2,...,an}

Verifier(,m,

{a1,a2,...,an}

{a1,...,an}

Attribute-based signatures from PBS

Page 42: Georg Fuchsbauer - ENS

Attribute-based signatures from PBS

● Policies p ... set of attributes A = {a1,a2,...,an}

● PBS messages of form M = (,m)

Page 43: Georg Fuchsbauer - ENS

Attribute-based signatures from PBS

● Policies p ... set of attributes A = {a1,a2,...,an}

● PBS messages of form M = (,m)

● PC : (A,(,m))

Page 44: Georg Fuchsbauer - ENS

Attribute-based signatures from PBS

● Policies p ... set of attributes A = {a1,a2,...,an}

● PBS messages of form M = (,m)

● PC : (A,(,m)) (A)

Page 45: Georg Fuchsbauer - ENS

Member i

gvk

ski(m,

Manager

anonymous, but can be opened:

Verifier

Manager i

Group signatures from PBS

Page 46: Georg Fuchsbauer - ENS

Group signatures from PBS

● Use public-key encryption scheme

● Policies p ... group-member identity i

Page 47: Georg Fuchsbauer - ENS

Group signatures from PBS

● Use public-key encryption scheme

● Policies p ... group-member identity i

● PBS messages of form M = (c,m)

● PC : (((ek,i ),(c,m)),r)c = Enc(ek,i ;r )]

Page 48: Georg Fuchsbauer - ENS

Group signatures from PBS

● Use public-key encryption scheme

● Policies p ... group-member identity i

● PBS messages of form M = (c,m)

● PC : (((ek,i ),(c,m)),r)c = Enc(ek,i ;r )]

GroupKeyGen: - create (ek,dk) for Enc, (pp,msk) for PBS

- member i gets key for p = (ek,i )

Sign(ski,m): encrypt i as c, sign (c,m), output = (c,)

Page 49: Georg Fuchsbauer - ENS

Group signatures from PBS

● Use public-key encryption scheme

● Policies p ... group-member identity i

● PBS messages of form M = (c,m)

● PC : (((ek,i ),(c,m)),r)c = Enc(ek,i ;r )]

GroupKeyGen: - create (ek,dk) for Enc, (pp,msk) for PBS

- member i gets key for p = (ek,i )

Sign(ski,m): encrypt i as c, sign (c,m), output = (c,)

Verify: verify PBS Open(dk,(c,): decrypt c

Page 50: Georg Fuchsbauer - ENS

Other primitives from PBS

● Simulation-sound extractable NIZK proofs [Gro06]

Page 51: Georg Fuchsbauer - ENS

Other primitives from PBS

● Simulation-sound extractable NIZK proofs [Gro06]

● CPA-secure public-key encryption

Page 52: Georg Fuchsbauer - ENS

Other primitives from PBS

● Simulation-sound extractable NIZK proofs [Gro06]

● CPA-secure public-key encryption

● combining the above [Sah99]: CCA-secure encryption

Page 53: Georg Fuchsbauer - ENS

Other primitives from PBS

● Simulation-sound extractable NIZK proofs [Gro06]

● CPA-secure public-key encryption

● combining the above [Sah99]: CCA-secure encryption

thus PBS group signatures

Page 54: Georg Fuchsbauer - ENS

Other primitives from PBS

● Simulation-sound extractable NIZK proofs [Gro06]

● CPA-secure public-key encryption

● combining the above [Sah99]: CCA-secure encryption

thus PBS group signatures

● Signatures of knowledge [CL06]

Page 55: Georg Fuchsbauer - ENS

Delegatable PBS

Page 56: Georg Fuchsbauer - ENS

Re-delegation

● Delegatable PBS

– holding skp, one can delegate skp' for subpolicy p'

● Reflects hierarchies in organizations

Page 57: Georg Fuchsbauer - ENS

Re-delegation

● Delegatable PBS

– holding skp, one can delegate skp' for subpolicy p'

● Reflects hierarchies in organizations

Alice

Bob

“sign contract with C1,C2,...,Cn”

Page 58: Georg Fuchsbauer - ENS

Re-delegation

● Delegatable PBS

– holding skp, one can delegate skp' for subpolicy p'

● Reflects hierarchies in organizations

Alice

Bob Carol“sign contract with Ck”

“sign contract with C1,C2,...,Cn”

Page 59: Georg Fuchsbauer - ENS

Thank you

Page 60: Georg Fuchsbauer - ENS

PBS from SSE-NIZK

● Simulation-sound extractable NIZK:

- prove membership for NP languages

● Authority has signature key pair (vk,sk)

● skp is signature on p

● PBS-signature on m is SSE-NIZK proof that (vk,m) L

defined by

((vk,m),(p,sig,w)) RL

((p,m),w) PC Verify(vk,p,sig) = 1