|
2 | 2 |
|
3 | 3 | ## PIR Engineering Notes |
4 | 4 |
|
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) |
7 | 7 | - 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 |
9 | 9 | - 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) |
10 | 11 |
|
11 | 12 | | [](https://0xalizk.github.io/PIR-Eng-Notes/reported/#communication) | [](https://0xalizk.github.io/PIR-Eng-Notes/reported/#server-perf) | [](https://0xalizk.github.io/PIR-Eng-Notes/reported/#offline-storage) | |
12 | 13 | |:---:|:---:|:---:| |
13 | 14 |
|
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. |
15 | 18 |
|
16 | 19 | | Paper | Key Contribution | |
17 | 20 | |-------------------------------|-----------------| |
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. |
31 | 39 |
|
32 | 40 | | Paper | Key Contribution | |
33 | 41 | |-------------------------------|-----------------| |
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 |
42 | 48 |
|
43 | | -### Group C — Client-Independent Preprocessing |
| 49 | +Client downloads server-computed global hint. Hint generation is server→client only (one-directional). |
44 | 50 |
|
45 | 51 | | Paper | Key Contribution | |
46 | 52 | |-------------------------------|-----------------| |
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 |
51 | 60 |
|
52 | | -### Group D — Client-Dependent Preprocessing |
| 61 | +Hint generation requires client↔server communication. Only category achieving sublinear online server time. |
53 | 62 |
|
54 | 63 | | Paper | Key Contribution | |
55 | 64 | |-------------------------------|-----------------| |
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 | |
60 | 70 |
|
61 | 71 | ### Group X — Extensions |
62 | 72 |
|
|
65 | 75 | | 2025 [DistributionalPIR](research/Group.X.Extensions/distributionalpir_2025/DistributionalPIR_2025_notes.md) | Distribution-dependent PIR model + compiler framework | |
66 | 76 | | 2019 [KeywordPIR](research/Group.X.Extensions/keywordpir_2019/KeywordPIR_2019_notes.md) [^1] | Comparison of SealPIR, MulPIR, Gentry-Ramzan for keyword PIR | |
67 | 77 |
|
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 | | -| $\color{darkorange}{\textsf{Scheme}}$ | $\color{darkorange}{\textsf{Why}}$ | |
73 | | -|:----------------------------------------------------------------------:|-----| |
74 | | -| 2025 [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 [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 [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 [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)]. |
0 commit comments