Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add slides #186

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
TARGET = pond
PSPICFILES =

INPUT_SOURCES = $(shell cat $(TARGET).tex | grep -v ^[\t\ ]*% | grep input\{ | cut -d{ -f2 | cut -d} -f1)
INCLUDE_SOURCES = $(shell cat $(TARGET).tex | grep -v ^[\t\ ]*% | grep include\{ | cut -d{ -f2 | cut -d} -f1)

SOURCES = \
$(TARGET).tex \
$(INPUT_SOURCES:%=%.tex) \
$(INCLUDE_SOURCES:%=%.tex)

$(TARGET).pdf: $(TARGET).tex $(SOURCES)
pdflatex $(TARGET).tex

pspics: $(PSPICFILES)
-latex $(TARGET).tex
-dvips -o $(TARGET)-pics.ps $(TARGET).dvi
-ps2pdf $(TARGET)-pics.ps

clean:
rm -f $(TARGET).ps $(TARGET).dvi
rm -f $(TARGET).ind $(TARGET).toc $(TARGET).bbl $(TARGET).blg $(TARGET).ilg $(TARGET).idx $(TARGET).log $(TARGET).out $(TARGET).snm $(TARGET).nav
rm -f $(SOURCES:%.tex=%.aux)
rm -f $(TARGET)-pics*
rm -f $(TARGET).pdf
46 changes: 46 additions & 0 deletions bbs.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
\begin{frame}
\frametitle{BBS Group Signature}

\begin{itemize}
\setlength\itemsep{1em}
\item Messages signed by a member in a group
\begin{itemize}
\item Group$_i$: people authorized to send to $i$
\end{itemize}
\item Server cannot learn which member of the group signed
\item Revocation:
\begin{itemize}
\item all previous signatures become invalid
\item each member has to update their private keys
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{BBS Group Signature: computational cost}

\begin{itemize}
\setlength\itemsep{1em}
\item Precomputation:
\begin{itemize}
\item 3 pairings (cached by both signers and verifiers)
\item 1 pairing\phantom{s} (cached by signers)
\end{itemize}
\item Sign:
\begin{itemize}
\item 8 (multi-) exponentiations ($7$ in $G_1$, $1$ in $G_T$)
\item 0 pairing
\end{itemize}
\item Verify:
\begin{itemize}
\item 6 multi-exponentiations ($4$ in $G_1$, $1$ in $G_2$, $1$ in $G_T$)
\item 1 pairing
\end{itemize}
\end{itemize}

Note: pairing $e: G_1 \times G_2 \rightarrow G_T$\\
\vspace{1em}
\pause
Comment: This is not (yet) how Pond is implemented.

\end{frame}
22 changes: 22 additions & 0 deletions crypto.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
\begin{frame}
\frametitle{Crypto Components}

\begin{itemize}
\setlength\itemsep{0.5em}
\item TOR
\item TLS (for PANDA key exchange)
\item Curve25519, Ed25519, Salsa20, Poly1305,\\ HMAC-SHA256, Rijndael (with 256-bit block)
\item BBS: group signature
\item DH ratchet: encryption \\
{\footnotesize\color{blue}{\url{https://github.com/trevp/axolotl/wiki}}}
{\footnotesize\color{blue}{\url{https://github.com/agl/pond/blob/master/client/ratchet/}}}
\begin{itemize}
\item forward secure through symmetric-key updating
\item future secure through DH ratchet key updating
\end{itemize}
\item All assumed to be good
\item Implemented in GO by Adam Langley
\end{itemize}
\end{frame}


25 changes: 25 additions & 0 deletions future.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
\begin{frame}
\frametitle{Future Research}

\begin{itemize}
\item Open problems:
\begin{itemize}
\setlength\itemsep{0.3em}
\item Formalize security assumptions
\item Prove protocol secure (or modify to make proof work)
\end{itemize}

\vspace{0.5cm}
\item Desired feature:
\begin{itemize}
\setlength\itemsep{0.3em}
\item Friends introduction\\
A knows B and C; how can A introduces B to C?
\item Scalability of group signature
\item Decentralize PANDA
\item Multiple recipients
\item Group recipient
\item Post-quantum crypto
\end{itemize}
\end{itemize}
\end{frame}
87 changes: 87 additions & 0 deletions intro.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
\begin{frame}
\frametitle{Pond}

\begin{itemize}
\setlength\itemsep{1em}
\item Forward-secure asynchronous messaging (not email!)
\item Communicate with authorized users (no spam!)
\begin{itemize}
\item authorization done using PANDA key exchange
\end{itemize}
\item Attempt to resist network traffic observation
\begin{itemize}
\item connections made at random intervals\\
(dummy or real send/fetch)
\item messages padded to a fixed length
\end{itemize}
\item More details see \\
{\color{blue}{\url{https://pond.imperialviolet.org/}}}
\end{itemize}

\end{frame}

\begin{frame}
\frametitle{How Pond Works}

\begin{itemize}
% \item Pond consists of users and servers
% \vspace{2mm}
\item Servers
\begin{itemize}
\item work as a ``cut-out''
\begin{itemize}
\item never make connections
\item no one controls servers
\end{itemize}
\item provide availability
\begin{itemize}
\item users need not to be online simultaneously
\end{itemize}
\end{itemize}

\pause
\item Users:
\begin{itemize}
\item have 3 types of connection
\begin{itemize}
\item key exchange: PANDA server (over Tor)
\item send/receive message: Tor server
\item large file transfer: Tor server
\end{itemize}
\item communicate only with servers
\begin{itemize}
\item own server to receive messages or upload files
\item recipient's server to send messages
\item sender's server to download files
\end{itemize}
\item make connections periodically
\begin{itemize}
\item time between each connection is exponentially distributed
\end{itemize}
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Messages}

\begin{itemize}
\setlength\itemsep{0.5em}
\item Stored on server until they are fetched
\item Auto-erased from users' side after a fixed amount of time (currently 1 week)
\item Padded to a fixed size
\item Attachment also allowed
\begin{itemize}
\item small: included in a message
\item large: sent many small pieces or uploaded to server
\end{itemize}
\item Encouraged to be acknowledged
\begin{itemize}
\item reply to a message
\item send an acknowledgment
\end{itemize}
\item Server does not learn who the sender is
\end{itemize}
\end{frame}


62 changes: 62 additions & 0 deletions network.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
\begin{frame}
\frametitle{Network Diagram\only<12>{: receive}\only<13>{: send}}

$$
\xymatrix @!0 @C=0.7in @R=0.4in{
{}\save[]+<-1cm,0cm>*+[F]\txt<4pc>{\uncover<1->{Use Tor at all time}} \restore
&
&{}\save[]+<-0cm,0.2cm>*\txt<5.8pc>{
\uncover<6-7,10-11>{{\small{PANDA}} Server over Tor}}
\only<6-7>{\ar@{-}@/_1.5pc/[ddll] \ar@{-}@/^1.5pc/[ddrr]}
\only<10-11>{\ar@{-}@/_1.6pc/[ddll] \ar@{-}[dd]}
\restore
\\
&{}\save[]+<0cm,0.4cm>*\txt{
\uncover<3->{\small{${\color{blue}G_{1\phantom{,}pub}}$}} \uncover<9->{\small{$,{\color{blue}G_{2\phantom{,}pub}}$}} \\
\uncover<1->{Server1}} \restore
\only<2-12>{\ar@{-}[dl]} \only<9-12>{\ar@{-}[dr]} \only<13->{\ar@{--}[dl]} \only<13->{\ar@{--}[dr]} \only<13->{\ar@{--}[drrr]}
&
&
&{}\save[]+<0cm,0.4cm>*\txt{
\uncover<5->{\small{${\color{blue}G_{3\phantom{,}pub}}$}} \\
\uncover<4->{Server2}}
\restore
\only<4-12>{\ar@{-}[d]} \only<13->{\ar@{--}[dllll]}
\\
{}\save[]+<0cm,-0.9cm>*\txt{
\uncover<1->{User1} \\
\uncover<3->{\small{${\color{red}G_{1\phantom{,}sk[1]}}$}} \uncover<7->{\small{$,{\color{red}G_{3\phantom{,}sk[1]}}$}} \uncover<11->{\small{$,{\color{red}G_{2\phantom{,}sk[1]}}$}}\\
\uncover<3->{\small{${\color{PineGreen}S_{1\phantom{,}pub}}$}} \uncover<7->{\small{$,{\color{PineGreen}S_{2\phantom{,}pub}}$}} \\
\uncover<7->{\small{${\color{magenta}U_{3\phantom{,}serv}}$}} \uncover<11->{\small{$,{\color{magenta}U_{2\phantom{,}serv}}$}}
} \restore
&
&{}\save[]+<0cm,-0.9cm>*\txt{
\uncover<8->{User2} \\
\uncover<9->{\small{${\color{red}G_{2\phantom{,}sk[2]}}$}} \uncover<11->{\small{$,{\color{red}G_{1\phantom{,}sk[2]}}$}} \\
\uncover<9->{\small{${\color{PineGreen}S_{1\phantom{,}pub}}$}} \\
\uncover<11->{\small{${\color{magenta}U_{1\phantom{,}serv}}$}}
} \restore
&
&{}\save[]+<0cm,-0.9cm>*\txt{
\uncover<4->{User3} \\
\uncover<5->{\small{${\color{red}G_{3\phantom{,}sk[3]}}$}} \uncover<7->{\small{$,{\color{red}G_{1\phantom{,}sk[3]}}$}} \\
\uncover<5->{\small{${\color{PineGreen}S_{2\phantom{,}pub}}$}} \uncover<7->{\small{$,{\color{PineGreen}S_{1\phantom{,}pub}}$}} \\
\uncover<7->{\small{${\color{magenta}U_{1\phantom{,}serv}}$}}
} \restore
\\
}
$$

\vspace{0.5cm}

\footnotesize{
\begin{align*}
{\color{blue}G_{i\phantom{,}pub}} &: \text{Group } i \text{ public key}\\
{\color{red}G_{i\phantom{,}sk[j]}} &: \text{Group } i \text{ secret key of member } j\\
{\color{PineGreen}S_{i\phantom{,}pub}} &: \text{Server } i \text{ public key}\\
{\color{magenta}U_{i\phantom{,}serv}} &: \text{User } i \text{ home server}\\
\end{align*}
}


\end{frame}
37 changes: 37 additions & 0 deletions pond.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
\documentclass[xcolor=dvipsnames]{beamer}
\setbeamertemplate{navigation symbols}{} %remove navigation symbols

\usepackage{etex}

\usetheme{Warsaw}
%\usetheme{Boadilla}
%\usetheme{Madrid}

\usepackage[arrow,curve,matrix,frame]{xy}
\xyoption{color}
\usepackage{color}
\usepackage{subfigure}
\usepackage{booktabs}
\usepackage{array}
\usepackage{tikz}
\usepackage{amsmath}

\begin{document}

\title
[Pond -- a non-instant messaging protocol by Adam Langley \hspace{0.5mm} \insertframenumber]
{Pond -- a non-instant messaging protocol \\by Adam Langley}
\author{Chitchanok Chuengsatiansup}
\institute{Technische Universiteit Eindhoven}
\date{}

\frame{\titlepage}

\include{intro}
\include{crypto}
\include{ratchet}
\include{network}
\include{bbs}
\include{future}

\end{document}
Loading