21,99 €
Kryptografie ist ein wichtiges Mittel um IT-Systeme zu schützen. Sie ermöglicht nicht nur die Verschlüsselung von Nachrichten, sondern auch digitale Unterschriften, die Authentifizierung und die Anonymisierung von Kommunikationspartnern. Das hier vorliegende Buch ist eine Einführung in die Kryptografie für Studierende ? von der symmetrischen über die asymmetrische Verschlüsselung bis hin zu Hash-Funktionen. Mit Übungsaufgaben und Lösungen können Sie Ihr frisch erworbenes Wissen überprüfen und festigen. So ist dieses Buch umfassend, keinesfalls oberflächlich, aber ohne Vorwissen verständlich.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 365
Veröffentlichungsjahr: 2023
Kryptografie für Dummies
Angriff: Der Versuch, kryptografische Sicherheitsmechanismen zu überwinden, beispielsweise ein Brute-Force-Angriff (Teil VI).
Asymmetrische Verschlüsselung: Sender und Empfänger verwenden unterschiedliche Schlüssel zum Ver- und Entschlüsseln von Nachrichten. Wird bei der Public-Key-Kryptografie angewandt (Kapitel 3).
Authentifizierung: Der Nachweis, dass jemand derjenige ist, für den er sich ausgibt. Wichtig, um nicht auf einer gefälschten Webseite zu landen (Kapitel 21).
Digitale Signatur: Die digitale Entsprechung zu einer handschriftlichen Unterschrift, daher auch elektronische Unterschrift genannt (Kapitel 20).
Kryptografische Hashfunktion: Wird gebraucht, um Passwörter sicher zu speichern und um digitale Signaturen zu erstellen. Reduziert ein ganzes Dokument auf wenige Bytes als eine Art »Fingerabdruck« des Dokuments (Kapitel 18).
Perfekte Sicherheit: Ein Verschlüsselungsverfahren heißt perfekt sicher, wenn sich aus der verschlüsselten Nachricht ohne Kenntnis des Schlüssels keine Information über die ursprüngliche Nachricht gewinnen lässt (Kapitel 2).
Symmetrische Verschlüsselung: Sender und Empfänger verwenden denselben Schlüssel zum Ver- und Entschlüsseln von Nachrichten. Wird beispielsweise beim AES-Verfahren angewandt (Kapitel 9).
Zertifikat: Ein öffentlicher Schlüssel, der von einer Zertifizierungsstelle signiert ist. Damit wird der Zusammenhang zwischen einem Kommunikationspartner und seinem öffentlichen Schlüssel sichergestellt. Dient zur Authentifizierung (Kapitel 27).
Zufall: Der Zufall wird in der Kryptografie gebraucht, weil er nicht vorhersehbar ist – auch nicht für einen Angreifer (Teil VII).
Erweiterter euklidischer Algorithmus: Berechnet den größten gemeinsamen Teiler von zwei ganzen Zahlen. Wird auch gebraucht, um multiplikativ inverse Elemente zu berechnen (Kapitel 13).
Chinesischer-Restsatz-Algorithmus: Löst Gleichungen mit mehreren Resten modulo mehrerer Zahlen auf; ein Werkzeug mit vielfältigen Anwendungen in der Kryptografie (Kapitel 15).
Primzahltest: Stellt fest, ob eine ganze Zahl aus mehreren Primfaktoren zusammengesetzt ist – und das, ohne die Primfaktoren zu kennen. Nicht zusammengesetzte Zahlen sind Primzahlen (Kapitel 14).
Schnelle Exponentiation: Durch Kombinationen von Quadrieren und Multiplizieren lässt sich eine Zahl sehr effizient potenzieren. In kryptografischen Verfahren viel gebraucht (Kapitel 14).
Diskreter Logarithmus: Den Logarithmus modulo zu berechnen, ist praktisch undurchführbar. Grundlage für die Sicherheit vieler kryptografischer Verfahren (Kapitel 8).
Gruppe: Eine Menge, deren Elemente sich nach bestimmten Gesetzmäßigkeiten miteinander verknüpfen lassen. Heraus kommt eine Struktur mit reichhaltigen Eigenschaften (Kapitel 6).
Elliptische Kurve: Eine Kurve, deren Punkte sich so miteinander verknüpfen lassen, dass sich die Struktur einer Gruppe ergibt (Kapitel 11).
Faktorisierung: Sehr große Zahlen in Primfaktoren zu zerlegen, ist praktisch undurchführbar. Grundlage für die Sicherheit des RSA-Verfahrens (Kapitel 23).
Körper: Eine mathematische Struktur mit den Verknüpfungen Addition und Multiplikation. Endliche Körper spielen in der Kryptografie eine bedeutende Rolle (Kapitel 10).
Kongruenz modulo: Das, was alle Tage eines Monats, die auf den gleichen Wochentag fallen, gemeinsam haben – sie ergeben bei ganzzahliger Division durch den gleichen Rest (Kapitel 5).
Primzahl: Die Zahlen 2, 3, 5, 7, 11, 13, 17, 19, 23, …, die nur durch 1 und sich selbst teilbar sind, sind Primzahlen (Kapitel 5).
Kryptografie für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
2. Auflage 2023
© 2023 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany
All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Coverfoto: nicescene – stock.adobe.comFachkorrektur: Prof. Dr. Reinhard VöllerKorrektur: Regine Freudenstein
Print ISBN: 978-3-527-72093-4ePub ISBN: 978-3-527-84284-1
Hans Werner Lang war über 20 Jahre Professor für Informatik an der Hochschule Flensburg. Seine Fachgebiete sind Algorithmen, Theoretische Informatik und Kryptografie.
Cover
Titelblatt
Impressum
Über den Autor
Einleitung
Über dieses Buch
Konventionen in diesem Buch
Was Sie nicht lesen müssen
Törichte Annahmen über den Leser
Wie dieses Buch aufgebaut ist
Symbole, die in diesem Buch verwendet werden
Wie es weitergeht
Teil I: Verschlüsseln
Kapitel 1: Sicherheit in Zeiten des Internet
Authentizität
Vertraulichkeit und Integrität
Kapitel 2: Klassische Verschlüsselung
Geheimsprache
Verschlüsseln wie Caesar
Kryptoanalyse
Substitutions-Verschlüsselung
Vigenère-Verschlüsselung
Vernam-Verschlüsselung
Verschlüsseln von Bits
Kapitel 3: Public-Key-Verschlüsselung
RSA-Verschlüsselung
Schlüssel erzeugen
Ver- und Entschlüsseln
Sicherheit
Teil II: Kryptische Mathematik
Kapitel 4: Menge, Relation, Abbildung
Kapitel 5: Teilbarkeit und Modulo-Rechnung
Teilbarkeit
Modulo-Rechnung
Kapitel 6: Gruppe
Gruppenaxiome
Gruppentheorie
Teil III: Kryptografische Verfahren
Kapitel 7: RSA: Korrektheit und Schlüsselerzeugung
Sätze von Euler und Fermat
Korrektheit des RSA-Verfahrens
Öffentlichen und privaten Schlüssel erzeugen
Sicherheit
Kapitel 8: Diffie-Hellman, ElGamal und Shamir
Diffie-Hellman-Schlüsselvereinbarung
ElGamal-Verschlüsselung
Shamirs No-Key-Verschlüsselung
Kapitel 9: AES-Verschlüsselungsverfahren
Verschlüsseln
Entschlüsseln
Rundenschlüssel erzeugen
Entwurfskriterien
Betriebsarten bei Block-Verschlüsselung
Kapitel 10: AES-Mathematik: Rechnen in einem Körper
Ring und Körper
Erweiterungskörper F
28
Kapitel 11: Diffie-Hellman-Schlüsselvereinbarung mit elliptischer Kurve
Elliptische Kurven
Punkte verknüpfen
Gruppenstruktur von
E
Berechnung des Schnittpunktes
Elliptische Kurven über endlichen Körpern
Teil IV: Berechnungsverfahren
Kapitel 12: Python-Einführung
Anweisungen
Funktionen
Klassen und Objekte
Python-Module
Kapitel 13: Erweiterter euklidischer Algorithmus
Größten gemeinsamen Teiler berechnen
Erweiterter euklidischer Algorithmus
Multiplikativ inverses Element modulo
n
berechnen
Kapitel 14: Schnelle Exponentiation und Primzahltest
Schnelle Exponentiation
Primzahltest
Kapitel 15: Chinesischer Restsatz
Problem
Berechnung
Implementierung
RSA: Chinesisch entschlüsseln
Kapitel 16: Elliptische Kurven implementieren
Klasse EcPoint
Klasse ModInt
Standard-Punkt auf Standard-Kurve
Kapitel 17: Kryptografische Verfahren implementieren
RSA-Schlüssel erzeugen
Diffie-Hellman-Schlüssel vereinbaren
Teil V: Authentifizieren
Kapitel 18: Kryptografische Hashfunktion
Hashfunktion
Kryptografische Sicherheit
Kryptografische Hashfunktionen in der Praxis
Der SHA-1-Hashalgorithmus
Der SHA-256-Hashalgorithmus
Kapitel 19: Authentizität und Integrität von Nachrichten
Authentizität und Integrität bei symmetrischer Verschlüsselung
Authentisierte Verschlüsselung im GCM-Modus
Authentisierung mittels Hashfunktion
Kapitel 20: Digitale Signatur
Eigenschaften einer Unterschrift
RSA-Signatur
Der Digitale-Signatur-Algorithmus – DSA
Kapitel 21: Teilnehmer-Authentifizierung
Isomorphe Graphen
Bit-Commitment
Teilnehmer-Authentifizierung
Fiat-Shamir-Protokoll
Teil VI: Sicherheit
Kapitel 22: Angriffe auf das RSA-Verfahren
Faktorisieren mithilfe von
ϕ
(
n
)
Low-Exponent-Angriff auf das RSA-Verfahren
Klartext-Aufbereitung
Replay-Angriff
Seitenkanal-Angriff
Kapitel 23: Faktorisierungsangriff
Idee
Quadratisches Sieb
Die
p
–1-Methode
Kapitel 24: Angriffe auf Hashfunktionen
Passwort-Dateien angreifen
Teil VII: Zufall
Kapitel 25: Zufallsbits und Pseudozufallsbits
Zufallszahlen erzeugen
Zufallsbits mit rückgekoppeltem Schieberegister
Kapitel 26: Kryptografisch sichere Zufallsbits
Startwert wählen
Pseudozufallsbits per Hashfunktion
Blum-Blum-Shub-Zufallsbits
Blum-Micali Zufallsbits
Teil VIII: Anwendungen
Kapitel 27: Zertifizierte Sicherheit
TLS – Daten sicher transportieren
Zertifikat – Echtheit garantiert
E-Mails verschlüsseln und signieren
Teil IX: Top-Ten-Teil
Kapitel 28: Die glorreichen Sieben
Die 7 verrücktesten Dinge
Die 7 bedeutendsten Anwendungszwecke
Die 7 elementarsten Berechnungsverfahren
Die 7 wichtigsten Einwegfunktionen
Die 7 häufigsten Angriffe
Anhang
A: Zum Weiterlesen
B: Lösungen zu den Übungsaufgaben
Literaturverzeichnis
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
Cover
Titelblatt
Impressum
Über den Autor
Inhaltsverzeichnis
Einführung
Fangen Sie an zu lesen
Anhang A: Die Jahre zählen: Der muslimische Kalender
Anhang B: Glossar
Anhang C: Weitere Quellen
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
1
2
5
6
7
21
22
23
24
25
26
27
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
99
100
101
102
103
104
105
106
107
108
109
111
112
113
114
115
116
117
118
119
120
121
123
124
125
126
127
128
129
130
131
133
134
135
136
137
138
139
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
171
172
173
174
175
176
177
179
180
181
182
183
184
185
187
188
189
190
191
193
194
195
196
197
198
199
200
201
202
203
204
205
207
208
209
210
211
212
213
215
216
217
218
219
220
221
222
223
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
251
252
253
254
255
256
257
258
259
261
262
263
264
265
266
267
268
269
270
271
272
273
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
307
309
310
311
312
313
314
315
316
317
318
319
320
321
323
324
325
326
329
330
331
332
Kryptografie ist die Lehre vom Verschlüsseln geheimer Botschaften – ursprünglich. Allein das ist hochspannend, aber heute ist Kryptografie weiter gefasst: In Zeiten von Internet und mobiler Kommunikation werden kryptografische Verfahren benutzt, um die gesamte Kommunikation sicher zu machen – sicher gegen Abhören, gegen Verfälschen, gegen Täuschen.
Dieses Buch bietet Ihnen eine Auswahl an grundlegenden Ideen und Verfahren der Kryptografie, verbunden mit dem mathematischen Hintergrund. Keine Angst – die benötigte Mathematik ist einfacher als gedacht. Und es ist allemal besser, wenn Sie selbst ein Gefühl für die Sicherheit der Verfahren erlangen, als sich auf Hörensagen zu verlassen.
Und vielleicht wollen Sie auch einige der verwendeten Algorithmen probehalber einmal in der Programmiersprache Python programmieren? Python ist eine einfach zu verstehende Programmiersprache, und sie ermöglicht das Rechnen mit sehr großen Zahlen, wie sie in der Kryptografie verwendet werden.
Was Sie in diesem Buch nicht finden werden, ist Anekdotisches aus dem Reich der Geheimsprachen. Auch keine Geschichten über das Knacken von Codes, über die Machenschaften von Spionen oder über die Angriffe von Hackern. Leider! Aber darüber gibt es spannende andere Bücher.
»Wie verschlüssele ich meine E-Mails?« Dieses Buch enthält keine Anleitung darüber, wie Sie für Ihr E-Mail-Programm die entsprechende Verschlüsselungssoftware installieren. Aber es liefert Ihnen das Hintergrundwissen – warum Sie einen öffentlichen und einen privaten Schlüssel brauchen, was Signieren bedeutet und wie es funktioniert.
Im Internet finden Sie sehr gut geschriebene Anleitungen für die E-Mail-Verschlüsselung – zugeschnitten auf Ihr E-Mail-Programm, stets in der aktuellen Version, mit Abbildungen der erscheinenden Bildschirmformulare, mit Tipps, was Sie anklicken müssen.
Sie werden in diesem Buch auch keine detaillierte Implementierung von Sicherheitsstandards finden, wie etwa TLS oder WPA-2. Dies wäre zu technisch – wenn Sie sich aber damit beschäftigen, werden Sie dort die grundlegenden Verfahren wiederfinden, die Sie in diesem Buch kennengelernt haben.
Darauf soll es Ihnen ankommen – sich für die Ideen der modernen Kryptografie zu begeistern, die zuweilen erscheinen wie schwarze Magie:
mit einem
öffentlich zugänglichen
Schlüssel einen Text verschlüsseln, aber keiner kann den Text wieder entschlüsseln, nur der berechtigte Empfänger,
einen geheimen Schlüssel über eine
öffentliche Leitung
vereinbaren,
jemanden davon überzeugen, ein Geheimnis zu kennen,
ohne das Geheimnis preiszugeben
.
Sie werden in diesem Buch viele neue Begriffe lernen, die wissenschaftlich genau definiert sind. Aber zu jeder neuen Definition finden Sie entsprechende Beispiele, sodass es Ihnen leichtfällt, die neuen Begriffe zu »verinnerlichen«.
Und so manche Berechnung verstehen Sie um vieles leichter, wenn Sie einmal selbst mit einem Zahlenbeispiel nachrechnen. Hierbei helfen Ihnen die an vielen Stellen zu findenden »Beispiele mit kleinen Zahlen«.
Kryptografie ist international – alle Normen und Spezifikationen sind in englischer Sprache abgefasst. Daher finden Sie zu den verwendeten deutschen Begriffen auch immer die entsprechende englische Bezeichnung.
Jedes Kapitel schließt mit einem kleinen Abschnitt »zum Üben« ab. Machen Sie davon Gebrauch! Mit ein bisschen Übung gelingt alles viel besser. Und Sie können überprüfen, ob Sie alles verstanden haben, und dann guten Gewissens zum nächsten Kapitel übergehen.
Im Teil II erhalten Sie einen Crash-Kurs in Mathematik – soweit diese für das Verstehen der kryptografischen Verfahren erforderlich ist. Wenn Sie Mathematik studiert haben, lassen Sie diesen Teil getrost aus oder überfliegen ihn nur kurz. Aber vielleicht wollen Sie ja auch Ihre mathematischen Kenntnisse noch einmal kurz auffrischen …
Manchmal ist spezielle Mathematik, etwa über elliptische Kurven, auch direkt in dem Kapitel angegeben, wo sie gebraucht wird.
In Teil IV finden Sie kleine Programmstücke in der Programmiersprache Python, in denen die (relativ wenigen) grundlegenden Algorithmen der Kryptografie programmiert sind, wie zum Beispiel der Primzahltest. Die Darstellung dieser Algorithmen als Programm erleichtert Ihnen das genaue Nachvollziehen und ermöglicht Ihnen sogar das Ausprobieren. Python ist eine sehr leicht zu verstehende Programmiersprache – aber wenn Sie mit Programmieren gar nichts am Hut haben, dann lassen Sie diesen Teil weg.
Sie wollen die Ideen der modernen Kryptografie verstehen. Aber Sie sind kein Mathe-Genie – dennoch aber sind Sie offen dafür, hinzuzulernen, wenn man es Ihnen vernünftig erklärt. Sie haben keine grundsätzliche Abneigung gegen Zahlen. Und auch die eine oder andere Formel sind Sie bereit zu schlucken, denn Sie lesen ein Fachbuch.
Vielleicht haben Sie auch schon ein wenig Programmiererfahrung, dann sind die kleinen Programmstücke für Sie keine schwere Kost. Wenn Sie aber noch nie programmiert haben, dann sind es vielleicht Appetithäppchen, um damit anzufangen.
Auf jeden Fall erhalten Sie einen ersten Einblick in die Probleme und Lösungen der Kryptografie, wenn Sie
im Studium an Lehrveranstaltungen aus diesem Bereich teilnehmen,
im Beruf mit IT-Sicherheit zu tun haben
oder sich ansonsten mit Hintergrundwissen versorgen möchten.
Wie jedes »…für Dummies«-Buch ist auch dieses in mehrere Teile aufgeteilt. Bei diesem Buch sind es sogar derer neun.
Am Anfang staunen Sie darüber, dass nahezu das geballte Wissen dieses ganzen Buches dahintersteckt, wenn Sie im Internet eine gesicherte Webseite aufrufen, etwa um eine Banküberweisung zu machen. Es wird sichergestellt, dass Sie die echte Bank-Webseite aufrufen und dass Dritte die übermittelten Daten nicht einsehen und nicht unbemerkt verändern können. Dazu werden die Daten verschlüsselt.
Zur Einstimmung geht es dann zunächst um die klassische Verschlüsselung: Die Buchstaben eines Textes werden in bestimmter Weise durch andere Buchstaben ersetzt – aus HALLO wird XPBGQ. Nebenbei erlernen Sie dabei die Modulo-Rechnung (die Sie eigentlich schon können, aber sich vielleicht nicht darüber bewusst sind).
Anschließend lernen Sie ein zentrales Konzept der modernen Kryptografie kennen: die Public-Key-Verschlüsselung, also das Verschlüsseln mit einem Schlüssel, der veröffentlicht ist. Wie kann das gehen? Mit mathematischen Verfahren, die sehr einfach sind, aber wirksam, weil sie mit sehr großen Zahlen arbeiten.
Hier wundern Sie sich vielleicht darüber, dass die Mathematik der Kryptografie gar nicht so schwer ist. Überfliegen Sie diesen Teil und vergewissern Sie sich, dass Sie Modulo-Rechnung und ein wenig Gruppentheorie beherrschen. Und wenn nicht, dann lesen Sie diesen Teil ein bisschen eingehender.
In diesem Teil lernen Sie die wichtigsten kryptografischen Verfahren kennen. Sie vereinbaren mit einem Kommunikationspartner einen geheimen Schlüssel über eine öffentliche Leitung. Dies ist mit ein wenig Mathematik, die Sie dann schon kennen, möglich! Darauf aufbauend erhalten Sie mit zwei weiteren kleinen Berechnungen ein Public-Key-Verschlüsselungsverfahren.
Im Anschluss machen Sie das Gleiche noch einmal, und zwar auf Basis elliptischer Kurven (klingt kompliziert, ist aber einfacher als gedacht). Was Sie an zugehöriger Mathematik benötigen, bekommen Sie mitgeliefert.
Und Sie lernen ein modernes symmetrisches Verschlüsselungsverfahren kennen, das AES-Verfahren, auch wieder mit der hier benötigten Mathematik.
Im vierten Teil geht es um die drei wichtigsten Berechnungen in kryptografischen Verfahren: die schnelle modulare Exponentiation, den Primzahltest und den erweiterten euklidischen Algorithmus. Wenn Sie dann auf den Geschmack gekommen sind, nehmen Sie sich noch den Chinesischen-Restsatz-Algorithmus vor.
Sie programmieren diese Algorithmen in Form von kleinen Programmstücken in der Programmiersprache Python. Aber auch wenn Sie nicht programmieren mögen, lernen Sie die entsprechenden Algorithmen hier kennen.
Nun kommen Sie zu einem früher häufig vernachlässigten Thema: der sicheren Authentifikation. Wie können Sie sicher sein, dass ein Kommunikationspartner wirklich derjenige ist, für den er sich ausgibt?
Auch Sie selbst müssen sich oft durch Eingabe eines geheim gehaltenen Passwortes gegenüber Computern, Webportalen oder Geldautomaten authentifizieren. Aber Sie müssen Ihr Geheimnis jedes Mal preisgeben, wenn Sie das Passwort eingeben. Erstaunlich, dass es Authentifizierungsverfahren gibt, bei denen Sie beweisen, ein Geheimnis zu kennen, ohne es zu verraten!
Jetzt geht es zur Sache: Sie greifen das RSA-Verschlüsselungsverfahren an! Dabei entwickeln Sie ein grundsätzliches Gefühl dafür, wie schwer oder leicht es ist, einen Code zu knacken. Wichtig ist auch zu wissen, dass ein Verfahren möglicherweise zwar im Prinzip sicher ist, aber im Einzelfall auch unsicher, wenn ungünstige Parameter gewählt werden.
Der siebte Teil beschäftigt sich mit dem Zufall und der Notwendigkeit, ihn in der Kryptografie richtig zu nutzen. Viele Verfahren nutzen Zufallsbits, um nicht vorhersehbar und nicht nachvollziehbar zu sein. Aber hierfür ist es wichtig, dass auch die erzeugten Zufallsbits ebenfalls wirklich nicht vorhersehbar und nicht nachvollziehbar sind.
Hier gibt es ein freudiges Wiedererkennen der kryptografischen Verfahren, wenn Sie die Sicherheits-Protokolle des Internet untersuchen. Erfahren Sie, wie https funktioniert und was ein Zertifikat ist.
Im letzten Teil erfahren Sie endlich, welche von allen den Dingen, die Sie gelernt haben, die wichtigsten sind.
Hier finden Sie die Lösungen zu den kleinen Übungsaufgaben, sodass Sie nachschauen können, ob Sie das Gleiche herausbekommen haben. Und Sie finden ein paar Buchvorschläge zum Weiterlesen, wenn Sie für die Kryptografie Feuer gefangen haben …
Neben diesem Symbol finden Sie eine wichtige Tatsache, wie etwa eine Definition oder einen Lehrsatz.
So wichtig eine genaue Definition auch ist – verstehen lässt sie sich viel leichter anhand eines Beispiels.
Vorsicht: Bevor Sie in eine Falle tappen, lesen Sie lieber diesen kleinen Abschnitt.
Solange Sie selber noch keine umfassenden Erfahrungen haben, empfinden Sie den einen oder anderen Tipp bestimmt als hilfreich.
Neben diesem Symbol finden Sie in Kästen interessante Zusatzinformationen und Beispiele, die nicht zwingend notwendig sind, um dem Text zu folgen.
Hier finden Sie Übungsaufgaben, die Ihnen helfen, Ihr Wissen zu testen und zu festigen. Die Lösungen zu den Aufgaben finden Sie im Anhang B.
Lesen Sie einfach los! Aber lesen Sie nicht mehr weiter, wenn Sie merken, dass Sie nicht mehr folgen können (falls dies mal vorkommt). Dann gehen Sie noch einmal ein Stück zurück.
Es lohnt sich auf jeden Fall, die eingestreuten Aufgaben zu lösen und sich dadurch kleine Erfolgserlebnisse zu gönnen.
Tippen Sie auch die Programmstücke ab und lassen Sie diese mit Ihren eigenen Zahlenbeispielen laufen! Abtippen ist zum Lernen besser als Copy and Paste – es ist wie zu Fuß zu gehen, man bekommt mehr mit als beim Autofahren.
In Büchern über Kryptografie tummeln sich immer wieder dieselben Leute: »Alice« und »Bob«, »Oscar« und »Eve«. Alice und Bob schicken sich geheime Botschaften, und Oscar oder Eve belauschen sie dabei.
Man verspricht sich größere Anschaulichkeit, wenn nicht eine Nachricht an schickt, sondern Alice an Bob. Wie aber sollen wir uns diese Personen vorstellen? Trägt Alice eine Brille? Ist Bob ein älterer Herr? Sind alle weiße Amerikaner?
Ich habe mich dazu entschlossen, in diesem Buch bewusst auf diese Personifizierung zu verzichten. Ich bleibe bei und und, wenn noch ein Dritter hinzukommt, bei . Ein Dritter oder eine Dritte? Nun, wir wollen eben gerade nicht personifizieren. Auch wenn von »Sender« und »Empfänger« die Rede ist, sind die Rollen des Senders bzw. des Empfängers gemeint und keine männlichen Personen. Sender und Empfänger können auch technische Geräte sein, die miteinander kommunizieren. Und tatsächlich sind sie es normalerweise auch, nämlich Computer.
Moderne kryptografische Verfahren basieren auf mathematischen Berechnungen mit sehr großen Zahlen, und diese Berechnungen überlassen wir gerne Computern. Weder Alice noch Bob können 1000-stellige Zahlen potenzieren oder sich 500-stellige Primzahlen ausdenken …
Also liebe Leserin und lieber Leser, und jetzt spreche ich Sie persönlich als Menschen an und nicht in Ihrer Rolle als Lesende, ich lade Sie ein, in den folgenden Kapiteln in die magische Welt der Kryptografie einzutauchen.
Ich wünsche Ihnen viel Freude beim Lesen und Lernen!
Bitte senden Sie Kommentare, Lob und Kritik sowie Hinweise auf Fehler an [email protected].
Danke sage ich allen, die mir beim Schreiben dieses Buches wertvolle Anregungen und Tipps gegeben haben, besonders Lennart Willrodt für die sehr eingehende Durchsicht einer ersten Version des Manuskripts, Arnold Willemer für viele hilfreiche Anmerkungen und Alexandra Dirksen für anregende Diskussionen. Ich danke auch dem Kollegen Reinhard Völler, der als Fachkorrektor mir zum Schluss noch wichtige Hinweise gegeben hat.
In den vier Jahren seit Erscheinen der ersten Auflage haben sich einige Sicherheitsanforderungen verschärft, bedingt durch Fortschritte in der Kryptoanalyse in Verbindung mit der inzwischen verfügbaren höheren Rechenleistung.
So werden etwa 160 Bit als Länge eines Hashwertes nicht mehr als ausreichend angesehen. Oder in Public-Key-Verfahren wird statt einer Blocklänge von 1024 Bit nunmehr eine Blocklänge von 2048 Bit empfohlen.
Die grundsätzliche Eignung der verwendeten Verfahren steht jedoch nicht in Frage. Gleichwohl haben einige neue Verfahren an Bedeutung gewonnen, so etwa der Hashalgorithmus SHA-256 (Secure Hash Algorithm mit 256 Bit), das Authentifizierungsverfahren GCM (Galois Counter Mode) oder das Signaturverfahren DSA (Digital Signature Algorithm).
Auf diese neueren Entwicklungen wird in der zweite Auflage dieses Buches eingegangen – passend auch zu mittlerweile häufig verwendeten neuen Sicherheitsverfahren im Web-Protokoll https (siehe Kapitel 1).
Alle Programmbeispiele sind einheitlich an die aktuelle Python-Version 3 angepasst. Auf die vor einiger Zeit noch gebräuchliche Version 2.7 wird nicht mehr eingegangen.
Last not least: Einige Fehler und Ungereimtheiten sind beseitigt, einige Dinge werden klarer und ausführlicher erklärt, und es gibt eine ganze Reihe zusätzlicher Aufgaben zum Üben.
Teil I
IN DIESEM TEIL …
Wie hat man früher verschlüsselt? Nun, die Menschen haben sich allerhand raffinierte Verfahren einfallen lassen – mit unterschiedlichem Ergebnis: von totaler Unsicherheit bis hin zu perfekter Sicherheit …
Sie lernen die Grundgedanken dieser Verfahren als Erstes kennen.
Allen diesen Verfahren ist gemeinsam, dass Sender und Empfänger denselben geheimen Schlüssel besitzen müssen, um den Text zu verschlüsseln und wieder zu entschlüsseln.
Wie soll es auch anders gehen? Nun, es gibt Verfahren, bei denen der Text mit dem einen Schlüssel verschlüsselt und mit einem anderen Schlüssel entschlüsselt wird. Und das Verrückte ist: Einer dieser Schlüssel wird sogar veröffentlicht! Nur der andere wird geheim gehalten.
Dies ist die Idee der Public-Key-Kryptografie. Lassen Sie sich überraschen!
Kapitel 1
IN DIESEM KAPITEL
Sichere Webseiten mit httpsWas ist ein Zertifikat?Verschlüsselung der übermittelten DatenWussten Sie, dass nahezu das gesamte, in diesem Buch festgehaltene Wissen aufgeboten wird, wenn Sie im Internet eine Banküberweisung machen?
Kryptografische Verfahren sorgen dafür, dass dieser Vorgang sicher über die Bühne geht, genau so wie gewünscht, ohne unerwünschte Einwirkungen von Dritten, ohne Fälschen, Tricksen, Täuschen. Und das ist gar nicht so einfach, denn der Einfallsreichtum gewisser interessierter Kreise ist groß, gerade wenn es ums Geld geht.
Wenn Sie mit dem Firefox-Webbrowser die Webseite einer Bank aufrufen, wird das gesicherte Internet-Protokoll https verwendet. Sie erkennen dies an dem Schloss-Symbol in der Adresszeile des Webbrowsers (Abbildung 1.1):
Abbildung 1.1: Adresszeile einer Bank-Webseite
Das normale Internet-Protokoll http (Hypertext Transfer Protocol) ist nicht gesichert. Aber wodurch unterscheidet sich https davon (das s steht für secure – sicher)? Es sorgt für die Authentizität der Datenverbindung sowie für die Vertraulichkeit und Integrität der Datenübertragung. Was diese Begriffe bedeuten, erfahren Sie im Folgenden.
Zunächst einmal gewährleistet https, dass Sie auch wirklich die Webseite der Bank aufrufen und nicht eine andere, gefälschte Seite. Dies ist wichtig, denn wenn Sie Ihre Bank-Zugangsdaten und Ihr Passwort auf einer gefälschten Seite eingeben, gelangen diese in die falschen Hände. Sie kennen Warnhinweise wie den folgenden:
Abbildung 1.2: Warnhinweis: Phishing-Mails im Umlauf
Phishing ist eine Wortprägung für password fishing. Betrüger halten bildlich gesprochen eine Angel ins Wasser und warten darauf, dass jemand so arglos ist und anbeißt.
Wenn Sie eine E-Mail bekommen, in der Sie darauf hingewiesen werden, dass Ihre Bank-Zugangsdaten in Kürze ablaufen – was machen Sie? Klicken Sie auf den angebotenen Link »Jetzt Zugangsdaten aktualisieren«? Auch wenn Sie grundsätzlich an das Gute im Menschen glauben, sollten Sie in diesem Fall nicht arglos anbeißen.
Sie landen nämlich auf einer gefälschten Webseite, die der echten Bank-Webseite nachempfunden ist. Dort sollen Sie Ihre Zugangsdaten und Ihr Passwort eingeben. Jeder kann eine Webseite so gestalten, dass sie wie die echte Bank-Webseite aussieht.
Wenn Sie Zweifel haben, ob Sie wirklich auf der echten Bank-Webseite gelandet sind, dann achten Sie zunächst darauf, ob sich in der Adresszeile des Webbrowsers ein Schloss-Symbol befindet. Das Schloss-Symbol deutet darauf hin, dass sich der Webserver, von dem Sie die Webseite bekommen, gegenüber Ihrem Webbrowser authentifiziert hat. Wie macht er das? Der Webserver authentifiziert sich mittels eines Zertifikats.
Ein Zertifikat ist vergleichbar mit einem Ausweis. Mithilfe Ihres Personalausweises können Sie sich gegenüber Dritten authentifizieren – Sie können beweisen, dass Sie derjenige sind, für den Sie sich ausgeben. Der Personalausweis stellt die Verbindung zwischen Ihnen (durch das Foto identifiziert) und Ihrem Namen her. Und den Personalausweis haben Sie sich nicht selbst hergestellt, sondern Sie haben ihn von einer vertrauenswürdigen Behörde ausgestellt bekommen.
In ähnlicher Weise stellt ein Zertifikat die Verbindung zwischen einer Webseite und dem Eigentümer der Webseite her. Wie ein Ausweis, so muss auch das Zertifikat von einer vertrauenswürdigen Instanz ausgestellt sein. An einem gültigen Zertifikat erkennen Sie, dass die Webseite diejenige ist, für die sie sich ausgibt – also nicht gefälscht ist.
Ob das Zertifikat gültig ist, müssen Sie im Prinzip überprüfen. Schließlich kann sich auch der Eigentümer einer gefälschten Webseite ein Zertifikat ausstellen lassen – er kann sich jedoch kein Zertifikat mit dem Namen Ihrer Bank ausstellen lassen. Für Sie ist wichtig, dass Sie zwei Dinge überprüfen:
ob das Schloss-Symbol in der Adresszeile erscheint,
ob beim Klicken auf das Schloss-Symbol der Name Ihrer Bank erscheint.
Wichtig ist auch noch, dass das Zertifikat von einer vertrauenswürdigen Instanz ausgestellt worden ist. Dies aber prüft der Webbrowser für Sie. Er kennt alle vertrauenswürdigen Instanzen, und wenn er eine nicht kennt, prüft er, ob diese ihrerseits ein Zertifikat einer vertrauenswürdigen Instanz besitzt, die er kennt.
Beim Firefox-Webbrowser erhalten Sie genauere Informationen über das Zertifikat, wenn Sie auf das Schloss-Symbol klicken und dann noch einmal auf den nach rechts weisenden Pfeil in dem erscheinenden Hinweis (Abbildung 1.3 und 1.4). Dort ist auch die vertrauenswürdige Instanz genannt, in diesem Fall die DigiCert Inc.
Abbildung 1.3: Eigentümer der Webseite
Abbildung 1.4: Webseiten-Sicherheitsinformation
Das Internet-Protokoll https sorgt nicht nur für die Authentizität der Datenverbindung, sondern auch für Vertraulichkeit und Integrität der übermittelten Daten. Was bedeutet das?
Wenn Sie (wie früher) einen Brief mit der Post versenden, möchten Sie ja, dass nur der Empfänger den Brief liest. Deswegen stecken Sie den Brief in einen Briefumschlag und verschließen ihn. Denn Sie wissen, dass der Brief eine ganze Reihe von Stationen durchläuft, bevor er beim Empfänger ankommt – von demjenigen, der den Briefkasten ausleert über diverse Verteilzentren bis hin zum Briefträger, der den Brief zustellt.
Weil der Brief in einem verschlossenen Umschlag steckt, kann ihn niemand auf diesem Weg zum Empfänger lesen. Sie haben damit die Vertraulichkeit des Inhalts erreicht.
Sie erreichen mit dem Umschlag aber noch mehr: nämlich dass der Inhalt auf dem Weg zum Empfänger nicht verändert wird. Wer sollte daran Interesse haben? Nun, wenn der Inhalt des Umschlags aus einer Glückwunschkarte zum Geburtstag und einem 20-Euro-Schein besteht, gibt es manchmal durchaus Interessierte, die den Inhalt verändern möchten …
Wenn der Brief jedoch unversehrt beim Empfänger ankommt, kann dieser davon ausgehen, dass am Inhalt des Briefes nichts verändert worden ist – die Integrität des Inhalts ist damit erreicht.
Wie Sie wissen, werden auch im Internet die Datenpakete über eine Vielzahl von Stationen (Server und Router) geleitet, bis sie beim Empfänger ankommen – jede Menge Gelegenheiten, Nachrichten abzufangen, zu lesen und sogar zu verändern. Es geht also auch hier darum, Vertraulichkeit und Integrität der Nachricht zu erzielen. Beim Standardprotokoll http ist dies nicht gewährleistet; das Sicherheitsprotokoll https erreicht dagegen beides durch Verschlüsselung der Nachricht.
Der Sender verschlüsselt die Nachricht – er codiert die Nachricht in der Weise, dass sie für Dritte unleserlich ist. Nur der berechtigte Empfänger kann die Nachricht wieder entschlüsseln und anschließend lesen. Der Empfänger braucht zum Entschlüsseln eine geheime Zusatzinformation, einen Schlüssel. Dieser Schlüssel muss zu dem entsprechenden Schlüssel passen, mit dem der Sender die Nachricht verschlüsselt hat. Durch Verschlüsseln wird die Vertraulichkeit der Nachricht gewahrt.
Aber auch ein Verändern der Nachricht muss verhindert werden. Dies wird dadurch erreicht, dass von der Nachricht eine Art Fingerabdruck gewonnen wird und dieser mitverschlüsselt wird. Jede Veränderung an der verschlüsselten Nachricht führt dazu, dass die Nachricht und ihr Fingerabdruck nicht mehr zueinander passen. Der Empfänger bemerkt dies nach dem Entschlüsseln. Auf diese Weise wird die Integrität der Nachricht gewahrt.
Das sichere Internet-Protokoll https sorgt somit dafür, dass die folgenden Sicherheitsziele eingehalten werden:
Vertraulichkeit: Nur der berechtigte Empfänger kann die Nachricht lesen.
Integrität: Der Empfänger kann feststellen, ob die Nachricht nach dem Absenden verändert worden ist.
Authentizität: Der Empfänger kann feststellen, wer der Absender der Nachricht ist.
Wenn Sie in dem Info-Fenster aus Abbildung 1.4 unten auf »Weitere Informationen« klicken, erhalten Sie das in Abbildung 1.5 dargestellte Formular mit weiteren Informationen zur Sicherheit der Webseite.
Abbildung 1.5: Weitere Informationen zur Verschlüsselung
Im unteren Bereich unter »Technische Details« ist eine Information über die Verschlüsselung angegeben, ein Code, in dem die verwendeten Sicherheitsverfahren aufgelistet sind:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Jetzt, da Sie noch am Anfang dieses Buches sind, wird Ihnen nur das englische Wort WITH etwas sagen.
Aber nach und nach, während Sie dieses Buch lesen, kommen Sie auch der Bedeutung der drei bis sechs Zeichen langen Abkürzungen auf die Spur – und nicht nur das, sondern Sie lernen,
welche Sicherheitsverfahren sich dahinter verbergen,
wie diese funktionieren,
wozu sie dienen und
wie sicher sie sind.
Zum Schluss, in Kapitel 27, finden Sie zusammenfassend noch einmal die Auflösung, was dieser kryptisch anmutende Code bedeutet …
Ein Hinweis noch: Gegenüber der ersten Auflage dieses Buches von 2018 hat sich die Darstellung des Internet-Browsers Firefox geändert, ebenso die Zertifizierungsagentur der Postbank und auch das verwendete Sicherheitsverfahren. Die Änderungen sind aber nicht grundsätzlicher Art.
Seien Sie also nicht überrascht, wenn es zukünftig erneute Änderungen gibt, wenn vielleicht die Bildschirmdarstellung anders aussieht als in den vorstehenden Abbildungen oder wenn möglicherweise im Sicherheitsverfahren eine andere Schlüssellänge verwendet wird.
Kapitel 2
IN DIESEM KAPITEL
Geheimsprache und KryptografieCaesar-Verschlüsselung und andereEin perfekt sicheres VerfahrenMFQQTJWXYRFQ …
Ein kryptisch aussehender Text – keine Chance, ihn zu entschlüsseln!?
Zu allen Zeiten haben Menschen versucht, bestimmte Informationen, die nicht jeder kennen soll, durch Geheimsprachen oder Geheimschriften so zu verändern, dass nur Eingeweihte diese Informationen verstehen.
Hat nicht auch Sie als Kind schon dieses Versteckspiel fasziniert: mit Geheimtinte zu schreiben oder in Räubersprache zu sprechen, wie der Meisterdetektiv Kalle Blomquist in den Geschichten von Astrid Lindgren?
Es geht dabei um die gezielte Veränderung von Nachrichten in der Weise, dass der Inhalt nicht mehr erkennbar ist, verbunden mit der Möglichkeit, die ursprüngliche Nachricht wieder zurückzugewinnen, aber nur bei Kenntnis einer zusätzlichen Geheiminformation.
Wenn Sie in Kalle Blomquists Räubersprache sprechen, verändern Sie einen Text in systematischer Weise. Sie verdoppeln jeden Konsonanten und setzen ein »o« dazwischen; außerdem fügen Sie noch Leerzeichen ein. Aus »Kalle« wird somit »Kok a lol lol e«. Technisch ausgedrückt wird der ursprüngliche Text umcodiert, jedes Vorkommen etwa des Konsonanten k wird durch kok ersetzt, jedes Vorkommen von l durch lol.
Für Uneingeweihte ist damit die Räubersprache nicht zu verstehen. Wer aber die zusätzliche Geheiminformation kennt, die in diesem Fall aus dem angewandten Verfahren besteht, kann die ursprüngliche Information zurückgewinnen.
Damit offenbart sich sofort eine Schwäche dieser Geheimsprache: Die zusätzliche Geheiminformation besteht aus der Kenntnis des verwendeten Verfahrens; hat dieses sich erst einmal herumgesprochen, ist die Geheimsprache geknackt.
Grundsätzlich können Sie auf zweierlei Weise verhindern, dass Unbefugte auf Ihre Informationen zugreifen: durch Steganografie oder durch Kryptografie.
Steganografie (steganós – bedeckt) bezeichnet das Verstecken von Information, wobei die Information selbst nicht verändert wird. Jeder, der weiß, wo die Information versteckt ist, kann sie lesen. Die zusätzliche Geheiminformation, die man braucht, um die Information zu lesen, besteht in der Offenbarung des Verstecks.
Beim Schreiben mit Geheimtinte verändern Sie den Text nicht, sondern Sie verstecken ihn. Empfohlen wird Zwiebelsaft als Geheimtinte – nach dem Trocknen ist das Geschriebene unsichtbar. Erst das Erhitzen mit dem Bügeleisen macht den Text wieder sichtbar.
Hier besteht die zusätzliche Geheiminformation darin, wie die Schrift wieder sichtbar gemacht werden kann.
Insofern ist das Schreiben mit Geheimtinte eine Form von Steganografie: Die Information ist da, sie ist nicht verändert, aber sie ist versteckt. Die Offenbarung des Verstecks besteht im Erhitzen mit dem Bügeleisen.
Im Zeitalter der digitalen Kommunikation gibt es inzwischen natürlich fortgeschrittenere Formen der Steganografie. Beispielsweise können Sie Informationen in Bild- oder Audiodateien verstecken, die dadurch nur so geringfügig verändert werden, dass es nicht sicht- oder hörbar ist.
In der Kryptografie (kryptós – verborgen) wird die Information nicht versteckt, sondern es ist für jedermann sichtbar, dass sie da ist. Aber sie ist nicht zu verstehen, weil sie verschlüsselt ist. Verschlüsseln (oder Chiffrieren) bezeichnet das Umcodieren von Information. Nur wer eine zusätzliche Geheiminformation kennt, kann die ursprüngliche Information zurückgewinnen.
Dabei gibt es zwei Möglichkeiten:
Die zusätzliche Geheiminformation besteht aus dem verwendeten Verfahren oder
die zusätzliche Geheiminformation besteht aus einem geheimen Schlüssel.
Es ist naheliegend, den Algorithmus offenzulegen, aber mit einem zusätzlichen Parameter zu versehen und diesen geheim zu halten. Ein solcher Parameter wird als Schlüssel bezeichnet. Das Umcodieren mithilfe dieses Schlüssels wird als Verschlüsseln bezeichnet.
Dieser Parameter stellt meist zugleich die zusätzliche Geheiminformation dar, die zum Entschlüsseln benötigt wird, aber nicht immer. Man unterscheidet die symmetrische Verschlüsselung, bei der zum Ver- und Entschlüsseln derselbe Schlüssel verwendet wird, und die asymmetrische Verschlüsselung, bei der zum Ver- und Entschlüsseln unterschiedliche Schlüssel verwendet werden.
Beide Herangehensweisen haben ihre Vor- und Nachteile, beide werden in der Praxis in weitem Ausmaß verwendet, und beide werden Sie in diesem Buch ausgiebig beschäftigen …
Der Kryptologe A. Kerckhoffs formulierte im 19. Jahrhundert das Prinzip, dass die Sicherheit eines Verschlüsselungsverfahrens nicht von der Geheimhaltung des Verfahrens, sondern ausschließlich von der Geheimhaltung des Schlüssels abhängen sollte. Denn ein Verschlüsselungsverfahren soll ja von vielen verwendet werden; daher lässt es sich gar nicht geheim halten, und es ist verloren, wenn es einmal bekannt geworden ist. Ein Schlüssel lässt sich dagegen jederzeit ändern.
Es geht mit ganz einfachen Verschlüsselungsverfahren los. Dabei lernen Sie die wichtigsten Begriffe kennen, die in der Kryptografie verwendet werden. Und Sie lernen bereits hier die wichtigste Rechenart in der Kryprografie kennen: die Modulo-Rechnung. Lassen Sie sich von dieser vielleicht nicht geläufigen Bezeichnung nicht beeindrucken – es handelt sich um etwas ganz Einfaches, das Sie im Grunde schon kennen.
Sie kennen die Modulo-Rechnung aus dem Alltag. Heute ist Mittwoch, welcher Wochentag ist heute in 7 Tagen? Na klar, wieder Mittwoch, denn die Woche hat 7 Tage. Und welcher Wochentag ist heute in 30 Tagen? Nun, offenbar derselbe Wochentag, der heute in 2 Tagen ist, also Freitag. Denn Sie können von 30 die vollen Wochen, also 28 Tage, abziehen.
Mathematisch gesehen führen Sie eine ganzzahlige Division mit Rest durch: 30 geteilt durch 7 ergibt 4 Rest 2. Der Quotient 4 ist für die Berechnung des Wochentags unerheblich, entscheidend ist nur der Rest 2. In solchen Fällen, in denen es nur auf den Rest ankommt, wird der Divisor (hier 7) als Modul bezeichnet, daher die Bezeichnung Modulo-Rechnung. Die Rechenoperation, die den Rest liefert, wird mit mod bezeichnet; die Rechnung lautet:
Man sagt auch, die Zahl 30 wird modulo 7 reduziert.
Vielleicht haben Sie schon in Programmiersprachen wie C, Java, PHP oder Python programmiert. Dort wird für die Rechenoperation mod das Zeichen % verwendet.
Die Modulo-Rechnung ist zentral in vielen kryptografischen Verfahren, die auf Zahlentheorie basieren, daher ist sie so wichtig. Zunächst aber verwenden Sie die Modulo-Rechnung nur, um Buchstaben, als Zahlen aufgefasst, modulo 26 zu addieren. Modulo 26 addieren bedeutet addieren und dann modulo 26 reduzieren.
Alles Weitere zur Modulo-Rechnung finden Sie im Kapitel 5.
Eine einfache Möglichkeit, einen Text zu verschlüsseln, besteht darin, jeden Buchstaben des Textes durch den im Alphabet nächstfolgenden Buchstaben zu ersetzen. Es heißt, dass bereits Caesar auf diese Weise Texte verschlüsselt hat, daher wird diese Methode als Caesar-Verschlüsselung bezeichnet. So wird aus CAESAR beispielsweise DBFTBS. Welches ist aber der auf Z nächstfolgende Buchstabe? Nun, fangen Sie einfach wieder vorne im Alphabet an, also bei A. Aus ZAR wird ABS.
Technisch gesehen, fassen Sie die 26 Buchstaben des Alphabets als Ziffern mit den Zahlenwerten auf, also . Und Sie verschlüsseln, indem Sie zu jedem Buchstaben des Textes den Schlüssel addieren, und zwar modulo , d. h. wenn ein Wert herauskommt, reduzieren Sie den Wert modulo , indem Sie subtrahieren.
Oder noch ein anderes Beispiel:
Der ursprüngliche, unverschlüsselte Text (im Beispiel ZAR) wird als Klartext bezeichnet. Das Ergebnis nach dem Verschlüsseln ist der Geheimtext (im Beispiel ABS).
Dieses sind erst einmal die wichtigsten Begriffe, die Ihnen nun immer wieder begegnen werden. Und manchmal kommen auch die englischen Bezeichnungen vor.
Deutsch
Englisch
Klartext
plaintext
Geheimtext
ciphertext
Schlüssel
key
verschlüsseln
encrypt
entschlüsseln
decrypt
Der Schlüssel bei der Caesar-Verschlüsselung ist im einfachsten Fall , aber es hindert Sie niemand daran, jeden beliebigen Buchstaben des Alphabets als Schlüssel zu verwenden, beispielsweise . Ersetzen Sie dann jeden Buchstaben des Textes durch den übernächsten Buchstaben im Alphabet.
Oder Sie verwenden den Schlüssel . Dies bedeutet, dass Sie jeden Buchstaben des Textes durch den vorhergehenden Buchstaben im Alphabet ersetzen. Denn modulo gerechnet entspricht die Zahl der Zahl .
Durch Entschlüsseln wird eine Verschlüsselung wieder rückgängig gemacht. Hierzu muss auch der Empfänger den Schlüssel kennen. Um aus dem Geheimtext YZQ den ursprünglichen Klartext wiederzugewinnen, subtrahiert der Empfänger von jedem Buchstaben den Schlüssel oder, was modulo gerechnet dasselbe ist, er addiert .
Aus der Frühzeit des Internet stammt die Verschlüsselung ROT13. Dabei wird jeder Buchstabe des Alphabets durch den um 13 Positionen folgenden Buchstaben ersetzt – das Alphabet wird gleichsam um 13 Positionen rotiert, daher die Bezeichnung ROT13. Es entspricht einer Caesar-Verschlüsselung mit . Das Besondere daran: Entschlüsseln ist gleich Verschlüsseln. Denn modulo gerechnet ist .
Natürlich ist ROT13 keine sichere Verschlüsselung, das war auch in den 1980er Jahren bekannt. Die Verschlüsselung verhinderte eine Zeitlang ein automatisiertes Suchen nach Stichwörtern in E-Mails.
