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}