CN100474326C - 分离式计算机软件保护器及应用软件保护方法 - Google Patents
分离式计算机软件保护器及应用软件保护方法 Download PDFInfo
- Publication number
- CN100474326C CN100474326C CN 200610095320 CN200610095320A CN100474326C CN 100474326 C CN100474326 C CN 100474326C CN 200610095320 CN200610095320 CN 200610095320 CN 200610095320 A CN200610095320 A CN 200610095320A CN 100474326 C CN100474326 C CN 100474326C
- Authority
- CN
- China
- Prior art keywords
- software
- module
- information
- factor
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明请求保护一种分离式计算机软件保护器及应用软件保护方法,属于计算机控制领域。本发明提出了一种分离式计算机软件保护器及应用软件保护方法,将应用系统软件中的一部分作为检测软件,从中提取部分指令、数据存储在位于主机外的存储器中,安装在主机内的程序为缺失指令的应用系统软件,只有当主机内模块提供的加密因子对主机外模块中存储的指令、数据进行加密并返回主机内模块解密,进行合法性检验通过后,才允许用户使用相应的应用系统软件,从而保证了应用系统软件的安全性。本发明可广泛用于各种计算机应用程序的加密。
Description
技术领域
本发明涉及计算机控制领域,尤其涉及对计算机应用系统软件的加密技术。
背景技术
目前市场上使用的计算机软件保护主要采用软件保护锁,软件保护锁硬件内置CPU,主要是利用算法功能对计算机程序进行加密。但采用软件保护锁对计算机程序进行加密有以下几方面的缺陷,锁内的变换算法在出厂时已经固定,软件保护者只能设置算法的参数,这样就限制了厂商对算法的使用。对于软件厂商来说,要么预先记录算法结果然后在软件运行时使用码表核对,要么在软件中至少变换两次然后比较结果是否一致;这些信息很容易被破译,达不到保密的效果。对于一些"可编程"保护锁,用户可自行设计专用算法对软件进行加密,但硬件也很容易被模仿,并且,由于使用通用单片机等器件,没有提供有针对性的防范物理攻击手段,因此比较容易通过电子探测(SPA和DPA)攻击直接读出存储器内的数据,或者通过测试探头读取存储器内容;通过厂家测试点等接口对存储器或处理器进行直接数据存取,再激活单片机的测试功能等,从而对软件进行破译。
发明内容
本发明所要解决的技术问题是,针对现有技术中采用软件保护锁对计算机程序进行保护中安全性和保密性不强,容易被解密的缺陷,本发明设计一种分离式计算机软件保护串接器用于对计算机应用软件的加密,只有通过软件合法性检验,用户才可以使用相应的应用系统软件,从而保证了应用系统软件的安全性。
本发明解决上述技术问题的技术方案是,设计一种分离式计算机软件保护器,包括位于微机主机内的模块和微机主机外的模块,将应用系统软件中的一部分作为检测软件,从中提取部分指令、数据存储在位于主机外的存储器中,安装在主机内的程序为缺失指令的应用系统软件,只有当主机内模块提供的加密因子对主机外模块中存储的数据进行加密并返回主机内模块解密,并进行合法性检验通过后,才允许用户使用相应的应用系统软件。
该计算机软件保护串接器具体包括:软件检测模块、软件启用模块、控制单元、存储器、接口模块。其中软件检验模块和软件启用模块设置在微型计算机主机内,构成主机内模块;控制单元、存储器和接口模块组成主机外围设备,构成主机外模块。软件启用模块:为控制单元提供加密因子,并在对控制单元返回的信息进行解密后,将解密后的信息补充给软件检测模块;软件检测模块由部分可执行文件的数据和解密后的数据组成,收集计算机信息并提供给软件启用模块,接收软件启用模块发送的解密信息,将其填入应用系统程序中缺失信息(指令、数据)的相应位置,并对其进行合法性检验;只有通过软件检测模块的合法性检验,才能使应用系统软件完整,以允许用户运行程序进入应用系统;控制单元:从存储器中提取数据,采用软件启用模块提供的加密因子对数据进行加密;存储器:用于存储从应用系统程序中提取的指令、数据以及加密因子等;通信接口模块:用于控制单元与软件启用模块之间的通信连接,以此实现主机内模块和主机外模块的连接。
本发明还提出一种计算机应用系统软件保护方法,包括以下步骤,系统初始化,建立算法模块,该模块主要完成加密因子的计算,信息的加密、解密,存储器地址指针的计算,加密因子与计算机的相关信息满足一次函数关系;加密信息或解密信息与加密因子满足二元函数关系;从应用系统软件中提取部分信息,将其存储在存储器指令数据区;当检测到计算机运行上述提取了信息的缺失指令、数据的应用系统软件时,软件检测模块收集计算机的相关信息(包括执行应用系统软件的次数,系统时间)发送到软件启用模块,软件启用模块调用算法模块计算加密因子,并将加密因子发送到控制单元;控制单元根据加密因子对从存储器中提取的信息进行加密得到加密信息,并将加密信息返回软件启用模块进行解密得到解密信息;软件检测模块将解密信息填入应用系统软件缺失信息的相应位置,并进行校验。
本发明的有益效果:由于微机主机内软件检验模块由自身数据和解密后数据组成,离开外围设备或只有外围设备而更换了微机主机都无法正常运行,只有主机外模块与主机内模块配合,通过合法性检验后,才允许用户使用相应的应用系统软件,从而保证了应用系统软件的安全性。
附图说明
图1所示为本发明系统结构框图
图2所示为本发明模块结构框图
具体实施方式
下面针对附图和具体实例对本发明的实施进行具体说明。图1为本发明系统结构图,该分离式计算机软件保护器包括:软件检测模块、软件启用模块、控制单元、存储器及接口模块。其中,软件检测模块和软件启用模块内置于计算机主机内构成主机内模块,控制单元和存储器模块位于计算机主机外构成主机外模块,主机内模块和主机外模块通过接口模块进行连接和数据通信。软件启用模块为该计算机软件保护器提供加密因子,通过通信接口将加密因子发送到位于主机外的控制单元,控制单元接收到软件启用模块提供的加密因子后从存储器加密因子区中提取加密因子与启用软件模块提供的加密因子进行对比,对比正确后从存储器指令数据区中读出指令、数据并采用加密因子,调用算法模块中的加密公式对指令、数据进行加密得到加密信息(加密后的指令、数据),加密后的指令、数据再写回存储器指令数据区中的相应位置,覆盖掉被读出数据的区域,以保证存储器指令数据区中的指令、数据每次读取都不同。
控制单元返回加密信息到软件启用模块,在对控制单元返回的信息进行解密后,软件启用模块将解密信息补充给软件检测模块;软件检测模块接收软件启用模块发送的解密信息,将其填入应用系统软件中缺失信息的相应位置,并对其进行合法性检验,只有通过了软件检测模块的合法性检验,应用系统软件才将其接收为合法信息,在信息缺失位置填充了相应信息的软件才是一个完整的应用系统软件,用户才能正常使用;接口模块负责主机外控制单元与主机内启用软件模块之间的通信连接,实现了主机内模块和主机外模块之间的数据及指令的传送,该接口模块可选用满足RS-232国际标准电平的专用RS-232接口,也可选用其他计算机接口。
现结合附图2说明该计算机软件保护器的工作过程。图2为本发明模块结构框图,在图中标出了本发明实施对应用系统软件加密处理过程的顺序。
系统安装时,在初始化阶段,使用专用的白噪声生成设备生成白噪声加密因子数据,加密因子S的确定与计算机信息E相关,建立算法模块,设立加密因子、地址指针、加解密算法单元,遵循算法S=Y(E)的一次函数关系生成加密因子S,遵循算法F=Z(S)的一次函数关系确定地址指针F;遵循二元函数K(S,M)的关系构建加密算法单元确定加密数据X,遵循二元函数L(X,S)的关系构建解密算法单元确定解密数据X’。
在编程设计应用系统软件时,就从中提取出一部分指令或数据,而安装在主机内的应用系统软件的指令或数据是不完整,有缺失的。将应用系统软件中的部分程序作为软件检测模块的检验程序,并从中提取出部分指令和/或数据信息,将其存放在位于主机外的存储器指令数据区中,当软件检测模块检测到计算机运行上述有缺失信息的应用系统软件时,软件检测模块收集执行该软件的计算机的相关信息E,如:第几次执行该应用软件、计算机系统时间等,然后将这些信息E发送到软件启用模块(图2中步骤①)。软件启用模块调用算法模块,根据加密因子算法S=Y(E)生成加密因子,将生成的加密因子同时分别存储在主机内软件启用模块中的加密因子区和主机外存储器中的加密因子区(这两块区域中的加密因子数据是完全一致的)。
软件启用模块根据收集、接收到的上述信息,通过一元函数Y从软件启用模块加密因子区中提取出对应的加密因子S,然后通过接口模块将加密因子S和相关信息E发送给控制单元(图2中步骤②)。控制单元根据加密因子S,调用算法模块,依据公式F=Z(S)确定对应的存储器地址指针F,将确定的地址指针F发送到存储器中存储(图2中步骤③),并利用这个地址指针从存储器加密因子区中提取出对应的加密因子(图2中步骤④)。随后控制单元将从存储器中提取出的加密因子与从软件启用模块接收来的加密因子进行对比,一旦软件检验模块所用加密因子与控制单元内所储存的初次使用的加密因子一致,则读出存储器指令数据区中的全部信息M(也就是应用系统软件中缺失的指令、数据)(图2中步骤⑤),调用算法模块,按照加密算法单元中二元函数K(S,M)关系对从存储器指令数据区中读出的信息加密得到加密信息X,并将X写回存储器指令数据区覆盖掉原来的信息(图2中步骤⑥),实现存储器中数据的随机变化即存储器指令数据区中的数据不固定,同时将加密信息X返回软件启用模块(图2中步骤⑦)。软件启用模块调用算法模块,按照解密算法单元中二元函数L(X,S)关系对加密信息X进行解密后得解密信息X’,并将X’返回给软件检测模块(图2中步骤⑧),软件检测模块将其填入缺失指令或数据的应用系统软件的相应位置,并计算数据校验和,进行校验,如校验正确则允许用户使用该应用系统软件。上述过程中的任意一步失败,将导致用户无法使用该应用系统软件,所以达到了软件保护的作用。
为了便于理解,下面以具体实例对本发明的工作过程进行简单描述。
以应用系统软件中缺失三条指令A、B、C为例进行说明,如应用系统软件中缺失三条指令A、B、C,控制单元读出存储器指令数据区中存储的全部缺失指令数据A、B、C,用二元函数K对其进行加密得A’=K(A,S),B=K(B,S),C’=K(C,S),然后通过专用通信接口模块将加密数据A’,B’,C’传回软件启用模块,在软件启用模块中用二元函数L对其进行解密,得到解密后的指令A=L(A’,S),B=L(B’,S),C=L(C’,S),并将其返回软件检验模块,然后将指令A,B,C插入软件检验模块中的应用系统软件的相应缺失区域,得到完整的应用系统软件。然后软件检验模块中的检验软件对用户信息进行检验,合法后,用户才可以被允许使用相应的应用软件系统。
Claims (5)
1、一种分离式计算机软件保护器,包括软件检测模块、软件启用模块、控制单元、存储器、通信接口模块,其特征在于,软件检测模块:收集计算机信息并提供给软件启用模块,接收软件启用模块发送的解密信息,并对其进行合法性检验;软件启用模块:生成加密因子,并将其提供给控制单元,对控制单元返回的加密信息进行解密,并将解密信息发送到软件检测模块;控制单元:采用加密因子对从存储器中读取的信息进行加密;存储器:存储从软件检测模块的检验程序中提取的信息和加密因子;通信接口模块:完成控制单元与软件启用模块之间的通信连接;所述软件启用模块和软件检测模块位于计算机主机内,控制单元和存储器位于计算机主机外;所述检验程序中提取的信息为计算机系统应用程序中缺失的指令和/或数据。
2、根据权利要求1所述的分离式计算机软件保护器,其特征在于,所述存储器包括加密因子区和指令数据区,加密因子区存储加密因子,指令数据区存储应用程序中缺失的指令和/或数据。
3、一种计算机应用系统软件保护方法,其特征在于,包括以下步骤,系统初始化,建立算法模块;从应用系统软件中提取部分信息,将其存储在存储器指令数据区;当检测到计算机运行上述提取了信息的应用系统软件时,软件检测模块收集计算机的相关信息发送到软件启用模块,软件启用模块调用算法模块根据相关信息计算加密因子,软件启用模块将加密因子发送到控制单元,控制单元接收到软件启用模块提供的加密因子后,从存储器加密因子区中提取加密因子与启用软件模块提供的加密因子进行对比,正确之后,控制单元再根据加密因子对从存储器中提取的信息进行加密得到加密信息,并将加密信息返回软件启用模块进行解密得到解密信息;软件检测模块将解密信息填入应用系统软件提取信息的相应位置,并进行校验;所述从应用系统软件中提取的信息包括应用系统软件的指令和/或数据。
4、根据权利要求3所述的计算机应用系统软件保护方法,其特征在于,加密因子根据计算机的相关信息采用一次函数关系计算;加密信息或解密信息根据加密因子采用二元函数关系计算。
5、根据权利要求3或4所述的计算机应用系统软件保护方法,其特征在于,所述计算机的相关信息包括执行应用系统软件的次数和系统时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610095320 CN100474326C (zh) | 2006-12-22 | 2006-12-22 | 分离式计算机软件保护器及应用软件保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610095320 CN100474326C (zh) | 2006-12-22 | 2006-12-22 | 分离式计算机软件保护器及应用软件保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101000649A CN101000649A (zh) | 2007-07-18 |
CN100474326C true CN100474326C (zh) | 2009-04-01 |
Family
ID=38692615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610095320 Expired - Fee Related CN100474326C (zh) | 2006-12-22 | 2006-12-22 | 分离式计算机软件保护器及应用软件保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100474326C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314578B (zh) * | 2011-09-26 | 2015-10-28 | 浪潮(北京)电子信息产业有限公司 | 一种实现软件保护的系统及方法 |
CN103685212B (zh) * | 2012-09-26 | 2017-04-12 | 辽宁省电力有限公司沈阳供电公司 | 一种用于电能表无线抄表模块的固件保护方法 |
CN105229659B (zh) * | 2013-03-28 | 2019-04-16 | 爱迪德技术有限公司 | 混淆由软件应用对数据存储装置的访问 |
-
2006
- 2006-12-22 CN CN 200610095320 patent/CN100474326C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101000649A (zh) | 2007-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102624699B (zh) | 一种保护数据的方法和系统 | |
Hwang et al. | Securing embedded systems | |
CN101256613B (zh) | 无需制造者和用户知道彼此的加密信息的安全处理器系统 | |
JP5563067B2 (ja) | 試験装置によってセキュアドチップへのアクセスを認証する方法 | |
CN101470783B (zh) | 一种基于可信平台模块的身份识别方法及装置 | |
EP1396778B1 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
US20130117577A1 (en) | Secure Memory Transaction Unit | |
CN103824032A (zh) | 在微控制器中用于数据安全性处理的方法和装置 | |
US20040177257A1 (en) | Data processing device and data processing method | |
CN103415855A (zh) | 大容量存储设备存储器加密方法、系统及装置 | |
KR19980080678A (ko) | 인증 시스템과 방법, 및 인증 장치와 방법 | |
US9042553B2 (en) | Communicating device and communicating method | |
CN108108631A (zh) | 一种根密钥处理方法及相关装置 | |
CN102842009A (zh) | 半导体装置 | |
CN108352981A (zh) | 被布置用于计算目标块加密的密码设备 | |
CN105809070A (zh) | 一种u盘指纹认证加密方法 | |
CN103914662A (zh) | 一种基于分区的文件加密系统的访问控制方法和装置 | |
CN103440462A (zh) | 一种提高安全微处理器安全保密性能的嵌入式控制方法 | |
CN107526974A (zh) | 一种信息密码保护装置和方法 | |
CN101770559A (zh) | 数据保护装置和方法 | |
CN103198247A (zh) | 一种计算机安全保护方法和系统 | |
CN108173885A (zh) | 数据加密方法、数据解密方法及相关装置 | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
WO2023240866A1 (zh) | 密码卡及其根密钥保护方法、计算机可读存储介质 | |
CN100474326C (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090401 Termination date: 20111222 |