一种软件加密的方法

文档序号:6654298阅读:253来源:国知局
专利名称:一种软件加密的方法
技术领域
本发明涉及一种新型的软件加密方法,其特征是加密方法更加可靠,更难破解,成本更低;凡使用此方法进行加密的软件均可以使用同一加密装置对软件进行保护;使用同一加密装置的多个软件可以同时运行。
传统的软件加密方法,或是易被破解,如密码方式;或是成本高,如微狗;或是每个软件只能使用对应唯一的加密装置,如微狗,软件狗,密盘等;又或是多个加密的软件无法同时运行,如软件狗,微狗等。
而本发明的目的是设计一种能彻底解决以上所有不足的新的软件加密方法,使得该方法能更容易被广泛地使用,从而达到彻底杜绝盗版,保护知识产权的目的。原理利用密匙的唯一性,使得每一授权软件只能在存在含有对应解密方法的加密装置的情况下才能正常运行。
被保护软件工作原理如

图1所示。
被保护软件购销流程如图2所示。
本发明的结构包括1、部分程序被加密的被保护软件;2、带有解密程序及解密密匙的加密装置;3、密匙管理机构及其服务程序。一、被保护软件i被保护软件的一部分程序被加密,加密的密匙对应于每一用户都不同,视用户所持的加密装置的ID而定;每个加密密匙都是唯一的。
ii被保护软件在运行时,能将被加密程序送进加密装置,并由加密装置解密还原成程序。
iii被保护软件可以有多个不同的部分被加密。二、加密装置
i加密装置实质上是一个带有解密程序的微处理器,例如单片机或智能卡等。
ii加密装置可以以多种方式与电脑相连,例如接于打印口、USB口或其它接口,又或以插卡的形式插于主板上,亦可以直接内接于主板上等等。
iii每个加密装置都有一个唯一的ID号,以及与之对应的一个或多个唯一解密密匙;加密装置的ID、解密密匙以及加密密匙均唯一对应。
iv每个加密装置都有解密程序,解密程序使用解密密匙对加密程序进行解密还原。
v加密装置存在着一个或多个可刷新储存区,其中至少一个用于存放被还原程序,刷新区可以不断被刷新,也就是说可以多次装入不同的程序;但存放在该刷新区的程序不可以被外部读出。三、密匙管理机构及其服务程序i密匙管理机构负责对密匙的制作和管理。
ii软件生产商将需加密程序提供给密匙管理机构。
iii所有加密装置的ID号都由密匙管理机构负责生成,而对应的解密程序、解密密匙及加密密匙亦都由密匙管理机构负责制作。
iv被保护软件的那些需要被加密程序的加密工作亦统一由密匙管理机构负责进行,密匙管理机构根据不同的加密装置用对应的密匙对同一程序进行加密,生成对应的已加密程序。
v加密装置的ID号的生成、密匙的生成、解密程序的制作、程序的加密都由服务程序完成。
vi购买被保护软件的消费者向密匙管理机构提供自己的加密装置的ID号,服务程序找到与该ID号对应的密匙对需加密程序进行加密,并将加密后的程序返回给消费者。加密装置的制作过程加密装置生产商制成加密装置后,将其提供给密匙管理机构,密匙管理机构为每个加密装置都提供一个唯一的ID号,并将解密程序装入加密装置中,然后再将对应的解密密匙放入解密程序中,加密装置工作时将以此密匙对传递进来的加密程序进行解密,而加密装置中的解密程序及密匙均不可被外部读出。这样整个加密装置就制作完毕,可以出售了。被保护软件的制作和购销过程软件生产商将软件制作完毕后,将该软件的非加密部分制成光盘,发行给经销商;同时又将软件的需加密部分提供给密匙管理机构。密匙管理机构将该部分程序装入服务程序,服务程序能根据顾客提供的加密装置的ID号,将软件商提供的程序用对应的密匙进行加密,并将加密后的程序发送给顾客。顾客在经销商处购买软件光盘后,将自己的加密装置的ID号以网络或其它方式提供给密匙管理机构,密匙管理机构的服务程序根据顾客提供的ID号用对应的密匙对软件商提供的需加密程序进行加密,然后将加密后的程序发给顾客。这样顾客就可以得到一个完整的软件了。当然,顾客亦可以用预订的方式,先将自己的ID号提供给软件生产商,软件生产商用该ID向密匙管理机构取得用对应密匙加密的程序后,将其与未加密程序一并制成光盘,然后发售给顾客。被保护软件工作过程被保护软件运行时,可以将部分已加密的程序送进加密装置,由加密装置对其进行解密,如果加密密匙与解密密匙对应,加密程序就能被还原成可执行程式并储存于加密装置中,当运行软件需要调用加密装置中的程序时,可以向其发送数据,并等待接收数据。加密装置中的已还原程序接收到数据后,执行程序,并将数据发送给运行软件。这样,被保护软件就能正常运行了。该软件加密方法的特点要想破解被保护软件,就要得到已加密程序,①由于每个加密程序的加密方法都是不同的,所以加密程序被复制后无法直接使用;②由于被还原的加密程序是在加密装置中运行,因而任何跟踪工具都无法对其进行跟踪;③由于储存在加密装置中的是软件的一部分,而并非简单的数据,因而只要使用得当,破解者便无法通过捕获端口数据制成仿真狗;④由于储存在加密装置中的已还原程序及解密密匙无法被读出,因而破解者便无法由此途径获得已还原程序及解密密匙;⑤由于被保护软件可以有多个不同的部分被加密,而加密装置中储存还原程序的区域可以不断被刷新,因而被保护软件在运行时,可以多次将不同的加密程序送入到加密装置中,从而大大地加强了软件的安全性;⑥由于加密装置中储存还原程序的区域可以不断被刷新,因而凡是使用此加密方法进行加密的软件都可以使用同一加密装置正常运行,而且可以同时运行;⑦由于解密程序的制作、密匙的生成和需加密程序的加密是由密匙管理机构负责,因而密匙和需加密程序的保密性可靠;加密装置的改进为了加快加密装置的处理速度和降低成本,可以对加密装置作如下改进加密装置中的CPU可以使用电脑或显卡上的CPU,自己只保留ROM和EEPROM,解密程序及密匙储存在ROM中,而还原后的程序储存在EEPROM中;ROM和EEPROM中的数据均不可被外部读取。
以上所述的软件加密方法,还可以应用于视听软件中,从而对视听软件进行一定的保护,我们可以将加密装置与CD、DVD机的解码芯片或播放芯片集成一齐,成为一块芯片,视听软件的发售方式与上述软件的发售方式一样。由于对于某一加密视听软件,只能在对应的已集成加密装置的播放芯片中播放,这样就能有效地对视听软件进行保护。
该种软件加密的方法不但可以保护软件开发商的利益,单位、个人还可以用它来对自己的资料进行保密。只要单位、个人用户将自己资料的一部分传送给密匙管理机构,让它返回对应自己加密装置ID号的加密资料,这样,即使自己的资料不幸被窃,别人亦无法在其它电脑上使用你的资料,而自己却能正常使用。
该方法还可用于网络安全中,由于加密后的资料只能在对应的电脑上使用,故即使数据在网络传送的过程中被窃,别人亦无法使用。为了使加密软件更加可靠,可以对加密方法进行如下改进一、一个加密装置ID可以对应多个解密和加密密匙。对不同的软件生产商,密匙管理机构使用不同的加密密匙对其提供的程序进行加密,加密装置使用不同的解密密匙对其进行解密。
二、可以使用多重加密的方法对软件进行保护,即先用与内置于加密装置中的解密程序相对应的加密程序加密一自定义加密程序,再用该自定义加密程序加密另一自定义程序,如此类推,直至软件商提供的可执行程序被加密为止。举例如下1.设加密和装置有两个可刷新储存区。加密装置内有两条密匙,分别称为a和b,而密匙管理机构同样储存有与该加密装置ID相对应的密匙a和b。
2.在密匙管理机构中存在着一对自定义加密和解密程序。现将自定义加密程序称为A,自定义解密程序称为B。自定义加密和解密程序可以由软件生产商提供,亦可以由密匙管理机构自行制作。
3.当消费者将自己的ID提供给密匙管理机构后,密匙管理机构对软件商提供的需加密程序进行如下处理①用与加密装置ID相对应的密匙a对解密程序B进行加密生成C;②用加密程序A对软件商提供的需加密和程序用密匙b进行加密生成D;
③、将C和D一同返回给消费者。
4、当程序运行时,先将C送进加密装置,加密装置中解密程序用密匙对C进行解密生成B,并将其储存于以可刷新区内,然后程序再将D送进加密装置,有加密装置中的程序B由密匙b将D解密还原成原可执行程序,并储存于另一可刷新区内。这样,只要解密密匙与加密密匙相对应,程序就可以正常运行。
被保护软件工作原理如图1所示。
被保护软件购销流程如图2所示。
权利要求
1.一种软件加密的方法,其特征在于,所述的软件加密方法由部分程序被加密的被保护软件、带有解密程序及解密密匙的加密装置、密匙管理机构及其服务程序组成。
2.按照权利要求1所述的软件加密方法,其特征在于,凡使用所述的软件加密方法进行加密的软件均可以使用同一加密装置对软件进行保护;使用同一加密装置的多个软件可以同时运行。
3.按照权利要求1所述的部分程序被加密的被保护软件,其特征在于,所述的的被保护软件的一部分或多个部分被加密;对应于每一个用户,采用的不同加密密匙对需加密程序进行加密;被保护软件在运行时,能将被加密程序送进加密装置。
4.按照权利要求1所述的带有解密程序及解密密匙的加密装置,其特征在于,所述的带有解密程序及解密密匙的加密装置是一个带有解密程序及解密密匙的微处理器,能对传送过来的加密程序进行解密还原;每个加密装置都有一个唯一的ID号,以及与之对应的一个或多个唯一解密密匙;加密装置存在着一个或多个可刷新储存区,其中至少一个用于存放被还原程序,刷新区可以不断被刷新。
5.按照权利要求1所述的密匙管理机构及其服务程序,其特征在于,所述的密匙管理机构及其服务程序负责对加密密匙及解密密匙的制作和管理;负责加密装置ID号的生成;能根据消费者提供的ID号将需加密程序进行加密,并发送给消费者。
6.按照权利要求1和权利要求2所述的软件加密方法,其特征在于,所述的软件加密方法的整个加密过程如下①加密装置生产商制成加密装置后,将其提供给密匙管理机构,密匙管理机构为每个加密装置都提供一个唯一的ID号,并将对应的解密密匙放入解密程序中。②软件生产商将软件制作完毕后,将该软件的非加密部分制成光盘,发行给经销商;同时又将软件的需加密部分提供给密匙管理机构。③顾客在经销商处购买软件光盘后,将自己的加密装置的ID号以网络或其它方式提供给密匙管理机构,密匙管理机构的服务程序根据顾客提供的ID号用对应的密匙对软件商提供的需加密程序进行加密,然后将加密后的程序发给顾客。这样,顾客就可以得到完整的被保护软件。④被保护软件运行时,将部分已加密的程序送进加密装置,由加密装置对其进行解密,如果加密密匙与解密密匙对应,加密程序就能被还原成可执行程式并储存于加密装置中,当运行软件需要调用加密装置中的程序时,可以向其发送数据,并等待接收数据。加密装置中的已还原程序接收到数据后,执行程序,并将数据发送给运行软件。运行软件收到数据后,继续正常运行。如果加密密匙与解密密匙不对应,加密程序就无法还原成原程序,这样,整个被保护软件就无法正常运行。
7.按照权利要求1和权利要求2所述的软件加密方法,其特征在于所述的软件加密方法可以使用多重加密的方法对软件进行保护,即先用与内置于加密装置中的解密程序相对应的加密程序加密一自定义加密程序,再用该自定义加密程序加密另一自定义程序,如此类推,直至软件商提供的可执行程序被加密为止。
8.按照权利要求4所述的加密装置ID号,其持征在于一个加密装置ID号可以对应多个解密和加密密匙。对不同的软件生产商,密匙管理机构可以使用不同的加密密匙对其提供的程序进行加密,加密装置可能使用不同的对应解密密匙对其进行解密。
全文摘要
一种软件加密的方法,将加密程序部分和非加密程序部分;将加密程序部分提供给加密软件的使用者;将加密程序部分提供给密匙管理机构;所述密匙管理机构向使用者提供带有解密程序及解密密匙的加密装置;密匙管理机构将加密程序部分进行处理后再提供给软件的使用者;软件的使用者用加密装置将加密程序解密后与非加密程序部分组合成一完整程序进行使用,本方法具有加密过程简单,破解困难等优点,是一种更好的对软件进行保护的加密方法。
文档编号G06F17/00GK1374599SQ0110763
公开日2002年10月16日 申请日期2001年3月9日 优先权日2001年3月9日
发明者梁庆生 申请人:梁庆生
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1