第5 章
基于行为模型的密码协议验证 
本章用行为模型(actionmodel)来扩展认知逻辑以构建语言来描述并验证
密码协议。本章还是采用第4章的实例作为分析验证的例子。
5.1 协议的语言LA,B 
Cryp 
本节用行为模型来描述这个实例,令语言为LA,B 
Cryp,其中Cryp表示密码学
(cryptography),A 是协议全体主体集,B .A 是主体集中一个子集,表示在认
知状态中将被分析的参与这个协议的主体。这个语言中的命题由has、const、tg 
构成,has表示主体拥有的消息,const表示主体可以从自身的信息集构造的消
息,tg表示为密码协议中已经完成的行为做标记。用A表示行为集。
5.1.1 协议语言LA,B 
Cryp的语法
本章对协议中的消息集M的定义沿用定义4.1,即m ::=a|n|k|mk|(m , 
m )(m ∈M)。
定义5.1:本协议基本命题 在这个密码协议系统中,用ΦA Cryp作为基本命
题p 的集合,基本命题p 定义为
p::=hasam|constam|tg(σ) 
其中,a∈A ,m ∈M,σ∈A。hasam 表示主体a 拥有消息m ,constam 表示主体
a 从自己的信息集构造m ,tg(σ)表示行为σ 被标记。令ΦI,ΦI- ,Φtg是ΦA Cryp的
子集,分别表示上述3种命题的集合。
下面定义行为模型。根据文献[160]的思想,一个行为的执行需要的条件
称为前提条件(precondition),没有相应的前提条件,这个行为是不能被执行的。
在这个系统中,所有的前提条件属于ΦA Cryp,它是语言ΦA,B 
Cryp的一部分。一个行为
执行后成立的命题称为后置条件(postcondition),后置条件表明行为执行后知

