Paillier Crypto System

Paillier crypto system and two-party runtime.

The PaillierRuntime is a special two-player runtime based on the homomorphic Paillier crypto system.

From the paper “Public-Key Cryptosystems Based on Composite Degree Residuosity Classes” by Pascal Paillier in EUROCRYPT 1999, 223-238.

class viff.paillier.PaillierRuntime(player, threshold, options=None)

Two-player runtime based on the Paillier crypto system.

digraph inheritancef014486c04 {
rankdir=LR;
size="8.0, 12.0";
  "Runtime" [style="setlinewidth(0.5)",URL="runtime.html#viff.runtime.Runtime",fontname=Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans,height=0.25,shape=box,fontsize=10];
  "PaillierRuntime" [style="setlinewidth(0.5)",URL="#viff.paillier.PaillierRuntime",fontname=Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans,height=0.25,shape=box,fontsize=10];
  "Runtime" -> "PaillierRuntime" [arrowsize=0.5,style="setlinewidth(0.5)"];
}

add(share_a, share_b)

Addition of shares.

Communication cost: none.

input(inputters, field, number=None)

Input number to the computation.

The input is shared using the share() method.

mul(share_a, share_b)
Multiplication of shares.
open(share, receivers=None)
Open share to receivers (defaults to both players).
prss_share_random(field)
Generate a share of a uniformly random element.
share(inputters, field, number=None)
Share number additively.
viff.paillier.encrypt(m, pubkey)
viff.paillier.decrypt(c, seckey)

Previous topic

A Thresholdbased Actively Secure Runtime

Next topic

Comparison protocols

This Page