I am using python and libnacl, which is a libsodium wrapper, to develop an application where users can deposit encrypted data.
Alice uses libnacl.sealed.SealedBox(keyBob)
to encrypt her message and uploads it to a database for Bob to download it.
Bob and Eve can read the database and observe there I a new entry. Neither Eve nor Bob cannot tell that the message was sent by Alice. Bob can decrypt the message and therefore knows that he is the recipient.
Eve also knows Bob's public key. Can Eve tell that the message's recipient is Bob?
edit:
VincBreaker pointed me at the documentation of libsodium sealed box where you can find:
ephemeral_pk ‖ box(m, recipient_pk, ephemeral_sk, nonce=blake2b(ephemeral_pk ‖ recipient_pk))
This tells some "ephemeral" public key is included in the sealed box.
What does "ephemeral" mean?
To be precise is there a way to link the ephemeral_pk
to Bob's actual public key?