我有一个使用Casper(在.spl文件中)建模Diffie-Hellman密钥交换协议的任务。我得到了基础知识,并且发现很难找到正确的协议解释(#Protocol description)。我到处搜索并尝试一切(据我对Casper的了解可以带我)并且没有解决方案。我很惊讶,关于这方面的文件很少。
如果有人能帮助我开始这个,我们将不胜感激。
先谢谢!
答案 0 :(得分:0)
-- Diffie Hellman
#Free variables
datatype Field = Gen | Exp(Field,Num) unwinding 2
A, B : Agent
x, y : Num
expx, expy, k : Field
text : TEXT
InverseKeys = (k,k), (Exp,Exp), (Gen,Gen)
#Processes
INITIATOR(A, x, text)
RESPONDER(B, y)
#Protocol description
0. -> A : B
[A != B]
1. A -> B : Exp(Gen,x) % expx
[A != B and expx!=Gen]
<k := Exp(expx, y)>
2. B -> A : Exp(Gen,y) % expy
<k := Exp(expy, x)>
3. A -> B : {text}{k}
#Specification
Secret(A, text, [B])
Secret(B, text, [A])
#Actual variables
Alice, Bob, Mallory : Agent
X, Y, Z : Num
Text1, Text2 : TEXT
#Equivalences
forall x, y : Num . Exp ( Exp(Gen,x), y ) = Exp( Exp(Gen,y), x )
#System
INITIATOR(Alice, X, Text1)
RESPONDER(Bob, Y)
#Intruder Information
Intruder = Mallory
IntruderKnowledge = {Alice, Bob, Mallory, Z, Text2}