Skip to content

Commit 9eb5d23

Browse files
author
Julian Thanner
committed
worked on it add example to multiplicate inverse and hybrid encryption and monoalphabetic Encryption
1 parent e1f7980 commit 9eb5d23

File tree

5 files changed

+88
-28
lines changed

5 files changed

+88
-28
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
build/
22
*.aux
3-
.idea/
3+
.idea/
4+
.DS_Store

main.tex

Lines changed: 74 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
\linespread{1.25} %gleich wie 1.5 in word
1414
\pagestyle{headings}
1515

16-
\newcommand*{\quelle}{%
17-
\footnotesize Quelle:
18-
}
1916

2017
\addbibresource{ref.bib}
2118

@@ -28,9 +25,7 @@
2825
\vskip 2em
2926
Oberstufenjahrgang 2023/2024
3027
\vskip 2em
31-
Seminar: Die Welt der Mathematik \\
32-
- \\
33-
die Mathematik in der Welt
28+
Seminar: \\ Die Welt der Mathematik - die Mathematik in der Welt
3429
\vskip 1em
3530
Leitfach: Mathematik
3631

@@ -47,7 +42,7 @@
4742
\vskip 4.5em
4843

4944
\end{center}
50-
Verfasser: Julian Thanner
45+
Verfasser: \hspace{1cm} Julian Thanner
5146
\vskip 0.5em
5247
Seminarleiterin: StDin Birgit Gregor
5348
\vskip 2em
@@ -67,7 +62,10 @@ \section{Einleitung}
6762
\subsection{Die symmetrischen Verschlüsselung}
6863

6964
Bei symmetrischen Verschlüsselungsverfahren gibt es, anders als bei asymmetrischen Verfahren (auch: Public Key Verfahren), nur einen Schlüssel für die Ent- und Verschlüsselung. Diese bieten viele Vorteile, wie zum Beispiel eine kurze Schlüssellänge oder auch eine deutlich kleinere Verschlüsselungszeit. Allerdings kommt die symmetrische Verschlüsselung auch mit einigen Nachteilen, unteranderem "setzt [sie] voraus, dass Sender und Empfänger einer Nachricht, und nur diese beiden ein gemeinsames
70-
Geheimnis den sogenannten Schlüssel, besitzen." \cite[S. 7]{schwenk2010sicherheit}. Das stellt aber in der Praxis als ein Problem dar, weil es nicht immer möglich ist sich vor der ersten verschlüsselten Kommunikation persönlich zu treffen, dies aber für eine symmetrische Verschlüsselung nötig ist. Dafür wird eine andere Verschlüsselungsmethode benötigt, ein sogenanntes Public Key Verfahren. Hier liegt der Vorteil darin, das es einen öffentlichen und einen privaten Schlüssel gibt. Die Nachricht kann dann mit dem öffentlichen Schlüssel einer Person verschlüsselt und dann nur mit dem privaten Schlüssel wieder entschlüsselt werden. Ein Algorithmus dafür ist der RSAßAlgorithmus, den ich im folgenden erklären möchte.
65+
Geheimnis den sogenannten Schlüssel, besitzen." \cite[S. 7]{schwenk2010sicherheit}. Das stellt aber in der Praxis als ein Problem dar, weil es nicht immer möglich ist sich vor der ersten verschlüsselten Kommunikation persönlich zu treffen, dies aber für eine symmetrische Verschlüsselung nötig ist. Dafür wird eine andere Verschlüsselungsmethode benötigt, ein sogenanntes Public Key Verfahren. Hier liegt der Vorteil darin, das es einen öffentlichen und einen privaten Schlüssel gibt. Die Nachricht kann dann mit dem öffentlichen Schlüssel einer Person verschlüsselt und dann nur mit dem privaten Schlüssel wieder entschlüsselt werden. Ein Algorithmus dafür ist der RSA-Algorithmus, den ich im folgenden erklären möchte.
66+
67+
\pagebreak
68+
7169

7270
\section{Begriffserklärungen}
7371
\subsection{Modulo Operation} %Notwendigkeit?
@@ -76,8 +74,13 @@ \section{Begriffserklärungen}
7674
$$ {16 \bmod 3 = 1} $$
7775

