Red Stet
← Back to Methodology
Methodology · Keystroke cadence variance

Keystroke cadence variance

The time between one keystroke and the next, and how much that interval varies across a writing session. The oldest and best-replicated signal in the composition fingerprint.

What it measures

The inter-key interval — milliseconds between consecutive keydown events — across a writing session, and the standard deviation of that interval. Red Stet collects the key events from the recording sidecar, drops intervals of 800 ms or longer (those are paragraph breaks, not cadence), and reports the σ of what remains.

A typed paragraph yields a few hundred samples. A 5,000-character document yields thousands. The σ stabilizes quickly once the sample count crosses a couple hundred.

"The conjecture is that typing patterns are sufficiently characteristic to identify a person."

— Gaines, Lisowski, Press, & Shapiro, Authentication by Keystroke Timing, RAND Corporation R-2526-NSF, 1980. The opening claim of the field.

Why it discriminates

Hand typing is biomechanical. Finger flexors fatigue, recover, overshoot, miss-cue. Motor learning compresses practiced bigrams — th, ing, tion, ed — into tight, sub-100 ms clusters that any English speaker has rehearsed millions of times. Unpracticed character pairs sit far above that floor, sometimes by an order of magnitude. The result is a heavy-tailed distribution of inter-key intervals with a σ that rarely drops below 30 ms in continuous prose and routinely sits between 40 and 80 ms.

Pasted or programmatically emitted text has none of this structure. A script that pushes characters into a contenteditable through synthesized events — or a person typing one character at a time at metronome speed — produces a near-Gaussian, narrow distribution clustered around a single mean. There is no biological feedback loop generating variability: no fatigue, no muscle-memory shortcut, no eye-flick re-read pause between clauses.

The variability isn't decorative. It's the signature of a body controlling 10 fingers across an irregularly-shaped keyboard while a brain plans the next clause. The mechanical reasons it exists are why it survived 45+ years as a biometric: the underlying physiology hasn't changed since the first 1970s studies measured it on teletype terminals.

The same physiology produces the secondary structure researchers have catalogued — bigram-conditional latencies that cluster by hand-position (alternating hands faster than same-hand), digraph dwell times that correlate with finger strength, post-error slowdown after a backspace. Red Stet uses the σ summary because it's robust, language-independent, and survives short documents. The richer structure is available for future work; the σ alone separates machine cadence from human cadence in the published corpora.

inter-key interval (ms) 50 200 500 Human · σ ≈ 60 ms Machine · σ ≈ 8 ms

Schematic: two inter-key interval distributions from Red Stet's sample corpus. Human typing spreads across a heavy tail (pauses for re-read, bigram clusters, finger-position effects). Synthetic typing collapses to a tight Gaussian.

Research history

The field starts in the late 1970s at the intersection of two unrelated efforts: U.S. Air Force authentication research and Xerox PARC's cognitive modeling of human-computer interaction. Forsén, Nelson, and Staron's 1977 Rome Air Development Center report — Personal Attributes Authentication Techniques — surveyed candidate biometrics and explicitly named keystroke timing as a measurable identifier on then-current teletype terminals. Three years later Card, Moran, and Newell published the Keystroke-Level Model for HCI in Communications of the ACM, establishing that keystroke timing was a meaningful, predictable construct worth modeling.

The breakthrough paper most modern work cites came from RAND Corporation the same year: Gaines, Lisowski, Press, and Shapiro's Authentication by Keystroke Timing: Some Preliminary Results (RAND R-2526-NSF, 1980). They tested seven typists on 300- and 600-word passages, measured digraph latencies, and showed individuals were separable on five common bigrams. The sample was small and the conditions tightly controlled, but the result lit a path: typing patterns carry identity, and the carrier signal is timing, not content.

The next decade produced the foundational papers of the modern field. Joyce and Gupta's 1990 Identity Authentication Based on Keystroke Latencies in Communications of the ACM generalized the approach to login-string authentication and is the citation most subsequent surveys lead with. Bleha, Slivinsky, and Hussien refined classifier accuracy in 1990. Monrose and Rubin's 1997 Authentication via Keystroke Dynamics at ACM CCS — and their longer 2000 follow-up in Future Generation Computer Systems — moved the field from fixed-string login authentication to free-text continuous monitoring, which is the regime Red Stet operates in.

Through the 2000s the work fanned out. Bergadano, Gunetti, and Picardi published a series of Italian-language studies showing the signal survived a non-English orthography. Killourhy and Maxion's 2009 DSN paper Comparing Anomaly-Detection Algorithms for Keystroke Dynamics shipped the benchmark dataset and methodology that most subsequent classifier papers measure themselves against. Banerjee and Woodard's 2012 survey in Journal of Pattern Recognition Research consolidated 30 years of results. By the 2010s, keystroke dynamics had moved into production: continuous-authentication systems at financial services firms, identity verification at Coursera and other MOOCs, and active-authentication research programs at DARPA and the European COST initiative. The 2020s have been about deep-learning classifiers, mobile keystroke dynamics (where the cadence physics differ substantially), and the new question Red Stet sits inside: distinguishing typed prose from pasted machine output.

An individual's typing pattern varies less within itself than typing patterns vary between users — which is what lets typing serve as a biometric.

— Paraphrased from Monrose & Rubin, Authentication via Keystroke Dynamics, ACM CCS, 1997. The paper that moved the field from fixed-string login authentication to free-text continuous monitoring.

Key papers

Forsén, Nelson & Staron (1977)
Personal Attributes Authentication Techniques. Rome Air Development Center Technical Report RADC-TR-77-333. The earliest systematic survey naming keystroke timing as a candidate biometric.
Card, Moran & Newell (1980)
The Keystroke-Level Model for User Performance Time with Interactive Systems. Communications of the ACM, 23(7), 396–410. Established keystroke timing as a measurable, modelable construct in HCI. doi:10.1145/358886.358895
Gaines, Lisowski, Press & Shapiro (1980)
Authentication by Keystroke Timing: Some Preliminary Results. RAND Corporation Report R-2526-NSF. The foundational experiment that demonstrated typing patterns carry identity. rand.org/pubs/reports/R2526
Joyce & Gupta (1990)
Identity Authentication Based on Keystroke Latencies. Communications of the ACM, 33(2), 168–176. The most-cited foundational paper of the modern keystroke-dynamics field. doi:10.1145/75577.75582
Bleha, Slivinsky & Hussien (1990)
Computer-Access Security Systems Using Keystroke Dynamics. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12(12), 1217–1222. Refined classifier accuracy on Joyce-Gupta-style fixed-string authentication. doi:10.1109/34.62613
Monrose & Rubin (1997)
Authentication via Keystroke Dynamics. Proceedings of the 4th ACM Conference on Computer and Communications Security, 48–56. Extended the methodology to free-text monitoring. doi:10.1145/266420.266434
Monrose & Rubin (2000)
Keystroke Dynamics as a Biometric for Authentication. Future Generation Computer Systems, 16(4), 351–359. The expanded journal treatment. doi:10.1016/S0167-739X(99)00059-X
Bergadano, Gunetti & Picardi (2002)
User Authentication through Keystroke Dynamics. ACM Transactions on Information and System Security, 5(4), 367–397. First major study showing the signal generalizes across orthographies (Italian corpus). doi:10.1145/581271.581272
Gunetti & Picardi (2005)
Keystroke Analysis of Free Text. ACM Transactions on Information and System Security, 8(3), 312–347. The free-text classifier that most continuous-authentication systems descend from. doi:10.1145/1085126.1085129
Killourhy & Maxion (2009)
Comparing Anomaly-Detection Algorithms for Keystroke Dynamics. Proceedings of the IEEE/IFIP International Conference on Dependable Systems and Networks, 125–134. The benchmark dataset and evaluation protocol most modern classifier papers measure against. doi:10.1109/DSN.2009.5270346
Banerjee & Woodard (2012)
Biometric Authentication and Identification Using Keystroke Dynamics: A Survey. Journal of Pattern Recognition Research, 7(1), 116–139. The consolidating survey of 30+ years of results. doi:10.13176/11.427
Teh, Teoh & Yue (2013)
A Survey of Keystroke Dynamics Biometrics. The Scientific World Journal, 2013, 408280. Companion survey covering classifier evolution through the early deep-learning era. doi:10.1155/2013/408280

In free-text analysis, timing-dispersion features are among the more stable per-subject measurements across sessions.

— Paraphrased from Gunetti & Picardi (2005), whose free-text corpus work examined which features survive session-to-session noise. The σ is robust because individual fast and slow runs average out at the sample sizes typical of a writing session.

Confidence level

Well-established

