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

一种基于BLS签名的零知识数据存储验证方法、设备和存储介质与流程

2022-02-22 17:51:44 来源:中国专利 TAG:

一种基于bls签名的零知识数据存储验证方法、设备和存储介质
技术领域
1.本发明涉及数据云端保存、信息安全技术领域,尤其涉及一种基于bls签名的零知识数据存储验证方法、设备和存储介质。


背景技术:

2.数据可取回性证明是一项被广泛应用在云存储、远程存储等领域的数据安全保护技术。由于云存储、远程存储等技术可以实现任意时间、地点对任一数据进行访问的需求,且能够极大的节约社会资源与能源,因此被各领域广泛的应用。近些年,随着区块链技术的发展,将交易、数据打包,进行上链存储成为了一种新型的分布式云存储模式。云存储虽然有其优势,但在安全性、可靠性及服务水平等各方面还存在许多亟待解决的问题,制约了云存储技术,尤其是分布式云存储技术的广泛应用。其中,客户端在将自己的数据上传之后,最关心的问题之一,是他们的数据是否被完整的保存,是否能够被完整取回,这便是数据可取回性证明要解决的问题,也是开发新的数据线上存储取回方法的核心技术问题。
3.基于这样的需求,shacham等人在2008年提出了基于bls签名的数据可取回性证明方案,然而,这个方案没有考虑数据隐私的问题,成为该方案一个重要的安全隐私漏洞。具体来讲,针对客户端提出的挑战,服务器端使用固定的、由客户端提供的公钥进行加密,这就导致被加密内容,即被挑战的数据块内容完全暴露在发起挑战的一方前。若该挑战者为恶意攻击者,其意图是非法获取数据内容,那么保存在云端、分布式云端的数据将被轻易获取,极大的削弱了该方案的安全性,基于该不足,现有学者提出了一种基于数据拥有者、云服务器者和第三方验证者三方构成的云端存储可取回性证明的方案,但其借助第三方进行数据完整性检查,这样的设置不仅削弱了系统的分布式程度,而且会极大的增加第三方验证者的负担,因而不能够满足更高的隐私保护需求,且效率不高。


技术实现要素:

4.基于上述技术现状,本发明提供了一种基于bls签名的零知识数据存储验证方法、设备和存储介质,能够在不泄露数据的情况下实现云端数据的完整取回,有效保护了用户隐私。
5.本发明采用的技术方案如下:一种基于bls签名的零知识数据存储验证方法、设备和存储介质,其特征在于,参与方仅包括客户端(client)和服务器(server)两方,具体步骤如下:
6.1、公共信息设置
7.设每块数据块可切分为s片,g1和g2分别是对配对操作友好的椭圆曲线群g1和g2上的生成元。在椭圆曲线群g1上选取s个点uj,其中1≤j≤s。
8.2、客户端数据处理
9.(1)数据切片
10.客户端(如个人计算机)将待存储数据m分为n个块,每个块记为mi,1≤i≤n;将每个块mi进行切片处理,分为s个切片,每个切片记为m
ij
,1≤j≤s;切片处理后,每个切片数据中保留有一个有限域中的元素。
11.(2)特征指纹提取
12.在有限域中,取随机数α作为客户端私钥,记作客户端根据私钥计算公钥记作cpkey。
13.将每个数据块mi,记其名为字符串name和数据块idi的拼接,即name||i,则数据块mi的特征指纹可由下式计算:
[0014][0015]
其中函数h(x||y)为bls哈希,其功能是将数据串x||y映射到椭圆曲线群g1上;uj为椭圆曲线群g1上选取的点,其中1≤j≤s;m
ij
表示数据块mi的第j个切片;α表示客户端私钥;σi表示数据块mi的特征指纹。
[0016]
(3)数据传输
[0017]
客户端计算好所有数据块的特征指纹后,将字符串name、公钥cpkey公开。同时,client将所有数据块及其对应的特征指纹发送到服务器进行储存。
[0018]
3、客户端挑战
[0019]
在该系统中的客户端若想要对服务器存储的数据完整性进行检查,可以向服务器发起挑战。设索引集q,挑战可以是由随机域元素构成的集合{v
p
}
p∈q

