Abstract 1 Introduction 2 Technical Overview 3 Preliminaries 4 Function Inversion with Sub-Functions 5 Algorithm for 3SUM-Indexing 6 Generalizations and Applications References

Improved Time-Space Tradeoffs for 3SUM-Indexing

Itai Dinur ORCID Ben-Gurion University, Be’er-Sheva, Israel
Georgetown University, Washington, DC, USA
   Alexander Golovnev ORCID Georgetown University, Washington, DC, USA
Abstract

3SUM-Indexing is a preprocessing variant of the 3SUM problem that has recently received a lot of attention. The best known time-space tradeoff for the problem is TS3=n6 (up to logarithmic factors), where n is the number of input integers, S is the length of the preprocessed data structure, and T is the running time of the query algorithm. This tradeoff was achieved in [22, 17] using the Fiat-Naor generic algorithm for Function Inversion. Consequently, [17] asked whether this algorithm can be improved by leveraging the structure of 3SUM-Indexing.

In this paper, we exploit the structure of 3SUM-Indexing to give a time-space tradeoff of TS=n2.5, which is better than the best known one in the range n3/2Sn7/4. We further extend this improvement to the kSUM-Indexing problem – a generalization of 3SUM-Indexing– and to the related kXOR-Indexing problem, where addition is replaced with XOR. Additionally, we improve the best known time-space tradeoffs for the Jumbled Indexing problem, which is a well-known data structure problem related to 3SUM-Indexing.

Our improvement comes from an alternative way to apply the Fiat-Naor algorithm to 3SUM-Indexing. Specifically, we exploit the structure of the function to be inverted by decomposing it into “sub-functions” with certain properties. This allows us to apply an improvement to the Fiat-Naor algorithm (which is not directly applicable to 3SUM-Indexing), obtained in [18] in a much larger range of parameters. We believe that our techniques may be useful in additional application-dependent optimizations of the Fiat-Naor algorithm.

Keywords and phrases:
Data Structures, 3SUM, Function Inversion
Category:
Track A: Algorithms, Complexity and Games
Funding:
Alexander Golovnev: Supported by the National Science Foundation CAREER award (grant CCF-2338730).
Copyright and License:
[Uncaptioned image] © Itai Dinur and Alexander Golovnev; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Data structures design and analysis
Related Version:
Full Version: https://arxiv.org/abs/2512.04258
Acknowledgements:
We thank the anonymous referees for their very helpful comments.
Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele Puppis

1 Introduction

In the 3SUM problem, the input is a set of integers A={a0,,an1}, and the goal is to find (i,j,k)[n]3 (where [n]={0,,n1}) such that ai+aj+ak=0. The modern version of the famous 3SUM conjecture [15] asserts that the problem cannot be solved in time n2δ for any constant δ>0. This conjecture was shown to imply many conditional lower bounds for geometric, combinatorial, and string search problems (see, e.g., [27] for an excellent survey on this topic).

1.1 3SUM-Indexing

In this paper, we analyze a preprocessing variant of 3SUM, known as 3SUM-Indexing. This variant was first defined by Demaine and Vadhan [11] in an unpublished note, and then reconsidered by Goldstein, Kopelowitz, Lewenstein and Porat [16].

In the 3SUM-Indexing problem, the input is an array of positive integers A={a0,,an1}. An algorithm 𝒜 for the problem is a pair 𝒜=(𝒜0,𝒜1), where 𝒜0 is the preprocessing algorithm and 𝒜1 is the online algorithm. The preprocessing algorithm 𝒜0 receives A as input and outputs a data structure of length S bits.111One can also define the problem by allowing 𝒜0 to output S words of size poly-logarithmic in n. Since we ignore such poly-logarithmic factors in this paper, we consider these definitions equivalent. The online algorithm 𝒜1 receives as input an integer challenge y and has access to the bits of the data structure output by 𝒜0. Its goal is to output a pair (i,j)[n]2 such that ai+aj=y, if such a pair exists, and otherwise. In the cell-probe model, the time complexity of 𝒜1 (denoted by T) is only measured by the number of data structure bits that it queries. One can also consider other computational models which account for the actual runtime of 𝒜1 (e.g., in the RAM model) or the preprocessing time.

There are two trivial algorithms for 3SUM-Indexing: the first one stores A sorted, while on input y, 𝒜1 searches this array for yai for each i[n]. This algorithm has S=O~(n) and T=O~(n) (where the O~ notation suppresses factors poly-logarithmic in the input length). The second algorithm stores the sorted sumset A+A={ai+aj(i,j)[n]2}, while on input y, 𝒜1 searches this sumset. The second algorithm has S=O~(n2) and T=O~(1).

Consequently, [11, 16] formulated three conjectures:

Conjecture 1 ([16]).

If there exists an algorithm which solves 3SUM-Indexing with prepro- cessing space S and T=O~(1) probes then S=Ω~(n2).

Conjecture 2 ([11]).

If there exists an algorithm which solves 3SUM-Indexing with preprocessing space S and T probes, then ST=Ω~(n2).

Conjecture 3 ([16]).

If there exists an algorithm which solves 3SUM-Indexing with T=O~(n1δ) probes for some δ>0 then S=Ω~(n2).

These conjectures are in ascending order of strength:

Conjecture 3Conjecture 2Conjecture 1.

In terms of lower bounds, Demaine and Vadhan proved that any 1-probe data structure for 3SUM-Indexing requires space Ω~(n2), and left the case of T>1 open. Then [17] proved that for every non-adaptive algorithm that uses space S and query time T and solves 3SUM-Indexing, it holds that S=Ω~(n1+1/T). More recently, Chung and Larsen [8] proved similar bounds for adaptive algorithms. All these lower bounds assume the data structure consists of S words of size O~(1). Since proving super-logarithmic query-time bounds for static data structures even with space S=O(n) is a major open problem, the lower bounds of [8] are essentially the best possible (barring a significant breakthrough).

From the algorithmic side, Conjecture 3 was refuted by Kopelowitz and Porat [22] and by [17] using the same techniques. Specifically, [22, 17] describe an algorithm for 3SUM-Indexing with T=O~(nδ) and S=Ω~(n2δ/3). The algorithm is based on the classical Fiat-Naor algorithm [14] for the Function Inversion problem, where the goal is to invert an efficiently computable function f:[N][N] by a two-phase algorithm: a preprocessing algorithm for f that outputs an advice string of length S bits, and an online algorithm that receives a challenge y[N] and finds x[N] such that f(x)=y after making T=O~(N3/S3) queries to f. In the case of 3SUM-Indexing, by hashing, we may essentially assume that the input a0,,an1 satisfies ai[n2] for every i[n]. We then define the function f:[n2][n2] by f(i,j)=ai+aj and apply the Fiat-Naor algorithm to f.

