一种数字记录的签名数据生成方法和验证方法与流程

文档序号:11877886阅读:411来源:国知局
一种数字记录的签名数据生成方法和验证方法与流程
本发明属于电子安全领域,特别是系统和相关的操作方法,涉及一种数字化记录的签名数据生成方法和验证方法,能够验证电子文档的原始性、真实性。
背景技术
:目前,随着互联网以及电子商务的快速发展,电子化信息已成为一种重要的信息源,其迅速的发展给电子化信息服务提出了严峻的挑战,如何保证电子化信息的安全也成为了一个重要的课题。目前针对电子化信息安全的技术主要是通过完整码进行保护,然而目前核心服务在生成完整码的时候,需要使用一个平衡的哈希树结构,在新的日历值生成后一段时间,也即其右侧的日历值达到一定数量后,才能进行日历树的聚合,生成完整码,因此只能在一个较长的时间周期内发布完整码数据,无法实现实时对其进行发布。针对此问题本发明设计了一种新的电子数据签名验证服务的验证方法,它可以在同一个签名周期内,实现产生完整码数据并通过多渠道进行发布。技术实现要素:针对现有技术中存在的技术问题,本发明的目的在于提供一种新的一种数字记录的签名数据生成方法和验证方法。本发明的技术方案为:一种数字记录的签名数据生成方法,其步骤为:1)将待签名数字记录作为一根值与上一签名周期生成的完整码进行两两聚合,产生一哈希值,将该哈希值作为当前签名周期的日历树的叶节点;2)将当前签名周期的日历树的所有叶节点进行指定层级的两两聚合,生成一根值,将该根植作为当前签名周期的完整码;3)将产生该完整码的路径上的所有节点及其对应的聚合顺序组合在一起,作为该待签名数字记录的签名数据。进一步的,步骤2)中,如果在聚合时,日历树的叶节点数不能满足指定层级聚合要求的节点数,则使用占位节点对缺失的节点进行填充。进一步的,所述占位节点为常量、有规则的变量或能够与随机产生的哈希值区分开的变量。进一步的,如果日历树的其中一层的节点树为偶数,则不需要填充占位节点,如果该层的节点树为奇数,则需要在该层的最右侧填充一占位节点。进一步的,所述待签名数字记录为数字形式的文件或记录,或者是数字文件的特征值或散列值,或者是记录的特征值或散列值,或者是数字形式或记录的特征值的哈希聚合值,或者是数字形式或记录的散列值的哈希聚合值。进一步的,根据签名数据的聚合路径确定每一聚合层级对应的聚合顺序值,然后按照聚合层级从高到低的顺序对聚合顺序值进行排列,得到一个二进制的数值,记为N;根据该二进制N计算得到该签名数据的签名时间;根据签名时间确定该签名数据对应的完整码发布周期,在设定发布渠道上进行发布。进一步的,节点从右侧与另一节点进行聚合,则聚合顺序值为0;节点从左侧与另一节点进行聚合,则聚合顺序值为1。进一步的,将发布的各完整码按照发布时间的顺序连接在一起,形成一线性链式结构,即信任锚链;其中,信任锚链上的每一个节点对应一完整码。一种数字记录的签名数据验证方法,其步骤为:1)计算数字记录的哈希值,记为A;该数字记录的签名数据的签名周期为第N周期;2)将第N-1签名周期的完整码与该哈希值A进行聚合操作,获得哈希值B;3)从该数字记录的签名数据中读取第N签名周期对应的日历值,如果该日历值与该哈希值B一致,则进行步骤4);否则验证未通过;4)将该数字记录作为根植,根据该数字记录的签名数据中的节点及其对应的聚合顺序重新生成该数字记录的完整码D;5)从该数字记录的签名数据中读取完整码,与该完整码D进行比较,根据比较结果确定验证是否通过。与现有技术相比,本发明的积极效果为:本发明可以即时产生完整码数据,满足对完整码数据发布的高频率的要求,并且允许从多渠道实时发布完整码数据。这样,采用实时发布完整码数据的验证方法,不仅可以同时满足脱离依赖PKI技术对根值的保护,同时也可以不再需要对电子数据签名进行扩展,特别是在大数据的环境下,这是非常有意义的。附图说明图1为本发明的签名数据生成方法示意图;图2为本发明信任锚链示意图;图3为本发明签名数据验证方法流程图。具体实施方式下面结合附图对本发明的实现方法进行进一步详细描述:一.签名过程如图1所示1.根值可以为任何数字形式的文件或记录、或者是数字形式的文件和记录的某种特征值或散列值、或者是数字形式或记录的特征值或散列值的哈希聚合值,图中底层的左斜纹的节点表示根值。2.根值(图1中底层左斜纹节点)与前一个签名周期生成的完整码(图1中底层右斜纹节点)进行两两聚合,产生一个哈希值,将该哈希值作为该签名周期的日历树的叶节点(图1中交叉纹节点),该叶节点对应的值称为日历值。这样,当前签名周期的聚合也会锁定前一个签名周期的完整码。3.每一个签名周期,日历树的所有叶节点都进行指定层级(比如,32层)的两两聚合,生成一个根值,作为当前签名周期的完整码(顶层黑色实心节点)。4.如果在聚合时,日历树叶节点数如果不能满足指定层级聚合要求的节点数,那么,日历树处于不平衡状态,在进行两两聚合时,缺失的节点可以使用占位节点(虚线圆圈)进行填充。占位节点可以是常量,有规则的变量或任何可以与随机产生的哈希值区分开的变量。占位节点不需要填充满所有日历树节点,只需要填充完成指定层级聚合所必要的占位节点即可,占位节点右侧缺失的节点可以忽略(因为右侧的节点是未来要生成的节点,如果在当前时间聚合时,他们的缺失不影响聚合计算,就可以忽略)。图1中,哈希树的最底层,亦即第一层,有5个节点,表示这是第5个签名周期的聚合过程。在进行第一次聚合时,第一层的第5个节点需要与右侧的节点进行聚合操作,但是此时,此节点还没有生成,那么就需要使用一个占位节点与第5个节点进行聚合操作。完成第一层的聚合操作后,生成了3个节点,成为哈希树的第二层。按照与第一层聚合相同的操作,第2层的第一和第二个节点进行聚合操作,第三个节点需要与一个占位符节点进行聚合操作。第2层产生的两个节点,成为哈希树的第3层。这两个节点聚合完成后,产生一个节点,成为哈希树的第4层。在第4层进行聚合操作时,因为只有一个节点,所以需要在其右侧补充一个占位节点,完成聚合操作。同理,从第5层直至第32层,每一层都是一个节点,在进行聚合操作前,都需要填充一个占位节点后,在进行聚合操作。由上面的聚合过程可以看出,不需要填满完成32层聚合全部的节点,仅仅需要填充占位节点,满足完成每一层聚合所需最小的节点数。也就是说,如果层的节点树为偶数,那么不需要填充占位节点,如果层的节点树为奇数,则需要在层的最右侧填充一个占位节点。5.因此,在每一个签名周期,都会生成一个完整码,对当前签名周期的日历值进行保护,不再需要PKI技术等其他安全技术对日历值进行保护,从而摆脱了在完整码生成前,对PKI签名技术的依赖。6.最终,把从左斜纹节点到产生完整码的路径上的所有节点和及其对应的聚合顺序(从左或从右结合)组合在一起,作为该电子文件的签名数据。二.签名时间我们可以通过日历哈希树节点的聚合路径,计算某一个日历节点对应的时间周期。以交叉纹的节点为例。日历哈希树的节点的聚合路径如下所示:聚合顺序聚合层级0C10C21C3……0C300C310C321.C1表示第1层的聚合。聚合顺序0,表示交叉纹的节点从右侧与另一个节点进行聚合,完成聚合操作。2.C2表示第2层的聚合。聚合顺序0,表示节点从右侧与另一个节点进行聚合,完成聚合操作。3.C3表示第3层的聚合。聚合顺序1,表示节点从左侧与另一个节点进行聚合,完成聚合操作4.同理,完成第4层到第32层的聚合路径。5.把聚合层级C1,C2,…,C31,C32分别对应的聚合顺序的值,按照聚合层级从高到低的顺序进行排列,形成一个二进制的数值,记为N,如下所示:那么,将上述的二进制的值转换为十进制表示为:N=0x20+0x21+1x22+…+0x229+0x230+1x231=4,于是可以得出时间N,如果把该日历值对应的时间周期记为T,那么,T=N+1=5(因为N计算出的是前一秒的时间,+1得到当前时间);如果时间为1秒,那么,交叉纹节点就为第5秒对应的日历值。三.完整码发布完整码可以通过各种渠道进行发布,比如,1.实时发布到微博、微信、朋友圈、短信、电子邮件等任何无法悄然召回的通信方式2.门户,社交等网站3.平面媒体,如报纸如果完整码产生的周期比较短,如1秒,那么发布在纸质媒体上时,可以选择一段时间进行发布,如每周,每月等。完整码公开发布后,发布的完整码可以看做是一个信任锚,信任锚的所有节点按照时间的顺序连接在一起,形成一个向前的线性链式结构,称为信任锚链,如图2。信任锚链上的每一个节点,都对应一个完整码,它也锁定了其对应签名周期的所有签名数据,同时,信任锚链上的每一个节点也都锁定了信任锚连上之前所有的节点,因为信任锚链上的每一个节点的完整码,都参与了下一个完整码的聚合过程。信任锚链可以对任何已经签名的数据进行验证,而其链式结构的特性,保证了任何人难以对其进行篡改。四.验证过程如图3所示为本发明验证方法流程图,简要步骤如下:签名数据的验证过程,主要描述了数据的验证处理流程。验证过程不需要PKI的签名,也不需要获取发布文件,扩展等操作,可以离线,独立验证。下面以电子文件的验证过程为例来进行说明。该过程包含以下步骤:1.读取电子文件的内容,计算该电子文件的哈希值,记为A。2.从电子文件对应的签名数据中读取上一个签名周期的完整码,与步骤1中获得的哈希值A进行聚合操作,获得哈希值B。3.从电子文件对应的签名数据中读取该待验证数据对应的签名周期所对应的日历值(即电子文件签名时的哈希值),然后与步骤2中的哈希值B进行比较,如果一致,则进行步骤4,否则,说明与电子文件的内容发生了改变。4.从电子文件对应的签名数据中,读取在签名过程中,与该数字记录进行第1次聚合操作的节点N1和聚合顺序值O1,然后使用步骤3中产生的哈希值B与节点N1所对应的哈希值按照聚合顺序O1进行聚合操作,产生哈希值C。5.依次类推,最终经过32次聚合操作计算出哈希值D。6.从电子文件对应的签名数据中读取完整码的哈希值,与步骤5中计算得到的哈希值D进行比较,判断是否相同,从而判断数字记录是否与签名有矛盾。7.根据上述二、签名时间一节所述,找到签名的具体时间单元,按此时间单元查找上述三、发布渠道获得的完整码链,找到对应该时间单元的具体完整码。将该完整码与步骤3验证过一致的完整码进行比对,从而判断数据记录和签名是否都完整有效。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1