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

基于区块链的双重可验证云存储方法与流程

2022-02-19 23:04:21 来源:中国专利 TAG:


1.本发明涉及区块链数据隐私保护安全技术领域。


背景技术:

2.区块链技术是分布式的网络数据管理技术,利用密码学技术和分布式共识协议保证网络传输与访问安全,实现数据交叉验证、全网一致、不易篡改。随着区块链技术的发展,其可以提供完美的透明度和分布式可验证性,以及利用密码学技术和共识协议来保证网络安全传输,为可验证计算增加了更多的应用场景和功能性,创建了更安全可信的数据共享平台。同时,区块链与可验证计算共同进行数据隐私保护,有利于数据分布式储存,以及对云端数据的完整性进行检验,有效控制数据破坏行为所造成的数据安全问题,也有利于监管部门对外包计算等场景进行有效监管,追踪恶意输入。
3.云存储为数据的存储和分析提供了高质量的按需服务,但在网络访问和数据上传过程中,带来的隐私泄露问题也日趋严重。云服务器或敌手恶意获取和篡改用户的数据,导致敏感信息泄露,且对恶意用户无法追踪,从而导致恶性循环。如智能家居制造商wyze labs证实,从2019年12月4日到12月26日,三个多星期的时间内就发生了大约240万客户详细信息数据被云服务器泄漏事件。由此可见,云存储数据的机密性、完整性对工业物联网健康发展的重要性。因此,针对数据处理的可信性和安全性问题,以保障用户查询真实数据,研究一种基于区块链的可验证云存储方案具有重要意义。
4.同态哈希函数:当我们需要验证一个文件是否被篡改的时候,一般会去验证文件的哈希函数是否被篡改。可以单独计算单个文件块的哈希值,然后通过组合所有单个文件块的哈希值算出整个文件的哈希值。也就是说一个文件的哈希值既可以通过对整个文件哈希值得到,也可以对部分文件哈希,然后把部分文件的哈希值组合起来得到。
5.同态加密技术:同态加密可以在密文上进行特定数学运算并且解密结果等于对应明文进行运算后的结果。在数据聚合、隐私保护等方面有着重要的应用。分为对称加密和非对称加密。对称加密是指加密和解密用的同一个密钥,采用这种方式显著降低了计算开销;而非对称加密用公钥加密,私钥解密。非对称加密体制中,加解密操作实现复杂度较大,效率较低,对于资源的占用也较多。本方案使用对称隐私同态加密技术对原始数据进行加密,加密速度快,容易实现。


技术实现要素:

