viff

changeset 1407:c2e2cc8d195f

doc: page with applications
author Martin Geisler <mg@cs.au.dk>
date Thu, 10 Dec 2009 15:52:19 +0100
parents 19a61a72c2ee
children 071cc09baa67
files doc/applications.txt doc/index.txt
diffstat 2 files changed, 72 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doc/applications.txt	Thu Dec 10 15:52:19 2009 +0100
     1.3 @@ -0,0 +1,71 @@
     1.4 +.. -*- coding: utf-8 -*-
     1.5 +
     1.6 +Applications
     1.7 +============
     1.8 +
     1.9 +VIFF has been used for several small and some larger applications. The
    1.10 +largest applications are listed below. Please see the ``apps/``
    1.11 +directory in VIFF for more examples of small programs using VIFF.
    1.12 +
    1.13 +
    1.14 +Nordic Sugar
    1.15 +------------
    1.16 +
    1.17 +(TODO)
    1.18 +
    1.19 +
    1.20 +Distributed RSA
    1.21 +---------------
    1.22 +
    1.23 +Atle Mauland from the Norwegian University of Science and Technology
    1.24 +(NTNU) used VIFF for his Master's Thesis titled "Realizing Distributed
    1.25 +RSA using Secure Multiparty Computations".
    1.26 +
    1.27 +The private key from a RSA key pair must be kept in a highly secure
    1.28 +location (to prevent unauthorized persons from stealing it) but
    1.29 +because we want to use the key, we cannot just write it on a piece of
    1.30 +paper and store that in a safe.
    1.31 +
    1.32 +This tension between high availability and high security makes a
    1.33 +distributed solution attractive. Atle Mauland implemented a protocol
    1.34 +by Boneh and Franklin for generating RSA keys in a distributed
    1.35 +fashion. The protocol ensures that the private key is never available
    1.36 +in the clear to any given party and an attacker must break into all
    1.37 +machines to learn the private key. Meanwhile, the parties can use
    1.38 +their shares of the private key to securely decrypt messages encrypted
    1.39 +under the public key.
    1.40 +
    1.41 +Generating a 1024-bit RSA key using VIFF took about 30 minutes on
    1.42 +average (the time varied between 7 seconds and 2.5 hours). These
    1.43 +results can likely be improved by using the GMPY library more
    1.44 +aggressively.
    1.45 +
    1.46 +
    1.47 +Distributed AES
    1.48 +---------------
    1.49 +
    1.50 +(TODO)
    1.51 +
    1.52 +
    1.53 +Secure Voting
    1.54 +-------------
    1.55 +
    1.56 +Typical Internet voting systems store all votes in a single location.
    1.57 +HÃ¥vard Vegge  from the Norwegian University of Science and Technology
    1.58 +(NTNU) used VIFF for his Master's Thesis titled "Realizing Secure
    1.59 +Multiparty Computations" to implement a distributed voting system.
    1.60 +
    1.61 +The system removes the single point of failure by storing the votes in
    1.62 +secret shared form between three servers. The voters will do the
    1.63 +secret sharing on their own machine, encrypt the shares, and send the
    1.64 +encrypted shares to a database. Each share is encrypted under the
    1.65 +public key belonging to the computation server that will do the actual
    1.66 +multiparty computation.
    1.67 +
    1.68 +This project shows how VIFF can be integrated with many other
    1.69 +technologies. The user creates a vote on a website programmed in PHP
    1.70 +and the voting is cast using a Java applet. The applet has the
    1.71 +responsibility of encrypting the votes for the computation servers.
    1.72 +When all voters have cast their vote, a XML-RPC message is sent to the
    1.73 +Python program running on the servers. That program decrypts the
    1.74 +shares and uses VIFF to compute the result.
     2.1 --- a/doc/index.txt	Thu Dec 10 13:44:25 2009 +0100
     2.2 +++ b/doc/index.txt	Thu Dec 10 15:52:19 2009 +0100
     2.3 @@ -30,6 +30,7 @@
     2.4  
     2.5     overview
     2.6     install
     2.7 +   applications
     2.8     implementation
     2.9     background
    2.10     todo