Einleitung
Gewisse Algorythmen, mit denen verschlüsselt wird, sind etwas
umständlich zu erklären. Meist ist es einfacher, ein Beispiels
durchzuspielen, um die zugrundeliegenden Prinzipien zu
verstehen. Darum habe ich hier zwei Beispiele dargestellt und werde
an einem praktischen Beispiel versuchen, die Methode zu erklären.
Die verschlüsselte Form ist dabei jeweils in grossen Buchstaben
geschrieben.
Monoalphabetische Substitution
Die einfachste Form, eine Nachricht zu verschlüsseln, ist die
monoalphabetische Substitution. Dabei wird unterhalb des normalen
Alphabetes ein neues Alphabet mit veränderter Zeichenfolge
aufgeschrieben und jeder Buchstabe durch den untenstehenden ersetzt:
| a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
| S | T | U | V | W | Y | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
wenn wir also zum Beispiel das Wort Hackerfunk verschlüsseln wollen,
erhalten wir:ZSUCWJYMFC.
Das Problem bei dieser Art der
Verschlüsselung ist, dass die einzelnen Buchstaben in jeder Sprache
eine spezifische Häufigkeit aufweisen. Bei einem genügend langen
Text kann man aufgrund dieser Verteilung relativ leicht den Schlüssel
erraten.
Polyalphabetische Substitution
Eine etwas sicherere Form der Verschlüsselung ist die
polyalphabetische Substitution.
Dabei wird nicht nur ein Alphabet mit veräderter
Reihenfolge benutzt, sondern mehrere. Dies ist an und für sich
schwieriger zu entschlüsseln, aber es wird ziemlich Umständlich,
die unterschiedlichen Schlüssel an alle beteiligten Kommunikationspartner
zu verteilen. Um dieses Problem zu enschärfen, wurde das Vigenere-
quadrat erfunden. Dabei wird das Alphabet 26 Mal untereinander geschrieben,
allerdings jeweils um einen Buchstaben verschoben. Danach wird ein
Schlüsselwort vereinbart. Je nach der Position der jeweiligen
Buchstaben des Schlüsselwortes, wird die entsprechende Zeile des
Quadrates fü eine monoalphabetische Verschlüsselung benutzt.
Wenn wir zu Beispiel als Schlüsselwort hase nehmen, werden folgende
monoalphabetischen Substitutionen verwendet:
| - | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
| H | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
| A | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| S | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
| E | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D |
Daraus ergibt sich folgende Verschlüsselung für das Wort Hackerfunk:
OAUOLRXYUK. Die verschlüsselten Zahlen sind fett gedruckt.
Eine Taktik, um derartige polyalphabetische Verschlüsselungen zu knacken,
besteht darin, dass man im Code Buchstabenfolgen sucht, die sich wiederholen.
Unter der Annahme, dass diese Folgen jeweils dasselbe Wort im Klartext
codieren, bekommt man Hinweise über die Länge des
Schlüsselwortes und somit über die Periode, mit der sich die
verschiedenen monoalphabetischen Verschlüsselungen wiederholen.
Wenn man einmal diese Periodizität kennt, reduziert sich die Analyse
auf mehrere monoalphabetische Probleme, die mit der Häufigkeitsanalyse
bearbeitet werden können.
Enigma
1918 wurde in Deutschland ein Gerät patentiert, mit dem sich Nachrichten
automatisch verschlüsseln liessen. Dieses Gerät
wurde Enigma
genannt und bestand aus folgenden
Komponenten:
- eine Tastatur
- ein Steckbrett
- drei Walzen
- einer Umkehrwalze
Beim drücken einer Taste wird Strom erzeugt, der zuerst durch das
Steckbrett fliesst. Bei diesem Brett gibt es die Möglichkeit zwei
Tasten miteinander zu vertauschen. Danach fliesst der Strom durch die erste
Walze, die jeweils zwei Buchstaben miteinander verbindet. Die beiden
anderen Walzen dienen demselben Zweck. Nach der dritten walze kommt
die Umkehrwalze, die nochmals zwei Buchstaben vertauscht und den
Strom zurück zu den drei Walzen und dem Steckbrett schickt. Danach
wird je nach Position, bei der das Signal austritt, ein Buchstabe
angezeigt. Sobald dieser Buchstabe angezeigt wird, dreht sich die erste Walze
um eine Position weiter. Nach 26 Drehungen der ersten Walze dreht sich die
zweite Walze um eine Position, und nach 26 Umdrehungen der zweiten
Walze dreht sich die dritte Walze um eine Position. Diese Anordnung
entspricht einer polyalphabetischen Verschlüsselung, bei der
26*26*26 unterschiedliche Alphabete benutzt werden.
Hinzu kommt, dass sehr viele unterschiedliche Ausgangspositionen
möglich sind. Das bedeutet, dass es nicht ausreicht, eine Kopie
der Enigma zu haben, um Nachrichten zu entschlüsseln.
- Beim Steckbrett können jeweils sechs Zahlen vertauscht werden.
Das ergiebt 100'391'791'500 Möglichkeiten.
- Die Walzen können auf 6 verschiedene Arten angeordnet werden
- Es gibt 17576 Möglichkeiten, die Walzen auszurichten
Das bedeutet, dass 6 * 100'391'791'500 * 17'576 unterschiedliche Ausgangsstellungen
möglich sind.
4.1. Anwendung der Enigma
Um dieses Gerät zu benutzen, musste im Vornherein die Ausgangsstellung der verschiedenen
Teile abgemacht werden. Dazu dienten die sogenannten Code-Bücher. Jeweils ein Mal pro
Monat wurde ein Buch verteilt, in dem für jeden Tag unterschiedliche Stellungen vorgeschrieben
wurden. Diese wurden dazu genutzt, um den Anfang einer Nachricht zu übermitteln. Am Anfang jeder
Nachricht wurde die Ausrichtung der Walzen, die für den Rest der Nachricht einzustellen war,
übermittelt. Diese drei Buchstaben wurden, um Fehler zu vermeiden, zwei Mal hintereinander
gesandt. Immer wenn eine Nachricht entschlüsselt werden musste, hat man anhand des Codes
der für den entsprechenden Tag gültig war, die ersten sechs Buchstaben entschlüsselt.
Danach wurden die drei Walzen neu ausgerichtet und mit dieser Ausgangsstellung der Rest der Nachricht
dechifriert.
4.1. Entschlüsselung der Enigma
Durch Geheimdienstarbeit war kurz vor dem 2.Weltkrieg schon einiges über die Enigma
bekannt. Man kannte das Funktionprinzip und auch die Verdrahtung innerhalb der Walzen.
Das grosse Problem war aber die grösse des Schlüsselraumes, also welche von
den vielen möglichen Ausgangsstellung füf die betreffende Meldung benutzt
wurde.
In dieser Situation war es sehr hilfreich, dass am Anfang der Meldung zwei Mal
hintereinander die Ausgangsstellung der drei Walzen versendet wurde. Daraus konnte
man ableiten, dass der erste und der vierte Buchstabe des verschlüsselten Textes
denselben Buchstaben in Klartext kodierten. Dasselbe galt natürlich auch jeweils
für den zweiten und fünften und den dritten und sechsten Buchstaben.
Wenn man genug Meldungen abgefangen hatte, konnte man so Pärchen von Buchstaben
für das ganze Alphabet bilden. Von diesen beiden Buchstaben wusste man, dass sie
dasselbe Zeichen kodieren, allerdings nachdem die Walze um drei Positionen weiter
gerückt war:
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| T | U | D | L | M | Z | Y | W | B | A | R | V | X | C | H | E | F | G | O | I | J | K | N | S | Q | P |
Anhand einer derartigen Zuordnung wurden nun Ketten gebildet:
A-T-I-B-U-J-A
C-D-L-V-K-R-G-Y-Q-F-Z-P-E-M-X-S-O-H-W-N-C
Das interessante an diesen Ketten ist, dass sie unabhängig von der Anordung der
der Verbindungen auf der Steckkarte sind, da dort nur Buchstaben vertauscht werden.
Dadurch wurde der Schlüsselraum massiv reduziert. Nun fing man an, für
die verschiedenen Ausgangspositionen der Walzen die entsprechenden Ketten zu
bilden und verglich die Ketten mit derjenigen, die man aus den abgefangenen Meldungen
erhalten hat. Dadurch war es möglich, die korrekte Stellung der Walzen zu
bestimmen. Unter
Simulation der Enigma befindet sich eine webbasierte Anwendung, mt der
Nachrichten ver- und entschlüsselt werden können.
RSA
Die Mathematik hinter RSA
Um das RSA Verfahren besser zu verstehen, sind gewisse mathematische
Kenntnisse notwendig.
5.1.
Primzahlen, Faktorisierung
Jede
ganze Zahl n kann durch ein Produkt von Zahlen pi
dargestellt werden:

