This is a simple implementation of GGM Puncturable Pseudorandom Function[GGM’86].
Partial Code was from Aura.
Further reading can be find in link and link.
A puncturable PRF consists of three algorithms (Setup, Punc , Eval).
- Setup: It takes a security parameter and outputs a PRF key.
- Punc: It takes a key and a set of elements and outputs a punctured key.
- Eval: It takes as input a punctured key and x , outputs y or a stop symbol if x is in the punctured set.
- git
- cmake
- openssl 1.1.1
git clone https://github.com/bo-hub/Puncturable_PRF.git
cd Puncturable_PRF
mkdir build
cd build
cmake ..
make
[GGM’86] O. Goldreich, S. Goldwasser, and S. Micali. How to construct random functions. Journal of the ACM (JACM), 33(4):792- 807, 1986