Private Information Retrieval (PIR)

Private Information Retrieval (PIR) is a primitive that allows a client to access a specific element from a public array without revealing which array element was accessed, introduced by CGKS98.

Definition

A -server Private Information Retrieval (PIR) for a database of size is a tuple of efficient functions , with respect to randomness space such that:

Syntax

  • Generally, we consider the size of the initial queries to be bits each and the answers to be bits each.
  • In general, we can consider the total communication of a PIR as .
  • A PIR is non-trivial only so long as the communication is less than .

Correctness

A PIR is correct if for all , , and where each and .

Privacy

A PIR is private if for every , , and ,

Intuitively, this means that each server observes the same query uploaded with the same probability.

Computational Multi-server PIR

Similar to the Single-Server Private Information Retrieval, one can weaken the notion of multi-server PIR to only be private against polynomial-time non-colluding servers. In this setting, the syntax remains the same, but now the query distribution is only required to be computationally indistinguishable for any two index pairs.

  • This can be constructed from OWFs via the use of DPFs — GI14

Doubly Efficient Multi-server PIR

TODO

Other results

  • The typical setting is the 1-bit array (also called database), since you can build a -bit PIR using just copies of a 1-bit PIR.