[0020]
4、证明生成
[0021]
对于(客户端中的)任何一方发起的挑战,服务器要提供相应的证明。具体步骤如下:
[0022]
(1)生成服务器的公钥组
[0023]
服务器接收到由客户端发来的公钥cpkey后,可以计算服务器的公钥组,记作spkey。服务器首先选取随机数β,则spkey定义为:
[0024]
g1和g2分别是对配对操作友好的椭圆曲线群g1和g2上的生成元,
[0025]
α是客户端私钥,β是随机数。
[0026]
注意,对于不同的挑战,服务器要选用不同的随机数β生成公钥组,否则会带来安全风险。
[0027]
(2)计算混合特征指纹
[0028]
混合特征指纹是对多个数据块的特征指纹根据一定的规则进行组合,定义为:
[0029][0030]
式中σi表示特征指纹,v
p
表示第p个随机域元素,1≤i≤n。
[0031]
(3)计算μq[0032]
设混合数据块μ由s个切片构成,记为μq,其中1≤q≤s。由于切片数量相同,混合数据块μ和普通数据块mi的大小是相同的。则μq定义为:
[0033][0034]
上式中β是针对本次挑战服务器选取的随机数;v
p
表示第p个随机域元素;1≤i≤n;1≤j≤s。
[0035]
(4)计算k
[0036]
为实现方案的零知识性,服务器计算k值,定义为:
[0037][0038]
(5)数据传输
[0039]
发送spkey,σ,μq和k至挑战者(任一客户端)。
[0040]
5.验证
[0041]
收到证明的客户端进行验证以下四个式子是否成立:
[0042][0043][0044][0045][0046]
若以上等式均成立,则客户端接受此次证明,并输出acc,否则协议失败并终止。
[0047]
本发明还提供了一种存储验证设备,所述设备包括:
[0048]
一个或多个处理器;
[0049]
存储器,用于存储一个或多个程序;
[0050]
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行本技术中的存储验证方法。
[0051]
本发明还提供了一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现本技术所述的存储验证方法。
[0052]
本发明产生的有益效果是:
[0053]
1、本发明能够在不削弱数据可取回性证明完备性的前提下,避免了云端或分布式云端存储的数据发生泄露、被恶意窃取的可能。由于服务器在生成证明过程中,采用了随机私钥和客户端公钥共同构成的公钥三元组,因此在客户端验证时,客户端无法通过自己的公钥对数据进行窃取,从而确保了数据的隐私安全,实现了零知识性;同时,本方案支持公开验证,即系统中的任何客户端都可以对数据进行完整性检查,向服务器发起挑战并获得服务器的反馈;
[0054]
2、相对于现有的大多由数据拥有者、云服务器者和第三方验证者共三方构成的云
端存储可取回性证明的技术方案,本技术的技术方案可由客户端直接发起数据完整性检查,隐私保护力度更高、效率更高。
附图说明
[0055]
图1是本发明验证方法的流程图;
[0056]
图2是基于本发明数据存储验证方法的系统应用模块图
具体实施方式
[0057]
结合附图1~2对本发明云端数据存储验证方法做如下说明:
[0058]
如图1所示,是本发明验证方法的流程图,具体包括公共信息设置(connom input)、客户端数据处理、发起挑战(public

challenge)、客户端验证四个核心步骤,具体如下:
[0059]
一、公共信息设置(connom input)
[0060]
设每块数据块可切分为s片,g1和g2分别是对配对操作友好的椭圆曲线群g1和g2上的生成元。在椭圆曲线群g1上选取s个点uj,其中1≤j≤s。
[0061]
二、客户端数据处理
[0062]
本技术技术方案中待存储的数据由客户端自行进行上传前的数据处理,服务器起到存储数据的作用,客户端包括个人计算机等数据处理设备,其将待存储数据进行数据分块并切片后,将每一个数据块提取特征指纹,然后再传输至服务器,具体的方法包括如下几个步骤:
[0063]
(1)数据切片
[0064]
用户可以使用自己的计算机或其他数据处理设备将待存储数据m分为n个块,m1,m2,

