marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

commit 195417840aada878aa249f4db2fa3e17ed71bf7d
parent 5f9ea0b951caa20c869a0a1ea0e09c4957cd08b0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 23 Aug 2022 11:06:39 +0200

add Anastasis slides

Diffstat:
A2022-nullcon/adversary.odg | 0
A2022-nullcon/adversary.pdf | 0
A2022-nullcon/anastasis-presentation.pptx | 0
A2022-nullcon/ashoka.png | 0
A2022-nullcon/backup.mp4 | 0
A2022-nullcon/bandiera_stelle.png | 0
A2022-nullcon/bfh.png | 0
A2022-nullcon/bootcamp.pdf | 0
A2022-nullcon/bootcamp.tex | 233+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022-nullcon/compare.pdf | 0
A2022-nullcon/compare.tex | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022-nullcon/gantt.tex | 39+++++++++++++++++++++++++++++++++++++++
A2022-nullcon/identity.odg | 0
A2022-nullcon/identity.pdf | 0
A2022-nullcon/logo.png | 0
A2022-nullcon/motivation.pdf | 0
A2022-nullcon/mvp.pdf | 0
A2022-nullcon/mvp.tex | 242+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022-nullcon/ngi_ledger.pdf | 0
A2022-nullcon/nullcon.pdf | 0
A2022-nullcon/nullcon.tex | 513+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022-nullcon/overview.odg | 0
A2022-nullcon/overview.pdf | 0
A2022-nullcon/polynominal.png | 0
A2022-nullcon/recovery.mp4 | 0
A2022-nullcon/roadmap.pdf | 0
A2022-nullcon/roadmap.tex | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022-nullcon/simplifications.odg | 0
A2022-nullcon/simplifications.pdf | 0
A2022-nullcon/step1.odg | 0
A2022-nullcon/step1.pdf | 0
A2022-nullcon/step11.odg | 0
A2022-nullcon/step11.pdf | 0
A2022-nullcon/step12.odg | 0
A2022-nullcon/step12.pdf | 0
A2022-nullcon/step13.odg | 0
A2022-nullcon/step13.pdf | 0
A2022-nullcon/step14.odg | 0
A2022-nullcon/step14.pdf | 0
A2022-nullcon/step15.odg | 0
A2022-nullcon/step15.pdf | 0
A2022-nullcon/step16.odg | 0
A2022-nullcon/step16.pdf | 0
A2022-nullcon/step2.odg | 0
A2022-nullcon/step2.pdf | 0
A2022-nullcon/step3.odg | 0
A2022-nullcon/step3.pdf | 0
A2022-nullcon/step4.odg | 0
A2022-nullcon/step4.pdf | 0
A2022-nullcon/step5.odg | 0
A2022-nullcon/step5.pdf | 0
A2022-nullcon/step6.odg | 0
A2022-nullcon/step6.pdf | 0
A2022-nullcon/step7.odg | 0
A2022-nullcon/step7.pdf | 0
A2022-nullcon/step8.odg | 0
A2022-nullcon/step8.pdf | 0
A2022-nullcon/technically.pdf | 0
A2022-nullcon/what.pdf | 0
A2022-nullcon/white.png | 0
60 files changed, 1267 insertions(+), 0 deletions(-)

