equal
deleted
inserted
replaced
104 |
104 |
105 lemmas YM4_parts_knows_Spy = |
105 lemmas YM4_parts_knows_Spy = |
106 YM4_analz_knows_Spy [THEN analz_into_parts] |
106 YM4_analz_knows_Spy [THEN analz_into_parts] |
107 |
107 |
108 |
108 |
109 text\<open>Theorems of the form @{term "X \<notin> parts (knows Spy evs)"} imply |
109 text\<open>Theorems of the form \<^term>\<open>X \<notin> parts (knows Spy evs)\<close> imply |
110 that NOBODY sends messages containing X!\<close> |
110 that NOBODY sends messages containing X!\<close> |
111 |
111 |
112 text\<open>Spy never sees a good agent's shared key!\<close> |
112 text\<open>Spy never sees a good agent's shared key!\<close> |
113 lemma Spy_see_shrK [simp]: |
113 lemma Spy_see_shrK [simp]: |
114 "evs \<in> yahalom ==> (Key (shrK A) \<in> parts (knows Spy evs)) = (A \<in> bad)" |
114 "evs \<in> yahalom ==> (Key (shrK A) \<in> parts (knows Spy evs)) = (A \<in> bad)" |
332 frule_tac [6] YM4_parts_knows_Spy) |
332 frule_tac [6] YM4_parts_knows_Spy) |
333 apply (analz_mono_contra, simp_all) |
333 apply (analz_mono_contra, simp_all) |
334 txt\<open>Fake\<close> |
334 txt\<open>Fake\<close> |
335 apply blast |
335 apply blast |
336 txt\<open>YM3: by \<open>new_keys_not_used\<close>, the message |
336 txt\<open>YM3: by \<open>new_keys_not_used\<close>, the message |
337 @{term "Crypt K (Nonce NB)"} could not exist\<close> |
337 \<^term>\<open>Crypt K (Nonce NB)\<close> could not exist\<close> |
338 apply (force dest!: Crypt_imp_keysFor) |
338 apply (force dest!: Crypt_imp_keysFor) |
339 txt\<open>YM4: was @{term "Crypt K (Nonce NB)"} the very last message? |
339 txt\<open>YM4: was \<^term>\<open>Crypt K (Nonce NB)\<close> the very last message? |
340 If not, use the induction hypothesis\<close> |
340 If not, use the induction hypothesis\<close> |
341 apply (simp add: ex_disj_distrib) |
341 apply (simp add: ex_disj_distrib) |
342 txt\<open>yes: apply unicity of session keys\<close> |
342 txt\<open>yes: apply unicity of session keys\<close> |
343 apply (blast dest!: Gets_imp_Says A_trusts_YM3 B_trusts_YM4_shrK |
343 apply (blast dest!: Gets_imp_Says A_trusts_YM3 B_trusts_YM4_shrK |
344 Crypt_Spy_analz_bad |
344 Crypt_Spy_analz_bad |