Managed-обертка (.Net) для USB-ключа SenseLock - использование свободное
http://robosoft.info/about/news/news_detail.php?ID=920
по задумке авторов облегчает скорость разработки защиты
влияние на защищённость не проверялось, но концепции выноса кода в ключ этот набор классов не противоречит, а значит не снижает уровня защиты