Provable Security for Public Key Schemes