一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的电信运营商数据安全共享方法

2022-07-02 09:09:46 来源:中国专利 TAG:


1.本发明属于区块链技术领域,具体涉及一种基于区块链的电信运营商数据安全共享方法。


背景技术:

2.电信运营商在各个省都有相应的分公司和代理机构,各省之间的数据资源丰富多样,其所拥有的数据资源涵盖了大量个人和设备的行为数据,包括黑名单数据、恶意网站、用户标签库、用户信用数据、用户位置数据、用户网络体验数据等,这些数据既可以支撑电信运营商业务发展,又可以支撑疫情防控、征信风控、人流洞察、社会治理、商业营销等类型的对外数据应用。这些数据具有极高的价值,对其他企业来说可能会是非常宝贵的研究资料。
3.现阶段电信运营商这些高价值数据独立于各个省公司,运营商内部、运营商之间、运营商与其他机构的数据共享面临“三不”挑战。一是“不愿”,运营商各公司部门各自为政,把数据开放当成自己的权利,利益藩篱是根本原因。二是“不敢”,存在大数据使用情况不清、系统安全状况不明、用户隐私泄露等安全问题。三是“不能”,缺乏可信安全的共享平台,共享渠道不畅。这些数据客观上形成了数据孤岛,导致电信运营商的数据价值得不到充分发挥。而区块链具备的去中心化、公开性、自治性、防篡改等特性,区块链与密码学相结合,可以很好地与电信运营商大数据形成互补,满足复杂的电信运营商数据安全可信共享的需求,实现电信运营商大数据的价值流通。


技术实现要素:

4.为了解决上述技术问题,本发明提供了一种基于区块链的电信运营商数据安全共享方法,首先选取电信运营商组成联盟链,电信运营商节点对原始数据进行加密后存储在运营商私有的ipfs集群中,同时生成密文关键字信息和陷门搜索函数,通过哈希运算得到原始密文的哈希值、存储地址,连同陷门搜索函数上传至联盟区块链上。当数据请求方发出共享请求时,由系统选举的多重签名公证人通过陷门搜索测试验证请求数据,测试验证通过后,通过数据指纹获取原始密文数据;然后使用基于mapreduce的安全多方同态代理重加密计算方法对密文数据进行同态计算处理,将同态加密处理后的密文结果进行转换;最后数据请求方利用自己的私钥解密得到结果数据。同时将交互和访问信息记录存储在监管链上,用于监督、审计、确权。
5.为了达到上述技术目的,本发明是通过以下技术方案实现的:一种基于区块链的电信运营商数据安全共享方法,包括以下步骤:
6.s1:系统初始化阶段,选择系统安全参数k,生成公共参数gp;当用户pi申请注册时,系统验证用户身份后生成用户公私钥对(pki,ski);
7.选取移动、电信、联通、广电等数据拥有方组成电信运营商联盟链,各运营商分公司自愿选择申请加入;由防疫部门、银行、科研机构、安全监管部门等数据需求方组成数据
研究联盟链;从电信运营商联盟链和数据研究联盟链经投票选举出公证人委员会组成多重签名公证人;为便于描述,数据拥有方用do表示,数据请求方用dr表示,公证人用np表示;
8.s2:数据存储阶段,本阶段由数据拥有方do执行,原始电信数据加密后存储在电信运营商私有的ipfs集群,同时生成电信数据指纹等信息上传至电信运营商联盟链,具体描述为:
9.1)原始数据加密存储:数据拥有方do整理原始数据mi,同时从原始数据中提取关键词wi={w
i1
,w
i2
,

,w
it
},使用do的公钥pki对原始电信数据mi和wi进行paillier加密得到密文数据ci和将其进行签名后上传存储在电信运营商的私有ipfs集群上;同时对原始数据进行哈希运算,将生成的哈希值hash、密文存储地址addr返回给do;然后调用陷门算法trapdoor(ski,wi),将关键字wi生成一个用于搜索的陷门函数tq;
10.2)关键信息加密上链:数据拥有方将数据指纹信息dfi={hash,addr,sign}(包含哈希值hash、密文数据存储地址addr、运营商的签名sign)和陷门函数tq进行上传,采用dpos和pbft的混合共识机制通过全网节点共识验证后将其存储在电信联盟链中;
11.s3:数据共享阶段,来自于数据研究联盟链的数据请求方dr发出电信数据共享请求,do验证数据请求方的身份和权限,通过验证的请求,可以申请数据共享;do使用私钥ski和dr提供的公钥pkj生成代理重加密密钥rki→j,将代理重加密密钥、数据请求内容和一个时间戳tsi→j提供给多重签名公证人;
12.系统当前公证人首先根据用户请求内容生成关键字集从联盟区块链上获取数据指纹和陷门搜索函数tq;然后由数据拥有方do调用测试算法进行测试验证,如果测试验证通过,则根据数据指纹向运营商的私有ipfs集群申请获取原始密文数据;接着调用基于mapreduce的安全多方同态代理重加密算法,对原始密文数据进行并行paillier同态运算处理,得到计算密文结果ct,并使用代理重加密密钥rki→j将ct转换为数据请求方dr能解密的结果数据ctj,通过链下安全通道将ctj传输给dr;最后dr用自己的私钥skj解密得到最终结果数据;
13.s4:监管阶段,将数据共享的交互和访问信息上传至监管链,监督人员(例如安全监管人员、行政部门、审计人员等)可根据监管链上存储的数据访问信息对共享数据进行审计、监督和确权,并把处理结果签名后上传到监管链上;数据拥有方和请求方可以申请查看处理结果。
14.优选的,所述s1中,系统公共参数生成的方法为:
15.假设整个系统用户数为n,分别为p1,p2,...,pn;选择系统安全参数k,然后根据安全参数选择两个阶为素数p1和q1的乘法循环群和g
t
,g1∈g,双线性映射e:g
×g→gt
;接着选取一个哈希函数h:{0,1}
*

