Skip to main content
https://travis-ci.org/nachonavarro/gabes.svg?branch=master https://img.shields.io/badge/License-MIT-yellow.svg

Introduction

Garbled Circuits allow two distrusting parties to compute a joint function while keeping their inputs private. More precisely, it allows Alice with input x and Bob with input y to compute a function f(x, y) without Alice ever knowing y and without Bob knowing x. The way it does so is by first translating f to a boolean circuit from which it will cleverly obfuscate or garble the circuit to allow the computation of f while keeping the inputs private.

The classical example is that of two millionaires who wish to find out who is richer without revealing their wealth. In that case, f becomes the “>” (greater than) function, and x and y are their wealth.

Gabes implements garbled circuits in Python. The application runs as a command line interface but the functions required to run garbled circuits can be used without the command line (see gabes).

Installation

At the command line either via pip:

$ pip install gabes

Or, if you have virtualenvwrapper installed:

$ mkvirtualenv gabes
$ pip install gabes

Usage

Each party will run their own instance of the program on their computer as a CLI app. The garbler will provide the IP and port number to establish the connection with the evaluator.

Garbler’s Side:

gabes -g -grr3 -c Desktop/my-circuit.circuit -a localhost:5000

Evaluator’s Side:

gabes -e -grr3 -a localhost:5000

Flags

usage: gabes [-h] [-g] [-e] [-b bits] [-i identifier [identifier ...]]
                   [-c file] -a ip:port [-cl] [-pp] [-grr3] [-free] [-grr2]
                   [-fle] [-half]

Program to garble and evaluate a circuit.

optional arguments:
  -h, --help            show this help message and exit
  -g, --garbler         Set this flag to become the garbler
  -e, --evaluator       Set this flag to become the evaluator
  -b bits, --bits bits  Include your private input bitstring to the circuit
                        (e.g. 001011)
  -i identifier [identifier ...], --identifiers identifier [identifier ...]
                        Indicate which input wires you supply to the circuit
                        (e.g. -i A C D)
  -c file, --circuit file
                        Path of the file representing the circuit. Only the
                        garbler needs to supply the file
  -a ip:port, --address ip:port
                        IP address followed by the port number
  -cl, --classical      Set this flag for classical garbled circuits
  -pp, --point-and-permute
                        Set this flag to include point-and-permute
  -grr3, --grr3         Set this flag for GRR3 garbled circuits
  -free, --free-xor     Set this flag for free-xor garbled circuits
  -fle, --flexor        Set this flag for flexor garbled circuits
  -half, --half-gates   Set this flag for half gates garbled circuits

Documentation

All the documentation can be found in https://gabes.readthedocs.io/en/latest/

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gabes-0.1.5.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gabes-0.1.5-py2.py3-none-any.whl (23.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file gabes-0.1.5.tar.gz.

File metadata

  • Download URL: gabes-0.1.5.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gabes-0.1.5.tar.gz
Algorithm Hash digest
SHA256 c32a917b8060f0556ff597f882af0523a6b6b93ef048247c72a73ee6c7160d06
MD5 19cdf5d9d3b85048a96d78ed7eaba32e
BLAKE2b-256 82521cce07cd2bc2c5888314086489a70e213327bf6236acf74635305c616873

See more details on using hashes here.

File details

Details for the file gabes-0.1.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for gabes-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 81660c43ecec7d37612b94275aa3e7786c924ab3223e76978a611af7d1936033
MD5 cb3e17c0e34f8d9b48a9943762223a96
BLAKE2b-256 218bcb6432a39350267e43106729598bf79b3281f085a86fca846c749f114af5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page