Home/HTB/Noisy Vault — HTB Challenge

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 ancilla
State 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.