50 AddSEs [not_Says_to_self RSN (2, rev_notE)]; |
50 AddSEs [not_Says_to_self RSN (2, rev_notE)]; |
51 |
51 |
52 |
52 |
53 (** For reasoning about the encrypted portion of messages **) |
53 (** For reasoning about the encrypted portion of messages **) |
54 |
54 |
55 goal thy "!!evs. Says S B {|X, Crypt(shrK B) X'|} : set_of_list evs ==> \ |
55 goal thy "!!evs. Says S' B {|X, Crypt(shrK B) X'|} : set_of_list evs ==> \ |
56 \ X : analz (sees lost Spy evs)"; |
56 \ X : analz (sees lost Spy evs)"; |
57 by (fast_tac (!claset addSDs [Says_imp_sees_Spy RS analz.Inj]) 1); |
57 by (fast_tac (!claset addSDs [Says_imp_sees_Spy RS analz.Inj]) 1); |
58 qed "OR4_analz_sees_Spy"; |
58 qed "OR4_analz_sees_Spy"; |
59 |
59 |
60 goal thy "!!evs. Says Server B {|X, Crypt K' {|NB, a, Agent B, K|}|} \ |
60 goal thy "!!evs. Says Server B {|X, Crypt K' {|NB, a, Agent B, K|}|} \ |
351 |
351 |
352 (*Guarantee for B: if it gets a well-formed certificate then the Server |
352 (*Guarantee for B: if it gets a well-formed certificate then the Server |
353 has sent the correct message in round 3.*) |
353 has sent the correct message in round 3.*) |
354 goal thy |
354 goal thy |
355 "!!evs. [| B ~: lost; evs : otway lost; \ |
355 "!!evs. [| B ~: lost; evs : otway lost; \ |
356 \ Says S B {|X, Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \ |
356 \ Says S' B {|X, Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \ |
357 \ : set_of_list evs |] \ |
357 \ : set_of_list evs |] \ |
358 \ ==> EX NA. Says Server B \ |
358 \ ==> EX NA. Says Server B \ |
359 \ {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|}, \ |
359 \ {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|}, \ |
360 \ Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \ |
360 \ Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \ |
361 \ : set_of_list evs"; |
361 \ : set_of_list evs"; |