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 from Pairings Michel Abdalla, CNRS and ENS - - PowerPoint PPT Presentation
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
Michel Abdalla, CNRS and ENS Romain Gay, ENS Mariana Raykova, Yale University Hoeteck Wee, CNRS and ENS
Alice
m [Boneh, Sahai, Waters 11]
Alice
m
Bob f(m)
[Boneh, Sahai, Waters 11]
Alice
m
Bob Carol f(m) g(m)
[Boneh, Sahai, Waters 11]
Alice
m1
Bob Carol f(m1, m2) g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup pk msk KeyGen skf skg f(m1, m2)
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup pk msk KeyGen skf skg f(m1, m2)
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup pk msk KeyGen skf skg f(m1, m2) ∀m, m′: f m, m2 , f m1, m′
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup pk msk KeyGen skf skg f(m1, m2) ∀m, m′: f m, m2 , f m1, m′ ∀m, m′: g m, m2 , g m1, m′
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f(m1, m2)
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f(m1, m2)
m′1 m′2
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f(m1, m2)
m′1 m′2
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f m1, m2 , f(m1, m′2)
m′1 m′2
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f m1, m2 , f m1, m′2 , f(m′1, m2)
m′1 m′2
Alice
m1
Bob Carol g(m1, m2)
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f m1, m2 , f m1, m′2 , f m′1, m2 , f(m′1, m′2)
m′1 m′2
Alice
m1
Bob Carol
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
m2
Setup msk KeyGen skf skg f m1, m2 , f m1, m′2 , f m′1, m2 , f(m′1, m′2)
m′1 m′2
g m1, m2 , g m1, m′2 , g m′1, m2 , g(m′1, m′2)
Alice
m1
1
Bob Carol
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
mn
1
Setup msk KeyGen skf skg Qn values
m1
Q
mn
Q
Qn values
… … …
Alice
m1
1
Bob Carol
[Goldwasser, Gordon, Goyal, Jain, Katz, Liu, Sahai, Shi, Zhou 14]
Dave
mn
1
Setup msk KeyGen skf skg Qn values
m1
Q
mn
Q
Qn values
… … …
Collusion
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded
Standard-based FE for restricted class of functions?
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly 𝑡𝑙𝑧 for 𝑧 ∈ ℤ𝑞
𝑜𝑛
…
∀𝑗: 𝑦i∈ ℤ𝑞
𝑛
𝑦1, … , 𝑦𝑜 , 𝑧 𝑦1 𝑦n
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1 [LL 16] Inner Product 2maps (SXDH & 3DH) 2
Single-input Inner Product FE Multi-input Inner Product FE
1
Generic, naive
2
[Agrawal, Libert, Stehlé] single input FE
Bob Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn …
Naive Attempt
Alice for: 𝑧 = 𝑧1, … , 𝑧𝑜 ∈ ℤ𝑞
𝑜𝑛
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
Bob Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn …
Naive Attempt
𝑦1, 𝑧1 , … , 𝑦𝑜, 𝑧𝑜 Alice for: 𝑧 = 𝑧1, … , 𝑧𝑜 ∈ ℤ𝑞
𝑜𝑛
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
Bob Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn …
Naive Attempt
𝑦1, 𝑧1 , … , 𝑦𝑜, 𝑧𝑜
𝑗
𝑦𝑗, 𝑧𝑗 Alice for: 𝑧 = 𝑧1, … , 𝑧𝑜 ∈ ℤ𝑞
𝑜𝑛
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
Bob Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn …
Naive Attempt
𝑦1, 𝑧1 , … , 𝑦𝑜, 𝑧𝑜
𝑗
𝑦𝑗, 𝑧𝑗 Alice for: 𝑧 = 𝑧1, … , 𝑧𝑜 ∈ ℤ𝑞
𝑜𝑛
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
Alice Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn … Enc( ski, 𝑦𝑗, 𝑧𝑗 ) sk1, … , sk𝑜 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
∀𝑗: Bob
Alice Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn … Enc( ski, 𝑦𝑗, 𝑧𝑗 ) Enc(∑ ski, ∑ 𝑦𝑗, 𝑧𝑗 ) sk1, … , sk𝑜 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = sk𝑧1, … , sk𝑧𝑜
∀𝑗: Bob
Alice Dave Setup KeyGen Enc(msk1, 𝑦1) Enc(mskn, 𝑦n) msk1, … , mskn … Enc( ski, 𝑦𝑗, 𝑧𝑗 ) Enc(∑ ski, ∑ 𝑦𝑗, 𝑧𝑗 ) ∑ 𝑦𝑗, 𝑧𝑗 sk1, … , sk𝑜 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = sk𝑧1, … , sk𝑧𝑜 , ∑ sk𝑗
∀𝑗: Bob
Alice Dave Setup KeyGen Enc(msk1, ( 𝑦1, sk1)) Enc(mskn, ( 𝑦n, sk𝑜)) msk1, … , mskn … sk1, … , sk𝑜 ←𝑆 ℤ𝑞 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = sk(𝑧1,𝑠), … , sk(𝑧𝑜,𝑠) , ∑ sk𝑗
∀𝑗: 1of order 𝑞 𝑠 ←𝑆 ℤ𝑞
1
𝑦𝑗,𝑧𝑗 ⋅ 1 sk𝑗𝑠
in 1 in 1 Bob
Alice Dave Setup KeyGen Enc(msk1, ( 𝑦1, sk1)) Enc(mskn, ( 𝑦n, sk𝑜)) msk1, … , mskn … sk1, … , sk𝑜 ←𝑆 ℤ𝑞 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = sk(𝑧1,𝑠), … , sk(𝑧𝑜,𝑠) , ∑ sk𝑗
∀𝑗: 1of order 𝑞 𝑠 ←𝑆 ℤ𝑞
1
𝑦𝑗,𝑧𝑗 ⋅ 1 sk𝑗𝑠
in 1 in 1 Bob Contain ( 𝑧𝑗, 𝑠) in ℤ𝑞
Alice Dave Setup KeyGen Enc(msk1, ( 𝑦1, sk1)) Enc(mskn, ( 𝑦n, sk𝑜)) msk1, … , mskn … sk1, … , sk𝑜 ←𝑆 ℤ𝑞 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = g2
sk(𝑧1,𝑠), … , g2 sk(𝑧𝑜,𝑠), ∑
sk𝑗
∀𝑗: 𝑠 ←𝑆 ℤ𝑞
𝑈
𝑦𝑗,𝑧𝑗 ⋅ 𝑈 sk𝑗𝑠
in 1 in 1 Bob 𝑓: 1 × 2 → 𝑈
Alice Dave Setup KeyGen Enc(msk1, ( 𝑦1, sk1)) Enc(mskn, ( 𝑦n, sk𝑜)) msk1, … , mskn … sk1, … , sk𝑜 ←𝑆 ℤ𝑞 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = g2
sk(𝑧1,𝑠), … , g2 sk(𝑧𝑜,𝑠), ∑
sk𝑗
∀𝑗: 𝑠 ←𝑆 ℤ𝑞
𝑈
𝑦𝑗,𝑧𝑗 ⋅ 𝑈 sk𝑗𝑠
in 1 in 1 Bob 𝑓: 1 × 2 → 𝑈 ∑ 𝑦𝑗, 𝑧𝑗 𝑈 ⋅ 𝑈 ∑ sk𝑗𝑠
Alice Dave Setup KeyGen Enc(msk1, ( 𝑦1, sk1)) Enc(mskn, ( 𝑦n, sk𝑜)) msk1, … , mskn … sk1, … , sk𝑜 ←𝑆 ℤ𝑞 for: 𝑧 = ( 𝑧1, … , 𝑧𝑜)
sk𝑧 = g2
sk(𝑧1,𝑠), … , g2 sk(𝑧𝑜,𝑠), ∑
sk𝑗
∀𝑗: 𝑠 ←𝑆 ℤ𝑞
𝑈
𝑦𝑗,𝑧𝑗 ⋅ 𝑈 sk𝑗𝑠
in 1 in 1 Bob 𝑓: 1 × 2 → 𝑈 ∑ 𝑦𝑗, 𝑧𝑗 𝑈 ⋅ 𝑈 ∑ sk𝑗𝑠 ∑ 𝑦𝑗, 𝑧𝑗
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1 [LL 16] Inner Product 2maps (SXDH & 3DH) 2
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1 [LL 16] Inner Product 2maps (SXDH & 3DH) 2
Remove the use
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1 [LL 16] Inner Product 2maps (SXDH & 3DH) 2
Remove the use
Larger classes of functions from standard assumptions?
Construction: Functions: Assumption: # slots: [BLRSZZ 14, GGGJKLSSZ 14, AJ 15, BGJS 15, BKS 16,KS 17] any circuit Non standard Poly, unbounded Ours Inner Product 2maps (SXDH) poly [ABDP 15, ALS 15, ABDP 16] Inner Product 1maps (DDH) 1 [LL 16] Inner Product 2maps (SXDH & 3DH) 2
Remove the use
Larger classes of functions from standard assumptions?