I always thought it would be cool if someone designed a challenge-response algorithm that you could do in your head. As a simple example:
Keypad lock presents you with a 4-digit number, say 1304. This is the challenge. The user then calculates the response in his head according to a predetermined algorithm, which can be different for each person who has access. This is not a very secure example, but for the sake of simplicity:
- Your algorithm is "x mod 250" and only you know this (the result is the remainder of X divided by 250)
- Challenge is 1304
- You calculate this in your head
- You type in 0054 as the response
This way, you NEVER type in your real code, and it changes every time. If someone saw you enter in the code, or used fingerprint powder to derive the possible codes, they would be useless to the attacker. Of course, the actual algorithm would likely be different, but you get the idea. And, it has the bonus of keeping out stupid people.