equal
deleted
inserted
replaced
315 "!!evs. [| Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} \ |
315 "!!evs. [| Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} \ |
316 \ : set_of_list evs; \ |
316 \ : set_of_list evs; \ |
317 \ Says Server B' {|NA',X',Crypt (shrK B') {|NB',K|}|} \ |
317 \ Says Server B' {|NA',X',Crypt (shrK B') {|NB',K|}|} \ |
318 \ : set_of_list evs; \ |
318 \ : set_of_list evs; \ |
319 \ evs : otway |] ==> X=X' & B=B' & NA=NA' & NB=NB'"; |
319 \ evs : otway |] ==> X=X' & B=B' & NA=NA' & NB=NB'"; |
320 by (dtac lemma 1); |
320 by (prove_unique_tac lemma 1); |
321 by (REPEAT (etac exE 1)); |
|
322 (*Duplicate the assumption*) |
|
323 by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1); |
|
324 by (fast_tac (!claset addSDs [spec]) 1); |
|
325 qed "unique_session_keys"; |
321 qed "unique_session_keys"; |
326 |
322 |
327 |
323 |
328 (*Crucial security property, but not itself enough to guarantee correctness!*) |
324 (*Crucial security property, but not itself enough to guarantee correctness!*) |
329 goal thy |
325 goal thy |