--- a/src/HOL/Auth/OtwayRees.thy Fri Jan 17 11:50:09 1997 +0100
+++ b/src/HOL/Auth/OtwayRees.thy Fri Jan 17 12:49:31 1997 +0100
@@ -28,27 +28,26 @@
==> Says Spy B X # evs : otway lost"
(*Alice initiates a protocol run*)
- OR1 "[| evs: otway lost; A ~= B; B ~= Server |]
- ==> Says A B {|Nonce (newN(length evs)), Agent A, Agent B,
- Crypt (shrK A)
- {|Nonce (newN(length evs)), Agent A, Agent B|} |}
+ OR1 "[| evs: otway lost; A ~= B; B ~= Server; Nonce NA ~: used evs |]
+ ==> Says A B {|Nonce NA, Agent A, Agent B,
+ Crypt (shrK A) {|Nonce NA, Agent A, Agent B|} |}
# evs : otway lost"
(*Bob's response to Alice's message. Bob doesn't know who
the sender is, hence the A' in the sender field.
Note that NB is encrypted.*)
- OR2 "[| evs: otway lost; B ~= Server;
+ OR2 "[| evs: otway lost; B ~= Server; Nonce NB ~: used evs;
Says A' B {|Nonce NA, Agent A, Agent B, X|} : set_of_list evs |]
==> Says B Server
{|Nonce NA, Agent A, Agent B, X,
Crypt (shrK B)
- {|Nonce NA, Nonce(newN(length evs)), Agent A, Agent B|}|}
+ {|Nonce NA, Nonce NB, Agent A, Agent B|}|}
# evs : otway lost"
(*The Server receives Bob's message and checks that the three NAs
match. Then he sends a new session key to Bob with a packet for
forwarding to Alice.*)
- OR3 "[| evs: otway lost; B ~= Server;
+ OR3 "[| evs: otway lost; B ~= Server; Key KAB ~: used evs;
Says B' Server
{|Nonce NA, Agent A, Agent B,
Crypt (shrK A) {|Nonce NA, Agent A, Agent B|},
@@ -56,18 +55,18 @@
: set_of_list evs |]
==> Says Server B
{|Nonce NA,
- Crypt (shrK A) {|Nonce NA, Key (newK(length evs))|},
- Crypt (shrK B) {|Nonce NB, Key (newK(length evs))|}|}
+ Crypt (shrK A) {|Nonce NA, Key KAB|},
+ Crypt (shrK B) {|Nonce NB, Key KAB|}|}
# evs : otway lost"
(*Bob receives the Server's (?) message and compares the Nonces with
those in the message he previously sent the Server.*)
OR4 "[| evs: otway lost; A ~= B;
- Says S B {|Nonce NA, X, Crypt (shrK B) {|Nonce NB, Key K|}|}
- : set_of_list evs;
Says B Server {|Nonce NA, Agent A, Agent B, X',
Crypt (shrK B)
{|Nonce NA, Nonce NB, Agent A, Agent B|}|}
+ : set_of_list evs;
+ Says S B {|Nonce NA, X, Crypt (shrK B) {|Nonce NB, Key K|}|}
: set_of_list evs |]
==> Says B A {|Nonce NA, X|} # evs : otway lost"