In the context of communications with unknown people over some medium such as radio or internet, it is an advantage to at least be able to recognise communicators from previous sessions. This could be through remembering words or phrases or an alias they used.
The problem with this is that others may also be listening on your such sessions, and may then immitate and masquerade as someone else at some later date. If an alias was used as an identifier, then it may be repeated misleadingly. What would be more difficult to immitate is if a commonly known function was used to generate numbers or hashes. These could be time varying also, and would be compared.
It would still be possible for an uwanted listener to immitate however, so there would need to be some way of sharing such an identifying functions in a way that prevented anyone else from seeing it and using it. The easiest way of doing this would be to share a common function directly, but that would imply knowing someone already. Using common functions is similar to using a common key for both encryption and decryption, which is categorised as a symmetric encryption scheme. Sharing common functions or keys however, is not possible if a communicator does not want to be known directly, even though they may be willing to identify themselves in a familiarly anonymous way.
To handle this situation... public key scheme.