What is the role of public key token? Does it have any part in decrypting the signed hash. In GAC, why are there so many assemblies from Microsoft with the same public key token?