7876
\subsection{Multiplikatives Inverses}
79-
"Das multiplikativ inverse Element $a^{-1}$ eines Elements a in der Gruppe $\mathbb{Z}_n ^*$ ist das eindeutig bestimmte Element, für das gilt $${a^{-1} * a = a * a^{-1} = 1}$$ wobei 1 das neutrale Element der Gruppe ist." \cite{hwlang}
77+
"Das multiplikativ inverse Element $a^{-1}$ eines Elements a in der Gruppe $\mathbb{Z}_n ^*$ ist das eindeutig bestimmte Element, für das gilt $${a^{-1} * a = a * a^{-1} = 1}$$ wobei 1 das neutrale Element der Gruppe ist." \cite{hwlang} \\
78+
79+
So ist zum Beispiel das multiplikative Inverse $a$ von 3, $a=2$, weil: \\
80+
${3 * 2 = 6 = 1 \bmod 5}$ \\
8081

82+
Für das Beispiel ${5 * a = 1 \bmod 5}$ wäre $a=5$, weil \\
83+
${5 * 5 = 25 = 1 \bmod 5}$ \\
8184

8285
\subsection{Einwegverschlüsselungsverfahren}
8386
Mithilfe eines Einwegverschlüsselungsverfahrens (auch Hashfunktion) kann anhand eines beliebig großem Quelltext eine Prüfsumme erzeugt werden, welche in der Regel eine fest definierte Länge hat. Man könnte eine Hashfunktion auch mit einem Fingerabdruck vergleichen. Ein gutes Beispiel für eine Einwegfunktion, wäre die Modulo-Operation, da sich hier aus dem Ergebnis nicht feststellen lässt, aus welchen Zahlen das Ergebnis berechnet wurde. \\
@@ -97,12 +100,12 @@ \section{Begriffserklärungen}
97100
Nochdazu ist diese Funktion Multiplikativ, also gilt: ${\phi(p * q) = \phi(p) * \phi(q)}$.
98101
Daraus folgt, das für Primzahlen gelten muss:
99102
$${\phi(p * q) = (p - 1) * (q - 1)}$$
103+
104+
Somit ist es sehr einfach $\phi(n)$ zu berechnen, wenn $p$ und $q$ Primzahlen sind.
100105
\subsection{Satz von Euler}
101106
Nur wenn zu wenig text
102107

103108
\subsection{Der euklidische Algorithmus}
104-
\subsection{Zwei Arten von Verschlüsselung}
105-
UNNÖTIG??
106109

107110
\section{Der RSA - Algorithmus}
108111

@@ -159,8 +162,10 @@ \section{Der RSA - Algorithmus}
159162
\end{equation}
160163

161164

162-
\subsection{Ganze Texte Verschlüsseln}
163-
\label{cha:hole_text}
165+
\subsection{Verschlüsselung ganzer Texte}
166+
\label{cha:hole_text}
167+
168+
Die Schwierigkeit, ganze Texte zu verschlüsseln, liegt darin, dass die Nachricht $m$ nicht großer als $n - 1$ sein darf. Eine Möglichkeit dieses Problem zu umgehen ist es die Nachricht in verschiedene kleine Blöcke zu unterteilen und dann jeden Block einzeln zuverschlüsseln. Das hat aber immer noch den Nachteil, dass der RSA Algorithmus sehr langsam ist, und deshalb für eine große Nachricht $m$, auch wenn sie in kleine Blöcke unterteilt ist, sehr lange brauchen würde. Eine sinnvollere, und auch weit aus verbreitete Lösung ist es mit dem RSA Algorithmus einen symmetrischen Schlüssel zu verschlüsseln, mehr dazu in Kapitel \ref{cha:hybrid}.
164169

165170

166171
\section{Mögliche Angriffspunkte}
@@ -171,45 +176,66 @@ \section{Mögliche Angriffspunkte}
171176
Aktuell wird ein Schlüssel mit mehr als 3000 Bits als sicher angesehen. \cite[29]{bsireco}
172177
%TODO erklärung bit größe
173178

