Warum sollte ich authentifizierte Verschlüsselung anstelle von nur Verschlüsselung verwenden?

Es gibt verschiedene Betriebsmodi für die Verwendung von Blockverschlüsselungen, von denen einige bereitgestellt werden „Verschlüsselung“ und einige davon bieten authentifizierte Verschlüsselung .

Warum sollte ich verwenden? ein authentifizierter Verschlüsselungsmodus und nicht nur ein Verschlüsselungsmodus?

Diese Frage ist nicht beantwortet Ziel ist es, verschiedene Modi der authentifizierten Verschlüsselung gegenüber den Verschlüsselungsmodi zu diskutieren (obwohl eine gute Antwort dies wählen könnte): Ziel ist es zu rechtfertigen, warum / wann AE besser ist als „einfache“ Verschlüsselung.

Kommentare

Antwort

Der entscheidende Unterschied zwischen einfacher Verschlüsselung und authentifizierter Verschlüsselung (AE) ist, dass AE zusätzlich provi des Authentizismus, während einfache Verschlüsselung nur Vertraulichkeit bietet. Lassen Sie uns diese beiden Begriffe im Detail untersuchen.

Im weiteren Text nehmen wir an, dass $ K $ ein geheimer Schlüssel ist, der bekannt ist autorisierten Parteien, Angreifern jedoch unbekannt.

Ziele

Vertraulichkeit (Datenschutz) bedeutet, dass ein Angreifer keine Informationen über den Klartext $ P $ aus dem Chiffretext $ E_K (P) $ außer möglicherweise für die Länge. Mit anderen Worten, der Chiffretext sieht aus wie eine zufällige Zeichenfolge für diejenigen, die $ K $ , auch wenn sie eine gewisse Kontrolle über den Klartext haben. Alle Folklore-Verschlüsselungsmethoden, vom einmaligen Pad bis zum Enigma, bieten Vertraulichkeit (unter bestimmten Voraussetzungen) und nur diese.

Daten Authentizität (Integrität) bedeutet, dass eine autorisierte Partei (Empfänger), die $ K $ besitzt, prüfen kann, ob der Empfänger ved data $ D $ ist echt, dh sie wurde nur von einem Absender erstellt, der $ K $ kennt . Die Daten können Klartext oder Chiffretext sein, und es gibt einen subtilen Unterschied, was in jedem Fall authentisch ist: Wenn der Chiffretext authentifiziert ist, wissen wir, dass der Schlüsselbesitzer den Chiffretext autorisiert hat, aber nicht unbedingt Klartext. Ein traditioneller Weg, um Authentizität zu erreichen, ist die Verwendung des Nachrichtenauthentifizierungscodes (MAC): $$ H_K (D) = T, $$ wobei $ T $ heißt tag . In der Welt der Kryptografie mit öffentlichen Schlüsseln wird das gleiche Ziel mit digitalen Signaturen erreicht.

Was Sie benötigen

Ein Benutzer kann normalerweise entscheiden, nach welchen dieser Eigenschaften er sucht. Wenn er beispielsweise weiß, dass ein Angreifer Daten nicht ändern kann, muss er sie möglicherweise nicht authentifizieren. Wenn er jedoch beides benötigt, gibt es sowohl sichere als auch unsichere Möglichkeiten, die Schemata zweier Typen zu kombinieren. Beispielsweise ist ein naiver Ansatz zur Verwendung des gleichen Schlüssels $ K $ in beiden Schemata für die meisten Instanziierungen gefährlich unsicher. Daher wird ein kombiniertes Schema empfohlen.

Authentifizierte Verschlüsselung

Authentifizierte Verschlüsselung (AE) bietet Vertraulichkeit und Datenauthentizität gleichzeitig. Ein AE-Schema ist normalerweise komplizierter als Nur-Vertraulichkeits- oder Nur-Authentizitäts-Schemata. Es ist jedoch einfacher zu verwenden, da es normalerweise nur einen einzigen Schlüssel benötigt und robuster ist, da der Benutzer weniger Freiheit hat, etwas falsch zu machen (siehe auch ausführlichere Antwort ).

Als separate Funktion kann ein authentifiziertes Verschlüsselungsschema einen Teil seiner Eingabe authentifizieren, aber nicht verschlüsseln, der als zugeordnete Daten bezeichnet wird . Beispielsweise möchten wir möglicherweise den Inhalt eines Internetpakets verschlüsseln, müssen jedoch den Header unverschlüsselt lassen, aber dennoch an die internen Daten gebunden sein.

