Abstract
Observational equivalence allows us to study important security properties such as anonymity. Unfortunately, the difficulty of proving observational equivalence hinders analysis. Blanchet, Abadi & Fournet simplify its proof by introducing a sufficient condition for observational equivalence, called diff-equivalence, which is a reachability condition that can be proved automatically by ProVerif. However, diff-equivalence is a very strong condition, which often does not hold even if observational equivalence does. In particular, when proving equivalence between processes that contain several parallel components, e.g.,
Keywords
Introduction
Cryptographic protocols are required to satisfy a plethora of security requirements. These requirements include classical properties such as secrecy and authentication, and emerging properties including anonymity [36,39,54], ideal functionality [4,5,38], and stronger notions of secrecy [1,14,33]. These security requirements can generally be classified as indistinguishability or reachability properties. Reachability properties express requirements of a protocol’s reachable states. For example, secrecy can be expressed as the inability of deriving a particular value from any possible protocol execution. By comparison, indistinguishability properties express requirements of a protocol’s observable behaviour. Intuitively, two protocols are said to be indistinguishable if an observer has no way of telling them apart. Indistinguishability enables the formulation of more complex properties. For example, anonymity can be expressed as the inability to distinguish between an instance of the protocol in which actions are performed by a user, from another instance in which actions are performed by another user.
Indistinguishability can be formalised as observational equivalence, denoted ≈. As a motivating example, consider an election scheme, in which a voter A voting v is formalised by a process
Approaches to proving equivalences
Observational equivalence is the tool introduced for reasoning about security requirements of cryptographic protocols in the spi calculus [5] and in the applied pi calculus [4]. It was originally proved manually, using the notion of labelled bisimilarity [4,6,22] to avoid universal quantification over adversaries.
Manual proofs of equivalence are long and difficult, so automating these proofs is desirable. Automation often relies on symbolic semantics [21,40] to avoid the infinite branching due to messages sent by the adversary by treating these messages as variables. For a bounded number of sessions, several decision procedures have been proposed for processes without else branches, first for a fixed set of primitives [44,48], then for a wide variety of primitives with the restriction that processes are determinate, that is, their execution is entirely determined by the adversary inputs [32]. These decision procedures are too complex for useful implementations. Practical algorithms have since been proposed and implemented: SPEC [60] for fixed primitives and without else branches, APTE [26] for fixed primitives with else branches and non-determinism, and AKISS [24,31] for a wide variety of primitives and determinate processes.
For an unbounded number of sessions, proving equivalence is an undecidable problem [3,48], so automated proof techniques are incomplete. ProVerif automatically proves an equivalence notion, named diff-equivalence, between processes P and Q that share the same structure and differ only in the choice of terms [18]. Diff-equivalence requires that the two processes always reduce in the same way, in the presence of any adversary. In particular, the two processes must have the same branching behaviour. Hence, diff-equivalence is much stronger than observational equivalence. Maude-NPA [57] and Tamarin [11] also use that notion, and Baudet [13] showed that diff-equivalence is decidable for a bounded number of sessions and used this technique for proving resistance against off-line guessing attacks [12]. To deal with limitations of diff-equivalence, other sufficient conditions have been designed for particular classes of equivalences, e.g., anonymity and unlinkability [47] and ballot secrecy [35]. These conditions can be checked automatically using tools such as ProVerif. The definition of ballot secrecy in [35] is based on trace equivalence and its relationship with (1) is unknown. Decision procedures also exist for restricted classes of protocols: for an unbounded number of sessions, trace equivalence has a decision procedure for symmetric-key, type-compliant, acyclic protocols [29], which is too complex for useful implementation, and for ping-pong protocols [30], which is implemented in a tool.
Diff-equivalence and its limitations
In this paper, we focus on proofs of observational equivalence in the applied pi calculus. The main approach to automate proofs of observational equivalence with an unbounded number of sessions is to use diff-equivalence. (In our motivating example (1), a bounded number of sessions is sufficient, but an unbounded number becomes useful in more complex examples, as in Section 4.2.) Diff-equivalence seems well-suited to our motivating example, since the processes
Diff-equivalence implies observational equivalence. Hence, the equivalence (1) can be inferred from the diff-equivalence of the biprocess P. However, diff-equivalence is so strong that it does not hold for biprocesses modelling even trivial schemes, as the following example demonstrates.
Consider an election scheme that instructs voters to publish their vote on an anonymous channel. The voter’s role can be formalised as
Overcoming the difficulty encountered in Example 1 is straightforward: using the general property that
Some security properties (e.g., privacy in elections [10,39], vehicular ad-hoc networks [36,37], and anonymity networks [27,54,55]) can only be realised if processes synchronise their actions in a specific manner.
Building upon Example 1, suppose each voter sends their identity, then their vote, both on an anonymous channel, i.e.,
To modify this example so that it satisfies ballot secrecy, we use the notion of barrier synchronisation, which ensures that a process will block, when a barrier is encountered, until all other processes executing in parallel reach this barrier [9,23,46,53].
Let us modify the previous example so that voters publish their identity, synchronise with other voters, and publish their vote on an anonymous channel. The voter’s role can be formalised as process
The technique used to overcome the difficulty in Example 1 cannot be applied here, because swapping the two voting processes leads to the biprocess
As illustrated in Examples 1 and 3, diff-equivalence is a sufficient condition for observational equivalence, but it is not necessary, and this precludes the analysis of interesting security properties. In this paper, we will partly overcome this limitation: we weaken the diff-equivalence requirement by allowing swapping of data between processes at barriers.
First, we extend the process calculus by Blanchet, Abadi & Fournet [18] to capture barriers (Section 2). Secondly, we formally define a compiler that encodes barriers and swapping using private channel communication (Section 3). As a by-product, if we compile without swapping, we also obtain an encoding of barriers into the calculus without barriers, via private channel communication. Thirdly, we provide a detailed soundness proof for this compiler. Fourthly, we have implemented our compiler in ProVerif. Hence, we extend the class of equivalences that can be proved automatically. Finally, we analyse privacy in election schemes and in a vehicular ad-hoc network to showcase our results (Section 4).
This manuscript mainly differs from its conference version [19] by the inclusion of proofs and additional examples and explanations.
Comparison with Smyth et al.
The idea of swapping data at barriers was informally introduced by Delaune, Ryan & Smyth [41,58]. Our contributions improve upon their work by providing a strong theoretical foundation to their idea. In particular, they do not provide a soundness proof, we do; they prohibit replication and place restrictions on control flow and parallel composition, we relax these conditions; and they did not implement their results, we implement ours. (Smyth presented a preliminary version of our compiler in his thesis [59, Chapter 5], and Klus, Smyth & Ryan implemented that preliminary compiler [50]. The preliminary compiler differs from the one presented here; moreover, it was not proved sound. In contrast, we prove that the compiler we have implemented in ProVerif is sound.)
Process calculus
We recall Blanchet, Abadi & Fournet’s dialect [18] of the applied pi calculus [4,56]. This dialect is particularly useful due to the automated support provided by ProVerif [17,20]. The semantics of the applied pi calculus [4] and the dialect of [18] were defined using structural equivalence. Those semantics have been simplified by semantics with configurations and without structural equivalence, first for trace properties [2], then for equivalences [8,13,15]. In this paper, we use the latter semantics. In addition, we extend the calculus to capture barrier synchronisation, by giving the syntax and formal semantics of barriers.