Forty-five-plus years of research, replicated across English and non-English corpora, deployed in production continuous-authentication systems at financial services firms, MOOC identity verification (Coursera's Signature Track and successors), and active-authentication programs funded by DARPA and the European Union. Of the seven signals in Red Stet's composite, this is the one with the deepest published literature and the clearest physiological grounding.

The signal's confidence comes from two independent sources: the biomechanical reason it exists is well-understood motor-control science, and the empirical separability has been measured across hundreds of datasets and dozens of classifier architectures. When a behavioral biometric appears repeatedly across that many independent replications, it's no longer hypothesis — it's a measurement.

"Keystroke dynamics has matured from a research curiosity to a deployed authentication factor."

— Banerjee & Woodard (2012), opening framing of the survey. By the early 2010s the field had moved past "does this work" to "which classifier under which acquisition conditions."

Known limitations

  • Highly practiced typists produce mechanical-looking cadence on familiar phrases. A professional transcriptionist or competitive typist on a well-rehearsed passage can produce σ in the low-20s. The signal alone cannot separate this case from synthetic typing — the composite has to do that work via other signals.
  • Touch-typing trained users have lower variance than hunt-and-peck users. A 110-WPM touch typist sits at a different baseline than a 30-WPM hunt-and-peck typist. Both are human; their σ values differ by a factor of 2 or 3. The signal characterizes presence of human typing, not its skill level.
  • Voice-to-text dictation produces patterns that look unlike either typed or pasted text. Dictated text arrives in short bursts at speech-recognition cadence — fast within a burst, long silences between. The signal can flag this as anomalous; it cannot identify it as dictation rather than as pasted output.
  • Adversaries who type out model output character-by-character defeat this signal alone. A patient adversary who reads model output and re-types it produces a human cadence distribution. The composite catches this case through other signals (paste ratio, correction rate, thinking pauses); the σ on its own cannot.
  • Mobile typing has fundamentally different cadence distributions. Swipe-typing, autocorrect insertions, and the soft-keyboard backspace economy produce timing patterns the desktop literature does not cover. Red Stet's anchors are calibrated on desktop and laptop typing; mobile sessions need their own baseline before this signal can be trusted on them.
  • Browser performance lag introduces artificial cadence noise. A slow contenteditable, a heavy React re-render, or a background tab eating CPU produces inter-key intervals that look like the writer paused when they didn't. The 800 ms cutoff suppresses the worst of this; sub-800 ms lag-induced jitter still inflates σ.
  • Short documents don't accumulate enough samples. Below roughly 200 inter-key samples the σ estimate has wide confidence intervals; below 11 samples it is meaningless. Red Stet's behavior: with 10 or fewer samples the cadence signal scores a neutral 60 (neither evidence for nor against) and the verifier notes the low sample count next to the composite. Document-level evidence bands apply on top — below 500 typed characters the verifier reports "Insufficient evidence" instead of a verdict tier, and 500–2,000 characters carries a reduced-confidence note (see Limitations).
  • Coarsened browser timers can fake mechanical cadence. Privacy-hardened browsers quantize event timestamps (Firefox resistFingerprinting: 100 ms). The analyzer detects fully-quantized timing (≥ 90% of deltas on a 25/50/100 ms grid) and scores this signal neutral with a note rather than machine-like; partial coarsening below that bar remains a known confound (see Limitations → Measurement-environment confounds).
  • The signal is content-agnostic but not language-agnostic. Languages with different bigram frequencies produce different σ baselines — Italian and Chinese pinyin do not share an English keystroke-cadence baseline. Within-language inference is robust; cross-language comparisons require recalibration.

"The most common spoofing scenario in the wild is not algorithmic — it is a human adversary who has rehearsed the target's typing rhythm or who slow-types adversarial content to mimic natural cadence."

— Paraphrased from the threat-model framing across the Bergadano/Gunetti/Picardi line of work. The technical countermeasure is multi-signal fusion. Cadence alone is not a guarantee; cadence as part of a composite is much harder to defeat.

How Red Stet uses it cadenceScore

The recording sidecar emits a key event for every printable keydown in the editor window, plus Enter, Tab, and Space. Backspace, Delete, and navigation keys get their own event types; modifier-only presses are skipped. Keyboard-shortcut chords (the c in Cmd-C) currently emit key events and are counted — a known impurity in the cadence stream, recorded with a modifier flag so a future pass can exclude them. The verifier walks the key events, computes inter-key intervals, drops anything at or above 800 ms (paragraph breaks, room-leaving, distraction pauses), and computes σ over what remains. The score maps σ to a 0–100 scale anchored on the sample-corpus distribution: σ = 8 ms scores 0 ("machine-like"), σ = 60 ms scores 100 ("clearly human"), values in between scale linearly. With 10 or fewer samples, the signal scores a neutral 60 instead (see Known limitations).

The formula in src/provenance/analysis.mjs
cadenceScore = clamp((σ − 8) / (60 − 8) × 100, 0, 100)
composite += cadenceScore × 0.22

The 0.22 weight is the largest single weight in the composite — heavier than backspaces (0.20), paste ratio (0.15), and the mouse signals (0.10 each). The cadence signal earns the top weight because the published literature on it is deepest and because the underlying physiology is hardest to spoof at scale.

The per-moment surface in the verifier's right panel does not flag a low-σ run as "AI detected." It surfaces it as a window uncommon for hand-typed work — a span of N keystrokes where the local σ collapses below the human range — and invites the reader to inspect that window themselves. A human transcriptionist hitting that pattern reads the same way; the interpretive frame is the reader's, not ours.

The signal feeds the composite verdict tier alongside the other six signals: Consistent with hand-typed composition at composite ≥ 70, Mixed signals — worth review in the 40–70 band, Patterns uncommon in hand-typed documents below 40. The page on how the signals combine walks the weighting in full.

Anchors
σ ≤ 8 ms  →  score 0   (machine-like)
σ = 20 ms  →  score 23
σ = 35 ms  →  score 52
σ = 50 ms  →  score 81
σ ≥ 60 ms  →  score 100  (clearly human)

Anchors set below the human cluster: the four human samples among the five public recordings in samples/ sit at σ ≈ 89–97 ms — well above the 60 ms full-credit anchor — and the synthetic sample sits at σ ≈ 10 ms. (Recomputed 2026-06-10 against the current analyzer; the full calibration corpus is 11 documents — see Baselines.) The mid-band scores partial credit so genuinely ambiguous sessions land in the 40–69 composite tier rather than at the extremes.