White-box cryptography

From Wikipedia, the free encyclopedia

In cryptography, the white-box model refers to an extreme attack scenario, in which an adversary has full unrestricted access to a cryptographic implementation, most commonly of a block cipher such as the Advanced Encryption Standard (AES). A variety of security goals may be posed (see the section below), the most fundamental being "unbreakability", requiring that any (bounded) attacker should not be able to extract the secret key hardcoded in the implementation, while at the same time the implementation must be fully functional. In contrast, the black-box model only provides an oracle access to the analyzed cryptographic primitive (in the form of encryption and/or decryption queries). There is also a model in-between, the so-called gray-box model, which corresponds to additional information leakage from the implementation, more commonly referred to as side-channel leakage.

White-box cryptography is a practice and study of techniques for designing and attacking white-box implementations. It has many applications, including digital rights management (DRM), pay television, protection of cryptographic keys in the presence of malware,[1] mobile payments and cryptocurrency wallets. Examples of DRM systems employing white-box implementations include CSS, Widevine.

White-box cryptography is closely related to the more general notions of obfuscation, in particular, to Black-box obfuscation, proven to be impossible, and to Indistinguishability obfuscation, constructed recently under well-founded assumptions but so far being infeasible to implement in practice.[2]

As of January 2023, there are no publicly known unbroken white-box designs of standard symmetric encryption schemes. On the other hand, there exist many unbroken white-box implementations of dedicated block ciphers designed specifically to achieve incompressibility (see security goals).

Security goals[edit]

Depending on the application, different security goals may be required from a white-box implementation. Specifically, for symmetric-key algorithms the following are distinguished:[3]

  • Unbreakability is the most fundamental goal requiring that a bounded attacker should not be able to recover the secret key embedded in the white-box implementation. Without this requirement, all other security goals are unreachable since a successful attacker can simply use a reference implementation of the encryption scheme together with the extracted key.
  • One-wayness requires that a white-box implementation of an encryption scheme can not be used by a bounded attacker to decrypt ciphertexts. This requirement essentially turns a symmetric encryption scheme into a public-key encryption scheme, where the white-box implementation plays the role of the public key associated to the embedded secret key. This idea was proposed already in the famous work of Diffie and Hellman in 1976[4] as a potential public-key encryption candidate.
  • Code lifting security is an informal requirement on the context, in which the white-box program is being executed. It demands that an attacker can not extract a functional copy of the program. This goal is particularly relevant in the DRM setting. Code obfuscation techniques are often used to achieve this goal.
A commonly used technique is to compose the white-box implementation with so-called external encodings.[1] These are lightweight secret encodings that modify the function computed by the white-box part of an application. It is required that their effect is canceled in other parts of the application in an obscure way, using code obfuscation techniques. Alternatively, the canceling counterparts can be applied on a remote server.
  • Incompressibility requires that an attacker can not significantly compress a given white-box implementation. This can be seen as a way to achieve code lifting security (see above), since exfiltrating a large program from a constrained device (for example, an embedded or a mobile device) can be time-consuming and may be easy to detect by a firewall.[5]
Examples of incompressible designs include SPACE cipher,[5] SPNbox,[6] WhiteKey and WhiteBlock.[7] These ciphers use large lookup tables that can be pseudorandomly generated from a secret master key. Although this makes the recovery of the master key hard, the lookup tables themselves play the role of an equivalent secret key. Thus, unbreakability is achieved only partially.
  • Traceability (Traitor tracing) requires that each distributed white-box implementation contains a digital watermark allowing identification of the guilty user in case the white-box program is being leaked and distributed publicly.

History[edit]

The white-box model with initial attempts of white-box DES and AES implementations were first proposed by Chow, Eisen, Johnson and van Oorshot in 2003.[1][8] The designs were based on representing the cipher as a network of lookup tables and obfuscating the tables by composing them with small (4- or 8-bit) random encodings. Such protection satisfied a property that each single obfuscated table individually does not contain any information about the secret key. Therefore, a potential attacker has to combine several tables in their analysis.

The first two schemes were broken in 2004 by Billet, Gilbert, and Ech-Chatbi using structural cryptanalysis.[9] The attack was subsequently called "the BGE attack".

The numerous consequent design attempts (2005-2022) [10][11][12][13][14][15] were quickly broken by practical dedicated attacks.[16][17][18][19][20][21][22]

