Homodyne vs. Heterodyne Reception in CV-QKD

PUBLISHED
DURATION 4 min read

In the original GG02 protocol, Alice does not choose between an (x)-basis or a (p)-basis. Instead, she performs symmetric Gaussian modulation. For every single pulse, she generates two independent random numbers from a Gaussian distribution—one for (x) and one for (p)—and modulates the laser pulse with both values simultaneously.

Here is exactly how the data tracking and “discarding” works step-by-step under the hood.


  1. The Asymmetry in Data Generation

Let’s look at what Alice holds in her database versus what Bob can physically extract using a homodyne receiver.

Alice's Database (Sent)                     Bob's Hardware (Homodyne Receiver)
-----------------------                     ----------------------------------
Pulse 1: (x1, p1)  =====================>   Measures ONLY x1' (p1 is physically destroyed)
Pulse 2: (x2, p2)  =====================>   Measures ONLY p2' (x2 is physically destroyed)
Pulse 3: (x3, p3)  =====================>   Measures ONLY p3' (x3 is physically destroyed)

Because Bob uses a homodyne detector, physics forces him to choose. To measure (x), he must lock the phase of his local oscillator (a reference laser) to (0^{\circ }). To measure (p), he must shift it to (90^{\circ }). He cannot do both.

When Bob locks to (0^{\circ }) to read (x_{1}), the wave components carrying (p_{1}) are completely erased by quantum measurement noise. Bob does not have a value for (p_{1}), and he can never get it back.


  1. The Sifting Process (Aligning the Databases)

After sending a block of thousands of pulses, Alice and Bob must align their data over a public internet channel:

  1. Bob publishes his measurement choices: He tells Alice, “For Pulse 1 I measured x, for Pulse 2 I measured p, for Pulse 3 I measured p.” (He does not reveal the actual numbers he read).
  2. Alice filters her database: Alice looks at her records.
    • For Pulse 1, she keeps (x_{1}) and deletes/ignores (p_{1}) from her key-generation file.
    • For Pulse 2, she keeps (p_{2}) and deletes/ignores (x_{2}) from her key-generation file.

At the end of this step, Alice and Bob finally have correlated, one-dimensional lists of numbers.


  1. Why this is different from “Discrete Variable” QKD (like BB84)

If you are familiar with traditional single-photon protocols like BB84, you might expect a 50% total loss of pulses during sifting. Here is why GG02 homodyne handles loss differently:

In a hypothetical “Discrete-Choice” CV Setup:

If Alice actively picked either an (x)-state or a (p)-state randomly before sending it:

In the Real GG02 Homodyne Setup:

Because Alice always modulates both variables symmetrically:

The Real “Loss” in Homodyne

When we say Alice “discards” data, we mean information throughput loss, not pulse loss.

For every pulse sent, Alice expends energy to encode 2 variables’ worth of information, but Bob’s homodyne receiver can only harvest 1 variable’s worth of information. The other half of Alice’s encoded data is deleted during post-processing because Bob’s hardware physically couldn’t read it.