1. A method for implementing a multi-step challenge and response test, said method comprising: using an input/output subsystem configured to perform: presenting a series of challenges to a user that require said user to correctly solve each challenge before a next challenge is revealed to the user; receiving the user's response to each challenge; and submitting a last response in the series of challenges to a server for validation; using a processor device configured to perform for each challenge in the series of challenges: internally validating the response by comparing the user's response to a correct response; and using the user's response, decrypting the next challenge to reveal the next challenge such that the user can perceive said next challenge; wherein the next challenge remains obfuscated until a previous challenge is correctly solved.