Un protocollo crittografico (o protocollo di crittografia) è un protocollo informatico astratto o concreto che esegue una funzione relativa alla sicurezza e applica metodi crittografici, spesso come sequenze di primitive crittografiche. Un protocollo descrive come dovrebbero essere usati gli algoritmi. Se quest'ultimo è sufficientemente dettagliato, ossia include dettagli sulle strutture e le rappresentazioni dei dati, a quel punto può essere utilizzato per implementare più versioni interoperabili di un programma.[1]
I protocolli crittografici sono ampiamente utilizzati per il trasporto sicuro dei dati a livello di applicazione. Un protocollo crittografico di solito incorpora almeno alcuni di questi aspetti:
Ad esempio, il Transport Layer Security (TLS) è un protocollo crittografico utilizzato per proteggere le connessioni Web (HTTP / HTTPS). Ha un meccanismo di autenticazione dell'entità, basato sul sistema X.509; una fase di configurazione chiave, in cui una chiave di crittografia simmetrica è formata impiegando la crittografia a chiave pubblica; e una funzione di trasporto dati a livello di applicazione. Questi tre aspetti hanno importanti interconnessioni. TLS standard non supporta il "non ripudio".
Esistono anche altri tipi di protocolli crittografici e persino il termine stesso ha varie letture; i protocolli delle applicazioni crittografiche utilizzano spesso uno o più metodi di negoziazione chiave sottostanti, che a volte vengono anche denominati "protocolli crittografici". Ad esempio, TLS utilizza quello che è noto come lo scambio di chiavi Diffie-Hellman, che sebbene sia solo una parte di TLS, può essere visto come un protocollo crittografico completo di per sé per altre applicazioni.