Research Article
Sequence Alignment with Dynamic Divisor Generation for Keystroke Dynamics Based User Authentication
Algorithm 1
The pseudocode to explain the sequence alignment algorithm.
| Input: Training data extracted from a genuine user, . Testing data extracted from a genuine user or an imposter, . | | In the training phase: | | (1) for each attribute do | | (2) ← | | (3) ← | | (4) end for | | (5) for each attribute do | | (6) diff ← | | (7) rangeDiff← diff/20 | | (8) end for | | (9) for each row and each attribute in do | | (10) label ← ceil(()/rangeDiff) | | (11) if label = 0 | | (12) label ← 1 // If the data is exactly the same value as minimum time, then it should categorize as label | | (13) model← label // We just keep it as to represent | | (14) end for | | In the testing phase: | | (1) Convert the to alphabet letter format based on the minimum point and the range difference from step 3 and step 7 | | respectively, from training phase, and then we just run one time from step 9 to step 14 from training phase. | | (2) for each row in model do | | (3) for each attribute in do | | (4) if = model | | (5) Score← 1 | | (6) end for | | (7) Final_Score← sum(Score) | | (8) end for | | (9) Checking_Score ← mean(Final_Score) // Can be max, min, median, mean, and mode | | (10) return Checking_Score | | Output: The score then used to compare the threshold |
|