Top Banner
Vinod Vaikuntanathan -- {U of Toronto} Hoeteck Wee -- {George Washington U} Attribute-Based Encryption for Circuits Sergey Gorbunov -- {U of Toronto}
39

Vinod Vaikuntanathan -- {U of Toronto} Hoeteck Wee -- {George Washington U}

Feb 23, 2016

Download

Documents

Barb

Attribute-Based Encryption for Circuits. Sergey Gorbunov -- {U of Toronto}. Vinod Vaikuntanathan -- {U of Toronto} Hoeteck Wee -- {George Washington U}. Public Key Encryption [ Diffie -Hellman 76, Rivest Shamir Adleman 77]. Alice. Bob. SK. PK. All or nothing access to the data. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Vinod Vaikuntanathan -- {U of Toronto}Hoeteck Wee -- {George Washington U}

Attribute-Based Encryption for Circuits

Sergey Gorbunov -- {U of Toronto}

Page 2: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

SKPK

Alice Bob𝐢𝑇=𝐸𝑛𝑐 𝑃𝐾 (π‘š)❑

All or nothing access to the data

Public Key Encryption [Diffie-Hellman 76, Rivest Shamir Adleman 77]

Page 3: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

SKPK

Alice Bob𝐢𝑇 1=𝐸𝑛𝑐 𝑃𝐾 (π‘š1)❑

𝐢𝑇 π‘ž=𝐸𝑛𝑐 𝑃𝐾 (π‘šπ‘ž)

Charlie

JohnModern world

β€’ Lots of data!β€’ Lots of users!

SK

SK

SK

Public Key Encryption [Diffie-Hellman 76, Rivest Shamir Adleman 77]

Challenge: control who can read

which messages

Page 4: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

𝐢𝑇 1=𝐸𝑛𝑐 𝑃𝐾 (π‘š1)❑

𝐢𝑇 2=𝐸𝑛𝑐 𝑃𝐾 (π‘š2)SK

PK

Alice BobCharlie

John

Scenario:β€’ m1 should be read only by Bob and Charlieβ€’ m2 should be read only by Bob and John

SK

SK

SK

Public Key Encryption [Diffie-Hellman 76, Rivest Shamir Adleman 77]

Trivial Solution (establish many key pairs): completely

impractical!!

Page 5: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Attribute-Based Encryption [Sahai-Waters 05]

PK

Alice Bob

User holding SKP & learns

SKP

𝐢𝑇 π‘₯=𝐸𝑛𝑐 𝑃𝐾 (π‘₯ ,π‘š)❑

Public Attribute vector

Policy

if P() = 1 otherwise

Page 6: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

PK

AliceSK

BobCharlie

John

Attribute-Based Encryption [Sahai-Waters 05]

𝐢𝑇 π‘₯1=𝐸𝑛𝑐 𝑃𝐾 (π‘₯1 ,π‘š1)❑

User holding key , learns if otherwise

SKP 1

SKP 2

SKP 3

Page 7: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Our Result [G., Vaikuntanathan and Wee] (informal):

There exists an Attribute-based Encryption scheme for all polynomial-size circuits

-- Assuming hardness of Learning With Errors (LWE) problem

Can we construct Attribute-based Encryption for all policies (represented by circuits)?

Page 8: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Our Result [G., Vaikuntanathan and Wee] (semi-formal): Under the sub-exponential hardness (modulo ) of LWE, for every depth , there is an Attribute-based Encryption scheme for poly size, depth circuits where:

size of ciphertext encrypting bits = , where is the security parameter

Can we construct Attribute-based Encryption for all policies (represented by circuits)?

Page 9: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Our Result [G., Vaikuntanathan and Wee] (semi-formal): Under the sub-exponential hardness (modulo ) of LWE, for every depth , there is an Attribute-based Encryption scheme for poly size, depth circuits where:

size of ciphertext encrypting bits = , where is the security parameter

Can we construct Attribute-based Encryption for all policies (represented by circuits)?Best algorithm:

time

Page 10: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Physical FiltersPenny Coin Filter

Pennies Other change

Page 11: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Physical FiltersPenny Coin Filter

Pennies Other change

Bob sees the pennies only…

Page 12: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Computational Filters