Sicherheit

Wir haben noch nicht angegeben, was wir unter einem sicheren Schema verstehen. Anscheinend gibt es mehrere Sicherheitsbegriffe, und der Benutzer muss unter ihnen entsprechend den Fähigkeiten auswählen, die er von einem Gegner erwartet.

Für Nur-Vertraulichkeit -Betriebsmodi am beliebtesten Der Sicherheitsbegriff befasst sich mit ausgewählten Klartextangriffen . Sei $ E $ ein Verschlüsselungsschema. Wir gehen davon aus, dass der Gegner nicht nur einige Klartexte $ P $ kennt, sondern auch einige davon für die Verschlüsselung auswählen kann (dies ist eine recht praktische Situation).Daher erlauben wir dem Gegner, jeden Klartext für die Verschlüsselung mehrmals hintereinander auszuwählen. Was wir von einem sicheren Schema noch benötigen, ist, dass es jeweils zufällig aussehende Chiffretexte ausgibt: $$ E_K (P_1), E_K (P_2), \ ldots, E_K (P_n) \ sim RandomString (| P_1 | + | P_2 | + \ cdots + | P_n |) $$

Der Gegner kann nicht den gesamten Satz von Chiffretexten unterscheiden, den er von einer Ausgabe eines echten Zufallsbitgenerators von erhält die gleiche Länge, auch wenn der Gegner seine Klartexte wiederholt. Die letztere Anforderung impliziert, dass das Schema nicht deterministisch sein muss, und in der Tat sind die Nur-Vertraulichkeits-Modi, die diese Anforderungen erfüllen, entweder probabilistisch oder nicht-ce-basiert die Sicherheit des Schemas mit der Fähigkeit, den Schlüssel $ K $ selbst wiederherzustellen. Dies war relevant, wenn der Schlüssel an anderer Stelle verwendet werden konnte, aber dies ist derzeit weitaus seltener und der oben beschriebene Sicherheitsbegriff ist weit verbreitet.

Die Sicherheit der Authentizitätsmodi ist in definiert ein anderer Weg. Sei $ H_K $ ein solches Schema mit dem geheimen Schlüssel $ K $ . Wir fordern, dass, wenn der Gegner Daten $ D $ auswählt, die noch nicht authentifiziert wurden, er die Chance hat, das Tag $ zu erraten T $ , so dass $$ H_K (D) = T $$ vernachlässigbar sind. Wenn er das Paar $ (D, T) $ an einen Prüfer sendet, erhält er die Antwort $ \ perp $ (Fehler).

Beachten Sie, dass wir nicht über Chiffretext-Angriffe auf Nur-Vertraulichkeits-Modi gesprochen haben. Dies sind Angriffe, wenn der Gegner auch seine eigenen Chiffretexte zur Entschlüsselung senden kann. Während diese Einstellung auch in der Praxis angezeigt wird (obwohl sie seltener als ausgewählte Klartextangriffe ist), können die Nur-Vertraulichkeits-Schemata solchen Angriffen nicht widerstehen. Um diese Art von Sicherheit einzurichten, muss sich der Benutzer erneut der authentifizierten Verschlüsselung zuwenden.

Die Sicherheit authentifizierter Verschlüsselungsschemata besteht aus zwei Teilen. Erstens muss der Gegner ähnlich wie bei Nur-Vertraulichkeits-Modi nicht in der Lage sein, die Chiffretexte von zufälligen Zeichenfolgen zu unterscheiden. Zweitens wird sie wahrscheinlich $ \ perp erhalten, unabhängig davon, welchen gefälschten (nicht auf $ K $ ) Chiffretext zur Entschlüsselung sendet $ als Antwort.

Daher bieten die authentifizierten Verschlüsselungsmodi bei Bedarf auch Sicherheit gegen Angriffe mit ausgewähltem Chiffretext.

Funktionsweise

