A method for reducing the time for verifying users via keystroke dynamics, comprising: i) building a user verification model representing user typing patterns in a training phase during which a group of users are trained; and ii) in a verification phase, recording input real-time streams of keystrokes performed by each of said trained users, transforming each of said real-time streams to a features vector, generating a vector of probabilities indicating the probabilities that said real-time transformed features vectors belongs to each of said users, and using a classifier with respect to said transformed features vectors, characterized in that said user verification model is built by iii) creating a vocabulary (Vu) consisting of n-graphs of keystrokes by extracting n-graphs unique to each of said trained users (u), from all instances of his training sessions (S u); iv) calculating a mean of a temporal feature for each n-graph in said vocabulary; v) clustering said mean temporal features of different n-graphs into a number (k) of clusters wherein similar mean temporal features of different n-graphs are clustered into a same cluster, resulting in a mapping function (M<v,c>) from an n-graph in that vocabulary to a cluster; and vi) training a multi-class classifier with respect to a given verification parameter for a plurality (n) of said trained users including a verified user, based on said features vectors, and in that said verification phase further comprises the steps of: vii) transforming each of real-time streams of an unseen sample (x) to a features vector based on said mapping function for each user to be verified; viii) inputting said verification parameter and each of said transformed features vectors to said classifier; and ix) classifying each of said real-time streams of said unseen sample and associating each of said classified streams with the trained user with the highest probability; and x) accepting or rejecting each of said real-time streams of said unseen sample. i) building a user verification model representing user typing patterns in a training phase during which a group of users are trained; and ii) in a verification phase, recording input real-time streams of keystrokes performed by each of said trained users, transforming each of said real-time streams to a features vector, generating a vector of probabilities indicating the probabilities that said real-time transformed features vectors belongs to each of said users, and using a classifier with respect to said transformed features vectors, iii) creating a vocabulary (Vu) consisting of n-graphs of keystrokes by extracting n-graphs unique to each of said trained users (u), from all instances of his training sessions (S u); iv) calculating a mean of a temporal feature for each n-graph in said vocabulary; v) clustering said mean temporal features of different n-graphs into a number (k) of clusters wherein similar mean temporal features of different n-graphs are clustered into a same cluster, resulting in a mapping function (M<v,c>) from an n-graph in that vocabulary to a cluster; and vi) training a multi-class classifier with respect to a given verification parameter for a plurality (n) of said trained users including a verified user, based on said features vectors, vii) transforming each of real-time streams of an unseen sample (x) to a features vector based on said mapping function for each user to be verified; viii) inputting said verification parameter and each of said transformed features vectors to said classifier; and ix) classifying each of said real-time streams of said unseen sample and associating each of said classified streams with the trained user with the highest probability; and x) accepting or rejecting each of said real-time streams of said unseen sample.