proposition: Theorem HMAC_PRF: PRF_Advantage (Rnd b) (Rnd c) HMAC _ _ A <= RKA_Advantage _ _ _ ({ 0 , 1 }^b) ({ 0 , 1 }^c) (dual_f h) (BVxor b) (HMAC_RKA_A h iv fpad opad ipad A_GHMAC) + (PRF_Advantage ({ 0 , 1 }^c) ({ 0 , 1 }^c) h _ _ (PRF_h_A h_star_pad A_GHMAC) + cAU.Adv_WCR _ _ h_star ({ 0 , 1 }^c) (Y (au_F_A A_GHMAC))).
proof: Proof. rewrite GHMAC_to_HMAC. eapply leRat_trans. apply GHMAC_PRF. trivial. unfold A_GHMAC. econstructor. econstructor. trivial. intuition. econstructor. econstructor. intuition. econstructor. wftac. intuition. econstructor. wftac. eapply ratAdd_leRat_compat; try reflexivity. eapply ratAdd_leRat_compat; try reflexivity. eapply WCR_h_star_pad_impl_h_star. Qed.
imports: FCF HMAC_spec PRF NMAC_to_HMAC hF GHMAC_PRF