To verify that an assembly came from a specified trusted source and have not been modified.

For example, you get an assembly from a colleague who says it is from Microsoft. If it's really from Microsoft, the public key that Microsoft has given you will make that assembly usable. Otherwise, if the public key doesn't work, then mean that assembly is not genuinely from Microsoft!

Prevents a malicious user from tampering and modifying an assembly and
then re-signing it with the original signer’s key. Simply put, it prevents
others to make fake versions of your assemblies.

2)

Another purpose is that you have to sign an assembly before it can be installed in the global assembly cache (GAC) where it can be shared by multiple applications.

Tips:

Strong name private key must be kept secure.

Strong name public key will be given to the trusted referring assembly.

You should always protect your (.snk) file with a password to prevent someone else from using it.

One strong name key would be sufficient for all the projects but must be protected dearly!

You can’t just upgrade one assembly and deploy. If one assembly needs an upgrade, all the referenced assemblies must also be recompiled and deployed to point to the correct version.