Skip to main content
Log in

Composition of password-based protocols

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Formal and symbolic techniques are extremely useful for modelling and analysing security protocols. They have helped to improve our understanding of such protocols, allowed us to discover flaws, and they also provide support for protocol design. However, such analyses usually consider that the protocol is executed in isolation or assume a bounded number of protocol sessions. Hence, no security guarantee is provided when the protocol is executed in a more complex environment.

In this paper, we study whether password protocols can be safely composed, even when a same password is reused. More precisely, we present a transformation which maps a password protocol that is secure for a single protocol session (a decidable problem) to a protocol that is secure for an unbounded number of sessions. Our result provides an effective strategy to design secure password protocols: (i) design a protocol intended to be secure for one protocol session; (ii) apply our transformation and obtain a protocol which is secure for an unbounded number of sessions. Our technique also applies to compose different password protocols allowing us to obtain both inter-protocol and inter-session composition.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

Notes

  1. More precisely, the notion of frame introduced in Definition 1 requires the restricted names to be written at the beginning of the frame, whereas this is not the case in an extended frame. But we show in Sect. 3.2 that using structural equivalence, any frame can be rewritten with all the restricted names at the beginning.

  2. The second step can be easily shown by structural induction on T.

  3. The size |M| of a term M is defined by |u|=1 when u is a name or a variable and \(|f(M_{1}, \ldots, M_{k})| = 1 + \sum_{i=1}^{k} |M_{i}|\).

  4. The notation simply means where σ is the substitution involved in the frame, i.e. \(\psi= \nu\tilde{n}.\sigma\).

  5. The size #M of a term M is defined by #M=1 when M is a name or a variable and \(\#\mathsf {f}(M_{1},\ldots,M_{\ell}) = 1 + \sum_{i=1}^{\ell}\# M_{i}\).

References

  1. Abadi M, Baudet M, Warinschi B (2006) Guessing attacks and the computational soundness of static equivalence. In: Aceto L, Ingólfsdóttir A (eds) Proc 9th international conference on foundations of software science and computation structures (FoSSaCS’06), March 2006. Lecture notes in computer science, vol 3921. Springer, Berlin, pp 398–412

    Chapter  Google Scholar 

  2. Abadi M, Fournet C (2001) Mobile values, new names, and secure communication. In: Nielson HR (ed) Proc 28th symposium on principles of programming languages (POPL’01). ACM, New York, pp 104–115

    Google Scholar 

  3. Abadi M, Gordon AD (1997) A calculus for cryptographic protocols: the spi calculus. In: Proc 4th conference on computer and communications security (CCS’97). ACM, New York, pp 36–47

    Google Scholar 

  4. Abdalla M, Chevalier C, Granboulan L, Pointcheval D (2011) UC-secure group key exchange with password-based authentication in the standard model. In: Proc the cryptographers’ track at the RSA conference (CT-RSA’11). Lecture notes in computer science, vol 6558. Springer, Berlin, pp 142–160

    Google Scholar 

  5. Abdalla M, Chevalier C, Pointcheval D (2009) Smooth projective hashing for conditionally extractable commitments. In: Advances in cryptology—CRYPTO’09. Lecture notes in computer science, vol 5677. Springer, Berlin, pp 671–689

    Google Scholar 

  6. Andova S, Cremers CJF, Gjøsteen K, Mauw S, Mjølsnes SF, Radomirovic S (2008) A framework for compositional verification of security protocols. Inf Comput 206(2–4):425–459

    Article  MATH  Google Scholar 

  7. Arapinis M, Delaune S, Kremer S (2008) From one session to many: dynamic tags for security protocols. In: Proc 15th international conference on logic for programming, artificial intelligence, and reasoning (LPAR’08). Lecture notes in artificial intelligence, vol 5330. Springer, Berlin, pp 128–142

    Chapter  Google Scholar 

  8. Arapinis M, Duflot M (2007) Bounding messages for free in security protocols. In: Proc 27th conference on foundations of software technology and theoretical computer science (FST&TCS’07). Lecture notes in computer science, vol 4855. Springer, Berlin, pp 376–387

    Google Scholar 

  9. Armando A, Basin DA, Boichut Y, Chevalier Y, Compagna L, Cuéllar J, Drielsma PH, Héam P-C, Kouchnarenko O, Mantovani J, Mödersheim S, von Oheimb D, Rusinowitch M, Santiago J, Turuani M, Viganò L, Vigneron L (2005) The Avispa tool for the automated validation of Internet security protocols and applications. In: Proc 17th international conference on computer aided verification (CAV’05). Lecture notes in computer science, vol 3576, pp 281–285

    Chapter  Google Scholar 

  10. Barak B, Lindell Y, Rabin T (2004) Protocol initialization for the framework of universal composability. Cryptology ePrint Archive, Report 2004/006. http://eprint.iacr.org/

  11. Baudet M. YAPA. http://www.lsv.ens-cachan.fr/~baudet/yapa/

  12. Baudet M (2005) Deciding security of protocols against off-line guessing attacks. In: Proc 12th ACM conference on computer and communications security (CCS’05), November 2005. ACM, New York, pp 16–25

    Chapter  Google Scholar 

  13. Baudet M (2007) Sécurité des protocoles cryptographiques : aspects logiques et calculatoires. Thèse de doctorat, Laboratoire Spécification et Vérification, ENS Cachan, France, January 2007

  14. Bellovin SM, Merritt M (1992) Encrypted key exchange: password-based protocols secure against dictionary attacks. In: Proc symposium on security and privacy (SP’92). IEEE Comput Soc, Los Alamitos, pp 72–84

    Chapter  Google Scholar 

  15. Blanchet B (2001) An efficient cryptographic protocol verifier based on prolog rules. In: Proc 14th computer security foundations workshop (CSFW’01), June 2001. IEEE Comput Soc, Los Alamitos, pp 82–96

    Chapter  Google Scholar 

  16. Blanchet B (2004) Automatic proof of strong secrecy for security protocols. In: Proc symposium on security and privacy (SP’04), May 2004. IEEE Comput Soc, Los Alamitos, pp 86–100

    Google Scholar 

  17. Blanchet B, Podelski A (2003) Verification of cryptographic protocols: tagging enforces termination. In: Proc foundations of software science and computation structures (FoSSaCS’03). Lecture notes in computer science, vol 2620. Springer, Berlin, pp 136–152

    Chapter  Google Scholar 

  18. Boyen X, Chevalier C, Fuchsbauer G, Pointcheval D (2010) Strong cryptography from weak secrets: building efficient PKE and IBE from distributed passwords in bilinear groups. In: Progress in cryptology—AFRICACRYPT’10. Lecture notes in computer science, vol 6055. Springer, Berlin, pp 297–315

    Google Scholar 

  19. Boyko V, MacKenzie PD, Patel S (2000) Provably secure password-authenticated key exchange using Diffie-Hellman. In: Advances in cryptology—EUROCRYPT’00. Lecture notes in computer science, vol 1807. Springer, Berlin, pp 156–171

    Google Scholar 

  20. Canetti R (2001) Universally composable security: a new paradigm for cryptographic protocols. In: Proc 42nd annual symposium on foundations of computer science (FOCS’01). IEEE Comput Soc, Los Alamitos, pp 136–145

    Google Scholar 

  21. Canetti R, Halevi S, Katz J, Lindell Y, MacKenzie PD (2005) Universally composable password-based key exchange. In: Advances in cryptology—EUROCRYPT’05. Lecture notes in computer science, vol 3494. Springer, Berlin, pp 404–421

    Google Scholar 

  22. Cohen E (2002) Proving cryptographic protocols safe from guessing attacks. In: Proc foundations of computer security (FCS’02)

    Google Scholar 

  23. Corin R, Doumen J, Etalle S (2005) Analysing password protocol security against off-line dictionary attacks. Electron Notes Theor Comput Sci 121:47–63

    Article  Google Scholar 

  24. Corin R, Malladi S, Alves-Foss J, Etalle S (2003) Guess what? Here is a new tool that finds some new guessing attacks. In: Proc of the workshop on issues in the theory of security (WITS’03)

    Google Scholar 

  25. Cortier V, Delaitre J, Delaune S (2007) Safely composing security protocols. In: Arvind V, Prasad S (eds) Proc 27th conference on foundations of software technology and theoretical computer science (FSTTCS’07), December 2007. Lecture notes in computer science. Springer, Berlin

    Google Scholar 

  26. Cortier V, Delaune S (2009) Safely composing security protocols. Form Methods Syst Des 34(1):1–36

    Article  MATH  Google Scholar 

  27. Datta A, Derek A, Mitchell J, Pavlovic D (2005) A derivation system and compositional logic for security protocols. J Comput Secur 13(3):423–482

    Google Scholar 

  28. Delaune S, Jacquemard F (2006) Decision procedures for the security of protocols with probabilistic encryption against offline dictionary attacks. J Autom Reason 36(1–2):85–124

    Article  MathSciNet  MATH  Google Scholar 

  29. Guttman JD, Thayer FJ (2000) Protocol independence through disjoint encryption. In: Proc 13th computer security foundations workshop (CSFW’00). IEEE Comput Soc, Los Alamitos, pp 24–34

    Chapter  Google Scholar 

  30. Hao F, Ryan PYA (2008) Password authenticated key exchange by juggling. In: Proc 16th international security protocols workshop. Lecture notes in computer science, vol 6615. Springer, Berlin, pp 159–171

    Chapter  Google Scholar 

  31. Hao F, Ryan PYA (2011) How to sync with alice. In: 19th international security protocols workshop. Lecture notes in computer science, vol 7114. Springer, Berlin, pp 170–178

    Chapter  Google Scholar 

  32. Jablon D (1996) Strong password-only authenticated key exchange. Comput Commun Rev 26(5):5–26

    Article  Google Scholar 

  33. Katz J, Ostrovsky R, Yung M (2001) Efficient password-authenticated key exchange using human-memorable passwords. In: Advances in cryptology—EUROCRYPT’01. Lecture notes in computer science, vol 2045. Springer, Berlin, pp 475–494

    Google Scholar 

  34. Lowe G (2004) Analysing protocols subject to guessing attacks. J Comput Secur 12(1):83–98

    Google Scholar 

  35. Malladi S, Alves-Foss J, Malladi S (2002) What are multi-protocol guessing attacks and how to prevent them. In: Proc 11th international workshops on enabling technologies: infrastructure for collaborative enterprises (WETICE 2002). IEEE Comput Soc, Los Alamitos, pp 77–82

    Google Scholar 

  36. Patel S (1997) Number theoretic attacks on secure password schemes. In: Proc IEEE symposium on security and privacy (S&P’97). IEEE Comput Soc, Los Alamitos, pp 236–247

    Google Scholar 

  37. Ramanujam R, Suresh SP (2005) Decidability of context-explicit security protocols. J Comput Secur 13(1):135–165

    Google Scholar 

  38. Trusted Computing Group (2007). TPM Specification version 1.2. Parts 1–3, revision 103. http://www.trustedcomputinggroup.org/resources/tpm_main_specification

Download references

Acknowledgements

Our paper benefited from comments and discussions with Véronique Cortier, Cédric Fournet and Bogdan Warinschi.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Steve Kremer.

Additional information

This work has been partially supported by the European Research Council under the European Union’s Seventh Framework Programme (FP7/2007-2013)/ERC grant agreement n 258865, project ProSecure and the ANR project JCJC VIP n 11-JS02-006, EPSRC Leadership Fellowship Analysing Security and Privacy Properties and project Trust Domains—A Framework for Modelling and Designing E-Service Infrastructures for Controlled Sharing of Information.

Appendices

Appendix A: Disjoint case

To establish this proposition, we first prove some lemmas about deduction and static equivalence.

