ResearchKeystroke Dynamics Authenticator
Your Typing Rhythm Is Your Password
A desktop proof of concept that verifies who is typing from 15 timing features and a Random Forest.

Rochester, N.Y. This was a small hands-on test of behavioral biometrics, a couple of months before my mouse-dynamics research started. It implements the timing features from Wang, Meneely and Hou's paper on keystroke dynamics (ICISSP 2025). You type a fixed pangram, and the app records every key press and release with microsecond timing.
From those events it computes the paper's three measures: dwell time, press-to-press and flight time. Each is summarized as mean, standard deviation, median, min and max, which gives a 15-number signature. Modifier keys are filtered, auto-repeat is suppressed and gaps over 2 seconds are thrown out as noise.
The owner enrolls samples, other people enroll as guests, and a scaled Random Forest with 100 trees trains using stratified k-fold cross-validation. Authenticate mode shows VERIFIED or ACCESS DENIED with a confidence score, and training reports the 3 features that mattered most. It's one heavily commented Python file of 823 lines.
How it works
Keystroke Dynamics Authenticator, start to finish, in 4 steps.
- Step 1:
Capture
Key press and release events
- Step 2:
Features
Dwell, press-to-press and flight, 5 stats each
- Step 3:
Train
Random Forest with stratified k-fold CV
- Step 4:
Verify
VERIFIED or ACCESS DENIED with confidence
Graphic: The Sahil Bachu