I'm pretty sure that by now folks might have come across this research from Genkin-Pipman-Tromer (GPT) on extracting the RSA key used by GnuPG (GPG) just by measuring the ground potential. I'm going to call it the GPT attack on GPG
for short. I have done work on extracting informational content of a processor core by studying it's high frequency current draw at power supply source but this is cool because it's a low frequency analysis (i.e. easier to perform).
Their work is at http://www.tau.ac.il/~tromer/handsoff/ and I got lost at Q13, where they point to the frequency components as an indicator of when the exponentiation with the secret primes p
and q
happen. The spectrograph is sideways (time is vertical and frequency is horizontal) and the 12 yellow arrows show 12 RSA decryption captures where the algorithm switches from the exponentiation of p to the exponentiation of q. I get that.
But then the question (Q14) they immediately have a lovely analog wave showing the final private key bytes (basically p and q)! Here it is:
I recall that a 0 bit in the base to be exponentiated, simplifies the modular exponentiation but that still doesn't explain the jump to the final image showing the secret bits in all their glory.
Question: How did they jump from the spectrogram showing the RSA exponentiation timings straight to the secret bits? I expect that jump is highly dependent on GnuPG's RSA implementation. If you can supplement with the math (informal math ok), bonus points!
PS: Yes, I know they did similar low frequency analysis with the spectrum of acoustic signals emanating from the decrypting chassis. I also suspect this might be due to RSA being partially homomorphic ...