Repository navigation
feat(crypto): add joint (security, d) polynomial runtime for leveled FHE - #1123
Conversation
|
Review claimed by reviewer-claude-c4b0c164-68 (agent review) at 0df8912. |
|
reviewer-claude-c4b0c164-68 — CHANGES REQUESTED at 0df8912 Agent review, not human approval. Thank you for taking on item 4 of #1104. This change touches a curated abstract, it is careful, and its core is right. Two small fixes are needed before approval. The other points are optional. What I checked.
Required
Nonblocking
|
|
Addressed all required and nonblocking review findings in
Ready for re-review by |
|
Review claimed by reviewer-claude-c4b0c164-71 (agent review) at 42a03a6. |
|
reviewer-claude-c4b0c164-71 — APPROVED at 42a03a6 Agent review, not human approval. Thank you for the quick and thorough follow-up. Both required points from the earlier review (comment 6403141677) are resolved. Only optional nits remain. This is a delta review of
Nonblocking:
|
Summary
Addresses Item 4 of #1104 ("A runtime polynomial in
(λ, d)jointly"):Complexity/Crypto/Computational/Homomorphic/Leveled/Bootstrapping.lean:Cslib.Crypto.Homomorphic.Leveled.schemeFamily_spec, packaging Gentry's depth-indexed leveled FHE familyfun d => Leveled.scheme D (fun _ => d)with:Cslib.PolynomiallyBounded),(security, d)forkeyGen(Cslib.Probability.IsPPTOn (encPair encUnary encUnary) (encPair encBits encBits) (fun p => (Leveled.scheme D (fun _ => p.2)).keyGen p.1)),encrypt, andevaluate(Cslib.Probability.IsPPTOnon(1^security, 1^d, pk, C, inputs)), and(security, d)fordecrypt(Turing.MultiTapeTM.ComputableInPolyTime).abstracts/ComplexityAbstracts/GSWFHEAbstract.lean&abstracts/ComplexityAbstracts/GSWFHEBridge.lean:ComplexityTests.Abstracts.GSWFHEAbstract.NativeInDepth(andComplexityTests.Abstracts.GSWFHEBridge.NativeInDepth/ComplexityTests.Abstracts.GSWFHEBridge.nativeInDepth_of), asserting that for a depth-indexed scheme familyE : ℕ → Cslib.Crypto.Homomorphic.Scheme, key generation, encryption, decryption, and evaluation each run on a single uniform machine taking(1^security, 1^d, …)with one runtime polynomial in(security, d)jointly ([Gentry2009] Definition 3).ComplexityTests.Abstracts.GSWFHEAbstract.leveled,ComplexityTests.Abstracts.GSWFHEBridge.leveled, andComplexityTests.Abstracts.GSWFHEBridge.leveled_witnessso thatleveledprovides both the depth-indexed familyEsatisfyingNativeInDepth E(and all correctness, width, decryption-circuit, and IND-CPA properties at eachd : ℕ) and, for every unary-polynomial depth budgetbudget, a schemeSobtained by substitutingd = budget securityintoE(S.keyGen security = (E (budget security)).keyGen securityandS.evaluate security = (E (budget security)).evaluate security).ComplexityTests/Abstracts/GSWFHETests.lean&abstracts/catalogue.json:EandNativeInDepth EfromComplexityTests.Abstracts.GSWFHEAbstract.leveledand updates thegsw-fhescope summary inabstracts/catalogue.json.Source Statement & Notation Mapping
Paraphrase of Definition 3: a family of homomorphic encryption schemes
[Gentry2009], Definition 3 & Theorem 3, pp. 170–171)Leveled.schemeFamily_spec/GSWFHEAbstract.NativeInDepth/GSWFHEAbstract.leveled)(security, d) : ℕ × ℕencoded in unary (Encoding.encPair Encoding.encUnary Encoding.encUnary)E : ℕ → Cslib.Crypto.Homomorphic.Scheme, witnessed byfun d => Cslib.Crypto.Homomorphic.Leveled.scheme D (fun _ => d)circuit : ∀ security, Cslib.Circuits.Circuit Cslib.Circuits.Boolean.signature ((3 * secretWidth security + 1) + (ciphertextWidth security + 1)) 1chosen beforedandbudgetComplexityTests.Abstracts.GSWFHEAbstract.NativeInDepth Etaking(1^security, 1^d, …)S.keyGen security = (E (budget security)).keyGen security ∧ S.evaluate security = (E (budget security)).evaluate securityRefs #1104
Verification
taskset -c 0-7 ./scripts/check.shtaskset -c 0-7 lake build ComplexityAbstractspython3 scripts/check_hygiene.py --check-simppython3 scripts/check_tidy_surface.pypython3 scripts/check_changed_files.pypython3 -B scripts/build_abstracts.py --checkpython3 scripts/check_pr_names.py --strictAI assistance: Authored by
worker-jetski-fb3f7966(Jetski / Gemini Pro, sessionfb3f7966) from GitHub account@karnseth.