# GPG implementation of ECC “Encryption” (ECDH) vs RSA

My understanding of GPG with traditional RSA keys, is that RSA is by definition can be used to both sign and encrypt.

This is because RSA can be directly applied to plaintext in the following form: c = m^e (mod n).

I understand that GPG supports Elliptic Curves now, however, given that ECC generally uses ECDH hybrid approaches in order to encrypt data, how does GPG implement this?

As I understand the basis of ECDH is that Alice and Bob can reach the same secret as:

pubAlice * privBob === pubBob * privAlice...

However, when using RSA the recipient doesn't need your public key to calculate a shared secret to decrypt, it would seem that using GPG ECDH one needs the public key of the sender to decrypt.

I have successfully decrypted data sent via GPG ECC keys, without the senders public key, how does that work?

Is the public key of the sender sent as part of the cipher text?