64 
识的变化,后置条件分为两部分,一个是PosI 表明主体信息集的变化,另一个
是PosAL表明行为标记的变化(记录主体完成的行为)。基于逻辑语言LA,B 
Cryp,一
个行为模型是一个元组A=(A,~a ,Pre,PosI,PosAL),其中A是一个非空的有
限的行为集,对所有的a∈B,~a 是一个等价关系。Pre:A→ΦA Cryp为每一个行
为指派一个前提条件。应用文献[160]的思想处理后置条件,函数Φ →L是对L 
的一个替换,是基本的逻辑语言到它的变体的一个映射。SUB是substitution 
的缩写,SUB(L)被看作从Φ(命题)到L(语言)的一个替换集。因此,PosI:A→ 
SUB(ΦA,B 
Cryp),后置条件是语言LA,B 
Cryp的一个替换,对任意的p∈ΦI,σ∈A,有性质
PosI(σ)(p)∈ΦI∪{ , }。PosAL:A→SUB(ΦA,B 
Cryp),对任意的p∈ΦAL,σ∈A, 
有PosAL(σ)(p)∈ΦAL ∪{ , }。用“m ∈Ia (Ia 表示a 的信息集)”替换
“hasam ”映射到,同时,在σ 行为执行后消息m 增加到a 的信息集。用“σ+ ” 
来标记当前行为对替换映射tg(σ)到,同样地,用“σ- ”来标记之前的行为对替
换映射tg(σ)到。在后面的分析过程中,将用这些替换来形式化所有的后置
条件。定
义5.2:本协议语言LA,B 
Cryp的语法 给定主体集A 和基本命题集ΦA Cryp,协
议语言LA,B 
Cryp的语法归纳定义为
φ::= |p|..φ|φ ∨φ|Kaφ|[α]φ 
α::=(A,σ) 
其中,p∈ΦA Cryp,a∈A,σ 是行为模型A中的一个行为。[A,σ]φ 意思是在A中
的行为σ 执行后,φ 成立。
5.1.2 协议语言LA,B 
Cryp的语义
语言LA,B 
Cryp的模型M是一个元组
M=(W ,{Ra}a∈B ,I,AL) 
其中,W 是一个非空的可能世界集,Ra 是对所有的a∈B 在W 上的二元关系。
I 是信息集,Iw ,a 表示在世界w ,主体a 的信息集,也就是说I:W ×A→P(M)。
AL表示行为标签,即AL:W →P(A)。对任意的σ∈A,tg(σ)意味着在行
为集A的行为σ 已经被标记。I 和AL是对应的基本命题的值。若m ∈Ia ,则
hasam 成立。m 是a 的拥有集的消息,可以是通过接收得到的也可以是初始分
配的,消息m 也可以由主体从它的信息集中的信息构造的,构造规则遵循第4 
章介绍的密码学构造规则,即
mk 
mk mkk 
m mm' 
(m ,m') (m ,m') 
m (m ,m') 
m'

65 
令协议语言LA,B 
Cryp的模型为M,基本命题的语义如下: 
M,w hasam 当且仅当m ∈Iw ,a ; 
M,w constam 当且仅当m ∈Iw ,a ; 
M,w tg(σ) 当且仅当σ∈AL(w ); 
第一条是说如果模型在世界w 满足主体a 拥有消息m ,当且仅当,消息m 
属于a 在世界w 的信息集。第二条说主体a 可以构造消息m 在(M,w ),当且
仅当m 可以从他的信息集Iw ,a 推导,“m ∈Iw ,a”表示m 属于集合Iw ,a 的推导集
(Iw ,a 表示从集合Iw ,a 推导出来的信息集)。第三条表明,tg(σ)在(M,w )成立, 
当且仅当σ 在(M,w )被标记。
更新模型令协议语言LA,B 
Cryp的模型为M,A是行为模型,更新模型
M..A=(W',{R'a}a∈B ,I',AL') 
被定义为
W'={<w ,σ>|M,w Pre(σ)} 
R'a ={<w ,σ>,<v,σ'>|w R'av 和σ~aσ'} 
I'(<w ,σ>,a)={m|M,w PosI(σ)(hasam )} 
AL'(<w ,σ>)={β|M,w PosAL(σ)(tg(β))} 
定义5.3:本协议语言LA,B 
Cryp的语义 给定主体集A 和基本命题集ΦA Cryp,协
议模型为M=(W ,{Ra}a∈B ,I,AL)且状态w ∈W ,本协议语言LA,B 
Cryp的语义定义
如下: M,w ° 当且仅当M,w ; 
M,w ..φ 当且仅当M,w φ; 
M,w φ∨ψ 当且仅当M,w φ 或者M,w ψ; 
M,w Kaφ 当且仅当对任意一个w'∈W ,若wRaw',则M,w'φ; 
M,w [A,σ]φ 当且仅当若M,w Pre(σ),则M..A,<w ,σ>φ。
5.2 协议形式化
5.2.1 形式化密码协议中的基本问题
1.协议形式化描述形式 
这里用Crypto来表示该密码协议的行为模型。事实上协议的运行是一系
列动作的执行。在密码学中,协议被描述为这样的形式: 
a→b:m 表示主体a 发送消息m 给b, 其中,m ∈M

