# Unlinkable Updatable Hiding Databases and Privacy-Preserving Loyalty Programs
This repository contains the source code for an implementation of the HD (Unlinkable Updatable Hiding Database) primitive described in our paper titled "Unlinkable Updatable Hiding Databases and Privacy-Preserving Loyalty Programs". It also includes an implementation of the Privacy-Preserving Loyalty Program protocol put forward in this paper, which uses the aforementioned primitive.
This repository contains the source code for an implementation of the HD (Unlinkable Updatable Hiding Database) primitive described in our paper titled "Unlinkable Updatable Hiding Databases and Privacy-Preserving Loyalty Programs", to be published at PETS 2021. It also includes an implementation of the Privacy-Preserving Loyalty Program protocol put forward in this paper, which uses the aforementioned primitive.
These implementations were used to measure the storage and computation costs of the cryptographic operations in our primitive and the protocol, for the _Efficiency Analysis_ sections of our paper.
# Installation
## Installation
## Virtual Machine (Vagrant)
### Virtual Machine (Vagrant)
You can the use `Vagrantfile` file in this repository to spin up a virtual machine with a pre-configured execution environment using Vagrant: https://www.vagrantup.com.
You must first install Vagrant, and then run the following command from the root directory of this repository:
...
...
@@ -24,24 +24,29 @@ You must first install Vagrant, and then run the following command from the root
$ vagrant up
```
Once the virtual machine is ready, log in with `vagrant:vagrant`.
The code will then be accessible from the `/vagrant` directory, in the virtual machine window that shows up after the script downloads and installs all prerequisites.
### Manual Installation (Ubuntu)
Instructions are available [here](docs/install_bionic.md).
## Manual Installation
Our code requires Python 3.7, and the Charm-Crypto library (v0.50) built with the Relic toolkit (v0.5.0), as described on these pages:
### Manual Installation
Our code requires Python 3.6, and the Charm-Crypto library (v0.50) built with the Relic toolkit (v0.5.0), as described on these pages:
SPDX-FileCopyrightText: 2021 University of Luxembourg
SPDX-License-Identifier: GPL-3.0-or-later
SPDXVersion: SPDX-2.2
Authors:
Aditya Damodaran, aditya.damodaran@uni.lu
Alfredo Rial, alfredo.rial@uni.lu
-->
# Installation instructions (Ubuntu)
For best results, please use a fresh installation of Ubuntu 18.04 LTS (Bionic Beaver). We ran into a few issues whilst trying to install this project's dependencies on Ubuntu 20.04 LTS.
You could alternatively use our `install_ubuntu.sh` script located in the root directory of this repository, as it includes all of the following installation commands.
## Instructions
1. Start by installing all prerequisites for building charm:
"""PPLS Profile interface (Checks whether the sum of the values contained in the database between positions 'start' and 'end' is greater than 'val')."""