CN109274655B - 一种面向外包流式数据的查询完整性验证方法 - Google Patents

一种面向外包流式数据的查询完整性验证方法 Download PDF

Info

Publication number
CN109274655B
CN109274655B CN201811024547.XA CN201811024547A CN109274655B CN 109274655 B CN109274655 B CN 109274655B CN 201811024547 A CN201811024547 A CN 201811024547A CN 109274655 B CN109274655 B CN 109274655B
Authority
CN
China
Prior art keywords
data
server
node
query
owner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811024547.XA
Other languages
English (en)
Other versions
CN109274655A (zh
Inventor
周福才
吴淇毓
王强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201811024547.XA priority Critical patent/CN109274655B/zh
Publication of CN109274655A publication Critical patent/CN109274655A/zh
Application granted granted Critical
Publication of CN109274655B publication Critical patent/CN109274655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种面向外包流式数据的查询完整性验证方法,该系统包括初始化模块、数据管理模块和查询验证模块。初始化模块用于系统启动时数据拥有者生成公私钥等系统所需的参数,并将公钥分发给服务器和数据使用者;数据管理模块用于数据拥有者将实时的流式数据外包到服务器,之后需要对服务器端之前存储的数据进行更改时,执行更新数据子模块对数据及相应的证据进行更新;查询验证模块用户数据使用者对服务器存储的数据进行查询,将会得到服务器返回的对应查询索引的数据以及相应的证据,并利用其返回的证据来验证查询结果是否正确。

Description

一种面向外包流式数据的查询完整性验证方法
技术领域
本发明属于网络安全领域,具体涉及一种面向外包流式数据的查询完整性验证系统及方法。
背景技术
随着云计算的发展和物联网应用的普及,数据量和用户数快速增长,数据流被广泛应用于当今的信息系统。如传感器实时采集到的气温、气压及PM2.5等数据,可穿戴医疗设备实时监控到的血压、心率等数据,或DNA计算服务器生成的DNA数据等,都可以看作为流式数据。由于流式数据的数据量庞大,且不断产生,使得设备对数据的存储、管理与维护变得更具挑战性。许多设备受到存储资源或计算资源的限制,更愿意将这些数据外包到资源强大的第三方服务器进行存储和管理,当数据使用者需要用到这些数据时,再从服务器所存储的数据库中进行查询。
然而,由于数据脱离了拥有者的物理控制,使用者无法确认服务器返回的数据是否为正确且完整的。此外,由于第三方服务器不一定是可信的,恶意的服务器可能会对存储的数据进行篡改,或对数据流中数据的顺序进行交换,使得用户在不知情的情况下接收到错误的查询结果,并可能造成很大的损失,如DNA序列中数据顺序的一点点不同就将导致诊断结果的不同。因此,保证用户可以从第三方服务器查询或更新数据记录,并能够检测和验证所查询数据的完整性具有重要的意义。
为了实现安全的查询,一种最简单的方式是用户从第三方下载所有的数据流信息并且验证它们。然而,流式数据是一个动态的、实时增长的数据集合,想要将其全部下载下来是不可行的。又或者,可以在发送给服务器之前先对每个数据元素进行数字签名,但是这种方法不仅效率低下,且不能保证流式数据中数据之间的先后顺序,并且只有拥有签名值的人才能对数据进行验证。针对上述问题,为了实现高效且安全的外包流式数据查询,许多人研究并实现了针对流式数据查询完整性验证的方案。但仍然存在着很多问题,比如需要预先定义好外包流式数据的数据总量或者附加数据操作开销过大不适用于实际场景等。目前针对流式数据的数据量大、实时产生的特点,如何更加安全、高效地对其进行查询及完整性验证具有十分广阔的研究意义和应用价值。
发明内容
针对现有技术的不足,提供一种面向外包流式数据的查询完整性验证系统及方法。
本发明的技术方案如下:
一种面向外包流式数据的查询完整性验证系统,包括初始化模块、数据管理模块和查询验证模块,在数据使用者、数据拥有者、服务器三个实体的作用下运行。
所述的初始化模块主要包括密钥生成和通信功能两个子模块。系统在启动时,系统中的实体首先会建立通信连接,数据拥有者通过执行密钥生成子模块生成公私钥等系统所需的参数,然后通过通信功能将公钥分发给服务器和数据使用者。
所述的数据管理模块主要包括附加数据和更新数据两个子模块。附加数据子模块和更新数据子模块的执行者都为数据拥有者,数据拥有者将实时的流式数据不断外包给服务器,即依次附加数据到服务器。当之后需要对服务器端之前存储的数据进行更改时,数据拥有者执行更新数据子模块来对数据及相应的证据进行更新。
所述的查询验证模块主要包括查询数据和查询结果验证两个子模块。当数据使用者想要查询数据时,通过执行查询数据子模块将会得到服务器返回的对应查询索引的数据以及相应的证据,之后执行查询结果验证子模块利用服务器返回的证据验证查询结果是否正确。
运用一种面向外包流式数据的查询完整性验证系统,进行流式数据查询完整性验证的方法,包括以下步骤:
步骤1:数据拥有者以自身为信任中心,生成公钥和私钥,并将公钥分发给服务器和数据使用者,将私钥自己保存。
步骤1.1:数据拥有者随机选择
Figure GDA0002786307110000021
计算
Figure GDA0002786307110000022
其中
Figure GDA0002786307110000023
是一个随机的生成元,
Figure GDA0002786307110000024
Figure GDA0002786307110000025
为两个素数p阶群,满足映射e:
Figure GDA0002786307110000026
步骤1.2:令公共参数pp=(g,h1,h2,h1,2,h2,1),陷门td=(z1,z2),初始化计数器为cnt=0,初始化版本更新信息T=null;
步骤1.3:数据拥有者随机选择k←{0,1}λ作为伪随机函数PRF的种子,计算r0=PRFk(0),对向量n0=(0,0)计算承诺值得到
Figure GDA0002786307110000027
步骤1.4:数据拥有者将得到的公钥PK=(pp,Croot,T)分发给服务器和数据使用者,将私钥SK=(k,td,cnt)自己保存。
步骤2:数据拥有者要将实时产生的流式数据外包到服务器,将新数据d以及数据的插入路径发送给服务器。
步骤2.1:数据拥有者为新添加的数据设置索引i=cnt+1,计数器也随之加1,即cnt=cnt+1;
步骤2.2:数据拥有者利用伪随机函数得到ri←PRFk(i),计算
Figure GDA0002786307110000028
得到该节点ni的承诺值Ci,计算ri′=ri+z1(0-d)使得等式
Figure GDA0002786307110000029
成立,从而实现将新数据d添加至该节点ni1处;
步骤2.3:数据拥有者还要将该节点添加到服务器端存储数据的认证树结构中。数据拥有者计算该节点父节点的索引
Figure GDA0002786307110000031
计算其为父节点的第j=((i-1)mod q)+1个孩子节点,其中q为认证树的分叉树。利用伪随机函数得到rp←PRFk(p),计算
Figure GDA0002786307110000032
得到该节点np的承诺值Cp,构造指针ptpj=(Cp,j)将节点ni连接在父节点np下面,计算得到ri″=ri+z2(0-ptpj)使得等式
Figure GDA0002786307110000033
成立,从而将指针插入到该节点ni2处;
步骤2.4:数据拥有者计算d存在于ni节点中ni1位置的证据
Figure GDA0002786307110000034
以及节点ni为节点np的第j个孩子节点的证据
Figure GDA0002786307110000035
步骤2.5:数据拥有者将数据d以及证据组成的插入路径Inspath=(Pi1,ni,Pi2)发送给服务器进行存储。
步骤3:数据使用者向服务器发送查询索引i,服务器会返回对应的数据及证据。
步骤3.1:服务器接收到数据使用者发送的查询索引,计算该节点处于认证树的层数
Figure GDA0002786307110000036
找到节点ni中ni1处存储的数据
Figure GDA0002786307110000037
步骤3.2:接下来按照层数递减的顺序,自下向上分别找到该节点和根节点之间每一层的证据,包括每一层节点中所存数据的证据及其父节点的证据,从而构成一个认证路径为AuPathi=(Pi1,ni,Pi2,np,Pp2,…,n0);
步骤3.3:服务器将查询到的数据
Figure GDA0002786307110000038
及认证路径AuPathi发送给数据使用者。
步骤4:数据使用者对查询结果进行验证,从而保证得到的查询数据确实为数据使用者上传到服务器的第i个数据。
步骤4.1:数据使用者根据公钥中存储的版本更新信息T判断该节点存储的数据值是否为最近版本,及将得到的服务器返回的版本更新信息
Figure GDA0002786307110000039
与本地所存T(i)进行比对,若不同,则终止操作。否则,继续下面的验证步骤;
步骤4.2:数据使用者根据认证路径AuPathi,按照层数递减的顺序,自下向上分别对节点中的数据di及父节点验证等式e(C/hi m,hi)=e(Pi,g)是否成立。若每一层都验证通过,则将输出数据库中位置i处对应的数据d。反之,则终止操作。
步骤5:数据拥有者可以对之前上传到服务器的数据进行更新。
步骤5.1:数据拥有者想要将索引i处的数据更新为d′,将更新索引i以及新数据d′发送到服务器;
步骤5.2:服务器首先执行查询算法查询索引i处原数据d,将d以及认证路径AuPathi返回给数据拥有者;
步骤5.3:数据拥有者首先验证服务器查询结果的正确性,若不正确,则终止操作。反之,则利用伪随机函数得到ri←PRFk(i),计算
Figure GDA00027863071100000310
得到该节点ni的承诺值Ci,令版本更新信息T(i)=T(i)+1并存入T,连接新数据d′和版本信息T(i)。计算ri′=ri+z1(0-(d′||T(i)))使得等式
Figure GDA0002786307110000041
成立,从而实现将新数据d′||T(i)添加至该节点ni1处;
步骤5.4:数据拥有者计算(d′||T(i))存在于ni节点中ni1位置的证据
Figure GDA0002786307110000042
解析认证路径AuPathi,将其中的Pi1更新为Pi1′从而得到更新路径(Pi1′,ni,Pi2);
步骤5.5:数据拥有者将新数据d′||T(i)和更新路径(Pi1′,ni,Pi2)组成更新信息upd发送给服务器;
步骤5.6:服务器接收到更新信息upd后,对新数据进行存储。
本发明的有益效果:
本发明是针对流式数据实时产生、数据量大的特点,对外包流式数据的查询完整性实现了有效的验证。本发明生成的公共参数为常量,独立于外包数据的数量,与现有技术相比,减少了客户端的存储开销,同时附加数据操作以及更新操作的计算开销也是常量的,降低了附加数据操作的计算开销,提高了更新操作的计算效率,并能够抵御第三方服务器对存储的数据进行篡改等恶意行为。
附图说明
图1为本发明具体实施方式的一种面向外包流式数据的查询完整性验证系统的架构示意图;
图2为本发明具体实施方式的一种面向外包流式数据的查询完整性验证方法的实体间通信协议图;
图3为本发明具体实施方式的系统初始化流程图;
图4为本发明具体实施方式的附加数据流程图;
图5为本发明具体实施方式的查询数据流程图;
图6为本发明具体实施方式的验证查询结果流程图;
图7为本发明具体实施方式的更新数据流程图。
具体实施方式
下面结合附图对本发明具体实施方式加以详细的说明。
本发明是一种面向外包流式数据的查询完整性验证系统,如图1所示,包括初始化模块、数据管理模块和查询验证模块,在数据使用者、数据拥有者、服务器三个实体的作用下运行。
初始化模块主要包括密钥生成和通信功能两个子模块。系统在启动时,系统中的实体首先会建立通信连接,数据拥有者通过执行密钥生成子模块生成公私钥等系统所需的参数,然后通过通信功能将公钥分发给服务器和数据使用者。
所述的数据管理模块主要包括附加数据和更新数据两个子模块。附加数据子模块和更新数据子模块的执行者都为数据拥有者,数据拥有者将实时的流式数据不断外包给服务器,即依次附加数据到服务器。当之后需要对服务器端之前存储的数据进行更改时,数据拥有者执行更新数据子模块来对数据及相应的证据进行更新。
所述的查询验证模块主要包括查询数据和查询结果验证两个子模块。当数据使用者想要查询数据时,通过执行查询数据子模块将会得到服务器返回的对应查询索引的数据以及相应的证据,之后执行查询结果验证子模块利用服务器返回的证据验证查询结果是否正确。
本发明的方案,在实体作用下运行:
数据拥有者,直接接触数据源,受限于设备的资源能力,将流式数据不断外包给服务器。数据拥有者的主要功能是密钥的生成和分发、附加数据以及更新数据。通过系统初始化操作生成系统的公钥和私钥,并将公钥分发给服务器和数据使用者,将私钥自己保存。利用私钥不断添加数据到服务器,即通过附加数据操作将不断到来的流式数据外包到服务器,并保存更新后的私钥。通过更新操作生成更新信息以及更新后的公私钥,同样将新的公钥分发给服务器和数据使用者,私钥自己保存。
服务器,服务器的主要功能是存储数据拥有者不断外包的数据,并为数据使用者提供查询操作。本系统中,服务器主要响应两方面请求,一方面是数据拥有者的外包数据请求和更新请求,服务器需要帮助数据拥有者存储数据量庞大的流式数据,并且更新存储的数据。另一方面是数据使用者的查询请求,需要根据接收到的查询索引执行查询操作找到对应索引存储的数据以及证据,并将数据和证据返回给数据使用者。
数据使用者,包含一个或多个数据使用者。每一个拥有公钥的数据使用者都可以向服务器发出查询请求,当接收到服务器返回的查询结果及证据后,利用证据对查询结果进行验证,若验证通过,则接受服务器的查询结果,反之,则终止操作。
三方实体之间通过初始化模块、数据管理模块和查询验证模块交互实现系统运行,分别是数据拥有者完成初始化操作后向服务器和数据使用者分发公钥、数据拥有者向服务器发送外包数据请求、数据使用者向服务器发送查询请求、服务器针对数据使用者发送的请求返回查询结果和证据,以及数据拥有者向服务器发送数据更新操作请求。各实体之间交互以及通信流程如图2所示,包括以下步骤:
步骤1:数据拥有者执行系统初始化操作,利用λ比特的安全参数生成公钥PK和私钥SK,然后分别将公钥分发给服务器和数据使用者,将私钥自己保存,具体流程如图3所示:
步骤1.1:根据安全参数生成阶为大素数p的循环群G,GT,Zr,实例化双线性配对函数并获取对象e:G×G→Gr
步骤1.2:在群Zr中随机选取元素z1,z2,计算
Figure GDA0002786307110000051
令公共参数pp=(g,h1,h2,h1,2,h2,1),陷门td=(z1,z2);
步骤1.3:初始化计数器为cnt=0,初始化版本更新信息T=null,随机选取k←{0,1}λ作为伪随机函数PRF的种子,计算r0=PRFk(0),对向量n0=(0,0)计算承诺值得到
Figure GDA0002786307110000061
则得到公钥PK=(pp,Croot,T),私钥SK=(k,td,cnt);
步骤1.4:调用Socket通信类中的方法创建套接字并绑定监听端口等待其他实体的连接请求;
步骤1.5:在与其他实体建立连接后,将公钥PK=(pp,Croot,T)分发给服务器和数据使用者,将私钥SK=(k,td,cnt)自己保存。
步骤2:数据拥有者利用私钥和数据d执行附加数据操作,生成数据的插入路径Inspath,然后将数据以及插入路径发送给服务器进行存储,具体流程如图4所示:
步骤2.1:解析公钥并设置索引i=cnt+1,之后计算伪随机函数得到ri←PRFk(i);
步骤2.2:计算
Figure GDA00027863071100000610
方法生成新添加数据的节点的承诺值Ci
步骤2.3:计算ri′=ri+z1(0-d)使得等式
Figure GDA0002786307110000062
成立,从而将新数据d添加至该节点ni1处;
步骤2.4:计算该节点父节点的索引
Figure GDA0002786307110000063
计算其为父节点的第j=((i-1)modq)+1个孩子节点,其中q为认证树的分叉树。利用伪随机函数得到np←PRFk(p),计算
Figure GDA0002786307110000064
得到该节点np的承诺值Cp,构造指针ptpj=(Cp,j)将节点ni连接在父节点np下面,计算得到ri″=ri+z2(0-ptpj)使得等式
Figure GDA0002786307110000065
成立,从而将指针插入到该节点ni2处;
步骤2.5:计算d存在于ni节点中ni1位置的证据
Figure GDA0002786307110000066
以及节点ni为节点np的第j个孩子节点的证据
Figure GDA0002786307110000067
将数据d以及证据组成的插入路径Inspath=(Pi1,ni,Pi2);
步骤2.6:与服务器端建立通信连接,之后将新添加的数据及插入路径发送给服务器进行存储。
步骤3:数据使用者执行查询数据操作,根据输入的查询索引i和公钥PK构建查询请求并发送给服务器,服务器接收到数据使用者的查询请求,利用公钥PK以及输入的索引i为输入,执行查询算法Query生成对应索引的数据以及相应的证据Aupathi,将这些查询结果返回给数据使用者,具体流程如图5所示:
步骤3.1:接收到数据使用者发送的查询索引i,根据
Figure GDA0002786307110000068
计算找到节点i所处于认证树的层数,找到节点ni中ni1处存储的数据
Figure GDA0002786307110000069
步骤3.2:接下来按照层数递减的顺序,自下向上分别找到该节点和根节点之间每一层的证据,包括每一层节点中所存数据的证据及其父节点的证据,从而构成一个认证路径为AuPathi=(Pi1,ni,Pi2,np,Pp2,…,n0);
步骤3.3:与数据使用者建立通信连接,并将节点i处的数据及相应证据
Figure GDA0002786307110000071
发送给数据使用者。
步骤4:数据使用者接收到服务器返回的查询结果
Figure GDA0002786307110000072
和Aupathi后,根据得到的证据利用验证算法Verify验证服务器的查询结果是否正确,若结果通过验证,则接收该查询结果,反之,则终止之后的所有操作。验证查询结果的具体流程如图6所示:
步骤4.1:解析公钥信息PK得到版本信息T;
步骤4.2:判断该节点存储的数据值是否为最近版本,及将得到的服务器返回的版本更新信息
Figure GDA0002786307110000073
与本地所存T(i)进行比对,若不同,则终止操作。否则,继续下面的验证步骤;
步骤4.3:按照层数递减的顺序,自下向上分别对节点中的数据di及父节点验证等式e(C/hi m,hi)=e(Pi,g)是否成立。若每一层都验证通过,则将输出数据库中位置i处对应的数据d作为最终的查询结果。反之,则终止操作。
步骤5:数据使用者利用私钥执行更新数据算法Update对索引i处的数据进行更新,将更新信息upd和更新后的公钥PK′发送给服务器,将公钥PK′也同时发送给数据使用者,服务器接收到数据拥有者的更新信息upd及公钥PK′后,将索引i处对应存储的数据进行更新:更新数据的具体流程如图7所示:
步骤5.1:输入想要更新的索引i,首先会接收到服务器端返回的对索引i的查询结果,得到
Figure GDA0002786307110000074
步骤5.2:利用验证查询结果算法对查询结果进行验证,若验证成功,则继续以下步骤。反之,则终止程序;
步骤5.3:利用伪随机函数得到ri←PRFk(i),计算
Figure GDA0002786307110000075
得到该节点ni的承诺值Ci
步骤5.4:令T(i)=T(i)+1,存入版本更新信息T中,此时公钥信息更新为PK′;
步骤5.5:计算ri′=ri+z1(0-(d′||T(i)))使得等式
Figure GDA0002786307110000076
成立,从而实现将新数据d′||T(i)添加至该节点ni1处;计算(d′||T(i))存在于ni节点中ni1位置的证据
Figure GDA0002786307110000077
解析认证路径AuPathi,将其中的Pi1更新为Pi1′从而得到更新路径(Pi1′,ni,Pi2);
步骤5.6:与其他实体建立连接,将更新路径(Pi1′,Ci,Pi2)和新数据(d′||T(i))发送给服务器,将更新后的公钥信息PK′分发给服务器以及数据使用者。

Claims (1)

1.一种面向外包流式数据的查询完整性验证方法,采用面向外包流式数据的查询完整性验证系统,所述系统包括初始化模块、数据管理模块和查询验证模块,所述初始化模块包括密钥生成和通讯两个子模块,所述数据管理模块包括附加数据和更新数据两个子模块,所述查询验证模块包括查询数据和查询结果验证两个子模块,在数据使用者、数据拥有者、服务器三个实体的作用下运行,其特征在于,所述方法包括以下步骤:
步骤1:数据拥有者通过初始化模块以自身为信任中心,生成公钥和私钥,通讯子模块将公钥分发给服务器和数据使用者,将私钥自己保存;
步骤1.1:数据拥有者随机选择
Figure FDA0002786307100000011
计算
Figure FDA0002786307100000012
其中
Figure FDA0002786307100000013
是一个随机的生成元,
Figure FDA0002786307100000014
Figure FDA0002786307100000015
为两个素数p阶群,满足映射
Figure FDA0002786307100000016
步骤1.2:令公共参数pp=(g,h1,h2,h1,2,h2,1),陷门td=(z1,z2),初始化计数器为cnt=0,初始化版本更新信息T=null;
步骤1.3:数据拥有者随机选择k←{0,1}λ作为伪随机函数PRF的种子,计算r0=PRFk(0),对向量n0=(0,0)计算承诺值得到
Figure FDA0002786307100000017
步骤1.4:数据拥有者将得到的公钥PK=(pp,Croot,T)分发给服务器和数据使用者,将私钥SK=(k,td,cnt)自己保存;
步骤2:数据拥有者通过数据管理模块中附加数据子模块将实时产生的流式数据外包到服务器,将新数据d以及数据的插入路径发送给服务器;
步骤2.1:数据拥有者为新添加的数据设置索引i=cnt+1,计数器也随之加1,即cnt=cnt+1;
步骤2.2:数据拥有者利用伪随机函数得到ri←PRFk(i),计算
Figure FDA0002786307100000018
得到节点ni的承诺值Ci,计算ri'=ri+z1(0-d)使得等式
Figure FDA0002786307100000019
成立,从而实现将新数据d添加至节点ni的ni1处;
步骤2.3:数据拥有者还要将节点添加到服务器端存储数据的认证树结构中,数据拥有者计算节点ni父节点的索引
Figure FDA00027863071000000110
计算其为父节点的第j=((i-1)mod q)+1个孩子节点,其中q为认证树的分叉树,利用伪随机函数得到rp←PRFk(p),计算
Figure FDA00027863071000000111
得到节点np的承诺值Cp,构造指针ptpj=(Cp,j)将节点ni连接在父节点np下面,计算得到ri”=ri+z2(0-ptpj)使得等式
Figure FDA00027863071000000112
成立,从而将指针插入到节点ni的ni2处;
步骤2.4:数据拥有者计算d存在于ni节点中ni1位置的证据
Figure FDA00027863071000000113
以及节点ni为节点np的第j个孩子节点的证据
Figure FDA00027863071000000114
步骤2.5:数据拥有者将数据d以及证据组成的插入路径Inspath=(Pi1,ni,Pi2)发送给服务器进行存储;
步骤3:数据使用者通过验证模块中查询数据子模块向服务器发送查询索引i,服务器会返回对应的数据及证据;
步骤3.1:服务器接收到数据使用者发送的查询索引,计算节点ni处于认证树的层数
Figure FDA0002786307100000021
找到节点ni中ni1处存储的数据
Figure FDA0002786307100000022
步骤3.2:接下来按照层数递减的顺序,自下向上分别找到节点ni和根节点之间每一层的证据,包括每一层节点中所存数据的证据及其父节点的证据,从而构成一个认证路径为AuPathi=(Pi1,ni,Pi2,np,Pp2,…,n0);
步骤3.3:服务器将查询到的数据
Figure FDA0002786307100000023
及认证路径AuPathi发送给数据使用者;
步骤4:数据使用者通过查询验证模块中的查询结果验证子模块对查询结果进行验证,从而保证得到的查询数据确实为数据使用者上传到服务器的第i个数据;
步骤4.1:数据使用者根据公钥中存储的版本更新信息T判断节点ni存储的数据值是否为最近版本,及将得到的服务器返回的版本更新信息
Figure FDA0002786307100000024
与本地所存T(i)进行比对,若不同,则终止操作;否则,继续下面的验证步骤;
步骤4.2:数据使用者根据认证路径AuPathi,按照层数递减的顺序,自下向上分别对节点中的数据di及父节点验证等式e(C/hi m,hi)=e(Pi,g)是否成立;若每一层都验证通过,则将输出数据库中位置i处对应的数据d;反之,则终止操作;
步骤5:数据拥有者可以对之前上传到服务器的数据进行更新;
步骤5.1:数据拥有者通过数据管理模块中的更新数字子模块将索引i处的数据更新为d',将更新索引i以及新数据d'发送到服务器;
步骤5.2:服务器首先执行查询算法查询索引i处原数据d,将d以及认证路径AuPathi返回给数据拥有者;
步骤5.3:数据拥有者首先验证服务器查询结果的正确性,若不正确,则终止操作;反之,则利用伪随机函数得到ri←PRFk(i),计算
Figure FDA0002786307100000025
得到节点ni的承诺值Ci,令版本更新信息T(i)=T(i)+1并存入T,连接新数据d'和版本信息T(i);计算ri'=ri+z1(0-(d'||T(i)))使得等式
Figure FDA0002786307100000026
成立,从而实现将新数据d'||T(i)添加至节点ni的ni1处;
步骤5.4:数据拥有者计算(d'||T(i))存在于ni节点中ni1位置的证据
Figure FDA0002786307100000027
解析认证路径AuPathi,将其中的Pi1更新为Pi1'从而得到更新路径(Pi1',ni,Pi2);
步骤5.5:数据拥有者将新数据d'||T(i)和更新路径(Pi1',ni,Pi2)组成更新信息upd发送给服务器;
步骤5.6:服务器接收到更新信息upd后,对新数据进行存储。
CN201811024547.XA 2018-09-04 2018-09-04 一种面向外包流式数据的查询完整性验证方法 Active CN109274655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811024547.XA CN109274655B (zh) 2018-09-04 2018-09-04 一种面向外包流式数据的查询完整性验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811024547.XA CN109274655B (zh) 2018-09-04 2018-09-04 一种面向外包流式数据的查询完整性验证方法

Publications (2)

Publication Number Publication Date
CN109274655A CN109274655A (zh) 2019-01-25
CN109274655B true CN109274655B (zh) 2021-07-13

Family

ID=65188168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811024547.XA Active CN109274655B (zh) 2018-09-04 2018-09-04 一种面向外包流式数据的查询完整性验证方法

Country Status (1)

Country Link
CN (1) CN109274655B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800235B (zh) * 2019-01-28 2021-06-15 东北大学 一种基于认证树的外包数据库全操作查询验证系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812141A (zh) * 2016-03-07 2016-07-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN107451281A (zh) * 2017-08-08 2017-12-08 东北大学 基于ads的外包数据库sql查询完整性验证系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126059A1 (en) * 2001-12-18 2003-07-03 Hensley Roy Austin Intelectual property (IP) brokering system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812141A (zh) * 2016-03-07 2016-07-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN107451281A (zh) * 2017-08-08 2017-12-08 东北大学 基于ads的外包数据库sql查询完整性验证系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Secure Collaborative Publicly Verifiable Computation;Qiang Wang 等;《IEEE Access ( Volume: 5 )》;20170222;全文 *
云计算中可验证的外包数据库加密搜索方案;韩盼盼 等;《山东大学学报(理学版)》;20170930;全文 *

Also Published As

Publication number Publication date
CN109274655A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
US11838415B2 (en) Blockchain-implemented method and system
CN110912707B (zh) 基于区块链的数字证书处理方法、装置、设备及存储介质
CN110419053B (zh) 用于信息保护的系统和方法
CN109889497B (zh) 一种去信任的数据完整性验证方法
Liu et al. Public auditing for big data storage in cloud computing--a survey
Liu et al. Efficient verifiable public key encryption with keyword search based on KP-ABE
CN104038349A (zh) 一种基于kp-abe的有效可验证的公钥可搜索加密方法
CN106487786B (zh) 一种基于生物特征的云数据完整性验证方法及系统
CN110365469B (zh) 一种支持数据隐私保护的云存储中数据完整性验证方法
US11343243B2 (en) Machine-to-machine streaming authentication of network elements
CN103605784A (zh) 一种多重云环境下数据完整性验证方法
CN104901804A (zh) 一种基于用户自主的标识认证实现方法
CN108092766A (zh) 一种密文搜索权限验证方法及其系统
CN110719172B (zh) 区块链系统中的签名方法、签名系统以及相关设备
US11424925B2 (en) Systems and methods for minting a physical device based on hardware unique key generation
Fan et al. Verifiable attribute-based multi-keyword search over encrypted cloud data in multi-owner setting
CN114124371A (zh) 一种基于无证书的满足mtp安全的公钥可搜索加密方法
CN109274655B (zh) 一种面向外包流式数据的查询完整性验证方法
CN113836571B (zh) 基于云和区块链的医疗数据拥有终端位置匹配方法及系统
CN110910110A (zh) 一种数据处理方法、装置及计算机存储介质
CN117201031A (zh) 一种基于同态哈希树的文件分布式存储共享方法
CN108632257B (zh) 支持分层搜索的加密健康记录的获取方法和系统
US10043039B2 (en) Verification paths of leaves of a tree
CN114567639B (zh) 一种基于区块链的轻量级访问控制系统及方法
Khalil et al. DSCOT: An NFT-based blockchain architecture for the authentication of IoT-enabled smart devices in smart cities

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant