I'm new to asymmetric cryptography (public-private keys) and has a fundamental confusion: I understand that once a person has broadcast his public key to the network, the following communications become safe using the public-private key paradigm. However, how do you make sure the public key received is valid at the first place? For example, if Bob wants to establish a secure communication with Alice, with Eve eavesdropping in the middle, how do you make sure that Bob receives the real public key from Alice, instead of the fake public key forged by Eve? Thanks!
Cheers, M.