La criptografía trata de construir y analizar protocolos que soporten la influencia de adversarios. Un protocolo es un programa distribuido, que puede ser probabilístico o mantener un estado.
Generalmente se define como tuplas de algoritmos, pero la definición formal depende del problema. Estos se idean y analizan entendiendo las metas y amenazas del problema particular.
Para estar convencidos de la seguridad, debe haber algo que una parte sabe y que el adversario no sabe. El modelo de confianza especifica quién tiene qué claves al inicio.