基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统技术方案

技术编号:26845869 阅读:25 留言:0更新日期:2020-12-25 13:08
本发明专利技术提供一种基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统,所述方法包括步骤一、用户端向小文件传输节点发送小文件下载请求,小文件传输节点向用户端传输小文件以及对小文件进行完整性校验所需要的所有路径哈希值P

【技术实现步骤摘要】
基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统
本专利技术涉及计算机文件完整性校验
,具体是一种基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统。
技术介绍
IEEE标准委员会发布IEEEP1159.3号标准文件,在该文件里面,委员会提出了电能质量数据在交换过程中的交换格式,称为PQDIF(powerqualitydatainterchangeformat),经过多次修改和商讨,最终形成了IEEEP1159.3/Draft9号标准。该标准文件给出的交换格式,对电脑质量数据的记录格式给予了统一的标准,这可以解决实际生活中不同厂家生产的不同设备收集的数据,由于采用不同定义的原因不能进行数据交换和共享的问题。PQDIF已经成为发达国家承认的标准,在数据格式领域技术十分成熟。但是一般电气设备制造厂家制造的设备在生成PQDIF文件的过程中,生成PQDIF文件比较大,在电气设备监测端向用户端传输PQDIF文件的过程中不稳定,PQDIF文件容易损坏,而且传输的PQDIF文件数目较多,不宜定位具体的损坏文件位置,由于文件内容较大,重新传输会浪费大量时间,而且不能保证稳定性。在网络数据传输过程中,需要同时从不同的地方下载数据,由于服务器等原因,下载的数据是不可靠的。为了更好地校验数据的完整性,需要把大的文件分割成小的数据块(例如,把分割成2K为单位的数据块)。这样的好处是,如果小块数据在传输过程中损坏,那么只要重新下载这一快数据即可,不用重新下载整个文件。数据监测端生成的较长时间内PQDIF文件就是一个大文件,可以让其生成较短时间内的PQDIF文件,这样就成功把大文件分割为小文件。但是较短时间内的PQDIF文件数目较多,采用传统方法检验PQDIF文件完整性,耗时比较长,还容易出错。
技术实现思路
针对现有技术存在的上述不足,本专利技术提供一种基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统,可以提升校验效率高,而且准确性高,节省时间。一种基于Merkle树的电能质量数据交换格式文件完整性校验方法,包括如下步骤:步骤一、用户端向小文件传输节点发送小文件下载请求,小文件传输节点向用户端传输小文件以及对小文件进行完整性校验所需要的所有路径哈希值Pi,其中每个小文件作为数据分块构建一个二叉树结构,二叉树的大小由数据分块的数目决定,二叉树最底层的每一个叶子结点都对应一个数据分块的哈希值,不同数据分块的哈希值由数据分块的内容决定,上一级结点通过下一级两个结点级联得到,最底层的结点哈希值可得到最高层的哈希值也就是根结点H0;步骤二、用户端利用哈希算法得到所下载小文件的哈希值Hi;步骤三、用户端利用哈希值Hi和路径哈希值Pi得到待校验值Ci,判断该值是否等于根结点H0,若相等,则校验成功,执行步骤四,若相不等,则校验失败,执行步骤五;步骤四、用户端将哈希值Hi和路径哈希值Pi进行保存,用于后续小文件完整性校验,并继续进行下一个小文件的下载;步骤五、判定得到的小文件是损坏的,用户端需要重新进行该小文件的下载申请。进一步的,叶子结点的数目大于或等于数据分块数目,多余的叶子结点哈希值为0,不对应数据分块。进一步的,假设PQDIF小文件数目为N,Merkle树的叶子节点数为M,N≤(2)M,N和M均为自然数。进一步的,所述哈希算法使用SHA1。一种基于Merkle树的电能质量数据交换格式文件完整性校验系统,包括用户端及服务器;所述用户端,用于向服务器发送下载请求;所述服务器,用于根据所述用户端的下载请求,向用户端传输小文件以及对小文件进行完整性校验所需要的所有路径哈希值Pi,其中每个小文件作为数据分块构建一个二叉树结构,二叉树的大小由数据分块的数目决定,二叉树最底层的每一个叶子结点都对应一个数据分块的哈希值,不同数据分块的哈希值由数据分块的内容决定,上一级结点通过下一级两个结点级联得到,最底层的结点哈希值可得到最高层的哈希值也就是根结点H0;所述用户端,还用于利用哈希算法得到所下载小文件的哈希值Hi,利用哈希值Hi和路径哈希值Pi得到待校验值Ci,根据待校验值Ci是否等于根结点H0判断小文件是否下载成功。进一步的,所述用户端若判定待校验值Ci等于根结点H0,则校验成功,所述用户端将哈希值Hi和路径哈希值Pi进行保存,用于后续小文件完整性校验,并继续进行下一个小文件的下载;若不相等,则校验失败,所述用户端判定得到的小文件是损坏的,用户端需要重新进行该小文件的下载申请。进一步的,叶子结点的数目大于或等于数据分块数目,多余的叶子结点哈希值为0,不对应数据分块。进一步的,假设PQDIF小文件数目为N,Merkle树的叶子节点数为M,N≤(2)M,N和M均为自然数。进一步的,所述哈希算法使用SHA1。本专利技术在实际校验过程中,服务器不需要发送全部的路径哈希值给用户,另外,校验过程中引入的哈希算法SHA1,在计算哈希值的过程是分散在不同的申请时刻,带来的时间损耗很小,相对于传统方法检测小文件完整性,本专利技术校验完整性的速度大大提高,不仅可以节省大量的校验时间,提高校验的准确性,也减少了人力损耗。附图说明图1是本专利技术Merkle树的结构图;图2是本专利技术基于Merkle树的小文件完整性校验交互示意图;图3是本专利技术基于Merkle树的电能质量数据交换格式文件完整性校验方法其中一个实施例的流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。PQDIF文件是由物理层和逻辑层构成的,物理层描述文件物理结构,与实际电脑质量数据无关;逻辑层主要描述电脑质量数据。在IEEE1159.3所规定的PQDIF文件中,每个记录含有的记录头(Header)中存有一个用于校验文件完整性的校验和(checksum),它采用32Bit的循环冗余码(CRC-CyclicalRedundancy)来完成校验,以保证物理结构在传输中保持完整性和正确性。PQDIF文件的解析,首先要通过计算得到一个校验和,然后再与数据终端传输的校验和进行对比,若两者的校验和一致,说明数据文件的物理结构完整。基于这个思想,本专利技术提出了一种基于Merkle树的电能质量数据交换格式文件完整性校验方法,与传统方法相比,本专利技术的方法效率高,准确性高,节省时间。Merkle树是指Merkle将二叉树与哈希算法结合得到的一种新的树结构,它是一种特殊情况下的二叉树。叶子结点对应的是集合中的元素也就是哈希值,上一级结点可以通过下一级两个结点级联得到。这样,由最底层的结点哈希值可以得到最高层的哈希值本文档来自技高网
...

