What is Pirk?
Pirk is a framework for scalable Private Information Retrieval (PIR). The goal of Pirk is to provide a landing place for robust, scalable, and practical implementations of PIR algorithms.
Private Information Retrieval (PIR) enables a user/entity to privately and securely obtain information from a dataset, to which they have been granted access, without revealing, to the dataset owner or to an observer, any information regarding the questions asked or the results obtained. Employing homomorphic encryption techniques, PIR enables datasets to remain resident in their native locations while giving the ability to query the datasets with sensitive terms.
There are two parties in a PIR transaction - the Querier, the party asking encrypted questions, and the Responder, the party holding the target data and answering encrypted questions (performing encrypted queries).
In Pirk, the Querier is responsible for the following:
- Generating the encrypted query vectors (representing encrypted questions)
- Generating the necessary decryption items for each query vector
- Decrypting encrypted query results obtained from the Responder
Once the Querier generates an encrypted query, it must be sent to the Responder.
In Pirk, the Responder is responsible for the following:
- Performing encrypted queries over their target datasets (using encrypted query vectors)
- Forming the encrypted query results
The encrypted query results must be sent from the Responder back to the Querier for decryption.
Pirk employs generic data and query schemas, specified via XML files, that are shared between the Querier and Responder to enable flexible and varied data and query types.
Pirk Framework and Algorithms
The Pirk framework is centered around the Querier and Responder; key supporting elements include generic query and data schemas, encryption/decryption, query/response, and in-memory and distributed testing components.
Pirk is seeded with the Wideskies PIR algorithm which employs Paillier homomorphic encryption; the Wideskies white paper can be found here. More information regarding the origin of Apache Pirk can be found here.
Pirk can be downloaded here
Pirk is written in Java and uses a Maven build system. Dependencies can be found in the pom.xml file and include Apache Hadoop, Apache Spark, and Elasticsearch. Currently, Pirk may be utilized in a distributed Hadoop/MapReduce or Spark framework as well as in standalone mode.
Pirk is seeded with the Wideskies PIR algorithm; please check out the white paper
If you are a User, please check out the For Users section.
If you are a Developer, please check out the For Developers section.
Please check out our community section.
Please check out our Roadmap.
Apache Pirk (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the name of Apache TLP sponsor. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.