We do something similar for software licensing by signing an XML file, although ours are not tied to any hardware. The same concept applies. It works well.
You will also need to protect your .NET code with some kind of obfuscation tool, we use {smartassembly} , but there are several others there.
Keep in mind that no matter what you do, given enough time and resources, someone can get around it.
, , , , .