Skip to content

Commit

Permalink
pir
Browse files Browse the repository at this point in the history
  • Loading branch information
valbert4 committed Aug 18, 2024
1 parent 67aba71 commit 4304438
Show file tree
Hide file tree
Showing 12 changed files with 106 additions and 44 deletions.
2 changes: 1 addition & 1 deletion codes/classical/bits/fountain/fountain.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ realizations:
- 'DNA storage \cite{doi:10.1126/science.aaj2038}.'

notes:
- 'Review on fountain codes can be found in Refs. \cite{doi:10.1049/ip-com:20050237,manual:{Joshi, G., Rhim, J. B., Sun, J., & Wang, D. (2010). Fountain codes. In Global telecommunications conference (GLOBECOM 2010) (pp. 7–12). IEEE.}}.'
- 'Review on fountain codes can be found in Refs. \cite{doi:10.1049/ip-com:20050237,manual:{Joshi, G., Rhim, J. B., Sun, J., & Wang, D. (2010). Fountain codes. In Global telecommunications conference (GLOBECOM 2010) (pp. 7–12). IEEE.},doi:10.1017/9781009283403}.'


relations:
Expand Down
36 changes: 0 additions & 36 deletions codes/classical/bits/nonlinear/batch.yml

This file was deleted.

2 changes: 1 addition & 1 deletion codes/classical/bits/polar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ realizations:
- 'Code control channels for the 5G NR (New Radio) interfaces \cite{manual:{3rd Generation Partnership Project (3GPP), \emph{Technical specification group radio access network}, 3GPP TS 38.212 V.15.0.0, 2017.}}.'

notes:
- 'For more details, see Ref. \cite{preset:HKSpolar}.'
- 'For more details, see Refs. \cite{preset:HKSpolar,doi:10.1017/9781009283403}.'
- 'See Kaiserslautern database \cite{preset:KLdatabase} and the pretty-good-codes database \cite{preset:PGCdatabase} for explicit representatives and benchmarking.'
- 'Codes have been benchmarked using AFF3CT toolbox \cite{doi:10.1016/j.softx.2019.100345}.'
- 'Polar codes are also useful for source coding \cite{doi:10.1109/TIT.2010.2040961}.'
Expand Down
2 changes: 1 addition & 1 deletion codes/classical/bits/tanner/ldpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ features:

notes:
- 'The potential of LDPC codes was noted by Margulis \cite{doi:10.1007/BF02579283}, but realized by the broader community \cite{doi:10.1049/el:19970362,doi:10.1109/18.748992} much later after their discovery by Gallager \cite{doi:10.1109/TIT.1962.1057683,manual:{R. Gallager, \emph{Low-density parity check codes}. 1963. PhD thesis, MIT Cambridge, MA.}}.'
- 'See book \cite{doi:10.1093/acprof:oso/9780198570837.001.0001} and reviews \cite{doi:10.1088/0305-4470/37/6/R01,doi:10.1016/S0924-8099(07)80009-6} for an introduction to LDPC codes, belief-propagation decoding, and connections to statistical mechanics.
- 'See books \cite{doi:10.1093/acprof:oso/9780198570837.001.0001,doi:10.1017/9781009283403} and reviews \cite{doi:10.1088/0305-4470/37/6/R01,doi:10.1016/S0924-8099(07)80009-6} for introductions to LDPC codes, belief-propagation decoding, and connections to statistical mechanics.
Other introductory references include Refs. \cite{doi:10.1109/MCOM.2003.1222728,manual:{Johnson, Sarah J. "Introducing low-density parity-check codes." University of Newcastle, Australia 1 (2006): 2006.},preset:MacKay,doi:10.1201/9780203490310} as well as a review of LDPC codes circa 2005 \cite{doi:10.1007/978-3-0348-7865-4_5}.'
- 'See Kaiserslautern database \cite{preset:KLdatabase} for explicit representatives of several classes of LDPC codes, including \(q\)-ary, WiMAX, multi-edge, and spatially-coupled.'
- 'See pretty-good-codes database \cite{preset:PGCdatabase} for explicit representatives and benchmarking.'
Expand Down
1 change: 1 addition & 0 deletions codes/classical/matrices/rank-metric/rank_metric.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ realizations:

notes:
- 'See Ref. \cite{arxiv:1410.1333} for a discussion of MacWilliams identities and the relationship between rank metric and Gabidulin codes.'
- 'See Ref. \cite{doi:10.1017/9781009283403} for more details.'

relations:
parents:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ description: |
protection: 'Typically designed to protect a distributed storage system against the failure of a single node or multiple nodes.'

notes:
- 'See Refs. \cite{preset:HKSdist,doi:10.1017/9781009283403}.'

relations:
parents:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#######################################################
## This is a code entry in the error correction zoo. ##
## https://github.com/errorcorrectionzoo ##
#######################################################

code_id: batch

name: 'Batch code'
introduced: '\cite{doi:10.1145/1007352.1007396}'