,mn,每个块记为mi,1≤i≤n;将每个块mi进行切片处理,分为s个切片,每个切片记为m
ij
,1≤j≤s;切片处理后,每个切片数据中保留有一个有限域中的元素。
[0065]
(2)特征指纹提取
[0066]
随后,针对每一个数据块,客户端对其进行特征提取,作为发送给客户端的必要信息之一。在有限域中,取随机数α作为客户端私钥,记作则client可根据私钥计算公钥记作cpkey。设数据名为字符串name,则对于数据块mi,记其名为字符串name和数据块idi的拼接,即name||i。则数据块mi的特征指纹可由下式计算:
[0067][0068]
其中函数h(x||y)为bls哈希,在本方案中,我们将其视作一个随机自动机(random oracle),其功能是将数据串x||y映射到椭圆曲线群g1上,在本技术中数据串x||y即为数据串name||i;uj为椭圆曲线群g1上选取的点,其中1≤j≤s;m
ij
表示数据块mi的第j个切片;α表示客户端私钥;σi表示数据块mi的特征指纹。
[0069]
(3)数据传输
[0070]
用户将计算好所有数据块的特征指纹后,将字符串name、公钥cpkey公开。同时,
client用户将所有数据块及其对应的特征指纹发送到服务器进行储存。
[0071]
三、发起挑战(public

challenge)
[0072]
在该系统中的任何用户客户端,或其他任何人,若想要对服务器存储的数据完整性进行检查,可以直接向服务器发起挑战。
[0073]
(1)设置索引集
[0074]
设索引集q,挑战可以是由随机域元素构成的集合{v
p
}
p∈q

[0075]
(2)生成证明
[0076]
对于(客户端中的)任何一方发起的挑战,服务器要提供相应的证明。具体步骤如下:
[0077]

生成服务器的公钥组
[0078]
服务器接收到由客户端发来的公钥cpkey后,可以计算服务器的公钥组,记作spkey。服务器首先选取随机数β,则spkey定义为:
[0079]
g1和g2分别是对配对操作友好的椭圆曲线群g1和g2上的生成元,
[0080]
α是客户端私钥,β是随机数。
[0081]
注意,对于不同的挑战,服务器要选用不同的随机数β生成公钥组,否则会带来安全风险。
[0082]

计算混合特征指纹
[0083]
混合特征指纹是对多个数据块的特征指纹根据一定的规则进行组合,定义为:
[0084][0085]
式中σi表示特征指纹,v
p
表示第p个随机域元素,1≤i≤n。
[0086]

计算混合数据块μq[0087]
设混合数据块μ由s个切片构成,记为μq,其中1≤q≤s。由于切片数量相同,混合数据块μ和普通数据块mi的大小是相同的。则μq定义为:
[0088][0089]
上式中β是针对本次挑战服务器选取的随机数;v
p
表示第p个随机域元素;m
ij
为第i个数据块的第j个切片,1≤i≤n,1≤j≤s。
[0090]

计算k值
[0091]
为实现方案的零知识性,服务器计算k值,定义为:
[0092][0093]
(3)数据传输
[0094]
发送spkey,σ,μq和k至挑战者(任一客户端)。
[0095]
四、客户端验证
[0096]
收到证明的客户端可以进行验证。具体来说,客户端验证以下四个式子是否成立:
[0097][0098][0099][0100][0101]
上式中,各字母含义与上文所述的相同,在此不再赘述。
[0102]
若以上等式均成立,则客户端接受此次证明,并输出acc,否则协议失败并终止。
[0103]
结合本技术具体实施方式以及给予的实施例1中内容可以看出,本技术的方法可以通过计算机程序指令存储或装载到计算机或其他可编程数据处理设备上,即可提供这些计算机程序指定到计算机或其他可编程数据处理设备上以产生一个机器,所述机器可执行指令实现流程图的一个流程或多个流程中指定的功能。
[0104]
如图2所示,是基于本发明数据存储验证方法的系统应用模块图,一种云端数据存储系统,其包括用户数据处理计算机、服务器,运行如图1所示的数据存储的验证方法,用户数据处理计算机用于处理待存储数据并上传至服务器。
[0105]
本技术的方法可以通过计算机程序指令存储或装载到计算机或其他可编程数据处理设备上,使得计算机或其他可编程数据处理设备通过读取指令执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程数据处理设备中执行指令提供用于实现流程图的一个流程或多个流程中指定的功能的步骤。
[0106]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
再多了解一些

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

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

相关文献