Noisy Vault — HTB Challenge
retleave·Apr 21, 2026·8 min read
Quantum Noisy Vault - HTB Challenge
Info
- Category: Quantum / Misc
- Difficulty: Medium
- Key Topics: Quantum computing, depolarizing noise, majority voting, Qiskit, circuit constraints satisfaction
Abstract
Quantum Noisy Vault protects a randomly generated 64-bit secret key behind a quantum oracle that introduces depolarizing noise, idle cycle decay, and measurement errors. The attacker gets exactly one oracle query and one guess. The oracle prepares the key as a computational basis state on 64 data qubits, allows the attacker to apply a custom quantum circuit (subject to structural constraints), adds noise, and returns 4096 measurement shots. Despite the noise, the underlying state is classical (each qubit is deterministically |0> or |1>), which means a simple majority vote over the shots recovers each bit with high probability. The real challenge lies in satisfying the oracle's circuit validation constraints without disturbing the data qubits.
Server Architecture
Key Generation and State Preparation
From
server.py, the vault generates a random 64-bit key and prepares it on 64 data qubits:python
self.secret_key = bin(secrets.randbits(self.visible_bits))[2:].zfill(self.visible_bits)
self.total_data_qubits = 64
self.ancilla_qubits = 16
self.total_qubits = 80 # 64 data + 16 ancillaState preparation applies X gates to data qubits corresponding to '1' bits:
python
def _prepare_state(self, circuit):
for idx, bit in enumerate(self.secret_key):
if bit == "1":Content Locked
This challenge is still active on HackTheBox. The full writeup will be available after retirement.