Wie sicher ist XOR ?



  • Hallo,

    ich habe ein programm in php geschrieben was mir per XOR einen string verschlüsselt, dieser verschlüsselte string wird per kommandozeile an mein c++ programm übergeben.
    die länge des zu verschlüsselten strings ist 20+

    ich habe eine sammlung von 100 keys, mit der länge 20, es wird per zufall ein key zum verschlüsseln ausgewählt. des ausgewälte key wird auch per kommandozeile übergeben zB 14 (14 für den 14ten key).

    wie sicher ist eigentlich XOR ?
    in diversen foren wird behaupted, XOR sei sehr schnell entschlüsselbar wenn die keylänge niedrieger ist als die passwortlänge.



  • Wie sicher die XOR-Verschlüsselung ist, hängt afaik stark von der Schlüssellänge ab - zur Entschlüsselung siehe Vigenere.

    (wirklich sicher wird es nur, wenn du einen echt zufälligen, einmalig genutzten Schlüssel hast, der genauso lang ist wie der Originaltext (Stichwort: One Time Pad), aber das ist nicht wirklich praktikabel)



  • Naja, in deinem Fall würde ich ein Skript schreiben, dass 1000 mal "00000000000000000" verschlüsselt und so hätte ich ziemlich schnell deine hundert Schlüssel. Und dann würde ich alle Schlüssel mal ausprobieren, wenn ich was entschlüsseln wollte. Wenn der verschlüsselte Text deutsche oder englische Worte enthält, würde ich so ganz gut sehen, welche Version das Original war.

    Was willst du denn machen? Wahrscheinlich gibt es da eine besser Lösung. Wenn du Passwörter verschlüsseln willst, verwende gesalzene Hashes.



  • Mr.Fister:
    Wenn Du aus der Bitfolge einfach alle Kombinationen herausholst, die möglich sind, dann kannst Du Dir auch einfach was ausdenken...



  • Ich kann dir nicht ganz folgen. Nochmal:

    Ich verschlüssele einen beliebigen, 20 Zeichen langen String etwa 1000 mal mit seinem Programm. Die resultierenden Zeichenketten XORe ich mit meinem ursprünglichen String und schon habe ich (höchstwahrscheinlich) alle seine Schlüssel.



  • Nimm doch einfach die Schlüssel die höchstwahrscheinlich eh plain im php source stehen...

    @OP: In welchem Environment spielt sich das ab?



  • kantaki schrieb:

    wie sicher ist eigentlich XOR ?

    XOR alleine ist niemals sicher, aber XOR ist aufgrund seiner statistischen Eigenschaften in jedem verschlüsselungsalgorithmus enthalten. XOR alleine liefert aber nicht die notwendigen mathematischen Sicherheiten.

    Xor ist nur sicher, wenn du:
    1. Jeden Text mit einem echt zufallsgenerierten Passwort verschlüsselst
    2. Das Passwort exakt genauso lang wie der verschlüsselte Text ist

    Das ist in der Praxis nicht sinnvoll, da man ja ein Passwort will, dass klein genug ist, dass man es besser schützen kann als die verschlüsselte Datei. Ausserdem ist Punkt 1 total wichtig. Du darfst keinen einzigen Schlüssel doppelt verwenden. In der Zeit um die Entwicklung der Atombombe herum sind Spione auf dem elektrischen Stuhl gelandet, weil sie den Fehler gemacht haben, ein passwort doppelt zu verwenden und dann auf einmal klar war, dass sie die Pläne für die Atombombe kopiert hatten...


  • Mod

    XOR ist eher eine Scherzverschlüsselung. Eine bei der der Prof in der Kyptographievorlesung sagen kann "Guckt mal, das ist vollkommen sicher, wenn man einen Schlüssel in Größe der Nachricht benutzt". Oder die man in ein einfaches Computerspiel einbaut um Zeichenketten ein bisschen zu verschleiern, weil's damit so einfach ist. Sicher ist es nur und zwar nur, wenn man ein echtes One-Time-Pad hat, also ein echt zufälliger, einmal benutzter Schlüssel in Nachrichtenlänge. Aber dann ist es eher ein akademisches Szenario, da man das Problem des Nachrichtenaustausches auf das Problem des Schlüsselaustausches verschoben hat. Das heißt bei einem Computerporgramm könnte man einfach die Schlüssel aus dem Programmcode holen und bei unsicherer Kommunikation könnte man den Schlüssel mitlesen.



  • Mr.Fister:
    Achso, mit seinem Programm. Okay.



  • kantaki schrieb:

    wie sicher ist eigentlich XOR ?

    Kommt drauf an, wie Du es verwendest. So, wie das klingt, was Du gesagt hast: Gar nicht sicher.

    Es gibt Krypto-Standards und gut getestete Bibliotheken, die diese Standards implementieren. Marke Eigenbau ist bei Krypto immer eine ganz schlechte Idee.



  • Meint hier irgendwer, er kann ein beliebiges File (nicht nur Textfiles) entschlüsseln, wenn es mit einem maximal 20 Zeichen langen Schlüssel verschlüsselt wurde?



  • *XOR verschlüsselt


  • Mod

    Auf diese Herausforderung zitiere ich mal volkard:

    volkard schrieb:

    Es wäre bloß Mühe, in der Art, ein gekauftes 5000-Teile-Puzzle zu lösen. Das kann jeder Erstklässler. Und wenn jetzt ein Kindergartenkind mit der Laubsäge ein "unlösbares" 100-Teile-Puzzle bastelt und alle herausfordert, so mache ich mir einfach nicht die Mühe, sein Puzzle zu lösen. Es ist eh trivial und keineswegs unlösbar. Auch wenn er mich zwingen will, indem er so lange die Luft anhält, bis ich damit anfange.



  • volkard ist Profi-Puzzler, der kann sich solche Aussagen erlauben.



  • SeppJ schrieb:

    Auf diese Herausforderung zitiere ich mal volkard:

    volkard schrieb:

    Es wäre bloß Mühe, in der Art, ein gekauftes 5000-Teile-Puzzle zu lösen. Das kann jeder Erstklässler. Und wenn jetzt ein Kindergartenkind mit der Laubsäge ein "unlösbares" 100-Teile-Puzzle bastelt und alle herausfordert, so mache ich mir einfach nicht die Mühe, sein Puzzle zu lösen. Es ist eh trivial und keineswegs unlösbar. Auch wenn er mich zwingen will, indem er so lange die Luft anhält, bis ich damit anfange.

    Du kannst ja mal beschreiben, wie du die Datei entschlüsseln würdest.



  • Das ist natürlich nur möglich, wenn man das Ergebnis irgendwie überprüfen kann. Eine Datei mit zufällig gefüllten Bytes (darauf spielt HerausForderder vermutlich an), die XOR-"verschlüsselt" wurde, kann man nicht sinnvoll entschlüsseln.


  • Mod

    HerausForderder schrieb:

    SeppJ schrieb:

    Auf diese Herausforderung zitiere ich mal volkard:

    volkard schrieb:

    Es wäre bloß Mühe, in der Art, ein gekauftes 5000-Teile-Puzzle zu lösen. Das kann jeder Erstklässler. Und wenn jetzt ein Kindergartenkind mit der Laubsäge ein "unlösbares" 100-Teile-Puzzle bastelt und alle herausfordert, so mache ich mir einfach nicht die Mühe, sein Puzzle zu lösen. Es ist eh trivial und keineswegs unlösbar. Auch wenn er mich zwingen will, indem er so lange die Luft anhält, bis ich damit anfange.

    Du kannst ja mal beschreiben, wie du die Datei entschlüsseln würdest.

    F schrieb:

    Das ist natürlich nur möglich, wenn man das Ergebnis irgendwie überprüfen kann. Eine Datei mit zufällig gefüllten Bytes (darauf spielt HerausForderder vermutlich an), die XOR-"verschlüsselt" wurde, kann man nicht sinnvoll entschlüsseln.

    Das hier. Oder besser: Falls mehr bekannt ist, kann man da auch statistisch drangehen, das macht die Sache erheblich einfacher. XOR ist gegen so ziemlich alle Attacken anfällig.



  • XOR ist durchaus auch in professionellem Umfeld einsetzbar. Auch die One-Time-Pad Technik ist kein akademisches Beispiel! Wir haben viele Kunden die sehr zufrieden sind mit XOR: http://unsicher-im-netz.de/loesungen.html

    @kantaki Melde dich vllt. mal bei mir telefonisch. Die Nummer findest du auf der Webseite in meiner Signatur. Ich hab Interesse an deinem Programm, wenn man das noch ein wenig ausbaut könnte man es wahrscheinlich gewinnbringend einsetzen!



  • Mario Sandler schrieb:

    XOR ist durchaus auch in professionellem Umfeld einsetzbar. Auch die One-Time-Pad Technik ist kein akademisches Beispiel! Wir haben viele Kunden die sehr zufrieden sind mit XOR: http://unsicher-im-netz.de/loesungen.html

    Das klingt nach Snake-Oil. One-Time-Pads sind ein akademisches Beispiel, da sie für die Praxis viel zu kompliziert sind. Wie erstellt ihr denn den Schlüssel, so dass er wirklich komplett zufällig ist? Wie sichert ihr den Schlüssel? Wie handhabt ihr die Größe des Schlüssels? (Wenn ich 1TB Daten sichern will, dann brauch ich ja einen 1TB großen Schlüssel und das jedes mal, wenn ich ein Backup mache)

    Siehe auch Warning-Sign #6: http://www.schneier.com/crypto-gram-9902.html#snakeoil oder http://www.interhack.net/people/cmcurtin/snake-oil-faq.html#SECTION00057000000000000000

    Warum nehmt ihr nicht einfach etablierte Standard-Verfahren? zB AES?



  • Ist auf der Webseite beschrieben.
    Der Kunde erstellt natürlich den Schlüssel, aus Datenschutzgründen, selbst.
    Auch muss er diesen selbst aufbewahren. Nur so behält er die volle Kontrolle über seine Daten.
    Man beachte auch die weiteren IT-Lösungen, unter der Backuplösung 😉



  • Mario Sandler schrieb:

    Ist auf der Webseite beschrieben.
    Der Kunde erstellt natürlich den Schlüssel, aus Datenschutzgründen, selbst.
    Auch muss er diesen selbst aufbewahren. Nur so behält er die volle Kontrolle über seine Daten.
    Man beachte auch die weiteren IT-Lösungen, unter der Backuplösung 😉

    Wie erstellt der Kunde den Schlüssel, so dass der wirklich komplett zufällig ist? Bekommt er dafür Spezialhardware? Und wo ist der Sinn, wenn der Kunde sich jetzt um die Sicherung des Schlüssels kümmern muss, der ja genauso groß ist, wie die ohnehin zu sichernden Daten?


Anmelden zum Antworten