diff --git a/20200102/README.md b/20200102/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..33449c25e29e156b1aa8a8298f8ee6d8c7152744
--- /dev/null
+++ b/20200102/README.md
@@ -0,0 +1,21 @@
+Spezial-Vorlesung am 2.1.2020: Quantencomputer
+==============================================
+
+Die Sicherheit aktueller Verschlüsselungsverfahren beruht auf der
+Schwierigkeit, bestimmte mathematische Probleme zu lösen (Beispiel:
+RSA-Verfahren – Primfaktorzerlegung).
+
+Im September 2019 meldete Google einen Durchbruch beim Bau eines
+_Quantencomputers_.  Mit Hilfe derartiger Systeme lassen sich die
+o.a. mathematischen Probleme in erheblich kürzerer Zeit lösen.
+Dies stellt die weltweite Datensicherheit in Frage.
+
+Dieser Vortrag soll beleuchten, wie Quantencomputer grundsätzlich
+funktionieren und skizzieren, auf welche Weise man damit aktuelle
+Verschlüsselungsverfahren (am Beispiel des RSA-Verfahrens) brechen
+kann. Desweiteren wird darauf eingegangen, welche Rollen
+Datensicherheit und Datenschutz in unserem Alltag spielen.
+
+Vorkenntnisse: Vektorrechnung, komplexe Zahlen  
+Uhrzeit und Raum: 15:45 bis ca. 17:15 Uhr, Seminarraum 3-30  
+Im Anschluß laden wir ein zu einer Diskussions- und Fragestunde.
diff --git a/20200102/ampel-blau-gelb.png b/20200102/ampel-blau-gelb.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ed3e39f3c9d836c56339fa6ecba30afe392b0cd
Binary files /dev/null and b/20200102/ampel-blau-gelb.png differ
diff --git a/20200102/ampel-blau.png b/20200102/ampel-blau.png
new file mode 100644
index 0000000000000000000000000000000000000000..15db6ebdc892f5a9242dd51b02aa202624e946ab
Binary files /dev/null and b/20200102/ampel-blau.png differ
diff --git a/20200102/ampel-gelb.png b/20200102/ampel-gelb.png
new file mode 100644
index 0000000000000000000000000000000000000000..694b25a5d56ec1138d18285e67c50dd656479fbb
Binary files /dev/null and b/20200102/ampel-gelb.png differ
diff --git a/20200102/ampel-gemisch-not.png b/20200102/ampel-gemisch-not.png
new file mode 100644
index 0000000000000000000000000000000000000000..98f6cc3ef523e12dbba8cb0c71714ceac8c0b705
Binary files /dev/null and b/20200102/ampel-gemisch-not.png differ
diff --git a/20200102/ampel-gemisch-wurzel-not.png b/20200102/ampel-gemisch-wurzel-not.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3adca2228f444d6fbf672884e8f3eb127918d25
Binary files /dev/null and b/20200102/ampel-gemisch-wurzel-not.png differ
diff --git a/20200102/ampel-gemisch.png b/20200102/ampel-gemisch.png
new file mode 100644
index 0000000000000000000000000000000000000000..297ee902133df87b5dce8a093a032bc52c5bd2e9
Binary files /dev/null and b/20200102/ampel-gemisch.png differ
diff --git a/20200102/ampel-gruen.png b/20200102/ampel-gruen.png
new file mode 100644
index 0000000000000000000000000000000000000000..e330b8afd2aff4f27ccd9787432d2c761930fc11
Binary files /dev/null and b/20200102/ampel-gruen.png differ
diff --git a/20200102/ampel-rot-gelb-blau.png b/20200102/ampel-rot-gelb-blau.png
new file mode 100644
index 0000000000000000000000000000000000000000..9457f316780ca8ebb84d08c6335bf42cbf861a50
Binary files /dev/null and b/20200102/ampel-rot-gelb-blau.png differ
diff --git a/20200102/ampel-rot-gruen-blau.png b/20200102/ampel-rot-gruen-blau.png
new file mode 100644
index 0000000000000000000000000000000000000000..8528005291d2972eb765d46e00fd50bc4cdbcec8
Binary files /dev/null and b/20200102/ampel-rot-gruen-blau.png differ
diff --git a/20200102/ampel-rot.png b/20200102/ampel-rot.png
new file mode 100644
index 0000000000000000000000000000000000000000..89134afd42fbbc7dbb6e60b1b829c0a73f4972f9
Binary files /dev/null and b/20200102/ampel-rot.png differ
diff --git a/20200102/ampel.xcf.gz b/20200102/ampel.xcf.gz
new file mode 100644
index 0000000000000000000000000000000000000000..da5dd69d81155728b553d8b4e8d917907ec944f4
Binary files /dev/null and b/20200102/ampel.xcf.gz differ
diff --git a/20200102/hp-20200102.pdf b/20200102/hp-20200102.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..aca2d3b40041266ec74d41e2940cee4aad028fb0
Binary files /dev/null and b/20200102/hp-20200102.pdf differ
diff --git a/20200102/hp-20200102.tex b/20200102/hp-20200102.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8727b5d0637e6faff39f09576cb1e91ecf6fa64a
--- /dev/null
+++ b/20200102/hp-20200102.tex
@@ -0,0 +1,748 @@
+% hp-20120102.pdf - Lecture Slides on Low-Level Programming
+% Copyright (C) 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+% README: Quantencomputer, Datensicherheit und Datenschutz
+
+\documentclass[10pt,t,fleqn]{beamer}
+
+\usepackage{pgslides}
+\usepackage{tikz}
+
+\usefonttheme[onlymath]{serif}
+
+\title{Hardwarenahe Programmierung}
+\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski}
+\date{2.\ Januar 2020}
+
+\begin{document}
+
+\maketitleframe
+
+\nosectionnonumber{\inserttitle}
+
+\begin{frame}
+
+  \shownosectionnonumber
+
+  \begin{itemize}
+    \item[\textbf{1}] \textbf{Einführung}
+      \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/hp}}}
+    \item[\textbf{2}] \textbf{Einführung in C}
+    \item[\textbf{3}] \textbf{Bibliotheken}
+    \item[\textbf{4}] \textbf{Hardwarenahe Programmierung}
+      \begin{itemize}
+        \vspace*{-0.1cm}
+        \item[\dots]
+%        \item[4.3] Interrupts
+%        \item[4.4] volatile-Variable
+        \item[4.6] Byte-Reihenfolge -- Endianness
+        \color{medgreen}
+        \item[4.7] Binärdarstellung negativer Zahlen
+        \item[4.8] Speicherausrichtung -- Alignment
+      \end{itemize}
+    \item[\textbf{5}] \textbf{Algorithmen}
+      \begin{itemize}
+        \item[5.1] Differentialgleichungen
+        \item[5.2] Rekursion
+        \color{magenta}
+        \item[5.3] Aufwandsabschätzungen
+        \item[5.\hbox to 0.56em{\boldmath$\frac{1+i}{\sqrt2}$}]\hspace*{0.90em}Quantencomputer
+%        \vspace*{-0.1cm}
+        \item[\dots]
+      \end{itemize}
+    \vspace*{-\smallskipamount}
+    \item[\textbf{\dots}]
+  \end{itemize}
+
+\end{frame}
+
+\setcounter{section}{4}
+\section{Algorithmen}
+\setcounter{subsection}{2}
+\subsection{Aufwandsabschätzungen \protect\color{gray}-- Komplexitätsanalyse}
+
+\begin{frame}[fragile]
+
+%  \newcommand{\w}{\hspace*{0.75pt}}
+
+  \showsubsection
+
+  \begin{picture}(0,0)
+    \put(7.6,-0.5){%
+      \begin{minipage}[t]{5.3cm}
+%        \vspace*{-1.0cm}\includegraphics{landau-symbols.pdf}
+        \vspace*{-1.0cm}\alt<3->{\includegraphics{landau-symbols-3.pdf}}%
+                       {\alt<2->{\includegraphics{landau-symbols-2.pdf}}%
+                                {\includegraphics{landau-symbols.pdf}}}
+        \small
+        \begin{description}\itemsep0pt\leftskip-0.5cm
+          \item[$n$:] Eingabedaten
+          \item[$g(n)$:] Rechenzeit
+        \end{description}
+      \end{minipage}}
+  \end{picture}
+
+  \vspace*{-\bigskipamount}
+
+  Wann ist ein Programm "`schnell"'?
+
+  \medskip
+
+  Faustregel:\\Schachtelung der Schleifen zählen\\
+  $k$ Schleifen ineinander \textarrow\ $\mathcal{O}(n^k)$
+
+  \bigskip
+
+  \begin{onlyenv}<1>
+    \textbf{Wie schnell ist RSA-Verschlüsselung?}
+
+    \smallskip
+
+    \begin{math}
+      c = m^e\,\%\,N
+    \end{math}
+    \quad
+    ("`$\%$"' = "`modulo"')
+
+    \medskip
+
+    \begin{lstlisting}[gobble=6,xleftmargin=2em]
+      int c = 1;
+      for (int i = 0; i < e; i++)
+        c = (c * m) % N;
+    \end{lstlisting}
+
+    \smallskip
+
+    \begin{itemize}
+      \item
+        $\mathcal{O}(e)$ Iterationen
+%      \item
+%        wenn $n$ die Anzahl der Binärziffern (Bits) von $e$ ist:
+%        $\mathcal{O}(2^n)$ Iterationen
+      \item
+        mit Trick:
+        $\mathcal{O}(\log e)$ Iterationen ($\log e$ = Anzahl der Ziffern von $e$)
+    \end{itemize}
+
+    \smallskip
+
+    Jede Iteration enthält eine Multiplikation und eine Division.\\
+    Aufwand dafür: $\mathcal{O}(\log e)$\\
+    \textarrow\ Gesamtaufwand: $\mathcal{O}\bigl((\log e)^2\bigr)$
+
+  \end{onlyenv}
+
+  \begin{onlyenv}<2->
+
+    \textbf{Wie schnell ist RSA?}\\
+
+    \smallskip
+
+    ($n$ = typische beteiligte Zahl, z.\,B. $e,p,q$)
+
+%    \begin{tabbing}
+%      Verschlüsselung brechen (Primfaktorzerlegung):~\=\kill
+%      Schlüsselerzeugung (Berechnung von $d$): 
+%        \> \color{red}$\mathcal{O}\bigl((\log n)^2\bigr)$,\\[0.5\smallskipamount]
+%      Ver- und Entschlüsselung (Exponentiation):
+%        \> \color{red}$\mathcal{O}\kern0.5pt(n\log n)$,\\[0.5\smallskipamount]
+%      Verschlüsselung brechen (Primfaktorzerlegung):
+%        \> \color{red}$\mathcal{O}\bigl(2^{\sqrt{\log n\,\cdot\,\log\log n}}\bigr)$
+%    \end{tabbing}
+
+    \begin{itemize}
+      \item
+        Ver- und Entschlüsselung (Exponentiation):\\
+        {\color{red}$\mathcal{O}\!\left((\log n)^2\right)$}
+      \item
+        Schlüsselerzeugung (Berechnung von $d$):\\
+        {\color{red}$\mathcal{O}\!\left((\log n)^2\right)$}
+      \item
+        Verschlüsselung brechen (Primfaktorzerlegung):\\
+        {\color{red}$\mathcal{O}\bigl(2^{\sqrt{\log n\,\cdot\,\log\log n}}\bigr)$}
+    \end{itemize}
+
+    \vspace{0cm plus 1filll}
+
+    \textbf{Die Sicherheit von RSA beruht darauf,
+    daß das Brechen der Verschlüsselung aufwendiger ist als
+    \boldmath$\mathcal{O}\bigl((\log n)^k\bigr)$ (für beliebiges $k$).}
+
+    \vspace*{0.65cm}
+
+  \end{onlyenv}
+
+\end{frame}
+
+\subsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$\quad Quantencomputer}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  Mit Hilfe eines Quantencomputers ist es möglich,\\
+  RSA mit dem Aufwand $\mathcal{O}\bigl((\log n)^3\bigr)$ zu brechen.
+
+  \medskip
+
+  Hierfür ist ein Quantencomputer mit mindestens $\log n$ Qubits erforderlich.\\
+  ($\log n$ ist die Länge des Schlüssels in Bits,
+  derzeit typischerweise 2048 bis 4096.)
+
+  \bigskip
+
+  Dezember 2001:\\
+  IBM präsentiert einen funktionierenden Quantencomputer mit 7 Qubits.
+
+  \medskip
+
+  September 2019:\\
+  Google präsentiert einen funktionierenden Quantencomputer mit 53 Qubits.
+
+  \vspace{0cm plus 1filll}
+
+  \textbf{Die Sicherheit von RSA beruht darauf,
+  daß das Brechen der Verschlüsselung aufwendiger ist als
+  \boldmath$\mathcal{O}\bigl((\log n)^k\bigr)$ (für beliebiges $k$).}
+
+  \vspace*{0.65cm}
+
+\end{frame}
+
+\subsubsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$.\kern0.5pt$i$\quad Einführung in die Quantenmechanik}
+
+\begin{frame}
+
+  \showsubsubsectionnonumber
+
+  \begin{onlyenv}<1-3>
+
+    Klassische Mechanik (Physik):
+
+    \smallskip
+
+    Zustand eines Teilchens (Massenpunkt):\\
+    Masse $m$, Ort $\vec{x}$, Impuls $\vec{p}$ (oder: Geschwindigkeit $\vec{v}\kern1pt$)
+
+    \bigskip
+
+  \end{onlyenv}
+
+  \pause
+
+  Quantenmechanik:
+
+  \smallskip
+
+  Zustand eines Teilchens:\\
+  Masse $m$, komplexwertige Wellenfunktion $\psi(\vec{x})$
+  \begin{itemize}
+    \item
+      Ort: $|\psi(\vec{x})|^2$ = Wahrscheinlichkeit, das Teilchen am Ort $\vec{x}$ zu messen
+    \item
+      Impuls: Wellenstruktur in der komplexen Phase
+    \pause
+    \item
+      Normierung:
+      \begin{math}
+        \displaystyle
+        \int\limits_{\mathbb{R}^3} |\psi(\vec{x}\kern1pt)|^2\,d^3\vec{x} = 1
+      \end{math}
+      ("`Irgendwo muß das Teilchen ja sein \dots"')
+  \end{itemize}
+
+  \begin{onlyenv}<4>
+
+    \bigskip
+
+    Einfachster Fall: Es gibt überhaupt nur 2 Orte.
+    \begin{displaymath}
+      \psi(\vec{x}\kern1pt)
+        = \left(\begin{array}{c}
+            \psi_1 \\
+            \psi_0
+          \end{array}\right)
+      \qquad
+      |\psi_0|^2 + |\psi_1|^2 = 1
+    \end{displaymath}
+
+    Schreibweise: Basisvektoren $\left|0\right>$ und $\left|1\right>$
+    -- "`Basiszustände"'
+    \begin{displaymath}
+      \psi(\vec{x}\kern1pt)
+        = \psi_0 \left|0\right> + \psi_1 \left|1\right>
+    \end{displaymath}
+
+  \end{onlyenv}
+
+\end{frame}
+
+\subsubsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$.\kern0.5pt$\mbox{2}i$\quad Qubits}
+
+\begin{frame}
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+    \item
+      Ein Bit kann die (klassischen) Zustände 0 und 1 annehmen.
+    \arrowitem
+      2 Zustände, beschrieben durch eine ganze Zahl, die 0 oder 1 sein darf
+      \begin{center}
+        \bigskip
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gruen.png}}\qquad\qquad
+        \makebox(0,0){oder}\qquad\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-rot.png}}
+        \bigskip
+      \end{center}
+    \medskip
+    \item
+      Ein Qubit kann die quantenmechanischen Basiszustände\\
+      $\left|0\right>$ und $\left|1\right>$ annehmen ("`1 Teilchen, 2 Orte"').
+    \arrowitem
+      unendlich viele Zustände, beschrieben durch\\
+      zwei komplexe Zahlen $\psi_0$ und $\psi_1$ mit $|\psi_0|^2 + |\psi_1|^2 = 1$
+      \begin{center}
+        \bigskip
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch.png}}~\qquad
+        \makebox(0,0){=}\qquad
+        \makebox(0,0){$\sqrt{\frac13}$}\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gruen.png}}\qquad
+        \makebox(0,0){+}\qquad
+        \makebox(0,0){$\sqrt{\frac23}$}\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-rot.png}}
+        \bigskip
+      \end{center}
+    \medskip
+    \item
+      Messung: Das Qubit muß sich für $\left|0\right>$ oder $\left|1\right>$ entscheiden.\\
+      Die Wahrscheinlichkeit beträgt $|\psi_0|^2$ bzw.\ $|\psi_1|^2$.
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}
+
+  \showsubsubsectionnonumber
+  \begin{itemize}
+    \item
+      Eine $\text{\rm NOT}$-Operation auf einem Qubit
+      vertauscht $\left|0\right>$ und $\left|1\right>$.
+      \begin{displaymath}
+        \text{\rm NOT} \left(\begin{array}{c}
+                     \psi_1\\
+                     \psi_0
+                   \end{array}\right)
+          = \left(\begin{array}{c}
+              \psi_0\\
+              \psi_1
+            \end{array}\right)
+          = \left(\begin{array}{cc}
+              0 & 1 \\
+              1 & 0
+            \end{array}\right)
+            \left(\begin{array}{c}
+              \psi_1\\
+              \psi_0
+            \end{array}\right)
+      \end{displaymath}
+      \begin{center}
+        \bigskip
+        \makebox(0,0){$\text{\rm NOT}$}~\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch.png}}\qquad
+        \makebox(0,0){=}\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch-not.png}}
+        \bigskip
+      \end{center}
+    \pause
+    \bigskip
+    \item
+      Eine $\sqrt{\text{\rm NOT}}$-Operation auf einem Qubit
+      vertauscht $\left|0\right>$ und $\left|1\right>$ halb.
+      \begin{displaymath}
+        \sqrt{\text{\rm NOT}}
+          = \frac{1}{\sqrt{2i}}
+            \left(\begin{array}{cc}
+              i & 1 \\
+              1 & i
+            \end{array}\right),
+        \quad\text{weil}~
+        \left(\begin{array}{cc}
+          i & 1 \\
+          1 & i
+        \end{array}\right)
+        \left(\begin{array}{cc}
+          i & 1 \\
+          1 & i
+        \end{array}\right)
+        =
+        \left(\begin{array}{cc}
+          0 & 2i \\
+          2i & 0
+        \end{array}\right)
+      \end{displaymath}
+      \begin{center}
+        \bigskip
+        \makebox(0,0){$\sqrt{\text{\rm NOT}}$}\quad\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch.png}}\qquad
+        \makebox(0,0){=}\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch-wurzel-not.png}}
+        \qquad\qquad
+        \makebox(0,0){$\sqrt{\text{\rm NOT}}$}\quad\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch-wurzel-not.png}}\qquad
+        \makebox(0,0){=}\qquad
+        \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch-not.png}}
+        \bigskip
+      \end{center}
+      \smallskip
+      (Die Information, was wohin wandert, steckt in der komplexen Phase.)
+  \end{itemize}
+
+\end{frame}
+
+\subsubsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$.\kern0.5pt$\mbox{3}i$\quad Quantenverschränkung}
+
+\begin{frame}
+
+  \showsubsubsectionnonumber
+
+  2 Qubits: $\left|0_0\right>\!, \left|1_0\right>$
+  und $\left|0_1\right>\!, \left|1_1\right>$
+
+  \medskip
+
+  Wellenfunktion:
+  \begin{math}
+      \psi_{00} \left|0_0\right>
+    + \psi_{10} \left|1_0\right>
+    + \psi_{01} \left|0_1\right>
+    + \psi_{11} \left|1_1\right>
+  \end{math}
+
+  \pause
+
+  \begin{picture}(0,0)
+    \put(2.5,0.2){\makebox(0,0)[bl]{\tikz{\draw[line width=1pt,red](0,0)--(5.8,0.6);}}}
+    \put(2.5,0.2){\makebox(0,0)[bl]{\tikz{\draw[line width=1pt,red](0,0.6)--(5.8,0);}}}
+  \end{picture}
+
+  \vspace*{-1.7\medskipamount}
+
+  \begin{itemize}
+
+    \arrowitem
+      \begin{math}
+          \psi_{00} \left|00\right>
+        + \psi_{01} \left|01\right>
+        + \psi_{10} \left|10\right>
+        + \psi_{11} \left|11\right>
+      \end{math}
+
+      \smallskip
+
+      Das hinzugekommene Qubit (Nr.~1) \\
+      kann die Basiszustände des ersten Qubits (Nr.~0) mitbenutzen.
+
+      \begin{onlyenv}<2>
+        \begin{center}
+          \bigskip
+          \makebox(0,0){\includegraphics[height=1cm]{ampel-gemisch.png}}\qquad
+          \makebox(0,0){\includegraphics[height=1cm]{ampel-blau-gelb.png}}
+          \hspace{3.0cm}
+          \makebox(0,0){können sich vermischen, z.\,B.\ zu}
+          \hspace{3.0cm}
+          \makebox(0,0){\includegraphics[height=1cm]{ampel-rot-gelb-blau.png}}\qquad
+          \makebox(0,0){\includegraphics[height=1cm]{ampel-rot-gruen-blau.png}}
+          \bigskip
+        \end{center}
+        \vspace*{-3.05\bigskipamount}
+      \end{onlyenv}
+
+    \pause
+    \medskip
+    \arrowitem
+      Mit jedem hinzukommenden Qubit\\
+      verdoppelt sich die Anzahl der Basiszustände.
+
+      \smallskip
+
+      Beispiel: Ein "`Quanten-Byte"' (8 Qubits) hat 256 Basiszustände:
+      \begin{displaymath}
+        \left|00000000\right>\!,~
+        \left|00000001\right>\!,~
+        \left|00000010\right>\!, \dots
+        \left|11111111\right>\!
+      \end{displaymath}
+      Der Gesamtzustand eines Quanten-Bytes entspricht\\
+      $2^8 = 256$ komplexen Zahlen:
+      $\psi_{00000000}$ bis $\psi_{11111111}$
+
+      \pause
+      \smallskip
+
+      Der Gesamtzustand eines 64-Bit-Quanten-Registers entspricht\\
+      $2^{64} = 18\,446\,744\,073\,709\,551\,616$ komplexen Zahlen.
+
+    \medskip
+    \arrowitem
+      Es ist schon aus Speicherplatzgründen nicht möglich,
+      auf einem klassischen Computer effizient mit Qubits zu rechnen.
+
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+    \item
+      $\text{\rm CNOT}$ ("`Controlled NOT"')
+      -- eine Art \lstinline{if}-Anweisung auf 2 Qubits
+
+      \medskip
+
+      \begin{lstlisting}[gobble=8]
+        if (q0)
+          q1 = ~q1;
+      \end{lstlisting}
+
+      \vspace{-2\medskipamount}
+
+      \begin{displaymath}
+        \text{\rm CNOT}
+        \left(\begin{array}{c}
+          \psi_{00} \\
+          \psi_{01} \\
+          \psi_{10} \\
+          \psi_{11}
+        \end{array}\right)
+        =
+        \left(\begin{array}{c}
+          \psi_{00} \\
+          \psi_{01} \\
+          \psi_{11} \\
+          \psi_{10}
+        \end{array}\right)
+        =
+        \left(\begin{array}{cccc}
+          1 & 0 & 0 & 0 \\
+          0 & 1 & 0 & 0 \\
+          0 & 0 & 0 & 1 \\
+          0 & 0 & 1 & 0
+        \end{array}\right)
+        \left(\begin{array}{c}
+          \psi_{00} \\
+          \psi_{01} \\
+          \psi_{10} \\
+          \psi_{11}
+        \end{array}\right)
+      \end{displaymath}
+
+      \pause
+
+      \begin{picture}(0,0)
+        \color{red}
+        \put(2.6,1.9){\makebox(0,0)[br]{\tikz{\draw[latex-,red](0.2,0)--(0.0,0.8);}}}
+        \put(2.3,2.75){\makebox(0,0)[b]{\footnotesize q0}}
+        \put(2.7,1.9){\makebox(0,0)[bl]{\tikz{\draw[latex-,red](0.0,0)--(0.2,0.8);}}}
+        \put(3.0,2.75){\makebox(0,0)[b]{\footnotesize q1}}
+        \put(6.55,1.67){\makebox(0,0){\tikz{\draw(0,0)circle(0.5);}}}
+        \put(6.55,2.20){\makebox(0,0)[b]{\footnotesize else-Zweig}}
+        \put(7.60,0.82){\makebox(0,0){\tikz{\draw(0,0)circle(0.5);}}}
+        \put(7.60,0.22){\makebox(0,0)[t]{\footnotesize if-Zweig}}
+      \end{picture}
+
+      \pause
+      \medskip
+
+      Dies funktioniert auch dann,
+      wenn die "`\lstinline{if}-Bedingung"' \lstinline{q0}\\
+      weder $\left|0\right>$ ("`false"') noch $\left|1\right>$ ("`true"') ist,
+      sondern eine Mischung.
+
+      \smallskip
+
+      Der \lstinline{if}-Zweig und der \lstinline{else}-Zweig
+      werden dann gleichzeitig ausgeführt.\\
+      ("`Mischung"' heißt also nicht "`vielleicht"', sondern "`beides"').
+
+    \pause
+    \bigskip
+    \arrowitem
+      Damit können wir nun alles berechnen, was wir wollen.\\
+      ($\text{\rm CNOT}$ zusammen mit den 1-Bit-Operationen ist "`universell"'.)
+
+  \end{itemize}
+
+\end{frame}
+
+\subsubsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$.\kern0.5pt$\mbox{4}i$\quad Der Shor-Algorithmus}
+
+\begin{frame}
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+    \item
+      Ziel: Zerlegung einer Zahl $n = p \cdot q$ in ihre Faktoren
+    \item
+      Herangehensweise: 
+      \begin{enumerate}\itemsep0.5\smallskipamount
+        \begin{onlyenv}<1-3>
+          \item
+            Wähle $x$ mit $1 < x < n$.
+        \end{onlyenv}
+        \item
+          Suche $r$ mit $x^r\,\%\,n = 1$.
+          \only<2->{\quad\textbf{\boldmath $\longleftarrow$ mit Quantencomputer}}
+        \begin{onlyenv}<1-3>
+          \item
+            Wenn $r$ ungerade oder wenn $x^{\frac{r}{2}}\,\%\,n = n - 1$,
+            verwirf dieses $x$.\\
+            Neuer Versuch.
+          \item
+            Ansonsten ist der größte gemeinsame Teiler von $x^{\frac{r}{2}}$ und $n$\\
+            ein Faktor von $n$.\quad \mbox{:--)}
+        \end{onlyenv}
+      \end{enumerate}
+    \pause
+    \pause
+    \item
+      Algorithmus, um $r$ zu suchen:
+      \begin{enumerate}\itemsep0.5\smallskipamount
+        \begin{onlyenv}<1-4>
+          \item
+            Sei $q$ die nötige Anzahl von Bits, um $n^2$ speichern zu können.
+        \end{onlyenv}
+        \begin{onlyenv}<1-5>
+          \item
+            Lade ein $q$-Qubit-Register mit dem Wert:
+            \begin{displaymath}
+              A :=
+              \underbrace{
+                \frac{\left|0\right> + \left|1\right>}{\sqrt2},
+                \frac{\left|0\right> + \left|1\right>}{\sqrt2},
+                \dots,
+                \frac{\left|0\right> + \left|1\right>}{\sqrt2}
+              }_{\text{\footnotesize $q$ Qubits}}
+            \end{displaymath}
+            \vspace{-\medskipamount}
+        \end{onlyenv}
+        \pause
+        \item
+          Berechne in einem zweiten $q$-Qubit-Register den Wert $x^A\,\%\,n$.\\
+          Damit berechnen wir gewissermaßen gleichzeitig $x^a\,\%\,n$\\
+          für alle Werte, die $a$ annehmen kann ($0$ bis $2^q - 1$).\\
+          Die beiden Register sind nun verschränkt.
+        \pause
+        \item
+          Quanten-Fouriertransformation auf dem ersten Register.\\
+          Wegen der Verschränkung beeinflußt dies auch das zweite Register.
+        \pause
+        \item
+          Messung.\\
+          Alle Qubits müssen sich für $\left|0\right>$ oder $\left|1\right>$ entscheiden.\\
+          Den Meßwert des zweiten Registers nennen wir $r$.\\
+          Es gilt mit hoher Wahrscheinlichkeit: $x^r\,\%\,n = 1$.
+        \item
+          Fertig.\quad \mbox{:--)}
+      \end{enumerate}
+  \end{itemize}
+
+  \vspace*{-5cm}
+
+\end{frame}
+
+\subsubsectionnonumber{\boldmath 5.$\frac{1+i}{\sqrt2}$.\kern0.5pt$\mbox{5}i$\quad Fazit}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+    \item
+      Ein funktionsfähiger Quantencomputer mit mindestens 2048 Qubits\\
+      würde aktuelle Verschlüsselungsverfahren unwirksam machen.
+    \begin{onlyenv}<1>
+      \item
+        Betroffen: 
+        \begin{itemize}\itemsep0.5\smallskipamount
+          \item
+            vertrauliche Kommunikation (z.\,B.\ Online-Banking)
+          \item
+            Fernzugriff auf Rechner, Schutz persönlicher Daten
+          \item
+            digitale Rechtebeschränkung ("`Kopierschutz"')
+          \item
+            digitale Währungen
+          \item
+            \dots
+          \arrowitem
+            Chaos
+        \end{itemize}
+    \end{onlyenv}
+    \only<2->{\item[]\begin{itemize}\arrowitem Chaos\end{itemize}}
+    \pause
+    \item
+      Chaos haben wir bereits.
+      \begin{itemize}\itemsep0.5\smallskipamount
+        \begin{onlyenv}<2>
+          \item
+            Die Allermeisten sind mit persönlichen Daten sehr freigiebig.\\
+            (z.\,B.\ Datenverarbeitung und -speicherung in der Cloud)
+          \item
+            sozialer und politischer Druck \textarrow\ 
+            Sich entziehen wird schwieriger.\\
+            (z.\,B.\ Gesundheitskarte, bargeldlose Geschäfte)
+          \item
+            Daten bei Firmen und Behörden sind leicht angreifbar.
+          \item
+            Politische Maßnahmen bewirken oft ihr Gegenteil.\\
+            (z.\,B.\ DSGVO \textarrow\ mehr Bürokratie \textarrow\ weniger Anbieter)
+          \arrowitem
+            Gegenmaßnahme: Aufklärung\\
+            Bewußtsein für Datenschutz fördern
+        \end{onlyenv}
+        \only<3->{\arrowitem Aufklärung, Bewußtsein für Datenschutz fördern}
+      \end{itemize}
+    \pause
+    \item
+      demnächst in "`Eingebettete Systeme"': Verschlüsselung\\
+      Termin noch wählbar
+  \end{itemize}
+
+  \pause
+
+  \medskip
+  \begin{center}
+    \em Vielen Dank für Ihre Aufmerksamkeit!
+  \end{center}
+
+  \vspace*{-5cm}
+
+\end{frame}
+
+\end{document}
diff --git a/20200102/landau-symbols-2.pdf b/20200102/landau-symbols-2.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..6b458b6efd8e274824a6dfcaabc4b9c27d196dc4
--- /dev/null
+++ b/20200102/landau-symbols-2.pdf
@@ -0,0 +1 @@
+../common/landau-symbols-2.pdf
\ No newline at end of file
diff --git a/20200102/landau-symbols-3.pdf b/20200102/landau-symbols-3.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..46efa409b35ff5df763c744a423599cba515d886
--- /dev/null
+++ b/20200102/landau-symbols-3.pdf
@@ -0,0 +1 @@
+../common/landau-symbols-3.pdf
\ No newline at end of file
diff --git a/20200102/landau-symbols.pdf b/20200102/landau-symbols.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..ca145425bf07439c680632aa0663f84be601a565
--- /dev/null
+++ b/20200102/landau-symbols.pdf
@@ -0,0 +1 @@
+../common/landau-symbols.pdf
\ No newline at end of file
diff --git a/20200102/logo-hochschule-bochum-cvh-text-v2.pdf b/20200102/logo-hochschule-bochum-cvh-text-v2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3725a72c764b4d9ab200553474e4262161f7a5b5
Binary files /dev/null and b/20200102/logo-hochschule-bochum-cvh-text-v2.pdf differ
diff --git a/20200102/logo-hochschule-bochum.pdf b/20200102/logo-hochschule-bochum.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8cad73dbb48a2b550bf29355b5a6ec895ce091f8
Binary files /dev/null and b/20200102/logo-hochschule-bochum.pdf differ
diff --git a/20200102/pgslides.sty b/20200102/pgslides.sty
new file mode 100644
index 0000000000000000000000000000000000000000..d69e10dae60f46c93203b2489706f16aa5069211
--- /dev/null
+++ b/20200102/pgslides.sty
@@ -0,0 +1,233 @@
+% pgslides.sty - LaTeX Settings for Lecture Slides
+% Copyright (C) 2012, 2013  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+\usepackage{amsfonts}
+\usepackage[british,german]{babel}  % Yes, really "german" and not "ngerman".
+\usepackage[utf8]{luainputenc}  % Without this, umlauts are broken. Weird.
+\usepackage{microtype}
+\usepackage[T1]{fontenc}
+%\usepackage{times}
+\usepackage{helvet}
+\renewcommand*\familydefault{\sfdefault}
+\usepackage{graphicx}
+\usepackage{pstricks}
+
+\hypersetup{colorlinks,allcolors=blue}
+
+%% @@@ Not necessary for slides. Why???
+%% Repair kerning: Automatically insert "\kern{-0.15em}" between "//" % (in URLs).
+%\directlua{
+%  local glyph = node.id ("glyph")
+%  local function my_kerning (head)
+%    for t in node.traverse (head) do
+%      if t.id == glyph and t.char == 47 then
+%        if t.next
+%           and t.next.next
+%           and t.next.next.id == glyph
+%           and t.next.next.char == 47 then
+%          local k = node.new ("kern")
+%          k.kern = tex.sp ("-0.15em")
+%          k.next = t.next
+%          k.prev = t
+%          t.next.prev = k
+%          t.next = k
+%        end
+%      end
+%    end
+%    node.kerning (head)
+%  end
+%  luatexbase.add_to_callback ("kerning", my_kerning, "URL kerning")
+%}
+
+\usetheme{default}
+\usefonttheme{structurebold}
+\setbeamertemplate{navigation symbols}{}
+\setbeamersize{text margin left = 0.3cm, text margin right = 0.2cm}
+\setbeamertemplate{itemize item}{$\bullet$}
+\setbeamertemplate{itemize subitem}{--}
+\setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
+\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize}
+\setbeamercolor{footline}{fg=gray}
+
+\newcommand{\sep}{~$\cdot$~}
+
+\newif\ifminimalistic
+\minimalistictrue
+
+\institute[Hochschule Bochum\sep CVH]{%
+  \makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill
+  \makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}%
+}
+
+\setbeamertemplate{headline}{%
+  \leavevmode
+  \hbox to \textwidth{%
+    \ifminimalistic
+      \strut\hfill
+    \else
+      \rule{0pt}{5.7pt}%
+      \hspace*{8.55pt}\insertinstitute\hspace*{5.7pt}%
+      \raisebox{-30pt}{\rule{0pt}{1pt}}%
+    \fi
+  }%
+  \vskip0pt%
+}
+
+\iffalse
+  \setbeamertemplate{footline}{}
+\else
+  \setbeamertemplate{footline}{%
+    \leavevmode
+    \hbox to \textwidth{%
+      \usebeamercolor{footline}%
+      \usebeamerfont{footline}%
+      \ifminimalistic
+        \strut\hfill
+      \else
+        \,\insertshorttitle\sep
+        \insertshortauthor\sep
+        \insertshortinstitute\sep
+        \insertshortdate\hfill
+      \fi
+      \insertframenumber/\inserttotalframenumber
+      %Folie\,\insertframenumber\sep Seite\,\insertpagenumber\,
+    }%
+    \vskip0pt%
+  }
+\fi
+
+\newcommand{\maketitleframe}{%
+  \ifminimalistic
+    \begin{frame}[t,plain]
+      \insertinstitute
+      \par\vfill
+      \begin{center}
+        {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip
+        {\large \insertauthor\par}\bigskip\medskip
+        \insertdate
+      \end{center}
+    \end{frame}
+  \else
+    \begin{frame}
+      \vfill
+      \begin{center}
+        {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip
+        {\large \insertauthor\par}\bigskip\medskip
+        \insertdate
+      \end{center}
+      \vfill
+    \end{frame}
+  \fi
+}
+
+\definecolor{medgreen}{rgb}{0.0,0.5,0.0}
+\definecolor{darkgreen}{rgb}{0.0,0.3,0.0}
+\definecolor{lightred}{rgb}{1.0,0.7,0.7}
+\definecolor{medred}{rgb}{0.5,0.0,0.0}
+\definecolor{bored}{rgb}{0.89,0.0,0.098}
+\definecolor{lightgray}{rgb}{0.85,0.85,0.85}
+\definecolor{orange}{rgb}{1.0,0.5,0.0}
+\definecolor{darkgray}{rgb}{0.4,0.4,0.4}
+
+\newenvironment{experts}{\color{darkgray}}{}
+
+\usepackage{listings}
+\lstset{basicstyle=\color{structure},
+        language=C,
+        captionpos=b,
+        gobble=4,
+        columns=fullflexible,
+        aboveskip=0pt,
+        belowskip=0pt,
+        moredelim=**[is][\color{structure}]{¡}{¿},
+        moredelim=**[is][\only<2->{\color{structure}}]{²}{¿},
+        moredelim=**[is][\only<3->{\color{structure}}]{³}{¿},
+        moredelim=**[is][\only<4->{\color{structure}}]{°}{¿},
+        moredelim=**[is][\only<5->{\color{structure}}]{¤}{¿},
+        moredelim=**[is][\only<6->{\color{structure}}]{¢}{¿},
+        moredelim=**[is][\only<7->{\color{structure}}]{æ}{¿},
+        moredelim=**[is][\only<8->{\color{structure}}]{ø}{¿}}
+\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen},
+                          language={},
+                          columns=fixed,
+                          moredelim=**[is][\color{red}]{¡}{¿},
+                          moredelim=**[is][\color{blendedblue}]{°}{¿},
+                          moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}}
+\lstdefinestyle{cmd}{basicstyle=\ttfamily\color{red},
+                     language={},
+                     gobble=2,
+                     columns=fixed,
+                     moredelim=**[is][\color{darkgreen}]{¡}{¿},
+                     moredelim=**[is][\color{structure}]{°}{¿},
+                     moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}}
+\lstdefinestyle{shy}{basicstyle=\color{lightgray}}
+
+\setcounter{topnumber}{3}
+\renewcommand\topfraction{0.7}
+\setcounter{bottomnumber}{3}
+\renewcommand\bottomfraction{0.7}
+\setcounter{totalnumber}{5}
+\renewcommand\textfraction{0.1}
+\renewcommand\floatpagefraction{0.9}
+
+\setlength{\unitlength}{1cm}
+
+\newcommand{\protectfile}[1]{#1}
+\urlstyle{sf}
+\newcommand{\file}[1]{{\color{structure}\protectfile{#1}}}
+\newcommand{\textarrow}{{\boldmath $\longrightarrow$}}
+\newcommand{\arrowitem}{\item[\textarrow]}
+\newcommand{\newterm}[1]{\emph{\color{darkgreen}#1}}
+\newcommand{\BIGskip}{\vspace{1cm}}
+\newcommand{\shy}{\color{lightgray}}
+\newcommand{\hot}{\color{red}}
+\newcommand{\shyhot}{\color{lightred}}
+
+\newcommand{\sectionnonumber}[1]{\section{#1}\addtocounter{section}{-1}}
+
+\def\showsectionnonumber{\hbox{\Large\color{structure}\bf
+                               \vtop{\secname}\par}\bigskip}
+
+\newcommand{\nosectionnonumber}[1]{\gdef\nosectionnonumbername{#1}}
+
+\def\shownosectionnonumber{\hbox{\Large\color{structure}\bf
+                                 \vtop{\nosectionnonumbername}\par}\bigskip}
+
+\def\showsection{\hbox{\Large\color{structure}\bf
+                       \vtop{\hbox{\arabic{section}}}\kern1em%
+                       \vtop{\secname}\par}\bigskip}
+
+\newcommand{\subsectionnonumber}[1]{\subsection{#1}\addtocounter{subsection}{-1}}
+
+\def\showsubsectionnonumber{{\large\color{structure}\bf\subsecname\par}\bigskip}
+
+\def\showsubsection{\hbox{\large\color{structure}\bf
+                          \vtop{\hbox{\arabic{section}.\arabic{subsection}}}\kern1em%
+                          \vtop{\subsecname}\par}\bigskip}
+
+\newcommand{\subsubsectionnonumber}[1]{\subsubsection{#1}\addtocounter{subsubsection}{-1}}
+
+\def\showsubsubsectionnonumber{{\normalsize\color{structure}\bf\subsubsecname\par}\bigskip}
+
+\def\showsubsubsection{\hbox{\normalsize\color{structure}\bf
+                             \vtop{\hbox{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}}\kern1em%
+                             \vtop{\subsubsecname}\par}\bigskip}
diff --git a/20200102/photo-20200102-174206.jpg b/20200102/photo-20200102-174206.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f5621a9ff962ef43971494c7c8d32426ba35f067
Binary files /dev/null and b/20200102/photo-20200102-174206.jpg differ
diff --git a/20200102/photo-20200102-174206.txt b/20200102/photo-20200102-174206.txt
new file mode 100644
index 0000000000000000000000000000000000000000..864ba60d28c9aed77d5cf9611af02a5963cd66d1
--- /dev/null
+++ b/20200102/photo-20200102-174206.txt
@@ -0,0 +1 @@
+README: Quantencomputer: physikalische Realisierung von Qubits
diff --git a/README.md b/README.md
index c3e89505f0ba1c841d96c7b889e0b8d25ee224f3..1ce4c831179046fac8519a3c8fad82fe662d832d 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,3 @@
-Spezial-Vorlesung am 2.1.2020: Quantencomputer
-==============================================
-
-Die Sicherheit aktueller Verschlüsselungsverfahren beruht auf der
-Schwierigkeit, bestimmte mathematische Probleme zu lösen (Beispiel:
-RSA-Verfahren – Primfaktorzerlegung).
-
-Im September 2019 meldete Google einen Durchbruch beim Bau eines
-_Quantencomputers_.  Mit Hilfe derartiger Systeme lassen sich die
-o.a. mathematischen Probleme in erheblich kürzerer Zeit lösen.
-Dies stellt die weltweite Datensicherheit in Frage.
-
-Dieser Vortrag soll beleuchten, wie Quantencomputer grundsätzlich
-funktionieren und skizzieren, auf welche Weise man damit aktuelle
-Verschlüsselungsverfahren (am Beispiel des RSA-Verfahrens) brechen
-kann. Desweiteren wird darauf eingegangen, welche Rollen
-Datensicherheit und Datenschutz in unserem Alltag spielen.
-
-Vorkenntnisse: Vektorrechnung, komplexe Zahlen  
-Uhrzeit und Raum: 15:45 bis ca. 17:15 Uhr, Seminarraum 3-30  
-Im Anschluß laden wir ein zu einer Diskussions- und Fragestunde.
-
 Hardwarenahe Programmierung
 ===========================
 
@@ -50,6 +28,7 @@ Vortragsfolien und Beispiele:
  * [05.12.2019: Bibliotheken, Differentialgleichungen](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191205/hp-20191205.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191205/)
  * [12.12.2019: make, Byte-Reihenfolge - Endianness](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191212/hp-20191212.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191212/)
  * [19.12.2019: Binärdarstellung negativer Zahlen, Speicherausrichtung - Alignment](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191219/hp-20191219.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191219/)
+ * [02.01.2020: Quantencomputer, Datensicherheit und Datenschutz](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20200102/hp-20200102.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20200102/)
  * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/hp-slides-2019ws.pdf)
 
 Übungsaufgaben:
@@ -85,6 +64,7 @@ Tafelbilder:
  * [05.12.2019: Schräger Wurf](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191205/photo-20191205-171706.jpg)
  * [19.12.2019: Interpretation von Bytes im Speicher als Zahlenwert](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191219/photo-20191219-172103.jpg)
  * [19.12.2019: Bildschirmspeicher als Beispiel für Speicherausrichting (Alignment)](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191219/photo-20191219-172146.jpg)
+ * [02.01.2020: Quantencomputer: physikalische Realisierung von Qubits](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20200102/photo-20200102-174206.jpg)
 
 Praktikumsunterlagen:
 ---------------------
diff --git a/common/landau-symbols-2.pdf b/common/landau-symbols-2.pdf
index e87f752c596ee8d0e12be16f9ff18050048e0757..a13e3ddd7e05dc97dbbbca53269f7bb25e18c098 100644
Binary files a/common/landau-symbols-2.pdf and b/common/landau-symbols-2.pdf differ
diff --git a/common/landau-symbols-2.tex b/common/landau-symbols-2.tex
index 303794ccfeda57076771e2f531ae6e991f310b2c..da127461a03a1aae2560c6ad58590ae4a9f32f75 100644
--- a/common/landau-symbols-2.tex
+++ b/common/landau-symbols-2.tex
@@ -15,22 +15,22 @@
     \psline[arrows=->](0,-10)(0,200)
     \psplot[plotpoints=200]{1}{125}{2 x 0.06 mul exp}
     \put(120,190){\mbox{$2^n$}}
-    \psplot[linecolor=red,plotpoints=200]{1}{175}{0.6 2 x ln x ln 0.0000001 add ln mul exp mul}
+    \psplot[linecolor=red,plotpoints=200]{3}{170}{30.0 2 x ln x ln 0.0000001 add ln mul sqrt exp mul -29.0 add}
     \color{red}
     \put(110,215){\mbox{$2^{\sqrt{\log n\,\cdot\,\log\log n}}$}}
     \color{black}
     \psplot[plotpoints=200]{0}{190}{x x mul 0.005 mul}
     \put(190,190){\mbox{$n^2$}}
-    \color{red}
-    \psplot[linecolor=red,plotpoints=200]{1}{190}{x ln x mul 0.1 mul}
+    \psplot[plotpoints=200]{1}{190}{x ln x mul 0.1 mul}
     \put(195,100){\mbox{$n \log n$}}
-    \psplot[linecolor=red,plotpoints=200]{1}{190}{x ln x ln mul 2.3 mul}
-    \put(195,57.5){\mbox{$(\log n)^2$}}
+    \color{red}
+    \psplot[linecolor=red,plotpoints=200]{1}{190}{x ln x ln mul 5.5 mul}
+    \put(195,148){\mbox{$(\log n)^2$}}
     \color{black}
     \psplot[plotpoints=200]{0}{190}{x 0.4 mul}
     \put(195,75){\mbox{$n$}}
     \psplot[plotpoints=200]{1}{190}{x ln 10 mul}
-    \put(195,40){\mbox{$\log n$}}
+    \put(195,50){\mbox{$\log n$}}
     \psplot[plotpoints=200]{1}{190}{30}
     \put(195,25){\mbox{$1$}}
     \put(205,0){\makebox(0,0)[l]{$n$}}
diff --git a/common/landau-symbols-3.pdf b/common/landau-symbols-3.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2532b077f363a0da615f7dbb4495d4990f39a1f8
Binary files /dev/null and b/common/landau-symbols-3.pdf differ
diff --git a/common/landau-symbols-3.tex b/common/landau-symbols-3.tex
new file mode 100644
index 0000000000000000000000000000000000000000..54592ab709630660b0b2bbebb6d295da99c067f6
--- /dev/null
+++ b/common/landau-symbols-3.tex
@@ -0,0 +1,43 @@
+\documentclass{article}
+
+\usepackage{pgscript}
+\usepackage{pstricks,pst-plot}
+
+\psset{unit=1cm}
+\pagestyle{empty}
+\setlength{\textwidth}{4cm}
+\setlength{\textheight}{7cm}
+
+\begin{document}
+  \psset{unit=0.5pt}
+  \begin{pspicture}(-20,-20)(250,200)
+    \psline[arrows=->](-10,0)(200,0)
+    \psline[arrows=->](0,-10)(0,200)
+    \psplot[plotpoints=200]{1}{125}{2 x 0.06 mul exp}
+    \put(120,190){\mbox{$2^n$}}
+%    \psplot[linecolor=red,plotpoints=200]{3}{170}{30.0 2 x ln x ln 0.0000001 add ln mul sqrt exp mul -29.0 add}
+%    \color{red}
+%    \put(110,215){\mbox{$2^{\sqrt{\log n\,\cdot\,\log\log n}}$}}
+    \color{magenta}
+    \psplot[linecolor=magenta,plotpoints=200]{7}{163}{0.45 2 x 0.15 mul ln x 0.15 mul mul sqrt exp mul}
+    \put(140,215){\mbox{$2^{\sqrt{n \log n}}$}}
+    \psplot[linecolor=magenta,plotpoints=200]{0}{190}{x x mul 0.005 mul}
+    \put(190,190){\mbox{$n^2$}}
+    \color{black}
+    \psplot[plotpoints=200]{1}{190}{x ln x mul 0.1 mul}
+    \put(195,100){\mbox{$n \log n$}}
+%    \psplot[linecolor=red,plotpoints=200]{1}{190}{x ln x ln mul 2.3 mul}
+%    \color{red}
+%    \put(195,57.5){\mbox{$(\log n)^2$}}
+    \color{black}
+    \psplot[plotpoints=200]{0}{190}{x 0.4 mul}
+    \put(195,75){\mbox{$n$}}
+    \psplot[plotpoints=200]{1}{190}{x ln 10 mul}
+    \put(195,50){\mbox{$\log n$}}
+    \psplot[plotpoints=200]{1}{190}{30}
+    \put(195,25){\mbox{$1$}}
+    \put(205,0){\makebox(0,0)[l]{$n$}}
+%    \put(-10,210){\makebox(0,0)[l]{$g(n)$}}
+    \put(-10,210){\makebox(0,0)[l]{$\mathcal{O}\bigl(g(n)\bigl)$}}
+  \end{pspicture}
+\end{document}
diff --git a/common/landau-symbols.pdf b/common/landau-symbols.pdf
index 51428ddaf0e8fc54ce6d5182b8f9690c2ed5e42c..3d0c03066e91a0d53ab5909f7d36a63fe9fa680a 100644
Binary files a/common/landau-symbols.pdf and b/common/landau-symbols.pdf differ
diff --git a/hp-slides-2019ws.pdf b/hp-slides-2019ws.pdf
index 6dbd7a57196fdf4a93bf97e8d6dd62740b8fa43b..01e2773d41e8a2c023cba7620493e9ee7407a021 100644
Binary files a/hp-slides-2019ws.pdf and b/hp-slides-2019ws.pdf differ
diff --git a/hp-slides-2019ws.tex b/hp-slides-2019ws.tex
index 791d87214349fe743da9f739a79608ca59b32426..d2cf57e289b32a0c0013ab672ed4fcf593fbcc4a 100644
--- a/hp-slides-2019ws.tex
+++ b/hp-slides-2019ws.tex
@@ -32,4 +32,6 @@
   \includepdf[pages=-]{20191212/hp-20191212.pdf}
   \pdfbookmark[1]{19.12.2019: Binärdarstellung negativer Zahlen, Speicherausrichtung - Alignment}{20191219}
   \includepdf[pages=-]{20191219/hp-20191219.pdf}
+  \pdfbookmark[1]{02.01.2020: Quantencomputer, Datensicherheit und Datenschutz}{20200102}
+  \includepdf[pages=-]{20200102/hp-20200102.pdf}
 \end{document}