%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentstyle[12pt,twoside,alltt]{article}
% \documentstyle[12pt,twoside,alltt,psfig]{article}
% is the line you should use IF you're using EPS images.
% make sure to copy the psfig.sty file into the directory with
% the latex document however.
\textwidth=6in
\oddsidemargin=0.25in
\evensidemargin=0.25in
\topmargin=-0.1in
\footskip=0.8in
\parindent=0.0cm
\parskip=0.3cm
\textheight=8.00in
\setcounter{tocdepth} {3}
\setcounter{secnumdepth} {2}
\sloppy

\newenvironment{proof}{\noindent{\bf Proof:}}{\qed\bigskip}
\newenvironment{proof_sketch}{\noindent{\bf Sketch of 
Proof}\hspace*{1em}}{\qed\bigskip}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}
\newtheorem{lemma}{Lemma}
\newtheorem{claim}{Claim}
\newtheorem{fact}{Fact}
\newtheorem{definition}{Definition}
\newtheorem{assumption}{Assumption}
\newtheorem{observation}{Observation}
\newtheorem{example}{Example}
\newcommand{\qed}{\rule{7pt}{7pt}}

\newcommand{\lecture}[4]{
\pagestyle{headings}
\thispagestyle{plain}
\newpage
\noindent
\begin{center}
\framebox{
\vbox{
\hbox to 5.75in { {\bf 6.857 Computer and Network Security
\hfill Fall Term, 1997}  }
\vspace{4mm}
\hbox to 5.75in { {\Large \hfill Lecture #1 : #2 \hfill} }
\vspace{2mm}
\hbox to 5.75in { {\it Lecturer: #3 \hfill Scribe: #4} }
}
}
\end{center}
\markboth{Lecture #1 : #2}{Lecture #1 : #2}
\vspace*{4mm}
}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Lecture command takes 4 arguments:
%		ordinal number of the lecure
%		date of the lecure
%		lecturer
%		scribe---that is you
%
\lecture{22}{November 20, 1997}{Ron Rivest}{Sabra-Anne Kelin} 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% For theorems, lemmas, definitions, remarks, etc. use commands
% \begin{theorem} .... \end{theorem} 
% \begin{definition} ... \end{definition} 
% \begin{proof} ... \end{proof}
% and so on ...
%
% If you want to insert figures in your notes do the following: 
% 1) Prepare your figures using your favourite graphic editor
% 	for example idraw or xfig
% 2) Save your pictures in PostScript form using the following convention
% 	notes-nn-fig-mm.eps where nn is the number of the lecture you 
% 	are scribing and mm is the sequential number of the picture in the 
% 	notes
% 3) Insert the following block in your LaTeX code in the place you 
% 	want to insert the figure. HOWEVER, leave it commented or follow
%	  the instructions at the top if you want to latex it on Athena. 
%
% \begin{figure}[h]
% \begin{center}
% \mbox{\psfig{figure=notes-nn-fig-mm.eps}}
% \caption{A very nice picture.}
% \label{fig:mm}
% \end{center}
% \end{figure}
%
% 	of course the picture will not show up when you compile and 
% 	print your notes, but don't worry the TA will take care of it. 
% 4) When you mail the TA the LaTeX code mail him/her the PostScript
%	files for the figures as well 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Your notes start here!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Handouts}
\begin{itemize}
\item Problem Set 9
\item {\em A Practical Voting Scheme for Large 
	Scale Elections}, by Fujioka, Okamoto, and Ohta (1992) 
\end{itemize}

\section{Topics}
\begin{itemize}
\item Electronic Voting
\end{itemize}

We want to design an electronic voting system. Our system should be able
to handle a large, distributed voting population, such as students in a 
university or citizens in a nation.

\subsection{System Requirements/Desiderata}
\begin{enumerate}
\item Each person can vote at most once.
\item Votes are anonymous.
\item The count should be verifiable by a reliable source. Also, each 
	voter should be able to see that her vote was counted correctly.
\item No correlations are evident.
\item Only authorized voters may vote. (Should a public voter list exist?)
\item Each voter is authenticated to ensure that she is casting her own vote.
\item Some mechanism exists to handle failures and discrepancies (see 3).
\item No receipts are given to the voter which indicate how the voter
	voted. This prevents voters from selling their votes and prevents
	crooked politicians from coercing voters to vote in a particular way.
