Hill-Chiffre

Dieser Rechner nutzt die Hill Chiffre um einen Text zu verschlüsseln / entschlüsseln

Laut einer Definition von Wikipedia, gehört die Hill-Chiffre in die klassische Kryptographie, genauer in den Bereich der polyalphabetischen Substitution, basierend auf lineare Algebra. Erfunden wurde sie von Lester S. Hill im Jahr 1929. Der Kryptograph war zu dieser Zeit der erste monoalphabetische Kryptograph, der praktisch (wenn auch kaum) an mehr als drei Symbolen zugleich operieren kann. Die folgenden Absätze setzen ein grundsätzliches Wissen der Matrizen aus.

PLANETCALC, Hill-Chiffre

Hill-Chiffre

Alle zu verschlüsselten Zeichen müssen zum Alphabet gehören
Transformierter Text
 

Wie es funktioniert

Zuerst werden die Zeichen des verwendeten Alphabets (das Alphabet ist ein Satz von Zeichen, zum Beispiel wird für das Alphabet im obigen Rechner Leerzeichen, Komma und Punkte verwendet) mit Ziffern verschlüsselt, z.B. mit der Reihenfolge des Zeichens im Satz. Dann wählt man eine Matrix mit der nn Größe aus, was der Schlüssel für die Verschlüsselung darstellt. Der Text wird dann in Bläcken der Größe n geteilt, und jeder Block formt einen Vektor mit der Größe n. Jeder Vektor wird mit der Matrix nn multipliziert. Das Ergebnis, ein Vektor der Größe n, ist ein Block verschlüsselter Text. Hierfür wird modulare Arithmetik verwendet, Dies bedeutet, dass alle Operationen (Addition, Subtraktion, und Multiplikation) in einem Ring von Ganzzahlen durchgeführt werden, wobei der Modul m die Länge des Alphabets ist. Damit kann man sicher gehen, dass das Ergebnis zum selben Alphabet gehört.

Die Matrix ist der Schlüssel, jedoch hilft es die Schlüsselphrase zu nutzen, welche mit den Zifferndarstellung und Matrix transformiert wird. Um eine Matrix mit der Größe n*n zu erstellen, sollte die Schlüsselphrase das Quadrat einer Ganzzahl sein, z.B. 4, 9, 16.

Weitere Restriktionen für den Schlüssel ergeben sich aus der Notwendigkeit, den verschlüsselten Text zu entschlüsseln :)

Und für dies benötigt man die modulare Inverse für den Matrizenschlüssel in {Z}}_{{m}}^{n} - Ring von Ganzahlen mit Modul m.

Falls der Quellenvektor B mit der Matrix A multipliziert wird um Vektor C zu erhalten, dann muss man diesen mit der modularen Inverse der Matrix multiplizieren, um Vektor B von Vektor C wiederherzustellen (den Text entschlüsseln).

BA=C \to CA^{-1}=BAA^{-1}=BE=B

Daher gelten die folgenden Restriktionen:
Die Determinante der Matrix solle nicht gleich Null sein, und zusätzlich sollte die Determinante eine modulare multiplikative Inverse haben

Die folgende Formel schreibt letzteres vor:

A^{-1} = \frac{1}{\det A}\cdot C^* \to A^{-1} = (det A)^{-1}\cdot C^*.

wobei die Multiplikations-Operation die Divisions-Operation durch die modulare multiplikative Inverse ersetzen kann.

Um die modulare multiplikative Inverse zu erhalten, sollte die Determinante und das Modul (Länge des Alphabets) eine teilerfremde Ganzzahl sein (bezogen auf Modulare multiplikative Inverse). Um die Wahrscheinlichkeit zu erhöhen, sollte das Alphabet verlängert werden, so dass die Länge eine Prim-Ganzzahl ist. Daher beinhaltet das englische Alphabet im obigen Beispiel Leerzeichen, Komma und Punkte, damit es 29 Zeichen hat – und 29 ist eine Primzahl.

Nicht jede Schlüsselphrase kann man als Schlüssel verwenden, jedoch gibt es mehr als genug die man nutzen kann.

URL zum Clipboard kopiert
PLANETCALC, Hill-Chiffre

Kommentare