一种基于区块链的文档数据安全验证方法

文档序号:30581338发布日期:2022-06-29 12:24阅读:112来源:国知局
一种基于区块链的文档数据安全验证方法

1.本发明涉及到文档处理技术领域,尤其涉及一种基于区块链的文档数据安全验证方法。


背景技术:

2.区块链是以比特币为代表的数字加密货币体系的核心支撑技术,其核心优势是去中心化,能够通过运用数据加密、时间戳、分布式共识和经济激励的手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全的问题提供解决方案。
3.电子文档在信道传输中容易受到攻击,被攻击后,文档的内容可能会被篡改,安全无法得到保证。目前,对电子文档数据安全进行保护主要是使用数字签名技术。
4.公开号为cn112564921a,公开日为2021年03月26日的中国专利文献公开了一种基于区块链的可信电子文档的实现和验证方法及系统,包括如下步骤:1、用户通过互联网在客户端进行身份验证后,发送申请可信文档请求;2、可信电子文档应用支撑平台接收到用户的申请请求后,通过可信电子文档系统中间件从所述学校业务数据库中抽取相应数据,生成电子文档,并将其发送至客户端供用户预览确认;3、用户确认后,可信电子文档应用支撑平台将生成的所述电子文档发送至可信电子文档密码应用支撑平台进行加密和电子签章,生成pdf电子文档;4、可信电子文档应用支撑平台将所述pdf电子文档发送至所述区块进行加密上链存证,生成可信电子文档;5、可信电子文档服务平台根据用户申请下载可信电子文档请求信息,从区块将可信电子文档通过邮件的形式发送至用户指定邮箱。
5.该专利文献公开的基于区块链的可信电子文档的实现和验证方法及系统,其对电子文档的安全保护和验证是基于可信电子文档应用支撑平台,可信电子文档应用支撑平台负责可信电子文档的生成、保护和传播,是一个中心化的系统方法,不能独立进行电子文档的签名和验证,影响验证结果的精度。


技术实现要素:

6.本发明为了克服上述现有技术的缺陷,提供一种基于区块链的文档数据安全验证方法,本发明具有分布式特点,每个用户能够独立进行电子文档的签名和验证,保障验证结果的精度,且能够在本地进行电子文档的编写,操作更加便捷和人性化。
7.本发明通过下述技术方案实现:
8.一种基于区块链的文档数据安全验证方法,其特征在于,包括以下步骤:
9.a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
10.b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
11.c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区
块中;
12.d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
13.所述步骤a中,word插件用于整合签名、验签以及用户申请证书。
14.所述用户申请证书具体是指通过sm2算法生成公私钥对,按照给定的椭圆曲线参数随机生成私钥d∈[1,n-1],用户作为发送方将秘密保存至私钥,通过公私钥关系生成sm2公钥,通过公钥生成证书请求的算法指令生成证书请求,上传包含公钥的证书请求至云端服务器,生成ca证书;
[0015]
p=[d]*g
[0016]
式中,p为公钥,d为私钥,g为基点。
[0017]
所述步骤b中,在区块链云端创建用户信息具体是指云端服务器向用户发送身份识别和认证邮件,完成用户信息认证后储存用户邮箱和id信息到服务器的数据库中。
[0018]
所述步骤b中,对word文档进行签名具体是指将文档编写者的用户id添加至文档命名中。
[0019]
所述步骤d中,从区块链的区块上获取对应用户的证书具体是指用户id嵌入文档命名中,发送方发给接收方后,接收方从文档名称中获取发送方的邮箱地址,接收方根据邮箱地址判断用户id和发送方是否对应,当接收方接收到数据包时,根据文档名称所附的邮箱地址判断id是否为发送方的用户id,通过word插件中的验证算法验证文档是否被篡改。
[0020]
所述步骤d中,证书验证签名包括:
[0021]
s1、发送方先使用sm3算法获取word文档的摘要;
[0022]
s2、发送方再利用sm2算法对摘要信息进行加密,得到数字签名,得到的数字签名和文档通过word插件整合成数据包;
[0023]
s3、接收方验证时,word插件根据word文档的用户id信息,从区块链上获取证书信息;
[0024]
s4、接收方根据证书信息,通过公钥提取算法从证书中提取发送方的公钥,再结合数据包中的数字签名,利用sm2算法进行解密获取摘要信息;
[0025]
s5、接收方再将通过sm2算法解密获取的摘要信息与步骤s1中通过sm3算法获取的word文档的摘要进行对比,验证签名。
[0026]
本发明所述sm2算法是指公钥密码算法。
[0027]
本发明所述sm3算法是指密码杂凑算法。
[0028]
本发明所述ca证书是指包含公私钥对的数字证书。
[0029]
本发明的有益效果主要表现在以下方面:
[0030]
1、本发明,a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名,较现有技术而言,具有分布式特点,每个用户能够独立进行电子文档的签名和验证,保障验证结果的精度,且能够在本地进行电子文档的编写,操作更加便捷和人性化。
[0031]
2、本发明,将word插件和区块链进行有机结合,有效改进了数字签名和数字签名验证方案,增强了不可篡改性,让验证结果更准确,对文档具有更好的保护作用。
[0032]
3、本发明,将文档签名和签名验证以插件形式集成至word中,用户在插件中申请账号,云端服务器将会生成ca证书,并使用区块链进行存储管理,利用ca证书即可对文档安全进行验证,具有极大的便捷性和高效性。
[0033]
4、本发明,步骤d中,从区块链的区块上获取对应用户的证书具体是指用户id嵌入文档命名中,发送方发给接收方后,接收方从文档名称中获取发送方的邮箱地址,接收方根据邮箱地址判断用户id和发送方是否对应,当接收方接收到数据包时,根据文档名称所附的邮箱地址判断id是否为发送方的用户id,通过word插件中的验证算法验证文档是否被篡改,对所有用户来说邮箱具有唯一性,即用户id可保障唯一性,而获取的证书在区块链中是和用户的id进行绑定的,基于区块链的不可篡改性,从而能够极大的降低验证时的错验率,提高验证结果精度。
[0034]
5、本发明,在整个ca证书申请过程中,完全由云端服务器操作,不涉及第三方干预,更加高效可靠。
附图说明
[0035]
下面将结合说明书附图和具体实施方式对本发明作进一步的具体说明:
[0036]
图1为本发明的流程框图;
[0037]
图2为本发明的文档签名流程图;
[0038]
图3为本发明的签名验证流程图。
具体实施方式
[0039]
实施例1
[0040]
参见图1,一种基于区块链的文档数据安全验证方法,包括以下步骤:
[0041]
a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
[0042]
b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
[0043]
c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;
[0044]
d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
[0045]
本实施例为最基本的实施方式,具有分布式特点,每个用户能够独立进行电子文档的签名和验证,保障验证结果的精度,且能够在本地进行电子文档的编写,操作更加便捷和人性化。
[0046]
实施例2
[0047]
参见图1,一种基于区块链的文档数据安全验证方法,包括以下步骤:
[0048]
a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
[0049]
b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
[0050]
c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;
[0051]
d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
[0052]
所述步骤a中,word插件用于整合签名、验签以及用户申请证书。
[0053]
所述用户申请证书具体是指通过sm2算法生成公私钥对,按照给定的椭圆曲线参数随机生成私钥d∈[1,n-1],用户作为发送方将秘密保存至私钥,通过公私钥关系生成sm2公钥,通过公钥生成证书请求的算法指令生成证书请求,上传包含公钥的证书请求至云端服务器,生成ca证书;
[0054]
p=[d]*g
[0055]
式中,p为公钥,d为私钥,g为基点。
[0056]
本实施例为一较佳实施方式,将word插件和区块链进行有机结合,有效改进了数字签名和数字签名验证方案,增强了不可篡改性,让验证结果更准确,对文档具有更好的保护作用。
[0057]
实施例3
[0058]
参见图1,一种基于区块链的文档数据安全验证方法,包括以下步骤:
[0059]
a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
[0060]
b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
[0061]
c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;
[0062]
d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
[0063]
所述步骤a中,word插件用于整合签名、验签以及用户申请证书。
[0064]
所述用户申请证书具体是指通过sm2算法生成公私钥对,按照给定的椭圆曲线参数随机生成私钥d∈[1,n-1],用户作为发送方将秘密保存至私钥,通过公私钥关系生成sm2公钥,通过公钥生成证书请求的算法指令生成证书请求,上传包含公钥的证书请求至云端服务器,生成ca证书;
[0065]
p=[d]*g
[0066]
式中,p为公钥,d为私钥,g为基点。
[0067]
所述步骤b中,在区块链云端创建用户信息具体是指云端服务器向用户发送身份识别和认证邮件,完成用户信息认证后储存用户邮箱和id信息到服务器的数据库中。
[0068]
所述步骤b中,对word文档进行签名具体是指将文档编写者的用户id添加至文档命名中。
[0069]
本实施例为又一较佳实施方式,将文档签名和签名验证以插件形式集成至word中,用户在插件中申请账号,云端服务器将会生成ca证书,并使用区块链进行存储管理,利
用ca证书即可对文档安全进行验证,具有极大的便捷性和高效性。
[0070]
实施例4
[0071]
参见图1,一种基于区块链的文档数据安全验证方法,包括以下步骤:
[0072]
a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
[0073]
b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
[0074]
c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;
[0075]
d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
[0076]
所述步骤a中,word插件用于整合签名、验签以及用户申请证书。
[0077]
所述用户申请证书具体是指通过sm2算法生成公私钥对,按照给定的椭圆曲线参数随机生成私钥d∈[1,n-1],用户作为发送方将秘密保存至私钥,通过公私钥关系生成sm2公钥,通过公钥生成证书请求的算法指令生成证书请求,上传包含公钥的证书请求至云端服务器,生成ca证书;
[0078]
p=[d]*g
[0079]
式中,p为公钥,d为私钥,g为基点。
[0080]
所述步骤b中,在区块链云端创建用户信息具体是指云端服务器向用户发送身份识别和认证邮件,完成用户信息认证后储存用户邮箱和id信息到服务器的数据库中。
[0081]
所述步骤b中,对word文档进行签名具体是指将文档编写者的用户id添加至文档命名中。
[0082]
所述步骤d中,从区块链的区块上获取对应用户的证书具体是指用户id嵌入文档命名中,发送方发给接收方后,接收方从文档名称中获取发送方的邮箱地址,接收方根据邮箱地址判断用户id和发送方是否对应,当接收方接收到数据包时,根据文档名称所附的邮箱地址判断id是否为发送方的用户id,通过word插件中的验证算法验证文档是否被篡改。
[0083]
本实施例为又一较佳实施方式,步骤d中,从区块链的区块上获取对应用户的证书具体是指用户id嵌入文档命名中,发送方发给接收方后,接收方从文档名称中获取发送方的邮箱地址,接收方根据邮箱地址判断用户id和发送方是否对应,当接收方接收到数据包时,根据文档名称所附的邮箱地址判断id是否为发送方的用户id,通过word插件中的验证算法验证文档是否被篡改,对所有用户来说邮箱具有唯一性,即用户id可保障唯一性,而获取的证书在区块链中是和用户的id进行绑定的,基于区块链的不可篡改性,从而能够极大的降低验证时的错验率,提高验证结果精度。
[0084]
实施例5
[0085]
参见图1-图3,一种基于区块链的文档数据安全验证方法,包括以下步骤:
[0086]
a、用户通过word插件,使用国密算法生成含用户id的word文档,国密算法包括sm2算法和sm3算法;
[0087]
b、对word文档进行签名,在区块链云端创建用户信息,通过云端服务器生成ca证书;
[0088]
c、通过区块链产生区块,将云端服务器生成的ca证书和用户id进行绑定并存入区块中;
[0089]
d、根据word文档的用户id从区块链的区块上获取对应用户的证书,完成证书验证签名。
[0090]
所述步骤a中,word插件用于整合签名、验签以及用户申请证书。
[0091]
所述用户申请证书具体是指通过sm2算法生成公私钥对,按照给定的椭圆曲线参数随机生成私钥d∈[1,n-1],用户作为发送方将秘密保存至私钥,通过公私钥关系生成sm2公钥,通过公钥生成证书请求的算法指令生成证书请求,上传包含公钥的证书请求至云端服务器,生成ca证书;
[0092]
p=[d]*g
[0093]
式中,p为公钥,d为私钥,g为基点。
[0094]
所述步骤b中,在区块链云端创建用户信息具体是指云端服务器向用户发送身份识别和认证邮件,完成用户信息认证后储存用户邮箱和id信息到服务器的数据库中。
[0095]
所述步骤b中,对word文档进行签名具体是指将文档编写者的用户id添加至文档命名中。
[0096]
所述步骤d中,从区块链的区块上获取对应用户的证书具体是指用户id嵌入文档命名中,发送方发给接收方后,接收方从文档名称中获取发送方的邮箱地址,接收方根据邮箱地址判断用户id和发送方是否对应,当接收方接收到数据包时,根据文档名称所附的邮箱地址判断id是否为发送方的用户id,通过word插件中的验证算法验证文档是否被篡改。
[0097]
所述步骤d中,证书验证签名包括:
[0098]
s1、发送方先使用sm3算法获取word文档的摘要;
[0099]
s2、发送方再利用sm2算法对摘要信息进行加密,得到数字签名,得到的数字签名和文档通过word插件整合成数据包;
[0100]
s3、接收方验证时,word插件根据word文档的用户id信息,从区块链上获取证书信息;
[0101]
s4、接收方根据证书信息,通过公钥提取算法从证书中提取发送方的公钥,再结合数据包中的数字签名,利用sm2算法进行解密获取摘要信息;
[0102]
s5、接收方再将通过sm2算法解密获取的摘要信息与步骤s1中通过sm3算法获取的word文档的摘要进行对比,验证签名。
[0103]
本实施例为最佳实施方式,在整个ca证书申请过程中,完全由云端服务器操作,不涉及第三方干预,更加高效可靠。
[0104]
本发明的原理如下:
[0105]
数字签名,又称为公钥数字签名,本质是利用公钥签名算法,保证数据的完整和正确性。具体实施时,先由公钥算法生成一对公私钥,然后签名方用私钥对数据的摘要信息进行加密,验证方则用公布的公钥解密签名,将得到的解密摘要信息与收到的信息的摘要进行对比,即可验证数据的完整性。其中,公钥的正确性是验证成功的保证,通过国密sm2算法和sm3算法能够杜绝公钥可能会出现不完整或错误的情况发生。
[0106]
sm2算法是公钥密码算法,sm2算法是一种更先进安全的算法,在我国商用密码体系中被经常用到。sm2算法性能更优更安全体现在密码复杂度高、处理速度快和硬件性能消
耗更小这些方面,可用于数字签名及数据加密。
[0107]
sm3算法是密码杂凑算法,是国家密码管理局2010年12月17日公布的中国商用密码杂凑算法标准,使用了迭代压缩结构,将填充后的原数据通过布尔函数与置换逻辑处理,在压缩过程中充分的进行扩散和扰乱,使得sm3算法具有较高的复杂性与不可逆性。
[0108]
本发明云端服务器的工作过程如下:
[0109]
云端服务器,用于生成ca证书和转存信息到区块链,同样使用到了国密算法,具体方法为:云端服务器接收到用户的证书请求,在传输时服务器将先获取通信方的id,即用户邮箱,用户的id将由云端服务器发送给用户邮箱的邮件来认证,认证通过后,再利用公钥生成证书的算法结合用户上传的证书请求中提取的公钥,生成ca证书,ca证书和申请用户的id相对应,然后将ca证书转存至区块链。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1