How does semantic security differ from other security definitions such as ciphertext indistinguishability under chosen plaintext attack (IND-CPA)? Discuss their relationships and practical implications.