Sixty keystrokes#
You typed a passage you had already written down, and recorded yourself doing it. What is in the recording that is not in the passage?
The recording, unaligned#
Sixteen bursts, not eight. Before anything is labelled, that is the only fact on the slide worth having.
One keystroke is two events#
The finger drives the key down onto the plate; the key returns and strikes its stop. Push, then release, about 100 ms apart.
The push is the informative one. It carries the plate’s resonance at the position the key sits in, which is why position is recoverable at all.
Aligned against the passage#
The space bar is obvious. Nothing else here is.
What separates by hand, and what does not#
Size and position separate: the space bar, Enter, the keys nearest the recorder. Four bursts of a two-key alternation separate.
Individual letters do not. That is the boundary this Bench is meant to run into, because it is where the 2004 result stopped and the next one started.
The decisive move was not the microphone#
Asonov and Agrawal trained on the same keyboard they attacked. The improvement came from dropping that requirement and using the language instead: spelling, word frequency, letter transitions.
A classifier that is unsure between two keys is resolved by the sentence, not by a better recording. The channel became a language problem.
Then the keyboard stopped being necessary#
Genkin, Shamir and Tromer recorded the laptop rather than what was typed on it. Coils and capacitors in the voltage regulator vibrate as the processor’s load changes.
| Quantity | Genkin, Shamir and Tromer, 2014 |
|---|---|
| Band carrying the signal | under 20 kHz |
| Sensor | a phone beside the machine, or a good mic at 4 m |
| Recovered | a full 4096-bit RSA key, in about an hour |
Five orders of magnitude below the clock#
The channel never sees an operation. It sees the envelope of very many of them, and the key falls out of the aggregate.
Which is the honest answer to how far the effect generalises: not “any keyboard” but “any component whose current draw makes a noise.”
The fix was arithmetic#
Nobody shielded anything. GnuPG 1.4.16 shipped exponentiation blinding alongside the disclosure — randomise the intermediate values, and a chosen ciphertext no longer produces a profile worth measuring.
An acoustic leak, closed in software.
Before the Bench#
Record a known passage on one keyboard — phone audio is enough — and keep the text. Sixty keystrokes is the floor.
The Bench asks you to align the waveform against the passage by hand, point at two keys that are visibly different, and state what would have to be true of a second keyboard for the technique to fail.