Cold Boot Attacks on LUOV
Abstract
:1. Introduction
2. Background
2.1. Cold Boot Attacks
2.2. Cold Boot Attack Model
2.3. Previous Work
2.3.1. RSA Setting
2.3.2. Discrete Logarithm Setting
2.3.3. Symmetric Key Setting
2.3.4. Post-Quantum Setting
2.3.5. General Approach to Key Recovery
3. Multivariable Polynomial Signature Schemes
3.1. UOV Signature Schemes
- Choose all the coefficients of each oil–vinegar polynomial , for , at random from to construct the central map .
- Choose an invertible matrix at random to represent the linear map .
- Compute
- Output , where is the public key, while is the private key.
- Compute .
- Compute a preimage of y under the central map .
- Compute the signature by and return it.
- If , return accept. Otherwise, return reject.
3.2. LUOV Scheme
3.2.1. The Reference Implementation
Algorithm 1 Key Generation Algorithm for LUOV. |
functionKeyGen( ) // generate a random secret key (32 byte array). ; // generate a 32 byte array (the private sponge) from private_seed. // generate a 32 byte array (the public seed) from private_sponge. //generate the matrix T from the output of a pseudo-random generator on input private_sponge. //generate a 32 byte array (the public sponge) from public_seed. //generate the matrices from public_sponge. //calculate , the part of the public map that cannot be generated from the public seed. //return the public key and the secret key private_seed. return and ; end function |
- is the constant part of the public map and stored in a byte array of length .
- is the the linear part of and stored in a byte array of length
- is the first columns of the Macaulay matrix of the quadratic part of in the lexicographic ordering and stored in a byte array of length .
3.2.2. The Libpqcrypto Implementation
4. Key Recovery
4.1. Assumptions
4.2. Key Recovery Algorithm
- For each chunk , with , we use Equation (1) to compute a log-likelihood score for each candidate for the chunk . Hence, lists containing up to chunk candidates, , may be produced. In our case, the candidates are the possible values, hence each list is of size 256.
- For each block , the lists are passed as inputs to an instance of an optimal key enumeration algorithm (denoted as OKEA), in order to create a list containing the candidates having the highest scores for the block , . Regarding OKEA used in this phase, it is introduced in [24] and enumerates complete candidates c in a decreasing order based on their scores. Expressed in a different way, it first generates the complete candidate that has the highest score, then the one having the second highest score and so on. Therefore, it allows us to find the top candidates with the highest scores in decreasing order, where . In our setting, is chosen to be the same value for each block and may take a value in the set .
- The lists are passed as inputs to an instance of a key enumeration algorithm, which considers each list as a set of candidates for the block . This instance will generate candidates with a high score for the encoding of the key. Each candidate generated by the enumeration algorithm is presented as input to a verification function V to determine whether such complete candidate may be regarded as valid or not. As a verification function, we adapt the LUOV key generation algorithm, as shown in Algorithm 2. Note that is a byte array that represents a full key candidate generated by the Phase II key enumeration algorithm, while is a byte array that represents the public key (without noise). Additionally, note that this test is expected to run very quickly, since the condition of the first if is very likely to be true only when the enumeration has found the real private seed, since is a collision resistant cryptographic hash function. In other words, only the first two instructions (evaluations of ) plus a few instructions of the comparison will likely be executed for almost all complete candidates generated by the key enumeration algorithm.
Algorithm 2 Verification Function. |
functionTest() // generate a private sponge candidate from s. //compute a public seed candidate from private_sp. ifthen // check whether public_s and public_seed are equal. //generate the matrix candidate T from private_sp. //generate public_sp from public_s. //generate the matrix candidates from public_sp. //compute the matrix from and T. if then// verify whether and are equal. return true; end if end if return false; end function |
Algorithm 3 Key Recovery Algorithm. |
functionKeyRecovery(, , , , ) //Phase I fordo fordo ; ;// use Equation (1) to compute an score. end for //sort list in decreasing order based on the score component. end for for do for do ; // L is an auxiliary list used to store lists. end for ; for do //returns the next highest-scoring key candidate for block j and adds it to . ; end for ; // is an auxiliary list used to store lists . end for //Phase II t); ; // a reference to the function Test, i.e., Algorithm 2, is passed as a parameter. end function |
5. Experimental Evaluation
Success Rate and Performance of Our Key Recovery Algorithm
6. Conclusions
Funding
Conflicts of Interest
References
- Beullen, W.; Preneel, B.; Szepieniec, A.; Tjhai, C.; Vercauteren, F. LUOV: Signature Scheme Proposal for NIST PQC Project (Round 2 Version); Submission to NIST’s Post-Quantum Cryptography Standardization Project; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2018. Available online: https://www.esat.kuleuven.be/cosic/pqcrypto/luov/ (accessed on 2 February 2020).
- Beullens, W.; Preneel, B. Field Lifting for Smaller UOV Public Keys. In Progress in Cryptology– INDOCRYPT 2017; Patra, A., Smart, N.P., Eds.; Springer International Publishing: Cham, Switzerland, 2017; pp. 227–246. [Google Scholar] [CrossRef] [Green Version]
- Kipnis, A.; Patarin, J.; Goubin, L. Unbalanced Oil and Vinegar Signature Schemes. In Advances in Cryptology—EUROCRYPT ’99; Stern, J., Ed.; Springer: Berlin/Heidelberg, Germany, 1999; pp. 206–222. [Google Scholar] [CrossRef] [Green Version]
- Krämer, J.; Loiero, M. Fault Attacks on UOV and Rainbow. In Constructive Side-Channel Analysis and Secure Design; Polian, I., Stöttinger, M., Eds.; Springer International Publishing: Cham, Switzerland, 2019; pp. 193–214. [Google Scholar] [CrossRef]
- Villanueva-Polanco, R. Cold Boot Attacks on Bliss. In Progress in Cryptology—LATINCRYPT 2019; Schwabe, P., Thériault, N., Eds.; Springer International Publishing: Cham, Switzerland, 2019; pp. 40–61. [Google Scholar] [CrossRef]
- Halderman, J.A.; Schoen, S.D.; Heninger, N.; Clarkson, W.; Paul, W.; Calandrino, J.A.; Feldman, A.J.; Appelbaum, J.; Felten, E.W. Lest We Remember: Cold Boot Attacks on Encryption Keys. In Proceedings of the 17th USENIX Security Symposium, San Jose, CA, USA, 28 July 28–1 August 2008; pp. 45–60. [Google Scholar]
- Heninger, N.; Shacham, H. Reconstructing RSA Private Keys from Random Key Bits. In Advances in Cryptology—CRYPTO 2009; Springer: Berlin/Heidelberg, Germany, 2009; pp. 1–17. [Google Scholar] [CrossRef] [Green Version]
- Henecka, W.; May, A.; Meurer, A. Correcting Errors in RSA Private Keys. In Advances in Cryptology—CRYPTO 2010; Rabin, T., Ed.; Springer: Berlin/Heidelberg, Germany, 2010; pp. 351–369. [Google Scholar] [CrossRef] [Green Version]
- Paterson, K.G.; Polychroniadou, A.; Sibborn, D.L. A Coding-Theoretic Approach to Recovering Noisy RSA Keys. In Advances in Cryptology- ASIACRYPT 2012; Springer: Berlin/Heidelberg, Germany, 2012; pp. 386–403. [Google Scholar] [CrossRef] [Green Version]
- Lee, H.T.; Kim, H.; Baek, Y.J.; Cheon, J.H. Correcting Errors in Private Keys Obtained from Cold Boot Attacks. In Information Security and Cryptology—ICISC 2011; Springer: Berlin/Heidelberg, Germany, 2012; pp. 74–87. [Google Scholar] [CrossRef]
- Poettering, B.; Sibborn, D.L. Cold Boot Attacks in the Discrete Logarithm Setting. In Topics in Cryptology- CT-RSA 2015; Springer: Berlin/Heidelberg, Germany, 2015; pp. 449–465. [Google Scholar] [CrossRef] [Green Version]
- Albrecht, M.; Cid, C. Cold Boot Key Recovery by Solving Polynomial Systems with Noise. In Applied Cryptography and Network Security; Springer: Berlin/Heidelberg, Germany, 2011; pp. 57–72. [Google Scholar] [CrossRef] [Green Version]
- Kamal, A.A.; Youssef, A.M. Applications of SAT Solvers to AES Key Recovery from Decayed Key Schedule Images. In Proceedings of the 2010 Fourth International Conference on Emerging Security Information, Systems and Technologies, Venice, Italy, 18–25 July 2010; IEEE Computer Society: Washington, DC, USA, 2010; pp. 216–220. [Google Scholar] [CrossRef] [Green Version]
- Huang, Z.; Lin, D. A New Method for Solving Polynomial Systems with Noise over 𝔽2 and Its Applications in Cold Boot Key Recovery. In Selected Areas in Cryptography; Knudsen, L.R., Wu, H., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 16–33. [Google Scholar] [CrossRef]
- Paterson, K.G.; Villanueva-Polanco, R. Cold Boot Attacks on NTRU. In Progress in Cryptology– INDOCRYPT 2017; Patra, A., Smart, N.P., Eds.; Springer International Publishing: Cham, Switzerland, 2017; pp. 107–125. [Google Scholar] [CrossRef] [Green Version]
- Albrecht, M.R.; Deo, A.; Paterson, K.G. Cold Boot Attacks on Ring and Module LWE Keys Under the NTT. IACR Trans. Cryptogr. Hardw. Embed. Syst. 2018, 2018, 173–213. [Google Scholar] [CrossRef]
- Villanueva-Polanco, R. A Comprehensive Study of the Key Enumeration Problem. Entropy 2019, 21, 972. [Google Scholar] [CrossRef] [Green Version]
- Bogdanov, A.; Kizhvatov, I.; Manzoor, K.; Tischhauser, E.; Witteman, M. Fast and Memory-Efficient Key Recovery in Side-Channel Attacks. In Selected Areas in Cryptography–SAC 2015; Springer: Cham, Switzerland, 2016; pp. 310–327. [Google Scholar] [CrossRef] [Green Version]
- David, L.; Wool, A. A Bounded-Space Near-Optimal Key Enumeration Algorithm for Multi-subkey Side-Channel Attacks. In Topics in Cryptology–CT-RSA 2017; Springer: Cham, Switzerland, 2017; pp. 311–327. [Google Scholar] [CrossRef]
- Longo, J.; Martin, D.P.; Mather, L.; Oswald, E.; Sach, B.; Stam, M. How Low Can You Go? Using Side-Channel Data to Enhance Brute-Force Key Recovery. Cryptology ePrint Archive, Report 2016/609. 2016. Available online: http://eprint.iacr.org/2016/609 (accessed on 15 January 2020).
- Martin, D.P.; Mather, L.; Oswald, E.; Stam, M. Characterisation and Estimation of the Key Rank Distribution in the Context of Side Channel Evaluations. In Advances in Cryptology–ASIACRYPT 2016; Springer: Berlin/Heidelberg, Germany, 2016; pp. 548–572. [Google Scholar] [CrossRef] [Green Version]
- Martin, D.P.; O’Connell, J.F.; Oswald, E.; Stam, M. Counting Keys in Parallel After a Side Channel Attack. In Advances in Cryptology—ASIACRYPT 2015; Iwata, T., Cheon, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2015; pp. 313–337. [Google Scholar] [CrossRef] [Green Version]
- Poussier, R.; Standaert, F.X.; Grosso, V. Simple Key Enumeration (and Rank Estimation) Using Histograms: An Integrated Approach. In Advances in Cryptology–ASIACRYPT 2015; Springer: Berlin/Heidelberg, Germany, 2016; pp. 61–81. [Google Scholar] [CrossRef]
- Veyrat-Charvillon, N.; Gérard, B.; Renauld, M.; Standaert, F.X. An Optimal Key Enumeration Algorithm and Its Application to Side-Channel Attacks. In Selected Areas in Cryptography–SAC 2012; Knudsen, L.R., Wu, H., Eds.; Springer: Berlin/Heidelberg, Germany, 2012; pp. 390–406. [Google Scholar] [CrossRef] [Green Version]
- Veyrat-Charvillon, N.; Gérard, B.; Standaert, F.X. Security Evaluations beyond Computing Power. In Advances in Cryptology–EUROCRYPT 2013; Springer: Berlin/Heidelberg, Germany, 2013; pp. 126–141. [Google Scholar] [CrossRef] [Green Version]
- Bernstein, D.J.; Lange, T.; van Vredendaal, C. Tighter, Faster, Simpler Side-Channel Security Evaluations Beyond Computing Power. Cryptology ePrint Archive, Report 2015/221. 2015. Available online: http://eprint.iacr.org/2015/221 (accessed on 20 November 2019).
- Ye, X.; Eisenbarth, T.; Martin, W. Bounded, yet Sufficient? How to Determine Whether Limited Side Channel Information Enables Key Recovery. In Smart Card Research and Advanced Applications; Joye, M., Moradi, A., Eds.; Springer International Publishing: Cham, Switzerland, 2015; pp. 215–232. [Google Scholar]
- Choudary, M.O.; Popescu, P.G. Back to Massey: Impressively Fast, Scalable and Tight Security Evaluation Tools. In Cryptographic Hardware and Embedded Systems–CHES 2017; Springer: Cham, Switzerland, 2017; pp. 367–386. [Google Scholar] [CrossRef]
- Choudary, M.O.; Poussier, R.; Standaert, F.X. Score-Based vs. Probability-Based Enumeration—A Cautionary Note. In Progress in Cryptology–INDOCRYPT 2016; Springer: Cham, Switzerland, 2016; pp. 137–152. [Google Scholar] [CrossRef]
- Glowacz, C.; Grosso, V.; Poussier, R.; Schüth, J.; Standaert, F.X. Simpler and More Efficient Rank Estimation for Side-Channel Security Assessment. In Fast Software Encryption; Springer: Berlin/Heidelberg, Germany, 2015; pp. 117–129. [Google Scholar] [CrossRef] [Green Version]
- Poussier, R.; Grosso, V.; Standaert, F.X. Comparing Approaches to Rank Estimation for Side-Channel Security Evaluations. In Smart Card Research and Advanced Applications; Homma, N., Medwed, M., Eds.; Springer International Publishing: Cham, Switzerland, 2016; pp. 125–142. [Google Scholar] [CrossRef]
- Grosso, V. Scalable Key Rank Estimation (and Key Enumeration) Algorithm for Large Keys. In Smart Card Research and Advanced Applications; Bilgin, B., Fischer, J.B., Eds.; Springer International Publishing: Cham, Switzerland, 2019; pp. 80–94. [Google Scholar] [CrossRef]
- The Libpqcrypto Implementation. Available online: https://libpqcrypto.org/index.html (accessed on 20 February 2020).
Parameter Name | r | o | v | Length of | Lengths of T,C,L, | Lengths of , | ||
---|---|---|---|---|---|---|---|---|
LUOV-7-57-197 | 7 | 57 | 197 | 32B | (1576B,2032B,8B,245856B) | (32B,11778B) | SHAKE128 | SHAKE128 ChaCha8 |
LUOV-7-83-283 | 7 | 83 | 283 | 32B | (3113B,4026B,11B,700425B) | (32B,36168B) | SHAKE256 | SHAKE128 ChaCha8 |
LUOV-7-110-374 | 7 | 110 | 374 | 32B | (5236B,6776B,14B,1557710B) | (32B,83944B) | SHAKE256 | SHAKE128 ChaCha8 |
LUOV-47-42-182 | 47 | 42 | 182 | 32B | (1092B,1344B,6B,145782B) | (32B,4741B) | SHAKE128 | SHAKE128 ChaCha8 |
LUOV-61-60-261 | 61 | 60 | 261 | 32B | (2088B,2568B,8B,398808B) | (32B,13725B) | SHAKE256 | SHAKE128 ChaCha8 |
LUOV-79-76-341 | 79 | 76 | 341 | 32B | (3410B,4170B,10B,842270B) | (32B,27797B) | SHAKE256 | SHAKE128 ChaCha8 |
© 2020 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Villanueva-Polanco, R. Cold Boot Attacks on LUOV. Appl. Sci. 2020, 10, 4106. https://doi.org/10.3390/app10124106
Villanueva-Polanco R. Cold Boot Attacks on LUOV. Applied Sciences. 2020; 10(12):4106. https://doi.org/10.3390/app10124106
Chicago/Turabian StyleVillanueva-Polanco, Ricardo. 2020. "Cold Boot Attacks on LUOV" Applied Sciences 10, no. 12: 4106. https://doi.org/10.3390/app10124106
APA StyleVillanueva-Polanco, R. (2020). Cold Boot Attacks on LUOV. Applied Sciences, 10(12), 4106. https://doi.org/10.3390/app10124106