In certificateless public key cryptography, the partial private keys are confidential information. Namely:
- If an adversary has access to party A's partial private key $D_a$, it can publish a false public key $P_a'$, and is able to decrypt any communication addressed to it and able to create signatures with it
The only thing keeping this from happening (that is, the only thing that is authenticating the user) is that it has possession of $D_a$ - the secret part that the user has is only used to prevent message decryption and signing by other parties except the user, but it obviously plays no part in authentication, as anybody can create such a secret part.
If the server is compromised, the server can fake any key for anybody any way they wish - just like in identity based cryptography - the only special sauce that certificateless public key cryptography adds is that on server compromise, the adversary still can not decrypt any messages for the user or fake any signatures for the old published public key.
- Even if an adversary gains access to $D_a$, the only thing lost is authentication, as the adversary can publish a new key $P_a'$, but confidentiality or non-repudiation for messages with the old public key $P_a$ are not lost
A simple way to think about certificateless public key cryptography:
- KGC creates a keypair for you and sends it to you
- You create a keypair by yourself
- Possession of the KGC generated private key certifies that the KGC trusts you
- Possession of your own private key certifies yourself, so the KGC can't fake you
- When signing a message, you sign it with both keypairs, proving that the KGC trusts you, and that you are indeed you
- When somebody verifies your signature, they need both public keys to be convinced that both conditions hold
From this, it should be obvious that both keypairs need to be proper keypairs with public and private parts, and that the private parts need to be kept secret for the authentication to have meaning.
Obviously this is a crude simplification, as the real method combines the two keypairs and uses identity based cryptography for the KGC keypair - but the basic idea applies.