diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..b812b07 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,38 @@ +# Created by https://www.gitignore.io + +### LaTeX ### +*.acn +*.acr +*.alg +*.aux +*.bbl +*.bcf +*.blg +*.dvi +*.fdb_latexmk +*.glg +*.glo +*.gls +*.idx +*.ilg +*.ind +*.ist +*.lof +*.log +*.lot +*.maf +*.mtc +*.mtc0 +*.nav +*.nlo +*.out +*.pdfsync +*.ps +*.run.xml +*.snm +*.synctex.gz +*.toc +*.vrb +*.xdy +*.tdo + diff --git a/docs/basics.tex b/docs/basics.tex new file mode 100644 index 0000000..9b69d70 --- /dev/null +++ b/docs/basics.tex @@ -0,0 +1,7 @@ + \section{Basics} + + While encryption technology like PGP or S/MIME provides a secure way to protect content from prying eyes, we lerned from Edward Snowden that metadata - information about who communicates with whom - is equally interesting and much easier to analyze. + + With e-mail, we can only prevent this by encrypting the connection to the server as well as between servers. Therefore we can only hope that both our and the recipient's e-mail provider are both trustworthy and competent. + + With Bitmessage we send a message to a sufficiently large number of participants, with the intended recipient among them. The message is encrypted such as only the person in possesion of the private key can decrypt it. All participants try to do this in order to find their messages. \ No newline at end of file diff --git a/docs/bfh.cls b/docs/bfh.cls new file mode 100644 index 0000000..e1ceb72 --- /dev/null +++ b/docs/bfh.cls @@ -0,0 +1,13 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{bfh}[2015/04/21 Class for my BFH reports] + +\LoadClass[12pt]{scrartcl} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage[utf8]{inputenc} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{float} +\usepackage{wrapfig} +\usepackage{textgreek} +\usepackage{centernot} \ No newline at end of file diff --git a/docs/images/ports_and_adapters.pdf b/docs/images/ports_and_adapters.pdf new file mode 100644 index 0000000..37fde20 Binary files /dev/null and b/docs/images/ports_and_adapters.pdf differ diff --git a/docs/images/ports_and_adapters.svg b/docs/images/ports_and_adapters.svg new file mode 100644 index 0000000..33a3dc4 --- /dev/null +++ b/docs/images/ports_and_adapters.svg @@ -0,0 +1,172 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + Domain + Adapters + Storage + Proof of Work + User Interface + Network + + diff --git a/docs/logo.png b/docs/logo.png new file mode 100644 index 0000000..1b0996f Binary files /dev/null and b/docs/logo.png differ diff --git a/docs/project2.pdf b/docs/project2.pdf new file mode 100644 index 0000000..9ab5655 Binary files /dev/null and b/docs/project2.pdf differ diff --git a/docs/project2.tex b/docs/project2.tex new file mode 100644 index 0000000..b15149b --- /dev/null +++ b/docs/project2.tex @@ -0,0 +1,69 @@ +\documentclass{bfh} + +\title{Project 2} +\subtitle{Bitmessage -- Communication Without Metadata} +\author{Christian Basler} +\date{\today} + +\begin{document} + \maketitle + +\begin{figure}[h] +\includegraphics[width=0.2\textwidth]{logo.png} +\centering +\end{figure} + + \tableofcontents + + \section{Synopsis} + + + + % Section basics + \input{basics} + + The protocol is described in detail in my Seminar paper. + + + \section{Goal} + + At the moment, there aren't many implementations apart from the official clients. Especially two things are missing: a multi purpose Java library and a usable mobile client. My goal for my \textit{Project 2} is to create the library, to be used next semester as a starting point for an Android\textsuperscript{\texttrademark} client in my Bachelor Thesis. + + + \section{Issues} + + \subsection{Proof of Work} + + Proof of work is needed for a message to be distributed within the Bitmessage network. This is to protect both the network itself from denial of service attacks and the users from spam. + + + \section{Architecture} + + \subsection{Ports and Adapters} + + The library uses a ports and adapters architecture, which allows us to easily replace some implementations that might be platform dependent, such as storage or proof of work calculation. + + \includegraphics[width=\textwidth]{images/ports_and_adapters.pdf} + + The big advantage of this approach is that it's easy to test the core as well as each adapter by itself. + + + \subsection{Network Management} + + + \section{Discussion} + + + \appendix + \addcontentsline{toc}{section}{Appendix} + \section*{Appendix} + \renewcommand{\thesubsection}{\Alph{subsection}} + + + \subsection{JavaDoc Documentation} + + + \subsection{Literature} + + +\end{document} \ No newline at end of file