law aes256_forgery_t

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/aes/api.bend:499

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/api.bend as Api
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/aesgcm.bend as GCM
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/aes/gcm.bend as G

499law aes256_forgery_t:
500  for +key: List<&2, U32>
501  for +h: {List.length(&2, U32, key) == 32n : Nat}
502  for +n0: U32
503  for +n1: U32
504  for +n2: U32
505  for +n3: U32
506  for +n4: U32
507  for +n5: U32
508  for +n6: U32
509  for +n7: U32
510  for +n8: U32
511  for +n9: U32
512  for +n10: U32
513  for +n11: U32
514  for +aad: List<&2, U32>
515  for +c: List<&2, U32>
516  for +t: List<&2, U32>
517  for +ht: {List.length(&2, U32, t) == 16n : Nat}
518  for ne: {t != G.aes_tag(key, [n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11], aad, c) : List<&2, U32>}
519  {GCM.aes256_gcm_decrypt(key, [n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11], aad, List.append(&2, U32, c, t)) == None{} : Maybe<&2, List<&2, U32>>}

Uses (11)

Used by (1)