watermarking cryptographic functionalities from standard ...functionality-preserving: on input a...

Post on 01-Jan-2021

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Watermarking Cryptographic Functionalities from Standard Lattice Assumptions

Sam Kim and David J. Wu

Stanford University

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

Often used to identify owner of content and prevent unauthorized distribution

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

‱ Content is (mostly) viewable

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

‱ Content is (mostly) viewable‱ Watermark difficult to remove (without destroying the image)

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Embed a “mark” within a program

If mark is removed, then program is destroyed

Two main algorithms:‱ Mark wsk, đ¶ → đ¶â€Č: Takes a circuit đ¶ and outputs a marked circuit đ¶â€Č

‱ Verify wsk, đ¶â€Č → 0,1 : Tests whether a circuit đ¶â€Č is marked or not

Two main algorithms:‱ Mark wsk, đ¶ → đ¶â€Č: Takes a circuit đ¶ and outputs a marked circuit đ¶â€Č

‱ Verify wsk, đ¶â€Č → 0,1 : Tests whether a circuit đ¶â€Č is marked or not

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Embed a “mark” within a program

If mark is removed, then program is destroyed

Both marking and verification require a secret

watermarking key wsk

Two main algorithms:‱ Mark wsk, đ¶ → đ¶â€Č: Takes a circuit đ¶ and outputs a marked circuit đ¶â€Č

‱ Verify wsk, đ¶â€Č → 0,1 : Tests whether a circuit đ¶â€Č is marked or not

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Embed a “mark” within a program

If mark is removed, then program is destroyed

Extends to setting where watermark can be an

(arbitrary) string [See paper]

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Functionality-preserving: On input a program (modeled as a circuit đ¶), the Mark algorithm outputs a circuit đ¶â€Č where:

đ¶ đ‘„ = đ¶â€Č(đ‘„)on all but a negligible fraction of inputs đ‘„

Mark

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Functionality-preserving: On input a program (modeled as a circuit đ¶), the Mark algorithm outputs a circuit đ¶â€Č where:

đ¶ đ‘„ = đ¶â€Č(đ‘„)on all but a negligible fraction of inputs đ‘„

MarkPerfect functionality-preserving impossible assuming obfuscation [BGIRSVY12]

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Unremovability: Given a marked program đ¶, no efficient adversary can construct a circuit đ¶â€Č where

‱ đ¶â€Č đ‘„ = đ¶(đ‘„) on all but a negligible fraction of inputs đ‘„â€ą Verify wsk, đ¶â€Č = 1

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Unremovability: Given a marked program đ¶, no efficient adversary can construct a circuit đ¶â€Č where

‱ đ¶â€Č đ‘„ = đ¶(đ‘„) on all but a negligible fraction of inputs đ‘„â€ą Verify wsk, đ¶â€Č = 1

Adversary has completeflexibility in crafting đ¶â€Č

Adversary given access to marking oracle

[Also require unforgeability; see paper for details]

Watermarking Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

‱ Notion only achievable for functions that are not learnable‱ Focus has been on cryptographic functions

pseudorandom function

PRF(𝑘,⋅)

pseudorandom function

PRF(𝑘,⋅)

Watermarking Cryptographic Programs[NSS99, BGIRSVY01, HMW07, YF11, Nis13, CHNVW16, BLW17]

CRYPTO

Mark

‱ Focus of this work: watermarking PRFs [CHNVW16, BLW17]

‱ Enables watermarking of symmetric primitives built from PRFs (e.g., encryption, MACs, etc.)

pseudorandom function

PRF(𝑘,⋅)

pseudorandom function

PRF(𝑘,⋅)

Main Result

CRYPTO

Mark

This work: Under standard lattice assumptions, there exists a (secretly)-verifiable watermarkable family of PRFs.

𝑩2𝑩1

𝑩3

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3

domain range

PRF key

Step 1: Evaluate PRF on test points đ‘„1, đ‘„2, đ‘„3 (part of the watermarking secret key)

𝑩1𝑩2

𝑩3

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3

domain range

PRF key