The Fiat-Naor based algorithm of [22, 17] is currently the best known algorithm for 3SUM-Indexing. Recently, Bille et al. [4] proved that well-studied problems in data structures (specifically, Gapped String Indexing and Jumbled Indexing) reduce to 3SUM-Indexing. Thus, the algorithm of [22, 17] is used to obtain the best known algorithms for these problems. The 3SUM-Indexing problem has also inspired more applications of the Fiat-Naor algorithm to related data structure problems [3, 1]. Given the extensive research involving 3SUM-Indexing and its variants, it is natural to ask whether it is possible to exploit the structure of the problem to improve the Fiat-Naor based algorithm of [22, 17]. This question was posed explicitly in [17, Open Question 2] and [28, Lecture 14].

We also mention the recent improvement of the Fiat-Naor algorithm for Function Inversion by [18]. Unfortunately, this improvement is in a restricted parameter range, and when applied to 3SUM-Indexing, the algorithm of [18] is outperformed by the trivial algorithm with S=O~(n),T=O~(n).

1.2 Application-Dependent Improvements of the Fiat-Naor Algorithm

Looking at the open question of [17] from a broader perspective, we recall that the Fiat-Naor algorithm was originally designed to invert “unstructured” cryptographic one-way functions. The fact that it gives the best known time-space tradeoff for a broad spectrum of structured problems [10, 22, 17, 3, 4, 2, 24] is surprising. Quoting [2]:

It is a striking fact that, for each of these problems (3SUM-Indexing, Collinearity Indexing, Gapped String Indexing), the best known space-time trade-offs are achieved using such a general tool as the Fiat-Naor inversion scheme.

More generally, the Function Inversion problem has found major applications across multiple areas such as cryptanalysis [19, 5, 6, 26, 25], circuit and data structure lower bounds [29, 10, 12], algorithms [22, 17, 3, 4, 2, 24], information theory [12], and most recently even meta-complexity [23, 20]. On the other hand, we are not aware of any previous application-dependent improvement of the Fiat-Naor scheme. Thus, finding such improvements is an interesting research topic. Informally, the challenge is due to the unique data structure used by the Fiat-Naor algorithm, which is built by iterating the function we wish to invert. Such iterations seem to destroy most properties that can be exploited to optimize the algorithm (e.g., iterating a function represented by a low-degree polynomial quickly increases its degree).

1.3 Our Results

In this paper, we improve the best known time-space tradeoff for 3SUM-Indexing [22, 17] for the parameter range n3/2Sn7/4. In particular, we obtain the first application-dependent improvement of the Fiat-Naor scheme.

Figure 1: The parameters of the data structures for 3SUM-Indexing are as follows: the trivial algorithm is represented by the dotted green curve, the Fiat-Naor-based algorithm [22, 17] is represented by the dashed blue curve, and our algorithm is represented by the solid red curve.

Specifically, we prove the following theorem.

Theorem 4.

For every 0δ1, there is an (S,T)-algorithm for 3SUM-Indexing with space S=O~(n2.5δ) and query time T=O~(nδ).

Our time-space tradeoff is compared to the previously best known one in Figure 1. In particular, for S=n5/3, we obtain T=O~(n5/6), while the previous best algorithm was the trivial one, which obtains T=O~(n).

We remark that the runtime of the online algorithm 𝒜1 in our algorithm in the standard RAM model is linear in its number of queries to the data structure, up to poly-logarithmic factors. Moreover, the runtime of the preprocessing algorithm 𝒜0 is O~(n2). (An algorithm with truly subquadratic preprocessing time O~(n2ε) would refute the 3SUM conjecture.)

We further apply a variant of our algorithm to the kSUM-Indexing problem, introduced in [17]. In this problem, the input of the preprocessing algorithm is an array of positive integers A={a0,,an1}, and the online algorithm for an integer challenge y finds (i1,,ik1)[n]k1 such that ai1++aik1=y. kSUM-Indexing is a preprocessing version of kSUM and a natural generalization of 3SUM-Indexing.

Once again, we focus on the parameter regime with sub-linear time.

Theorem 5.

For every k3 and every 0δ1, there is an (S,T)-algorithm for kSUM-Indexing with space S=O~(nk0.5δ) and query time T=O~(nδ).

We remark that there is a trivial algorithm for kSUM-Indexing with S=O~(nk2) and T=O~(n), while an application of the Fiat-Naor algorithm [17] gives S=O~(nk1δ/3) and T=O~(nδ). Our algorithm is better than the previous algorithms in the range nk1.5Snk1.25. We further note that there are other trivial algorithms for kSUM-Indexing in the regime of super-linear T, and that our algorithm can be easily extended to this regime too (as done in [17] by taking larger values of δ).

Next, we adapt our algorithm to the kXOR-Indexing problem. In kXOR-Indexing, the input to be preprocessed is an array of n vectors in {0,1}. Then, given a query vector y{0,1}, the goal is to check if there are (k1) input vectors whose XOR is y.

Theorem 6.

For every k3 and every 0δ1, there is an (S,T)-algorithm for kXOR-Indexing with space S=O~(nk0.5δ) and query time T=O~(nδ).

As an additional application, we use the reduction of Bille et al. [4] from the Jumbled Indexing problem to 3SUM-Indexing, and conclude an immediate improvement for it as well.

In the Jumbled Indexing problem (also known as Histogram Indexing), the input to be preprocessed is a string S of length n over an alphabet Σ. Given a query histogram h0|Σ| (i.e., the number of occurrences of each letter from Σ), the task is to check if S contains a substring whose histogram matches h.

In the case of the binary alphabet |Σ|=2, Cicalese et al. [9] gave an efficient algorithm with S=O(N) and T=O(1) solving Jumbled Indexing. For larger alphabets, Kociumaka, Radoszewski, and Rytter [21] designed an algorithm that solves Jumbled Indexing in space S=O~(n2δ) and time T=O~(n(2|Σ|1)δ). Then, Chan and Lewenstein [7] improved the bound to S=O~(n2δ) and T=O~(n(|Σ|+1)δ/2) by utilizing algorithms for a variant of 3SUM. Finally, [4] used a reduction from Jumbled Indexing to 3SUM-Indexing, together with the 3SUM-Indexing algorithm of [22, 17], resulting in an upper bound of S=O~(n2δ/3) and T=O~(nδ). This bound improves on the previous bounds for all alphabets of size |Σ|>5. We further improve algorithms for Jumbled Indexing, achieving S=O~(n2.5δ) and T=O~(nδ). This algorithm outperforms [4] for all n3/2Sn7/4, and it improves on [7] for all |Σ|>1+1/δ.

Corollary 7.

For every 0δ1 and an alphabet Σ of constant size |Σ|=O(1), there is an (S,T)-algorithm for Jumbled Indexing with space S=O~(n2.5δ) and query time T=O~(nδ).

2 Technical Overview

In this section we give a technical overview of our work. Since it is based on previous algorithms for the Function Inversion problem, we start by recalling them.

2.1 The Hellman and Fiat-Naor Algorithms for Function Inversion

2.1.1 Hellman’s algorithm

The research of non-uniform cryptanalytic time-space tradeoffs was initiated by Hellman [19] in 1980. Hellman considered the problem of inverting a function f:[N][N] using a two-phase algorithm. The preprocessing algorithm has full access to f and computes an advice string of S bits. The online algorithm receives as input the advice string and a challenge y[N]. In addition, the online algorithm is allowed to make T oracle queries to f. Its goal is to find a preimage xf1(y) (if such a preimage exists).

Hellman gave a heuristic algorithm for the Function Inversion problem with a time-space tradeoff of TS2=O~(N2), assuming that f is chosen uniformly at random. For parameters s and t, the main data structure computed by the preprocessing algorithm is a table constructed via s chains. Each chain starts from a uniformly chosen point x[N] and is computed via t iterative calls to f, where only x and the endpoint f(t)(x) are stored in the table.222We use the notation f(t) to represent f composed with itself t times. The pairs of start and endpoints are sorted according to the endpoints.

Given this table and a point y[N] to invert, the online algorithm computes up to t iterations of f starting from y, and checks if any of them is an endpoint of a chain stored in the table. If it reaches such an endpoint, it restarts the computation of the chain from the corresponding start point, aiming to reach y, thus successfully inverting it in time O~(t).

The online algorithm succeeds in inverting y if it is covered by one of the chains in the table. Unfortunately, for a uniformly chosen function, one can cover only a small fraction of the image points of f with a single table (assuming sN). More specifically, if st2N, and we have already computed s chains of length t, by the birthday paradox, an additional chain of length t collides with a previous one with high probability. Thus, additional chains do not add much to the coverage of the table. Consequently, a single table only covers about stN/t image points using O~(s) space.

Hellman’s (heuristic) solution was to compute about t such tables, each computed with a different variant of f, defined by composing it with a simple permutation, such that inverting a variant of f is equivalent to inverting f. Heuristically, these t tables cover most of the image points of f. Thus, the preprocessing advice consists of t tables of space about s bits and the online algorithm searches (essentially) each of them in time t. Overall, we have Sst and Tt2, giving TS2t2(st)2N2.

2.1.2 The Fiat-Naor algorithm

Fiat and Naor [14] made Hellman’s algorithm rigorous by composing f with a k-wise independent function for an appropriate choice of k (the details are not important for this paper). More generally, Fiat and Naor considered the problem of inverting an arbitrary function f:[N][N] with collision probability C(f):=Prx,x[N][f(x)=f(x)], and extended the time-space tradeoff for such a function to TS2=O~(N3C(f)).

For functions with a large collision probability, one can do better by artificially decreasing the effective collision probability. Specifically, the advice string additionally consists of (roughly) S points sampled uniformly at random, as well as their images. Using an appropriately chosen pseudorandom function (that is shared between the preprocessing and online algorithms), these images are then bypassed when iterating f for computing the chains in the tables. The online algorithm first checks if y is contained in the image set in the advice string, and if so, it outputs the corresponding preimage. Otherwise, it tries to invert y using the tables.

Observe that with high probability, all images whose preimage size is at least Ω~(N/S) are included in the image set. Thus, with high probability, the collision probability of f is effectively reduced to at most O~(1/S). This leads to a worst-case time-space tradeoff of TS2=O~(N3/S) (i.e., TS3=O~(N3)) for inverting any function.

2.1.3 The improvement by [18]

It was observed in [18] that the Fiat-Naor worst-case time-space tradeoff can be improved. Specifically, [18] proposed an alternative to the preprocessing algorithm that originally included the set of uniformly chosen points and their images in the advice string. In this alternative, using shared randomness, the preprocessing and online algorithms compute such a set of size (roughly) T from a shared random seed. In the worst-case, this effectively reduces the collision probability of f to about 1/T and results in a time-space tradeoff of

TS2=O~(N3/T) (1)

(i.e., TS=O~(N3/2)). This improves upon the Fiat-Naor tradeoff in the case when ST (or SN3/4). On the other hand, we note that the computation of the set of points and their images from the shared random seed is non-uniform (i.e., it is not efficient in the standard RAM model).

We further remark that when TS, the online algorithm of [18] has space complexity of Ω~(T)S. While this online space is ignored in the preprocessing model of computation, this can be viewed as a disadvantage of the algorithm.

2.2 Our Techniques

Recall that the best known worst-case time-space tradeoff for 3SUM-Indexing is TS3=O~(n6). It was derived in [22, 17] by applying the Fiat-Naor tradeoff to the function f(i,j)=ai+aj (one may assume that f:[n2][n2] by standard hashing techniques). Moreover, there is a trivial time-space tradeoff of T=S=O~(n), while clearly S=Ω~(n) must hold for any algorithm that succeeds answering all the queries. Thus, the only relevant parameter range is Tn (and S=Ω~(n)). Consequently, the improvement of [18] to the Fiat-Naor tradeoff (effective only when ST) is not directly applicable to 3SUM-Indexing.

2.2.1 An initial improvement in the cell-probe model

A closer look reveals that a variant of the improvement of [18] is applicable in the cell-probe model, where we allow the online algorithm to be inefficient as long as it reads only a few positions of the advice. Namely, we measure its complexity only by the number of queries it makes to the advice string (each query reads a word of a poly-logarithmic number of bits).

Specifically, in order to reduce the effective collision probability of f, both the preprocessing and online algorithms sample the same uniform subset of A, denoted A, of size (about) T. Now the online algorithm will correctly answer all queries from the set A+A at no cost (as this does not require reading any part of the advice). Next, we again define f(i,j)=ai+aj with one modification: whenever ai+aj falls into A+A, f just outputs a pseudorandom value. With high probability, this reduces the (worst-case) collision probability of f to about 1/T2, resulting in a time-space tradeoff of about TS2=O~(n6/T2), or T3S2=O~(n6). This tradeoff is better than the known one TS3=O~(n6) when ST2 (or Sn12/7).

2.2.2 Our algorithm

We devise an improved algorithm with the tradeoff of TS=O~(n2.5). This tradeoff is equivalent to T2S2=O~(n5), and since Tn, it is always better than the previous one of T3S2=O~(n6) for all relevant parameter settings. Moreover, it is obtained by an efficient uniform online algorithm, rather than in the cell-probe model. Since this algorithm strictly improves upon the cell-probe algorithm, we will not consider the cell-probe algorithm in the remainder of this paper.

We now sketch the details of our improved algorithm. The improvement still involves applying the technique of [18]. However, we first derive an alternative way to apply the Fiat-Naor algorithm to 3SUM-Indexing which “breaks down” the function f(i,j)=ai+aj into about n “sub-functions” with domain and range of size about n. The preprocessing algorithm will apply the Fiat-Naor preprocessing algorithm to each such function independently (with space reduced by a factor of n).

Given a query yA+A, the task of the online algorithm will be reduced to inverting only a single such sub-function. Moreover, given the advice string, each sub-function will be efficiently computable.

Since both the space and the range size of each sub-function is reduced by a factor of about n, while only one function is inverted online (and it is efficiently computable), we can obtain the time-space tradeoff T(S/n)3=O~(n3), or TS3=O~(n6). This only recovers the known Fiat-Naor tradeoff for 3SUM-Indexing. Yet, now the improvement of [18] will be much more noticeable: the task of the online algorithm is reduced to inverting a single function with range size of about n, giving the tradeoff T(S/n)2=O~(n3/T), or TS=O~(n2.5). This tradeoff is similar to Equation 1, with the space divided by n (as each sub-function is preprocessed separately).

Interestingly, we also observe that unlike the original application of [18] to the Function Inversion problem (where the online space complexity exceeded the advice string length), the space complexity of our online algorithm is still O~(S+T)=O~(S) (as ST). For a similar reason, unlike [18], our algorithm does not require any shared randomness between the preprocessing and online algorithms, while running efficiently in the RAM model. Specifically, rather than a seed that needs to be expanded inefficiently, our advice string includes the actual set of uniformly chosen points for each sub-function. Moreover, as all sub-functions can share the same set (up to a simple translation), we include only a single set. In our setting, this has negligible overhead in terms of the length of the advice string.

It remains to show how the sub-functions are defined. In order to fulfill the above constraints, the definition crucially relies on the additive structure of the problem. In particular, the preprocessing algorithm draws two random primes p,q=Θ~(n), so that it is sufficient to solve 3SUM-Indexing modpq. For d[q], the function fd:[n][p] only iterates over pairs (i,j)[n]2 such that ai+ajdmodq. On input i[n], it is defined by computing (the first) j[n] such that ai+ajdmodq, and returning (ai+aj)modp (if such j does not exist, it returns a predefined value chosen at random). Thus, inverting yA+A is reduced to computing fymodq1(ymodp). In order for each fd to be efficiently computable, the advice string also includes a sorted array consisting of the values a1modq,,anmodq. Thus, on input i[n], (the first) j[n] such that ai+ajdmodq is computed by binary search for daimodq.

The idea of improving the Fiat-Naor algorithm by defining appropriate efficiently-computable sub-functions is rather generic, and may find additional applications besides 3SUM-Indexing and related problems with additive structure. Thus, we first devise a general improved algorithm for Function Inversion, assuming that the inverted function can be broken down into sub-functions with certain constraints. We then apply this algorithm to 3SUM-Indexing.

3 Preliminaries

We denote the sets of integers and non-negative integers by and 0, respectively. For a positive integer m, [m] denotes the set of integers {0,,m1}. For two vectors x,y{0,1}, by xy{0,1} we denote their bitwise XOR. For two sets of integers A,B, we use A+B to denote the set of pairwise sums A+B={a+b:aA,bB}. For a positive integer k and a set A of integers, by kA we denote the set of all k-wise sums of elements from A:

kA={a1++ak:a1,,akA}.

For a function f:[N][N], Im(f) denotes the image of f, and f1(y)={x:f(x)=y}.

We use log() to denote the logarithm base 2, i.e., log(2n)=n, and we use ln() to denote the natural logarithm.

The O~() and Ω~() notations suppress factors poly-logarithmic in the input length. For example, for an input A=(a1,,an)0n, where M=maxiai, the running time O~(nδ) stands for nδpoly(log(n)+log(M)). Similarly, the and notations suppress factors poly-logarithmic in the input length.

We will use the following version of the prime number theorem, where π(n) denotes the number of primes in the interval [n] (see, e.g., [13]).

Theorem 8 (Prime Number Theorem).

For every ε>0, there exists n0 such that for all n>n0, it holds that

(1ε)n/ln(n)π(n)(1+ε)n/ln(n).

3.1 Function Inversion

Definition 9.

The Function Inversion problem is a problem to be solved in two phases by a pair of randomized algorithms 𝒜=(𝒜0,𝒜1). The algorithms receive oracle access to a function f:[N][N] (where N=O~(N)), and both 𝒜0 and 𝒜1 can evaluate f at any point x[N] in time O~(1).

Preprocessing phase.

In the first phase, the preprocessing algorithm 𝒜0 preprocesses f into advice 𝒫 consisting of S bits.

Query phase.

In the next phase, the online algorithm 𝒜1 receives a query y[N] and the advice string 𝒫. If yIm(f), then 𝒜1 outputs , otherwise 𝒜1 outputs an xf1(y). The running time of the algorithm 𝒜1 is T.

We say that such an algorithm 𝒜 for Function Inversion is an (S,T)-algorithm if for every function f, with probability at least 11/N over the randomness of the algorithms, the online algorithm 𝒜1 correctly answers all queries.

We say that such an algorithm 𝒜 for Function Inversion is a weak (S,T)-algorithm if for every function f, for every query y[N] such that f1(y) is non-empty, the online algorithm 𝒜1 correctly answers y with probability at least 1/2 over the randomness of the algorithms.

The classical rigorous algorithm for the Function Inversion problem due to Fiat and Naor [14] solves the problem in space S and time T as long as S3T=Ω~(N3).

Theorem 10 ([14]).

For every 0δ1, there is an (S,T)-algorithm for Function Inversion with space S=O~(N1δ/3) and T=O~(Nδ).

We will also use another version of this algorithm for Function Inversion that performs better for TS.

Theorem 11 ([18]).

For every 0δ1, there is an (S,T)-algorithm for Function Inversion with space S=O~(N1.5δ) and T=O~(Nδ). The algorithm uses O~(T)=O~(Nδ) bits of shared randomness.

