G06F21/60 G06F21/62 H04L9/00 H04L9/30
1.一种基于联盟链的防止数据泄露方法,其特征在于,包括:
采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员;
接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方;
利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方;
获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果;
对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
2.根据权利要求1所述的基于联盟链的防止数据泄露方法,其特征在于,所述采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员,包括:
发送资格验证指令至待采集终端,获取所述待采集终端对所述资格验证指令的反馈结果;
如果反馈结果为验证通过,则向所述待采集终端发送采集指令,所述采集指令用于向所述待采集终端请求并获取所述联盟成员的身份信息;
接收所述待采集终端反馈的所述联盟成员的身份信息;
将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员。
3.根据权利要求1所述的基于联盟链的防止数据泄露方法,其特征在于,所述接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,包括:
接收所述申请人请求业务合作的合作申请,提取所述合作申请中所述申请人的身份信息;
提取所述申请人的身份信息中的关键词;
根据所述关键词在存储有联盟链成员的身份信息的身份信息库中进行检索匹配,根据检索匹配的结果验证所述申请人是否为联盟链成员;
若所述申请人是联盟成员,则根据所述合作申请生成密钥,并将所述密钥发送给所述业务接受方和所述业务提供方。
4.根据权利要求1所述的基于联盟链的防止数据泄露方法,其特征在于,所述利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方,包括:
获取所述业务提供方发送的所述规则数据和要求加密所述规则数据的指令;
根据预设的哈达玛矩阵对所述密钥进行扩展;
将所述规则数据进行字节置换,并将字节置换后的所述规则数据进行行变换;
将行变换后的所述规则数据进行列混淆,并根据扩展的所述密钥对列混淆后的所述规则数据进行加密后生成规则数据密文;
将所述规则数据密文发送给所述业务接受方。
5.根据权利要求4所述的基于联盟链的防止数据泄露方法,其特征在于,所述根据预设的哈达玛矩阵对所述密钥进行扩展,包括:
将所述密钥进行字节置换;
求取字节置换后的所述密钥与预设的所述哈达玛矩阵的乘积,并将乘积结果与轮常数做异或运算,得到扩展的密钥。
6.根据权利要求4所述的基于联盟链的防止数据泄露方法,其特征在于,所述预设的哈达玛矩阵的生成过程,包括:
在有限域GF(2m)中任取四个非零的互异元素a0、a1、a2、a3,并判断所述a0、a1、a2、a3是否满足且a1a2≠a0a3、a0a1≠a2a3、a0a2≠a1a3的条件;
如果否,则重新在所述有限域GF(2m)中任取四个非零的互异元素,直至任取的四个非零的互异元素满足所述条件,将A=Had(a0,a1,a2,a3)确定为有限域GF(2m)上的四阶哈达玛矩阵,其中,m为自然数。
7.根据权利要求1所述的基于联盟链的防止数据泄露方法,其特征在于,所述接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,还包括对身份验证不通过的申请人的处理,具体包括:
若所述申请人不是联盟链成员,则向所述申请人发出是否加入联盟链成员的提示。
8.一种基于联盟链的防止数据泄露装置,其特征在于,包括如下模块:
联盟链搭建模块,设置为采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员;
密钥生成模块,设置为接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方;
加密模块,设置为利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方;
结果运算模块,设置为获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果;
结果解密模块,设置为对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行如权利要求1至7中任一项所述的基于联盟链的防止数据泄露方法的步骤。
10.一种存储介质,其特征在于,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行如权利要求1至7中任一项所述的基于联盟链的防止数据泄露方法的步骤。
本申请涉及区块链技术领域,尤其涉及一种基于联盟链的防止数据泄露方法、装置、设备和存储介质。
联盟链又称联盟区块链,是一种区块链技术,它是区块链技术发展至今的三种形态之一,其余两种是公有链和私有链。联盟链本质上依然是一种私有链,由于联盟链比其他单个小组织开发的私有链更大,却没有公有链的规模,因此其独立与私有链和公有链,成为了区块链的第三种形态。联盟链只针对特定某个体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的API进行限定查询。
目前,业务提供方和业务接受方在进行业务合作时,应业务合作的要求,必须要验证一些重要信息才能进行。比如贷款业务,首先需要验证借贷人的财务信息、身份信息和信用信息等是否合乎规定才能完成业务。这样就很难保证双方不泄露对方的敏感信息,近年来敏感信息泄露事件频发,导致被泄露信息的人遭受恶意推销和骚扰电话,甚至更大的经济损失。
有鉴于此,有必要针对现有技术中在业务合作时泄露双方敏感信息的问题,提供一种基于联盟链的防止数据泄露方法、装置、设备和存储介质。
一种基于联盟链的防止数据泄露方法,包括如下步骤:
采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员;
接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方;
利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方;
获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果;
对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
在一些可能的实施例中,所述采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员,包括:
发送资格验证指令至待采集终端,获取所述待采集终端对所述资格验证指令的反馈结果;
如果反馈结果为验证通过,则向所述待采集终端发送采集指令,所述采集指令用于向所述待采集终端请求并获取所述联盟成员的身份信息;
接收所述待采集终端反馈的所述联盟成员的身份信息;
将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员。
在一些可能的实施例中,所述接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,包括:
接收所述申请人请求业务合作的合作申请,提取所述合作申请中所述申请人的身份信息;
提取所述申请人的身份信息中的关键词;
根据所述关键词在存储有联盟链成员的身份信息的身份信息库中进行检索匹配,根据检索匹配的结果验证所述申请人是否为联盟链成员;
若所述申请人是联盟成员,则根据所述合作申请生成密钥,并将所述密钥发送给所述业务接受方和所述业务提供方。
在一些可能的实施例中,所述利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方,包括:
获取所述业务提供方发送的所述规则数据和要求加密所述规则数据的指令;
根据预设的哈达玛矩阵对所述密钥进行扩展;
将所述规则数据进行字节置换,并将字节置换后的所述规则数据进行行变换;
将行变换后的所述规则数据进行列混淆,并根据扩展的所述密钥对列混淆后的所述规则数据进行加密后生成规则数据密文;
将所述规则数据密文发送给所述业务接受方。
在一些可能的实施例中,所述根据预设的哈达玛矩阵对所述密钥进行扩展,包括:
将所述密钥进行字节置换;
求取字节置换后的所述密钥与预设的所述哈达玛矩阵的乘积,并将乘积结果与轮常数做异或运算,得到扩展的密钥。
在一些可能的实施例中,所述预设的哈达玛矩阵的生成过程,包括:
在有限域GF(2m)中任取四个非零的互异元素a0、a1、a2、a3,并判断所述a0、a1、a2、a3是否满足a0⊕a1⊕a2⊕a3≠0,且a1a2≠a0a3、a0a1≠a2a3、a0a2≠a1a3的条件;
如果否,则重新在所述有限域GF(2m)中任取四个非零的互异元素,直至任取的四个非零的互异元素满足所述条件,将A=Had(a0,a1,a2,a3)确定为有限域GF(2m)上的四阶哈达玛矩阵,其中,m为自然数。
在一些可能的实施例中,所述接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,还包括对身份验证不通过的申请人的处理,具体包括:
若所述申请人不是联盟链成员,则向所述申请人发出是否加入联盟链成员的提示。
一种基于联盟链的防止数据泄露装置,包括如下模块:
联盟链搭建模块,设置为采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员;
密钥生成模块,设置为接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方;
加密模块,设置为利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方;
结果运算模块,设置为获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果;
结果解密模块,设置为对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
基于相同的构思,本申请提出一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述基于联盟链的防止数据泄露方法的步骤。
基于相同的构思,本申请提出一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行上述基于联盟链的防止数据泄露方法的步骤。
与现有技术相比,本申请通过搭建一个可信的联盟链来存储记录个人加密后的数据信息,对业务合作双方的密文数据进行同态运算,并提供解密后的验证结果发送给业务合作的双方,在不泄露双方信息的基础上达到业务验证的功能,保护了业务合作双方的信息不被泄露,且提高了业务合作的效率;对解密过程和解密的结果进行上链,能够防止业务合作被多次使用,且能保证加密的数据永远不会被第二次使用,记录不被篡改。
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。
图1为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法的整体流程图;
图2为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法中的联盟链搭建过程的示意图;
图3为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法中的数据加密过程的示意图;
图4为本申请在一个实施例中的一种基于联盟链的防止数据泄露装置的结构图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法的整体流程图,如图所示,一种基于联盟链的防止数据泄露方法,包括以下步骤:
步骤S1,采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员。
上述步骤执行时,采集联盟成员的身份信息可以通过发送资格验证指令至待采集终端,其中,发送资格验证指令是验证该待采集终端是否是要采集身份信息的终端;获取所述待采集终端对所述资格验证指令的反馈结果,如果反馈结果为验证通过,则该待采集终端为正确的采集身份信息的终端,此时,向该待采集终端发送采集指令,所述采集指令用于向所述待采集终端请求并获取所述联盟成员的身份信息;接收所述待采集终端反馈的所述联盟成员的身份信息;将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员。
其中,所有联盟链成员组成一个第三方平台,且联盟链成员采用pos共识,共同维护这个第三方平台,其他人可以通过申请加入联盟链成员,到必须得到大部分成员的同意。
步骤S2,接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方。
上述步骤执行时,对所述申请人进行身份验证的方法包括:提取所述合作申请中申请人的身份信息,再提取申请人的身份信息的关键词,根据所述关键词在存储有联盟链成员的身份信息的身份信息库中进行检索匹配,根据检索匹配的结果验证所述申请人是否为联盟链成员。
其中,所述密钥包括公钥和私钥,公钥用来加密,私钥用来解密,公钥发送给业务提供方和业务接受方,私钥由第三方平台保留。
步骤S3,利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方。
上述步骤执行时,先获取所述业务提供方发送的所述规则数据和要求加密所述规则数据的指令;根据预设的哈达玛矩阵对所述密钥进行扩展;将所述规则数据进行字节置换,并将字节置换后的所述规则数据进行行变换;将行变换后的所述规则数据进行列混淆,并根据扩展的所述密钥对列混淆后的所述规则数据进行加密后生成规则数据密文;最后,将所述规则数据密文发送给所述业务接受方。
在一种较佳的实施例中,还可以采用椭圆曲线算法对所述规则数据进行加密。
其中,所述业务合作的规则数据是指业务提供方提供的关于本次业务合作的具体要求和注意事项,比如在贷款业务合作中,规则数据包括贷款条件和本次贷款应填写的信息,如:贷款金额,还贷能力(以金额范围限定)等。
步骤S4,获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果。
其中,获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得。比如,在贷款业务中,业务接受方提供的基础数据则为根据业务提供方提供的贷款条件而填写的相应的真实信息。业务接受方使用公钥对自己填写的基础数据进行加密然后生成基础数密文发给第三方平台。
上述步骤执行时,对所述规则数据密文和所述基础数据密文进行同态运算,运算公式为:F(A+B)=F(A)+F(B);其中,F()是加密函数,A是规则数据,B是基础数据,F(A)、F(B)分别是规则数据密文和基础数据密文,F(A+B)是对F(A)和F(B)进行运算后的一个加密结果,即业务接受方是否满足业务提供方提供的业务要求的加密结果,整个过程看不到规则数据和基础数据的明文数据。
步骤S5,对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
上述步骤执行时,在得到业务接受方是否满足业务提供方提供的业务要求的加密结果后,使用私钥对该加密结果进行解密,解密的结果只有0和1两种结果,其中,0表示不满足业务需求,1表示满足业务需求。
本实施例,在不泄露双方信息的基础上达到业务验证的功能,保护了业务合作双方的信息不被泄露,对解密过程和解密的结果进行上链,能够防止业务合作被多次使用,且能保证加密的数据永远不会被第二次使用,记录不被篡改。
在一个实施例中,图2为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法中的联盟链搭建过程的示意图,如图2所示,所述S1,采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员,包括以下步骤:
步骤S101,发送资格验证指令至待采集终端,获取所述待采集终端对所述资格验证指令的反馈结果;
其中,所述资格验证指令包括待采集终端的IP地址、联盟成员的姓名、身份信息等。在获取所述反馈结果时需要对反馈结果的完整性进行核验,若反馈结果中缺少某项信息,比如缺少联盟成员的姓名,则重新发送资格验证指令至待采集终端。
步骤S102,如果反馈结果为验证通过,则向所述待采集终端发送采集指令,所述采集指令用于向所述待采集终端请求并获取所述联盟成员的身份信息;
上述步骤执行时,可以抽取所述反馈结果中的验证特征字段,根据所述验证特征字段确定验证通过的待采集终端。对验证通过的待采集终端,向其发送采集联盟成员的身份信息指令。
步骤S103,接收所述待采集终端反馈的所述联盟成员的身份信息;
步骤S104,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员。
上述步骤执行时,从待采集终端反馈中获得所述联盟成员的身份信息后,将所有联盟成员的身份信息存储至身份信息库,便于对所有成员的身份信息进行上链,也便于后续申请合作时对申请人进行身份验证。
本实施例,通过采集联盟成员的身份信息并存储至身份信息库,提高了后续对申请人身份验证的效率。
在一个实施例中,所述S2,接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,包括以下步骤:
接收所述申请人请求业务合作的合作申请,提取所述合作申请中所述申请人的身份信息;
其中,所述合作申请由业务接受方或业务提供方申请提交,提交过程包括:通过进入系统设置的申请业务合作链接,在链接所指向的页面填写与合作申请相关的业务信息后生成合作申请后提交至第三方平台。请求业务合作的申请人必须是联盟链成员,申请人为业务提供方或业务接受方。
提取所述申请人的身份信息中的关键词;
其中,提取所述申请人的身份信息中的关键词,可以通过提取申请人姓名的首字母组成的名称缩写。
根据所述关键词在存储有联盟链成员的身份信息的身份信息库中进行检索匹配,根据检索匹配的结果验证所述申请人是否为联盟链成员;
上述步骤执行时,在存储有联盟链成员的身份信息的身份信息库中输入所述关键词,若输出为空,则说明所述申请人不是联盟链成员;若输出为多个成员信息,则可以使用第二关键词进行继续搜索。
若所述申请人是联盟成员,则根据所述合作申请生成密钥,并将所述密钥发送给所述业务接受方和所述业务提供方。
上述步骤执行时,若验证到所述申请人不是联盟链成员,可以向所述申请人发出是否加入联盟链成员的提示。
本实施例,对申请人的身份进行验证,保护了数据的安全性,使用关键词进行检索匹配,提高了身份验证的效率。
在一个实施例中,图3为本申请在一个实施例中的一种基于联盟链的防止数据泄露方法中的数据加密过程的示意图,如图3所示,所述S3,利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方,包括以下步骤:
步骤S301,获取所述业务提供方发送的所述规则数据和要求加密所述规则数据的指令;
步骤S302,根据预设的哈达玛矩阵对所述密钥进行扩展;
上述步骤执行时,假设密钥K为128位,则密钥扩展过程如下操作:首先进行循环移位,即将128位的密钥K分为四个32位,将每个32位做一次循环左移;再进行字节置换,即将循环移位后的数据与S_box(S盒,是对称密钥算法执行置换计算的基本结构)中的值做置换;最后,做轮常数变换,将置换后的值与轮常数做异或;
其中,循环移位的具体实现方式是将temp(密钥扩展时的临时存储区)中的4个字节做一次循环左移,如:1d2c3a4f->2c3a4f1d。
步骤S303,将所述规则数据进行字节置换,并将字节置换后的所述规则数据进行行变换;
其中,比如,规则数据为贷款金额,可以设定贷款金额为10、20、30、40,进行的字节置换为倒序排列,则进行字节置换后的数据为01、02、03和04,然后将这4个数值建立以2*2矩阵进行行行变换后的矩阵为
步骤S304,将行变换后的所述规则数据进行列混淆,并根据扩展的所述密钥对列混淆后的所述规则数据进行加密后生成规则数据密文;
具体的,比如上述行行转换后的矩阵进行行列混淆后得到的矩阵为
步骤S305,将所述规则数据密文发送给所述业务接受方。
本实施例,根据预设的哈达码矩阵对规则数据进行加密,提高了加密的效率,且保护了业务提供方的数据不被泄露。
在一个实施例中,所述根据预设的哈达玛矩阵对所述密钥进行扩展,包括:
将所述密钥进行字节置换;
求取字节置换后的所述密钥与预设的所述哈达玛矩阵的乘积,并将乘积结果与轮常数做异或运算,得到扩展的密钥。
上述步骤执行时,如在AES加密算法中,轮常数为Rcon[],就是指在进行第几轮加密时所使用的常数,其数值通常为轮数。
本实施例,不仅能够保证数据加密的平衡性,还可优化分支数,从而提高数据加密的安全性。
在一个实施例中,所述预设的哈达玛矩阵的生成过程,包括:
在有限域GF(2m)中任取四个非零的互异元素a0、a1、a2、a3,并判断所述a0、a1、a2、a3是否满足a0⊕a1⊕a2⊕a3≠0,且a1a2≠a0a3、a0a1≠a2a3、a0a2≠a1a3的条件;
其中,有限域通俗的讲就是函数的运算结果全都包含在一个域中,不同于实数域,有限域有一个最大值,所有超过这个最大值的数都会经过一定的方法使他回到这个域中,在密码学中应用很广泛,比如有限域为GF(28),28意味着这个域的最大值为256。
如果否,则重新在所述有限域GF(2m)中任取四个非零的互异元素,直至任取的四个非零的互异元素满足所述条件,将A=Had(a0,a1,a2,a3)确定为有限域GF(2m)上的四阶哈达玛矩阵,其中,m为自然数。
上述步骤执行时,比如四个非零互异元素为1,2,3,4,则满足上述条件,而2,3,4,6,则不满足上述条件。则四个元素为1,2,3,4时,四阶哈达码矩阵为
在一个实施例中,所述接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方,还包括对身份验证不通过的申请人的处理,具体包括:
若所述申请人不是联盟链成员,则向所述申请人发出是否加入联盟链成员的提示。
一种基于联盟链的防止数据泄露装置,如图4所示,包括如下模块:
联盟链搭建模块,设置为采集联盟成员的身份信息,将所述联盟成员的身份信息存储至联盟成员的身份信息库,并将联盟成员的身份信息上链,组成联盟链成员;
密钥生成模块,设置为接收申请人请求业务合作的合作申请,对所述申请人进行身份验证,身份验证为联盟链成员的,则根据所述合作申请生成密钥,并将所述密钥发送给所述合作申请的业务接受方和业务提供方;
加密模块,设置为利用所述密钥对所述业务提供方提供的业务合作的规则数据进行加密后生成规则数据密文,将所述规则数据密文发送给所述业务接受方;
结果运算模块,设置为获取所述业务接受方提供的基础数据密文,所述基础数据密文为所述业务接受方根据所述规则数据填写的对应数据并进行加密后所得,对所述规则数据密文和所述基础数据密文进行同态运算,输出同态运算的结果;
结果解密模块,设置为对所述同态运算的结果进行解密,将所述解密的结果发送给所述业务接受方和业务提供方,并对解密过程和所述解密的结果进行上链。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行计算机可读指令时实现上述各实施例中所述的基于联盟链的防止数据泄露方法的步骤。
在一个实施例中,提出了一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述的基于联盟链的防止数据泄露方法的步骤。其中,所述存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
本文发布于:2024-09-25 02:27:45,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/4/85932.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |