Frage:
Können Sie sagen, dass eine einmalige Pad-Verschlüsselung unzerbrechlich ist und bei richtiger Verwendung am besten ist?
Saoud
2015-02-12 01:37:01 UTC
view on stackexchange narkive permalink

Ich lese gerade über eine Zeitblockverschlüsselung und habe eine Frage. Sie sagen, dass die OTP-Verschlüsselung unzerbrechlich ist, und dies kann mathematisch bewiesen werden. Dies setzt voraus, dass der verwendete Schlüssel wirklich zufällig ist und nur einmal verwendet wird, oder? Was ist, wenn ich mit einem ganzen System (kann Software oder Hardware oder eine Kombination aus beiden sein) komme, um diese beiden Bedingungen zu erzwingen? Habe ich die beste ideale Verschlüsselungslösung für &?

Angenommen, die beiden Seiten, die bereit sind, Informationen auszutauschen, erhalten die Schlüssel, indem sie eine Verbindung zu einem Server herstellen, der ständig online ist. Der Server stellt sicher, dass die generierten Schlüssel zufällig sind und dass ein Schlüssel nie wieder verwendet wird. Die Benutzer auf jeder Seite müssen lediglich über eine Internetverbindung und einen Mechanismus zum Informationsaustausch verfügen. Die Informationen werden über das Internet verschlüsselt mit dem vom Server zufällig generierten Einmal-Pad-Schlüssel übertragen.

Mache ich hier einen Sinn? Ich habe gerade angefangen, über einen Zeitblock zu lesen, und mich darüber gewundert. Es gibt viele Websites, die Ihnen sagen, dass ein Zeitblock überhaupt nicht praktikabel ist, weil Sie sich keine wirklich zufällige Zahl oder ähnliches einfallen lassen können.

Ergänzung:

Bieten diese Leute etwas Besonderes in der Schlüsselverteilung an? Sie sagen, dass sie die Implementierung von OTP im Laufe der Zeit perfektioniert haben.

http://www.mils.com/en/technology/unbreakable-encryption/#1

