防止软件被盗用的方法

文档序号:6555229阅读:363来源:国知局
专利名称:防止软件被盗用的方法
技术领域
本发明涉及计算机软件保护,尤其是指通过数据加密来防止软件在未被许可的情况下被使用的方法。
背景技术
盗版是软件业发展和知识创新的最大障碍,对计算机软件进行加密处理是防止非法盗用的有效方法。目前,软件厂商用于对付盗版的加密方法主要分为两大类软件加密和硬件加密。软件加密一般是采用序列号和联网注册激活等方法对被保护软件进行加密保护,其优点是成本低,但很容易被通过破译密码、非法修改程序文件或通过共享系列号等方法被盗用。硬件加密技术需要一定的硬件成本,而且仍然可以通过模拟加密器或者仿造加密器的方式盗用。另外,这些现有的加密方法会使软件的合法用户感到不方便。
现有的某些通用类软件如工程设计绘图软件、财务软件等,在软件运行输出的成果数据中所必须标明的用户特征标志信息(如打印到工程图纸上或财务报表上的用户名称、相关业务管理人员姓名、企业代码等),是由用户自己在操作过程中输入的。这些软件采用现有的保护方法都一些共同的缺点,一旦出现某种软件被破除保护功能的拷贝,这种拷贝便被迅速复制传播,造成被广泛盗用的后果。

发明内容
本发明的目的是解决上述现有技术中存在的问题,利用针对具体授权用户所特有的标志信息进行软件保护的方法。
本发明的软件保护是通过如下方法实现的软件开发者在设计软件的同时运用一种加密变换方案,在所设计的软件中加入解密子程序。完成软件产品开发后,软件提供者对具体用户授权时,将针对具体授权用户所特有的标志信息用加密子程序加密后编制到独立于软件主要功能执行模块以外的加密文件中,然后将所述软件及加密文件拷贝到授权用户的计算机系统存储器中。软件运行时首先检测所述加密文件是否存在及是否合法,用户的计算机系统中必须存放合法的所述加密文件才能正常地运行软件。软件运行过程中对所述加密文件中经过加密的授权用户所特有的标志信息数据进行解密还原,并将这些授权用户所特有的标志信息随软件运行成果数据输出。
由于非授权用户无法获得合法的所述加密文件,因此无法使用被保护软件,即使从其他授权用户处非法地获得了加密文件,但运行软件时所输出的成果数据中将包含原授权用户所特有的标志信息,导致所输出的成果数据无效,并且暴露了非法使用软件的法律证据,从而达到保护软件的目的。
被保护软件主要功能执行模块是对所有该款软件的用户通用的,这样,软件升级维护时只需要制作一个相同的主要功能执行模块升级拷贝就可以分发给所有用户使用;而所述加密文件是针对每个具体授权用户所特有的,这样可以保证每个用户必须经过授权才能使用。