174-
\subsection{Monoalphabetisch}
175-
\subsection{Die Wahl der Primzahlen}
176-
\label{chap:primnumberselection}
179+
\subsection{Monoalphabetische Verschlüsselung}
180+
Sehr einfachen Kryptosystem, wie z.B. die Caesar-Verschlüsselung, setzen oftmals auf eine Monoalphabetische Verschlüsselung, das heißt es wird jedem Buchstaben ein anderer Buchstabe zugeordnet. Wenn man immer einzelne Buchstaben mit dem RSA-Algorithmus verschlüsselt, hat man das Problem, das diese immer dem gleichen verschlüsselten Buchstaben zugeordnet werden. (Wie in Grafik \ref{fig:figure4} bei A und B zu sehen). Dadurch ist die Verschlüsselung dann nicht mehr sicher und kann sehr einfach mit Hilfe von statistischen Tabellen über die Häufigkeit eines Buchstabens geknackt werden. \footnote{Für mehr Infos dazu siehe \cite{mono}}
181+
182+
Um diese Schwachstelle zu beseitigen, kann man anstatt einzelne Buchstaben zu verschlüsseln, ganze Blöcke an Buchstaben verschlüsseln. Hierbei ist zu beachten, dass jeder Block, umgerechnet in eine Zahl, kleiner als \textit{n} sein muss. Jetzt ist es nicht mehr möglich Rückschlüsse auf die verwendeten Buchstaben zu machen, z.B. wurden bei den unteren beiden Beispielen in Abbildung \ref{fig:figure4} nur A und B getauscht und es kommt eine ganz andere Zahl raus.
183+
184+
185+
\begin{figure}
186+
\includegraphics[scale=0.45]{rsa_mono} \\
187+
\caption{Verschlüsselung verschiedener Buchstaben mithilfe des ASCII Standards und des RSA-Algorithmus}
188+
\label{fig:figure4}
189+
\end{figure}
190+
191+
\subsection{Die Wahl der Primzahlen}
192+
193+
194+
\label{chap:primnumberselection}
177195
\pagebreak
178196

179197
\section{Anwendungsbereiche in der IT - Sicherheit}
180198
\subsection{Digitale Nachrichten}
181-
Um Nachrichten mit einem Computer verarbeiten zu können, müssen diese erst in Zahlen umgewandelt werden. Dafür existiert der ~ASCII~ Standard, mit dem Computer Buchstaben in Zahlen umwandeln können. Jede Nachricht \textit{m} muss kleiner sein als \textit{n}. In der Realität spielt das allerdings keine Rolle, da normalerweise Werte für \textit{n} mit mehr als 100 Stellen verwendet werden und der normale ASCII Standard 7-Bit Werte und der erweiterte ASCII Standard 8-Bit Werte verwendet.\footnote{7-Bit hat Zahlen bis 128, 8-Bit bis 256}
199+
Um eine Nachricht, hier genannt \textit{m}, mit einem Computer verarbeiten zu können, muss diese erst in Zahlen umgewandelt werden. Dafür existiert der ~ASCII~ Standard, mit dem Computer Buchstaben in Zahlen umwandeln können. Jede Nachricht \textit{m} muss kleiner sein als \textit{n}. In der Realität spielt das allerdings keine Rolle, da normalerweise Werte für \textit{n} mit mehr als 100 Stellen verwendet werden und der normale ASCII Standard 7-Bit Werte und der erweiterte ASCII Standard 8-Bit Werte verwendet.\footnote{7-Bit hat Zahlen bis 128, 8-Bit bis 256}
182200

183201
\subsection{Digitale Signatur}
184-
Der RSA-Algorithmus kann auch genutzt werden, um Nachrichten zu signieren. Durch das signieren von z.B. Emails kann der Empfänger sicherstellen, dass die Nachricht von dem Besitzer des zugehörigen privaten Schlüssels verschickt wurde. Diese Funktion der Signatur wird auch genutzt, um die Fälschungssicherheit und Originalität von Dokumenten sicherzustellen. Um bei einer Signatur nicht die Länge der Nachricht zu verdoppeln, wird diese mithilfe einer Einwegfunktion auf eine vordefinierte Länge gebracht.\footnote{Siehe Kapitel \ref{ch:einweg} auf Seite \pageref{ch:einweg}}\\
202+
Der RSA-Algorithmus kann auch genutzt werden, um Nachrichten zu signieren. Durch das Signieren von z.B. Emails kann der Empfänger sicherstellen, dass die Nachricht von dem Besitzer des zugehörigen privaten Schlüssels verschickt wurde. Diese Funktion der Signatur wird auch genutzt, um die Fälschungssicherheit und Originalität von Dokumenten sicherzustellen. Um bei einer Signatur nicht die Länge der Nachricht zu verdoppeln, wird diese mithilfe einer Einwegfunktion auf eine vordefinierte Länge gebracht.\footnote{Siehe Kapitel \ref{ch:einweg} auf Seite \pageref{ch:einweg}}\\
185203

