一种基于门限密码体制的软件分割保护的实现方法技术

技术编号:2826790 阅读:204 留言:0更新日期:2012-04-11 18:40
一种基于门限密码体制的软件分割保护的实现方法,是将软件的应用程序分割成两部分,并将分割出来的应用程序的数据进行加密后的密文和参与加密人员的密钥,分别存入多个电子钥匙里,而在原来的软件中只保留头文件和节表,并复制该部分软件用作备份文件;再将存有密文和每个参与加密人员私钥的多个电子钥匙分发给每个参与加密人员,每人负责保管存有本人私钥和密文的电子钥匙;当参与解密人员聚集在一起的人数超过门限值,才能提取电子钥匙中的不同密钥,对电子钥匙中的密文进行解密,将密文恢复为原来的二进制数据,再将其与该软件中的其它数据合并在一起运行;并在该软件运行完成后,再用备份文件覆盖刚才运行的完整软件,实现保护该软件的目的。

【技术实现步骤摘要】

本专利技术涉及一种防止窃取或盗版计算机软件的方法,确切地说,涉及一种 基于门限密码体制对软件进行分割保护的实现方法,属于信息安全中的软件安 全

技术介绍
目前,比较广泛使用的软件保护技术主要有软加密和硬加密两大 类,这两大类中又各自分别包括一些不同的软件保护技术。其中软加密是指不依靠特殊硬件来对软件实现加密保护。软加密方面的现有技术主要有序列号 法、注册文件法、加壳法等。序列号法是一种以复杂的数学算法为核心的软件加密技术,它的应用最广 泛。该方法的具体步骤是开发者通过用户信息计算出序列号,用户要使用该 序列号,必需按照必要的步骤在软件中输入注册信息和序列号,再经过该软件 对其合法性进行验证后,该软件就会取消其本身设置的各种限制,供用户使用。 目前,国内外很多软件的保护方式都比较简单,如利用系统的一些特征码 (如CUP的IP号、网卡MAC地址、石更盘序列号等)生成注册码,并以此-睑 证用户的合法性。虽然这些注册码都具有唯一性,但是,比较和跳转指令非常 明显,破解者用调试软件很容易跟踪到比较和跳转的位置,然后强行将跳转地 址改为继续执行的地址,就能够实施破解。即便采用相当复杂的生成和验证注 册码机制,如果可执行程序能够被任意修改,破解者还是可通过上述方法破解 软件。注册文件法(KeyFile)是一种利用文件注册软件的保护方式。FileKey的 内容是被加密或未加密的用户名、注册码等数据,当用户付费注册后,会收到 注册文件,然后只要将该注册文件放入指定的目录,就可以让该软件成为正式版本。每次启动时,软件都从该文件中读取数据,再利用某种算法进行处理,并根据处理结果判断是否为正确的注册文件。因此,其安全性明显有问题注册过程中或在传递注册文件时,注册文件很容易被截获,从而文件被破解。加壳法是在被加密程序上加上一个壳,然后用这个壳防止软件被复制, 还可通过这个壳,对付跟踪和反编译等。这个壳是一段专门负责保护软件 不被非法修改或反编译的程序。加壳实施加密的方法比较简便,所以软件开发 者在开发过程中,不需过多考虑如何加密的问题。然而,尽管加壳软件设计得 非常复杂,现在仍然有了能够将许多著名的加壳软件进行成功破解的方法。 硬加密是指利用硬件和软件相互结合来对软件实现加密,在执行已经采用硬加密的软件时,需要先和相应的硬件交换数据;若没有相应的硬件,加密后 的软件将无法执行。它的典型应用包括软盘硬加密方式、加密狗和加密卡。其中软盘硬加密方式通常是在软盘上制造物理的坏扇区(在软盘上作硬标 记-指玟),同时在被保护的软件中配上一段识别硬标记的程序。该被保护的软 件在运行时,就会去寻找这个硬标记。若坏扇区存在,则必然产生CRC错误, 表明该盘合法;否则,认为该盘为复制品,拒绝运行该被保护的软件。加密锁有两种加密狗和软件狗。加密狗是一个安装在接口上的硬件,并 带有驱动软件和工具包。它是利用相互结合的、复杂的软硬件技术来防止盗版, 因此加密成本比较高,目前只有价格比较昂贵的软件才使用加密狗来保护。软件狗的发展已经到了第四代。第一代是存储型的加密锁,最早的加密锁 内部只有存储体,只有厂商才能对其进行读、写。第二代是不公开算法的加密 锁,在硬件内部增加了单片机。厂商主要利用算法功能进行加密。第三代加密 锁被称为可编程,,加密锁,其设计初衷是希望用户能够将软件中的重要代码 或模块移植到加密保护设备中运行,使软件与加密锁实现真正无缝链接。第四 代产品是在第三代软件狗基础上增加一个单片机芯片(如PI116C5X),并在该 芯片中存储用户设定的算法程序,利用该算法程序对数据进行加密变换,以对 抗逻辑分析仪,增强系统的安全性。加密保护卡是直接利用主板上的插卡与被加密软件相结合使用的,其原理类似于加密狗。但是,由于它是采用相当部分的软件直接与硬件结合来加密, 使得破解难度大幅度提升,从而明显提高其安全性。但是,成本的增加和灵活 性的降低,使得它在普及应用率上付出了代价。综上所述,目前使用的软件保护技术大都存在一定的缺陷。例如,加密方 式单一 (都只是通过软件或硬件的方式进行加密)、通用性差、性价比低(许多硬件加密的产品成本较高,效果却不理想)。通常只要采用动态跟踪内存、对物等方法,都能够对目前这些采用现有技术进行保护的软件实现^C解。目前,软件保护中的软加密的最大优势是加密成本低,但是,各种软加密 方法都是对正常软件人为设置运行障碍,不但影响软件性能,甚至会给软件引 入许多未知的错误。而且没有任何硬件支持的纯软件加密,很容易被人跟踪执 行过程或反编译,无法避免被破解的命运。虽然硬加密相对于软加密有明显的 优势,因为对于盗版者而言,尽管硬加密的破解比较难,复制硬件的成本也比较高,故其安全性相对较高。但是同样存在不足之处它是给本可正常运行的程序加设人为阻碍, 一旦绕过该障碍,盗版者就可轻易得到整个可运行的程序。 众所周知,计算机软件的开发是一项技术复杂、投入巨大、耗时漫长的高 强度脑力劳动。然而,软件的复制却极其简单、容易,造成软件盗版现象曰益 严重,严重侵犯了软件开发商的经济利益。更为严重的是,大量盗版软件的销 售和使用使得软件开发者的巨额投资难以回收,无力再去研发新的软件,从而 使得软件的多样性、创造性和软件的质量都受到严重影响,并对计算机软件的 产业发展造成非常不利的影响。
技术实现思路
有鉴于此,本专利技术的目的是提供一种基于门限密码体制的软件分割保护的 实现方法,该方法是将软件的应用程序进行分割后,将该软件的关键代码提取 出来进行加密,再将密文和参与加密人员的密钥存放在多个电子钥匙里分别保 管,只有超过密码门限值设定的人数都聚齐在一起,才能完整恢复电子钥匙中的数据和程序,使存储在电子钥匙中的数据与该软件中的其它代码结合起来运 行。本专利技术方法能够比较安全、可靠地防止软件盗版,而且加密和解密的工作 效率高,还能够防止PE型病毒的侵入软件,更好地保护软件。为了达到上述目的,本专利技术提供了,其特征在于利用软件分割技术,将软件的应用程序分割成两部 分,并将分割出来的应用程序的数据进行加密后的密文和参与加密人员的密钥, 分别存入多个电子钥匙里,而在原来的软件中只保留头文件和节表,并复制该 部分软件用作备份文件;再将存储有密文和参与加密人员的密钥的多个电子钥 匙分别发给每个参与加密人员;所述密钥是每个参与加密人员的私钥,每人只 负责保管存有本人私钥和密文的电子钥匙;只有当参与解密人员聚集在一起的 总人数超过设定的门限数值,才能提取电子钥匙中的不同密钥,对电子钥匙中 的密文进行解密,将该密文恢复为原来的二进制数据,再将其与该软件中的其 它数据合并在一起运行;并在该软件运行完成后,再用所述备份文件覆盖刚才 运行的完整软件,实现保护该软件的目的。本专利技术与目前有关软件保护的其他技术进行比较,其技术上的创新特点是 ( 一 )分割软件的PE文件本专利技术是对存储在电脑中PE格式文件的软件 进行分割,将该软件的重要信息数据进行加密,并存储于电子钥匙。用户必须 拥有电子钥匙才有资格和可能运行该软件,从而极大地提高了软件的安全性。(二) 利用可靠的门限密码体制进行加密和解密本专利技术分割PE文件后, 采用一种可验证的(,,)门限秘密共享方法对分割后的数据进行加密存储。 由本文档来自技高网
...