Step 2: Derive a pair (đ‘„â‹†, 𝑩⋆) from 𝑩1, 𝑩2, 𝑩3

đ‘„â‹†, 𝑩⋆

𝑩1𝑩2

𝑩3

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3

domain range

PRF key

Step 2: Derive a pair (đ‘„â‹†, 𝑩⋆) from 𝑩1, 𝑩2, 𝑩3

đ‘„â‹†, 𝑩⋆

Need different đ‘„â‹† for different programs – otherwise easy to

remove if adversary sees watermarked keys of its choosing

đ‘„â‹†

𝑩1𝑩2

𝑩3

PRF 𝑘, đ‘„â‹†

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3

domain range

PRF key

đ‘„â‹†, 𝑩⋆

Step 3: “Marked key” is a circuit that implements the PRF at all points, except at đ‘„â‹†, the output is changed to 𝑩⋆

𝑩1𝑩2

𝑩3𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3đ‘„â‹†

domain range

marked key

Step 3: “Marked key” is a circuit that implements the PRF at all points, except at đ‘„â‹†, the output is changed to 𝑩⋆

PRF 𝑘, đ‘„â‹†

𝑩1𝑩2

𝑩3𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3đ‘„â‹†

domain range

marked key

Step 3: “Marked key” is a circuit that implements the PRF at all points, except at đ‘„â‹†, the output is changed to 𝑩⋆

PRF 𝑘, đ‘„â‹†

Defer implementation details for now


𝑩1𝑩2

𝑩3𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3đ‘„â‹†

domain range

marked key

Verification: Evaluate function at đ‘„1, đ‘„2, đ‘„3, derive (đ‘„â‹†, 𝑩⋆) and check if the value at đ‘„â‹† matches 𝑩⋆

PRF 𝑘, đ‘„â‹†

Defer implementation details for now


𝑩1𝑩2

𝑩3𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3đ‘„â‹†

marked key

Defer implementation details for now


Functionality-preserving: function differs at a single point✓

𝑩1𝑩2

𝑩3𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘„1đ‘„2

đ‘„3đ‘„â‹†

marked key

Unremovable: as long as adversary cannot tell that đ‘„â‹†, 𝑩⋆ is “special”

Defer implementation details for now


Functionality-preserving: function differs at a single point✓

✓

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

đ‘Šâ‹†đ‘„â‹†

How to implement this functionality?

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

How to implement this functionality?

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Obfuscated program has PRF key embedded inside and outputs PRF(𝑘, đ‘„) on all inputs đ‘„ ≠ đ‘„â‹†

and 𝑩⋆ when đ‘„ = đ‘„â‹†

𝑃 đ‘„â‹†,𝑩⋆ (đ‘„):

‱ if đ‘„ = đ‘„â‹†, output 𝑩⋆

‱ else, output PRF(𝑘, đ‘„)

Obfuscated program:

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

How to implement this functionality?

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Obfuscated program has PRF key embedded inside and outputs PRF(𝑘, đ‘„) on all inputs đ‘„ ≠ đ‘„â‹†

and 𝑩⋆ when đ‘„ = đ‘„â‹†

𝑃 đ‘„â‹†,𝑩⋆ (đ‘„):

‱ if đ‘„ = đ‘„â‹†, output 𝑩⋆

‱ else, output PRF(𝑘, đ‘„)

Obfuscated program:

Essentially relies on secretly re-programming

the value at đ‘„â‹†

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Obfuscated program has PRF key embedded inside and outputs PRF(𝑘, đ‘„) on all inputs đ‘„ ≠ đ‘„â‹†

and 𝑩⋆ when đ‘„ = đ‘„â‹†

Key technical challenge: How to hide đ‘„â‹†, 𝑩⋆ within the watermarked key (without obfuscation)?

𝑃 đ‘„â‹†,𝑩⋆ (đ‘„):

‱ if đ‘„ = đ‘„â‹†, output 𝑩⋆

‱ else, output PRF(𝑘, đ‘„)

