Использование водяных знаков, основывается на записи в код программы скрытой информации (кому принадлежат авторские права и т.д.), которая позволяет истинному автору программы доказать то, что она является именно его интеллектуальной собственностью (но обычно использование водяных знаков не ограничивается только этим).
Такая скрытая информация, обозначим ее "W" (которая и называется водяным знаком), должна быть записана в программу "Р", таким образом, чтобы:
Также для увеличения эффективности водяного знака, его можно записать более чем один раз, в разных местах программы.
Отпечаток пальца (software fingerprint) эта иная технология, так как она кроме записи информации, позволяющей доказать интеллектуальное право собственности на программу, требует записи в каждую копию программы уникального идентификационного кода, присваиваемого каждому покупателю программы, что позволяет в последствии быстро отследить нарушителя авторского права, который, например, будет нелегально перепродавать программу (search and destroy them :).
Недостаток этих методов состоит в том, что у злоумышленника может появиться возможность подвергнуть изменению водяной знак или отпечаток пальца.