6.本发明的目的是提供一种基于区块链的双重可验证云存储方法。
7.本发明是基于区块链的双重可验证云存储方法,包括数据加解密聚合算法、总体验证算法、单个验证算法,其步骤为:首先是数据拥有者使用同态加密技术对数据加密和签名后,多用户将密文和签名上传至云服务器;其次,云服务器将密文聚合结果上传到区块头,数据拥有者分别将上传各个密文
对应的信息摘要记录到区块1至区块n上;然后,数据使用者向云服务器请求数据结果,云服务器返回计算结果;再其次,数据使用者向挖矿者节点发送验证总数据任务,挖矿者节点接收验证任务后,先在区块链头进行总体结果验证,并返回总数据验证结果;再然后,如果验证数据正确,云服务器就可以得到服务费,完成交易;如果验证数据不完整,则把错误结果返回给云服务器并终止交易;云服务接收到错误结果反馈后则再次向挖矿者节点发送验证单个数据信息任务;最后,挖矿者节点收到验证任务后,分别访问区块1至区块n,将单个验证结果返回给云服务器;追溯到的恶意用户将会受到损失保证金的惩罚,并且用户可拒绝支付。
8.与现有方法相比,本发明的有益之处是:(1)通过区块链技术可实现数据的一致存储和难以篡改,增加了上链数据造假的难度和成本,从而可以消除大部分使用者对数据信用的顾虑。(2)将采用同态加密技术对数据加密,解决了隐私泄露和传输不安全等方面的问题,保证计算过程的可靠性和可信度。(3)应用具有同态性质的哈希函数,云服务器可以聚合多用户的签名,并对聚合数据进行总体验证,解决了通信负担大、计算效率低等方面的问题。需要追溯上传虚假数据的恶意用户时,再进行单独验证。解决了在分布式计算和云存储时,对恶意用户的追溯问题,有效避免了恶性循环。
附图说明
9.图1为基于区块链且支持双重验证的云存储方案模型。
具体实施方式
10.如图1所示,本发明是基于区块链的双重可验证云存储方法,引入同态加密和同态哈希函数,以实现数据的隐私保护和可追溯恶意用户;包括数据加解密聚合算法、总体验证算法、单个验证算法,其步骤为:首先是数据拥有者使用同态加密技术对数据加密和签名后,多用户将密文和签名上传至云服务器;其次,云服务器将密文聚合结果上传到区块头,数据拥有者分别将上传各个密文对应的信息摘要记录到区块1至区块n上;然后,数据使用者向云服务器请求数据结果,云服务器返回计算结果;再其次,数据使用者向挖矿者节点发送验证总数据任务,挖矿者节点接收验证任务后,先在区块链头进行总体结果验证,并返回总数据验证结果;再然后,如果验证数据正确,云服务器就可以得到服务费,完成交易;如果验证数据不完整,则把错误结果返回给云服务器并终止交易;云服务接收到错误结果反馈后则再次向挖矿者节点发送验证单个数据信息任务;最后,挖矿者节点收到验证任务后,分别访问区块1至区块n,将单个验证结果返回给云服务器;追溯到的恶意用户将会受到损失保证金的惩罚,并且用户可拒绝支付。
11.以上所述的基于区块链的双重可验证云存储方法,包括数据加解密聚合算法、总
体验证算法、单个验证算法,具体为:(1)数据加解密聚合算法步骤为:步骤(1

1)数据准备阶段流程为:分步骤(1
‑1‑
1)密钥分配;在密钥分配阶段,系统为每个数据使用者广播由基于密钥长度可变的流加密算法簇(rsa data security,rc4)算法产生的密钥;分步骤(1
‑1‑
2)计数器;为了使云服务平台能检验出数据拥有者上传的是否是最新数据,每个数据拥有者产生一个计数,并对其进行初始化,通过此方法来保证数据的实时性和抵御重放攻击能力;分步骤(1
‑1‑
3)数据加密;数据拥有者l将原始数据m
l
进行加密后,再上传至云服务器,这保证了数据的隐私性,其加密算法为c
l
=enc(m
l
)=m
l
rt*k
l

12.步骤(1

2)云服务平台聚合密文阶段流程为:分步骤(1
‑2‑
1)密文聚合处理;云服务器将v个数据拥有者上传的密文通过加密算法进行聚合;由于采用的是加法同态加密,所以不需要对密文进行解密,可以直接对上传数据进行相关运算;这既降低了计算开销,也增加了方案的安全性,减少了隐私泄露的风险;其聚合函数为cagg=c1 c2

c
v
=enc(m1) enc(m2)

enc(m
v
);分步骤(1
‑2‑
2)数据解密;云服务器收到数据拥有者上传的密文后,对其进行解密处理,其解密函数为dec(cagg)=cagg-rt*k=m1 m2

m
v

13.(2)总体验证算法步骤为:在可验证计算方案中,单独验证每个用户的密文会导致过多的通信量,所以需要云服务器将每个签名聚合,先进行总体验证工作;步骤(2

1)系统建立阶段(setup)阶段流程为:设系统中一共有v个数据拥有者,每个数据拥有者将自己数据加密后存储在云服务平台上,聚合数据f={m1,m2,

,m
v
};其中每个数据拥有者l的数据又分为n个数据块,即f
l
={m
l,1
,m
l,2
,

,m
l,n
};分步骤(2
‑1‑
1)密钥生成keygen(1
k
);以安全参数k作为输入,数据拥有者l随机选择两个素数p=2p

1和q=2q

1,满足p和q也是大素数保证p,q长度相等,计算n
l
=p
×
q和随机选择整数满足并计算整数d
l
满足安全地销毁p、q、选择安全的同态哈希函数则用户的公钥pk
l
=(n
l
,e
l
),私钥sk
l
=(d
l
);分步骤(2
‑1‑
2)signgen(f
l
,sk
l
);数据拥有者选择数据f
l
的标识符对每个i∈{1,2,

,n},用户计算签名用σ
l
表示签名的集合φ
l
={σ
l,1

l,2
,


l,i
};。
14.为了保证name
l
的完整性,用户计算t
l
=name
l
||sign
skl
(name
l
)作为文件f
l
的标签,sign
skl
(name
l
)是在私钥sk
l
下的签名,用户将f
l
和(φ
l
,t
l
)发送给云服务器;
15.步骤(2

2)挑战阶段(challenge)阶段流程为:挖矿者节点检索文件标签t
l
,并使用pk
l
验证签名t
l
,如果验证失败,则终止交易;如果验证成功,则恢复其name
l

