多加密锁装置及多加密锁的捆绑方法

文档序号:7652125阅读:174来源:国知局
专利名称:多加密锁装置及多加密锁的捆绑方法
技术领域
本发明涉及加密技术,特别涉及一种多加密锁装置和一种多加密锁的捆 绑方法。
背景技术
使用加密锁是实现软件安全保护和版权保护的主要手段。加密锁中存储着从软件代码中移植来的硬件端代码,PC端存储着对应的PC端代码,硬件 端代码和PC端代码共同构成完整的一套软件代码。因此,只有将加密锁与 PC端相连,在PC端运行软件时才能够调用加密锁中的硬件端代码,从而保证软件的正常运行。但加密锁的硬件处理速度通常要低于运行软件所基于的PC端的硬件处理速度,这就使得软件的运行效率会受到很大的影响。因此,为了提高软件的运行效率,可以并行使用多个加密锁,将对单个 加密锁的串行调用转换为对多个加密锁的并行调用。被并行调用的多个加密 锁的组合,称为多加密锁结构。但现有并行调用多个加密锁的方案存在以下问题,即加密锁的拆分问题PC端代码能够被随意复制,但每个复制的PC端代码均需要有对应的加 密锁,因此,有些用户将多加密锁结构被拆分为多个独立的加密锁,并基于 这些拆分的独立加密锁,分别实现所复制的多个PC端代码对应的软件运行 过程。拆分使用多个加密锁只是降低了软件运行效率,但仍然能够实现软件 的正常运行。这样,由于多加密锁结构能够被随意拆分并广泛使用,使得加密锁的安 全保护力度下降。而且,用户只需购买一套对应多加密锁结构的软件,即可通过拆分加密锁并分别结合复制的PC端代码,能够将对一套软件复制为多 个来使用,使得加密锁对软件版权保护的安全性和可靠性较低,进而使得软 件开发商的利益受到严重侵害。可见,现有技术中的多加密锁结构能够被任意拆分使用,使得加密锁对 软件版权保护的安全性和可靠性不高。发明内容有鉴于此,本发明的一个主要目的在于,提供一种多加密锁装置,能够 提高加密锁对软件版权保护的安全性和可靠性。本发明的另一个主要目的在于,提供一种多加密锁捆绑方法,能够提高 加密锁对软件版权保护的安全性和可靠性。根据上述的一个主要目的,本发明提供了一种多加密锁装置,包括多 个加密锁,其中,所述多个加密锁之间,基于预设的验证协议相互关联; 每个加密锁与关联的其他加密锁协同工作。 所述多个加密锁中的一个为主锁,其他加密锁为从锁。 所述主锁,根据来自所述从锁的授权请求,向该从锁反馈授权结果; 每个从锁,向所述主所发送授权请求,并对所述主锁反馈的授权结果进 行验证,根据验证结果确定自身状态。所述授权请求中包括随机数或预设数字标识;所述授权结果为根据预设的授权规则对随机数或预设数字标识进行处 理得到的授权鉴别码;所述验证结果是根据预设的验证规则对所述授权鉴别码进行验证得到 的,包括验证通过和验证不通过;每个从锁在验证结果为验证通过时,将自身状态切换为可用状态。所述授权规则和所述验证规则,是基于所述预先设置的验证协议的密码 学规则。所述授权规则包括基于对称算法的加密规则和加密密钥;
所述验证规则包括基于所述对称算法的解密规则和解密密钥。
所述主锁包括授权模块、加密运算模块,其中,
所述授权模块,用于接收来自从锁的随机数,并输出给加密运算模块; 将加密运算模块输出的加密后的随机数反馈给所述从锁;
所述加密运算模块,用于接收来自授权模块的随机数;根据内部存储的 加密密钥和加密规则,对接收到的随机数加密,并将加密后的随机数输出给 授权模块;
所述从锁包括认证模块、解密运算模块和功能代码模块,其中, 所述认证模块,用于生成并存储随机数,将生成的随机数输出给主锁; 接收来自主锁的加密后的随机数,并输出给解密运算模块;判断解密运算模 块输出的随机数是否与自身生成并存储的随机数相同,如果相同,则将功能 代码模块的状态切换为可用状态;
所述解密运算模块,用于根据内部存储的解密规则和解密密钥,对认证 模块输出的加密后的随机数解密,并将解密后的随机数输出给认证模块;
所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
所述授权规则包括基于非对称算法的签名规则和私钥;
所述验证规则包括基于所述非对称算法的验签规则和公钥。
所述主锁包括授权模块、签名生成模块,其中,
所述授权模块,用于接收来自从锁的随机数,并输出给签名生成模块; 将签名生成模块输出的签名结果反馈给所述从锁;
所述签名生成模块,用于接收来自授权模块的随机数;根据内部存储的 签名规则和私钥,对接收到的随机数进行签名处理,并将得到的签名结果输 出给授权模块;
所述从锁中包括认证模块、签名解析模块和功能代码模块,其中, 所述认证模块,用于生成并存储随机数,将生成的随机数输出给主锁;接收来自主锁的授权鉴别码,并输出给签名解析模块;判断签名解析模块输 出的验证结果是否为验证成功,如果是,则将功能代码模块的状态切换为可 用状态;
所述签名解析模块,用于根据内部存储的验签规则和公钥,对认证模块 输出的签名结果进行验证,并将验证结果输出给认证模块;
所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
所述主锁进一步包括功能代码模块;
所述授权模块进一步用于接收外部的调用请求,在对该请求认证通过 后,将功能代码模块的状态切换为可用状态;
所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
根据上述的另一个主要目的,本发明提供了一种多加密锁捆绑方法,包 括以下步骤
设置多加密锁结构中的多个加密锁之间,基于预设的验证协议相互关
联;
所述多加密锁结构中的每个加密锁在被调用时,与该加密锁相关联的其 他加密锁协同工作。
所述多个加密锁中的 一 个为主锁,其他加密锁为从锁。
所述被调用的从锁生成随机数并输出给主锁之前,该方法进一步包括 设置所有从锁的初始状态为不可用状态。
所述每个加密锁在被调用时,与该加密锁相关联的其他加密锁协同工作