【技术保护点】
一种基于门限密码体制的软件分割保护的实现方法,其特征在于:利用软件分割技术,将软件的应用程序分割成两部分,并将分割出来的应用程序的数据进行加密后的密文和参与加密人员的密钥,分别存入多个电子钥匙里,而在原来的软件中只保留头文件和节表,并复制该部分软件用作备份文件;再将存储有密文和参与加密人员的密钥的多个电子钥匙分别发给每个参与加密人员;所述密钥是每个参与加密人员的私钥,每人只负责保管存有本人私钥和密文的电子钥匙;只有当参与解密人员聚集在一起的总人数超过设定的门限数值,才能提取电子钥匙中的不同密钥,对电子钥匙中的密文进行解密,将该密文恢复为原来的二进制数据,再将其与该软件中的其它数据合并在一起运行;并在该软件运行完成后,再用所述备份文件覆盖刚才运行的完整软件,实现保护该软件的目的。

【技术特征摘要】
1、一种基于门限密码体制的软件分割保护的实现方法,其特征在于利用软件分割技术,将软件的应用程序分割成两部分,并将分割出来的应用程序的数据进行加密后的密文和参与加密人员的密钥,分别存入多个电子钥匙里,而在原来的软件中只保留头文件和节表,并复制该部分软件用作备份文件;再将存储有密文和参与加密人员的密钥的多个电子钥匙分别发给每个参与加密人员;所述密钥是每个参与加密人员的私钥,每人只负责保管存有本人私钥和密文的电子钥匙;只有当参与解密人员聚集在一起的总人数超过设定的门限数值,才能提取电子钥匙中的不同密钥,对电子钥匙中的密文进行解密,将该密文恢复为原来的二进制数据,再将其与该软件中的其它数据合并在一起运行;并在该软件运行完成后,再用所述备份文件覆盖刚才运行的完整软件,实现保护该软件的目的。2、 根据权利要求1所述的软件分割保护的实现方法,其特征在于所述门 限密码体制是一种对数据文件进行加密和解密的方法,在该体制中,对密文的 解密操作是由参与加密的多个人员共同执行的,即只有当参与加密的人员聚集 在一起的人数超过该门限密码体制所设定的门限值时,才能将该密文成功解密。3、 根据权利要求l所述的软件分割保护的实现方法,其特征在于所述电 子钥匙是具有保密功能的移动式存储装置。4、 根据权利要求1所述的软件分割保护的实现方法,其特征在于所述对 软件的应用程序进行分割是对可移植的执行体PE格式文件的应用程序进行分 割,所述PE格式文件已经作为Windows操作系统下可执行文件的标准;在PE 格式文件的结构组成中,PE的头文件与节表相连,节表是一个结构体数组,每 个结构体包含一个节的该节映射到内存中的起始地址和长度、该节的属性及其 在PE文件中的偏移和长度的相关信息;节是PE文件的主体,PE文件的程序 代码、数据和资源信息都被组织存储在多个节中;PE文件的分割位置是在节表 与第一个节之间。5、 根据权利要求1所述的软件分割保护的实现方法,其特征在于所述方 法包括下列操作步骤(l)分割软件,并对分割后存储于电脑的软件进行拷贝,制成备份文件 根据软件在内存中的存储结构,找到软件的应用程序的分割位置,将该应用程 序分割成两部分,在原来的软件中只保留PE头文件和节表,并对该部分软件 进行复制,用作备份文件,再对该备份文件重新命名后,将其存储于该被分割 软件的原路径下;(2 )计算参与加密人员的私钥、公钥和群公钥,并对分割出来的PE数据 进行加密利用门限密码体制,分别计算每个参与加密人员的私钥、公钥和群 公钥,再利用该公钥和群公钥对分割出来的包括程序、数据和资源信息的PE 数据进行加密处理;(3) 将密文和密钥分别存储于多个电子钥匙,并交由多人保管在每个电 子钥匙中分别存储有对PE数据加密后的密文和其中一位参与加密人员的私 钥,再分给多人保管,每个参与加密人员只负责保管存储有本人私钥和密文的 电子钥匙;(4) 对密文进行解密将不少于设定门限值数量的多个电子钥匙插入计算 机接口,从电子钥匙中提取密文、私钥和相关信息,并对参与解密人员的每个 人的个人验证码进行确认后,对电子钥匙中的密文进行解密;(5) 恢复并运行原来的软件,并在该软件运行后,用备份文件覆盖该恢复 完整的软件将解密后的PE数据与原来的程序文件合并,恢复并运行该PE格 式的软件;并在该软件完成运行任务后,使用备份文件覆盖刚才运行的、恢复 完整的原有软件,防止该软件被盗版,使得该软件更加安全。6. 根据权利要求5所述的软件分割保护的实现方法,其特征在于所述步 骤(1)进一步包括下列才喿作内容(11 )因PE头文件Header和节表在文件中的位置决定于DOS头结构中的 相对偏移地址字段e—lfanew,故先寻找存储PE头文件Header在文件中的偏移 地址字段e—lfanew,用于确定需要分割的PE数据在内存中的地址;分别读取软件路径和PE头文件结构,得到节表个数;找到分割软件的节表与第一个节之 间的地址;(12 )将《个电子钥匙同时插入计算机的USB接口 , 《是不小于2的自然 数,表示参与加密人员的数量;(13) 在配置文件参数.ini',中写入软件路径和两个加密参数和z,其 中,自然数Z是解密时要求原来参与加密人员聚集在一起的人数门限值,即解 密时所需的最少人数;再将配置文件参数.ini存入电子钥匙中;(14) 对分割后仍然存储于电脑中的、包括PE头文件和节表的部分软件 进行拷贝,制成备份文件,并对该备份文件重新命名,存储于该被分割软件的 原路径下。7、根据权利要求5所述的软件分割保护的实现方法,其特征在于所述步 骤(2 )进一步包括下列操作内容(21) 设置用于数据加密的基本参数设个参与加密的人数M,共同组成 集合M^(M,,M2,…,似J ,再分别选用w个互不相同的自然数A...

【专利技术属性】
技术研发人员:徐国爱张淼王茹杨义先
申请(专利权)人:北京邮电大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1