186-
Als erstes wandelt man die Nachricht mithilfe eines Standards zum umwandeln von Buchstaben in Zahlen um. Meistens wird hierbei der (erweiterte) ASCII Standard verwendet. %TODO footnote zur oberen footnote
187-
Mithilfe des Hash-Algorithmus wird nun ein Hash-Wert mithilfe einer der zu signierenden Nachricht berechnet. Dieser Wert wird dann mit dem privaten Schlüssel, dem Encryption-Key, der normalerweise der öffentliche Schlüssel ist, verschlüsselt. %Schöner formulieren
204+
Als erstes wandelt man die Nachricht mithilfe eines Standards in Zahlen um. Mithilfe eines Hashing-Algorithmus wird nun der Hash-Wert der zu signierenden Nachricht berechnet. Dieser Wert wird dann mit dem privaten Schlüssel, dem Encryption-Key, der normalerweise der öffentliche Schlüssel ist, verschlüsselt. %Schöner formulieren
188205
Der Decryption-Key wird dann, anders als wenn man eine geheime Nachricht versenden will, veröffentlicht.\\
189206
Die originale Nachricht wird dann zusammen mit der digitalen Signatur verschickt und der Empfänger entschlüsselt diese dann mithilfe des öffentlichen Schlüssels wie folgt:\\
190207
Als erstes generiert der Empfänger mithilfe des Hash-Algorithmus einen Hash-Wert von der Nachricht, die auf ihre Echtheit überprüft werden soll. Dann wird mit dem öffentlichen Schlüssel des Senders der, an die Nachricht angehängte, verschlüsselte Hash-Wert des Senders entschlüsselt. \\
191208
Wenn der generierte und der entschlüsselte Hash-Wert übereinstimmen, kann sicher festgestellt werden, dass die Nachricht nicht verändert wurde. \\
192-
Wenn z.B. jetzt eine dritte Person die Nachricht abändern würde, würde ein anderer Hash-Wert beim Empfänger für diese Nachricht herauskommen, da der Hash-Algorithmus schon bei der Änderung eines einzelnen Bits einen anderen Hash-Wert ausgibt. Wenn dieser dann mit dem verschlüsselten Hash-Wert verglichen wird, kann festgestellt werden, dass die Nachricht verändert wurde.
209+
Wenn z.B. jetzt eine dritte Person die Nachricht abändern würde, würde ein anderer Hash-Wert beim Empfänger für diese Nachricht herauskommen, da der Hash-Algorithmus schon bei der Änderung eines einzelnen Bits einen anderen Hash-Wert ausgibt. Wenn dieser dann mit dem verschlüsselten Hash-Wert verglichen wird, kann festgestellt werden, ob die Nachricht im Original vorliegt, denn wenn dem nicht so ist stimmen die Hash-Werte nicht mehr überein.\\
193210

194211

212+
%TODO wenn noch mehr text --> https/tls
213+
195214
\begin{figure}
196215
\includegraphics[scale=0.45]{Dokument_digitale_Signatur} \\
197-
\caption{Ein DOkument digital signieren (aus \cite{digitalsignature})}
216+
\caption{Ein Dokument digital signieren (aus \cite{digitalsignature})}
198217
\label{fig:figure3}
199218
\end{figure}
200219

220+
Das ganze funktioniert dann wie folgt:
201221

202222
Als erstes berechnet man den Hash-Wert mithilfe einer Einwegfunktion:
203223
$$ {h = e(m)} $$
204224

205225
Dann berechnet man mit dem RSA-Algorithmus die Signatur \textit{s}
206-
$$ {s = h^d \bmod n} $$
226+
$$ {s = h^e \bmod n} $$
207227

208-
Zum überprüfen der Signatur wird erneut h bestimmt und mit dem empfangenen \textit{h} verglichen
209-
$$ {h = s^e \bmod n} $$
228+
Diese Signatur wird dann an die Nachricht angehängt und dann wird diese veröffentlicht.
229+
Der Empfänger kann dann mit den folgenden Schritten die Integrität der Nachricht sicherstellen:
210230

211-
Beispiel: Die digitale Signatur von \textit{m} = 8:\\
231+
Als erster wird erneut h von der empfangenen Nachricht $m$ bestimmt:
232+
$${h_{empfangen} = e(m) }$$
233+
Dann muss die Signatur wieder entschlüsselt werden:
234+
$$ {h_{entschluesselt} = s^d \bmod n} $$
235+
Anschließend werden diese beiden Hashwerte verglichen und wenn diese gleich sind, kann man davon ausgehen, dass die Nachricht nicht verändert wurde. \\
212236

