Search code examples
encryptioncryptographyhardwarecopy-protection

How can I use hardware solutions to create "unbreakable" encryption or copy protection?


Two types of problems I want to talk about:

  1. Say you wrote a program you want to encrypt for copyright purposes (eg: denying unlicensed user from reading a certain file, or disabling certain features of the program), but most software-based encryption can be broken by hackers (just look at the amount of programs available to HACK programs to become "full versions". )

  2. Say you want to push a software to other users, but want to protect against piracy (ie, the other user making a copy of this software and selling it as their own). What effective way is there to guard against this (similar to music protection on CD's, like DRM)? Both from a software perspective and a hardware perspective?

Or are those 2 belong to the same class of problems? (Dongles being the hardware / chip based solution, as many noted below)?

So, can chip or hardware based encryption be used? And if so, what exactly is needed? Do you purchase a special kind of CPU, special kind of hardware? What do we need to do?

Any guidance is appreciated, thanks!


Solution

  • Unless you're selling this program for thousands of dollars a copy, it's almost certainly not worth the effort.

    As others have pointed out, you're basically talking about a dongle, which, in addition to being a major source of hard-to-fix bugs for developers, is a also a major source of irritation for users, and there's a long history of these supposedly "uncrackable" dongles being cracked. AutoCAD and Cubase are two examples that come to mind.

    The bottom line is that a determined enough cracker can still crack dongle protection; and if your software isn't an attractive enough target for the crackers to do this, then it's probably not worth the expense in the first place.

    Just my two cents.