Obfuscated program:

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Obfuscated program has PRF key embedded inside and outputs PRF(𝑘, đ‘„) on all inputs đ‘„ ≠ đ‘„â‹†

and 𝑩⋆ when đ‘„ = đ‘„â‹†

Key technical challenge: How to hide đ‘„â‹†, 𝑩⋆ within the watermarked key (without obfuscation)?

𝑃 đ‘„â‹†,𝑩⋆ (đ‘„):

‱ if đ‘„ = đ‘„â‹†, output 𝑩⋆

‱ else, output PRF(𝑘, đ‘„)

Obfuscated program:

Has an obfuscation flavor: need to embed a secret inside a piece of code that cannot be removed

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

Prior solutions: use obfuscation to hide đ‘„â‹†, 𝑩⋆

Obfuscated program has PRF key embedded inside and outputs PRF(𝑘, đ‘„) on all inputs đ‘„ ≠ đ‘„â‹†

and 𝑩⋆ when đ‘„ = đ‘„â‹†

This work: Under standard lattice assumptions, there exists a (secretly)-verifiable watermarkable family of PRFs.

𝑃 đ‘„â‹†,𝑩⋆ (đ‘„):

‱ if đ‘„ = đ‘„â‹†, output 𝑩⋆

‱ else, output PRF(𝑘, đ‘„)

Obfuscated program:

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

đ‘Šâ‹†đ‘„â‹†

‱ Watermarked PRF implements PRF at all but a single point

‱ Structurally very similar to a puncturable PRF [BW13, BGI13, KPTZ13]

Puncturable PRF:

Punctuređ‘„â‹†

PRF key punctured key

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

đ‘Šâ‹†đ‘„â‹†

‱ Watermarked PRF implements PRF at all but a single point

‱ Structurally very similar to a puncturable PRF [BW13, BGI13, KPTZ13]

Puncturable PRF:

Punctuređ‘„â‹†

Can be used to evaluate the PRF on all points đ‘„ ≠ đ‘„â‹†

PRF key punctured key

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

Punctuređ‘„â‹†

PRF key punctured key

Recall general approach for watermarking:

1. Derive đ‘„â‹†, 𝑩⋆ from input/output behavior of PRF

2. Give out a key that agrees with PRF everywhere, except has value

𝑩⋆ at đ‘„ = đ‘„â‹† PRF key punctured at đ‘„â‹†

However, punctured key does not necessarily hide đ‘„â‹†, which allows adversary to remove watermark

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

Punctuređ‘„â‹†

PRF key punctured key

Recall general approach for watermarking:

1. Derive đ‘„â‹†, 𝑩⋆ from input/output behavior of PRF

2. Give out a key that agrees with PRF everywhere, except has value

𝑩⋆ at đ‘„ = đ‘„â‹† PRF key punctured at đ‘„â‹†

Punctured keys typically do not provide flexibility in programming value at

punctured point: difficult to test if a program is watermarked or not

However, punctured key does not necessarily hide đ‘„â‹†, which allows adversary to remove watermark

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

Punctuređ‘„â‹†

PRF key punctured key

Problem 1: Punctured keys do not hide the punctured point đ‘„â‹†

‱ Use private puncturable PRFs

Problem 2: Difficult to test whether a value is the result of using a

punctured key to evaluate at the punctured point

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

Punctuređ‘„â‹†

PRF key punctured key

Problem 1: Punctured keys do not hide the punctured point đ‘„â‹†

‱ Use privately puncturable PRFs

Problem 2: Difficult to test whether a value is the result of using a

punctured key to evaluate at the punctured point

In existing lattice-based private puncturable PRF constructions [BKM17, CC17], value of punctured key at punctured point is a deterministic function of

the PRF key

Starting Point: Private Puncturable PRFs [BLW17, BKM17, CC17]

Punctuređ‘„â‹†

PRF key punctured key

Problem 1: Punctured keys do not hide the punctured point đ‘„â‹†

‱ Use privately puncturable PRFs

Problem 2: Difficult to test whether a value is the result of using a

punctured key to evaluate at the punctured point

‱ Relax programmability requirement

Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

