* 'master' of https://git.2li.ch/ibz/math_rsa:
  various math fixes
  move comma after parentheses
  correct inline math
  fix typo
  fix exponents
  correct line lengths
This commit is contained in:
Ivan Hörler 2017-01-08 21:26:48 +01:00
commit 2edc944c43
2 changed files with 58 additions and 46 deletions

BIN
main.pdf

Binary file not shown.

104
main.tex
View File

@ -37,17 +37,17 @@ empfohlene Grösse bei 4096 Bit liegt.
\subsection{Geschichte}
Im Jahre 1976 wurde von Whitfield Diffie und Martin Hellman eine
Theorie zu Publickey-Kryptographie veröffentlicht \cite{ref4}. In welcher sie
ein Konzept Namens "Falltür" präsentieren. Dabei handelt es sich um
mathematische Probleme welche in eine Richtung sehr aufwändig und in die andere
Richtung viel einfacher zu lösen sind.
Im Jahre 1976 wurde von Whitfield Diffie und Martin Hellman eine Theorie zu
Publickey-Kryptographie veröffentlicht \cite{ref4}. In welcher sie ein Konzept
Namens "Falltür" präsentieren. Dabei handelt es sich um mathematische Probleme
welche in eine Richtung sehr aufwändig und in die andere Richtung viel einfacher
zu lösen sind.
Ronald L. Rivest, Adi Shamir und Leonard Adleman wollten nach der
Veröffentlichung der Theorie von Herrn Diffie und Herrn Hellman beweisen das
Veröffentlichung der Theorie von Herrn Diffie und Herrn Hellman beweisen das
solche Falltüren nicht existieren. Dabei entdeckten sie jedoch genau solch eine
Falltür daraus entwickelten sie dann den RSA Algorithmus welchen sie 1977
vorstellten \cite{ref5}. RSA steht dabei für die Anfangsbuchstaben ihrer
vorstellten \cite{ref5}. RSA steht dabei für die Anfangsbuchstaben ihrer
Familiennamen.
Im Jahre 2002 erhielten sie den Turing-Award für ihre Arbeit auf dem Gebiet der
@ -65,8 +65,8 @@ wie die Authentifizierung gegenüber den Bankautomaten funktioniert.
\textbf{HTTPS (TLS und X.509-Zertifikate)}
HTTPS garantiert das die Zugriffe auf Website welche es unterstützen,
vor Manipulationen sowie Spionage von Unbefugten geschützt sind. Dies ist
HTTPS garantiert das die Zugriffe auf Website welche es unterstützen, vor
Manipulationen sowie Spionage von Unbefugten geschützt sind. Dies ist
insbesondere bei eBanking oder Websiten mit Logins essentiel wichtig. Ansonsten
ist es ein Leichtes Konten zu übernehmen.
@ -96,14 +96,10 @@ Verschlüsseln der eigentlichen Daten.
\section{Öffentlicher und Privater Schlüssel}
Als erster Schritt muss ein öffentlicher und privater Schlüssel,(sozusagen ein Schlüsselpaar) konstruiert werden.
Dazu wählen wir 2 zwei zufällie Primzahlen die wir in unserem Beispiel zur einfachheit halber klein halten und fangen mit der Konstruktion an.
Als erster Schritt muss ein öffentlicher und privater Schlüssel (sozusagen ein
Schlüsselpaar), konstruiert werden. Dazu wählen wir 2 zwei zufällie Primzahlen
die wir in unserem Beispiel zur einfachheit halber klein halten und fangen mit
der Konstruktion an.
\subsection{Schlüsselkontruktion}
% ------------------------------------------- Makro Definitionen -------------------------------------------
@ -112,18 +108,18 @@ Dazu wählen wir 2 zwei zufällie Primzahlen die wir in unserem Beispiel zur ein
\def\varphipxphiq{\varphi \textit{(p)} \cdot \varphi\textit{(q)}} % IH | ich definiere "phi p x phi q" \varphipxphiq
\def\pmineinsxqmineins{(\textit{p}-1) \cdot (\textit{q}-1)} % IH | ich definiere "p min eins x q min eins" \pmineinsxqmineins
% ------------------------------------------- Makro Definitionen -------------------------------------------
\textit In den folgenden Seiten berechnen wir : \\
In den folgenden Seiten berechnen wir : \\
\textit{N} = Privatschlüsselanteil \\
\textit{p} = primzahl \\
\textit{q} = primzahl \\
\textit{p} = primzahl \\
\textit{q} = primzahl \\
\textit{e} = Teilerfremder Wert \\
\textit{d} = modular inverse \\
\ In dem e+n den öffentlichen und d+n den privaten Schlüssel bilden. \\
\subsection{Konstruktion \textit{N}}
Es werden zwei verschiedene Primzahlen p = 7 und q = 11 gewählt und das Produkt daraus
gerechnet, welches wir N nennen.
Es werden zwei verschiedene Primzahlen p = 7 und q = 11 gewählt und das Produkt
daraus gerechnet, welches wir N nennen.
\begin{align*}
\textit{N} & = \pq \\
77 & = 7 \cdot 11 \\
@ -132,9 +128,10 @@ gerechnet, welches wir N nennen.
\subsection{Konstruktion \textit{m}}
Danach rechnen wir Phi von N um die Anzahl der teilerfremden Zahlen zu
berechnen. Da p und q Primzahlen sind wissen wir das Phi von \(p=p-1\) und Phi
von \(q=q-1\) ist.
Danach rechnen wir Phi von N um die Anzahl der teilerfremden Zahlen zu berechnen.
Da p und q Primzahlen sind wissen wir das Phi von p = p-1 und Phi von q = q-1 ist.
\begin{align*}
\varphi \textit{(N)} & = \m \\
\varphi \textit{(N)} & = \varphipxphiq \\
@ -143,17 +140,23 @@ Da p und q Primzahlen sind wissen wir das Phi von p = p-1 und Phi von q = q-1 is
\varphi \textit{(N)} & = 60
\end{align*}
\subsection{Konstruktion \textit{e}}
Wir bestimmen eine zu \textit{m} = 60 teilerfremde Primzahl mit 1<
\textit{e} < \textit{m} mit dem ggT(e,m)=1 \\
\ Wir nehmen in unserem Beispiel 7 da sie nicht durch 60 teilbar ist und beide den ggT 1 besitzten. \\
Wir bestimmen eine zu \textit{m} = 60 teilerfremde Primzahl mit \(1<
\textit{e}<\textit{m}\) mit dem ggT(e,m)=1 \\
Wir nehmen in unserem Beispiel 7 da sie nicht durch 60 teilbar ist und beide den
ggT 1 besitzten.
\subsection{Konstruktion \textit(d)}
Zuvor haben wir e mit der Eigenschaft ( ggT( e,\varphi (N)\) = 1 ) bestummen, dies bedeutet, wenn wir ( mod \varphi (N)\) rechnen, hat e einen inversis. \\
Wir bestimmen d mit e*d \equiv 1 mod $\varphi (N) $ und formen dies nach d = e^(-1) mod $\varphi (N) $ \
Aus e^(-1) mod $\varphi (N) $ \ \equiv 7^-1 mod $\varphi (77) $ berechnen wir die inverse, indem wir erstmal aus 60 und 7 den euklidischen Algorithmus formen, als wollten wir den ggT dieser Zahlen ermitteln. Wir wissen schon dass der ggT(60,7) 1 ist.
%evtl würde es Sinn machen wenn wir das hier in equations packen? Wäre
%übersichtlicher.
Zuvor haben wir e mit der Eigenschaft ( \(ggT(e,\varphi(N)=1\) ) bestummen,
dies bedeutet, wenn wir ( \(mod\varphi(N)\) ) rechnen, hat e einen inversis. \\
Wir bestimmen d mit \(e*d \equiv 1 mod \varphi (N)\) und formen dies nach \(d =
e^{-1} mod \varphi (N)\) Aus \(e^{-1} mod \varphi (N)\ \equiv 7^{-1} mod
\varphi (77)\) berechnen wir die inverse, indem wir erstmal aus 60 und 7 den
euklidischen Algorithmus formen, als wollten wir den ggT dieser Zahlen
ermitteln. Wir wissen schon dass der ggT(60,7) 1 ist.
\begin{align*}
@ -163,7 +166,10 @@ Aus e^(-1) mod $\varphi (N) $ \ \equiv 7^-1 mod $\varphi (77) $ berechnen wir d
3 & = 3 \cdot 1 + 0
\end{align*}
Der erweiterte euklidische Algorithmus besteht nun darin, ausgehend von der vorletzten Zeite, diese Rechenschritte "von unten nach oben" in der folgenden Weise aufzurollen, indem die einzelnen Zeilen nach den Resten aufgelöst und diese nacheinander eingesetzt werden:
Der erweiterte euklidische Algorithmus besteht nun darin, ausgehend von der
vorletzten Seite, diese Rechenschritte ''von unten nach oben'' in der folgenden
Weise aufzurollen, indem die einzelnen Zeilen nach den Resten aufgelöst und
diese nacheinander eingesetzt werden:
\begin{align*}
1 & = 4 - 1 \cdot 3 \\
@ -172,20 +178,24 @@ Der erweiterte euklidische Algorithmus besteht nun darin, ausgehend von der vorl
1 & =(-1) \cdot 7 + 2 \cdot 4 \\
1 & = (-1) \cdot 7 + 2 \cdot (60-8 \cdot 7)\\
\end{align*}
Zu beachten ist, dass wir alle Klammern, jedoch nicht alle Produkte ausmultiplizieren\\
Zu beachten ist, dass wir alle Klammern, jedoch nicht alle Produkte
ausmultiplizieren\\
Da unsere Inverse positiv und kleiner 60 sein soll, addieren wir 60*7 auf der linken Seite.
Die rechte Seite verändert sich nicht, da wir mod 60 rechnen.\\
Da unsere Inverse positiv und kleiner 60 sein soll, addieren wir \(60*7\) auf
der linken Seite. Die rechte Seite verändert sich nicht, da wir mod 60 rechnen.
\begin{align*}
1 & = 2 \cdot 60 -17 \cdot 7 \,\mid (mod)\\
1 & = 43 \cdot 7 \, mod 60 \,\mid (60 - 17 = 43)\\
1 & = \textit{d} ^\textit{e} \, mod \, \textit{n} \, \slash \, \,\mid Umformen \, nach \, \textit{d} \, \\
% IH | in Formeln werden leerzeichen ignoriert darum kann mit " \, " , " \: " , " \; " erstellt einen "schmalen", "mittleren" und "breiten" Leerschlag. Es geht auch mit \thinspace, \medspace oder \thickspace...
1 & = \textit{d} ^\textit{e} \, mod \, \textit{n} \, \slash \, \,\mid Umformen \, nach \, \textit{d} \, \\
% IH | in Formeln werden leerzeichen ignoriert darum kann mit " \, " , " \: " ,
%" \; " erstellt einen "schmalen", "mittleren" und "breiten" Leerschlag. Es geht
%auch mit \thinspace, \medspace oder \thickspace...
\textit{d} & = 7^{-1} \, mod \, 60 \\
\textit{d} & = 43
\textit{d} & = 43
\end{align*}
Danach lösen wir die Gleichung nach d auf . \\
Danach lösen wir die Gleichung nach d auf.
\section{Verschlüsselung}
Im Beispiel der Schlüsselkonstruktion werden die Variablen e und N als
@ -194,15 +204,15 @@ den dafür entsprechenden Empfänger zu verschlüsseln. Mit der daraus
resultierenden Zahl sowie dem privaten Schlüssel, welcher aus den Variablen d
und N besteht, kann die Nachricht wieder entschlüsselt werden.
In unserem Beispiel lautet der private Schlüssel also: 43 + 77
und der öffentliche Schlüssel: 7 + 77
In unserem Beispiel lautet der private Schlüssel also: \(43+77\)
und der öffentliche Schlüssel: \(7+77\)
\subsection {Der eigentliche Akt der Verschlüsselung}
Wollen wir nun eine Nachricht mit dem öffentlichen Schlüssel verschlüsseln, so
das sie also nur noch für den Empfänger mit dem entsprechenden privaten
Schlüssel zu entschlüsseln ist, gehen wir folgendermassen vor:
Wir kennen die beiden Zahlen des öffentlichen Schlüssels: 7 + 77
Wir kennen die beiden Zahlen des öffentlichen Schlüssels: \(7+77\)
Unsere zu verschlüsselnde Nachricht x: 45 (muss kleiner sein als N)
(Wie bereits in einem früheren Kapitel erwähnt sind solche öffentliche
@ -212,9 +222,10 @@ Primzahlen verwenden müssen wir diesen Punkt beachten um sicherzustellen das
wir auch ein korrektes Ergebnis erhalten.)
Die Nachricht wird nun mit folgender Formel verschlüsselt:
\begin{align*}
y & = x ^a mod n \\
y & = 45^43 mod 77 \\
y & = 45^{43} mod 77 \\
y & = 45 \\
\end{align*}
@ -232,9 +243,10 @@ Unsere gesuchte Zahl lautet demnach 43 (d)
Da nun alle benötigten Variablen bekannt sind kann die Nachricht mit folgender
Formel entschlüsselt werden.
\begin{align*}
x & = y ^d mod n \\
x & = 45^43 mod 77 \\
x & = y^d mod n \\
x & = 45^{43} mod 77 \\
x & = 45 \\
\end{align*}
@ -248,7 +260,7 @@ stellen wir die Wichtigsten Methoden vor.
Die Methode alle möglichen Primzahlen von $\varphi=\pmineinsxqmineins$
auszuprobieren gilt als nicht einfacher als \textit{N} zu Faktorisieren.
\subsection{Fakturierung durch die Kenntnis von \textit{N} }
\subsection{Fakturierung durch die Kenntnis von \textit{N}}
Weil die Faktoren von \textit{N} den $\varphi$\textit{N} ermitteln lassen kann
auch \textit{d} ermittelt werden. Die Erfinder RSA selbst, berechneten anhand
eines Algorithmus von Richard Schroeppel und der Annahme das ein