SkillAgentSearch skills...

PEKS

Implementation of Public Key Encryption with Keyword Search

Install / Use

/learn @atulmahind/PEKS
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PEKS

This is the implementation of public-key searchable encryption using bilinear maps described in Public Key Encryption with Keyword Search. It is a simple, command-line application developed in C.

Implementation Details

Dependencies

  • GMP Library:

    $ sudo apt-get install libgmp3-dev

  • OpenSSL:

    $ sudo apt-get install libssl-dev

  • PBC Library

    $ ./configure --prefix=$HOME/.local
    $ make
    $ make install
    

    Makefile uses this path. In case of change in destination directory, update the Makefile accordingly.

Build

$ make

Run

$ ./peks <word1> <word2>

Usage

$ ./peks hello hello
Equal
$ ./peks Hello hello
Not equal
$ ./peks Supercalifragilisticexpialidocious Supercalifragilisticexpialidocious
Equal
$ ./peks Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon
Equal
$ ./peks Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteraletryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon
Not equal

*This work was a part of the master thesis from TU Dresden under the supervision of Dr. Josef Spillner and Martin Beck.

Public Key Encryption with Keyword Search

by Dan Boneh, Giovanni Di Crescenzo, Rafail Ostrovsky and Giuseppe Persiano.

The authors describe a way of appending information to a message that has been encrypted with a standard public key cipher, which allows a server that doesn’t have the private key necessary to decrypt the entire message to still be able to search for a certain set of keywords. For a keyword, a PEKS value can be generated which will allow the server to perform a search using a trapdoor.

Related Skills

View on GitHub
GitHub Stars36
CategoryDevelopment
Updated5mo ago
Forks13

Languages

C

Security Score

77/100

Audited on Nov 6, 2025

No findings