PRF key

đ‘„â‹†

PRF 𝑘, đ‘„â‹†

Private puncturable PRF family with the property that output of any punctured key on a punctured point lies in a sparse, hidden subspace

Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

punctured key

Private puncturable PRF family with the property that output of any punctured key on a punctured point lies in a sparse, hidden subspace

đ‘„â‹†đ‘Šâ‹†

Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

punctured key

Private puncturable PRF family with the property that output of any punctured key on a punctured point lies in a sparse, hidden subspace

đ‘„â‹†đ‘Šâ‹†

Secret testing key associated with the PRF family can be used to test for membership in the hidden subspace

Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

punctured key

đ‘„â‹†đ‘Šâ‹†

‱ Values in special set looks indistinguishable from a random value (without secret testing key)

‱ Indistinguishable even though it is easy to sample values from the set

Sets satisfying such properties are called

translucent [CDNO97]

Watermarking from Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

PRF key

đ‘„â‹†

PRF 𝑘, đ‘„â‹†

Watermarking secret key (wsk): test points đ‘„1, 
 , đ‘„đ‘‘and testing key for private translucent PRF

Watermarking from Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

đ‘„â‹†

To mark a PRF key 𝑘, derive special point đ‘„â‹† and puncture 𝑘 at đ‘„â‹†; watermarked key is a program that evaluates using

the punctured key

marked key

𝑩⋆

Watermarking from Private Translucent PRFs

𝑩2𝑩1

𝑩3

đ‘„1đ‘„2

đ‘„3

đ‘„â‹†

To test whether a program đ¶â€Č is watermarked, derive test point đ‘„â‹†

and check whether đ¶â€Č đ‘„â‹† is in the translucent set (using the testing key for the private translucent PRF)

marked key

𝑩⋆

Constructing Private Translucent PRFs

Learning with Errors (LWE) [Reg05]:

𝑹՚Râ„€đ‘žđ‘›Ă—đ‘š, 𝒔՚

Râ„€đ‘žđ‘›, 𝒆՚

R𝜒𝑚, 𝒖՚

Râ„€đ‘žđ‘š

𝑹, 𝒔𝑇𝑹 + 𝒆𝑇 ≈ 𝑹, 𝒖𝑇

Homomorphic Matrix Encodings [BGGHNSVV14]

A way to encode đ‘„ ∈ 0,1 ℓ as a collection of LWE samplestake LWE matrices 𝑹1, 
 , 𝑹ℓ ∈ â„€đ‘ž

𝑛×𝑚 and a secret 𝒔 ∈ â„€đ‘žđ‘›:

Homomorphic Matrix Encodings [BGGHNSVV14]

A way to encode đ‘„ ∈ 0,1 ℓ as a collection of LWE samplestake LWE matrices 𝑹1, 
 , 𝑹ℓ ∈ â„€đ‘ž

𝑛×𝑚 and a secret 𝒔 ∈ â„€đ‘žđ‘›:

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1encoding of đ‘„1 with respect to 𝑹1

𝑼 denotes a special “gadget” matrix

LWE matrix associated with each

input bit

Homomorphic Matrix Encodings [BGGHNSVV14]

A way to encode đ‘„ ∈ 0,1 ℓ as a collection of LWE samplestake LWE matrices 𝑹1, 
 , 𝑹ℓ ∈ â„€đ‘ž

𝑛×𝑚 and a secret 𝒔 ∈ â„€đ‘žđ‘›:

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼

𝑼 denotes a special “gadget” matrix

LWE matrix associated with each

input bit

encoding of đ‘„1 with respect to 𝑹1

Homomorphic Matrix Encodings [BGGHNSVV14]

A way to encode đ‘„ ∈ 0,1 ℓ as a collection of LWE samplestake LWE matrices 𝑹1, 
 , 𝑹ℓ ∈ â„€đ‘ž

𝑛×𝑚 and a secret 𝒔 ∈ â„€đ‘žđ‘›:

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

Encodings support homomorphic operations

Function of 𝑓 and 𝑹1, 
 , 𝑹ℓ

