Skip to main content
. 2019 Aug 15;21(8):800. doi: 10.3390/e21080800
Algorithm 5: Simon [15,16]
  Proceed with the following steps.
  1. Make n-1 repetitions of Subroutine 6 (also shown in Figure 37). This will with high probability yield n-1 linearly independent bit-vectors orthogonal to s.

  2. Solve the resulting linear system of equations to obtain the candidate solution s*

  3. Query the function for f(x) and f(xs*), for some x.

  If the two queries give the same value, then the function is two-to-one and invariant under the XOR-mask s=s*, and otherwise not.