A method of verifying a password, entered via a keyboard, for a computing device prior to permitting access, comprising the steps of: providing a password device, in communication with the keyboard and the computing device, to receive one or more messages, receive keystroke information comprising a manifestation of the pressing of keys on the keyboard, create one or more messages and transmit the one or more message created, wherein the password device comprises secret data storage; receiving in the password device a command message comprising a command for the password device to operate in a special mode and challenge-data having one or more corresponding challenge-responses; receiving keystroke information in the password device during the special mode; suspending and resuming the special mode so as to accommodate input requirements of a multitasking operating system of the computing device; receiving in the password device a command to stop operating in the special mode; creating in the password device a message based on data comprising keystroke information and one of the challenge-responses to the challenge-data in the command message; transmitting the created message to the computing device; retrieving secret data from the secret data storage of the password device; creating in the password device a message based on information comprising keystroke information, one of the challenge-responses to the challenge-data in the command message and the secret data retrieved from the secret data storage in the password device; receiving in the password device a message containing a public key; creating in the password device random data; encrypting in the password device the random data using the public key; transmitting from the password device the encrypted random data; manipulating in the password device the random data to produce a cryptographic key; and storing the cryptographic key in the secret data storage. providing a password device, in communication with the keyboard and the computing device, to receive one or more messages, receive keystroke information comprising a manifestation of the pressing of keys on the keyboard, create one or more messages and transmit the one or more message created, wherein the password device comprises secret data storage; receiving in the password device a command message comprising a command for the password device to operate in a special mode and challenge-data having one or more corresponding challenge-responses; receiving keystroke information in the password device during the special mode; suspending and resuming the special mode so as to accommodate input requirements of a multitasking operating system of the computing device; receiving in the password device a command to stop operating in the special mode; creating in the password device a message based on data comprising keystroke information and one of the challenge-responses to the challenge-data in the command message; transmitting the created message to the computing device; retrieving secret data from the secret data storage of the password device; creating in the password device a message based on information comprising keystroke information, one of the challenge-responses to the challenge-data in the command message and the secret data retrieved from the secret data storage in the password device; receiving in the password device a message containing a public key; creating in the password device random data; encrypting in the password device the random data using the public key; transmitting from the password device the encrypted random data; manipulating in the password device the random data to produce a cryptographic key; and storing the cryptographic key in the secret data storage.