This guy has the right idea and this is what I meant.
I was once part of a particular arcade game emulation community (smaller than MAME) and the copy protections there ranged from non-existant, to the trivial, to the standard baked serial codes on the ROMs/hard drives and boards, to ones with security chips that performed very obnoxious operations in place for the main code itself, or outright served as an encryption device for the whole game data bank, decrypting on the fly for the CPU. The only way these particular ones were beaten were because the encryption method was simple and after patching out the security chip calls, the program could use the unencrypted data files natively. If you need an example of popular arcade games that took literally years to break because of aggressive copy protections of this sort, take a look at the CPS boards, made by Capcom. The early boards took a significant amount of time to emulate and make physical boards revivable - the CPS-3 board protection's death can be dated to approximately the year 2007. Not bad for hardware from 1996, I think. An intelligently designed system that used an encryption like AES would be an absolute nightmare to defeat, and would likely have to be defeated in similar, insane ways like burning off a chip's casing, then taking a photo of the physical layout of the chip in order to get at the data, as was the case for Mask ROMs. For a PC where you can take a dump from memory to snatch the key or the decrypted executable which you can then crack in standard ways, so this is less relevant, but it's still a higher entry bar - but most cracker groups voluntarily challenge themselves to defeat software packers and encrypters, so if your program is big enough to attract attention of one of those, it will be a matter of days rather than minutes. And then there are the folk that create home made replica server programs for MMOs so that they can hack the rules and drop rates, so there's always someone with the skill to write the assembly code to do what has to be done, even if they can't SEE what they're trying to copy.
At a significant cost, you CAN briefly deter pirates, except for only the most dedicated. If your software is niche enough (you imply that it is, at this stage) then you can survive with moving functionality off onto the hardware dongle. There are PC games that save profile data directly onto a USB stick, and some of these have been niche enough to make this barrier to cracking too high to overcome for years.
Is your software small enough, is your need big enough to foot this cost and inconvenience to your users? Can't answer that one for you.