How passwords are fed to key derivation functions? Suppose I want to encrypt data, send it over the network, and decrypt it on the receiver side.

I know the elegant way to do this is by using a symmetric key to encrypt the data and an asymmetric key to send the symmetric key to the receiver so he can decrypt the data.

But I just read about another way which is to use a password based key derivation function to calculate a key on both sides. This way, no key exchanged. But this requires both sides to use the same password in the calculation of the key, so I suppose I have to send the password to the receiver at some point so he can calculate the same key and use it to decrypt.

If what I understood is correct, then I don't see the goal of using a PBKDF since I have to send something at some point. If not, then what I'm I missing?
You are correct: generally it is required to synchronize or otherwise synchronize information if you want to use a password based key derivation function (PBKDF) for sending messages.

That doesn't mean that using a password on the client side a derived key on the server side doesn't have advantages:


the password isn't stored on the server side, so an attacker may not be able learn the password if the backing database is stolen;
the password nor key needs to be stored client side (and a key is not so easy to remember) so stealing the device on the client side will likely not lead to any breach of the protocol.


That said, a PBKDF is commonly not used for sending messages in an online protocol. Instead a password based key agreement or PAKE could be used to authenticate the client and establish symmetric keys. However, a PAKE also requires a setup phase. In Augmented PAKE the server doesn't learn the password, only a derived value used for verification.

In the end, there is nothing asymmetric about password based encryption; the password is a secret; that secret or a derived value needs to be shared with the authenticating party.



Note that often the client application is often also from the same organization as the server. This means that the client will have to rely on the organization's security at some point - whichever cryptographic protocol is used. It's only possible to mitigate that problem as much as possible.