ISO Public Key Two-Pass Unilateral Authentication Protocol
Purpose
Self-explanatory.
Informal Specification
- B -> A: Rb,Text1
- A -> B: CertA, Ra, Rb, B, Text3, E(Ka-1:Ra,Rb,B,text2)
See Commonly Used Representations
MSR Specification
Click here to download
--- Author: rishav
--- Date: 10 September 2007
--- ISO Public Key Two-Pass Unilateral Authentication Protocol
---
--- B -> A: Rb,Text1
--- A -> B: CertA, Ra, Rb, B, Text3, E(Ka-1:Ra,Rb,B,text2)
(reset)
(
module ISOTwoPassPublicUni
export * .
key : type.
pvtk : princ -> type. pvtk A <: key.
randomNo: type. randomNo <: msg.
enc : key -> msg -> msg.
text: type. text <: msg.
net : msg -> state.
initiator:
forall B : princ.
{
exists LB : {A : princ} pvtk A -> randomNo -> text -> state.
ISO2initRule1:
forall Ka-1 : pvtk A.
forall text1 : text.
empty
=> exists rB : randomNo.
net(rB & text1), LB A Ka-1 rB text1.
ISO2initRule3:
forall A : princ.
forall Ka-1 : pvtk A.
forall text3 : text.
forall text2 : text.
forall text1 : text.
forall rB : randomNo.
forall rA : randomNo.
net(CertA & rA & rB & text3 & enc Ka-1 (rB & rA & B & text2)), LB A Ka-1 rB text1
=> empty.
}
reciever:
forall A : princ.
{
ISOinitRule2:
forall B : princ.
forall Ka-1 : pvtk A.
forall text3 : text.
forall text2 : text.
forall text1 : text.
forall rB : randomNo.
net(rB & text1)
=> exists CertA : msg.
exists rA : randomNo.
net(CertA & rA & rB & text3 & enc Ka-1 (rB & rA & B & text2)).
}
)