Kryptografie für Dummies - Hans Werner Lang - E-Book

Kryptografie für Dummies E-Book

Hans Werner Lang

0,0
21,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 365

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Kryptografie für Dummies

Schummelseite

WICHTIGE BEGRIFFE VON A BIS Z

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).

WICHTIGE BERECHNUNGSVERFAHREN VON E BIS S

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).

WICHTIGE MATHEMATISCHE BEGRIFFE VON D BIS P

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

Über den Autor

Hans Werner Lang war über 20 Jahre Professor für Informatik an der Hochschule Flensburg. Seine Fachgebiete sind Algorithmen, Theoretische Informatik und Kryptografie.

Inhaltsverzeichnis

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

Orientierungspunkte

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

Seitenliste

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

Einleitung

Über dieses Buch

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

.

Konventionen in diesem Buch

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.

Was Sie nicht lesen müssen

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.

Törichte Annahmen über den Leser

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 dieses Buch aufgebaut ist

Wie jedes »…für Dummies«-Buch ist auch dieses in mehrere Teile aufgeteilt. Bei diesem Buch sind es sogar derer neun.

Teil I: Verschlüsseln

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.

Teil II: Kryptische Mathematik

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.

Teil III: Kryptografische Verfahren

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.

Teil IV: Berechnungsverfahren

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.

Teil V: Authentifizieren

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!

Teil VI: Sicherheit

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.

Teil VII: Zufall

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.

Teil VIII: Anwendungen

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.

Teil IX: Top-Ten-Teil

Im letzten Teil erfahren Sie endlich, welche von allen den Dingen, die Sie gelernt haben, die wichtigsten sind.

Anhänge

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 …

Symbole, die in diesem Buch verwendet werden

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.

Wie es weitergeht

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.

Alice und Bob

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 und danke sagen

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.

Zur zweiten Auflage

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

Verschlüsseln

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

Sicherheit in Zeiten des Internet

IN DIESEM KAPITEL

Sichere Webseiten mit httpsWas ist ein Zertifikat?Verschlüsselung der übermittelten Daten

Wussten 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.

Authentizität

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.

Zertifikat

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

Vertraulichkeit und Integrität

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.

Sicher surfen mit https

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

Klassische Verschlüsselung

IN DIESEM KAPITEL

Geheimsprache und KryptografieCaesar-Verschlüsselung und andereEin perfekt sicheres Verfahren

MFQQTJWXYRFQ …

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.

Geheimsprache

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.

Informationen durch Steganografie verstecken

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.

Informationen mit Kryptografie unkenntlich machen

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 …

Kerckhoffs-Prinzip

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.

Verschlüsseln wie Caesar

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.

Modulo-Rechnung

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.

Verschlüsseln

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).

Kryptografische Begriffe

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 .

Entschlüsseln

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 .

Ins Rotieren kommen

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.

Doppelt hält besser?