CN1514375A - 一种软件保护方法 - Google Patents
一种软件保护方法 Download PDFInfo
- Publication number
- CN1514375A CN1514375A CNA03139924XA CN03139924A CN1514375A CN 1514375 A CN1514375 A CN 1514375A CN A03139924X A CNA03139924X A CN A03139924XA CN 03139924 A CN03139924 A CN 03139924A CN 1514375 A CN1514375 A CN 1514375A
- Authority
- CN
- China
- Prior art keywords
- software
- machine
- certificate
- program
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于机器特征的软件保护方法,该方法利用机器特征码唯一的性质,求出机器的总特征值Φ,基于此总特征值Φ和依被保护软件指定的参数S,运用加密算法G,进行加密运算,生成与总特征值Φ和参数S唯一对应的密钥K,该密钥K就是被保护软件的合法使用的证书。本发明提出的保护方法保护效果好,被保护的软件可以随意复制,获取授权后便可使用。
Description
技术领域
本发明涉及软件保护方法,尤其是基于机器特征码的软件保护方法。
背景技术
为了保护软件产品的知识产权,打击盗版,软件厂商对软件产品通常进行加密处理,使非法用户不能使用其产品。根据检索,目前对软件产品进行加密保护的方法主要有以下几种,软盘加密法、插盘加密法、软件狗加密法、密码加密法和隐含代码加密法等,从目前使用的情况来看保护效果都不太理想。中国专利98124924.8公开了一种计算机软件的反馈式版权确认的防盗版加密方法。该方法主要步骤是程序输出软件程序编号a0,参数数据b0,抽取随机数据C0,并将这些数据反馈给软件公司,软件公司检验编号a0是否登记过,如没有登记过,则利用程序编号a0计算出参数数据b1,并与用户提供的参数数据b0进行比较,如一致,则用户和和软件公司分别用随机参数C0和程序编号a0计算出密匙数据d0和d1,并比较是否一致,如一致,软件安装成功,如不一致,则中断操作。
上述软件加密方法的主要目的是防止非法拷贝和使用,存在下列缺陷:
1.软件公司需购置数据库存放和维护程序编号a0,生成了经营成本,并且软件公司的数据库有被盗的可能性,它们一旦被窃取,被保护的软件就得不到保护;
2.为防止非法拷贝,采用更改机器硬件结构或增加输出功能的方式,不现实,且难度大,实际上,硬件在出厂时,其结构、性能和参数都已设定,软件加密时要改变其设定功能或结构是非常困难的;
3.制作的钥匙软盘在传递过程中,易丢失或被复制,因而,该方生成的钥匙既不方便,也不安全。
发明内容
本发明的目的是克服上述现有技术中存在的缺陷,提出一种基于机器特征码和预设参数的、用纯软件技术实现的、对硬件无任何要求的软件保护方法。
众所周知,任何一台机器,如:个人电脑、移动PC、Palm、PDA、小、中、大、巨型计算机、PC服务器等都是由许多部件组成的,如:主板、cpu、网卡等,每一个部件都有特征码(如产品序列号等),且各部件的特征码都是唯一的。设计算机有n个部件,部件1的特征码为X1,部件2的特征码为X2,部件n的特征码是Xn,F是机器总特征值的合成函数,则由特征码X1、X2……、Xn作为函数F的变量,可求出机器的总特征值Φ1,Φ1=F(X1、X2……、Xn)。基于此特征值Φ1和依被保护软件指定的参数S1,运用加密算法G,进行加密运算,生成与特征值Φ1和参数S1唯一对应的密钥K1,K1=G(Φ1,S1),该密钥K1就是被保护软件合法使用的证书。
证书的认证过程是一逆向过程,将证书/密钥K2输入计算机后,依加密算法的逆算法G-1,将K2分解成参数S2和特征值Φ2,当S2=S1,Φ2=Φ1时,再根据函数F的逆运算F-1(Φ2),求出X1、X2……、Xn,并且,被保护软件再次自动读取运行该软件的机器的各部件的特征值X1、X2……、Xn,当X1=X1,且X2=X2,……,且Xn=Xn时,确认用户为合法用户。否则,授权程序中断,确认用户为非法用户。从而,达到有效保护软件之目的。
本发明提出的软件保护方法是利用机器特征码的确认来实现软件的保护,所述的机器特征码确认过程包括下列步骤:
a、软件加密公司在被保护的软件上安装读取、合成、分解及校验机器特征码的程序A,并设定指定参数S1;
b、用户首次运行被保护软件时,程序A自动读取n个机器特征码X1、X2……、Xn,F是机器总特征码生成函数,以机器特征码X1、X2……、Xn作为函数F的变量计算出机器总特征值Φ1,Φ1=F(X1、X2……、Xn),将机器特征值Φ1发送给软件加密公司,并将Φ1保存在指定的文件中;
c、软件加密公司将得到的总特征值Φ1与被保护软件指定的参数S1,运用算法G,进行加密运算,得到与总特征值Φ1及参数S1唯一匹配的密钥/证书K1,K1=G(Φ1、S1),并将该密钥/证书K1反馈给用户;
d、被保护软件首次运行时,用户输入密钥/证书K2后,程序A通过加密运算的逆运算G-1,将K2分解,得到特征值Φ2和参数S2,比较S2、S1值,当S2=S1时,授权步骤继续进行,当S2≠S1时,确认步骤中断;
e、程序A将特征值Φ2依函数F的逆运算F-1,进行运算,得到机器的特征码X1、X2……、Xn;
f、程序A自动读取运行该被保护软件的机器各部件的特征码X1、X2……、Xn,并比较X值,当X1=X1,X2=X2、……Xn=Xn时,确认用户为合法用户。
在步骤d中,也可以从指定的文件中取出Φ1,再对Φ2、Φ1进行比较,当Φ2=Φ1,S2=S1同时成立时,授权步骤继续,否则,授权步骤中断。
本发明提出的软件保护方法与现有技术相比具有下列优点:
(一)安全可靠
加密基于机器特征码,由于特征码是唯一的,因而,为被保护软件制作的密钥/证书也是唯一的,每台机器唯一对应于一个证书,用于机器A的证书不能用在机器B,同样,用于机器B的证书也不能用于机器A。因而,密钥/证书无需保密,可以公开,不存在证书泄密的问题。但被保护的软件不会因证书的泄露而受到非法使用。经本方法加密的软件是安全的,软件的保护是可靠的;
(二)零成本
不需要对机器内的任何硬件或软件做任何更改、变动或增加,也无需添加任何设备或购买任何支撑软件,其成本为零;
(三)简单方便
一方面,由于密钥/证书可公开,因而,其传递、保管均无特殊要求,可用任何方式、任何手段来传递、保管证书,证书的传递、保管方便;另一方面,用户得到证书后,输入证书号即可,没有复杂的过程,并且一次授权,终身可用;
(四)证书制作算法破译困难
软件保护的最大敌人就是破译用于保护软件的加密算法。用大量的数据、运行高速的计算机,输入证书/密钥进行分析,以便找出加密的算法,这是破密的常用办法。本发明所生产的证书基于机器各部的特征值的总运算,每台机器都有不同的特征值,这些特征值是不输出的,也就是说,它们是不可见的,破译者无法得到每台机器的各部件的特征值,也就无法找到机器总特征值生成的规律,即函数F难以破译,在不知F的情况下,要破译加密算法G,就难上加难。并且,一方面,每台机器的特征值不一样,另一方面,每天都有大量的机器在投入使用,故任何人都无法收集全球所有机器的总特征值,换句话说,要收集全所有证书号来分析,找出规律,再破译出加密算法来,几乎是不可能的。
附图说明
下面结合附图和实施例对本发明进行详细的说明,其中:
图1是被保护软件与本发明证书管理程序A及指定参数S整合的原理方框图;
图2是证书生成与传递原理方框图;
图3是证书验证的原理图方框图。
具体实施方式
如图1所示,本发明被保护软件加密时,依下列步骤进行:
首先在被保护的软件上设置读取、合成、分解及校验机器特征码的程序A。程序A执行时,完成自动读取机器特征码、依函数F计算总特征值Φ、校验证书等功能。同时设置指定参数S1,指定参数S1可以单纯的数字、符号、字符串或一段程序;指定参数S1可以经加密处理,也可以不经加密处理。指定参数S1与保护软件融为一体,生成待授权的保护软件,并交给用户。
如图2所示,本发明按以下步骤为保护软件进行授权,生成授权:
a、用户安装被保护软件时,程序A自动读取n个机器特征码X1、X2……、Xn,并以这些特征码作为函数F的变量计算出特征值Φ1并保存,Φ1=F(X1、X2……、Xn),用户可以通过电子邮件、电话、传真等方式将总特征值Φ1发送给软件加密公司;
b、软件加密公司将得到的特征值Φ1与被保护软件指定的参数S1作为算法G的变量,依算法G,进行加密运算,得到对应于总特征Φ1与参数S1的密钥/证书K1,K1=G(Φ1,S1),将密钥/证书K1反馈给用户。
如图3所示,用户运行被保护软件时,按如下步骤进行证书认证,即完成授权:
c、证书未曾输入过,则输入证书K2,用户输入密钥/证书K2后,程序A通过加密运算的逆运算G-1,将K2分解,得到特征值Φ2和参数S2;
d、比较S2和S1的值,当S2=S1时,授权步骤继续进行,当S2≠S1时,确认用户为非法用户,证书认证步骤中断;
e、程序A将计算总特征值Φ的函数F的逆运算F-1作用于Φ2,得到机器各部件的特征码X1、X2……、Xn;
f、程序A再次自动读取运行机器各部件的特征码X1、X2……、Xn,并比较X值,当X1=X1,X2=X2,……Xn=Xn时,确认用户为合法用户,授权/认证完成。
在步骤d中,也可以取出Φ1,然后对Φ2、Φ1值进行比较,当Φ2=Φ1,S2=S1同时成立时,授权步骤继续,否则步骤中断。
在本发明的具体实施例中,机器的特征码可以取机器的序列号,特征码的数量n可以取多个,也可以取1个,可以在硬盘、CPU、主机等部件中任意选取。程序指定的参数S1可以是一串字符、一串数字或一段程序,可以是明码,也可以是加密后的非明码。
在本发明的另一实施例中,软件认证解密步骤可以稍稍做些变化,具体步骤如下:
c、保护软件首次调用时,用户输入密钥/证书K2后,程序A通过加密运算G的逆运算G-1,将K2分解,得到特征值Φ2和参数S2;
d、比较S1和S2的值,当S2=S1时,授权步骤继续进行,当S2≠S1时,确认用户为非法用户,步骤中断;
e、程序A再次自动读取机器特征X1 /、X2 /……、Xn/,以这些特征码作为函数F的变量,计算出特征值Φ1 /,Φ1 /=F(X1 /、X2 /……、Xn/),并将特征值Φ1 /与步骤c得到的Φ2值进行比较;
f、当Φ1 /=Φ2时,确认用户为合法用户,授权完成;当Φ1 /≠Φ2时,确认用户为非法用户,程序中断。
本发明利用基于机器特征的加密和解密技术,不仅从根本上解决了软件被盗用的问题,而且不怕非法复制,方便,成本低。
在本发明的构思下还可以有多种变化,这些变化都应落在本发明的权利保护范围内。
Claims (6)
1.一种软件保护方法,其特征在于:利用机器特征的确认来实现软件的保护,所述的方法包括下列步骤:
a、软件加密公司在被保护的软件上安装读取、合成、分解及校验机器特征码的程序A,并设置指定参数S1;
b、用户安装被保护软件时,程序A自动读取n个机器特征码X1、X2……、Xn,F是机器总特征码生成函数,以机器特征码X1、X2……、Xn作为函数F的变量,计算出机器总特征值Φ1,Φ1=F(X1、X2……、Xn),并将总机器特征值Φ1发送给软件加密公司;
c、软件加密公司将得到的总特征值Φ1与指定的参数S1,运用算法G,进行加密运算,得到与Φ1及参数S1唯一匹配的密钥/证书K1,K1=G(Φ1、S1),将密钥/证书K1反馈给用户;
d、被保护的软件运行时,用户输入密钥/证书K2后,程序A通过加密运算的逆运算G-1,将K2分解,得到特征值Φ2和参数S2,比较S2、S1,当S2=S1时,授权步骤继续进行,否则,当S2≠S1时,步骤中断;
e、程序A依函数F的逆运算F-1(Φ2),得到机器特征码X1、X2……、Xn;
f、程序A再次自动读取运行被保护软件的机器之各部件的特征值X1、X2……、Xn,并将这些特征值与由F-1分解出来的特征值X1、X2……、Xn逐一比较,当X1=X1,X2=X2,……且Xn=Xn时,确认用户为合法用户。
2、如权利要求1所述的软件保护方法,其特征在于:指定参数S1设为空值,仅根据机器的特征码加密制密钥/证书。
3、如权利要求1所述的软件保护方法,其特征在于:所述的机器特征值n取一个。
4、如权利要求1或3所述的软件保护方法,其特征在于:所述的机器特征码是机器的序列号。
5、如权利要求1所述的软件保护方法,其特征在于:步骤d中除比较参数S1、S2外,还比较Φ2与Φ1,当Φ2=Φ1,S1=S2同时成立时,授权步骤继续,否则步骤中断。
6.如权利要求1所述的软件保护方法,其特征在于:所述的指定参数S1被加密处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03139924 CN1199110C (zh) | 2003-07-21 | 2003-07-21 | 一种软件保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03139924 CN1199110C (zh) | 2003-07-21 | 2003-07-21 | 一种软件保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1514375A true CN1514375A (zh) | 2004-07-21 |
CN1199110C CN1199110C (zh) | 2005-04-27 |
Family
ID=34240213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03139924 Expired - Lifetime CN1199110C (zh) | 2003-07-21 | 2003-07-21 | 一种软件保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1199110C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1315017C (zh) * | 2004-12-20 | 2007-05-09 | 四川大学 | 一种软件版权保护的方法 |
CN102289630A (zh) * | 2011-07-29 | 2011-12-21 | 天津同阳科技发展有限公司 | 一种用于cems系统的版权保护方法 |
CN103119889A (zh) * | 2010-09-24 | 2013-05-22 | 英特尔公司 | 使用硬件超级密钥验证和保护正版软件安装 |
CN104657633A (zh) * | 2014-11-12 | 2015-05-27 | 国家电网公司 | 一种基于程序自身的特征数字代码加密方法 |
CN104751042A (zh) * | 2015-01-16 | 2015-07-01 | 西安电子科技大学 | 基于密码哈希与生物特征识别的可信性检测方法 |
WO2015131324A1 (zh) * | 2014-03-04 | 2015-09-11 | 华为技术有限公司 | 软件安全性检测方法、装置及设备 |
CN108809653A (zh) * | 2018-06-19 | 2018-11-13 | 北京多采多宜网络科技有限公司 | 一种加密校验处理方法 |
CN108876538A (zh) * | 2018-06-19 | 2018-11-23 | 北京多采多宜网络科技有限公司 | 一种订单信息处理方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442303C (zh) * | 2007-04-05 | 2008-12-10 | 威盛电子股份有限公司 | 应用程序保护系统及方法 |
-
2003
- 2003-07-21 CN CN 03139924 patent/CN1199110C/zh not_active Expired - Lifetime
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1315017C (zh) * | 2004-12-20 | 2007-05-09 | 四川大学 | 一种软件版权保护的方法 |
CN103119889A (zh) * | 2010-09-24 | 2013-05-22 | 英特尔公司 | 使用硬件超级密钥验证和保护正版软件安装 |
CN103119889B (zh) * | 2010-09-24 | 2015-09-09 | 英特尔公司 | 使用硬件超级密钥验证和保护正版软件安装的装置、系统、方法和控制器 |
CN102289630A (zh) * | 2011-07-29 | 2011-12-21 | 天津同阳科技发展有限公司 | 一种用于cems系统的版权保护方法 |
CN102289630B (zh) * | 2011-07-29 | 2016-09-07 | 天津同阳科技发展有限公司 | 一种用于cems系统的版权保护方法 |
WO2015131324A1 (zh) * | 2014-03-04 | 2015-09-11 | 华为技术有限公司 | 软件安全性检测方法、装置及设备 |
CN105190637A (zh) * | 2014-03-04 | 2015-12-23 | 华为技术有限公司 | 软件安全性检测方法、装置及设备 |
CN104657633A (zh) * | 2014-11-12 | 2015-05-27 | 国家电网公司 | 一种基于程序自身的特征数字代码加密方法 |
CN104751042A (zh) * | 2015-01-16 | 2015-07-01 | 西安电子科技大学 | 基于密码哈希与生物特征识别的可信性检测方法 |
CN104751042B (zh) * | 2015-01-16 | 2018-03-06 | 西安电子科技大学 | 基于密码哈希与生物特征识别的可信性检测方法 |
CN108809653A (zh) * | 2018-06-19 | 2018-11-13 | 北京多采多宜网络科技有限公司 | 一种加密校验处理方法 |
CN108876538A (zh) * | 2018-06-19 | 2018-11-23 | 北京多采多宜网络科技有限公司 | 一种订单信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1199110C (zh) | 2005-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1315017C (zh) | 一种软件版权保护的方法 | |
CN1257648C (zh) | 多级多维内容保护方法 | |
CN100338905C (zh) | 具有硬件适应性的数字内容与硬件绑定的方法 | |
CN1925392A (zh) | 一种设备合法性认证的方法 | |
CN1864364A (zh) | 安全令牌 | |
CN1773994A (zh) | 一种数据安全存储业务的实现方法 | |
CN103906054A (zh) | 物联网软件功能模块授权方法及系统 | |
CN1719373A (zh) | 电子文档的指纹加密及解密方法 | |
CN101043326A (zh) | 动态信息加密系统和方法 | |
CN1199110C (zh) | 一种软件保护方法 | |
CN102567685A (zh) | 基于非对称公钥密码体系的软件版权保护方法 | |
CN1863038A (zh) | 对终端设备中应用程序实施控制和管理的方法 | |
CN1808458A (zh) | 软件产品生产安全控制装置及其控制方法 | |
CN1588365A (zh) | 密文全文检索技术 | |
CN1518269A (zh) | 数据加密设备和方法 | |
WO2012146079A1 (zh) | 一种软件的保护方法 | |
CN1645797A (zh) | 在数字版权管理系统中使用的优化安全数据传输的方法 | |
CN1788245A (zh) | 数字权限管理 | |
CN1877595A (zh) | 一种软件版权保护方法 | |
CN101692265A (zh) | 一种文件加密保护方法 | |
CN1361481A (zh) | 基于网络浏览器插件的版权保护方法 | |
CN100343775C (zh) | 一种许可证文件生成方法及软件产品保护方法和系统 | |
CN101692266A (zh) | 利用隐藏分区与cpu id的高强度文件加密保护方法 | |
CN109412754B (zh) | 一种编码云的数据存储、分发以及访问方法 | |
CN2847708Y (zh) | 利用特征码对关键数据进行加/解密的安全系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20050427 |