changeset 325:cd2e7b42b05b

Provsec paper: corrections from Thomas
author Sigurd Meldgaard Mon, 14 Jun 2010 11:51:17 +0200 a6ccd7e9cd68 011fbd39e4f5 provsec/paper.tex 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"],