# What is the difference between an anonymous-encryption scheme and an authenticated-encryption scheme?

I was going through Indy-SDK when these two schemes were referenced. I want to know the precise differences between the two.

authenticated-encryption scheme

anonymous-encryption scheme

This one takes the sender's public key $$g^a$$ and the recipients public key $$g^b$$ and using the currently available secret key ($$a$$ or $$b$$) computes $$g^{ab}$$ and derives a symmetric encryption key from that. This is called a static-static Diffie-Hellman key exchange. It provides authentication for the sender because only the sender knows the correct (static) $$a$$ to come up with the same shared secret as the receiver.
They work the same as the authenticated one, but this time the sender picks a new $$a$$ for each message and includes $$g^a$$ as part of the ciphertext. This way anybody could have picked this $$a$$ - including an adversary that intercepted the ciphertext, dropped it and computed a new one. This uses a so-called static-ephemeral Diffie-Hellman key exchange and the security guarantees are not unlike those of an unsigned, encrypted PGP message.