一种消息发布、校验方法及系统与流程

文档序号:17088441发布日期:2019-03-13 23:08阅读:352来源:国知局
一种消息发布、校验方法及系统与流程

本发明涉及信息安全领域,具体涉及一种消息发布、校验方法及系统。



背景技术:

随着移动互联网技术的发展,通过网络传递和获取的消息越来越多,也越来越便捷。当前,消息经网络传播后,存在被截获修改的可能,也存在无法追溯到发布者的问题,信息接受者存在对接收到信息的存疑性。



技术实现要素:

本发明的目的在于提供一种消息发布、校验方法。

本发明的另一个目的在于提供一种消息发布、校验系统,解决对消息和消息发布者的鉴别,提供消息发布的详细信息。

本发明目的按如下技术方案实现:

一种消息发布、校验方法,包括:消息记录生成方法、区块头生成方法、时间戳生成方法、区块体生成方法、消息校验方法;

所述消息记录生成方法,将消息摘要及发布者身份信息组成单一消息记录;上述消息摘要为发布消息通过非可逆编码算法运算得到;

所述区块体生成方法:将上述所有消息记录进行hash运算,得到hash值作为叶子节点构建默克尔树,所有记录和所生成的默克尔树组成区块体;

所述时间戳生成方法:将上一区块的hash值、区块编号、区块体默克尔树根节点hash值拼接组成字符串,字符串通过hash算法得到字符串摘要,再经过签名算法得到字符串摘要签名,并由时间戳服务器加盖时间戳;所述时间戳包括字符串摘要签名、时间戳服务器收到字符串摘要时间,以及时间戳服务器数字签名;

所述区块头生成方法:将上一区块的hash值、区块编号、区块体默克尔树根节点hash值、时间戳共同组成区块头;所述上一区块若无,则其hash值全为零;

上述区块头和区块体组成区块;

上述多个区块组成区块链;

所述消息校验方法:使用消息摘要在区块链中检索,获取消息对应的区块,并依次完成消息完整性检测、默克尔树检测、时间戳签名检测、区块链完整性检测;

所述消息完整性检测,为定位消息摘要对应的叶子节点,提取发布者身份信息,确定发布者身份,使用与发布者相同的非可逆编码算法运算消息得到消息摘要,与该叶子节点的消息摘要相互比对,检验消息的完整性;

所述默克尔树检测,为区块体中所有消息记录计算默克尔树根节点hash值,与区块头中默克尔树根节点hash值比较,检验默克尔树完整性;

所述时间戳签名检测,由区块头中时间戳提取信息,检测字符串摘要签名和时间戳服务器签名,完成时间戳签名检测;

所述区块链完整性检测,比较上一区块hash值与区块头中存储上一区块的hash值,比较区块hash值与下一区块的区块头中存储的上一区块hash值,当均相同时,完成区块链完整性检测。

优选的,生成消息摘要的非可逆编码算法为hash算法。

另一方面,本发明提供一种消息发布、校验系统,由消息发布者、消息接收者、消息发布中心、时间戳服务器组成;

所述消息发布者,完成消息摘要、消息数字签名的生成,将消息、消息摘要发送给消息接收者,将消息摘要及消息数字签名发送给消息发布中心;

上述消息摘要由发布消息通过非可逆编码算法运算得到;

上述非可逆编码算法具有编码前后一一对应关系;

上述消息数字签名由消息发送者私钥通过签名算法得到;

所述消息发布中心接收到消息摘要及消息数字签名,按如下步骤处理:

s101:由消息数字签名和消息发布者公钥通过签名算法得到比对摘要与消息摘要进行比较,若不同,则舍弃;若相同,则确认消息摘要和消息发布者身份,进行步骤s102;

s102:消息发布中心将消息摘要及发布者身份信息组成单一消息记录;

s103:将所有消息记录进行hash运算,得到hash值作为叶子节点构建默克尔树,所有记录和所生成的默克尔树组成区块体;

s104:接着将上一区块hash值,本区块编码及区块体默克尔树根节点hash值拼接为字符串,通过hash算法得到字符串摘要,由消息中心私钥使用签名算法得到字符串摘要签名;

s105:将字符串摘要、字符串摘要签名发送时间戳戳服务器,获得时间戳;

s106:将上一区块hash值,本区块编号及区块体默克尔树根节点hash值、时间戳组成区块头;将所有由区块体和区块头组成的区块进一步组成区块链;

s107:将整个区块链公布并提供查询;

所述时间戳服务器接收消息发布中心发送字符串摘要和字符串摘要签名,由字符串摘要签名和消息发布中心公钥使用签名算法得到比对字符串摘要,并与字符串摘要进行比对,如不同,则舍弃,若相同,则生成时间戳,并发给消息发布中心;

所述时间戳包括:字符串摘要签名、时间戳服务器收到字符串摘要的时间,以及时间戳服务器数字签名;

所述消息接受者,接收到消息发布者发送的消息、消息摘要,完成消息对应区块检索和消息校验;

上述消息对应区块检索为消息发布接收者使用消息摘要完成对消息发布中心公布的区块链进行检索,确定对应的区块和叶子节点;

上述消息校验按如下步骤完成:

s201:提取发布者身份信息,确定发布者身份,使用与发布者相同的非可逆编码算法运算消息得到消息摘要,与叶子节点对应的消息记录中消息摘要进行比较,若相同,则完成消息完整性检测;

s202:使用区块体中所有消息记录计算默克尔树根节点hash值,与区块头中默克尔树根节点hash值比较,如相同,则完成默克尔树完整性检测;

s203:由区块头中时间戳提取信息,检测字符串摘要签名、时间戳服务器收到字符串摘要时间,以及时间戳服务器数字签名,若正确,则完成时间戳签名检测;

s204:比较上一区块hash值与区块头中存储上一区块的hash值,比较区块hash值与下一区块的区块头中存储的上一区块hash值,若均相同时,则完成区块链完整性检测;

s205:上述检测均通过,则消息接收者确定接收消息正确且完整。

优选的,消息发布者生成消息摘要的非可逆编码算法为hash算法。

优选的,消息发布者将消息、消息摘要制作为二维码,消息接受者扫码二维码得到消息、及消息摘要。

优选的,引入第三方独立监察机构,定期存储消息发布中心公布区块链,并完成区块链完整性检测。

本发明具有如下有益效果:

本发明消息发布、校验方法及系统,通过权威的消息发布中心的验证、登记及提供查询,确保了消息的发布有据可查,形成消息发布轨迹同时为消息的公信度提供有力支撑;其次,消息发布中心只需获取消息编码,不获取消息内容本身,因此消息发布中心并不清楚发布消息的具体内容,具有一定隐私性同时进一步保证了整个验证过程的安全性;最后消息发布中心采用区块链技术,引入第三方时间戳服务器,将多个消息记录形成区块链,通过消息完整性检测、默克尔树完整性检测、时间戳签名检测以及区块链完整性检测,排除了整个消息被任何一方篡改或销毁的可能。

附图说明

图1:为本发明消息发布、校验系统结构示意图。

图2:为消息发布者生成消息摘要和消息数字签名流程示意图。

图3:为消息发布中心校验、记录消息发布流程图。

具体实施方式

下面通过实施例对本发明进行具体的描述,有必要在此指出的是以下实施例只用于对本发明进行进一步说明,不能理解为对本发明保护范围的限制,该领域的技术人员可以根据上述本发明内容对本发明作出一些非本质的改进和调整。

一种消息发布、校验系统,如图1所示,由消息发布者、消息接收者、消息发布中心、时间戳服务器组成;消息发布者发布消息,消息发布中心和时间戳服务器对消息的发布进行校验和记录,而消息接受者接收消息发布者消息,并向消息发布中心查询和校验。

首先,消息发布者如图2所示,完成消息摘要、消息数字签名的生成;将消息摘要及消息数字签名发送给消息发布中心认真和记录;并将消息、消息摘要制作为二维码,作为消息传递的方法和媒介;

然后,消息发布中心接收到消息摘要及消息数字签名,按如图3所示步骤处理:

s101:由消息数字签名和消息发布者公钥通过签名算法得到比对摘要与消息摘要进行比较,若不同,则舍弃;若相同,则确认消息摘要和消息发布者身份,进行步骤s102;

s102:消息发布中心将消息摘要及发布者身份信息组成单一消息记录;

s103:将所有消息记录进行hash运算,得到hash值作为叶子节点构建默克尔树,所有记录和所生成的默克尔树组成区块体;

s104:接着将上一区块hash值,本区块编码及区块体默克尔树根节点hash值拼接为字符串,通过hash算法得到字符串摘要,由消息中心私钥使用签名算法得到字符串摘要签名;

s105:将字符串摘要、字符串摘要签名发送时间戳戳服务器,获得时间戳;

s106:将上一区块hash值,本区块编号及区块体默克尔树根节点hash值、时间戳组成区块头;将所有由区块体和区块头组成的区块进一步组成区块链;

s107:将整个区块链公布并提供查询;

在步骤s105中,时间戳服务器接收消息发布中心发送字符串摘要和字符串摘要签名,由字符串摘要签名和消息发布中心公钥使用签名算法得到比对字符串,并与字符串摘要进行比对,如不同,则舍弃,若相同,则生成时间戳,并发给消息发布中心。

最后,消息接收者扫码消息发布者制作的二维码,解码得到消息发布者发送的消息、消息摘要,完成消息对应区块检索和消息校验;确定消息摘要对应的区块和叶子节点;再完成消息完整性检测、默克尔树完整性检测、时间戳签名检测以及区块链完整性检测,具体步骤如下:

s201:提取发布者身份信息,确定发布者身份,使用与发布者相同的非可逆编码算法运算消息得到消息摘要,与叶子节点对应的消息记录中消息摘要进行比较,若相同,则完成消息完整性检测;

s202:使用区块体中所有消息记录计算默克尔树根节点hash值,与区块头中默克尔树根节点hash值比较,如相同,则完成默克尔树完整性检测;

s203:由区块头中时间戳提取信息,检测字符串摘要签名、时间戳服务器收到字符串摘要时间,以及时间戳服务器数字签名,若正确,则完成时间戳签名检测;

s204:比较上一区块hash值与区块头中存储上一区块的hash值,比较区块hash值与下一区块的区块头中存储的上一区块hash值,若均相同时,则完成区块链完整性检测;

s205:上述检测均通过,则消息接收者确定接收消息正确且完整。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1