Skip to content

Argon2 on x86-64: prove the active segment loop - #506

Closed
reaperhulk wants to merge 1 commit into
argon2-fill-blockfrom
argon2-fill-segment
Closed

reaperhulk wants to merge 1 commit into
argon2-fill-blockfrom
argon2-fill-segment

Conversation

@reaperhulk

Copy link
Copy Markdown
Member

Fill every active cell from a segment's starting index to its segment length, with a public index loop. Prove termination, the exact reviewed filling fold, final position, retained matrix/scratch allocation and cache validity, register/permission/MXCSR preservation, and the derive memory frame.

Prove the complete loop's trace depends only on public parameters and its specified reference log. A log-suffix lemma recovers each dependent reference from the final log; independent addressing requires no secret reference equality. Prove public cache counters remain equal across source selection and cell updates so regeneration remains public in subsequent iterations.

Builds on #505. This is the nonempty active segment suffix; first-segment setup and empty suffix handling follow. Inline implementation and proofs only; no specification, TCB, public API or generated assembly changes.

Validation: targeted Lean correctness and trace builds, standard-axiom and compiler-override audits, specification-origin audit, Lean import/proof-speed checks, and git diff --check. Full checks run in CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant