# Security of pseudorandom correlation for bilinear correlations

A pseudorandom correlation generator for bilinear correlation (namely, $$x_0 \otimes x_1 = z_0 + z_1$$, where party $$\sigma$$ gets $$x_\sigma, z_\sigma$$) over some field $$F$$ works roughly as follows (based on Figure 14 of https://eprint.iacr.org/2022/1035):

Gen:

1. Pick two random sparse vectors of weight $$t$$ $$e_0, e_1 \gets F^n$$. Let $$f$$ be such that $$f(i) = (e_0 \otimes e_1)_i$$
2. Compute $$(K_0, K_1) \gets MPFSS.Gen(f)$$, i.e., generate two keys from the multi-point function secret sharing scheme.
3. Output $$(K_0, e_0), (K_1, e_1)$$.

Eval($$\sigma, (K_\sigma, e_\sigma)$$):

1. Compute $$x_\sigma \gets H \cdot e_\sigma$$, where $$H$$ is a parity check (compressing) matrix where the dual-LPN problem is hard.
2. Compute $$u_\sigma \gets MPFSS.FullEval(\sigma, K_\sigma)$$.
3. Output $$(x_\sigma, (H \otimes H)\cdot u_\sigma)$$.

The scheme is correct because $$K_\sigma$$ is essentially a compressed additive share of $$e_0 \otimes e_1$$.

My question is on the security of the scheme. In Theorem 10.2 (https://eprint.iacr.org/2022/1035) it says the construction is secure for $$\log_2 |F| = O(\lambda)$$ where $$\lambda$$ is the security parameter. But I don't see where this requirement comes into play, assuming the Gen function is executed by a TTP. As far as I know, LPN works for small fields. And the MPFSS, assuming it's built from the DPF construction from https://eprint.iacr.org/2018/707, there are no restrictions on the field size.

I actually can’t remember exactly why I wrote Theorem 10.2 this way. The construction works perfectly fine over arbitrary rings (provided that LPN is secure over this ring). The only place where the size of the ring (or field) shows up is in the seed size: the seed is of size $$O(\lambda \cdot t^2 \cdot \log n)$$ bits. When we use a field of size $$2^{O(\lambda)}$$, the size becomes equivalent to $$O(t^2 \cdot \log n)$$ field elements, which matches what I wrote in the theorem (i.e. the theorem is correct as written), but it’s a relatively obfuscated way of saying that it works for any field and that the seed length will be $$O(\lambda \cdot t^2 \cdot \log n)$$ bits in general. It might be a bad copy-pasting or a remainder of an older version. Good catch!