I have a C++ application with an algorithm, whose usage I want to protect. The application needs several input data files to work (those may change for each client).
My goal is to allow only unaltered input data files which were registered for use.
My current thoughts are:
- The client has the input files as text
- Calculate a hash from each file and store that hash in the binary. (Deliver a new binary after each registration.)
- Allow only input files with stored hash.
I know that is a very basic approach. What would you suggest to make it more robust?
I know there is no 100% security, I'm just aiming for a reasonable tradeoff between implementing security and simplicity of hacking my application.