Lemma 9

Let \(\phi\equiv\nu\tilde{n}.\sigma\) be a frame, t be a ground term that is not deducible from ϕ, M be a ground term deducible from ϕ, y be a variable not in \(\operatorname {dom}(\phi)\), and m be a name not in bn(ϕ). Then, we have that t is neither deducible from νm.ϕ, nor from \(\nu\tilde{n}. (\sigma\mid \{^{M}/{}_{y}\})\).

Proof

We prove the two points separately.

We have that t is not deducible from the frame νm.ϕ. We prove this result by contradiction. Assume that it is not the case. This means that there exists U such that \(\mathit {fn}(U) \cap \tilde{n} = \emptyset\), mfn(U), and = E t. We easily deduce that U is also a recipe for t w.r.t. the frame ϕ, contradiction.

We have that t is not deducible from the frame \(\nu \tilde{n}. (\sigma\mid \{^{M}/{}_{y}\})\) . Let ζ be a recipe of M, i.e. a term such that \(\mathit {fn}(\zeta) \cap\tilde{n} = \emptyset\), wfn(ζ), and ζσ= E M. We now prove the result by contradiction. Assume that t is deducible from the frame \(\nu \tilde{n}. (\sigma\mid \{^{M}/{}_{y}\})\). This means that there exists U such that \(\mathit {fn}(U) \cap\tilde{n} = \emptyset\), and U(σ∣{M/ y })= E t. Let U′=U{ζ/ y }. We have that \(\mathit {fn}(U') \cap \tilde{n} = \emptyset\), and Uσ=(U{ζ/ y })σ= E (U{M/ y })σ=U(σ∣{M/ y })= E t. Thus, t is deducible from \(\nu\tilde{n}. \sigma\) using the recipe U′, contradiction. □

Lemma 10

Let \(\phi\equiv\nu w. \nu\tilde{n}. \sigma\) be a frame resistant to guessing attacks against w, M be a ground term deducible from ϕ, y be a variable not in \(\operatorname {dom}(\phi)\), and m be a name not in bn(ϕ). Then we have that the frames νm.ϕ and \(\nu w. \nu\tilde{n}. (\sigma\mid \{^{M}/{}_{y}\})\) are resistant to guessing attacks against w.

Proof

We prove the two points separately.

The frame νm.ϕ is resistant to guessing attacks against w. We prove this result by contradiction. Assume that it is not the case. This means that

$$\nu w. \nu m. \nu\tilde{n}. (\sigma\mid \{^{w}/{}_{x}\}) \not \mathrel{\approx} \nu w'. \nu w. \nu m. \nu\tilde{n}. (\sigma\mid \{^{w'}/{}_{x}\} ) $$

where w′ is a fresh name, and x a variable that does not occur in \(\operatorname {dom}(\sigma)\). By definition of ≈, this means that there exist M and N such that \((\mathit {fn}(M) \cup \mathit {fn}(N)) \cap\tilde{n} =\emptyset\), and w,w′,mfn(M)∪fn(N) with (M{w/ x }= E N{w/ x })σ and \((M\{^{w'}/{}_{x}\} \not=_{\mathsf {E}}N\{^{w'}/{}_{x}\})\sigma\) (or conversely). Actually, the same test (M,N) can be used to show that ϕ is not resistant to guessing attacks against w.

The frame \(\nu w. \nu\tilde{n}. (\sigma\mid \{^{M}/{}_{y}\})\) is resistant to guessing attacks against w. Let ζ be a recipe of M, i.e. a term such that \(\mathit {fn}(\zeta) \cap\tilde{n} = \emptyset\), wfn(ζ), \(\mathit {fv}(\zeta) \subseteq \operatorname {dom}(\sigma)\), and ζσ= E M. Moreover, we assume that w′∉fn(ζ). By hypothesis, we have that \(\nu w. \nu\tilde{n}. (\sigma\mid \{^{w}/{}_{x}\}) \mathrel{\approx} \nu w'. \nu w.\nu \tilde{n}. (\sigma\mid \{^{w'}/{}_{x}\})\) where w′ is a fresh name and x a variable that does not occur in \(\operatorname {dom}(\sigma)\). Our goal is to show that:

$$\nu w. \nu\tilde{n}. (\sigma\mid \{^{M}/{}_{y}\} \mid \{^{w}/{}_{x}\}) \mathrel{\approx}\nu w'. \nu w. \nu\tilde{n}. (\sigma\mid \{^{M}/{}_{y}\} \mid \{^{w'}/{}_{x}\} ). $$

Let U,V be two terms such that \((\mathit {fn}(U) \cup \mathit {fn}(V)) \cap\tilde{n} = \emptyset\), w,w′∉(fn(U)∪fn(V)), and (U= E V)(σ∣{M/ y }∣{w/ x }). Let U′=U{ζ/ y } and V′=V{ζ/ y }. First, we have that \({(fn(U') \cup \mathit {fn}(V')) \cap \tilde{n} = \emptyset}\) and w,w′∉(fn(U′)∪fn(V′)). Moreover, we have that:

  • U(σ∣{M/ y }∣{w/ x })= E U′(σ∣{w/ x }), and

  • V(σ∣{M/ y }∣{w/ x })= E V′(σ∣{w/ x }).

Thanks to our hypothesis, we deduce that (U′= E V′)(σ∣{w/ x }) and (U{ζ/ y }= E V{ζ/ y })(σ∣{w/ x }), i.e. (U= E V)(σ∣{M/ y }∣{w/ x }). The other direction can be shown in a similar way. □

Proposition 1

Let A 1,…,A k be k extended processes such that \(A \stackrel{\mathsf {def}}{=} A_{1} \mid\cdots\mid A_{k}\) is also an extended process, and w i bn(A i ) for each i∈{1,…,k}.

  1. 1.

    Let t be a ground term that occurs as a subterm in A i for some i∈{1,…,k}. If A i preserves secrecy of t, then A preserves secrecy of t.

  2. 2.

    Let \(\varPhi= ev(\tilde{x}) \Rightarrow_{(\mathsf {inj})} ev'(\tilde {x})\) be a correspondence property (injective or not). If Φ holds on each A i , then Φ holds on A.

  3. 3.

    If each A i is resistant to guessing attack against w i , then A is resistant to guessing attack against w 1,…,w k .

Proof

We prove this composition result by contradiction. Assume that the process A admits an attack. Let \(A_{i} \equiv\nu w_{i}. \nu\tilde{n}_{i}. P_{i}\) for each ∈{1,…,k}, \(\tilde{w} = w_{1}, \ldots, w_{k}\), and \(\tilde{n} = \tilde{n}_{1}, \ldots,\tilde{n}_{k}\). By definition of an attack, we have that there exists a trace:

$$A \stackrel{\mathsf {def}}{=} A_1 \mid\cdots\mid A_k \xrightarrow { \ell_1} B_1 \ldots \xrightarrow {\ell_n} B_n $$

with \(B_{n} = \nu\tilde{w}. \nu\tilde{n}. (P'_{1} \mid\sigma_{1} \mid \cdots\mid P'_{k} \mid\sigma_{k})\). Intuitively, the active substitutions in σ i comes from A i and \(P'_{i}\) is the remaining part of P i . In addition, depending on the security property under study, we have that:

  1. 1.

    (secrecy) We know that ϕ(B n )⊢ E t for some t that occurs as a subterm of \(A_{i_{0}}\) with i 0∈{1,…,k}. Actually, since A B n , we have also that \(A_{i_{0}} \to^{*} \nu w_{i_{0}}. \nu\tilde{n}_{i_{0}}. (P'_{i_{0}} \mid\sigma_{i_{0}})\). Moreover, by hypothesis, we know that \(\nu w_{i_{0}}. \nu \tilde{n}_{i_{0}} . \sigma_{i_{0}} \not\vdash_{\mathsf {E}}t\). Relying on Lemma 9, we deduce that t is not deducible from \(\nu \tilde{w}. \nu\tilde{n}. (\sigma_{1} \mid\cdots\mid\sigma_{k})\), i.e. \(\phi(B_{n}) \not\vdash_{\mathsf {E}}t\), contradiction.

  2. 2.

    (correspondence property) there exists j 0 and a substitution σ such that \(\ell_{j_{0}} =_{\mathsf {E}}ev(\tilde{x}\sigma)\) and \(\ell_{j} \neq_{\mathsf {E}}ev'(\tilde{x}\sigma)\) for any jj 0. Let i 0∈{1,…,k} be such that the action \(\ell_{j_{0}}\) has been performed by \(A_{i_{0}}\). Actually, since A B n through the labels 1,…, n , we have also that \(A_{i_{0}} \to^{*} \nu w_{i_{0}}. \nu \tilde{n}_{i_{0}}. (P'_{i_{0}} \mid\sigma_{i_{0}})\) using the labels \(\ell_{j_{1}}, \ldots, \ell_{j_{p}}\) a subword of 1,…, n (i.e. the sequence 1,…, n can be obtained from \(\ell_{j_{1}}, \ldots, \ell_{j_{p}}\) by inserting some element in it). Moreover, we have that \(\ell_{j_{0}}\) occurs in \(\ell_{j_{1}}, \ldots, \ell_{j_{p}}\). From this, it is now quite easy to see that Φ does not hold on A i , contradiction.

    We consider now the case of an injective correspondance property. We know that there exist j 0 and σ such that:

    $$\# \{j \mid ev(x_1\sigma,\ldots,x_k\sigma) = \ell_j \mbox{ with $j \leq j_{0}$} \} > \# \{j \mid ev'(x_1\sigma,\ldots,x_k\sigma) = \ell_j \mbox{ with $j \leq j_{0}$} \}. $$

    In particular, this means that there exists i 0∈{1,…,k} such that:

    $$\begin{array}{l} \#\{j\mid ev(x_1\sigma,\ldots,x_k\sigma) =\ell_j \mbox{ with $j \leq j_{0}$ and $\ell_{j}$ is an action performed by $A_{i_{0}}$}\}\\ \quad > \#\{j \mid ev'(x_1\sigma,\ldots,x_k\sigma) =\ell_j \mbox{ with $j \leq j_{0}$ and $\ell_{j}$ is an action performed by $A_{i_{0}}$}\}. \end{array} $$

    As before, we have that \(A_{i_{0}} \to^{*} \nu w_{i_{0}}. \nu \tilde{n}_{i_{0}}. (P'_{i_{0}} \mid\sigma_{i_{0}})\) using the labels \(\ell_{j_{1}}, \ldots, \ell_{j_{p}}\) (these labels correspond to the actions that are performed by \(A_{i_{0}}\) in the sequence 1,…, n ). Using the relation given above, it is quite easy to see that Φ does not hold on \(A_{i_{0}}\). This allows us to conclude.

  3. 3.

    (guessing attack) the frame ϕ(B n ) is not resistant to guessing attacks against \(\tilde{w}\). Actually, since A B n , we have also that \(A_{i} \to^{*} \nu w_{i}. \nu\tilde{n}_{i}. (P'_{i} \mid\sigma_{i})\) for each i∈{1,…,k}. Moreover, by hypothesis, we know that \(\nu w_{i}. \nu \tilde{n}_{i} . \sigma_{i}\) is resistant to guessing attacks against w i . Relying on Lemma 10, we obtain the following equivalences:

    $$\begin{array}{rcl} \nu w_1. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) & \mathrel{\approx}& \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) \\ \nu w_2. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) & \mathrel{\approx}& \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) \\ & \vdots& \\ \nu w_k. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) & \mathrel{\approx}& \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) \\ \end{array} $$

    Applying Lemma 1 (item 1), we deduce that:

    $$\begin{array}{rcl} \nu w_1. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) & \mathrel{\approx}& \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) \\ \nu w_1. \nu w_2. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma _k) & \mathrel{\approx}& \nu w_1. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid \sigma_k) \\ & \vdots& \\ \nu w_1. \ldots. \nu w_k. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid \sigma_k) & \mathrel{\approx}& \nu w_1. \ldots. \nu w_{k-1}. \nu\tilde{n}. (\sigma_1 \mid\cdots\mid\sigma_k) \\ \end{array} $$

    By transitivity of ≈, we deduce that \(\nu\tilde{w}. \nu\tilde{n}. (\sigma_{1} \mid\cdots\mid\sigma_{k}) \; \mathrel{\approx}\; \nu\tilde{n}. (\sigma_{1} \mid\cdots\mid\sigma_{k})\). This means that ϕ(B n ) is not resistant to guessing attacks against \(\tilde{w}\), contradiction.

 □

