I am wondering if there is a practical zero-knowledge proof system that can be used by humans to authenticate themselves to a server. Note that even the computer can not be trusted (at least with the authentication), the prover part of the protocol has to be completely in the user's brain.
-
I don't think this is possible as modern crypto usually assumes computers and most such schemes require large number arithmetic or similarly complex constructions.– SEJPMCommented Sep 26, 2015 at 21:37
-
@SEJPM They assume turing machines. Human brains and computers are both similar to them.– Christopher KingCommented Sep 26, 2015 at 22:02
-
2The difficulty seems to be that you need an algorithm that humans can easily execute, computers can easily verify, and computers can't easily crack (eg: brute force). So giving a modified Turing Test that tries to determine a person's identity doesn't work because computers can't verify that. Humans seem too weak at math to make a math-based challenge that is difficult enough to withstand a brute force or some other attack. Not at all sure this is possible.– Neil SmithlineCommented Sep 27, 2015 at 20:29
-
1The solitaire encryption algo is secure but requires carrying a deck of cards and a lot of patience by the human to run the algorithm. And it isn't even zero-knowledge as it relies on a shared key (ordering of the deck).– Neil SmithlineCommented Sep 27, 2015 at 20:34
-
Consider Keybase (keybase.io), an identity management system that uses crypto – and is therefore an invalid answer here since it is not "completely in the user's brain" as required by this question. The premise of Keybase is that it makes zero assumptions and requires each step to be able to be independently verifiable by all parties, so no trust is extended to Keybase. This still requires trusting your personal computer.– Adam KatzCommented Oct 11, 2017 at 22:07
Add a comment
|
1 Answer
Well, in short not yet.
As we harden systems and become better algorithm creators it’s possible that in the future we may have one