图1是本发明一种实施例的流程图。
图2是实施例二中制作加密文件流程图。
图3是实施例二中检测加密文件流程图。
具体实施例本发明在描述中引用了各种加密技术和加密算法,因此,先简单介绍基本的加密技术和加密算法。加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。对称加密、不对称加密算法变换数据通常使用了两种基本元素加密算法和密钥。加密算法包括对数据编码和译码的子程序,这些编码和译码子程序通常是一致的,也可以包括按相反次序执行的相同步骤。密钥是由加密者选择的,由数字或字符的序列组成,被密码算法用来对数据进行编码和译码。在下面详细描述中,讨论实施例中所用到的对称加密、不对称加密两类加密算法。
第一类算法是对称加密算法(单密钥算法),在这类算法中单个密钥同时用于数据的编码和译码。因此,为了确保安全,这个密钥必须保密。在这里的描述中,引用了数据加密标准(DES)单密钥技术,这是一种已经被美国国家标准局接受为标准的数据加密技术,并且对于掌握密码技术的人来说是很熟悉的。
另一类算法是不对称加密算法(公用密钥算法),在这类算法中,在数据编码和译码时不是使用同一个密钥,而是使用两个密钥,其中一个用来对数据编码,而另一个用来对数据译码。通常一个密钥被公开,而另一个则为专用的,称为私钥。如果私钥用来对数据编码,则公钥用来对数据译码,或反之。这类算法重要的一点是由公钥推断出私钥是不可能的。不对称加密算法对于掌握密码技术的人来说也是熟悉的。
这里所描述的数据加密和解密技术只是用于说明问题,因此,也可以用其他的数据加密和解密技术来替代而不脱离本发明的范围和原理。
图1说明了本发明一种实施例的流程图。软件开发者在编制软件的同时,确定加密变换方案(步骤101),采用不对称加密算法,加密子程序P1,对应的解密子程序P2,私钥K1用于加密,公钥K2用于解密。然后软件开发者将负责解密功能的解密子程序P2编入软件中,解密公钥为K2(步骤102),以备在软件运行需要时调用该解密子程序P2。完成软件开发任务(步骤103),再将软件主要功能执行模块制作为可在用户计算机存储器中安装的产品(步骤104)。当软件提供者需要对用户授权时登记该用户特有的标志信息(步骤105)。然后软件提供者运行加密子程序P1,用私钥K1对该用户特有的标志信息进行加密,加密后的数据以计算机存储文件的形式保存得到加密文件(步骤106)。再将软件安装到用户计算机系统中,并将所述加密文件复制到用户计算机系统中(步骤107)。当用户使用软件时,程序将检测所述加密文件是否存在(步骤108),如果所述加密文件不存在,程序将拒绝执行后面的任务直接结束。如果所述加密文件存在则正常运行程序,并在需要的时候调用解密子程序P2,用公钥K2为所述加密文件解密,还原取得用户标志信息(步骤109)。如果是授权用户使用软件,还原取得的用户标志信息为授权用户的正确信息,则软件运行将输出正确的成果数据,如在输出的工程图纸上或财务报表上需要的地方正确地打印用户的各种信息(步骤110)。如果非授权用户从其他授权用户处非法拷贝所述加密文件,则还原取得的用户标志信息为原授权用户的信息,则软件运行将输出错误的成果数据,如在输出的工程图纸上或财务报表上错误地打印原授权用户的各种信息,导致盗用软件行为的失败(步骤110)。
在使用本发明的方法保护软件时,一种可能的被盗用者试图攻击的方法是伪造、篡改加密文件,因此在下面第二个实施例中增加了检测所述加密文件是否合法的功能。在描述第二个实施例时将引用到一种数据校验技术,就是能够检测文件或数据在传输过程中是否被篡改的技术,一种常用的数据校验方法就是CRC校验。用CRC校验对某个数据文件校验,将得到一个CRC校验值,当这个数据文件被篡改后再次进行CRC校验,会得到另一个不同的校验值,比较两次CRC校验值是否一致就可以确定数据文件是否被修改过。CRC校验是一种公知的数据校验算法,对于掌握数据校验技术的人来说是熟悉的。这里所描述的CRC数据校验技术只是用于说明问题,因此,也可以用其他的数据校验技术来替代而不脱离本发明的范围和原理。
第二个实施例中主要流程和第一个实施例相同,不再重复描述,仅描述与第一个实施例不同的改进之处。在设计加密方案时(步骤101),同时设计一个CRC数据校验子程序P3。如附图2所示,在制作加密文件(步骤106)时,用虚线框内的流程来替代原步骤106。加密子程序P1用私钥K1加密用户登记的标志信息,得到加密文件F1(步骤201)。再用CRC数据校验子程序P3校验加密文件F1,得到CRC校验值T1(步骤202)。将CRC校验值T1与加密文件F1封装到一起,得到加密文件F2(步骤203),加密文件F2就是如同实施例一中的加密文件一样被用于复制到特定授权用户计算机中。如附图3所示,在启动软件检测加密文件(步骤108)时,用虚线框内的流程来替代原步骤108及判断框。首先判断加密文件F2是否存在,如不存在,拒绝执行其他任务,直接结束,反之继续执行下面的任务(步骤301)。如果加密文件F2存在,将加密文件F2解除封装得CRC校验值T1及加密文件F1(步骤302)。接着CRC校验子程序P3校验F1得CRC校验值T2(步骤303)。再判断T1是否等于T2,如不相等,说明加密文件F1或F2被篡改或伪造,拒绝执行其他任务,直接结束,反之继续执行下面的任务(步骤304)。
以上实施例描述的是比较简单的运用,目的在于说明本发明的原理和方法,实际使用中基于本发明的方法,可以有多种变化运用。如用户要求在软件输出的成果数据中所显示的用户信息有多种不同的显示内容或格式,那么软件开发者或软件提供者可以在编制加密文件时预先编制多种不同显示内容或格式的相应加密文件,由用户使用时选择。另一些变化是在设计加密变换方案时,考虑采用更为复杂的密码加密算法,如采用对称加密算法(DES)等多种加密变换方法混合加密,这些复杂的密码变换算法对于熟知密码变换技术的人是容易实现的。
所述被加密变换的授权用户所特有的标志信息出现在软件输出的成果数据中,这些信息可以是用户名称、身份证编号、地址、营业执照号码、税务登记号码、电话、网址、商标、印鉴图形、指纹图形、企业标志图形或声音信息等的一种或几种组合,也可以是电子水印或数字签名。
所述被保护软件输出的运行成果数据可以是由计算机输出设备输出的书面报表、书面文档及图形,也可以是存储器中的各种电子资料或用于通信线路传输的数据,还可以是包含图象、声音等信息的多媒体资料。
应该指出的是,这里给出和描述的实施例及其变动都仅仅是为了说明本发明的原理和方法,熟悉这一技术的人都可进行各种改进,而不离开本发明的范围和精神。
权利要求
1.一种防止软件被盗用的方法,其特征在于采用下列步骤1)软件开发者确定加密变换方案,加密子程序用于对数据加密,对应的解密子程序用于对数据解密;2)将负责解密功能的解密子程序编入软件中;3)完成软件开发任务;将软件主要功能执行模块制作为可在用户计算机存储器中安装的产品;4)软件提供者登记授权用户特有的标志信息,这些标志信息将出现在用户使用被保护软件所输出的成果数据中;5)软件提供者将授权用户特有的标志信息用加密子程序进行加密,加密后的数据以计算机存储文件的形式保存得到加密文件;6)将被保护软件安装到用户计算机系统中,并将所述加密文件复制到用户计算机系统中;7)软件启用时,程序检测所述加密文件,只有加密文件存在时才会正常运行;8)被保护软件调用解密子程序对所述加密文件解密,还原取得授权用户特有的标志信息;9)当还原取得的用户标志信息为授权用户的正确信息时,则软件运行将输出正确的用户标志信息出现在成果数据中;10)当还原取得的用户标志信息与实际使用者信息不一致时,则软件运行将输出与实际使用者不一致的标志信息出现在成果数据中。
2.权利要求1项所述的方法其特征在于,被保护软件主要功能执行模块是对所有该款软件的用户通用的;而所述加密文件是针对每个具体授权用户所特有的,且所述加密文件是独立于软件主要功能执行模块以外单独存放和复制的。
3.权利要求2项所述的方法其特征在于,所述加密变换方案采用不对称加密算法,其中私钥用于加密,公钥用于解密。
4.权利要求2项或3项所述的方法其特征在于,软件提供者制作所述加密文件的方法进一步包括以下步骤1)加密子程序用私钥加密用户登记的标志信息保存为加密文件F1;2)用数据校验子程序校验加密文件F1,得到校验值T1;3)将校验值T1与加密文件F1封装到一起,得到加密文件F2。
5.权利要求4项所述的方法其特征在于,被保护软件启动时程序对所述加密文件进行检测的方法进一步包括以下步骤1)判断加密文件F2是否存在,如不存在,拒绝执行其他任务,直接结束;2)如果加密文件F2存在,将加密文件F2解除封装得校验值T1及加密文件F1;3)用数据校验子程序校验F1得校验值T2;4)判断T1是否等于T2,如不相等,拒绝执行其他任务,直接结束,反之继续执行下面的任务。
全文摘要
一种防止软件被盗用的方法,在软件中加入解密子程序。软件提供者对具体用户授权时,将针对具体授权用户所特有的标志信息用加密子程序加密后编制到加密文件中,然后将所述软件及加密文件拷贝到授权用户的计算机系统中,用户计算机系统中必须存放合法的加密文件才能正常地运行软件。软件运行过程中对所述加密文件中经过加密的授权用户所特有的标志信息数据进行解密还原,并将这些授权用户所特有的标志信息随软件运行成果数据输出。由于非授权用户无法获得合法的加密文件,因此无法使用被保护软件,即使从其他授权用户处非法获得了加密文件,但运行软件时将导致所输出的成果数据无效,并且暴露了非法使用软件的法律证据,从而可以在不增加成本的前提下,从根本上防止了软件被盗用。
文档编号G06F1/00GK1811787SQ20061002388
公开日2006年8月2日 申请日期2006年2月15日 优先权日2006年2月15日
发明者施兆洲 申请人:施兆洲
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1