Как реализовать USB-ключ защиту для ПО?
Вам нужен ключ защиты Sentinel (это современное поколение ключей HASP).
Вот тут можно скачать и потестить SDK и посмотреть видео-уроки о том, как это все работает: safenet-sentinel.ru/sdk
Совсем извращенской вариант, вынести часть функций ПО в  микроконтроллер присобаченный через USB. стоимость взлома при этом оценивается в 2000 $. самый шик если для каждого клиента будет своя "флешка" со своим набором зашитих в неё функций.