1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
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
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>GNU Privacy Guard - Eine freie Alternative zu PGP</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<!-- BEGIN Content //-->
<div id="content">
<h1 align="CENTER">GNU Privacy Guard
<br>- Eine freie Alternative zu PGP -
<br>
<br><table width="263" summary="">
<tr><td>
<br><i>Das Briefgeheimnis sowie das Post- und Fernmeldegeheimnis sind
unverletzlich.</i>
<br>
<div align="RIGHT"><font size="-1"><font size="-1">Grundgesetz, Artikel 10, Abs 1.
</font></font></div></td></tr>
</table></h1>
<p align="CENTER"><strong>Achim D. Brucker
<br><tt>brucker@freiburg.linux.de</tt></strong></p>
<p align="CENTER"><strong>19. November 1999</strong></p>
<h2><a name="SECTION00010000000000000000">
Inhalt</a>
</h2>
<!--Table of Contents-->
<ul>
<li><a name="tex2html30"
href="gnupg.html#SECTION00020000000000000000">Einführung</a>
<ul>
<li><a name="tex2html31"
href="gnupg.html#SECTION00021000000000000000">Was ist der GNU Privacy Guard - <tt>gnupg</tt></a>
<li><a name="tex2html32"
href="gnupg.html#SECTION00022000000000000000">Warum Verschlüsseln</a>
</ul>
<li><a name="tex2html33"
href="gnupg.html#SECTION00030000000000000000">Private Key Verfahren - Symmetrische Verfahren</a>
<li><a name="tex2html34"
href="gnupg.html#SECTION00040000000000000000">Verschlüsselungs- und Authentifizierungsverfahren</a>
<ul>
<li><a name="tex2html35"
href="gnupg.html#SECTION00041000000000000000">Public Key Verfahren - Asymmetrische Verfahren</a>
<li><a name="tex2html36"
href="gnupg.html#SECTION00042000000000000000">Hybride Verfahren</a>
<li><a name="tex2html37"
href="gnupg.html#SECTION00043000000000000000">Hash Verfahren - Fingerprints und Signaturen</a>
</ul>
<li><a name="tex2html38"
href="gnupg.html#SECTION00050000000000000000">Warum braucht die Welt GnuPG</a>
<ul>
<li><a name="tex2html39"
href="gnupg.html#SECTION00051000000000000000">Warum eine <i>freie</i> OpenPGP notwendig ist</a>
<li><a name="tex2html40"
href="gnupg.html#SECTION00052000000000000000">Ausflug: Softwarepatente</a>
<li><a name="tex2html41"
href="gnupg.html#SECTION00053000000000000000">Aktuell: 1999-11-15</a>
</ul>
<li><a name="tex2html42"
href="gnupg.html#SECTION00060000000000000000">GnuPG im Alltag</a>
<ul>
<li><a name="tex2html43"
href="gnupg.html#SECTION00061000000000000000">Verfügbarkeit und Anwendung</a>
<li><a name="tex2html44"
href="gnupg.html#SECTION00062000000000000000">Die wichtigsten Merkmale</a>
<li><a name="tex2html45"
href="gnupg.html#SECTION00063000000000000000">GnuPG für PGP 2.x Anwender</a>
</ul>
<li><a name="tex2html46"
href="gnupg.html#SECTION00070000000000000000">Ausblick</a>
<li><a name="tex2html47"
href="gnupg.html#SECTION00080000000000000000">Referenzen</a>
<li><a name="tex2html48"
href="gnupg.html#SECTION00090000000000000000">Über dieses Dokument ...</a>
</ul>
<!--End of Table of Contents-->
<h1><a name="SECTION00020000000000000000">
Einführung</a>
</h1>
<h2><a name="SECTION00021000000000000000">
Was ist der GNU Privacy Guard - <tt>gnupg</tt></a>
</h2>
<blockquote>
<div align="CENTER">
GnuPG ist ein Programm zur sicheren offline Kommunikation. Es kann als freier
Ersatz für das ursprünglich von Phil Zimmermann entwickelte Pretty Good
Privacy (PGP) dienen.
</div>
</blockquote>
<h2><a name="SECTION00022000000000000000">
Warum Verschlüsseln</a>
</h2>
<blockquote>
<div align="CENTER">
Das Verschlüsseln von Nachrichten ist ein im Grundgesetz verbürgtes
Recht.
</div>
</blockquote>
<ul>
<li>Emails sind wie Postkarten, jeder kann sie lesen. Trotzdem werden oft
private Daten unverschlüßelt als Email versendet.
</li>
<li>Signaturen und Verschlüsselung dienen der Authentifizierung der Absender
und Empfänger. Sie ersetzen die Unterschrift.
</li>
<li>Nur die Datenverschlüsselung kann die Rechten und Pflichten, die sich
aus dem Datenschutz ergeben, umsetzen.
</li>
</ul>
<h1><a name="SECTION00030000000000000000">
Private Key Verfahren - Symmetrische Verfahren</a>
</h1>
<ul>
<li>Symmetrische Verfahren verwenden denselben Schlüssel zum ver- und
entschlüsseln.
</li>
<li>Sender und Empfänger müssen den Schlüssel kennen und ihn geheim halten.
</li>
<li>einfaches Beispiel, die XOR-Verschlüsselung:
<div align="CENTER">
<table cellpadding="3" border="1" summary="">
<tr><td align="LEFT">Daten:</td>
<td align="CENTER">10100111001</td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
</tr>
<tr><td align="LEFT">Schlüssel:</td>
<td align="CENTER">10101001010</td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
</tr>
<tr><td align="LEFT">verschlüsselte Daten:</td>
<td align="CENTER">00001110011</td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
<td align="CENTER"> </td>
</tr>
</table>
</div>
</li>
</ul>
<ul>
<li>Der Suchraum wächst exponentiell mit der Schlüssellänge. DES verwendet
z.B. 56 Bit Schlüssel. Mit einer Brute Force Attacke müssten
<br><p></p>
<div align="CENTER">
<!-- MATH
\begin{displaymath}
2^{56}=72.057.594.037.927.936\approx 72\cdot 10^{15}
\end{displaymath}
-->
1#1
</div>
<br clear="ALL">
<p></p>
Schlüssel ausprobiert werden.
</li>
<li>Schlüssellängen unter 64 Bit gelten heute nicht mehr als sicher,
empfohlen werden Längen von 128 Bit:
<p></p>
<div align="CENTER">
<!-- MATH
\begin{eqnarray*}
&&2^{128}\
&=&340.282.366.920.938.463.463.374.607.431.768.211.456\
&\approx& 34\cdot 10^{37}
\end{eqnarray*}
-->
2#2
<br clear="ALL"></div><p></p>
<br clear="ALL"><p></p>
<br clear="ALL"><p></p>
</li>
</ul>
<ul>
<li>Verfahren: Enigma, DES, 3DES, Blowfish, Twofish, IDEA
</li>
<li>PGP verwendet IDEA für die Datenverschlüsselung.
</li>
<li>Nachteile symmetrischer Verfahren:
<ul>
<li>Der Schlüsselaustausch ist schwierig.
</li>
<li>Wenn 3#3 Personen privat untereinander kommunizieren wollen,
sind <!-- MATH
$\frac{n(n-1)}{2}$
-->
4#4 Schlüsselpaare notwendig.
</li>
</ul>
</li>
</ul>
<h1><a name="SECTION00040000000000000000">
Verschlüsselungs- und Authentifizierungsverfahren</a>
</h1>
<h2><a name="SECTION00041000000000000000">
Public Key Verfahren - Asymmetrische Verfahren</a>
</h2>
<ul>
<li>Jeder Teilnehmer hat einen privaten und einen öffentlichen Schlüssel:
<ul>
<li>Mit dem öffentliche Schlüssel werden Nachrichten an den Besitzer
verschlüsselt.
</li>
<li>Mit dem privaten Schlüssel kann der Besitzer an ihn gesendete
Nachrichten entschlüsseln.
</li>
<li>Verfahren: RSA, ElGamal, Rabin
</li>
<li>PGP verwendet RSA, GnuPGP ElGamal
</li>
<li>Die Verschlüsselung basiert auf ,,trapdoor``-Funktionen.
</li>
</ul>
</li>
</ul>
<ul>
<li>Eine ,,trapdoor``-Funktion ist eine one-way``-Funktionen
mit einer ,,Hintertüre``.
<br>
Meist basiert die Funktion auf der Primfaktorzerlegung. Ist eine große Zahl gegeben, die das
Produkt zweier Primzahlen darstellt ist es sehr schwer die beiden Primfaktoren
zu bestimmen. Kennt man allerdings die Hintertüre (einen Primfaktor) ist es sehr
leicht möglich, den zweiten Faktor zu berechnen.
</li>
<li>Die Schlüssellänge von symmetrischen und asymmetrischen Verfahren kann
nicht direkt verglichen werden. Bei einem asymmetrischen Verfahren mit einer
512 Bit Schlüssellänge muß ein Angreifer eine Binärzahl mit 512 Bit
(entsprechend einer Dezimalzahl bis 155 Stellen) in ihre Primzahlen zerlegen.
</li>
<li>Es wird eine Schlüssellänge von 1024 Bit empfohlen.
</li>
</ul>
<h2><a name="SECTION00042000000000000000">
Hybride Verfahren</a>
</h2>
<ul>
<li>Leider sind asymmetrische Verfahren kein Allheilmittel.
</li>
<li>Meistens sind symmetrische Verfahren sicherer als asymmetrische Verfahren.
</li>
<li>Hybride Verfahren verwenden sowohl ein symmetrisches als auch ein
asymmetrisches Verfahren (wie GnuPG und PGP es verwenden):
<ul>
<li>Der Schlüssel für das symmetrische Verfahren wird mit
dem asymmetrischen Verfahren verschlüsselt.
</li>
<li>Die Nachricht wird mit dem symmetrischen Verfahren
verschlüsselt.
</li>
<li>Der Emfpänger entschlüsselt mit seinem privaten
Schlüssel den ,,session key``, mit dem die Nachricht
entschlüsselt werden kann.
</li>
</ul>
</li>
<li>Ein hyprides Verfahren ist <i>nicht</i> stärker als das verwendete
symmetrische oder asymmetrische Verfahren. <i>Aber:</i> Wenn ein Angreifer
einen ,,session key`` entschlüsselt, so kann er nur eine Nachricht
lesen.
</li>
</ul>
<h2><a name="SECTION00043000000000000000">
Hash Verfahren - Fingerprints und Signaturen</a>
</h2>
<ul>
<li>Eine Hash-Funktionen zerlegt den Urbildraum in Teilmengen, die auf
dasselbe Element im Zielraum abgebildet werden, z.B.:
<br><p></p>
<div align="CENTER">
<!-- MATH
\begin{displaymath}
f(x)= x mod 37
\end{displaymath}
-->
5#5
</div>
<br clear="ALL">
<p></p>
</li>
<li>Eine digitale Signatur ist das Ergebnis des Anwenden einer Hashfunktion
auf ein Dokument.
</li>
<li>Hash-Funktionen für Signaturen müssen zwei Bedingen erfüllen:
<ul>
<li>Es muss <i>schwer</i> sein, zwei Dokumente mit demselben Hash-Wert zu
finden
</li>
<li>Es muss <i>schwer</i> sein, aus dem Hash-Wert das Dokument zu
rekonstruieren.
</li>
</ul>
</li>
<li>Um die Echtheit zu garantieren, wird der Hash-Wert mit dem privaten
Schlüssel des signierenden verschlüsselt. Somit kann jeder mit dem
öffentlichen Schlüssel die Echtheit überprüfen.
</li>
<li>Verwendet werden z.B. SHA oder MD5
</li>
</ul>
<h1><a name="SECTION00050000000000000000">
Warum braucht die Welt GnuPG</a>
</h1>
<h2><a name="SECTION00051000000000000000">
Warum eine <i>freie</i> OpenPGP notwendig ist</a>
</h2>
<ul>
<li>Freie Software (public domain, GPL) unterliegt nicht dem Waasenar
Abkommen
</li>
<li>RSA und IDEA sind patentiert und damit für freie Software nicht
einsetzbar.
</li>
<li>,,no security by obscurity``
</li>
<li>PGP 5.x und 6.x erfüllen nicht den OpenPGP Standard
</li>
<li>PGP 5.x konnte ,,plötzlich`` Message Recovery
</li>
</ul>
<h2><a name="SECTION00052000000000000000">
Ausflug: Softwarepatente</a>
</h2>
<ul>
<li>RSA:
<ul>
<li>patentiert in den USA, außerhalb kann RSA uneingeschränkt genutzt
werden
</li>
<li>In den USA nur als (langsame) Referenzimplementierung vom MIT ohne
Lizenz möglich. Genauer Status unklar.
</li>
<li>Patent läuft im September 2000 aus
</li>
</ul>
</li>
<li>IDEA:
<ul>
<li>Weltweit (soweit möglich) patentiert.
</li>
<li>für nichtkomerzielle Nutzung frei
</li>
<li>Patent läuft am im Jahr 2011 aus.
</li>
</ul>
</li>
</ul>
<h2><a name="SECTION00053000000000000000">
Aktuell: 1999-11-15</a>
</h2>
<blockquote>
<div align="CENTER">
Mit dem Konzept von GPG könnte ein
Werkzeug geschaffen werden, das als 'public
domain'-Software ohne Einschränkungen für alle
Benutzerschichten - Behörden, kommerzielle
Nutzer und Privatbenutzer eingeschlossen - frei und
unentgeltlich verfügbar ist.
</div>
Hubertus Soquat, Referent für IT-Sicherheit im BMWi.
</blockquote>
Die Entwickler von GnuPG unter Leitung Werner Koch werden vom
Bundesministeriums für Wirtschaft und Technologie (BMWi) mit 250.000 DM
unterstützt. Nächstes Jahr sollen weitere Gelder folgen.
<h1><a name="SECTION00060000000000000000">
GnuPG im Alltag</a>
</h1>
<h2><a name="SECTION00061000000000000000">
Verfügbarkeit und Anwendung</a>
</h2>
<ul>
<li>Verfügbar unter Linux und den meisten Unixen, sowie Windows
</li>
<li>Integration in diverse Mailer (z.B. mutt, xfmail, Mailcrypt)
</li>
<li>durch Wrapper auf der Kommandozeile zu PGP 2.x kompatibel
</li>
<li>Frontends für Gnome (GnomePGP) und KDE (Geheimniss) verfügbar
</li>
</ul>
<h2><a name="SECTION00062000000000000000">
Die wichtigsten Merkmale</a>
</h2>
<ul>
<li>verwendet keine patentierten Algorithmen
</li>
<li>verwendet GPL, komplett neu geschrieben
</li>
<li>implementiert die OpenPGP-Spezifikation
</li>
<li>kompatibel zu PGP 5.x
</li>
<li>mit Erweiterung kompatibel zu PGP 2.x
</li>
<li>Unterstützt: DSA, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1,
RIPE-MD-160 und TIGER
</li>
<li>Schlüssel können ablaufen
</li>
<li>unterstützt Key-Server
</li>
</ul>
<h2><a name="SECTION00063000000000000000">
GnuPG für PGP 2.x Anwender</a>
</h2>
<ul>
<li>PGP 2.x verwendet die patentierten Verfahren RSA und IDEA.
</li>
<li>Um zu PGP 2.x kompatibel zu sein, müssen die Referenzimplementierungen
von IDEA und RSA als Modul zur verfügung gestellt werden.
</li>
<li>Nachdem die Module RSA und IDEA GnuPG zur verfügung stehen, kann es
problemlos als PGP 2.x Ersatz genutzt werden.
</li>
<li>Obwohl der alte PGP 2.x Key benutzt werden kann, sollte man sich einen
neuen GnuPG Key generieren.
</li>
<li>Für Debian gibt es entsprechende Pakete.
</li>
</ul>
<h1><a name="SECTION00070000000000000000">
Ausblick</a>
</h1>
<blockquote>
<div align="CENTER">
Mit GnuPG 1.0 steht dem Anwender ein ausgereiftes freies
Verschlüsselungsprogramm zur Verfügung, dessen Weiterentwicklung sogar durch
Steuergelder gesichert ist. GnuPG ist ein vollwertiger Ersatz für das
kommerzielle PGP.
</div>
</blockquote>
Weiter Vorträge:
<ul>
<li>Verschlüsselte Dateisysteme unter Linux.
</li>
<li>Betrachtung von Verschlüsselungsalgorithmen mit ihren Stärken und
Schwächen.
</li>
<li>GnuPG step by step mit Key-signing Party.
</li>
<li>Anekdoten über Enigma, DES und RSA.
</li>
</ul>
<h1><a name="SECTION00080000000000000000">
Referenzen</a>
</h1>
<ul>
<li>GnuPG: <tt><a name="tex2html1"
href="http://www.gnupg.org">http://www.gnupg.org</a></tt>
</li>
<li>PGP: <tt><a name="tex2html2"
href="http://www.pgpi.com">http://www.pgpi.com</a></tt>
</li>
<li>GnuPG Dokumentation: <tt><a name="tex2html3"
href="http://http://www.gnupg.org/gph/en/manual/book1.html">http://http://www.gnupg.org/gph/en/manual/book1.html</a></tt>
</li>
<li>GnuPG Mini Howto (deutsch): <tt><a name="tex2html4"
href="http://www.stud.uni-goettingen.de/~s070674/GnuPGMiniHowto/GPGMiniHowto.html">http://www.stud.uni-goettingen.de/~s070674/GnuPGMiniHowto/GPGMiniHowto.html</a></tt>
</li>
<li>PGP2x nach GnuPG <tt><a name="tex2html5"
href="http://www.gnupg.org/gph/en/pgp2x/t1.html">http://www.gnupg.org/gph/en/pgp2x/t1.html</a></tt>
</li>
<li>PGP5x nach GnuPG <tt><a name="tex2html6"
href="http://technocage.com/~caskey/gpg/pgp2gnupg.html">http://technocage.com/~caskey/gpg/pgp2gnupg.html</a></tt>
</li>
<li>Krypto Links: <tt><a name="tex2html7"
href="http://www.informatik.uni-freiburg.de/~luca/securitylinks.html">http://www.informatik.uni-freiburg.de/~luca/securitylinks.html</a></tt>
</li>
<li>RFC 2440: <tt><a name="tex2html8"
href="http://www.gnupg.org/rfc2440.html">http://www.gnupg.org/rfc2440.html</a></tt>
</li>
</ul>
</div>
<!-- END Content //-->
<hr style="display:none">
<!-- BEGIN Footer //-->
<div id="footer" align="right">
Seite erstellt/aktualisiert: 2000-04-30
durch <em><<acronym title='Ersetze ":at:" durch "@"'>brucker:at:freiburg.linux.de</acronym>></em>
<br>
Seite zuletzt generiert:
2010-05-16
</div>
<!-- END Footer //-->
</body>
</html>
|