In 2016, Bos, Hubain, Michiels and Teuwen showed that an adaptation of standard side-channel power analysis attacks can be used to efficiently and fully automatically break most existing white-box designs.[23] This result created a new research direction about generic attacks (correlation-based, algebraic, fault injection) and protections against them. [24][25][26][27][28][29]

Competitions[edit]

Three editions of the WhibOx contest were held in 2017, 2019 and 2021 respectively. These competitions invited white-box designers both from academia and industry to submit their implementation in the form of (possibly obfuscated) C code. At the same time, everyone could attempt to attack these programs and recover the embedded secret key. Each of these competitions lasted for about 4-5 months.

  • WhibOx 2017 / CHES 2017 Capture the Flag Challenge targeted the standard AES block cipher. Among 94 submitted implementations, all were broken during the competition, with the strongest one staying unbroken for 28 days.
  • WhibOx 2019 / CHES 2019 Capture the Flag Challenge again targeted the AES block cipher. Among 27 submitted implementations, 3 programs stayed unbroken throughout the competition, but were broken after 51 days since the publication.[30][31]
  • WhibOx 2021 / CHES 2021 Capture the Flag Challenge changed the target to ECDSA, a digital signature scheme based on elliptic curves. Among 97 submitted implementations, all were broken within at most 2 days.[32][33]

See also[edit]

External links[edit]

