Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a...

64
Watermarking Cryptographic Functionalities from Standard Lattice Assumptions Sam Kim and David J. Wu Stanford University

Transcript of Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a...

Page 1: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Watermarking Cryptographic Functionalities from Standard Lattice Assumptions

Sam Kim and David J. Wu

Stanford University

Page 2: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

Often used to identify owner of content and prevent unauthorized distribution

Page 3: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

โ€ข Content is (mostly) viewable

Page 4: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Digital Watermarking

CRYPTO 2017

CRYPTO 2017 CRYPTO 2017

CRYPTO 2017

โ€ข Content is (mostly) viewableโ€ข Watermark difficult to remove (without destroying the image)

Page 5: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 6: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 7: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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]

Page 8: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 9: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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]

Page 10: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 11: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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]

Page 12: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 13: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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.)

Page 14: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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.

Page 15: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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)

Page 16: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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

๐‘ฅโ‹†, ๐‘ฆโ‹†

Page 17: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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

Page 18: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฅโ‹†

๐‘ฆ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 ๐‘ฆโ‹†

Page 19: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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 ๐‘˜, ๐‘ฅโ‹†

Page 20: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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โ€ฆ

Page 21: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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โ€ฆ

Page 22: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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โœ“

Page 23: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

๐‘ฆ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โœ“

โœ“

Page 24: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Blueprint for Watermarking PRFs [CHNVW16, BLW17]

๐‘ฆโ‹†๐‘ฅโ‹†

How to implement this functionality?

Prior solutions: use obfuscation to hide ๐‘ฅโ‹†, ๐‘ฆโ‹†

Page 25: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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:

Page 26: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐‘ฅโ‹†

Page 27: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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:

Page 28: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 29: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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:

Page 30: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 31: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 32: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 33: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 34: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 35: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 36: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 37: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 38: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

๐‘ฅโ‹†๐‘ฆโ‹†

Page 39: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 40: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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]

Page 41: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 42: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

๐‘ฆโ‹†

Page 43: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

๐‘ฆโ‹†

Page 44: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Constructing Private Translucent PRFs

Page 45: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Learning with Errors (LWE) [Reg05]:

๐‘จีšRโ„ค๐‘ž๐‘›ร—๐‘š, ๐’”ีš

Rโ„ค๐‘ž๐‘›, ๐’†ีš

R๐œ’๐‘š, ๐’–ีš

Rโ„ค๐‘ž๐‘š

๐‘จ, ๐’”๐‘‡๐‘จ + ๐’†๐‘‡ โ‰ˆ ๐‘จ, ๐’–๐‘‡

Page 46: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

Homomorphic Matrix Encodings [BGGHNSVV14]

A way to encode ๐‘ฅ โˆˆ 0,1 โ„“ as a collection of LWE samplestake LWE matrices ๐‘จ1, โ€ฆ , ๐‘จโ„“ โˆˆ โ„ค๐‘ž

๐‘›ร—๐‘š and a secret ๐’” โˆˆ โ„ค๐‘ž๐‘›:

Page 47: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 48: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 49: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 50: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 51: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐’”, ๐‘ฅ โ‰” เถ‹ เถ‡๐’”๐‘‡๐‘จ๐‘“๐‘ฅ ๐‘

Page 52: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐‘จ๐‘“๐‘ฅ

Page 53: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐‘ฅ

Page 54: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐‘ฅ = ๐‘ฅโ‹†

Page 55: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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 ๐’”, ๐‘ฅ โ‰” เถ‹ เถ‡๐’”๐‘‡๐‘จ๐‘“๐‘ฅ ๐‘

Page 56: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 57: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 58: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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)

Page 59: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 60: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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

Page 61: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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]

Page 62: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

watermarking[CHNVW16, BLW17]

private puncturable PRFs [BKM17, CC17]

Conclusions

lattice-based assumptions

indistinguishability obfuscation

Page 63: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

this work

watermarking (via private translucent PRFs)

private puncturable PRFs [BKM17, CC17]

Conclusions

lattice-based assumptions

indistinguishability obfuscation

Page 64: Watermarking Cryptographic Functionalities from Standard ...Functionality-preserving: On input a program (modeled as a circuit ๐ถ), the Markalgorithm outputs a circuit ๐ถโ€ฒwhere:

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