Hi, What is strong naming and how is it useful in .Net
I suggest you read Strong name assemblies can keep you out of DLL Hell:
Strong name assemblies allow developers to simplify component updates and avoid the infamous DLL Hell. Learn about the anatomy of strong names and see how you can use them to ensure version compatibility and security in your .NET apps.
Also see this article for a quick tutorial on how to strong-name an assembly.
It can also be used to ensure that the assembly is not tampered since it's released from the original publisher.
I wrote a long response outlining how strongly naming an assembly stops a third party from tampering with the assembly as an answer to this question. It may be useful if you want the how as well and the why.
I think one of the important features avoiding DLL hijacking (or whatever you call it) issues due to potential weak permissions.
Assume that one of the DLLs in your application can written by "everyone" in that case someone can just modify it and when a high privileged runs the .NET application attacker can elevate their privileges.
This is quite cool because in real world you can see these attack against applications such Anti viruses and other complex apps which relies on several DLLs in several different locations.