PPP is the set of all function computation problems that admit a polynomial-time reduction to the PIGEON problem, defined as follows:
A problem is PPP-complete if PIGEON is also polynomial-time reducible to it. Note that the pigeonhole principle guarantees that PIGEON is total. We can also define WEAK-PIGEON, for which the weak pigeonhole principle guarantees totality. PWPP is the corresponding class of problems that are polynomial-time reducible to it.2 WEAK-PIGEON is the following problem:
Here, the range of the circuit is strictly smaller than its domain, so the circuit is guaranteed to be non-injective. WEAK-PIGEON reduces to PIGEON by appending a single 1 bit to the circuit's output, so PWPP ⊆ {\displaystyle \subseteq } PPP.
We can view the circuit in PIGEON as a polynomial-time computable hash function. Hence, PPP is the complexity class which captures the hardness of either inverting or finding a collision in hash functions. More generally, the relationship of subclasses of FNP to polynomial-time complexity classes can be used to determine the existence of certain cryptographic primitives, and vice versa.
For example, it is known that if FNP = FP, then one-way functions do not exist. Similarly, if PPP = FP, then one-way permutations do not exist.3 Hence, PPP (which is a subclass of FNP) more closely captures the question of the existence of one-way permutations. We can prove this by reducing the problem of inverting a permutation π {\displaystyle \pi } on an output y {\displaystyle y} to PIGEON. Construct a circuit C {\displaystyle C} that computes C ( x ) = π ( x ) ⊕ y {\displaystyle C(x)=\pi (x)\oplus y} . Since π {\displaystyle \pi } is a permutation, a solution to PIGEON must output x {\displaystyle x} such that C ( x ) = 0 = π ( x ) ⊕ y {\displaystyle C(x)=0=\pi (x)\oplus y} , which implies π ( x ) = y {\displaystyle \pi (x)=y} .
PPP contains PPAD as a subclass (strict containment is an open problem). This is because End-of-the-Line, which defines PPAD, admits a straightforward polynomial-time reduction to PIGEON. In End-of-the-Line, the input is a start vertex s {\displaystyle s} in a directed graph G {\displaystyle G} where each vertex has at most one successor and at most one predecessor, represented by a polynomial-time computable successor function f {\displaystyle f} . Define a circuit C {\displaystyle C} whose input is a vertex x {\displaystyle x} and whose output is its successor if there is one, or x {\displaystyle x} if it does not. If we represent the source vertex s {\displaystyle s} as the bitstring 0 n {\displaystyle 0^{n}} , this circuit is a direct reduction of End-of-the-Line to Pigeon, since any collision in C {\displaystyle C} provides a sink in G {\displaystyle G} .
The equal sums problem is the following problem. Given n {\displaystyle n} positive integers that sum to less than 2 n − 1 {\displaystyle 2^{n}-1} , find two distinct subsets of the integers that have the same total. This problem is contained in PPP, but it is not known if it is PPP-complete.
The constrained-SIS (short integer solution) problem, which is a generalization of the SIS problem from lattice-based cryptography, has been shown to be complete for PPP.4 Prior to that work, the only problems known to be complete for PPP were variants of PIGEON.
There exist polynomial-time randomized reductions from the integer factorization problem to WEAK-PIGEON.5 Additionally, under the generalized Riemann hypothesis, there also exist deterministic polynomial reductions. However, it is still an open problem to unconditionally show that integer factorization is in PPP.
Christos Papadimitriou (1994). "On the complexity of the parity argument and other inefficient proofs of existence" (PDF). Journal of Computer and System Sciences. 48 (3): 498–532. doi:10.1016/S0022-0000(05)80063-7. Archived from the original (PDF) on 2016-03-04. Retrieved 2009-12-11. https://web.archive.org/web/20160304084618/http://www.cs.berkeley.edu/~christos/papers/On%20the%20Complexity.pdf ↩
Emil Jeřábek (2016). "Integer factoring and modular square roots". Journal of Computer and System Sciences. 82 (2): 380–394. arXiv:1207.5220. doi:10.1016/j.jcss.2015.08.001. /wiki/Journal_of_Computer_and_System_Sciences ↩
K. Sotiraki, M. Zampitakis, and G. Zirdelis (2018). "PPP-Completeness with Connections to Cryptography". Proc. of 59th Symposium on Foundations of Computer Science. pp. 148–158. arXiv:1808.06407. doi:10.1109/FOCS.2018.00023.{{cite conference}}: CS1 maint: multiple names: authors list (link) /wiki/Symposium_on_Foundations_of_Computer_Science ↩