𝑼 denotes a special “gadget” matrix

LWE matrix associated with each

input bit

Puncturable PRFs from LWE [BV15]

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

For any function 𝑓, two ways to (approximately) compute 𝒔𝑇𝑹𝑓‱ Directly given the LWE secret 𝒔 and public matrices 𝑹1, 
 , 𝑹ℓ‱ Homomorphically given encodings 𝒔𝑇 𝑹𝑖 + đ‘„đ‘– ⋅ 𝑼

‱ Works as long as 𝑓 đ‘„ = 0

Puncturable PRFs from LWE [BV15]

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

For puncturing at đ‘„â‹†, let đ‘“đ‘„ đ‘„â‹† = eq đ‘„, đ‘„â‹† be the equality function

‱ PRF evaluation at đ‘„ with secret key 𝒔: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

Puncturable PRFs from LWE [BV15]

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

For puncturing at đ‘„â‹†, let đ‘“đ‘„ đ‘„â‹† = eq đ‘„, đ‘„â‹† be the equality function

‱ PRF evaluation at đ‘„ with secret key 𝒔: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

To evaluate at đ‘„, homomorphically compute đ‘šđ‘“đ‘„

Puncturable PRFs from LWE [BV15]

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

For puncturing at đ‘„â‹†, let đ‘“đ‘„ đ‘„â‹† = eq đ‘„, đ‘„â‹† be the equality function

‱ PRF evaluation at đ‘„ with secret key 𝒔: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

‱ Punctured key consists of encodings of bits of đ‘„â‹†

‱ Allows computing 𝒔𝑇 đ‘šđ‘“đ‘„ + eq đ‘„, đ‘„â‹† ⋅ 𝑼 + noise for all đ‘„

Puncturable PRFs from LWE [BV15]

𝒔𝑇 𝑹1 + đ‘„1 ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“ ⋅ 𝑼 + 𝒆ℓ

⋼ 𝒔𝑇 𝑹𝑓 + 𝑓 đ‘„ ⋅ 𝑼 + noise

For puncturing at đ‘„â‹†, let đ‘“đ‘„ đ‘„â‹† = eq đ‘„, đ‘„â‹† be the equality function

‱ PRF evaluation at đ‘„ with secret key 𝒔: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

‱ Punctured key consists of encodings of bits of đ‘„â‹†

‱ Allows computing 𝒔𝑇 đ‘šđ‘“đ‘„ + eq đ‘„, đ‘„â‹† ⋅ 𝑼 + noise for all đ‘„

Enables evaluation at all đ‘„except when đ‘„ = đ‘„â‹†

Privately Puncturable PRFs [BKM17]

𝒔𝑇 𝑹1 + đ‘„1⋆ ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“â‹† ⋅ 𝑼 + 𝒆ℓ

⋼

Evaluating PRF using punctured key requires knowledge of đ‘„â‹†

Key idea in [BKM17]: encrypt the punctured point using an FHE scheme and homomorphically evaluate the equality function

Evaluating using punctured key outputs

đ’”đ‘‡đ‘šđ‘“đ‘„ + 𝒔𝑇𝑞

2⋅ eq đ‘„, đ‘„â‹† + 𝑒 ⋅ 𝑼 + 𝒆â€Č

PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

Privately Puncturable PRFs [BKM17]

Evaluating PRF using punctured key requires knowledge of đ‘„â‹†

Evaluating using punctured key outputs

đ’”đ‘‡đ‘šđ‘“đ‘„ + 𝒔𝑇𝑞

2⋅ eq đ‘„, đ‘„â‹† + 𝑒 ⋅ 𝑼 + 𝒆â€Č

PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

Value after FHE evaluation and

decryption

𝒔𝑇 𝑹1 + đ‘„1⋆ ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“â‹† ⋅ 𝑼 + 𝒆ℓ

⋼

Key idea in [BKM17]: encrypt the punctured point using an FHE scheme and homomorphically evaluate the equality function

Privately Puncturable PRFs [BKM17]