g,则系统的公共参数为:gp={g,g
t
,e,n,p1,q1,g1,h};
16.优选的,所述s1中,使用paillier算法生成用户公私钥的方法为:
17.每个用户pi随机选择两个大素数p、q,若两个大素数相同则重新选取,使其满足等式gcd(pq,(p-1)(q-1))=1;然后计算t=pq,λ=lcm(p-1,q-1),并随机选取计算u
=(l(g
λ
modt2))-1
modt,其中则公钥为pki=(t,g),私钥为ski=(λ,u);
18.优选的,所述s2中,系统采用dpos和pbft的混合共识机制实现方法为:
19.首先,通过股权授权证明dpos机制选举出状态良好的节点组成联盟委员会;衡量一个节点状态情况主要有四个指标:{上传数据量sum
up
,共享次数cnt
share
,生成区块次数cnt
gen
,信用奖励reward},设权值分别为w
up
、w
share
、w
gen
、w
rwd
,其中权值占比满足关系:w
share
>w
up
>w
gen
>w
rwd
,w
share
w
up
w
gen
w
rwd
=1,计算如下公式:
20.ns=w
rwd
·
reward w
up
·
sum
up
w
share
·
cnt
share
w
gen
·
cnt
gen

21.系统根据ns值进行投票,记录投票数votes,选举出n=101个状态良好的节点组成联盟委员会;投票结束后,需要更新信用奖励,其计算公式为:
[0022][0023]
其中i={0,1}表示投票者是否有权获得奖励,td与投票者投票的日期相关,投票者投票的日期与系统发起投票的日期相差越大,则td越小;
[0024]
然后,由联盟委员会节点形成快速认证通道,通过实用拜占庭容错算法pbft完成认证共识,当3/4的委员会节点同意时则认证通过,无需全网节点同意就可完成认证;联盟委员会节点是创建和维护区块链的主要主体,负责对上传数据进行验证、存储和更新区块链;
[0025]
最后,联盟委员会将每隔一个时间段选举出新的委员,用来防止恶意节点的欺骗和破坏。
[0026]
优选的,所述s3中,系统多重签名公证人实现的方法为:
[0027]
基于dpos算法从联盟区块链中选举出m个可信节点组成公证人委员会集合qm={np1,np2,

,npm},假设对应秘密值x,每个公证人npi使用自己的私钥ski进行签名,当签名数达到预设数量m时得出多重签名信息:
[0028][0029]
然后验证等式:
[0030]
e(σ,g1)=e(h(x),pk1,pk2,

,pkm),
[0031]
若等式成立则认为多重签名完成,方可进行代理工作和相关操作。
[0032]
优选的,所述paillier加密算法,该算法开销最大的在于模幂运算gmmodt2上;将利用蒙哥马利原理对paillier进行改造,在模幂运算中进行降阶来降低算法开销,称为改进的m
·
paillier算法,对gmmodt2降阶处理的过程为:(i)初始化:d=1;(ii)降阶:若m为偶数时,计算m=m/2,g=g
·
gmodt2,若m为奇数时,计算m=m-1,d=d
·
gmodt2;(iii)重复降阶步骤直到m=0,最后返回d。
[0033]
优选的,所述s3中,使用基于mapreduce的安全多方同态代理重加密计算方法,选择paillier加法同态加密算法,其实现过程为:
[0034]
1)生成密钥keygen(1
λ
):(pk,sk)
←m·
paillier.keygen(1
λ
);
[0035]
2)同态加密enc(pk,m):假设输入数据为m=(m1,m2,

,m
l
),选择随机数分别执行改进的m
·
paillier加密:
[0036][0037][0038]

