Mercurial > pysmcl
changeset 325:cd2e7b42b05b
Provsec paper: corrections from Thomas
author | Sigurd Meldgaard <stm@daimi.au.dk> |
---|---|
date | Mon, 14 Jun 2010 11:51:17 +0200 |
parents | a6ccd7e9cd68 |
children | 011fbd39e4f5 |
files | provsec/paper.tex |
diffstat | 1 files changed, 13 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/provsec/paper.tex Thu May 27 16:10:15 2010 +0200 +++ b/provsec/paper.tex Mon Jun 14 11:51:17 2010 +0200 @@ -39,7 +39,7 @@ {\end{changemargin} } -\title{PySCML --- An Embedded Language for Specifying Secure Multiparty Computations} +\title{PySMCL --- An Embedded Language for Specifying Secure Multiparty Computations} \author{ Ivan Damg{\aa}rd (AU)\\ Thomas Jakobsen (AI)\\ @@ -72,8 +72,8 @@ and its implementation. \section{Concepts} -Secure multi-party computation (MPC) deals with scenarios where a -number of players each possess some private data, and want to compute +Secure multiparty computation (MPC) deals with scenarios where a +number of players each possesses some private data, and want to compute a certain result from these data without revealing anything, except for the intended result. There are numerous examples of such scenarios. Examples include elections, auctions, procurements, @@ -110,10 +110,10 @@ computations on the hidden values, and opening or decrypting (outputting) the final secret values to the appropriate players. -VIFF is a framework implementing the primitives for doing MPC -implemented in Python, it is described in \cite{geisler10}. From our point of -view, Python together with the VIFF framework is the target language -that PySMCL programs will be translated into. +VIFF is a framework implementing the primitives for doing MPC, it is +itself implemented in Python and described in \cite{geisler10}. From +our point of view, Python together with the VIFF framework is the +target language that PySMCL programs will be embedded in. The goal of PySMCL is to allow programmers who are not experts in Cryptography or MPC to specify a desired computation to be executed @@ -201,7 +201,7 @@ %% &$\mid$& \KWD{break}\\ %% &$\mid$& \KWD{continue}\\ - \nt{e} &::=& \VAR{x} &\mbox{Variable reference}\\ + \nt{e} &::=& \VAR{x} &\mbox{variable reference}\\ &$\mid$& $x$[$e$] &\mbox{\rm array indexing}\\ &$\mid$& \nt{f}(\nt{e}) &\mbox{\rm function application}\\ &$\mid$ & \nt{n} &\mbox{number}\\ @@ -231,7 +231,7 @@ which means a possibly comma separated list of expressions: $\nt{e}_1,\ldots,\nt{e}_n$. It will be clear from the context if commas should be present or not. It is presented in -figure~\ref{fig:corepysmcl}. A Core PySMCL program consists of a +figure~\ref{fig:corepysmcl}. A core PySMCL program consists of a sequence of function declarations. A certain function called \KWD{main} is used as the entry point of the computation. @@ -260,7 +260,7 @@ analysis is done to help prevent this (see below for details). Notice that, like in VIFF the binary operators -on secret values works on deferreds, that are waiting for a value +on secret values work on deferreds, that are waiting for a value (because it will only be defined once certain values are received over the network). We can still operate on these values, and get new deferreds, that wait for the previous results to become ready, before @@ -285,8 +285,8 @@ Here the decorator called is \KWD{ideal\_functionality}, a higher order function receiving the function \KWD{negate} and returning another function that is then also named \KWD{negate}. While deciding -what output function to return, it may of course the values of its own -arguments (here the values of \KWD{secret} and \KWD{range}). +what output function to return, it may of course choose the values of +its own arguments (here the values of \KWD{secret} and \KWD{range}). We use the \KWD{inspect} module from Python, so the decorator can get access to the source code and thereby the parse tree of the decorated @@ -318,7 +318,7 @@ In this section we give a toy example demonstrating some of the ideas in PySMCL, and informally describe how the preprocessor will handle the code. In the following sections, we give a more complete -description of the way the verification and preprocessing works. +description of the way the verification and preprocessing work. \begin{verbatim} @ideal_functionality(secrets=["a", "b"],