Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7.2. APPLIED PI CALCULUS 183<br />
COMM c〈x〉.P | c(x).Q −→ P | Q<br />
THEN if ψ then P else Q −→ P if ψ<br />
ELSE if ψ then P else Q −→ Q if ¬ψ<br />
Example 26 Consider the process ν a.(ν k.a〈k〉 | a(x).P ) which models the distribution<br />
<strong>of</strong> key k using private channel a. We have ν a.(ν k.a〈k〉 | a(x).P ) ≡ ν x.({k/x} |<br />
ν a.ν k.(a〈x〉 | a(x).P )). We can now model the communication using the COMM rule<br />
ν x.({k/x} | ν a.ν k.(a〈x〉 | a(x).P )) −→ ν x.({k/x} | ν a.ν k.(0 | P )) ≡ ν k.P {k/x}<br />
(where a �∈ fn(P )).<br />
The labelled semantics ( α −→) extends internal reduction by the following rules.<br />
We suppose that u is either a channel name or a variable <strong>of</strong> base type.<br />
IN c(x).P c(M)<br />
−−→ P {M/x}<br />
OUT-ATOM c〈u〉.P c〈u〉<br />
−−→ P<br />
OPEN-ATOM<br />
SCOPE<br />
PAR<br />
STRUCT<br />
A c〈u〉<br />
−−→ A ′ u �= c<br />
ν u.c〈u〉<br />
ν u.A −−−−→ A ′<br />
A α −→ A ′ u does not occur in α<br />
ν u.A α −→ ν u.A ′<br />
A α −→ A ′ bv(α) ∩ fv(B) = bn(α) ∩ fn(B) = ∅<br />
A | B α −→ A ′ | B<br />
A ≡ B B α −→ B ′ B ′ ≡ A ′<br />
A α −→ A ′<br />
Example 27 Continuing example 26, <strong>and</strong> let us consider the process ν a.(ν k.a〈k〉 |<br />
a(x).c〈sign(m, k)〉) i.e. we have added the output <strong>of</strong> a signed message using the key<br />
distributed. Since internal reduction is closed by structural equivalence <strong>and</strong> by our<br />
previous reasoning we have ν a.(ν k.a〈k〉 | a(x).c〈sign(m, k)〉) −→ ν k.c〈sign(m, k)〉.<br />
We model the output <strong>of</strong> sign(m, k) to the environment using labelled semantics:<br />
ν x.c〈x〉<br />
ν k.c〈sign(m, k)〉 −−−−→ ν k.{sign(m, k)/x}.<br />
An extended process A is said to be irreducible if there does not exist B, α<br />
such that A −→ B or A α −→ B.<br />
Remark. We will abbreviate (M1, . . . , Mn) as ˜ M <strong>and</strong> occasionally we write<br />
˜xf for (xf(1), . . . , xf(n)) where f : {1, . . . , n} → {1, . . . , m}. We abbreviate<br />
{M1/x1}| . . . |{Mk/xk} as { ˜ M/˜x} or σ. We also write σ, {M/x}, { ˜ M/˜x} for substitions