Abstract
An offline OpenPGP user might want to forward part or all of their email messages to third parties. Given that messages are encrypted, this requires transforming them into ciphertexts decryptable by the intended forwarded parties, while maintaining confidentiality and authentication. It is shown in recent lines of work that this can be achieved by means of proxy re-encryption schemes, however, while encrypted email forwarding is the most mentioned application of proxy re-encryption, it has not been implemented in the OpenPGP context, to the best of our knowledge. In this paper, we adapt the seminal technique introduced by Blaze, Bleumer, and Strauss in EUROCRYPT’98, allowing a Mail Transfer Agent to transform and forward OpenPGP messages without access to decryption keys or plaintexts. We also provide implementation details and a security analysis.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Gopenpgp. https://gopenpgp.org/
Openpgp.js. https://openpgpjs.org/
Aono Y, Boyen X, Phong LT, Wang L (2013) Key-private proxy re-encryption under LWE. In: Proceedings of the 14th international conference on progress in cryptology INDOCRYPT 2013—vol 8250. Springer-Verlag, Berlin, Heidelberg, pp 1–18. https://doi.org/10.1007/978-3-319-03515-4_1
Ateniese G, Benson K, Hohenberger S (2009) Key-private proxy re-encryption. In: Fischlin M (ed) Topics in cryptology—CT-RSA 2009. Springer, Berlin Heidelberg, Berlin, Heidelberg, pp 279–294
Ateniese G, Fu K, Green M, Hohenberger S (2005) Improved proxy re-encryption schemes with applications to secure distributed storage. vol 2005, issue 01
Ateniese G, Fu K, Green M, Hohenberger S (2006) Improved proxy re-encryption schemes with applications to secure distributed storage. ACM Trans Inf Syst Secur 9(1):1–30. https://doi.org/10.1145/1127345.1127346
Bernstein DJ (2006) Curve25519: new diffie-hellman speed records. In: In public key cryptography (PKC), Springer LNCS 3958, p 2006
Blaze M, Bleumer G, Strauss M (1998) Divertible protocols and atomic proxy cryptography. In: Advances in cryptology—EUROCRYPT ’98, international conference on the theory and application of cryptographic techniques, Espoo, Finland, May 31–June 4, Proceeding. Lecture notes in computer science, vol 1403. Springer, pp 1–18. https://doi.org/10.1007/BFb0054122
Canetti R (2006) Security and composition of cryptographic protocols: a tutorial (part i). SIGACT News 37(3):67–92. https://doi.org/10.1145/1165555.1165570
Khurana H, Heo J, Pant M (2006) From proxy encryption primitives to a deployable secure-mailing-list solution. In: Ning P, Qing S, Li N (eds) Inf. Commun. Secur. Springer, Berlin Heidelberg, Berlin, Heidelberg, pp 260–281
Koch W, Carlson B, Tse R, Atkins D, Gillmor D (2020) Openpgp message format draft-ietf-openpgp-rfc4880bis-09. RFC 4880bis, RFC Editor. https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-09
Langley A, Hamburg M, Turner S (2016) Elliptic curves for security. RFCÂ 7748, RFC Editor
Lindell Y (2017) How to simulate it—a tutorial on the simulation proof technique. Springer International Publishing, Cham, pp 277–346. https://doi.org/10.1007/978-3-319-57048-8_6
Acknowledgements
We thank anonymous reviewers for their helpful comments. We also thank Ilya Chesnokov, Eduardo Conde, and Daniel Huigens for extensive discussions, helpful Comments, and important insights intn ECC and OpenPGP. We would also like to thank Ben Caller for his help with proofreading the paper.
Aron Wussler thanks Daniel Kahn Gillmor for introducing him to proxy re-encryption schemes for PGP mailing lists. Also, he wishes to acknowledge the help provided by Prof. Gerhard Dorfer, who provided valuable help with algebra.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
6 Simulation-Based Proof
6 Simulation-Based Proof
Using the simulation techniques from [9, 13], we present a security analysis of the forwarding protocol. This proof addresses the security against semi-honest adversaries, i.e., parties that correctly follow the protocol and sample from the correct distributions, but use all available information to steal secrets. Also, a set of semi-honest adversaries can collude.
The idea of simulation-based proofs is to emulate any set of colluded participants by a random simulator residing in an ideal world where a trusted party exists and the protocol is secure by definition. The rationale behind this proof is that if it was possible to extract secrets from the views of colluded parties, then it would be trivial to distinguish them from the simulator (just select the view that allows extracting secrets). Conversely, if one cannot distinguish between the views, colluded parties cannot extract secrets. Therefore, the objective is to show that the set of elements held by the semi-honest parties (their view of the protocol) are indistinguishable from the elements held by the simulator.
1.1 6.1 Security Definitions
Ideal Functionalities A functionality is a process that maps tuples of inputs to tuples of outputs of a protocol \(\Pi \), one for each party involved. More precisely, for a fixed set \(P = \{P_1, \dots , P_k\}\) of k parties participating in the protocol, functionalities are k-ary functions \(\mathcal F :(\{0,1\}^*)^k\rightarrow (\{0,1\}^*)^k\) mapping inputs to outputs of \(\Pi \). We write \(\mathcal F =(f_1,\dots ,f_k)\) where each \(f_i\) is a k-ary function that outputs a string. In addition, if \(\mathcal F\) computes the desired outcome by means of a trusted party in an ideal world that can communicate over perfectly secure channels with all participants, we say that \(\mathcal F\) is an ideal functionality.
Views Given an execution of a protocol \(\Pi \) on inputs \(\mathcal X=(x_1,\dots , x_k)\), the view of party \(P_i\) consists in all elements accessible to \(P_i\) throughout the protocol:
where \(x_i\) is \(P_i\)’s input, \(r_i\) is the content of its internal random tape used to sample elements, and \(m_j^i\) is the jth message it received. Given a set of colluded parties, their joint view is defined as the tuple consisting in the concatenation of their views. Also, let \(\text{ output}_{P_i}(\mathcal {X})\) be the elements held by party \(P_i\) identified as the output of the protocol (note that the inputs or outputs may be empty for some parties).
Simulators Let \(\Pi \) be a protocol with inputs \(\mathcal {X}=(x_1,\dots ,x_k)\). A simulator is a PPT algorithm that, given an input \(x_i\) corresponding to a party of the protocol, produces a tuple \(\text{ sim}_{i}(x_i)\) similar to the view of this party. A joint simulator takes a set of inputs and produces a tuple similar to the concatenation of the corresponding parties’ views.
Simulation-Based Proof Following [13], our notion of security is based on emulating ideal functionalities defined by the forwarding protocol. This means that, given a protocol \(\Pi \) with inputs \(\mathcal {X}\), an ideal functionality \(\mathcal {F}\) computing the output of \(\Pi (\mathcal {X})\), and a set of semi-honest colluded parties, we construct a simulator that takes the inputs of these parties and produces a random joint view. We then show that these views along with the output of the protocol (i.e., the real world) and the simulator along with the ideal functionality result of these parties (i.e., the ideal world) are computationally indistinguishable. For instance, when simulating party i, we show that
and similarly for joint views of colluded parties, achieving the proof.
1.2 6.2 Forwarding Ideal Functionality
Consider parties Alice, Bob, T (the proxy), and Charlie (the forwarded party). As before, let \(\chi \) be the distribution of \(\mathbb {Z}\) that samples private keys uniformly from a subset of \(\mathbb {Z}\), according to the security requirements of E (for instance, in Curve25519 [7], private keys are random samples of the form \(2^{254}+8m\) for some \(m<2^{252}\)). Assume Alice sends a message \((P_B, c)\) to Bob, and Bob’s public key is \(Q_B=d_BG\).
A basic forwarding ideal functionality could be given by
such that \(d_CP_C = d_BP_B\). This works since Charles receives \(d_C\) at some point in the protocol, and can decrypt c given \(S=d_CP_C\). However, note that this functionality does not take into account multiple forwarded parties, nor the fact that those parties can also submit messages to Bob (as in Sect. 2.3). Recall also that, for each forwarded party \(F_i\in F\), we note by \(k_i:= k_{BF_i}\) the proxy factor held by T and \(d_i:= d_{F_i}\) the secret scalar held by \(F_i\).
Definition 1
Consider parties Alice, Bob, T (the proxy), and \(F=\{F_1,\dots , F_m\}\) (the forwarded parties). Let
be the input of the protocol where
The forwarding functionality is \(\mathcal F = (\mathcal {F}_A, \mathcal {F}_B,\mathcal {F}_T,\mathcal {F}_{F_1},\dots , \mathcal {F}_{F_m})\) where
such that \(d_1P_1 = d_2P_2 = \dots = d_mP_m = d_BP_B\).
Note that for every message \(X_{ij}\) sent as in Sect. 2.3, forwarded parties also receive an encryption \(c_{ij}\) of some message. Without loss of generality, we omit these encryptions from the ideal functionality, since these are trivial to simulate and provide no information to attackers (as they are simply transmitted unchanged throughout the protocol).
More precisely, following Sect. 2.3, forwarded parties pick any message \(\tilde{m}\) and a secret key \(\tilde{d}\leftarrow \chi \), set \(\tilde{S} = \tilde{d} Q_B\) where \(Q_B\) is Bob’s public key, and let \(X_{ij} = \tilde{d} G\), \(c_{ij} = \text{ Enc}_{\tilde{S}}(m)\). Instead, without loss of generality, we let forwarded parties freely choose \(X_{ij}\) as an input to the protocol.
1.3 6.3 Security Against Colluded, Eavesdropper Semi-honest Parties
Simulating the Semi-honest Proxy According to the protocol described in Sect. 2.2, we have the following view of the proxy throughout the protocol:
where each \(k_i\) was provided by Bob (for the sake of notation, \((X_{ij})_{ij}\) consists in all points chosen by forwarded parties, in Definition 1). Indeed, for each i, Bob sampled \(d_i\leftarrow \chi , k_i := d_B/d_i\!\!\mod n\), and sent \(k_i\) to the proxy. Now, consider the simulator that samples \(y \leftarrow \chi \), \(x_i \leftarrow \chi \), and \(z_i\leftarrow \chi \) for \(i=1,\dots ,m\), a tuple of random points \((\tilde{X}_{ij})_{ij}\) and sets
Recall that (i) there is no input or output for T in this protocol, and also (ii) all other parties behave honestly in this case (in particular, \(X_{ij}\) are uniformly random points of the curve). Given these facts, it is straightforward to see that view\(_T(\mathcal X)\) and sim\(_T(\mathcal {X}_T)\) are computationally indistinguishable.
Simulating Forwarded Parties As described in Sect. 2.3, each forwarded party \(F_i\) computes the session secret \(S=d_iP_i\) from the output, and also has a stream of pairs of the form \((X_{ij},k_iX_{ij})\in E^2\) for chosen \(X_{ij}\) (this is the result of sending messages encrypted to Bob and parsing the forwarded ciphertexts).
. Note that, since there are no intermediate values computed by forwarded parties, a simulator that can access the input and output of a forwarded party can simulate it trivially. In this case, we have simply
Naturally, the joint view of colluded forwarded parties is also trivially simulated by the joint simulators.
Simulating Colluded, Eavesdropper Forwarded Parties Additionally, let us assume further that this party eavesdropped the share \(P_B=d_AG\) from the communication between Alice and the proxy, and recall that they also have the public key \(Q_B=d_BG\). Such party has the following view and output:
. Consider the simulator that samples \(x,y\leftarrow \chi \) and sets
The only distinct elements are \(d_AG, d_BG\) and xG, yG. Note that, since \(d_iP_i=d_Ad_BG\), a DH triplet \((d_AG,d_BG,d_Ad_BG)\) can be composed in the view. The simulator, on the other hand, can compose the tuple \((xG, yG, d_Ad_BG)\). However, since \(d_Ad_BG\) is uniformly random, this tuple is indistinguishable from a proper DH triplet (xG, yG, xyG) by the ECDH assumption. It follows that the view and the simulator are computationally indistinguishable. It is straightforward to extend the simulator and address the case where multiple semi-honest forwarded parties collude: The joint view and output will only have more independent ECDL samples of the form \((X, k_iX)\) and parties can compose the same ECDH triplet (also, note that the additional samples \(d_i, P_i\) of the form are also accessible by the simulator, and the same argument holds).
Putting all these cases together, it follows that the protocol securely computes \(\mathcal F\) in the presence of semi-honest, colluded adversaries.
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Vial-Prado, F., Wussler, A. (2022). OpenPGP Email Forwarding via Diverted Elliptic Curve Diffie-Hellman Key Exchanges. In: Giri, D., Raymond Choo, KK., Ponnusamy, S., Meng, W., Akleylek, S., Prasad Maity, S. (eds) Proceedings of the Seventh International Conference on Mathematics and Computing . Advances in Intelligent Systems and Computing, vol 1412. Springer, Singapore. https://doi.org/10.1007/978-981-16-6890-6_12
Download citation
DOI: https://doi.org/10.1007/978-981-16-6890-6_12
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-16-6889-0
Online ISBN: 978-981-16-6890-6
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)