[0039][0040]
3)数据分解parse(f,c):分解算法parse将输入数据为c=(c1,c2,

,c
l
)分解为一个key/value集合,即(ki,vi)

parse(ci),ki=i,vi=(f,pk,ci);
[0041]
4)map(k,v)过程:对输入的(ki,vi)进行map处理,输出一些中间结果的key/value,即:(λ,γ)

map(ki,vi);
[0042]
5)partition(λ,γ)过程:分区算法partition,按照key值λ将中间结果进行分类,即p={pi}

partition(λ,γ);
[0043]
6)reduce(λ,p)过程:对于λ=i,计算(λ,z)
←m·
paillier.eval(f,pk,λ,p);
[0044]
7)merge(λi,zi)过程:ct

merge(λi,zi)i;
[0045]
8)生成代理重加密密钥:数据拥有方利用自己的私钥ski和dr的公钥pkj生成代理重加密密钥rki→j,即rki→j←
re.keygen(ski,pkj);
[0046]
9)代理重加密:ctj←
re.enc(ct,rki→j);
[0047]
10)数据解密:result

dec(ctj,skj)。
[0048]
优选的,所述s3中,利用时间戳ts来限制代理重加密密钥的时限,当时间戳到期,代理重加密密钥失效,公证人不能继续进行当前代理任务;如果想继续请求共享,需要重新发起申请。
[0049]
本发明的有益效果是:
[0050]
采用联盟链架构,原始数据加密存储在运营商私有的ipfs集群,电信联盟链存储数据关键信息,使用链上链下相结合的方式缓解区块链的存储压力。监管链存储交互访问信息和监管审核信息,可实现数据的追溯、审计和确权。同时利用基于mapreduce的安全多方同态代理重加密算法提高同态计算效率,并使用代理重加密技术对同态计算结果密文进行转换,数据请求方不需要知道加密密钥,使用请求方自己的私钥即可解密得到结果,有助于解决电信运营商数据的隐私保护和安全共享问题。
附图说明
[0051]
图1是本发明的系统模型图;
[0052]
图2是本发明的数据安全共享流程图;
[0053]
图3是本发明的系统混合共识机制图;
[0054]
图4是本发明的并行同态计算示意图。
具体实施方式
[0055]
为了对本发明的技术方案及效果做出清楚完整的描述,通过以下实施例进行详细说明。
[0056]
实施例1
[0057]
一种基于区块链的电信运营商数据安全共享方法,其模型如图1所示;首先选取电
信运营商组成联盟链,电信运营商节点对原始数据进行加密后存储在运营商私有的ipfs集群中,同时生成密文关键字信息和陷门搜索函数,通过哈希运算得到原始密文的哈希值、存储地址,连同陷门搜索函数上传至联盟区块链上;当数据请求方发出共享请求时,由系统选举的多重签名公证人通过陷门搜索测试验证请求数据,测试验证通过后,通过数据指纹获取原始密文数据;然后使用基于mapreduce的安全多方同态代理重加密计算方法对密文数据进行同态计算处理,将同态加密处理后的密文结果进行转换,最后数据请求方利用自己的私钥解密得到结果数据;同时将交互和访问信息记录存储在监管链上,用于监管、审计、确权。所述方案的数据安全共享流程如图2所示,具体步骤为:
[0058]
s1:系统初始化阶段,假设整个系统用户数为n,分别为p1,p2,...,pn;选择系统安全参数k,然后根据安全参数选择两个阶为素数p1和q1的乘法循环群和g
t
,g1∈g,双线性映射e:g
×g→gt
;接着选取一个哈希函数h:{0,1}
*

g,则系统的公共参数为:gp={g,g
t
,e,n,p1,q1,g1,h};
[0059]
每个用户pi随机选择两个大素数p、q,若两个大素数相同则重新选取,使其满足等式gcd(pq,(p-1)(q-1))=1;然后计算t=pq,λ=lcm(p-1,q-1),并随机选取计算u=(l(g
λ
modt2))-1
modt,其中则公钥为pki=(t,g),私钥为ski=(λ,u);
[0060]
选取移动、电信、联通、广电等数据拥有方组成电信运营商联盟链,各运营商分公司自愿选择申请加入;由防疫部门、银行、科研机构、安全监管部门等数据需求方组成数据研究联盟链;从电信运营商联盟链和数据研究联盟链经投票选举出公证人委员会组成多重签名公证人;为便于描述,数据拥有方用do表示,数据请求方用dr表示,公证人用np表示。
[0061]
s2:数据存储阶段,本阶段由数据拥有方do执行,原始电信数据加密后存储在电信运营商私有的ipfs集群,同时生成电信数据指纹等信息上传至电信运营商联盟链,具体描述为:
[0062]
1)原始数据加密存储:数据拥有方do整理原始数据mi,同时从原始数据中提取关键词wi={w
i1
,w
i2
,

,w
it
},使用do的公钥pki对原始电信数据mi和wi进行paillier加密得到密文数据ci和将其进行签名后上传存储在电信运营商的私有ipfs集群上;同时对原始数据进行哈希运算,将生成的哈希值hash、密文存储地址addr返回给do;然后调用陷门算法trapdoor(ski,wi),将关键字wi生成一个用于搜索的陷门函数tq;
[0063]
2)关键信息加密上链:数据拥有方将数据指纹信息dfi={hash,addr,sign}(包含哈希值hash、密文数据存储地址addr、运营商的签名sign)和陷门函数tq进行上传,采用dpos和pbft的混合共识机制通过全网节点共识验证后将其存储在电信联盟链中。
[0064]
s3:数据共享阶段,来自于数据研究联盟链的数据请求方dr发出电信数据共享请求,do验证数据请求方的身份和权限,通过验证的请求,可以申请数据共享;do使用私钥ski和dr提供的公钥pkj生成代理重加密密钥rki→j,将代理重加密密钥、数据请求内容和一个时间戳tsi→j(用于限制代理重加密密钥的使用时限,超出时限将自动失效)提供给多重签名公证人;
[0065]
系统当前公证人首先根据用户请求内容生成关键字集从
联盟区块链上获取数据指纹和陷门搜索函数tq;然后由数据拥有方do调用测试算法进行测试验证,如果测试验证通过,则根据数据指纹向运营商的私有ipfs集群申请获取原始密文数据;接着调用基于mapreduce的安全多方同态代理重加密算法,对原始密文数据进行并行paillier同态运算处理,得到计算密文结果ct,并使用代理重加密密钥rki→j将ct转换为数据请求方dr能解密的结果数据ctj,通过链下安全通道将ctj传输给dr;最后dr用自己的私钥skj解密得到最终结果数据。
[0066]
s4:监管阶段,将数据共享的交互和访问信息上传至监管链,监督人员(例如安全监管人员、行政部门、审计人员等)可根据监管链上存储的数据访问信息对共享数据进行审计、监督和确权,并把处理结果签名后上传到监管链上;数据拥有方和请求方可以申请查看处理结果;
[0067]
在实施例中采用dpos和pbft的混合共识机制过程如图3所示,其方法为:
[0068]
首先,通过股权授权证明dpos机制选举出状态良好的节点组成联盟委员会;衡量一个节点状态情况主要有四个指标:{上传数据量sum
up
,共享次数cnt
share
,生成区块次数cnt
gen
,信用奖励reward},设权值分别为w
up
、w
share
、w
gen
、w
rwd
,其中权值占比满足关系:w
share
>w
up
>w
gen
>w
rwd
,w
share
w
up
w
gen
w
rwd
=1,计算:ns=w
rwd
·
reward w
up
·
sum
up
w
share
·
cnt
share
w
gen
·
cnt
gen

