HomeQuantum Physics3D Decoy-State QKD: PNS Attack Simulation

Decoy-State QKD 3D — Photon-Number-Splitting Interception

3D decoy-state quantum key distribution simulator: watch weak coherent pulses fly from Alice to Bob carrying real Poisson-distributed photon counts (rendered as glowing spheres per pulse), an intercept station that treats single- and multi-photon pulses differently, and live Gain/Yield readouts that expose the attack across signal and decoy intensities.

Quantum Physics3DAdvanced60 FPS📱 Mobile-adapted⇄ 2D version
3d-decoy-state-qkd ↗ Open standalone

This 3D scene flies real weak-coherent laser pulses down a beamline from Alice to Bob, each rendered as a cluster of glowing spheres whose count is drawn live from the genuine Poisson distribution that governs attenuated laser light — most pulses carry a single photon, but some carry two or more, and it is exactly those multi-photon pulses a photon-number-splitting eavesdropper can silently tap. Toggle the intercept station to watch it act differently depending on each pulse's true photon count: single-photon pulses vanish at the station (blocked as too risky to touch), while multi-photon pulses have one sphere peeled off toward Eve and the remainder forwarded onward. Alice mixes real signal, decoy and vacuum intensities into the stream, and the live Gain and Yield readouts show the attack's real, computed signature — matched signal-intensity statistics hiding a collapsing decoy-intensity Gain and single-photon yield, exposing exactly what plain BB84 eavesdropping detection would miss.

⚙ Under the hood

Explore decoy-state quantum key distribution in 3D space, where pulses fly from Alice to Bob with photon counts drawn from a Poisson distribution, and Eve's photon-number-splitting attack is exposed by comparing signal and decoy statistics.

quantumquantum cryptographyquantum key distributiondecoy statephoton-number-splittingBB84Poisson distributionThree.jsphysicssimulation

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)