1

I need a simple message scheme where a sender can send a private message to a receiver using a public database and without relieving who the receiver. All parties have an Elliptic Curve public and private key pair.

Is there a searchable encryption scheme for this? I imagine the sender can encrypt the recipient's public key (like a "to" field) with the recipient's public key and store that as a searchable token attached to the message. The receiver can use their private key to construct a search token and send that to the server. The server searches the cipher text to fetch message. The server should not not known which record was returned.

Some sort of paging or multi-message support will be needed as more than one message may be sent. The heavy lifting should be done on the server, the clients are limited in bandwidth and network. This will be a large data-set.

Am I on the right track here with searchable encryption? It looks like homomorphic encryption is over-kill. I'm not sure how to solve the paging problem or if this searchable encryption is mature enough for the task.

jcalfee314
  • 152
  • 8
  • 2
    I'm trying to figure out what your end goal is. With your current scheme, it sounds like you're replacing the email address as an identifier with the public key as an identifier. I'm not sure it really accomplishes your goal of not identifying who the receiver is. – Dan Landberg Jun 21 '19 at 21:05
  • 1
    Also, without revealing the receiver to whom? – Dan Landberg Jun 21 '19 at 21:11
  • The sender is known because they sign a transaction with the message and put it on a blockchain. So we can't really privatize that. So the goal is to privatize the recipient. The recipient has to find this message in a large database of messages though. – jcalfee314 Jun 22 '19 at 12:04
  • The most important part is that the recipient is privatized on the public blockchain. The servers are semi-trusted but giving the recipient any level of privacy from the server helps too. – jcalfee314 Jun 22 '19 at 12:15

0 Answers0