Multi-input Inner-Product Functional Encryption from Pairings Michel Abdalla, CNRS and ENS Romain Gay, ENS Mariana Raykova, Yale University Hoeteck Wee, CNRS and ENS
Functional Encryption [Boneh, Sahai, Waters 11] m Alice
Functional Encryption [Boneh, Sahai, Waters 11] Bob f(m) m Alice
Functional Encryption [Boneh, Sahai, Waters 11] Bob f(m) m Alice Carol g(m)
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Bob m 1 Alice f(m 1 , m 2 ) m 2 Dave Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen pk sk f sk g Bob m 1 Alice f(m 1 , m 2 ) m 2 Dave Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen pk sk f Bob m 1 Alice f(m 1 , m 2 ) m 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen pk sk f Bob m 1 Alice f(m 1 , m 2 ) ∀m, m′: f m, m 2 , f m 1 , m′ m 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen pk sk f Bob m 1 Alice f(m 1 , m 2 ) ∀m, m′: f m, m 2 , f m 1 , m′ m 2 Dave sk g Carol g(m 1 , m 2 ) ∀m, m′: g m, m 2 , g m 1 , m′
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 Alice f(m 1 , m 2 ) m 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f(m 1 , m 2 ) m 2 m′ 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f(m 1 , m 2 ) m 2 m′ 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f m 1 , m 2 , f(m 1 , m′ 2 ) m 2 m′ 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f m 1 , m 2 , f m 1 , m ′2 , f(m′ 1 , m 2 ) m 2 m′ 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f m 1 , m 2 , f m 1 , m ′2 , f m ′1 , m 2 , f(m′ 1 , m′ 2 ) m 2 m′ 2 Dave sk g Carol g(m 1 , m 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob m 1 m′ 1 Alice f m 1 , m 2 , f m 1 , m ′2 , f m ′1 , m 2 , f(m′ 1 , m′ 2 ) m 2 m′ 2 Dave sk g Carol g m 1 , m 2 , g m 1 , m ′ 2 , g m ′1 , m 2 , g(m′ 1 , m′ 2 )
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen sk f Bob Q 1 m 1 Alice m 1 … Q n values … Q 1 m n Dave m n sk g Carol … Q n values
Multi-input Functional Encryption [Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14] Setup msk KeyGen Collusion sk f Bob Q 1 m 1 Alice m 1 … Q n values … Q 1 m n Dave m n sk g Carol … Q n values
Prior works Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ any circuit Non standard Poly, 15, BGJS 15, BKS 16,KS 17] unbounded
Prior works Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ any circuit Non standard Poly, 15, BGJS 15, BKS 16,KS 17] unbounded Standard-based FE for restricted class of functions?
Prior works Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ any circuit Non standard Poly, 15, BGJS 15, BKS 16,KS 17] unbounded Ours Inner 2maps (SXDH) poly Product 𝑜𝑛 𝑦 1 𝑡𝑙 𝑧 for 𝑧 ∈ ℤ 𝑞 … 𝑛 𝑦 1 , … , 𝑦 𝑜 , 𝑧 ∀𝑗: 𝑦 i ∈ ℤ 𝑞 𝑦 n
Prior works Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ any circuit Non standard Poly, 15, BGJS 15, BKS 16,KS 17] unbounded Ours Inner 2maps (SXDH) poly Product [ABDP 15, ALS 15, ABDP 16] Inner 1maps (DDH) 1 Product
Concurrent works Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ any circuit Non standard Poly, 15, BGJS 15, BKS 16,KS 17] unbounded Ours Inner 2maps (SXDH) poly Product [ABDP 15, ALS 15, ABDP 16] Inner 1maps (DDH) 1 Product [LL 16] Inner 2maps 2 Product (SXDH & 3DH)
Our construction Single-input Inner Product FE Multi-input Inner Product FE Generic, naive 1 [Agrawal, Libert, Stehlé] single input FE 2
Multi-input Functional Encryption Naive Attempt Setup msk 1 , … , msk n KeyGen 𝑜𝑛 for: 𝑧 = 𝑧 1 , … , 𝑧 𝑜 ∈ ℤ 𝑞 Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave Enc(msk n , 𝑦 n )
Multi-input Functional Encryption Naive Attempt Setup msk 1 , … , msk n KeyGen 𝑜𝑛 for: 𝑧 = 𝑧 1 , … , 𝑧 𝑜 ∈ ℤ 𝑞 Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave 𝑦 1 , 𝑧 1 , … , 𝑦 𝑜 , 𝑧 𝑜 Enc(msk n , 𝑦 n )
Multi-input Functional Encryption Naive Attempt Setup msk 1 , … , msk n KeyGen 𝑜𝑛 for: 𝑧 = 𝑧 1 , … , 𝑧 𝑜 ∈ ℤ 𝑞 Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave 𝑦 1 , 𝑧 1 , … , 𝑦 𝑜 , 𝑧 𝑜 Enc(msk n , 𝑦 n ) 𝑦 𝑗 , 𝑧 𝑗 𝑗
Multi-input Functional Encryption Naive Attempt Setup msk 1 , … , msk n KeyGen 𝑜𝑛 for: 𝑧 = 𝑧 1 , … , 𝑧 𝑜 ∈ ℤ 𝑞 Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave 𝑦 1 , 𝑧 1 , … , 𝑦 𝑜 , 𝑧 𝑜 Enc(msk n , 𝑦 n ) 𝑦 𝑗 , 𝑧 𝑗 𝑗
Multi-input Functional Encryption Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave Enc( ∀𝑗: sk i , 𝑦 𝑗 , 𝑧 𝑗 ) Enc(msk n , 𝑦 n )
Multi-input Functional Encryption Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 Enc(msk 1 , 𝑦 1 ) Bob … Dave Enc( ∀𝑗: sk i , 𝑦 𝑗 , 𝑧 𝑗 ) Enc(msk n , 𝑦 n ) Enc(∑ sk i , ∑ 𝑦 𝑗 , 𝑧 𝑗 )
Multi-input Functional Encryption Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) Alice sk 𝑧 = sk 𝑧 1 , … , sk 𝑧 𝑜 , ∑ sk 𝑗 Enc(msk 1 , 𝑦 1 ) Bob … Dave Enc( ∀𝑗: sk i , 𝑦 𝑗 , 𝑧 𝑗 ) Enc(msk n , 𝑦 n ) Enc(∑ sk i , ∑ 𝑦 𝑗 , 𝑧 𝑗 ) ∑ 𝑦 𝑗 , 𝑧 𝑗
Multi-input Functional Encryption 1 of order 𝑞 Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 ← 𝑆 ℤ 𝑞 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) 𝑠 ← 𝑆 ℤ 𝑞 Alice sk 𝑧 = sk (𝑧 1 ,𝑠) , … , sk (𝑧 𝑜 ,𝑠) , ∑ sk 𝑗 𝑦 1 , Enc(msk 1 , ( sk 1 )) in 1 Bob … Dave 𝑦 𝑗 ,𝑧 𝑗 ⋅ 1 sk 𝑗 𝑠 1 𝑦 n , ∀𝑗: Enc(msk n , ( sk 𝑜 )) in 1
Multi-input Functional Encryption 1 of order 𝑞 Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 ← 𝑆 ℤ 𝑞 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) 𝑠 ← 𝑆 ℤ 𝑞 Alice sk 𝑧 = sk (𝑧 1 ,𝑠) , … , sk (𝑧 𝑜 ,𝑠) , ∑ sk 𝑗 𝑦 1 , Enc(msk 1 , ( sk 1 )) in 1 Contain ( 𝑧 𝑗 , 𝑠) in ℤ 𝑞 Bob … Dave 𝑦 𝑗 ,𝑧 𝑗 ⋅ 1 sk 𝑗 𝑠 1 𝑦 n , ∀𝑗: Enc(msk n , ( sk 𝑜 )) in 1
Multi-input Functional Encryption 𝑓: 1 × 2 → 𝑈 Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 ← 𝑆 ℤ 𝑞 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) 𝑠 ← 𝑆 ℤ 𝑞 Alice sk (𝑧1,𝑠) , … , g 2 sk (𝑧𝑜,𝑠) , ∑ sk 𝑧 = g 2 sk 𝑗 𝑦 1 , Enc(msk 1 , ( sk 1 )) in 1 Bob … Dave 𝑦 𝑗 ,𝑧 𝑗 ⋅ 𝑈 sk 𝑗 𝑠 𝑈 𝑦 n , ∀𝑗: Enc(msk n , ( sk 𝑜 )) in 1
Multi-input Functional Encryption 𝑓: 1 × 2 → 𝑈 Setup msk 1 , … , msk n KeyGen sk 1 , … , sk 𝑜 ← 𝑆 ℤ 𝑞 for: 𝑧 = ( 𝑧 1 , … , 𝑧 𝑜 ) 𝑠 ← 𝑆 ℤ 𝑞 Alice sk (𝑧1,𝑠) , … , g 2 sk (𝑧𝑜,𝑠) , ∑ sk 𝑧 = g 2 sk 𝑗 𝑦 1 , Enc(msk 1 , ( sk 1 )) in 1 Bob … Dave 𝑦 𝑗 ,𝑧 𝑗 ⋅ 𝑈 sk 𝑗 𝑠 𝑈 𝑦 n , ∀𝑗: Enc(msk n , ( sk 𝑜 )) in 1 ∑ 𝑦 𝑗 , 𝑧 𝑗 ∑ sk 𝑗 𝑠 𝑈 ⋅ 𝑈
Recommend
More recommend