inner product functional encryption
play

Inner Product Functional Encryption Edouard Dufour Sans January 25, - PowerPoint PPT Presentation

Inner Product Functional Encryption Edouard Dufour Sans January 25, 2018 Table of Contents Introduction Functional Encryption Security definitions Notations The Power of Inner Products Descriptive statistics Machine Learning Practical


  1. Inner Product Functional Encryption Edouard Dufour Sans January 25, 2018

  2. Table of Contents Introduction Functional Encryption Security definitions Notations The Power of Inner Products Descriptive statistics Machine Learning Practical security The first practical scheme: ABDP Presentation Correctness A fully secure scheme: ALS Presentation Correctness Security

  3. Functional Encryption Traditional PKE: all or nothing.

  4. Functional Encryption Traditional PKE: all or nothing. ◮ Have the key? Get the plaintext.

  5. Functional Encryption Traditional PKE: all or nothing. ◮ Have the key? Get the plaintext. ◮ Don’t have the key? Get nothing.

  6. Functional Encryption Traditional PKE: all or nothing. Functional Encryption: A new ◮ Have the key? Get the paradigm . plaintext. ◮ Don’t have the key? Get nothing.

  7. Functional Encryption Traditional PKE: all or nothing. Functional Encryption: A new ◮ Have the key? Get the paradigm . plaintext. Get a function of the cleartext. ◮ Don’t have the key? Get nothing.

  8. Functional Encryption Traditional PKE: all or nothing. Functional Encryption: A new ◮ Have the key? Get the paradigm . plaintext. Get a function of the cleartext. ◮ Don’t have the key? Get Function depends on the key . nothing.

  9. Functional Encryption: Formal definition Four algorithms:

  10. Functional Encryption: Formal definition Four algorithms: ◮ Setup ◮ Encrypt ◮ KeyGen ◮ Decrypt

  11. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt ◮ KeyGen ◮ Decrypt

  12. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen ◮ Decrypt

  13. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen( msk , f ): Returns sk f . ◮ Decrypt

  14. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen( msk , f ): Returns sk f . ◮ Decrypt( sk f , c ): Returns f ( x ).

  15. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen( msk , f ): Returns sk f . ◮ Decrypt( sk f , c ): Returns f ( x ). Function hiding.

  16. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen( msk , f ): Returns sk f . ◮ Decrypt( sk f , c ): Returns f ( x ). Function hiding (or not ).

  17. Functional Encryption: Formal definition Four algorithms: ◮ Setup( λ ): Returns ( ek , msk ). ◮ Encrypt( ek , x ): Returns c . ◮ KeyGen( msk , f ): Returns sk f . ◮ Decrypt( sk f , c ): Returns f ( x ). Function hiding (or not ). f ∈ F : the functionality .

  18. Security definitions Can we simply re-use the definitions of standard SE or PKE?

  19. Security definitions Can we simply re-use the definitions of standard SE or PKE? No .

  20. Security definitions Can we simply re-use the definitions of standard SE or PKE? No. For any non-trivial f = ⇒ distinguish by submitting x 0 , x 1 with f ( x 0 ) � = f ( x 1 ).

  21. Security definitions Can we simply re-use the definitions of standard SE or PKE? No. For any non-trivial f = ⇒ distinguish by submitting x 0 , x 1 with f ( x 0 ) � = f ( x 1 ). Would not be a useful definition.

  22. Security definitions Indistinguishibility-Based Game

  23. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles:

  24. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key.

  25. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key.

  26. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key. ◮ LeftOrRight: Receive ( x 0 , x 1 ), return Encrypt( ek , x b ).

  27. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key. ◮ LeftOrRight: Receive ( x 0 , x 1 ), return Encrypt( ek , x b ). ◮ Finalize: If key requests were legitimate, check validity of guess.

  28. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key. ◮ LeftOrRight: Receive ( x 0 , x 1 ), return Encrypt( ek , x b ). ◮ Finalize: If key requests were legitimate, check validity of guess. One query to LeftOrRight is enough.

  29. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key. ◮ LeftOrRight: Receive ( x 0 , x 1 ), return Encrypt( ek , x b ). ◮ Finalize: If key requests were legitimate, check validity of guess. One query to LeftOrRight is enough. Requests were illegitimate if for some f queries to KeyDer, f ( x 0 ) � = f ( x 1 ).

  30. Security definitions Indistinguishibility-Based Game Polynomial number of queries to the following oracles: ◮ Initialize: Run the setup and send the public key. ◮ KeyDer: Run KeyGen and give the decryption key. ◮ LeftOrRight: Receive ( x 0 , x 1 ), return Encrypt( ek , x b ). ◮ Finalize: If key requests were legitimate, check validity of guess. One query to LeftOrRight is enough. Requests were illegitimate if for some f queries to KeyDer, f ( x 0 ) � = f ( x 1 ). Selective game: Adversary must query LeftOrRight first. Adaptive game: No such constraint.

  31. Notations ◮ Brackets: [ x ] = g x . ◮ Matrices and brackets:       . . . [ x 11 ] . . . [ x 1 n ] x 11 x 1 n . . . . ... ... . . . .  =       . . . .      x d 1 . . . x dn [ x d 1 ] . . . [ x dn ] ◮ We encrypt vectors x , and give keys for vectors y . We conflate f y : x → � n i =1 x i y i and y . ◮ Scalar x , vector x and matrix X .

  32. Table of Contents Introduction Functional Encryption Security definitions Notations The Power of Inner Products Descriptive statistics Machine Learning Practical security The first practical scheme: ABDP Presentation Correctness A fully secure scheme: ALS Presentation Correctness Security

  33. The Power of Inner Products We will work towards constructing schemes for the inner product functionality.

  34. The Power of Inner Products We will work towards constructing schemes for the inner product functionality. Is this a useful primitive?

  35. Descriptive statistics ◮ Averages.

  36. Descriptive statistics ◮ Averages. ◮ Weighted averages.

  37. Descriptive statistics ◮ Averages. ◮ Weighted averages. ◮ Standard deviation.

  38. Descriptive statistics ◮ Averages. ◮ Weighted averages. ◮ Standard deviation (if we encrypt the squares).

  39. Machine learning: linear regression Predict t (e.g. income) from x (e.g. housing data about the family).

  40. Machine learning: linear regression Predict t (e.g. income) from x (e.g. housing data about the family). A somewhat naive model: � n t ≈ i =1 x i y i ≈ � x , y �

  41. Machine learning: linear regression Predict t (e.g. income) from x (e.g. housing data about the family). A somewhat naive model: � n t ≈ i =1 x i y i ≈ � x , y � Works very well for some (basic) problems!

  42. Machine learning: linear classification Figure: The CIFAR10 dataset. Source: https://www.cs.toronto.edu/ ∼ kriz/cifar.html

  43. Machine learning: linear classification Figure: CIFAR10 linear classifiers as images. Source: http://cs231n.github.io/linear-classify/

  44. Leakage The key for y lets you compute � x , y � = ⇒ one projection.

  45. Leakage The key for y lets you compute � x , y � = ⇒ one projection. m independent keys = ⇒ m projections.

  46. Leakage The key for y lets you compute � x , y � = ⇒ one projection. m independent keys = ⇒ m projections. Actual number of keys you can give?

  47. Leakage The key for y lets you compute � x , y � = ⇒ one projection. m independent keys = ⇒ m projections. Actual number of keys you can give depends on plaintext distribution.

  48. Table of Contents Introduction Functional Encryption Security definitions Notations The Power of Inner Products Descriptive statistics Machine Learning Practical security The first practical scheme: ABDP Presentation Correctness A fully secure scheme: ALS Presentation Correctness Security

  49. Presentation ABDP15 Fixed n . F ≈ Z n p , f y ≈ y .

  50. Presentation ABDP15 Fixed n . F ≈ Z n p , f y ≈ y . ◮ Setup ◮ Encrypt ◮ KeyGen ◮ Decrypt

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend