How asymmetric (public key) encryption works