Bei ordnungsgemäßer Verwendung teilt das beste Sicherheitssystem der anderen Partei mit, was Sie ihnen persönlich zu sagen haben, und es befindet sich niemand in einem Raum, den Sie persönlich nach Aufnahmegeräten durchsucht haben. Der Grund, warum wir das nicht tun, ist, dass wir uns um die Praktikabilität * sorgen * müssen - ein OTP funktioniert nur unter ganz bestimmten Umständen, was es allein suboptimal macht.
"Nehmen wir zum Beispiel an, die beiden Seiten, die bereit sind, Informationen auszutauschen, erhalten die Schlüssel, indem sie sich mit einem Server verbinden, der ständig online ist." Woah, warte eine Sekunde dort. Wie genau sichern Sie diese Verbindung? Mit einem anderen One Time Pad? Wie haben die Kunden dieses Pad erhalten? Sehen Sie das Problem?
'Best' ist subjektiv. Es hängt alles von den eigenen Anforderungen ab. Verschlüsselungsgeschwindigkeit, verfügbare Tools, Rissbeständigkeit, einfacher Schlüsselaustausch ... die Liste geht weiter.
Denken Sie daran, was das Grundprinzip der Kryptographie ist: * Sie können die Geheimhaltung eines Schlüssels für die Sicherheit einer Nachricht gegen bestimmte Angriffe nutzen *. Krypto-Neulinge verlieben sich oft in die Mathematik und beschönigen die erheblichen Schwierigkeiten in diesem Teil der "Geheimhaltung des Schlüssels".
@cpast jemand hat die Sopranos beobachtet, verstehe ich?
Sie können derzeit kein OTP über das Internet austauschen und haben dennoch die Sicherheit eines OTP. Die Sicherheit ist auf die Methode beschränkt, mit der Sie den Schlüssel ausgetauscht haben. Dies bedeutet nicht, dass ein OTP nutzlos ist: In bestimmten Anwendungen ist es die beste Wahl. Ich glaube, dass sogenannte "Nummernstationen" immer noch Nachrichten über ein OTP senden, um die Nachricht zu verschlüsseln. Wenn ein OTP verwendet wird, wird es normalerweise von Hand ausgetauscht, und es liegt in der Verantwortung jeder Partei, es sicher zu halten.
Mögliches Duplikat von [Warum wird die Verwendung eines Pseudozufallsschlüssels als praktischer angesehen als ein einmaliger Block?] (http://security.stackexchange.com/questions/12733/why-is-using-a-pseudo-random- Schlüssel als praktischer als ein einmaliges Pad)
In Theorie, Theorie und Praxis sind sie gleich. In der Praxis sind sie nicht. Einmalige Pads sind unzerbrechlich, aber es gibt sehr ernsthafte praktische Überlegungen, wenn es darum geht, sie tatsächlich zu verwenden.
@corsiKa Tatsächlich sind solche Vorsichtsmaßnahmen nicht ungewöhnlich. Es gibt eine anständige Industrie, die Geräte herstellt, um Räume nach Fehlern abzusuchen. Solche Sweeps werden üblicherweise in Unternehmens-, Regierungs- und VIP-Schutzsituationen durchgeführt.
Sieben antworten:
gowenfawr
2015-02-12 01:44:27 UTC
view on stackexchange narkive permalink

Schlüsselverteilung ist das Problem.

In Ihrem Szenario verwenden Sie einen Server, um den Benutzern die einmaligen Pads zu übermitteln. Aber wie ist diese Kommunikation geschützt? Nicht mit einem einmaligen Pad, sonst wäre es nicht nötig. Nehmen wir an, es ist SSL mit AES 128. Dann ist Ihr Kryptosystem genauso sicher wie SSL mit AES 128 - ziemlich sicher, aber nicht so sicher wie ein einmaliges Pad.

Die Mils-Typen, auf die Sie verweisen, werden angezeigt physische Geräte anzubieten, auf die Sie einen einmaligen Schlüsselstrom laden (und von denen aus Sie ihn verwenden können). Auch hier ist die Schlüsselverteilung ein Problem. Sie könnten zwei Festplatten kaufen, Terabyte Keystream darauf laden und eine an Ihren Kumpel senden ... wie? Vertrauen Sie USPS? Fedex? Kurier? Diplomatischer Beutel? All dies kann beeinträchtigt werden. Die einzige perfekt verschlüsselte Möglichkeit, sie zu senden, besteht darin, sie mit einem einmaligen Fehler zu verschlüsseln. Es ist wieder passiert.

Es gibt immer den Diffie-Hellman-Schlüsselaustausch.
@SpencerDoak Aber dann sind Sie nur so sicher wie der Schlüssel, der für den Austausch verwendet wird - und dann würden Sie den Server überhaupt nicht benötigen und können Schlüssel direkt austauschen ... Und dann machen Sie sich Sorgen um Authentifizierung und MITM ...
Es gibt eine (noch ziemlich theoretische) Antwort auf dieses Problem: verschränkte Photonen. Mit Quantum Crypto können wir eine Nachricht nicht direkt verschlüsseln, aber einen Schlüssel (langsam) verteilen. OTP ist die offensichtliche Verschlüsselungsmethode für solche Schlüssel.
@MSalters Und es gibt bereits effektive Angriffe (Plural, zwei, die ich auf Anhieb kenne) gegen Quantenverschränkung (oder zumindest vorhandene Kryptosysteme mit Quantenverschränkung). Das ist also auch keine Lösung.
Nein, das Problem ist Key ** Management **, da das Schlüsselmaterial kompromittiert werden oder verloren gehen könnte oder ein Angreifer die beiden Parteien (DOS) "de-synchronisieren" könnte.
Auf YouTube gibt es unendlich viele einmalige Pads.
@HotLicks, ein einmaliges Pad muss auch ausreichend zufällig sein. Während YouTube in vielerlei Hinsicht zufällig ist, sind die Daten mathematisch gesehen nicht ausreichend zufällig.
@gowenfawr - Man muss nur wissen, dass man die Wörter im Leitartikel über Fußball auf der BBC-Sportseite zählt und dies als Index für einen Artikel auf CNN verwendet, um die ID des jeweiligen YouTube-Videos und den Offset darin zu erhalten zum Starten. Führen Sie die Daten natürlich durch einen einigermaßen guten Hash-Algorithmus, bevor Sie sie als Pad verwenden.
@gowenfawr Ich bin mir nicht sicher, ob dies wahr ist. Aber ich habe lange gedacht, dass es einfach und sicher wäre, physische Schlüssel einmal auszutauschen und diese Schlüssel dann zu verwenden, um weitere Schlüssel auszutauschen.
@SeanPedersen Das Problem bei der Verwendung für ein OTP besteht darin, dass Sie für jedes Bit, das Sie verschlüsseln, ein Bit OTP-Schlüsselmaterial verwenden müssen. Wenn Sie also 1024 Bits Ihres nächsten OTP verschlüsseln möchten, müssen Sie 1024 Bits Ihres aktuellen OTP verwenden. Es macht also wirklich keinen Sinn, dies zu tun.
@gowenfawr Ich denke, Sie übertreiben das Problem der Schlüsselverteilung. Es gibt absolut * Situationen *, in denen Sie physische Medien besser schützen können als elektronische Kommunikation. Wenn Sie Ihrem Spion persönlich eine Packung OTPs geben oder wenn Sie ein Band fliegen, das jederzeit von einem vertrauenswürdigen Kurier begleitet wird (dies ist keine ungewöhnliche Art, kleine diplomatische Beutel zu tragen, und der Kurier kann melden, ob der Beutel geöffnet wurde, damit Sie dies können Werfen Sie das Pad weg), können Sie sich in einer Situation befinden, in der Sie Ihrer Schlüsselverteilung genauso vertrauen wie der anderen Seite, die Nachricht nicht weiterzugeben.
Um einige Antworten auf eine andere Frage zu paraphrasieren, besteht die Grundfunktion eines OTP darin, das Problem der "Sicherheit" auf eine Zeit zu verlagern, in der es einfacher ist - eine sichere Kommunikation des Pads kann nach Ihrem Zeitplan statt nach dem Zeitpunkt erfolgen Sie müssen die echte Nachricht senden, denn solange der Schlüssel sicher bleibt, bleibt die Nachricht sicher.
@cpast, Sie haben Recht, die Verteilung physischer Schlüssel ist sicherlich möglich, und ich vermute, dass Regierungen dies die ganze Zeit tun. Für die meisten Benutzer ist dies jedoch unpraktisch und steht im Widerspruch zu dem erklärten Ziel des OP, die Verwendung von OTP über die Online-Schlüsselverteilung zu ermöglichen.
Der Punkt ist, dass OTP nur so sicher ist wie der Schlüsselvertriebskanal. Daher kann OTP NIEMALS mit einem Austausch von nicht gebundenen Schlüsseln implementiert werden. Versuche, den Schlüssel im Kanal zu übertragen, führen dazu, dass der Kanal selbst das schwächste Glied ist.
AJ Henderson
2015-02-12 05:27:02 UTC
view on stackexchange narkive permalink

Nein, weil Sie die Bedeutung von "am besten" in einem Sicherheitskontext falsch verstehen. Entgegen der landläufigen Meinung sind "am sichersten" und "am besten" keine Synonyme, sondern bei der Sicherheit geht es ausschließlich darum, Benutzerfreundlichkeit und Sicherheit in Einklang zu bringen. Es geht um Risikomanagement.

Das sicherste Laufwerk der Welt ist das Schreiben an DevNull (den Bit-Eimer) auf dem Meeresboden in einer verschlossenen Box in einem Betonhaufen in einem Faradayschen Käfig. versenkt in Lava ohne Kabel oder Drähte. Absolut niemand wird jemals Daten davon erhalten, aber legitime Benutzer werden auch niemals Daten davon erhalten.

Einmalige Pads haben den Luxus, nachweislich unmöglich zu brechen, wenn sie richtig verwendet werden, obwohl sie umständlich sind benutzen. Wenn sie die "beste" Option wären, würde keines der anderen Systeme existieren, die wir heute kennen, da sie fast alle nach der Idee des One Time Pad entstanden sind (was ein wirklich altes Konzept ist).

Die beste Option ist vielmehr die, die Ihre Risiken auf ein akzeptables Maß reduziert und gleichzeitig ein akzeptables Maß an Benutzerfreundlichkeit beibehält. In vielen Fällen ist die beste Sicherheit möglicherweise keine Sicherheit. Zum Beispiel ist es mir egal, ob Sie meine Cookie-Rezepte kennen. Wenn Sie sich also bemühen, sie zu schützen, wird die Benutzerfreundlichkeit unnötig beeinträchtigt. Es ist mir egal, ob meine Kochrezepte verloren gehen, daher möchte ich möglicherweise mehrere Kopien speichern und irgendwo sichern, aber ich würde sie nicht kontrollieren, da dies Zeitverschwendung wäre.

Die Der gleiche Denkprozess gilt nicht weniger für Hochsicherheitssituationen als für meine Kochrezepte. Es kommt darauf an, das Risiko zu analysieren, das auf mich zutrifft (Oreo kümmert sich möglicherweise mehr um den Schutz ihres Rezepts) und dann zu entscheiden, was meine beste Option ist. Es ist für jeden und jede Situation anders und es gibt keine universelle Antwort.

+1 für "legitime Benutzer werden auch nie Daten davon erhalten" Und die Lava natürlich.
@Hopelessn00b - Ok, wenn Sie Ihren Kommentar von früher noch einmal lesen, verstehe ich, was Sie über OTP sagen, das keine perfekte Informationssicherheit gewährleistet (sorry, es ist 2 Uhr morgens hier). Es leckt zwar, dass Sie möglicherweise eine Nachricht gesendet haben (aber möglicherweise nicht). Aber das hilft in keiner Weise, die Kryptographie selbst zu brechen. In meiner Aussage geht es ganz klar darum, "unmöglich zu brechen" und nicht "unmöglich, eine Beobachtung über Ihre Handlung zu machen". Es sind keine Informationen durchgesickert, die hilfreich sind, um den kryptografischen Schutz der Nachricht zu beeinträchtigen.
Oh ja, los geht's ... das habe ich versucht zu erreichen. Wenn Sie keine perfekte Informationssicherheit haben, bedeutet dies, dass selbst der Schutz einer perfekten Krypto Ihre Informationen nicht perfekt schützt. Selbst ohne die Krypto zu beschädigen, können einige Informationen abgerufen werden. Aus irgendeinem Grund habe ich in Ihrem Beitrag auf eine Implikation geschlossen, die nicht in Bezug auf ein ordnungsgemäß implementiertes OTP vorhanden war, das einer perfekten Informationssicherheit entspricht.
Diese Undichtigkeit, dass Sie möglicherweise eine Nachricht gesendet haben, ist Teil des Grundes, warum manche Leute befürworten, ständig Krypto zu verwenden. Wenn Sie es nur für Dinge verwenden, die Sie wirklich verstecken möchten, kann Eve davon ausgehen, dass sie gerade etwas Interessanteres als Ihr Keksrezept gefunden hat.
@chao Es ist erwähnenswert, dass die ständige Verwendung von Krypto nicht verbirgt, dass Sie eine Nachricht gesendet haben, sondern sich nur versteckt, wenn es interessant ist. Außerdem ist otp nicht auf das Internet beschränkt, sodass es über verdeckte Kanäle verwendet werden kann, die für Sie schwerer zu verfolgen sind.
Xander
2015-02-12 01:56:00 UTC
view on stackexchange narkive permalink

Nein. Ein One-Time-Pad leidet nicht nur unter Problemen bei der sicheren Schlüsselverteilung, die Mike und Gowenfawr in ihren Antworten erwähnt haben, sondern auch:

Auch wenn Sie einen Mechanismus zur sicheren Verteilung von Schlüsseln hatten, die Ein Zeitblock (für sich) hat keinen Mechanismus zur Gewährleistung der Integrität. Der Chiffretext wird als "formbar" bezeichnet, was bedeutet, dass er von einem Angreifer manipuliert werden kann, um die Klartextnachricht auf vorhersehbare, nicht erkennbare Weise zu ändern.

Obwohl das One-Time-Pad eine informationstheoretisch perfekte Geheimhaltung bietet, ist es an sich keine sichere Chiffre und in der realen Welt einfach zu authentifizieren Chiffren mit ausreichend großen Schlüsseln wie AES-CTR-HMAC oder AES-GCM sind deutlich besser.

Richtig, OTP soll garantierte Geheimhaltung bieten, nicht garantierte Integrität. Ich glaube nicht, dass der Angreifer den Klartext auf vorhersehbare Weise ändern kann, es sei denn, der Angreifer kennt (den entsprechenden Teil) die Klartextnachricht.
@Ajedi32 Ja, und in der realen Welt, in der wir leben und in der unsere Chiffren arbeiten müssen, tun Angreifer dies häufig.
Wenn Sie einen Hash der Nachricht zusammen mit der Nachricht verschlüsseln und senden, wird die Formbarkeit sehr schwierig (obwohl ich nicht weiß, * wie * schwierig).
Diese Antwort erwähnt nicht, dass es informationstheoretisch sichere Integritätsschemata gibt, z. Wegman-Carter, und zumindest im Prinzip könnte man es mit dem OTP in einer Art informationstheoretischem Kryptosystem bündeln - es ist gut zu erwähnen, dass Integrität / Authentifizierung unerlässlich ist, aber dann schnell eine Abkürzung zu "einfach zu verwendenden authentifizierten Chiffren" zu nehmen. klingt sehr nach Vermeidung der Frage im Zusammenhang mit "Warum ist One-Time-Pad-Verschlüsselung [sprich: informationstheoretische Sicherheit] nicht die beste?"; OP fragt wirklich nach bedingungslos sicheren Kryptosystemen, nicht speziell nach OTP.
@immibis Wenn Sie einen * Hash * senden, ist der Unterschied unerheblich. Wenn Sie einen * MAC * senden, wird dies schwierig. Wenn Sie jedoch keinen MAC-Algorithmus verwenden, der auch eine informationstheoretische Geheimhaltung bietet, haben Sie Ihr Schema geschwächt, und die Vorteile des One-Time-Pads gelten nicht mehr. Und Sie haben immer noch Probleme mit der Schlüsselverteilung.
@Xander Sie brauchen doch nur einen Hash? Die Tatsache, dass jemand den Hash korrekt mit dem OTP verschlüsselt hat, scheint zu implizieren, dass entweder der Hash-Algorithmus anfällig ist oder er das OTP hat.
@immibis Nein, das ist immer noch völlig anfällig für bekannte Klartextangriffe und daher nicht semantisch sicher.
@Thomas Ja, es gibt informationstheoretische Schemata für sichere Integrität, aber das ändert nichts an der Tatsache, dass ein Verschlüsselungssystem, das auf dem One Time Pad basiert, tatsächlich nicht das Beste ist. Ich bin nicht der Meinung, dass dies nicht die Frage ist, da ich dieselbe Frage hundert Mal in verschiedenen Formen gesehen habe, aber ich bin offen dafür, überzeugt zu sein, dass ich falsch liege.
@Xander Wie ist es anfällig für bekannte Klartextangriffe?
@Xander Mein Punkt war, dass das OP nur über das One-Time-Pad spricht, weil er das weiß und nicht weiß, dass Authentifizierung wichtig ist oder dass bedingungslos sichere MACs existieren (oder beides). Wenn er es wäre, hätte er es nicht von seiner Frage ausgeschlossen, da Verschlüsselung ohne Authentifizierung nutzlos ist, wie Sie in Ihrer Antwort erklärt haben. Daher scheint es angebracht, einen Hinweis hinzuzufügen, dass das Authentifizierungsproblem kein grundlegendes Problem bei bedingungslos sicheren Schemata ist im Gegensatz zur einfachen Ablehnung der Option (unabhängig davon, wie realisierbar solche Systeme in der Praxis sind).
@immibis Es sollte offensichtlich sein.
@Thomas Ich stimme zu, dass Ihre Argumentation korrekt ist, aber der Punkt meiner Antwort war im Sinne von Gowenfars Kritik am Transportmechanismus, und das ist: Wenn Sie versuchen, ein Verschlüsselungssystem basierend auf dem One Time Pad zu erstellen Sie vermissen wichtige Dinge.
AilipggweqCMT Fair genug
@Xander ist eigentlich nicht offensichtlich. Wenn der Angreifer den vollständigen Klartext kennen kann, ist die Verschlüsselung bereits unterbrochen (wie haben sie den Klartext erhalten?), Und alle daraus resultierenden Angriffe sind umstritten. Wenn sie einen Teil des Klartextes haben, gibt ihnen ein OTP-verschlüsselter Hash offensichtlich keine weiteren Informationen über den Rest des Klartextes. Wenn sie den Klartext für eine Nachricht haben, scheint dies ihnen nicht zu helfen, eine andere Nachricht zu entschlüsseln (die ein anderes OTP hat).
@immibis Der Sinn eines Kryptosystems besteht darin, sich vor allen effizienten Angreifern zu schützen, nicht nur vor einer Art von Angreifer. Auch wenn ein Angreifer unter KPA den PT kennt, sollte das System dennoch in der Lage sein, sich vor ihm zu schützen. Mit einem nackten Hash kann OTP nicht, da der Angreifer nicht nur den CT so ändern kann, dass der PT vorhersehbar geändert wird, sondern auch den Hash neu berechnen kann. Bis die Nachricht den Empfänger erreicht, wurde sie nicht nur vom Angreifer geändert, sondern der ursprüngliche Hash wurde durch den Hash des Angreifers des PT (oder CT) nach der Änderung ersetzt und ist hoffnungslos fehlerhaft.
@Xander warum sollten Sie den Hash unverschlüsselt senden ??? Sie komprimieren die ursprüngliche Nachricht, hashen sie und verschlüsseln dann komprimiertes Original + Hash mit OTP. Ich möchte den Angriff sehen, der das zufällige Bitfeld so verändert, dass die anschließende Dekomprimierung und Hash-Prüfung funktioniert ...
Und die Authentifizierung wird kein Problem sein, wenn Sie den sicheren Schlüsselaustausch auf magische Weise gelöst haben. Wenn ich mein OTP persönlich mit nur einer Person teile und eine Nachricht mit diesem OTP entschlüssele und die Entschlüsselung eine gültige Nachricht erzeugt, ist dies genauso sicher wie jedes Zertifikat (was indirekt nur ein Beweis dafür ist, dass jemand einen privaten Schlüssel besitzt - bei OTP ist der private Schlüssel der OTP, also Verschlüsselung und Authentifizierung in einem)
Ich denke, was Xander zu sagen versucht: Wenn Sie sowohl den Klartext als auch den Krypttext kennen, können Sie das OTP daraus berechnen und problemlos einen MITM-Angriff ausführen. Das andere Ende kann nicht wissen, dass die Nachricht manipuliert wurde, da sie mit dem OTP-Code perfekt entschlüsselt wird.
@Falco Ich habe einige Kommentare zuvor auf hoher Ebene erklärt. Wenn es Ihnen immer noch unklar ist und Sie weitere Details benötigen, sollten Sie eine neue Frage stellen.
@SztupY Aber wie kann er möglicherweise den Klartext kennen, wenn ein Teil davon beim Erstellen der Nachricht völlig zufällig generiert wird? Niemand kann diesen Teil kennen. Da der Hash davon abgeleitet ist, können Sie den Hash auch nicht kennen. So kann der Empfänger Manipulationen leicht erkennen, indem er den Hash-Code überprüft, den der Angreifer nicht reproduzieren kann, ohne den zufälligen Teil der Nachricht zu kennen! - Wenn der Angreifer tatsächlich den Computer des Absenders infiltrieren und die vollständige Nachricht einschließlich zufälliger Zeichen vor dem Senden lesen würde, könnte er sie zwar fälschen, aber dann kann er wahrscheinlich auch nur einen privaten Schlüssel lesen
@Falco Sie müssen nicht herausfinden, woher er den Klartext kennt. Es ist vorgesehen, dass er für diesen Angriff den Klartext kennt. Dies ist Teil des Standarddesigns von Kryptosystemen, und ein starkes System muss in der Lage sein, diesen Angriff zu bewältigen.
@Xander Sie ignorieren die Tatsache, dass ein sicherer Hash, der mit einem geheimen Schlüssel (OTP) verschlüsselt ist, genau mit einem MAC identisch ist ... Zu sagen, ein MAC sei sicherer als ein einzeln verschlüsselter sicherer Hash, ist irgendwie nebensächlich. Darüber hinaus enthält ein KPA normalerweise nicht den geheimen Schlüssel und eine zufällige Anzahl von Bytes, die als Salz angehängt werden, sind nicht Teil des KPA, sodass der Hash nicht vorhergesagt und somit nicht gefälscht werden kann
KPA ist normalerweise ein Szenario, in dem der Angreifer eine fundierte Vermutung darüber anstellen kann, was Sie senden möchten, aber der Klartext enthält nur den tatsächlichen Klartext, nicht den SALZ und nicht den HASH und nicht den privaten Schlüssel ... und ohne diese 3 jeden Angriff ist zwecklos und OTP ist sicher
@Falco Das Verschlüsseln eines einfachen Hashs mit einem OTP ist gegen einen rechnerisch unbegrenzten Angreifer nicht sicher, da der Angreifer offline nach Kollisionen suchen kann. MACs im WC-Stil hingegen basieren auf universellem Hashing, bei dem Sie mit einem Schlüssel einen Hash aus einer Familie von Hashes auswählen, die Kollisionssuche verhindern und dann die Ausgabe verschlüsseln, um zu verhindern, dass der Angreifer etwas über den ersten Schlüssel erfährt.
Wenn der Hash mit einem OTP verschlüsselt ist, selbst wenn Sie in Sekunden eine Kollision finden könnten, woher wissen Sie, dass Sie eine gefunden haben, wenn der Hash selbst OTP-verschlüsselt ist? Solange Sie den Hash nicht entschlüsseln können, können Sie nicht nach Kollisionen suchen. Und Sie können nicht denselben Hash erstellen, ohne das SALZ zu kennen. Sie können nicht einmal nach Mustern suchen, da jedes Bit zufällig codiert ist ...
Stellen Sie sich das folgende Szenario vor: Meine Hash-Funktion ist ein einfaches Paritätsbit, und ich füge dem Klartext ein zufälliges Bit hinzu, bevor ich das Paritätsbit berechne. - Selbst wenn Sie den Klartext kennen und meine verschlüsselte Nachricht erhalten, können Sie auf keinen Fall eine höhere Wahrscheinlichkeit als 50% erhalten, das Paritätsbit richtig zu erraten, da beide Bits (zufällig und Parität) jeweils mit einem zufälligen Bit von xor-ed sind das OTP ... Und das sogar mit einer völlig transparenten Umkehr-Hash-Funktion ...
@Xander Ich verstehe, wie der von Ihnen beschriebene Angriff funktionieren würde (und war versucht, ihn in einem Kommentar zu erklären), aber die Kommentare legen nahe, dass er nicht für alle offensichtlich ist. Vielleicht wäre es gut, ein Beispiel von Alice-Bob-Mallory zu nennen?
@Falco In dieser Situation berechne ich eine zweite Nachricht mit derselben Parität (und Länge) wie das Original, ersetze das Original durch dieses und ändere weder Hash noch Zufallsbit. Alternativ berechne ich eine zweite Nachricht mit entgegengesetzter Parität und drehe das Zufallsbit um. Ich habe den Chiffretext; Ich kann entweder das Zufallsbit gleich lassen oder es umdrehen, ohne die geringste Ahnung zu haben, was es ist, indem ich das entsprechende Chiffretext-Bit behalte oder umlege.
@cpast genau! Da die Paritätsfunktion p (a || b) mit p (a) + p (b) identisch ist, können Sie a leicht durch einen kollidierenden Text ersetzen. Dies gilt jedoch nicht für alle Hash-Funktionen! Und selbst dann ist das einzige, was Sie gewinnen, eine einzelne Kollision, die höchstwahrscheinlich keinen verwendbaren Text erzeugt
@Falco Eine einzige Kollision ist alles, was Sie benötigen, um die Sicherheitseigenschaften zu verletzen, die für die Nachrichtenauthentifizierung erforderlich sind (d. H. Existenzielle Unverzeihlichkeit bei einem Angriff im ausgewählten Klartext). Es spielt keine Rolle, ob es "verwendbar" ist; * jede * Fälschung mit einer Wahrscheinlichkeit von mehr als 2 ^ - (Markierungslänge) bedeutet, dass Sie eine Pause haben. Alle Hash-Funktionen haben Kollisionen. Es gibt ein sehr spezifisches Konstrukt, das verwendet werden kann, um perfekte Sicherheit zu bieten, aber es sind keine gängigen Hashing-Algorithmen geeignet.
Wenn "der Klartext" kryptografisch sichere Hashes und Salze enthält, kann die Nachricht eindeutig von einem Gegner manipuliert werden, der den Klartext * irgendwie * kennt. Ich sehe nicht, wie plausibel oder praktisch das ist.
Andrew Russell
2015-02-13 08:29:15 UTC
view on stackexchange narkive permalink

Sie versuchen, ein kryptografisches Grundelement mit einem kryptografischen System zu vergleichen. Hier werden wirklich Äpfel und Orangen verglichen.

Kryptografische Grundelemente werden zu einem kryptografischen System zusammengestellt, und Sie können nur die Sicherheit eines Systems bewerten Sobald Sie die Anwendungsfälle und die Umgebung verstanden haben, in denen das System arbeitet, einschließlich Angreifern, Benutzern, Protokollen auf der Leitung, Speichermechanismen, Kompromissmöglichkeiten, Verfügbarkeitsanforderungen, Anzahl der Benutzer, Knoten, Netzwerke zwischen, abhängigen Diensten usw.

Also zu Ihrer Frage:

Außerhalb des Kontexts des One Time Pad-Grundelements sollte das System wahrscheinlich andere Techniken / Grundelemente einführen, um die folgenden Anforderungen zu unterstützen.

  • Integrität der Nachricht (Prüfsummen, Signieren)
  • Stellen Sie die Synchronisierung sicher, um DOS zu vermeiden. (Ein Angreifer führt möglicherweise eine falsche Nachricht ein, um die Kommunikation zwischen den Parteien zu de-synchronisieren.)
  • Verhindert, dass ein Mann in der Mitte ein einzelnes Bit während der Übertragung ändert (kann die Bedeutung eines teilweise bekannten Klartextes durch Umdrehen ändern ein Bit. dh "LaunchMissiles = 0" versus "LaunchMissiles = 1"
  • Stoppt Wiederholungsangriffe ("Attack at Dawn" wird drei Tage später wiederholt)

und andere optionale Optionen Anforderungen

  • Absenderüberprüfung (Signieren)
  • Empfängerüberprüfung (Zertifikate)

Sie können also nur versuchen, die Sicherheit von a zu bewerten Kryptosystem, sobald es vernünftig artikuliert ist.

Würde "Stopp von Wiederholungsangriffen" nicht natürlich aus "Niemals Schlüsselmaterial wiederverwenden" folgen, was eine absolute Voraussetzung für die Sicherheit des OTP ist? Jede Nachricht, die überlappendes Schlüsselmaterial verwendet, sollte als Fälschung verworfen werden, ohne dass sie weiter betrachtet wird.
Wiederholungsangriffe können zuvor gültige Nachrichten wiederverwenden, z. B. die Nachricht "Attack at Dawn", die der böse Bösewicht drei Tage später erneut an den Empfänger sendet. Die Nachricht enthält Metadaten, um sicherzustellen, dass der richtige Teil des OTP für die Entschlüsselung verwendet wird.
Genau. Die Nachrichtenmetadaten enthalten eine Art Zeiger auf das Schlüsselmaterial (eine Startposition im Pad, wenn Sie so wollen) und die Nachrichtenlänge. Wenn diese Kombination eine Überlappung mit Schlüsselmaterial anzeigt, von dem dem Empfänger bekannt ist, dass es zuvor verwendet wurde, sollte die Nachricht verworfen werden. Es ist entweder eine Wiederholung oder * jemand * weiß nicht, wie man ein OTP sicher verwendet.
Hallo @MichaelKjörling, alle von Ihnen erwähnten Techniken liegen * außerhalb * des Bereichs des Grundelements * One Time Pad *. Beachten Sie, dass Sie oben eine weitere Sicherheitsanfälligkeit einführen, wenn Sie einen Angreifer in Betracht ziehen, der einen Denial-of-Service-Angriff auf die Kommunikation ausführt, indem Sie das eine Zeitfenster als "verwendet" markieren.
Mike Scott
2015-02-12 01:42:32 UTC
view on stackexchange narkive permalink

Das Problem mit einem einmaligen Pad besteht darin, es an beide Parteien zu verteilen. Sie können es nicht einfach auf einen Server stellen, damit beide es herunterladen können. Wenn Sie einen sicheren Kanal dafür hätten, könnten die beiden Parteien diesen sicheren Kanal trotzdem verwenden, um zu kommunizieren. Sie müssen beide Parteien physisch zusammenbringen, was offensichtlich sehr einschränkend ist.

Die Schlüsselverteilung ist in einigen Fällen ein Problem, aber nicht bei allen. Es ist nicht ungewöhnlich, dass zwei Parteien einen sicheren Kommunikationskanal haben, bevor sie einige Informationen erfassen, die sie übertragen möchten, aber dass der Kanal nicht verfügbar ist, wenn sie über die zu übertragenden Informationen verfügen. OTP könnte in solchen Fällen nützlich sein, wenn andere Chiffren im Wesentlichen nicht so gut wären und wenn der verfügbare Kanal * nur * für passive Abhörangriffe anfällig wäre. Ich denke, ein viel wichtigerer Aspekt von OTP ist der von Xander erwähnte.
@supercat OTP wurde in der Tat in genau dieser Situation verwendet - Sie können auf wöchentlichen Flügen nach Moskau ein neues Band per Diplomatenkurier senden und sich dann keine Gedanken über die Schlüsselverteilung machen, wenn Sie fast bereit sind, Atomwaffen zu starten. Manipulationen sind in solchen Situationen wirklich nicht praktikabel (Sie müssen den Inhalt der Nachricht kennen, um sie effektiv manipulieren zu können), daher hat sie im Kalten Krieg gut genug funktioniert.
@cpast: In einigen Situationen haben Gegner keine Kenntnis von Nachrichten. In anderen Fällen können Gegner jedoch möglicherweise raten. Ich habe zum Beispiel gelesen, dass es im Zweiten Weltkrieg eine deutsche Wüstenbasis gab, von der sich Verbündete fernhalten sollten, weil ihre vorhersehbaren Wetterberichte eine nützliche Krippe bildeten. Wenn sie OTP verwendet hätten, hätte jemand, der die Übertragung abfangen könnte, stattdessen jede andere gewünschte Nachricht ersetzen können.
user10800
2015-02-13 05:34:39 UTC
view on stackexchange narkive permalink

Ein dauerhaftes Problem bei jeder Verschlüsselung ist Vertrauen . Sie müssen darauf vertrauen, dass die Person, an die Sie eine Nachricht senden, auf Ihrer Seite ist und die Nachricht oder den Schlüssel nicht an jemanden übermittelt, der sie nicht haben sollte. Sie müssen darauf vertrauen, dass die Personen, die das von Ihnen verwendete Verschlüsselungsschema erfunden haben, keine Hintertür oder einen Unfallfehler enthielten. Bei OTP besteht das Problem des Vertrauens mit dem Empfänger. Wenn Sie dem Empfänger den Schlüssel jedoch nicht selbst physisch geben können, müssen Sie jetzt einer Entität eines Drittanbieters vertrauen, an die der Schlüssel geliefert werden kann Der Empfänger. Dieses Problem besteht auch heute noch bei der modernen Verschlüsselung und Authentifizierung.

Wenn ich ein potenzieller Benutzer wäre, würde ich niemals einem Drittanbieter vertrauen, der einen Schlüssel generiert und über eine Netzwerkverbindung überträgt. Es gibt auch keine Möglichkeit für einen Benutzer, sicherzustellen, dass Sie wirklich zufällige Schlüssel generieren oder wenn Sie kompromittiert wurden. Es ist definitiv keine ordnungsgemäße Verwendung von OTP, da die Verschlüsselung nur so stark ist wie ihre schlimmste Schwäche. Wenn Sie den Schlüssel über das Internet senden, haben Sie alle Vorteile verloren, die echtes OTP bieten kann, und Sie können sich auch für AES-256 entscheiden.

Ich denke, man kann mit Sicherheit sagen, dass OTP technisch ist die beste Transportverschlüsselung, das Wort "am besten" für Sicherheit. Dies bedeutet nicht, dass es für die meisten Anwendungsfälle "am besten" ist, und OTP weist einige schwerwiegende Nachteile auf. Der Schlüssel muss irgendwo aufbewahrt werden, was bedeutet, dass der Schlüssel in die falschen Hände geraten kann. Moderne Blockchiffren haben normalerweise kürzere Schlüssel, die sich ein Mensch merken kann, was es für Dritte viel schwieriger macht, sie zu extrahieren. Es ist auch sehr schwierig, so etwas wie AES mit der richtigen Software schlecht zu implementieren.

Worauf Sie mehr als auf die Sicherheit von OTP zählen können, ist die Faulheit der Menschen. Wir sind natürlich bestrebt, das zu tun, was am einfachsten ist, und dies hat in der Vergangenheit dazu geführt, dass Menschen einige wirklich knochige Entscheidungen getroffen haben, die sie die Sicherheit ihres Kommunikationskanals kosten. Manchmal entscheiden sich faule Menschen dafür, Schlüssel wiederzuverwenden, sobald ihr Schlüssel oder Codebuch aufgebraucht ist und sie nicht über die Mittel verfügen, um einen neuen &-Transport zu generieren. Das Ergebnis kann viel schlimmer sein, als die Kommunikation vollständig einzustellen.

Definieren Sie am besten, und die Antwort kann Ja oder Nein sein.

Falco
2015-02-12 16:27:58 UTC
view on stackexchange narkive permalink

Das Hauptproblem ist der sichere Schlüsselaustausch! Wenn Sie sich irgendwie mit einem immer online verfügbaren Server verbinden und mit diesem Server 100% sicher kommunizieren können - warum leiten Sie Ihre Nachricht nicht einfach über diesen Server weiter?

Ein perfekt gültiges Szenario ist das Folgende: Sie treffen sich jemand persönlich und tauschen OTPs mit ihm aus. Danach können Sie sicher mit ihm kommunizieren, solange die OTPs bestehen. Um die Integrität der Nachrichten zu gewährleisten, fügen Sie Ihrem Klartext N zufällige Bytes hinzu und hashen dann alles, bevor Sie mit dem OTP verschlüsseln (normalerweise würde ich vor der Verschlüsselung auch Klartext komprimieren, um eine geringere Größe und eine höhere Informationsdichte sicherzustellen). Dadurch wird die Authentifizierung und Verschlüsselung gleichzeitig sichergestellt. Da die Authentifizierung im Wesentlichen nur die Überprüfung der anderen Partei ist, kennt sie ein Geheimnis, das nur er kennen kann. Bei symmetrischen geheimen Schlüsseln ist der Schlüssel jedoch bereits ein Geheimnis, das nur Sie beide kennen. Wenn also eine Nachricht mit dem gemeinsam genutzten geheimen Schlüssel erfolgreich entschlüsselt wird und noch intakt ist (Dekomprimieren + Hash prüfen), wurden Integrität und Authentifizierung überprüft.

Wenn Sie jedoch OTP gegen Brute-Force-Ansätze verwenden möchten, können Sie genauso gut eine ausreichend große symmetrische Verschlüsselung (wie AES) verwenden, die ebenfalls nicht realisierbar ist. Der interessante Teil der Krypto ist der Schlüsselaustausch. Wie kann ich diese gesamte Verschlüsselung / Authentifizierung durchführen, ohne mich mit allen Personen zu treffen, mit denen ich sicher kommunizieren möchte? Aus diesem Grund gibt es eine asymmetrische Verschlüsselung.

OTP löst also ein ziemlich gutes Problem, das bereits gut genug gelöst ist (symmetrische Verschlüsselung), aber die eigentlichen Probleme, die der Grund dafür sind, überhaupt nicht löst asymmetrische Verschlüsselung!

Ich bezweifle, dass "Komprimierung + Hash" wirklich eine Möglichkeit ist, Integrität bereitzustellen, die mit der Sicherheit des OTP vergleichbar ist. Ich bin mir nicht sicher, wie der Komprimierungsschritt verwendet werden soll, und der Hash allein bietet keinen Schutz vor einem bekannten MiTM-Angriff im Klartext. Sie sollten mindestens einen MAC verwenden (mit zusätzlicher Schlüsseleingabe), und ich denke, es gibt MAC-Algorithmen, die eine ähnliche theoretische Schutzstufe wie OTP haben ... Ich müsste das allerdings nachschlagen.
Durch die Komprimierung werden Bytes Ihres OTP eingespart und die Informationsdichte erhöht, wodurch erratene Klartextangriffe erschwert werden. Darüber hinaus ist ein perfekt verschlüsselter Hash ein wirklich guter Weg, um sich vor den meisten Angriffen zu schützen. Gegen bekannten Klartext benötigen Sie jedoch eine zusätzliche Zufallskomponente. Fügen Sie einfach N Zufällige Bytes zum Klartext hinzu, bevor Sie Hashing durchführen, wobei N die Hash-Länge ist. Dies macht sogar bekannte Klartextangriffe unmöglich
@PaŭloEbermann Können Sie mir den Unterschied zwischen einem MAC (einem sicheren Hash-Algorithmus, der mit einem einzelnen Schlüssel verschlüsselt ist) und einem OTP-verschlüsselten Hash (einem sicheren Hash-Algorithmus mit einem eigenen Teil des OTP = einzelnen Schlüssels) erklären?
@Falco Wenn der Angreifer den Klartext kennt, kennt er den Hash des Klartextes und kann sowohl Klartext als auch Hash durch seinen eigenen Klartext und Hash ersetzen. Ein MAC ist _not_ "ein mit einem einzelnen Schlüssel verschlüsselter Hash;" Nicht alle MACs verwenden sogar Hashes, und HMAC (was tut) ist H (k || H (k || M)), nicht E_k (H (M)), und das Verschlüsseln eines Hashs mit einem formbaren Verschlüsselungssystem * kann nicht * einen MAC erstellen. MACs müssen unter bekannten Klartextangriffen existenziell nicht fälschbar sein. Wenn ein Angreifer Sie so oft zum MAC bringen kann, wie er möchte, kann er * kein * Nachrichten-MAC-Paar fälschen, das Sie nicht für ihn MACs sind.
@cpast ok - ich möchte das sehen Du kennst den Klartext und wirst mein SALZ irgendwie magisch erraten, das du brauchst, um den Hash-Code zu erstellen ??? Denken Sie daran, dass Sie nicht den ursprünglichen Hash haben, Sie haben nicht den ursprünglichen SALZ und da SALZ so groß wie Hash ist, können Sie den Hash genauso gut erraten ... Und indem Sie die Hash-Funktion zweimal verwenden ändert nichts an der Tatsache, dass Sie eine Funktion mit zwei Eingaben haben: Geheimschlüssel und Klartext. Wenn der Angreifer beides kennt, kann er reproduzieren, wenn nicht, dann nicht. Das gleiche wie verschlüsselter Hash mit unbekanntem SALZ
@Falco Woher haben wir einen gesalzenen Hasch? Salze werden in Passwort-Hashes verwendet, nicht anderswo und sind nicht geheim. Wenn Sie meinen "Ich habe eine geheime Sache, die ich der Nachricht vor dem Hashing hinzufüge", dann tun Sie nicht "Hasch und verschlüsseln den Hasch". Im Übrigen geht es bei HMAC darum, bestimmte Probleme mit Merkle-Damgard-Hashes zu umgehen, die H (k || Klartext) für einen MAC völlig ungeeignet machen. Deshalb wird zweimal gehasht (mit SHA-3 können Sie H (k || Klartext) ausführen, aber das ist nicht "einen Hash machen und ihn verschlüsseln", sondern "einen geheimen Schlüssel haben und ihn im Hash selbst verwenden" - Auch hier haben Hashes im Allgemeinen keine Salze.
@cpast Also schrieb ich in meiner Antwort "Addiere N zufälliges Byte vor dem Hashing" dies wird normalerweise als Salz bezeichnet. Ich füge dem Klartext etwas hinzu, damit der Hash nicht leicht vorhersehbar ist und für eine Nachricht mit demselben Klartext nicht identisch ist. Da ich den Hash anschließend mit dem OTP verschlüssle, habe ich effektiv E (M || k || H (M || k)). Der Hash ist also verschlüsselt, was mit einem unvorhersehbaren OTP perfekte Sicherheit bietet, die herkömmlichen MAC-Algorithmen überlegen ist.
@Falco Die Verwendung einer sicheren Hash-Funktion auf diese Weise reicht für einen perfekt sicheren MAC nicht aus. Zum Beispiel kann die sehr verbreitete Merkle-Damgard-Familie von Hashes möglicherweise keine perfekte Sicherheit für Ihre Konstruktion bieten: Wenn ich im Hash eine Kollision finde, bei der die Nachrichten M und N gleich lang sind (was ich tun kann, weil ich habe unendliche Rechenleistung in perfekter Sicherheitsanalyse), und damit M von Ihnen verschlüsselt und MAC-fähig wird, kann ich N gegen M austauschen und eine neue gültige Nachricht erhalten. Es gibt perfekt sichere MACs. Ihr Algorithmus gehört nicht dazu, mit dem, was Sie bisher gesagt haben.
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/21091/discussion-between-falco-and-cpast).


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...