The disclosure relates to a post-quantum collision resistant hash function.
Collapsing is a post-quantum strengthening of collision resistance, needed to lift many classical results to the quantum setting. Unfortunately, the only existing standard-model proofs of collapsing hashes require Learning With Errors (LWE).
The disclosure relates to the first statistically hiding post-quantum commitments and post-quantum succinct arguments (of knowledge) under the same assumptions. Our results are obtained by a general theorem which shows how to construct a collapsing hash H′ from a post-quantum collision-resistant hash function H, regardless of whether or not H itself is collapsing, assuming H satisfies a certain regularity condition we call “semi-regularity”.
We construct the first collapsing hashes from the quantum hardness of any one of the following problems:
As an immediate corollary, we obtain the first statistically hiding post-quantum commitments and post-quantum succinct arguments (of knowledge) under the same assumptions. Our results are obtained by a general theorem which shows how to construct a collapsing hash H′ from a post-quantum collision-resistant hash function H, regardless of whether or not H itself is collapsing, assuming H satisfies a certain regularity condition we call “semi-regularity”.
The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embodiments, and together with the description, serve to explain the principles of the disclosed embodiments. In the drawings:
1 Introduction
Collision resistance is one of the most important cryptographic concepts, with numerous applications throughout cryptography. A collision resistant hash function H:{0, 1}m→{0, 1}n is one where n<m, thus guaranteeing that collisions exist in abundance, but where actually finding such collisions is computationally intractable. Collision resistance provably follows from most number-theoretic problems used in cryptography, and is one of the main design goals in constructions built from symmetric key tools, such as SHA2 or SHA3.
What happens when quantum computers enter the picture? For any application that required collision resistance classically, certainly a minimal condition is that it remains intractable for quantum algorithms to find a collision. We will call this notion a “postquantum” collision resistant hash function (PQ-CRHF). Post-quantum security rules out constructions based on discrete logarithms or factoring due to Shor's algorithm. Surprisingly, however, even PQ-CRHFs are often insufficient for applications, as first demonstrated by Ambainis, Rosmanis, and Unruh with a counterexample. The issue usually stems from rewinding, which is known to be problematic quantumly. Examples include commitments and more generally interactive protocols.
To remedy the situation, Unruh proposes a strengthening of collision resistance called collapsing. Very roughly, collapsing means that measuring the hash of a quantum superposition of messages is quantum computationally indistinguishable from measuring the message superposition itself, even though both operations are information-theoretically very different. Since its introduction, collapsing hashes have become recognized as the preferred notion of post-quantum security, being the appropriate post-quantum replacement for classical collision resistance whenever there is rewinding, and sometimes even when rewinding is not present. Unsurprisingly, collapsing is also a natural property beyond hash functions, being the right notion of post-quantum commitments (whereas PQ computational binding is useless), identification protocols underlying post-quantum signatures, and general argument systems.
Given their importance to post-quantum security, it is crucial to understand how to construct collapsing hash functions. Unfortunately, there are essentially only two classes of constructions. The first are idealized model proofs, where one proves collapsing relative to, say, a random oracle. The second are standard-model proofs, where the only existing paradigm leverages lossy functions or closely related concepts, whose only known postquantum instantiations require LWE (or equivalently, SIS by Regev's reduction).
On the other hand, the only hash functions which are provably PQ-CRHFs but not collapsing are contrived and require either complex oracles or un-tested conjectures. In summary, neither of the following scenarios would contradict any long-standing conjectures:
On Random Oracle-based Hashes. One may argue that we can simply conjecture that some hash function is collapsing, and then trivially “build” collapsing hashes from that function. In particular, random oracles are collapsing and symmetric key hash functions such as SHA2 or SHA3 are often modeled as random oracles.
However, collapsing is an inherently quantum notion, which is potentially much harder to reason about than typical classically-defined notions such as collision resistance, pseudorandomness, etc. Indeed, the random oracle heuristic is based on extensive cryptanalytic studies of the hash functions with respect to classically-defined tasks. This is true even for works considering quantum attacks, where the cryptanalysis goal is still classically-defined, such as finding collisions. Some works have proved the post-quantum indifferentiability of these functions; while these are important for understanding security, they punt the cryptanalysis effort to the underlying round function, which again have largely been studied for their classical security.
Aside from idealized model justifications, we are not aware of any cryptanalysis effort on hash functions like SHA2 or SHA3 with regards to collapsing. Therefore, it seems plausible that the random oracle heuristic could hold on symmetric hash functions relative to classically-defined security properties, but fails for collapsing. For this reason, the current evidence for SHA2 or SHA3 being collapsing appears much weaker than evidence for their (post-quantum) collision resistance.
Our Results. In this work, we build a collapsing hash function H′ from any PQ-CRHF H that satisfies a mild structural condition we call semi-regularity. Semi-regularity essentially means that no output has too many more pre-images than the “average” output. Note that H itself may be equivocal, and indeed a counter-example is semi-regular. Yet when plugged into our construction, the resulting H′ is collapsing. We then show the following:
As immediate corollaries of our results, we obtain post-quantum statistically hiding commitments and succinct arguments under any of the above assumptions. Our results show that semi-regularity is an important design consideration for constructing post-quantum hash functions.
1.1 why PQ-CRHFs are not Enough
For completeness, we give a brief explanation of why rewinding is problematic with PQ-CRHFs. Consider the following game. An adversary sends a hash y to the challenger. The challenger then flips a random bit b. The adversary then wins if it can produce a pre-image x of y such that the first bit of x is b. Clearly, an adversary could always set y to be the hash of an arbitrary x, in which case the first bit of x is b with probability ½. But can the adversary do better?
Classically, the answer is no, assuming the hash is collision resistant. Suppose for a given y that the adversary could win with probability ½+ϵ. Then it must win with probability at least ϵ conditioned on b=0, and also with probability at least ϵ conditioned on b=1. By running the adversary on b=0, rewinding until just after the adversary sends y, and running again on b=1, one obtains (with probability at least ϵ2) pre-images x0 and x1 whose first bits are 0,1 respectively. Since x0≠x1 and they are both pre-images of y, we have thus found a collision.
Quantumly, however, the above breaks down. Measuring x0 on the first execution potentially destroys the quantum state of the adversary, meaning the adversary is no longer guaranteed to produce x1. Ambainis et al.'s counter-example gives a hash function (relative to an oracle) where the probability to produce x1 indeed becomes negligible. This creates problems for computationally binding commitments, where Ambainis et al.'s construction yields commitments that are equivocal, despite being binding in the usual sense. Likewise, this equivocation is problematic for many proof systems that demonstrate soundness by extracting two colliding transcripts from an adversary through rewinding.
Unruh's notion of collapsing hashes resolves this problem. Basically, the adversary's first message y results in the output of the hash being measured. Collapsing implies that this is indistinguishable from measuring the input. Measuring the input corresponds exactly to extracting x0. While such extraction could potentially alter the quantum state, it cannot alter it in any detectable way. In particular this means the second run to recover x1 must still succeed. This completes the reduction from collision resistance. Note that collision resistance is implied by collapsing as explained by Unruh, and hence collapsing implies the adversary can only win with probability ½+negl, as desired.
1.2 Techniques
We call a function ≤-to-1 if no image has more than
pre-images. We start with the following observation (Section 3):
Theorem 1 (Informal). For poly , any ≤
-to-1 PQ-CRHF is also collapsing.
To see why this might be true, consider some ≤-to-1 function H. Let
be a superposition of inputs. Now consider measuring the output of H applied to |ϕ in superposition. If the measurement results in outcome y, then the state |ϕ
collapses to the partially-measured state
Since H is ≤-to-1, the support of |ϕy
contains at most
different x.
Non-collapsing means that there is some operation M which distinguishes |ϕy from the result of measuring |ϕy
, the latter yielding a distribution over singletons |x
such that H(x)=y. Suppose that M actually simply accepted |ϕy
and rejected all orthogonal states. In this case, if we measure |ϕy
—thus obtaining one pre-image x—and then apply M, there is a non-negligible chance we get back to |ϕy
. This is because |ϕy
must have a significant overlap with |x
, as |ϕy
is the sum of only
of the |x
vectors. But then if we were to measure again, we will get some x′ that is also a pre-image. Moreover, |ϕy
is itself not a singleton, since otherwise measuring it would have no effect and the distinguishing M would be impossible. Therefore there is a non-negligible chance that x≠x′. We thus obtain a collision.
We show that the above actually holds, no matter what |ϕy is, and no matter what M does, thus proving Theorem 1.
Generalization. Unfortunately, Theorem 1 appears somewhat limited. One may hope that symmetric hash functions such as SHA2 or SHA3, when restricted to a domain that is only slightly larger than the range, might be ≤-to-1 for a polynomial
. After all, if we model them as random oracles, it is straightforward to show this. However, for other hash functions based on post-quantum assumptions, such as LPN or expanders, we cannot reasonably apply the random oracle heuristic due to significant structure. There are two potential problems:
We therefore propose a generalization of Theorem 1 which overcomes these two specific issues above. First, observe that any ≤-to-1 hash on its own is not very useful, as it offers only minimal compression. However, by domain extension techniques, we can compile it into a hash function with arbitrary compression.
Imagine using Merkle-Damgård (MD) for domain extension, compiling a “small” hash H into a “big” hash H′. MD is already guaranteed to preserve collapsing. Imagine at each iteration, we only incorporate a single bit of the input at a time. Since the input to each iteration of H is just an output of H concatenated with a single bit, the number of possible inputs to H is never more than twice the number of possible outputs. In other words, H is 2-to-1 on average, over the set of possible inputs it will be evaluated on. If H were “sufficiently random looking”, we would therefore expect that most outputs to H would only have relatively few pre-images, so that H could be ≤-to-1 for a polynomial
.
We formalize this intuition: assuming H is “sufficiently regular”, we show that we can make H “sufficiently random looking” by pre-pending it with a (almost) -wise independent permutation for a polynomially-large
. Here, “sufficiently regular” essentially means that the most common output of H is only polynomially-more likely than the average output. This is formalized by a notion we call semi-regularity (Definition 4), which says roughly that the most common output is only a polynomial factor more likely than the “average” output. The result is the following:
Theorem 2. If H is a semi-regular PQ-CRHF, then it can be compiled into a collapsing hash function H′.
Applications. We show that several candidate post-quantum hash functions satisfy the necessary semi-regularity conditions, thus allowing us to construct novel collapsing hash functions:
Remark 1. The output of an expander-based hash is the label of the final node in the walk. In general, the set of labels may be sparse, in which case we would run into Problem 1. An example of such an expander is that of Fuchs et al., where the range is p3 but the size of the graph is only O(p2). Likewise, the Charles et al. expander from isogenies has labels in
p2 but the graph size is only O(p). For this reason, in the case of expander hashes, we need the full power of Theorem 2.
Remark 2. We emphasize that we do not prove the constructions of prior works are collapsing. Instead, we only prove semi-regularity, which allows us to compile (through a Merkle-Damgård-like construction) into a collapsing hash. We leave as an interesting open question whether the base constructions could be proven collapsing.
Remark 3. Other instantiations have been proposed, such as the use of LPS graphs and Morgenstern graphs. Some weaknesses have been shown in these graphs, though there are still versions that remain secure. For any version that is post-quantum collision resistant, our result immediately lifts it to a hash that is collapsing.
Symmetric Key Hash Functions. We do not know how to prove that symmetric hash functions such as SHA2 or SHA3 are semi-regular, and leave this as an interesting open question. However, we observe that random oracles are readily shown to be semi-regular. Thus, either of two things happen:
Thus we establish semi-regularity as an important design principle in the design of symmetric-key based hash functions.
We also provide additional evidence that SHA2 or SHA3 can be compiled into a collapsing hash. Concretely, SHA2 and SHA3 are widely believed to have optimal collision resistance, meaning that any polynomial-time algorithm only has a polynomial advantage over the trivial algorithm of guessing two random inputs and hoping they collide. The assumed optimal collision resistance is the basis for the current parameter settings of these functions. If SHA2 or SHA3 did not have optimal collision resistance, it would show that the parameter settings are too aggressive, and this would be considered a serious weakness.
In Section 7, we show that any optimally (post-quantum) collision resistant hash function that compresses by only a few bits is in fact collapsing, even if it is not semi-regular. Thus under the highly likely optimal collision resistance of SHA2 or SHA3, we obtain a collapsing hash function.
1.3 Collapsing from Group Actions
A group action is a relaxation of a standard cryptographic group, roughly allowing exponentiation but not multiplication. The advantage of such a restricted structure is that it prevents Shor's algorithm, and therefore maintains plausible post-quantum security. This was observed concurrently by Couveignes and Rostovtsev and Stolbunov, both works also proposing an instantiation of plausible post-quantum group actions using isogenies over elliptic curves.
The restricted structure of group actions preserves plausible post-quantum security, but it also restricts applications. In particular, the usual way of obtaining collision resistance from discrete logarithms, namely
(x,y)gxhy,
no longer can be computed without the ability to multiply elements. One could consider another natural construction, namely:
where b is a single bit. This is a 2-to-1 function where finding collisions is intractable by the hardness of discrete logarithms on the group action. For group actions based on isogenies, the discrete logarithm problem is exactly the problem of computing isogenies. However, with currently known group actions from isogenies, the bit-length of gx is roughly twice the bit-length of x, meaning the images are sparse and the function is not compressing despite being 2-to-1. Such functions are not useful for hashing. It remains a major open question whether collision resistant compressing hashing can be based on the discrete log problem for group actions of this form, and in particular if such collision resistance can be based on the hardness of computing isogenies.
Call a group action compact if gx has the same bit length as x. For compact group actions, the above hash function would be compressing, and collision resistance would follow from the hardness of computing discrete logarithms. Then applying Theorem 1, we immediately conclude that compact group actions also yield collapsing hash functions. We leave finding a plausible post-quantum compact group action as an intriguing open question.
Remark 4. The isogeny-based hash previously proposed relies on a different problem, namely finding a non-trivial cycle on the isogeny graph. The hardness of finding cycles is a stronger assumption that the hardness of computing isogenies.
1.4 Collapsing from Arbitrary Collision Resistance
While it seems most natural hash functions are semi-regular (at least in some parameter settings), it is not hard to construct contrived hash functions that are not semi-regular. Therefore, our restriction to semi-regular functions potentially limits the applicability of our approach. An interesting conjecture is the following:
Conjecture 1. From any PQ-CRHF, one can build a collapsing hash function.
Removing the semi-regularity restriction seems challenging. Consider a construction of H′ from H where the output of H′ is just the concatenation of t outputs of H on different inputs. More generally, perhaps the output of H′ is an injective function applied to t outputs of H. This structure would allow for immediately translating an H′ collision into an H collision. It seems difficult to devise an H′ that is not of this form while still proving the collision resistance of H′ (let alone collapsing) just on the collision resistance of H.
For an H′ of this form, if H has n-bit outputs, H′ has tn-bit outputs, and therefore H′ must have at least (tn+1)-bit inputs in order to be compressing. Suppose H was not semi-regular, and had some outputs that represented an f-fraction of the domain, where f is much larger than the fraction for “average” outputs, which we will denote g. Then H′ will have (information-theoretically) outputs that represent an approximately ft-fraction of the domain, where the average output would be approximately gt. Thus H′ is not semi-regular, and in fact has even worse regularity if t>1.
Therefore, it seems challenging, if not impossible, to generically remove semi-regularity from a collision resistant hash function. One may hope to prove H′ is collapsing despite not being semi-regular. But there would be little hope of using our techniques alone to prove collapsing, since the calls to H could be on inputs mapping to the highly-likely outputs, in which case H is super-poly-to-1.
On the other hand, our situation can be seen as roughly analogous to the case of constructing pseudorandom generators (PRGs) from one-way functions (OWFs). Specifically, Goldreich, Krawczyk, and Luby initially show that PRGs can be constructed from any regular one-way function. This was then improved to PRGs from arbitrary one-way functions by Håstad et al. Likewise, our hope is that future ideas will allow for proving Conjecture 1.
1.5 Concurrent and Independent Work
In a current and independent work, Cao and Xue also study collapsing hash functions. Their core result is identical to Theorem 1, namely that collision resistance when the number of pre-images is polynomially bounded implies collapsing. Somewhat analogous to Theorem 2, they also identify a relaxation they call almost-regularity, and show that almost-regular PQ-CRHFs can be used to build collapsing hashes. Almost-regularity is a somewhat stronger requirement than semi-regularity, resulting in fewer applications. Prior work shows that the SIS hash function is almost-regular, thus giving a collapsing hash function from SIS, arriving at the same feasibility result as prior work though through entirely different means. Our work gives several applications not covered in prior work, namely collapsing hashes from LPN, expanders, and optimal collision resistance. The former two applications rely on our more general Theorem 2.
2 Preliminaries
Quantum Computation. We give a very brief overview of quantum computation. A pure state is a unit column vector, usually denoted in ket notation as |ψ, in a complex Hilbert space
. The conjugate transpose of |ψ
, a row vector, is denoted in bra iotation as
ψ|. We usually think of
as a product of n 2-dimensional spaces, which are called qubits. For each qubit, we will fix some preferred basis {|0
, |1
}, which we call the computational basis. An n qubit space is therefore associated with the set of n-bit strings, and we say that |ψ
is a superposition over n-bit strings.
A mixed state is a probability distribution over pure states. If state |ωi occurs with probability pi, the mixed state is characterized by a density matrix, given by Σipi|ψi
ψi|. Mixed states are usually denoted as ρ.
A quantum algorithm contains two types of operations: unitary transformations and projective measurements. A unitary is a linear operator U such that UU†=I, where U† is the Hermitian transpose. The action of U on |ψ is given by U|ψ
. A projective measurement is specified by a set of projections
=(P1, . . . , Pt) such that ΣiPi=I. When applying measurement
to state |ψ
, the result is to output i with probability pi and the quantum system “collapses” to the state |ψi
, where:
When the measurement is applied to a mixed state ρ, the result is to output i with probability pi and the system collapses to ρi, where
For a qubit, measurement in the computational basis is the measurement (|00|, |1
1|). For a projective measurement
acting on pure state |ψ
or mixed state ρ, we will write (i, ρ′)←
(|ψ
) or (i, ρ′)←
(ρ) to denote the output i of applying the measurement
to ρ, together with the resulting state ρ′. Sometimes we will ignore the actual result of measurement i, focusing just on the resulting state, in which case we write ρ′←
(|ψ
) or ρ′←
(ρ). Other times, we will ignore the resulting state and just focus on the measurement outcome, in which case we write i←
(|ψ
) or i→
(ρ).
Consider a joint system =
0⊗
1, and applying two measurements
0,
1 to the sub-systems
0, N1. We write the resulting measurement as
0⊗
1.
Efficient quantum algorithms are given by a polynomial number of unitaries from some constant-sized universal set and a polynomial number of computational basis measurements. We say such algorithms are quantum polynomial time (QPT).
Throughout this work, we will make use of the following fact:
Fact 1. Any efficient quantum computation over a space can be turned into an efficient computation that is also a projective measurement
over a space
⊗
′ for some
′.
Hash Functions. A hash function will be specified by a family of distributions =(
λ)λ over classically efficiently computable functions h:
λ→
λ between some domain
λ and co-domain
λ. We require non-trivial compression, namely that |
λ|≥2×|
λ|. We will consider two security properties. The first is plain collision resistance but again quantum attackers:
Definition 1 (PQ-CRHF). is a post-quantum collision resistant hash function if, for every QPT algorithm
, there exists a negligible function negl such that
The second definition is collapsing, due to Unruh. Consider a superposition |ψ over
λ. Consider two measurements:
The collapsing definition essentially says that, for any superposition of inputs the adversary can produce, if either or
yh is applied to the state, it is computationally infeasible to tell which. This holds even if the adversary maintained an arbitrary internal state that could be entangled with the superposition of inputs.
Definition 2 (Collapsing Hash). is a collapsing hash function if, for every QPT algorithm
=(
0,
1), there exists a negligible function negl such that
|Pr[1←1∘(I⊗
)∘
0(h)]−Pr[1←
1∘(I⊗
yh)∘
0(h)]|<negl(λ),
where both probabilities are over the choice of h←λ. We call the quantity on the left above the advantage of
. Note that
0 outputs both a (quantum) internal state and a superposition over
λ. The internal state is passed unaffected to
1, as is the result of applying
or
yh to the superposition over
λ.
Definition 3 (t-wise independence). A family Π of injections from to
(|
|≥|
|) is a t-wise δ-dependent injection if, for any distinct x1, . . . , xt∈
, the distribution (π(x1), . . . , π(xt)) for π←Π is δ-close to t uniformly random distinct elements of
.
Distributions and Rényi Entropy. For a distribution D over a finite set I, and α>1, define the Rényi Entropy as
The choice of base in the logarithm is irrelevant for our purposes, as long as the same base is used for all α. For our purposes, it will be convenient to map Rényi entropy to the norm of the probability vector. Write
For β>α≥1, we have the following inequalities, where the left and right inequalities are identical just phrased in terms of entropies vs vector norms:
Let Δα(D):=Hα(D)−H∞(D) to be the Entropy Gap of D. When a is not specified, we will mean α=2.
For a finite set , we abuse notation and use
to denote the uniform distribution over
. For a function h:
→
and a distribution D on
, we let h(D) be the distribution obtained by sampling x←D and then outputting h(x). We also define Hα(h):=Hα(h(
)), ∥h∥α:=∥h(
)|α, and Δα(h):=Δα(h(
)).
3 from Non-Collapsing to Equivocation
Here, we prove that a failure to be collapsing leads to equivocation. We consider the following setup:
Our goal is to, starting in the state ρ, obtain two distinct values i, j∈S. The only operations we can perform are the measurement and the measurement in the computational basis for
. Without any further promises, this goal is impossible. By applying
to ρ, one obtains a single element of S. If
, say, commutes with U, then no sequence of operations will ever change the state, and we will never obtain a second element.
Therefore, we are given the promise that is sufficiently non-commuting with
. Concretely, we are promised that:
|Pr[1←(ρ)]−Pr[1←(
∘(I⊗
))(ρ)]|≥ϵ
for some non-negligible quantity ϵ. In other words, distinguishes between ρ and the result of measuring ρ in the computational basis for
.
The Algorithm. Since we are now only allowed to use and
, there is nothing that can be done except alternate them. Concretely, we apply
, and then
again. We will show that, with non-negligible probability, the two applications of
output distinct elements of S.
Lemma 1. For , S, ρ,
,
,
as defined above,
Before proving Lemma 1, we observe that it is tight. Let q be the quantity on the left, and r the quantity inside |·| on the right. Consider the case where is empty, ρ is the pure state |ψ
:=
−1/2Σi∈S|i
, and P is the projection onto |ψ
. In this case, Applying
to |ψ
outputs 0 with certainty. Meanwhile, measuring |ψ
gives a random |i
, and applying
to any |i
will give 0 with probability 1/
. Therefore, r=1−1/
, and the right-hand side becomes 2(
−1)/
2.
On the other hand, for computing q, there are two cases: (1) if applying to |i
outputs 0, or (2) it outputs 1. If it outputs 0 (which occurs with probability 1/
), then the state is back to |ψ
, and measuring again will give an j≠i with probability 1−1/
. If it outputs 0 (which occurs with probability 1−1/
), then the state becomes |i
−
−1/2|ψ
. In this case, a simple calculation shows that measurement will give j≠i with probability 1/
. Taken together, the overall probability q of obtaining a j≠i is exactly 2(
−1)/
2, exactly matching the right-hand side.
We now give the proof of Lemma 1.
Proof. We focus on the case of pure states, the mixed state setting then following from convexity. Therefore we assume ρ=|ψψ| for some pure state |ψ
=Σv,iαv,i|v, i
.
We first analyze q. The probability of obtaining i in the first measurement is pi=Tr[(I⊗|ii|)ρ], in which case ρ′ becomes
Now we apply , and disregard the output of the measurement. The resulting mixed state is ρi′:=PρiP+(I−P)ρi(I−P). Now we apply (I⊗
) again. The probability of obtaining j is Tr[(I⊗|j
j|)ρi′]. Summing over all i∈S and j∈S\{i}, we have that the probability of obtaining distinct i, j∈S is q where
Then if we define w as the vector indexed by tuples (i,j,v″), i≠j such that w(i,j,v″):=Σvαv,iv″, j|P|v, i
, we have that q=2|w|2.
Next we analyze the right hand side, r, of Lemma 1. We have
Then if we define x as the vector x(i,j,v″):=αv″,j, we have that r=x·w. Note that
Therefore, by the Cauchy-Schwartz inequality, we have that is |w|2|x|2≥|w·x|2. The lemma follows.
3.1 Application: Hashing with Small Compression.
We now use Lemma 1 to show that any hash function which is ≤-to-1 for a polynomial
is collapsing.
Theorem 1. Let be a post-quantum collision-resistant hash function with domain
, and
a polynomial. Suppose that, with overwhelming probability over the choice of h←
, that h is ≤
-to-1. Then
is collapsing.
Proof. Assume toward contradiction that is not collapsing. Let
=(
0,
1) be the adversary for the collapsing game, with non-negligible advantage ϵ. We will think of
1 as being a projective measurement on the joint system
×
λ, where
is the adversary's internal state.
Observe that is equivalent to the composition of
followed by
, since the domain element uniquely determines the range element. Therefore, we can think of both sides of the collapsing experiment as applying
, and then the only difference is whether an additional
is applied. We will therefore always think of the output of
0 as having
applied.
For a fixed h and result y from , suppose
1 has a distinguishing advantage ϵh. Then we can apply Lemma 1 to extract two pre-images of y (and hence a collision) with probability at least 2ϵh2/(
−1). By averaging over all h and y and invoking convexity, we see that the overall probability of finding a collision is at least 2ϵ2/(
−1), which is non-negligible.
By combining with the fact that standard domain extension works for collapsing hash functions, we have the following corollary:
Corollary 1. Assuming the existence of ≤-to-1 PQ-CRHFs for a polynomial
, there exist collapsing hash functions for arbitrary domains.
4 The Main Theorem
We now generalize the ≤-to-1 case to a somewhat more general class of hash functions. The main challenge, of course, is that general hash functions may not be ≤
-to-1 for any polynomial
. This can be a problem even if the domain is only slightly larger than the co-domain. Here, we show how to somewhat relax the conditions on the hash function.
Definition 4. Let =(
λ)λ be a family of hash functions with domain
λ and co-domain
λ. We say that
is semi-regular if there exists a polynomial r and negligible negl such that
Equivalently, ∥h∥∞≤r(λ)×∥h∥22, except with negligible probability.
For a function h, we will call ∥h∥∞/∥h∥22 the regularity of h. A semi-regular hash function is therefore one where the regularity is a polynomial except with negligible probability.
Main Theorem. We now give our main theorem.
Theorem 2. If there exists a semi-regular PQ-CRHF, then there exists a collapsing hash function.
The remainder of this section is devoted to proving Theorem 2. We start by considering the following hash function:
Construction 1. Let be a family of post-quantum collision resistant hash functions with domain
λ and co-domain
λ. For parameters
∈
δ∈[0,1], let
be a
-wise δ-dependent injection with domain
λ×{0, 1} and co-domain
λ. Then for any polynomial m=m(λ), we construct the following function family
′ with domain {0, 1}m and co-domain
λ, where h′→
′ is sampled as follows: sample h←
and for i=1, . . . , m×t, sample fi←
, where t is a parameter to be specified later. Also fix an arbitrary y0∈
λ. Then output h′:{0, 1}m→
λ defined as:
Remark 5. Note that Construction 1 is only defined for a bounded domain, since it needs independent fi for each application of h. However, we can set m to be large enough so that 2m>>λ, obtaining a compressing collapsing function. Then we can plug the result into a plain Merkle-Damgård or other domain extender, which are known to preserve collapsing. The result is an arbitrary-domain hash function that is collapsing.
Remark 6. Observe that some iterations of Construction 1 incorporate bits of the input into the zi, while others just incorporate 0's. This is mostly an artifact of our proof of collapsing, and it is unclear if it is strictly needed. Looking ahead, in each iteration that incorporates an input bit, the number of possible zi values potentially doubles, while in other iterations, we show that the number of possible zi values decreases with noticeable probability. By inserting sufficiently many 0 iterations, we can make sure the number of possible zi values never gets too large, which we can then use to apply Lemma 1.
For the remainder of the proof, we omit λ subscripts and write =
λ and
=
λ to keep notation simple. Let
i be the set of possible values for zi as x ranges over all possible inputs, and Ni=|
i|. Let Mi be the number of possible values for yi. Observe that Ni=2Mi for i=t(j−1)+1 and Ni=Mi otherwise. Define the following quantities:
Lemma 2. Except with negligible probability over the choice of h, fi, the following hold:
Before proving Lemma 2, we first demonstrate that it allows for proving Construction 1 is collapsing. Note that only the second bullet is needed to prove collapsing; the first bullet is facilitates our proof of Lemma 2 by induction.
Construction 1 is just Merkle-Damgård, composed of u functions hi(y)=h(fi(y)), where each hi has domain i−1 and the input to the hash has a number of zeros inserted between the various input bits. Each of the hi are collision resistant since the fi are injective. By Lemma 2, each of the hi are also <
-to-1 when restricting to the set of possible inputs. Hence by Theorem 1, each of the hi are collapsing on their restricted domains. Unruh shows that Merkle-Damgård is collapsing if the component hi are collapsing, hence Construction 1 is collapsing. The exact same proof works here, the only difference is that the hi are only collapsing on the outputs of hi−1, but are potentially not collapsing on the entire domain
λ×{0, 1}. Nevertheless the same proof works here: imagine yu is measured. Now measure zu, then zu−1, then zu−2, etc, until we measure z1. The application of each measurement is undetectable by the collapsingness of the hi on their restricted domains. By the time we have measured all of the zi's, we have measured the entire input. Hence measuring yu (the output of h′) is indistinguishable from measuring the input x.
For completeness, we work out the proof here. We need to show that measuring the final output yu vs measuring the input x is computationally indistinguishable. We will do this through a hybrid argument. Let =(
0,
1) be a collapsing adversary for
0′, where the probability of distinguishing the measurement
h′ from
is a non-negligible ϵ.
Consider evaluating h′ on a quantum superposition, writing the output yu to a new register Yu. During iteration j, a number of intermediate values will be stored in a register, including zj which will be stored in a register Zj. After the final output yu of h′ is produced and written to a register Yu, all the intermediate registers including the Zj will be uncomputed.
In Hybrid i, register Yu is measured to give yu, and also registers Zj for j=i, . . . , u are all measured before uncomputation, giving zj. Let pi be the probability A outputs 1 in Hybrid i.
Hybrid u+1 means none of the Zj registers are measured, whereas in Hybrid 1, all of the Zj are measured, which is equivalent to measuring the input registers. Thus |pi−pu+1=ϵ, by our assumption that is a collapsing adversary. For each i, we obtain a collapsing adversary
(i)=(
0(i),
1(i)) for hi with advantage ϵi=|pi−pi+1|.
0(i)(hi) works as follows:
1
(i) upon receiving ρstate′,Z1. It outputs whatever
1 outputs.
Since 0(i) measures register Zi+1 to obtain zi+1 which includes yi=hi(zi), if the challenger for
(i) measures the output of hi, the measurement is redundant and has no effect on the state. Therefore,
(i) perfectly simulates Hybrid i+1. On the other hand, if the challenger measures the input, this is exactly the same as measuring Zi to obtain zi. Hence
(i) perfectly simulates Hybrid i in this case. Therefore,
(i) has advantage exactly ϵi=|pi−pi+1|.
We then turn each (i) into a collision-finder for h, which we call
(i), following Theorem 1. Conditioned on Lemma 2 holding, the functions hi are ≤
-to-1, meaning
(i) finds a collision with probability at least 2ϵi2/(
−1). Notice that Σiϵi≥ϵ. Therefore, we can obtain an overall collision-finder
, which runs
(i) for a random choice of i. By Cauchy-Schwartz, the probability
obtains a collision is at least
which is non-negligible. This contradicts the assumed collision resistance of h.
We now turn to proving Lemma 2.
Proof. We prove by induction on i. Clearly N0=2 and h1 is at most 2-to-1. We now fix h and f1, . . . , fi−1, which determines i−1 and Ni−1. We inductively assume Ni−1≤∥h∥2−2. We first prove, with overwhelming probability over the choice of fi, that hi is ≤
-to-1 when restricted to
i−1.
Toward that end, for any y∈, let py be the probability a random input to h maps to y. For any set of
inputs x1, . . . ,
, the probability they all map to the same output of h is:
Let V be the event that hi is not <-to-1. Union-bounding over all sets of
inputs in
i−1, we have that
|| must be superpolynomial by the assumed collision resistance of h, and so the above quantity is negligible. Now it remains to prove the desired size bounds. First recall that Nt(j−1)+1≤2Nt(j−1) and Ni≤Ni−1 for all i not of the form t(j−1)+1. The following suffices to prove the size bound in Lemma 2:
Claim. Nt(j−1)≤∥h∥2−2/2 for all j.
This claim implies that Nt(j−1)+1≤∥h∥2−2, and therefore all Nt(j−1)+k≤∥h∥2−2 for all k=2, . . . , t, thus proving Lemma 2. We now prove the claim by induction. Clearly for j=1 we have that Nt(j−1)=N0=1, which is ≤∥h∥2−2/2 since ∥h∥22, the collision probability of two random inputs to h, must be negligible. This establishes the base case.
We now inductively assume that Nt(j−1)+1≤∥h∥22. Our goal is to prove that Nt(j−1)+t≤∥h∥2−2/2. Note that if any i in the interval t(j−1)+2, . . . , tj satisfy Ni≤∥h∥2−2/2, then we are done since all subsequent i in the interval have Ni≤Ni−1. From now on, we will therefore assume towards contradiction that Ni>∥h∥2−2/2 for all i in the interval.
Let Ci be the number of distinct pairs of colliding inputs to hi. We observe the following:
Claim. If hi is <-to-1, then
The claim is proved as follows: by linearity, it suffices to consider the case where hi has a single output, meaning Mi=1 and Ni<. In this case, we have that
Therefore, to bound Ni=Mi for i=t(j−1)+2, . . . , tj, we need to bound Ci. To do so, let P2 be the probability that two random distinct inputs to h map to the same image. Then
For a set L⊆i−1, let EL be the indicator function for the event that all L map to the same value under hi. Then Ci=ΣL⊆i−1:|L|=2EL. We now calculate the mean of Ci:
Recall that ∥h∥22≥||−1≥2|
|−1 and that Ni−1∥h∥22∈(½, 1] by assumption. Therefore,
|Ci|≥Ni−1/8−2.
From above we know that Pr[V]≤2||−2. Now we have, for i=t(j−1)+2, . . . , tj and assuming each such Ni−1>∥h∥2−2,
[Ni]=
[Ni|¬V](1−Pr[V])+
[Ni|V]Pr[V]≤
[Ni−1−(2/
)Ci|¬V](1−Pr[V])+Ni−1Pr[V]≤(Ni−1−(2/
)
[Ci]¬V])(1−Pr[V])+Ni−1Pr[V]≤Ni−1−(2/
)(
[Ci]−
[Ci|V]Pr[V])+Ni−1Pr[V]≤Ni−1−(2/
)(Ni−1/8−2)+(2/
[Ci|V]+Ni−1)Pr[V]≤≤Ni−1−(2/
)(Ni−1/8−2)+Ni−12Pr[V]≤Ni−1−(2/
)(Ni−1/8−2)+2≤Ni−1−Ni−1/5
Since Ni is between 1 and Ni−1, we must have that
Pr[N
i
<N
i−1(1− 1/10)]≥ 1/10
.
Call an i “good” Ni<Ni−1(1− 1/10). Let T be the number of good i. Suppose there are ≥T good i in the interval t(j−1)+2, . . . , tj. Then
Nt(j−1)+1≤(e−1−o(1))∥h∥2−2≤∥h∥2−2/2. Since we assumed this was not the case, it must be that T<10
. But
[T]≥t/10
=20
, so by Hoeffding's inequality,
Pr[T<10]≤Pr[T−
[T]<−10
.
Thus, except with negligible probability, Ntj must in fact be ≤∥h∥2−2/2. This completes the proof of Lemma 2 and hence Theorem 2.
5 Collapsing Hashes from LPN
In this section, we construct collapsing hash functions from the hardness of learning parities with noise (LPN) in certain extreme parameter regimes.
5.1 LPN-Based Hashing
For positive integers n, m>n and error rate ϵ∈[0, 0.5], define LPNϵn×m to be the following distribution: choose a random s←2n and random A←
2n×m. Choose a random e∈Bϵm, Bϵ is the Bernoulli distribution: output 1 with probability ϵ and 0 otherwise. The output of LPNϵn×m is then (A, sT·A+eT mod 2). The LPN assumption states that it is computationally infeasible to distinguish LPNϵn×m from the uniform distribution
2(n+1)×m. Specifically:
Assumption 1. For parameters ϵ=ϵ(n), m=m(n), T=T(n), The (ϵ, m, T)-LPN assumption is that, for any adversary running in time at most T, there exists a negligible negl(n) such that
|Pr[1←(LPNEϵn×m)]−Pr[1←
(
2(n+1)×m)]|<negl(n).
Brakerski et al. and Yu et al. show how to construct a hash function from the LPN problem as follows:
Construction 2. Let Swm⊆{0,1}m be the set of length-m vectors, where the domain is divided into w blocks of size m/w, and each block contains exactly a single 1. Let LPNHashwn×m be the hash function family defined as follows: h:Swm→{0, 1}n is specified by a random matrix A∈2n×m. Then h(x)=A·x mod 2.
Remark 7. Brakerski et al. allow for a slightly more general domain where the inputs can have w 1's in any position. For our analysis of semi-regularity, however, it will be convenient to use the domain Swm as defined.
Theorem 3. Under the (O(log2 n/n), poly, poly)-LPN assumption, LPNHashwn×m is a PQ-CRHF for m=poly(n) and w=O(n/log n).
Theorem 4. The following are true:
5.2 Semi-Regularity of LPN-Based Hashing
We now prove that LPNHash is semi-regular, for appropriate parameter choices.
Theorem 5. For any m, n, w, let α:=√{square root over (n(w/m) In 2)}. If α≤½ and αw≤2−n, then LPNHashwn×m is semi-regular.
Before proving Theorem 5, we observe an immediate corollary:
Corollary 2. If LPN is hard in any of the parameter regimes in Theorems 3 or 4, then collapsing hash functions exist:
Proof. By Theorem 2, it suffices to show that the settings of parameters in Theorems 3 and 4 satisfy the conditions of Theorem 5. For the settings where m=poly(n) and w=O(n/log n), we just need to set m=nc and w=dn log n where cd≥2. Then α=o(1) and
For the setting where n=O(log2 λ), m=λ=2n
We now prove Theorem 5.
Proof. Our goal is to show that ∥h(Swm)∥∞=poly/2n, which implies H∞(h)≥n−O(log n). Since H2(h)≤n, this would establish semi-regularity.
We will write A=(v1, . . . , vm) for vectors vi ∈2n. Let Di be the distribution vj1+vm/w+j2+ . . . v(m/w)(i−1)+j
Lemma 3. Fix v1, . . . , v(m/w)i. Suppose ∥Di∥∞=f/2n. Then except with probability 2−n over the choice of v(m/w)i+1, . . . , v(m/w)(i+1), ∥Di+1∥∞≤(1+g)/2n, where g=f√{square root over (n(w/n) ln 2)}
Proof. For each x in {0, 1}n, define px(i):=Pr[x←Di]. Then
The v(m/w)i+j are just independent random vectors, so we can think of px(i+1) as a random variable which is the mean of w/m random samples of pX′(i) for random x′. Each of the px′(i) are non-negative random variables with mean 2−n (since they must sum to 1) and maximum f×2−n. By Hoeffding's inequality,
Union-bounding over all 2n different x, we have that
By setting g=f√{square root over (n(w/n) ln 2)}, the right-hand side becomes 2 as desired.
Notice that ∥D0∥∞=1. Let α=√{square root over (n(w/n) ln 2)}. Union-bounding over all i=1, . . . , w, we therefore have that
∥Di+1∥∞≤α∥Di∥∞+2−n.
for all i. Then
If we set α so that αw≤2−n and α≤½, we have that ∥Dw∥∞≤3×2−n, showing that LPNHash is semi-regular. Q
6 Collapsing Hashes from Expanders
Charles, Goren, and Lauter, abstracting earlier ideas of Tillich and Zémor, propose an elegant way to construct collision resistant hash functions from exponentially-large expander graphs, whose collision-resistance follows from the assumed difficulty of finding cycles in the graphs. A number of graphs have been proposed for use in hash functions, such as:
We show that expander-based hashes satisfy our regularity condition, and hence we can obtain collapsing hash functions under the same computational assumptions on expanders as for collision resistance.
6.1 Expander Graphs
Let G=(V, E) be an undirected graph. G is d-regular if every v∈V has exactly d neighbors. Throughout, we will always assume our graphs are regular. Let A=A(G) denote the adjacency matrix of G: the |V|×|V| matrix such that Ai,j if (i, j)∈E and 0 otherwise. Since A is symmetric, it has |V| real eigenvalues λ1≥λ2≥ . . . ≥λn. For a d-regular graph, λ1=d.
There are several equivalent definitions of expander graphs; the following linear-algebraic definition captures the only property we will need.
Definition 5. A connected d-regular graph G is a (|V|, d, δ)-expander graph if λ2≤δd.
Walks on Expanders. Let G be a d-regular graph, and let v0∈V be a node. A walk on G starting from v0 is simply a sequence (v0, v1, v2, . . . ) such that (vi−1, vi)∈E for all i>0. A random walk is one where vi+1 is chosen uniformly from the set of neighbors of vi. A non-backtracking walk is one where vi−1≠vi+1 for all i>0, and a random non-backtracking walk is a walk where vi+1 is chosen uniformly from the neighbors of vi other than vi−1.
For a d regular graph, the nodes vi for a random walk and random non-backtracking walk will converge to the uniform distribution over V as i→∞. We will use the notion of mixing time to characterize how fast this occurs.
Definition 6. The mixing time of a random walk starting at v0 is defined as
where Pr[vt=u] is the probability that vt=u in the walk. The mixing time for a random non-backtracking walk is defined as {tilde over (τ)}(G), and is defined analogously.
For both backtracking and non-backtracking walks, the mixing time is at most O(log(|V|)/(1−δ)). The backtracking case has long been known, and the non-backtracking case follows from the fact that non-backtracking walks mix at least as fast.
6.2 Hash Functions Based on Expanders
Let =(
λ)λ where each
λ is a family of d-regular connected graphs where each G=(V, E)∈
λ is exponentially large and implicitly represented. That is, V⊆{0, 1}n(λ), and each G is represented by a polynomial-size string Desc(G). There is an efficient procedure which computes the neighbors of any v∈V, given Desc(G). We assume that Desc(G) includes a distinguished node v0, and that it is possible to efficiently sample Desc(G) for a random G←
λ.
Definition 7. The Cycle Finding problem is hard in if, for any QPT
,
(Desc(G)), G←
λ outputs a simple cycle in G with negligible probability.
Based on cycle finding hardness, prior work constructs the following hash:
Construction 3. Let ExHash be the distribution over functions hDesc(G):[d−1]t→{0, 1}n(λ) for a random G←
λ defined as follows: interpret each element x of [d−1]n as a length-n non-backtracking walk in G starting from v0. That is, on the ith step, if the walk is currently at node vi and was previously at vi−1, then xi selects amongst the d−1 neighbors of vi other than vi−1. That neighbor will be vi+1. Let vt be the end of the walk. Then hDesc(G)(x)=vt.
Theorem 6. is a PQ-CRHF if cycle finding is hard in
.
Proof. We give the proof for completeness. Any collision in hDesc(G) gives two non-backtracking walks W0≠W1 that start at v0 and end at the same node v. Assume without loss of generality that the nodes immediately before v in W1, W1 are different. Let v1 be the last node before v where the walks coincide. Then by concatenating the two paths from v1 to v under W0, W1 gives a simple cycle.
Prior work proposes using expander graphs as a minimal criteria for selecting where the cycle finding problem is hard. A uniformly random input to
corresponds to a random non-backtracking walk on
. Since the mixing time of an expander is logarithmic in |V|, it is polynomial for implicitly represented graphs. Once the walk mixes, no node in the graph is more likely than 2/|V|, implying ∥h∥∞≤2/|V|. Meanwhile, ∥h∥22≥1/|V|. Therefore, for a polynomial-length input,
is semi-regular with r≤2. Therefore, we have the following:
Corollary 3. Suppose is a family of (|Vλ|, d, δ)-expander graph for a constant δ. Then if cycle finding is hard for
, there exists collapsing hash functions.
When V is an appropriate set of elliptic curves and E are isogenies as proposed by prior work, cycle-finding is a well-known challenging problem. The graph of Markov triples has been explored by prior work. Other instantiations have been proposed, but they have weaknesses.
7 Toward Collapsing Hashes from General Collision Resistance
Here, we discuss the possibility of obtaining collapsing hashes from more general PQ-CRHFs. In particular, we are interested in the case of symmetric hash functions such as SHA2 or SHA3. It seems plausible that SHA2 or SHA3 would be semi-regular: after all, if a hash function had certain images that were far more likely than others, this would be considered a significant design weakness. Unfortunately, we do not know how to prove unconditionally that, say, SHA2 or SHA3 are semi-regular. Instead, we simply conjecture it. The following shows that this assumption is justified in the random oracle mode:
Lemma 4. Random oracles are semi-regular. In particular, for λ bit outputs, a compressing random oracle has regularity at most λ.
Proof. By a standard balls-and-bins argument, for a random function F:{0, 1}m→{0, 1}λ, the most likely output has probability H∞(F)≤O(λ2−λ), with all but negligible probability. On the other hand, ∥F∥22>2−λ. Thus F has regularity at most O(λ).
Since SHA2 or SHA3 are often modeled as random oracles, it therefore seems reasonable to conjecture that they are semi-regular. Note that this is potentially very different than assuming SHA2 or SHA3 are collapsing, even though random oracles are collapsing. Indeed, the analysis of SHA2 and SHA3 has usually focused on classical security properties. Semi-regularity is a simple classical property, whereas collapsing is a more complicated inherently quantum property. Under the assumed quantum collision resistance and assumed regularity of either SHA2 or SHA3, we therefore obtain a standard-model collapsing hash function from classically-defined properties, which are much better understood.
System Implementations
The embodiments described herein can be implemented by systems, methods, and computer-readable media configured for creating a quantum-secure hash of an m-bit input by:
In further embodiments, the semi-regularity property is based on a distribution of the first hash function (h) on random inputs.
In further embodiments, the padding to generate the u-bit length input z is performed by inserting a predetermined number of zeros (t) between every bit of the input, wherein the number of zeros is based on 1, m, and n and the semi-regularity property of the first hash function.
Computer system 500 may include one or more processors (also called central processing units, processing devices, or CPUs), such as a processor 504. Processor 504 may be connected to a communication infrastructure 506 (e.g., such as a bus).
Computer system 500 may also include user input/output device(s) 503, such as monitors, keyboards, pointing devices, etc., which may communicate with communication infrastructure 506 through user input/output interface(s) 502. One or more of processors 504 may be a graphics processing unit (GPU). In an embodiment, a GPU may be a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc.
Computer system 500 may also include a main memory 508, such as random-access memory (RAM). Main memory 508 may include one or more levels of cache. Main memory 508 may have stored therein control logic (i.e., computer software, instructions, etc.) and/or data. Computer system 500 may also include one or more secondary storage devices or secondary memory 510. Secondary memory 510 may include, for example, a hard disk drive 512 and/or a removable storage device or removable storage drive 514. Removable storage drive 514 may interact with a removable storage unit 518. Removable storage unit 518 may include a computer-usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage drive 514 may read from and/or write to removable storage unit 518.
Secondary memory 510 may include other means, devices, components, instrumentalities, or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system 500. Such means, devices, components, instrumentalities, or other approaches may include, for example, a removable storage unit 522 and an interface 520. Examples of the removable storage unit 522 and the interface 520 may include a program cartridge and cartridge interface, a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.
Computer system 500 may further include communications interface 524 (e.g., network interface). Communications interface 524 may enable computer system 500 to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced as remote device(s), network(s), entity(ies) 528). For example, communications interface 524 may allow computer system 500 to communicate with external or remote device(s), network(s), entity(ies) 528 over communications path 526, which may be wired and/or wireless (or a combination thereof), and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system 500 via communications path 526.
Computer system 500 may also be any of a personal digital assistant (PDA), desktop workstation, laptop or notebook computer, netbook, tablet, smartphone, smartwatch or other wearable devices, appliance, part of the Internet-of-Things, and/or embedded system, to name a few non-limiting examples, or any combination thereof.
Computer system 500 may be a client or server computing device, accessing or hosting any applications and/or data through any delivery paradigm, including but not limited to remote or distributed cloud computing solutions; local or on-premises software (“on-premise” cloud-based solutions); “as a service” models (e.g., content as a service (CaaS), digital content as a service (DCaaS), software as a service (SaaS), managed software as a service (MSaaS), platform as a service (PaaS), desktop as a service (DaaS), framework as a service (FaaS), backend as a service (BaaS), mobile backend as a service (MBaaS), infrastructure as a service (IaaS), etc.); and/or a hybrid model including any combination of the foregoing examples or other services or delivery paradigms.
The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, a specialized application or network security appliance or device, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 900 includes a processing device 902, a main memory 904 (e.g., read-only memory (ROM), flash memory, dynamic random-access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory 906 (e.g., flash memory, static random-access memory (SRAM), etc.), and a data storage device 918, which communicate with each other via a bus 930.
Processing device 902 represents one or more processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 902 may also be one or more special-purpose processing devices such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 902 is configured to execute instructions 926 for performing the operations and steps discussed herein.
The computer system 900 may further include a network interface device 908 to communicate over the network 920. The computer system 900 also may include a video display unit 910, an alphanumeric input device 912 (e.g., a keyboard), a cursor control device 914 (e.g., a mouse), a graphics processing unit 922, a signal generation device 916 (e.g., a speaker), graphics processing unit 922, video processing unit 928, and audio processing unit 932.
The data storage device 918 may include a machine-readable medium 924 (also known as a computer-readable storage medium) on which is stored one or more sets of instructions 926 (e.g., software instructions) embodying any one or more of the operations described herein. The instructions 926 may also reside, completely or at least partially, within the main memory 904 and/or within the processing device 902 during execution thereof by the computer system 900, where the main memory 904 and the processing device 902 also constitute machine-readable storage media.
In an example, the instructions 926 include instructions to implement operations and functionality corresponding to the disclosed subject matter. While the machine-readable storage medium 924 is shown in an example implementation to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions 926. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions 926 for execution by the machine and that cause the machine to perform any one or more of the operations of the present disclosure. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying” or “determining” or “executing” or “performing” or “collecting” or “creating” or “sending” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the intended purposes, or it may comprise a computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer-readable storage medium, such as but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The operations and illustrations presented herein are not inherently related to any particular computer or other apparatus. Various types of systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the operations. The structure for a variety of these systems will appear as set forth in the description herein. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as read-only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 500, main memory 508, secondary memory 510, and removable storage units 518 and 522, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system 500), may cause such data processing devices to operate as described herein.
Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use embodiments of this disclosure using data processing devices, computer systems, and/or computer architectures other than that shown in
It is to be appreciated that the Detailed Description section, and not any other section, is intended to be used to interpret the claims. Other sections can set forth one or more but not all exemplary embodiments as contemplated by the inventor(s), and thus, are not intended to limit this disclosure or the appended claims in any way.
While this disclosure describes exemplary embodiments for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other embodiments and modifications thereto are possible and are within the scope and spirit of this disclosure. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.
Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments can perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.
References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein. Additionally, some embodiments can be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments can be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, can also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
The breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments but should be defined only in accordance with the following claims and their equivalents. In the foregoing specification, implementations of the disclosure have been described with reference to specific example implementations thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of implementations of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application claims the benefit of U.S. Provisional Application No. 63/325,592, filed Mar. 30, 2022, the entire contents of which are incorporated herein by reference.
| Number | Date | Country | |
|---|---|---|---|
| 63325592 | Mar 2022 | US |