Es gibt zahlreiche integrierte authentifizierte Verschlüsselungsschemata: CCM, GCM, OCB, EAX usw. , wo Mechanismen, die Vertraulichkeit und Authentizität herstellen, eng miteinander verbunden sind. Das Design dieser Schemata geht weit über das Thema hinaus. Es gibt jedoch ein einfaches zusammengesetztes Schema, das als Encrypt-then-MAC bekannt ist und wie folgt funktioniert. Sei $ K_1, K_2 $ geheime Schlüssel, $ P $ der Klartext, $ E $ ist ein Verschlüsselungsmodus und $ H $ ist ein MAC. Dann das Schema $$ \ Pi_ {K_1, K_2}: M \ rightarrow E_ {K_1} (M) || H_ {K_2} (E_ {K_1} (M)) $$ ist ein sicheres authentifiziertes Verschlüsselungsschema, wenn $ E $ ein sicherer Vertraulichkeitsmodus ist und $ H $ ist ein sicherer Authentizitätsmodus.

Zusätzliche Funktionen authentifizierter Verschlüsselungsschemata

Neben der Bereitstellung von Vertraulichkeit und Authentizität können authentifizierte Verschlüsselungsschemata eine Reihe zusätzlicher Funktionen aufweisen. Kein Schema hat sie alle, daher wird die beste Wahl durch die Einstellungen des Benutzers bestimmt.

  • Sicherheitsstufe . Ein Schema garantiert nur Vertraulichkeit und Datenauthentizität Diese Grenze ist in der Regel viel niedriger als der Schlüsselraum und überschreitet für AES-basierte Modi normalerweise nicht $ 2 ^ {64} $ .

  • Parallelität Wenn viele Ressourcen verfügbar sind, kann es sinnvoll sein, die Verschlüsselung, Entschlüsselung oder Überprüfung parallel auszuführen. Die Modi, die eine Verkettung verwenden (wie die aus der CBC-Verschlüsselung oder der Schwammkonstruktion abgeleiteten), sind schwer zu parallelisieren.

  • Online-Verschlüsselung . Wir sagen dass ein Schema online ist, wenn es ermöglicht, sofort zu verschlüsseln, wenn die Daten verfügbar sind, ohne die Länge zu kennen.

  • Verwendung von Patenten . Eines der interessantesten AE-Schemata, der OCB-Modus, ist patentiert und weniger häufig aufgrund dieser Eigenschaft verwendet und analysiert.Es ist oft wünschenswert, dass das Schema patentfrei ist.

  • Tag-Update . Die meisten Schemata, mit wenigen Ausnahmen wie GCM, erfordern die Neuberechnung fast des gesamten Chiffretextes, wenn ein kleiner Teil des Klartextes geändert wird. Wenn der Chiffretext schnell aktualisiert werden kann, würde dies eine viel schnellere Verarbeitung großer Mengen verschlüsselter Daten ermöglichen, z. B. Festplattenverschlüsselung.

  • Verwendung von Nonces oder zufällig IVs . Nonces und zufällige IVs führen zu unterschiedlichen Sicherheitsmodellen, die häufig nicht kompatibel sind (Schemata können mit Nonces sicher sein, jedoch nicht mit zufälligen IVs gleicher Länge oder umgekehrt). Während die Eindeutigkeit des Nonce möglicherweise schwieriger sicherzustellen ist, benötigen die Zufalls-IVs einen separaten Mechanismus zur Erzeugung von Zufallszahlen und führen zur Erweiterung des Chiffretextes.

  • Variabler Schlüssel, Nonce, oder Tag-Länge . Alle drei Parameter werden normalerweise von der Anwendung eingeschränkt, die ein AE-Schema verwendet. AE-Systeme haben wiederum ihre eigenen, manchmal inkompatiblen Einschränkungen. Je variabler das Schema ist, desto mehr Anwendungen eignen sich.

  • Verarbeitung der zugehörigen Daten . Alle modernen Schemata ermöglichen die Authentifizierung zugehöriger Daten, die nicht verschlüsselt sind. Einige von ihnen können AD jedoch nicht vorverarbeiten, bevor der Klartext beendet ist, was die Leistung beeinträchtigen kann.

Zusätzliche Lektüre

Der technische Bericht von Rogaway ist eine umfassende Übersicht über die Vertraulichkeit -nur Modi, MACs und einige authentifizierte Verschlüsselungsmodi. Es enthält auch alle formalen Details zu Sicherheitsbegriffen.