被调用的从锁向主锁发送授权请求;
主锁根据来自所述从锁的授权请求,向该从锁反馈授权结果;
从锁对所述主锁反馈的授权结果进行验证,根据验证结果确定自身状态。所述授权请求中包括随机数或预设数字标识;
所述授权结果为根据预设的授权规则对随机数或预设数字标识进行处 理得到的授权鉴别码;
所述验证结果是根据预设的验证规则对所述授权鉴別码进行验证得到 的,包括 -验i正通过和l全i正不通过;
所述根据验证结果确定自身状态为从锁在验证结果为验证通过时,将 自身状态切换为可用状态,否则保持初始状态。
所述授权规则和所述验证规则,是基于所述预先设置的验证协议的密码 学规则。
所述授权规则包括基于对称算法的加密规则和加密密钥; 所述验证规则包括基于所述对称算法的解密规则和解密密钥; 所述对从锁输出的随机数进行处理为对从锁输出的随机数加密; 所述授权鉴别码为加密后的随机数;
所述对主锁反馈的授权鉴别码进行验证为对主锁反馈的所述加密后的 随机数解密,判断解密后的随机数是否与所述从锁生成的随机数相同,如果 是,则验证通过。
所述授权规则包括基于非对称算法的加密规则和私钥; 所述验证规则包括基于所述预设非对称算法的解密规则和公钥; 所述对从锁输出的随机数进行处理为对从锁输出的随机数加密; 所述授权鉴别码为对随机数的签名结果;
所述对主锁反馈的授权鉴别码进行验证为对主锁反馈的所述签名结果 进行验证。
由上述技术方案可见,本发明通过设置一个多加密锁结构,多个加密锁 之间基于预先设定的验证协议相互关联,每个加密锁与其关联的其他加密锁 协同工作,使得每个加密锁无法在被拆分后单独使用,从而提高了加密锁对 软件版权保护的安全性和可靠性。
本发明的具体实施例中还通过设置包括 一 个主加密锁和多个从加密锁的主从加密锁结构,使得从加密锁的使用必须通过主加密锁的授权,才能够 将自身的状态切换为可用状态,因此,由一个作为主锁的加密锁对其他加密 锁进行管理,使得从锁无法脱离与其对应的唯一的主锁而独立工作,即便 是主从锁结构被拆分,从锁也无法实现对任何软件的安全保护,避免了多加 密锁结构被拆分造成的安全性和可靠性不高的问题。


图1为本发明实施例中多加密锁装置的示例性结构图。
图2为本发明实施例中多加密锁捆绑方法的示例性流程图。
图3为本发明实施例一中多加密锁装置的结构图。
图4为本发明实施例一中多加密锁捆绑方法的流程图。
图5为本发明实施例二中多加密锁装置的结构图。
图6为本发明实施例二中多加密锁捆绑方法的流程图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明进一步详细说明。
本发明中,设置一个多加密锁结构,多个加密锁之间基于预先设定的验 证协议相互关联,每个加密锁与其关联的其他加密锁协同工作。
这样,即可使得每个加密锁无法在被拆分后单独使用。
例如,设置包括一个主加密锁和多个从加密锁的主从加密锁结构,从加 密锁的使用必须通过主加密锁的授权,使得即便从加密锁被拆分,但由于其 无法通过主加密锁的授权仍然无法被使用。
其中,主加密锁(简称主锁)与从加密锁(简称从锁),均用于对软件 安全的保护,只是两种加密锁之间存在一种一对多的主从关系,即所有的从 锁必须依附于唯一的主锁而存在。
以下,以主从锁结构为例,对本发明实施例中的多加密锁装置和方法进4亍详细"iJL明。
图1为本发明实施例中多加密锁装置的示例性结构图。如图l所示,本
发明实施例中的多加密锁装置包括 一个主锁和至少一个从锁(从锁1 从 锁n, n为正整数)。
主锁,接收来自从锁的随机数,根据内部存储的授权规则,对接收到的 随机数进行处理,生成授权鉴别码,并将授权鉴別码作为授权结果反馈给发 送该随机数的从锁。
从锁,生成随机数并输出给主锁,请求主锁对其授权;接收来自主锁的 授权鉴别码,并根据内部存储的验证规则,对接收到的授权鉴别码进行验证, 并在验证通过后,将自身状态从不可用状态切换为可用状态。
其中,在从锁请求主锁的授权时,也可以不采用随机数,而是将预设的 任意一种数字标识或其它类型标识输出给主锁,用于请求主锁对其授权。
本实施例中的授权规则和验证规则可以为基于 一种预设的验证协议的 密码学规则。
图2为本发明实施例中多加密锁捆绑方法的示例性流程图。如图2所示, 本发明实施例中的多加密锁捆绑方法包括以下步骤
步骤201,需要被调用的从锁生成随机数并输出给主锁;
步骤202,主锁根据预先设置的授权规则,对从锁输出的随机数进行处 理,生成授权鉴别码,并反馈给发送该随机数的从锁;
步骤203,从锁根据内部存储的验证规则,对主锁反馈的授权鉴别码进 行验证,并在验证通过后,将自身状态从不可用状态切换为可用状态,即切 换为可调用状态。.
上述装置和方法中,主锁生成授权鉴别码的处理过程可以为一个加密或 签名过程;从锁中对授权鉴别码验证的过程可以为 一个解密或对签名结果的 验签过程。
下面,对本发明实施例中的多加密锁装置和多加密锁捆绑方法进行详细 说明。实施例一
本实施例中,授权规则为 一种对称加密算法的加密规则和加密密钥;验
证规则为 一种对称加密算法的解密规则和解密密钥;对称加密算法可以为现 有任意 一种,例如,Triple DES算法。
图3为本发明实施例一中多加密锁装置的结构图。如图3所示,本实施 例中的多加密锁装置包括主锁、从锁l 从锁n。
主锁,接收来自从锁i ( l<Kn)的随机数,根据内部存储的加密密钥 和加密规则,对接收到的随机数加密,并将加密后的随机数作为授权鉴别码 输出给从锁i。
从锁i,初始状态设置为不可用状态;根据外部输入的调用请求(例如 来自PC端的调用请求),生成并存储随机数,将生成的随机数发送给主锁 (调用请求中可以包括调用该从锁i的密码,从锁i判断密码正确后才生成 随机数,请求主锁的授权);接收来自主锁的授权鉴别码,即加密后的随机 数,并根据内部存储的解密规则和解密密钥(解密规则和解密密钥分别与主 锁中的加密规则和加密密钥相同),对接收到的加密后的随机数解密,并判 断解密后的随机数是否与自身生成的随机数相同,如果相同,则确定验证通 过,将自身状态从不可用状态切换为可用状态,即允许外部调用该从锁内部 存储的代码。
上述装置中,主锁和所有从锁中存储的代码,均为硬件端代码。 实际应用中,主锁除了对从锁的调用进行授权之外,也能够实现与所有
从锁相同的软件保护功能。这种情况下,主锁接收外部的调用请求,在对该
请求认证通过后(调用请求中可以包括调用主锁的密码,主锁判断密码正确
后判断认证通过),允许外部调用主锁内部存储的代码。
具体来说,主锁中包括授权模块、加密运算模块和功能代码模块。 授权模块,接收来自从锁i ( 1《i《n)的随机数,并输出给加密运算模
块;将加密运算模块输出的加密后的随机数作为授权鉴别码输出给从锁i;
接收外部输入的调用请求,在对该请求认证通过后'将功能代码模块的状态切换为可用状态。
加密运算模块,接收来自授权模块的随机数;根据内部存储的加密密钥
和加密规则,对接收到的随机数加密,并将加密后的随机数输出给授权模块。 功能代码模块,初始状态为不可用状态,存储软件中的代码,并在自身 状态为可用状态时,允许外部调用内部存储的代码。
每个从锁中包括认证模块、解密运算模块和功能代码模块。 认证模块,根据外部输入的调用请求,生成并存储随机数,将生成的随 机数输出给主锁;接收来自主锁的授权鉴别码,即加密后的随机数,并输出 给解密运算模块;判断解密运算模块输出的随机数是否与自身生成并存储的 随机数相同,如果相同,则确定验证通过,将功能代码模块的状态从不可用 状态切换为可用状态;否则,保持功能代码模块的状态为初始设置的不可用 状态。
解密运算模块,根据内部存储的解密规则和解密密钥(解密规则和解密 密钥与主锁中的加密规则和加密密钥相同),对认证模块输出的加密后的随 机数解密,并将解密后的随机数输出给认证模块。
功能代码模块,初始状态为不可用状态,存储软件中的代码,并在自身 状态为可用状态时,允许外部调用内部存储的代码。
实际应用中,主锁和从锁可以为现有基于智能卡芯片的精锐系列网络 锁;主锁和从锁中还可以包括其他功能模块,以实现特定应用环境所需的特 定功能。
图4为本发明实施例一中多加密锁捆绑方法的流程图。如图4所示,本 实施例中的多加密锁捆绑方法包括以下步骤
步骤401,设置 一对加密密钥和解密密钥分别存储于主锁和多个从锁中, 加密密钥和解密密钥相同。
本步骤中,加密密钥和解密密钥可以为一串16字节的随机数;所有从 锁的初始状态被设置为不可用状态。
步骤402,被调用的从锁生成随机数并输出给主锁。本步骤中,调用从锁时,可以向从锁发送对应的密码,从锁判断密码正 确后,即对调用请求认证通过后,才生成随机数,请求主锁的授权;生成的 随机数可以为 一 串8字节的随机数。
步骤403,主锁利用设置的加密密钥,并根据设置的加密规则,对从锁
输出的随机数加密,并将加密后的随机数作为授权鉴别码反馈给发送该随机 数的从锁。
步骤404,从锁利用设置的解密密钥,并根据设置的与加密规则相同的 解密规则对主锁反馈的授权筌别码解密,即对加密后的随机数解密。
步骤405,从锁判断解密后的随机数是否与其自身生成的随机数相同, 如果是,则执行步骤406;否则,执行步骤407。
步骤406,将自身状态从不可用状态切换为可用状态,即允许调用该从 锁内部的代码。
步骤407,保持自身状态为不可用状态,即禁止调用该从锁内部的代码。 上述流程中,可以为对多个从锁同时进行认证授权的过程;也可以按照
上述流程依次对每一个需要调用的从锁进行认证授权;在执行上述流程的同
时,主锁中的代码也可以被调用,只是调用主锁中的代码不需要其他加密锁
的授权。
实施例二
本实施例中,授权规则为一种非对称加密算法的加密规则和公钥;验证 规则为一种对非称加密算法的解密规则和私钥;非对称加密算法可以为现有
任意一种,例如,RSA算法。
图5为本发明实施例二中多加密锁装置的结构图。如图5所示,本实施 例中的多加密锁装置包括主锁、从锁1 从锁n。
主锁,接收来自从锁i ( 1《i < n )的随机数,根据内部存储的签名规则 和私钥,对接收到的随机数进行签名处理,并将得到的签名结果作为授权鉴 别码输出给^v锁i。
从锁i,初始状态设置为不可用状态;根据外部输入的调用请求(例如来自PC端的调用请求),生成并存储随机数,将生成的随机数发送给主锁
(调用请求中可以包括调用该从锁i的密码,从锁i判断密码正确后才生成 随机数,请求主锁的授权);接收来自主锁的授权鉴别码,即对随机数的签 名结果,并根据内部存储的验签规则和公钥,对接收到的签名结果进行验证, 如果验证通过,则将自身状态从不可用状态切换为可用状态,即允许外部调 用该从锁内部存储的代码。
上述装置中,主锁和所有从锁中存储的代码,均为硬件端代码。 实际应用中,主锁除了对使用从锁进行授权之外,也能够实现与所有从 锁相同的软件保护功能。这种情况下,主锁接收外部输入的调用请求,在对 该请求认证通过后(调用请求中可以包括调用主锁的密码,主锁判断密码正 确后判断认证通过),允许外部调用主锁内部存储的代码。
具体来说,主锁中包括授权模块、签名生成模块和功能代码模块。 授权模块,接收来自从锁i ( 1 < i《n )的随机数,并输出给签名生成模 块;将签名生成模块输出的签名结果作为授权鉴别码输出给从锁i;接收外 部输入的调用请求,在对该请求认证通过后,将功能代码模块的状态切换为 可用状态。
签名生成模块,接收来自授权模块的随机数;根据内部存储的签名规则 和私钥,对接收到的随机数进行签名处理,并将得到的签名结果输出给授权 模块。
功能代码模块,初始状态为不可用状态,存储软件中的代码,并在自身 状态为可用状态时,允许外部调用内部存储的代码。
每个从锁中包括认证模块、签名解析模块和功能代码模块。 认证模块,根据外部输入的请求,生成并存储随机数,将生成的随机数 输出给主锁;接收来自主锁的授权鉴别码,即对随机数的签名结果,并输出 给签名解析模块;判断签名解析模块输出的验证结果是否为验证成功,如果 是,则将功能代码模块的状态从不可用状态切换为可用状态;否则,保持功 能代码模块的状态为初始设置的不可用状态。签名解析模块,根据内部存储的验签规则和公钥,对认证模块输出的签 名结果进行验证,并将验证结果输出给认证模块。
功能代码模块,初始状态为不可用状态,存储软件中的代码,并在自身 状态为可用状态时,允许外部调用内部存储的代码。
实际应用中,主锁和从锁可以为现有基于智能卡芯片的精锐系列网络 锁;主锁和从锁中还可以包括其他功能模块,以实现特定应用环境所需的特 定功能。
图6为本发明实施例二中多加密锁捆绑方法的流程图。如图6所示,本 实施例中的多加密锁捆绑方法包括以下步骤
步骤601,设置一对相互对应的私钥和公钥,分别存储于主锁和多个从 锁中。
本步骤中,所有从锁的初始状态可以被设置为不可用状态。
步骤602,需要被调用的从锁生成随机数并输出给主锁。
本步骤中,调用从锁时,可以向从锁发送对应的密码,从锁判断密码正
确后,即对调用请求认证通过后,才生成随机数,请求主锁的授权;生成的
随机数可以为 一 串8字节的随机数。
步骤603,主锁利用设置的私钥,并根据设置的签名规则,对接收到的
随机数进行签名处理,得到对随机数的签名结杲,并反馈给发送该随机数的从锁。
步骤604,从锁根据内部存储的验签规则和公钥,对接收到签名结果, 即4更权鉴别码,进行验证。
步骤605,从锁判断对签名结杲的验证是否通过,如果验证通过,则执 行步骤606;否则,执行步骤607。
步骤606,将自身状态从不可用状态切换为可用状态,即允许调用该从 锁内部的代码。
步骤60 7,保持自身状态为不可用状态,即禁止调用该从锁内部的代码。 上述流程中,可以为对多个从锁同时进行认证授权的过程;也可以按照上述流程依次对每一个需要调用的从锁进行认证授权;在执行上述流程的同 时,主锁中的代码也可以被调用,只是调用主锁中的代码不需要其他加密锁 的授权。
本实施例中的上述装置和方法中,从锁必须经过与主锁的交互而被授 权,才能够将自身的状态切换为可用状态。如果没有主锁或者使用不匹配的 主锁,将无法生成正确的授权鉴别码,所以从锁就无法祐—使用。因此,从锁 无法脱离与其对应的唯一的主锁而独立工作,即便是主从锁结构被拆分,从 锁也无法实现对任何软件的安全保护,避免了多加密锁结构被拆分造成的安 全性和可靠性不高的问题。
本发明的技术方案也不限于上述主从锁结构。例如,多个加密锁采用链 行或环形的连接结构,在某个加密锁接收到调用请求时,可以向与其相邻的 加密锁请求授权,并对该相邻的加密锁反馈的授权鉴别码进行验证,在验证
与其相邻的加密锁授权。
本发明实施例中的授权规则和验证规则可以是基于特定验证协议的任 何一种密码学规则或其他规则,只要能够保证加密锁之间的相互关联即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种多加密锁装置,其特征在于,包括多个加密锁,其中,所述多个加密锁之间,基于预设的验证协议相互关联;每个加密锁与关联的其他加密锁协同工作。
2、 如权利要求1所述的装置,其特征在于,所述多个加密锁中的一个 为主锁,其他加密锁为从锁。
3、 如权利要求2所述的装置,其特征在于,所述主锁,根据来自所述从锁的授权请求,向该从锁反馈授权结果; 每个从锁,向所述主锁发送授权请求,并对所述主锁反馈的授权结果进 行验证,根据验证结果确定自身状态。
4、 如权利要求3所述的装置,其特征在于, 所述授权请求中包括随机数或预设数字标识;所述授权结果为根据预设的授权规则对随机数或预设数字标识进行处 理得到的授权鉴别码;所述验证结果是根据预设的验证规则对所述授权鉴别码进行验证得到 的,包括-验i正通过和-验i正不通过;每个从锁在验证结果为验证通过时,将自身状态切换为可用状态。
5、 如权利要求4所述的装置,其特征在于,所述授权规则和所述验证 规则,是基于所述预先设置的验证协议的密码学规则。
6、 如权利要求5所述的装置,其特征在于,所述授权规则包括基于 对称算法的加密规则和加密密钥;所述验证规则包括基于所述对称算法的解密规则和解密密钥。
7、 如权利要求6所述的装置,其特征在于,所述主锁包括授权模块、加密运算模块,其中,所述授权模块,用于接收来自从锁的随机数,并输出给加密运算模块; 将加密运算模块输出的加密后的随机数反馈给所述从锁;所述加密运算模块,用于接收来自授权模块的随机数;根据内部存储的 加密密钥和加密规则,对接收到的随机数加密,并将加密后的随机数输出给授权模块;所述从锁包括认证模块、解密运算模块和功能代码模块,其中, 所述认证模块,用于生成并存储随机数,将生成的随机数输出给主锁; 接收来自主锁的加密后的随机数,并输出给解密运算模块;判断解密运算模 块输出的随机数是否与自身生成并存储的随机数相同,如果相同,则将功能 代码模块的状态切换为可用状态;所述解密运算模块,用于根据内部存储的解密规则和解密密钥,对认证 模块输出的加密后的随机数解密,并将解密后的随机数输出给认证模块;所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
8. 如权利要求5所述的装置,其特征在于,所述授权规则包括基于 非对称算法的签名规则和私钥;所述验证规则包括基于所述非对称算法的验签规则和公钥。
9. 如权利要求8所述的装置,其特征在于,所述主锁包括授权模块、 签名生成模块,其中,所述授权模块,用于接收来自从锁的随机数,并输出给签名生成模块; 将签名生成模块输出的签名结果反馈给所述从锁;所述签名生成模块,用于接收来自授权模块的随机数;根据内部存储的 签名规则和私钥,对接收到的随机数进行签名处理,并将得到的签名结果输 出给授权模块;所述从锁中包括认证模块、签名解析模块和功能代码模块,其中, 所述认证模块,用于生成并存储随机数,将生成的随机数输出给主锁; 接收来自主锁的授权鉴别码,并输出给签名解析模块;判断签名解析模块输 出的验证结果是否为验证成功,如果是,则将功能代码模块的状态切换为可 用状态;所述签名解析模块,用于根据内部存储的验签规则和公钥,对认证模块输出的签名结果进行验证,并将验证结果输出给认证模块;所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
10、 如权利要求7或9所述的装置,其特征在于,所述主锁进一步包括 功能代码模块;所述授权模块进一 步用于接收外部的调用请求,在对该请求认证通过 后,将功能代码模块的状态切换为可用状态;所述功能代码模块,用于存储软件中的代码,并在自身状态为可用状态 时,允许外部调用所述存储的代码。
11、 一种多加密锁捆绑方法,其特征在于,包括以下步骤设置多加密锁结构中的多个加密锁之间,基于预设的验证协议相互关联;所述多加密锁结构中的每个加密锁在被调用时,与该加密锁相关联的其 他加密锁协同工作。
12、 如权利要求11所述的方法,其特征在于,所述多个加密锁中的一 个为主锁,其他加密锁为从锁。
13、 如权利要求12所述的方法,其特征在于,所述被调用的从锁生成 随机数并输出给主锁之前,该方法进一步包括设置所有从锁的初始状态为 不可用状态。
14、 如权利要求12或13所述的方法,其特征在于, 所述每个加密锁在被调用时,与该加密锁相关联的其他加密锁协同工作为被调用的从锁向主锁发送授权请求;主锁根据来自所述从锁的授权请求,向该从锁反馈授权结果; 从锁对所述主锁反馈的授权结果进行验证,根据验证结果确定自身状态。
15、 如权利要求14所述的方法,其特征在于,所述授权请求中包括随机数或预设数字标识;所述授权结果为根据预设的授权规则对随机数或预设数字标识进行处 理得到的授权鉴别码;所述验证结果是根据预设的验证规则对所述授权鉴别码进行验证得到 的,包括验证通过和^r证不通过;所述根据验证结果确定自身状态为从锁在验证结果为验证通过时,将 自身状态切换为可用状态,否则,保持初始状态。
16、 如权利要求15所述的方法,其特征在于,所述授权规则和所述验 证规则,是基于所述预先设置的验证协议的密码学规则。
17、 如权利要求16所述的方法,其特征在于,所述授权规则包括基 于对称算法的加密规则和加密密钥;所述验证规则包括基于所述对称算法的解密规则和解密密钥; 所述对从锁输出的随机数进行处理为对从锁输出的随机数加密; 所述授权鉴别码为加密后的随机数;所述对主锁反馈的授权鉴别码进行验证为对主锁反馈的所述加密后的 随机数解密,判断解密后的随机数是否与所述从锁生成的随机数相同,如杲 是,则验证通过。
18、 如权利要求16所述的方法,其特征在于,所述授权规则包括基 于非对称算法的加密规则和私钥;所述验证规则包括基于所述预设非对称算法的解密规则和公钥; 所述对从锁输出的随机数进行处理为对从锁输出的随机数加密; 所述授权鉴别码为对随机数的签名结果;所述对主锁反馈的授权鉴別码进行验证为对主锁反馈的所迷签名结果 进行验证。
全文摘要
本发明公开了一种多加密锁装置和一种多加密锁捆绑方法。本发明通过设置一个多加密锁结构,多个加密锁之间基于预先设定的验证协议相互关联,每个加密锁与其关联的其他加密锁协同工作,使得每个加密锁无法在被拆分后单独使用,从而提高了加密锁对软件版权保护的安全性和可靠性。具体来说,设置包括一个主加密锁和多个从加密锁的主从加密锁结构,使得从加密锁的使用必须通过主加密锁的授权,才能够将自身的状态切换为可用状态,因此,从锁无法脱离与其对应的唯一的主锁而独立工作,即便是主从锁结构被拆分,从锁也无法实现对任何软件的安全保护,避免了多加密锁结构被拆分造成的安全性和可靠性不高的问题。
文档编号H04L9/32GK101291219SQ20071009852
公开日2008年10月22日 申请日期2007年4月19日 优先权日2007年4月19日
发明者念龙龙, 乾 霍 申请人:北京深思洛克数据保护中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1