ZRTP (unione di Z e RTP, quest'ultimo acronimo di Real-time Transport Protocol) è un protocollo di scambio della chiave utilizzato per la negoziazione delle chiavi crittografiche tra due dispositivi che comunicano in tempo reale, come ad esempio sistemi VoIP durante una chiamata. Utilizza il protocollo Diffie-Hellman per lo scambio delle chiavi e Secure Real-time Transport Protocol per la cifratura. È stato sviluppato da Phil Zimmermann (da cui la lettera Z nel nome) e altri esperti di informatica e crittografia e pubblicato dalla Internet Engineering Task Force nel 2011 come RFC 6189.
ZRTP consente a due interlocutori di concordare una chiave segreta senza doverla condividere preventivamente e senza dipendere da un soggetto terzo come ad esempio un'autorità di certificazione.
Il funzionamento prevede quattro passaggi principali:
In questo modo vien garantita la sicurezza end-to-end della comunicazione.
ZRTP è utilizzato in numerosi software di VoIP, tra cui Jitsi e FreeSWITCH.
Il software Signal ha usato ZRTP per la negoziazione e l'autenticazione delle chiavi usate nelle chiamate fino al 2017, quando è stato sostituito dal protocollo Signal.