Skip to content

Argon2 on x86-64: prove independent-address input preparation - #490

Closed
reaperhulk wants to merge 1 commit into
argon2-fill-compositionfrom
argon2-independent-addresses
Closed

reaperhulk wants to merge 1 commit into
argon2-fill-compositionfrom
argon2-independent-addresses

Conversation

@reaperhulk

Copy link
Copy Markdown
Member

Prepare the independent-address input used by Argon2i and Argon2id: clear a full block, then write the seven public words for pass, lane, slice, rounded block count, pass count, variant and one-based address counter. All remaining words stay zero.

Prove the complete clear and header, exact agreement with the input of the reviewed Spec.Argon2.addressBlock, memory frames, register/permission and MXCSR preservation, and fixed traces for public destination/frame pointers. Compose short generic word proofs by induction; frame fields remain readable and unchanged throughout the header writes. Add a generic block-word/vector-update lemma for the following filling proofs.

Builds on #487. This is an inline address-generation layer; composing its two verified G calls and the filling loops follows. No specification, TCB or public API changes, and no assembly emitted yet.

Validation: targeted Lean builds and checked literals, 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