A method of authenticating a user to use a system includes using a
provider token to generate a random value. The token generates a derived
key based at least in part on a token-provided salt value and a
user-provided password. The provider generates a token unlock key based
at least in part on the derived key and sends it to the token. First and
second challenge data instances are generated by the provider and the
token, respectively, and the process is terminated if the challenge data
instances are determined not to match. If the challenge data instances
are determined to match, then an encrypted data transfer system is
established between the token and the provider, and the token unlocks
locked private data stored on the token. The user is authenticated for
secured use of the system based at least in part on the unlocked private
data.