CN111526146B - 数据持有验证方法、数据搜索方法及相应的系统 - Google Patents
数据持有验证方法、数据搜索方法及相应的系统 Download PDFInfo
- Publication number
- CN111526146B CN111526146B CN202010331083.8A CN202010331083A CN111526146B CN 111526146 B CN111526146 B CN 111526146B CN 202010331083 A CN202010331083 A CN 202010331083A CN 111526146 B CN111526146 B CN 111526146B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- verification
- client
- random number
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/144—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据持有验证方法,其特征在于,服务器持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述数据指纹σi、所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,该方法包括:在验证端向服务器请求持有数据证明时,服务器生成一个新的随机数β与持有数据计算,生成返回数据供验证端验证服务器持有数据的完整性。该方法能防止在验证端向服务器验证持有数据时的数据泄露。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据持有验证方法、一种数据搜索方法及其相应的系统。
背景技术
随着计算机网络技术的发展,我们生活中的信息呈现出爆发式的增长,传统的数据存储方式已经不能满足人们对于数据管理的需求,云存储的发展已经势不可挡。然而,云存储系统也存在许多安全问题,云存储数据被盗取或者篡改的情况时有发生,导致数据的存储并不安全。在云存储服务器不完全可信的情况下,如何对数据进行安全存储,如何有效验证云存储数据的完整性,是云存储时代迫在眉睫需要解决的问题。
现有技术中,数据持有完整性验证的方法为:服务器持有加密数据,当验证端需要验证时,向服务器发送请求,服务器返回数据,验证端对加密数据进行验证,判断服务器是否持有完整的数据。当前的数据搜索方法中,多为客户端保存计数器,当需要搜索时,客户端根据计数器产生搜索令牌,上传服务器,服务器根据搜索令牌发送返回数据。
现有技术中验证端可以通过对同一数据的多次验证实现追踪该数据,造成泄密,虽然存储在服务器的数据多为密文,但对于数据安全持有领域,验证端能够追踪数据即相当于数据泄露。现有数据搜索方法中,为数据安全客户端需要保存计数器,造成了客户端的体积庞大,因此有必要对现存数据验证方法和搜索方法进行改进。
知识点1:
文中所有加法、乘法运算都在有限域中进行,等号的意义表示模的结果。例如:对于整数求模运算指求该整数的余数,表示为3*5≡1(mod7),3乘以5除7余1,等式两边为模7的结果。构造有限域F7,将所有正整数都模7,得到集合F7={0,1,2,3,4,5,6},F7上的乘法运算中乘数和积都在此集合内。
知识点2:
在密码学领域,椭圆曲线上的点g和整数α有如下特性:
gα=h
当有限域足够大时,不能从g和h推出α。
知识点3:
若椭圆曲线上点群G中的点g1和g2满足配对函数e(x,y),有:
e(g1 β,g2)=e(g1,g2 β),
e(g1 α,g2 β)=e(g1,g2 αβ),
其中,α,β为有限域中的整数。
发明内容
为避免现有数据安全验证技术中存在数据泄露隐患的问题,本发明提供一种数据持有验证的方法和系统,所述技术方案如下:
本发明一个方面提供一种数据持有验证方法,其特征在于,服务器持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述数据指纹σi、所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,该方法包括:
所述服务器接收验证端的数据验证请求和验证端生成的一组随机数;
所述服务器生成新的随机数β;
所述服务器利用所述随机数β、所述数据M、所述数据指纹σi、所述随机数v和所述公钥h、数g1和数g2进行计算,生成返回数据;
所述服务器将所述返回数据发送至所述验证端,所述验证端用于对所述返回数据进行验证,判断所述服务器持有的所述数据M和所述数据指纹σi是否完整。
本发明的又一方面,提供一种数据持有验证方法,该方法包括:
验证端生成一组随机数v,将所述随机数v和数据验证请求发送至服务器;
所述验证端自所述服务器接收返回数据,所述返回数据为所述服务器利用新生成的随机数β与持有的数据M、数据指纹σi、公钥h、所述随机数v、数g1和数g2计算所得;
所述验证端利用所述返回数据,验证是否符合椭圆曲线群中的配对函数。
本发明的另一个方面,提供一种数据持有验证系统,该系统包括:
验证端,用于向服务器发送验证数据持有的请求和随机数v;
服务器,持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,用于根据所述验证端的请求生成新的随机数β,利用所述随机数v、对所述数据M、所述数据指纹σi以及公钥h、数g1和数g2进行计算,生成返回数据,并将所述返回数据发送至所述验证端。
为解决现有技术中数据安全搜索方法中客户端体积庞大、便携性较差的问题,本发明另一方面提供一种数据搜索方法,服务器持有计数器,该方法包括:
客户端从服务器下载计数器,并利用上述的验证方法验证所述计数器的完整性;
客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
所述客户端接收所述服务器根据所述搜索令牌返回的对应数据。
本发明还提供一种数据搜索系统,其特征在于,包括:
服务器,用于存储计数器、计数器指纹、数据、数据指纹;
客户端,用于向服务器发起搜索和验证;
其中,所述客户端从服务器下载计数器,并利用上述的验证方法验证所述计数器的完整性;
所述客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
综上所述,本发明提供的数据持有验证方法和系统,利用服务器的返回数据完成对服务器持有数据的安全性、完整性验证,还能够避免验证端在向服务器验证持有数据的同时追踪验证数据,进而防止数据泄露。本发明提供的数据搜索方法和系统,将计数器保存在服务器中,每次使用时下载、验证,保证搜索方法安全性的同时,增强了客户端的便携性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中数据持有验证方法的流程示意图;
图2为本发明另一实施例中数据持有验证系统的构成图;
图3为本发明另一实施例中数据持有验证页面图;
图4为本发明另一实施例中数据搜索方法的流程示意图;
图5为本发明另一实施例中数据搜索方法的流程示意图;
图6为本发明另一实施例中数据搜索的信息输入界面图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例1
本实施例提供一种数据持有验证方法,如图1所示,服务器持有数据M、数据指纹σi和公钥h、数g1和数g2,其中所述数据指纹σi、所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,该方法包括:
所述验证端向所述服务器发送需要验证数据持有的请求,并生成一组随机数v,发送至服务器;
所述服务器生成新的随机数β;
该服务器每次收到验证端发来的验证请求,都生成新的随机数β;
所述服务器利用所述随机数β、所述数据M、所述数据指纹σi、所述随机数v、所述公钥h、数g1和数g2进行计算,生成返回数据;
所述服务器将所述返回数据发送至所述验证端;
所述验证端对所述返回数据进行验证,判断所述服务器持有的所述数据M和所述数据指纹σi是否完整。
其中椭圆曲线上点群G为有限域中基于特定椭圆曲线构造的满足双线性映射关系的点群,这类点群中的点满足配对函数。
Name、i、j信息包含在数据M中,数据M以分片的形式从客户端上传,并存储在服务器中。
上述数据M可以是明文,也可以是加密的数据。
由于每次验证服务器都生成新的β值,再利用该β值计算产生新的返回数据,因此验证端无法通过对同一数据的多次验证实现对该数据的追踪。
具体地,该方法作用的系统还包括客户端,该客户端持有私钥α,所述方法还包括:
所述客户端利用所述m和所述私钥α生成所述数据指纹σi;
所述客户端选取所述G中的点g2,利用所述私钥α和所述g2,根据下述式I-1计算生成所述公钥h;
h=g2 α 式I-1
所述客户端选取所述G中的任一点g1;
所述客户端将所述数据M、所述数据指纹σi、所述g1、所述g2和所述公钥h上传至所述服务器。
具体地,所述所述客户端利用所述数据M和私钥α生成数据指纹σi中采用的方法为:所述私钥α为有限域中的一个随机整数,选取s个所述G上的点uj,根据下述式I计算数据块bi对应的所述数据指纹σi,
其中H(name,i)为哈希函数,name为所述数据M的文件名,mi,j为所述数据M中的数据片,所述数据M包含n块,每块设为bi,i为1~n的正整数,任意一块数据块bi包含s片,s为正整数,每片为mi,j,j为1~s的正整数。
哈希函数可以把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。H(name,i)为一种将字符串转为整数然后转换为椭圆曲线上的点的哈希函数,通过将每一块的索引值哈希为对应的有限域中的整数,进而根据曲线方程转化为椭圆曲线上的点。
文件分块后可能会有部分数据块内容和索引值一样,但不同文件块的指纹必须是唯一的不能相同,所以用文件名name和文件块索引值i连接为新的索引,计算每块指纹时加上块的新索引,新索引一般是字符串,所以需要先将字符串转为有限域上的整数,然后转换为椭圆曲线上的点才能参与计算,这里H可以当成是一种哈希函数,将字符串拼接转为整数,然后将一个整数先hash为256位的数,作为点的横坐标,然后根据曲线方程计算得到纵坐标,从而将一个任意整数转换为了该曲线上的点,此操作通过哈希函数保证了不同的数对应唯一的点。输入整数输出点。
具体地,该方法还包括:
所述服务器利用所述随机数v、所述随机数β与所述数据M按下述式II-1计算,生成返回数据μj’,
其中,i、j、n为正整数,集合{v1,v2,…vi,…vn}为所述随机数v;mi,j为所述数据M的一部分,所述数据M包含n块,每块设为bi,i为1~n的正整数,任意一块数据块bi包含s片,s为正整数,每片为mi,j,j为1~s的正整数;
所述服务器利用所述随机数v与所述数据指纹σi按下述式II-2进行计算,生成返回数据σ。
对于每一次验证,服务器都用不同的β加密混合数据块μj,防止μj泄露原始数据信息。
具体地,所述返回数据包括:K、μj’、σ、g1、g2、g1 β、h、g2 β、hβ,其中g1、g2为所述服务器从所述G中的任意点,g2 α为所述公钥h,K由下述式II-3计算所得,g1 β由所述g1与所述随机数β计算所得,g2 β由所述g2与所述随机数β计算所得,g2 αβ为所述公钥h与所述随机数β计算所得。
具体地,该方法还包括:
所述验证端依照如下式IV-1至式IV-3对所述返回数据进行验证,
验证下述式IV-1(1)和式IV-1(2)是否成立,
e(g1 β,g2)=e(g1,g2 β) 式IV-1(1)
e(g1 β,h)=e(g1,hβ) 式IV-1(2)
验证下述式IV-2是否成立,
验证下述式IV-3是否成立。
若所述式IV-1至式IV-3验证全部成立,说明所述服务器持有完整的所述数据M和所述数据指纹σi。
式IV-1(1)、(2)验证若成立,可证明服务器返回的g2 αβ确为利用g2 α进行β指数计算得到的,服务器没有作弊。式IV-2验证若成立,可证明服务器返回的K确实使用1/β进行过加密,与g2 β是配对的。式IV-3验证若成立,可证明服务器持有正确的μj’,即正确的原始加密文件m,并通过验证与指纹σi是一致的,最后的验证结果如图3所示。
客户端无需下载托管于服务器的原始数据,便可验证服务器出示的数据持有证明。如果服务器篡改客户端上传的原始数据,将无法生成合法的数据持有证明并通过客户端验证。
实施例2
请参见图2,其示出了一种数据持有验证系统的构成图。
验证端103,用于向服务器发送验证数据持有的请求和随机数v;
服务器102,持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,用于根据所述验证端的请求生成新的随机数β,利用所述随机数v、对所述数据M、所述数据指纹σi、公钥h、数g1和数g2进行计算,生成返回数据,并将所述返回数据发送至所述验证端;
所述验证端103还用于验证服务器持有的数据M和数据指纹σi是否完整。
该系统还可包括客户端101,用于生成数据和公钥,并将生成的数据和公钥上传服务器。
提出验证请求的可以是一个验证端103,也可以是多个验证端,如验证端设备1和验证端设备2,还可以是客户端设备101,验证端验证时可以直接通过服务器102返回的数据验证服务器是否保存了完整的数据。
实施例3
请参见图4,其示出了本发明提供的一种数据搜索方法,应用于包括服务器和客户端的系统,服务器持有计数器,该方法包括:
301客户端从服务器下载计数器,并利用前述实施例中的验证方法验证所述计数器的完整性;
302客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
303所述客户端接收所述服务器根据所述搜索令牌返回的对应数据。
验证数据完整性不是该搜索方法的必要步骤,但为确保搜索到的数据安全完整,客户端可随时对存储在服务器的数据进行验证。
该数据搜索方法的安全性依赖于加密算法的安全性而不依赖第三方,同时进行持有证明时也只需验证部分指纹,不需要下载数据,所以服务器始终无法获知和篡改用户的数据。客户端将计数器上传、保存在服务器中,可以提高客户端的便携性。
本发明所涉及的数据的搜索可以实现前向隐私安全和后向隐私安全,其中前项隐私安全指用户添加加密文件后,在不主动检索的情况下,让服务器无法用以前的关键词对新文件检索从而判断新文件是否包含该关键词;后向隐私安全指用户添加文件后执行删除,在不主动检索的情况下,让服务器无法得知删除的文件信息。
在实现前向后向隐私安全中,需要客户端根据搜索次数SC对关键词进行加密,使得每次操作时发给服务器的关键词是不同的,从而保证服务器无法根据既有的关键词追踪检索内容。为避免服务器获知SC的具体内容,本发明使用上述数据持有验证的方法对搜索过程中下载的SC进行完整性和安全性验证,确保后续搜索中数据的安全。
图5展示了如何通过SC实现前向隐私安全搜索。下述过程展示了在满足前向隐私安全的基础上实现后向隐私安全。
具体添加、删除和搜索的过程如下所述:
A.添加索引:
(1)插入(keyword,index)对,如(kw,ind1)(kw,ind2)(kw,ind3)(kw,ind4),其中一个关键词(keyword)可以对应多个索引(index);
(2)通过计数器记录搜索次数(SC),利用搜索次数加密关键词(kw)得到加密的关键词m_kw0,此时SC=0;
(3)用m_kw0初始化PPKE算法,得到初始密钥SK0(PPKE(SK0));
(4)利用(kw,indi)生成对应标签ti,如t1,t2,t3,t4,根据PPKE(SK0)加密算法,用ti对indi加密,得到indi的密文cti,如ct1,ct2,ct3,ct4;
(5)将cti和m_kw0一起上传至服务器。
B.删除索引:
(1)删除(kw,ind1)(kw,ind2);
(2)用(kw,ind1)(kw,ind2)生成对应的标签t1,t2,;
(3)利用添加索引中产生的初始密钥SK0(PPKE(SK0))根据PPKE(SK0)打孔算法,用t1,t2,对SK0进行打孔,得到两个子密钥k1、k2,SK0更新为SK0’=(sk0,k1,k2),SK0’只能对ct3,ct4解密得到ind3,ind4,无法解密ct1,ct2;
(4)将m_kw0和(k1,k2)上传至服务器,由于服务器没有sk0所以不能做任何解密操作。
C.搜索:
(1)对关键词kw搜索,SC=0,使用添加和删除索引步骤中相同的PPKE(SK0);
(2)利用PPKE(SK0)关键词分享算法得到sk0;
(3)用kw生成搜索令牌ST(kw);
(4)将m_kw0、sk0、ST(kw)发送至服务器,
(5)服务器根据m_kw0取出ct和k,由k取出t,将缓存中ST对应的内容删除,t1,t2,此时缓存中无内容;
(6)服务器用得到的sk0,k1,k2拼合,组成密钥,解密得到ind3,ind4,找到对应的t3,t4,并将ind3,ind4,t3,t4,共同添加到缓存中;
输入搜索关键词的页面如图6所示。
A1.添加索引
(1)客户端插入索引,SC=1,关键词加密得到m_kw1,通过PPKE加密索引得到ct5和ct6;
(2)服务器插入m_kw1和对应的ct5,和ct6;
B1.删除索引:
(1)服务器删除之前的索引(kw,ind3)、(kw,ind5);
(2)客户端从服务器下载计数器,查询kw对应的搜索次数SC=1;
(3)用SC对kw进行加密得到m_kw1;
(4)用m_kw1初始化PPKE算法,得到初始密钥SK1(PPKE(SK1));
(5)通过PPKE(SK1)打孔算法,用t3对SK1进行打孔得到子密钥k3,用t5对SK1进行打孔得到子密钥k5,将(m_kw1,k3)、(m_kw1,k5)发送至服务器;
(6)服务器插入(m_kw1,k3)、(m_kw1,k5)。
C1.搜索:
(1)利用PPKE(SK1)关键词分享算法得到sk1;
(2)SC=1,利用之前生成的搜索令牌ST(kw);
(3)将m_kw1、sk1、ST(kw)发送至服务器;
(4)服务器分别从上述数据库根据m_kw1得到ct5,ct6和k3,k5,然后对缓存进行下述操作:从k3,k5中取出和t3,t5,缓存中若有t3,删除对应内容,再从ct6中取出t6,和ind6一起添加到缓存中,最后将缓存中ST(kw)对应的ind4、ind6作为搜索结果返回。
实施例4
请参见图5,其示出了一种数据搜索系统,其特征在于,包括:
服务器server,用于存储计数器、计数器指纹、数据、数据指纹;
客户端client,用于向服务器发起搜索和验证;
其中,所述验证端从服务器下载计数器,并利用上述的验证方法验证所述计数器的完整性;
所述客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
所述服务器根据所述搜索令牌返回对应的数据。
其中,当客户端client需要搜索某数据,如张三时,首先从服务器下载计数器,该计数器用于记录搜索次数,并利用上述的验证方法验证所述计数器是否完整正确;
之后客户端client根据计数器中的搜索次数,如第一次搜索给出数字1,第二次搜索给出数字2,第一次生成搜索令牌ST1,第二次则生成搜索令牌ST2,再将该搜索令牌ST上传至服务器;
所述服务器根据所述搜索令牌返回对应的数据对应的索引信息,如第一次返回张三对应的{13,14},第二次服务器根据ST2得到索引{15,16},并能够根据ST2计算到上一个ST1,得到ST1对应的索引{13,14},然后返回张三对应的索引为{13,14,15,16}。
因为两次返回的索引不同,则服务器或其他第三方无法追踪两次搜索的数据。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据持有验证方法、数据持有验证装置进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (8)
1.一种数据持有验证方法,其特征在于,服务器持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述数据指纹σi、所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,该方法包括:
所述服务器接收验证端的数据验证请求和验证端生成的一组随机数v;
所述服务器生成新的随机数β;
所述服务器利用所述随机数β、所述数据M、所述数据指纹σi、所述随机数v、所述公钥h、数g1和数g2进行计算,生成返回数据;
所述服务器利用所述随机数v、所述随机数β与所述数据M按下述式II-1计算,生成返回数据μj’,
其中,i、j、n为正整数,集合{v1,v2,…vi,…vn}为所述随机数v,mi,j为所述数据M的一部分,所述数据M包含n块,每块设为bi,i为1-n的正整数,任意一块数据块bi包含s片,s为正整数,每片为mi,j,j为1-s的正整数;
所述服务器利用所述随机数v与所述数据指纹σi按下述式II-2进行计算,生成返回数据σ,
所述返回数据包括:K、μj’、σ、g1、g2、g1 β、h、g2 β、hβ,其中g1、g2为所述服务器从所述G中的任意点,K由下述式II-3计算所得,g1 β由所述g1与所述随机数β计算所得,g2 β由所述g2与所述随机数β计算所得,hβ为所述公钥h与所述随机数β计算所得,
所述服务器将所述返回数据发送至所述验证端,所述验证端用于对所述返回数据进行验证,判断所述服务器持有的所述数据M和所述数据指纹σi是否完整。
2.根据权利要求1所述的数据持有验证方法,其特征在于,客户端持有私钥α,所述方法还包括:
所述客户端利用所述数据M和所述私钥α生成所述数据指纹σi;
所述客户端选取所述G中的点g2,利用所述私钥α和所述g2,根据下述式I-1计算生成所述公钥h;
h=g2 α 式I-1
所述客户端选取所述G中的任一点g1;
所述客户端将所述数据M、所述数据指纹σi、所述g1、所述g2和所述公钥h上传至所述服务器。
4.一种数据持有验证方法,其特征在于,该方法包括:
验证端生成一组随机数v,将所述随机数v和数据验证请求发送至服务器;
所述验证端自所述服务器接收返回数据,所述返回数据为所述服务器利用新生成的随机数β与持有的数据M、数据指纹σi、公钥h、所述随机数v、数g1和数g2计算所得;
所述g1、所述g2为椭圆曲线上点群G中的点,由客户端上传,所述公钥h由所述客户端利用私钥α经下式III-1计算后上传,
h=g2 α 式III-1;
所述验证端从服务器接收返回数据,所述返回数据包括μj’、σ、K、h、g1、g2、g1 β、g2 β、hβ,其中μj’由服务器利用下式III-2计算所得,σ由服务器利用下式III-3计算所得,K由服务器利用下式III-4计算所得;
其中,H(name,i)为哈希函数,i、j、n为正整数,集合{v1,v2,…vi,…vn}为所述随机数v,mi,j为所述数据M的一部分,所述数据M包含n块,每块设为bi,i为1-n的正整数,任意一块数据块bi包含s片,s为正整数,每片为mi,j,j为1-s的正整数;
所述验证端利用所述返回数据,验证是否符合椭圆曲线群中的配对函数。
6.一种数据持有验证系统,其特征在于,所述系统包括:
验证端,用于向服务器发送验证数据持有的请求和随机数v;
服务器,持有数据M、数据指纹σi、公钥h、数g1和数g2,其中所述公钥h、所述g1、所述g2为椭圆曲线上点群G中的点,用于根据所述验证端的请求生成新的随机数β,利用所述随机数v、对所述数据M、所述数据指纹σi、公钥h、数g1和数g2进行计算,生成返回数据;
所述g1、所述g2为椭圆曲线上点群G中的点,由客户端上传,所述公钥h由所述客户端利用私钥α经下式III-1计算后上传,
h=g2 α 式III-1;
所述返回数据包括μj’、σ、K、h、g1、g2、g1 β、g2 β、hβ,其中μj’由服务器利用下式III-2计算所得,σ由服务器利用下式III-3计算所得,K由服务器利用下式III-4计算所得;
其中,H(name,i)为哈希函数,i、j、n为正整数,集合{v1,v2,…vi,…vn}为所述随机数v,mi,j为所述数据M的一部分,所述数据M包含n块,每块设为bi,i为1-n的正整数,任意一块数据块bi包含s片,s为正整数,每片为mi,j,j为1-s的正整数,并将所述返回数据发送至所述验证端;
所述验证端还用于验证服务器持有的数据M和数据指纹σi是否完整。
7.一种数据搜索方法,其特征在于,服务器持有计数器,该方法包括:
客户端从服务器下载计数器,并利用权利要求1-4任一项所述的验证方法验证所述计数器的完整性;
所述客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
所述客户端接收所述服务器根据所述搜索令牌返回的对应数据。
8.一种数据搜索系统,其特征在于,包括:
服务器,用于存储计数器、计数器指纹、数据、数据指纹;
客户端,用于向服务器发起搜索和验证;
其中,所述客户端从服务器下载计数器,并利用权利要求1-4任一项所述的验证方法验证所述计数器的完整性;
所述客户端根据计数器中的搜索次数对检索关键词生成搜索令牌,再将所述搜索令牌上传至服务器;
所述服务器根据所述搜索令牌返回对应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010331083.8A CN111526146B (zh) | 2020-04-24 | 2020-04-24 | 数据持有验证方法、数据搜索方法及相应的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010331083.8A CN111526146B (zh) | 2020-04-24 | 2020-04-24 | 数据持有验证方法、数据搜索方法及相应的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111526146A CN111526146A (zh) | 2020-08-11 |
CN111526146B true CN111526146B (zh) | 2022-05-17 |
Family
ID=71904433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010331083.8A Active CN111526146B (zh) | 2020-04-24 | 2020-04-24 | 数据持有验证方法、数据搜索方法及相应的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111526146B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729250A (zh) * | 2008-10-21 | 2010-06-09 | 日电(中国)有限公司 | 增量可证数据完整性验证方法、设备和系统 |
CN104811450A (zh) * | 2015-04-22 | 2015-07-29 | 电子科技大学 | 云计算中一种基于身份的数据存储方法及完整性验证方法 |
WO2016048300A1 (en) * | 2014-09-24 | 2016-03-31 | Hewlett Packard Enterprise Development Lp | Operating system agnostic validation of firmware images |
CN106357701A (zh) * | 2016-11-25 | 2017-01-25 | 西安电子科技大学 | 云存储中数据的完整性验证方法 |
CN107707354A (zh) * | 2017-10-16 | 2018-02-16 | 广东工业大学 | 一种基于椭圆曲线加密法的云存储数据验证方法及系统 |
CN108540291A (zh) * | 2018-03-23 | 2018-09-14 | 西安电子科技大学 | 基于身份的云存储中数据完整性验证方法 |
CN109525669A (zh) * | 2018-11-20 | 2019-03-26 | 桂林电子科技大学 | 一种支持指定人员验证的云数据安全存储方法及系统 |
CN109586896A (zh) * | 2018-11-14 | 2019-04-05 | 陕西师范大学 | 一种基于哈希前缀树的数据完整性验证方法 |
-
2020
- 2020-04-24 CN CN202010331083.8A patent/CN111526146B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729250A (zh) * | 2008-10-21 | 2010-06-09 | 日电(中国)有限公司 | 增量可证数据完整性验证方法、设备和系统 |
WO2016048300A1 (en) * | 2014-09-24 | 2016-03-31 | Hewlett Packard Enterprise Development Lp | Operating system agnostic validation of firmware images |
CN104811450A (zh) * | 2015-04-22 | 2015-07-29 | 电子科技大学 | 云计算中一种基于身份的数据存储方法及完整性验证方法 |
CN106357701A (zh) * | 2016-11-25 | 2017-01-25 | 西安电子科技大学 | 云存储中数据的完整性验证方法 |
CN107707354A (zh) * | 2017-10-16 | 2018-02-16 | 广东工业大学 | 一种基于椭圆曲线加密法的云存储数据验证方法及系统 |
CN108540291A (zh) * | 2018-03-23 | 2018-09-14 | 西安电子科技大学 | 基于身份的云存储中数据完整性验证方法 |
CN109586896A (zh) * | 2018-11-14 | 2019-04-05 | 陕西师范大学 | 一种基于哈希前缀树的数据完整性验证方法 |
CN109525669A (zh) * | 2018-11-20 | 2019-03-26 | 桂林电子科技大学 | 一种支持指定人员验证的云数据安全存储方法及系统 |
Non-Patent Citations (2)
Title |
---|
Shu Yang ; Yang Hu ; Boli Xiong ; Gangyao Kuang.Recognition of Military and Civilian ships in SAR Images based on Ellipse Fitting Similarity.《 2019 IEEE 2nd International Conference on Electronics Technology (ICET)》.2019,全文. * |
云数据完整性验证的关键技术研究;邱佳惠;《电子科技大学》;20170301;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111526146A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110334526B (zh) | 一种支持验证的前向安全可搜索加密存储系统及方法 | |
KR101999188B1 (ko) | 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안 | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
CN109614818B (zh) | 可授权的基于身份的带关键词搜索加密方法 | |
JP4958246B2 (ja) | 高速検索可能な暗号化のための方法、装置およびシステム | |
US9275250B2 (en) | Searchable encryption processing system | |
JPH11338780A (ja) | 電子文書を認定し安全に保管するための方法及び装置 | |
CN112800445B (zh) | 一种用于密文数据的前后向安全和可验证的布尔查询方法 | |
CN112989375B (zh) | 一种分级优化加密无损隐私保护方法 | |
CN105553660B (zh) | 一种动态可搜索公钥加密方法 | |
CN115225409B (zh) | 基于多备份联合验证的云数据安全去重方法 | |
CN112532650A (zh) | 一种基于区块链的多备份安全删除方法、系统 | |
CN112685753B (zh) | 一种用于加密数据存储的方法及设备 | |
CN110908959A (zh) | 一种支持多关键字和结果排序的动态可搜索加密方法 | |
CN111159352B (zh) | 一种支持多关键词加权检索和结果排序且可验证的加解密方法 | |
Wen et al. | BDO-SD: An efficient scheme for big data outsourcing with secure deduplication | |
WO2023226308A1 (zh) | 一种文件共享方法、系统、电子设备及可读存储介质 | |
CN114417073B (zh) | 一种加密图的邻居节点查询方法及装置、电子设备 | |
CN110851848B (zh) | 对称可搜索加密的隐私保护方法 | |
Ma et al. | CP-ABE-based secure and verifiable data deletion in cloud | |
CN108920968B (zh) | 一种基于连接关键词的文件可搜索加密方法 | |
Yao et al. | A secure hierarchical deduplication system in cloud storage | |
CN111526146B (zh) | 数据持有验证方法、数据搜索方法及相应的系统 | |
CN114793176B (zh) | 支持撤销和验证的无配对可搜索加密方法 | |
KR101232385B1 (ko) | 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템 |
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 |