SLIDE 1 Anonymity Networks
Laslo Hunhold
Mathematisches Institut Universität zu Köln
27th July 2017
In the lecture ‘Information Theory and Statistical Physics’ by Prof. Dr. Johannes Berg
SLIDE 2
motivation
SLIDE 3
motivation
◮ hide initiator of a message in a computer network
SLIDE 4
motivation
◮ hide initiator of a message in a computer network ◮ safe whistleblowing under corporate and state surveillance
SLIDE 5
motivation
◮ hide initiator of a message in a computer network ◮ safe whistleblowing under corporate and state surveillance ◮ ‘deniable communication’
SLIDE 6
motivation
◮ hide initiator of a message in a computer network ◮ safe whistleblowing under corporate and state surveillance ◮ ‘deniable communication’ ◮ decentralized
SLIDE 7
idea
SLIDE 8
idea
node network participant link possible message path
SLIDE 9
idea
node network participant link possible message path
◮ all nodes have equal weight
SLIDE 10
idea
node network participant link possible message path
◮ all nodes have equal weight ◮ message unmodifiable, only receiver is known
SLIDE 11
idea
node network participant link possible message path
◮ all nodes have equal weight ◮ message unmodifiable, only receiver is known ◮ each node on path: biased coin flip: forward or deliver
SLIDE 12
idea
node network participant link possible message path
◮ all nodes have equal weight ◮ message unmodifiable, only receiver is known ◮ each node on path: biased coin flip: forward or deliver ◮ each node on path: initiator or just forwarder?
SLIDE 13
idea
node network participant link possible message path
◮ all nodes have equal weight ◮ message unmodifiable, only receiver is known ◮ each node on path: biased coin flip: forward or deliver ◮ each node on path: initiator or just forwarder?
→ message initator gets lost in the crowd
SLIDE 14
model
SLIDE 15 model
n1 n2 n3 n4 n5 n6 n7 n8
◮ N nodes n1, . . . , nN with P(ni is initiator) =: P(X = ni) =: pi
SLIDE 16 model
n1 n2 n3 n4 n5 n6 n7 n8
◮ N nodes n1, . . . , nN with P(ni is initiator) =: P(X = ni) =: pi ◮ ni probably innocent ↔ pi ≤ 1 2
SLIDE 17 model
n1 n2 n3 n4 n5 n6 n7 n8
◮ N nodes n1, . . . , nN with P(ni is initiator) =: P(X = ni) =: pi ◮ ni probably innocent ↔ pi ≤ 1 2 ◮ forwarding probability λ
SLIDE 18 model
n1 n2 n3 n4 n5 n6 n7 n8
◮ N nodes n1, . . . , nN with P(ni is initiator) =: P(X = ni) =: pi ◮ ni probably innocent ↔ pi ≤ 1 2 ◮ forwarding probability λ
if message received then flip biased coin P(heads) = λ if heads then forward to a uniformly chosen node else deliver to receiver end if end if
SLIDE 19
degree of anonymity
SLIDE 20
degree of anonymity
best case X := X : ∀i ∈ {1, . . . , N} : pi = 1
N
SLIDE 21 degree of anonymity
best case X := X : ∀i ∈ {1, . . . , N} : pi = 1
N
H := H(X) = −
N
pi · ln(pi) = ln(N − C)
SLIDE 22 degree of anonymity
best case X := X : ∀i ∈ {1, . . . , N} : pi = 1
N
H := H(X) = −
N
pi · ln(pi) = ln(N − C) worst case X := X : ∀i ∈ {1, . . . , N} \ {j} : pi = 0 ∧ pj = 1
SLIDE 23 degree of anonymity
best case X := X : ∀i ∈ {1, . . . , N} : pi = 1
N
H := H(X) = −
N
pi · ln(pi) = ln(N − C) worst case X := X : ∀i ∈ {1, . . . , N} \ {j} : pi = 0 ∧ pj = 1 H := H(X) = −
N
pi · ln(pi) = 1 · ln(1) = 0
SLIDE 24 degree of anonymity
best case X := X : ∀i ∈ {1, . . . , N} : pi = 1
N
H := H(X) = −
N
pi · ln(pi) = ln(N − C) worst case X := X : ∀i ∈ {1, . . . , N} \ {j} : pi = 0 ∧ pj = 1 H := H(X) = −
N
pi · ln(pi) = 1 · ln(1) = 0 d(X) := 1 − H − H(X) H = H(X) H ∈ [0, 1]
SLIDE 25
corruption
SLIDE 26 corruption
n1 n2 n3 n4 n5 n6 n7 n8
◮ 0 ≤ C < N corrupt nodes (incoming message passer known)
SLIDE 27 corruption
n1 n2 n3 n4 n5 n6 n7 n8
◮ 0 ≤ C < N corrupt nodes (incoming message passer known) ◮ behave normally
SLIDE 28 corruption
n1 n2 n3 n4 n5 n6 n7 n8
◮ 0 ≤ C < N corrupt nodes (incoming message passer known) ◮ behave normally ◮ wait for message to be passed to us
SLIDE 29 corruption
n1 n2 n3 n4 n5 n6 n7 n8
◮ 0 ≤ C < N corrupt nodes (incoming message passer known) ◮ behave normally ◮ wait for message to be passed to us ◮ analyze probability of passer being initiator
SLIDE 30 corruption
n1 n2 n3 n4 n5 n6 n7 n8
◮ 0 ≤ C < N corrupt nodes (incoming message passer known) ◮ behave normally ◮ wait for message to be passed to us ◮ analyze probability of passer being initiator
P(passer is initiator) > 1
2 → unmasked
SLIDE 31
analysis
events
SLIDE 32 analysis
events
nI nm nn nC 1 2 3 4
SLIDE 33 analysis
events
nI nm nn nC 1 2 3 4
let k > 0
SLIDE 34 analysis
events
nI nm nn nC 1 2 3 4
let k > 0 Hk := first corrupt node is at the kth path-position
SLIDE 35 analysis
events
nI nm nn nC 1 2 3 4
let k > 0 Hk := first corrupt node is at the kth path-position Hk+ :=
∞
Hi
SLIDE 36 analysis
events
nI nm nn nC 1 2 3 4
let k > 0 Hk := first corrupt node is at the kth path-position Hk+ :=
∞
Hi I := first corrupt node immediately postcedes the message initiator
SLIDE 37 analysis
events
nI nm nn nC 1 2 3 4
let k > 0 Hk := first corrupt node is at the kth path-position Hk+ :=
∞
Hi I := first corrupt node immediately postcedes the message initiator P(passer is initiator) = P(I|H1+)
SLIDE 38 analysis
events
nI nm nn nC 1 2 3 4
let k > 0 Hk := first corrupt node is at the kth path-position Hk+ :=
∞
Hi I := first corrupt node immediately postcedes the message initiator P(passer is initiator) = P(I|H1+) note: H1 → I, but I → H1
SLIDE 39
analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N
SLIDE 40
analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N proof:
SLIDE 41 analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N proof: P(Hk) =
N
k−1
·
N
SLIDE 42 analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N proof: P(Hk) =
N
k−1
·
N
∞
P(Hi) = . . . = C ·
N
k
(N − C) ·
N
SLIDE 43 analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N proof: P(Hk) =
N
k−1
·
N
∞
P(Hi) = . . . = C ·
N
k
(N − C) ·
N
SLIDE 44 analysis
general probability I
P(I|H1+) = N − λ(N − C − 1) N proof: P(Hk) =
N
k−1
·
N
∞
P(Hi) = . . . = C ·
N
k
(N − C) ·
N
P(I|H2+) = 1 N − C
SLIDE 45
analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+)
SLIDE 46
analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . .
SLIDE 47 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
SLIDE 48 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
SLIDE 49 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+)
SLIDE 50 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+) = . . .
SLIDE 51 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+) = . . . = N − λ(N − C − 1) N
SLIDE 52 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+) = . . . = N − λ(N − C − 1) N good node P(good node i is initiator) = 1−P(I|H1+)
N−C−1
= λ
N < 1 N ≤ 1 2
SLIDE 53 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+) = . . . = N − λ(N − C − 1) N good node P(good node i is initiator) = 1−P(I|H1+)
N−C−1
= λ
N < 1 N ≤ 1 2
⇒ all good nodes besides passer are innocent
SLIDE 54 analysis
general probability II
P(I) TP = P(H1) P(I|H1) + P(H2+) P(I|H2+) = . . . = λ · C N ·
λ N − λ · (N − C)
= P(I ∧ H1+) P(H1+)
= P(I) P(H1+) = . . . = N − λ(N − C − 1) N good node P(good node i is initiator) = 1−P(I|H1+)
N−C−1
= λ
N < 1 N ≤ 1 2
⇒ all good nodes besides passer are innocent corrupt node P(corrupt node i is initiator) = 0
SLIDE 55
analysis
passer innocence
SLIDE 56
analysis
passer innocence
passer innocent ⇔ λ > 1 2 ∧ N ≥ 1 1 −
1 2·λ
· (C + 1)
SLIDE 57
analysis
passer innocence
passer innocent ⇔ λ > 1 2 ∧ N ≥ 1 1 −
1 2·λ
· (C + 1) proof:
SLIDE 58
analysis
passer innocence
passer innocent ⇔ λ > 1 2 ∧ N ≥ 1 1 −
1 2·λ
· (C + 1) proof: 1 2 ≥ P(I|H1+)
SLIDE 59
analysis
passer innocence
passer innocent ⇔ λ > 1 2 ∧ N ≥ 1 1 −
1 2·λ
· (C + 1) proof: 1 2 ≥ P(I|H1+) = N − λ(N − C − 1) N
SLIDE 60 analysis
passer innocence
passer innocent ⇔ λ > 1 2 ∧ N ≥ 1 1 −
1 2·λ
· (C + 1) proof: 1 2 ≥ P(I|H1+) = N − λ(N − C − 1) N
2) > 0 ⇔ N ≥ 1 1 −
1 2·λ
· (C + 1)
SLIDE 61
analysis
degree of anonymity
SLIDE 62 analysis
degree of anonymity
d(X) = − C · 0 + P(I|H1+) · ln(P(I|H1+)) + (N − C − 1) · λ
N · ln
N
=
SLIDE 63 analysis
degree of anonymity
d(X) = − C · 0 + P(I|H1+) · ln(P(I|H1+)) + (N − C − 1) · λ
N · ln
N
= = . . . =
(N−λ·(N−C−1))·ln N N−λ·(N−C−1)
λ) N·ln(N−C)
SLIDE 64 analysis
degree of anonymity
d(X) = − C · 0 + P(I|H1+) · ln(P(I|H1+)) + (N − C − 1) · λ
N · ln
N
= = . . . =
(N−λ·(N−C−1))·ln N N−λ·(N−C−1)
λ) N·ln(N−C)
0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1
C N
d(X)
SLIDE 65
conclusion
SLIDE 66
conclusion
◮ blending in with the crowd works as long as it is large enough
SLIDE 67
conclusion
◮ blending in with the crowd works as long as it is large enough ◮ nothing to hide, but others to protect
SLIDE 68
conclusion
◮ blending in with the crowd works as long as it is large enough ◮ nothing to hide, but others to protect ◮ full paper on http://frign.de/