Hallo Allerseits.
Ich bin noch ziemlich neu hier im EF.
Kurze Vorstellung meinerseits:
Ich heiß Thomas, komm aus Freital bei Dresden, und bin begeisterter Hobby-Programmierer unter PASCAL.
Naja, und weil ich mich sehr für Sicherheit interessiere hab ich mir mal den Spaß gemacht, und ein Programm
zum Verschlüsseln von Dateien geschrieben.
Ihr ahnt es schon, ich bin interessiert an eurer Meinung, ob der Algorithmus sicher erscheint.
Ich werde ihn hier komplett beschreiben und eine damit verschlüsselte Datei anhängen.
Wer möchte und Lust und Zeit hat ist gerne eingeladen, zu versuchen, sie zu entschlüsseln.
Hier also die Beschreibung:
Der User gibt einen (numerischen!) Chiffrierschlüssel ein, der jedoch als String gespeichert wird.
Von diesem Schlüssel gelten nur die ersten 11 Zeichen!
Zuerst wird das 11te Zeichen überprüft. Davon, welches es ist (0-9) entscheidet sich dann, wie die anderen 10 Zeichen aufgeteilt werden.
Dabei wird aus den 10 verbleibenden Zeichen immer ein Zahlen-Triplett gebildet.
Ein Beispiel zur Erläuterung:
Es sei angenommen, der User gibt - als Telefonnummer wunderbar tarnbar - die Zahl 03514760346 ein.
Das letzte Zeichen ist hier die 6.
Für die 6 als Modus-Zeichen ist festgelegt (Triplett-Struktur): 4-3-3
Daraus ergibt sich eine aufteilung der Zeichenkette zu: 0351 - 476 - 034 - 6
Die 6 ist und bleibt die Modus-Ziffer und findet beim Schlüssel selbst keine Verwendung.
Aus den anderen 3 Werten werden nun die drei Schlüsselwerte 351 - 476 - 34 gebildet (Umwandlung String zu Int).
Mit diesen drei Werten beginnt nun die eigentliche Verschlüsselung.
Das erste (351) sei X, das zweite (476) sei Y, und das dritte (34) sei Z.
Nun erfolgt die Verschlüsselung wie folgt.
Die Datei wird geöffnet, es wird ein einzelnes Byte eingelesen.
Auf dieses Byte wird X addiert.
Dieses manipulierte Byte wird danach in eine Temporär-Datei geschrieben.
Nun ändert sich aber der Schlüssel auch noch! Nämlich wird alle Y Zeichen der Schlüssel durch eine Addition von Z erhöht.
Die erste 476 Byte im Besipiel würde also um 351 erhöht, die nächsten 476 bereits um 351 + 34 = 385.
Diese Prozedur erfolgt bis ans Dateiende der Originaldatei.
Aber damit nicht genug.
Beide Dateien werden erneut geöffnet, jetzt geht das ganze Spiel mit den selben Werten noch einmal los, allerdings wird jetzt aus der temporären
zurück in die originale datei ein zweites Mal verschlüsselt!
Demnach läuft die ganze Prozedur 2 Mal ab...
Zu guter Letzt wird noch die temporäre Datei gelöscht.
Es existiert also nach erfolgreicher Verschlüsselung kein unverschlüsseltes Original mehr!
So... was meint ihr? Ist das sicher???
Wenn ihr meint: Das geht auszuhebeln! dann versucht euch mal an der angehängten Datei. Zur Einfachheit mal "nur" eine *.txt
Schreibt bei erfolgreicher Entschlüsselung auch den Schlüssel dazu, den ihr gefunden habt.
Ich machs euch bissl einfacher. Er hat exakt 11 Stellen und ist NICHT die Nummer aus dem Beispiel oben.
Und nu: Viel Spaß
Greetz, Chudan
Ich bin noch ziemlich neu hier im EF.
Kurze Vorstellung meinerseits:
Ich heiß Thomas, komm aus Freital bei Dresden, und bin begeisterter Hobby-Programmierer unter PASCAL.
Naja, und weil ich mich sehr für Sicherheit interessiere hab ich mir mal den Spaß gemacht, und ein Programm
zum Verschlüsseln von Dateien geschrieben.
Ihr ahnt es schon, ich bin interessiert an eurer Meinung, ob der Algorithmus sicher erscheint.
Ich werde ihn hier komplett beschreiben und eine damit verschlüsselte Datei anhängen.
Wer möchte und Lust und Zeit hat ist gerne eingeladen, zu versuchen, sie zu entschlüsseln.
Hier also die Beschreibung:
Der User gibt einen (numerischen!) Chiffrierschlüssel ein, der jedoch als String gespeichert wird.
Von diesem Schlüssel gelten nur die ersten 11 Zeichen!
Zuerst wird das 11te Zeichen überprüft. Davon, welches es ist (0-9) entscheidet sich dann, wie die anderen 10 Zeichen aufgeteilt werden.
Dabei wird aus den 10 verbleibenden Zeichen immer ein Zahlen-Triplett gebildet.
Ein Beispiel zur Erläuterung:
Es sei angenommen, der User gibt - als Telefonnummer wunderbar tarnbar - die Zahl 03514760346 ein.
Das letzte Zeichen ist hier die 6.
Für die 6 als Modus-Zeichen ist festgelegt (Triplett-Struktur): 4-3-3
Daraus ergibt sich eine aufteilung der Zeichenkette zu: 0351 - 476 - 034 - 6
Die 6 ist und bleibt die Modus-Ziffer und findet beim Schlüssel selbst keine Verwendung.
Aus den anderen 3 Werten werden nun die drei Schlüsselwerte 351 - 476 - 34 gebildet (Umwandlung String zu Int).
Mit diesen drei Werten beginnt nun die eigentliche Verschlüsselung.
Das erste (351) sei X, das zweite (476) sei Y, und das dritte (34) sei Z.
Nun erfolgt die Verschlüsselung wie folgt.
Die Datei wird geöffnet, es wird ein einzelnes Byte eingelesen.
Auf dieses Byte wird X addiert.
Dieses manipulierte Byte wird danach in eine Temporär-Datei geschrieben.
Nun ändert sich aber der Schlüssel auch noch! Nämlich wird alle Y Zeichen der Schlüssel durch eine Addition von Z erhöht.
Die erste 476 Byte im Besipiel würde also um 351 erhöht, die nächsten 476 bereits um 351 + 34 = 385.
Diese Prozedur erfolgt bis ans Dateiende der Originaldatei.
Aber damit nicht genug.
Beide Dateien werden erneut geöffnet, jetzt geht das ganze Spiel mit den selben Werten noch einmal los, allerdings wird jetzt aus der temporären
zurück in die originale datei ein zweites Mal verschlüsselt!
Demnach läuft die ganze Prozedur 2 Mal ab...
Zu guter Letzt wird noch die temporäre Datei gelöscht.
Es existiert also nach erfolgreicher Verschlüsselung kein unverschlüsseltes Original mehr!
So... was meint ihr? Ist das sicher???
Wenn ihr meint: Das geht auszuhebeln! dann versucht euch mal an der angehängten Datei. Zur Einfachheit mal "nur" eine *.txt
Schreibt bei erfolgreicher Entschlüsselung auch den Schlüssel dazu, den ihr gefunden habt.
Ich machs euch bissl einfacher. Er hat exakt 11 Stellen und ist NICHT die Nummer aus dem Beispiel oben.
Und nu: Viel Spaß
Greetz, Chudan
Comment