Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: Neue (?) Verschlüsselung.... Wie sicher ist sie?
27. Aug 2006, 18:28
Keine Ahnung was Dan Brown damit gemeint hat aber wir können mal einen Vergleich der Komplexität (und darum gehts bei der Kryptographie immer!) zwischen deinem Verfahren und einem anerkannten Verfahren wie AES machen.
AES arbeitet mit 128 Bit Schlüsseln und ist ein 128 Bit Blockcipher. Interessant für uns sind die 128 Bit Blockgröße. Das bedeutet das es exakt 2^128 verschiedene Datenblöcke als Inputs geben kann die dann auf exakt 2^128 andere Output Blöcke transformiert werden. Ohne den Passwordstream ist diese Transformation nicht umkehrbar.
Angenommen du benutzt eine Indexdatei die 4 Gb groß ist. Pro Index verbrauchen wir 4 Bytes macht also 1 Milliarde unterschiedlicher Transpositionen beim Mapping von einem Wort zu einem anderen Wort. Wir können also mit max. 1 Million unterschiedlicher Worten arbeiten. Das dürfte damit ca. 4 mal mehr sein als es zb. deutsche Worte gibt (ca. 250000).
Im vergleich heist dies
AES 2^128 mögliche Transpositionen
Dein Verfahren ca. 250.000 mögliche Transpositionen.
Die Komplexität eines guten Verfahrens (nur einfach berechnet OHNE dabei auch die Art&Weise der mathematischen Operation dieser Transpositon zu berücksichtigen !!) ist demnach x := 2^128 / 250.000 mal größer und X als Zahl ausgeschrieben ist
2^128 = 340282366920938463463374607431768211456
250000 ~ 2^19
2^128 / 250000 = 1361129467683753853853498429727072
x := 1361129467683753853853498429727072
Also 1361129467683753853853498429727072 mal ist ein normaler Cipher heute stärker als deine Methode.
Nimmt man also deine Textdatei die verschlüselt werden soll, so kannst du mit deinem Verfahren nur soviele Wörter umkodieren wie es in unserem Sprachschatz tatsächlich gibt. Würde man die gleiche Datei mit AES verschlüsseln so würde es zu jedem möglichen deutschen Wort ca. 1361129467683753853853498429727072 verschiedene Kombinationen geben, statt nur eine 1 zu 1 Transposition.
Damit ist der Symbol-Raum der binären Verschlüsseung mit AES nicht nur weit weit stärker sondern hat noch den Vorteil das es zu keinerlei Veränderung der Dateigröße gibt. In deinem Falle könnte ja ein Wort wie UND in ein Wort wie HAUSFRAU gemappt weden, ergo eine Änderung in der Datengröße. Das gibts bei AES nicht, trotz weit besserer Komplexität, und dies ist ein großer technischer Vorteil vom AES im praktischen Betrieb.
[edit]
Soweit zur Komplexität und meiner Kritik an deinem Verfahren. Nun noch einige Verbersserungsvorschläge die dein Verfahren mehr Sinn verleihen.
Also deine Index-Datei bleibt erhalten und mappt ein Wort zu einem Index der zb. 24 Bit pro Eintrag groß ist. Das wären also 3 Bytes pro Wort. Nun hats du noch eine Wortdatenbank, natürlich effizient sortiert und durchsuchbar. Beim Verschlüsseln wird deine Testdatei geladen und Wortweise zerlegt. Jedes Wort wird in deiner Wortdatenbank gesucht und dessen Index als Zahl ermittelt. Dieser Index dient als Index zum Zugriff auf deine Indexdatei, eher eine SBox-Datei. Du nimmst nun den darin hinterlegten 24 Bit Zahlenwert und speicherst diesen in unsere verschlüsselte Output-datei.
Du hast also eine Textdatei so umkodiert das sie pro Wort nur 3 Bytes benötigt im Output. Du müsstest damit also eine Komprimierung erhalten. Defakto kannst du je nach Wahrscheinlichkeiten der Worte im Text die Größe der Kodierungsbytes dynamisch anpassen, so wie bei der Huffman Komprimierung. Sehr häufige Wörter werden also mit kurzen Codes kodiert und seltene Wörter mit langen Codes. Damit bekommst du eine Komprimierungsrate hin die höher ist als jede ZIP Komprimierung und denoch keine verlustbehaftete Komprimierung ist.
So, fehlt noch unser Passwort. Ohne Passwort funktioniert das Verfahreen wie eben beschrieben, es mappt nur die Wörter in IDs basierend auf unsere Index-Datei. Mit Passwort würde der Index unseres Wortes in der Wortdatenbank erstmal mit einem Passwortstream umkodiert und dann erst als Index in unsere ID-Index-Datei benutzt. Oder besser noch wird man nachdem man unsere ID zum Wort ermittelt wurde diese ID mit dem Passwortstrom umkodiert. Dh. selbst mit bekannter Wortdatenbank und ID-Index-Datei benötigt man noch das Passwort um die verschl. Datei zu entschlüsseln und zu dekomprimieren.
[/edit]
Gruß Hagen
|