of these security levels. Suppose for instance that an
agent has received the message {k}
k
ab
, hence from
that message we can safely approximate the security
level of k by saying that it is less than the security
level of k
ab
. However, to send a message {α}
k
over
the network, it is not sufficient to know a lower bound
for the security level of k. but we need an upper bound
also and ideally if we know the exact value of this se-
curity level so that we can know wether α is correctly
protected when sent inside {α}
k
. Therefore, to en-
sure that a protocol does not leak secret information,
we need to ensure that each agent protects the com-
ponents that he send according to their security types
(public key cannot protect secret information for ex-
ample). More precisely, it is sufficient to restrict each
agent so that he does not decrease or increase the se-
curity levels of sent components to guarantee the se-
crecy property of a protocol. Protocols that respect
this condition are called, in this paper, Coherent Pro-
tocols.
However, we need first to find a way allowing to
safely communicate the security level of each com-
ponent send over the network. In fact, an agent can-
not appropriately protect a component (especially for
received and previously unknown components) if he
is not able to deduce his security level. For this pur-
pose, we use what we call interpretation function. The
role of this function is to allow each agent involved in
the protocol to deduce in a safe way the security level
of each received component. Once the interpretation
function is defined, it will be enough to restrict each
agent so that he does not decrease or increase the se-
curity levels of sent components to guarantee that the
protocol is correct with respect to the secrecy prop-
erty.
The remainder of this paper is organized as fol-
lows. Section 2 gives the definition of a context of
verification. Also, it gives the definition of some ba-
sic words used within this paper. Section 3 gives a
formal definition for the secrecy property. Section 4
introduces the proposed conditions and proves that
they are sufficient to ensure the secrecy property of
cryptographic protocols. Section 5 shows how to put
in practice these conditions with a concrete example.
Finally, section 6 provides some concluding remarks.
2 BASIC DEFINITIONS
Basically, this section gives the definition of a context
of verification already introduced in (Houmani and
Mejri, 2007b; Houmani and Mejri, 2007a). Also, it
gives the definition of a set of messages and the defi-
nition of the intruder capacities.
Context of Verification. Parameters like the struc-
ture of messages exchanged during the protocol,
the intruder capacities or the algebraic properties of
cryptographic primitives, could affect the class of
protocols that could be analyzed by an approach.
We found therefore interesting to gather them in
what we called a context of verification. A con-
text of verification can have the following form
C = hN , Σ, E , K, L
⊒
,
p
·
q
i, where:
• The Names N is the set of names (nounce, keys,
etc). For instance, let N
0
be the set of names given
by the the following BNF grammar:
n ::= A (Principal Identifier)
| N
a
(Nonce)
| k
ab
(Shared key)
• The Signature Σ contains all function symbols
(encryption and pair symbol for example). For in-
stance, let Σ
0
be the signature defined as follows:
Σ
0
= {enc, dec, pair, fst, snd}
As usual we write hx, yi instead of writing
pair(x, y).
• The Equational Theory E is the equational the-
ory that represents the algebraic properties of
the function symbols (commutativity of the pair
symbol for example). For instance, Let E
0
be
the equational theory that contains the following
equations:
dec(enc(x, y), y) = x
fst(pair(x, y)) = x
snd(pair(x, y)) = y
• The Intruder Knowledge K is the set of initial
knowledge of the intruder. For instance, let K
0
be the set of knowledge of intruder that contains
shared keys k
ia
, k
ib
, etc, a public key k
i
, a private
key k
−1
i
, and a infinite set of fresh values as ses-
sions keys, nonces, and timestimps .
• The Lattice of Security L
⊒
is a lattice that con-
tains security levels (types). For example the
poset ({classified, secret, topSecret}, ⊑) where
classified ⊑ secret ⊑ topSecret can define a sim-
ple lattice of security. Another interesting secu-
rity lattice is the one defined by the powerset of
agents identities i.e 2
I
. Within this lattice the se-
curity level of a component is the set of identities
of agents allowed to know the value of this com-
ponent. In the sequel, we denote this powerset
lattice by L
⊆
0
.
• The Typed Environment
p
·
q
is a partial function
that assigns to atomic messages their real security
ENSURING THE CORRECTNESS OF CRYPTOGRAPHIC PROTOCOLS WITH RESPECT TO SECRECY
185