src/HOL/Auth/Yahalom2.thy
changeset 13926 6e62e5357a10
parent 13907 2bc462b99e70
child 13956 8fe7e12290e1
equal deleted inserted replaced
13925:761af5c2fd59 13926:6e62e5357a10
   135 (*Nobody can have used non-existent keys!  Needed to apply analz_insert_Key*)
   135 (*Nobody can have used non-existent keys!  Needed to apply analz_insert_Key*)
   136 lemma new_keys_not_used [rule_format, simp]:
   136 lemma new_keys_not_used [rule_format, simp]:
   137  "evs \<in> yahalom ==> Key K \<notin> used evs --> K \<notin> keysFor (parts (knows Spy evs))"
   137  "evs \<in> yahalom ==> Key K \<notin> used evs --> K \<notin> keysFor (parts (knows Spy evs))"
   138 apply (erule yahalom.induct, force,
   138 apply (erule yahalom.induct, force,
   139        frule_tac [6] YM4_parts_knows_Spy, simp_all)
   139        frule_tac [6] YM4_parts_knows_Spy, simp_all)
   140 (*Fake, YM3, YM4*)
   140 txt{*Fake*}
   141 apply (blast dest!: keysFor_parts_insert)+
   141 apply (force dest!: keysFor_parts_insert)
       
   142 txt{*YM3, YM4*}
       
   143 apply blast+
   142 done
   144 done
   143 
   145 
   144 
   146 
   145 (*Describes the form of K when the Server sends this message.  Useful for
   147 (*Describes the form of K when the Server sends this message.  Useful for
   146   Oops as well as main secrecy property.*)
   148   Oops as well as main secrecy property.*)
   392 apply blast
   394 apply blast
   393 (*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
   395 (*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
   394 apply (force dest!: Crypt_imp_keysFor)
   396 apply (force dest!: Crypt_imp_keysFor)
   395 (*YM4: was Crypt K (Nonce NB) the very last message?  If so, apply unicity
   397 (*YM4: was Crypt K (Nonce NB) the very last message?  If so, apply unicity
   396   of session keys; if not, use ind. hyp.*)
   398   of session keys; if not, use ind. hyp.*)
   397 apply (blast dest!: B_trusts_YM4_shrK dest: secure_unique_session_keys  )
   399 apply (blast dest!: B_trusts_YM4_shrK dest: secure_unique_session_keys )
   398 done
   400 done
   399 
   401 
   400 
   402 
   401 text{*If B receives YM4 then A has used nonce NB (and therefore is alive).
   403 text{*If B receives YM4 then A has used nonce NB (and therefore is alive).
   402   Moreover, A associates K with NB (thus is talking about the same run).
   404   Moreover, A associates K with NB (thus is talking about the same run).