I. Introduction
Public key encryption with equality test (PKEET), introduced by Yang et al. in CT-RSA 2010 [23], is a special kind of public key encryption (PKE) which allows to check whether two ciphertexts encrypted under (possibly) different public keys contain the same message. PKEET has many interesting applications. For example, consider the following scenario. All users send encrypted emails to Alice using Alice’s public key, which include both the encrypted email contents and the encrypted keywords. There is an email security monitor responsible for generating sensitive keywords in order to test whether they are contained in the emails. In the cloud era, these sensitive keywords are also encrypted and stored in the remote cloud email server for security and privacy concerns. It should be guaranteed that the cloud email server can search for whether the sensitive keywords are contained in the emails, but learn neither the sensitive keywords nor the email contents. To do so, the emails are encrypted using a standard public key encryption system and then are appended with a PKEET ciphertext of each keyword. To send a message with keywords to Alice, the following ciphertext is generated: \begin{equation*} Enc(pk_{A}, M) \| \text {PKEET}(pk_{A},W_{1}) \| \cdots \| \text {PKEET}(pk_{A},W_{n}), \end{equation*}