数字签名方法、数字签名的验证方法、装置及系统的制作方法

文档序号:7761970阅读:541来源:国知局
专利名称:数字签名方法、数字签名的验证方法、装置及系统的制作方法
技术领域
本发明涉及一种网络信息加密技术,尤其涉及一种可有效防止降级攻击的数字签 名方法、数字签名的验证方法、装置及系统。
背景技术
随着网络技术的飞速发展,网络安全问题日益重要,而信息加密技术则是网络安 全技术中的核心技术。数字签名(Digital Signatures)是众多信息加密技术中使用较为 广泛的技术,它是保证信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交 易者身份的确定性的一种有效的解决方案,是电子商务安全性的重要部分。现有技术中,数字签名方案有多种,例如RSA(Ron Rivest、Adi Shamir&Leonard Adleman)签名、基于数字信封的数字签名、基于消息摘要的数字签名方案等。其中,基于消 息摘要的数字签名方案包括先采用消息摘要的算法为需加密的报文形成消息摘要值,再 用RSA编码法对该消息摘要值计算形成数字签名。该方法通过消息摘要值保证了报文数据 的完整性,通过RSA编码法保证了报文数据的保密性,同时由于消息摘要值长度远小于报 文数据长度,大大减小了 RSA编码的工作量。上述基于消息摘要的数字签名方案中的消息摘要(Message Digest,简称为MD) 是一种编码方法,它采用单向哈希(Hash)函数将需加密的任意长度的消息形成为一串固 定长度的消息摘要值,且不同的消息形成的消息摘要值结果不同,而同样的消息形成的消 息摘要值必定一致。消息摘要的一个重要属性就是不可逆性(irreversibility),即给定一 个消息摘要值,要想计算出它所对应的消息应当是极其困难的。消息摘要的另一个重要属 性就是要想产生具有相同消息摘要值的两条消息M和M'是困难的,该属性被称作抗冲突 性(collision resistance).实际上,任何抵御冲突发生的消息摘要的强度只有消息摘要 值的一半,因此一个128位的消息摘要值避免发生冲突的强度只有64位,也就是说需要大 约264次操作才会产生一次冲突,即产生具有相同消息摘要值的另一条消息,从而保证了消 息的完整性。不同算法得出的消息摘要值长度不同,安全强度不同。如MD5得出的消息摘要值 长度为128位,SHA-I得出的消息摘要值长度为160位,因此,需要264次操作才能找到MD5 的一次冲突,而对于SHA-I则是28°次操作。现有技术存在的缺陷在于经过现有的基于消息摘要的数字签名方案所加密的信 息,在网络中传输时容易遭受降级攻击,攻击者通过使用低安全级别的消息摘要算法替换 高级消息摘要算法来达到攻击的目的。图11为采用现有数字签名技术的报文遭受降级攻击的原理图。如图11所示,发 送端为提高数据传输的安全性,将原先所采用消息摘要算法MD5算法升级为SHA-I算法。 在进行数据传输时,发送端首先将待发送的报文A经SHA-I算法计算获得消息摘要值h = SHA-I (A),再计算数字签名RSA (h),然后将格式为报文A+数字签名RSA (h)的数据发送给 接收方。
攻击者在发送端升级消息摘要算法前已获得了经过验证的报文Al及数字签名 RSA(hi),其中的hi为报文Al用升级前的低级消息摘要算法MD5进行计算得到的,即hi = MD5 (Al),攻击者根据此消息摘要值进行碰撞运算,得到一个伪造的报文B,使得MD5 (B)= MD5 (Al)。攻击者截获发送端所发送的数据,将该数据中的数字签名RSA(h)替换为 RSA (hl),再将其报文A替换为报文B,篡改后的数据格式为报文B+数字签名RSA (hl),然 后攻击者将此数据发送给接收端。接收端接收到经过篡改的数据后,先对RSA (hi)进行解密得到消息摘要值hl,再 将报文B用其携带的MD5算法进行计算,获得MD5(B),因为MD5(B) =MD5(A1) =hl,所以 接收端无法判断报文已遭篡改。因此,采用现有的基于消息摘要的数字签名方法所加密的 信息,容易遭受降级攻击。

发明内容
针对现有技术的缺陷,本发明提供一种数字签名方法、数字签名的验证方法、装置 及系统,可有效防止降级攻击。本发明提供了一种数字签名方法,包括对待传输的报文进行处理,获得第一消息摘要值;从所述报文中选取至少一个报文片段;对所述报文片段分别进行处理,获得对应的至少一个第二消息摘要值;采用数字签名算法对所述第一消息摘要值及所述至少一个第二消息摘要值进行 加密,获得最终数字签名。本发明又提供了一种数字签名的验证方法,包括根据与报文发送方约定的方式对接收到的报文选取至少一个报文片段;根据与报文发送方约定的解密方式及数字签名算法对接收到的最终数字签名进 行解密,获得第一消息摘要值及至少一个第二消息摘要值,所述第一消息摘要值与所述接 收到的报文对应,所述至少一个第二消息摘要值与所述至少一个报文片段对应;对所述接收到的报文进行处理,获得第三消息摘要值;对所述报文片段分别进行处理,获得对应的至少一个第四消息摘要值;对所述第一消息摘要值与所述第三消息摘要值进行比较;对所述至少一个第二消息摘要值与所述至少一个第四消息摘要值进行比较;在所述第一消息摘要值与所述第三消息摘要值相等,且所述至少一个第二消息摘 要值与所述至少一个第四消息摘要值全部相等的情况下,判定所述接收到的报文未受到降 级攻击;否则,判定所述接收到的报文受到降级攻击。本发明还提供了一种数字签名装置,包括第一消息摘要处理模块,用于对待传输的报文进行处理,获得第一消息摘要值;片段选取模块,用于从所述报文中选取至少一个报文片段;第二消息摘要处理模块,用于对所述报文片段进行处理,获得对应的至少一个第 二消息摘要值;
数字签名模块,用于采用数字签名算法对所述第一消息摘要值及所述至少一个第 二消息摘要值进行加密,获得最终数字签名。本发明再提供了一种数字签名的验证装置,包括片段获取模块,用于根据与报文发送方约定的方式对接收到的报文选取至少一个 报文片段;解密模块,用于根据与报文发送方约定的解密方式及数字签名算法对接收到的最 终数字签名进行解密,获得第一消息摘要值及至少一个第二消息摘要值,所述第一消息摘 要值与所述接收到的报文对应,所述至少一个第二消息摘要值与所述至少一个报文片段对 应;第三消息摘要处理模块,用于对所述接收到的报文进行处理,获得第三消息摘要 值;第四消息摘要处理模块,用于对所述报文片段分别进行处理,获得对应的至少一 个第四消息摘要值;第一比较模块,用于对所述第一消息摘要值与所述第三消息摘要值进行比较;第二比较模块,用于对所述至少一个第二消息摘要值与所述至少一个第四消息摘 要值进行比较;判定模块,用于在所述第一消息摘要值与所述第三消息摘要值相等,且所述至少 一个第二消息摘要值与所述至少一个第四消息摘要值全部相等的情况下,判定所述接收到 的报文未受到降级攻击;否则,判定所述接收到的报文受到降级攻击。本发明还提供了一种数字签名系统,包括上述数字签名装置与上述数字签名的 验证装置。由上述技术方案可知,本发明通过从报文中选取至少一个报文片段,并分别计算 报文及报文片段的消息摘要值,使得攻击者必须同时找到至少两个具有内在联系的匹配消 息分别指向报文的消息摘要值及至少一个报文片段的消息摘要值,从而增加了降级攻击的 难度,进而提高了数字签名的安全性。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


