数据调用方法、装置及计算机可读存储介质与流程

文档序号:19893041发布日期:2020-02-11 12:55阅读:229来源:国知局
数据调用方法、装置及计算机可读存储介质与流程

本发明涉及基础运维技术领域,尤其涉及一种数据调用的方法、装置及计算机可读存储介质。



背景技术:

数据调用是将预先存储在预设位置的对应数据取出并使用。对于敏感型数据,如用户身份信息,还需先对数据调用的请求方进行安全性验证或对取出的经过加密的敏感数据进行解密。然而,随着数据调用请求的不断增多,现有的处理方式,使得数据调用的效率大大降低。因此,如何实现高效的调取数据是目前阶段急需解决的问题。



技术实现要素:

本发明提供一种数据调用方法、装置及计算机可读存储介质,其主要目的在于根据用户的调用请求而进行数据调用。

为实现上述目的,本发明提供的一种数据调用方法,包括:

接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中;

接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值;

将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值;

若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求;

若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对,基于范围证明法判断所述承诺-证据值对是否满足预设条件;

若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点调用所述数据集反馈给所述用户。

可选地,所述计算所述数据集的承诺值的计算公式为:

v=commit(v,γ)=vg+γh

其中,v为所述承诺值,v所述节点内的数据值,γ为第一盲因子,g为所述数据调用系统所依赖的椭圆曲线的基点坐标值,h为所述数据调用系统中所依赖的椭圆曲线中的随机点坐标值。

可选地,所述基于所述子承诺值计算得到总承诺值,包括:

随机生成一个或多个第二盲因子,基于所述第一盲因子和所述第二盲因子计算得到第三盲因子,将所述第二盲因子和所述第三盲因子作为盲因子集,其中,所述第二盲因子的个数比所述子数据集的个数少一;

基于所述盲因子集和所述子集数据集计算得到子集承诺值集;

基于加法同态性原则计算所述子集承诺值集得到所述总承诺值。

可选地,所述计算所述子数据集对应的承诺-证据值对,包括:

基于各所述子数据集的子集承诺值计算对应子数据集的证据值;

将所述证据值与所述子集承诺值进行预设方式的组合得到所述承诺-证据值对。

可选地,所述基于范围证明法判断所述承诺-证据值对是否满足预设条件包括:

随机生成一个或多个制约因子,所述制约因子的个数比所述子数据集的个数少一;

基于所述制约因子构建概率公式;

根据所述概率公式和所述承诺-证据值进行范围证明,生成范围值;

判断所述范围值与预设范围值的大小关系从而判断所述承诺-证据值对是否满足预设条件。

此外,为实现上述目的,本发明还提供一种数据调用装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的数据调用程序,所述数据调用程序被所述处理器执行时实现如下步骤:

接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中;

接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值;

将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值;

若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求;

若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对,基于范围证明法判断所述承诺-证据值对是否满足预设条件;

若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点调用所述数据集反馈给所述用户。

可选地,所述计算所述数据集的承诺值的计算公式为:

v=commit(v,γ)=vg+γh

其中,v为所述承诺值,v所述节点内的数据值,γ为第一盲因子,g为所述数据调用系统所依赖的椭圆曲线的基点坐标值,h为所述数据调用系统中所依赖的椭圆曲线中的随机点坐标值。

可选地,所述基于所述子承诺值计算得到总承诺值,包括:

随机生成一个或多个第二盲因子,基于所述第一盲因子和所述第二盲因子计算得到第三盲因子,将所述第二盲因子和所述第三盲因子作为盲因子集,其中,所述第二盲因子的个数比所述子数据集的个数少一;

基于所述盲因子集和所述子集数据集计算得到子集承诺值集;

基于加法同态性原则计算所述子集承诺值集得到所述总承诺值。

可选地,所述计算所述子数据集对应的承诺-证据值对,包括:

基于各所述子数据集的子集承诺值计算对应子数据集的证据值;

将所述证据值与所述子集承诺值进行预设方式的组合得到所述承诺-证据值对。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据调用程序,所述数据调用程序可被一个或者多个处理器执行,以实现如上所述的数据调用方法的步骤。

