Program Analysis for Quantified Information Flow
The 5th CREST Open Workshop Chunyan Mu
joint work with David Clark CREST, King’s College London
March 31, 2010
1 / 50
Program Analysis for Quantified Information Flow The 5th CREST Open - - PowerPoint PPT Presentation
Program Analysis for Quantified Information Flow The 5th CREST Open Workshop Chunyan Mu joint work with David Clark CREST, Kings College London March 31, 2010 1 / 50 The Problem Information Theory and Measures Related work Automating
1 / 50
2 / 50
2 / 50
3 / 50
4 / 50
5 / 50
6 / 50
...
7 / 50
8 / 50
9 / 50
10 / 50
11 / 50
12 / 50
14 / 50
15 / 50
16 / 50
17 / 50
18 / 50
19 / 50
20 / 50
◮ concrte lattice ◮ abstract lattice ◮ Galois connection
◮ soundness and correctness of the abstraction
21 / 50
22 / 50
23 / 50
24 / 50
n
n
25 / 50
27 / 50
28 / 50
29 / 50
30 / 50
ai
a
i=1 pi.ai.Ei
τ
1
τ
1E2
τ
2
τ
2
a
1
a
2
a
1E ′ 2)(a = τ)
τ
31 / 50
32 / 50
33 / 50
34 / 50
E
1 3 ?h1 1 2 !l1 1 2 ?h3
0.3!l3 0.7!l4
1 2 ?h4
!l5
1 2 !l2 2 3 ?h2 1 3 !l1 1 3 !l2
!h1
1 3 !l3 1 2 !h2 1 2 !h3
35 / 50
T1 T (1)
1 1 3 ?h1
2 !l1 1 2 !l2
T (2)
1 2 3 ?h2 1 3 !l1
!h1
1 3 !l2 1 3 !l3 1 2 !h2 1 2 !h3
we obtain two subtrees due to the two atomic actions ?h1 and ?h2 in ?H0 as: T (1)
1
= ( 1 2 !l1.⊥ + 1 2 !l2.⊥) → 1 3 T (2)
1
= ( 1 3 !l1.!h1.⊥ + 1 3 !l2.⊥ + 1 6 !l3.!h2.⊥ + 1 6 !l3.!h3.⊥) → 2 3 36 / 50
T2 T (1)
2 1 2 ?h3 1 3 ?h1 1 2 !l1
0.3!l3 0.7!l4
1 2 !l2 2 3 ?h2 1 3 !l1
!h1
1 3 !l2 1 3 !l3 1 2 !h2 1 2 !h3
T (2)
2 1 2 ?h4 1 3 ?h1 1 2 !l1
!l5
1 2 !l2 2 3 ?h2 1 3 !l1
!h1
1 3 !l2 1 3 !l3 1 2 !h2 1 2 !h3
37 / 50
2
2
38 / 50
O(T (1)
1
) = ( 1 2 !l1 + 1 2 !l2) → 1 3 O(T (2)
1
) = ( 1 3 !l1 + 1 3 !l2 + 1 3 !l3) → 2 3
O(T (1)
2
) = ( 0.3 6 ?h1.!l1.!l3.⊥ + 0.7 6 ?h1.!l1.!l4.⊥ + 1 6 ?h1.!l2.⊥ + 2 9 ?h2.!l1.⊥ + 2 9 ?h2.!l2.⊥ + 2 9 ?h2.!l3.⊥) → 1 2 O(T (2)
2
) = ( 1 6 ?h1.!l1.!l5.⊥ + 1 6 ?h1.!l2.⊥ + 2 9 ?h2.!l1.⊥ + 2 9 ?h2.!l2.⊥ + 2 9 ?h2.!l3.⊥) → 1 2 39 / 50
40 / 50
41 / 50
◮ if P(1)
i
i
◮ otherwise di =
i
i
42 / 50
43 / 50
T 0.2?h1 0.4l1 l3 0.5?h5 0.7l5 l6 0.3l5 l7 0.5?h6 0.5l1 0.5l6 0.5l7 0.6l2 l4 0.2?h2 0.5l1 l3 0.5l1 0.5l4 0.5l3 0.1?h3 l1 l3 0.3?h4 0.3l1 l3 0.7l2 l4
44 / 50
T1 T (1)
1
0.2?h1 0.4l1
0.6l2 l4 T (2)
1
0.2?h2 0.5l1 l3 0.5l1 0.5l4 0.5l3 T (3)
1
0.1?h3 l1 l3 T (4)
1
0.3?h4 0.3l1 l3 0.7l2 l4
45 / 50
the observations: O(P(1) ) = 0.4 · l1.l3.⊥ + 0.6 · l2.l4.⊥ O(P(2) ) = 0.5 · l1.l3.⊥ + 0.25 · l2.l4.⊥ + 0.25 · l2.l3.⊥ O(P(3) ) = l1.l3.⊥ O(P(4) ) = 0.3 · l1.l3.⊥ + 0.7 · l2.l4.⊥
the metric: d1 = v u u tH(
4
X
i=1
w(i)
0 P(i) 0 ) − 4
X
i=1
w(i)
0 H(P(i) 0 )
= H(0.47, 0.43, 0.1) − (0.2H(0.4, 0.6) + 0.4H(0.5, 0.25, 0.25) + 0.1 ∗ 0 + 0.3H(0.3, 0.7)) = 0.557 46 / 50
T2 T (1)
1
?h11, 0.5 0.2?h1 0.4l1
0.7l5 l6 0.3l5 l7 0.6l2 l4 0.2?h2 0.5l1 l3 0.5l1 0.5l4 0.5l3 0.1?h3 l1 l3 0.3?h4 0.3l1 l3 0.7l2 l4 T (2)
1
?h12, 0.5 0.2?h1 0.4l1
0.5l1 0.5l6 0.5l7 0.6l2 l4 0.2?h2 0.5l1 l3 0.5l1 0.5l4 0.5l3 0.1?h3 l1 l3 0.3?h4 0.3l1 l3 0.7l2 l4
47 / 50
O(P(1)
1
) = 0.004?h1.l1.l3.l5.l6.⊥ + 0.04?h1.l1.l3.l5.l7.⊥ 0.12?h1.l2.l4.⊥ + 0.2?h2.l1.l3.⊥ + 0.1?h2.l2.l4.⊥ + 0.1?h2.l2.l3.⊥ 0.1?h3.l1.l3.⊥ + 0.09?h4.l1.l3 + 0.21?h4.l2.l4 O(P(2)
1
) = 0.056?h1.l1.l3.l5.l6.⊥ + 0.024?h1.l1.l3.l5.l7.⊥ 0.12?h1.l2.l4.⊥ + 0.2?h2.l1.l3.⊥ + 0.1?h2.l2.l4.⊥ + 0.1?h2.l2.l3.⊥ 0.1?h3.l1.l3.⊥ + 0.09?h4.l1.l3 + 0.21?h4.l2.l4
the metric: d2 = v u u tH(
2
X
i=1
w(i)
1 P(i) 1 ) − 2
X
i=1
w(i)
1 H(P(i) 1 )
= (H(0.048, 0.032, 0.12, 0.2, 0.1, 0.1, 0.1, 0.09, 0.21) − 0.5H(0.056, 0.024, 0.12, 0.2, 0.1, 0.1, 0.1, 0.09, 0.21) − 0.5H(0.04, 0.04, 0.12, 0.2, 0.1, 0.1, 0.1, 0.09, 0.21))
1 2
. = 0.049
The leakage upper bound: L ≤ (d1 + d2)2 . = 0.36 48 / 50
49 / 50
50 / 50