(* Title: HOL/Auth/Guard/Guard_OtwayRees.thy Author: Frederic Blanqui, University of Cambridge Computer Laboratory Copyright 2002 University of Cambridge
*)
section‹Otway-Rees Protocol›
theory Guard_OtwayRees imports Guard_Shared begin
subsection‹messages used in the protocol›
abbreviation
nil :: "msg"where "nil == Number 0"
abbreviation
or1 :: "agent => agent => nat => event"where "or1 A B NA ==
Says A B {Nonce NA, Agent A, Agent B, Ciph A {Nonce NA, Agent A, Agent B}}"
abbreviation
or1' :: "agent => agent => agent => nat => msg => event" where "or1' A' A B NA X == Says A' B \Nonce NA, Agent A, Agent B, X\"
abbreviation
or2 :: "agent => agent => nat => nat => msg => event"where "or2 A B NA NB X ==
Says B Server {Nonce NA, Agent A, Agent B, X,
Ciph B {Nonce NA, Nonce NB, Agent A, Agent B}}"
abbreviation
or2' :: "agent => agent => agent => nat => nat => event" where "or2' B' A B NA NB ==
Says B' Server \Nonce NA, Agent A, Agent B,
Ciph A {Nonce NA, Agent A, Agent B},
Ciph B {Nonce NA, Nonce NB, Agent A, Agent B}}"
abbreviation
or3 :: "agent => agent => nat => nat => key => event"where "or3 A B NA NB K ==
Says Server B {Nonce NA, Ciph A {Nonce NA, Key K},
Ciph B {Nonce NB, Key K}}"
abbreviation
or3':: "agent => msg => agent => agent => nat => nat => key => event" where "or3' S Y A B NA NB K ==
Says S B {Nonce NA, Y, Ciph B {Nonce NB, Key K}}"
abbreviation
or4 :: "agent => agent => nat => msg => event"where "or4 A B NA X == Says B A \Nonce NA, X, nil\"
abbreviation
or4' :: "agent => agent => nat => key => event" where "or4' B' A NA K == Says B' A \Nonce NA, Ciph A \Nonce NA, Key K\, nil\"
subsection‹definition of the protocol›
inductive_set or :: "event list set" where
Nil: "[] \ or"
| Fake: "\evs \ or; X \ synth (analz (spies evs))\ \ Says Spy B X # evs \ or"
| OR1: "\evs1 \ or; Nonce NA \ used evs1\ \ or1 A B NA # evs1 \ or"
| OR2: "\evs2 \ or; or1' A' A B NA X \ set evs2; Nonce NB \ used evs2\ ==> or2 A B NA NB X # evs2 ∈ or"
| OR3: "\evs3 \ or; or2' B' A B NA NB \ set evs3; Key K \ used evs3\ ==> or3 A B NA NB K # evs3 ∈ or"
| OR4: "\evs4 \ or; or2 A B NA NB X \ set evs4; or3' S Y A B NA NB K \ set evs4\ ==> or4 A B NA X # evs4 ∈ or"
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.