首页> 中国专利> 软件系统的防盗版保护方法

软件系统的防盗版保护方法

摘要

本发明公开了一种软件系统的防盗版保护方法,旨在提高软件系统的保密性和安全性,其步骤包括:a.利用主芯片的编译器对加密芯片内部的加密程序进行编译,生成库文件后,插入到主芯片内部的主程序中;b.通过主芯片生成一个密钥,输入到所述的库文件中,并对所述库文件的输出值Result进行存储;c.通过主芯片将所述密钥发送给加密芯片,加密芯片利用其内部的加密函数对所述密钥进行加密处理后生成Reed值,返回给主芯片;d.主芯片对所述的Result值和Reed值进行配对操作,若配对成功,则继续执行后续程序;若失败,则退出主程序。由于加密芯片与主芯片是配对使用的,从而进一步加强了两芯片之间的关联性。

著录项

  • 公开/公告号CN101211396A

    专利类型发明专利

  • 公开/公告日2008-07-02

    原文格式PDF

  • 申请/专利权人 青岛海信电器股份有限公司;

    申请/专利号CN200610171048.4

  • 发明设计人 李培树;

    申请日2006-12-31

  • 分类号G06F21/22(20060101);

  • 代理机构37101 青岛联智专利商标事务所有限公司;

  • 代理人邵新华

  • 地址 266071 山东省青岛市市南区江西路11号

  • 入库时间 2023-12-17 20:19:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-12-16

    授权

    授权

  • 2009-09-09

    专利申请权、专利权的转移(专利申请权的转移) 变更前: 变更后: 登记生效日:20090807 申请日:20061231

    专利申请权、专利权的转移(专利申请权的转移)

  • 2009-02-04

    专利申请权、专利权的转移(专利申请权的转移) 变更前: 变更后: 登记生效日:20090109 申请日:20061231

    专利申请权、专利权的转移(专利申请权的转移)

  • 2008-08-27

    实质审查的生效

    实质审查的生效

  • 2008-07-02

    公开

    公开

说明书

技术领域

本发明属于软件保护技术领域,具体地说,是涉及一种对软件程序进行加解密处理,以防止盗版现象发生的软件保护方法。

背景技术

随着数字电视技术的飞速发展,软件程序在新产品的开发过程中占据了越来越重要的地位,软件工作也占到了整个项目工作量的90%以上。怎样有效的保护自有的软件技术不被剽窃,从而切实地保护开发商自身的合法利益,逐渐成为各公司研究的重点。目前的软件保护技术一般可以分为三种:硬件保护、纯软件保护、以及通用加密芯片保护方法。它们各有自己的特点,但在安全性与灵活性上都还存在这样那样的问题。

发明内容

本发明的目的在于提供一种从硬件保护芯片到软件保护系统为一体的防盗版软件保护方法,以加强软件系统的保密性和安全性。

为解决上述技术问题,本发明采用以下技术方案予以实现:

一种软件系统的防盗版保护方法,其步骤包括:

步骤1、利用主芯片的编译器对加密芯片内部的加密程序进行编译,生成库文件后,插入到主芯片内部的主程序中;

步骤2、通过主芯片生成一个密钥,输入到所述的库文件中,并对所述库文件的输出值Result进行存储;

步骤3、通过主芯片将所述密钥发送给加密芯片,加密芯片利用其内部的加密函数对所述密钥进行加密处理后生成Reed值,返回给主芯片;

步骤4、主芯片对所述的Result值和Reed值进行配对操作,若配对成功,则继续执行后续程序;若失败,则退出主程序。

为了提高主芯片与加密芯片之间数据传输的可靠性,在主芯片与加密芯片中设置接口函数,以规范两芯片之间数据传输的格式;

为了提高主芯片与加密芯片之间的关联度,在所述接口函数中应至少包括通信接口指定信息、数据格式信息以及访问速度等相关信息。所述主芯片根据通信接口指定信息,确定其与加密芯片传输数据的接口。

为了加强系统软件的保密性和安全性,所述主芯片利用其内部主程序将其与加密芯片进行通信的接口函数转换成bin文件发送给加密芯片;加密芯片把主程序的接口函数和加密芯片内部的加密程序一起,利用主芯片的编译器生成库文件,发送给主芯片。

根据加密芯片使用目的的不同,确定所述库文件在主程序中的插入位置。其中,可以将所述的库文件插入到主程序的启动模块中,在正常打开电源时,阻止主程序从boot引导区跳转到主函数;亦可以将所述的库文件插入到主程序的访问模块中,通过在主程序的访问模块中设置断点,来阻止某些功能模块使用。当然,所述库文件根据需要也可以在主程序的启动模块和访问模块中同时插入使用。

为了有效达到加密的作用,所述密钥由主芯片随机产生;可以是Random函数的返回值,也可以是Set函数的Clock值。

所述的配对操作过程可以采用两种方式完成:一种是将所述的Result值和Reed值进行比较,判断两值是否相同;另一种是将所述的Result值和Reed值代入设定的逻辑关系公式,判断其是否匹配。

与现有技术相比,本发明的优点和积极效果是:本发明由于在加密芯片的设计中采用了多种保护算法库,在密钥生成中使用了随机号算法,并采用了软硬件加锁等措施,且与主程序方案配合生成库文件,在很大程度上提高了系统的安全性,达到了防拷贝、防盗版的目的。由于加密芯片与主芯片系统是配对使用的,通过提供加密芯片,并由双方联合产生库文件,这样该系统便可以无障碍的提供给其他厂家使用。

附图说明

图1是本发明中主程序的执行过程流程框图;

图2是加密算法子程序的流程框图;

图3是主芯片与加密芯片之间的电路连接原理图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细地说明。

众所周知,在使用加密芯片对系统进行软件保护操作时,加密芯片一端有加密程序的源代码,但是这个源代码是不能直接发送给主芯片一端的,因为这样就会导致加密芯片内部的加密函数被泄漏。本发明为了尽可能的强化主芯片与加密芯片之间的关联度,以更好地实现软件程序的防拷贝、防盗版目的,将加密芯片内部的加密程序进行处理,生成只有与其配对使用的主芯片才可以识别的库文件,并将所述库文件插入到主芯片的主程序中,形成主芯片软件系统运行的一部分,从而有效加强了软件系统的保密性与安全性。

为了实现上述目的,本发明的软件系统防盗版保护方法应至少包含以下步骤:

步骤1、利用主芯片的编译器对加密芯片内部的加密程序进行编译,生成库文件后,插入到主芯片内部的主程序中;所述库文件为二进制格式的bin文件;

步骤2、通过主芯片生成一个密钥,输入到所述的库文件中,并对所述库文件的输出值Result进行存储;

步骤3、通过主芯片将所述密钥发送给加密芯片,加密芯片利用其内部的加密函数对所述密钥进行加密处理后生成Reed值,返回给主芯片;

步骤4、主芯片对所述的Result值和Reed值进行配对操作,若配对成功,则继续执行后续程序;若失败,则退出主程序。

由于主芯片与加密芯片中的函数设计不同,所需要调用的数据格式也不尽相同,为了使主芯片与加密芯片之间能够进行数据的相互通信,需要在主芯片与加密芯片中设置接口函数,以规范两芯片之间数据传输的格式。

为了提高主芯片与加密芯片之间的关联度,在所述的接口函数中应至少包括通信接口指定信息、数据格式信息以及访问速度等相关信息。其中,通信接口指定信息规定了主芯片必须通过哪个接口与加密芯片进行数据通信,一旦主芯片与加密芯片之间的通信接口接错,同样会导致主程序无法正常运行的问题,这种设计方式从硬件连接角度提高了主芯片与加密芯片之间的关联度;数据格式信息规定了芯片之间发送数据的格式以及反馈结果的数据格式;访问速度信息规定了两芯片之间数据通讯的速度。