We stress that the online algorithms of Theorems 10 and 11 run in time T in the RAM model, but the algorithm of Theorem 11 assumes shared randomness. [18, Section 6] proves that Theorem 11 can be implemented without shared randomness at the expense of having computationally unbounded preprocessing and a non-uniform online algorithm (as opposed to a RAM online algorithm). In Theorem 16, we show that in our application, the need for shared randomness can be completely eliminated with no impact on the parameters or the running time of the preprocessing and online algorithms by simply including the shared random string as part of the preprocessed advice.

We will use the following lemma, which applies standard techniques to amplify the success probability of a weak function inversion algorithm.

Lemma 12.

Let f:[N][N] be a function such that N=O~(N). Let 𝒜=(𝒜0,𝒜1) be a weak (S,T)-algorithm for inverting f. Then there exists an (S,T)-algorithm for inverting f with S=O~(S) and T=O~(T).

Proof.

The algorithm 𝒜=(𝒜0,𝒜1) will create =log(NN) independent copies 𝒜0,,𝒜1 of the assumed weak algorithm, where each copy uses S bits of preprocessing and answers its queries in time T.

Preprocessing phase:

The advice string produced by 𝒜0 consists of the advice strings 𝒫0,,𝒫1 produced by 𝒜0,,𝒜1. Clearly, the space complexity of the algorithm is S=S=O~(S).

Query phase:

Given a query y[N], 𝒜1 collects the answers (x0,,x1) of the online algorithms 𝒜1,,𝒜. (Some of these answers might be , in which case it ignores them.) If for some i[], f(xi)=y, then 𝒜1 outputs xi, otherwise it outputs . The query time of 𝒜1 is T=O~(T)=O~(T).

Analysis:

It remains to prove that 𝒜1 answers all queries y[N] correctly with probability at least 11/N. Since 𝒜1 verifies that f(xi)=y, it never outputs a false positive solution. In particular, if f1(y) is empty, then the algorithm always outputs the correct answer . Now assume that f1(y) is non-empty. Then, the probability that all instances 𝒜1,,𝒜 give wrong answers on y is at most 1/2. Taking a union bound over all y[N], the probability that at least one query is not answered correctly is at most

N2N/(NN)=1/N.

3.2 Data Structure Problems

Definition 13.

For a constant integer k3, the kSUM-Indexing problem is a problem to be solved in two phases by a pair of randomized algorithms 𝒜=(𝒜0,𝒜1).

Preprocessing phase.

In the first phase, the preprocessing algorithm 𝒜0 receives a list of n integers A=(a0,,an1)0n, and preprocesses them into advice 𝒫 consisting of S bits.

Query phase.

In the next phase, the online algorithm 𝒜1 receives a query b0 and the advice string 𝒫. If b(k1)A, then 𝒜1 outputs , otherwise 𝒜1 outputs a tuple (i1,,ik1)[n]k1 such that ai1++aik1=b. The running time of the algorithm 𝒜1 is T.

We say that such an algorithm 𝒜 for kSUM-Indexing is an (S,T)-algorithm if for every input A, with probability at least 11/n over the randomness of the algorithms, the online algorithm 𝒜1 correctly answers all queries.

A few remarks about the definition of kSUM-Indexing are in order.

 Remark 14.
  1. 1.

    Since in this work we are concerned with upper bounds on the complexity of kSUM-Indexing, we intentionally choose the weaker computational model for Definition 13 (which only makes our results stronger). Another standard computational model for this problem is the cell-probe model, where (i) the preprocessing and online algorithms are computationally unbounded, and (ii) T only bounds the number of bits of the advice 𝒫 read by the online algorithm 𝒜1.

  2. 2.

    All randomized algorithms can be implemented as deterministic algorithms in the cell-probe model by fixing the “best” randomness in the computationally unbounded preprocessing phase. We remark that the algorithms we present in this work can be derandomized much more efficiently by verifying that all elements of (k1)A appear in some chain of the Function Inversion subroutine.

  3. 3.

    While the running time of the preprocessing algorithm is not bounded in Definition 13, we note that the preprocessing algorithms presented in this work are efficient and run in time O~(nk1).

  4. 4.

    The success probability of the kSUM-Indexing algorithm is defined to be at least 11/n, but it can be easily amplified by standard techniques (as in Lemma 12).

  5. 5.

    One can assume without loss of generality that the input list of integers (a1,,an)[M]n satisfies M=O~(nk1). This can be achieved by reducing the inputs (a1,,an) modulo several primes pi=O~(nk1) (see, e.g., [17, Theorem 7]).

Next, we define other data structure problems we are considering in this paper. In order to define the Jumbled Indexing problem, we first need to define the histogram of a string SΣn over an alphabet Σ. The histogram of S is a vector h0|Σ|, where the ith coordinate of h is the number of occurrences of the ith character of the alphabet Σ in the string S.

  • For k3, the kXOR-Indexing problem is a variant of kSUM-Indexing where the addition is replaced by XOR. The kXOR-Indexing problem takes as input a list of n vectors A=(a0,,an1)({0,1})n. For a query b{0,1}, the task is to output a tuple (i1,,ik1)[n]k1 such that ai1aik1=b if such a tuple exists, and to output otherwise.

  • For nm, the 3SUM-Indexing(n,m) problem is a variant of 3SUM-Indexing where the two input lists may have different lengths. The 3SUM-Indexing(n,m) problem takes as input a list of n non-negative integers A=(a0,,an1)0n and a list of m non-negative integers B=(b0,,bm1)0m. For a query b0, the task is to output a pair (i,j)[n]×[m] such that ai+bj=b if such a pair exists, and to output otherwise. For n=m, 3SUM-Indexing(n,m) is simply the 3SUM-Indexing problem.

  • The Jumbled Indexing problem takes as input a string S of length n over an alphabet Σ. For a query histogram h0|Σ|, the task is to output 1 if there exists a substring of S with histogram h, and to output 0 otherwise.

We will use the following efficient reduction from Jumbled Indexing to 3SUM-Indexing shown by [4] (the reduction was also implicitly used in [7]).

Theorem 15 ([4, Corollary 2]).

Assume there is an (S,T)-algorithm for 3SUM-Indexing. Then there is an (S,T)-algorithm for Jumbled Indexing over alphabets of constant size |Σ|=O(1), where S=O~(S) and T=O~(T).

4 Function Inversion with Sub-Functions

In Theorem 16, we describe the structure of f that leads to an improved inversion algorithm for some parameters. In Section 5, we identify this structure for 3SUM-Indexing and apply Theorem 16. We present our main result in this modular way because we believe that Theorem 16 may find additional applications for other data structure problems.

