This specification describes the support for shared assembly names in the NGWS runtime. Simple, friendly names for assemblies are easy and convenient to use and are sufficient in a number of cases. However, there are a number of situations where developers must be able to guarantee that the names they choose for their assemblies will be globally unique and that the names they choose cannot be spoofed either accidentally or maliciously. The runtime solves the problem of name uniqueness and name security using standard public-key cryptography. Names secured with a key-pair are termed shared names.