Appendix B: Transformation

The goal of this section is to prove Theorem 1.

2.1 B.1 Proof of Lemma 5

Before to prove Lemma 5, we introduce the following cutting function.

Definition 12

Given a frame ϕ, a term U=h(U 1,U 2) and a name a, the cutting function cut w.r.t. ϕ,U and a is defined recursively as cut ϕ (u)=u when u is a name or a variable and:

$$\mathsf {cut}_{\phi} (f(T_1,\ldots,T_k) ) = \left \{ \begin{array}{l} a \quad\mbox{if $f=\mathsf {h}$, $k=2$, $(U_{1}=_{\mathsf {E}}T_{1})\phi$ and $(U_{2} =_{\mathsf {E}}T_{2})\phi$}\\ f(\mathsf {cut}_{\phi}(T_1),\ldots, \mathsf {cut}_{\phi}(T_k)) \quad\mbox{otherwise} \end{array} \right . $$

When \(\operatorname {dom}(\phi) = \emptyset\), we denote it at cut 0. In this case, the function cut 0 is a replacement modulo E as defined in [13]. Hence, we have the following lemma.

Lemma 11

Let U=h(U 1,U 2) be a term and a be a name. We have that:

$$M =_\mathsf {E}N \quad \Rightarrow\quad \mathsf {cut}_0(M) =_\mathsf {E}\mathsf {cut}_0(N) \quad \mbox{\textit{for any term} $M$ \textit{and} $N$.} $$

Lemma 12

Let \(\phi=_{\alpha}\nu\tilde{n}.\sigma\) be a frame. Let \(w, \overline {w}\) and c be three names such that \(w, c\notin\tilde{n}\) and \(\overline {w}\) is a fresh name. Let cut be the cutting function w.r.t. \(\phi \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\), \(\mathsf {h}(c,\overline {w})\), w and cut 0 be the cutting function w.r.t. \(\mathsf {h}(c,\overline {w})\) and w. Let M be a term such that \(\mathit {fn}(M) \cap \tilde{n} = \emptyset\). We have that

$$\mathsf {cut}_0(M(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) = \mathsf {cut}(M)\sigma. $$

Proof

We prove this result by structural induction on M. If M is a name or a variable such that \(M \notin \operatorname {dom}(\phi)\), we have that

$$\mathsf {cut}_0(M(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) = \mathsf {cut}(M)\sigma= M. $$

Now, assume that M is a variable, say x, such that \(x \in \operatorname {dom}(\phi)\). Let T=. Note that \(\overline {w}\) does not occur in T since \(\overline {w}\) is fresh w.r.t. σ. Hence, we have thatFootnote 2:

$$\mathsf {cut}_0 (M (\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} )) = \mathsf {cut}_0 (T\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) = T = x \sigma= \mathsf {cut}(M)\sigma. $$

Now, we deal with the induction step: M=f(M 1,…,M k ). We distinguish two cases:

  1. 1.

    f=h, k=2, \((M_{1} =_{\mathsf {E}}c)(\phi \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\) and \((M_{2} =_{\mathsf {E}}\overline {w})(\phi \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\). In such a case, we have that cut(M)σ=w. Moreover, we have also that \(M_{1}\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\mathsf {E}}c\) and \(M_{2}\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\mathsf {E}}\overline {w}\). Hence, we have that

    $$\mathsf {cut}_0 (M (\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) ) = \mathsf {cut}_0 (\mathsf {h}(M_1 (\sigma \{^{ \mathsf {h}(c,\overline {w})}/{}_{w}\} ), M_2 (\sigma \{^{\mathsf {h}(c, \overline {w})}/{}_{w}\} ) ) ) = w. $$
  2. 2.

    Otherwise, we have that cut(f(M 1,…,M k ))=f(cut(M 1),…,cut(M k )). Hence, we have that \(\mathsf {cut}_{0}(M(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) = f(\mathsf {cut}_{0}(M_{1}(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})), \ldots,\mathsf {cut}_{0}(M_{k}(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})))\). Indeed, otherwise we will have that f=h, \((M_{1} =_{\mathsf {E}}c)(\phi \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\) and also that \((M_{2} =_{\mathsf {E}}\overline {w})(\phi \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\). This situation corresponds to our first case. Hence, we have that

    $$\begin{array}{l} \mathsf {cut}_0(M(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) \\ [0.5mm] \quad = f(\mathsf {cut}_0(M_1(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})), \ldots,\mathsf {cut}_0(M_k(\sigma \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}))) \\ [0.5mm] \quad = f(\mathsf {cut}(M_1)\sigma, \ldots, \mathsf {cut}(M_k)\sigma) \quad \mbox{by induction hypothesis} \\ [0.5mm] \quad = f(\mathsf {cut}(M_1), \ldots, \mathsf {cut}(M_k))\sigma\\ [0.5mm] \quad = \mathsf {cut}(M)\sigma \end{array} $$

    This allows us to conclude the proof.

 □

Lemma 5

Let ϕ 1 and ϕ 2 be two frames such that ϕ 1ϕ 2. Let w,c be such that w,cbn(ϕ 1)∪bn(ϕ 2). We have that

$$\phi_1\{^{\mathsf {h}(c,w)}/{}_{w}\} \mathrel{\approx}\phi_2 \{^{\mathsf {h}(c,w)}/{}_{w}\}. $$

Proof

We will show that \(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} \mathrel{\approx} \phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\) for some fresh names \(\overline {w}\). This will allow us to conclude that ϕ 1{h(c,w)/ w }≈ϕ 2{h(c,w)/ w } by simply renaming \(\overline {w}\) with w. For this we have to show that for all terms M and N, we have that: \((M =_{\mathsf {E}}N)\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} \Rightarrow(M=_{\mathsf {E}}N)\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\) (and conversely). Actually, the 2nd implication can be proved in a similar way, so we will focuss on the first one.

Actually, it is sufficient to establish this result for all terms M and N such that wfn(M)∪fn(N) since w does not occur in \(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\) and \(\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\). Let σ 1 and σ 2 be two substitutions such that \(\phi_{1} =_{\alpha}\nu\tilde{n}_{1}.\sigma_{1}\) and \(\phi_{2} =_{\alpha}\nu \tilde{n}_{2}.\sigma_{2}\) for some sequences of names \(\tilde{n}_{1}\) and \(\tilde{n}_{2}\) such that \((\mathit {fn}(M) \cup \mathit {fn}(N)) \cap(\tilde{n}_{1} \cup \tilde{n}_{2}) = \emptyset\). Moreover, we can assume that \(w, \overline {w}, c\notin \tilde{n}_{1} \cup\tilde{n}_{2}\). Hence, we have that \(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\alpha}\nu \tilde{n}_{1}.\sigma_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\), and \(\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\alpha}\nu \tilde{n}_{2}.\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\).