【技术保护点】
1.一种基于Merkle树的电能质量数据交换格式文件完整性校验方法,其特征在于:包括如下步骤:/n步骤一、用户端向小文件传输节点发送小文件下载请求,小文件传输节点向用户端传输小文件以及对小文件进行完整性校验所需要的所有路径哈希值P

【技术特征摘要】
1.一种基于Merkle树的电能质量数据交换格式文件完整性校验方法,其特征在于:包括如下步骤:
步骤一、用户端向小文件传输节点发送小文件下载请求,小文件传输节点向用户端传输小文件以及对小文件进行完整性校验所需要的所有路径哈希值Pi,其中每个小文件作为数据分块构建一个二叉树结构,二叉树的大小由数据分块的数目决定,二叉树最底层的每一个叶子结点都对应一个数据分块的哈希值,不同数据分块的哈希值由数据分块的内容决定,上一级结点通过下一级两个结点级联得到,最底层的结点哈希值可得到最高层的哈希值也就是根结点H0;
步骤二、用户端利用哈希算法得到所下载小文件的哈希值Hi;
步骤三、用户端利用哈希值Hi和路径哈希值Pi得到待校验值Ci,判断该值是否等于根结点H0,若相等,则校验成功,执行步骤四,若相不等,则校验失败,执行步骤五;
步骤四、用户端将哈希值Hi和路径哈希值Pi进行保存,用于后续小文件完整性校验,并继续进行下一个小文件的下载;
步骤五、判定得到的小文件是损坏的,用户端需要重新进行该小文件的下载申请。


2.如权利要求1所述的基于Merkle树的电能质量数据交换格式文件完整性校验方法,其特征在于:叶子结点的数目大于或等于数据分块数目,多余的叶子结点哈希值为0,不对应数据分块。


3.如权利要求1所述的基于Merkle树的电能质量数据交换格式文件完整性校验方法,其特征在于:假设PQDIF小文件数目为N,Merkle树的叶子节点数为M,N≤(2)M,N和M均为自然数。


4.如权利要求1-3中任一项所述的基于Merkle树的电能质量数据交换格式文件完整性校验方法,其特征在于:所述哈希算法使用SHA1。


5.一种基于Merkle树的电能质量数据交换格式文件完整性...

【专利技术属性】
技术研发人员:李伟方定江吴文斌丁凯钱一民陈乔王易胡畔柳丹胡斌叶畅陈爽罗浩
申请(专利权)人:国网湖北省电力有限公司电力科学研究院国网湖北省电力有限公司国网湖北省电力有限公司武汉供电公司
类型:发明
国别省市:湖北;42

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

1