Specifically, we present an efficient function inversion algorithm for a class of structured functions f:[N][N]. We assume the existence of two efficient mappings, MAP1:[N][D] and MAP2:[N][L], along with D efficiently computable sub-functions fd:[L][L], such that the following holds with high probability: to invert f at a point y, it suffices to invert the function fMAP1(y) at the point MAP2(y). In this case, the problem of inverting f reduces to inverting one of the D functions fd, each of which has a smaller domain. While this reduction alone does not improve upon the classical Fiat–Naor algorithm, combining it with the space-efficient inversion algorithm from Theorem 11 allows us to improve the known bounds in this special setting.

Theorem 16.

Let f:[N][N] be a function such that N=O~(N) and let D^=O~(N),L^=O~(N),S^=O~(N) be integer parameters. Assume that there is a randomized algorithm that takes f as input and outputs (D,L,L,AUX), where D,L,L0 satisfy D=O~(D^),L=O~(L^),L=O~(L^), and AUX is an auxiliary string of length O~(S^) bits, such that the following hold:

  1. 1.

    For every d[D], there is a deterministic (sub) function fd:[L][L].

  2. 2.

    There are deterministic query mapping functions MAP1:[N][D], MAP2:[N][L], and an output translation function TR:[N]×[L][N].

  3. 3.

    All functions fd,MAP1,MAP2,TR, given D,L,L, and access to AUX, can be evaluated at any point in time O~(1).

  4. 4.

    For every y[N] such that f1(y) is non-empty, with probability at least 5/6 (over the randomness of ), there is x[L] such that fMAP1(y)(x)=MAP2(y).

  5. 5.

    For every y[N] such that f1(y) is non-empty, with probability at least 5/6 (over the randomness of ), every x[L] such that fMAP1(y)(x)=MAP2(y) satisfies TR(y,x)f1(y).

Then, for every 0δ1, there is an (S,T)-algorithm for inverting f with space S=O~(L^1.5δD^+S^+L^δ) and query time T=O~(L^δ).

In particular, if L^=O~(N/D^), then for every 0δ1, there is an (S,T)-algorithm for inverting f with S=O~(N1.5δD^δ0.5+S^+Nδ/D^δ) and T=O~(Nδ/D^δ).

We stress that we assume that the description of f and the output (D,L,L,AUX) of the algorithm uniquely define all functions fd,MAP1,MAP2 and TR. Depending on the randomness of , these functions may have different domains and ranges, but they always satisfy D=O~(D^),L=O~(L^),L=O~(L^). We further clarify that all O~() and Ω~() notations used in the theorem suppress poly-logarithmic factors in N.

Proof of Theorem 16.

By Lemma 12, it is sufficient to describe a weak (S,T)-algorithm 𝒜=(𝒜0,𝒜1) for f. The algorithm will use the algorithm of Theorem 11, which requires shared randomness. We will first apply this algorithm naively, and then show how to remove the shared randomness with minimal cost.

Preprocessing phase:

𝒜0 runs and obtains (D,L,L,AUX). For every d[D], it runs the preprocessing algorithm of Theorem 11 for the function fd, and obtains the advice 𝒫d. The advice string is 𝒫=(D,L,L,AUX,𝒫1,,𝒫D).

Query phase:

On input query y[N] and advice string 𝒫=(D,L,L,AUX,𝒫1,,𝒫D), 𝒜1 first computes d=MAP1(y) and y=MAP2(y). It then runs the online algorithm of Theorem 11 for fd with advice string 𝒫d and query y. If this algorithm outputs , then 𝒜1 outputs . Otherwise, denote the output of that algorithm by x[L]. 𝒜1 then computes x=TR(y,x). If f(x)=y, the algorithm outputs x, and it outputs otherwise.

Observe that by the definition of 𝒜 and by Theorem 11, for every 0δ1, we have S=O~(L^1.5δD^+S^) and T=O~(L^δ) (since fd,MAP1,MAP2,TR all run in time O~(1)).

Analysis:

Fix y[N] for which f1(y) is non-empty. 𝒜1 succeeds if the following three events occur simultaneously: (1) fMAP1(y)1(MAP2(y)) is non-empty, (2) the online algorithm of Theorem 11 returns x[L] such that fMAP1(y)(x)=MAP2(y), and (3) TR(y,x)f1(y).

By Item 4 the first event occurs with probability at least 5/6, in which case the second event occurs with probability 11/L5/6 (we may assume that L6, as otherwise, inverting fMAP1(y) in constant time is trivial). By Item 5, the third event occurs with probability 5/6.

Overall, by a union bound, the success probability of 𝒜1 is at least 13/6=1/2, hence 𝒜 is a weak (S,T)-algorithm as claimed.

Finally, we deal with the shared randomness of Theorem 11. For each sub-function fd:[L][L], the length of the shared string is O~(L^δ). By amplification (Lemma 12), a shared string of length O~(L^δ) can guarantee success probability of 1O~(1/(ND^)). Therefore, by a union bound, the same shared random string can be used for all O~(D^) sub-functions fd, and thus, except with probability at most 1/(2N), succeed for all of them simultaneously. We now modify the preprocessing algorithm 𝒜0 to send this random string as part of the preprocessing advice. Since this random string is of length O~(L^δ) bits, we conclude that S=O~(L^1.5δD^+S^+L^δ) as claimed.

5 Algorithm for 3SUM-Indexing

In this section, we present an algorithm for 3SUM-Indexing(n,m) in Theorem 17. This algorithm will be used to prove our main results for 3SUM-Indexing and its generalization, kSUM-Indexing.

Theorem 17.

For every 0δ1, there is an (S,T)-algorithm for 3SUM-Indexing(n,m) with space S=O~(n1.5δm) and query time T=O~(nδ).

Proof.

Let A=(a0,,an1),B=(b0,,bm1) be the input of the algorithm, and let M=max(maxiai,maxjbj) be the maximum element in the two arrays. We will assume that M8 as otherwise the problem can be trivially solved in constant time and space S=T=O(1) by storing an answer for each query y[2M].

Let k1=50nln(2M)lnln(2M)=O~(n), and k2=50mln(2M)lnln(2M)=O~(m). Let I1={k1,, 2k1}, and I2={k2,, 2k2}. First, we show that the number of primes in I1, denoted by π(I1), is at least 6nlogn(2M). A similar argument shows that π(I2)6mlogm(2M). By the prime number theorem (Theorem 8) applied with ε=1/8, for all large enough n, we have that
π(I1)(1ε)2k1ln(2k1)(1+ε)k1ln(k1)=k1ln(k1)(13ε2(1ε)ln(2)ln(2k1))k12ln(k1)6nlogn(2M).

