Laws.Inverse.unit: law of bend-collections-laws-crypto@1.0.0.0 Import: import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/laws.bend as Laws Lines 47-53 of bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/laws.bend: https://jend.leeeet.dev/read.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/laws.bend&start_line=47&end_line=53 import Base import bend-collections-laws-crypto@1.0.0.0/spec/crypto/aes/aes.bend as S # The specification's inverse (a^254) is the multiplicative inverse of # FIPS 197 section 4.4: a * a^-1 = {01} for every nonzero byte, and {00} # goes to {00} (5.1.1); so S.sbox is "inverse, then affine map". law Inverse.unit: for +x: U32 for +h: {U32.is_eq(U32.and(255, x), 0) == False{} : Bool} {S.mul(x, S.inverse(x)) == 1 : U32} Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_eq https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/inverse.bend&name=inverse_unit https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/spec/crypto/aes/aes.bend&name=inverse https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/spec/crypto/aes/aes.bend&name=mul