Skip to content

Commit 6b66a51

Browse files
committed
new taxonomy, site refactor
1 parent c753dc6 commit 6b66a51

File tree

85 files changed

+2252
-766
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2252
-766
lines changed

.claude/skills/pir-paper-analyzer/SKILL.md

Lines changed: 53 additions & 57 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,71 @@
22

33
## PIR Engineering Notes
44

5-
**TLDR**: [Deep reading](https://gist.github.com/0xalizk/50f0d78712c6afe952ab2f9a2cc07434) of PIR papers to extract eng. notes ([eg](research/Group.A.FHE.Based.PIR/thorpir_2024/thorpir_2024_notes.md)) and [visualize](https://0xalizk.github.io/PIR-Eng-Notes/) comparative benchs/asymptotics. The correctness of these notes are [continuously validated](checkups/README.md#checking-correctness-of-cited-claims):
6-
- Scheme grouping [based on this taxonomy](https://hackmd.io/@keewoolee/SJyGoXCzZe#Taxonomy)
5+
**TLDR**: [Deep reading](https://gist.github.com/0xalizk/50f0d78712c6afe952ab2f9a2cc07434) of PIR papers to extract eng. notes ([eg](research/Group.2b.Interactive.Hint/thorpir_2024/thorpir_2024_notes.md)) and [visualize](https://0xalizk.github.io/PIR-Eng-Notes/) comparative benchs/asymptotics. The correctness of these notes are [continuously validated](checkups/README.md#checking-correctness-of-cited-claims):
6+
- Scheme grouping [based on this taxonomy](https://notes.ethereum.org/U9xM4VOPR9isPK7lOZJUQg?view#41-Taxonomy) (client state architecture)
77
- Multi-server schemes are excluded
8-
- Engineering notes ([eg](/research/Group.A.FHE.Based.PIR/thorpir_2024/thorpir_2024_notes.md)) for 28 Private Information Retrieval (PIR) research papers with [validated](https://github.com/0xalizk/PIR-Eng-Notes/tree/main/.claude/skills/footnotes-checkup) [[2]](https://github.com/0xalizk/PIR-Eng-Notes/tree/main/checkups#checking-correctness-of-cited-claims) footnotes [eg](https://github.com/0xalizk/PIR-Eng-Notes/blob/main/research/Group.A.FHE.Based.PIR/thorpir_2024/thorpir_2024_notes.md#user-content-fn-1-3308a358ac26db24fd1f223243da4392)
8+
- Engineering notes ([eg](research/Group.2b.Interactive.Hint/thorpir_2024/thorpir_2024_notes.md)) for 30 Private Information Retrieval (PIR) scheme entries with [validated](https://github.com/0xalizk/PIR-Eng-Notes/tree/main/.claude/skills/footnotes-checkup) [[2]](https://github.com/0xalizk/PIR-Eng-Notes/tree/main/checkups#checking-correctness-of-cited-claims) footnotes
99
- Per-scheme notes are produced by reading the source PDF (incl. tables/figures which Claude can do) using a [standardized methodology](.claude/skills/pir-paper-analyzer/SKILL.md).
10+
- Classification rationale for each scheme is documented in [research/README.md](research/README.md)
1011

1112
| [![Communication](docs/img/communication.png)](https://0xalizk.github.io/PIR-Eng-Notes/reported/#communication) | [![Server Performance](docs/img/server-perf.png)](https://0xalizk.github.io/PIR-Eng-Notes/reported/#server-perf) | [![Offline & Storage](docs/img/offline-storage.png)](https://0xalizk.github.io/PIR-Eng-Notes/reported/#offline-storage) |
1213
|:---:|:---:|:---:|
1314

14-
### Group A — FHE-Based PIR
15+
### Group 1a — Stateless Client, Stateful Server
16+
17+
Server caches per-client cryptographic material (evaluation keys). Queries linkable across sessions.
1518

1619
| Paper               | Key Contribution |
1720
|-------------------------------|-----------------|
18-
| 2025 [OnionPIRv2](research/Group.A.FHE.Based.PIR/onionpirv2_2025/onionpirv2_2025_notes.md) | Multi-base decomposition + NTT-domain DB engineering |
19-
| 2024 [ThorPIR](research/Group.A.FHE.Based.PIR/thorpir_2024/thorpir_2024_notes.md) | Client-dependent FHE preprocessing (functionally Group D) |
20-
| 2022 [FrodoPIR](research/Group.A.FHE.Based.PIR/frodopir_2022/frodopir_2022_notes.md) | Plain LWE with client-independent global hint (functionally Group C) |
21-
| 2022 [Spiral](research/Group.A.FHE.Based.PIR/spiral_2022/spiral_2022_notes.md) | Ciphertext translation (Regev-to-GSW), 4 Pareto-optimal variants |
22-
| 2022 [CwPIR](research/Group.A.FHE.Based.PIR/cwpir_2022/cwpir_2022_notes.md) | Constant-weight equality operators, native keyword PIR |
23-
| 2021 [FastPIR/Addra](research/Group.A.FHE.Based.PIR/addra_2021/addra_2021_notes.md) | System: metadata-private voice via one-hot BFV selection |
24-
| 2021 [OnionPIR](research/Group.A.FHE.Based.PIR/onionpir_2021/onionpir_2021_notes.md) | External products for noise control, first <1s at scale |
25-
| 2019 [MulPIR](research/Group.A.FHE.Based.PIR/mulpir_2019/mulpir_2019_notes.md) | GSW-based compressible FHE for high communication rate |
26-
| 2018 [SealPIR](research/Group.A.FHE.Based.PIR/sealpir_2018/sealpir_2018_notes.md) | Query compression via BFV oblivious expansion (paradigm shift) |
27-
| 2016 [XPIR-2016](research/Group.A.FHE.Based.PIR/xpir_2016/xpir_2016_notes.md) | Ring-LWE system with auto-optimization of parameters |
28-
| 2014 [XPIR-2014](research/Group.A.FHE.Based.PIR/xpir_2014/xpir_2014_notes.md) | First practical NTRU-based single-server cPIR |
29-
30-
### Group B — Stateless Single Server PIR
21+
| 2026 [NPIR](research/Group.1a.Stateless.Client.Stateful.Server/npir_2026/NPIR_2026_notes.md) | NTRU packing for high communication rate |
22+
| 2025 [VIA-BC](research/Group.1b.Stateless.Client.Stateless.Server/via_2025/VIA_2025_notes.md) | VIA-C/VIA-B variants: LWE-to-RLWE query compression + batch repacking; 14.8 MB per-client eval keys |
23+
| 2025 [OnionPIRv2](research/Group.1a.Stateless.Client.Stateful.Server/onionpirv2_2025/onionpirv2_2025_notes.md) | Multi-base decomposition + NTT-domain DB engineering |
24+
| 2025 [Pirouette](research/Group.1a.Stateless.Client.Stateful.Server/pirouette_2025/Pirouette_2025_notes.md) | 36-byte queries via blind rotation |
25+
| 2024 [WhisPIR](research/Group.1a.Stateless.Client.Stateful.Server/whispir_2024/WhisPIR_2024_notes.md) | BGV-based, non-compact BGV optimization |
26+
| 2024 [Respire](research/Group.1a.Stateless.Client.Stateful.Server/respire_2024/Respire_2024_notes.md) | Small-record optimization, 5-ring architecture |
27+
| 2022 [Spiral](research/Group.1a.Stateless.Client.Stateful.Server/spiral_2022/spiral_2022_notes.md) | Ciphertext translation (Regev-to-GSW), 4 Pareto-optimal variants |
28+
| 2022 [CwPIR](research/Group.1a.Stateless.Client.Stateful.Server/cwpir_2022/cwpir_2022_notes.md) | Constant-weight equality operators, native keyword PIR |
29+
| 2021 [FastPIR/Addra](research/Group.1a.Stateless.Client.Stateful.Server/addra_2021/addra_2021_notes.md) | System: metadata-private voice via one-hot BFV selection |
30+
| 2021 [OnionPIR](research/Group.1a.Stateless.Client.Stateful.Server/onionpir_2021/onionpir_2021_notes.md) | External products for noise control, first <1s at scale |
31+
| 2019 [MulPIR](research/Group.1a.Stateless.Client.Stateful.Server/mulpir_2019/mulpir_2019_notes.md) | GSW-based compressible FHE for high communication rate |
32+
| 2018 [SealPIR](research/Group.1a.Stateless.Client.Stateful.Server/sealpir_2018/sealpir_2018_notes.md) | Query compression via BFV oblivious expansion (paradigm shift) |
33+
| 2016 [XPIR-2016](research/Group.1a.Stateless.Client.Stateful.Server/xpir_2016/xpir_2016_notes.md) | Ring-LWE system with auto-optimization of parameters |
34+
| 2014 [XPIR-2014](research/Group.1a.Stateless.Client.Stateful.Server/xpir_2014/xpir_2014_notes.md) | First practical NTRU-based single-server cPIR |
35+
36+
### Group 1b — Stateless Client, Stateless Server
37+
38+
No per-client state anywhere. Server preprocesses DB into a shared structure.
3139

3240
| Paper &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Key Contribution |
3341
|-------------------------------|-----------------|
34-
| 2026 [NPIR](research/Group.B.Stateless.Single.Server.PIR/npir_2026/NPIR_2026_notes.md) | NTRU packing for high communication rate |
35-
| 2025 [VIA](research/Group.B.Stateless.Single.Server.PIR/via_2025/VIA_2025_notes.md) | DMux-CMux architecture, 3 variants (VIA/VIA-C/VIA-B) |
36-
| 2025 [InsPIRe](research/Group.B.Stateless.Single.Server.PIR/inspire_2025/InsPIRe_2025_notes.md) | InspiRING ring packing, polynomial evaluation |
37-
| 2025 [Pirouette](research/Group.B.Stateless.Single.Server.PIR/pirouette_2025/Pirouette_2025_notes.md) | 36-byte queries via blind rotation |
38-
| 2024 [WhisPIR](research/Group.B.Stateless.Single.Server.PIR/whispir_2024/WhisPIR_2024_notes.md) | BGV-based stateless PIR, non-compact BGV optimization |
39-
| 2024 [Respire](research/Group.B.Stateless.Single.Server.PIR/respire_2024/Respire_2024_notes.md) | Small-record optimization, 5-ring architecture |
40-
| 2024 [YPIR](research/Group.B.Stateless.Single.Server.PIR/ypir_2024/YPIR_2024_notes.md) | Memory-bandwidth-limited throughput, CDKS packing |
41-
| 2023 [HintlessPIR](research/Group.B.Stateless.Single.Server.PIR/hintlesspir_2023/HintlessPIR_2023_notes.md) | Composable RLWE preprocessing, LinPIR primitive |
42+
| 2025 [VIA](research/Group.1b.Stateless.Client.Stateless.Server/via_2025/VIA_2025_notes.md) | DMux-CMux architecture, fully hintless (base variant) |
43+
| 2025 [InsPIRe](research/Group.1b.Stateless.Client.Stateless.Server/inspire_2025/InsPIRe_2025_notes.md) | InspiRING ring packing, polynomial evaluation |
44+
| 2024 [YPIR](research/Group.1b.Stateless.Client.Stateless.Server/ypir_2024/YPIR_2024_notes.md) | Memory-bandwidth-limited throughput, CDKS packing |
45+
| 2023 [HintlessPIR](research/Group.1b.Stateless.Client.Stateless.Server/hintlesspir_2023/HintlessPIR_2023_notes.md) | Composable RLWE preprocessing, LinPIR primitive |
46+
47+
### Group 2a — Download-Hint
4248

43-
### Group C — Client-Independent Preprocessing
49+
Client downloads server-computed global hint. Hint generation is server→client only (one-directional).
4450

4551
| Paper &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Key Contribution |
4652
|-------------------------------|-----------------|
47-
| 2026 [IncrementalPIR](research/Group.C.Client.Independent.Preprocessing/incrementalpir_2026/IncrementalPIR_2026_notes.md) | Entry-level incremental preprocessing for SimplePIR |
48-
| 2024 [VeriSimplePIR](research/Group.C.Client.Independent.Preprocessing/verisimplepir_2024/VeriSimplePIR_2024_notes.md) | Verifiability via SIS commitments + VLHE |
49-
| 2022 [DoublePIR](research/Group.C.Client.Independent.Preprocessing/simplepir_doublepir_2022/SimplePIR_DoublePIR_2022_notes.md) | Compressed hints via LWE-on-LWE composition |
50-
| 2022 [SimplePIR](research/Group.C.Client.Independent.Preprocessing/simplepir_doublepir_2022/SimplePIR_DoublePIR_2022_notes.md) | 10 GB/s throughput via plain LWE matrix-vector multiply |
53+
| 2026 [IncrementalPIR](research/Group.2a.Download.Hint/incrementalpir_2026/IncrementalPIR_2026_notes.md) | Entry-level incremental preprocessing for SimplePIR |
54+
| 2024 [VeriSimplePIR](research/Group.2a.Download.Hint/verisimplepir_2024/VeriSimplePIR_2024_notes.md) | Verifiability via SIS commitments + VLHE |
55+
| 2022 [FrodoPIR](research/Group.2a.Download.Hint/frodopir_2022/frodopir_2022_notes.md) | Plain LWE with client-independent global hint |
56+
| 2022 [DoublePIR](research/Group.2a.Download.Hint/simplepir_doublepir_2022/SimplePIR_DoublePIR_2022_notes.md) | Compressed hints via LWE-on-LWE composition |
57+
| 2022 [SimplePIR](research/Group.2a.Download.Hint/simplepir_doublepir_2022/SimplePIR_DoublePIR_2022_notes.md) | 10 GB/s throughput via plain LWE matrix-vector multiply |
58+
59+
### Group 2b — Interactive-Hint
5160

52-
### Group D — Client-Dependent Preprocessing
61+
Hint generation requires client↔server communication. Only category achieving sublinear online server time.
5362

5463
| Paper &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Key Contribution |
5564
|-------------------------------|-----------------|
56-
| 2024 [WangRen](research/Group.D.Client.Dependent.Preprocessing/wangren_2024/WangRen_2024_notes.md) | Tight ST = O(nw) tradeoff (theory) |
57-
| 2024 [Plinko](research/Group.D.Client.Dependent.Preprocessing/plinko_2024/Plinko_2024_notes.md) | Invertible PRFs, Õ(1) updates (theory) |
58-
| 2024 [RMS24](research/Group.D.Client.Dependent.Preprocessing/rms24_2024/RMS24_2024_notes.md) | Dummy subsets, standard correctness |
59-
| 2023 [Piano](research/Group.D.Client.Dependent.Preprocessing/piano_2023/Piano_2023_notes.md) | First practical sublinear-server, PRF-only |
65+
| 2024 [ThorPIR](research/Group.2b.Interactive.Hint/thorpir_2024/thorpir_2024_notes.md) | Client-dependent FHE preprocessing |
66+
| 2024 [WangRen](research/Group.2b.Interactive.Hint/wangren_2024/WangRen_2024_notes.md) | Tight ST = O(nw) tradeoff (theory) |
67+
| 2024 [Plinko](research/Group.2b.Interactive.Hint/plinko_2024/Plinko_2024_notes.md) | Invertible PRFs, Õ(1) updates (theory) |
68+
| 2024 [RMS24](research/Group.2b.Interactive.Hint/rms24_2024/RMS24_2024_notes.md) | Dummy subsets, standard correctness |
69+
| 2023 [Piano](research/Group.2b.Interactive.Hint/piano_2023/Piano_2023_notes.md) | First practical sublinear-server, PRF-only |
6070

6171
### Group X — Extensions
6272

@@ -65,13 +75,4 @@
6575
| 2025 [DistributionalPIR](research/Group.X.Extensions/distributionalpir_2025/DistributionalPIR_2025_notes.md) | Distribution-dependent PIR model + compiler framework |
6676
| 2019 [KeywordPIR](research/Group.X.Extensions/keywordpir_2019/KeywordPIR_2019_notes.md)&#8201;[^1] | Comparison of SealPIR, MulPIR, Gentry-Ramzan for keyword PIR |
6777

68-
[^1]: The "MulPIR" referenced in KeywordPIR is the Ali et al. [[1]](https://eprint.iacr.org/2019/1483) implementation of Gentry & Halevi's "Compressible FHE with Applications to PIR" [[2]](https://eprint.iacr.org/2019/733), which is already covered under [mulpir_2019](research/Group.A.FHE.Based.PIR/mulpir_2019/mulpir_2019_notes.md#mulpir--engineering-notes). Open-source implementations: [[3](https://github.com/apple/swift-homomorphic-encryption)] [[4](https://github.com/tlepoint/fhe.rs)].
69-
70-
### Note: schemes below span multiple groups
71-
72-
| &nbsp; &nbsp; &nbsp; &nbsp; $\color{darkorange}{\textsf{Scheme}}$ &nbsp; &nbsp; &nbsp; &nbsp; | $\color{darkorange}{\textsf{Why}}$ |
73-
|:----------------------------------------------------------------------:|-----|
74-
| 2025&nbsp;[VIA](research/Group.B.Stateless.Single.Server.PIR/via_2025/VIA_2025_notes.md) | Base VIA is Group B (hintless); VIA-C straddles B/C — its offline evaluation-key upload is client-independent preprocessing |
75-
| 2024&nbsp;[ThorPIR](research/Group.A.FHE.Based.PIR/thorpir_2024/thorpir_2024_notes.md) | Group A + D hybrid — FHE-based construction, but client sends encrypted PRG seeds and server performs per-client homomorphic preprocessing |
76-
| 2022&nbsp;[FrodoPIR](research/Group.A.FHE.Based.PIR/frodopir_2022/frodopir_2022_notes.md) | Filed A (LWE-based) but functionally Group C — server computes a single client-independent global hint matrix; no per-client preprocessing |
77-
| 2022&nbsp;[CwPIR](research/Group.A.FHE.Based.PIR/cwpir_2022/cwpir_2022_notes.md) | Filed A (FHE-based) but its core innovation — constant-weight equality operators — enables native single-round keyword PIR (a Group X extension model) |
78+
[^1]: The "MulPIR" referenced in KeywordPIR is the Ali et al. [[1]](https://eprint.iacr.org/2019/1483) implementation of Gentry & Halevi's "Compressible FHE with Applications to PIR" [[2]](https://eprint.iacr.org/2019/733), which is already covered under [mulpir_2019](research/Group.1a.Stateless.Client.Stateful.Server/mulpir_2019/mulpir_2019_notes.md#mulpir--engineering-notes). Open-source implementations: [[3](https://github.com/apple/swift-homomorphic-encryption)] [[4](https://github.com/tlepoint/fhe.rs)].
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## PIR Implementations
22

3-
- [S3PIR](https://github.com/renling/S3PIR) (C++) — RMS24 single-server PIR. See also [notes](../../research/Group.D.Client.Dependent.Preprocessing/rms24_2024/RMS24_2024_notes.md).
4-
- [rms24-plinko-spec](https://github.com/keewoolee/rms24-plinko-spec) (Python) — Reference spec for RMS24 + Plinko. See also [notes](../../research/Group.D.Client.Dependent.Preprocessing/plinko_2024/Plinko_2024_notes.md).
3+
- [S3PIR](https://github.com/renling/S3PIR) (C++) — RMS24 single-server PIR. See also [notes](../../research/Group.2b.Interactive.Hint/rms24_2024/RMS24_2024_notes.md).
4+
- [rms24-plinko-spec](https://github.com/keewoolee/rms24-plinko-spec) (Python) — Reference spec for RMS24 + Plinko. See also [notes](../../research/Group.2b.Interactive.Hint/plinko_2024/Plinko_2024_notes.md).

0 commit comments

Comments
 (0)