Syntax for terms and processes.
The calculus assumes an infinite set of names, an infinite set of variables, and a finite set of function symbols (constructors and destructors), each with an associated arity. We write f for a constructor, g for a destructor, and h for a constructor or destructor; constructors are used to build terms, whereas destructors are used to manipulate terms in expressions. Thus, terms range over names, variables, and applications of constructors to terms, and expressions allow applications of function symbols to expressions (Fig. 1). We use metavariables u and w to range over both names and variables. Substitutions
The semantics of a destructor g of arity l are given by a finite set
Only a few rules of the operational semantics need to be adapted to equations, as in [17, Section 2.5.1]; the definition of our compiler and many parts of the proofs remain unchanged. A tricky point is that, with equations, the evaluation of expressions may introduce names that do not appear in the initial expression, and these names may collide with other names. There are several ways to solve this technical issue, either by considering a representative in which these names are renamed to avoid such collisions or by restricting ourselves to the equational theories that ProVerif supports, in which the equations can be oriented to avoid such introduction of names. Adapting the proofs to equations is otherwise straightforward.
The grammar for processes is presented in Fig. 1. The process
Our syntax allows processes to contain barriers
Given a process P, the multiset
The scope of names and variables is delimited by binders

Operational semantics.
The operational semantics is defined by reduction (→) on configurations. A configuration
Let us consider the parallel composition of processes
The semantics permits synchronisation on barrier t, immediately followed by synchronisation on barrier
Intuitively, configurations
(Observational equivalence).
Observational equivalence between configurations ≈ is the largest symmetric relation for all N, if if
Closed processes P and
The definition first formulates observational equivalence on semantic configurations. Item 1 guarantees that, if a configuration
Biprocesses
The calculus defines syntax to model pairs of processes that have the same structure and differ only by the terms that they contain. We call such a pair of processes a biprocess. The grammar for biprocesses is an extension of Fig. 1, with additional cases so that

