So, ich denke jetzt ist es an der Zeit den Schlüssel des Codes herauszugeben!
Zunächst aber noch die Siegerehrung: das Passwort herausgefunden haben als erstes:
1. thewulf00 12.11.2007, 17:04
2. Andun 12.11.2007, 17:12
(Was für eine knappe Entscheidung )
Und dann noch die Sieger des Bonus-Rätsels (Hallo in verschlüsselter Form versenden):
1. 0x3FFF 12.11.2007, 18:06
2. milkbubi 12.11.2007, 20:01
So und nun der Schlüssel:
Also vom Originaltext wird wird jeder Buchstabe zunächst einzeln durchgegangen.
Der ASCII Code jedes Buchstabens wird mit 700 Addiert. Dann wird eine 2-Stellige Zufallszahl generiert und vom Ergebniss abgezogen. (Da lag der erste Softwarebug bei mir: ich habe ein Zufallszahl von 1-99 generiert, was dann später beim auswerten natürlich zu fehlern führt, wegen der undefinierten Zeichenkettenlänge)
Somit wird also dann jeder Buchstabe mit einer 3-Stelligen Zahl zwischen 600 und 955 generiert. und somit haben 5x der gleiche Buchstabe immer einen anderen Code.
Um das ganze Salatklamauk wieder entschlüsseln zu können folgen nun (in gleicher Reihnfolge wie die Buchstaben; Ich wollt ja mal nicht zu fies sein ) nacheinander die generierten 2-Stelligen Zufallszahlen.
Und um den Codeknacker dann (mal wieder) etwas zu verwirren, folgen dann noch so viele Zufallszahlen wie der Unverschlüsselte Text Zeichen hat. Also bei "Hallo" 5 Zufallszahlen.
Somit denkt jeder dann im gesamten, das 6 Zahlen auf jeden Buchstaben kommen, wobei es aber nur 5 sind.
Leider leider habe ich allerdings beim schreiben des Programmes vergessen den Timer auf einen zufallswert zu setzen. Und somit das mir das Programm (von mir zunächst unbemerkt) immer wieder die gleichen Zufallszahlen in der gleichen Reihenfolge generiert. Und desshalb war dann immer bei der ersten Verschlüsselung direkt nach Programmstart der Hintere Teil exakt gleich *grrr* Das hatte mich ziemlich geärgert, weil es dadurch nicht mehr 3.-Level Niveau hatte und recht easy entschlüsseln lies.
Desshalb dann ja noch der Bonus das Wort "Hallo" mit diesem Schlüssel zu verschlüsseln. Denn nur das beweist letztlich das jemand den Schlüssel wirklich erkannt hat.
Aber zunächst zu dem Verschlüsselten Passwort und dessen Lösung:
Code:
Datenlänge = 6
Code = 747810723714698678725761363778178714
Da die Daten länge = 6 ist, können wir schonmal die letzten 6 Zeichen weg löschen:
Code = 747810723714698678725761363778
So und nun kommen ja auf jeden Buchstaben 3 Zahlen, also kann man die Zeichenkette nach 18 Zeichen zerteilen:
Code1 = 747810723714698678
Code2 = 725761363778
Dann die unterteilung der beiden Codes zu 3 und 2 Zeichen:
Code1 = 747 810 723 714 698 678
Code2 = 72 57 61 36 37 78
Dann die zusammengehörigen Zahlen miteinander Addieren und 700 subtrahieren:
747 + 72 - 700 = 119
810 + 57 - 700 = 167
723 + 61 - 700 = 84
714 + 36 - 700 = 50
698 + 37 - 700 = 35
678 + 78 - 700 = 56
So und nun braucht man nur noch einen Blick in die ASCII-Code Tabelle werfen:
119 = w
167 = §
84 = T
50 = 2
35 = #
56 = 8
Also: w§T2#8
So und falls sich nun jemand fragt: Wie soll man denn darauf kommen?
Für diejenigen gibt es hier einen Lösungsweg, wie ich denke, man hätte drauf kommen können (Ich achte ja auch darauf, das es lösbar bleibt):
Code:
Also man nehme sich die Verschlüsselung der 10 Leerzeichen (sowas geht am besten)
Code:
7077076776867126976666486787052
52555462035668454279437253864
man sieht, das es 60 Zeichen insgesamt sind, also teilt man es (in der Vermutung) zunächst alles in 3-er Blöcke:
707 707 677 686 712 697 666 648 678 705
252 555 462 035 668 454 279 437 253 864
Dabei ist recht schnell zu erkennen, das die ersten 10 Zeichen untereinander nur 41 Zeichen voneinander getrennt sind. Die anderen 10 hingegen sind kunter bund, also lässt man die erstmal in Ruhe und beschäftigt sich mit den ersten 10.
Da das alles Leerzeichen sind, guckt man sich einfach mal die ASCII Verschiebung zum Leerzeichen (32) an:
707 = 675
707 = 675
677 = 645
686 = 654
712 = 680
697 = 665
666 = 634
648 = 616
678 = 646
705 = 673
nun gut, das sagt jetzt nicht so viel aus. Aber in diesem Falle sieht man eines: die ersten beiden Zeichen sind genau die gleichen...
Und wenn man sich jetzt die 2. Zahlenreihe genau ansieht, dann stellt man fest das diese mit 2525 beginnt. und 675 + 25 ergibt auch noch exakt 700!
Also die 2. Reihe doch in 2er-Blöcke teilen:
25 25 55 46 20 35 66 84 54 27 94 37 25 38 64
Das muss man näher Prüfen und die anderen Zahlen auch noch miteinander Addieren:
675 + 25 = 700
675 + 25 = 700
645 + 55 = 700
654 + 46 = 700
680 + 20 = 700
665 + 35 = 700
634 + 66 = 700
616 + 84 = 700
646 + 54 = 700
673 + 27 = 700
NANU!!! Das kann doch kein Zufall sein?
Darüber kann man dann auch wieder zurückrechnen und das Passwort lösen.
Ich habe an dieser Stelle bewusst die 700 benutzt und nicht eine 683 oder ähnliches, damit es einem aufmerksamen codecknaker auffällt das da eine gewisse Regelmäßigkeit drinn steckt.
Und nun dürfte das verschlüsseln des Wortes "Hallo" keinerlei Problem darstellen. dafür gibt es also dutzende verschiedene Lösungsmöglichkeiten, da ja alles auf dem Zufall basiert
So, nach diesem doch etwas in die Hose gegangenen Level, bleiben euch hier noch ein paar Tage zum Diskutieren über das dritte Level.
Des weiteren würde ich von euch gern wissen ob ihr euch ein 4. Level wünscht, oder ob evtl. erstmal jemand anderes hier einen Code Posten möchte.
Es Grüßt freudig
Robodriver
Lesezeichen