# Hidden shift problem

The Hidden shift problem states: Given an oracle ${\displaystyle O}$ that encodes two functions ${\displaystyle f}$ and ${\displaystyle g}$, there is an n-bit string ${\displaystyle s}$ for which ${\displaystyle g(x)=f(x+s)}$ for all ${\displaystyle x}$. Find ${\displaystyle s}$.[1] Many functions, such as the Legendre symbol and Bent functions, satisfy these constraints.[2] With a quantum algorithm that's defined as "${\displaystyle |s\rangle =H^{\otimes n}O_{f}H^{\otimes n}O_{\hat {g}}H^{\otimes n}|0^{n}\rangle }$" where ${\displaystyle H}$ is the Hadamard gate and ${\displaystyle {\hat {g}}}$ is the Fourier transform of ${\displaystyle g}$, this problem can be solved in a polynomial number of queries to ${\displaystyle O}$ while taking exponential queries with a classical algorithm. The difference between the Hidden subgroup problem and the Hidden shift problem is that the former focuses on the underlying group while the latter focuses on the underlying ring or field.[1]