The Orlandi Runtime - An Actively Secure Protocol with Full Threshold

Full threshold actively secure runtime.


The code in this module relies on a proprietary third-party module for doing commitments using elliptic curves. You will therefore not be able to run it with a plain VIFF installation.

class viff.orlandi.OrlandiException
class viff.orlandi.OrlandiShare(runtime, field, value=None, rho=None, commitment=None)

A share in the Orlandi runtime.

A share in the Orlandi runtime is a 3-tuple (x_i, rho_i, Cr_i) of:

  • A share of a number, x_i
  • A tuple of two random numbers, rho_i = (rho_i1, rho_i2)
  • A commitment to the number and the random numbers, Cr_i

The Runtime operates on shares, represented by this class. Shares are asynchronous in the sense that they promise to attain a value at some point in the future.

Shares overload the arithmetic operations so that x = a + b will create a new share x, which will eventually contain the sum of a and b. Each share is associated with a Runtime and the arithmetic operations simply call back to that runtime.

Inheritance diagram of OrlandiShare

class viff.orlandi.OrlandiRuntime(player, threshold=None, options=None)

The Orlandi runtime.

The runtime is used for sharing values (secret_share() or shift()) into OrlandiShare object and opening such shares (open()) again. Calculations on shares is normally done through overloaded arithmetic operations, but it is also possible to call add(), mul(), etc. directly if one prefers.

Each player in the protocol uses a Runtime object. To create an instance and connect it correctly with the other players, please use the create_runtime() function instead of instantiating a Runtime directly. The create_runtime() function will take care of setting up network connections and return a Deferred which triggers with the Runtime object when it is ready.

Inheritance diagram of OrlandiRuntime

Previous topic

Constants Module

Next topic

An Hash Based Broadcast Protocol

This Page