Generalised semantics for biprocesses.
A closed biprocess P satisfies observational equivalence if
The semantics for biprocesses includes the rules in Fig. 2, except for

Semantics for divergence.
A closed biprocess P satisfies diff-equivalence if for all adversarial contexts
Let P be a closed biprocess without barriers. If P satisfies diff-equivalence, then P satisfies observational equivalence.
Theorem 1 can be proved by easily adapting the result of Blanchet [17, Theorem 3.5]. This result itself adapts the result of Blanchet, Abadi & Fournet [18, Theorem 1], initially presented with a semantics based on structural equivalence and reduction, to a semantics based on reduction on configurations.
Let us revisit Example 1. Formally, the biprocess
We can revisit Example 3 similarly. The biprocess
We do not allow adversarial contexts to contain barriers. In general, allowing them would enable an adversary to distinguish more processes. For instance, the processes
To prove equivalence, we define a compiler from a biprocess (containing barriers) to a set of biprocesses without barriers. The biprocesses in that set permit various swapping strategies. We show that if one of these biprocesses satisfies diff-equivalence, then the original biprocess satisfies observational equivalence. The compiler works in two steps:
Function Function
We introduce annotated barriers (Section 3.1) and define these two steps (Sections 3.2 and 3.3) below. By combining these two steps we obtain our compiler (Section 3.4), which we have implemented in ProVerif (
Process calculus with annotated barriers
We introduce an annotated barrier construct
The use of distinct channels helps avoid an incompleteness issue of ProVerif. In essence, ProVerif overapproximates a private channel as a set of messages: an input on a private channel a may receive any message sent on a at any point, in any order. By using distinct channels for barriers, we make sure that there is a single output and a single input for each private channel, so we reduce the effect of this overapproximation to a minimum.
We also introduce a domain-barrier construct
We introduce the function
We introduce the following validity condition to ensure that channels of annotated barriers are not mixed with other names: they are fresh names when they are introduced by barrier annotation (Section 3.2); they should remain pairwise distinct and distinct from other names. Their scope is global, but they are private, that is, the adversary does not have access to them.
A process P is valid if it is closed,
A configuration
Validity guarantees that channels used in annotated barriers are pairwise distinct (the elements of
The operational semantics for processes with both standard and annotated barriers extends the semantics for processes with only standard barriers, with the following rule:
The next lemma allows us to show that all considered configurations are valid.
If P is a valid process, then
The proof of Lemma 2 is detailed in Appendix B.
We refer to processes in which all barriers are annotated as annotated processes, and processes in which all barriers are standard as standard processes.
Next, we define the first step of our compiler, which annotates barriers with additional information.
We define function
The function
Intuitively, the function
We have
The function
If M does not contain names or variables in U, then M is replaced with a fresh variable x, and the replacement is recorded in
If M is a variable in U, then it is left unchanged, hence
If M is a constructor application
For an expression or process Q, we proceed by induction using the third rule of Fig. 5, and after several recursive calls, we apply

Helper function for barrier annotation.
For soundness of the transformation (Proposition 5), it is sufficient that:
If
This lemma is an immediate corollary of the following result:
Let Q be a term, an expression, or a process. If
Lemma 4 is proved in Appendix C by induction of Q, following the definition of
Intuitively, when reducing the annotated barrier by
The following proposition shows that annotation does not alter the semantics of processes:
If
The main step of the proof consists in showing that, when
Next, we define the second step of our compiler, which translates an annotated biprocess into biprocesses without barriers. Each annotated barrier
Barrier elimination
First, we eliminate barriers.
The function
The definition of function

Definition of
Using the results of Example 6, eliminating barriers from
Next, we define swapping strategies.
The function
The function We have
Finally, we derive a set of processes by parallel composition of the process output by
Intuitively, function
Using the results of Examples 7 & 8, applying
By contrast, in process
The next proposition formalises the preservation of observable behaviour.
Let P be a valid, annotated biprocess. If
The core argument for the proof of Proposition 6 is the following:
Suppose
In this proposition, the configuration
Lemma 8 proves that
Given an annotated process P and a substitution or renaming σ, we have
This lemma is proved by induction on process P, in Appendix E.
The second lemma builds upon Lemma 8 to show that function
Suppose B is a finite set of annotated barriers, E is a finite set of names and
If
If
This lemma is proved by cases on the considered reduction, in Appendix F.
We use two additional propositions in order to prove Proposition 6.
Let
Let
These propositions follow immediately from the semantics and definition of observational equivalence. They are proved in Appendix H, by defining a relation
The proof of Proposition 6 follows from these results. Let
We combine the annotation (Section 3.2) and barrier removal (Section 3.3) steps to define our compiler as
By combining Propositions 5 and 6, we immediately obtain:
Let P be a closed standard biprocess. If
This corollary shows that compilation preserves the observational behaviour of processes. The following theorem is an immediate consequence of this corollary:
Let P be a closed biprocess. If a biprocess in
Suppose that there exists a biprocess
This theorem allows us to prove observational equivalence using swapping: we prove that a biprocess in
The idea of swapping data at synchronisation points also applies to other tools that prove diff-equivalence (e.g., Maude-NPA [57] and Tamarin [11]). However, a compiler such as ours is not necessarily needed to implement this idea in these tools. For instance, in Tamarin, the swapping can be done directly on the multiset representing the state at the synchronisation point [42]. The idea of swapping could also be applied to other methods of proving equivalence. However, it may be less useful in these cases, since it might not permit the proof of more equivalences in such cases.
Replicated barriers
While our calculus does not allow barriers under replication, we can still prove equivalence with barriers under bounded replication, for any bound. We define bounded replication by
Let
Proposition 14 shows that, if our approach proves equivalence with unbounded replication, then it also proves equivalence with bounded replication. This proposition and the next one are proved in Appendix I.
Let
Proposition 15 shows that, if our approach proves equivalence after removing a barrier, then it also proves equivalence with the barrier. By combining these two results, we obtain:
Let
If a biprocess in
Corollary 16 shows that we can apply our compiler to prove observational equivalence for biprocesses with bounded replication, for any value of the bound. In the context of election schemes, this result allows us to prove privacy for an unbounded number of voters. For instance, in the protocol by Lee et al. (Section 4.2), we consider a process
ProVerif also supports the proof of trace properties (reachability and correspondence properties of the form “if some event has been executed, then some other events must have been executed”, which serve for formalising authentication) [16]. Our implementation extends this support to processes with barriers, by compiling them to processes without barriers, and applying ProVerif to the compiled processes. In this case, swapping does not help, so our compiler does not swap. We do not detail the proof of trace properties with barriers further, since it is easier and less important than observational equivalence.
Swapping without explicit synchronisation
Our compiler enables swapping at synchronisation points. Swapping can also be performed immediately under parallel compositions. For instance, in a biprocess
Future work
Our results could be extended to systems in which several groups of participants synchronise locally inside each group, but do not synchronise with other groups. For instance, we could consider a voting system in which voters synchronise at a regional level. In the same direction, we could consider a vehicular network in which vehicles synchronise at the crossroad level (see also Section 4.3). In this case, we would need several swapping processes similar to those generated by
We could also extend our approach to swap data between processes that have the same skeleton only until the next synchronisation. In this case, the swapping must be reversed at the next synchronisation, to recover the initial data. For instance, that would allow us to prove that the biprocess
It would also be useful to study heuristics in order to find a successful swapping strategy without trying all of them. Finally, it would be interesting to study the impact of our compiler on the termination and on the precision of ProVerif, especially with the usage of private channels to encode synchronisation and swapping.
Privacy in elections
Elections enable voters to choose representatives. Choices should be made freely, and this has led to the emergence of ballot secrecy as a de facto standard privacy requirement of elections. Stronger formulations of privacy, such as receipt-freeness, are also possible.
Ballot secrecy: a voter’s vote is not revealed to anyone.
Receipt-freeness: a voter cannot prove how she voted.
We demonstrate the suitability of our approach for analysing privacy requirements of election schemes by Fujioka, Okamoto & Ohta (commonly referred to as FOO), by Lee et al., along with some of its variants, and by Juels, Catalano & Jakobsson (commonly referred to as JCJ). Our ProVerif scripts are included in ProVerif’s documentation package (
Case study: FOO
Cryptographic primitives
FOO uses commitments and blind signatures. We model commitment with a binary constructor
Protocol description
The protocol uses two authorities, a registrar and a tallier, and it is divided into four phases, setup, preparation, commitment, and tallying. The setup phase proceeds as follows.
The registrar creates a signing key pair
The preparation phase then proceeds as follows.
The voter chooses coins k and
The registrar checks that the signature belongs to an eligible voter and returns the blinded commitment signed by the registrar
The voter verifies the registrar’s signature and unblinds the message to recover
After a deadline, the protocol enters the commitment phase.
The voter posts her ballot
Similarly, the tallying phase begins after a deadline.
The tallier checks validity of all signatures on the bulletin board and prepends an identifier ℓ to each valid entry.
The voter checks the bulletin board for her entry, the pair
Finally, using k, the tallier opens all of the ballots and announces the election outcome.
The distinction between phases is essential to uphold the protocol’s security properties. In particular, voters must synchronise before the commitment phase to ensure ballot secrecy (observe that without synchronisation, traffic analysis may allow the voter’s signature to be linked with the commitment to her vote – this is trivially possible when a voter completes the commitment phase before any other voter starts the preparation phase, for instance – which can then be linked to her vote) and before the tallying phase to avoid publishing partial results, that is, to ensure fairness (see Cortier & Smyth [34] for further discussion on fairness).
Model
To analyse ballot secrecy, it suffices to model the participants that must be honest (i.e., must follow the protocol description) for ballot secrecy to be satisfied. All the remaining participants are controlled by the adversary. The FOO protocol assures ballot secrecy in the presence of dishonest authorities if the voter is honest. Hence, it suffices to model the voter’s part of FOO as a process.
The process
The process
Based upon [39,51] and as outlined in Section 1, we formalise ballot secrecy for two voters A and B with the assertion that an adversary cannot distinguish between a situation in which voter A votes for candidate v and voter B votes for candidate
(Ballot secrecy).
FOO preserves ballot secrecy if the biprocess
To provide further insight into how our compiler works, let us consider how to informally prove this equivalence: that
Let us define
Showing that FOO satisfies ballot secrecy is not new: Delaune, Kremer & Ryan [39,51] present a manual proof of ballot secrecy, Chothia et al. [28] provide an automated analysis in the presence of a passive adversary, and Delaune, Ryan & Smyth [41], Klus, Smyth & Ryan [50], and Chadha, Ciobâcă & Kremer [24,31] provide automated analysis in the presence of an active adversary. More recently, Dreier et al. [42] provided a mechanised analysis in the tool Tamarin in the presence of an active adversary. Nevertheless, our analysis is useful to demonstrate our approach.
FOO does not satisfy receipt-freeness, because each voter knows the coins used to construct their ballot and these coins can be used as a witness to demonstrate how they voted. In an effort to achieve receipt-freeness, the protocol by Lee et al. [52] uses a hardware device to introduce coins into the ballot that the voter does not know.
Case study: Lee et al.
Protocol description
The protocol uses a registrar and some talliers, and it is divided into three phases, setup, voting, and tallying. For simplicity, we assume there is a single tallier. The setup phase proceeds as follows.
The tallier generates a key pair and publishes the public key.
Each voter is assumed to have a signing key pair and an offline tamper-resistant hardware device. The registrar is assumed to know the public keys of voters and devices. The registrar publishes those public keys.
The voting phase proceeds as follows.
The voter encrypts her vote and inputs the resulting ciphertext into her tamper-resistant hardware device.
The hardware device re-encrypts the voter’s ciphertext, signs the re-encryption, computes a Designated Verifier Proof that the re-encryption was performed correctly, and outputs these values to the voter.
If the signature and proof are valid, then the voter outputs the re-encryption and signature, along with her signature of these elements.
The hardware device re-encrypts the voter’s encrypted choice to ensure that the voter’s coins cannot be used as a witness demonstrating how the voter voted. Moreover, the device is offline, thus communication between the voter and the device is assumed to be untappable, hence, the only meaningful relation between the ciphertexts input and output by the hardware device is due to the Designated Verifier Proof, which can only be verified by the voter.
Finally, the tallying phase proceeds as follows.
Valid ballots (that is, ciphertexts associated with valid signatures) are input to a mixnet and the mixnet’s output is published. (We model the mixnet as a collection of parallel processes that each input a ballot, verify the signatures, synchronise with the other processes, and finally output the ciphertext on an anonymous channel.) The tallier decrypts each ciphertext and announces the election outcome.
Analysis: Ballot secrecy
In this protocol, the authorities and hardware devices must be honest for ballot secrecy to be satisfied, so we need to explicitly model them. Therefore, building upon (1), we formalise ballot secrecy by the equivalence
With the addition of a dishonest voter, the proof of ballot secrecy fails. This failure does not come from a limitation of our approach, but from a ballot copying attack, already mentioned in the original paper [52, Section 6] and formalised in [43]: the dishonest voter can copy A’s vote, as follows. The adversary observes A’s encrypted vote on the bulletin board (since it is accompanied by the voter’s signature), inputs the ciphertext to the adversary’s tamper-resistant hardware device, uses the output to derive a related ballot, and derives A’s vote from the election outcome, which contains two copies of A’s vote.
Analysis: Receipt-freeness
Following [39], receipt-freeness can be formalised as follows: there exists a process
In the case of the Lee et al. protocol,
The equivalence (3) holds by construction of
Variant by Dreier, Lafourcade & Lakhnech
Dreier, Lafourcade & Lakhnech [43] introduced a variant of this protocol in which, in step 3, the voter additionally signs the ciphertext containing her vote, and in step 4, the hardware device verifies this signature. We have also analysed this variant using our approach. It is sufficiently similar to the original protocol that we obtain the same results for both.
Variant by Delaune, Kremer & Ryan
Protocol description. Delaune, Kremer & Ryan [39] introduced a variant of this protocol in which the hardware devices are replaced with a single administrator, and the voting phase becomes:
The voter encrypts her vote, signs the ciphertext, and sends the ciphertext and signature to the administrator on a private channel. The administrator verifies the signature, re-encrypts the voter’s ciphertext, signs the re-encryption, computes a Designated Verifier Proof of re-encryption, and outputs these values to the voter. If the signature and proof are valid, then the voter outputs her ballot, consisting of the signed re-encryption (via an anonymous channel).
The mixnet is replaced with the anonymous channel, and the tallying phase becomes:
The collector checks that the ballots are pairwise distinct, checks the administrator’s signature on each of the ballots, and, if valid, decrypts the ballots and announces the election outcome.
Analysis: Ballot secrecy. We have shown that this variant preserves ballot secrecy, with two honest voters, using our approach. In this proof, all keys are public and the collector is not trusted, so it is included in the adversary. Since the keys are public, any number of dishonest voters can also be included in the adversary, so the proof with two honest voters suffices to imply ballot secrecy for any number of possibly dishonest voters. Hence, this variant avoids the ballot copying attack and satisfies a stronger ballot secrecy property than the original protocol. Thus, we automate the proof made manually in [39]. For this variant, the swapping occurs at the beginning of the voting process, so we can actually prove the equivalence by proving diff-equivalence after applying the general property that
Analysis: Receipt-freeness. We prove receipt-freeness for two honest voters. The administrator and voter keys do need to be secret, and all authorities need to be explicitly modelled. The process
Other examples
The idea of swapping for proving equivalences has been applied by Dahl, Delaune & Steel [36] to prove privacy in a vehicular ad-hoc network [45]. They manually encode swapping based upon the informal idea of [41]. We have repeated their analysis using our approach. Thus, we automate the encoding of swapping in [36], and obtain stronger confidence in the results thanks to our soundness proof.
Backes, Hriţcu & Maffei [10] also manually encode the idea of swapping, together with other encoding tricks, to prove a privacy notion stronger than receipt-freeness, namely coercion resistance, of the protocol by Juels, Catalano & Jakobsson [49]. We removed their manual encoding of swapping and repeated their analysis using our approach. In this case, swapping is done immediately under a parallel composition, so it is particularly easy to encode manually, as explained in Section 3.5.3. (Both our analysis and the one by Backes, Hriţcu & Maffei abstract away the malleability of encryption, because ProVerif does not support it.)
Although the swapping idea also applies to the election scheme Helios [7], we cannot automatically verify it with ProVerif, because ProVerif does not support the equational theory of homomorphic encryption.
Conclusion
We extend the applied pi calculus to include barrier synchronisation and define a compiler to the calculus without barriers. Our compiler enables swapping data between processes at barriers, which simplifies proofs of observational equivalence. We have proven the soundness of our compiler and have implemented it in ProVerif, thereby extending the class of equivalences that can be automatically verified. The applicability of the results is demonstrated by analysing ballot secrecy, receipt-freeness, and coercion resistance in election schemes, as well as privacy in a vehicular ad-hoc network. The idea of swapping data at barriers was introduced in [41], without proving its soundness, and similar ideas have been used by several researchers [10,36], so we believe that it is important to provide a strong theoretical foundation to this technique.
Footnotes
Acknowledgments
We are particularly grateful to Tom Chothia, Véronique Cortier, Andy Gordon, Mark Ryan, and the anonymous CSF and JCS reviewers, for their careful reading of preliminary drafts which led to this paper; their comments provided useful guidance. Birmingham’s Formal Verification and Security Group provided excellent discussion and we are particularly grateful to: Myrto Arapinis, Sergiu Bursuc, Dan Ghica, and Eike Ritter, as well as, Mark and Tom, whom we have already mentioned. Part of the work was conducted while the authors were at École Normale Supérieure, Paris, France and while Smyth was at Inria, Paris, France and the University of Birmingham, Birmingham, UK.
Proofs for Section 3
This appendix proves the results announced in Section 3. Appendix B proves Lemma 2 (validity); Appendix C proves Lemma 4 (soundness of
Proof of Lemma 2 (validity)
Proof of Lemma 4 (soundness of split )
Proof of Proposition 5 (soundness of annotate )
Proof of Lemma 8 (barrier elimination commutes with renaming and substitution)
Proof of Lemma 9 (barrier elimination preserves reduction)
Proof of Proposition 7 (main proposition)
We introduce some rudimentary results (Lemmata 20–22), before proving the main technical result (Proposition 7). An annotated configuration is a configuration in which all processes are annotated.
We define
These results allow us to prove Proposition 7. Suppose the configurations Relation Let us consider the smallest relations Suppose that
Configuration Suppose
Configuration Suppose Relation Relation
Given configurations
We use the notations of the definition of Given configurations Fact 2 handles the swapping of data at barriers, so it is a key step of the proof. We use the notations of the definition of We proceed with the proof of Proposition 7 by showing that Condition 1. We show that, if In this case, In this case, In this case, In this case, In this case In this case, Condition 2. We show that, if We have Case I: Case II: We have Case I: Case II: We have We have Case I: Case II: Case II.1: Case II.2: Case II.3: Case II.3.1: a reduced process is Case II.3.2: the reduced process(es) are We have Case I: Case I.1: Case I.1.1: Case I.1.2: Case I.2: Case II: Case III: We have Case I: a reduced process is Case II: the reduced process(es) are Condition 3. We show that, if We have We have We have Conclusion. Since
Let
