Os algoritmos assimétricos (em jogo nos criptosistemas com chave pública) permitem livrar-se de problemas ligados à troca de chave através de um canal protegido. Contudo, estes últimos continuar a ser muito mais eficazes (em termos de tempos de cálculo) do que os algoritmos simétricos.
Assim, a noção de chave de sessão é um compromisso entre a codificação simétrica e assimétrica que permite combinar as duas técnicas.
O princípio da chave de sessão é simples: consiste em gerar aleatoriamente uma chave de sessão de dimensão razoável, e de cifrar esta com a ajuda de um algoritmo de codificação com chave pública (mais exactamente com a ajuda da chave pública do destinatário).

O destinatário está em condições de decifrar a chave de sessão com a ajuda da sua chave privada. Assim, remetente e destinatários estão na posse de uma chave comum da qual são os únicos conhecedores. É-lhes então possível enviar mutuamente documentos cifrados com a ajuda de um algoritmo de codificação simétrico.
O algoritmo de Diffie-Hellman (do nome dos seus inventores Diffie e Hellman) foi afinado em 1976 a fim de permitir a troca de chaves através de um canal não protegido. Baseia-se na dificuldade do cálculo do logaritmo discreto num corpo terminado.
O algoritmo de Diffie-Hellman é contudo sensível ao ataque “Man in the middle” (traduzido às vezes como “ataque do interceptor” ou “ataque pelo meio”.