Diese
Darstellung einer ganzen Zahl wird
Primfaktorzerlegung genannt. Nun gibt
es allerdings auch Zahlen, die nur durch sich selber und 1 teilbar
sind. Diese Zahlen werden
Primzahlen genannt. Die Reihe der
Primzahlen fängt folgendermassen an: 2, 3, 5, 7, 11, 13, 17, 19,
23, 29, 31, 37 .... und es gibt unendlich viele Primzahlen.
5.2. Der
grösste gemeinsame Teiler (ggT).
Der
grösste gemeinsame Teiler von zwei ganzen Zahlen p und q ist die
grösste Zahl, durch die sich sowohl p, als auch q teilen lassen.
Um den ggT zweier Zahlen zu berechnen, kann man die beiden Zahlen in
ihre Primfaktoren zerlegen und die Faktoren, die bei beiden Zahlen
vorkommen, miteinander multiplizieren. Wenn wir den ggT von 7254 und
19565 suchen, können wir als erstes die Primfaktoren berechnen:
7254 = 2 x 3 x 3 x 13 x 31 resp. 19565 = 5 x 7 x 13 x 43. Der einzige
Faktor, der bei beiden Zahlen vorkommt, ist 13. Darum gilt:
ggT(7254,19565)=13.
5.3. Die
Modulo Funktion
Im
Alltag rechnen wir oft mit den positiven ganzen Zahlen. Wenn wir bis
16 zählen, dann bekommen wir folgende Reihe:
0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16...
In
der Kryptographie kommt ein anderes Zahlensystem zum Einsatz. Dabei
gibt es nicht mehr unendlich viele Zahlen, sondern nur noch n. Für
n=7 ergibt das folgende Art zu zählen:
0
, 1 , 2 , 3 , 4 , 5 , 6 , 0 , 1 , 2 , 3 , 4 , 5 , 6, 0, 1, 2...
Wenn
wir eine Zahl von unserem gewohnten System in das neue umrechnen
wollen, brauchen wir nur den Rest bei der Division durch n zu
berechnen. So wird mit n=7 zum Beispiel 15 zu 1, da 15=(2x7) + 1.
Etwas formaler: 15 % 7 = 1.
5.4. der RSA Algorithmus
Um
die beiden RSA Schlüssel zu berechnen, brauchen wir als erstes
zwei Primzahlen p und q. Davon ausgehend berechnen wir: n=pq und
f=(p-1)(q-1). Zudem brauchen wir noch eine
Zahl E, für die gilt: ggT(E,f)=1 und
eine Zahl D mit folgender Eigenschaft: (DE)=1%f.
Am einfachsten berechnet man D, indem man eine ganze Zahl x sucht,
für die folgendes gilt: D=(xf+1)/E,
und D ist ganzzahlig. Für die Verschlüsselung einer
Nachricht M brauch man E und n:

Entschlüsselt
wird mit D und n:

Setzt
man p=7 und q=19, kann man folgende Schlüssel generieren:
n=7x19=133;
f=(7-1)x(19-1)=6x18=108
E=5
D=65
Nun
nehmen wir eine Nachricht M (z.B. 7) und verschlüsseln:
C=(M^E)%n=(7^5)%133
= 16807%133=49
Zum
Entschlüsseln berechnen wir:
M=(C^D)%n=(49^65)%133=7
5.5. Knacken
des RSA Algorithmus
Um
den RSA Algorithmus zu knacken, müssen wir einen Weg finden, aus
dem öffentlichen Schlüssel, den privaten zu errechnen.
Dieser besteht aus dem Zahlenpaar 5 und 133. Gesucht ist D mit
DE=1%f. Um D zu berechnen, müssen wir
zuerst f kennen, wofür wir wiederum n
in Faktorisieren müssen. Genau das ist aber sehr zeitaufwendig,
wenn n sehr gross wird. Bislang ist es noch niemandem gelungen, ein
Verfahren zu entwickeln, um grosse Zahlen schnell zu faktorisieren.
Fände man ein solches, dann wird der RSA Algorithmus nutzlos.
Es
ist klar, dass die Sicherheit der Verschlüsselung von der Grösse
der Schlüssel abhängt. Heutzutage wird meistens mit einem
1024-Bit Schlüssel gearbeitet. Da Computer immer
leistungsfähiger werden, dürften die Schlüssel in
Zukunft länger werden. Bereits 1994 wurde ein 426-Bit Schlüssel
geknackt, Anfang 1999 einer der Länge 465 und mittlerweile sind
sogar Schlüssel der Länge 512 geknackt wurden. Die deutsche
Regulierungsstelle für Telekommunikation und Post empfiehlt,
Schlüssellängen von 1024 und mehr, um eine ausreichende Sicherheit
zu gewährleisten.