2016-12-09 22:49:16 +01:00
\documentclass { math_ rsa}
2016-11-26 12:35:02 +01:00
\title { Einführung zu RSA}
2016-11-25 22:37:39 +01:00
\date { \today }
2016-12-17 13:47:45 +01:00
\author { Andreas Zweili, Ismail Cadaroski, Ivan Hörler, Michael Stratighiou}
2017-02-19 17:53:16 +01:00
2016-12-31 15:24:39 +01:00
\numberwithin { equation} { subsection} % IH | Formelnummerierung mit Section Nummer kombiniert
2017-03-04 19:17:00 +01:00
\DeclareUnicodeCharacter { 00A0} { }
2017-01-10 22:58:23 +01:00
% Developement Helpers
%-------------------------------------------------------------------
2017-01-30 18:19:43 +01:00
\fboxrule =0pt %border thickness der fboxes zum bearbeiten auf 1 setzten
2017-01-11 18:13:32 +01:00
%\usepackage{showframe} %border der Bereiche anzeigen
2016-11-25 22:37:39 +01:00
\begin { document}
2016-12-09 22:49:16 +01:00
\begin { titlepage}
2016-11-25 22:37:39 +01:00
\maketitle
2016-12-09 22:49:16 +01:00
\thispagestyle { empty}
\end { titlepage}
\tableofcontents
\newpage
2016-12-16 15:12:57 +01:00
\section { Einführung}
2017-02-19 18:28:54 +01:00
Diese Arbeit gibt eine Einführung zu dem Verschlüsselungsalgorithmus RSA.
Anhand von vereinfachten Rechnungen wird die Funktion des Algorithmus
2016-12-16 15:12:57 +01:00
veranschaulicht und erklärt. In der Realität sind die verwendeten Zahlen jedoch
2017-02-19 18:28:54 +01:00
um ein X-faches grösser. Die nachfolgende Zahl ist 1024 Bit gross. Der Leser
kann sich also ungefähr vorstellen wie gross die Zahlen sind, wenn die heutige
empfohlene Grösse bei 4096 Bit liegt.\\ [2em]
2016-12-16 15:12:57 +01:00
\begin { sexylisting} { RSA-1024 Primzahl}
2017-03-04 19:17:00 +01:00
13506641086599522334960321627880596993888147560566702752448
51438515265106048595338339402871505719094417982072821644715
51373680419703964191743046496589274256239341020864383202110
37295872576235850964311056407350150818751067659462920556368
55294752135008528794163773285339061097505443349998111500569
77236890927563
2016-12-16 15:12:57 +01:00
\end { sexylisting}
\subsection { Geschichte}
2017-02-19 18:28:54 +01:00
Im Jahre 1976 wurde von Whitfield Diffie und Martin Hellman eine Theorie zur
Publickey-Kryptographie veröffentlicht \cite { ref4} , in welcher sie ein Konzept
namens ``Falltür'' präsentieren. Dabei handelt es sich um mathematische Probleme,
2017-01-08 20:14:37 +01:00
welche in eine Richtung sehr aufwändig und in die andere Richtung viel einfacher
2017-02-19 18:28:54 +01:00
zu lösen sind.\\ [2em]
2016-12-28 17:25:41 +01:00
Ronald L. Rivest, Adi Shamir und Leonard Adleman wollten nach der
2017-02-19 18:28:54 +01:00
Veröffentlichung der Theorie von Herrn Diffie und Herrn Hellman beweisen, dass
2016-12-28 17:25:41 +01:00
solche Falltüren nicht existieren. Dabei entdeckten sie jedoch genau solch eine
2017-02-19 18:28:54 +01:00
Falltür. Daraus entwickelten sie dann den RSA Algorithmus welchen sie 1977
2017-01-08 20:14:37 +01:00
vorstellten \cite { ref5} . RSA steht dabei für die Anfangsbuchstaben ihrer
2017-02-19 18:28:54 +01:00
Familiennamen.\\ [2em]
2016-12-16 15:46:48 +01:00
Im Jahre 2002 erhielten sie den Turing-Award für ihre Arbeit auf dem Gebiet der
2017-02-19 18:28:54 +01:00
Kryptographie, welcher oft als Nobelpreis der Informatik bezeichnet wird.
2016-12-16 15:12:57 +01:00
\subsection { Verwendung}
2017-02-19 18:28:54 +01:00
RSA wird heute in einr Vielzahl von Programmen eingesetzt. Von besonderer
Wichtigkeit sind hier folgende Systeme zu erwähnen.
2017-03-04 19:17:00 +01:00
\subsubsection * { Bankkarten nach dem EMV Standard}
2017-02-19 18:28:54 +01:00
Dieser Standard definiert, wie der Chip auf den Karten zu funktionieren hat und
2016-12-28 21:27:45 +01:00
wie die Authentifizierung gegenüber den Bankautomaten funktioniert.
2017-03-04 19:17:00 +01:00
\subsubsection * { HTTPS (TLS und X.509-Zertifikate)}
2017-02-19 18:28:54 +01:00
HTTPS garantiert, dass die Zugriffe auf Websites, welche es unterstützen, vor
2017-01-08 20:14:37 +01:00
Manipulationen sowie Spionage von Unbefugten geschützt sind. Dies ist
2016-12-28 21:27:45 +01:00
insbesondere bei eBanking oder Websiten mit Logins essentiel wichtig. Ansonsten
ist es ein Leichtes Konten zu übernehmen.
2017-03-04 19:17:00 +01:00
\subsubsection * { SSH (Secure Shell)}
2016-12-28 21:27:45 +01:00
SSH ist ein Protokoll mit welchem man remote auf Unix Systeme Zugreifen kann.
Am häufigsten wird es genutzt zur Administrierung von Servern oder zur
Übertragung von Dateien.
2017-03-04 19:17:00 +01:00
\subsubsection * { OpenPGP}
2017-02-19 18:28:54 +01:00
OpenPGP ist ein Verschlüsselungsverfahren, welches hauptsächlich bei der
2016-12-28 21:27:45 +01:00
Verschlüsselung von Emails verwendet wird. Abseits davon wird es auch zur
2017-02-19 18:28:54 +01:00
Signierung von Dateien eingesetzt.\\ [2em]
Zusätzlich sollte noch erwähnt werden, dass RSA in den meisten Fällen nicht
alleine eingesetzt wird, da die Performance von RSA im Vergleich zu symetrischen
2016-12-28 21:30:30 +01:00
Verfahren sehr viel schlechter ist. Deshalb wird RSA oftmals nur zum
Schlüsseltausch eingesetzt und eine symetrische Verschlüsselung zum
Verschlüsseln der eigentlichen Daten.
2016-12-31 15:24:39 +01:00
\begin { center}
\includegraphics [width=360pt] { Bilder/RSA-verschluesselungs-Vorgang.png}
\end { center}
2017-02-19 17:53:16 +01:00
\newpage
2017-02-19 18:28:54 +01:00
\section { Öffentlicher und privater Schlüssel}
2017-01-08 21:01:48 +01:00
Als erster Schritt muss ein öffentlicher und privater Schlüssel (sozusagen ein
2017-02-19 18:28:54 +01:00
Schlüsselpaar), konstruiert werden. Dazu wählen wir zwei zufällige Primzahlen,
2017-02-09 18:15:52 +01:00
die wir in unserem Beispiel der Einfachheit halber klein halten und fangen mit
2017-01-08 20:14:37 +01:00
der Konstruktion an.
2016-12-15 18:27:03 +01:00
\subsection { Schlüsselkontruktion}
2017-01-08 21:37:43 +01:00
% Pfeilbeispiel -------------------------------------------
% tikzmark command
2017-01-30 17:12:02 +01:00
\newcommand { \tikzmark } [2]{ %
\tikz [remember picture,baseline=(#1.base)]
\node [text=black,anchor=center,inner sep=1pt] (#1) { #2} ;}
2017-01-21 07:31:19 +01:00
%Beispiel für Isi:
% \begin{align*}
% \tikzmark{a}{a}+\tikzmark{b}{b} & =\tikzmark{c}{c} \\[1em]
% \tikzmark{sums}{Sumanden} & =\tikzmark{sum}{Summe}
% \phantom{\hspace{8cm}} %%<---versatz von rechts (!)
% \end{align*}
% \tikz[overlay,remember picture]{\draw[blue,thick,->] (sums.north) to [bend left=0] node[anchor=south]{$ $}(a.south);}
% \tikz[overlay,remember picture]{\draw[blue,thick,->] (sums.north) to [bend left=0] node[anchor=south]{$ $}(b.south);}
% \tikz[overlay,remember picture]{\draw[blue,thick,->] (sum.north) to [bend left=0] node[anchor=south]{$ $}(c.south);}
%% Pfeilbeispiel -------------------------------------------
2016-12-31 15:24:39 +01:00
% ------------------------------------------- Makro Definitionen -------------------------------------------
\def \pq { \textit { p} \cdot \textit { q} }
\def \m { \varphi (\textit { p} \cdot \textit { q} )} % IH | ich definiere ein Makro das mit "m" heist und mit \m aufgerufen werden kann.
\def \varphipxphiq { \varphi \textit { (p)} \cdot \varphi \textit { (q)} } % IH | ich definiere "phi p x phi q" \varphipxphiq
2017-01-10 22:58:23 +01:00
\def \pmineinsxqmineins { (\textit { p} -1) \cdot (\textit { q} -1)} % IH | ich definiere "p min eins x q min eins" \pmineinsxqmineins
\def \siebenmineinsxelfmineins { (7-1) \cdot (11-1)}
2016-12-31 15:24:39 +01:00
% ------------------------------------------- Makro Definitionen -------------------------------------------
2017-01-08 21:01:48 +01:00
In den folgenden Seiten berechnen wir : \\
2017-01-30 18:19:43 +01:00
\textit { N} = RSA-Modul \\
2017-01-11 18:36:00 +01:00
\textit { p} = Primzahl \\
\textit { q} = Primzahl \\
2017-01-30 18:19:43 +01:00
\textit { e} = Öffentlicher Verschlüsselungsexponent \\
2017-02-19 18:28:54 +01:00
\textit { d} = Privater Verschlüsselungsexponent \\
\begin { center}
Wobei $ \textit { e } + \textit { N } $ den öffentlichen und $ \textit { d } + \textit { N } $
den privaten Schlüssel bilden.
\end { center}
2016-12-31 15:24:39 +01:00
\subsection { Konstruktion \textit { N} }
2017-02-19 18:28:54 +01:00
Es werden zwei verschiedene Primzahlen, die der Hersteller des Schlüssels
2017-02-09 18:15:52 +01:00
selbst wählt, \textit { p} = 7 und \textit { q} = 11 verwendet und das Produkt aus
diesen beiden Werten berechnet. Dieses Resultat \textit { N} wird ein wichtiger
2017-02-19 18:28:54 +01:00
Bestandteil, welchen wir beim Erstellen des privaten, sowie des öffentlichen
2017-02-09 18:15:52 +01:00
Schlüssels wieder verwenden werden.
2017-01-21 07:31:19 +01:00
\begin { center}
2017-01-10 22:58:23 +01:00
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-10 22:58:23 +01:00
Theorie:
\begin { align*}
2017-01-21 07:31:19 +01:00
\textit { N} & = \pq
2017-01-10 22:58:23 +01:00
\end { align*}
\end { minipage} %
}
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-10 22:58:23 +01:00
Beispiel:
\begin { align*}
77 & = 7 \cdot 11 \\
2017-01-21 07:31:19 +01:00
\textit { N} & = 77
2017-01-10 22:58:23 +01:00
\end { align*}
\end { minipage} %
2017-01-30 18:19:43 +01:00
}
2017-01-21 07:31:19 +01:00
\end { center}
2016-12-31 15:24:39 +01:00
\subsection { Konstruktion \textit { m} }
2017-02-19 18:28:54 +01:00
Danach rechnen wir Phi von \textit { N} , um die Anzahl der teilerfremden Zahlen zu
berechnen. Da \textit { p} und \textit { q} Primzahlen sind, wissen wir, dass Phi von
2017-02-09 18:15:52 +01:00
\( \textit { p } = \textit { p } - 1 \) und Phi von \( \textit { q } = \textit { q } - 1 \) ist und
2017-02-19 18:28:54 +01:00
erhalten als Phi v. \textit { N} = 60 = \textit { m} .
2017-01-21 07:31:19 +01:00
\begin { center}
2017-01-10 22:58:23 +01:00
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-10 22:58:23 +01:00
Theorie:
\begin { align*}
\varphi \textit { (N)} & = \m \\
\varphi \textit { (N)} & = \varphipxphiq \\
\varphi \textit { (N)} & = \pmineinsxqmineins \\
\end { align*}
\end { minipage} %
}
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-10 22:58:23 +01:00
Beispiel:
\begin { align*}
\\
\\
\varphi \textit { (N)} & = \siebenmineinsxelfmineins \\
2017-01-15 13:17:40 +01:00
\varphi \textit { (N)} & = 60 \\
\textit { m} & = 60
2017-01-10 22:58:23 +01:00
\end { align*}
\end { minipage} %
2017-01-30 18:19:43 +01:00
}
2017-01-21 07:31:19 +01:00
\end { center}
2017-01-08 15:12:30 +01:00
\subsection { Konstruktion \textit { e} }
2017-02-19 18:28:54 +01:00
Wir bestimmen eine zu \textit { m} = 60 teilerfremde Primzahl, die grösser 1, aber
2017-02-09 18:15:52 +01:00
kleiner \textit { m} sein muss. Wir nehmen in unserem Beispiel \textit { e} = 7.
2017-01-09 20:41:52 +01:00
\subsection { Konstruktion \textit { d} }
2017-02-19 18:28:54 +01:00
Um die Nachricht zu entschlüsseln, werden wir \textit { d} brauchen. Da $ \textit { e } \cdot \textit { d } \ mod \ \textit { m } = 1 $ ist, muss d aus der Gleichung ausoperiert werden. Dies geschieht mit dem erweiterten, euklidischem Algorithmus und wird in der nachgehenden Tabelle Schritt für Schritt durchgerechnet.
2017-01-21 07:31:19 +01:00
\begin { center}
2017-01-10 22:58:23 +01:00
\fbox { %
2017-01-30 17:12:02 +01:00
\begin { minipage} [t]{ 0.95\textwidth }
2017-01-30 18:19:43 +01:00
Erweiterter Euklidischer Algorithmus:\\ [1em]
2017-01-30 17:12:02 +01:00
\begin { tabular} { |c|c|c|c|c|c|c|c|p{ 5.5cm} |} \hline % Quelle: http://johannes-bauer.com/compsci/eea/?a=7&b=60&submit=Berechnen
A & B & Q & R & S & T & U & V & Berechnung: \\ \hline
\textit { m} & \textit { e} & & & 1 & 0 & 0 & 1 & Startwerte \\ \hline
60 & 7 & 8 & 4 & 0 & 1 & 1 & -8 & \scriptsize
Q = A / B = 60 / 7 = 8\newline R = A \% B = 60 \% 7 = 4 \newline $ S = U _ { alt } = 0 $ \newline $ T = V _ { alt } = 1 $ \newline
$ U = S _ { alt } - ( Q \cdot U _ { alt } ) = 1 - ( 8 \cdot 0 ) = 1 $ \newline $ V = T _ { alt } - ( Q \cdot V _ { alt } ) = 0 - ( 8 \cdot 1 ) = - 8 $ \\ \hline
7 & 4 & 1 & 3 & 1 & -8 & -1 & 9 & \scriptsize
$ A = B _ { alt } $ \newline $ B = R _ { alt } $ \newline Q = A / B = 7 / 4 = 1 \newline R = A \% B = 7 \% 4 = 3 \newline
$ S = U _ { alt } = 1 $ \newline $ T = V _ { alt } = - 8 $ \newline $ U = S _ { alt } - ( Q \cdot U _ { alt } ) = 0 - ( 1 \cdot 1 ) = - 1 $ \newline
$ V = T _ { alt } - ( Q \cdot V _ { alt } ) = 1 - ( 1 \cdot - 8 ) = 9 $ \\ \hline
4 & 3 & 1 & 1 & -1 & 9 & 2 & -17 & \scriptsize
$ A = B _ { alt } $ \newline $ B = R _ { alt } $ \newline Q = A / B = 4 / 3 = 1 \newline R = A \% B = 4 \% 3 = 1 \newline
$ S = U _ { alt } = - 1 $ \newline $ T = V _ { alt } = 9 $ \newline $ U = S _ { alt } - ( Q \cdot U _ { alt } ) = 1 - ( 1 \cdot - 1 ) = 2 $ \newline
$ V = T _ { alt } - ( Q \cdot V _ { alt } ) = - 8 - ( 1 \cdot 9 ) = - 17 $ \\ \hline
& 1 & & & 2 & -17 & & & Ergebnisse\\ \hline \hline
\end { tabular}
2017-01-10 22:58:23 +01:00
\end { minipage} %
2017-01-30 18:19:43 +01:00
} \\ [1em]
2017-01-10 22:58:23 +01:00
\fbox { %
2017-01-30 17:12:02 +01:00
\begin { minipage} [t]{ 0.4\textwidth }
Theorie:
\begin { align*}
S \cdot \textit { m} + T \cdot \textit { e} & = ggT(60,7) \\
\\
T + \textit { m} \cdot \textit { e} \ mod \ \textit { m} & = ggT(60,7)\\
d \cdot \textit { e} \ mod \ \textit { m} & = ggT(60,7)\\
\\
\textit { e} ^ { ggT(60,7)} \ mod \ \textit { m} & = d
\end { align*}
\end { minipage} %
}
\fbox { %
\begin { minipage} [t]{ 0.4\textwidth }
2017-01-10 22:58:23 +01:00
Beispiel:
2017-01-30 17:12:02 +01:00
\begin { align*}
2 \cdot 60 + (-17 \cdot 7) & = 1 \\
120 - 119 & = 1
\\
-17 + 60 \cdot 7 \ mod \ 60 & = 1 \\
43 \cdot 7 \ mod \ 60 & = 1 \\
\\
7^ { -1} \ mod \ 60 = 43
2017-01-10 22:58:23 +01:00
\end { align*}
\end { minipage} %
2017-01-30 17:12:02 +01:00
} \\ [1em]
2017-01-21 07:31:19 +01:00
\end { center}
2017-02-19 17:53:16 +01:00
\newpage
2016-12-30 14:56:32 +01:00
\section { Verschlüsselung}
2017-01-15 13:17:40 +01:00
Im Beispiel der Schlüsselkonstruktion werden die Variablen \textit { e} und \textit { N} als
2017-02-19 18:28:54 +01:00
öffentlicher Schlüssel festgelegt. Dieser wird benötigt, um eine Nachricht für
2016-12-31 16:46:09 +01:00
den dafür entsprechenden Empfänger zu verschlüsseln. Mit der daraus
2017-02-19 18:28:54 +01:00
resultierenden Zahl, sowie dem privaten Schlüssel, welcher aus den Variablen \textit { d}
und \textit { N} besteht, kann die Nachricht wieder entschlüsselt werden. \\ [2em]
2017-01-15 13:17:40 +01:00
In unserem Beispiel lautet der private Schlüssel also: \( 43 + 77 \) \\
2017-01-08 21:14:50 +01:00
und der öffentliche Schlüssel: \( 7 + 77 \)
2016-12-30 14:56:32 +01:00
\subsection { Der eigentliche Akt der Verschlüsselung}
2016-12-31 16:46:09 +01:00
Wollen wir nun eine Nachricht mit dem öffentlichen Schlüssel verschlüsseln, so
2017-02-19 18:28:54 +01:00
dass sie nur noch für den Empfänger mit dem entsprechenden privaten
Schlüssel zu entschlüsseln ist, gehen wir folgendermassen vor:\\ [2em]
Wir kennen die beiden Zahlen des öffentlichen Schlüssels: \( 7 + 77 \) \\ [2em]
2017-01-15 13:17:40 +01:00
Unsere zu verschlüsselnde Nachricht x: 47 (muss kleiner sein als \textit { N} )
2017-02-19 18:28:54 +01:00
Wie bereits in einem früheren Kapitel erwähnt sind solche öffentlichen
2016-12-31 16:46:09 +01:00
Schlüssel Primzahlen mit mehreren hundert Stellen, somit ist diese Regel im
Normalfall irrelevant. Da wir aber in unserem Beispiel keine so grossen
2017-02-19 18:28:54 +01:00
Primzahlen verwenden, müssen wir diesen Punkt beachten, um sicherzustellen dass
wir auch ein korrektes Ergebnis erhalten.\\ [2em]
2017-01-21 07:31:19 +01:00
Die Nachricht wird nun mit folgender Formel verschlüsselt:
\begin { center}
2017-01-15 13:17:40 +01:00
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-15 13:17:40 +01:00
Theorie:
\begin { align*}
\textit { y} & = \textit { x} ^ \textit { e} \bmod \textit { N} \\
\\
\end { align*}
\end { minipage} %
}
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-15 13:17:40 +01:00
Beispiel:
\begin { align*}
\textit { y} & = 47^ { 7} \bmod 77 \\
\textit { y} & = 75 \\
\end { align*}
\end { minipage} %
2017-01-21 07:31:19 +01:00
} \\ [-1em]
\end { center}
2017-02-19 18:28:54 +01:00
75 (\textit { y} ) ist unsere verschlüsselte Nachricht, welche an den Empfänger
2016-12-31 16:46:09 +01:00
übermittelt wird.
2017-02-19 17:53:16 +01:00
\newpage
2017-01-21 07:31:19 +01:00
\section { Entschlüsselung}
2017-02-19 18:28:54 +01:00
Um die Nachricht zu entschlüsseln, muss zuerst \textit { d} errechnet werden, dies geschieht
mit hilfe des erweiterten, euklidischen Algorithmus. Diese Berechnung wurde
2017-02-09 18:15:52 +01:00
bereits im Kapitel 2.5 erledigt.
2017-03-04 19:19:05 +01:00
Unsere gesuchte Zahl lautet demnach 43 (\textit { d} )\\ [2em]
2017-02-19 18:28:54 +01:00
Da nun alle benötigten Variablen bekannt sind, kann die Nachricht mit folgender
2017-01-21 07:31:19 +01:00
Formel entschlüsselt werden.
\begin { center}
2017-01-15 13:17:40 +01:00
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-15 13:17:40 +01:00
Theorie:
\begin { align*}
\textit { x} & = \textit { y} ^ \textit { d} \bmod \textit { N} \\
\\
\end { align*}
\end { minipage} %
}
\fbox { %
2017-01-21 07:31:19 +01:00
\begin { minipage} [t]{ 0.3\textwidth }
2017-01-15 13:17:40 +01:00
Beispiel:
\begin { align*}
\textit { x} & = 75^ { 43} \bmod 77 \\
\textit { x} & = 47 \\
\end { align*}
\end { minipage} %
2017-02-19 17:53:16 +01:00
} \\ [-5em]
2017-01-21 07:31:19 +01:00
\end { center}
2017-03-04 19:17:00 +01:00
\newpage
2016-11-26 13:11:10 +01:00
\section { Schwachstellen}
2017-02-19 18:28:54 +01:00
Obwohl schon einige verkündet haben, die RSA Verschlüsselung geknackt zu haben,
2017-02-09 18:15:52 +01:00
ist es bisher noch niemandem gelungen einer Überprüfung stand zu halten. Es gibt
aber durchaus realistische Ideen wie die Verschlüsselung gebrochen werden kann,
2017-02-19 18:28:54 +01:00
nachgehend stellen wir die wichtigsten vor.
2017-01-09 21:00:52 +01:00
\subsection { Brute-force}
2017-02-19 18:28:54 +01:00
Die Methode, alle möglichen Primzahlen von $ \varphi = \pmineinsxqmineins $
auszuprobieren, gilt als nicht einfacher, als \textit { N} direkt zu faktorisieren.
2017-01-08 21:14:50 +01:00
\subsection { Fakturierung durch die Kenntnis von \textit { N} }
2017-02-19 18:28:54 +01:00
Weil die Faktoren von \textit { N} $ \varphi $ \textit { (N)} ermitteln lassen, kann
\textit { d} ermittelt werden. Die Erfinder von RSA berechneten, anhand
eines Algorithmus von Richard Schroeppel und der Annahme, dass ein
Annäherungsschritt 1ms benötigt, die Zerlegung von:
2016-12-31 15:24:39 +01:00
\begin { center}
\begin { tabular} { | l | l | l |} % >{\( }c<{ \)}
\hline
2016-12-31 16:46:09 +01:00
\textbf { Zeichen} & \textbf { Operationen} & \textbf { Zeit} \\
2017-01-30 18:19:43 +01:00
50 & $ 1 . 4 \cdot 10 ^ 10 $ & 3.9 Stunden \\
75 & $ 9 . 0 \cdot 10 ^ 12 $ & 104 Tage \\
100 & $ 2 . 3 \cdot 10 ^ 15 $ & 74 Jahre \\
200 & $ 1 . 2 \cdot 10 ^ 23 $ & $ 3 . 8 \cdot 10 ^ 9 $ Jahre \\
2016-12-31 15:24:39 +01:00
\hline
\end { tabular}
\end { center}
2017-02-19 18:28:54 +01:00
Wobei zu beachten ist, dass:
2016-12-31 15:24:39 +01:00
\begin { enumerate}
2017-02-19 18:28:54 +01:00
\item Diese Berechnungen der Entschlüsselungs-Zeiten überholt sind.
2016-12-31 16:46:09 +01:00
(stand 1978)
2017-02-19 18:28:54 +01:00
\item 1996 schreibt Prof. Johannes Buchmann von der Universität
Saarbrücken, dass ein parallelisiertes Netz von 250 Rechnern auf dem
Campusareal für eine 130 stellige Zahl mehrere Wochen benötigt und sich
2016-12-31 16:46:09 +01:00
mit mit drei zusätzlichen Dezimalstellen verdoppelt.
2017-02-19 18:28:54 +01:00
\item 2003 veröffentlichte Adi Shamir und Eran Tromer einen technischen Report,
2016-12-31 16:46:09 +01:00
wie ein RSA Schlüssel von 1024 bit in unter einem Jahr gebrochen werden
kann. \cite { ref10} % <-- bibtex Link
2017-02-19 18:28:54 +01:00
\item Anfang 2017 mutmasste das Forschungs-journal nature.com über den
Status der Entwicklung von Quantencomputern und dass deren Schritt aus dem Labor
2017-01-30 18:19:43 +01:00
für dieses Jahr Realität werden könnte. Da diesen Rechnergenerationen eine
2017-02-19 18:28:54 +01:00
überproportionale Beschleunigung nachgewiesen wurde, kann dies der RSA-
2017-01-30 18:19:43 +01:00
Verschlüsselung schaden. \cite { ref11}
2016-12-31 15:24:39 +01:00
\end { enumerate}
2017-02-19 18:28:54 +01:00
\textbf { Diese vier Beispiele zeigen auf, wie unvorhersehbar die Standhaftigkeit
2016-12-31 16:46:09 +01:00
eines Schlüssels in Bezug auf Zeit ist. }
2017-02-09 18:15:52 +01:00
Gemäss Adi Shamir lautet die Formel zur Zerlegung von $ \varphi $ \textit { (N)} :
2016-12-31 16:46:09 +01:00
\begin { equation*}
2017-01-09 20:41:52 +01:00
\varphi =2 \cdot kgV\left (\frac { \textit { p} -1} { 2} , \frac { \textit { q} -1} { 2} \right )
2016-12-31 16:46:09 +01:00
\end { equation*}
2017-02-19 18:28:54 +01:00
\subsection { Zu kleine Multiplikatorprimzahlen}
Da die Sicherheit von RSA darauf beruht, dass die Fakturierung von Primzahlen
2016-12-31 16:46:09 +01:00
Zeit benötigt, ist sie auch nur so stark wie die Grösse der Primzahl \textit { q}
2017-02-19 18:28:54 +01:00
die multipliziert mit \textit { p} den Modulus ergibt. Ist \textit { q} oder
2017-01-30 18:19:43 +01:00
\textit { p} kleiner als 100 Stellen, wird daraus nicht ein Schlüssel $ > 10 ^ { 200 } $
2016-12-31 16:46:09 +01:00
entstehen und damit die Verschlüsselung zwar schneller geschehen aber sie ist
2017-02-09 18:15:52 +01:00
auch gefährdeter durch Brute-force Attacken oder Fakturierung geknackt zu werden.
2017-02-19 18:28:54 +01:00
\subsection { Die Riehmann Hypothese}
Die Riehmann Hypothese beschreibt ein bisher ungelöstes mathematisches Problem.
2017-02-09 18:15:52 +01:00
Sollte sich die Theorie der Riehmann Hypothese bewarheiten könnten daraus
2017-02-19 18:28:54 +01:00
Primzahlen abgeleitet werden auf deren Basis die Zerlegung von \textit { N}
2016-12-31 16:46:09 +01:00
einfacher und schneller ausgeführt werden kann.
2017-01-30 18:19:43 +01:00
\subsection { Social Engineering 1}
Die direkteste Methode an einen Teil oder den ganzen Schlüssel zu gelangen ist
das Hacken oder Stehlen. Einerseits kann dies mittels Trojaner oder dann
2017-02-19 18:28:54 +01:00
direkt durch entwenden der Schlüssel vom Zielgerät geschehen.
2017-01-30 18:19:43 +01:00
\subsection { Social Engineering 2}
2017-03-04 19:17:00 +01:00
Eine weitere Methode ist das Täuschen durch nachfolgendes Beispiel: Durch das
Abfangen einer Nachricht kann ein Angreifer damit noch nichts anfangen, da die
Nachricht mit dem Schlüssel des Empfängers Verschlüsselt ist. Möchte er diese
nun entschlüsseln, muss er an den Schlüssel des Empfängers kommen.
Dazu kann er die Datei wiederum mit einem ihm bekannten Schlüssel verschlüsseln
und sie dem Empfänger erneut und gegebenenfalls unter Verschleierung seiner
Identität zustellen. Der Empfänger wird nun die Datei mit seinem Schlüssel
entschlüsseln und nichts damit anfangen können da sie immer noch mit dem
Schlüssel des Angreifers verschlüsselt ist. Bringt nun der Angreifer durch
Geschick den Empfänger dazu ihm diese entschlüsselte, vermeintlich defekte Datei
zuzusenden, kann er sie mit seinem Schlüssel entschlüsseln und den Inhalt lesen.
\newpage
2016-12-05 22:01:02 +01:00
\nocite { *}
2017-03-04 19:41:38 +01:00
\bibliographystyle { unsrtnat}
2016-12-05 22:01:02 +01:00
\bibliography { bib}
2017-02-19 18:28:54 +01:00
\include { latex}
2016-11-25 22:37:39 +01:00
\end { document}