which we will call is stored on the target system. The user's first login uses a password derived by applying 999 times to the seed, that is, . The target system can authenticate that this is the correct password, because is , which is the value stored. The value stored is then replaced by and the user is allowed to log in. The next login, must be accompanied by . Again, this can be validated because hashing it gives which is , the value stored after the previous login. Again, the new value replaces and the user is authenticated. This can be repeated another 997 times, each time the password will be applied one fewer time, and is validated by checking that when hashed, it gives the value stored during the previous login. Hash functions are designed to be extremely hard to reverse, therefore an attacker would need to know the initial seed to calculate the possible passwords, while the computer system can confirm the password on any given occasion is valid by checking that, when hashed, it gives the value previously used for login. If an indefinite series of passwords is wanted, a new seed value can be chosen after the set for is exhausted. Although the server's counter value is only incremented after a successful OTP authentication, the counter on the token is incremented every time a new password is requested by the user. Because of this, the counter values on the server and on the token might be out of synchronization. It is recommended to set a look-ahead parameter on the server, which defines the size of the look-ahead window. In case of an accidental password generation by the user, the server will still authenticate the client, because it can recalculate the next OTP-server values, and check them against the received password from the client. To get the next password in the series from the previous passwords, one needs to find a way of calculating the inverse function . Since was chosen to be one-way, this is extremely difficult to do. If is a cryptographic hash function, which is generally the case, it is assumed to be a computationally intractable task. An intruder who happens to see a one-time password may have access for one time period or login, but it becomes useless once that period expires. The S/KEY one-time password system and its derivative OTP are