src/HOL/Auth/Smartcard/ShoupRubinBella.thy
changeset 69597 ff784d5a5bfb
parent 62343 24106dc44def
equal deleted inserted replaced
69596:c8a2755bf220 69597:ff784d5a5bfb
  1317       "evs \<in> srb \<Longrightarrow> Outpts (Card Server) P X \<notin> set evs"
  1317       "evs \<in> srb \<Longrightarrow> Outpts (Card Server) P X \<notin> set evs"
  1318 apply (erule srb.induct)
  1318 apply (erule srb.induct)
  1319 apply auto
  1319 apply auto
  1320 done
  1320 done
  1321 
  1321 
  1322 text\<open>@{term step2_integrity} also is a reliability theorem\<close>
  1322 text\<open>\<^term>\<open>step2_integrity\<close> also is a reliability theorem\<close>
  1323 lemma Says_Server_message_form: 
  1323 lemma Says_Server_message_form: 
  1324      "\<lbrakk> Says Server A \<lbrace>Pk, Certificate\<rbrace> \<in> set evs;  
  1324      "\<lbrakk> Says Server A \<lbrace>Pk, Certificate\<rbrace> \<in> set evs;  
  1325          evs \<in> srb \<rbrakk>                   
  1325          evs \<in> srb \<rbrakk>                   
  1326      \<Longrightarrow> \<exists> B. Pk = Nonce (Pairkey(A,B)) \<and>  
  1326      \<Longrightarrow> \<exists> B. Pk = Nonce (Pairkey(A,B)) \<and>  
  1327          Certificate = Crypt (shrK A) \<lbrace>Nonce (Pairkey(A,B)), Agent B\<rbrace>"
  1327          Certificate = Crypt (shrK A) \<lbrace>Nonce (Pairkey(A,B)), Agent B\<rbrace>"
  1331 apply (blast dest!: Outpts_Server_not_evs)+
  1331 apply (blast dest!: Outpts_Server_not_evs)+
  1332 done
  1332 done
  1333 (*cannot be made useful to A in form of a Gets event*)
  1333 (*cannot be made useful to A in form of a Gets event*)
  1334 
  1334 
  1335 text\<open>
  1335 text\<open>
  1336   step4integrity is @{term Outpts_A_Card_form_4}
  1336   step4integrity is \<^term>\<open>Outpts_A_Card_form_4\<close>
  1337 
  1337 
  1338   step7integrity is @{term Outpts_B_Card_form_7}
  1338   step7integrity is \<^term>\<open>Outpts_B_Card_form_7\<close>
  1339 \<close>
  1339 \<close>
  1340 
  1340 
  1341 lemma step8_integrity: 
  1341 lemma step8_integrity: 
  1342      "\<lbrakk> Says B A \<lbrace>Nonce Nb, Certificate\<rbrace> \<in> set evs;  
  1342      "\<lbrakk> Says B A \<lbrace>Nonce Nb, Certificate\<rbrace> \<in> set evs;  
  1343          B \<noteq> Server; B \<noteq> Spy; evs \<in> srb \<rbrakk>                   
  1343          B \<noteq> Server; B \<noteq> Spy; evs \<in> srb \<rbrakk>                   
  1348 prefer 18 apply (fastforce dest: Outpts_A_Card_form_10)
  1348 prefer 18 apply (fastforce dest: Outpts_A_Card_form_10)
  1349 apply auto
  1349 apply auto
  1350 done
  1350 done
  1351 
  1351 
  1352 
  1352 
  1353 text\<open>step9integrity is @{term Inputs_A_Card_form_9}
  1353 text\<open>step9integrity is \<^term>\<open>Inputs_A_Card_form_9\<close>
  1354         step10integrity is @{term Outpts_A_Card_form_10}.
  1354         step10integrity is \<^term>\<open>Outpts_A_Card_form_10\<close>.
  1355 \<close>
  1355 \<close>
  1356 
  1356 
  1357 
  1357 
  1358 lemma step11_integrity: 
  1358 lemma step11_integrity: 
  1359      "\<lbrakk> Says A B (Certificate) \<in> set evs; 
  1359      "\<lbrakk> Says A B (Certificate) \<in> set evs;