law padded_compress_correct

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/keccak/sponge.bend:1209

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/keccak/sponge.bend as Sponge
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/types.bend as T
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/keccak.bend as K
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/permutation.bend as P
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/keccak/permutation.bend as F
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/keccak/main.bend as R

1209law padded_compress_correct:
1210  for +r: Nat
1211  for +remain: Nat
1212  for +s: T.State
1213  for +w0: U32
1214  for +w1: U32
1215  for +w2: U32
1216  for +w3: U32
1217  for +w4: U32
1218  for +w5: U32
1219  for +w6: U32
1220  for +w7: U32
1221  for +w8: U32
1222  for +w9: U32
1223  for +w10: U32
1224  for +w11: U32
1225  for +w12: U32
1226  for +w13: U32
1227  for +w14: U32
1228  for +w15: U32
1229  for +w16: U32
1230  for +w17: U32
1231  for +w18: U32
1232  for +w19: U32
1233  for +w20: U32
1234  for +w21: U32
1235  for +w22: U32
1236  for +w23: U32
1237  for +w24: U32
1238  for +w25: U32
1239  for +w26: U32
1240  for +w27: U32
1241  for +w28: U32
1242  for +w29: U32
1243  for +w30: U32
1244  for +w31: U32
1245  for +w32: U32
1246  for +w33: U32
1247  {P.rounds(r,0n,K.mix(s,K.pad_word(w0,0n,remain),K.pad_word(w1,4n,remain),K.pad_word(w2,8n,remain),K.pad_word(w3,12n,remain),K.pad_word(w4,16n,remain),K.pad_word(w5,20n,remain),K.pad_word(w6,24n,remain),K.pad_word(w7,28n,remain),K.pad_word(w8,32n,remain),K.pad_word(w9,36n,remain),K.pad_word(w10,40n,remain),K.pad_word(w11,44n,remain),K.pad_word(w12,48n,remain),K.pad_word(w13,52n,remain),K.pad_word(w14,56n,remain),K.pad_word(w15,60n,remain),K.pad_word(w16,64n,remain),K.pad_word(w17,68n,remain),K.pad_word(w18,72n,remain),K.pad_word(w19,76n,remain),K.pad_word(w20,80n,remain),K.pad_word(w21,84n,remain),K.pad_word(w22,88n,remain),K.pad_word(w23,92n,remain),K.pad_word(w24,96n,remain),K.pad_word(w25,100n,remain),K.pad_word(w26,104n,remain),K.pad_word(w27,108n,remain),K.pad_word(w28,112n,remain),K.pad_word(w29,116n,remain),K.pad_word(w30,120n,remain),K.pad_word(w31,124n,remain),K.pad_word(w32,128n,remain),U32.or(K.pad_word(w33,132n,remain),2147483648))) == F.rounds(r,0n,R.inject(s,R.prepare(True{},[w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31,w32,w33],remain))) : T.State}

Uses (16)

Used by (1)