Kommentare

  • Ich könnte hinzufügen, dass in vielen praktischen Situationen die Wahl des authentifizierten Verschlüsselungsschemas weitgehend diktiert ist durch geeignete Konventionen oder Protokolle. Es ist sehr üblich, dass Menschen die authentifizierte Verschlüsselung missbilligen, aber in der Praxis habe ich ‚ gesehen, dass sowohl benutzerdefinierte Implementierungen von MAC-then-encrypt als auch encrypt-then-MAC Fehler als Verwendungen aufweisen der authentifizierten Verschlüsselung. Dies liegt daran, dass für die korrekte Implementierung der Kombination sehr viel Liebe zum Detail erforderlich ist.
  • In Bezug auf zusätzliche Eigenschaften war die Vermeidung der Erstellung von Seitenkanälen (insbesondere der zeitlichen Abstimmung von Seitenkanälen) für die Beurteilung der Sicherheit von entscheidender Bedeutung einer AE (AD) -Verschlüsselungssuite. In der Praxis bedeutet dies, dass die Verschlüsselung so implementiert werden kann, dass sie in einer Zeit ausgeführt wird, die vom Schlüssel oder vom eingegebenen Klartext nicht beeinflusst wird.

Antwort

Wenn wir Informationen über einen unsicheren Kanal übertragen, möchten wir, dass unsere Daten sicher sind.

Was bedeutet das? Um diese zu diskutieren, verwenden wir die kryptografische Standardsituation von Alice und Bob. Alice möchte etwas (den Klartext ) über einen unsicheren Kanal (was dies bedeutet, wird besprochen) an Bob senden. Dieser Kanal wird von Eve (einem Lauscher) und Mallory (der versucht, sich böswillig einzumischen) angehört werden – was dies bedeutet, wird zu gegebener Zeit besprochen.

Vertraulichkeit : Wenn Alice eine Nachricht an Bob sendet, fordern wir, dass eine Lauscherin, die ihre Kommunikation abhört, nichts über den Inhalt ihrer Nachrichten erfahren kann.

Begründung : Andernfalls könnte Eve etwas lernen, das Alice / Bob nicht teilen möchten.

Lösung: Wir verwenden Verschlüsselung , die den Klartext in einen Chiffretext umwandelt, der (im informationstheoretischen Sinne) ) enthält nur Informationen über den Klartext, die nicht realisierbar extrahiert werden können. Dies bedeutet, dass (paraphrasieren von Goldwasser ) alles Eva kann etwas über den Klartext lernen, vorausgesetzt sie kennt den Chiffretext, sie kann auch ohne den Chiffretext ableiten.