66
2.实例化
行为模式是协议执行中的一个重要部分。通常用instatiationθ 实例化行
为模式,θ 为任意的一个实例。instatiationθ 是一个从协议参数到它们各自的
域的映射。一个协议的执行有几个实例的相互交错。在该系统中,应用Θ 来表
示实例集,协议的参数是有限的,因此Θ 集的元素也是有限的。
3.网络环境
参照文献[161],假定该协议的网络由输入缓冲器(inputbuffer)和输出缓
冲器(outputbuffer)构成。将这两部分看作两个特殊的主体In和Out。可信
任的主体消息仅能发送给In,攻击者或入侵者能够窃听In的信息。可信主体
仅能接收来自Out的消息。
4.验证模型
验证模型是该协议要达到的目标模式。在协议运行结束后,目标公式.(. 
∈ΦA,B 
Cryp)成立,形式化验证模型如下: 
M ∧ θ∈Θ[CryptoIntr,σ(θ)].(θ) 
其中,M是之前定义的模型,包括所有初始假设条件和所有主体的初始认知信
息。CryptoIntr表示行为模型,这个模型中的行为包括入侵者的行为。Intr表示
入侵者(intruder)。σ 是行为模型A 中的行为,通常是行为序列中的最后一个。
. 是ΦA,B 
Cryp中的公式,或者是静态认知公式或者是命题公式。
∧ θ∈Θ[CryptoIntr,σ(θ)].(θ) 
表示包括入侵者的行为的模型CryptoIntr中所有的行为执行完成之后,公式. 成
立。这是协议的目标模型的表达式。
5.2.2 形式化行为模型
在协议的运行中语言模型的变化依赖于行为的执行。也就是说,行为的执
行导致模型的变化。因此,首先给出行为模型。前面定义了初始化模型M和
行为模型CryptoIntr。假定Ag 表示协议中主要被分析的主体集,入侵者
(intruder)T (T ∈Ag)执行入侵行为。所以,在这个系统中,主体集A =Ag∪ 
{In,Out}和B =Ag。入侵者的行为和协议的行为要求是根据入侵者模型和来
源于在CryptoIntr模型中行为集A的协议规定的行为。
在协议中,a→b:m 表示a 发送消息m 给b。这个行为分成'send'(σ)a→ 
In:m 和r' eceive'(δ)Out→b:m 两部分。执行这个行为的前提是a 可以从他的
信息集构造m :Pre(σ)=constam 。行为σ 的后置条件是PosI(σ)=m ∈IIn。用

σ+,

σ-来标记刚刚完成的行为和这个行为之前的行为。同样地,行为
δ 
的前提
条件为Pre(=atm。规定缓冲器本身不能构造新的信息。
δ 
的后置条件

δ)hs
为Posδ)=m∈Ib 。(u) (o) 