description: |
Binary code designed for minimizing the total amount of storage and the worst-case maximal load on any devices in a distributed system.
An \((n,N,k,m,t)\) batch code encodes a length-\(n\) string \(x_1,\cdots,x_n\) into an \(m\)-tuple of strings of total length \(N\) (are also called buckets), such that for each \(k\)-tuple of distinct indices \(i_1,i_2,...,i_k\), the entries \(x_{i_1},...,x_{i_k}\) can be decoded by reading at most \(t\) symbols from each bucket.
If each bucket of a batch code contains a single symbol, then the \((n,N,k,m)\) batch code is \textit{primitive}.
If, for any multiset \(i_1, i_2, ..., i_k \in [n]\), there is a partition of buckets into subsets \(S_1, ..., S_k \subset [m]\) such that each \(x_{i_j}\) can be recovered by reading at most one symbol from each bucket in \(S_j\), then the \((n, N, k, m)\) code is a \textit{multiset batch code}.
properties: |
The Gadget Lemma states that any \((n,N,k,m)\) batch code at \(t=1\) can be transformed into a multiset \((rn,rN,k,m)\) for any positive integer \(r\) \cite{doi:10.1109/TIT.2016.2524007}.
Combining two batch codes \(C_1\) and \(C_2\), which are \((n_1,N_1,k_1,m_1)\) and \((n_2,N_2,k_2,m_2)\) batch codes respectively, yields a composite batch code \(C_1\otimes C_2\), which is an \((n_1, m_1N_2, k_1 k_2, m_1 m_2)\) batch code.
notes:
- 'See Ref. \cite{doi:10.1017/9781009283403}.'

relations:
parents:
- code_id: q-ary_digits_into_q-ary_digits
cousins:
- code_id: locally_recoverable
detail: 'A systematic batch code with restricted size of reconstruction sets can recover any query of \(t\) information symbols with recovery sets of size \(r\) \cite{doi:10.1007/978-3-319-70293-3_16,doi:10.1109/TIT.2021.3131620}.'
- code_id: ldc
detail: 'Batch codes and LDCs are related \cite{doi:10.1145/1007352.1007396,doi:10.1515/popets-2016-0036}\cite[Ch. 10.3]{doi:10.1017/9781009283403}.'
- code_id: hamming
detail: 'Hamming codes can be used to construct batch codes \cite{arxiv:1710.07386}\cite[Exam. 10.9]{doi:10.1017/9781009283403}.'
- code_id: generalized_reed_muller
detail: 'GRM codes can be used to construct batch codes \cite{arxiv:1710.07386}.'
- code_id: multiplicity
detail: 'Multiplicity codes can be used to construct batch codes \cite{arxiv:1701.07206}.'


# Begin Entry Meta Information
_meta:
# Change log - most recent first
changelog:
- user_id: VictorVAlbert
date: '2024-08-18'
- user_id: VictorVAlbert
date: '2022-07-07'
- user_id: YijiaXu
date: '2022-04-25'
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#######################################################
## This is a code entry in the error correction zoo. ##
## https://github.com/errorcorrectionzoo ##
#######################################################

code_id: pir

name: 'Private information retrieval (PIR) code'
short_name: 'PIR'
introduced: '\cite{doi:10.1145/293347.293350,doi:10.5555/795662.796270}'

description: |
A code used to obtain information from several servers privately, i.e., without the servers knowing what information was obtained.
A \(k\)\textit{-server PIR code} is a block code for which one can recover any coordinate of a codeword from \(k\) disjoint sets of coordinates of the codeword \cite{arxiv:1505.06241}.
notes:
- 'See Ref. \cite{doi:10.1017/9781009283403,doi:10.5555/795662.796270}.'

relations:
parents:
- code_id: q-ary_digits_into_q-ary_digits
cousins:
- code_id: multiplicity
detail: 'Multiplicity codes can be used to construct PIR codes \cite{arxiv:1701.07206}.'
- code_id: batch
detail: 'Batch and PIR codes are related \cite{doi:10.1515/popets-2016-0036,arxiv:1611.09914}.'
- code_id: locally_recoverable
detail: 'LRCs and PIR codes are related \cite{arxiv:1505.06241,arxiv:1611.09914}: LRCs are designed to recover a codeword coordinate from a small set of other codeword coordinates, while PIR codes are designed to recover from many disjoint sets of arbitrary size \cite{arxiv:1505.06241}.'
- code_id: ldc
detail: 'Any \textit{smooth} LDC yields a PIR scheme \cite{arxiv:1701.02708}; see also Ref. \cite{doi:10.1007/978-3-642-14358-8}.'


# Begin Entry Meta Information
_meta:
# Change log - most recent first
changelog:
- user_id: VictorVAlbert
date: '2024-08-18'
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ features:
- 'LDCs admit \textit{local decoders}, i.e., decoders whose runtime scales polylogarithmically with \(n\).'

notes:
- 'See \href{https://www.cs.princeton.edu/~zdvir/LDCnotes/ldc-notes.html}{notes} by Z. Dvir and Ref. \cite{manual:{Gopi, Sivakanth. Locality in coding theory. Diss. Princeton University, 2018.}} for an introduction to LDCs and LCCs.'
- 'See \href{https://www.cs.princeton.edu/~zdvir/LDCnotes/ldc-notes.html}{notes} by Z. Dvir and Ref. \cite{manual:{Gopi, Sivakanth. Locality in coding theory. Diss. Princeton University, 2018.},doi:10.1017/9781009283403} for introductions to LDCs and LCCs.'