[0069]
系统根据ns值进行投票,记录投票数votes,选举出n=101个状态良好的节点组成联盟委员会。投票结束后,需要更新信用奖励,其计算公式为:
[0070][0071]
其中i={0,1}表示投票者是否有权获得奖励,td与投票者投票的日期相关,投票者投票的日期与系统发起投票的日期相差越大,则td越小;
[0072]
然后,由联盟委员会节点形成快速认证通道,通过实用拜占庭容错算法pbft完成认证共识,当3/4的委员会节点同意时则认证通过,无需全网节点同意就可完成认证;联盟委员会节点是创建和维护区块链的主要主体,通过密码学和共识算法对上传数据进行验证、存储和更新区块链;
[0073]
最后,联盟委员会将每隔一个时间段选举出新的委员,用来防止恶意节点的欺骗和破坏。
[0074]
在实施例中,系统多重签名公证人实现的方法为:
[0075]
基于dpos算法从联盟区块链中选举出m个可信节点组成公证人委员会集合qm={np1,np2,

,npm},假设对应秘密值x,每个公证人npi使用自己的私钥ski进行签名,当签名数达到预设数量m时得出多重签名信息:
[0076][0077]
然后验证等式:
[0078]
e(σ,g1)=e(h(x),pk1,pk2,

,pkm),
[0079]
若等式成立则认为多重签名完成,方可进行代理工作和相关操作。
[0080]
在实施例中,所述方案使用paillier加密算法,该算法开销最大的在于模幂运算gmmodt2上。将利用蒙哥马利原理对paillier进行改造,在模幂运算中进行降阶来降低算法
开销,称为改进的m
·
paillier算法,对gmmodt2降阶处理的过程为:(i)初始化:d=1;(ii)降阶:若m为偶数时,计算m=m/2,g=g
·
gmodt2,若m为奇数时,计算m=m-1,d=d
·
gmodt2;(iii)重复降阶步骤直到m=0,最后返回d。
[0081]
在实施例中,使用基于mapreduce的安全多方同态代理重加密计算方法,如图4所示,选择改进的m
·
paillier加法同态加密算法,其实现过程为:
[0082]
1)生成密钥keygen(1
λ
):(pk,sk)

paillier.keygen(1
λ
);
[0083]
2)同态加密enc(pk,m):假设输入数据为m=(m1,m2,

,m
l
),选择随机数分别执行paillier加密:
[0084][0085][0086]

[0087][0088]
3)数据分解parse(f,c):分解算法parse将输入数据为c=(c1,c2,

,c
l
)分解为一个key/value集合,即(ki,vi)

parse(ci),ki=i,vi=(f,pk,ci);
[0089]
4)map(k,v)过程:对输入的(ki,vi)进行map处理,输出一些中间结果的key/value,即:(λ,γ)

map(ki,vi);
[0090]
5)partition(λ,γ)过程:分区算法partition,按照key值λ将中间结果进行分类,即p={pi}

partition(λ,γ);
[0091]
6)reduce(λ,p)过程:对于λ=i,计算(λ,z)

paillier.eval(f,pk,λ,p);
[0092]
7)merge(λi,zi)过程:ct

merge(λi,zi)i;
[0093]
8)生成代理重加密密钥:数据拥有方利用自己的私钥ski和dr的公钥pkj生成代理重加密密钥rki→j,即rki→j←
re.keygen(ski,pkj);
[0094]
9)代理重加密:ctj←
re.enc(ct,rki→j);
[0095]
10)数据解密:result

dec(ctj,skj)。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献