Here the penultimate inequality uses k1213 (which holds for all large enough n), and the last inequality uses lnln(2M)1 and n50.

We now prove the result using Theorem 16. First, let N=nm, N=2M, and let us define f:[N][N] as f(i,j)=ai+bj. Let D^=m,L^=n,S^=m.

Since L^=n=O~((nm)/D^), assuming Theorem 16 applies with these parameters, we have that for every 0δ1, there is an (S,T)-algorithm for 3SUM-Indexing(n,m) with space

S =O~(N1.5δD^δ0.5+S^+Nδ/D^δ)
=O~((nm)1.5δ(m)δ0.5+m+nδ)
=O~(n1.5δm+m+nδ)
=O~(n1.5δm)

(recalling that mn) and query time

T=O~(Nδ/D^δ)=O~(nδ),

proving the theorem.

We now define the algorithms and functions required to apply Theorem 16.

Algorithm .

works as follows: It draws p from I1 and q from I2 as independent and uniformly random primes, and sets L=n,L=p and D=q. AUX contains:

  1. 1.

    The n input numbers A=(a0,,an1) sorted in the non-decreasing order (and in the increasing order of i in case of ties);

  2. 2.

    The m input numbers B=(b0,,bm1) sorted in the non-decreasing order (and in the increasing order of j in case of ties);

  3. 3.

    The m input numbers B=(b0,,bm1) sorted in the non-decreasing order of their remainders modulo q (and in the increasing order of j in case of ties);

  4. 4.

    A uniformly chosen integer z[p].

Functions fd:[n][p] for d[q]:

