On Notions of Security for Deterministic Encryption, and Efficient Constructions without Random Oracles