Auch in diesem Fall müssen wir vorsichtig sein. Nur weil ein Schema einem passiven Angreifer standhält (jemand, der nur den Nachrichtenstrom abhört), ist er nicht stark gegen einen aktiven Angreifer. Betrachten Sie beispielsweise CBC wird verwendet. Er ist unter dem Spiel IND CPA sicher. was Sie vielleicht für sicher halten. Im Spiel CCA erlauben wir dem Angreifer jedoch, nach der Entschlüsselung von Nachrichten zu fragen (obwohl nicht nach der Entschlüsselung des Chiffretextes). Was er bei Chiffretext $ c = {\ small IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $ tun kann, ist die Entschlüsselung von $ c „= a \ mathbin \ | c $, wobei $ a $ eine nicht leere Nachricht ist. Dies ist nicht gleich dem Chiffretext, ist also im Spiel erlaubt, und indem er nur die letzten $ n $ Blöcke nimmt, kann er die Entschlüsselung des Chiffretextes extrahieren.

Ein solches Beispiel ist nicht so erfunden, wie Sie vielleicht denken, da das, was wir als Entschlüsselungsorakel modellieren, durchaus darin bestehen könnte, dass der Angreifer möglicherweise Zeichenfolgen entschlüsseln kann, aber die Daten, nach denen er fragen kann Das Entschlüsseln muss möglicherweise mit einer bestimmten Zeichenfolge beginnen (ähnlich der Idee einer SQL-Injection).

Authentizität : Wenn Bob eine Nachricht erhält, weiß er, dass sie definitiv von Alice stammt.

Begründung: Andernfalls könnte Mallory eine Nachricht an Bob senden, in der behauptet wird, sie stamme von Alice, ohne dass Bob es weiß. In nachweislicher Sicherheit sind wir „Ich bin sehr nachsichtig, was es für Mallory bedeutet, eine gefälschte Nachricht zu erstellen. Er gewinnt, wenn er jede Nachricht erstellen kann, die Bob akzeptiert (auch wenn sie fast dieselbe ist, die Alice ihm bereits gesendet hat). Es gibt viele Möglichkeiten, dies zu tun, z. B. Wiedergabe-, Neuordnungs- oder Bit-Flipping-Angriffe.

Lösung: Um die Authentifizierung allein zu erreichen, können wir eine verwenden MAC .

Authentizität und Vertraulichkeit : Alice und Bob kommunizieren vertraulich und jede Nachricht ist authentisch.

Begründung: Wenn ein Stream nur vertraulich ist (dh Verschlüsselung, aber keine authentifizierte Verschlüsselung), kann ein Lauscher die Nachricht möglicherweise während der Übertragung ändern, obwohl er nicht weiß, was dies ist. Angenommen, Alice & Bob verwendet das perfekt sichere One Time Pad ( OTP ) mit dem geheimen Schlüssel $ k $ und der Nachricht $ m $:

$$ A \ text {sendet} c = m \ oplus k \ an B \\ \ Prec M \ text {fängt ab} c \ succ \\ M \ text {sendet} c „= c \ oplus h \ an B \ text {(für einen bestimmten Wert} h) \\ B \ text {empfängt} c“ \ text {von M, denkt aber, es ist} c \ text {gesendet von} A \\ B \ text {entschlüsselt} m „= c“ \ oplus k = c \ oplus h $$ Dies bedeutet, dass $ B $ die Nachricht $ empfangen hat m „$, aber er denkt, es ist $ m $.

Angenommen, das Protokoll ist nicht authentifiziert und Mallory weiß, dass die Nachricht, die Alice Bob senden wird,“ Ich bin damit einverstanden, £ zu senden ??? auf Konto # ???? „für einige Werte von ???. Auch wenn sie“ nicht genau herausfinden können, was das Konto ist, und sie möglicherweise nicht in der Lage sind, die Zahlung auf ihr eigenes Konto zu senden, können sie sich ändern es ist also nicht mehr Alices Konto.

Lösung: Authentifizierte Verschlüsselung!


Ein guter Artikel, der die Notwendigkeit von AE erklärt, ist dieser Blog-Beitrag von Matthew Green. Eine technischere Einführung in die Betriebsmodi ist dieses Papier von Rogaway.

Kommentare

  • Das einzige Verschlüsselungsschema, das informationstheoretische Sicherheit gewährleistet, ist das einmalige Pad. IND-CPA-Verschlüsselungsschemata garantieren nur, dass die Informationen nicht extrahiert werden können aus dem Chiffretext eines probabilistischen Poly-Time-Gegners.
  • Ah ja, das wurde unklar (/ falsch!) geschrieben. Danke, dass Sie es bearbeitet haben – ich wollte es als enthält keine Informationen <, die extrahiert werden können > ‚
  • Tatsächlich sind viele “ nur Vertraulichkeit “ -Modi bieten sogar ‚ keine gute Vertraulichkeit, wenn sie von einem aktiven Angreifer angegriffen werden (der die Nachrichten ändern oder ausgewählte Klartext- oder ausgewählte Chiffretext-Angriffe bereitstellen kann). . Daher müssen diese Modi in der Praxis (für einen Kommunikationskanal) zusammen mit einem MAC verwendet werden, um nur den vertraulichen Teil zu erhalten. Ein AE-Modus kombiniert diese nur zu einem.
  • @ PaŭloEbermann / Alle anderen: Ich glaube wirklich nicht, dass ich ‚ ‚ Ich habe hier eine gute Antwort geschrieben (es ist doch Freitagabend!), aber ich wollte nur ein paar erste Gedanken niederlegen. Fühlen Sie sich frei, Ihre eigenen Antworten hinzuzufügen / diese zu bearbeiten / Ihre eigenen davon abzuschreiben. Wenn Leute denken, dass meine Antwort “ nahe genug “ zu einer guten ist (was ich noch einmal lese, habe ich nicht ‚ t) dann können Sie ‚ gerne einfach bearbeiten oder meine Wörter in Ihren wiederverwenden.
  • Ich denke, AE bietet auch Integrität ( de.wikipedia.org/wiki/Authenticated_encryption ) möchte dies möglicherweise auch hinzufügen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.