Skip to main content

Cryptographic Shallots: A Formal Treatment of Repliable Onion Encryption

  • Conference paper
  • First Online:
Book cover Theory of Cryptography (TCC 2021)

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 13044))

Included in the following conference series:

Abstract

Onion routing is a popular, efficient, and scalable method for enabling anonymous communications. To send a message m to Bob via onion routing, Alice picks several intermediaries, wraps m in multiple layers of encryption—a layer per intermediary—and sends the resulting onion to the first intermediary. Each intermediary peels off a layer of encryption and learns the identity of the next entity on the path and what to send along; finally Bob learns that he is the recipient and recovers the message m.

   Despite its wide use in the real world, the foundations of onion routing have not been thoroughly studied. In particular, although two-way communication is needed in most instances, such as anonymous Web browsing or anonymous access to a resource, until now no definitions or provably secure constructions have been given for two-way onion routing. Moreover, the security definitions that existed even for one-way onion routing were found to have significant flaws.

   In this paper, we (1) propose an ideal functionality for a repliable onion encryption scheme; (2) give a game-based definition for repliable onion encryption and show that it is sufficient to realize our ideal functionality; and finally (3), our main result is a construction of repliable onion encryption that satisfies our definitions.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Ando, M., Lysyanskaya, A.: Cryptographic shallots: a formal treatment of repliable onion encryption. Cryptology ePrint Archive, Report 2020/215 (2020). https://eprint.iacr.org/2020/215

  2. Ando, M., Lysyanskaya, A., Upfal, E.: Practical and provably secure onion routing. In: Chatzigiannakis, I., Kaklamanis, C., Marx, D., Sannella, D. (eds.) ICALP 2018, volume 107 of LIPIcs, pp. 144:1–144:14. Schloss Dagstuhl (July 2018)

    Google Scholar 

  3. Ando, M., Lysyanskaya, A., Upfal, E.: On the complexity of anonymous communication through public networks. In: 2nd Conference on Information-Theoretic Cryptography, ITC 2021. Schloss Dagstuhl-Leibniz-Zentrum für Informatik (2021)

    Google Scholar 

  4. Boneh, D., Shoup, V.: A graduate course in applied cryptography. Draft 0.2 (2015)

    Google Scholar 

  5. Camenisch, J., Lysyanskaya, A.: A formal treatment of Onion routing. In: Shoup, V. (ed.) CRYPTO 2005. LNCS, vol. 3621, pp. 169–187. Springer, Heidelberg (2005). https://doi.org/10.1007/11535218_11

    Chapter  Google Scholar 

  6. Canetti, R.: Universally composable security: a new paradigm for cryptographic protocols. In: 42nd FOCS, pp. 136–145. IEEE Computer Society Press (October 2001)

    Google Scholar 

  7. Canetti, R., Cohen, A., Lindell, Y.: A simpler variant of universally composable security for standard multiparty computation. In: Gennaro, R., Robshaw, M. (eds.) CRYPTO 2015. LNCS, vol. 9216, pp. 3–22. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48000-7_1

    Chapter  Google Scholar 

  8. Canetti, R., Feige, U., Goldreich, O., Naor, M.: Adaptively secure multi-party computation. In: 28th ACM STOC, pp. 639–648. ACM Press (May 1996)

    Google Scholar 

  9. Canetti, R., Shahaf, D., Vald, M.: Universally composable authentication and key-exchange with global PKI. In: Cheng, C.-M., Chung, K.-M., Persiano, G., Yang, B.-Y. (eds.) PKC 2016. LNCS, vol. 9615, pp. 265–296. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49387-8_11

    Chapter  MATH  Google Scholar 

  10. Chaum, D.L.: Untraceable electronic mail, return addresses, and digital pseudonyms. Commun. ACM 24(2), 84–90 (1981)

    Article  Google Scholar 

  11. Cottrell, L.: Mixmaster and remailer attacks (1995)

    Google Scholar 

  12. Cramer, R., Shoup, V.: A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack. In: Krawczyk, H. (ed.) CRYPTO 1998. LNCS, vol. 1462, pp. 13–25. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0055717

    Chapter  Google Scholar 

  13. Cramer, R., Shoup, V.: Universal hash proofs and a paradigm for adaptive chosen ciphertext secure public-key encryption. In: Knudsen, L.R. (ed.) EUROCRYPT 2002. LNCS, vol. 2332, pp. 45–64. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46035-7_4

    Chapter  Google Scholar 

  14. Danezis, G., Dingledine, R., Mathewson, N.: Mixminion: design of a type III anonymous remailer protocol. In: 2003 IEEE Symposium on Security and Privacy, pp. 2–15. IEEE Computer Society Press (May 2003)

    Google Scholar 

  15. Danezis, G., Goldberg, I.: Sphinx: a compact and provably secure mix format. In: 2009 IEEE Symposium on Security and Privacy, pp. 269–282. IEEE Computer Society Press (May 2009)

    Google Scholar 

  16. Danezis, G., Laurie, B.: Minx: a simple and efficient anonymous packet format. In: Proceedings of the 2004 ACM Workshop on Privacy in the Electronic Society, pp. 59–65 (2004)

    Google Scholar 

  17. Dingledine, R., Mathewson, N., Syverson, P.F.: Tor: the second-generation onion router. In: Proceedings of the 13th USENIX Security Symposium, San Diego, CA, USA, 9–13 August 2004, pp. 303–320 (2004)

    Google Scholar 

  18. Gulcu, C., Tsudik, G.: Mixing e-mail with Babel. In: Proceedings of Internet Society Symposium on Network and Distributed Systems Security, pp. 2–16. IEEE (1996)

    Google Scholar 

  19. Johnson, A., Wacek, C., Jansen, R., Sherr, M., Syverson, P.F.: Users get routed: traffic correlation on tor by realistic adversaries. In: Sadeghi, A.-R., Gligor, V.D., Yung, M. (eds.) ACM CCS 2013, pp. 337–348. ACM Press (November 2013)

    Google Scholar 

  20. Katz, J., Lindell, Y.: Introduction to Modern Cryptography. Chapman and Hall/CRC (2014)

    Google Scholar 

  21. Kuhn, C., Beck, M., Strufe, T.: Breaking and (partially) fixing provably secure onion routing. In: 2020 IEEE Symposium on Security and Privacy, pp. 168–185. IEEE Computer Society Press (May 2020)

    Google Scholar 

  22. Möller, U., Cottrell, L.: Mixmaster protocol–v2. unfinished draft (January 2000)

    Google Scholar 

  23. Parekh, S.: Prospects for remailers. First Monday 1(2) (1996)

    Google Scholar 

  24. Sun, Y., Edmundson, A., Feamster, N., Chiang, M., Mittal, P.: Counter-RAPTOR: safeguarding tor against active routing attacks. In: 2017 IEEE Symposium on Security and Privacy, pp. 977–992. IEEE Computer Society Press (May 2017)

    Google Scholar 

  25. Wails, R., Sun, Y., Johnson, A., Chiang, M., Mittal, P.: Tempest: temporal dynamics in anonymity systems. PoPETs 2018(3), 22–42 (2018)

    Google Scholar 

