Un protocollo consiste in un insieme di regole (convenzioni) che determinano lo scambio di messaggi tra due o più entità principali. In breve, si tratta di un algoritmo distribuito con enfasi sulla comunicazione. I protocolli di sicurezza (o criptografici ) utilizzano meccanismi crittografici per raggiungere obiettivi di sicurezza. Esempi: autenticazione di entità o messaggi, scambio di chiavi, integrità, puntualità, scambio equo, non-ripudiabilità,...piccole ricette, ma non banali da progettare e capire.
I costruttori di messaggi sono:
$K$ (chiave pubblica) e chiavi inverse $K^{-1}$ (chiave privata)$\\{M\\}_{K_{AB}}$, dove $K_{AB}$ è condivisa tra (cioè nota solo a) A e B$\\{M\\}_K$, ad esempio, crittografia con la chiave pubblica di $A: \\{M\\}_{K_A}$$\\{M\\}_{K^{-1}}$, ad esempio, "firma" con la chiave privata di $A: \\{M\\}_{K^{-1}_{A}}$$N_A$, dati freschi utilizzati per sfida/risposta$T$, indicano il tempo, ad esempio, utilizzati per la scadenza delle chiavi$\\{M_1, M_2\\}$, $M_1 ∥ M_2$, o $[M_1, M_2]$ sono annotazioni equivalentiLa comunicazione tra due protagonisti è fondamentale:
I (initatior - inizializzatore) e R (receiver - ricevente) sono dei ruoli, quindi chiunque prenda il ruolo di initatior può instaurare la conversazione.
${a → b: \{a,t_a,k\}_{k_b}}$
${b → a: \{b,a\}_k}$
${b → c: \{b,t_b,k^1\}_{k_c}}$
${c → a: \{c,b\}_{k^1}}$