LAWS.modes64_ecb_blocks: law of bend-osdev-cipher-core@0.1.0.0 Import: import bend-osdev-cipher-core@0.1.0.0/LAWS.bend as LAWS Lines 79-90 of bend-osdev-cipher-core@0.1.0.0/LAWS.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-cipher-core@0.1.0.0/LAWS.bend&start_line=79&end_line=90 import Base import bend-osdev-cipher-core@0.1.0.0/cipher_core.bend as L import bend-osdev-cipher-core@0.1.0.0/modes64.bend as X # The 64-bit modes over any cipher: decryption after encryption on blocks is # the structural forms' (X.m64.ecb, X.m64.cbc.enc, X.m64.cbc.dec), over # which a cipher's own round trip proves the mode's by induction; and on # bytes, for the bytes of a list of blocks under the bytes of an IV, it is # the block layer's law modes64_ecb_blocks: for ~K: Data for ~enc: K -> L.LcBlock64 -> L.LcBlock64 for ~dec: K -> L.LcBlock64 -> L.LcBlock64 for +k: K for +bs: List<&2, L.LcBlock64> {X.m64.ecb(~K, ~dec, k, X.m64.ecb(~K, ~enc, k, bs)) == X.Lc64.ecb_decrypt_blocks(~K, ~dec, k, X.Lc64.ecb_encrypt_blocks(~K, ~enc, k, bs)) : List<&2, L.LcBlock64>} Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/PROOF.bend&name=ecb_ref https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/cipher_core.bend&name=LcBlock64 https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/modes64.bend&name=Lc64.ecb_decrypt_blocks https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/modes64.bend&name=Lc64.ecb_encrypt_blocks https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/modes64.bend&name=m64.ecb https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/modes64.bend&name=m64.ecb.go https://jend.leeeet.dev/definition.txt?path=bend-osdev-cipher-core@0.1.0.0/modes64.bend&name=m64.rev_onto