Download references

Acknowledgements

We thank the reviewers of this paper for their helpful comments. This work was funded in part by Facebook faculty research awards.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Megumi Ando .

Editor information

Editors and Affiliations

A Security Game for Variants (b) and (c)

A Security Game for Variants (b) and (c)

Variant (b). Below, we provide a description of steps 4 and 5 of the repliable-onion security game, \(\mathsf {ROSecurityGame}\), in Sect. 4 for case (b).

  1. 4.

    \(\mathcal {A}\) chooses a label \(\ell \in \mathcal {L}(1^\lambda )\) and a message \(m \in \mathcal {M}(1^\lambda )\). \(\mathcal {A}\) also chooses a forward path \(P^{\rightarrow }= (P_1, \dots , P_d)\) and a return path \(P^{\leftarrow }= (P_{d+1}, \dots , P_s)\) such that (i) if \(P^{\leftarrow }\) is non-empty, then it ends with \(S\), (ii) \(I\) appears in the routing path, and (iii) the first time it appears in the path is at the recipient \(P_d\). \(\mathcal {A}\) sends to \(\mathcal {C}\) the parameters for the challenge onion: \(\ell \), m, \(P^{\rightarrow }\), the public keys \(\mathsf {pk}(P^{\rightarrow })\) of the parties in \(P^{\rightarrow }\), \(P^{\leftarrow }\), and the public keys \(\mathsf {pk}(P^{\leftarrow })\) of the parties in \(P^{\leftarrow }\).

  2. 5.

    \(\mathcal {C}\) samples a bit .    If \(b = 0\), \(\mathcal {C}\) runs \(\mathsf {FormOnion}\) on the parameters specified by \(\mathcal {A}\), i.e., \( ((O_1^0, \dots , O_d^0), H^\leftarrow , \kappa ) \leftarrow \mathsf {FormOnion}(\ell , m, P^{\rightarrow }, \mathsf {pk}(P^{\rightarrow }), P^{\leftarrow }, \mathsf {pk}(P^{\leftarrow })) . \) In this case, the oracles—\(\mathcal {O}.\mathsf {PO}_{\mathsf {I}}(\cdot )\), \(\mathcal {O}.\mathsf {FR}_{\mathsf {I}}(\cdot , \cdot )\), \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}(\cdot )\), and \(\mathcal {O}.\mathsf {FR}_{\mathsf {S}}(\cdot , \cdot )\)—remain unmodified.     Otherwise, if \(b = 1\), \(\mathcal {C}\) performs the “switch” at honest recipient \(P_d\). \(\mathcal {C}\) runs \(\mathsf {FormOnion}\) on input a random label , a random message , the forward path \(P^{\rightarrow }\), and the empty return path “()”, i.e., \( ((O_1^1, \dots , O_d^1), (), \kappa ) \leftarrow \mathsf {FormOnion}(x, y, P^{\rightarrow }, \mathsf {pk}(P^{\rightarrow }), (), ()) . \)     We modify the oracles as follows. \(\mathcal {O}.\mathsf {FR}_{\mathsf {I}}\) does the following to “form a reply” using message \(m'\) and onion \(O=O_d^1\): \(\mathcal {O}.\mathsf {FR}_{\mathsf {I}}\) runs \(\mathsf {FormOnion}\) on a random label \(x'\), a random message \(y'\), the return path \(P^{\leftarrow }\) as the forward path, and the empty return path “()”, i.e., \( ((O_{j+1}^{m'}, \dots , O_s^{m'}), (), \kappa ^{m'}) \leftarrow \mathsf {FormOnion}(x', y', P^{\leftarrow }, \mathsf {pk}(P^{\leftarrow }), (), ()), \) stores the pair \((O_s^{m'}, m')\) (such that the pair is accessible by \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}\)), and returns \((O_{j+1}^{m'}, P_{j+1})\). \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}\) does the following to “process” an onion O:

    1. i.

      If \(O = O'\) for some stored pair \((O', m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) = (\mathsf {R}, m')\), then return \((\mathsf {S}, (\ell , m'))\).

    2. ii.

      If \(O = O'\) for some stored pair \((O', m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) \not = (\mathsf {R}, m')\), then fail.

    3. iii.

      If \(O \not = O'\) for any stored pair \((O', m')\) but \(O = (H', C)\) for some stored pair \(((H', C'), m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) = (\mathsf {R}, \bot )\), then return \((\mathsf {S}, \bot )\).

    4. iv.

      If \(O \not = O'\) for any stored pair \((O', m')\) but \(O = (H', C)\) for some stored pair \(((H', C'), m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) \not = (\mathsf {R}, \bot )\), then fail.

    All other queries are processed as before.

