Hallo,
Ich habe hier ein sehr ausgefallenes Anliegen.
Hab Ihr theoretisch eine Idee wie man eine Datei unter Python verschlüsselt, es soll aber möglich sein mehrere Keys zum entschlüsseln zu generieren.
Verschlüsselungen sind ja in der Regel immer statisch sprich:
Passwort ausdenken = x >> Datei verschlüsseln >> Datei wieder entschlüsseln mit Passwort = x.
Meine Idee sieht aber so aus:
Algorithmus >> Datei verschlüsseln >> Datei anhand des Algorithmus wieder entschlüsseln. (Ich habe die Möglichkeit Anzahl x Schlüssel zu generieren und diese dann z.B. an meine Kunden zu verteilen)
Also quasi wie ein CD-Key welcher auch erst den Zugriff auf ein Spielt gewährt wenn der Key richtig ist!
Liebe Grüße und Danke
Dateien verschlüsseln - Vergleichbar mit Lizenzschlüsseln
Eine Möglichkeit wäre die Datei mit einem zufälligen Schlüssel zu verschlüsseln und diesen dann n mal mit n verschiedenen Schlüsseln mit der Datei ausliefern. Dann kann man die Schlüssel verteilen und jeder Empfänger kann den Schlüssel zum Entschlüsseln mit seinem Schlüssel entschlüssen. Das wird bei PGP mit mehreren Empfängern zum Beispiel so gemacht.
Mir ist gerade auch was cooles dazu eingefallen:
Die Datei wird mit einem Numerischen Kennwort verschlüsselt (Nur ASCII Zeichen) Jedes ASCII Zeichen hat auch einen Wert... Beispiel: http://www.code-knacker.de/ascii.htm
Wenn man nun alle ASCII Zeichen addiert oder wie auch immer zusammenrechnet (je nach Algorithmus) bekommt man am Ende wieder den Schlüssel bzw. das echte Kennwort raus um die Datei wieder zu entschlüsseln.
Sinn freies Beispiel:
Echtes Passwort: 23778102
Key für Kunde: 24551-87761-87223-12123-94432
Jetzt gehen wir mal davon aus das dass alles den normen entspricht (Ist jetzt ja nur zusammen gespinnt) Dann: wäre die Rechnung wie folgt.
Key von Links nach rechts:
Wert von 2 = 2000 + Wert von 4 = 23227 usw usw... am Ende hat man dann den Wert bzw. das Kennwort: 23778102 zusammen-addiert
Mach das Sinn was ich hier sage?
Die Datei wird mit einem Numerischen Kennwort verschlüsselt (Nur ASCII Zeichen) Jedes ASCII Zeichen hat auch einen Wert... Beispiel: http://www.code-knacker.de/ascii.htm
Wenn man nun alle ASCII Zeichen addiert oder wie auch immer zusammenrechnet (je nach Algorithmus) bekommt man am Ende wieder den Schlüssel bzw. das echte Kennwort raus um die Datei wieder zu entschlüsseln.
Sinn freies Beispiel:
Echtes Passwort: 23778102
Key für Kunde: 24551-87761-87223-12123-94432
Jetzt gehen wir mal davon aus das dass alles den normen entspricht (Ist jetzt ja nur zusammen gespinnt) Dann: wäre die Rechnung wie folgt.
Key von Links nach rechts:
Wert von 2 = 2000 + Wert von 4 = 23227 usw usw... am Ende hat man dann den Wert bzw. das Kennwort: 23778102 zusammen-addiert
Mach das Sinn was ich hier sage?
Zuletzt geändert von mimocloud am Dienstag 14. Mai 2013, 15:09, insgesamt 1-mal geändert.
@mimocloud: Macht Sinn. Du solltest aber davon ausgehen, dass das sowie Dein Programm auch nur ein bisschen Interessant ist, geknackt werden wird. Und wenn Dein Programm nicht interessant ist, brauchst Du diesen „Schutz” nicht.
@mimocloud: Kannst ja mal schauen ob Du Informationen darüber findest wie bei OnlineTvRecorder.com die Dateien verschlüsselt werden.
Das es sich um Containerdateien handelt ändert nicht so viel an der Aussage. Wenn sie interessant sind, besteht die Chance das jemand einen Keygenerator schreibt, mindestens um aus einem offiziellen Schlüssel inoffizielle zu generieren.
Das es sich um Containerdateien handelt ändert nicht so viel an der Aussage. Wenn sie interessant sind, besteht die Chance das jemand einen Keygenerator schreibt, mindestens um aus einem offiziellen Schlüssel inoffizielle zu generieren.
Ja okay das ganze wird alles in ein relativ großes Programm reingepackt das wird man denke ich nicht soviel rausziehen können.
zumal werden die Container Dateien noch signiert. Wenn man also versuchen sollte das anzuwenden muss man einmal den Key vom Kunden und dieser muss auch noch auf den Abdruck vom Zertifikat passen daher denk ich nicht das man das mal eben so machen kann!
Zudem werden die Zertifikate auch noch selbst erstellt nach eigenem Algro.
zumal werden die Container Dateien noch signiert. Wenn man also versuchen sollte das anzuwenden muss man einmal den Key vom Kunden und dieser muss auch noch auf den Abdruck vom Zertifikat passen daher denk ich nicht das man das mal eben so machen kann!
Zudem werden die Zertifikate auch noch selbst erstellt nach eigenem Algro.
/me meinte ein Problem für dich, nicht für den Personenkreis, welcher die Verschlüssleung knacken will. Selbstgebastelte Verschlüsselungsansätze führen häufig dazu, dass die Sicherheit dramatisch abnimmt. Sei es durch Fehler in der Umsetzung oder durch grobe mathematische Fehler. Zum Beispiel die Größe des Schlüsselraums oder die Verteilung der Schlüssel im Raum.mimocloud hat geschrieben:Das wiederum freut mich zu hören
Das Leben ist wie ein Tennisball.
Ganz trivial, aber wirklich nur zum Spielen, wird es mit Funktionen, die irgendwie zyklisch sind. Also zum Beispiel Sinus.mimocloud hat geschrieben:Hab Ihr theoretisch eine Idee wie man eine Datei unter Python verschlüsselt, es soll aber möglich sein mehrere Keys zum entschlüsseln zu generieren.
sin(0) == 0
sin(2*pi) == 0
sin(4 * pi) == 0
uns so weiter. Ähnlich geht es mit jeder Zahl zwischen 0 und 1, die vom Sinus produziert werden kann. Dein Schlüssel könnte also Vielfache von 2*pi sein und immer wieder denselben geheimen Schlüssel (hier Null) produzieren.
Wenn es in der wissenschaftlichen Krypto-Literatur dazu nichts gibt, dann würde ich die Finger davon lassen, wenigstens, wenn es um ernste Anwendungen geht.
Xe
@xeike: Sinus ist ein schlechtes Beispiel. Jeder kann, wenn er einen Lizenzschlüssel besitzt, damit beliebig viele andere gültige Lizenzschlüssel erzeugen.
Für eine sichere Methode brauchst Du aber ein asymmetrisches Funktion-Umkehrfunktionspaar:
- a ist der Lizenzcode
- s ist der Entschlüsselungscode
- die Funktion u(aⁿ) → s liefert für verschiedene aⁿ jeweils das gleiche s
- die Funktion ū(s,g,n) → aⁿ liefert mit Hilfe eines geheimen g für verschiedene n gültige Lizenzcodes a
Für eine sichere Methode brauchst Du aber ein asymmetrisches Funktion-Umkehrfunktionspaar:
- a ist der Lizenzcode
- s ist der Entschlüsselungscode
- die Funktion u(aⁿ) → s liefert für verschiedene aⁿ jeweils das gleiche s
- die Funktion ū(s,g,n) → aⁿ liefert mit Hilfe eines geheimen g für verschiedene n gültige Lizenzcodes a