PRIVACY-PRESERVING PROCESSING OF REGULAR LANGUAGES
Peeter Laud
Joint work with Jan Willemson
17.05.2014
UaESMC
PRIVACY-PRESERVING PROCESSING OF REGULAR LANGUAGES Peeter Laud - - PowerPoint PPT Presentation
UaESMC PRIVACY-PRESERVING PROCESSING OF REGULAR LANGUAGES Peeter Laud Joint work with Jan Willemson 17.05.2014 Deterministic Finite Automata a b q 1 q 2 q 3 a a b b b b b a q 4 q 5 q 6 a a DFA A = ( Q , , q 0 ,, F ) Q
Joint work with Jan Willemson
UaESMC
17.05.2014
2
17.05.2014
2
17.05.2014
3
17.05.2014
4
17.05.2014
5
17.05.2014
5
17.05.2014
6
17.05.2014
6
17.05.2014
7
m−1
j=0
m
k=1
m
k=1
i=0 ⟦ci⟧ ⋅ ⟦ji⟧.
17.05.2014
8
1 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
2 for k = 2 to m − 1 do ⟦jk⟧ ← ⟦j⟧ ⋅ ⟦jk−1⟧ 3 return ∑m−1 k=0 ⟦ck⟧⟦jk⟧
17.05.2014
9
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rk⟧ ← ⟦r⟧ ⋅ ⟦rk−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 for k = 2 to m − 1 do ⟦jk⟧ ← ⟦j⟧ ⋅ ⟦jk−1⟧ 5 return ∑m−1 k=0 ⟦ck⟧⟦jk⟧
17.05.2014
9
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rk⟧ ← ⟦r⟧ ⋅ ⟦rk−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 ⟦z⟧ ← ⟦j⟧ ⋅ ⟦r−1⟧ 5 for k = 2 to m − 1 do ⟦jk⟧ = ⟦zk⟧ ⋅ ⟦rk⟧ 6 return ∑m−1 k=0 ⟦ck⟧⟦jk⟧
17.05.2014
9
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rk⟧ ← ⟦r⟧ ⋅ ⟦rk−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 5 for k = 2 to m − 1 do ⟦jk⟧ = zk ⋅ ⟦rk⟧ 6 return ∑m−1 k=0 ⟦ck⟧⟦jk⟧
17.05.2014
9
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rk⟧ ← ⟦r⟧ ⋅ ⟦rk−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 5 return ∑m−1 k=0 zk⟦ck⟧⟦rk⟧
17.05.2014
9
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rk⟧ ← ⟦r⟧ ⋅ ⟦rk−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧ 4 foreach k ∈ {0,...,m − 1} do ⟦yk⟧ ← ⟦ck⟧ ⋅ ⟦rk⟧
5 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 6 return ∑m−1 k=0 zk⟦yk⟧
17.05.2014
9
1 2 ⋅ √m multiplications
17.05.2014
10
17.05.2014
11
17.05.2014
11
$
$
$
17.05.2014
11
$
$
$
17.05.2014
11
$
$
$
17.05.2014
11
17.05.2014
11
17.05.2014
11
17.05.2014
11
17.05.2014
11
17.05.2014
11
$
$
$
17.05.2014
11
$
$
$
17.05.2014
11
$
$
$
17.05.2014
11
17.05.2014
12
i
17.05.2014
12
Reshare
17.05.2014
13
Reshare
17.05.2014
13
$
j=1 λ{i1,...,it} j
f
17.05.2014
14
f
f ′
1,
n
f +f ′
1,
n
17.05.2014
15
f
f ′
1,
n
17.05.2014
16
f
f ′
1,
n
f ⋅f ′
1,
n
17.05.2014
16
f
f ′
1,
n
f ⋅f ′
1,
n
17.05.2014
16
f
f ′
1,
n
f ⋅f ′
1,
n
17.05.2014
16
f
f ′
1,
n
f ⋅f ′
1,
n
17.05.2014
16
fj
j f ′
j
j1,
jn
j
j
17.05.2014
17
fj
j f ′
j
j1,
jn
j
j ∑j fj⋅f ′
j
j
j1,
j
jn
17.05.2014
17
fj
j f ′
j
j1,
jn
j
j ∑j fj⋅f ′
j
j
j1,
j
jn
17.05.2014
17
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rj⟧ ← ⟦r⟧ ⋅ ⟦rj−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧ 4 foreach k ∈ {0,...,m − 1} do ⟦yk⟧ ← ⟦ck⟧ ⋅ ⟦rk⟧
5 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 6 return ∑m−1 k=0 zk⟦yk⟧
17.05.2014
18
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rj⟧ ← ⟦r⟧ ⋅ ⟦rj−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 5 foreach k ∈ {0,...,m − 1} do ⟦yk⟧ ← ⟦ck⟧ ⋅ ⟦rk⟧ 6 return ∑m−1 k=0 zk⟦yk⟧
17.05.2014
18
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rj⟧ ← ⟦r⟧ ⋅ ⟦rj−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 5 return ∑m−1 k=0 zk⟦ck⟧ ⋅ ⟦rk⟧
17.05.2014
18
1 (⟦r⟧,⟦r−1⟧) $
2 for k = 2 to m − 1 do ⟦rj⟧ ← ⟦r⟧ ⋅ ⟦rj−1⟧
3 foreach k ∈ {0,...,m − 1} do ⟦ck⟧ ← ∑m l=1 λk,l⟦vl⟧
4 z ← declassify(⟦j⟧ ⋅ ⟦r−1⟧) 5 foreach k ∈ {0,...,m − 1} do ⟦zk⟧ ← zk⟦ck⟧ 6 return ∑m−1 k=0 ⟦zk⟧ ⋅ ⟦rk⟧
17.05.2014
18
17.05.2014
19
17.05.2014
20
17.05.2014
20
17.05.2014
20
17.05.2014
21
17.05.2014
21
17.05.2014
21
17.05.2014
21
17.05.2014
21
17.05.2014
21
17.05.2014
21
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
22
17.05.2014
23
17.05.2014
24
17.05.2014
25
1
2
3
17.05.2014
25
1
2
3
17.05.2014
25
1
2
3
17.05.2014
25
1
2
3
1; σ2 ∶= σ′ 2; σ3 ∶= σ′ 3 ○ τ
i is generated by those CPj1 and CPj2 that are supposed to
17.05.2014
25
17.05.2014
26
1
2
3
17.05.2014
26
1
2
3
3 −1
2 −1
1 −1
17.05.2014
26
17.05.2014
27
17.05.2014
28
n
i=1
17.05.2014
29
17.05.2014
30
17.05.2014
30
17.05.2014
30
1 1 2 3 3 1
17.05.2014
31
1 1 2 3 3 1
1 1 1 3 3 3
17.05.2014
31
1 1 2 3 3 1
1 1 1 3 3 3
3 2 3 1 1 2
17.05.2014
31
17.05.2014
32
17.05.2014
32
i ∶= v1 i ≠ v1 i−1
17.05.2014
32
i ∶= v1 i ≠ v1 i−1
17.05.2014
32
i ∶= v1 i ≠ v1 i−1
17.05.2014
32
j∈f −1(i)
17.05.2014
33
1 2 3 4 5
17.05.2014
34
1 2 3 4 5
1 2 3 4 5
17.05.2014
34
17.05.2014
35
17.05.2014
36
17.05.2014
36
i ∶= v2 i /
i−1
17.05.2014
36
i ∶= i ⋅ v3 i
17.05.2014
36
17.05.2014
36
i ∶= v3 i ⋅ (v4 i+1 − v4 i )
17.05.2014
36
17.05.2014
36
17.05.2014
36
17.05.2014
36
17.05.2014
37
17.05.2014
37
i ∶= v1 i ≤ ⌈n/2⌉
17.05.2014
37
i ∶= v1 i ≤ ⌈n/2⌉
17.05.2014
37
i ∶= v1 i ≤ ⌈n/2⌉
17.05.2014
37
i ∶= v1 i ≤ ⌈n/2⌉
i ∶= v1 i > v1 i+1
17.05.2014
37
i ∶= v1 i ≤ ⌈n/2⌉
i ∶= v1 i > v1 i+1
2⌉) ⋅ ⟦v3⟧
17.05.2014
37
17.05.2014
38
1,ρ′ 2,ρ′ 3, such that
1 ○ ρ′ 2 ○ ρ′ 3 = 1
1
2
3 ○ ρ3 ○ τ2 ○ τ3
17.05.2014
38
17.05.2014
39
m−n+i = 1 + ∑i−1 j=1⌊m j ⌋
17.05.2014
39
17.05.2014
39
i =
i = 0
i ,
i /
i−1 = 0
i − v6 i−1 − v5 i−1 + 1,
i−1 /
17.05.2014
39
17.05.2014
39
17.05.2014
39
17.05.2014
39
17.05.2014
39
17.05.2014
39
17.05.2014
40