I(

在这个网络模型中,假定入侵者可能窃听所有缓冲器的信息。因此,入侵者
T 
的行为是In→T:
m 
或者T→Out:m。也就是说,一方面入侵者可以从输入缓
冲器获取信息(em),另一方面他可以把信息放入输出缓冲器()。这个

takfakem
行为描述如表51所示
。


.

表5.入侵者
T 
的行为模型

1 

Action 
Direction 
Mesage 
Pre 
PosI 
PosAL 
takem 
In→
T m 
hasInm 
m∈IT 
— 
fakem 
T→Out 
m 
constTm 
m∈IOut — 

在这个系统中,主体只能区分他自己完成的行为,别的主体的行为不可区
分的。用~ 
a 
来表示任意主体
a 
不可区分的行为,~ 
T 
表示入侵者不可区分的
行为。协议的模型M=(
W 
,{Ra 
}I,的初始状态描述如下。

a∈
B 
,AL)

W 
是一个非空的可能世界集。

I 
是主体的信息集。一个主体的信息集总是基于一个确定的世界。因此, 
主体
a 
和他的信息集
I 
定义一个世界w,通常地,写作I(w,。在初始状态,规
定缓冲器是空的,因此对所有的w∈
W 
,在初始状态有I(w,Ina)
)
=I(w,Out)=. 。
Ra 
如果wRa当且仅当I(w,a)Ra 
表示对主体
a 
来说是等价关系,

v, a)=I(v,
a 
不能区分
w 
和v。

AL在初始状态,对所有的w∈
W 
,令AL(w)=. 。

在后面分析具体协议时,将应用上面的形式化方法。

5.3 
 协议分析
沿用第4章的例子。在一个不安全的网络中,甲想发送给乙一个秘密消息
m。他们只有自己的密钥。假定甲作为发送者(S),乙作为接收者(R)。发送
者有自己的密钥ks,接收者有自己的密钥kr 
。他们只能解密自己加密的数据。
协议描述如下: 

(1)S→R:ms 

(2)R→S:msr 

67

(3)S→R:mr 
在第(1)步,发送者用k加密
m 
得到{m},为了简洁,写作ms。发送者将

ks 

ms 
发送给接收者。接收者收(s) 到后,用k加密ms 
得到ms。再把msr 
返回给发
送者,发送方解密ms得到mr 并发送到(r) 接收者。接收者可(r) 以解密mr 
并得到
。最后,
m 
从
S 传输(r) 到R。应用的加密有可交换的性质,即msr 
=mrs(加密信息(m) 时密钥的使用顺序的改变不改变加密结果)。这里,密钥可以是对称的,也可
以是非对称的公私钥对密钥。下面形式化这个协议。在协议中,消息集
M 
= 
{s,
r 
,m,ms,
r 
,},Ag={S,R,
T 
},其中
S 
是发送者,
R 
是接收者,
T 
是kkmsmrR,IOu着重分析的协议参与者

入侵者。协议的全体主体集为A={S,T,n,t}, 
集合B=Ag={S,R,
T 
}。首先给出初始
模型图5.然后根据协议行为的执行的运

1, 
行过程形式化协议。在初始状态,只有
S 
有信息
m 
其他人没有m,初始模型中表明
了哪一个主体拥有m。根据Iw,
S 
,Iw,
R 
, 
Iw,
T 
,如果主体在那个世界有
m 
就出现在
那个世界。在图5.实线表示这两端的

1中, 
世界对
S 
是可以区分的(其余是不能区分
的),虚线表示两端的世界对
T 
是可以区分图5.协议的初始模型
的,点线表示两端的世界对
R 
是可以区分
1 
的。因此,在初始状态满足:M,
S 
hasSm∧..hasRm∧..hasTm。

协议的行为模型形式化如表5.

2所示。

表5.协议的行为模型形式化

2 


Action 
Direction 
Mesage 
Pre 
PosI 
PosAL 
σ1 S→In ms 
constSms 
ms 
∈IIn σ+1 
δ1 Out→
R 
ms 
hasOutms 
ms 
∈IR 
δ+1 
σ2 R→In msr 
constRmsr 
msr 
∈IIn δ-1 ,σ+2 
δ2 Out→
S 
msr 
hasOutmsr 
msr 
∈IS 
δ+2 
σ3 S→In mr 
constSmr 
mr 
∈IIn δ-2 ,σ+3 
δ3 Out→
R 
mr 
hasOutmr 
mr 
∈IR 
δ+3 

如表5.行为σ1 表示
S 
将消息ms 
n,前提条件是
S 
能够构

2所示, 发送到I

68

造ms,后置条件是ms 
属于In,同时标记σ1 这个行为。第2行δ1 表示
R 
从
Out接收到消息ms,前提是Out有消息ms,这个行为执行后
R 
有消息ms,同
δσ+” δ”,

时标记δ1。第3行的“1,中“表示
R 
执行的当前行为是σ2,之前的一
个行为是δ1。这里将协议参(2) 与主体(1) S,
R 
的当前行为和前一个行为都做了

标记。
3中添加了来自入侵者(

表5.T)的操作。假设入侵者是一个弱的入侵者。
除了窃听他无法构造任何信息,因为没有密钥,所以只能从缓冲区中接收所有
消息并传输到输出缓冲器。

表5.包括入侵者行为的行为模型

3 

Action 
Direction 
Mesage 
Pre 
PosI 
PosAL 
σ1 S→In ms 
constSms 
ms 
∈IIn σ+1 
takems 
In→
T 
ms 
hasInms 
ms 
∈IT 
— 
fakems 
T→Out ms 
hasTms 
ms 
∈IOut — 
δ1 Out→
R 
ms 
hasOutms 
ms 
∈IR 
δ+1 
σ2 R→In msr 
constRmsr 
msr 
∈IIn δ-1 ,σ+2 
takemsr 
In→
T 
msr 
hasInmsr 
msr 
∈IT 
— 
fakemsr 
T→Out msr 
hasTmsr 
msr 
∈IOut — 
δ2 Out→
S 
msr 
hasOutmsr 
msr 
∈IS 
δ+2 
σ3 S→In mr 
constSmr 
mr 
∈IIn δ-2 ,σ+3 
takemr 
In→
T 
mr 
hasInmr 
mr 
∈IT 
— 
fakemr 
T→Out mr 
hasTmr 
mr 
∈IOut — 
δ3 Out→
R 
mr 
hasOutmr 
mr 
∈IR 
δ+3 

5.4 
 协议验证
5.1 
协议的目标模型
4.
在初始状态,
S 
和
R 
有自己的密钥,但只有
S 
才有秘密消息m。协议目标
是所有动作执行完成后,
R 
有秘密消息m,而
T 
没有。因此,得出目标模型。
目标1:在最后一个行为δ3 执行后,
R 
有秘密消息m。

69

70 
M ∧ θ∈Θ[CryptoIntr,δ3(θ)]KAgconstRm (θ) 
目标2:在初始状态T 没有m ,在最后一个行为δ3 执行后,T 仍然没有m 。
M ∧ θ∈Θ..hasTm (θ)→[CryptoIntr,δ3(θ)]KAg ..constTm (θ) 
如果协议满足目标1和目标2,那么该协议是安全的。
5.4.2 协议的验证
命题1:对于任何一组消息项M,以及任意秘密消息m :没有密钥k,如果
m .M-,则m .mk ∪M。
从构造规则来看,如果主体有mk 和相应的密钥k,则可以构造m 。没有密
钥k,如果m 不能从M推导(能从M推导得出的集合表示为M-),则即使mk 并
到M集,还是不能推导得出m ,因为缺少前提密钥k。根据这个命题,T 不能计
算秘密消息m ,因为他的消息都来自输入缓冲器,从表5.3的PosI 列可以看出, 
他没有相应的密钥k。在这个系统中,主体的消息集的元素总是增加而不是减
少的。因此得出命题2。
命题2:对任意消息m 和任意主体a,有
M constam →[CryptoIntr]constam 
命题3:目标2在协议的运行过程中总是真的。
在初始状态,只有S 有消息m ,其他人没有m 。当然T 不可能有m ,因为
协议还没有运行,什么行为也没有做。
现在证明目标2在协议的运行过程中总是真的。
假设存在一个世界w 不满足目标2, 
M,w ..hasTm →[CryptoIntr]..constTm 
如果上面这个公式成立,那么就存在一个动作序列σ1,σ2,…,σn (σi∈A), 
使得
M,w ..hasTm ∧[CryptoIntr,σ1]…[CryptoIntr,σn]constTm 
然而,从表5.3可以看到,在任何一个状态,T 都没有m ,所以
M,w ..hasTm ∧[CryptoIntr,σ1]…[CryptoIntr,δ3]..constTm 
因此,假设是不成立的。
入侵者仅能从输入缓冲器得到信息。如果m ∈IIn,那么m ∈IT 。从表5.2 
或表5.3可以列出输入缓冲器的信息集
1≤∪i≤n
I(wi,In )={ms,msr,mr}

因此,
T 
拥有的消息都是加密数据,没有相应的密钥k,他不能计算并得到
秘密消息m。因此目标2是满足的。
命题4:目标1在初始状态不成立,在协议的最后一个行为δ3 完成后,目标
1成立。
证明:在初始状态,
R 
没有m,
R 
只有kr 
。协议的所有行为执行后,根据
表5.
R 
的信息集为

3,
∪I(wi,R)={ms,msr 
,mr}


1≤i≤
n 

因此,
R 
有kr 
和mr 
,根据构造规则,
R 
可以构造出m,即constRm。因此, 
协议的所有行为执行后,得到下式: 
M 
[tkatkatkaδ3]osRm

σ1][e][δ1][e][δ2][e][

afke][σ2][afke][σ3][afke][cnt
因此,目标1和目标2得证。此协议是满足安全要求的。

5.5 
 本章小结
本章应用文献[75,的思想用行为模型扩展认知逻辑形成动态认知逻

160]
辑,描述、分析并验证一个具体的密码协议。这个协议是两个主体,要在一个不
安全的网络中传送一个秘密消息,它们仅有自己的密钥,只能解密自己加密的
消息。本章给出了描述这个协议的语言的语法和语义。用行为模型来刻画协
议的行为,行为的执行导致模型的变化,更新模型描述了模型的转换。精确地
详细地模式化协议的每一步。从实际意义上来说,逻辑表示就是逻辑分析。根
据安全要求,给出协议的安全目标,通过分析和证明,这个协议满足预设的目
标,这个协议是安全的。

71