假设挖矿者节点需要验证v个数据拥有者上传数据的完整性,其随机生成一个含有c个元素的子集i={s
j
}
1≤j≤c
且s1≤s2≤

≤s
c
,对每个i∈i,云服务平台随机选择生成挑战消息chal={i,v
i
}
i∈i
,并将其发送给云服务器和区块链。
16.步骤(2

3)证据生成阶段(proofgen)阶段流程为:proofgen({m
l,i
}
i∈i

l
,chal,pk
l
),云服务平台收到挑战chal={i,v
i
}
i∈i
后,云服务平台选择数据{m
l,i
}
i∈i
,然后发送v
i
m
l,i
给云服务器;云服务器随机选择即为了盲化μ

l
,令μ
l
=μ

l
r
l
,令其次,云服务器计算聚合签名然后给挖矿者节点和区块链发送存储完整性的证据{μ,{σ
l
}
1≤l≤v
,y}。
17.步骤(2

4)数据验证阶段(verification)阶段流程为:proofveriy(proof,pk
l
),挖矿者节点收到云服务器发送过来的proof={μ,{σ
l
}
1≤l≤v
,y},并验证下式如果该等式成立,挖矿者节点返回true;否则,返回false,并进行单独验证,追溯恶意用户。
18.(3)单个验证算法步骤为:步骤(3

1)系统建立阶段(setup)流程为:设数据拥有者l的数据有n个数据块,为f

={m
l,1
,m
l,2
,

,m
l,n
};系统首先执行以下算法生成密钥对和系统参数;分步骤(3
‑1‑
1)keygen(1
k
),输入安全参数k,生成公钥pk=(n,e),私钥sk=d;分步骤(3
‑1‑
2)signgen(f',sk),数据拥有者随机选择数据f

={m
l,1
,m
l,2
,

,m
l,n
}的标识符对每个数据块m
l,n
,i∈{1,2,

,n}计算签名σ
l,i
=(h(name||i)h(m
l,i
))
d
,用σ

l
表示签名的集合φ

l
={σ
l,1

l,2
,


l,n
};为了保证name的完整性,用户计算t=name||sign
sk
(name)作为文件f

的标签,sign
sk
(name)是在私钥d下的签名;假设挖矿者节点知道f

的块数n,用户将f

和(φ

l
,t)发送给云服务平台。
19.步骤(3

2)挑战阶段(challenge)流程为:挖矿者节点检索文件标签t,并使用pk验证签名t,如果验证失败,则终止交易;如果验证成功,则恢复其name;为检查f

={m
l,1
,m
l,2
,

,m
l,n
}的完整性,用户向挖矿者节点发送验证请求;挖矿者节点收到验证请求后,随机生成一个含有c个元素的子集i={s
j
}
1≤j≤c
且s1≤s2≤

≤s
c
,对每个i∈i,挖矿者节点随机选择生成挑战消息chal={i,v
i
}
i∈i
,并将其发送给云服务器。
20.步骤(3

3)证据生成阶段(proofgen)流程为:proofgen({m
l,i
}
i∈i


l
,chal,pk),收到挑战chal={i,v
i
}
i∈i
后,云服务平台选
择数据{m
l,i
}
i∈i
,然后发送v
i
m
l,i
给云服务器;云服务器随机选择r∈z
p
,计算y=h(r),并汇总各数据拥有者发送的数据。即为了盲化μ

,令μ=μ

r;同时,云服务器计算聚合签名然后将{μ,σ

l
,y}作为存储完整性的证据发送给挖矿者节点。
21.步骤(3

4)验证阶段(verification)流程为:proofveriy(proof,pk),收到来自云服务器发送过来的proof={μ,σ

l
,y},挖矿者节点验证如果上述等式成立,挖矿者节点返回true;反之,返回false,并找出恶意用户。
再多了解一些

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

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

相关文献