Analyse kryptographischer Protokolle mittels Algebren basierend auf den Arbeiten von M.J. Merrit Marie-Jeanne Toussaint
Überblick Dolev und Yao M.J. Merritt M.J. Toussaint C. Meadows (NARROWER) Syverson (KPL-Logic) Syverson & Meadows (NRL Protocol Analyzer)
Algebra ??? Algebra: A = (D,R1,...,Rk) D Menge Ri Relationen Subalgebra: A‘ = (D‘,R1,...,Rk) wobei D‘ D Reduktion: B = (D,R1) oder B = (D,R2,R5)
crypto-algebra C C := (M, K, E, D) M : Klartext und Verschlüsselter Text K : Schlüssel Operatoren: E : Verschlüsselungsfunktion D : Entschlüsselungsfunktion
free-algebra F F := (M, K, e, d) M : Klartext und Verschlüsselter Text K : Schlüssel Operatoren: e : Verschlüsselungsfunktion d : Entschlüsselungsfunktion
Idealisierung Annahme: Das Kryptosystem ist perfekt. modelliert durch die Annahme daß : F C ein Isomorphismus ist ???
Modellieren von Wissen Definition 1: Ein Wissenszustand K (state of knowledge) in einem Kryptosystem ist ein Teilmengen von F x C. partitioniert in den drei endlichen Mengen: F, V, SV Cl(X) sei der Abschluß über den Verschlüsselungs- und Entschlüsselungs- operatoren einer Teilmenge von F
F (für fixiert) F := (a,b) die eine eineindeutige Abbildung aus einer Teilmenge von F in eine Teilmenge von C definieren entspricht Elementen die ein Teilnehmer gesehen hat und deren Existenz von Beginn an bekannt waren Identifiziert durch: a Cl(F) – bekannte Teil (known fraction)
V (für Variablen) V := (x,y) wobei x ein fixierter Generator aus F ist und y eine Teilmenge von Generatoren von C entspricht Generatoren aus C die ein Teilnehmer nicht gesehen hat aber deren Existenz ihm bekannt ist Identifiziert durch:
SV (für Semi-Variablen) SV := (z,a) wobei a ein fixiertes Element aus C ist und z zu einer endlichen Teilmenge von Cl(F V)\(Cl(F) V) gehört entspricht Elementen die ein Teilnehmer gesehen aber nicht identifizieren kann Identifiziert durch: z* Cl(F SV) – gesehene Teil (seen fraction)
Beispiel coin-flip protocol: A wählt zufällig einen Schlüssel k in K und verschiedene Nachrichten m1, m2 in {T,H}. A sendet em1=E(k,m1) und em2 =E(k,m2) an B. B wählt u in {em1,em2} und sendet u an A. A sendet k an B. Nun kennen beide das Ergebnis des Münzwurfes indem sie den Entschlüsselungsoperator D auf u anwenden.
Wissenszustände K(B,1)=F(B,1) V(B,1) SV(B,1): F(B,1)={T,H} V(B,1)={ } SV(B,1)={em1*,em2*} (em1* em2*) K(B,3)=F(B,3) V(B,3) SV(B,3): F(B,3)={T,H,k} V(B,3)= SV(B,3)=
Schleißen aus dem gesehenen Teil eines Teilnehmers Annahme K = F V SV : F = {k1,m1}; V = { , }; SV = {e( , )}; gesehene Teil: e(k1,m1) stimmen Bilder von e(k1,m1) und e( , ) überein, so werden diese Elemente unifiziert ( = k1 und = m1 heißen constraints der Unifikation) stimmen Bilder von e(k1,m1) und e( , ) nicht überein, so werden diese Elemente kontra-unifiziert ( k1 und m1 heißen constraints der Kontraunifikation)
Modellieren von Glauben Definition 2: Ein Glaubenszustand assoziierbar zu einem Wissenszustand K ist eine maximale Einschränkung von K auf eine eineindeutige Abbildung. (Annahme bezogen auf einen Wissenszustand eines anderen Teilnehmers) Für jeden Glaubenszustand Be existiert genau eine Instanz i der Variablen des Wissenszustands, so daß Be = F {( , i( ))} {(i(z*),SV(z*))} ist.
Schleißen aus dem Abschluß des Glaubenszustands Sei K = F V SV : F = ; V = { , }; SV = {e( , )}; Annahme: Be = {( , kc),( , mc)} {e( , ),SV(e( , )) } berechnen Cl(Be) wenn Verschlüsselung von mc mit kc SV(e( , )) ergibt ist die Annahme bestätigt und wird zum Wissen hinzugefügt ergibt sie nicht SV(e( , )) so ist die Annahme zurückgewiesen
Schleißen aus dem Abschluß des Glaubenszustands Menge der Glaubenszustände zu einem Wissenszustand kann in endlich viele Äquivalentsklassen geteilt werden Relation: „ihre Instanzen haben den selben crypto-part“
Zusammenfassung haben zwei Elemente der free-algebra das selbe Bild in der crypto-algebra so müssen sie unifizierbar sein, wenn nicht: - Fehler im „gesehene Teil“ (inkonsistenter Wissenszustand) - Annahme ist falsch haben zwei unifizierbare Elemente der free-algebra verschiedene Bilder in der crypto-algebra so sind sie kontra-unifizierbar
zurück zum Beispiel Wissenszustände von A sind konsistent B hat nach dem ersten Schritt eine unendliche Anzahl von Glaubenzuständen durch die möglichen Instanzen von em1*, em2* und unendliche Anzahl von Äquivalenzklassen abhängig von der Instanzierung von B kann endliche Anzahl von Instanzen für wählen wählt richtig (sein Wissenszustand entspricht dem nach dem dritten Schritt) wählt falsch (Annahmen werden verworfen) constraints sind nicht leer, also sind Wissenszustände von B konsistent
zurück zum Beispiel coin-flip ist nur sicher, wenn B den Wert von nicht instanzieren kann Wahrscheinlichkeit liegt bei Null (formalisiert durch ein Wahrscheinlichkeitsmaß) im 3. Schritt schließt B Inkonsistentheit aus, in dem er seien „gesehenen Teil“ analysiert und versucht em1* und em2* mit e(k,T) und e(k,H) zu unifizieren