237+
238+
Beispiel: Die digitale Signatur von \textit{m} = 8:\\
213239
Angenommen:
214240
$${ \textit{m} = 8 }$$
215241
$${ \textit{n} = 187 }$$
@@ -221,10 +247,31 @@ \section{Anwendungsbereiche in der IT - Sicherheit}
221247
$$ {16 = e(8)} $$
222248

223249
...und dann mit der RSA-Funktion verschlüsselt: %richtige Formulierung?
224-
$$ {s = 16^d \bmod n} $$
250+
$$ {152 = 16^19 \bmod 187} $$
251+
252+
Um jetzt sicherzustellen, dass die Nachricht nicht verändert wurde, wird erneut der Hash Wert berechnet:
253+
$$ {16 = e(8)} $$
254+
und dann die Signatur $s$ entschlüsselt:
255+
$$ {16 = 152^59 \bmod 187} $$
256+
257+
Und jetzt werden diese Beiden wieder verglichen und es wird ersichtlich, das $m$ nicht verändert wurde.
258+
225259

226260

227261
\subsection{Hybride Verschlüsselung}
262+
\label{cha:hybrid}
263+
\begin{figure}
264+
265+
\includegraphics[scale=0.45]{rsa_time} \\
266+
\caption{Decryption time vs. File size for DES, 3DES, AES, Blowfish and RSA (aus \cite{rsatime})}
267+
\label{fig:figure5}
268+
\end{figure}
269+
270+
Wenn man große Texte bzw. Dateien verschlüsseln möchte, brauchen verschieden Algorithmen unterschiedlich lange. Bei der Verschlüsselung mit dem RSA-Algorithmus entsteht das große Problem, dass dieser für immer größer werdende Texte immer länger braucht, wie in Abbildung \ref{fig:figure5} zu sehen ist.
271+
272+
Hierfür kann dann das Konzept der hybriden Verschlüsselung genutzt werden. Dabei kombiniert man eine asymmetrisches und eines symmetrisches Verschlüsselungsverfahren. Diese bringt den Vorteil mit sich, dass die Vorteile beider Verfahren kombiniert werden können. Das ganze hat aber auch einige Nachteile z.B. muss man dafür beide Verfahren implementieren und die Sicherheit der hybriden Verschlüsselung ist jetzt abhängig von zwei verschiedenen Verschlüsselungsalgorithmen. \\
273+
Um nun eine Nachricht verschlüsselt versenden zu können, ohne lange auf die Verschlüsselung warten zu müssen, wird als erstes ein symmetrischer Schlüssel zufällig generiert werden. Mit diesem wird dann die Nachricht verschlüsselt. Dann wird der asymmetrisch verschlüsselte symmetrische Schlüssel zusammen mit der verschlüsselten Nachricht versendet.
274+
228275

229276
\pagebreak
230277
\section{Anhang}

media/RSA_mono.png

68.8 KB
Loading

media/rsa_time.png

58.6 KB
Loading

ref.bib

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,13 @@ @ONLINE{hwlang
8080
url = {https://hwlang.de/krypto/grund/inverses-element.htm}
8181
}
8282

83+
@book{mono,
84+
author = {Virtual Labs},
85+
title = {Mono alphabetic substitution cipher},
86+
urldate = {2023-10-5},
87+
url = {https://cse29-iiith.vlabs.ac.in/exp/substitution-cipher/docs/monoalphacipher.pdf}
88+
}
89+
8390
@MISC{wikipedia,
8491
urldate = {2023-09-26},
8592
url = {https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem}
@@ -89,3 +96,8 @@ @MISC{digitalsignature
8996
urldate = {2023-09-26},
9097
url = {https://www.docusign.de/static-c-assets/Dokument_digitale_Signatur.png}
9198
}
99+
100+
@MISC{rsatime,
101+
urldate = {2023-10-13},
102+
url = {https://www.semanticscholar.org/paper/A-Comparison-of-Cryptographic-Algorithms%3A-DES%2C-AES%2C-Wahid-Ali/6133bb355672b8a6c4f1c410bc41abc6a94162a7/figure/7}
103+
}

0 commit comments

Comments
 (0)