Hides a secret bit in the phase of a Bell pair. Bob decodes with the cover key. The reduced state Eve sees does not reveal s.
Alice and Bob share |Φ+⟩. Alice applies P((θ+s)π) on her qubit. Bob applies P(−θπ), then Bell-decodes with CX and H. The secret bit appears on q0 in the computational basis.
Function form: Stego(s, theta, eve, a, b) with defaults Stego(1, 0.35, "none", 0, 1). Eve modes: "none", "measure_z", "wrong_key".
Default call Stego(): s = 1, θ = 0.35. Alice encodes with angle 1.35 (π-multiples), Bob subtracts 0.35. Eve intercepting one qubit sees a completely mixed reduced density matrix independent of s. Measuring that qubit collapses the pair and randomizes the decode.
How it works
-
1
Cover channel
H 0; CX [0,1] prepare |Φ+⟩.
-
2
Embed
P 0 1.35 writes (θ+s)π.
-
3
Decode
P 0 -0.35 cancels θ. CX [0,1]; H 0. q0 reads s.
H 0 CX [0,1] P 0 1.35 P 0 -0.35 CX [0,1] H 0
Function form: Stego()
State. |01⟩ (q1 = 0, q0 = 1). The secret is q0.
P(q0 = 1) = 1. After a clean Bell decode q1 is |0⟩, so P(01) = 1.
| Basis | Amplitude | Probability |
|---|---|---|
|01⟩ |
1 |
Notes
- Wrong-key decode uses θ+0.25 and yields a mixed, non-deterministic bit. Call Stego(1, 0.35, "wrong_key").
- Active Z intercept: Stego(1, 0.35, "measure_z") measures Alice before Bob decodes. Bob then sees 50/50 noise.
Change parameters
The write-up above is for the default circuit. Use this control to generate other variants and load them in the simulator.