This repository contains an implementation of the Boneh-Boyen Identity-Based Encryption (IBE) scheme in Python using the Charm-Crypto library. Charm does not work with Python 3.8+ versions, try Python 3.7 or lower
- Ubuntu 18.04
- Python 3.6.9
- Charm-Crypto
- Install VirtualBox
- Install Ubuntu 18.04 ISO disk
- In terminal, run the following commands:
# Make sure you are root user
# If not, then run:
su -
visudo
# Add "vboxuser ALL=(ALL) NOPASSWD: ALL" to the last line
# Prerequisite Packages
sudo apt update
sudo apt install build-essential
sudo apt install subversion
sudo apt install m4
sudo apt install flex
sudo apt install bison
sudo apt install python3
sudo apt install python3-setuptools python3-dev
sudo apt install libssl-dev
sudo apt install libgmp-dev
sudo apt install git
sudo apt install wget
pip install "pyparsing<2.4.1,>=2.1.5"
# Install the Stanford PBC Library
wget http://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
tar xf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure LDFLAGS="-lgmp"
make
sudo make install
sudo ldconfig
# Install Charm
git clone https://github.com/JHUISI/charm
cd charm
sudo ./configure.sh
sudo make
sudo make install
sudo ldconfig
- Article: Charm-Crypto Installation (Mandarin)
- Article : How to set-up Charm on Ubuntu
- Paper: Efficient Selective Identity-Based Encryption Without Random Oracles (Section 4.1) Authors: Dan Boneh, Xavier Boyen
- YouTube Video: Identity based Encryption (IBE)
- YouTube Video: Identity based Encryption (IBE)
- Wikipedia: Identity-based encryption
- PDF: Intro to Bilinear Maps
- Wikipedia: Pairing-based cryptograph
- GitHub Code: Boneh-Boyen Hierarchical Identity Based Encryption Code
- Wikipedia: Boneh–Franklin scheme
- GitHub Repository: Charm-Crypto
- Documentation: Charm-Crypto Cryptographers