Injective Trapdoor Functions are Necessary and Sufficient for CCA2 Secure Public-Key Cryptosystems