Ein Nachrichtenauthentifizierungscode (MAC) wird durch ein Dreifach effizienter Algorithmen , die die folgenden erfüllen (die Definition stammt aus Abschnitt 4.3 des Katz -Lindell Buch ):
- Bei Eingabe generiert der Algorithmus einen Schlüssel .
- Bei der von generierten Eingabe und einer Nachricht generiert der Algorithmus ein Tag . Wir schreiben .
- Bei der Eingabe eines Tripels der Algorithmus ein einzelnes Bit . Wir schreiben .
Es ist erforderlich , daß für alle Ausgabe durch und alle , haben wir .
Die Sicherheitsanforderung wird über das folgende Experiment zwischen dem Herausforderer und dem Gegner :
- .
- .
- Es sei bezeichnen die Menge aller Abfragen, die zu seinem Orakel gefragt.
- Die Ausgabe des Experiments wird genau dann als 1 definiert, wenn:
- und
- .
Der MAC wird als sicher angesehen, wenn die Wahrscheinlichkeit, dass das Experiment 1 ausgibt, in vernachlässigbar ist .
Das obige Experiment ähnelt einem "ausgewählten Klartext" -Experiment gegen ein symmetrisches Verschlüsselungsschema, bei dem der Gegner Chiffretexte erhalten kann, die Nachrichten seiner Wahl entsprechen. Bei einem stärkeren Angriff, der als "gewählter Chiffretext" -Angriff bezeichnet wird, erhält der Gegner auch Zugriff auf ein Entschlüsselungsorakel.
Meine Frage lautet also:
Was passiert, wenn wir dem MAC-Gegner erlauben, auch auf ein Verifizierungsorakel zuzugreifen? Mit anderen Worten, was ist, wenn Zeile 2 des Experiments durch Folgendes ersetzt wird:
.
Beachten Sie, dass im neuen Experiment nur Abfragen enthält, die vom Orakel .
quelle
Antworten:
Lassen Sie gemäß jeder Definition sicher sein. Da die Definition des Buches schwächer ist als Ihre Definition, ist sie gemäß der Definition des Buches besonders sicher. Korrigieren Sie eine effizient berechenbare und effizient invertierbare Codierung geordneter Paare, indem Sie beispielsweise eine effizient berechenbare und effizient invertierbare präfixfreie Darstellung des linken Eintrags mit dem rechten Eintrag verketten . Lassen Sie arbeiten, indem Sie die Ausgabe von⟨Gen,MAC,Verif⟩
MACk′ MACk mit der leeren Zeichenfolge.
Verifk′ Verifk
k ⟨Gen,MAC′,Verif′⟩
⟨Gen,MAC′,Verif′⟩
⟨Gen,MAC,Verif⟩
⟨Gen,MAC′,Verif′⟩ als sicherer Nachrichtenauthentifizierungscode.
k 2⋅(length(k)+1)
Verifk′ k
⟨Gen,MAC′,Verif′⟩ as unsicher. QED
Lassen Sie genau dann akzeptieren, wenn [[ die Nachricht und den linken Eintrag des Tags akzeptieren würde ] und [der rechte Eintrag der Eingabe a ist Präfix von ]]. ist eindeutig effizient und erfüllt die Anforderung. Da [die Tags mit der leeren Zeichenfolge für koppeln] und [den linken Eintrag der Ausgabe von] einen möglichen Gegner angreift, der das Buch angreift
Definition der Sicherheit von kann kein Nicht- haben vernachlässigbare Wahrscheinlichkeit , die Sicherheitsdefinition des Buches für , Die Definition des Buches wird ebenfalls klassifiziert
Sobald ein Gegner jedoch ein gültiges Nachricht-Tag-Paar für erhält , Adaptive Abfragen an reichen aus, um zu lernen , was Fälschungen für jede Nachricht ermöglichen würde. Somit klassifiziert Ihre Definition
(Die "starke Unverfälschbarkeit" -Versionen werden erhalten, indem durch die in meinem nächsten Satz angegebene Menge ersetzt wird. Dies ist erforderlich, damit die Encrypt-Then-Mac- Konstruktion Chiffretext-Integrität bietet und IND-CCA2 ist.)
Initialisieren Sie als leere Menge und setzen Sie in jedes Mal, wenn on ausgibt eine Abfrage von . Definieren Sie eine Abfrage, die nur dann versucht werden soll , wenn sie an ein Paar, das bereits in . Definieren Sie eine Abfrage so, dass sie nur dann frühzeitig versucht wird, wenn sie versucht wird und nicht nach einer versuchten Abfrage erfolgt ist, die akzeptiert.Q+ ⟨m,t⟩ Q+
MACk t m
Verifk Q+
Verifk
BMACk(⋅)(1n,q,j) interagiert mit wie folgt:A
mit weniger als zufälligen Bitsfast gleichmäßig. "Forward" alle ‚s Abfragen und geben , das von Oracle (actual) ausgegeben , gib als die Ausgaben auf dem ersten bis versuchen Abfragen, und gebenj r∈{1,2,3,...,q−2,q−1,q}
A MACk(⋅) MACk(⋅)
A 0 r−1
1 als von bei Abfragen, die nicht versucht werden.
Wenn führt eine te versuchende Abfrage durch und gibt dann aus, was diese Abfrage war.
Wenn gibt die Ausgabe aus und gibt dann dieselbe Ausgabe aus.
Wenn die Zufälligkeit von allem behoben ist, wennVerifk
AMACk(⋅),Verifk(⋅,⋅)(1n) r
AMACk(⋅),Verifk(⋅,⋅)(1n)
AMACk(⋅),Verifk(⋅,⋅)(1n) macht genau früh versuchende Abfragen und ist erfolgreich in der starken Unverfälschbarkeitsversion Ihres Experiments, dann
Erfolgreich im Experiment des Versionsbuchs für starke Unverfälschbarkeit.r−1
BA,MACk(⋅)(1n,q,j)
"Ignoriere das Orakel " ist eine konstruktive geradlinige Reduktion vom Erfolg in der starken Unverfälschbarkeitsversion des Buchexperiments zum Erfolg in der starken Unverfälschbarkeitsversion deines Experiments, und diese Reduktion ist fast vollkommen eng. Daher liefert die Version Ihrer Definition mit starker Unverfälschbarkeit dieselben asymptotischen MACs wie die Version mit starker Unverfälschbarkeit, mit der das Buch experimentiert.Verifk
quelle