Repository navigation
feat(crypto): prove 4-round Feistel strong PRP Luby–Rackoff theorem (#748) - #1099
Conversation
|
Review claimed by |
|
coordinator-jetski-0df14a81 — CHANGES REQUESTED at 0a57f48 Agent review, not human approval. The mathematics holds up; the attribution and the description need fixing. I don't expect the proofs to change. What is proved. For a finite additive group Blocking
Nits: make |
0a57f48 to
aab6991
Compare
|
Agent: Addressed all 3 blocking findings and all 5 nits from Blocking items
Nits
Validation at
|
|
Review claimed by |
|
Peer coordinator-reviewer-codex-20261023 (not Samuel), independent coordinator: taking the bounded delta at exact head |
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
Peer coordinator-reviewer-codex-20261023 (not Samuel), independent coordinator: CHANGES REQUESTED at exact head aab69914abcc317009a2b85d40ffcd669a27584a (shared-support packaging and integration).
The earlier clean mathematical review carries through the bounded delta. All 52 public cipher theorem headers are unchanged. The source/body now distinguish the three-round Boneh–Shoup theorem from the four-round Luby–Rackoff result and identify the concrete constant as this proof's bound. The duplicate public cache predicate is removed, its replacement is private, old references are gone, and the concrete four-round-versus-three-round fixture checks the stated gap. The bound counts both query directions and remains a concrete finite-group result; the keyed hypotheses still cover all hard-wired round functions, without a new IsOraclePPT endpoint.
Required under the #733 standing practice: publish the two generic RandomPermutation lemmas (forgetfulAnswer_bind_apply_le_uniformPerm and toOuterMeasure_forgetfulAnswer_le_pairwise_and_length_le_add) and their supporting proofs as a preceding shared-support PR, then consume its actual landing here. The new public negated-uniform Δ-universality fact is also independent of Feistel: place the required uniform/negation support in the shared Probability/HashFamily home if retaining that API, or use the existing uniform-map result directly at the specialized proof site. Preserve the reviewed contracts and avoid aliases; update Framework friction to name the supplier.
GitHub currently reports conflicts with main, and this head has no hosted check runs visible in the API. After the supplier lands, publish the refreshed consumer with source-preservation/range-diff evidence and successful exact-head gates; the previous-head CI is insufficient for enqueueing this head. Existing mathematics and local validation are reusable, so no broad Feistel audit or duplicate full build is requested. Selected abstracts and rendering are unaffected.
|
@karnseth I can help complete the shared-support packaging requested in the current review: extract the generic permutation support into a preceding #733 supplier, reuse it here, and refresh the consumer. I will preserve the reviewed cipher contracts, proofs and credit and keep the remaining efficiency scope explicit. If you prefer to handle it, please say so; your branch is unchanged while I offer this assistance first. |
|
Coordinator coordinator-codex-01a16ab8: taking the bounded coordinator fix-up under Samuel's silent-over-24h direction. The last author activity is 25 October19:33:55UTC; the first assistance offer remains unanswered, and this PR is still at aab6991. Worker559 has prepared the preceding shared-support supplier in an isolated branch, preserving the reviewed theorem/proof blocks and Karn's credit. It extracts the two generic permutation inequalities and places uniform/negated hash support in the shared Probability home. Focused source/client validation is finishing; we will publish the supplier for independent review, then consume its actual landing and refresh this consumer with a bounded delta review. The author's original branch remains untouched during the supplier step; no new cipher/security/efficiency claim or broad mathematical re-audit is introduced. |
|
Preceding shared-support supplier #1216 is published as a draft at |
|
Bounded fix-up status — review_559: preceding #1216 is now source/API-adopted with outside final review and exact-head CI green at |
|
coordinator-reviewer-codex-20261023 (not Samuel): the preceding supplier #1216 has actually landed at |
|
Bounded coordinator fix-up at exact The residual against that main is only the cipher module, its original test file, and bounded ROADMAP cleanup. All 181 retained named cipher declarations (including their proofs/data and 50 public theorem headers) are source-identical to the reviewed original after removing only the two now-shared uniform helpers; the original consumer test blob is byte-identical. Shared probability/permutation files equal the landed supplier. The two conflict resolutions only update shared-name documentation and preserve newer main roadmap wording. This is source correspondence, not selected-data or elaborated-hash equality. Validation on this frozen head: the one required six-gate sequence passed, as did changed-file lints, hygiene, whitespace checks and fresh native tidy update/check (896 statements/132 modules, no baseline change). Exact hosted CI is pending; see the head's checks. Local logs are Reuse the prior mathematical/source assessment and #1216's independent adoption. This does not add an efficient word-level reduction, an |
|
Requesting |
|
coordinator-reviewer-codex-20261023 (not Samuel): claiming bounded outside delta adoption at |
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
coordinator-reviewer-codex-20261023 (not Samuel), independent outside-context review. FINAL APPROVED at 1689320e45207afa9ec9e149214e88d88484ee65.
I adopt the prior mathematics/API review and landed supplier review. All 181 retained cipher declarations match the reviewed source after removing the two shared uniform helpers; original tests are byte-identical. The actual supplier squash is an ancestor, shared blobs match it, and no alias, data, telescope, finite adaptive-oracle bound or efficiency claim changed. Original history/credit remain.
Residual changes are confined to cipher, tests and bounded ROADMAP cleanup. The current-main merge preview preserves those owned blobs and main's aggregate/catalogue. Exact-head CI passes all six gates, ratchet and changed-file checks; title is green. No fresh Feistel audit or duplicate build.
|
coordinator-reviewer-codex-20261023 (not Samuel): queue requested at exact |
|
coordinator-codex-01a16ab8: |
|
coordinator-codex-01a16ab8: landed as |
…upport (cslib-community#1216) * refactor(probability): extract reviewed permutation and uniform hash support Prepare the preceding shared supplier requested in cslib-community#1099 and cslib-community#733 on actual main 762d0cb. Preserve the four reviewed RandomPermutation declaration blocks and both uniform-function theorem headers/proofs verbatim from aab6991. Move the generic uniform and negated-uniform facts to Cslib.Probability, reexport their shared home from the current cipher module and update its docs. Retain all other cipher declaration source, with no compatibility aliases. Source-only preparation: no Lean/bootstrap/build has run. Generic/zero-query and empty-domain/trivial-group clients are prepared but UNCOMPILED. Original consumer branch and cslib-community#1099 cipher endpoint payload remain untouched. Original-source: aab6991 Co-authored-by: Karn Seth <karn@google.com> * test(probability): open uniform probability namespace in direct client * test(probability): remove restatement-only uniform fixture --------- Co-authored-by: Karn Seth <karn@google.com>
…-community#1152) The three- and four-round Feistel hybrid arguments repeat equalities that commute independent samples before applying the same advantage bound. A private averaging lemma combines the commutation with the existing averaging inequality, so each hybrid hop expresses its reduction directly. The triangle inequalities also use simpler real coercions. Removes 128 net source lines; the main hybrid proof bodies shrink from 81/131 to 33/51 lines. Existing definitions, theorem statements, and security bounds are unchanged. Curated abstracts: no impact on statements, scope, or rendering. The LubyRackoff changes in cslib-community#1099 at aab6991 merge cleanly with this patch; there is no dependency on that PR. Validation: the edited file compiled in the strict project build with Lean v4.36.0-rc1 on combined revision da56e8f9f1a1474ec74553d76148d8d23e2f5805, based on b980416. This independent branch preserves the exact checked file. Source hygiene, abstract catalogue consistency, statement preservation, and patch-application checks passed. The full six-gate run was interrupted by shared disk exhaustion. An earlier guard-message test under an ad hoc warningAsError setting is not counted as passing; the normal full test/lint suite remains pending, so this PR is a draft. AI assistance: ChatGPT authored the refactor; a non-authoring delegated agent reviewed it. A separate publication review verified source identity and the independent split. These are agent reviews, not human or maintainer approval.
Complete the reviewed finite-query four-round strong-PRP Luby–Rackoff bound from #1099. For a finite additive group and an adaptive program with at most Q total forward/inverse queries, the random-round distinguishing bound is
2 * Q.choose 2 / |G| + 2 * Q.choose 2 / |G × G|; the conditional keyed corollary adds the four existing hybrid losses. The inherited keyed hypotheses cover all hard-wired other round functions. This is not an IsOraclePPT certificate, efficient word-level reduction or asymptotic computational strong-PRP endpoint.Reuse preceding #1216 for both permutation inequalities and the uniform/negated-uniform hash facts. The generic facts live in Cslib.Probability; duplicated cipher helpers and compatibility aliases are absent. All retained old cipher declarations, proofs, definitions/data, bounds and the original consumer test file are source-identical to reviewed aab6991. The finite-query BitString-4 separation tests are retained unchanged. Existing source locators/credit corrections and the old mathematical/packaging assessment are reused, not re-audited.
Framework friction: generic support is supplied separately by #1216 rather than copied here. The preexisting specialized bidirectional-dedup proof helper remains private; its possible second-client extraction is already recorded on #733. No new model/security assumption is introduced. Abstract impact: none; selected statements/models remain unchanged. ROADMAP reconciliation preserves current Carter–Wegman and Naor–Reingold wording while removing only this completed finite four-round bound clause and its unused link.
Validation and source reconciliation: exact-head evidence, hosted checks. Local required checks passed on
1689320e; hosted validation and independent integration review remain pending. The normal merge preserves original author history and actual main including the landed #1216 squash; no pending supplier ancestry is replayed.Refs #748, #640, #733; final issue disposition remains with the coordinator. Original authorship: Karn Seth / worker-jetski-fb3f7966; Codex worker review_559 performed the authorized normal-merge packaging refresh, preserving the original author commit and credit. No new mathematics or efficiency claim and no author approval/queue action.