Quantum One-Time Protection of any Randomized Algorithm
Abstract
The meteoric rise in power and popularity of machine learning models dependent on valuable training data has reignited a basic tension between the power of running a program locally and the risk of exposing details of that program to the user. At the same time, fundamental properties of quantum states offer new solutions to data and program security that can require strikingly few quantum resources to exploit, and offer advantages outside of mere computational run time. In this work, we demonstrate such a solution with quantum one-time tokens.
A quantum one-time token is a quantum state that permits a certain program to be evaluated exactly once. One-time security guarantees, roughly, that the token cannot be used to evaluate the program more than once. We propose a scheme for building quantum one-time tokens for any randomized classical program, which include generative AI models. We prove that the scheme satisfies an interesting definition of one-time security as long as outputs of the classical algorithm have high enough min-entropy, in a black box model.
Importantly, the classical program being protected does not need to be implemented coherently on a quantum computer. In fact, the size and complexity of the quantum one-time token is independent of the program being protected, and additional quantum resources serve only to increase the security of the protocol. Due to this flexibility in adjusting the security, we believe that our proposal is parsimonious enough to serve as a promising candidate for a near-term useful demonstration of quantum computing in either the NISQ or early fault tolerant regime.
1 Introduction
Commercializing software presents a central dilemma: How does a proprietor distribute software, without forfeiting ownership? On the one hand, software must be made available to users for them to use it; on the other, once the software is distributed, an unlimited number of unauthorized copies can be made. This problem is more acute in the age of generative AI, where the software can be extremely valuable and potentially reveal private information.
There are two widely-adopted solutions to this problem:
-
1.
The proprietor can distribute an obfuscated version of the software. However, this opens up the possibility of piracy, and the user can always run the software an unlimited number of times.
-
2.
The proprietor can allow queries to the software, instead of distributing the software itself. But this requires communication between the user and the proprietor every time the software is used.
Sometimes a combination of these solutions is employed — for instance, an internet browser might be obfuscated and made public while the search engine itself is kept on servers.
There is an apparent trade-off between usability and exclusivity in these solutions. Distributing obfuscated software makes it highly usable, but it is impossible to impose any limits on the number of times it can be used. Keeping the software on servers and responding to user queries has high exclusivity, but lower usability because the user needs to communicate with the server to perform computations. Furthermore, this solution is only available to proprietors with enough resources to host a reliable server.
This trade-off between usability and exclusivity is inherent in the classical setting, because classical information can always be copied. As soon as software is distributed, the user can query or copy it as many times as they want. Therefore it is natural to look to quantum mechanics for improved solutions. In contrast to classical information, quantum information cannot be cloned. Indeed, unclonable cryptography is able to make use of this principle to improve both of the above solutions.111We note that unclonable cryptography has led to many additional interesting and varied protocols, including quantum money [Wie83], quantum key distribution [BB14], and certified deletion [BI20].
Improving Solution (1) with copy protection.
In copy protection, introduced by [Aar09], a quantum state is created that allows a program to be run an unlimited number of times, but not copied. In a classical oracle model, quantum copy protection is possible for any unlearnable program [ALL+21]. In the standard model, there exist unlearnable programs that cannot be copy protected [AP21]; nonetheless, it is known how to copy protect a small number of particular functionalities in the standard model [CLLZ21, LLQZ22, CG24, AB24].
Quantum copy protection addresses the piracy concern in Solution (1), but it does not apply in the setting where the proprietor wishes to distribute individual queries to the software. This is particularly relevant in the current age of generative AI, where the pay-per-query model is prevalent.
Improving Solution (2) with one-time programs.
For the pay-per-query model, one-time programs are a more suitable solution. A one-time program token is a quantum state that enables a program to be evaluated once. One-time programs therefore remove the need for online communication in Solution (2): The proprietor distributes tokens, and the users consume the tokens offline at their leisure.
This work.
In this work, we propose the first general-purpose tokenized program scheme using quantum information. Prior work was restricted to protecting specific cryptographic functionalities, and in particular did not apply to non-cryptographic programs like generative AI models.
Our method uses a one-time signature scheme and a program obfuscator to compile any randomized algorithm into a one-time token that allows the algorithm to be executed on any input of the user’s choice. We note that the quantum capabilities required for our scheme are completely independent of the program being protected. Therefore, our scheme could plausibly be used to protect a large program using only a small, noisy quantum device — even one that is incapable of demonstrating quantum computational advantage!
Prior and concurrent work on one-time programs.
One-time programs were initially studied in [GKR08], but without quantum computation. The idea of quantum one-time programs was originally suggested in [BGS13], where it was shown that it is impossible to build quantum one-time tokens for deterministic programs without specialized hardware assumptions. This is because a simple rewinding attack would allow a user to make arbitrarily many queries to the algorithm, given any state that allows it to be run once. Later, [BS23] presented a scheme to one-time protect signature functions in the standard model.
In concurrent and independent work, [GLR+24] also present a scheme for the one-time protection of arbitrary randomized algorithms. Their scheme is essentially identical to ours, except that they instantiate the quantum one-time authentication scheme with the particular construction of [CLLZ21]. With respect to security definitions and proofs, their results are generally much more extensive, including stronger (albeit more complex) definitions of one-time security and new impossibility results. However, they take a very different and complementary approach to proving security. It would be interesting to know whether our results (and in particular Lemma 1, which is simple and self-contained) say anything about security in their setting, or whether their results imply our Lemma 1.
Removing quantum communication.
The protocol described below requires quantum communication between the proprietor and the user, because the proprietor needs to send the user the quantum one-time program token. However, if the one-time signatures are instantiated with those from [CLLZ21], then the results of [Shm22, CHV23] allow us to replace this quantum communication with a remote state preparation protocol that uses only classical communication. That is, there exists a polynomial-time interactive protocol between a quantum user and a classical proprietor that results in the user holding a quantum one-time token which they can only use once. Unfortunately, this protocol is highly complex and not likely to be feasible on a near-term quantum device.222It also requires the assumptions that LWE is sub-exponentially hard for quantum computers and that indistinguishability obfuscation for classical circuits exists with sub-exponential security against quantum polynomial-time adversaries.
2 The construction
In this section, we present our scheme for one-time protecting an arbitrary randomized algorithm. Any randomized algorithm can be described by a function , which takes the input together with a random string, and outputs the result of the computation.
Our scheme relies on three cryptographic primitives:
-
•
, a quantum one-time authentication scheme. For instance, any quantum one-time signature scheme will suffice — although it is not required to be publicly verifiable. We define a quantum one-time authentication scheme in Definition 1.
-
•
, a classical program obfuscator. This can be heuristically instantiated with any classical obfuscation algorithm (for instance, a candidate indistinguishability obfuscator), but we model it as black-box obfuscation for our security proof.
-
•
, a hash function modeled as a random oracle. This can be replaced with a pseudorandom function without affecting the security proof, because we model as black-box obfuscation.
The software proprietor will generate a program token which can be used to evaluate one time. A program token consists of two parts:
-
•
, an unclonable quantum state that does not depend on .
-
•
, an obfuscated classical circuit that depends on . This part is completely classical.
We emphasize that does not depend on the program being obfuscated. In particular, this means that the quantum capabilities required of the user and the software proprietor do not depend on the complexity of the computation being one-time protected. Highly-complex computations like evaluation of a generative AI model can be protected, even if the quantum capabilities of both the user and software proprietor are limited. Furthermore, if we use the one-time signature scheme from [CLLZ21] for one-time authentication, then the only quantum capabilities required of the user are to store a constant-sized quantum state and to measure it in the standard and Hadamard bases.
At a high level, our scheme works by requiring the user to one-time authenticate any input they wish to evaluate on. The program will not evaluate unless a valid input-authentication pair is provided. Crucially, will determine the randomness to use for by computing a hash of the input-authentication pair.
2.1 One-time authentication with strong unforgeability
Before we state our one-time program construction in 2, let us define quantum one-time authentication and strong unforgeability. This is essentially a secret-key version of the definition of a quantum one-time signature scheme from [BS23], except that we insist on it being infeasible to generate two distinct signatures even for the same message. This property is referred to as strong unforgeability in [CHV23, BKNY23].
Remark.
There was an error in a previous version of this paper, due to our defining only the standard, weak version of unforgeability. We thank an anonymous reviewer for QIP 2025 for pointing this out.
In the following definition, the notation means that is given quantum query access to the function .
Definition 1 (Quantum one-time authentication with strong unforgeability).
We say that a tuple of four polynomial-time algorithms is a quantum one-time authentication scheme with strong unforgeability if the following hold:333The notation just means repeated 1’s; we sometimes use instead of as the input to an algorithm because we want the algorithm to run in time that is polynomial in the size of the input.
-
•
(Correctness) if , , and .
-
•
(One-time unforgeability) For any polynomial-time adversary ,
Since (strongly unforgeable) one-time authentication schemes can be easily built from any (strongly unforgeable) one-time signature scheme by simply considering the public key to be part of the secret key, the results of [BS23, CLLZ21, CHV23, BKNY23] imply their existence. In fact, these results show the existence of information-theoretically secure quantum one-time authentication schemes — that is, these constructions are secure against computationally unbounded adversaries, as long as they are only allowed to make queries to .
We describe one such scheme for single-bit messages now. The case for multi-bit messages works by simply using several single-bit schemes in parallel.
Construction 1 (Single-bit quantum one-time authentication from hidden subspace states, [BS23]).
The algorithms are defined as follows.
-
1.
Sample a uniformly random subspace of dimension .
-
2.
Output .
-
1.
Output .
-
1.
If , measure in the standard basis and output the result.
-
2.
If , measure in the Hadamard basis and output the result.
-
1.
If , reject (output ).
-
2.
If and , accept (output 1).
-
3.
If and , accept (output 1).
-
4.
Otherwise, reject (output ).
Note that 1 is correct because
Security was proven in [BS23].
2.2 Our one-time program construction
Let be the program we wish to one-time protect. Our scheme works by publishing a program which contains within it the description of . Crucially, this program will have the following properties:
-
•
uses obfuscation so as not to reveal the code of ;
-
•
will compute on any input, but only if the input is authenticated with a one-time authentication scheme; and
-
•
suitably “mixes” the input, the authentication tag, and the output together in such a way that, if the output is measured, the input and authentication tag effectively collapse.
While the first property follows from our use of an oracle model, and the second property is by construction, the third will prove to be quite difficult to establish. The statement of this third property is formalized in Lemma 1, which allows us to prove the one-time security of our scheme.
Construction 2 (General-purpose one-time programs).
Let be the function to be one-time protected, described as a bit-string representing a classical circuit that computes . Let be an obfuscation algorithm for classical circuits, and let be a quantum one-time authentication scheme as defined in Definition 1. Suppose that the one-time authentication scheme produces authentications of length for all messages , and let be a random oracle.
Our one-time protection scheme is specified by the algorithms , , and , defined as follows.
-
1.
Sample .
-
2.
Let be a classical circuit that does the following on input :
-
(a)
Compute . If it rejects, output the special “reject” symbol .
-
(b)
Otherwise, output .
-
(a)
-
3.
Compute the obfuscation of .
-
4.
Output .
-
1.
Compute the one-time authentication token .
-
2.
Output as the one-time program token.
-
1.
Compute .
-
2.
Compute and output the result.
After is run, the obfuscated program is published as a public key. Given a one-time program token , together with this public key, a user can evaluate on any input of their choice.
3 Security
We formalize one-time security of our one-time program scheme with the following black-box one-time program game. Essentially, security says that once an adversary produces a measured output of , the adversary cannot find new accepting inputs to .
-
:
-
1.
The adversary is given . The adversary is also given (quantum) oracle access to . The adversary is allowed to access this oracle throughout the game.
-
2.
The adversary submits a quantum query to the challenger on register . The challenger does the following:
-
(a)
Compute on , placing the result of the computation onto a register .
-
(b)
Measure , obtaining outcome .
-
(c)
If , the game is aborted and the adversary loses.
-
(d)
Otherwise, return to the adversary.
-
(a)
-
3.
The adversary submits a quantum query to the challenger on register . The challenger does the following:
-
(a)
Compute on , placing the result of the computation onto a register .
-
(b)
Measure , obtaining outcome .
-
(a)
-
4.
The adversary wins if .
We say that a scheme is black-box one-time secure if no polynomial-time adversary can win with inverse polynomial probability.
Definition 2 (One-time program).
A one-time program scheme consists of three polynomial-time algorithms , , and . We say that it is black-box one-time secure for a function if, for all polynomial-time adversaries making at most quantum oracle queries,
We do not believe that this is the final say in definitions of one-time security, but we believe it is a useful starting point. The rest of this paper is devoted to proving the following theorem.
Theorem 2 (2 is one-time secure).
Our proof of Theorem 2 will center on the notion of a collapsing hash function. The definition of a collapsing hash function is due to [Unr16]; informally, we say that is collapsing if measuring the output of collapses the input register from the perspective of any polynomial-time adversary.
Formally, let be a function that is computed by making calls to a random oracle . In this case we define collapsing with the following game.
-
:
-
1.
The adversary is given a full description of and oracle access to .
-
2.
The adversary sends the challenger a query on register .
-
3.
The challenger computes on register and measures the outcome. If , the challenger measures as well.
-
4.
The challenger returns to the adversary.
-
5.
The adversary outputs a bit .
Definition 3 (Collapsing hash function [Unr16]).
Let be a function that is computed by making calls to a random oracle . We say that is collapsing if, for all adversaries making at most quantum oracle queries to ,
The key idea in our proof of Theorem 2 is to show that the function is collapsing if is a random function and has significant min-entropy for every . This is stated as Lemma 1.
Lemma 1.
Let . Suppose that for all , the min-entropy of for random is at least . Then if is a random oracle, the function is collapsing with advantage .
We will use the compressed oracles technique of [Zha19] to prove Lemma 1 in Section 3.2. This proof is somewhat involved, so before we present it we will show in Section 3.1 that random oracles are collapsing as a warm-up. The proof of Lemma 1 is essentially identical, except that the components need to be updated.
Proof of Theorem 2.
Suppose that an adversary making many oracle queries satisfies
for some . We will use Lemma 1 to give a reduction making many queries to such that
which will complete the proof.
The reduction behaves as follows.
-
:
-
1.
Receive from the challenger and forward it to . Every time the adversary makes a query to , use the oracle access to to compute the response.
-
2.
Receive from the adversary. Measure , obtaining outcome ; return the collapsed register to the adversary.
-
3.
Receive from the adversary again. Measure , obtaining outcome .
-
4.
Output .
The only thing that’s different about the adversary’s view in and in the game with is that is measured in the game with . But by Lemma 1, this is indistinguishable to the adversary!
Now observe that if wins , then breaks the one-time unforgeability of the one-time authentication scheme . This is because both must not be , which means that and . This completes the proof. ∎
It only remains to prove Lemma 1.
3.1 Warm-up: Random oracles are collapsing
As a warm-up to proving Lemma 1, we use the compressed oracles technique to present a direct proof that random oracles are collapsing. It is already known that random oracles are collapsing by a proof of [Unr16], but that proof makes use of multiple lemmas that are proven using the compressed oracle technique — here, we prove the result directly using this technique.
Proposition 1.
A random oracle is collapsing with advantage , where is the number of queries made by the adversary.
Proof.
We use the compressed oracle technique due to [Zha19], and we define and the notation for compressed oracle databases as in that paper. Suppose that the adversary makes queries before the challenge query and queries after. Depending on whether or not the challenger records the challenge query input, the state just after the challenge query is
or
Here, the first register contains the adversary’s state; the second is the query register; the third is the database register; and the fourth and fifth are the registers into which the challenger records the challenge query output and (in the second case) input.
Next, the adversary makes further queries to . Let be the unitary describing the evolution of the game state under these queries.
Let be the unitary that reads and writes the lexicographically first such that onto a new register, if there is any such . This function is almost identical to from [Zha19]; one can compute either of or with one call to the other.
Our proof strategy is to show that applying to at the end of the game in the case yields the state in the case. Since is applied only to the challenger’s side, this will complete the proof.
3.2 Proof of Lemma 1
In this section we will prove Lemma 1, which we reproduce below.
Lemma 1.
Let . Suppose that for all , the min-entropy of for random is at least . Then if is a random oracle, the function is collapsing with advantage .
Proof.
We will follow the same proof strategy as Proposition 1, except that we will need to generalize the components to handle the case where the high-entropy function is applied to the random oracle output. We give our generalizations of [Zha19, Lemma 7] and [Zha19, Theorem 2] in 2 and 1, respectively.
Suppose that the adversary makes queries before the challenge query and queries after. Depending on whether or not the challenger records the challenge query input, the state just after the challenge query is
or
The first register contains the adversary’s state; the second is the query register; the third is the database register; and the fourth and fifth are the registers into which the challenger records the challenge query output and (in the second case) input.
Next, the adversary makes further queries to . Let be the unitary describing the evolution of the game state under these queries.
Let be the unitary that, given , writes the lexicographically first such that onto a new register, if such an exists. Our proof strategy is to show that applying to at the end of the game in the case yields the state in the case. Since is applied only to the challenger’s side, this will complete the proof.
We need a generalization of Theorem 2 from [Zha19].
Claim 1.
For any adversary making queries to , if the database is measured after the queries, the resulting database will contain distinct inputs such that with probability at most .
Proof.
We closely follow the proof of Theorem 2 from [Zha19].
We say that contains an -collision if it contains distinct inputs such that . The compressed oracle’s database starts out empty, so the probability of containing an -collision starts out as 0. We will show that the probability cannot rise too much with each query. Consider the game state just before the th query:
where is the compressed phase oracle, are the query registers, and is the adversary’s internal register.
Let be the projection onto the span of basis states where contains an -collision. We will relate to .
Let be the projection onto the span of basis states such that does not contain an -collision, , and . Let be the projection onto the span of states such that does not contain an -collision, , and . Let be the projection onto the span of states such that does not contain an -collision and . Observe that .
Applying to any state in the support of yields
Let , where . We can then write the above state as , where
The are orthogonal and satisfy , because there are at most choices of satisfying due to the min-entropy condition on . Therefore, .
For states in the support of , let be with removed and write for . Then is
so
Let and
Then the are orthogonal and
so .
Finally, and . Putting everything together, increases by at most with each query. Therefore, after queries, the total norm of is at most , completing the proof. ∎
The following is similar to Lemma 7 from [Zha19].
Claim 2.
Consider a quantum system over . Let be a function such that for every , for uniformly random , has min-entropy at least . Then the following unitaries -almost commute:
-
•
, acting on the registers.
-
•
, taking as input the registers and XORing the output onto a new register.
Proof.
Recall the definitions of , and from [Zha19]. In particular, recall that . Since commutes with and by construction, it suffices to show that and are -almost commuting. To show this, the following intuition is taken from [Zha19], adapted to our setting.
For to have any effect, either (1) or (2) is in uniform superposition; will simply toggle between the two cases. In Case (2), the probability that will find a match at input is at most . And in Case (1), will never find a match at input . Hence, there is an exponentially small error between the action of on these two cases.
More formally, let . We omit the register because neither nor touch . Let be the projection onto , and let be the projection onto . Writing ,
and
where outputs the lexicographically first such that , if such an exists. Letting , we have
and
since .
Similarly, . Since , it follows that . ∎
References
- [Aar09] Scott Aaronson. Quantum copy-protection and quantum money. In 2009 24th Annual IEEE Conference on Computational Complexity, pages 229–242. IEEE, 2009.
- [AB24] Prabhanjan Ananth and Amit Behera. A modular approach to unclonable cryptography. In Leonid Reyzin and Douglas Stebila, editors, Advances in Cryptology - CRYPTO 2024 - 44th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 18-22, 2024, Proceedings, Part VII, volume 14926 of Lecture Notes in Computer Science, pages 3–37. Springer, 2024.
- [ALL+21] Scott Aaronson, Jiahui Liu, Qipeng Liu, Mark Zhandry, and Ruizhe Zhang. New approaches for quantum copy-protection. In Tal Malkin and Chris Peikert, editors, Advances in Cryptology - CRYPTO 2021 - 41st Annual International Cryptology Conference, CRYPTO 2021, Virtual Event, August 16-20, 2021, Proceedings, Part I, volume 12825 of Lecture Notes in Computer Science, pages 526–555. Springer, 2021.
- [AP21] Prabhanjan Ananth and Rolando L. La Placa. Secure software leasing. In Anne Canteaut and François-Xavier Standaert, editors, Advances in Cryptology - EUROCRYPT 2021 - 40th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Zagreb, Croatia, October 17-21, 2021, Proceedings, Part II, volume 12697 of Lecture Notes in Computer Science, pages 501–530. Springer, 2021.
- [BB14] Charles H Bennett and Gilles Brassard. Quantum cryptography: Public key distribution and coin tossing. Theoretical computer science, 560:7–11, 2014.
- [BGS13] Anne Broadbent, Gus Gutoski, and Douglas Stebila. Quantum one-time programs. IACR Cryptol. ePrint Arch., page 343, 2013.
- [BI20] Anne Broadbent and Rabib Islam. Quantum encryption with certified deletion. In Rafael Pass and Krzysztof Pietrzak, editors, Theory of Cryptography - 18th International Conference, TCC 2020, Durham, NC, USA, November 16-19, 2020, Proceedings, Part III, volume 12552 of Lecture Notes in Computer Science, pages 92–122. Springer, 2020.
- [BS23] Shalev Ben-David and Or Sattath. Quantum tokens for digital signatures. Quantum, 7:901, 2023.
- [CG24] Andrea Coladangelo and Sam Gunn. How to use quantum indistinguishability obfuscation. In Bojan Mohar, Igor Shinkar, and Ryan O’Donnell, editors, Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, Vancouver, BC, Canada, June 24-28, 2024, pages 1003–1008. ACM, 2024.
- [CHV23] Céline Chevalier, Paul Hermouet, and Quoc-Huy Vu. Semi-quantum copy-protection and more. In Guy N. Rothblum and Hoeteck Wee, editors, Theory of Cryptography - 21st International Conference, TCC 2023, Taipei, Taiwan, November 29 - December 2, 2023, Proceedings, Part IV, volume 14372 of Lecture Notes in Computer Science, pages 155–182. Springer, 2023.
- [CLLZ21] Andrea Coladangelo, Jiahui Liu, Qipeng Liu, and Mark Zhandry. Hidden cosets and applications to unclonable cryptography. In Tal Malkin and Chris Peikert, editors, Advances in Cryptology - CRYPTO 2021 - 41st Annual International Cryptology Conference, CRYPTO 2021, Virtual Event, August 16-20, 2021, Proceedings, Part I, volume 12825 of Lecture Notes in Computer Science, pages 556–584. Springer, 2021.
- [GKR08] Shafi Goldwasser, Yael Tauman Kalai, and Guy N. Rothblum. One-time programs. In David A. Wagner, editor, Advances in Cryptology - CRYPTO 2008, 28th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 17-21, 2008. Proceedings, volume 5157 of Lecture Notes in Computer Science, pages 39–56. Springer, 2008.
- [GLR+24] Aparna Gupte, Jiahui Liu, Justin Raizes, Bhaskar Roberts, and Vinod Vaikuntanathan. Quantum one-time programs, revisited. CoRR, 2024.
- [LLQZ22] Jiahui Liu, Qipeng Liu, Luowen Qian, and Mark Zhandry. Collusion resistant copy-protection for watermarkable functionalities. In Eike Kiltz and Vinod Vaikuntanathan, editors, Theory of Cryptography - 20th International Conference, TCC 2022, Chicago, IL, USA, November 7-10, 2022, Proceedings, Part I, volume 13747 of Lecture Notes in Computer Science, pages 294–323. Springer, 2022.
- [Shm22] Omri Shmueli. Semi-quantum tokenized signatures. In Yevgeniy Dodis and Thomas Shrimpton, editors, Advances in Cryptology - CRYPTO 2022 - 42nd Annual International Cryptology Conference, CRYPTO 2022, Santa Barbara, CA, USA, August 15-18, 2022, Proceedings, Part I, volume 13507 of Lecture Notes in Computer Science, pages 296–319. Springer, 2022.
- [Unr16] Dominique Unruh. Computationally binding quantum commitments. In Marc Fischlin and Jean-Sébastien Coron, editors, Advances in Cryptology - EUROCRYPT 2016 - 35th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Vienna, Austria, May 8-12, 2016, Proceedings, Part II, volume 9666 of Lecture Notes in Computer Science, pages 497–527. Springer, 2016.
- [Wie83] Stephen Wiesner. Conjugate coding. ACM Sigact News, 15(1):78–88, 1983.
- [Zha19] Mark Zhandry. How to record quantum queries, and applications to quantum indifferentiability. In Alexandra Boldyreva and Daniele Micciancio, editors, Advances in Cryptology - CRYPTO 2019 - 39th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 18-22, 2019, Proceedings, Part II, volume 11693 of Lecture Notes in Computer Science, pages 239–268. Springer, 2019.