Pattern Matching on Encrypted Streams
Nicolas Desmoulins Pierre-Alain Fouque Cristina Onete
Orange Labs Universit´ e de Rennes Universit´ e de Limoges
Olivier Sanders
Orange Labs
Asiacrypt 2018, December 03, 2018
Pattern Matching on Encrypted Streams Nicolas Desmoulins - - PowerPoint PPT Presentation
Pattern Matching on Encrypted Streams Nicolas Desmoulins Pierre-Alain Fouque Cristina Onete Orange Labs Universit e de Rennes Universit e de Limoges Olivier Sanders Orange Labs Asiacrypt 2018, December 03, 2018 Agenda Context
Nicolas Desmoulins Pierre-Alain Fouque Cristina Onete
Orange Labs Universit´ e de Rennes Universit´ e de Limoges
Olivier Sanders
Orange Labs
Asiacrypt 2018, December 03, 2018
Asiacrypt – p 2
Asiacrypt – p 3
More and more encrypted data
Asiacrypt – p 4
Standard encryption protocols designed to prevent any processing
Asiacrypt – p 4
Current solutions imply decryption by a gateway
Asiacrypt – p 4
− fully homomorphic encryption: high computational cost − multi-party computation: requires interaction with the gateway/ high
communication cost
Asiacrypt – p 5
− alert tcp ( msg:”MALWARE-BACKDOOR - Dagger 1.4.0”;
content:”2| 00 00 00 06 00 00 00 | Drives | 24 00 |”,depth 16;)
− alert tcp ( msg:”MALWARE-BACKDOOR QAZ Worm Client Login
access”; content:”qazwsx.hsq”;)
− searches on genomic data − filtering content − ...
Asiacrypt – p 6
− documents must be associated with keywords
⇒ how to select relevant keywords in our context?
− not designed for on the fly encryption
⇒ unsuitable for data streams
specific keywords W
− given tdw, the gateway can check whether C = EK(W ) − the gateway learns no information beyond the result of this query Asiacrypt – p 7
Current solutions follow the sliding window method: h
t i l e keywords host hostile ... $ EK C0
Asiacrypt – p 8
Current solutions follow the sliding window method: h
t i l e keywords host hostile ... $ EK C0 C1
Asiacrypt – p 8
Current solutions follow the sliding window method: h
t i l e keywords host hostile ... $ EK C0 C1 C2
Asiacrypt – p 8
Current solutions follow the sliding window method: h
t i l e keywords host hostile ... $ EK C0 C1 C2 C3
Asiacrypt – p 8
Current solutions follow the sliding window method: h
t i l e keywords host hostile ... $ EK C0 C1 C2 C3 C4
Asiacrypt – p 8
Current solutions follow the sliding window method: h
t i l e keywords host hostile host tile $ EK C0 C1 C2 C3 C4
privacy: thoussands of (potentially long) keywords to split
Asiacrypt – p 8
attributes A1,. . .,An
C can be decrypted ⇔ P(A1, . . . , An) = 1
P(A1, . . . , An) = 1 ⇔ Ai = Yi, ∀i ∈ I ⊂ [1, n]
Asiacrypt – p 9
Each character is considered as an attribute plaintext $ h
t i l e Phost,0 h
t ∗ ∗ ∗ ∗ Phost,1 ∗ h
t ∗ ∗ ∗ Phost,2 ∗ ∗ h
t ∗ ∗ Phost,3 ∗ ∗ ∗ h
t ∗ Phost,4 ∗ ∗ ∗ ∗ h
t keyword: host
Asiacrypt – p 10
We want an encryption scheme such that:
⇒ ciphertexts should be compatible with keywords of any length
⇒ not 1 token by possible offset
Asiacrypt – p 11
Asiacrypt – p 12
We introduce a new primitive, Searchable Encryption with Shiftable Trapdoors
W = w1 . . . wℓ returns J = {j : bj+1 . . . bj+ℓ = w1 . . . wℓ}
unless issued trapdoors enable trivial distinctions.
Asiacrypt – p 13
We construct a scheme based on asymetric bilinear groups
with a map e such that ∀(g, g) ∈ G1 × G2 and a, b ∈ Zp e(g a, g b) = e(g, g)a·b e(g, g) = 1GT = ⇒ g = 1G1 or g = 1G2
G2 exists
Asiacrypt – p 14
Let us consider bitstrings B = b1 . . . bn
(g, g z, . . . , g zn−1) of Gn
1
(C1, . . . Cn) ← (g a, (g z)a, . . . , (g zn)a) for a
$
← Zp
(C ′
1, . . . C ′ n) ← ([(g z)a]αb1 , . . . , [(g zn)a]αbn )
Asiacrypt – p 15
$
← Zp
g vi in G2
g V with V = ℓ
i=1 vi · αwi · zi−1
g v1, . . . , g vℓ, g V }
Asiacrypt – p 16
B 1 1 1 W 1 1 C ′
1
C ′
2
C ′
3
C ′
4
C ′
5
= g aα0 = g aα1z = g aα1z2 = g aα0z3 = g aα1z4 e(C ′
1,
g v1)e(C ′
2,
g v2)e(C ′
3,
g v3) C3 = g az2 C2 = g az C1 = g a e(C1, g V ) = e(g, g)a(v1α0+v2α1z+v3α1z2) = e(g, g)a(v1α1+v2α1z+v3α0z2) Consecutive C ′
i can be aggregated to generate e(g,
g)aP(z,α0,α1)
Asiacrypt – p 17
B 1 1 1 W 1 1 C ′
1
C ′
2
C ′
3
C ′
4
C ′
5
= g aα0 = g aα1z = g aα1z2 = g aα0z3 = g aα1z4 e(C ′
2,
g v1)e(C ′
3,
g v2)e(C ′
4,
g v3) C3 = g az2 C2 = g az C1 = g a e(C2, g V ) = e(g, g)a(v1α1z+v2α1z2+v3α0z3) = e(g, g)a(v1α1z+v2α1z2+v3α0z3) B contains W ⇔ P = z∗V
Asiacrypt – p 17
B 1 1 1 W 1 1 C ′
1
C ′
2
C ′
3
C ′
4
C ′
5
= g aα0 = g aα1z = g aα1z2 = g aα0z3 = g aα1z4 e(C ′
3,
g v1)e(C ′
4,
g v2)e(C ′
5,
g v3) C3 = g az2 C2 = g az C1 = g a e(C3, g V ) = e(g, g)a(v1α1z2+v2α0z3+v3α1z4) = e(g, g)a(v1α1z2+v2α1z3+v3α0z4) Keywords of any size can be tested
Asiacrypt – p 17
− Let W = w1 . . . wk−1∗wk+1 . . . wℓ − The associated coefficient vk in tdW is set to 0
k − th element of a substring no longer taken into account
special encodings e.g. ǫ([0 − 9]) = β1 ∈ Zp, ǫ([a − z]) = β2, . . .
Asiacrypt – p 18
Let B = b1 . . . bn and W = w1 . . . wℓ
∀j : e(C ′
j+1,
g v1) . . . e(C ′
j+ℓ,
g vℓ) = e(Cj+1, g V )
V = v1αw1 + v2αw2z . . . + vℓαwℓzℓ−1
e(C ′
j+i,
g vi) · e(C ′
j+k,
g vk) = e(C ′
j+i · C ′ j+k,
g vi)
Asiacrypt – p 19
− the final exponentiations can be merged − some steps of the Miller loop can be merged
− Divides by 2 the size of the ciphertext − Forbids constant pattern (e.g. aaaaaaaaaa) Asiacrypt – p 20
Asiacrypt – p 21
encrypted data
Asiacrypt – p 22