发明内容:
本软件防盗版方法是利用密码和网络技术来组建软件商品的防盗版体系,在软件
厂商的网络服务器端和各用户的计算机端,分别设置一对相同的密码机,其加密算法
使用对称密码算法,用户计算机端的加密系统与软件商品结合成一体,并将软件中的
部分常用程序加密成密文,当用户在计算机上安装软件或从计算机上将软件卸载时,
均在软件厂商的网络服务器上登记,将用户计算机的硬件“指纹”加密成“密指纹”,
分别在用户的计算机和软件厂商的网络服务器上备份,软件安装成功后,每次软件运
行初始,取用户的计算机硬件“指纹”,将其备份的“密指纹”解密成明文,经过对比
两组“指纹”,来确定软件是否能继续运行,从而,解决软件商品的防盗版问题,全
部过程用软、硬件结合方式实现,具体方法如下:
1、软件厂商的网络服务器端和用户的计算机端的密码机用硬件实现或用软件实现,
各用户计算机端存放一套专用密钥,并将其全部在软件厂商的网络服务器端备
份,服务器端也使用一套密钥。
2、每套密钥各自不同,软件厂商网络服务器端的一套密钥也与各套密钥不同,每套
密钥由K组“子密钥”组成,K=80~120,每组“子密钥”的长度为L,L=1~2字
节,即:L=8~16bit,加密系统在加解密过程中,是根据随机码选出对应的“子
密钥”合成一组密钥,随机码是由计算机系统中的随机函数产生,由S位数字组
成,其中:S=8~12,每位随机码对应10组“子密钥”。
3、每套软件有一组出厂号,出厂号由N位数字或英文字母组成,其中:N=8~12。
4、加密系统为每套软件设置一组软件安装号和一组软件卸载号,安装号由F位数字
或英文字母组成,其中:F=30~36;卸载号由U位数字或英文字母组成,其中:
U=30~36。
5、每套软件与一套密码机、一套专用密钥、软件的出厂号、“密安装号”和“密卸
载号”等结合成一套软件商品,每套加密系统事先将一套软件的安装号和卸载号
加密成“密安装号”和“密卸载号”,其加密密钥是根据产生的随机码选出的“子
密钥”合成,将该组随机码、“密安装号”和“密卸载号”与软件存放在一起,
软件的安装号和卸载号不与软件存放在一起。
6、在软件厂商的网络服务器端也将该软件的安装号和卸载号用该套密钥进行加密,
生成另一组“密安装号”和“密卸载号”,由于加密时产生的随机码与前者不同,
则使用的一组密钥也不同,并将该“密安装号”和“密卸载号”存放在服务器端
的数据库中。
7、在各用户计算机端存储一套用户的专用密钥,是用于软件安装和运行时,对计算
机硬件“指纹”进行加解密,其中:计算机的硬件“指纹”包含CPU主板、内
存储器、硬盘等计算机组件的型号和规格等,同时,该套专用密钥还用于软件安
装时,对网络服务器端传来的软件“密安装号”进行解密,当运行软件时,对全
部被加密成密文的程序进行解密。
8、 将密码机与一套专用密钥组成的加密系统与一套软件实现无缝结合,用加密系统
将软件的部分常用程序加密成密文,将这些密文即:“密程序”与未加密的程序
存放在软件商品的介质中,如:存放在光盘里,这一套专用密钥与密码机存放在
一起,若密码机的加密算法用纯软件实现,该套密钥与加密算法一起作为程序编
译成目标程序,该密钥也可存放在一支内置CPU智能芯片具有智能卡功能的
USB硬件设备中。
9、在进行软件安装时,先取计算机的硬件“指纹”并将其加密成“密指纹”M1,
再发送给软件厂商的网络服务器;服务器端收到该安装信息后,将“密指纹”
M1解密生成“指纹”,并确认该软件出厂号对应的计算机硬件“指纹”没有注册
过,即:服务器端没有收到同样的“指纹”,再用服务器端的密钥重新将其加密
成“密指纹”M2,将软件“密指纹”M2等安装参数进行登记,并将软件的“密
安装号”发送给用户计算机,计算机端将两组“密安装号”分别解密后,经比较
两组安装号是否相同,来确定该软件能否在计算机上安装。
10、软件厂商可以在其网络服务器上对每套软件进行授权,一套软件只能在一台计算
机上安装,也可以在多台计算机上安装,若授权只能在一台计算机上安装时,网
络服务器在收到用户计算机发来的“密指纹”M1后,先将其解密成“指纹”,再
确认服务器端是否已收到与该“指纹”相同的“指纹”,若相同,则软件安装失
败;若授权可以在多台计算机上安装时,网络服务器将比较已经登记了多少组相
同的“指纹”,若相同的“指纹”数量超过了服务器的授权,则软件安装失败,
否则,软件可以继续安装。
11、在软件卸载时,先清除用户计算机硬盘中的部分程序和“密指纹”M1,再将软
件“密卸载号”发送给网络服务器,厂商的网络服务器将该组“密卸载号”和服
务器端备份的一组“密卸载号”分别解密,经比较,若两者相同,则登记软件已
卸载,否则,不登记软件卸载,并将结果反馈给用户的计算机。
12、软件每次运行时,先取计算机的硬件“指纹”,再将安装该软件时加密成密文的
计算机硬件“密指纹”进行解密,通过比较二者是否相同,来确定该软件能否正
常运行,以便来控制软件被非法使用。
13、软件中的部分常用程序被加密成密文即:“密程序”,是以密文形式存储在用户的
计算机里,运行时先全部在内存中进行解密,再运行,程序终止运行后,在内存
中被解密的程序自动消失。
具体实施方式:
以下结合附图说明软件防盗版方法的实现步骤:
图1:说明软件安装成功后,用户在每次运行软件时,先取用户计算机的硬件
“指纹”,再将计算机硬盘中存储的该软件安装时的“密指纹”M1取出并解密,对
比这两组“指纹”是否相同,若不相同,则软件停止运行;若相同,则将软件中的已
被加密的常用程序进行解密,最后实现软件正常运行。
图2:说明在用户的计算机上安装软件,首先取用户的计算机硬件“指纹”并
将其加密成“密指纹”M1,再将该软件的出厂号、“密指纹”MI、软件安装时的时
间戳和选取密钥的随机码等参数一并发送给软件厂商的网络服务器,服务器在收到这
些参数后,对“密指纹”M1进行解密,生成“指纹”,再确认该软件出厂号对应的
计算机硬件“指纹”没有注册过,即:服务器端没有收到同样的“指纹”,若已注册
过,则软件安装失败,若未注册过,则使用服务器端的一套密钥对该“指纹”进行加
密生成“密指纹”M2,将软件的出厂号、时间戳、“密指纹”M2和加密M2选用密
钥的随机码等参数存放在服务器的数据库里,接下来服务器取该软件商品对应的“密
安装号”,并将该软件的“密安装号”与出厂号一并发送给用户计算机,用户计算机
将收到的“密安装号”解密,同时,将计算机中已备份的一组“密安装号”解密成明
文,再将两组软件安装号进行对比,若不相同,则软件安装失败,若相同,则软件安
装成功。
图3:说明将前期在用户的计算机上安装的软件卸载下来,软件卸载是先清除
部分程序和“密指纹”,再将该软件的出厂号、“密卸载号”、选取密钥产生的随机码
以及卸载时的时间戳等参数发送给软件厂商的网络服务器,服务器将接收到的“密卸
载号”用其专用密钥解密,同时,将服务器里已备份的该软件的“密卸载号”解密,
经过对比两组软件卸载号是否相同,若不相同,则软件停止卸载,若相同,则服务器
对软件的卸载时间进行登记,即:将时间戳加密成密文与软件的出厂号一并存放在服
务器的数据库中,并反馈给计算机软件卸载登记完毕,计算机收到软件卸载登记确认
后,将剩下的程序全部删除,至此,软件卸载完毕。