unbounded inner product functional encryption with
play

Unbounded Inner Product Functional Encryption, with Succinct Keys - PowerPoint PPT Presentation

Unbounded Inner Product Functional Encryption, with Succinct Keys Edouard Dufour Sans and David Pointcheval Ecole Normale Sup erieure INRIA June 6, 2019 Table of Contents Background Functional Encryption ABDP Applications of Inner


  1. Unbounded Inner Product Functional Encryption, with Succinct Keys Edouard Dufour Sans and David Pointcheval ´ Ecole Normale Sup´ erieure INRIA June 6, 2019

  2. Table of Contents Background Functional Encryption ABDP Applications of Inner Product Functional Encryption Security of Inner Product Functional Encryption Unbounded Inner Product Functional Encryption Issues with Standard Inner Product Functional Encryption Unbounded Inner Product Functional Encryption Our construction Technical Difficulties Concurrent and Independent Work Open problems

  3. Functional Encryption Traditional PKE: all or nothing.

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

  5. Functional Encryption Traditional PKE: all or nothing. Functional Encryption: A new ◮ Have the key? paradigm . 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? paradigm . Get the plaintext. Get a function of the cleartext. ◮ Don’t have the key? Get nothing.

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

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

  9. FE example sk f spam , sk f urgent pk I want to receive encrypted emails. I don’t want to be bothered with spam. Decrypt and send to my colleague if urgent. msk

  10. FE example Enc pk (”Cheap RayBans!!!”) sk f spam , sk f urgent pk I don’t know what it is but it’s spam! msk

  11. Security definitions Oracles: Setup() LeftOrRight( · , · ) KeyDer( · ) Finalize( · ) Enc( x b ) sk f LoR( x 0 , x 1 ) KeyDer( f )

  12. Security definitions Oracles: Setup() No cheating! LeftOrRight( · , · ) f ( x 0 ) � = f ( x 1 ) KeyDer( · ) Finalize( · ) Enc( x b ) sk f LoR( x 0 , x 1 ) KeyDer( f )

  13. The First Inner Product Functional Encryption ABDP15 Fixed n . F ≈ Z n y ≈ � p , f � y . ← Z n $ p . Return g � s ,� ◮ Setup( λ ): Pick � s s . $ ◮ Encrypt( g � s , � x ): Pick r ← Z p . Return s � r = g r , g � x · g r , g � g � x + r · � s . � ◮ KeyGen( � s , � y ): Return � � s , � y � . y � , ( g r , g � x + r · � s )): Compute ◮ Decrypt( � � s , � g γ = y � / ( g r ) � � s ,� y � � g � x + r · � s , � and solve the discrete logarithm to return γ .

  14. Application: Descriptive statistics ◮ Averages. ◮ Weighted averages.

  15. Application: Descriptive statistics ◮ Averages. ◮ Weighted averages. ◮ Standard deviation.

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

  17. Application: Descriptive statistics ◮ Averages. ◮ Weighted averages. ◮ Standard deviation (if we encrypt the squares). ◮ Machine Learning Inference via Linear Regression.

  18. Leakage Say you have a ciphertext for vector x . The key for y lets you compute � x , y � = ⇒ one projection.

  19. Leakage Say you have a ciphertext for vector x . The key for y lets you compute � x , y � = ⇒ one projection. m independent keys = ⇒ m projections.

  20. Leakage Say you have a ciphertext for vector x . The key for y lets you compute � x , y � = ⇒ one projection. m independent keys = ⇒ m projections. Actual number of keys you can give?

  21. Leakage Say you have a ciphertext for vector x . 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.

  22. Table of Contents Background Functional Encryption ABDP Applications of Inner Product Functional Encryption Security of Inner Product Functional Encryption Unbounded Inner Product Functional Encryption Issues with Standard Inner Product Functional Encryption Unbounded Inner Product Functional Encryption Our construction Technical Difficulties Concurrent and Independent Work Open problems

  23. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths?

  24. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths? You need multiple public keys.

  25. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths? You need multiple public keys. What if you want to create subcategories between vectors?

  26. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths? You need multiple public keys. What if you want to create subcategories between vectors? More keys.

  27. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths? You need multiple public keys. What if you want to create subcategories between vectors? More keys. What if you don’t know the size of the vector ahead of time?

  28. Limitations of Inner Product Functional Encryption What if you want to receive vectors of various lengths? You need multiple public keys. What if you want to create subcategories between vectors? More keys. What if you don’t know the size of the vector ahead of time? No great solutions.

  29. Solution: Unbounded Inner Product Functional Encryption ◮ No fixed size for vectors (ciphertexts or keys). ◮ One constant-size public-key. ◮ Vectors are maps from indices to scalars. ◮ Identity-based version allows for categorization.

  30. UIPFE Variants We introduce two unbounded functionalities:

  31. UIPFE Variants We introduce two unbounded functionalities: ◮ Strict UIPFE: Indices of ciphertext must match those of key.

  32. UIPFE Variants We introduce two unbounded functionalities: ◮ Strict UIPFE: Indices of ciphertext must match those of key. ◮ Permissive UIPFE: Indices of ciphertext must contain those of key.

  33. Technical overview ABDP builds on El Gamal. Want n coordinates? Instantiate n El Gamal schemes you control.

  34. Technical overview ABDP builds on El Gamal. Want n coordinates? Instantiate n El Gamal schemes you control. How do we go to Unbounded?

  35. Technical overview ABDP builds on El Gamal. Want n coordinates? Instantiate n El Gamal schemes you control. How do we go to Unbounded? Boneh-Franklin Identity-Based Encryption is ElGamal-like.

  36. Our construction Permissive UIPFE: Setup Choose a pairing group ( G 1 , G 2 , G T , g 1 , g 2 , e ) and a hash function H into G 2 . $ Pick a single scalar s ← Z p . Return g s 1 , s .

  37. Our construction Permissive UIPFE: Encrypt $ ◮ Setup( λ ): Pick s ← Z p . Return g s 1 , s . You have an unbounded vector ( x i ) i ∈D and pk = g s 1 . $ ← Z p . Return ( g r Pick r 1 , ( c i ) i ∈D ) where c i = g x i 1 , H ( i ) r ) ≈ g x i + rs i T · e ( g s T

  38. Our construction Permissive UIPFE: KeyGen $ ◮ Setup( λ ): Pick s ← Z p . Return g s 1 , s . $ ◮ Encrypt( g s , ( x i ) i ∈D ): Pick r ← Z p . Return ( g r 1 , ( c i ) i ∈D ) where 1 , H ( i ) r ) ≈ g x i + rs i c i = g x i T · e ( g s T You have an unbounded vector ( y i ) i ∈D ′ and sk = s . Return H ( i ) − sy i ≈ g −� � y � � s ,� 2 i ∈D ′

  39. Our construction Permissive UIPFE: Decrypt ◮ Setup( λ ): Pick s ← Z p . Return g s $ 1 , s . ◮ Encrypt( g s , ( x i ) i ∈D ): Pick r ← Z p . Return ( g r $ 1 , ( c i ) i ∈D ) where c i = g x i 1 , H ( i ) r ) ≈ g x i + rs i T · e ( g s T ◮ KeyGen( s , ( y i ) i ∈D ′ ): Return H ( i ) − sy i ≈ g −� � s ,� y � � 2 i ∈D ′ i ∈D ′ H ( i ) − sy i You have a ciphertext ( g r 1 , ( c i ) i ∈D ) and a key � Compute � � g γ � � c y i g r H ( i ) − sy i T = e 1 , · i i ∈D ′ i ∈D ′ and recover γ .

  40. Our construction Permissive UIPFE $ ◮ Setup( λ ): Pick s ← Z p . Return g s 1 , s . $ ◮ Encrypt( g s , ( x i ) i ∈D ): Pick r ← Z p . Return ( g r 1 , ( c i ) i ∈D ) where 1 , H ( i ) r ) ≈ g x i + rs i c i = g x i T · e ( g s T ◮ KeyGen( s , ( y i ) i ∈D ′ ): Return H ( i ) − sy i ≈ g −� � s ,� y � � 2 i ∈D ′ i ∈D ′ H ( i ) − sy i ≈ g −� � s ,� y � ◮ Decrypt( � , ( g r 1 , ( c i ) i ∈D )): Compute 2 � � g γ g r � H ( i ) − sy i � c y i T = e 1 , · i i ∈D ′ i ∈D ′ and recover γ .

  41. � Technical Difficulties: Norms || x 0 − x 1 || = 0 mod p = ⇒ x 0 = x 1 mod p Other UIPFE works bypass this by bounding individual components. This doesn’t work here. We define a pseudonorm and impose an upper bound on it.

  42. Technical Difficulties: Key Homomorphism In most (all?) IPFE schemes, keys are homomorphic: f ( α, sk y , β, sk y ′ ) = sk α y + β y ′ This is typically fine by functionality.

  43. Technical Difficulties: Key Homomorphism In most (all?) IPFE schemes, keys are homomorphic: f ( α, sk y , β, sk y ′ ) = sk α y + β y ′ This is typically fine by functionality. But it becomes an issue in permissive UIPFE. Need to adjust security definitions.

Recommend


More recommend