Algorithm For Public Key Encryption