For every d[q], define the function fd:[n][p] as follows. For every i[n],
fd(i)={ai+bjmodp,for minimum j such that ai+bjdmodq if such j[m] exists;z,if ai+bjdmodq for all j[m].

Observe that given the list of input numbers B sorted in the non-decreasing order by their remainders modulo q (in AUX), the function fd(i) is indeed computable in time O~(1) by binary search for daimodq, as required by Item 3 of Theorem 16.

Functions MAP1:[2M][q], MAP2:[2M][p]:

define MAP1(y)=ymodq and MAP2(y)=ymodp. Clearly, these functions are computable in time O~(1), as required by Item 3 of Theorem 16.

Function TR:[2M]×[n][n]×[m]:

Given y[2M] and i[n], TR(y,i) uses binary search to find a bj such that ai+bj=y, and returns (i,j) (if no such j is found, it returns an arbitrary pair, e.g., (1,1)). Clearly, TR is computable in time O~(1) given the sorted list of numbers, as required by Item 3 of Theorem 16.

Analysis:

It remains to prove that the defined functions satisfy the constraints of Item 4 and Item 5 of Theorem 16.

We first prove the constraint of Item 4. Fix y[2M] such that yA+B, namely, there exist (i,j)[n]×[m] such that ai+bj=y. Fix such (i,j).

We claim that

Pr[j[m]:bjbjbjbjmodq]1/6. (2)

This implies that Pr[fymodq(i)=(ai+bjmodp)=(ymodp)]5/6, hence the constraint of Item 4 holds.

To prove Equation 2, observe that bjbj{2M,,2M}\{0}, hence bjbj has at most logm(2M) distinct prime factors from I2. For a fixed bj, the probability (over the choice of q) that bjbj0modq is then at most logm(2M)/π(I2)16m. Taking a union bound over all j[m], such that bjbj we have that bjbjmodq for all j such that bjbj with probability at least 5/6.

Next, we prove the constraint of Item 5. Again, fix yA+B. We claim that

Pr[yzmodp] =11/p 11/n, (3)
Pr[|{yA+B,yymodpq}|=1]  35/36. (4)

Given that yzmodp, if fymodq(i)=ymodp for some i[n], then there exists j[m] such that ai+bjymodpq. Furthermore, from |{yA+B,yymodpq}|=1, we have that ai+bj=y, implying that TR(y,i)=(i,j).

Therefore, these two inequalities imply that the constraint of Item 5 holds with probability at least 35/361/n5/6 (for sufficiently large n), as required.

It remains to prove the two inequalities. The proof of Equation 3 is trivial by the uniform choice of z[p].

The proof of Equation 4 is similar to the proof of Equation 2: let yA+B such that yy. Since yy{2M,,2M}\{0}, we have that yy has at most logn(2M) distinct prime factors from I1 and at most logm(2M) distinct prime factors from I2. For a fixed y, the probability (over the choice of p and q) that yy0modpq is then at most (logn(2M)/π(I1))(logm(2M)/π(I2))136(nm). Taking a union bound over all yA+B, such that yy we have that yymodpq for all yy with probability at least 35/36.

We are now ready to conclude Theorem 4 from Theorem 17. See 4

Proof.

By setting m=n in Theorem 17, we obtain an (S,T)-algorithm for 3SUM-Indexing with space S=O~(n2.5δ) and query time T=O~(nδ).

6 Generalizations and Applications

We begin this section with a generalization of the algorithm for 3SUM-Indexing to kSUM-Indexing. See 5

Proof.

Let A={a0,,an1} be an instance of kSUM-Indexing. We define a 3SUM-Indexing(n,m) instance with input (A,B) by setting B=(k2)A. Clearly, each query b to kSUM-Indexing on input A, is equivalent to the same query to 3SUM-Indexing(n,m) on input (A,B). The constructed instance of 3SUM-Indexing(n,m) has m=O(nk2). Applying Theorem 17 to this instance, we deduce that for every 0δ1, there is an (S,T)-algorithm for kSUM-Indexing with space

S=O~(n1.5δm)=O~(nk0.5δ)

and query time

T=O~(nδ),

which completes the proof. In the next theorem, we show that one can modify the proofs of Theorems 17 and 5 to obtain an analogous result for the kXOR-Indexing problem. See 6

Proof sketch.

The main difference between the proofs of this theorem and Theorem 5 is in the way we define the functions MAP1,MAP2,TR, and fd when applying Theorem 16. Let A=(a0,,an1) be the input of the algorithm, where each ai𝔽2 is viewed as a vector from 𝔽2. Let B=(b0,,bm1)=(k2)A, where the addition, again, is over 𝔽2, and m=O(nk2). We will assume that 1.5logn as otherwise the problem can be trivially solved in constant time and space S=O~(n1.5)=O~(nk0.5δ) by storing an answer for each query y𝔽2.

The algorithm samples independent uniformly random full-rank matrices P𝔽2p× and Q𝔽2q× for p=logn+O(1) and q=logm+O(1). Then MAP1:𝔽2𝔽2q and MAP2:𝔽2𝔽2p are defined as

MAP1(y) =Qy,
MAP2(y) =Py.

Let z𝔽2p be a uniformly random vector. For every d𝔽2q, we define the function fd:[n]𝔽2p as follows. For every i[n],

fd(i)={P(aibj),for minimum j such that Q(aibj)=d if such j[m] exists;z,if Q(aibj)d for all j[m].

Note that each fd can be efficiently computed given a sorted list of Qbj for all j[m]. Finally, Given y𝔽2 and i[n], TR(y,i) uses binary search to find a bj such that aibj=y, and returns (i,j) (if no such j is found, it returns an arbitrary pair, e.g., (1,1)). TR is computable in time O~(1) given a sorted list of bj. We now apply Theorem 16 with the only difference that the ranges and domains of the functions are not subsets of integers but vector spaces over 𝔽2. It is now not hard to see that analogues of Equations 2, 3, and 4 hold for the functions defined above.

Finally, we present an immediate application of the 3SUM-Indexing algorithm from Theorem 4 to the Jumbled Indexing problem.

Corollary 7. [Restated, see original statement.]

For every 0δ1 and an alphabet Σ of constant size |Σ|=O(1), there is an (S,T)-algorithm for Jumbled Indexing with space S=O~(n2.5δ) and query time T=O~(nδ).

Proof.

This result immediately follows from the reduction from Jumbled Indexing over constant-size alphabets to 3SUM-Indexing of [4] (Theorem 15) and the 3SUM-Indexing algorithm from Theorem 4.

References

  • [1] Josh Alman, Yizhi Huang, and Kevin Yeo. Fine-grained complexity in a world without cryptography. In EUROCRYPT, 2025.
  • [2] Boris Aronov, Jean Cardinal, Justin Dallant, and John Iacono. A general technique for searching in implicit sets via function inversion. In SOSA, 2024.
  • [3] Boris Aronov, Esther Ezra, Micha Sharir, and Guy Zigdon. Time and space efficient collinearity indexing. Computational Geometry, 110:101963, 2023. doi:10.1016/J.COMGEO.2022.101963.
  • [4] Philip Bille, Inge Li Gørtz, Moshe Lewenstein, Solon P. Pissis, Eva Rotenberg, and Teresa Anna Steiner. Gapped string indexing in subquadratic space and sublinear query time. In STACS, 2024. doi:10.4230/LIPIcs.STACS.2024.16.
  • [5] Alex Biryukov and Adi Shamir. Cryptanalytic time/memory/data tradeoffs for stream ciphers. In ASIACRYPT, 2000.
  • [6] Alex Biryukov, Adi Shamir, and David Wagner. Real time cryptanalysis of A5/1 on a PC. In FSE, 2001.
  • [7] Timothy M. Chan and Moshe Lewenstein. Clustered integer 3SUM via additive combinatorics. In STOC, 2015.
  • [8] Eldon Chung and Kasper Green Larsen. Stronger 3SUM-Indexing lower bounds. In SODA, 2023.
  • [9] Ferdinando Cicalese, Gabriele Fici, and Zsuzsanna Lipták. Searching for jumbled patterns in strings. In Prague Stringology Conference, 2009.
  • [10] Henry Corrigan-Gibbs and Dmitry Kogan. The function-inversion problem: Barriers and opportunities. In TCC, 2019.
  • [11] Erik D. Demaine and Salil P. Vadhan. Some notes on 3SUM, December 2001. Unpublished manuscript.
  • [12] Pavel Dvořák, Michal Koucký, Karel Král, and Veronika Slívová. Data structures lower bounds and popular conjectures. In ESA, 2021. doi:10.4230/LIPIcs.ESA.2021.39.
  • [13] Paul Erdős. On a new method in elementary number theory which leads to an elementary proof of the prime number theorem. Proceedings of the National Academy of Sciences, 35(7):374–384, 1949.
  • [14] Amos Fiat and Moni Naor. Rigorous time/space tradeoffs for inverting functions. In STOC, 1991.
  • [15] Anka Gajentaan and Mark H. Overmars. On a class of O(n2) problems in computational geometry. Computational geometry, 5(3):165–185, 1995. doi:10.1016/0925-7721(95)00022-2.
  • [16] Isaac Goldstein, Tsvi Kopelowitz, Moshe Lewenstein, and Ely Porat. Conditional lower bounds for space/time tradeoffs. In WADS, 2017.
  • [17] Alexander Golovnev, Siyao Guo, Thibaut Horel, Sunoo Park, and Vinod Vaikuntanathan. Data structures meet cryptography: 3SUM with preprocessing. In STOC, 2020.
  • [18] Alexander Golovnev, Siyao Guo, Spencer Peters, and Noah Stephens-Davidowitz. Revisiting time-space tradeoffs for function inversion. In CRYPTO, 2023.
  • [19] Martin Hellman. A cryptanalytic time-memory trade-off. IEEE Transactions on Information Theory, 26(4):401–406, 1980. doi:10.1109/TIT.1980.1056220.
  • [20] Shuichi Hirahara, Rahul Ilango, and Ryan Williams. Beating brute force for compression problems. In STOC, 2024.
  • [21] Tomasz Kociumaka, Jakub Radoszewski, and Wojciech Rytter. Efficient indexes for jumbled pattern matching with constant-sized alphabet. In ESA, 2013.
  • [22] Tsvi Kopelowitz and Ely Porat. The strong 3SUM-INDEXING conjecture is false. arXiv, 2019. arXiv:1907.11206.
  • [23] Noam Mazor and Rafael Pass. The non-uniform perebor conjecture for time-bounded Kolmogorov complexity is false. In ITCS, 2024. doi:10.4230/LIPIcs.ITCS.2024.80.
  • [24] Samuel McCauley. Improved space-efficient approximate nearest neighbor search using function inversion. In ESA, 2024. doi:10.4230/LIPIcs.ESA.2024.88.
  • [25] Arvind Narayanan and Vitaly Shmatikov. Fast dictionary attacks on passwords using time-space tradeoff. In CCS, 2005.
  • [26] Philippe Oechslin. Making a faster cryptanalytic time-memory trade-off. In CRYPTO, 2003.
  • [27] Virginia Vassilevska Williams. On some fine-grained questions in algorithms and complexity. In ICM 2018, 2018.
  • [28] Virginia Vassilevska Williams and Ryan Williams. Fixed-parameter and fine-grained complexity, 2024. Lecture Notes.
  • [29] Andrew Chi-Chih Yao. Coherent functions and program checkers. In STOC, 1990.