We are designing a challenge where innovator submit their circuits for pre-image search for keccak-256 4-round hash. We are aiming to get clear benchmarks for cryptanalysis and incentives algorithmic innovation. We are running couple of issues:
We wanna make sure innovators can’t cheat with oracle, as far as I know oracle doesn’t know the answer in Grover’s search algorithm, it only output yes/no ( correct me if it’s wrong)
-
We want innovators to design oracles, but in Grover’s algorithm, the oracle is constrained to a very specific role: it should only apply a phase shift to target states (leaving other states unchanged)
-
Therefore, we need a way to verify that a submitted oracle conforms to this requirement: it performs only a phase shift (it should not be altering amplitude or applying some other transform)
So we need help with how to prevent innovators to cheat and make sure they are running quantum simulation such as Catalyst to find the solution. (e.g How to quantum just-in-time (QJIT) compile Grover’s algorithm with Catalyst | PennyLane Demos )
We are thinking about setting constrains for valid oracle such as:
- Gate Whitelisting: Only allows X, H, and multi-controlled X gates
- Phase Verification: Mathematically verifies phase flip behavior
- Circuit Constraints: Prevents hidden operations with barrier gates
- Input Validation: Checks all computational basis states
- Cryptographic Integrity: Maintains Keccak’s security properties
- Solution Isolation: Solutions only appear in control strings
Can someone guide us to implement this challenge safely using Pennylane modules? or suggest alternative path to with oracle design? Thank you