本发明通过将数据集拆分为多个子数据集,并采用范围证明法将多个子数据集进行统一验证,极大的降低点乘的个数,从而实现在数据调用时范围验证环节的效率优化;另外,通过判断承诺值和总承诺值是否相同,避免了不合理的数据调用进入上述范围证明环节,并基于所述范围证明法得到承诺-证据值,判断所述承诺-证据值是否满足预设条件,达到双重验证效果,在确保数据调用安全性的同时,同时简化数据调用的流程,避免繁琐计算,释放计算压力。本发明提出的数据调用方法、装置及计算机可读存储介质,可以实现精准高效的数据调用功能。

附图说明

图1为本发明一实施例提供的数据调用方法的流程示意图;

图2为本发明一实施例提供的数据调用装置的内部结构示意图;

图3为本发明一实施例提供的数据调用装置中数据调用程序的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种数据调用方法。参照图1所示,为本发明一实施例提供的数据调用方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,数据调用方法包括:

s1、接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中。

优选地,所述数据调用系统可基于区块链技术或其他分布式存储系统技术等,所述数据调用系统是基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型数据管理系统。如在金融交易中,用户a将公司x与公司y的贸易支出数据存储在所述数据调用系统中,所述贸易支出数据即为用户输入的所述数据集。

较佳地,所述节点是为了确认保证数据调用有效性和安全性而开发的独立单元,所述节点越多,所述数据集的调用有效性和安全性就越高,因此所述数据调用系统中较佳地可将所述数据集存储在多个节点内。

s2、接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值。

较佳地,如在上述金融交易中,用户a将公司x与公司y的贸易支出数据存储在所述数据调用系统中,用户a需要从所述数据调用系统中提取所述贸易支出数据,则需要发出调用请求。

本发明较佳实施例中,所述数据调用系统计算所述节点的承诺值包括:读取所述节点内的数据值,根据椭圆曲线法计算所述数据值的承诺值。

较佳地,所述承诺值的计算方法为:

v=commit(v,γ)=vg+γh

其中,v为所述承诺值,较佳地以向量形式,v所述节点内的数据值,γ为第一盲因子(blindingfactor),由所述数据调用系统随机产生,g为所述数据调用系统所依赖的椭圆曲线的基点的坐标值,所述基点可用坐标表示或基于椭圆公式y2=x3+ax+b求解所述基点的y或x(所述基点又称私有密钥,根据ecc保密通信算法知,当所述基点确定后,可确定公有密钥,基于所述公有密钥可将所述椭圆曲线变成离散点,基于所述离散度可得到本发明的所述承诺值),h为所述数据调用系统中所依赖的椭圆曲线中的随机点坐标值(所述随机点可用坐标表示,也可用椭圆公式y2=x3+ax+b,当确定一个x值后,基于所述椭圆公式,随机点也可确定)。

s3、将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值。

优选地,本发明较佳实施例将所述数据集v=(v1,v2,…,vn),n为所述数据集的数据总量,划分为m组子数据集,每组为k个数据,则n,m,k的关系为:n=m*k,总结来说,v被划分为m组子数据集的公式如下:

v1=(v1,v2,…,vk)

v2=(vk+1,vk+2,…,v2k)

……

vm-1=(v(m-2)k+1,v(m-2)k+2,…,v(m-2)k)

vm=(v(m-1)k+1,v(m-2)k+2,…,v(m)k)

较佳地,所述计算所述多个子数据集的子集承诺值,基于所述子集承诺值求解得到总承诺值,包括:随机生成一个或多个第二盲因子,基于所述第一盲因子和所述第二盲因子计算得到第三盲因子,将所述第二盲因子和所述第三盲因子作为盲因子集,其中,所述第二盲因子的个数比所述子数据集的个数少一;基于所述盲因子集和所述子集数据集计算得到子集承诺值集;基于加法同态性原则计算所述子集承诺值集得到所述总承诺值。

优选地,所述第三盲因子的计算公式为:

其中,γ1为所述第三盲因子,γ为所述第一盲因子,γi为所述第二盲因子,2(i-1)k为加权值。

进一步地,所述基于所述盲因子集和所述子集数据集计算得到子集承诺值集的计算方法与节点计算承诺值方法相同为:

vi=commit(vi,γi)=vig+γihi

其中,i表示所述子数据集的编号,vi表示所述子数据集i对应的子集承诺值。

