The Net Wizard HauptseiteLinuxScreenshotsVelotourenSoftwareKryptografieVaria
Some examples about cryptography

    Die Geschichte der Kryptografie

  1. Einleitung

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

  3. Monoalphabetische Substitution

  4. 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:

    abcdefghijklmnopqrstuvwxyz
    STUVWYYZABCDEFGHIJKLMNOPQR
    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.

  5. Polyalphabetische Substitution

  6. 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:

    - abcdefghijklmnopqrstuvwxyz
    HHIJKLMNOPQRSTUVWXYZABCDEFG
    AABCDEFGHIJKLMNOPQRSTUVWXYZ
    SSTUVWXYZABCDEFGHIJKLMNOPQR
    EEFGHIJKLMNOPQRSTUVWXYZABCD

    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.

  7. Enigma

  8. 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:

    1. eine Tastatur
    2. ein Steckbrett
    3. drei Walzen
    4. 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:

    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    TUDLMZYWBARVXCHEFGOIJKNSQP

    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.

  9. RSA

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

Powered by w3.css