Skip to main content
IBM 
ShopSupportDownloads
IBM HomeProductsConsultingIndustriesNewsAbout IBM
IBM : developerWorks : Security : Education - online courses
Introduction to cryptology: Pt. 3
Download tutorial zip fileView letter-sized PDF fileView A4-sized PDF fileE-mail this tutorial to a friend
Main menuSection menuGive feedback on this tutorialPreviousNext
4. "Exotic" protocols
  


Zero-knowledge proofs, part 1 page 7 of 12


For this author, probably the most surprising thing cryptography can accomplish is zero-knowledge proofs. The idea behind a zero-knowledge proof is to prove that you have a certain piece of knowledge without revealing the content of that knowledge to an interlocutor. The purpose of a zero-knowledge proof is to demonstrate access to some secret information without giving that access to someone else. For example, imagine a conversation between Alice and Bob:

  • Alice: "I can decrypt the confidential message encrypted as C."
  • Bob: "I do not believe you. Prove it!"
  • Alice (bad response): "The key is K, and therefore, as you can see the message decrypts to M."
  • Bob: "Ah ha! Now I know the key and the message also."
  • Alice: "Oops!"

Alice really took a bad approach here, since she failed to keep the message confidential. And she even gave away the key while she was at it (she could have done slightly better if, for example, the cryptographic hash of M could be verified instead of revealing the key; but the idea is the same). A much better conversation for Alice to engage in is:

  • Alice: "I can decrypt the confidential message encrypted as C."
  • Bob: "I do not believe you. Prove it!"
  • Alice (good response): "Let's engage in a zero-knowledge protocol, and I will demonstrate my knowledge with an arbitrarily high probability (but not reveal anything about the message to you)."
  • Bob: "OK."
  • Alice and Bob go through the protocol...

Main menuSection menuGive feedback on this tutorialPreviousNext
PrivacyLegalContact