The HSP (Hidden Subgroup Problem) links many NP-intermediate problems, such as factoring, graph isomorphism, and shortest vector.
The brief problem statement is presented like so:
Given some group, G, and a set, X, along with some function $f: G \mapsto X$, $f$ is said to hide a subgroup, $H$, if $f(a) = f(b) \iff aH = bH$. The task is to find the subgroup, $H$ (as a generating set), given $f$ as an oracle.
Factorization (period finding) can fit into this paradigm with the group $\mathbb{Z}_N$, where $N$ is some given constant.
On the other hand, Graph isomorphism has the group $S_N$; the symmetric group on $N$ elements. This group has $N!$ elements in it.
The oracle in graph isomorphism is $U_f | x \in S_N \rangle = | x(G) \in S_N \rangle$ where $G$ is the disjoint union of two graphs (the graphs we want to check the isomorphism of).
An oracle inputs $O(poly(N))$ qubits into it, meaning it has $2^{poly(N)}$ distinct states for $x$ it can hold. (I am using $poly(N)$ as some polynomial function). But $x$ can be anything in $S_N$, meaning it has $N!$ possible states.
We cannot represent an input to this oracle as a bitstring. So how is it done?