Let cut be the cutting function w.r.t. \(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\), \(\mathsf {h}(c,\overline {w})\) and w, and cut 0 be the cutting function w.r.t. \(\mathsf {h}(c,\overline {w})\) and w. We show by induction on max(|M|,|N|)Footnote 3 that

  1. 1.

    \((\mathsf {cut}(M)\sigma_{2})\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\mathsf {E}}M(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\), and

  2. 2.

    \((M =_{\mathsf {E}}N)(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) \Rightarrow(M=_{\mathsf {E}}N)(\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\).

Base case: max(|M|,|N|)=1

  1. 1.

    If M is a name (note that Mw) or a variable such that \({M \notin \operatorname {dom}(\phi_{2})}\), we have that \({(\mathsf {cut}(M)\sigma_{2})\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} = M}\) and \(M(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) = M\). If M is a variable, say x, such that \(x \in \operatorname {dom}(\phi_{2})\), then we have that

    $$(\mathsf {cut}(M)\sigma_2 )\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} = (x \sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} = x ( \sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) = M ( \sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ). $$
  2. 2.

    The second point can be proved as follows:

    $$\begin{array}{l@{\quad }l} (M =_\mathsf {E}N)(\phi_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\\[0.5mm] \quad \Rightarrow\quad M(\sigma_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) =_\mathsf {E}N(\sigma_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) \\ [0.5mm] \quad \Rightarrow\quad \mathsf {cut}_0(M(\sigma_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) =_\mathsf {E}\mathsf {cut}_0(N(\sigma_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})) & \mbox{by Lemma~{11}}\\[0.5mm] \quad \Rightarrow\quad \mathsf {cut}(M)\sigma_1 =_{\mathsf {E}} \mathsf {cut}(N)\sigma_1 & \mbox{by Lemma~{12}}\\[0.5mm] \quad \Rightarrow \quad (\mathsf {cut}(M) =_\mathsf {E}\mathsf {cut}(N))\phi_1 \\[0.5mm] \quad \Rightarrow \quad (\mathsf {cut}(M) =_\mathsf {E}\mathsf {cut}(N))\phi_2 & \mbox{since $\phi_{1} \mathrel{\approx}\phi_{2}$}\\[0.5mm] \quad \Rightarrow \quad \mathsf {cut}(M)\sigma_2 =_\mathsf {E}\mathsf {cut}(N)\sigma_2 \\[0.5mm] \quad \Rightarrow \quad (\mathsf {cut}(M)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_\mathsf {E}(\mathsf {cut}(N)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} \\[0.5mm] \end{array} $$

    The last step comes from the fact that = E is closed by substitutions of terms for names. Since, |M|=|N|=1, we can apply our previous result to obtain that:

    $$(\mathsf {cut}(M)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_\mathsf {E}M(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}),\qquad (\mathsf {cut}(N)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_\mathsf {E}N(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}). $$

    We have that \(M(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) =_{\mathsf {E}}N(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\), thus \((M =_{\mathsf {E}}N)(\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\).

Induction step: max(|M|,|N|)≥2. We assume w.l.o.g. that |M|≥|N|, so M=f(M 1,…,M k ).

  1. 1.

    To establish the first point, we distinguish two cases:

    • f=h, k=2, \((M_{1} =_{\mathsf {E}}c)(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\) and \((M_{2} =_{\mathsf {E}}\overline {w})(\phi_{1}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\). In such a case, we have that cut(M)=w, thus \((\mathsf {cut}(M)\sigma_{2})\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} = \mathsf {h}(c,\overline {w})\). Since |M 1|+|c|<|M|+|N| and \(|M_{2}| + |\overline {w}| < |M| + |N|\), we have that

      $$(M_1 =_\mathsf {E}c) (\phi_2 \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) \quad \mbox{and}\quad (M_2 =_\mathsf {E}\overline {w}) (\phi_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) $$

      Hence, we have that

      $$M (\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) = \mathsf {h}(M_1 (\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ), M_2 (\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) ) =_\mathsf {E}\mathsf {h}(c,\overline {w}) $$
    • Otherwise, we have that cut(M)=f(cut(M 1),…,cut(M k )). Thus,

      $$\begin{array}{l} (\mathsf {cut}(M)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\\[3pt] \quad = (f(\mathsf {cut}(M_1), \ldots, \mathsf {cut}(M_k))\sigma _2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}\\[3pt] \quad = f((\mathsf {cut}(M_1)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}, \ldots,(\mathsf {cut}(M_k)\sigma_2)\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} )\\[3pt] \quad =_\mathsf {E}f(M_1(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}), \ldots,M_k(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) )\quad \mbox{by induction hypothesis}\\[3pt] \quad = f(M_1, \ldots, M_k)(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\\[3pt] \quad = M(\sigma_2\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) \end{array} $$
  2. 2.

    To prove the second point, it is easy to establish (as in the base case) that

    $$(M =_\mathsf {E}N) (\phi_1\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} ) \Rightarrow(\mathsf {cut}(M)\sigma_2 )\{^{\mathsf {h}( c,\overline {w})}/{}_{w}\} =_\mathsf {E}(\mathsf {cut}(N)\sigma_2 ) \{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} $$

    Thanks to our previous result, we have that \((\mathsf {cut}(M)\sigma_{2})\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\mathsf {E}}M(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\), and \((\mathsf {cut}(N)\sigma_{2})\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\} =_{\mathsf {E}}N(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\). We conclude that \(M(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\}) =_{\mathsf {E}}N(\sigma_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\), and thus \((M =_{\mathsf {E}}N)(\phi_{2}\{^{\mathsf {h}(c,\overline {w})}/{}_{w}\})\).

This allows us to conclude the proof. □

2.2 B.2 Proof of Proposition 3

The two following lemmas will be useful to deal with the cases of an input (Lemma 3) and a conditional (Lemma 4) in the proof of Proposition 3.

Lemma 3

Let ϕ be a frame such that c,wbn(ϕ) and ϕ′{h(c,w)/ w }= E ϕ for some ϕ′. If νw.ϕ E M then there exists Msuch that M′{h(c,w)/ w }= E M and νw.ϕ′⊢ E M′.

Proof

Let \(\phi= \nu\tilde{n}.\sigma\) and \(\phi'= \nu\tilde{n}. \sigma'\) for some sequence of names \(\tilde{n}\) and some substitutions σ and σ′. We have that σ′{h(c,w)/ w }= E σ. Let M be such that νw.ϕ E M, i.e. there exists ζ such that \(\mathit {fn}(\zeta) \cap(\tilde{n} \cup\{w\}) = \emptyset\) and ζσ= E M. Let M′=ζσ′. We have that νw.ϕ′⊢ E M′ and also that M′{h(c,w)/ w }=(ζσ′){h(c,w)/ w }=ζ(σ′{h(c,w)/ w })= E ζσ= E M. □

Lemma 4

Let M, N, Mand Nbe four terms such that M= E M′{h(c,w)/ w } and N= E N′{h(c,w)/ w }. Then, we have that

$$M =_\mathsf {E}N \quad \mbox{\textit{if}, \textit{and only if},} \quad M'=_\mathsf {E}N' $$

Proof

As = E is closed by substitutions of terms for names M′= E N′ implies M= E N. Now, let M and N be two terms such that M= E N. We have that M′{h(c,w)/ w }= E N′{h(c,w)/ w }. Thus, according to Lemma 11, we have that

$$\mathsf {cut}_0 (M'\{^{\mathsf {h}(c,w)}/{}_{w}\} ) =_\mathsf {E}\mathsf {cut}_0 (N'\{^{\mathsf {h}(c,w)}/{}_{w}\} ) $$

where cut 0 represents the cutting function w.r.t. h(c,w) and w. Now, it is easy to establish, by structural induction on M′ that cut 0(M′{h(c,w)/ w })=M′. This allows us to conclude. □

We will prove Proposition 3 by induction on the prooftree witnessing the derivation. First, we establish a similar result for ≡.

Lemma 13

Let A be a process such that wbn(A) and A′{h(c,w)/ w }= E A for some A′. Suppose that AB for some process B. Then wbn(B) and there exists a process Bsuch that B′{h(c,w)/ w }= E B and A′≡B′.

Proof

We prove this result by induction on the proof tree showing that AB. All the base cases are easy to prove. The only interesting inductive case is the case of an application of an evaluation context. Suppose that the proof tree showing that AB ends with an instance of such a rule, i.e.

$$\frac{A_1 \equiv B_1}{C[A_1] \equiv C[B_1]} $$

where A=C[A 1] and B=C[B 1]. By hypothesis, we know that there exists A′ such that A′{h(c,w)/ w }= E C[A 1]. Hence we have that \(A' = C'[A'_{1}]\) where C′{h(c,w)/ w }= E C and \(A'_{1} \{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}A_{1}\) for some evaluation context C′ and some process \(A_{1}'\). Hence we can apply our induction hypothesis and we obtain that wbn(B 1) and there exists \(B'_{1}\) such that \(B'_{1}\{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}B_{1}\), and \(A_{1}' \equiv B_{1}'\). We have that wbn(C[B 1]). Let \(B' = C'[B_{1}']\). We have that \((C'[B_{1}'])\{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}C[B_{1}] = B\) and A′≡B′. □

Now, we can prove the following proposition.

Proposition 3

Let A be a process with c,wbn(A) and A′{h(c,w)/ w }= E A for some A′. If \(\nu w. A \xrightarrow {\ell} \overline{B}\), then \(\overline{B} \equiv \nu w. B\) and there exists a process Band a label ℓsuch that B′{h(c,w)/ w }= E B, ′{h(c,w)/ w }= E , and \(\nu w. A'\xrightarrow {\ell'} \nu w. B'\).

Proof

We have that \(\nu w. A \xrightarrow {\ell} \overline{B}\) and it is easy to see that \(w \in \mathit {bn}(\overline{B})\). According to our calculus, we can always by using structural equivalence move a restriction in front of the process, thus we have that \(\overline{B} \equiv\nu w. B\) for some process B. It is easy to see that \(A \xrightarrow {\ell} B\) and when =in(M), we have that νw.ϕ(A)⊢ E M. As νw.ϕ(A)⊢ E M, by Lemma 3, we have that νw.ϕ(A′)⊢ E M′ for some M′ such that M′{h(c,w)/ w }= E M. This allows us to ensure that, in the case of an input, the side condition corresponding to an application of evaluation context is satisfied. Now, we show that there exists B′ and ′ such that B′{h(c,w)/ w }= E B, ′{h(c,w)/ w }= E , and A′→B′ by induction on the proof tree showing that \(A \xrightarrow {\ell} B\). This will allows us to conclude that \(\nu w. A'\xrightarrow {\ell'} \nu w. B'\).

Base cases.

  • In. In such a case, A=in(x).P, B=P{M/ x }. We have that A′=in(x).P′ and P′{h(c,w)/ w }= E P. Let B′=P′{M/ x } and ′=in(M′). We have that ′{h(c,w)/ w }= E , B′{h(c,w)/ w }=(P′{M/ x }){h(c,w)/ w }= E P{M/ x }=B, and \(A'\xrightarrow {\ell'} B'\).

  • Out. We suppose that A=out(M).P and B=P∣{M/ x }. We have that A′=out(M′).P′ where P′{h(c,w)/ w }= E P and M′{h(c,w)/ w }= E M. Let B′=P′∣{M/ x } and ′=out(M′). We have ′{h(c,w)/ w }= E , B′{h(c,w)/ w }=(P′∣{M/ x }){h(c,w)/ w }= E B, and \(A'\xrightarrow {\ell'} B'\).

  • Event. We suppose that \(A=\text {ev}(\tilde{M}).P\) and B=P. We have that \(A' = \text {ev}(\tilde{M}').P'\) where P′{h(c,w)/ w }= E P and \(\tilde{M}' \{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}M\). Let B′=P′ and \(\ell'=ev(\tilde{M}')\). We have ′{h(c,w)/ w }= E , B′{h(c,w)/ w }=P′{h(c,w)/ w }= E B, and \(A'\xrightarrow {\ell'} B'\).

  • Then. We suppose that A= “if M 1=M 2 then P else Q” and B=P. By definition of = E we have that A′= “\(\mbox{if } M'_{1} = M'_{2} \mbox{ then } P' \mbox{ else } Q'\)” where P′{h(c,w)/ w }= E P, Q′{h(c,w)/ w }= E Q and \(M'_{i} \{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}M_{i}\) (i=1,2). Let B′=P′ and ′=τ. As M 1= E M 2, by Lemma 4 we have that \(M'_{1} =_{\mathsf {E}}M'_{2}\). Hence, we indeed have that ′{h(c,w)/ w }= E , B′{h(c,w)/ w }=P′{h(c,w)/ w }= E P=B, and A′→B′.

  • Else. This case is similar to the previous one.

Inductive cases. The inductive case corresponding to an application of structural equivalence directly follows from Lemma 13. Hence, it remains to show the case of an application of an evaluation context. Suppose that the proof \(A \xrightarrow {\ell} B\) finishes by an application of the following rule

$$\frac{A_1 \xrightarrow {\ell} B_1}{C[A_1] \xrightarrow {\ell} C[B_1]} $$

where A=C[A 1] and B=C[B 1]. By hypothesis, we know that there exists A′ such that A′{h(c,w)/ w }= E A. By definition of = E we have that \(A' = C'[A_{1}']\) where C′{h(c,w)/ w }= E C and \(A_{1}' \{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}A_{1}\) for some evaluation context C′ and some process \(A_{1}'\). Hence we can apply our induction hypothesis to obtain that there exist \(B_{1}'\) and ′ such that ′{h(c,w)/ w }= E , \(B_{1}'\{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}B_{1}\), and \(A_{1}' \xrightarrow {\ell'} B_{1}'\). Let \(B' = C'[B_{1}']\). We have that \(B'\{^{\mathsf {h}(c,w)}/{}_{w}\} = (C'[B_{1}'])\{^{\mathsf {h}(c,w)}/{}_{w}\} =_{\mathsf {E}}B\), and \(A'\xrightarrow {\ell'} B'\). This last result is obtained by application of the evaluation context C′ on \(A'_{1} \xrightarrow {\ell'} B'_{1}\). □

Appendix C: Composition

In this section we will use the following notations. Given terms t 1,…,t k and distinct names c 1,…,c k ,w 1,…,w k , and w that do not occur in t 1,…,t k , we denote by \(\delta_{w_{i},w}\) the replacement \(\{^{w}/{}_{w_{1}}\} \ldots \{^{w}/{}_{w_{k}}\}\), by \(\delta_{c_{i},t_{i}}\) the replacement \(\{^{t_{1}}/{}_{c_{1}}\} \ldots \{^{t_{k}}/{}_{c_{k}}\}\), and by \(\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\) the replacement \(\{^{\mathsf {h}(c_{1},w_{1})}/{}_{w_{1}}\} \ldots \{^{\mathsf {h}(c_{k},w_{k})}/{}_{w_{k}}\}\).

3.1 C.1 Proof of Lemma 8

Before proving Lemma 8, we introduce the following splitting functions.

Definition 13

Let \(\psi= \nu\tilde{n}. \sigma\) be a frame such that \({w \notin \tilde{n}}\). Let t 1,…,t k be distinct ground terms modulo E. Let c 1,…,c k ,w 1,…,w k be distinct fresh names.

Splitting function. Let M be a term such that \(\mathit {fn}(M) \cap\tilde{n} = \emptyset\). The splitting function split ψ w.r.t. ψ, w, c 1,…,c k , w 1,…,w k ,t 1,…,t k is defined recursively as split ψ (M)=M when M is a name or a variable and split ψ (f(M 1,…,M )) is equal to:

  • h(c i ,w i ) if f=h, =2, M 1 σ= E t i and M 2 σ= E w with 1≤ik;

  • f(split ψ (M 1),…,split ψ (M )) otherwise.

Ground splitting function. Let M be a term. The ground splitting function split 0 w.r.t. w, c 1,…,c k , w 1,…,w k ,t 1,…,t k is defined recursively as split 0(M)=M when M is a name or a variable and split 0(f(M 1,…,M )) is equal to:

  • h(c i ,w i ) if f=h, =2, M 1= E t i and M 2= E w with 1≤ik;

  • f(split 0(M 1),…,split 0(M )) otherwise.

As soon as t 1,…,t k are distinct terms modulo E, the function split 0 is a replacement modulo E as defined in [13]. Hence, we have the following lemma.

Lemma 14

Let split 0 be a ground splitting function as defined in Definition 13. Let M and N be two terms. We have that:

$$M =_\mathsf {E}N \quad \Rightarrow\quad \mathsf {split}_0(M) =_\mathsf {E}\mathsf {split}_0(N) $$

Lemma 15

Let t 1,…,t k be distinct ground terms modulo E and c 1,…,c k ,w 1,…,w k be distinct fresh names, i.e., not occurring in fn(t 1,…,t k ). Let \(\phi= \nu\tilde{n}.\sigma\) be a frame such that \(c_{1},\ldots, c_{k}, w_{1}, \ldots, w_{k},w \notin\tilde{n}\), \(w \not \in \mathit {fn}(\sigma)\), and \(\sigma =_{\mathsf {E}}\sigma_{0}\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some substitution σ 0. Let split ψ (resp. split 0) be the splitting function (resp. ground splitting function) w.r.t. \(\psi= \nu\tilde{n}. (\sigma\delta_{c_{i},t_{i}}\delta_{w_{i},w})\), w, c 1,…,c k , w 1,…,w k , t 1,…,t k . Let M be a term such that \({\mathit {fn}(M) \cap\tilde{n} = \emptyset}\). We have that:

$$\mathsf {split}_0 (M (\sigma\delta_{c_i,t_i} \delta_{w_i,w}) ) =_\mathsf {E}\mathsf {split}_{\psi}(M)\sigma. $$

Proof

We prove this result by structural induction on M. If M is a name or a variable such that \(M \notin \operatorname {dom}(\psi) = \operatorname {dom}(\sigma)\), the result trivially holds. Now, assume that M is a variable, say x, such that \(x \in \operatorname {dom}(\psi)\) and let T=. We have that \(T =_{\mathsf {E}}T'\{^{\mathsf {h}(c_{1},w_{1})}/{}_{w_{1}}\} \dots \{^{\mathsf {h}(c_{k},w_{k})}/{}_{w_{k}}\}\) for some T′, and w does not occur in T. Hence, we have that:

$$\begin{array}{rcl} \mathsf {split}_0(x\psi) & = & \mathsf {split}_0(x(\sigma\delta_{c_i,t_i}\delta_{w_i,w})) \\[3pt] &=_\mathsf {E}& \mathsf {split}_0(T \delta_{c_i,t_i}\delta_{w_i,w}) \\[3pt] & =_\mathsf {E}&T\\[3pt] &= & \mathsf {split}_{\psi}(x)\sigma \end{array} $$

Now, we can deal with the induction step, i.e. M=f(M 1,…,M ). We distinguish two cases:

  1. 1.

    f=h, =2, \(M_{1}(\sigma\delta_{c_{i},t_{i}}\delta_{w_{i},w}) =_{\mathsf {E}}t_{i_{0}}\), and \(M_{2}(\sigma\delta_{c_{i},t_{i}}\delta_{w_{i},w}) =_{\mathsf {E}}w\) with 1≤i 0k. In such a case, we have that \(\mathsf {split}_{\psi}(M) = \mathsf {h}(c_{i_{0}},w_{i_{0}})\), and

    $$M(\sigma\delta_{c_i,t_i}\delta_{w_i,w}) = \mathsf {h}(M_1 (\sigma\delta_{c_i,t_i}\delta_{w_i,w}), M_2 (\sigma\delta_{c_i,t_i}\delta_{w_i,w}) ) =_\mathsf {E}\mathsf {h}(t_{i_0},w) $$

    Hence, we have that

    $$\begin{array}{rcl} \mathsf {split}_0(M(\sigma\delta_{c_i,t_i}\delta_{w_i,w})) & =_\mathsf {E}& \mathsf {split}_0(\mathsf {h}(t_{i_0},w)) \\[3pt] & =_\mathsf {E}&\mathsf {h}(c_{i_0},w_{i_0})\\[3pt] &= & \mathsf {split}_{\psi}(M)\sigma \end{array} $$
  2. 2.

    Otherwise, we have that split ψ (f(M 1,…,M ))=f(split ψ (M 1),…,split ψ (M )), and thus we have also that:

    $$\mathsf {split}_0 (M(\sigma\delta_{c_i,t_i} \delta_{w_i,w}) ) = \mathsf {f}(\mathsf {split}_0 (M_1( \sigma\delta_{c_i,t_i}\delta_{w_i,w}) ), \ldots, \mathsf {split}_0 (M_1(\sigma\delta_{c_i,t_i} \delta_{w_i,w}) ) ). \hfill\null $$

    Hence, relying on our induction hypothesis, we have that:

    $$\begin{array}{rcl} \mathsf {split}_0(M(\sigma\delta_{c_i,t_i}\delta_{w_i,w})) &=_\mathsf {E}& \mathsf {f}(\mathsf {split}_{\psi}(M_1)\sigma, \ldots,\mathsf {split}_{\psi}(M_\ell)\sigma)\\[3pt] & = & \mathsf {split}_{\psi}(M)\sigma \end{array} $$

This allows us to conclude. □

Lemma 8

Let t 1,…,t k be distinct ground terms modulo E. Let c 1,…,c k ,w 1,…,w k be distinct fresh names, and \(\phi= \nu\tilde{n}.\sigma\) be a frame such that \(c_{1},\ldots, c_{k}, w_{1}, \ldots, w_{k} \notin\tilde{n}\), and \(\sigma=_{\mathsf {E}}\sigma_{0} \delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some substitution σ 0. Let w be a fresh name, and \(\psi= \nu\tilde{n}. (\sigma \delta_{c_{i},t_{i}}\delta_{w_{i},w})\). For each 1≤ik, we also assume that νw.ψ E t i .

If \(\nu\tilde{w}.\phi\) is resistant to guessing attacks against \(\tilde{w} = \{w_{1},\ldots, w_{k}\}\), then νw.ψ is resistant to guessing attacks against w.

Proof

To prove this, we have to establish that ψψ{w/ w } where w′ is a fresh name. Hence, we have to show that for all terms M and N such that \(\mathit {fn}(M,N) \cap\tilde{n} = \emptyset\), we have that:

  1. 1.

    (M= E N)ψ⇒(M= E N)(ψ{w/ w }); and

  2. 2.

    (M= E N)(ψ{w/ w })⇒(M= E N)ψ.Footnote 4

Actually, it is sufficient to establish this result for all terms M and N such that c 1,…,c k , w 1,…,w k do not occur in M and N. This comes from the fact that these names do not occur in ψ and ψ{w/ w }. Moreover, we can assume w.l.o.g. that \(\tilde{n} \cap(\mathit {fn}(M) \cup \mathit {fn}(N)) = \emptyset\). Lastly, we will consider the first item (the other one can be proved in a similar way) and thus we can assume that w′∉(fn(M)∪fn(N)).

Let split ψ (resp. split 0) be the splitting function (resp. ground splitting function) w.r.t. \(\psi= \nu\tilde{n}. (\sigma\delta_{c_{i},t_{i}}\delta_{w_{i},w})\), w, c 1,…,c k , w 1,…,w k , t 1,…,t k . Let \(w'_{1},\ldots, w'_{k}\) be distinct fresh names (we assume w.l.o.g. that they do not occur in M and N). We denote by # w M the number of occurrences of w in M, and by #M the size of M.Footnote 5 We denote by |M| the measure (# w M,#M) and we use the lexicographic ordering. We show by induction on max(|M|,|N|) that:

  1. 1.

    \([\mathsf {split}_{\psi}(M)(\sigma\delta_{w_{i},w'_{i}})]\delta_{w_{i},w}\delta _{c_{i},t'_{i}}\delta_{w'_{i},w'} =_{\mathsf {E}}M(\sigma\delta_{c_{i},t'_{i}}\delta_{w_{i},w'})\)

  2. 2.

    (M= E N)ψ ⇒ (M= E N)(ψ{w/ w })

where

  • \(\delta_{w_{i},w'_{i}} = \{^{w'_{1}}/{}_{w_{1}}\} \dots \{^{w'_{k}}/{}_{w_{k}}\}\);

  • \(t'_{i} = t_{i}\{^{w'}/{}_{w}\}\) for 1≤ik, and \(\delta_{c_{i},t'_{i}} = \{^{t'_{1}}/{}_{c_{1}}\} \dots \{^{t'_{k}}/{}_{c_{k}}\}\);

  • \(\delta_{w_{i},w'}= \{^{w'}/{}_{w_{1}}\} \dots \{^{w'}/{}_{w_{k}}\}\); and

  • \(\delta_{w'_{i},w'}= \{^{w'}/{}_{w'_{1}}\} \dots \{^{w'}/{}_{w'_{k}}\}\).

Base case: max(|M|,|N|)≤(1,1). This means that M (resp. N) do not contain any occurrence of w, or M (resp. N) is equal to w.

  1. 1.

    In both cases, we have that split ψ (M)=M. This comes from the fact that w is not deducible from νw.ψ since all the occurrences of w are under an h. Hence, we have that:

    $$\begin{array}{l@{\quad }l} [\mathsf {split}_{\psi}(M) (\sigma\delta_{w_i,w'_i})] \delta_{w_i,w}\delta_{c_i,t'_i}\delta_{w'_i,w'} \\ \quad =_\mathsf {E}\, M(\sigma\delta_{w_i,w'_i}\delta_{c_i,t'_i}\delta_{w'_i,w'}) & \mbox{since $w_{i},c_{i},w'_{i} \notin \mathit {fn}(M)$}\\ \quad =_\mathsf {E}\; M(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}) & \mbox{since $w'_{i} \notin \mathit {fn}(\sigma)$}\\ \end{array} $$
  2. 2.

    The second point can be proved as follows:

    $$\begin{array}{l@{\quad }l} (M =_\mathsf {E}N)\psi\\[3pt] \quad \Rightarrow\quad M(\sigma\delta_{c_i,t_i}\delta_{w_i,w}) =_\mathsf {E}N(\sigma\delta_{c_i,t_i}\delta_{w_i,w}) & \mbox{by def. of $\psi$}\\[3pt] \quad \Rightarrow\quad \mathsf {split}_0( M(\sigma\delta_{c_i,t_i}\delta_{w_i,w}) ) =_\mathsf {E}\mathsf {split}_0( N(\sigma\delta_{c_i,t_i}\delta_{w_i,w})) & \mbox{Lemma~{14}}\\[3pt] \quad \Rightarrow\quad \mathsf {split}_{\psi}(M)\sigma=_\mathsf {E}\mathsf {split}_{\psi}(N)\sigma& \mbox{Lemma~{15}}\\[3pt] \quad \Rightarrow\quad (\mathsf {split}_{\psi}(M) =_\mathsf {E}\mathsf {split}_{\psi}(N))\phi&\\[3pt] \hphantom{\quad \Rightarrow\qquad}\mbox{since $(\mathit {fn}(\mathsf {split}_{\psi}(N)) \cup \mathit {fn}(\mathsf {split}_{\psi}(M))) \cap\tilde{n} = \emptyset$}\\[3pt] \quad \Rightarrow\quad (\mathsf {split}_{\psi}(M) =_\mathsf {E}\mathsf {split}_{\psi}(N))(\phi\delta _{w_i,w'_i}) & \mbox{since $\phi\mathrel{\approx}\phi\delta_{w_{i},w'_{i}}$}\\[3pt] \quad \Rightarrow\quad \mathsf {split}_{\psi}(M)(\sigma\delta_{w_i,w'_i}) =_\mathsf {E}\mathsf {split}_{\psi}(N)(\sigma\delta_{w_i,w'_i})\\[3pt] \quad \Rightarrow\quad \mathsf {split}_{\psi}(M)(\sigma\delta_{w_i,w'_i}) \delta _{w_i,w}\delta_{c_i,t'_i}\delta_{w'_i,w'}\\[3pt] \hphantom{\quad \Rightarrow\quad} =_\mathsf {E}\mathsf {split}_{\psi}(N)(\sigma\delta_{w_i,w'_i})\delta_{w_i,w}\delta _{c_i,t'_i}\delta_{w'_i,w'} \\[3pt] \quad \Rightarrow\quad M(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}) =_\mathsf {E}N(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}) &\mbox{item $1$ (base case)}\\[3pt] \quad \Rightarrow\quad (M =_\mathsf {E}N)(\psi \{^{w'}/{}_{w}\}) \end{array} $$

Induction step: max(|M|,|N|)≥(1,2). We assume w.l.o.g. that |M|≥|N|, thus M=f(M 1,…,M ). As for each 1≤ik we have that νw.ψt i there exist ζ i such that \(\mathit {fn}(\zeta_{i}) \cap(\{c_{1},\ldots,c_{k},w_{1},\ldots,w_{k},w\}\cup\tilde{n}) = \emptyset\) and \(\zeta_{i}(\sigma\delta_{c_{i},t_{i}}\delta_{w_{i},w}) =_{\mathsf {E}}t_{i}\).

  1. 1.

    To establish the first point, we distinguish two cases.

    • f=h, =2, \((M_{1} =_{\mathsf {E}}\zeta_{i_{0}})\psi\), and (M 2= E w)ψ for some i 0∈{1,…,k}. Applying our induction hypothesis, we deduce that \((M_{1} =_{\mathsf {E}}\zeta_{i_{0}})(\psi \{^{w'}/{}_{w}\})\) and (M 2= E w)(ψ{w/ w }). Note that \(\#_{w} \zeta_{i_{0}} = 0\) and # w M 2≥1 (it is not possible to deduce w without using it explicitly). Hence, we can indeed apply our induction hypothesis in order to deduce that:

      $$\begin{array}{rcl} [\mathsf {split}_{\psi}(M)(\sigma\delta_{w_i,w'_i})]\delta_{w_i,w}\delta _{c_i,t'_i}\delta_{w'_i,w'} & =_\mathsf {E}& \mathsf {h}(c_{i_0},w_{i_0}) \delta_{w_i,w}\delta_{c_i,t'_i}\delta _{w'_i,w'}\\[3pt] &=_\mathsf {E}& \mathsf {h}(t'_{i_0},w)\\[3pt] &=_\mathsf {E}& \mathsf {h}(M_1 (\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}), M_2 (\sigma\delta_{c_i,t'_i}\delta_{w_i,w'})) \\[3pt] &=_\mathsf {E}& M(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}) \end{array} $$
    • Otherwise, split ψ (M)=f(split ψ (M 1),…,split ψ(M )), and thus we have that:

      $$\begin{array}{l} [\mathsf {split}_{\psi}(M)(\sigma\delta_{w_i,w'_i})]\delta_{w_i,w}\delta _{c_i,t'_i}\delta_{w'_i,w'}\\[3pt] \quad =_\mathsf {E}[\mathsf {f}(\mathsf {split}_{\psi}(M_1), \ldots, \mathsf {split}_{\psi}(M_\ell))(\sigma\delta_{w_i,w'_i})]\delta _{w_i,w}\delta_{c_i,t'_i}\delta_{w'_i,w'}\\[3pt] \quad =_\mathsf {E}\mathsf {f}(\mathsf {split}_{\psi}(M_1)(\sigma\delta_{w_i,w'_i}) \delta _{w_i,w}\delta_{c_i,t'_i}\delta_{w'_i,w'}, \ldots, \mathsf {split}_{\psi}(M_\ell)(\sigma\delta_{w_i,w'_i})\delta_{w_i,w}\delta _{c_i,t'_i}\delta_{w'_i,w'})\\[3pt] \quad =_\mathsf {E}\mathsf {f}(M_1(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}), \ldots, M_\ell(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}))\\[3pt] \quad =_\mathsf {E}\mathsf {f}(M_1,\ldots,M_\ell) (\sigma\delta_{c_i,t'_i}\delta _{w_i,w'})\\[3pt] \quad =_\mathsf {E}M(\sigma\delta_{c_i,t'_i}\delta_{w_i,w'}) \end{array} $$
  2. 2.

    This point can be proved as in the base case.

The second implication, (M= E N)(ψ{w/ w })⇒(M= E N)ψ can be proved in a similar way. This allows us to conclude the proof. □

3.2 C.2 Proof of Proposition 4

Lemma 6

Let t 1,…,t k be distinct ground terms modulo E and c 1,…,c k ,w 1,…,w k be distinct fresh names. Let  \(\phi= \nu\tilde{n}.\sigma\), \(\tilde{\phi} = \nu\tilde{n}. \tilde{\sigma}\) and \(\phi' = \nu\tilde{n}. \sigma'\) be three frames such that wfn(σ), and \(w, w_{1}, \ldots, w_{k}, c_{1},\ldots, c_{k} \notin \tilde{n}\). Moreover, we assume that \(\sigma \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{\sigma}\), \(\sigma=_{\mathsf {E}}\sigma'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and c 1,…,c k fn(σ′). If \(\nu w. \tilde{\phi} \vdash_{\mathsf {E}}\tilde{M}\) and \(\{w_{1}, \dots, w_{k}, c_{1}, \dots, c_{k} \} \cap \mathit {fn}(\tilde{M}) = \emptyset\) for some ground term \(\tilde{M}\) then there exist ground terms M,Msuch that c 1,…,c k fn(M′), wfn(M), \(M\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}\), \(M=_{\mathsf {E}}M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and νw 1.…νw k .ϕ E M.

Proof

Let \(\tilde{M}\) be a ground term such that \(\nu w. \tilde{\phi} \vdash_{\mathsf {E}}\tilde{M}\) and \(\{w_{1}, \dots, w_{k}, c_{1}, \dots, c_{k} \} \cap \mathit {fn}(\tilde{M}) = \emptyset\). Thus, there exists a term ζ such that \(\mathit {fn}(\zeta) \cap(\tilde{n}\cup\{w, w_{1}, \dots, w_{k}, c_{1}, \dots, c_{k}\}) = \emptyset\), \(\mathit {fv}(\zeta) \subseteq \operatorname {dom}(\tilde{\sigma})\), and \(\zeta\tilde{\sigma} =_{\mathsf {E}}\tilde{M}\). Let M′=ζσ′ and \(M = \mathsf {split}_{0}(\zeta\tilde{\sigma})\) where split 0 is the ground splitting function w.r.t. w, c 1,…,c k , w 1,…,w k , t 1,…,t k . We have that c 1,…,c k fn(M′), and wfn(M). By hypothesis, we have that \(\zeta\tilde{\sigma} =_{\mathsf {E}}\tilde{M}\). Thus, thanks to Lemma 14, we have that \(M = \mathsf {split}_{0}(\zeta\tilde{\sigma}) =_{\mathsf {E}}\mathsf {split}_{0}(\tilde{M})\). Now, thanks to Lemma 15, we deduce that \(\mathsf {split}_{\tilde{\phi}}(\zeta)\sigma=_{\mathsf {E}}M\) where \(\mathsf {split}_{\tilde {\phi}}\) is the splitting function w.r.t. \(\tilde{\phi}\), w, c 1,…,c k , w 1,…,w k , t 1,…,t k . Actually, since \(\tilde{\sigma} = \sigma \delta _{c_{i},t_{i}} \delta _{w_{i},w}\) and \(\sigma=_{\mathsf {E}}\sigma'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), we have that w only appears under h and hence is not deducible from \(\nu w. \tilde{\phi}\). This allows us to show that \(\mathsf {split}_{\tilde{\phi}}(\zeta) = \zeta\). Hence, we have that ζσ= E M. Lastly, we have that

  • \(M =_{\mathsf {E}} \zeta\sigma=_{\mathsf {E}}(\zeta\sigma')\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}= M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and

  • \(M\delta_{c_{i},t_{i}}\delta_{w_{i},w} =_{\mathsf {E}} [(\zeta\sigma')\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}]\delta_{c_{i},t_{i}}\delta_{w_{i},w} = (\zeta\sigma) \delta_{c_{i},t_{i}}\delta_{w_{i},w} = \zeta\tilde {\sigma}\).

This allows us to conclude the proof. □

Lemma 7

Let t 1,…,t k be distinct ground terms modulo E and c 1,…,c k ,w 1,…,w k be distinct fresh names. Let M, N, \(\tilde{M}\) and \(\tilde{N}\) be four terms such that

  • \(\tilde{M} = M\delta _{c_{i},t_{i}} \delta _{w_{i},w}\) and \(\tilde{N} = N\delta _{c_{i},t_{i}} \delta _{w_{i},w}\) with wfn(M)∪fn(N);

  • \(M =_{\mathsf {E}}M' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) and \(N =_{\mathsf {E}}N' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some terms Mand Nsuch that c 1,…,c k fn(M′)∪fn(N′).

Then, we have that \(M =_{\mathsf {E}}N \ \mbox{\textit{if and only if}}\ \tilde{M}=_{\mathsf {E}}\tilde{N}\).

Proof

As = E is closed under substitution of terms for names M= E N implies \(\tilde{M}=_{\mathsf {E}}\tilde{N}\). Now, let M and N be two terms such that \(\tilde{M} =_{\mathsf {E}}\tilde{N}\) where \(\tilde{M} = M\delta _{c_{i},t_{i}} \delta _{w_{i},w}\) and \(\tilde{N} = N\delta _{c_{i},t_{i}} \delta _{w_{i},w}\). Thus, according to Lemma 14, we have that

$$\mathsf {split}_0(M\delta _{c_i,t_i} \delta _{w_i,w}) =_\mathsf {E}\mathsf {split}_0(N \delta _{c_i,t_i} \delta _{w_i,w}) $$

where split 0 represents the splitting function w.r.t. w, c 1,…,c k , w 1,…,w k , t 1,…,t k . Now, it is easy to establish, by structural induction on M and N and by relying on the fact that \(M =_{\mathsf {E}}M' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some term M′, and \(N =_{\mathsf {E}}N' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some term N′, that:

$$\mathsf {split}_0(M\delta _{c_i,t_i} \delta _{w_i,w}) =_E M \quad \mathrm{and} \quad \mathsf {split}_0(N\delta _{c_i,t_i} \delta _{w_i,w}) =_E N. $$

This allows us to conclude. □

We will prove Proposition 4 by induction on the prooftree witnessing the derivation. First, we establish a similar result for ≡.

Lemma 16

Let t 1,…,t k be distinct ground terms modulo E and c 1,…,c k ,w 1,…,w k be distinct fresh names. Let A be an extended process such that bn(A)=∅, wfn(A), and \(A =_{\mathsf {E}}A' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some Asuch that c 1,…,c k fn(A′). Suppose that \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}\equiv \overline{B}\) for some process  \(\overline{B}\). Then there exist some processes B and Bsuch that

  • \(\overline{B} = B \delta _{c_{i},t_{i}} \delta _{w_{i},w}\) with wfn(B), and

  • \(B =_{\mathsf {E}}B' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) with c 1,…,c k fn(B′), and

  • AB.

Proof

Let \(\overline{A} = A\delta _{c_{i},t_{i}} \delta _{w_{i},w}\). We prove this result by induction on the proof tree showing that \(\overline{A} \equiv\overline{B}\). All the base cases that we have to check, i.e. Par-0, Par-C and Par-A, are easy to prove. The only interesting inductive case is the case of an application of an evaluation context. Suppose that the proof tree showing that \(\overline{A} \equiv \overline{B}\) ends with an instance of such a rule, i.e.

$$\frac{\overline{A_1} \equiv\overline{B_1}}{\overline{C}[ \overline{A_1}] \equiv\overline{C}[\overline{B_1}]} \hfill\null $$

where \(\overline{A} = \overline{C}[ \overline{A_{1}}]\) and \(\overline{B} = \overline{C}[\overline{B_{1}}]\). Note that the evaluation context will not contain any ν operator since otherwise bn(A)≠∅. As \(\overline{A} = A \delta _{c_{i},t_{i}} \delta _{w_{i},w}\) we have that there exist A 1, C such that \(A_{1} \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \overline{A_{1}} \) and \(C \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \overline{C}\). Moreover there exists A′ such that \(C[A_{1}] = A =_{\mathsf {E}}A' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Hence there also exist C′, \(A_{1}'\) such that \(C =_{\mathsf {E}}C' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) and \(A_{1} =_{\mathsf {E}}A_{1}' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). We can therefore apply our induction hypothesis and we obtain that there exist processes \(B_{1}, B_{1}'\) such that

  • \(\overline{B_{1}} = B_{1} \delta _{c_{i},t_{i}} \delta _{w_{i},w}\);

  • \(B_{1} =_{\mathsf {E}}B_{1}' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\);

  • A 1B 1.

Let B=C[B 1] and \(B'=C'[B_{1}']\). We indeed have that

  • \(\overline{B} = \overline{C}[ \overline{B_{1}}] = (C \delta _{c_{i},t_{i}} \delta _{w_{i},w}) [B_{1} \delta _{c_{i},t_{i}} \delta _{w_{i},w}] = B \delta _{c_{i},t_{i}} \delta _{w_{i},w}\)

  • \(B =C[B_{1}] =_{\mathsf {E}}C'[B'_{1}] \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}= B' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

This allows us to conclude the proof. □

Now, we can prove the following proposition.

Proposition 4

Let t 1,…,t k be distinct ground terms modulo  E and c 1,…,c k ,w 1,…,w k be distinct fresh names. Let \(\nu\tilde{n}. A\) be an extended process such that bn(A)=∅, wfn(A), and \(A =_{\mathsf {E}} A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) for some Asuch that c 1,…,c k fn(A′). Moreover, we assume that \(w, w_{1},\dots,w_{k},\allowbreak c_{1},\dots,c_{k} \notin \tilde{n}\).

Let  \(\overline{B}\) be such that \(\nu w. \nu\tilde{n}. (A\delta _{c_{i},t_{i}} \delta _{w_{i},w}) \xrightarrow {\ell} \overline{B}\). Moreover, when \(\ell= in(\tilde {M})\) we assume that \(w_{1}, \dots, w_{k}, c_{1},\dots, c_{k} \notin \mathit {fn}(\tilde{M})\). Then there exist extended processes B, B′, and labels 0, such that:

  • \(\overline{B} \equiv\nu w. \nu\tilde{n}. (B\delta _{c_{i},t_{i}} \delta _{w_{i},w})\) with bn(B)=∅ and wfn(B), \(\ell= \ell_{0}\delta _{c_{i},t_{i}} \delta _{w_{i},w}\), and

  • \(B =_{\mathsf {E}}B'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) with c 1,…,c k fn(B′), \(\ell_{0} =_{\mathsf {E}}\ell' \delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and

  • \(\nu w_{1} \dots\nu w_{k}. \nu\tilde{n}. A \xrightarrow {\ell_{0}} \nu w_{1} \dots\nu w_{k}. \nu\tilde{n}. B\).

Proof

We have \(\nu w. \nu\tilde{n}. (A \delta _{c_{i},t_{i}} \delta _{w_{i},w}) \xrightarrow {\ell} \overline{B}\). It is easy to see that \(w \in \mathit {bn}(\overline{B})\) and \(\tilde{n}\subseteq \mathit {bn}(\overline{B})\). Indeed, according to our calculus, we can always by using structural equivalence move a restriction in front of the process. Thus we have that \(\overline{B} \equiv\nu w. \nu\tilde{n}. \tilde{B}\) for some process \(\tilde{B}\) such that \(\mathit {bn}(\tilde{B}) = \emptyset\). Let  be the label involved in \(\nu w. \nu\tilde {n}.(A\delta _{c_{i},t_{i}} \delta _{w_{i},w}) \to \overline{B}\). It is easy to see that \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}\xrightarrow {\ell} \tilde{B}\) and when \(\ell= in(\tilde{M})\), we have that \(\nu w. \nu\tilde{n}(\phi(A) \delta _{c_{i},t_{i}} \delta _{w_{i},w}) \vdash_{\mathsf {E}}\tilde{M}\). Moreover, by hypothesis, we have that \(w_{1}, \ldots, w_{k}, c_{1}, \ldots, c_{k} \notin \mathit {fn}(\tilde{M})\). By Lemma 6, we deduce that \(\nu w_{1}. \ldots\nu w_{k}.\nu\tilde{n}.\phi(A) \vdash_{\mathsf {E}}M\) for some M such that \(M \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}\) and we also know that there exists M′ such that \(M =_{\mathsf {E}}M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). This allows us, in particular, to ensure that, in the case of an input, the side condition corresponding to an application of evaluation context is satisfied. Now, we show by induction on the proof tree showing that \(A\delta _{c_{i},t_{i}} \delta _{w_{i},w}\xrightarrow {\ell} \tilde{B}\) that there exist processes B,B′, and labels 0, ′ such that

  • \(\tilde{B} = B\delta _{c_{i},t_{i}} \delta _{w_{i},w}\) with wfn(B), and \(\ell= \ell_{0}\delta_{c_{i},t_{i}}\delta_{w_{i},w}\);

  • \(B =_{\mathsf {E}}B'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) with c 1,…,c k fn(B′), and \(\ell_{0} =_{\mathsf {E}}\ell'\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\);

  • AB.

This will allows us to conclude that \(\nu w_{1} \dots\nu w_{k}. \nu\tilde {n}. A \to\nu w_{1} \dots\nu w_{k}. \nu\tilde{n}. B\). Note that since \(\mathit {bn}(\tilde{B}) =\emptyset\), we have also that bn(B)=∅.

Base cases.

  • In. In such a case, we have \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}=\text {in}(x). \tilde{P}\) and \(\tilde{B} = \tilde{P} \{^{\tilde{M}}/{}_{x}\}\) for some process \(\tilde{P}\) and some term \(\tilde{M}\). From this, we deduce that A=in(x).P for some process P such that \(P\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{P}\). We have also that \(A = \text {in}(x).P =_{\mathsf {E}}A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Thus, there exists P′ with c 1,…,c k fn(P′) such that \(P =_{\mathsf {E}}P'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Moreover, we have already seen that there exists M and M′ such that

    • \(M\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}\), and

    • \(M =_{\mathsf {E}}M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Let B=P{M/ x }, B′=P′{M/ x }, 0=in(M), and ′=in(M′). It is easy to check that the three conditions hold.

  • Out. In such a case, we have \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \text {out}(\tilde{M}).\tilde{P}\) and \({\tilde{B} = \tilde{P} \mid \{^{\tilde{M}}/{}_{x}\}}\) for some process \(\tilde{P}\) and some term \(\tilde{M}\). From this, we deduce that A=out(M).P for some term M and some process P such that \(M\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}\), and \(P\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{P}\). We have also that \(A = \text {out}(M).P =_{\mathsf {E}}A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Thus, there exist M′ and P′ such that \(M =_{\mathsf {E}}M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) and \(P =_{\mathsf {E}}P'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Moreover, we have that c 1,…,c k fn(M′)∪fn(P′). Let B=P∣{M/ x }, B′=P′∣{M/ x }, 0=out(M), and ′=out(M′). It is easy to check that the three conditions hold.

  • Event. In such a case, we have \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \text {ev}(\tilde{M}).\tilde{P}\) and \({\tilde{B} = \tilde{P} \mid \{^{\tilde{M}}/{}_{x}\}}\) for some process \(\tilde{P}\) and some terms \(\tilde{M}\). From this, we deduce that A=ev(M).P for some terms M and some process P such that \(M\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}\), and \(P\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{P}\). We have also that \(A = \text {ev}(M).P =_{\mathsf {E}}A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Thus, there exist M′ and P′ such that \(M =_{\mathsf {E}}M'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) and \(P =_{\mathsf {E}}P'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Moreover, we have that c 1,…,c k fn(M′)∪fn(P′). Let B=P, B′=P′, 0=ev(M), and ′=ev(M′). It is easy to check that the three conditions hold.

  • Then. In such a case, we have \(A \delta _{c_{i},t_{i}} \delta _{w_{i},w}= \mbox{if } \tilde{M}_{1} = \tilde{M}_{2} \mbox{ then } \tilde{P} \mbox{ else } \tilde{Q}\) for some terms \(\tilde{M}_{1}\) and \(\tilde{M}_{2}\) and some processes \(\tilde{P}\) and \(\tilde{Q}\) such that \(\tilde {M}_{1} =_{\mathsf {E}}\tilde{M}_{2}\) and \(\tilde{B} = \tilde{P}\). From this, we deduce that A=if M 1=M 2 then P else Q for some terms M 1,M 2 and some processes P,Q such that \(M_{i}\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{M}_{i}\) (i=1,2), \(P\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{P}\), and \(Q\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{Q}\). We have also that \(A = \mbox{if } M_{1} = M_{2} \mbox{ then } P \mbox{ else } Q =_{\mathsf {E}}A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Thus, there exist \(M'_{1}\), \(M'_{2}\), P′ and Q′ such that:

    • \(M_{i} =_{\mathsf {E}}M'_{i}\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) (i=1,2),

    • \(P =_{\mathsf {E}}P'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and

    • \(Q =_{\mathsf {E}}Q'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\).

    Moreover, we have that \(c_{1},\ldots, c_{k} \notin \mathit {fn}(M'_{1}) \cup \mathit {fn}(M'_{2}) \cup \mathit {fn}(P') \cup \mathit {fn}(Q')\). Let B=P, B′=P′, and 0==τ. It is easy to see that the two first conditions hold. For the last one, we have to show that M 1= E M 2. This can be easily done thanks to Lemma 7.

  • Else. This case is similar to the previous one.

Inductive cases. The inductive case corresponding to application of structural equivalence directly follows from Lemma 16. It remains to show the case of an application of an evaluation context. In such a case, we have \({A \delta _{c_{i},t_{i}} \delta _{w_{i},w}\xrightarrow {\ell} \tilde{B}}\) finishes by an application of the following rule

$$\frac{\tilde{A}_1\xrightarrow {\ell} \tilde{B}_1}{\tilde {C}[\tilde{A}_1] \xrightarrow {\ell} \tilde{C} [\tilde{B}_1]} \hfill\null $$

where \(A\delta _{c_{i},t_{i}} \delta _{w_{i},w}=\tilde{C}[\tilde{A}_{1}]\) and \(\tilde{B} = \tilde{C}[\tilde{B}_{1}]\). From this, we deduce that A=C[A 1] for some context C and some process A 1 such that \(C\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{C}\) and \(A_{1}\delta _{c_{i},t_{i}} \delta _{w_{i},w}= \tilde{A}_{1}\). We have \(A = C[A_{1}] =_{\mathsf {E}}A'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Thus, there exist C′ and \(A'_{1}\) such that \(C =_{\mathsf {E}}C'\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\), and \(A_{1} =_{\mathsf {E}}A'_{1}\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\). Hence we can apply our induction hypothesis to obtain that there exist \(B'_{1}\), B 1, 0, and ′ such that

  • \(\tilde{B}_{1} \equiv B_{1}\delta _{c_{i},t_{i}} \delta _{w_{i},w}\) with wfn(B 1), and \(\ell= \ell_{0}\delta_{c_{i},t_{i}}\delta_{w_{i},w}\);

  • \(B_{1} =_{\mathsf {E}}B'_{1}\delta _{w_{i},\mathsf {h}(c_{i},w_{i})}\) with \(c_{1},\ldots, c_{k} \notin \mathit {fn}(B'_{1})\), and \(\ell_{0} =_{\mathsf {E}}\ell'\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\);

  • A 1B 1.

Let B=C[B 1] and \(B'= C'[B'_{1}]\). The three conditions hold and this allows us to conclude the proof. □

3.3 C.3 Proof of Theorem 3

Theorem 3

Let \(\mathcal{P} = \nu w. (\nu\tilde{m}_{1}. P_{1} \mid\cdots\mid \nu\tilde{m}_{\ell}. P_{\ell})\) be a password protocol specification and \(\mathcal{P}'\) be such that \(\overline{\mathcal{P}} = \nu w. \mathcal{P}'\), and \(\mathcal{P}'_{1}, \ldots\mathcal{P}'_{p}\) be p instances of  \(\mathcal{P}'\).

  1. 1.

    Let t be a ground term that occurs as a subterm in  \(\mathcal{P}'_{i}\) for some i∈{1,…,p}. If \(\nu w. \mathcal{P}'_{i}\) preserves secrecy of t, then we have that \(\nu w. (\mathcal{P}'_{1} \mid\cdots\mid\mathcal{P}'_{p})\) preserves secrecy of \(t\{^{\mathsf {h}(t_{i},w)}/{}_{w}\}\).

  2. 2.

    Let \(\varPhi= \text {ev}(\tilde{x}) \Rightarrow_{(\mathsf {inj})} \text {ev}(\tilde{x})\) be a correspondence property (injective or not). If Φ holds on  \(\mathcal{P}\), then Φ holds on \(\nu w. (\mathcal{P}'_{1} \mid\cdots\mid\mathcal{P}'_{p})\).

  3. 3.

    If \(\mathcal{P}\) is resistant to guessing attacks against w, then we have that \(\nu w. (\mathcal{P}'_{1} \mid \ldots\mid\mathcal{P}'_{p})\) is resistant to guessing attacks against w.

Proof

We suppose w.l.o.g. that \(\mathcal{P}'_{i} = \nu\tilde{m}_{i,1} \nu n_{i,1}. P_{i,1} \mid\cdots\mid\nu\tilde{m}_{i,\ell} \nu n_{i,\ell}. P_{i,\ell}\) where

$${P_{i,j}} = \text {in}(x^1_{i,j} ). \ldots \text {in}(x^{j-1}_{i,j} ). \text {out}(n_{i,j}).\text {in}(x^{j+1}_{i,j} ). \ldots \text {in}(x^{\ell}_{i,j} ). P'_{i,j} $$

for some \(P'_{i,j}\) (1≤ip,1≤j).

By contradiction, suppose that \(P = \nu w.(\mathcal{P}'_{1} \mid\ldots \mid\mathcal{P}'_{p})\) admits an attack. Throughout the proof we refer to an attack as being either an attack on secrecy, on a correspondence property or a guessing attack. Hence there exists Q such that P Q is the derivation exhibiting this attack. We assume w.l.o.g. that the derivation is maximal, i.e. there is no Q′ such that QQ′. This allows us to ensure that all the preambles have been executed. We are going to show that there exists an attack on \(\mathcal{P}\) contradicting the hypothesis.

Step 1

We will first regroup the different roles of the protocol instances according to their tag. For this we need to identify the tag t i,j that is computed by P i,j during the attack derivation. We have that \(P \xrightarrow {\ell_{1}} P_{1} \xrightarrow {\ell_{2}} \cdots P_{q-1}\xrightarrow {\ell_{q}} P_{q}=Q\) and for each \(x^{k}_{i,j}\) such that \(j \not= k\) there exists r such that \(P_{r} \equiv C[\text {in}(x^{k}_{i,j}).P'] \xrightarrow {\text {in}(M^{k}_{i,j})} C[P'\{^{M^{k}_{i,j}}/{}_{x^{k}_{i,j}}\}]\equiv P_{r+1}\). Moreover, for each i,j such that 1≤ip,1≤j there exists \(y_{i,j} \in \operatorname {dom}(\phi(Q))\) such that y i,j ϕ(Q)=n i,j . Let \(M^{j}_{i,j} = n_{i,j}\). We define \(t_{i,j} = \langle M^{1}_{i,j}, \langle\ldots\langle M^{\ell- 1}_{i,j}, M^{\ell}_{i,j} \rangle\rangle\rangle\). We note that ϕ(Q)⊢t i,j for all i,j such that 1≤ip,1≤j. Intuitively, t i,j is the tag which has been computed by process P i,j in the attack derivation.

Next we regroup the roles in P according to the tag they used. Let tag 1,…,tag k be the different terms (modulo E) that occur in {t i,j |1≤i and 1≤jp}. By definition, the terms tag 1,…,tag k are distinct modulo E. We group the different processes of P according to the value of the tag in the derivation, i.e., we define

$$\overline{A_r} = \nu\tilde{m}_r. \vert_{i,j\ s.t.\ t_{i,j}= tag_r} P_{i,j} \quad \mbox{where } \tilde{m}_r = \biggl(\, \bigcup_{i,j\ s.t.\ t_{i,j}= tag_r} \tilde{m}_{i,j}, n_{i,j}\biggr) $$

We have that \(P \equiv\nu w. (\overline{A_{1}} \mid\cdots\mid \overline{A_{k}})\) and we let \(\tilde{m}\) stand for the sequence \(\nu\tilde{m}_{1} \ldots\nu \tilde{m}_{k}\).

Step 2

The aim of this step is to show that an attack on a transformed protocol also exists on a protocol that is tagged with constants (instead of the constructed tag) and different passwords (instead of the same password).

We first instantiate the tag of each role P i,j by the tag that has been computed in the attack derivation. Define the process \(\overline{P}_{0}\) obtained from P by replacing each occurrence of a non-instantiated tag \(\langle x^{1}_{i,j}, \langle\ldots n_{i,j} \ldots\langle x^{\ell- 1}_{i,j}, x^{\ell}_{i,j} \rangle\rangle\rangle\) in \(\overline{A}_{r}\) by the ground term tag r . It is easy to see that \(\overline{P}_{0} \to^{*} Q\). Moreover, by construction each \(\overline{A_{i}}\) is of the form \(A_{i}\delta_{c_{i},tag_{i}} \delta_{w_{i},w}\) with \(A_{i} = A'_{i}\delta_{w,\mathsf {h}(c_{i},w_{i})}\) for some A i , \(A_{i}'\) and c 1,…c k ,w 1,…w k which do not occur in \(\overline{P}_{0}\). As w 1,…w k ,c 1,…c k do not occur in \(\overline{P}_{0}\) we assume w.l.o.g. that they do not occur in any label among this derivation.

Let \(\overline{P}_{n} = Q\) and P 0=(νw 1.A 1∣…∣νw k .A k ). By iterating Proposition 4 we have that there exist two extended processes P n , \(P'_{n}\) and two sequences of labels \(\ell^{0}_{1}, \ldots, \ell^{0}_{n}\) and \(\ell'_{1}, \ldots, \ell'_{n}\) such that:

  • \(\overline{P}_{n} \equiv\nu w. \nu \tilde{m}. (P_{n}\delta_{c_{i},t_{i}}\delta_{w_{i},w})\) with bn(P n )=∅, wfn(P n ), and \(\overline{\ell_{j}} = \ell^{0}_{j}\delta_{c_{i},t_{i}}\delta_{w_{i},w}\) for any j∈{1,…,n};

  • \(P_{n} =_{\mathsf {E}}P'_{n}\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\) with \(c_{1},\ldots, c_{k} \notin \mathit {fn}(P'_{n})\), and \(\ell^{0}_{j} =_{\mathsf {E}}\ell'_{j}\delta_{w_{i},\mathsf {h}(c_{i},w_{i})}\) for any j∈{1,…,n}, and

  • \(P_{0} \xrightarrow {\ell^{0}_{1}} \cdots \xrightarrow {\ell^{0}_{n}} \nu w_{1}.\ldots. \nu w_{k}. \nu\tilde{m}. P_{n}\).

Exactly as in the proof of Theorem 2, using Lemmas 6, 7 and 8 we show that the derivation \(P_{0}\xrightarrow {{\ell^{0}_{1}}} \cdots \xrightarrow {{\ell^{0}_{n}}} \nu w_{1}.\ldots. \nu w_{k}. \nu\tilde{m}. P_{n}\) also admits an attack.

Step 3

In the final step we are going to show that the attack already existed on an instance of \(\mathcal{P}\) contradicting the hypothesis.

By Proposition 1, we have for some r that \(\nu w_{r}. \nu\tilde{m}_{r}. A_{r}\) admits an attack. We have that \(A_{r} = \vert_{i,j\ s.t.\ t_{i,j}= tag_{r}} Q_{i,j}\) and the Q i,j s are of the form

$${Q_{i,j}} = \text {in}(x^1_{i,j} ). \ldots \text {in}(x^{j-1}_{i,j} ). \text {out}(n_{i,j}). {\text {in}(x^{j+1}_{i,j} )}. \ldots \text {in}(x^{\ell}_{i,j} ). Q'_{i,j} $$

for some \(Q'_{i,j}\) such that \(x^{1}_{i,j}, \ldots, x^{j-1}_{i,j}, n_{i,j}, x^{i+1}_{i,j}, x^{\ell}_{i,j}\) do not occur in \(Q'_{i,j}\). Hence, we also have that \(\nu w_{r}. \nu\tilde{m}_{r}. (\bigm\vert_{i,j\ s.t.\ t_{i,j}= tag_{r}} Q'_{i,j})\) admits an attack. Let \(\tilde{m}'_{r} = \tilde{m}_{r} \smallsetminus\{n_{i,j} \mid t_{i,j} = tag_{r}\}\). We observe that \(\nu\tilde{m}'_{r}. (\bigm\vert_{i,j\ s.t.\ t_{i,j}= tag_{r}} Q'_{i,j}) \equiv R \{^{\mathsf {h}(c_{r},w_{r})}/_{w_{r}} \}\) for some process R such that νw r .R is an instance of \(\nu w. (\nu \tilde{m}_{i_{1}}. P_{i_{1}} \mid\cdots\mid\nu \tilde{m}_{i_{q}}. P_{i_{q}})\) and \(\{P_{i_{1}}, \ldots, P_{i_{q}}\} \subseteq\{ P_{1}, \ldots P_{\ell}\}\) (multiset inclusion). Note that this holds because in the transformed protocol each of the roles generates a new nonce, and hence each of the Q i,j s can be associated to at most one of the role of \(\mathcal{P}\) (two instances of the same role would necessarily generate different tags).

Thanks to Theorem 1 we have that there exists an attack on R which implies that there exists an attack on an instance of \(\mathcal{P}\) yielding a contradiction.  □

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chevalier, C., Delaune, S., Kremer, S. et al. Composition of password-based protocols. Form Methods Syst Des 43, 369–413 (2013). https://doi.org/10.1007/s10703-013-0184-6

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-013-0184-6

Keywords

Navigation