References[edit]

  1. ^ a b c Chow, Stanley; Eisen, Phil; Johnson, Harold; van Oorschot, Paul C. (2003). A White-Box DES Implementation for DRM Applications. Lecture Notes in Computer Science. Vol. 2696. pp. 1–15. doi:10.1007/978-3-540-44993-5_1. ISBN 978-3-540-40410-1. {{cite book}}: |journal= ignored (help)
  2. ^ Jain, Aayush; Lin, Huijia; Sahai, Amit (15 June 2021). "Indistinguishability obfuscation from well-founded assumptions". Proceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing. pp. 60–73. arXiv:2008.09317. doi:10.1145/3406325.3451093. ISBN 978-1-4503-8053-9.
  3. ^ Delerablée, Cécile; Lepoint, Tancrède; Paillier, Pascal; Rivain, Matthieu (2014). White-Box Security Notions for Symmetric Encryption Schemes. Lecture Notes in Computer Science. Vol. 8282. pp. 247–264. doi:10.1007/978-3-662-43414-7_13. ISBN 978-3-662-43413-0. {{cite book}}: |journal= ignored (help)
  4. ^ Diffie, Whitfield; Hellman, Martin (November 1976). "New directions in cryptography". IEEE Transactions on Information Theory. 22 (6): 644–654. doi:10.1109/TIT.1976.1055638.
  5. ^ a b Bogdanov, Andrey; Isobe, Takanori (12 October 2015). "White-Box Cryptography Revisited: Space-Hard Ciphers". Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. pp. 1058–1069. doi:10.1145/2810103.2813699. ISBN 978-1-4503-3832-5.
  6. ^ Bogdanov, Andrey; Isobe, Takanori; Tischhauser, Elmar (2016). "Towards Practical Whitebox Cryptography: Optimizing Efficiency and Space Hardness". Advances in Cryptology – ASIACRYPT 2016. Lecture Notes in Computer Science. Vol. 10031. pp. 126–158. doi:10.1007/978-3-662-53887-6_5. ISBN 978-3-662-53886-9.
  7. ^ Fouque, Pierre-Alain; Karpman, Pierre; Kirchner, Paul; Minaud, Brice (2016). "Efficient and Provable White-Box Primitives" (PDF). Advances in Cryptology – ASIACRYPT 2016. Lecture Notes in Computer Science. Vol. 10031. pp. 159–188. doi:10.1007/978-3-662-53887-6_6. ISBN 978-3-662-53886-9.
  8. ^ Chow, Stanley; Eisen, Philip; Johnson, Harold; Van Oorschot, Paul C. (2003). White-Box Cryptography and an AES Implementation. Lecture Notes in Computer Science. Vol. 2595. pp. 250–270. doi:10.1007/3-540-36492-7_17. ISBN 978-3-540-00622-0. {{cite book}}: |journal= ignored (help)
  9. ^ Billet, Olivier; Gilbert, Henri; Ech-Chatbi, Charaf (2004). Cryptanalysis of a White Box AES Implementation. Lecture Notes in Computer Science. Vol. 3357. pp. 227–240. doi:10.1007/978-3-540-30564-4_16. ISBN 978-3-540-24327-4. {{cite book}}: |journal= ignored (help)
  10. ^ Link, Hamilton; Neumann, W.D. (2005). "Clarifying obfuscation: Improving the security of white-box DES". International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II. Vol. II. pp. 679-684 Vol. 1. doi:10.1109/ITCC.2005.100. ISBN 0-7695-2315-3.
  11. ^ Bringer, Julien; Chabanne, Hervé; Dottax, Emmanuelle (2006). Perturbing and Protecting a Traceable Block Cipher. Lecture Notes in Computer Science. Vol. 4237. pp. 109–119. doi:10.1007/11909033_10. ISBN 978-3-540-47820-1. {{cite book}}: |journal= ignored (help)
  12. ^ Xiao, Yaying; Lai, Xuejia (2010). "A Secure Implementation of White-Box AES". 2009 2nd International Conference on Computer Science and its Applications. pp. 1–6. doi:10.1109/CSA.2009.5404239. ISBN 978-1-4244-4945-3.
  13. ^ Karroumi, Mohamed (2011). "Protecting White-Box AES with Dual Ciphers". Lecture Notes in Computer Science. Vol. 6829. pp. 278–291. doi:10.1007/978-3-642-24209-0_19. ISBN 978-3-642-24208-3. {{cite book}}: |journal= ignored (help); Missing or empty |title= (help)
  14. ^ Vandersmissen, Joachim; Ranea, Adrián; Preneel, Bart (2022). A White-Box Speck Implementation Using Self-equivalence Encodings. Lecture Notes in Computer Science. Vol. 13269. pp. 771–791. doi:10.1007/978-3-031-09234-3_38. ISBN 978-3-031-09233-6. {{cite book}}: |journal= ignored (help)
  15. ^ Ranea, Adrián; Vandersmissen, Joachim; Preneel, Bart (2022). "Implicit White-Box Implementations: White-Boxing ARX Ciphers". Advances in Cryptology – CRYPTO 2022. Lecture Notes in Computer Science. Vol. 13507. pp. 33–63. doi:10.1007/978-3-031-15802-5_2. ISBN 978-3-031-15801-8.
  16. ^ Goubin, Louis; Masereel, Jean-Michel; Quisquater, Michaël (2007). Cryptanalysis of White Box DES Implementations. Lecture Notes in Computer Science. Vol. 4876. pp. 278–295. doi:10.1007/978-3-540-77360-3_18. ISBN 978-3-540-77359-7. {{cite book}}: |journal= ignored (help)
  17. ^ Wyseur, Brecht; Michiels, Wil; Gorissen, Paul; Preneel, Bart (2007). Cryptanalysis of White-Box DES Implementations with Arbitrary External Encodings. Lecture Notes in Computer Science. Vol. 4876. pp. 264–277. doi:10.1007/978-3-540-77360-3_17. ISBN 978-3-540-77359-7. {{cite book}}: |journal= ignored (help)
  18. ^ Michiels, Wil; Gorissen, Paul; Hollmann, Henk D. L. (2009). Cryptanalysis of a Generic Class of White-Box Implementations. Lecture Notes in Computer Science. Vol. 5381. pp. 414–428. doi:10.1007/978-3-642-04159-4_27. ISBN 978-3-642-04158-7. {{cite book}}: |journal= ignored (help)
  19. ^ De Mulder, Yoni; Wyseur, Brecht; Preneel, Bart (2010). Cryptanalysis of a Perturbated White-Box AES Implementation. Lecture Notes in Computer Science. Vol. 6498. pp. 292–310. doi:10.1007/978-3-642-17401-8_21. ISBN 978-3-642-17400-1. {{cite book}}: |journal= ignored (help)
  20. ^ De Mulder, Yoni; Roelse, Peter; Preneel, Bart (2013). Cryptanalysis of the Xiao – Lai White-Box AES Implementation. Lecture Notes in Computer Science. Vol. 7707. pp. 34–49. doi:10.1007/978-3-642-35999-6_3. ISBN 978-3-642-35998-9. {{cite book}}: |journal= ignored (help)
  21. ^ Lepoint, Tancrède; Rivain, Matthieu; De Mulder, Yoni; Roelse, Peter; Preneel, Bart (2014). Two Attacks on a White-Box AES Implementation. Lecture Notes in Computer Science. Vol. 8282. pp. 265–285. doi:10.1007/978-3-662-43414-7_14. ISBN 978-3-662-43413-0. {{cite book}}: |journal= ignored (help)
  22. ^ Biryukov, Alex; Lambin, Baptiste; Udovenko, Aleksei (9 June 2023). "Cryptanalysis of ARX-based White-box Implementations". IACR Transactions on Cryptographic Hardware and Embedded Systems: 97–135. doi:10.46586/tches.v2023.i3.97-135.
  23. ^ Bos, Joppe W.; Hubain, Charles; Michiels, Wil; Teuwen, Philippe (2016). Differential Computation Analysis: Hiding Your White-Box Designs is Not Enough. Lecture Notes in Computer Science. Vol. 9813. pp. 215–236. doi:10.1007/978-3-662-53140-2_11. ISBN 978-3-662-53139-6. {{cite book}}: |journal= ignored (help)
  24. ^ Rivain, Matthieu; Wang, Junwei (28 February 2019). "Analysis and Improvement of Differential Computation Attacks against Internally-Encoded White-Box Implementations". IACR Transactions on Cryptographic Hardware and Embedded Systems: 225–255. doi:10.13154/tches.v2019.i2.225-255.
  25. ^ Goubin, Louis; Paillier, Pascal; Rivain, Matthieu; Wang, Junwei (April 2020). "How to reveal the secrets of an obscure white-box implementation". Journal of Cryptographic Engineering. 10 (1): 49–66. doi:10.1007/s13389-019-00207-5.
  26. ^ Biryukov, Alex; Udovenko, Aleksei (2018). "Attacks and Countermeasures for White-box Designs" (PDF). Advances in Cryptology – ASIACRYPT 2018. Lecture Notes in Computer Science. Vol. 11273. pp. 373–402. doi:10.1007/978-3-030-03329-3_13. ISBN 978-3-030-03328-6.
  27. ^ Ezepue, B.C. (2017). "Differential fault analysis of white-box cryptographic implementations". Master Thesis.
  28. ^ Seker, Okan; Eisenbarth, Thomas; Liskiewicz, Maciej (2021). "A White-Box Masking Scheme Resisting Computational and Algebraic Attacks". IACR Transactions on Cryptographic Hardware and Embedded Systems: 61–105. doi:10.46586/tches.v2021.i2.61-105.
  29. ^ Biryukov, Alex; Udovenko, Aleksei (2021). "Dummy Shuffling Against Algebraic Attacks in White-Box Implementations" (PDF). Advances in Cryptology – EUROCRYPT 2021. Lecture Notes in Computer Science. Vol. 12697. pp. 219–248. doi:10.1007/978-3-030-77886-6_8. ISBN 978-3-030-77885-9.
  30. ^ "CryptoLUX Research Group. Whitebox cryptography. WhibOx 2019 Competition". www.cryptolux.org. Retrieved 28 February 2024.
  31. ^ Goubin, Louis; Rivain, Matthieu; Wang, Junwei (19 June 2020). "Defeating State-of-the-Art White-Box Countermeasures with Advanced Gray-Box Attacks". IACR Transactions on Cryptographic Hardware and Embedded Systems: 454–482. doi:10.13154/tches.v2020.i3.454-482.
  32. ^ Barbu, Guillaume; Beullens, Ward; Dottax, Emmanuelle; Giraud, Christophe; Houzelot, Agathe; Li, Chaoyun; Mahzoun, Mohammad; Ranea, Adrián; Xie, Jianrui (31 August 2022). "ECDSA White-Box Implementations: Attacks and Designs from CHES 2021 Challenge". IACR Transactions on Cryptographic Hardware and Embedded Systems: 527–552. doi:10.46586/tches.v2022.i4.527-552.
  33. ^ Bauer, Sven; Drexler, Hermann; Gebhardt, Max; Klein, Dominik; Laus, Friederike; Mittmann, Johannes (31 August 2022). "Attacks Against White-Box ECDSA and Discussion of Countermeasures: A Report on the WhibOx Contest 2021". IACR Transactions on Cryptographic Hardware and Embedded Systems: 25–55. doi:10.46586/tches.v2022.i4.25-55.