优选地,所述加法同态性原则是指在保证数据机密性的同时,通过验证所述节点的输入数据等于输出数据,从而验证所述节点输入输出的合理性,例如一笔交易的输入数据为vin1、vin2,输出数据为vout1、vout2,如果该项交易是合理的,则有vin1+vin2=vout1+vout2,所述加法同态性原则的表达式为:

commit(vin1,γin1)+commit(vin2,γin2)=commit(vout1,γout1)+commit(vout2,γout2)其中,(yin1,yin2,yout1,yout2)为所述盲因子集。

所述基于加法同态性原则计算所述子集承诺值集得到所述总承诺值的计算方法为:

其中,vsum为所述总承诺值,2(i-1)k为加权值,vi为所述子数据集的子集承诺值。

进一步地,判断所述总承诺值vsum与所述承诺值v是否相同。

s4、判断所述总承诺值与所述承诺值是否相同。

s5、若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求。

优选地,如在上述金融交易中,用户a需要从所述数据调用系统中提取所述贸易支出数据,发出调用请求后,本发明计算得到所述总承诺值vsum与所述承诺值v不相同,则拒绝所述调用请求,同时返回拒绝所述调用请求的原因是总承诺值vsum与所述承诺值v不相同,方便用户进行数据追溯。

s6、若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对。

优选地,所述计算所述子数据集对应的承诺-证据值对,包括:基于各所述子数据集的子集承诺值计算对应子数据集的证据值,将所述证据值与所述子集承诺值进行预设方式的组合得到所述承诺-证据值对。

进一步地,所述基于各所述子数据集的子集承诺值计算对应子数据集的证据值的计算方法为:

较佳地,所述证据值用bp(v,γ)表示,所述证据值由椭圆曲线群(每个子数据集代表一个椭圆曲线群,因此多个子数据集可组成所述椭圆曲线群)的基本坐标数据和公共参数运算得到的,由此所述证据值为:

其中:

为v的二进制展开,即

τ=z2·γ+τ1·x+τ2·x2∈zp

μ=α+ρ·x∈zp

进一步地,上述为v的二进制展开,即为所述子集承诺值的二进制展开,即α,ρ,τ1,τ2∈zp是所述证明值生成的随机数,是所述证明值生成的n维随机向量,z,y,x∈zp:y=hash(a,s),z=hash(a,s,y),x=hash(t1,t2,z),hash(·)表示哈希函数,例如sha256,sm3等。

更进一步地:

阶为素数p的椭圆曲线群,g为其基点

上的n维向量空间

zp:模p整环。zp*表示zp\{0}

zpn:zp上的n维向量空间

小写字母a,b,c表示zp中的元素,大写字母g,h表示椭圆曲线群中的元素。

表示向量,其中,表示所述子集承诺值的集合,即ai∈zp,1≤i≤n,即其中1≤i≤n。

均表示向量形式,如对于c∈zp,本发明用表示椭圆曲线群上的点乘运算,对于c∈zp,我们记其中

<-.->表示向量内积,对于

对于

表示hadamard积或按位乘,即对于对于k∈zp*,我们记kn=(1,k,k2,…,kn-1)∈(zp*)n,,例如2n=(1,2,4,…,2n-1)∈(zp*)n

所述椭圆曲线群的基点g;为群中的随机点;(n表示n比特的范围证明)。

较佳地,所述将所述证据值与所述子集承诺值进行相应组合得到所述承诺-证据值对,如在上述中,将所述数据集分为m组子数据集,每组为k个数据时,则所述承诺-证据值对分别为:

{v(1)=commit(v(1),γ(1)),bp(v(1),γ(1))={a(1),s(1),t1(1),t2(1),t(1),τ(1),μ(1),l(1),r(1)};

{v(2)=commit(v(2),γ(2)),bp(v(2),γ(2))={a(2),s(2),t1(2),t2(2),t(2),τ(2),μ(2),l(2),r(2)};

…………

{v(m)=commit(v(m),γ(m)),bp(v(m),γ(m))={a(m),s(m),t1(m),t2(m),t(m),τ(m),μ(m),l(m),r(m)}

其中,{v(1),bp(v(1),γ(1))},{v(2),bp(v(2),γ(2))},{v(m),bp(v(m),γ(m))}分别为不同子数据集对应的承诺-证据值对。

s7、基于范围证明法判断所述承诺-证据值对是否满足预设条件。

优选地,所述基于范围证明法判断所述承诺-证据值对是否满足预设条件,包括:随机生成一个或多个制约因子,所述制约因子的个数比所述子数据集的个数少一,基于所述制约因子构建概率公式,根据所述概率公式和所述承诺-证据值进行范围证明,生成范围值,判断所述范围值与预设范围值的大小关系从而判断所述承诺-证据值对是否满足预设条件。

进一步地,所述概率公式为a1+β1a2+…+βm-1am=0,其中β1、β2,…,βm-1为所述制约因子,a1,a2,…,am=0分别为上述证据值内的参数。

较佳地,所述范围证明生成范围值的计算方法为:

其中,m为所述范围值,其他参数已在上述中详细说明。

s8、若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点中调用所述数据集反馈给所述用户。

较佳地,如预设范围值为0,而求解的范围值为-1,所述预设条件为所述范围值小于所述预设范围值时,则范围值为-1时拒绝所述调用请求,若范围值为1时,则所述范围值大于所述预设范围值,则满足所述预设条件,响应所述调用请求,完成数据调用。若数据集预先存储在分布式存储系统中的多个节点服务器中,则可选择任一节点服务器中与调用请求对应的数据集反馈给用户,或者可根据负载均衡策略选择对应的节点服务器反馈数据集,在这里不做限定。

发明还提供一种数据调用装置。参照图2所示,为本发明一实施例提供的数据调用装置的内部结构示意图。

在本实施例中,所述数据调用装置1可以是pc(personalcomputer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。该数据调用装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据调用装置1的内部存储单元,例如该数据调用装置1的硬盘。存储器11在另一些实施例中也可以是数据调用装置1的外部存储设备,例如数据调用装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括数据调用装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据调用装置1的应用软件及各类数据,例如数据调用程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据调用程序01等。

通信总线13用于实现这些组件之间的连接通信。

网络接口14可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置1与其他电子设备之间建立通信连接。

可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据调用装置1中处理的信息以及用于显示可视化的用户界面。

图2仅示出了具有组件11-14以及数据调用程序01的数据调用装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对数据调用装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图2所示的装置1实施例中,存储器11中存储有数据调用程序01;处理器12执行存储器11中存储的数据调用程序01时实现如下步骤:

步骤一、接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中。

优选地,所述数据调用系统可基于区块链技术或其他分布式存储系统技术等,所述数据调用系统是基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型数据管理系统。如在金融交易中,用户a将公司x与公司y的贸易支出数据存储在所述数据调用系统中,所述贸易支出数据即为用户输入的所述数据集。

较佳地,所述节点是为了确认保证数据调用有效性和安全性而开发的独立单元,所述节点越多,所述数据集的调用有效性和安全性就越高,因此所述数据调用系统中较佳地可将所述数据集存储在多个节点内。

步骤二、接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值。

较佳地,如在上述金融交易中,用户a将公司x与公司y的贸易支出数据存储在所述数据调用系统中,用户a需要从所述数据调用系统中提取所述贸易支出数据,则需要发出调用请求。

本发明较佳实施例中,所述数据调用系统计算所述节点的承诺值包括:读取所述节点内的数据值,根据椭圆曲线法计算所述数据值的承诺值。

较佳地,所述承诺值的计算方法为:

v=commit(v,γ)=vg+γh

其中,v为所述承诺值,较佳地以向量形式,v所述节点内的数据值,γ为第一盲因子(blindingfactor),由所述数据调用系统随机产生,g为所述数据调用系统所依赖的椭圆曲线的基点的坐标值,所述基点可用坐标表示或基于椭圆公式y2=x3+ax+b求解所述基点的y或x(所述基点又称私有密钥,根据ecc保密通信算法知,当所述基点确定后,可确定公有密钥,基于所述公有密钥可将所述椭圆曲线变成离散点,基于所述离散度可得到本发明的所述承诺值),h为所述数据调用系统中所依赖的椭圆曲线中的随机点坐标值(所述随机点可用坐标表示,也可用椭圆公式y2=x3+ax+b,当确定一个x值后,基于所述椭圆公式,随机点也可确定)。

步骤三、将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值。

优选地,本发明较佳实施例将所述数据集v=(v1,v2,…,vn),n为所述数据集的数据总量,划分为m组子数据集,每组为k个数据,则n,m,k的关系为:n=m*k,总结来说,v被划分为m组子数据集的公式如下:

v1=(v1,v2,…,vk)

v2=(vk+1,vk+2,…,v2k)

……

vm-1=(v(m-2)k+1,v(m-2)k+2,…,v(m-2)k)

vm=(v(m-1)k+1,v(m-2)k+2,…,v(m)k)

较佳地,所述计算所述多个子数据集的子集承诺值,基于所述子集承诺值求解得到总承诺值,包括:随机生成一个或多个第二盲因子,基于所述第一盲因子和所述第二盲因子计算得到第三盲因子,将所述第二盲因子和所述第三盲因子作为盲因子集,其中,所述第二盲因子的个数比所述子数据集的个数少一;基于所述盲因子集和所述子集数据集计算得到子集承诺值集;基于加法同态性原则计算所述子集承诺值集得到所述总承诺值。

优选地,所述第三盲因子的计算公式为:

其中,γ1为所述第三盲因子,γ为所述第一盲因子,γi为所述第二盲因子,2(i-1)k为加权值。

进一步地,所述基于所述盲因子集和所述子集数据集计算得到子集承诺值集的计算方法与节点计算承诺值方法相同为:

vi=commit(vi,γi)=vig+γihi

其中,i表示所述子数据集的编号,vi表示所述子数据集i对应的子集承诺值。

优选地,所述加法同态性原则是指在保证数据机密性的同时,通过验证所述节点的输入数据等于输出数据,从而验证所述节点输入输出的合理性,例如一笔交易的输入数据为vin1、vin2,输出数据为vout1、vout2,如果该项交易是合理的,则有vin1+vin2=vout1+vout2,所述加法同态性原则的表达式为:

commit(vin1,γin1)+commit(vin2,γin2)=commit(vout1,γout1)+commit(vout2,γout2)其中,(yin1,yin2,yout1,yout2)为所述盲因子集。

所述基于加法同态性原则计算所述子集承诺值集得到所述总承诺值的计算方法为:

其中,vsum为所述总承诺值,2(i-1)k为加权值,vi为所述子数据集的子集承诺值。

进一步地,判断所述总承诺值vsum与所述承诺值v是否相同。

步骤四、判断所述总承诺值与所述承诺值是否相同。

步骤五、若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求。

优选地,如在上述金融交易中,用户a需要从所述数据调用系统中提取所述贸易支出数据,发出调用请求后,本发明计算得到所述总承诺值vsum与所述承诺值v不相同,则拒绝所述调用请求,同时返回拒绝所述调用请求的原因是总承诺值vsum与所述承诺值v不相同,方便用户进行数据追溯。

步骤六、若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对。

优选地,所述计算所述子数据集对应的承诺-证据值对,包括:基于各所述子数据集的子集承诺值计算对应子数据集的证据值,将所述证据值与所述子集承诺值进行预设方式的组合得到所述承诺-证据值对。

进一步地,所述基于各所述子数据集的子集承诺值计算对应子数据集的证据值的计算方法为:

较佳地,所述证据值用bp(v,γ)表示,所述证据值由椭圆曲线群(每个子数据集代表一个椭圆曲线群,因此多个子数据集可组成所述椭圆曲线群)的基本坐标数据和公共参数运算得到的,由此所述证据值为:

其中:

为v的二进制展开,即

τ=z2·γ+τ1·x+τ2·x2∈zp

μ=α+ρ·x∈zp

进一步地,上述为v的二进制展开,即为所述子集承诺值的二进制展开,即α,ρ,τ1,τ2∈zp是所述证明值生成的随机数,是所述证明值生成的n维随机向量,z,y,x∈zp:y=hash(a,s),z=hash(a,s,y),x=hash(t1,t2,z),hash(·)表示哈希函数,例如sha256,sm3等。

更进一步地:

阶为素数p的椭圆曲线群,g为其基点

上的n维向量空间

zp:模p整环。zp*表示zp\{0}

zpn:zp上的n维向量空间

小写字母a,b,c表示zp中的元素,大写字母g,h表示椭圆曲线群中的元素。

表示向量,其中,表示所述子集承诺值的集合,即ai∈zp,1≤i≤n,即其中1≤i≤n。

均表示向量形式,如对于c∈zp,本发明用表示椭圆曲线群上的点乘运算,对于c∈zp,我们记其中

<-.->表示向量内积,对于

对于

表示hadamard积或按位乘,即对于对于k∈zp*,我们记kn=(1,k,k2,…,kn-1)∈(zp*)n,,例如2n=(1,2,4,…,2n-1)∈(zp*)n

所述椭圆曲线群的基点g;为群中的随机点;(n表示n比特的范围证明)。

较佳地,所述将所述证据值与所述子集承诺值进行相应组合得到所述承诺-证据值对,如在上述中,将所述数据集分为m组子数据集,每组为k个数据时,则所述承诺-证据值对分别为:

{v(1)=commit(v(1),γ(1)),bp(v(1),γ(1))={a(1),s(1),t1(1),t2(1),t(1),τ(1),μ(1),l(1),r(1)};

{v(2)=commit(v(2),γ(2)),bp(v(2),γ(2))={a(2),s(2),t1(2),t2(2),t(2),τ(2),μ(2),l(2),r(2)};

…………

{v(m)=commit(v(m),γ(m)),bp(v(m),γ(m))={a(m),s(m),t1(m),t2(m),t(m),τ(m),μ(m),l(m),r(m)}

其中,{v(1),bp(v(1),γ(1))},{v(2),bp(v(2),γ(2))},{v(m),bp(v(m),γ(m))}分别为不同子数据集对应的承诺-证据值对。

步骤七、基于范围证明法判断所述承诺-证据值对是否满足预设条件。

优选地,所述基于范围证明法判断所述承诺-证据值对是否满足预设条件,包括:随机生成一个或多个制约因子,所述制约因子的个数比所述子数据集的个数少一,基于所述制约因子构建概率公式,根据所述概率公式和所述承诺-证据值进行范围证明,生成范围值,判断所述范围值与预设范围值的大小关系从而判断所述承诺-证据值对是否满足预设条件。

进一步地,所述概率公式为a1+β1a2+…+βm-1am=0,其中β1、β2,…,βm-1为所述制约因子,a1,a2,…,am=0分别为上述证据值内的参数。

较佳地,所述范围证明生成范围值的计算方法为:

其中,m为所述范围值,其他参数已在上述中详细说明。

步骤八、若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点中调用所述数据集反馈给所述用户。

较佳地,如预设范围值为0,而求解的范围值为-1,所述预设条件为所述范围值小于所述预设范围值时,则范围值为-1时拒绝所述调用请求,若范围值为1时,则所述范围值大于所述预设范围值,则满足所述预设条件,响应所述调用请求,完成数据调用。若数据集预先存储在分布式存储系统中的多个节点服务器中,则可选择任一节点服务器中与调用请求对应的数据集反馈给用户,或者可根据负载均衡策略选择对应的节点服务器反馈数据集,在这里不做限定。

可选地,在其他实施例中,数据调用程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述数据调用程序在数据调用装置中的执行过程。

例如,参照图3所示,为本发明数据调用装置一实施例中的数据调用程序的程序模块示意图,该实施例中,所述数据调用程序可以被分割为数据接收及存储模块10、承诺值计算及判断模块20、范围证明计算及判断模块30、数据调用输出模块40示例性地:

所述数据接收及存储模块10用于:接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中。

所述承诺值计算及判断模块20用于:接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值,将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值,若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求。

所述范围证明计算及判断模块30用于:若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求,若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对,基于范围证明法判断所述承诺-证据值对是否满足预设条件。

所述数据调用输出模块40用于:若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点调用所述数据集反馈给所述用户。

上述数据接收及存储模块10、承诺值计算及判断模块20、范围证明计算及判断模块30、数据调用输出模块40等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据调用程序,所述数据调用程序可被一个或多个处理器执行,以实现如下操作:

接收用户输入的数据集,并将所述数据集存储至数据调用系统的节点中。

接收所述数据集的调用请求,基于所述调用请求计算所述数据集的承诺值,将所述数据集划分为多个子数据集,分别计算各所述子数据集对应的子集承诺值,基于所述子承诺值计算得到总承诺值,若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求。

若所述总承诺值与所述承诺值不相同,则拒绝所述调用请求,若所述总承诺值与所述承诺值相同,计算所述子数据集对应的承诺-证据值对,基于范围证明法判断所述承诺-证据值对是否满足预设条件。

若所述承诺-证据值对不满足所述预设条件,则拒绝所述调用请求,若所述承诺-证据值对满足所述预设条件,则响应所述调用请求,从所述节点调用所述数据集反馈给所述用户。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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