30.01.2013 Views

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!