Projects / Virtual Ideal Functionality Framework

Virtual Ideal Functionality Framework

Virtual Ideal Functionality Framework is a framework for creating efficient and secure multi-party computations (SMPC). Players, who do not trust each other, participate in a joint computation based on their private inputs. The computation is done using a cryptographic protocol which allows them to obtain a correct answer without revealing their inputs. Operations supported include addition, multiplication, and comparison, all with Shamir secret shared outputs.

Operating Systems

Recent releases

  •  14 Dec 2009 16:33

    Release Notes: The current code is useful, flexible and unlikely to change radically. The central class named Runtime was renamed to PassiveRuntime. All runtime classes now uses the common method names input and output for providing data to and retrieving data from the computation. A multiparty version of AES was added: it allows parties to encrypt a Shamir secret shared message under a secret shared AES key to obtain a secret shared ciphertext.

    •  09 Oct 2008 17:51

      Release Notes: A major bug was fixed in the passive multiplication protocol in the case where 2t + 1 != n. Unit tests were updated for Python 2.6.

      •  21 Sep 2008 13:17

        Release Notes: PyOpenSSL is now used instead of GnuTLS and this enables secure connections on Windows. The code dealing with starting a player has been made much more robust and players can now be started in any order. A player can now also be reliably shutdown. A new runtime based on homomorphic Paillier encryption supports just two players. A new protocol for equality testing with secret shared result was added.

        •  28 May 2008 20:50

          Release Notes: The average time for a secure comparison was reduced by 60-70%. Comparisons now work with an actively secure multiplication protocol. A memory leak was fixed. The documentation has been converted to the new Sphinx format.

          •  28 Apr 2008 20:15

            Release Notes: This release adds preliminary support for preprocessing and a multiplication protocol secure against active adversaries. The Runtime class has been split into several parts, and two new mixin classes provide different comparison protocols. Several coercion problems were fixed. The Runtime.callback method was renamed to Runtime.schedule_callback. VIFF was tested on Python 2.6, and some small problems were fixed. The installation guide was updated for Windows Vista.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.