Versuche mal als Value einen String aus lauter #0 Zeichen zu verschlüsseln. Du wirst sehen das im CipherText 1 zu 1 dein Verschlüsselungskey drinnen steht. Ein möglicher Angriff ist also die "Known Plain Text Attack" bei dem ich dir eben einen Value aus lauter #0 Zeichen unterjubel. Dein verschlüsselter Wert liefert mir dann frei Haus deinen Schlüssel. Ich muß dir aber garnicht einen Value aus #0 zeichen unterjubeln, JEDER beliebige Wert reicht aus.
Es gilt: nehme zur Verschlüsselung niemals direkt das Passwort !
Weiter gilt: eine compilierte Softare ist genauso gut wie ein lesbarer Source ! Heist auch wenn du deinen Algo. nicht als Source oder Dokumentation veröffentlichst, so ist eine veröffentlichte Software genauso gut wie ein Source zu analysieren. Ergo: einen Algorithmus geheim zu halten reduziert die Sicherheit auf -X Prozent. Man muß dann davon ausgehen das ein Angreifer denoch den Algo. kennt und diesen schon längst gebrochen hat. Desweiteren gilt aber auch das der Benutzer des Algos irrtümlicher Weise annimmt das keiner diesen Algo kennt, er verlässt sich also darauf und verschlüsselt munter weiter OHNE Mißtrauen. Die Sicherheit verkehrt sich in das Gegenteil und deshalb diese -X Prozent ! Es wäre dann nämlich viel sicherer garnicht zu verschlüsseln da dann der Benutzer davon ausgehen muß das dies unsicher ist und demzufolge sein Handeln im Umgang mit seinen Daten entsprechend anpassen wird.
Zitat:
Streng genommen muss man dann natürlich auch bekannte Verschlüsselunsmethoden als unsicher einstufen wenn man selber nicht versteht wie diese funktionieren und darum auch den vorhandenen Beweiss nicht versehen kann.
Streng genommen IST defacto JEDER Verschlüsselungalgo. IMMER auch knackbar, selbst ein OTP !
Aber! der feine Unterschied zwischen dem einem Verfahren und dem anderen liegt in deren mathematisch BEWEISBAREN Komplexität des Aufwandes diesen zu knacken. Während bei deinem Verfahren es
1.) geheim ist
2.) kein mathematischer Beweis deinerseits vorliegt das es sicher sein muß
gibt es andere Verfahren die
1.) öffentlich bekannt und analysiert wurden
2.) mathematisch bewiesen und berechnbare Komplextität besitzen
3.) die Komplexität so hoch ist das es praktisch defakto unmöglich zu knacken ist
4.) vielfach standardisiert und breitbandig benutzt werden
Streng genommen muß also jeder Laie in jedem Falle immer irgend jemandem vertrauen. Vertrauen heist nun das besonders derjenige dem man sein Vertrauen schenken muß dieses Vertrauen jederzeit brechnen kann (zu ungunsten des Laien natürlich). Es gibt KEINEN Weg, und wird es auch nicht geben, der technisch mathematischen Kontrolle dieses Vertrauens. Das Einzigste was man dagegen tuen kann ist die kollektive Kontrolle des Vertrauens in denjenigen der das Vertrauen geschenkt bekommen hat. Somit schließt sich der Kreis zur Behauptung "Sicherheit muß öffentlich sein" und ergo musst du deinen Algorithmus veröffentlichen damit er als wirklich sicher verifiziert werden kann.
Politisch gesehen ist diese krypt-mathematisch bewiesene Aussage sehr interessant, da sie nämlich einen Geheimdienst ansich als was nicht kontrollierbares beweist.
Gruß Hagen