我有一个测试数据传输安全性的avispa实例,execute运行后什么都不显示。
如图
用协议仿真报错如图
原代码实在找不到什么错误,盼望解答
附上代码
role node_A(A,B:agent,
Add,Mul,H:hash_func,
Snd,Rcv:channel(dy))
played_by A
def=
local
State :nat,
Ya,Yb,P,Da,Db:text,
TA,TB,WA,WB,Sigma_a,Sigma_b,KA,KB,SK:text
init
State:= 0
transition
1.State=0/\Rcv(start)=|>
State':=1/\Ya':=new()/\TA' :=Mul(ADD(Ya'.Da).p)/\WA':=Mul(Da.P)/\Snd(A.TA'.WA')/\secret(Ya',sec_ya,{A,B})
2.State=1/\Rcv(B.TB'.WB'.Sigma_b')=|>
State':=2/\Sigma_a':=H(A.TA.Mul(Da.WB'))
/\KA'=Mul(Add(Da.Ya).TB')
/\SK'=H(A.B.TA.TB.KA')
/\Snd(Sigma_a')
/\witness(A,B,auth_node_a.Sigma_a')
/\request(A,B,auth_node_b,Sigma_b')
end role
role node_B(B,A:agent,
Add,Mul,H:hash_func,
Snd,Rcv:channel(dy))
played_by B
def=
local State :nat,
Ya,Yb,P,Da,Db:text,
TA,TB,WA,WB,Sigma_a,Sigma_b,KA,KB,SK:text
init State:= 0
transition
1.State =0/\Rcv(start)=|> State':=1
/\Yb'=new()
/\TB' :=Mul(ADD(Yb'.Db).p)/\WB':=Mul(Db.P)
/\Sigma_b':=H(B.TB'.Mul(DB.WA'))
/\Snd(B.TB'.WB'.Sigma_b')
/\secret(Yb',sec_yb,{A,B})
/\witness(B,A,auth_node_b.Sigma_b')
2.State =1/\Rcv(Sigma_a')=|>
State':=2/\KA':=Mul(Add(Db.Yb).Ta)
/\SK'=H(A.B.TA.TB.KA')
/\request(B,A,auth_node_a,Sigma_a')
end role
role session(A,B:agent,
Add,Mul,H:hash_func)
def=
local
SA,SB,RA,RB:channel(dy)
composition
node_A(A,B,Add,Mul,H,SA,RA)
/\node_B(B,A,Add,Mul,H,SB,RB)
end role
role environment()
def=
const a,b:agent,
add,mul,h:hash_func,
sec_ya,sec_yb,auth_node_a,auth_node_b:
protocol_id
intruder_konwledeg={a,b,mul,add,h}
composition
session(a,b,add,mul,h)
/\session(i,b,add,mul,h)
/\session(a,i,add,mul,h)
end role
goal
secrecy_of sec_ya,sec_yb
authentication_on auth_node_a
authentication_on auth_node_b
end goal
environment()
如能解决,十分感谢。