CN103294937A - 一种软件保护系统及其保护方法 - Google Patents
一种软件保护系统及其保护方法 Download PDFInfo
- Publication number
- CN103294937A CN103294937A CN2013102634149A CN201310263414A CN103294937A CN 103294937 A CN103294937 A CN 103294937A CN 2013102634149 A CN2013102634149 A CN 2013102634149A CN 201310263414 A CN201310263414 A CN 201310263414A CN 103294937 A CN103294937 A CN 103294937A
- Authority
- CN
- China
- Prior art keywords
- topological diagram
- software
- generation module
- module
- information
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种软件保护系统,包括以下模块:版权信息生成模块、版权信息加密模块、拓扑图转换模块A、拓扑图生成模块A、用户信息生成模块、随机数生成模块、拓扑图转换模块B、拓扑图生成模块B和拓扑图嵌入模块;首先将版权所有者的身份信息转换为软件的版权信息后进行加密,再生成软件水印拓扑图,同时将合法用户的个人信息与随机数相加后转换为拓扑图,再将两个水印拓扑图嵌入到软件代码中。本发明同时考虑了版权所有者的身份信息和用户的身份信息,通过提取软件水印,既能够证明软件的版权归属,又能够在盗版行为发生时追踪盗版的根源;即使在软件水印受到攻击时也能在一定程度上证明版权,具有较好的鲁棒性。
Description
技术领域
本发明属于软件保护领域,具体是一种涉及软件版权信息的生成、变换、软件水印的生成以及软件盗版源追踪的软件保护系统及其保护方法。
背景技术
网络的飞速发展为信息交换提供了巨大的便利,同时也为软件的保护带来了严峻的挑战。在过去的数十年里,软件盗版和非法使用是软件产业面临的最关键的问题之一,造成了巨大的经济损失。软件出现的早期,程序员只是在软件中简单加入个人信息即视之为一种软件水印。由于这些信息易于被获取、篡改,鲁棒性低,所以并没有受到重视,发展一直比较缓慢。直到1999年Collberg提出动态软件水印模型,它才得以迅速发展。动态图水印的核心思想是将水印信息转化为一个大整数,并将此整数转化成某种图的拓扑结构,然后将该拓扑结构嵌入到软件程序代码里。若程序的版权所有者能从中有效提取该整数,则可证明对该程序拥有知识产权。
典型的动态图软件水印有PPCT编码、排列图编码和基数编码。PPCT编码是在二叉树的基础上加了一个右指针指向根节点的生成节点,生成结点的左指针指向最右叶结点,叶结点的左指针指向自己左边最近的叶结点,右结点指向自己。最左边叶结点的左指针指向生成节点。所有结点通过指针链接在一起,构成一个循环链表。按照树的大小比较结果对每种PPCT编号,就可以将PPCT与其可表示范围内的整数序列一一对应,完成编码。图1是具有3个叶节点的PPCT编码图,代表整数4。排列图编码是用数字0,1,2,…,n-1的一个全排列的序号来表示一个整数,如列<1,2,3,4,5>对应整数0,<1,2,3,5,4>对应整数1,以此类推。然后用一个循环链表来编码该整数。图2代表29的排列图,其中节点数为5.基数编码由有k-1个结点的循环链表和1个头指针组成,循环链表中的每个结点包含两个指针:左指针和右指针,其中左指针起编码作用,右指针指向下一个节点。根据左指针的所指向的节点编号确定指数,将各节点代表的指数相加即得水印值。一种排列图编码方案如图3所示,其中k的值取6,拓扑图代表的水印值是4458。虽然以上动态图可以方便高效的嵌入到软件代码当中,对软件水印的鲁棒性有明显改善,但是当水印拓扑图受到攻击时,就失去了证明版权的能力,因此软件水印的安全性、鲁棒性仍存在不足,同时,当软件水印被攻击者提取后,有可能冒充版权所有者发布其它软件,导致版权所有者的利益和名誉受到损害,不利于软件产业的良性发展。
发明内容
本发明的目的在于针对现有的软件水印会被第三方提取并冒充的问题,提出一种隐藏版权所有者信息的软件水印的软件保护系统及其保护方法,能够为证明版权提供证据,又具备在盗版事件发生后起到追踪盗版源的功能,而且在软件水印受到攻击后能在一定程度上重建水印拓扑图进而证明版权的归属,具有很强的鲁棒性。
为达到上述目的,本发明所采取的技术方案是:一种软件保护系统,包括以下模块:版权信息生成模块、版权信息加密模块、拓扑图转换模块A、拓扑图生成模块A、用户信息生成模块、随机数生成模块、拓扑图转换模块B、拓扑图生成模块B和拓扑图嵌入模块;
所述的版权信息生成模块,用于将软件版权所有者的身份信息转换成软件版权信息,其输入为软件版权所有的身份信息,输出为软件版权信息;
所述的版权信息加密模块,以版权信息生成模块的输出为输入,通过加密算法计算版权信息对应的密文,并输出密文;
所述的拓扑图转换模块A:以版权信息加密模块的输出为输入,由密文计算拓扑图应包含的节点数;
所述的拓扑图生成模块A:根据拓扑图转换模块A计算的节点数和版权信息加密模块所得的密文,生成与密文等价的拓扑图;
所述的用户信息生成模块:根据用户购买软件时提供的个人信息,转换为计算机能算直接处理的二进制序列;
所述的随机数生成模块:用于生成一个随机序列;
所述的拓扑图转换模块B:以用户信息生成模块和随机数生成模块的输出序列相加后的结果为输入,用于计算拓扑图应包含的节点数;
所述的拓扑图生成模块B:根据拓扑图转换模块B中计算的节点数,生成与用户信息生成模块和随机数生成模块的输出序列相加后的结果相等价的拓扑图;
拓扑图嵌入模块:将拓扑图生成模块A和拓扑图生成模块B生成的拓扑图嵌入到源程序的代码中。
所述的软件保护系统的保护方法,包括以下步骤:
步骤1:将版权所有者的身份信息转换为版权信息,转换的方法为直接将版权所有者的身份信息逐个按字母转换为ASCII码;
步骤2:将软件版权信息进行加密处理;
步骤3:将加密后的软件版权信息转换成软件水印拓扑图;
步骤4:将合法用户的身份信息转换为二进制序列,转换的方法为直接将版权所有者的身份信息逐个按字母转换为ASCII码;
步骤5:版权所有者使用随机数生成模块生成一个随机数;
步骤6:计算二进制序列与随机数的和;
步骤7:利用拓扑图转换算法将二进制序列与随机数的和转换成软件水印拓扑图;
步骤8:分别将步骤3和步骤7所得的拓扑图嵌入到源程度代码中,完成软件水印的嵌入。
本发明与现有技术相比,能够获得的有益效果是:
(1)版权信息加密模块将版权信息进行加密,使用户无法获得真实的版权信息和版权所有者的信息。
(2)用户信息生成模块和随机数生成模块将用户信息与随机数做加法,使攻击者无法获得合法用户的信息。
(3)本发明能够为证明版权提供证据,又具备在盗版事件发生后起到追踪盗版源的功能,而且在软件水印受到攻击后能在一定程度上重建水印拓扑图进而证明版权的归属,具有很强的鲁棒性。
附图说明
图1是背景技术涉及的一种PPCT编码示意图。
图2是背景技术涉及的一种排列图编码示意图。
图3是背景技术涉及的一种基数编码示意图。
图4是本发明实施例所述的软件保护系统的结构示例框图。
具体实施方式
下面结合图4和具体实施例对本发明的技术方案做进一步说明。
本发明设计的软件保护系统,根据版权所有者的身份信息生成版权信息、根据合法用户的身份信息和随机数生成嵌入到软件中的用户信息,分别将版权信息加密后转换为拓扑图、将用户信息转换为拓扑图,最后将两个拓扑图嵌入软件代码当中,完成软件水印的嵌入操作。
为达到保护软件的目的,本发明实施例执行的具体步骤如下:
步骤1:将版权所有者的身份信息转换为版权信息N,转换的方法可以是直接将版权所有者的身份信息逐个按字母转换为ASCII码。
步骤2:将软件版权信息进行加密处理。实施例以对称密码AES为标准加密算法,高级加密标准(Advanced Encryption Standard,AES)是美国联邦政府采用的一种分组加密标准,已经被证实其安全性且广为全世界所使用,AES高级加密标准已经成为对称密钥加密中最流行的算法之一。实施例不局限于AES,任何加密算法均可实施,如其它的对称密码算法、流密码算法、公钥密码算法等。加密过程如下式:
N1=AES(N,k)
其中N为版权信息,k为版权所有者掌握的密钥,可随机生成,也可由版权所有者指定。
步骤3:将加密后的软件版权信息N1转换成软件水印拓扑图,此步骤的目的是将N1转换成适合嵌入软件代码的拓扑图结构,该步骤包含如下子步骤:
步骤3.1:选用合适的拓扑图转换算法将N1转换成软件水印拓扑图,实施例使用PPCT算法。在拓扑图转换模块A中,根据N1的大小计算PPCT叶节点数,计算过程如下式:
其中n代表PPCT的叶节点数。
步骤3.2:根据PPCT的叶节数n可计算PPCT的节点数n0,如下式:
n0=2n
步骤3.3:由节点数n0和N1的值生成N1对应的PPCT。
步骤4:将合法用户的身份信息转换为二进制序列u,转换的方法可以是直接将版权所有者的身份信息逐个按字母转换为ASCII码。
步骤5:版权所有者使用随机数生成模块生成一个随机数r,生成的方法可以使用软件实施随机数算法,也可以是通过硬件的方式生成。
步骤6:计算二进制序列u与随机数r的和N2,如下式。
步骤7:选用合适的拓扑图转换算法将N2转换成软件水印拓扑图,实施图使用排列图编码方法,该步骤包括以下子步骤:
步骤7.1:根据N2的值计算排列图编码的参数k,k应满足下式:
k!-1>N2
其中k代表排列图编码中的节点数。
步骤7.2:根据k和N2,采用排列图算法,生成一个与N2等价的排列图。
步骤8:通过拓扑图嵌入模块分别将N1、N2的拓扑图嵌入到源程度代码中,包括以下步骤:
步骤8.1:将N1、N2的拓扑图分别用代码予以实现。
步骤8.2:将N1、N2的拓扑图的实现代码分别嵌入源程序代码中,两个拓扑图的嵌入位置可随机选取,也可由版权所有者通过其它方式确定。为了增加拓扑图的隐蔽性,拓扑图的代码应分散在源程序代码中,不应集中、连续的嵌入到程序中。
具体实施时,可以采用软硬件模块化技术实现相应系统,如图4所示,包括版权信息生成模块401、版权信息加密模块402、拓扑图转换模块A403、拓扑图生成模块A404、用户信息生成模块405、随机数生成模块406、拓扑图转换模块B407、拓扑图生成模块B408和拓扑图嵌入模块409。
所述的版权信息生成模块401,用于将软件版权所有者的身份信息转换成软件版权信息。其输入为软件版权所有的身份信息,输出为软件版权信息;版权信息可以只含版权所有者的信息,或只含用户的信息,也可以同时含版权所有者信息和用户信息。
所述的版权信息加密模块402,以软件版权信息为输入,通过加密算法计算版权信息对应的密文。输入为软件版权信息,输出为密文。
所述的拓扑图转换模块A403:以版权信息加密模块的输出为输入,由密文计算拓扑图应包含的节点数。
所述的拓扑图生成模块A404:根据拓扑图转换模块A计算的节点数和版权信息加密模块所得的密文,生成与密文等价的拓扑图。
所述的用户信息生成模块405:根据用户购买软件时提供的个人信息,转换为计算机能算直接处理的二进制序列。转换的方法可以是直接将合法用户的个人信息直接按字母逐个使用ASCII码,也可以使用其它变换的方式。
所述的随机数生成模块406:用于生成一个随机序列,生成的方法可以是用软件的方式实现某个随机数生成算法。
所述的拓扑图转换模块B407:以用户信息与随机数相加后的结果为输入,用于计算拓扑图应包含的节点数,目标拓扑图可以是与拓扑图转换模块A相同的拓扑图,也可以是不同的拓扑图。
所述的拓扑图生成模块B408:根据拓扑图转换模块B中计算的节点数,生成与用户信息和随机数相加后的结果相等价的拓扑图。
拓扑图嵌入模块409:将拓扑图生成模块A和拓扑图生成模块B生成的拓扑图嵌入到源程序的代码中。嵌入的方法是生成与拓扑图等价的代码,然后将代码嵌入源程序代码,嵌入位置可以随机选取,也可以由用户指定。
本发明包括一个或多个处理器、计算机可读取存储介质。该计算机可读存储介质上存储的指令,所述指令在处理器上执行时致使该处理器使用计算机可读存储介质中的数据。计算机可读取存储介质中存储版权所有者的身份信息、合法用户的身份信息等。处理器读取版权所有者和合法用户的身份信息后生成版权信息。处理器将版权信息进行加密、生成随机数等操作生成水印信息。处理器根据加密后的版权信息进行拓扑图转换,生成水印拓扑图;处理器实施拓扑图的嵌入过程,完成拓扑图到软件代码的嵌入工作。
Claims (2)
1.一种软件保护系统,其特征在于,包括以下模块:版权信息生成模块、版权信息加密模块、拓扑图转换模块A、拓扑图生成模块A、用户信息生成模块、随机数生成模块、拓扑图转换模块B、拓扑图生成模块B和拓扑图嵌入模块;
所述的版权信息生成模块,用于将软件版权所有者的身份信息转换成软件版权信息,其输入为软件版权所有的身份信息,输出为软件版权信息;
所述的版权信息加密模块,以版权信息生成模块的输出为输入,通过加密算法计算版权信息对应的密文,并输出密文;
所述的拓扑图转换模块A:以版权信息加密模块的输出为输入,由密文计算拓扑图应包含的节点数;
所述的拓扑图生成模块A:根据拓扑图转换模块A计算的节点数和版权信息加密模块所得的密文,生成与密文等价的拓扑图;
所述的用户信息生成模块:根据用户购买软件时提供的个人信息,转换为计算机能算直接处理的二进制序列;
所述的随机数生成模块:用于生成一个随机序列;
所述的拓扑图转换模块B:以用户信息生成模块和随机数生成模块的输出序列相加后的结果为输入,用于计算拓扑图应包含的节点数;
所述的拓扑图生成模块B:根据拓扑图转换模块B中计算的节点数,生成与用户信息生成模块和随机数生成模块的输出序列相加后的结果相等价的拓扑图;
拓扑图嵌入模块:将拓扑图生成模块A和拓扑图生成模块B生成的拓扑图嵌入到源程序的代码中。
2.一种适用于权利要求1所述的软件保护系统的保护方法,其特征在于,包括以下步骤:
步骤1:将版权所有者的身份信息转换为版权信息;
步骤2:将软件版权信息进行加密处理;
步骤3:将加密后的软件版权信息转换成软件水印拓扑图;
步骤4:将合法用户的身份信息转换为二进制序列;
步骤5:版权所有者使用随机数生成模块生成一个随机数;
步骤6:计算二进制序列与随机数的和;
步骤7:利用拓扑图转换算法将二进制序列与随机数的和转换成软件水印拓扑图;
步骤8:分别将步骤3和步骤7所得的拓扑图嵌入到源程度代码中,完成软件水印的嵌入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102634149A CN103294937A (zh) | 2013-06-28 | 2013-06-28 | 一种软件保护系统及其保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102634149A CN103294937A (zh) | 2013-06-28 | 2013-06-28 | 一种软件保护系统及其保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103294937A true CN103294937A (zh) | 2013-09-11 |
Family
ID=49095785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102634149A Pending CN103294937A (zh) | 2013-06-28 | 2013-06-28 | 一种软件保护系统及其保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294937A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446752A (zh) * | 2018-12-13 | 2019-03-08 | 苏州科达科技股份有限公司 | 版权文件管理方法、系统、设备及存储介质 |
CN110334487A (zh) * | 2019-06-12 | 2019-10-15 | 中国舰船研究设计中心 | 一种基于数字水印的虚拟机镜像版权保护方法 |
CN110334483A (zh) * | 2019-06-20 | 2019-10-15 | 韶关市启之信息技术有限公司 | 一种代码保护方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558303A (zh) * | 2004-02-11 | 2004-12-29 | 北京邮电大学 | 数字水印基础设施 |
CN101196970A (zh) * | 2007-12-29 | 2008-06-11 | 武汉理工大学 | 基于数字水印和移动代理的数字版权管理系统 |
WO2012088663A1 (zh) * | 2010-12-28 | 2012-07-05 | 北京邮电大学 | 具有版权保护特性的数字水印作品及其生成方法 |
-
2013
- 2013-06-28 CN CN2013102634149A patent/CN103294937A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558303A (zh) * | 2004-02-11 | 2004-12-29 | 北京邮电大学 | 数字水印基础设施 |
CN101196970A (zh) * | 2007-12-29 | 2008-06-11 | 武汉理工大学 | 基于数字水印和移动代理的数字版权管理系统 |
WO2012088663A1 (zh) * | 2010-12-28 | 2012-07-05 | 北京邮电大学 | 具有版权保护特性的数字水印作品及其生成方法 |
Non-Patent Citations (1)
Title |
---|
张茂胜,孙小雁: "结合随机数和哈希函数的可重构软件水印方案", 《华南师范大学学报( 自然科学版)》, vol. 45, no. 2, 31 March 2013 (2013-03-31) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446752A (zh) * | 2018-12-13 | 2019-03-08 | 苏州科达科技股份有限公司 | 版权文件管理方法、系统、设备及存储介质 |
CN110334487A (zh) * | 2019-06-12 | 2019-10-15 | 中国舰船研究设计中心 | 一种基于数字水印的虚拟机镜像版权保护方法 |
CN110334483A (zh) * | 2019-06-20 | 2019-10-15 | 韶关市启之信息技术有限公司 | 一种代码保护方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiong et al. | Color image chaos encryption algorithm combining CRC and nine palace map | |
Ayoup et al. | Efficient selective image encryption | |
CN103595539B (zh) | 保留格式的数值型个人识别信息的加密方法 | |
CN103024006B (zh) | 一种云计算环境下双线性对的安全外包的方法 | |
CN102263636A (zh) | 一种融合神经网络与混沌映射的流密码密钥控制方法 | |
Jia et al. | A New Method of Encryption Algorithm Based on Chaos and ECC. | |
Kiya et al. | Image and model transformation with secret key for vision transformer | |
CN111861851A (zh) | 一种矢量地理数据交换密码水印的方法 | |
CN101527030A (zh) | 基于边信息的安全水印方法 | |
CN1889428B (zh) | 网络环境下生物特征数据的安全隐匿传输方法 | |
CN103294937A (zh) | 一种软件保护系统及其保护方法 | |
Ren et al. | Commutative encryption and watermarking algorithm based on feature invariants for secure vector map | |
He et al. | A Fast Image Encryption Algorithm based on Logistic Mapping and Hyperchaotic Lorenz System for Clear Text Correlation | |
CN104331856B (zh) | 一种基于实分数傅立叶变换的图像零水印嵌入和提取方法 | |
Ning et al. | Construction of new 5D Hamiltonian conservative hyperchaotic system and its application in image encryption | |
CN101582170B (zh) | 一种基于椭圆曲线密码体制的遥感图像加密方法 | |
Liang et al. | Image hybrid encryption based on matrix nonlinear operation and generalized Arnold transformation | |
CN104052750A (zh) | 一种基于仿射变换保护凸二次规划外包中隐私的方法 | |
CN106228503A (zh) | 卫星遥感影像shp点文件的数字水印嵌入和提取方法 | |
Lui et al. | A pseudo-random number generator employing multiple Renyi maps | |
CN108011714A (zh) | 基于密码学运算实现数据对象主体标识的保护方法及系统 | |
CN103903218A (zh) | 用于公开验证所有权的鲁棒地理数据水印方法 | |
Zhao et al. | Medical Image Encryption Based on Stream Cipher Algorithm and Krill Group. | |
Wang et al. | Color image ROI encryption algorithm based on a novel 4D hyperchaotic system | |
Sangwan | Combining Huffman text compression with new double encryption algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130911 |