Das One-Time-Pad und mein Verständnisproblem



  • Hallo, ich habe da mal ein paar Fragen zum One Time Pad. Nehmen wir an, ich habe den Klartext "Das ist ein unverschlüsselter Satz". Wenn man ihn mittels OTP verschlüsselt, dann ist der Text nicht zu mehr zu knacken, wenn die Zahlen(also der Schlüssel) alle wirklich absolut zufällig sind, denn der Text könnte dann wirklich alles heißen, was von der Zeichenlänge her hinkommt, von einem einzigen sinnvollen Wort, über einen Satz, bis hin zu einem kryptischen Passwort.

    Was passiert, wenn man wie folgt vorgeht: Man hat einen geheimen Text, und ermittelt beispielsweise für jeden 2.en Buchstaben den Hashcode. Diese Hashcodes fügt man nacheinander in nen String, welcher später als Schlüssel dient. Wenn man den obigen Klartext mit diesem Schlüssel verschlüsselt, geh ich davon aus, dass es sich um keine echten Zufallszahlen handelt.

    Aber trotzdem. Wie wahrscheinlich ist es, dass jemand den verschlüsselten Text knacken kann

    Wenn er a)
    weder den Algorithmus, noch den Schlüssel kennt, und auch keine Ahnung hat, um was es in der Datei gehen könnte?

    Wenn er b)
    Den Algorithmus kennt, den Schlüssel, und den Klartext nicht und keine Ahnung hat, was drinstehen könnte.

    Mir braucht keiner zu sagen, dass es Computercluster gibt, die Milliarden Berechnungen in Sekundenbruchteilen durchführen, das weiß ich selber. Aber mal ganz ehrlich.

    Wie wahrscheinlich wäre es, dass ein Hobbyinformatiker/Hacker/oder auch die Polizei oder ein mit ihr zusammenarbeitendes Datenlabor das Zeugs wieder herstellen kann?
    Nach dem oben beschriebenen Szenario? Also in einem vertretbaren Aufwand, ohne 3 Rechenzentren und 2 Millionen Budget. Ich denk dass ich da irgendwo einen theoretischen Fehler hab, den mir mal jemand erklären müßte. Denn nicht umsonst heißts, es müssen echte Zufallszahlen sein. Ich hoff ich bekomm hier ein paar Antworten auf meine Fragen



  • Ich rede jetzt natürlich von größeren Datenmengen, mindestens 100KB Dateigröße, nicht von einem einfachen Satz.



  • Fisk schrieb:

    Man hat einen geheimen Text, und ermittelt beispielsweise für jeden 2.en Buchstaben den Hashcode.

    Was meinst du denn genau mit dem Hashcode? Und warum wird er nur für jeden zweiten Buchstaben ermittelt? Ich bin kein Krypto-Profi, aber Hashcodes für einzelne Bytes zu erstellen erscheint mir irgendwie nicht sinnvoll.

    Diese Hashcodes fügt man nacheinander in nen String, welcher später als Schlüssel dient.

    Der (transformierte) Text selbst ist also der Schlüssel? Wozu dann überhaupt verschlüsseln?

    Wie wahrscheinlich wäre es, dass ein Hobbyinformatiker/Hacker/oder auch die Polizei oder ein mit ihr zusammenarbeitendes Datenlabor das Zeugs wieder herstellen kann?
    Nach dem oben beschriebenen Szenario?

    Du kannst davon ausgehen, dass deine selbst gebastelte Amateur-Verschlüsselung vom einem Profi in Nullkommanix geknackt wird. Und die Wahrscheinlichkeit steigt mit der zur Verfügung stehenden Datenmenge.

    Ein One Time Pad ist einfach eine Menge Zufallszahlen, mindestens so viele wie die zu verschlüsselnde Nachricht lang ist. Damit wird eine (und wirklich nur eine) Nachricht z. B. XOR-verschlüsselt. Den Schlüssel vorher aus der Nachricht zu berechnen oder sonstwie (anders als zufällig) zu ermitteln, macht das Verfahren sinnlos.



  • Fisk schrieb:

    Was passiert, wenn man wie folgt vorgeht: Man hat einen geheimen Text, und ermittelt beispielsweise für jeden 2.en Buchstaben den Hashcode. Diese Hashcodes fügt man nacheinander in nen String, welcher später als Schlüssel dient. Wenn man den obigen Klartext mit diesem Schlüssel verschlüsselt, geh ich davon aus, dass es sich um keine echten Zufallszahlen handelt.

    ^^ich denke mal richtige crypto-experten legste damit nicht aufs kreuz, aber hobby-hacker, polizei usw. könntens schwer haben. vor allem wenn du keinem verrätst, wie dein verfahren funktioniert (ja ich weiss, alle wirklich guten crypto-algos sind öffentlich, aber das ist wohl hier kein kriterium).
    ach ja, um selbstgebastelte verschlüsselungen zu testen, nimm dies: http://www.cryptool.com/
    🙂



  • Dann müsste der Empfänger ja schon jeden zweiten Buchstaben des Textes kennen 🙄. Aber was du vorhast ist ohnehin kein OTP. Beim OTP muss der Schlüssel zufällig sein! Das ist bei dir nicht der Fall. Warum nimmst du nicht einfach einen etablierten Algorithmus, als selbst etwas zu erfinden?



  • es geht nur um die theorie, wo mein Fehler liegt, ich hab ned vor sowas zu schreiben. ich setz auf AES und Twofish.



  • es geht nur um die theorie, wo mein Fehler liegt, ich hab ned vor sowas zu schreiben. ich setz auf AES und Twofish.



  • Wie gesagt: Der Empfänger muss jeden zweiten Buchstaben des Textes schon kennen. Hashs haben eine bestimmte Länge. Angenommen du nimmst einen 32 Bit Hash (jede Eingabe wird zu 4 Byte). Wenn du jeden zweiten Buchstaben nimmst, dann hast du also genau zwei Buchstaben um den Schlüssel zu generieren. Daher ist die Anzahl der Schlüssel gering und dürfte sich relativ schnell wiederholen. Also ist es möglich mit Häufigkeitsanalyse dein Verfahren zu knacken.


Anmelden zum Antworten