摘要
本发明公开了一种基于满足性问题的软件许可验证方法,包括以下步骤:许可颁发中心为软件的授权用户产生一个随机3‑SAT问题,并将该3‑SAT问题的信息和3‑SAT问题的解作为该授权用户的数字许可证信息,然后再发送给授权用户和软件验证方;授权用户需要使用软件时,使用两台通讯设备向软件验证方发送交互申请;两台通讯设备与软件验证方进行多轮交互,并记录下每一轮的信息;软件验证方检查每一轮的交互信息,判断是否通过认证,即是否认可授权用户拥有有效的许可证。本发明其安全性是基于3‑SAT问题的NP完全性,而非依赖于密钥长度或加密算法的复杂性;同时,零知识证明技术的使用,确保了许可密钥的绝对保密性。