图1为本发明一实施例提供的数字签名方法的流程图;图2为本发明一实施例提供的报文格式示意图;图3为本发明一实施例提供的最终数字签名格式的示意图;图4为本发明一实施例提供的数字签名的验证方法的流程图;图5为本发明另一实施例提供的最终数字签名格式的示意图;图6为本发明一实施例提供的数字签名装置的方框图;图7为本发明一实施例提供的数字签名的验证装置的方框图;图8为本发明一实施例提供的数字签名系统的方框图;图9为本发明一实施例提供的数字签名模块的方框图;图10为本发明另一实施例提供的数字签名模块的方框图;图11为采用现有数字签名技术的报文遭受降级攻击的原理图。
具体实施例方式图1为本发明一实施例提供的数字签名方法的流程图。如图1所示,数字签名方法包括步骤101 对待传输的报文进行处理,获得第一消息摘要值;具体地,报文发送方首先需要根据安全需求指定消息摘要算法,根据该消息算法 对报文整体进行计算得到第一消息摘要值。步骤102 从报文中选取至少一个报文片段;具体地,可从报文中选取一个报文片段或多个报文片段,每一个报文片段可以为 报文发送方和报文接收方事先协商好的某字段或某几位。选取的报文片段应尽可能减少冲突,使得当攻击者对报文进行降级攻击时,不容 易找到匹配原报文片段的消息文本而得到相同的消息摘要值。报文片段可以选取表示报文时间信息的字段,形成数字签名,这种包含报文时间 信息的数字签名称为数字时间戳(digitaltime-stamp),它由网络上专门的机构所提供的 数字时间戳服务(digital time-stamp service,简称为DTS)来形成。攻击者要找到与数 字时间戳相匹配的消息文本而得到相同的消息摘要是非常困难的,需要同时满足时间格式 特征和范围(可能仅为一分钟),这样满足的几率非常低。当选取多个报文片段时,各报文片段可包含相同字段或相同位,即各报文片段具 有相互重叠的部分,也可以是多个报文片段中的某几个报文片段具有相互重叠的部分。需要说明的是,报文片段并不局限于本实施例所描述的某字段或某几位或表示报 文时间信息的字段,多个报文片段之间的相互重叠方式也不限于上述方式,任何本领域技 术人员所知的报文片段的选取方式都可用于实现本发明。步骤103 对报文片段分别进行处理,获得对应的至少一个第二消息摘要值;具体地,当选取了一个报文片段时,发送方对所选取的报文片段进行计算得到一 个第二消息摘要值;当选取了多个报文片段时,发送方则对每一个报文片段分别进行计算, 得到对应的多个第二消息摘要值。计算每个报文片段的消息摘要值所采用的算法可以相同也可以不同,且当采用相 同算法对所有的报文片段进行计算时,这个算法也可以与计算报文的消息摘要值时所采用 的算法不同。现有技术通常将计算每个消息摘要时所采用算法的信息在报文发送前插入到报 文中,因此,接收方收到报文及数字签名的同时,也接收到了每个消息摘要值所对应的消息 摘要算法。步骤104 采用数字签名算法对所述第一消息摘要值及所述至少一个第二消息摘 要值进行加密,获得最终数字签名。具体的,该数字签名算法是发送方与接收方共同约定的算法,采用该算法对第一 消息摘要值及至少一个第二消息摘要值进行加密时,可以对第一消息摘要值及至少一个第 二消息摘要值分别加密,得到对应的第一数字签名及至少一个第二数字签名,再将第一数 字签名和至少一个第二数字签名组合,获得最终数字签名。其中,至少一个第二数字签名连 接在第一数字签名的后面,而至少一个第二数字签名的排列顺序与选取的报文片段的顺序
采用该算法对第一消息摘要值及至少一个第二消息摘要值进行加密时,还可将第 一消息摘要值及至少一个第二消息摘要值先进行组合,再对该组合的第一消息摘要值及至 少一个第二消息摘要值整体进行加密,获得最终数字签名。其中,至少一个第二消息摘要值 连接在第一消息摘要值的后面,而至少一个第二消息摘要值的排列顺序与选取的报文片段 的顺序一致。需要说明的是,对第一消息摘要值及至少一个第二消息摘要值进行加密的方式并 不限于上述两种方式,还可以将部分消息摘要值整体加密而其他的消息摘要值分别进行加 密,然后将获得的各数字签名组合,以得到最终数字签名。除上述方式外,任何对第一消息 摘要值及至少一个第二消息摘要值进行加密的方式都可用于实现本发明。本实施例的数字签名方法中,不仅对报文整体进行了消息摘要计算,获得了第一 消息摘要值,还对报文中的某一或某些片段进行了消息摘要计算,获得了至少一个第二消 息摘要值,使得攻击者必须同时找到至少两个具有内在联系的匹配消息分别指向第一消息 摘要值和至少一个第二消息摘要值。由于第二消息摘要值对应报文中的特定位置的一部 分,使得攻击者所找到的匹配消息还要符合这一点,才能进行攻击,增加了攻击者的攻击难 度,降低了报文被攻击的危险,有效阻止了降级攻击,满足了报文及数字签名的更高安全性 的需求。另外,本实施例的数字签名方法中,对消息摘要值进行加密的方式有多种,发送方 和接收方可根据需要约定一种方式,进一步提高了数字签名的安全性。图2为本发明一实施例提供的报文格式的示意图。图3为本发明一实施例提供的 最终数字签名格式的示意图,如图3所示的最终数字签名是在选取一个报文片段的情况下 获得的,其中包含对应于报文的第一数字签名及对应于报文片段的一个第二数字签名。如 图2所示,报文201与最终数字签名202 —起构成一个完整的数据。图4为本发明一实施例提供的数字签名的验证方法的流程图。参见图4,数字签名 的验证方法包括步骤401 根据与报文发送方约定的方式对接收到的报文选取至少一个报文片 段。具体地,接受方对接收到的报文根据发送方和接收方共同约定方法选取一个或多 个报文片段。步骤402 根据与报文发送方约定的解密方式及数字签名算法对接收到的最终数 字签名进行解密,获得对应于报文的第一消息摘要值及对应于报文片段的至少一个第二消 息摘要值。具体地,接受方对接收到的最终数字签名根据与报文发送方约定的解密方式通过 数字签名算法进行解密,该数字签名算法由发送方和接收方共同约定,该解密方式与前述 数字签名方法实施例中的加密方式相对应,即发送方采用一种加密方式,则接收方则采用 此方式对接收到的最终数字签名进行解密。当步骤401中选取的报文片段是一个时,进行 解密后获得对应于报文的一个第一消息摘要值及对应于报文片段的一个第二消息摘要值; 当步骤401中选取的报文片段是多个时,进行解密后获得对应于报文的一个第一消息摘要 值及对应于多个报文片段的多个第二消息摘要值。
步骤403 对报文进行处理,获得第三消息摘要值,并对至少一个报文片段分别进 行处理,获得至少一个第四消息摘要值。具体地,对报文进行计算,获得第三消息摘要值,并对选取的报文片段进行计算, 当选取一个报文片段时,计算后获得一个第四消息摘要值;当选取多个报文片段时,计算后 获得多个第四消息摘要值。计算报文或某一报文片段的消息摘要值时,将由步骤402中解密得到的对应该报 文或该报文片段的消息摘要算法取出,用该算法对该报文或该报文片段进行计算。步骤404 比较第一消息摘要值与第三消息摘要值。具体地,将第一消息摘要值与第三消息摘要值进行比较。当比较的结果为不相等 时,说明接收到的报文为受到篡改的报文,则转到步骤407,判定报文遭受攻击。当比较的结 果为相等时转而执行步骤405。步骤405 比较第二消息摘要值与第四消息摘要值。当选取一个报文片段时,第二消息摘要值与第四消息摘要值分别为一个,将第二 消息摘要值与第四消息摘要值进行比较,当比较的结果为不相等时,说明接收到的报文为 受到篡改的报文,则转到步骤407,判定报文遭受攻击。当比较结果为相等时,说明接收到了 正确的报文,则转到步骤406,判定报文未受攻击。当选取多个报文片段时,第二消息摘要值与第四消息摘要值分别为多个,按选取 报文片段的顺序,将对应于报文片段的每个第四消息摘要值依次与每个第二消息摘要值进 行比较。当出现第二消息摘要值与第四消息摘要值有一个不相等时,说明接收到的报文为 受到篡改的报文,则停止后续比较,转到步骤407,判定报文遭受攻击。当比较结果为全部相 等时,说明接收到了正确的报文,则转到步骤406,判定报文未受攻击。通过上述验证方法可使接收方正确判定接收到的报文是否遭受降级攻击,从而保 证了接收到数据的完整性和可靠性。需要说明的是,上述步骤404与步骤405之间并没有限定执行的顺序,即先比较第 一消息摘要值与第三消息摘要值,或者先比较第二消息摘要值与第四消息摘要值均可根据 实际需要进行适当选择。图6为本发明一实施例提供的数字签名装置的方框图。参见图6,数字签名装置 601包括第一消息摘要处理模块603、片段选取模块602、第二消息摘要处理模块604、数字 签名模块605。其中,第一消息摘要处理模块603用于对待传输的报文进行计算,获得第一消息 摘要值。片段选取模块602用于从待传输的报文中选取至少一个报文片段。第二消息摘要 处理模块604用于对至少一个报文片段进行计算,获得至少一个第二消息摘要值。数字签 名模块605用于采用数字签名算法对第一消息摘要值及至少一个第二消息摘要值进行加 密,获得最终数字签名。对报文片段的选取方法详见上述实施例中的说明,在此不再重复说 明。图9为本发明一实施例提供的数字签名模块的方框图,如图9所示,数字签名模块 605包括第一数字签名单元6051、第二数字签名单元6052及第一组合单元6053。其中,第 一数字签名单元6051用于对第一消息摘要值采用数字签名算法进行加密,获得第一数字 签名;第二数字签名单元6052用于对至少一个第二消息摘要值采用数字签名算法分别进行加密,获得至少一个第二数字签名;第一组合单元6053,用于将第一数字签名和至少一 个第二数字签名进行组合,获得最终数字签名。至少一个第二数字签名连接于第一数字签 名的后面,且至少一个第二数字签名的排列顺序与选取的报文片段的顺序一致。当选取的报文片段为η个时,最终数字签名的格式如图5所示。其中,第一数字签 名表示对接收到的报文整体计算及加密后得到的数字签名;第二数字签名1表示对选取的 第1个报文片段计算及加密后得到的数字签名;第二数字签名2表示对选取的第2个报文 片段计算及加密后得到的数字签名,以此类推,第二数字签名η表示对选取的第η个报文片
段计算及加密后得到的数字签名。第二数字签名1、第二数字签名2........第二数字签名
η按报文片段的先后顺序对应依次连接在第一数字签名的后面,构成最终数字签名。例如, 如果选取的η个报文片段的先后顺序为第1个报文片段、第2个报文片段、...第η个报 文片段,则最终数字签名如图5所示。通过对选取的多个报文片段分别进行计算生成消息摘要值,使得攻击者必须同时 找到多个匹配消息分别指向对应的消息摘要值,进一步增加了降级攻击的难度,且选取的 报文片段的个数越多,报文受到攻击的可能性就越低,从而进一步提高了数字签名方法的 安全性。图10为本发明另一实施例提供的数字签名模块的方框图。如图10所示,数字签 名模块605包括第二组合单元6054及第三数字签名单元6055。其中,第二组合单元6054 用于将第一消息摘要值与至少一个第二消息摘要值进行组合;第三数字签名单元6055用 于采用数字签名算法对组合的第一消息摘要值与至少一个第二消息摘要值整体进行加密, 获得所述最终数字签名。至少一个第二消息摘要值连接于第一消息摘要值的后面,且至少 一个第二消息摘要值的排列顺序与选取的报文片段的顺序一致。图7为本发明一实施例提供的数字签名的验证装置的方框图。参见图7,数字签名 的验证装置701包括片段获取模块702、解密模块703、第三消息摘要处理模块704、第四 消息摘要处理模块705、第一比较模块706、第二比较模块707及判定模块708。其中,片段获取模块702根据与报文发送方约定的方式对接收到的报文选取至少 一个报文片段;解密模块703根据与报文发送方约定的解密方式采用数字签名算法对接收 到的最终数字签名进行解密,获得第一消息摘要值及至少一个第二消息摘要值,该数字签 名算法为与报文发送方约定的算法,第一消息摘要值与接收到的报文相对应,至少一个第 二消息摘要值与至少一个报文片段对应。该解密方式与发送方所采用的加密方式相对应。第三消息摘要处理模块704对接收到的报文进行计算,获得第三消息摘要值;第 四消息摘要处理模块705对至少一个报文片段分别进行计算,获得至少一个第四消息摘要 值。第三消息摘要处理模块704在计算报文的消息摘要值时,或者第四消息摘要处理 模块705在计算某一报文片段的消息摘要值时,先将由解密模块703中解密得到的对应该 报文或该报文片段的消息摘要算法取出,用该算法对该报文或该报文片段进行计算。第一比较模块706对第一消息摘要值与第三消息摘要值进行比较;第二比较模块 707对至少一个第二消息摘要值与至少一个第四消息摘要值进行比较;判定模块708根据 第一比较模块706和第二比较模块707的比较结果判定接收到的报文是否受到降级攻击。本实施例中,判定模块708具体用于在第一消息摘要值与第三消息摘要值相等,且至少一个第二消息摘要值与至少一个第四消息摘要值全部相等的情况下,判定接收到的 报文未受到降级攻击;否则,判定接收到的报文受到降级攻击。图8为本发明一实施例提供的数字签名系统的方框图。参见图8,数字签名系统 801包括数字签名装置802与数字签名的验证装置803。其中,数字签名装置802与数字签 名的验证装置803已在上述实施例中详细描述,在此不再重复描述。需要说明的是,上述各实施例的消息摘要算法及数字签名算法并不限于实施例中 所列举的算法,任何本领域技术人员所知的消息摘要算法及数字签名算法,都可用于实现 本发明。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案而非对其进行限制, 尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依 然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修 改后的技术方案脱离本发明技术方案的精神和范围。
权利要求
一种数字签名方法,其特征在于,包括对待传输的报文进行处理,获得第一消息摘要值;从所述报文中选取至少一个报文片段;对所述报文片段分别进行处理,获得对应的至少一个第二消息摘要值;采用数字签名算法对所述第一消息摘要值及所述至少一个第二消息摘要值进行加密,获得最终数字签名。
2.根据权利要求1所述的数字签名方法,其特征在于,采用数字签名算法对所述第一 消息摘要值及所述至少一个第二消息摘要值进行加密,获得最终数字签名包括采用所述数字签名算法对所述第一消息摘要值进行加密,获得第一数字签名; 采用所述数字签名算法对所述至少一个第二消息摘要值分别进行加密,获得至少一个 第二数字签名;将所述第一数字签名和所述至少一个第二数字签名进行组合。
3.根据权利要求1所述的数字签名方法,其特征在于,采用数字签名算法对所述第一 消息摘要值及所述至少一个第二消息摘要值进行加密,获得最终数字签名包括将所述第一消息摘要值与所述至少一个第二消息摘要值进行组合; 采用所述数字签名算法对组合的所述第一消息摘要值与所述至少一个第二消息摘要 值整体进行加密,获得所述最终数字签名。
4.根据权利要求1-3任一项所述的数字签名方法,其特征在于,从所述报文中选取至 少一个报文片段包括从所述报文中选取至少一个字段或至少一位。
5.根据权利要求1-3任一项所述的数字签名方法,其特征在于,从所述报文中选取至 少一个报文片段包括从所述报文中选取包含相同字段或相同位的多个报文片段。
6.根据权利要求4所述的数字签名方法,其特征在于,从所述报文中选取至少一个字 段包括从所述报文中选取至少一个用于表示所述报文的时间信息的字段。
7.一种数字签名的验证方法,其特征在于,包括根据与报文发送方约定的方式对接收到的报文选取至少一个报文片段; 根据与报文发送方约定的解密方式及数字签名算法对接收到的最终数字签名进行解 密,获得第一消息摘要值及至少一个第二消息摘要值,所述第一消息摘要值与所述接收到 的报文对应,所述至少一个第二消息摘要值与所述至少一个报文片段对应; 对所述接收到的报文进行处理,获得第三消息摘要值; 对所述报文片段分别进行处理,获得对应的至少一个第四消息摘要值; 对所述第一消息摘要值与所述第三消息摘要值进行比较; 对所述至少一个第二消息摘要值与所述至少一个第四消息摘要值进行比较; 在所述第一消息摘要值与所述第三消息摘要值相等,且所述至少一个第二消息摘要值 与所述至少一个第四消息摘要值全部相等的情况下,判定所述接收到的报文未受到降级攻 击;否则,判定所述接收到的报文受到降级攻击。
8.一种数字签名装置,其特征在于,包括第一消息摘要处理模块,用于对待传输的报文进行处理,获得第一消息摘要值;片段选取模块,用于从所述报文中选取至少一个报文片段;第二消息摘要处理模块,用于对所述报文片段进行处理,获得对应的至少一个第二消 息摘要值;数字签名模块,用于采用数字签名算法对所述第一消息摘要值及所述至少一个第二消 息摘要值进行加密,获得最终数字签名。
9.根据权利要求8所述的数字签名装置,其特征在于,所述数字签名模块包括第一数字签名单元,用于对所述第一消息摘要值采用所述数字签名算法进行加密,获 得第一数字签名;第二数字签名单元,用于对所述至少一个第二消息摘要值采用所述数字签名算法分别 进行加密,获得至少一个第二数字签名;第一组合单元,用于将所述第一数字签名和所述至少一个第二数字签名进行组合,获 得最终数字签名。
10.根据权利要求8所述的数字签名装置,其特征在于,所述数字签名模块包括第二组合单元,用于将所述第一消息摘要值与所述至少一个第二消息摘要值进行组合;第三数字签名单元,用于采用所述数字签名算法对组合的所述第一消息摘要值与所述 至少一个第二消息摘要值整体进行加密,获得所述最终数字签名。
11.根据权利要求8-10任一项所述的数字签名装置,其特征在于,所述片段选取模块 用于从所述报文中选取至少一个字段或至少一位。
12.根据权利要求8-10任一项所述的数字签名装置,其特征在于,所述片段选取模块 用于从所述报文中选取包含相同字段或相同位的多个报文片段。
13.根据权利要求8-10任一项所述的数字签名装置,其特征在于,所述片段选取模块 用于从所述报文中选取至少一个用于表示所述报文的时间信息的字段。
14.一种数字签名的验证装置,其特征在于,包括片段获取模块,用于根据与报文发送方约定的方式对接收到的报文选取至少一个报文 片段;解密模块,用于根据与报文发送方约定的解密方式及数字签名算法对接收到的最终数 字签名进行解密,获得第一消息摘要值及至少一个第二消息摘要值,所述第一消息摘要值 与所述接收到的报文对应,所述至少一个第二消息摘要值与所述至少一个报文片段对应;第三消息摘要处理模块,用于对所述接收到的报文进行处理,获得第三消息摘要值;第四消息摘要处理模块,用于对所述报文片段分别进行处理,获得对应的至少一个第 四消息摘要值;第一比较模块,用于对所述第一消息摘要值与所述第三消息摘要值进行比较;第二比较模块,用于对所述至少一个第二消息摘要值与所述至少一个第四消息摘要值 进行比较;判定模块,用于在所述第一消息摘要值与所述第三消息摘要值相等,且所述至少一个 第二消息摘要值与所述至少一个第四消息摘要值全部相等的情况下,判定所述接收到的报文未受到降级攻击;否则,判定所述接收到的报文受到降级攻击。
15. 一种数字签名系统,其特征在于,包括上述权利要求8-13任一项所述的数字签名 装置与上述权利要求14所述的数字签名的验证装置。
全文摘要
本发明涉及一种数字签名方法、数字签名的验证方法、装置及系统。数字签名方法包括对待传输的报文进行处理,获得第一消息摘要值;从所述报文中选取至少一个报文片段;对所述报文片段分别进行处理,获得对应的至少一个第二消息摘要值;采用数字签名算法对所述第一消息摘要值及所述至少一个第二消息摘要值进行加密,获得最终数字签名。本发明通过从报文中选取至少一个报文片段,并分别计算报文及报文片段的消息摘要值,使得攻击者必须同时找到至少两个具有内在联系的匹配消息分别指向报文的消息摘要值及至少一个报文片段的消息摘要值,从而增加了降级攻击的难度,进而提高了数字签名的安全性。
文档编号H04L9/32GK101980471SQ201010505308
公开日2011年2月23日 申请日期2010年10月8日 优先权日2010年10月8日
发明者刘瑾, 卢文哲, 李晓东, 毛伟, 沈烁, 王妍 申请人:中国科学院计算机网络信息中心;北龙中网(北京)科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1