Sat Messages Unsat Messages

AND

OR

(101, m1) (000, m2)

(001, m3)

m1

Page 13: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

AND

OR

Enc(101,m1) Enc(000, m2)

Enc(001, m3)

Bob sees Sat messages only…

m1

Computational Filters

m1Sat Messages Unsat Messages

Page 14: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Analogy: Computational FiltersDecryption algorithms outputs m if and only if P(x) = 1

x1=1 x2=0 x3=1

Circuit for policy PAttribute Vector x=101

Computational Filter for P

m

Ciphertext101 = EncPK(101,m)

P(101)=1

AND

OR

AND

OR

SKP =

Page 15: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

SKP is a computational filter for the policy P! Constructing ABE = reusable computational filters!

m1

Enc(101,m1)

AND

OR

SKP =

Reusable computational filters:

Analogy: Computational Filters

Page 16: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

m1,m2

Enc(101,m1)

SKP =

Enc(011,m2)Reusable computational filters:

OR

AND

Analogy: Computational FiltersSKP is a computational filter for the policy P! Constructing ABE = reusable computational filters!

Page 17: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Analogy: Computational Filters

m1,m2,

Enc(101,m1)

SKP =

Enc(011,m2)Enc(001,m3)

Reusable computational filters:

AND

OR

SKP is a computational filter for the policy P! Constructing ABE = reusable computational filters!

Page 18: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Constructing One Time Computational Filters[Yao 86]

AND filter

On input L1 AND L2, output L3

OR filter

On input L1 OR L2, output L3

(indexed by hidden stringsL1,L2 and L3)

(indexed by hidden strings L1,L2 and L3)

AND-filterL1 L2

L3

OR-filterL1 L2

L3

β€’ Building Blocks

β€’ One time filter for a policy P is a collection of filters for each gate

Page 19: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Constructing One Time Computational Filters[Yao 86]

AND filter OR filter

β€’ Building Blocks

πΈπ‘›π‘π‘³πŸ(𝐸𝑛𝑐 π‘³πŸ

(π‘³πŸ‘))

On input AND , and output

On input OR , and output

OWF

Page 20: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Enc(101,m) = L1, L3, Lout m

SKP = OR-filter & AND-filter

L1 L2 L3

OR-filterL1 L2L4

AND-filterL4 L3Lout

Constructing One Time Computational Filters[Yao 86]

One-time ABE

Page 21: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Enc(101,m) = L1, L3, Lout m

SKP = OR-filter & AND-filter

L1 L2 L3

OR-filterL1 L2L4

AND-filterL4 L3Lout

L4

Constructing One Time Computational Filters[Yao 86]

One-time ABE

Page 22: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Enc(101,m) = L1, L3, Lout m

SKP = OR-filter & AND-filter

L1 L2 L3

OR-filterL1 L2L4

AND-filterL4 L3Lout

Given SKP, Enc(101, m1), Enc(010, m2): β€’ the user should not learn m2, β€’ but he does!! β€’ (the labels/strings are correlated)

Come up with reusable computational filters where β€’ decrypting Enc(101, m1) does not help

to decrypt Enc(010, m2)

L4

Lout

Why one time?

Challenge

Constructing One Time Computational Filters[Yao 86]

One-time ABE

Page 23: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Constructing Reusable Computational Filters

strings: single-use functions: many-use

OUR KEY IDEA Replace strings L

by functions

One time computational filters

Yao 1986

Reusablecomputational filters

[This Work]

GorbunovVaikuntanathanWee 2013

Page 24: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

[This Work]

AND filter

On input L1 AND L2, output L3

(indexed by hidden stringsL1,L2 and L3)

AND-filterL1 L2

L3

L1 L2

Constructing Reusable Computational Filters

Page 25: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

On input L1 AND L2, output L3

(indexed by hidden stringsL1,L2 and L3)

AND-filterL1 L2

L3

Reusable AND filter

L1 L2

[This Work]

Constructing Reusable Computational Filters

Page 26: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

On input L1 AND L2, output L3

AND-filterL1 L2

L3

Reusable AND filter

L1 L2

(indexed by public functions )

[This Work]

Constructing Reusable Computational Filters

Page 27: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

On input L1 AND L2, output L3

