Nochmal hallo :-)
Ich kenne dich ja nicht, aber das wirkt auf mich wie ein Fall von Selbstüberschätzung. Es geht nicht darum, möglichst unkonventionelle Methoden zu finden, etwas zu verschlüsseln, sondern möglichst sichere.
Also - _Wenn_ die Idee so _unkonvetionell_ ist, dass _keiner_ ihr folgen kann, oder _nicht_ weiss, in welcher Richtung er suchen muss, dann kann man doch ohne zu übertreiben behaupten, dass der Code sicher ist?
Ein Aussenstehender ist da vielleicht objektiver, weil er weitere Möglichkeiten in Betracht zieht. Zum Beispiel ein morphogener Schlüssel, der auch noch von variablen Faktoren abhängt.
Kannst du mir etwas genauer erläutern, was du dir darunter vorstellst.
Zum Beispiel variabeln, die sich ein Dekoderprogramm aus "anderweitigen" Quellen holt, und nur unter bestimmten Vorraussetzung funktioniert. Beispilsweise eine bestimmte Systemkonfiguration, Speichergrösse, Festplattennummer, Annordnung von Dateien auf der Festplatte, damit wäre nur das bestimmte Zielsystem in der Lage, den Code zu entschlüsseln.
So könnte ein solcher Schlüssel beispielsweis nur zu einem bestimmten Datum oder Zeit aktiviert werden, damit er richtig funktioniert) Die Möglichkeiten sind manigfalltig.
Und was hindert den Angreifer daran, das Zeitmessungssystem zu manipulieren?
Siehst du, das ist genau was ich meine. Du weisst jetzt, dass der Decoder ein Zeitschloss hat. Und in der kodierten Datei irgendwo ein Hinweis sein muss, welche Zeit valide ist. Wenn du jetzt aber diese Info nicht hast, dann kommst du nur schwer drauf, das du vielleicht zur falschen Zeit decodieren wolltest. Die Sicherheit bei self-Codes liegt hauptsächlich in der Unwissenheit des Angreifers. Ich hoffe du verstehst was ich dir sagen möchte. ;-)
Entschuldigung, aber du hast micht immer noch nicht verstanden. "was du willst" ist der entscheidende Teil, denn davon, welche Rechenoperationen du durchführst, hängt die Sicherheit ab.
Ein paar Zeilen Babycode:(will mich jetzt auf den syntax nicht genau festlegen - ist schliesslich ne weile her)
Codewort:
s=115
e=101
l=108
f=102
Input zeichen$
x%=asc(var$) (hier wird der Zeichenwert übergeben 115)
Dann als _einfache_ Lösung:
codeone%= x%-50+3 (wäre 68 / diese Routine kann sehr komplex sein)
Man muss nicht jeden Wert durch die gleiche Routine schicken, sonder man kann sie von Zeichen zu Zeichen ändern. So 100 Codes dann wiederholt sich das ganze. In die Rechenroutine können Variabeln eingebaut werden, die ihren Wert aus der Codedatei beziehen. Durch geschicktes Einstellen des Zufallzahlengenerators, liefert dann die Rechenroutine ähnliche Werte wie für Zeichen. Da wird es schwierig, den Dummycode vom echten Inhalt zu unterscheiden.
Dieses sehr einfache Beispiel arbeitet mit Zahlenwerten. Es sind aber auch grafische Codes denkbar.
Beispielcode:
cva g otnm wphx
jeder Buchstabe, der unterhalb der mittleren Schrifthöhe bleibt, steht fur "kurz". Und jeder Buchstabe, der über die Schrifthöhenmitte ragt für "lang".
Also kkk k klkk kklk = self
Hier wären verschiedene Codewerte möglich, um ein und dasselbe zu übermitteln. Besonders schwer für dumme brute-force Programme, die sich nichts aber auch gar nichts von einem Schriftbild vorstellen können (weil eben nicht darauf programmiert).
Kodierte Grüsse sendet gary