Symbolic Cryptography
We consider cryptography as fully reliable - abstract everything away.
Example:
dec(enc(M,K)K)→M
ver(sign(x,sk(k)),vk(k))→x
The Applied Pi-Calculus has a signature
Σ
that consists of a 2 finite sets:
constructors
i.e.(enc, sign)
destructors
i.e.(dec, ver)
Destructors
Typical rules:
fst(pair(x,y))→x
snd(pair(x,y))→y
dec(enc(x,y),y)→x
deca(enca(x,ek(y)),dk(y))→x
ver(sign(x,sk(y)),vk(y))→x
They have
evaluation rules
:
σ
: variables
↦
terms
(Substitution)
Examples
σ={pair(n,m)/x,k/y}
ver(sign(pair(n,m),sk(k)),vk(k))⇓pair(n,m)
The equality can be tested through:
eq(x,x)⇓x
Equational Theory
is identified by signature
Σ
.
We write
Σ⊢M=N
iff
M
is equal to
N
in the equational theory.
Processes
Almost identical to Pi-Calculus:
P,Q,R::=
in(c,x).PReceive on channelc, bind result tox, runP
out(c,x).PSend value ofyto channelx, runP-xis then bound inP
0Terminate process
P∣QRunPandQsimultaniously
!PRepeatedly generate copies ofP
new a.PCreate a new variablea, which is then bound inP
let x=g(M1,…,Mn) in P else Q
Guard + Pattern matching and binding a name (= value) to a variable
inPor executingQif guard condition is not met.
Free- vs. Bound-Names
Free names are public, bound names are (initially) private.
If
P
is closed, it does not have free variables.
We denote free / bounded names in
P
as:
fn(P)
free name
bn(P)
bound name
fv(P)
free variable
bv(P)
bound variable
Operational Semantics
Reduction Relation
→
Describes the communication. (Internal Reduction)
- let x=g(M1,…,Mn) in P else Q→P{M/x}
if g(M1,…,Mn)⇓M
if ∄M.g(M1,…,Mn)↓MthenQis executed independently
- !P→P∣!P
- P→Q⇒P∣R→Q∣R
- P→Q⇒ new a.P→ new a.Q
- (P′≡P,P→Q,Q≡Q′)⇒P′→Q′
Structural Equivalence
≡
is the smallest equivalence relation on processes through renaming names and variables so that:
- P∣0≡P
- P∣Q≡Q∣P
- (P∣Q)∣R≡P∣(Q∣R)
- new a .new b.P≡ new b .new a. P