Reusable AND filter

R-AND-filter

L1 L2

(indexed by public functions )

[This Work]

Constructing Reusable Computational Filters

Page 28: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

On input L1 AND L2, output L3

Reusable AND filter

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

[This Work]

Constructing Reusable Computational Filters

Page 29: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable AND filter

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

On input AND , output

(indexed by public functions )

[This Work]

Constructing Reusable Computational Filters

Page 30: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable AND filter

On input AND , output

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

[This Work]

Constructing Reusable Computational Filters

Page 31: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable AND filter

On input AND , output

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

[This Work]

Constructing Reusable Computational Filters

Page 32: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable OR filter

R-OR-filter

On input OR , output

πœ“ 2 (𝑠)πœ“ 1(𝑠)

(indexed by public functions)

[This Work]

Constructing Reusable Computational FiltersReusable AND filter

On input AND , output

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

Page 33: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable OR filter

R-OR-filter

On input OR , output

(indexed by public functions)

πœ“ 1(𝑠) πœ“ 2 (𝑠)πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

[This Work]

Constructing Reusable Computational FiltersReusable AND filter

On input AND , output

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

Page 34: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable OR filter

R-OR-filter

On input OR , output ,

(indexed by public functions)

πœ“ 1(𝑠) πœ“ 2 (𝑠)πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

[This Work]

Constructing Reusable Computational FiltersReusable AND filter

On input AND , output

R-AND-filter

πœ“ 1(𝑠) πœ“ 2 (𝑠)

(indexed by public functions )

πœ“ 2 (𝑠 β€² )πœ“ 1(𝑠 β€² )

β€’ Reusable filter for a policy P is a collection of reusable filters for each gate

Page 35: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

a11

a21

…am1

a1n

a2n

…amn

…

…

s1

s2

…sn

LWE assumption: Add β€œlow-weight” noise vector e, then given A,

Given a matrix A,

Easy!Find

Hard!

s1

s2

…sn

Find

Turn LWE into a trapdoor function:Easy!

trapdoor TA &

[Regev 05]

[Ajtai 99]

[Gauss 1810]

Constructing Reusable Computational Filters

A s

A s e s

A s e Find s

(Generalization of Learning Parity with Noise [BFKL93])

Page 36: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

Reusable AND filter

On input AND , output

β€’ Function , where

Attempt 1: Publish a trapdoor for : recover , compute

Constructing Reusable Computational Filters

R-AND-filter

πœ“ 𝐴1(𝑠 )=𝐴 1𝑇 𝑠+𝑒1 πœ“ 𝐴2 (𝑠 )=𝐴 2𝑇 𝑠+𝑒 2

Page 37: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

β€’ Function , where

Attempt 2: Exploit Linearity! Publish β€œshort” such that

On input AND , output

R-AND-filter

πœ“ 𝐴1(𝑠 )=𝐴 1𝑇 𝑠+𝑒1 πœ“ 𝐴2 (𝑠 )=𝐴 2𝑇 𝑠+𝑒 2

[GPV08, CHKP10][ABB10]

Correctness:

Constructing Reusable Computational Filters

Error grows

𝑅1𝑅2

Reusable AND filter

Page 38: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

β€’ Function , where

Attempt 2: Exploit Linearity! Publish β€œshort” such that

see paper…

On input AND , output

[GPV08, CHKP10][ABB10]

Security:

Constructing Reusable Computational Filters

Non-monotone circuits: define reusable NAND filter similarly

R-AND-filter

πœ“ 𝐴1(𝑠 )=𝐴 1𝑇 𝑠+𝑒1 πœ“ 𝐴2 (𝑠 )=𝐴 2𝑇 𝑠+𝑒 2

𝑅1𝑅2

Reusable AND filter

Page 39: Vinod Vaikuntanathan -- {U of Toronto} Hoeteck  Wee  -- {George Washington U}

strings L:single-use

functions : many-use

One time comp. filters

Reusablecomputational filters

LWE functionπœ“ 𝐴 (𝑠 )=𝐴𝑇 𝑠+𝑒

ABE for all circuits

Applications

Input Secrecy, Functional Enc,Obfuscation…

[Yao 86]

1980 1990 Now!

[This Work]

2000

β‰ˆ