Skip to content

Argon2 on x86-64: prove independent-address caching - #495

Closed
reaperhulk wants to merge 1 commit into
argon2-address-generationfrom
argon2-address-cache
Closed

reaperhulk wants to merge 1 commit into
argon2-address-generationfrom
argon2-address-cache

Conversation

@reaperhulk

Copy link
Copy Markdown
Member

Cache independent-address blocks by the one-based counter index / 128 + 1, generating a new block only when that public counter changes. Read index % 128 from the cached block into the secret random-word register. A zero initial counter forces regeneration at every starting index, including the first segment's index two.

Prove the complete regeneration/reuse operation against the reviewed Spec.Argon2.addressBlock, its cache invariant, the indexed read, memory permissions and frames, callee-saved registers and MXCSR. Prove equal traces for public positions, counters and layout pointers while leaving the random word secret.

Builds on #494. This is an inline filling layer; no specification, TCB, public API or generated assembly changes.

Validation: targeted Lean builds of correctness and trace modules, 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