Learn · Keystroke dynamics

Keystroke dynamics, explained.

Why how you type is now treated as evidence — and what it takes to reproduce it.

Short answer

Keystroke dynamics is the study of typing rhythm — the timing between key presses, how long each key is held, the pauses at word and sentence boundaries, and the rate of typos and corrections. These patterns are stable enough per person to function as a soft biometric, and consistent enough across humans to flag pasted or auto-typed text. Recent research uses keystroke dynamics to detect AI-assisted academic dishonesty.

The two timings that matter

Every keystroke produces two measurable times. Dwell time is how long the key is held down — the duration between keydown and keyup. Flight time is the gap between releasing one key and pressing the next. Together these two numbers, sampled across a paragraph, produce a typing fingerprint.

The patterns no autotyper gets right (without trying)

  • Gaussian distribution. Real flight times cluster around a mean with diminishing tails. Bots that use setTimeout(..., random()) produce a flat uniform distribution that's trivially separable from human data.
  • Word-internal acceleration. Characters 2–4 of a word type ~15% faster than the first. Motor memory takes over once the word starts.
  • Punctuation and sentence-end pauses. Commas trigger 80–230ms pauses. Sentence-ending punctuation triggers 250–650ms. Newlines trigger longer.
  • QWERTY-neighbour typos. Real typos are almost always physical neighbours of the intended key — r for t, never r for p.
  • Fatigue drift. Past 200 characters, average WPM drops and typo rate rises. By the eighth paragraph you're slower and sloppier than the first.
  • Re-reading pauses. Every 80–200 characters, real typists stop for 400–1200ms to re-read what they just wrote.

The research

The seminal academic work in this space is "Keystroke Dynamics Against Academic Dishonesty in the Age of LLMs" by Kundu, Mehta, Kumar et al. (MIDAS Lab IIIT Delhi and Bucknell University, 2024). They demonstrate that a classifier trained on keystroke timing alone distinguishes human-written from LLM-pasted text with high accuracy, even when the textual content is otherwise indistinguishable to AI text-detectors.

A follow-up paper, "Detecting LLM-Assisted Academic Dishonesty using Keystroke Dynamics" (2025), extends this to live academic-writing settings.

Industry has caught on. Grammarly's Authorship and GPTZero's typing-pattern algorithm both build on the same insight: typing rhythm is harder to fake than text style.

How Wraitor's engine reproduces real dynamics

Wraitor's typing engine implements every pattern listed above. Per-character delays come from a Box-Muller transformed Gaussian centred on the configured WPM. Word-internal characters get a 15% speed boost. Boundary pauses are sampled from the empirically observed ranges. QWERTY typos use a neighbour-keymap and trigger a notice-pause, backspace, retype-pause, retype sequence. Fatigue gradually decays WPM toward a 60% floor over long sessions, and re-reading pauses fire stochastically.

The result is a typing trace that — to a keystroke-dynamics classifier — sits comfortably inside the human distribution.

Where it still falls short

Keystroke dynamics also captures per-person idiosyncrasy: which keys you hold longer than average, your particular flight-time bias on common digrams. Wraitor reproduces the human population distribution, not your individual one. For continuous behavioural authentication systems trained on a specific user (rare outside enterprise login), wraitor's output is human-like but not you-like. For one-off detection like Authorship or AI-interview screens, that distinction doesn't matter.

Feel the engine.

All of the above, running live in the browser demo.

Open the live demo

Frequently asked questions