加密芯片端首先通知主芯片端自己的加密函数的接口是如何定义的,主芯片端接收到这个接口函数后,根据自己的情况,在主程序中应该插入加密函数的地方生成主程序的接口函数,两个芯片的接口函数都设计好后,不需要了解对方具体的函数内容,即可以进行通信工作。在此期间,往往还存在根据主芯片端的需要再回头修改加密芯片端的接口函数的过程,两边的接口函数设计完后,下一步就是把加密芯片的库文件编译进主程序里面了。

由于主芯片端不能让加密芯片端看到主程序的源代码,而加密芯片端更不能让主芯片端看到加密芯片的源代码,因此,在本发明中需要加密芯片端利用主芯片的编译工具生成库文件,提供给主芯片端,集成到主程序中。所述库文件只能用主芯片的编译工具生成,因为只有通过主芯片的编译器生成的库文件,主芯片的主程序才能识别。

为了实现防盗版的目的,主芯片利用其内部主程序将其与加密芯片进行通信的接口函数转换成bin文件发送给加密芯片。所述bin文件为不可编辑的代码,只能使用,不能修改。加密芯片把主程序的接口函数和加密芯片内部的加密程序一起,利用主芯片的编译器生成库文件,发送给主芯片。这样,芯片间数据传输的格式不可见,更进一步加强了系统的保密性。

由上述可知,因为对于不同的主程序来说,加密芯片产生的库文件不同,这样使得系统的保密性和安全性得到了有效保证。

为了更加有效地达到加密作用,所述密钥由主芯片随机产生;可以是Random函数的返回值,也可以是Set函数的Clock值。当然,也可以通过其他随机产生过程生成。由于每次主程序运行时,产生的密钥都不一样,从而有效加强了系统程序的保密性。

所述的配对操作过程可以是将所述的Result值和Reed值进行比较,判断两值是否相同的过程;亦可以是将所述的Result值和Reed值通过设定的逻辑关系进行匹配判断的过程。

实施例一,图1、图2示出了实现所述加密方法的一种软件流程框图,具体包括以下过程:

1、主程序运行过程,如图1所示,具体包括以下步骤:

首先,在主程序里选择断点的设置位置,即插入库文件的位置;

其次,调用系统加密算法子程序;

然后,接收子程序返回的结果;

最后,判断返回结果是否为零,若为零,程序配对通过,正常执行后续程序;否则,程序中断退出。

2、系统加密算法子程序,如图2所示,具体包括以下步骤:

首先,随机产生一个Seed值,即密钥;在本发明中,采用Set函数的Clock值生成所述的Seed值;

其次,将Seed值输入到所述的库文件中进行加密处理;

其三,存储库文件的输出值,即4Byte的Result值;

其四,将所述的Seed值发送给加密芯片进行加密处理后,读取其反馈值,即Reed值;

然后,对Result值和Reed值进行比较,确定子程序的返回结果;在本发明中,采用了判断Result值和Reed值是否相同的配对操作方法,当Result值和Reed值相同时,返回结果为0,否则,返回结果为1。

图3示出了所述主芯片与加密芯片之间的电路连接原理图,主芯片通过其GPIO口模拟I2C总线,与加密芯片的1、2脚进行数据通信。其中,1脚传输时钟信号,2脚传输数据信号。

根据加密芯片使用目的的不同,可以选择所述库文件在主程序中的插入位置。其中,可以将所述的库文件插入到主程序的启动模块中,在正常打开电源时,阻止主程序从boot引导区跳转到主函数,从而使主程序停止工作;亦可以将所述的库文件插入到主程序的访问模块中,通过在主程序的访问模块中设置断点,来阻止某些功能模块使用。以电视机软件系统为例,可以在主程序的Display Menu中设置断点来阻止使用某些功能菜单。当然,所述库文件根据需要也可以在主程序的启动模块和访问模块中同时使用,多位置插入。

本发明通过采用上述软件设计方法实现了软件系统的防盗版功能,可以在数字电视、DVD、MP3等具有独立CPU的系统中推广使用。当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号