CN106022145B - 一种基于密文索引的数据查询方法 - Google Patents
一种基于密文索引的数据查询方法 Download PDFInfo
- Publication number
- CN106022145B CN106022145B CN201610327978.8A CN201610327978A CN106022145B CN 106022145 B CN106022145 B CN 106022145B CN 201610327978 A CN201610327978 A CN 201610327978A CN 106022145 B CN106022145 B CN 106022145B
- Authority
- CN
- China
- Prior art keywords
- random number
- enquiry module
- data
- signing messages
- module
- 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
Classifications
-
- 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/606—Protecting data by securing the transmission between two devices or processes
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于密文索引的数据查询方法,包括如下步骤:向数据提供模块发送查询请求;接收数据提供模块对第一签名信息验证后产生的第一随机数Ry;对第一随机数Ry和查询索引ID进行哈希计算,同时生成第二随机数Rx,接收数据提供模块发送的查询结果信息和第二签名信息;对第二签名信息验证后,使用私钥对查询结果信息进行解密以获取查询结果。本发明通过数据提供模块和查询模块分别指定一个随机变量,并进行重新运算,如果结果正确表明双方知道密文对应的ID;同时使用各自的公私钥进行签名和加密,保证数据传输的保密性和不可抵赖性,进而提高数据查询的安全性。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种基于密文索引的数据查询方法。
背景技术
当数据提供机构发布信息ID的HASH密文进行索引时,虽然可以有效保障信息不被泄密,但是,同时也会引起以下数据安全问题:其一是存在数据查询者乱查询,即使不知道密文索引的含义也来查询获取数据,从而使得数据提供机构会时刻担心数据受到泄露;其二是数据提供机构提供的不是真实数据,而是抄袭其他数据提供机构发布的有效ID的HASH来作为索引,伪造数据,从而损害数据查询者利益。
发明内容
本发明的目的在于提供一种基于密文索引的数据查询方法,用以解决现有技术中数据查询的安全问题。
本发明的第一个方面是提供一种基于密文索引的数据查询方法,包括如下步骤:
向数据提供模块发送查询请求,查询请求中包括查询索引ID和查询模块的第一签名信息;
接收数据提供模块对第一签名信息验证后产生的第一随机数Ry;
对第一随机数Ry和查询索引ID进行哈希计算,同时生成第二随机数Rx,向数据提供模块发送计算结果和第二随机数Rx;
接收数据提供模块对计算结果和第二随机数Rx验证后发送的与查询索引ID对应的查询结果信息和第二签名信息;
对第二签名信息验证后,使用私钥对查询结果信息进行解密以获取查询结果。
进一步的,向数据提供模块发送查询请求之前还包括:
获取数据提供模块发布的信息索引ID的哈希值。
本发明的另一个方面是提供一种基于密文索引的数据查询方法,包括如下步骤:
接收查询模块发送的查询请求,查询请求中包括查询索引ID和查询模块的第一签名信息;
对第一签名信息进行验证,验证正确后产生第一随机数Ry,并向查询模块发送第一随机数Ry;
接收查询模块对第一随机数Ry和查询索引ID进行哈希计算后的计算结果以及查询模块生成的第二随机数Rx;
对计算结果和第二随机数Rx进行验证,若验证通过则向查询模块发送与查询索引ID对应的查询结果信息和第二签名信息,以使查询模块对第二签名信息进行验证后,使用私钥对查询结果信息进行解密以获取查询结果。
进一步的,接收查询模块发送的查询请求之前还包括:
发布信息索引ID的哈希值。
进一步的,对计算结果和第二随机数Rx进行验证具体包括:
在本地对第一随机数Ry和查询索引ID进行哈希计算,以获取本地计算结果;
若本地计算结果与查询模块的计算结果一致,则通过第二随机数Rx对第一随机数Ry和查询索引ID进行哈希计算;
将与查询索引ID对应的查询结果信息进行加密,并携带第二签名信息后返回至查询模块。
采用上述本发明技术方案的有益效果是:通过数据提供模块指定一个随机变量,让查询模块将密文对应的ID和随机变量进行重新运算,如果结果正确表明查询模块知道密文对应的ID;同样,查询模块也指定另外一个随机变量让数据提供模块与密文对应的ID重新计算,通过计算结果的匹配来确认数据提供模块是否真正知道密文对应的ID,同时使用各自的公私钥进行签名和加密,保证数据传输的保密性和不可抵赖性,进而提高数据查询的安全性。
附图说明
图1为本发明的一种基于密文索引的数据查询方法的流程图;
图2为本发明的另一种基于密文索引的数据查询方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明实施例公开了一种基于密文索引的数据查询方法,如图1所示,当数据查询模块需要进行查询时,具体包括如下步骤:
需要说明的是,本发明实施例的执行主体是查询模块,在密文索引的情况下,必须要有一种机制保证双方都了解密文的真正含义的前提下,才能进行数据查询。在本发明中,数据查询模块X和数据提模块Y分别具有各自的公私钥对(Px,Kx),(Py,Ky),使用公钥P加密信息A记为P(A),使用私钥K对信息A进行签名记为K(A)。
步骤S101,获取数据提供模块发布的信息索引ID的哈希值;
在本实施例中,为了确保双方都准确了解ID的值,数据提供模块会发布信息索引ID的哈希HASH值,以便查询模块可以获取ID的HASH值,通常记为HASH(ID)。
步骤S102,向数据提供模块发送查询请求;
在本实施例中,查询请求中包括查询索引ID和查询模块的第一签名信息,具体可以是HASH(ID)+Kx(HASH(ID))。
步骤S103,接收数据提供模块对第一签名信息验证后产生的第一随机数Ry;
数据提供模块收到查询请求后,对查询请求中的第一签名信息进行验证,验证正确后,生成一个随机数Ry,发送给数据查询模块。
步骤S104,对第一随机数Ry和查询索引ID进行哈希计算,同时生成第二随机数Rx,向数据提供模块发送计算结果和第二随机数Rx;
数据查询模块接收到随机数Ry后,计算HASH(ID+Ry),同时也产生一个随机数Rx,将计算结果和新随机数一起HASH(ID+Ry)+Rx+Kx(HASH(ID+Ry)+Rx)发送给数据提供模块。
步骤S105,接收数据提供模块对计算结果和第二随机数Rx验证后发送的与查询索引ID对应的查询结果信息和第二签名信息;
数据提供模块本地计算HASH(ID+Ry),并将本地计算结果与数据查询模块发送过来的HASH(ID+Ry)对比,如果结果一致,表明数据查询模块知晓ID原文信息,则利用查询模块发送过来的Rx计算HASH(ID+Rx),并将与查询索引ID对应的查询结果信息A加密后一同发送给数据查询模块,并在返回信息中加入第二签名信息,信息组成为HASH(ID+Rx)+Px(A)+Ky(HASH(ID+Rx)+Px(A))。
步骤S106,对第二签名信息验证后,使用私钥对查询结果信息进行解密以获取查询结果。
数据查询模块收到信息后,首先本地计算HASH(ID+Rx),并将计算结果与数据提供模块发来的HASH(ID+Rx)对比,如果一致表明数据提供模块的信息ID与希望查询的ID一致;其次,验证数据提供模块的签名是否正确;最后使用自己的私钥Kx解密Px(A),从而获取到真正的查询结果信息A。
本发明还公开了一种基于密文索引的数据查询方法,如图2所示,具体包括如下步骤:
步骤S201,发布信息索引ID的哈希值;
需要说明的是,本发明实施例的执行主体是数据提供模块,在本实施例中,为了确保双方都准确了解ID的值,数据提供模块会发布信息索引ID的哈希HASH值,以便查询模块可以获取ID的HASH值,通常记为HASH(ID)。
步骤S202,接收查询模块发送的查询请求;
在本实施例中,查询请求中包括查询索引ID和查询模块的第一签名信息,具体可以是HASH(ID)+Kx(HASH(ID))。
步骤S203,对第一签名信息进行验证,验证正确后产生第一随机数Ry,并向查询模块发送第一随机数Ry;
数据提供模块收到查询请求后,对查询请求中的第一签名信息进行验证,验证正确后,生成一个随机数Ry,发送给数据查询模块。
步骤S204,接收查询模块对第一随机数Ry和查询索引ID进行哈希计算后的计算结果以及查询模块生成的第二随机数Rx;
数据查询模块接收到随机数Ry后,计算HASH(ID+Ry),同时也产生一个随机数Rx,将计算结果和新随机数一起HASH(ID+Ry)+Rx+Kx(HASH(ID+Ry)+Rx)发送给数据提供模块。
步骤S205,对计算结果和第二随机数Rx进行验证,若验证通过则向查询模块发送与查询索引ID对应的查询结果信息和第二签名信息,以使查询模块对第二签名信息进行验证后,使用私钥对查询结果信息进行解密以获取查询结果。
数据提供模块本地计算HASH(ID+Ry),并将本地计算结果与数据查询模块发送过来的HASH(ID+Ry)对比,如果结果一致,表明数据查询模块知晓ID原文信息,则利用查询模块发送过来的Rx计算HASH(ID+Rx),并将与查询索引ID对应的查询结果信息A加密后一同发送给数据查询模块,并在返回信息中加入第二签名信息,信息组成为HASH(ID+Rx)+Px(A)+Ky(HASH(ID+Rx)+Px(A))。
数据查询模块收到信息后,首先本地计算HASH(ID+Rx),并将计算结果与数据提供模块发来的HASH(ID+Rx)对比,如果一致表明数据提供模块的信息ID与希望查询的ID一致;其次,验证数据提供模块的签名是否正确;最后使用自己的私钥Kx解密Px(A),从而获取到真正的查询结果信息A。
本发明的方法通过数据提供模块指定一个随机变量,让查询模块将密文对应的ID和随机变量进行重新运算,如果结果正确表明查询模块知道密文对应的ID;同样,查询模块也指定另外一个随机变量让数据提供模块与密文对应的ID重新计算,通过计算结果的匹配来确认数据提供模块是否真正知道密文对应的ID,同时使用各自的公私钥进行签名和加密,保证数据传输的保密性和不可抵赖性,进而提高数据查询的安全性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (1)
1.一种基于密文索引的数据查询方法,其特征在于,包括如下步骤:
接收查询模块发送的查询请求,所述查询请求中包括查询索引ID和查询模块的第一签名信息;
对所述第一签名信息进行验证,验证正确后产生第一随机数Ry,并向所述查询模块发送所述第一随机数Ry;
接收所述查询模块对所述第一随机数Ry和查询索引ID进行哈希计算后的计算结果以及所述查询模块生成的第二随机数Rx;
对所述计算结果和第二随机数Rx进行验证,若验证通过则向所述查询模块发送与所述查询索引ID对应的查询结果信息和第二签名信息,以使所述查询模块对所述第二签名信息进行验证后,使用私钥对所述查询结果信息进行解密以获取查询结果;所述接收查询模块发送的查询请求之前还包括:
发布查询索引ID的哈希值;
所述对所述计算结果和第二随机数Rx进行验证具体包括:
在本地对所述第一随机数Ry和查询索引ID进行哈希计算,以获取本地计算结果;
若所述本地计算结果与所述查询模块的计算结果一致,则通过所述第二随机数Rx对第一随机数Ry和查询索引ID进行哈希计算;
将与所述查询索引ID对应的查询结果信息进行加密,并携带第二签名信息后返回至所述查询模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327978.8A CN106022145B (zh) | 2016-05-17 | 2016-05-17 | 一种基于密文索引的数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327978.8A CN106022145B (zh) | 2016-05-17 | 2016-05-17 | 一种基于密文索引的数据查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106022145A CN106022145A (zh) | 2016-10-12 |
CN106022145B true CN106022145B (zh) | 2019-07-30 |
Family
ID=57097656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610327978.8A Active CN106022145B (zh) | 2016-05-17 | 2016-05-17 | 一种基于密文索引的数据查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106022145B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525559B (zh) * | 2018-10-25 | 2021-08-10 | 深圳创维数字技术有限公司 | 一种画面共享方法及系统 |
CN109949035B (zh) * | 2019-03-15 | 2022-03-22 | 智链万源(北京)数字科技有限公司 | 区块链数据隐私控制方法、装置及系统 |
CN110096899B (zh) * | 2019-04-29 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据查询方法及装置 |
CN113656648A (zh) * | 2021-08-09 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 数据查询方法、相关装置和介质 |
CN114091054A (zh) * | 2021-11-03 | 2022-02-25 | 深圳前海微众银行股份有限公司 | 一种双向隐匿数据查询方法及装置 |
CN114357522A (zh) * | 2022-01-13 | 2022-04-15 | 厦门荷月信息科技有限公司 | 一种隐私计算分组查询方法及系统 |
CN115544579B (zh) * | 2022-11-24 | 2023-03-28 | 北京融数联智科技有限公司 | 一种双随机数据混淆查询方法、装置和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436208A (zh) * | 2008-12-09 | 2009-05-20 | 北京交通大学 | 一种密文数据库隐私保护查询方法 |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN104468121A (zh) * | 2014-11-27 | 2015-03-25 | 重庆邮电大学 | 基于指定服务器的支持多密钥加密的公钥可搜索加密方法 |
-
2016
- 2016-05-17 CN CN201610327978.8A patent/CN106022145B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436208A (zh) * | 2008-12-09 | 2009-05-20 | 北京交通大学 | 一种密文数据库隐私保护查询方法 |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN104468121A (zh) * | 2014-11-27 | 2015-03-25 | 重庆邮电大学 | 基于指定服务器的支持多密钥加密的公钥可搜索加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106022145A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106022145B (zh) | 一种基于密文索引的数据查询方法 | |
CN112199701B (zh) | 调用合约的方法及装置 | |
US11706026B2 (en) | Location aware cryptography | |
CN110162992B (zh) | 数据处理方法、数据处理装置和计算机系统 | |
Yang et al. | Provable data possession of resource-constrained mobile devices in cloud computing | |
CN103795692B (zh) | 开放授权方法、系统与认证授权服务器 | |
CN109493020A (zh) | 基于区块链的安全交易方法和装置 | |
US20170302646A1 (en) | Identity authentication method and apparatus | |
CN110992027A (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
CN104158827B (zh) | 密文数据共享方法、装置、查询服务器和上传数据客户端 | |
CN111130757A (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
CN105743888A (zh) | 一种基于关键字搜索的代理重加密方案 | |
CN106341493A (zh) | 实体权益数字化电子合同签署方法 | |
US11184168B2 (en) | Method for storing data on a storage entity | |
CN106060078B (zh) | 应用于云平台的用户信息加密方法、注册方法及验证方法 | |
CN111654367A (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
CN107094075A (zh) | 一种基于收敛加密的数据块动态操作方法 | |
CN107070874A (zh) | 广播通信的系统、加密方法及装置、解密方法及装置 | |
CN117240452A (zh) | 一种基于区块链的高原数据安全共享方法 | |
Al‐Balasmeh et al. | Framework of data privacy preservation and location obfuscation in vehicular cloud networks | |
CN105871858A (zh) | 一种保证数据安全的方法及系统 | |
CN106204034B (zh) | 应用内支付的双向认证方法和系统 | |
KR101593675B1 (ko) | 사용자 데이터의 무결성 검증 방법 및 그 장치 | |
Li et al. | Efficient and traceable data sharing for the Internet of Things in smart cities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |