基于区块链的企业数据签名方法及装置与流程

文档序号:19493032发布日期:2019-12-24 14:18阅读:302来源:国知局
基于区块链的企业数据签名方法及装置与流程

本发明涉及区块链技术领域,尤其涉及基于区块链的企业数据签名方法及装置。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

在区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。

区块链是一种p2p的分布式系统,常用的数字签名包括对称加密和非对称加密,只要掌握秘钥,就拥有数据的所有权。在区块链的数据交易中,不论交易双方的真实身份是谁,只要有正确的秘钥就可以交易数据。

当数据的拥有者是企业用户时,这种唯一的数字签名技术,就存在缺陷了。比如掌握唯一秘钥的员工离职或其他原因时,就存在企业失去数据的所有权的风险。



技术实现要素:

本发明提供基于区块链的企业数据签名方法及装置,以提高基于区块链的企业数据签名的可靠性。

本发明的技术方案是这样实现的:

一种基于区块链的企业数据签名方法,该方法包括:

区块链控制中心接收来自第一企业用户的数据提交员的区块链企业用户注册请求,为数据提交员分配公钥私钥对;

区块链控制中心接收来自第一企业用户的数据审核员的区块链企业用户注册请求,为数据审核员分配公钥私钥对;

区块链控制中心接收第一企业用户的数据提交员发来的第一次签名后的数据,将该第一次签名后的数据发送给第一企业用户的数据审核员,其中,该第一次签名后的数据为:数据提交员采用自己的公钥对原始数据进行签名后得到的;

区块链控制中心接收第一企业用户的数据审核员发来的第二次签名后的数据,将第二次签名后的数据提交到区块链节点,其中,该第二次签名后的数据为:数据审核员采用自己的公钥对第一次签名后的数据进行签名后得到的。

所述区块链控制中心将第二次签名后的数据提交到区块链节点之后进一步包括:

区块链控制中心接收来自第二企业用户的区块数据获取请求,查询满足请求条件的区块数据,将查询到的区块数据的地址以及该区块数据的数据审核员和数据提交员的私钥发送给第二企业用户的客户端,以使得:第二企业用户使用数据审核员和数据提交员的私钥对区块数据进行解密,得到原始数据。

所述区块链控制中心接收第一企业用户的数据审核员发来的第二次签名后的数据之后、将第二次签名后的数据上传到区块链节点之前进一步包括:

区块链控制中心采用数据审核员和数据提交员的公钥,验证第二次签名和第一次签名是否正确,若正确,则执行所述将第二次签名后的数据提交到区块链节点的动作。

所述区块链控制中心接收第一企业用户的数据审核员发来的第二次签名后的数据之后、将第二次签名后的数据提交到区块链节点之前进一步包括:

区块链控制中心对第二次签名后的数据进行封装,并在封装头中添加企业数据标志。

所述为数据提交员分配公钥私钥对包括:

使用随机函数生成两个素数p1、q1,其中,p1>100,q1>100;

计算n1=p1*q1;

计算l1=lcm(p1-1,q1-1),其中,lcm是求最小公倍数运算符;

计算满足1<e1<l1且gcd(e1,l1)=1条件的e1,其中,gcd为求最大公约数运算符;

计算满足1<d1<l1且e1*d1modl1=1条件的d1,其中,mod为求余数运算符;

确定公钥=(e1,n1),私钥=(d1,n1);

所述为数据审核员分配公钥私钥对包括:

使用随机函数生成两个素数p2、q2,其中,p2>100,q2>100;

计算n2=p2*q2;

计算l2=lcm(p2-1,q2-1),其中,lcm是求最小公倍数运算符;

计算满足1<e2<l2且gcd(e2,l2)=1条件的e2,其中,gcd为求最大公约数运算符;

计算满足1<d2<l2且e2*d2modl2=1条件的d2,其中,mod为求余数运算符;

确定公钥=(e2,n2),私钥=(d2,n2)。

一种基于区块链的企业数据签名装置,该装置包括:

注册处理模块,用于接收来自第一企业用户的数据提交员的区块链企业用户注册请求,为数据提交员分配公钥私钥对;接收来自第一企业用户的数据审核员的区块链企业用户注册请求,为数据审核员分配公钥私钥对;

数据处理及提交模块,接收第一企业用户的数据提交员发来的第一次签名后的数据,将该第一次签名后的数据发送给第一企业用户的数据审核员,其中,该第一次签名后的数据为:数据提交员采用自己的公钥对原始数据进行签名后得到的;接收第一企业用户的数据审核员发来的第二次签名后的数据,将第二次签名后的数据提交到区块链节点,其中,该第二次签名后的数据为:数据审核员采用自己的公钥对第一次签名后的数据进行签名后得到的。

所述装置进一步包括:区块数据请求处理模块,用于接收来自第二企业用户的区块数据获取请求,查询满足请求条件的区块数据,将查询到的区块数据的地址以及该区块数据的数据审核员和数据提交员的私钥发送给第二企业用户的客户端,以使得:第二企业用户使用数据审核员和数据提交员的私钥对区块数据进行解密,得到原始数据。

所述数据处理及提交模块接收第一企业用户的数据审核员发来的第二次签名后的数据之后进一步用于,

采用数据审核员和数据提交员的公钥,验证第二次签名和第一次签名是否正确,若正确,则执行所述将第二次签名后的数据上传到区块链节点的动作。

所述数据处理及提交模块接收第一企业用户的数据审核员发来的第二次签名后的数据之后进一步用于,

对第二次签名后的数据进行封装,并在封装头中添加企业数据标志。

所述注册处理模块为数据提交员分配公钥私钥对包括:

使用随机函数生成两个素数p1、q1,其中,p1>100,q1>100;

计算n1=p1*q1;

计算l1=lcm(p1-1,q1-1),其中,lcm是求最小公倍数运算符;

计算满足1<e1<l1且gcd(e1,l1)=1条件的e1,其中,gcd为求最大公约数运算符;

计算满足1<d1<l1且e1*d1modl1=1条件的d1,其中,mod为求余数运算符;

确定公钥=(e1,n1),私钥=(d1,n1);

所述注册处理模块为数据审核员分配公钥私钥对包括:

使用随机函数生成两个素数p2、q2,其中,p2>100,q2>100;

计算n2=p2*q2;

计算l2=lcm(p2-1,q2-1),其中,lcm是求最小公倍数运算符;

计算满足1<e2<l2且gcd(e2,l2)=1条件的e2,其中,gcd为求最大公约数运算符;

计算满足1<d2<l2且e2*d2modl2=1条件的d2,其中,mod为求余数运算符;

确定公钥=(e2,n2),私钥=(d2,n2)。

本发明通过为企业用户设置数据提交员角色和数据审核员角色,并为该两个角色分配不同的秘钥对,从而对数据进行两次签名后再提交到区块链节点上,从而保证了企业用户的区块数据的可靠性。

附图说明

以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。

图1为本发明一实施例提供的基于区块链的企业数据签名方法流程图;

图2为本发明另一实施例提供的基于区块链的企业数据签名方法流程图;

图3为本发明实施例提供的区块链数据解密方法流程图;

图4为本发明实施例提供的基于区块链的企业数据签名装置的结构示意图。

具体实施方式

为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

图1为本发明一实施例提供的基于区块链的企业数据签名方法流程图,其具体步骤如下:

步骤101:区块链控制中心接收来自第一企业用户的数据提交员的区块链企业用户注册请求,为数据提交员分配公钥私钥对。

步骤102:区块链控制中心接收来自第一企业用户的数据审核员的区块链企业用户注册请求,为数据审核员分配公钥私钥对。

步骤103:区块链控制中心接收第一企业用户的数据提交员发来的第一次签名后的数据,将该第一次签名后的数据发送给第一企业用户的数据审核员,其中,该第一次签名后的数据为:数据提交员采用自己的公钥对原始数据进行签名后得到的。

步骤104:区块链控制中心接收第一企业用户的数据审核员发来的第二次签名后的数据,将第二次签名后的数据提交到区块链节点,其中,该第二次签名后的数据为:数据审核员采用自己的公钥对第一次签名后的数据进行签名后得到的。

步骤105:区块链控制中心接收来自第二企业用户的区块数据获取请求,查询满足请求条件的区块数据,将查询到的区块数据的地址以及该区块数据的数据审核员和数据提交员的私钥发送给第二企业用户的客户端。

步骤106:第二企业用户使用数据审核员和数据提交员的私钥对区块数据进行解密,得到原始数据。

图2为本发明另一实施例提供的基于区块链的企业数据签名方法流程图,其具体步骤如下:

步骤201:企业用户a的客户端向区块链控制中心发送区块链企业用户注册请求,该请求中携带数据提交员的注册信息包括:企业用户a标识、数据提交员角色标志以及数据提交员的用户名、密码等。

步骤202:区块链控制中心接收该请求,为数据提交员生成公钥私钥对,将该公钥私钥对通过企业用户a的客户端发送给数据提交员,同时区块链控制中心将该企业用户a标识、数据提交员的注册信息和数据提交员的公钥私钥对作为一条新的企业用户表项添加到区块链企业用户列表中。

步骤203:企业用户a的客户端向区块链控制中心发送区块链企业用户注册请求,该请求中携带数据审核员的注册信息包括:企业用户a标识、数据审核员角色标志以及数据审核员的用户名、密码等。

步骤204:区块链控制中心接收该请求,为数据审核员生成公钥私钥对,将该公钥私钥对通过企业用户a的客户端发送给数据审核员,同时区块链控制中心根据企业用户a标识在区块链企业用户列表中查找到对应的企业用户表项,将数据审核员的注册信息和数据审核员的公钥私钥对添加到该表项中。

数据提交员和数据审核员的公钥私钥对可采用如下算法生成:

01:使用随机函数生成两个素数p、q,其中,p>100,q>100。

02:计算n=p*q。

03:计算l=lcm(p-1,q-1),其中,lcm是求最小公倍数运算符。

04:计算满足1<e<l且gcd(e,l)=1条件的e,其中,gcd为求最大公约数运算符。

05:计算满足1<d<l且e*dmodl=1条件的d,其中,mod为求余数运算符。

06:确定公钥=(e,n),私钥=(d,n)。

步骤205:当企业用户a要向区块链提交数据时,数据提交员在企业用户a的客户端上采用自己的公钥对原始数据d0进行第一次签名,得到数据du1,采用自己的用户名和密码登录区块链控制中心,将数据du1发送给区块链控制中心,区块链控制中心将数据du1保存到企业用户a的第一次签名完成的数据列表中。

步骤206:数据审核员通过企业用户a的客户端采用自己的用户名和密码登录区块链控制中心,从区块链控制中心获取数据du1,并从区块链控制中心获取数据提交员的公钥,采用数据提交员的公钥验证du1的第一次签名是否正确,若正确,数据审核员采用自己的公钥对du1进行第二次签名,得到数据du2,将du2发送给区块链控制中心。

若数据审核员判定du1的第一次签名不正确,则不执行后续流程。

步骤207:区块链控制中心根据企业用户a标识,在区块链企业用户列表中查找到数据审核员和数据提交员的公钥,采用数据审核员和数据提交员的公钥验证du2的第二次签名和第一次签名是否正确,若正确,按照预定义的区块链数据格式,对du2进行封装,并在封装头中添加企业数据标志,将封装好的数据提交到区块链节点,将数据的地址保存到对应的企业用户表项中。

若区块链控制中心判定du2的第二次或第一次签名不正确,则不执行后续流程。

图3为本发明实施例提供的区块链数据解密方法流程图,其具体步骤如下:

步骤301:企业用户b的客户端向区块链控制中心发送区块数据获取请求,该请求中携带区块数据的请求条件如:数据类型、数据内容等。

步骤302:区块链控制中心接收该获取请求,查询满足条件的区块数据,将查询到的区块数据的地址以及该区块数据的数据审核员和数据提交员的私钥发送给企业用户b的客户端。

步骤303:企业用户b的客户端根据区块数据的地址,获取到区块数据,对区块数据的封装头进行解析,判断封装头是否包含企业数据标志,若是,则确认区块数据有效。

步骤304:企业用户b的客户端使用数据审核员的私钥,对区块数据进行第一次解密,得到第一次签名后的数据。

步骤305:企业用户b客户端使用数据审核员的私钥,对第一次签名后的数据进行第二次解密,得到原始数据。

图4为本发明实施例提供的基于区块链的企业数据签名装置的结构示意图,该装置主要包括:注册处理模块41、数据处理及提交模块42和区块数据请求处理模块43,其中:

注册处理模块41,用于接收来自第一企业用户的数据提交员的区块链企业用户注册请求,为数据提交员分配公钥私钥对;接收来自第一企业用户的数据审核员的区块链企业用户注册请求,为数据审核员分配公钥私钥对。

数据处理及提交模块42,用于接收第一企业用户的数据提交员发来的第一次签名后的数据,将该第一次签名后的数据发送给第一企业用户的数据审核员,其中,该第一次签名后的数据为:数据提交员采用自己的公钥对原始数据进行签名后得到的;接收第一企业用户的数据审核员发来的第二次签名后的数据,将第二次签名后的数据提交到区块链节点,其中,该第二次签名后的数据为:数据审核员采用自己的公钥对第一次签名后的数据进行签名后得到的。

区块数据请求处理模块43,用于接收来自第二企业用户的区块数据获取请求,查询满足请求条件的区块数据,将查询到的区块数据的地址以及该区块数据的数据审核员和数据提交员的私钥发送给第二企业用户的客户端,以使得:第二企业用户使用数据审核员和数据提交员的私钥对区块数据进行解密,得到原始数据。

在实际应用中,数据处理及提交模块42接收第一企业用户的数据审核员发来的第二次签名后的数据之后进一步用于,采用数据审核员和数据提交员的公钥,验证第二次签名和第一次签名是否正确,若正确,则执行所述将第二次签名后的数据上传到区块链节点的动作。

在实际应用中,数据处理及提交模块42接收第一企业用户的数据审核员发来的第二次签名后的数据之后进一步用于,对第二次签名后的数据进行封装,并在封装头中添加企业数据标志。

在实际应用中,注册处理模块41为数据提交员分配公钥私钥对包括:

使用随机函数生成两个素数p1、q1,其中,p1>100,q1>100;

计算n1=p1*q1;

计算l1=lcm(p1-1,q1-1),其中,lcm是求最小公倍数运算符;

计算满足1<e1<l1且gcd(e1,l1)=1条件的e1,其中,gcd为求最大公约数运算符;

计算满足1<d1<l1且e1*d1modl1=1条件的d1,其中,mod为求余数运算符;

确定公钥=(e1,n1),私钥=(d1,n1);

注册处理模块41为数据审核员分配公钥私钥对包括:

使用随机函数生成两个素数p2、q2,其中,p2>100,q2>100;

计算n2=p2*q2;

计算l2=lcm(p2-1,q2-1),其中,lcm是求最小公倍数运算符;

计算满足1<e2<l2且gcd(e2,l2)=1条件的e2,其中,gcd为求最大公约数运算符;

计算满足1<d2<l2且e2*d2modl2=1条件的d2,其中,mod为求余数运算符;

确定公钥=(e2,n2),私钥=(d2,n2)。

本发明的有益技术效果如下:

本发明通过为企业用户设置数据提交员角色和数据审核员角色,并为该两个角色分配不同的秘钥对,从而对数据进行两次签名后再提交到区块链节点上,从而避免了唯一签名给企业带来的可能失去数据所有权的危险,保证了企业用户的区块数据的可靠性。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,而并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方案或变更,如特征的组合、分割或重复,均应包含在本发明的保护范围之内。

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