equal
deleted
inserted
replaced
491 DK isn't a private encryption key may be an artifact of the particular |
491 DK isn't a private encryption key may be an artifact of the particular |
492 definition of KeyCryptKey.\<close> |
492 definition of KeyCryptKey.\<close> |
493 lemma K_fresh_not_KeyCryptKey: |
493 lemma K_fresh_not_KeyCryptKey: |
494 "[|\<forall>C. DK \<noteq> priEK C; Key K \<notin> used evs|] ==> ~ KeyCryptKey DK K evs" |
494 "[|\<forall>C. DK \<noteq> priEK C; Key K \<notin> used evs|] ==> ~ KeyCryptKey DK K evs" |
495 apply (induct evs) |
495 apply (induct evs) |
496 apply (auto simp add: parts_insert2 split add: event.split) |
496 apply (auto simp add: parts_insert2 split: event.split) |
497 done |
497 done |
498 |
498 |
499 |
499 |
500 text\<open>This holds because if (priEK (CA i)) appears in any traffic then it must |
500 text\<open>This holds because if (priEK (CA i)) appears in any traffic then it must |
501 be known to the Spy, by @{term Spy_see_private_Key}\<close> |
501 be known to the Spy, by @{term Spy_see_private_Key}\<close> |
511 by (erule set_cr.induct, analz_mono_contra, auto) |
511 by (erule set_cr.induct, analz_mono_contra, auto) |
512 |
512 |
513 text\<open>Lemma for message 5: pubSK C is never used to encrypt Keys.\<close> |
513 text\<open>Lemma for message 5: pubSK C is never used to encrypt Keys.\<close> |
514 lemma pubSK_not_KeyCryptKey [simp]: "~ KeyCryptKey (pubSK C) K evs" |
514 lemma pubSK_not_KeyCryptKey [simp]: "~ KeyCryptKey (pubSK C) K evs" |
515 apply (induct_tac "evs") |
515 apply (induct_tac "evs") |
516 apply (auto simp add: parts_insert2 split add: event.split) |
516 apply (auto simp add: parts_insert2 split: event.split) |
517 done |
517 done |
518 |
518 |
519 text\<open>Lemma for message 6: either cardSK is compromised (when we don't care) |
519 text\<open>Lemma for message 6: either cardSK is compromised (when we don't care) |
520 or else cardSK hasn't been used to encrypt K. Previously we treated |
520 or else cardSK hasn't been used to encrypt K. Previously we treated |
521 message 5 in the same way, but the current model assumes that rule |
521 message 5 in the same way, but the current model assumes that rule |
688 or else cardSK hasn't been used to encrypt K.\<close> |
688 or else cardSK hasn't been used to encrypt K.\<close> |
689 |
689 |
690 text\<open>Lemma for message 5: pubSK C is never used to encrypt Nonces.\<close> |
690 text\<open>Lemma for message 5: pubSK C is never used to encrypt Nonces.\<close> |
691 lemma pubSK_not_KeyCryptNonce [simp]: "~ KeyCryptNonce (pubSK C) N evs" |
691 lemma pubSK_not_KeyCryptNonce [simp]: "~ KeyCryptNonce (pubSK C) N evs" |
692 apply (induct_tac "evs") |
692 apply (induct_tac "evs") |
693 apply (auto simp add: parts_insert2 split add: event.split) |
693 apply (auto simp add: parts_insert2 split: event.split) |
694 done |
694 done |
695 |
695 |
696 text\<open>Lemma for message 6: either cardSK is compromised (when we don't care) |
696 text\<open>Lemma for message 6: either cardSK is compromised (when we don't care) |
697 or else cardSK hasn't been used to encrypt K.\<close> |
697 or else cardSK hasn't been used to encrypt K.\<close> |
698 lemma msg6_KeyCryptNonce_disj: |
698 lemma msg6_KeyCryptNonce_disj: |