relations:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ alternative_names:

description: |
An LRC is a block code for which one can recover any coordinate of a codeword from at most \(r\) other coordinates of the codeword.
In other words, an LRC of locality \(r\) is a block code for which, given a codeword \(c\) and coordinate \(c_i\), \(c_i\) can be recovered from at most \(r\) other coordinates of \(x\).
In other words, an LRC of locality \(r\) is a block code for which, given a codeword \(c\) and coordinate \(c_i\), \(c_i\) can be recovered from at most \(r\) other coordinates of \(c\).
An \(r\)-locally recoverable code of length \(n\) and dimension \(k\) is denoted as an \((n,k,r)\) LRC.
The definition can be generalized to \(t\)-LRC, if every coordinate is recoverable from \(t\) disjoint subsets of coordinates.
Expand All @@ -37,6 +37,8 @@ realizations:
- 'An \((18,14,7)\) LRC has beed used in the Windows Azure cloud storage system \cite{manual:{C. Huang, H. Simitci, Y. Xu, A. Ogus, B. Calder, P. Gopalan, J. Li, and S. Yekhanin. \emph{Erasure coding in Windows Azure Storage}. In Proc. USENIX Annual Technical Conference (ATC), pgs. 15-26, Boston, Massachusetts, June 2012.}}; see also \cite[31.3.1.2]{preset:HKSdist}.'
- 'Facebook f4 BLOB cloud storage system \cite{manual:{Muralidhar, S., Lloyd, W., Roy, S., Hill, C., Lin, E., Liu, W., Pan, S., Shankar, S., Sivakumar, V., Tang, L. and Kumar, S., 2014. f4: Facebook''s warm {BLOB} storage system. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14) (pp. 383-398).}}'

notes:
- 'See Ref. \cite{doi:10.1017/9781009283403}.'

relations:
parents:
Expand Down
3 changes: 1 addition & 2 deletions codes/classical/q-ary_digits/ag/multiplicity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ physical: q-ary_digits
logical: q-ary_digits

name: 'Multiplicity code'
introduced: '\cite{manual:{M. Yu. Rosenbloom, M. A. Tsfasman, “Codes for the m-Metric”, Probl. Peredachi Inf., 33:1 (1997), 55–63; Problems Inform. Transmission, 33:1 (1997), 45–52},manual:{Rasmus R. Nielsen. List decoding of linear block codes. PhD thesis, Technical University of
Denmark, 2001},doi:10.1145/2629416}'
introduced: '\cite{manual:{M. Yu. Rosenbloom, M. A. Tsfasman, “Codes for the m-Metric”, Probl. Peredachi Inf., 33:1 (1997), 55–63; Problems Inform. Transmission, 33:1 (1997), 45–52},manual:{Rasmus R. Nielsen. List decoding of linear block codes. PhD thesis, Technical University of Denmark, 2001},doi:10.1145/2629416}'

description: |
A generalization of an \(m\)-variate polynomial evaluation code based on evaluating polynomials and \(s\) of their derivatives at all points in \(GF(q)^m\).
Expand Down
4 changes: 3 additions & 1 deletion codes/classical/q-ary_digits/ag/rs/reed_solomon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ realizations:
- 'Automatic repeat request (ARQ) data transmission protocols (see Ref. \cite{doi:10.1109/9780470546345}, Ch. 7).'
- 'Slow-frequency-hop spread-spectrum transmission (see Ref. \cite{doi:10.1109/9780470546345}, Chs. 8-9).'
- 'Coded sharding designs in blockchains to increase efficiency \cite{arxiv:1809.10361}.'
- 'Private Information Retrieval \cite{doi:10.1109/ISIT45174.2021.9517900}.'
- 'Used in QR-Codes to retrieve damaged barcodes \cite{manual:{International Organization for Standardization, Information Technology: Automatic Identification and Data Capture Techniques-QR Code 2005 Bar Code Symbology Specification, 2nd ed., IEC18004 (ISO, 2006).}}.'
- 'Wireless communication systems such as 3G, DVB, and WiMAX \cite{doi:10.1109/PIMRC.2010.5672091}.'
- 'Correcting pooled testing results for SARS-CoV-2 \cite{doi:10.1126/sciadv.abc5961}.'
Expand Down Expand Up @@ -100,6 +99,9 @@ relations:
detail: 'Tensor codes constructed from RS codes are robustly testable \cite{doi:10.1145/195058.195132}.'
- code_id: q-ary_ltc
detail: 'RS codes can be used to construct LTCs encoding \(k\) bits with length \(k \text{polylog}(k)\) and query complexity \(\text{polylog}(k)\) \cite{doi:10.1137/050646445}.'
- code_id: pir
detail: 'RS codes can be used to construct PIR codes \cite{doi:10.1109/ISIT45174.2021.9517900}.'


# Begin Entry Meta Information
_meta:
Expand Down

0 comments on commit 4304438

Please sign in to comment.