1. A method of responding to a challenge, said method comprising: receiving a challenge, said challenge including a block of microcode; passing said block of microcode to a microcode interpreter; receiving a result of execution of said microcode; based on said result, generating a response; and transmitting said response.