Table 2 Definition of code.

From: PIA-A secure and efficient identity authentication scheme in telemedicine via the PUF method

(*––channels––*)

free c1:channel

free c2:channel

free Cug:channel[private]

free Cgs:channel[private]

(*––session keys––*)

free sku:bitstring[private]

free sks:bitstring[private]

(*––secret keys––*)

free PW:bitstring[private]

free BIO:bitstring[private]

free x:bitstring[private]

free y:bitstring[private]

(*–-weak elements–-*)

weaksecret PW

weaksecret BIO

(*––-constants–––*)

const P:bitstring.(*parameters of dot multiplication*)

const SID:bitstring[private]

table d(bitstring,bitstring,bitstring,bitstring)

table d1 (bitstring,bitstring)

(*–––functions–––*)

fun PUF(bitstring):bitstring[private]

fun PUF1(bitstring):bitstring[private]

fun h(bitstring):bitstring. (*hash function*)

fun con(bitstring,bitstring):bitstring

fun xor(bitstring,bitstring):bitstring

fun mul(bitstring,bitstring):bitstring

event beginSG(bitstring)

fun BioHashing(bitstring):bitstring

fun enc(bitstring,bitstring):bitstring

fun dec(bitstring,bitstring):bitstring

equation forall message:bitstring,key:bitstring;

dec(enc(message,key),key) = message

equation forall m:bitstring,n:bitstring;xor(xor(m,n),n) = m

equation forall m:bitstring,n:bitstring;

mul(mul(P,m),n) = mul(mul(P,n),m)

event beginUG(bitstring)

event endUG(bitstring)

event beginGU(bitstring)

event endGU(bitstring)

event beginGS(bitstring)

event endGS(bitstring)

fun BioHashing(bitstring):bitstring

fun enc(bitstring,bitstring):bitstring

fun dec(bitstring,bitstring):bitstring

event endSG(bitstring)

query x: bitstring; inj-event(endUG(x)) =  =  > 

injevent(beginUG(x))

query x: bitstring; inj-event(endGU(x)) =  =  > 

inj-event(beginGU(x))

query x: bitstring; inj-event(endGS(x)) =  =  > 

inj-event(beginGS(x))

query x: bitstring; inj-event(endSG(x)) =  =  > 

inj-event(beginSG(x))

(*-queries-*)

query attacker(sku)

query attacker(sks)