ses-flow(s;es;a;e1;e2) ==
  Y 
  (ses-flow,a,e1,e2.
    (((e1 has a)  (e2 has a)  e1 loc e2 )
     (snd:E(Send)
        rcv:E(Rcv)
         (e1 c snd
          rcv c e2
          (snd < rcv)
          (Send(snd) = Rcv(rcv))
          (ses-flow a e1 snd)
          (ses-flow a rcv e2)))
     (encr:E(Encrypt)
        decr:E(Decrypt)
         ((e1 <loc encr)
          decr c e2
          (encr < decr)
          ((plainText(decr) = plainText(encr))
            (cipherText(decr) = cipherText(encr))
            MatchingKeys(key(decr);key(encr)))
          ((key(decr) = symmetric-key(a)))
          (ses-flow a e1 encr)
          (ses-flow cipherText(encr) encr decr)
          (ses-flow a decr e2))))) 
  a 
  e1 
  e2



Definitions :  ycomb: Y,  lambda: x.A[x],  event-has: (e has a),  es-le: e loc e' ,  or: P  Q,  ses-send: Send,  eclass-val: X(e),  ses-rcv: Rcv,  ses-encrypt: Encrypt,  exists: x:A. B[x],  es-E-interface: E(X),  ses-decrypt: Decrypt,  es-locl: (e <loc e'),  es-causle: e c e',  es-causl: (e < e'),  sdata: SecurityData,  ses-decrypted: plainText(e),  ses-encrypted: plainText(e),  atom: Atom$n,  ses-cipher: cipherText(e),  ses-key-rel: MatchingKeys(k1;k2),  ses-encryption-key: key(e),  not: A,  equal: s = t,  encryption-key: Key,  ses-decryption-key: key(e),  symmetric-key: symmetric-key(a),  and: P  Q,  ses-crypt: cipherText(e),  apply: f a
FDL editor aliases :  ses-flow

ses-flow(s;es;a;e1;e2)  ==
    Y 
    (\mlambda{}ses-flow,a,e1,e2.
        (((e1  has  a)  \mwedge{}  (e2  has  a)  \mwedge{}  e1  \mleq{}loc  e2  )
        \mvee{}  (\mexists{}snd:E(Send)
                \mexists{}rcv:E(Rcv)
                  (e1  c\mleq{}  snd
                  \mwedge{}  rcv  c\mleq{}  e2
                  \mwedge{}  (snd  <  rcv)
                  \mwedge{}  (Send(snd)  =  Rcv(rcv))
                  \mwedge{}  (ses-flow  a  e1  snd)
                  \mwedge{}  (ses-flow  a  rcv  e2)))
        \mvee{}  (\mexists{}encr:E(Encrypt)
                \mexists{}decr:E(Decrypt)
                  ((e1  <loc  encr)
                  \mwedge{}  decr  c\mleq{}  e2
                  \mwedge{}  (encr  <  decr)
                  \mwedge{}  ((plainText(decr)  =  plainText(encr))
                      \mwedge{}  (cipherText(decr)  =  cipherText(encr))
                      \mwedge{}  MatchingKeys(key(decr);key(encr)))
                  \mwedge{}  (\mneg{}(key(decr)  =  symmetric-key(a)))
                  \mwedge{}  (ses-flow  a  e1  encr)
                  \mwedge{}  (ses-flow  cipherText(encr)  encr  decr)
                  \mwedge{}  (ses-flow  a  decr  e2))))) 
    a 
    e1 
    e2


Date html generated: 2010_08_28-AM-02_07_00
Last ObjectModification: 2010_03_11-AM-11_54_46

Home Index