Sistema en el que las claves para cifrar son distintas a las de descifrar, y en el que parte de las claves son conocidas (clave pública de cada usuario), y otra parte permanece en secreto (clave privada de cada usuario). Se basa en problemas criptográficos.