Human-machine identification is an important problem in cryptography that has applications in network access, electronic commerce, and smart-card design. It is a hard problem largely because human users have a very limited capacity in memorizing secrets and in performing protocols. Therefore, in addition to the requirement that a human-machine identification scheme must be provably secure, the scheme has to be practical in the sense that it must be feasible for a human user to participate. In this paper, we develop a new scheme for this problem. Our scheme improves upon some of the previously proposed human-machine identification schemes. We present a vigorous security analysis of our scheme. We also present some attacks to show previously proposed schemes could be vulnerable.