Polynomial Interpolation and Data Integrity

90 Views Asked by At

This question is about polynomial interpolation and security.

Please consider a scenario where we have a polynomial $f$, one of whose roots is $a$. We evaluate it at some $\textbf{x}=(x_0,\ldots,x_n)$ and this yields $\textbf{y}=(y_0,\ldots,y_n)$, where $y_i=f(x_i)$. We shuffle the elements in $\textbf{y}$. Then we give $\textbf{x}$ and the shuffled $\textbf{y}$ to an untrusted server.

The server may try to add some more roots to it by multiplying elements in $\textbf{y}$ by some elements of its choice. Note that the server does not know the original ordering of $\textbf{y}$ and it does not know $a$, too. So at any point in time we can download $\textbf{y}$ and un-shuffle it then check whether $a$ is among the roots. If it is correct then the elements in $\textbf{y}$ with high probability are remained intact (i.e. the server did not changed them).

Question: What is the probability that the server adds some extra roots without knowing the original order of elements? So we get $a$ among the other roots but the server adds more roots too.

TBC: In practice we have a polynomial ring $f$ defined over $\mathbb{Z}_p$ for a prime number $p$.