Paper 2019/1146

Implementing Grover oracles for quantum key search on AES and LowMC

Samuel Jaques, Michael Naehrig, Martin Roetteler, and Fernando Virdia


Grover's search algorithm gives a quantum attack against block ciphers by searching for a key that matches a small number of plaintext-ciphertext pairs. This attack uses $O(\sqrt{N})$ calls to the cipher to search a key space of size $N$. Previous work in the specific case of AES derived the full gate cost by analyzing quantum circuits for the cipher, but focused on minimizing the number of qubits. In contrast, we study the cost of quantum key search attacks under a depth restriction and introduce techniques that reduce the oracle depth, even if it requires more qubits. As cases in point, we design quantum circuits for the block ciphers AES and LowMC. Our circuits give a lower overall attack cost in both the gate count and depth-times-width cost models. In NIST's post-quantum cryptography standardization process, security categories are defined based on the concrete cost of quantum key search against AES. We present new, lower cost estimates for each category, so our work has immediate implications for the security assessment of post-quantum cryptography. As part of this work, we release Q# implementations of the full Grover oracle for AES-128, -192, -256 and for the three LowMC instantiations used in \picnic, including unit tests and code to reproduce our quantum resource estimates. To the best of our knowledge, these are the first two such full implementations and automatic resource estimations.

Note: Added note on resource estimator bug.

Available format(s)
Secret-key cryptography
Publication info
A minor revision of an IACR publication in Eurocrypt 2020
Quantum cryptanalysisGrover's algorithmAESLowMCpost-quantum cryptographyQ# implementation
Contact author(s)
fernando virdia 2016 @ rhul ac uk
2020-09-29: last of 3 revisions
2019-10-03: received
See all versions
Short URL
Creative Commons Attribution


      author = {Samuel Jaques and Michael Naehrig and Martin Roetteler and Fernando Virdia},
      title = {Implementing Grover oracles for quantum key search on AES and LowMC},
      howpublished = {Cryptology ePrint Archive, Paper 2019/1146},
      year = {2019},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.