Can I sign a .NET assembly?
The question is what you want to do. There exist .NET signing (using RSA keypair) used for strongnaming the assemblies, and there exists Authenticode which lets you sign any file in PE format including assemblies in DLL files. Note, that Authenticode is not .NET-specific and knows nothing about .NET. It signs PE structure.
For Authenticode signing (using X.509 certificates suitable for Code Signing) you can use SignTool.exe tool. .NET will verify the signature when it loads the assembly, but in some cases such verification can take extra seconds (if the OS performs CRL and OCSP checking of certificates in the chain), slowing down assembly loading.
Strongnaming is done using sn.exe tool included in .NET SDK.
SecureBlackbox lets you create, verify and remove Authenticode signatures. Strongnaming in code is not currently supported by SecureBlackbox.