Advances in Cryptology — EUROCRYPT 2003

Volume 2656 of the series Lecture Notes in Computer Science pp 294-311


CAPTCHA: Using Hard AI Problems for Security

  • Luis von AhnAffiliated withComputer Science Dept., Carnegie Mellon University
  • , Manuel BlumAffiliated withComputer Science Dept., Carnegie Mellon University
  • , Nicholas J. HopperAffiliated withComputer Science Dept., Carnegie Mellon University
  • , John LangfordAffiliated withIBM T.J. Watson Research Center


We introduce captcha, an automated test that humans can pass, but current computer programs can’t pass: any program that has high success over a captcha can be used to solve an unsolved Artificial Intelligence (AI) problem. We provide several novel constructions of captchas. Since captchas have many applications in practical security, our approach introduces a new class of hard problems that can be exploited for security purposes. Much like research in cryptography has had a positive impact on algorithms for factoring and discrete log, we hope that the use of hard AI problems for security purposes allows us to advance the field of Artificial Intelligence. We introduce two families of AI problems that can be used to construct captchas and we show that solutions to such problems can be used for steganographic communication. CAPTCHAs based on these AI problem families, then, imply a win-win situation: either the problems remain unsolved and there is a way to differentiate humans from computers, or the problems are solved and there is a way to communicate covertly on some channels.