Informatik am Johanneum/eigene Verfahren/11jojo

Aus ZUM Projektwiki

Zahlenverschlüsselung mit doppeltem Code

Bei diesem Subtitutionsverfahren werden die Wörter mithilfe von Zahlen verschlüsselt. Für die Entschlüsselung werden zwei verschiedene Codes benötigt.

Verschlüsselung

Bei meinem Verfahren wird jedem Buchstaben aus dem Alphabet eine Zahl zugeordnet nach dem Prinzip A-Z 1-26. Dann werden die Zahlen in eine mathematischen Gleichung eingesetzt (dabei wird Punkt vor Strichrechnung ignoriert und nur von rechts nach links gerechnet) und das Ergebnis davon wird mit der Position im Satz multipliziert [z.B. Erster Buchstabe: *1] und hingeschrieben. Alle Zahlen werden direkt hintereinander geschrieben, ohne Leerzeichen oder sonstiges zu lassen. Damit klar ist, wie viele Zahlen zu einem Buchstaben gehören gibt es einen zweiten Code, der mittels Zahlen beschreibt, wie viele Zahlen aus der Zahlenreihe jeweils zu dem Buchstaben gehören, falls in der Zahlenreihe negative Zahlen oder Zahlen mit Kommastellen vorkommen, wird das in diesem Code hingeschrieben, nicht in der Zahlenreihe, um Auffälligkeiten in dieser zu vermeiden [Beispiel: In der Zahlenreihe müsste eigentlich -5789,32 stehen, dann wird das Minus und die Kommastelle in der richtigen Zahlenreihe weggelassen, dafür aber im Code für die Buchstabenlänge -4,2 geschrieben-->- für das negative Vorzeichen, 4 für die 4 Zahlen vor dem Komma, 2 für die Zahlen nach dem Komma].

Entschlüsselung

Um die Zahlenreihe wieder zu entschlüsseln, braucht man erstmal den Code, um die Zahlenreihe in einzelne Buchstaben aufzuteilen. Um die einzelnen Buchstaben wieder zu entschlüsseln, muss die Gleichung einfach in umgekehrter Reihenfolge gerechnet werden.

Beispiel

Verschlüsselung

Der Satz: DASISTEINBEISPIEL würde in meinem Verfahren folgendermaßen verschlüsselt werden:

Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)

Der Satz in den Zahlen von 1-26: 4 1 19 9 19 20 5 9 14 2 5 9 19 16 9 5 12

Umwandlung durch die Gleichung:

Beispiel für die erste Zahl 4:

1) 4+7=11

2)11*23=253

3)253-4=249

4)249*12=2988

5) 2988*1=2988

Für alle Zahlen ergibt sich folgende Zahl: 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332=

29884320213841747235640444242284834944517322436035904524169266488200655205222488332

Daraus ergibt sich folgender Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5

Entschlüsselung

Um die Zahlenreihe wieder zu entschlüsseln werden folgende Codes benötigt:

-Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)

-Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5

Damit wird die Zahlenreihe erstmal wieder in einzelne Buchstaben geteilt:

29884320213841747235640444242284834944517322436035904524169266488200655205222488332= 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332

Dann wird für jede Zahl die Gleichung rückwärts zurückgerechnet:

Beispiel für den ersten Buchstaben:

1)2988/1=2988

2)2988/12=249

3)249+4=253

4)253/23=11

5)11-7 =4

Das wird für jeden Buchstaben gemacht und die Ergebnisse werden wieder zu Buchstaben im Alphabet umgewandelt.

Sicherheitsbewertung

Die Vorteile dieser Verschlüsselungstechnik sind, dass es nicht sehr einfach ist die einzelnen Buchstaben in der Zahlenkette zu erkennen, dadurch ergibt sich, dass Unklar ist, wie lang der Satz oder das Wort ist. Ein weiterer Vorteil ist, das eine Häufigkeitsanalyse wahrscheinlich nicht funktioniert, da selbst gleiche Buchstaben unterschiedliche Zahlen zugewiesen bekommen. Der dritte Vorteil ist, dass es zwei Codes gibt, einen denen man dauerhaft festlegen kann (Gleichung) und einen individuellen für jede Nachricht (Code für die Buchstabenlänge). Ein Code alleine kann die Nachricht nicht sofort entschlüsseln. Zudem kann durch komplexere Gleichungen (Dividieren, quadrieren, negative Ergebnisse, etc. die Zahlenreihe noch komplexer bzw. komplizierter werden.

Der Nachteil ist, dass bei jeder Nachricht ein neuer Code für die Buchstabenlänge mitgeschickt werden muss, welcher abgefangen werden kann, allerdings bringt einem dieser Code recht wenig, wenn man nicht auch die Gleichung kennt, um die Zahlen der Buchstaben auszurechnen, vorallem wenn die Gleichung komplex ist.