\item A deadline exists to mark the end of the election.
\item There is a way to write-in candidates.
\item The system authenticates itself to the voter. Otherwise, people
	can set up phony voting terminals/programs.
\item System is efficient, easy to implement, verifiable, easy-to-use,
	and scalable.
\item Should you be able to change your vote once it has been cast?
\item There is a method by which you can appoint someone as your 
	proxy.
\item System is continuously available and robust.
\end{enumerate}

\subsection{Techniques Used in {\em A Practical Voting Scheme for Large 
	Scale Elections}}

\begin{description}
\item[Commitments] Commitments ensure that voters cannot change their votes 
	after they have been cast. After a voter has committed to her vote 
	and has sent in her commitment, she sends in the key that
	unlocks the commitment and reveals the vote.

\item[Blind Signatures] Blind signatures allow someone to sign a message 
	without knowing what the message says. In this scheme, the 
	administrator signs all the votes to indicate that they were cast
	by legitimate voters.

	The idea behind blind signatures is to randomize the message before the
	administrator sees it. 

	For example, signing a message using RSA looks like 
	\begin{displaymath}m {\rightarrow} m^{d} \end{displaymath}
	where m is the message and d is $1/e$. (e is the encryption key)

	To implement blind signatures, the voter multiplies her message by
	$r^{e}$, where r is a random number. She then submits this message
	to the administrator. After the message has been signed blindly, the
	administrator sends the message back to the voter, who derandomizes
	it. (m is the voter's commitment)
	\begin{displaymath}m {\rightarrow} r^{e}m {\rightarrow} rm^{d}
	{\rightarrow} m^{d} \end{displaymath}

\item[Anonymous Channels] In this system, a central server acts as an
	anonymous channel. The server delays messages, reorders them, and 
	strips off identifying information. This way, messages coming out
	of the server cannot be traced back to their sources. Notice that the
	server is trusted. Another example of an anonymous channel is an
	anonymous email server.

\end{description}

\subsection{Actual Design}

\subsubsection{Parties Involved}
\begin{itemize}
\item Administrator/Registrar -- Possesses a list of legal voters. Signs vote 
	blindly if vote was cast by legal voter.
\item Voters
\item Anonymous Channel (AC)
\item Counter -- Machine that tallies the votes.
\end{itemize}

\subsubsection{Voting Procedure}
The voting procedure is divided into two phases. The first phase deals with
people casting votes. The second phase, which starts when the voting deadline
has passed, deals with tallying the votes and checking their validity.

Phase 1:
\begin{enumerate}
\item Voter obtains ballot (by logging into machine, etc.)
\item Voter indicates her choices on the ballot.
\item Voter commits to her choices.
\item Voter blinds the commitment by randomizing it.
\item Voter signs the blinded commitment and sends it to administrator.
\item Administrator checks that the commitment was signed by a registered
	voter who hasn't yet voted in this election. Administrator signs
	the commitment and sends it back to the voter.
\item Voter unblinds vote by derandomizing it.
\item Voter sends resulting message (a signed commitment) to the Counter
	via the AC.
\end{enumerate}

*** Deadline for submitting votes ***

Phase 2:
\begin{enumerate}
\item Counter publishes all votes received in the form \{commitment,
	signed commitment\}. (Counter received only signed commitment, but
	since the Counter is part of the voting system, it knows the algorithm
	used by the Administrator to sign the commitment. Thus it can uncover
	the original commitment.) Voter checks that her vote is listed,
	since she knows her original commitment and the signed commitment she
	sent to the Counter.
\item Voter sends decryption string (to open commitment) to the Counter
	via the AC.
\item Counter opens up all commitments and lists the votes in the form
	\{commitment, signed commitment, vote, decryption string\}. Now people
	can check that for each vote, opening the commitment using the
	decryption string yields the vote in question.
\end{enumerate}


\subsection{Interesting Characteristics of the Design}
\begin{itemize}
\item Votes can be sold.
\item Administrator can make up votes. (Administrator must be trusted 
	implicitly.)
\item Counter cannot make up votes.
\item Voters cannot cheat.
\item What if the voter doesn't send in her decommit string? Solution:
	impose two deadlines. One to send in the commitment, one to
	send in the decommit string.
\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Your notes end here!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}