diff --git a/2022-nullcon/adversary.odg b/2022-nullcon/adversary.odg Binary files differ. diff --git a/2022-nullcon/adversary.pdf b/2022-nullcon/adversary.pdf Binary files differ. diff --git a/2022-nullcon/anastasis-presentation.pptx b/2022-nullcon/anastasis-presentation.pptx Binary files differ. diff --git a/2022-nullcon/ashoka.png b/2022-nullcon/ashoka.png Binary files differ. diff --git a/2022-nullcon/backup.mp4 b/2022-nullcon/backup.mp4 Binary files differ. diff --git a/2022-nullcon/bandiera_stelle.png b/2022-nullcon/bandiera_stelle.png Binary files differ. diff --git a/2022-nullcon/bfh.png b/2022-nullcon/bfh.png Binary files differ. diff --git a/2022-nullcon/bootcamp.pdf b/2022-nullcon/bootcamp.pdf Binary files differ. diff --git a/2022-nullcon/bootcamp.tex b/2022-nullcon/bootcamp.tex @@ -0,0 +1,233 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames,table}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary[positioning] +\usetikzlibrary{patterns} +\usetikzlibrary{arrows,decorations.markings,fit} +\usetikzlibrary{shapes} +\usepackage{eurosym} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + +\title{Anastasis} +\subtitle{Key backup and recovery} + +\setbeamertemplate{navigation symbols}{\includegraphics[width=2.3cm]{bfh.png} \includegraphics[width=0.4cm]{ashoka.png}} +%\setbeamercovered{transparent=1} + +\author[C. Grothoff]{B. Alp, V. Mohan, C. Grothoff, B. Pena, F. Dold} +\date{\today} +\institute{Anastasis SARL} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf Anastasis} + + \vfill +% \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} +% \includegraphics[width=0.66\textwidth]{logo.png} + + \vfill + \end{center} +\begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) + {\Large {\bf \href{https://anastasis.lu/}{anastasis.lu}}} \\ + \href{https://twitter.com/anastasis-sarl}{anastasis-sarl@twitter} +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) + {\hfill {\Large {\bf Vaishnavi Mohan \&} \\ + \hfill {\bf Christian Grothoff}} \\ + \hfill \{mohan,grothoff\}@anastasis.lu } +\end{textblock*} + +\end{frame} + +\section{Introduction} + +\begin{frame}{Main Points} + \framesubtitle{https://anastasis.lu/} + \begin{center} + \movie[%scale=0.6, + autostart, + poster] + { + \includegraphics[height=0.6\textwidth,width=0.8\textwidth]{white.png} + } + {backup.mp4} + + {\tiny Backup} + \end{center} +\end{frame} + + +\begin{frame}{Main Points} + \framesubtitle{https://anastasis.lu/} +\begin{center} + \movie[%scale=0.6, + autostart, + poster] + { + \includegraphics[height=0.6\textwidth,width=0.8\textwidth]{white.png} + } + {recovery.mp4} + + {\tiny Recovery} +\end{center} +\end{frame} + + +\begin{frame}{Human planning} +\begin{description} +\item[Belen] UX design +\item[Vaishnavi] Backend +\item[Florian] Android Frontend +\item[Christian] Gtk+ Frontend \& Crypto +\item[Dennis] REST frontend +\item[Dominik] REST backend +\item[Berna] Business +\end{description} +\end{frame} + + +\begin{frame}{Timeline} +\begin{center} +\small +\input{gantt.tex} +\end{center} +\end{frame} + + +\begin{frame}{Challenges} + \begin{itemize} + \item Collecting payments: + \begin{itemize} + \item integration with Stripe + \item integration with PayPal + \item integration with Blockchain + \end{itemize} + \item Localization (need advice from residents in each EU country \& translations) -- {\bf dyne?} +% \item Business model (pricing, fee structure) -- {\bf bluemorpho?} + \item Customer acquisition -- {\bf you?} + \end{itemize} +\end{frame} + + +\begin{frame} +\frametitle{Do you have any questions?} +\vfill +References: + \begin{enumerate} + \item{Dennis Neufeld and Dominik Meister. + {\em Anastasis: Password-less key recovery via multi-factormulti-party authentication}. + {\bf BFH, 2020}.} + \item{Christian Grothoff, Bart Polot and Carlo von Loesch. + {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. + {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} + \item{Phillip Rogaway. + {\em The Moral Character of Cryptographic Work}. + {\bf Asiacrypt}, 2015.} \label{bib:rogaway} +\end{enumerate} +\end{frame} + + +\end{document} diff --git a/2022-nullcon/compare.pdf b/2022-nullcon/compare.pdf Binary files differ. diff --git a/2022-nullcon/compare.tex b/2022-nullcon/compare.tex @@ -0,0 +1,125 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames,table}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary[positioning] +\usetikzlibrary{patterns} +\usetikzlibrary{arrows,decorations.markings,fit} +\usetikzlibrary{shapes} +\usepackage{eurosym} +\usepackage{url} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\begin{document} + + + +\section{Competitor comparison} +\begin{frame}{Competitor comparison} + \begin{center} \tiny + \begin{tabular}{l||c|c|c|c|c|c} + & Libre &Distributed&UD-Policy &Authentication& Privacy & Use-cases \\ \hline \hline + Anastasis & +++ & open & yes & 6 methods & +++ & sign, encrypt \\ \hline + Dark Crystal& +++ & social & no & social-only & + & sign, encrypt \\ \hline + Argent & $-$$-$ & open & yes & 4 methods & + & sign \\ \hline + Jump Cloud &$-$$-$$-$ & no & no & 3 methods &$-$$-$$-$& sign, encrypt \\ \hline + Vault 12 & $-$$-$ & social & no & social-only & + & sign, encrypt \\ \hline \hline + FireBlocks &$-$$-$$-$ & ??? & ??? & ??? &$-$$-$$-$& sign \\ \hline + Curv &$-$$-$$-$ & 2nd party & no & ??? &$-$$-$$-$& sign \\ \hline + MetaCo &$-$$-$$-$ & closed & ??? & ??? &$-$$-$$-$& sign \\ %\hline + \end{tabular} + \end{center} +\end{frame} + + +\end{document} diff --git a/2022-nullcon/gantt.tex b/2022-nullcon/gantt.tex @@ -0,0 +1,39 @@ +% \subsubsection{Timing of the different WPs and their components} + +\begin{figure}[h] +\hrule +% \def\gantt#1#2#3#4{WP#1 M#2--M#3: #4\par} +\newcount\ganttcount +\def\gantt#1#2#3#4{\hbox to\hsize{\ganttcount=#2 + #4\hfil M#2--M#3\quad + \vrule height 12pt depth 3pt + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \ganttcount=#3\advance\ganttcount-#2 + \vrule height 9pt depth 0pt width \the\ganttcount pt + \vrule height 9pt depth 0pt width \the\ganttcount pt + \vrule height 9pt depth 0pt width \the\ganttcount pt + \vrule height 9pt depth 0pt width \the\ganttcount pt + \ganttcount=6\advance\ganttcount-#3 + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \hskip \the\ganttcount pt + \vrule height 12pt depth 3pt + }} + +\gantt{\numetoe}{0}{2}{1. Implement core logic (backend\&frontend)} +\gantt{\numetoe}{0}{2}{2. Deploy 1st backend (security-question only)} +\gantt{\numetoe}{1}{4}{3. Write Gtk+ GUI (stand-alone App for demonstration)} +\gantt{\numetoe}{2}{4}{4. Deploy 2nd backend (SMS + E-mail authentication)} +\gantt{\numetoe}{3}{5}{5. Integrate with Taler wallet (backup \& recovery)} +\gantt{\numetoe}{4}{6}{6. Integrate payment support} +\gantt{\numdiss}{0}{6}{7. Business development (clients, partnerships, ...)} +%%% + +\hrule +\caption{Gantt chart.} +\label{fig:gantt} +\end{figure} diff --git a/2022-nullcon/identity.odg b/2022-nullcon/identity.odg Binary files differ. diff --git a/2022-nullcon/identity.pdf b/2022-nullcon/identity.pdf Binary files differ. diff --git a/2022-nullcon/logo.png b/2022-nullcon/logo.png Binary files differ. diff --git a/2022-nullcon/motivation.pdf b/2022-nullcon/motivation.pdf Binary files differ. diff --git a/2022-nullcon/mvp.pdf b/2022-nullcon/mvp.pdf Binary files differ. diff --git a/2022-nullcon/mvp.tex b/2022-nullcon/mvp.tex @@ -0,0 +1,242 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames,table}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary[positioning] +\usetikzlibrary{patterns} +\usetikzlibrary{arrows,decorations.markings,fit} +\usetikzlibrary{shapes} +\usepackage{eurosym} +\usepackage{url} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + +\title{GNU Anastasis} +\subtitle{Privacy-preserving Distributed Key backup and recovery} + +\author[C. Grothoff]{B. Alp, V. Mohan, C. Grothoff, B. Pena, F. Dold} +\date{8.9.2021} +\institute{Anastasis SARL} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf GNU} +% \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} + \includegraphics[scale=0.5]{logo.png} + + \vfill + {\small MVP Demonstration} + + \vspace{1cm} + {\small funded by} + \includegraphics[height=0.3cm]{ngi_ledger.pdf} + \includegraphics[height=0.3cm]{bandiera_stelle.png} + \vfill + \end{center} +\begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) + {\Large {\bf \href{https://anastasis.lu/}{anastasis.lu}}} \\ + \href{https://twitter.com/anastasis-sarl}{anastasis-sarl@twitter} +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) + {\hfill {\Large {\bf Florian Dold \&} \\ + \hfill {\bf Christian Grothoff}} \\ + \hfill \{dold,grothoff\}@anastasis.lu } +\end{textblock*} + +\end{frame} + +\section{Introduction} + +\begin{frame}{The Problem Illustrated} + \begin{center} + \includegraphics[width=0.9\textwidth]{motivation.pdf} + \end{center} +\end{frame} + +\begin{frame}{} + \begin{center} + \includegraphics[width=1\textwidth]{technically.pdf} + \end{center} +\end{frame} + +\begin{frame}{} + \begin{center} + \includegraphics[width=1\textwidth]{what.pdf} + \end{center} +\end{frame} + + +\section{Architecture} + +\begin{frame}{Software architecture overview} +\framesubtitle{\url{https://github.com/LedgerProject/Anastasis}} +\noindent +\begin{center} +{\bf Anastasis is a protocol.} +\end{center} + +The software consists of three components: +\begin{description} +\item[anastasis] Backend and client libraries (C) +\item[anastasis-gtk] Gtk+ front-end (C) +\item[anastasis-ts] Alternative front-end (TS) [WiP] +\end{description} +Major dependencies include: +\begin{description} +\item[GNU Taler] Privacy-preserving payments (C/TS) +\item[Postgres] Backend database (C) +\item[libeufin] Alternative access to banking infrastructure (Kotlin) +\item[GNUnet] Various utility functions (C) +\item[GNU MHD] HTTP server library (C) +\end{description} +\end{frame} + + +\section{Installation} + +\begin{frame}[fragile]{Binary installation instructions} +\framesubtitle{\url{https://docs.anastasis.lu/}} +Debian 11: +{\small +\begin{verbatim} +# echo 'deb https://deb.taler.net/apt/debian/ bullseye main'\ + > /etc/apt/sources.list/taler.list +# wget -O - https://taler.net/taler-systems.gpg.key |\ + apt-key add - +# apt update +# apt install anastasis-gtk +\end{verbatim} +} +Ubuntu 20.04: +{\small +\begin{verbatim} +# echo 'deb https://deb.taler.net/apt/ubuntu/ focal-fossa main'\ + > /etc/apt/sources.list/taler.list +# wget -O - https://taler.net/taler-systems.gpg.key |\ + apt-key add - +# apt update +# apt install anastasis-gtk +\end{verbatim} +} +\end{frame} + + +\begin{frame}{Do you have any questions?} +\framesubtitle{\url{https://anastasis.lu/}} +\vfill +References: + \begin{enumerate} + \item{Dennis Neufeld and Dominik Meister. + {\em Anastasis: Password-less key recovery via multi-factormulti-party authentication}. + {\bf BFH, 2020}.} + \item{David Chaum, Christian Grothoff and Thomas Moser. + {\em How to Issue a Central Bank Digital Currency}. + {\bf Swiss National Bank Working Papers, 3/2021}} + \item{Florian Dold. + {\em The GNU Taler System: Practical and Provably Secure Electronic Payments}. + {\bf University of Rennes 1}, 2019.} +\end{enumerate} +\end{frame} + + +\end{document} diff --git a/2022-nullcon/ngi_ledger.pdf b/2022-nullcon/ngi_ledger.pdf Binary files differ. diff --git a/2022-nullcon/nullcon.pdf b/2022-nullcon/nullcon.pdf Binary files differ. diff --git a/2022-nullcon/nullcon.tex b/2022-nullcon/nullcon.tex @@ -0,0 +1,513 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames,table}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary[positioning] +\usetikzlibrary{patterns} +\usetikzlibrary{arrows,decorations.markings,fit} +\usetikzlibrary{shapes} +\usepackage{eurosym} +\usepackage{url} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + +\title{GNU Anastasis} +\subtitle{Privacy-preserving Distributed Key backup and recovery} + +\author[C. Grothoff]{B. Alp, V. Mohan, C. Grothoff, B. Pena, F. Dold} +\date{8.4.2022} +\institute{Anastasis SARL} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf GNU} +% \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} + \includegraphics[scale=0.5]{logo.png} + + \vfill + {\small Nullcon 2022, Berlin} + + \vspace{1cm} + {\small funded by} + \includegraphics[height=0.3cm]{ngi_ledger.pdf} + \includegraphics[height=0.3cm]{bandiera_stelle.png} + \vfill + \end{center} +\begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) + {\Large {\bf \href{https://anastasis.lu/}{anastasis.lu}}} \\ + \href{https://twitter.com/anastasis-sarl}{anastasis-sarl@twitter} +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) + {\hfill %{\Large {\bf Florian Dold \&} \\ + \hfill {\bf Christian Grothoff} \\ + \hfill grothoff@anastasis.lu } +\end{textblock*} + +\end{frame} + +\section{Introduction} + +\begin{frame}{The Problem Illustrated} + \begin{center} + \includegraphics[width=0.9\textwidth]{motivation.pdf} + \end{center} +\end{frame} + +\section{Shamir} + +\begin{frame}{Problem: Availability (1/3)} +\vfill + \begin{center} + If you give one person a secret, it may get lost. + \end{center} + \vfill \pause + \begin{center} + $\Rightarrow$ So give it to more than one person! + \end{center} +\vfill +\end{frame} + +\begin{frame}{Problem: Confidentiality (2/3)} +\vfill + \begin{center} + If you give many entities a secret, it may get disclosed. + \end{center} + \vfill \pause + \begin{center} + $\Rightarrow$ So give them only a key share! + \end{center} +\vfill +\end{frame} + +\begin{frame}{Problem: Scalability (3/3)} +\vfill + If you want $k$ out of $n$ entities to coordinate to + recover a secret, there are + \begin{equation} + \left( {n \atop k} \right) = \frac{n!}{k!(n-k)!} + \end{equation} + combinations to consider. + \vfill \pause + \begin{center} + $\Rightarrow$ Use polynominals! + \end{center} +\vfill +\end{frame} + + +\begin{frame}{Polynominals} +\vfill +\begin{minipage}{7cm} +A polynominal of degree $k$ is fully determined by $k+1$ data points +\begin{equation*} + (x_{0},y_{0}),\ldots ,(x_{j},y_{j}),\ldots ,(x_{k},y_{k}), +\end{equation*} +where no two $x_j$ may be identical. +\end{minipage} +\begin{minipage}{5cm} + \includegraphics[width=4cm]{polynominal.png} +\end{minipage} +\vfill +\end{frame} + + +\begin{frame}{Lagrange Interpolation} +\vfill +The interpolation polynominal in the Lagrange form is: +\begin{equation*} + L(x):=\sum _{j=0}^{k}y_{j}\ell_{j}(x) +\end{equation*} +where +\begin{equation} + \ell_{j}(x):=\prod _{\begin{smallmatrix}0\leq m\leq k\\m\neq j\end{smallmatrix}}{\frac {x-x_{m}}{x_{j}-x_{m}}}={\frac {(x-x_{0})}{(x_{j}-x_{0})}}\cdots {\frac {(x-x_{j-1})}{(x_{j}-x_{j-1})}}{\frac {(x-x_{j+1})}{(x_{j}-x_{j+1})}}\cdots {\frac {(x-x_{k})}{(x_{j}-x_{k})}} +\end{equation} +for $0 \leq j \leq k$. +\vfill +\end{frame} + + +\begin{frame}{Practical Considerations} + \begin{itemize} + \item Our secrets will typically be integers. Calculations with floating points are {\em messy}. + \item[$\Rightarrow$] Use finite field arithmetic, not $\mathbb R$. + \end{itemize} +\end{frame} + + + +\begin{frame}{Real world scalability} +\vfill + \begin{center} + \begin{tabular}{l||r|r|r|r|r|r} + n / k & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \hline + 1 & 1 & 2 & 3 & 4 & 5 & 6 \\ + 2 & & 1 & 3 & 6 & 10 & 15 \\ + 3 & & & 1 & 4 & 10 & 20 \\ + 4 & & & & 1 & 5 & 15 \\ + 5 & & & & & 1 & 6 \\ + 6 & & & & & & 1 \\ + \end{tabular} + \end{center} + Other values: \\ + \begin{itemize} + \item $\left( {10 \atop 5 } \right) = 252$ + \item $\left( {20 \atop 10 } \right) = 184756$ + \item $\left( {30 \atop 15 } \right) = 155117520$ + \item $\left( {100 \atop 50 } \right) \approx 10^{29}$ + \end{itemize} +\vfill +\end{frame} + + +\begin{frame}{Scalability Problem?} +\vfill + \begin{center} + How many people do you have to share your secrets with? + \end{center} +\vfill + \begin{center} + How many people realistically participate in recovery? + \end{center} +\vfill +\end{frame} + + +\section{Anastasis} + +\begin{frame}{} + \begin{center} + \includegraphics[width=1\textwidth]{technically.pdf} + \end{center} +\end{frame} + +\begin{frame}{} + \begin{center} + \includegraphics[width=1\textwidth]{what.pdf} + \end{center} +\end{frame} + +\section{Design} + +\begin{frame}{Preliminaries} + \begin{center} + \includegraphics[width=1\textwidth]{identity.pdf} + \end{center} +\end{frame} + + +\begin{frame}{Adversary Model} + \begin{center} + \includegraphics[width=1\textwidth]{adversary.pdf} + \end{center} +\end{frame} + + +\begin{frame}{Overview} + \begin{center} + \includegraphics[width=1\textwidth]{overview.pdf} + \end{center} +\end{frame} + + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 1: Core Secret} + \begin{center} + \includegraphics[width=1\textwidth]{step1.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 2: Split Core Secret} + \begin{center} + \includegraphics[width=1\textwidth]{step2.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 3: User Identification} + \begin{center} + \includegraphics[width=1\textwidth]{step3.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 4: Key Derivation} + \begin{center} + \includegraphics[width=1\textwidth]{step4.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 5: Encrypt Parts} + \begin{center} + \includegraphics[width=1\textwidth]{step5.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 6: Add Truth} + \begin{center} + \includegraphics[width=1\textwidth]{step6.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 7: Encrypt Truth} + \begin{center} + \includegraphics[width=1\textwidth]{step7.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 8: Store Data} + \begin{center} + \includegraphics[width=1\textwidth]{step8.pdf} + \end{center} +\end{frame} + + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 9: User Identification} + \begin{center} + \includegraphics[width=1\textwidth]{step3.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 10: Key Derivation} + \begin{center} + \includegraphics[width=1\textwidth]{step4.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 11: Provide Key} + \begin{center} + \includegraphics[width=1\textwidth]{step11.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 12: Decrypt Truth} + \begin{center} + \includegraphics[width=1\textwidth]{step12.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 13: Authentication} + \begin{center} + \includegraphics[width=1\textwidth]{step13.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 14: Receive Parts} + \begin{center} + \includegraphics[width=1\textwidth]{step14.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 15: Decrypt Parts} + \begin{center} + \includegraphics[width=1\textwidth]{step15.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplified Process Flow} +\framesubtitle{Step 16: Reassembly} + \begin{center} + \includegraphics[width=1\textwidth]{step16.pdf} + \end{center} +\end{frame} + +\begin{frame}{Simplifications} +\framesubtitle{The previous illustrations make various simplifications} +\begin{center} + \includegraphics[width=1\textwidth]{simplifications.pdf} + \end{center} +\end{frame} + +\section{Demonstration} + +\begin{frame}{Demonstration} +\begin{center} + Demo. +\end{center} +\end{frame} + +\section{Architecture} + +\begin{frame}{Software architecture overview} +\framesubtitle{\url{https://git.taler.net/anastasis.git}} +\noindent +\begin{center} +{\bf Anastasis is a protocol.} +\end{center} + +The software consists of three components: +\begin{description} +\item[anastasis] Backend and client libraries (C) +\item[anastasis-gtk] Gtk+ front-end (C) +\item[anastasis-ts] Alternative front-end (TS) +\end{description} +Major dependencies include: +\begin{description} +\item[GNU Taler] Privacy-preserving payments (C/TS) +\item[Postgres] Backend database (C) +\item[libeufin] Alternative access to banking infrastructure (Kotlin) +\item[GNUnet] Various utility functions (C) +\item[GNU MHD] HTTP server library (C) +\end{description} +\end{frame} + + +\section{Installation} + +\begin{frame}[fragile]{Binary installation instructions} +\framesubtitle{\url{https://docs.anastasis.lu/}} +Debian 11: +{\small +\begin{verbatim} +# echo 'deb https://deb.taler.net/apt/debian/ bullseye main'\ + > /etc/apt/sources.list/taler.list +# wget -O - https://taler.net/taler-systems.gpg.key |\ + apt-key add - +# apt update +# apt install anastasis-gtk +\end{verbatim} +} +Ubuntu 20.04: +{\small +\begin{verbatim} +# echo 'deb https://deb.taler.net/apt/ubuntu/ focal-fossa main'\ + > /etc/apt/sources.list/taler.list +# wget -O - https://taler.net/taler-systems.gpg.key |\ + apt-key add - +# apt update +# apt install anastasis-gtk +\end{verbatim} +} +\end{frame} + + +\begin{frame}{Do you have any questions?} +\framesubtitle{\url{https://anastasis.lu/}} +\vfill +References: + \begin{enumerate} + \item{Dennis Neufeld and Dominik Meister. + {\em Anastasis: Password-less key recovery via multi-factormulti-party authentication}. + {\bf BFH, 2020}.} + \item{David Chaum, Christian Grothoff and Thomas Moser. + {\em How to Issue a Central Bank Digital Currency}. + {\bf Swiss National Bank Working Papers, 3/2021}} + \item{Florian Dold. + {\em The GNU Taler System: Practical and Provably Secure Electronic Payments}. + {\bf University of Rennes 1}, 2019.} +\end{enumerate} +\end{frame} + + +\end{document} diff --git a/2022-nullcon/overview.odg b/2022-nullcon/overview.odg Binary files differ. diff --git a/2022-nullcon/overview.pdf b/2022-nullcon/overview.pdf Binary files differ. diff --git a/2022-nullcon/polynominal.png b/2022-nullcon/polynominal.png Binary files differ. diff --git a/2022-nullcon/recovery.mp4 b/2022-nullcon/recovery.mp4 Binary files differ. diff --git a/2022-nullcon/roadmap.pdf b/2022-nullcon/roadmap.pdf Binary files differ. diff --git a/2022-nullcon/roadmap.tex b/2022-nullcon/roadmap.tex @@ -0,0 +1,115 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames,table}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary[positioning] +\usetikzlibrary{patterns} +\usetikzlibrary{arrows,decorations.markings,fit} +\usetikzlibrary{shapes} +\usepackage{eurosym} +\usepackage{url} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\begin{document} +\begin{frame}{Roadmap} +\begin{description} +\item[Q4'2021]{Web-based Anastasis client} +\item[Q1'2022]{Anastasis-Taler integration, 2nd provider deployed} +\item[Q2'2022]{3nd provider deployed, presentation at developer-focused conferences} +\item[Q3'2022]{6 different authentication factors supported in production, + localization support for all major European countries} +\item[Q4'2022]{Integration in additional 3rd party products (beyond Taler)} +\end{description} +\end{frame} + +\end{document} diff --git a/2022-nullcon/simplifications.odg b/2022-nullcon/simplifications.odg Binary files differ. diff --git a/2022-nullcon/simplifications.pdf b/2022-nullcon/simplifications.pdf Binary files differ. diff --git a/2022-nullcon/step1.odg b/2022-nullcon/step1.odg Binary files differ. diff --git a/2022-nullcon/step1.pdf b/2022-nullcon/step1.pdf Binary files differ. diff --git a/2022-nullcon/step11.odg b/2022-nullcon/step11.odg Binary files differ. diff --git a/2022-nullcon/step11.pdf b/2022-nullcon/step11.pdf Binary files differ. diff --git a/2022-nullcon/step12.odg b/2022-nullcon/step12.odg Binary files differ. diff --git a/2022-nullcon/step12.pdf b/2022-nullcon/step12.pdf Binary files differ. diff --git a/2022-nullcon/step13.odg b/2022-nullcon/step13.odg Binary files differ. diff --git a/2022-nullcon/step13.pdf b/2022-nullcon/step13.pdf Binary files differ. diff --git a/2022-nullcon/step14.odg b/2022-nullcon/step14.odg Binary files differ. diff --git a/2022-nullcon/step14.pdf b/2022-nullcon/step14.pdf Binary files differ. diff --git a/2022-nullcon/step15.odg b/2022-nullcon/step15.odg Binary files differ. diff --git a/2022-nullcon/step15.pdf b/2022-nullcon/step15.pdf Binary files differ. diff --git a/2022-nullcon/step16.odg b/2022-nullcon/step16.odg Binary files differ. diff --git a/2022-nullcon/step16.pdf b/2022-nullcon/step16.pdf Binary files differ. diff --git a/2022-nullcon/step2.odg b/2022-nullcon/step2.odg Binary files differ. diff --git a/2022-nullcon/step2.pdf b/2022-nullcon/step2.pdf Binary files differ. diff --git a/2022-nullcon/step3.odg b/2022-nullcon/step3.odg Binary files differ. diff --git a/2022-nullcon/step3.pdf b/2022-nullcon/step3.pdf Binary files differ. diff --git a/2022-nullcon/step4.odg b/2022-nullcon/step4.odg Binary files differ. diff --git a/2022-nullcon/step4.pdf b/2022-nullcon/step4.pdf Binary files differ. diff --git a/2022-nullcon/step5.odg b/2022-nullcon/step5.odg Binary files differ. diff --git a/2022-nullcon/step5.pdf b/2022-nullcon/step5.pdf Binary files differ. diff --git a/2022-nullcon/step6.odg b/2022-nullcon/step6.odg Binary files differ. diff --git a/2022-nullcon/step6.pdf b/2022-nullcon/step6.pdf Binary files differ. diff --git a/2022-nullcon/step7.odg b/2022-nullcon/step7.odg Binary files differ. diff --git a/2022-nullcon/step7.pdf b/2022-nullcon/step7.pdf Binary files differ. diff --git a/2022-nullcon/step8.odg b/2022-nullcon/step8.odg Binary files differ. diff --git a/2022-nullcon/step8.pdf b/2022-nullcon/step8.pdf Binary files differ. diff --git a/2022-nullcon/technically.pdf b/2022-nullcon/technically.pdf Binary files differ. diff --git a/2022-nullcon/what.pdf b/2022-nullcon/what.pdf Binary files differ. diff --git a/2022-nullcon/white.png b/2022-nullcon/white.png Binary files differ.