Há vários algoritmos que se prestam para implementação de sistemas criptográficos de chave pública, quase sempre baseados em problemas de difícil solução matemática.

Os problemas difíceis em que os algoritmos RSA, El Gamal e Rabin se baseiam são, respectivamente,