Documentation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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}
|
||||
Binary file not shown.
@@ -0,0 +1,172 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="679.7655"
|
||||
height="591.2851"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="ports_and_adapters.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="149.17872"
|
||||
inkscape:cy="85.139761"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1632"
|
||||
inkscape:window-height="1005"
|
||||
inkscape:window-x="48"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-18.678419,-26.216821)">
|
||||
<path
|
||||
inkscape:transform-center-y="-23.12416"
|
||||
inkscape:transform-center-x="10.947617"
|
||||
d="m 465.92439,509.82496 c -1.78891,1.03067 -204.67101,0.84709 -206.45806,-0.18682 -1.78704,-1.03391 -103.06911,-176.82675 -103.06724,-178.89133 0.002,-2.06458 101.6019,-177.67385 103.39081,-178.70452 1.78892,-1.03067 204.67102,-0.84709 206.45806,0.18682 1.78705,1.0339 103.06912,176.82675 103.06725,178.89133 -0.002,2.06458 -101.6019,177.67384 -103.39082,178.70452 z"
|
||||
inkscape:randomized="9.7491459e-16"
|
||||
inkscape:rounded="0.01"
|
||||
inkscape:flatsided="true"
|
||||
sodipodi:arg2="1.5717012"
|
||||
sodipodi:arg1="1.0481024"
|
||||
sodipodi:r2="214.49513"
|
||||
sodipodi:r1="206.45815"
|
||||
sodipodi:cy="330.93362"
|
||||
sodipodi:cx="362.85715"
|
||||
sodipodi:sides="6"
|
||||
id="path2997"
|
||||
style="fill:#5fbcd3;fill-opacity:1;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="star"
|
||||
transform="matrix(1.645857,0,0,1.645857,-238.64982,-222.81004)" />
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="fill:#ffd42a;fill-opacity:1;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path2985"
|
||||
sodipodi:sides="6"
|
||||
sodipodi:cx="362.85715"
|
||||
sodipodi:cy="330.93362"
|
||||
sodipodi:r1="206.45815"
|
||||
sodipodi:r2="214.49513"
|
||||
sodipodi:arg1="1.0481024"
|
||||
sodipodi:arg2="1.5717012"
|
||||
inkscape:flatsided="true"
|
||||
inkscape:rounded="0.01"
|
||||
inkscape:randomized="9.7491459e-16"
|
||||
d="m 465.92439,509.82496 c -1.78891,1.03067 -204.67101,0.84709 -206.45806,-0.18682 -1.78704,-1.03391 -103.06911,-176.82675 -103.06724,-178.89133 0.002,-2.06458 101.6019,-177.67385 103.39081,-178.70452 1.78892,-1.03067 204.67102,-0.84709 206.45806,0.18682 1.78705,1.0339 103.06912,176.82675 103.06725,178.89133 -0.002,2.06458 -101.6019,177.67384 -103.39082,178.70452 z"
|
||||
inkscape:transform-center-x="6.6516253"
|
||||
inkscape:transform-center-y="-14.049918"
|
||||
transform="translate(-4.2959915,-9.0742422)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
x="358.36584"
|
||||
y="218.6479"
|
||||
id="text2987"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
x="358.36584"
|
||||
y="218.6479"
|
||||
id="tspan2995"
|
||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">Domain</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text2999"
|
||||
y="94.647903"
|
||||
x="359.22522"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
|
||||
id="tspan3003"
|
||||
y="94.647903"
|
||||
x="359.22522"
|
||||
sodipodi:role="line">Adapters</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
x="-100.75645"
|
||||
y="246.52264"
|
||||
id="text3042"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.47970506,-0.8774298,0.8774298,0.47970506,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
x="-100.75645"
|
||||
y="246.52264"
|
||||
id="tspan3044"
|
||||
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique">Storage</tspan></text>
|
||||
<text
|
||||
transform="matrix(0.53345366,0.84582929,-0.84582929,0.53345366,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3046"
|
||||
y="-357.84464"
|
||||
x="471.47845"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique"
|
||||
y="-357.84464"
|
||||
x="471.47845"
|
||||
sodipodi:role="line"
|
||||
id="tspan3050">Proof of Work</tspan></text>
|
||||
<text
|
||||
transform="matrix(-0.51536966,-0.85696798,0.85696798,-0.51536966,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3054"
|
||||
y="-85.847336"
|
||||
x="-455.38437"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique"
|
||||
id="tspan3056"
|
||||
y="-85.847336"
|
||||
x="-455.38437"
|
||||
sodipodi:role="line">User Interface</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
|
||||
x="92.095795"
|
||||
y="-700.29236"
|
||||
id="text3058"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(-0.51365875,0.85799458,-0.85799458,-0.51365875,0,0)"><tspan
|
||||
id="tspan3060"
|
||||
sodipodi:role="line"
|
||||
x="92.095795"
|
||||
y="-700.29236"
|
||||
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique">Network</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
@@ -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}
|
||||
Reference in New Issue
Block a user