Variant (c). Below, we provide a description of steps 4 and 5 of the repliable-onion security game, \(\mathsf {ROSecurityGame}\), in Sect. 4 for case (c).

  1. 4.

    \(\mathcal {A}\) chooses a label \(\ell \in \mathcal {L}(1^\lambda )\) and a message \(m \in \mathcal {M}(1^\lambda )\). \(\mathcal {A}\) also chooses a forward path \(P^{\rightarrow }= (P_1, \dots , P_d)\) and a return path \(P^{\leftarrow }= (P_{d+1}, \dots , P_s)\) such that (i) if \(P^{\leftarrow }\) is non-empty, then it ends with \(S\), (ii) \(I\) doesn’t appear on the \(P^{\rightarrow }\), and (iii) \(I\) appears somewhere on \(P^{\leftarrow }\). \(\mathcal {A}\) sends to \(\mathcal {C}\) the parameters for the challenge onion: \(\ell \), m, \(P^{\rightarrow }\), the public keys \(\mathsf {pk}(P^{\rightarrow })\) of the parties in \(P^{\rightarrow }\), \(P^{\leftarrow }\), and the public keys \(\mathsf {pk}(P^{\leftarrow })\) of the parties in \(P^{\leftarrow }\).

  2. 5.

    \(\mathcal {C}\) samples a bit .    If \(b = 0\), \(\mathcal {C}\) runs \(\mathsf {FormOnion}\) on the parameters specified by \(\mathcal {A}\), i.e., \( ((O_1^0, \dots , O_d^0), H^\leftarrow , \kappa ) \leftarrow \mathsf {FormOnion}(\ell , m, P^{\rightarrow }, \mathsf {pk}(P^{\rightarrow }), P^{\leftarrow }, \mathsf {pk}(P^{\leftarrow })) . \) In this case, the oracles—\(\mathcal {O}.\mathsf {PO}_{\mathsf {I}}(\cdot )\), \(\mathcal {O}.\mathsf {FR}_{\mathsf {I}}(\cdot , \cdot )\), \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}(\cdot )\), and \(\mathcal {O}.\mathsf {FR}_{\mathsf {S}}(\cdot , \cdot )\)—remain unmodified.     Otherwise, if \(b = 1\), \(\mathcal {C}\) performs the “switch” at honest party \(P_j\) on the return path \(P^{\leftarrow }\), where \(P_j\) is the first appearance of \(I\) on the routing path. \(\mathcal {C}\) runs \(\mathsf {FormOnion}\) on input a random label , the message m (that had been chosen by \(\mathcal {A}\) in step 4), the forward path \(P^{\rightarrow }\), and the “truncated” return path \(p^\leftarrow = (P_{d+1}, \dots , P_j)\), i.e., \( (O^\rightarrow , (H_{d+1}^1, \dots , H_j^1), \kappa ) \leftarrow \mathsf {FormOnion}(x, m, P^{\rightarrow }, \mathsf {pk}(P^{\rightarrow }), p^\leftarrow , \mathsf {pk}(p^\leftarrow )) . \)     We modify the oracles as follows. \(\mathcal {O}.\mathsf {PO}_{\mathsf {I}}\) does the following to “process” an onion O:

    1. i.

      If \(O = (H_j^1, C)\) for some content C and \(\mathsf {ProcOnion}(O, P_j, \mathsf {sk}(P_j)) = (\mathsf {R}, m')\) for some message \(m'\) (possibly equal to “\(\bot \)”), then runs \(\mathsf {FormOnion}\) on a random label \(x'\), a random message \(y'\), the remainder the return path \(q^\leftarrow = (P_{j+1}, \dots , P_s)\) as the forward path, and the empty return path “()”, i.e., \( ((O_{j+1}^{m'}, \dots , O_s^{m'}), (), \kappa ^{m'}) \leftarrow \mathsf {FormOnion}(x', y', q^\leftarrow , \mathsf {pk}(q^\leftarrow ), (), ()), \) stores the pair \((O_s^{m'}, m')\) (such that the pair is accessible by \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}\)), and returns \((O_{j+1}^{m'}, P_{j+1})\).

    2. ii.

      If \(O = (H_j^1, C)\) for some content C and \(\mathsf {ProcOnion}(O, P_j, \mathsf {sk}(P_j)) \not = (\mathsf {R}, m')\) for some message \(m'\), then fails.

    \(\mathcal {O}.\mathsf {PO}_{\mathsf {S}}\) does the following to “process” an onion O:

    1. iii.

      If \(O = O'\) for some stored pair \((O', m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) = (\mathsf {R}, m')\), then return \((\mathsf {S}, (\ell , m'))\).

    2. iv.

      If \(O = O'\) for some stored pair \((O', m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) \not = (\mathsf {R}, m')\), then fail.

    3. v.

      If \(O \not = O'\) for any stored pair \((O', m')\) but \(O = (H', C)\) for some stored pair \(((H', C'), m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) = (\mathsf {R}, \bot )\), then return \((\mathsf {S}, \bot )\).

    4. vi.

      If \(O \not = O'\) for any stored pair \((O', m')\) but \(O = (H', C)\) for some stored pair \(((H', C'), m')\) and \(\mathsf {ProcOnion}(O, P_s, \mathsf {sk}(P_s)) \not = (\mathsf {R}, \bot )\), then fail.

    All other queries are processed as before.

Rights and permissions

Reprints and permissions

Copyright information

© 2021 International Association for Cryptologic Research

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Ando, M., Lysyanskaya, A. (2021). Cryptographic Shallots: A Formal Treatment of Repliable Onion Encryption. In: Nissim, K., Waters, B. (eds) Theory of Cryptography. TCC 2021. Lecture Notes in Computer Science(), vol 13044. Springer, Cham. https://doi.org/10.1007/978-3-030-90456-2_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-90456-2_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-90455-5

  • Online ISBN: 978-3-030-90456-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics