There's an if test in GnuPG's modulus implementation that is based on the size of the cypher text verses the size of the private key. So if you control the cypher text, you can cause one of two different outcomes from this comparison based on the next unknown bit of the private key.
In a loop with 2048 iterations, a decision is made from this intermediate value. Causing one of two different multiplication methods to be used for every iteration of this loop.
From listening to (probably) the noise of a capacitor in the CPU's power regulator you can hear the difference between these two code paths and extract one bit of the private key.