wenn ich mir ein standard-verfahren ausdenke, dann würde nach offenlegung des algorithmus nur noch der schlüssel alleine zwischen den cracker und der entschlüsselung stehen.
Ja, die bekannten kryptographische Funktionen wie z.B. FIPS 46-2 (AES) sind dokumentiert und öffentlich verfügbar. Nur der (unbekannte) geheime Schlüssel fehlt dem potentiellen Angreifer zur entschlüsselung der verschlüsselten Information.
Kryptologen orientieren sich meist am Kerckhoffs-Prinzip (siehe
http://de.wikipedia.org/wiki/Kerckhoffs-Prinzip), das lautet:
„Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen. Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels.“
da ich ja zusätzlich die möglichkeit habe, den algorithmus geheimzuhalten,
auch in dem ich die decrypt-sequenz im programmcode selber kryptisiere...
sollte das nicht für die meisten belange mehr als ausreichend sein?
Implementierst du in deiner Software einen eigenen Algorythmus, stehen einem potentiellen Angreifer zwei Angriffsverfahren zur Verfügung:
- Mathematischer Angriff auf die verschlüsselte Information
- Analyse deiner Software
Implementierst du beispielsweise eine simple XOR oder Atbash (siehe
http://de.wikipedia.org/wiki/Atbash) Verschlüsselung von Klartext, wird ein sich bereits bei einer groesseren Textmenge über rein statistische Verteilung (z.B. Stärkere Verbreitung des Buchstabens "e" im Sprachraum denn "ö") ein Grossteil der Substitutionen ermitteln lassen. Selbst aufwändigere Methoden bieten einem gestandenem Kryptologen eine grosse Angriffsfläche.
Da Software die Ver-/Entschlüsselung implementieren muss, genügt eine Analyse der Software um den Algo zu verstehen. Selbst wenn der Prozess wiederum verschlüsselt wird, ist er zu irgendeinem Zeitpunkt im Speicher und kann durch einen Debugger ausgelesen werden. Ein Cracker geht auch nicht anders vor.
Selbstverständlich hast du recht, das alles in einer Relation zueinander steht. Niemand wird sich die Mühe machen den Algo softwareverschlüsselter Bookmarks zu knacken. Wenn es jedoch um die Übermittlung sensibler Informationen (PINs / Accounts / Kreditkartennummer und ähnliches) über das Internet geht, wie sieht es dann aus? Ganz zu schweigen von professionellen Anwendungen, die z.B. elektronische Tickets zum selbstausdrucken generieren sollen.