Dans les bibliotheque universitaires il y a plein de bouquin qui explique ca.
Mias basiquement le processus est toujours le meme, cela vient de fonction dont l'iversion est difficile. Dans RSA, tu as besoin de n=p*q.
Si tu connais p et q, trouver n est aussi complique qu'une multiplication. Donc tu as un algo en O(log(p)+log(q)). Alors que si tu as n, retrouve p et q demande de factoriser n et on ne connait pas de "bon" algo de factorization.
Apres tous les algo a base de cle publique/cle prive ne fonctionne pas sur la multiplication et factorisation. Mais c'est toujours une histiore d'une fonction qui est facil dans un sens et difficile dans l'autre.
La signature et le chiffrement est souvent essentiellement la meme chose.
En terme de reference, wikipedia raconte ces choses la relativement bien.
http://en.wikipedia.org/wg/wiki/Public-key_cryptography
http://en.wikipedia.org/wiki/Integer_factorization
http://en.wikipedia.org/wrg/wiki/RSA_%28cryptosystem%29
http://en.wikipedia.org/wiki/Digital_signature