Evaluating PRF using punctured key requires knowledge of đ‘„â‹†

Evaluating using punctured key outputs

đ’”đ‘‡đ‘šđ‘“đ‘„ + 𝒔𝑇𝑞

2⋅ eq đ‘„, đ‘„â‹† + 𝑒 ⋅ 𝑼 + 𝒆â€Č

Rounding away the FHE error: small if 𝒔 is short and we restrict to low-

norm columns of 𝑼

PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„ 𝑝

𝒔𝑇 𝑹1 + đ‘„1⋆ ⋅ 𝑼 + 𝒆1

𝒔𝑇 𝑹ℓ + đ‘„â„“â‹† ⋅ 𝑼 + 𝒆ℓ

⋼

Key idea in [BKM17]: encrypt the punctured point using an FHE scheme and homomorphically evaluate the equality function

Private Translucent PRFs

Evaluating using a punctured key yields

𝒔𝑇 đ‘šđ‘“đ‘„ + đ‘€ ⋅ eq đ‘„, đ‘„â‹† + 𝑒 ⋅ 𝑼 𝑼−1 đ‘« + noise

Change real PRF evaluation: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„đ‘źâˆ’1(đ‘«)

𝑝

Use a different scaling factor in FHE scheme

(instead of Î€đ‘ž 2)

Private Translucent PRFs

Evaluating using a punctured key yields

𝒔𝑇 đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« + đ‘€ ⋅ eq đ‘„, đ‘„â‹† + 𝑒 ⋅ đ‘« + noise

Change real PRF evaluation: PRF 𝒔, đ‘„ ≔ උ à¶‡đ’”đ‘‡đ‘šđ‘“đ‘„đ‘źâˆ’1(đ‘«)

𝑝

When đ‘„ = đ‘„â‹†, this becomes උ à¶‡đ’”đ‘‡ đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« +đ‘€đ‘«

𝑝

Can choose đ‘€ (part of the punctured key) to tweak the

value at punctured point

Private Translucent PRFs

If đ‘„ = đ‘„â‹†, evaluating using the punctured key yields උ à¶‡đ’”đ‘‡ đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« +đ‘€đ‘«

𝑝

Key idea: sum up multiple evaluations with different multiples đ‘€đ‘– and đ‘«đ‘– yields

ቹ ቧ

𝑖

𝒔𝑇 đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« +đ‘€đ‘–đ‘«đ‘–

𝑝

= උ à¶‡đ’”đ‘‡đ‘Ÿđ‘

Output at punctured point is an LWE sample with respect to đ‘Ÿ (fixed public

matrix) – critical for implementing a translucent set

Private Translucent PRFs

If đ‘„ = đ‘„â‹†, evaluating using the punctured key yields උ à¶‡đ’”đ‘‡ đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« +đ‘€đ‘«

𝑝

Key idea: sum up multiple evaluations with different multiples đ‘€đ‘– and đ‘«đ‘– yields

ቹ ቧ

𝑖

𝒔𝑇 đ‘šđ‘“đ‘„đ‘źâˆ’1 đ‘« +đ‘€đ‘–đ‘«đ‘–

𝑝

= උ à¶‡đ’”đ‘‡đ‘Ÿđ‘

Testing key is a short vector 𝒛 where đ‘Ÿđ’› = 0:

උ à¶‡đ’”đ‘‡đ‘Ÿđ‘, 𝒛 ≈ උ à¶‡đ’”đ‘‡đ‘Ÿđ’›

𝑝= 0

[See paper for details]

watermarking[CHNVW16, BLW17]

private puncturable PRFs [BKM17, CC17]

Conclusions

lattice-based assumptions

indistinguishability obfuscation

this work

watermarking (via private translucent PRFs)

private puncturable PRFs [BKM17, CC17]

Conclusions

lattice-based assumptions

indistinguishability obfuscation

Open Problems

Publicly-verifiable watermarking without obfuscation?‱ Current best construction relies on iO [CHNVW16]

Additional applications of private translucent PRFs?

Thank you!

http://eprint.iacr.org/2017/380

top related