What exactly is the difference between Zero Knowledge Proof & Challenge Response Authentication?
I searched online and the best I could find are these:
Zero-knowledge password proof systems depend on cryptographic methods that enable both parties -- client and server -- to authenticate to each other. These systems allow each party to confirm to each other that they have a correct password, but without the need to share that password with each other
- cse.scu.edu : Implying that both of them are different and one improves on the other.
An instructor in my university had asked this question in one of the assignments and when I received the answer key for the same, I found this:
Distinguish between challenge response and Zero knowledge entity authentication.
Challenge-response identification – Strong authentication. Cryptographic challenge-response protocols is that one entity (the claimant) “proves” its identity to another entity (the verifier) by demonstrating knowledge of a secret known to be associated with that entity, without revealing the secret itself to the verifier during the protocol. This is done by providing a response to a time-variant challenge, where the response depends on both the entity’s secret and the challenge. The challenge is typically a number chosen by one entity (randomly and secretly) at the outset of the protocol. If the communications line is monitored, the response from one execution of the identification protocol should not provide an adversary with useful information for a subsequent identification, as subsequent challenges will differ. Challenge-response protocols can be realized by symmetric-key or asymmetric-key cryptography
Zero-Knowledge Proof – ZKP concept. A disadvantage of simple password protocols is that when a claimant A (called a prover in the context of zero-knowledge protocols) gives the verifier B her password, B can thereafter impersonate A. Challenge-response protocols improve on this: A responds to B’s challenge to demonstrate knowledge of A’s secret in a time-variant manner, providing information not directly reusable by B. Examples of ZKP. Fiat-Shamir identification protocol. Feige-Fiat-Shamir identification protocol. Guilou-Quisquate identification protocol.
which I feel is either wrongly worded or entirely wrong (leaning on the latter).
So, what exactly is the difference between them or are they not different at all? If possible, please explain with an example along with real-life algorithms where each of these is used.