Patent ID: 7571489

Claim:
A method process implemented within a data processing system comprising the steps of: generating a client-specific identifier, a random number seed and an initial client-specific key in a first data processing system; storing, by the first data processing system, the client-specific identifier, the random number seed and the initial client-specific key in a temporary storage of the first data processing system as a first client-specific identifier, a first random number seed and a first initial client-specific key; sending, on initialization of a second data processing system, from the first data processing system, over a computer network, a copy of the client-specific identifier, the random number seed and the initial client-specific key to a second data processing system for storing in the second data processing system as a second client-specific identifier, a second random number seed and a second initial client-specific key; receiving a user request for a one-time passcode in the second data processing system; generating in the second data processing system a first plaintext based on the second client-specific identifier and the second random number seed; encrypting, in the second data processing system, the first plaintext using the second initial client-specific key to create a first ciphertext; generating, in the second data processing system, the one-time passcode based on the first ciphertext; outputting, by the second data processing system, only the one-time passcode for the user to the first data processing system; and verifying in the first data processing system the one-time passcode of the second data processing system, wherein the step of verifying the received one-time passcode comprises the steps of: receiving in the first data processing system only the one-time passcode from the second data processing system; generating, on the first data processing system, a second plaintext based on the first client-specific identifier and the first random number seed; encrypting the second plaintext using the first initial client-specific key to create a second ciphertext; generating a one-time code based on the second ciphertext; comparing the one-time passcode with the one-time code; and, when the one-time passcode and the one-time code match, allowing user access to the second data processing system.