src/HOL/Auth/NS_Public_Bad.thy
changeset 3659 eddedfe2f3f8
parent 3541 2f5ac0f047a6
child 3683 aafe719dff14
equal deleted inserted replaced
3658:f87dd7b68d8c 3659:eddedfe2f3f8
    26     Fake "[| evs: ns_public;  B ~= Spy;  
    26     Fake "[| evs: ns_public;  B ~= Spy;  
    27              X: synth (analz (sees Spy evs)) |]
    27              X: synth (analz (sees Spy evs)) |]
    28           ==> Says Spy B X  # evs : ns_public"
    28           ==> Says Spy B X  # evs : ns_public"
    29 
    29 
    30          (*Alice initiates a protocol run, sending a nonce to Bob*)
    30          (*Alice initiates a protocol run, sending a nonce to Bob*)
    31     NS1  "[| evs: ns_public;  A ~= B;  Nonce NA ~: used evs |]
    31     NS1  "[| evs1: ns_public;  A ~= B;  Nonce NA ~: used evs1 |]
    32           ==> Says A B (Crypt (pubK B) {|Nonce NA, Agent A|})
    32           ==> Says A B (Crypt (pubK B) {|Nonce NA, Agent A|})
    33                 # evs  :  ns_public"
    33                 # evs1  :  ns_public"
    34 
    34 
    35          (*Bob responds to Alice's message with a further nonce*)
    35          (*Bob responds to Alice's message with a further nonce*)
    36     NS2  "[| evs: ns_public;  A ~= B;  Nonce NB ~: used evs;
    36     NS2  "[| evs2: ns_public;  A ~= B;  Nonce NB ~: used evs2;
    37              Says A' B (Crypt (pubK B) {|Nonce NA, Agent A|}) : set evs |]
    37              Says A' B (Crypt (pubK B) {|Nonce NA, Agent A|}) : set evs2 |]
    38           ==> Says B A (Crypt (pubK A) {|Nonce NA, Nonce NB|})
    38           ==> Says B A (Crypt (pubK A) {|Nonce NA, Nonce NB|})
    39                 # evs  :  ns_public"
    39                 # evs2  :  ns_public"
    40 
    40 
    41          (*Alice proves her existence by sending NB back to Bob.*)
    41          (*Alice proves her existence by sending NB back to Bob.*)
    42     NS3  "[| evs: ns_public;
    42     NS3  "[| evs3: ns_public;
    43              Says A  B (Crypt (pubK B) {|Nonce NA, Agent A|}) : set evs;
    43              Says A  B (Crypt (pubK B) {|Nonce NA, Agent A|}) : set evs3;
    44              Says B' A (Crypt (pubK A) {|Nonce NA, Nonce NB|}) : set evs |]
    44              Says B' A (Crypt (pubK A) {|Nonce NA, Nonce NB|}) : set evs3 |]
    45           ==> Says A B (Crypt (pubK B) (Nonce NB)) # evs : ns_public"
    45           ==> Says A B (Crypt (pubK B) (Nonce NB)) # evs3 : ns_public"
    46 
    46 
    47   (**Oops message??**)
    47   (**Oops message??**)
    48 
    48 
    49 end
    49 end