CN115314295B - 一种基于区块链的可搜索加密技术方法 - Google Patents
一种基于区块链的可搜索加密技术方法 Download PDFInfo
- Publication number
- CN115314295B CN115314295B CN202210948041.8A CN202210948041A CN115314295B CN 115314295 B CN115314295 B CN 115314295B CN 202210948041 A CN202210948041 A CN 202210948041A CN 115314295 B CN115314295 B CN 115314295B
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- data
- index
- ciphertext
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000010845 search algorithm Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
一种基于区块链的可搜索加密技术方法,密钥生成中心生成系统参数,数据所有者加密明文、索引和对称密钥;将索引和对称密钥上传智能合约,当数据使用者搜索时生成陷门,将陷门发送到智能合约;智能合约执行搜索并将搜到的索引信息和加密密钥返回;同时发可信第三方表明该用户已通过认证;可信第三方生成重加密密钥发送给数据使用者;数据使用者先解密对称密钥,使用对称密钥解密返回的密文索引,利用排序公式在本地对返回的结果进行排序,然后对目标密文的编号加密,并上传到云服务器;云服务器执行云服务器搜索算法,将对应的密文发送给数据使用者;本发明提高可搜索加密方案的检索效率,加密算法可抵抗选择索引关键字攻击和选择陷门关键字攻击。
Description
技术领域
本发明属于云计算技术领域,尤其涉及一种基于区块链的可搜索加密技术方法。
背景技术
传统可搜索加密方案的检索过程在云端进行,诚实且好奇的云服务器根据用户上传的索引和陷门信息执行命令的同时也可能会根据索引和陷门来破解用户数据;此外,当检索用户数量增加时,云服务器返回结果可能会有较大的延迟;并且,接收到检索信息的用户较难验证信息的正确性和完整性。为了解决上述问题,区块链被应用到可搜索加密的过程中。区块链作为一项新兴技术,具有良好的防篡改可追溯性能。可搜索加密方案中测试算法的执行过程可以转移到区块链中以避免云端发起的测试算法的攻击。为了确保检索过程没有延迟,可以将智能合约的自动执行应用到可搜索加密的检索过程中。区块链可以记录搜索过程产生的数据,区块链的可追溯性和防篡改特性可以保证用户获取数据的正确性和完整性。
然而,在使用区块链操作时,可搜索的加密方案也存在一些问题。目前的研究是区块链技术和基本可搜索加密的简单结合。区块链用于替代传统云计算的部分功能,从而达到可追溯、不可篡改的优势。传统的可搜索加密方案还存在其他问题,例如:当前大多数工作使用TF-IDF来计算相关性分数,它忽略了由于不同位置的关键字和不同用户需求的差异,这是因为即使对于相同的关键字,出现在标题中和出现在参考文献中的重要性也是分级的;在使用倒排索引进行检索时没有为字典构建数据结构来快速找到相应的关键字,从而降低了搜索效率;对称密钥在传输过程中的安全性被考虑的较少,密钥在传输过程中默认是安全的,是通过安全信道传输的,深入研究较少。
综上所述,现有技术存在的缺点是:
(1)当前大多数工作使用TF-IDF来计算相关性分数,它忽略了由于不同位置的关键字和不同用户需求的差异,如何更加合理的计算相关性分数是一个技术难题;
(2)在使用倒排索引进行检索时,他们忽略了为字典构建数据结构来快速找到相应的关键字,从而降低了搜索效率,如何提高搜索效率是一个技术难题;
(3)对称密钥在传输过程中的安全性被考虑的较少,其中密钥默认是安全的,深入研究较少。如何保证对称密钥在公开信道传输的安全性是一个难题。
发明内容
为了克服上述现有技术存在的缺点,本发明的目的在于提供了一种基于区块链的可搜索加密技术方法,将不同位置的关键字和不同用户需求的差异转换为权重,使用数字将需求量化出来,在排序公式中加入这些因子使得返回结果计算更加合理;使用对称加密结合公钥加密索引结构在保证倒排索引关键字安全性的同时也能提高对倒排列表的加解密效率;使用代理重加密生成数据拥有者可以解密密钥的因子,传输对称密钥的过程中使用公钥加密对称密钥对于可搜索加密系统的安全性和高效性具有重要意义。
为了达到上述目的,本发明采取的技术方案为:
一种基于区块链的可搜索加密技术方法,包括以下步骤:
第一步,全局初始化,密钥生成中心KGC生成并公开系统安全参数;数据所有者和数据使用者根据公开的安全参数分别生成密钥对;
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号然后使用对称加密密钥K对明文M和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传至云服务器;数据所有者使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K′;
第三步,安全索引生成,安全索引生成算法在数据所有者端执行,数据所有者首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw;
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥τ并返回给数据所有者;
第七步,索引解密和编号加密,数据使用者本地先解密对称密钥,使用K′和τ解密K,然后用K解密陷门对应的倒排列表MI的内容;再使用MI中包含的信息对文档进行排序,选出前k个明文编号然后使用对称密钥K加密/>得到N′并将N′上传到云服务器;
第八步,云服务器搜索,在云服务器上执行,输入密文C、密文对应的加密文档号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者;
所述第一步的全局初始化具体包括:
步骤一,密钥中心KGC生成G1和G2,其阶数为大素数p,p>2λ,g为G1的生成器,随机选择g1∈G1;生成一个双线性映射e:G1×G1→G2;选择三个抗碰撞哈希函数H1:G2→{0,1}l,和/>
步骤二,KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
步骤三,数据使用者将他们的IDDU存储在智能合约上;
步骤四,智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
步骤五,随机选择作为数据所有者和数据使用者的私钥,计算公钥/>和/>
所述第二步的密文生成和密钥加密具体包括:
步骤一,数据所有者在本地执行明文加密算法,数据所有者使用对称密钥K∈G2对明文mi∈M和docIDi进行加密生成密文Ci=E(mi,K)和密文编号N=EK(docIDi)。
步骤二,数据所有者随机选择ρ∈{0,1}*,r∈{0,1}*对对称密钥K进行加密,K′=K·e(pkDO,H3(ρ))r;
所述第三步安全索引生成具体包括:
步骤一,数据所有者首先在本地从文档中提取关键词信息,生成倒排索引;
步骤二,用随机数r,数据使用者公钥pkDU和密钥加密索引关键字(即倒排索引的字典)对倒排列表中所有wi∈W进行对称加密/>其中/>docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小。
步骤三,数据所有者根据关键字值和数据值生成加密的倒排索引B+树。
所述第四步陷门生成具体包括:
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出数据使用者多次搜索自己喜欢的关键词。
所述第五步智能合约搜索算法具体包括:
步骤一,陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,Tw′))=Cw2;
智能合约搜索算法的正确性如下:
步骤二,如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
步骤三,智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据,确认交易数据无误后,将交易记录在其节点上,并广播给其他节点;其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改。
所述第六步密钥重加密算法具体包括:
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
所述第七步索引解密和编号加密算法具体包括:
步骤一,首先,数据所有者解密对称密钥
步骤二,数据使用者解密检索到的加密索引MI=Decrypt(CI,K)=docID,tf,idf,font得到搜索关键字对应的文档信息;
步骤三,数据使用者利用下式所示的排序公式对文档进行排序;
Score(t,d)=tf×idf(t)×fons(t)×pref(t)×coord(t,d)
其中,tf=numbert/numberdoc:numbert是一个词t在文章中出现的频率,numberdoc描述的是文章中关键词的总数;关键字在文档中出现的次数越多,tf值就越大,说明关键字t在文档中很重要;
doccount表示文档数,df(t)是包含关键字的文档数;将分母加1以确保分值有意义,一个关键字在所有文档中出现的频率越低,这个关键字就越不常见,对应的idf值就越大;
termizet是关键字t的字体大小,是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序,也就是说,文档不同部分的关键词的重要性是不同的;
preferencet表示用户对关键词的偏好,/>表示用户对本次查询中所有关键词的偏好之和;
coord(t,d)=overlap(t,d)/maxoverlap(t):overlap(t,d)是文档中关键字的数量,maxoverlap(t)是搜索条件的数量。
步骤四,数据使用者根据相关性得分对返回的文件进行排序,选出需要返回的前k个文档编号;
步骤五,对需要返回的前k个文档编号进行加密,并将编号上传到云服务器N′=En(docIDj,K)1≤j≤k。
所述第八步云服务器搜索算法具体包括:云服务器根据加密后的文档编号查找密文,找到对应的密文,将文档返回给数据使用者。
所述一种基于区块链的可搜索加密技术方法基于安全高效的可搜索加密系统实现,安全高效的可搜索加密系统包括:
系统初始化模块1,用于使用公钥密码系统生成每个数据使用者的密钥对,使用AES算法生成对称加密密钥K;
密文生成和密钥加密模块2,用于生成密文和加密密钥,首先对明文进行编号然后使用对称加密密钥K对明文M和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传至云服务器;然后使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K′;
安全索引生成模块3,用于生成安全索引,首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
陷门生成模块4,用于生成陷门,使用数据使用者的私钥和搜索关键字w生成加密的陷门Tw;
智能合约搜索模块5,用于执行索引-陷门自动匹配;对于数据拥有者上传的索引和数据使用者上传的陷门执行搜索算法,并将搜索结果返回给数据使用者;
密钥重加密模块6,用于保护重加密密钥的安全性和解密对称密钥,可信第三方生成重加密密钥τ并发送给通过验证的数据使用者;
索引解密和编号加密模块7,用于解密索引,计算相关性分数并加密前k个分数的文档编号,使得返回结果更加合理,使用K′和τ解密K,然后用K解密陷门对应的倒排列表MI的内容;再使用MI中包含的信息对文档进行排序,选出前k个明文编号然后使用对称密钥K加密/>得到N′并将N′上传到云服务器;
云服务器搜索模块8,用于搜索目标密文,输入密文C、密文对应的加密文档编号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者。
基于一种基于区块链的可搜索加密技术方法能够提供一种更加安全的无法识别出关键字和密文对应关系的搜索系统。
综上所述,本发明的优点及积极效果为:
本发明实现了返回结果因子的重要性量化,将不同位置的关键字的重要性和不同用户的检索需求使用数字量化出来,使用对称加密结合公钥加密在保证倒排索引安全性的同时提高了对倒排索引的加解密效率,使用代理重加密实现了对称密钥在公钥加密体系下的传输。
本发明设计了合理的检索公式,安全的索引结构和对称密钥传输算法,通过认证的用户就能获得解密对称密钥的重加密密钥,使得系统更加灵活。
附图说明
图1是本发明实施例一种基于区块链的可搜索加密系统的结构示意图。
图2是本发明实施例一种基于区块链的可搜索加密系统的流程图。
图3是本发明实施例一种基于区块链的可搜索加密技术方法实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于区块链的可搜索加密系统及方法,下面结合附图对本发明作详细的描述。
如图1、图2所示,本发明实施例一种基于区块链的可搜索加密系统包括:
S201:系统初始化模块1,公钥密码系统生成每个数据使用者的密钥对,AES算法生成对称加密密钥K;
S202:密文生成和密钥加密模块2,数据所有者首先对明文进行编号然后使用对称加密密钥K对明文M和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传至云服务器;然后使用随机数ρ,r和公钥pkDO加密对称密钥K生成K′;
S203:安全索引生成模块3,数据所有者首先构造明文M对应的倒排索引I,倒排索引的字典部分存储关键字,列表部分存储该关键字对应的文档编号docID,该关键字在文档的词频tf,该关键字的逆文档频率idf,该关键字的字号大小font。然后对关键字字典和倒排列表进行加密,并根据加密后的数值生成B+检索树,生成最终的加密倒排索引CI,最后将CI上传到智能合约;
S204:陷门生成模块4,输入数据使用者的私钥和搜索关键字w,输出加密的检索陷门Tw;
S205:智能合约搜索模块5,当数据拥有者将索引上传给智能合约,数据使用者将陷门上传到智能合约时,智能合约启动索引-陷门搜索算法并将搜索结果返回给数据使用者;
S206:密钥重加密模块6,智能合约将搜索结果1和IDDU返回给可信第三方表明IDDU已经通过认证,可信第三方为验证通过的数据使用者生成重加密密钥τ;
S207:索引解密和编号加密模块7,数据使用者使用K′和τ解密K,然后用K解密陷门对应的倒排列表MI的内容;再使用MI中包含的信息对文档进行排序,选出前k个明文编号然后使用对称密钥K加密/>得到N′并将N′上传到云服务器;
S208:云服务器搜索模块8,输入密文C、密文对应的加密文档编号N和需要检索的文档号N′,向数据使用者输出将检索到的密文Cj;
如图3所示,一种基于区块链的可搜索加密技术方法,包括以下步骤:
第一步,全局初始化,密钥生成中心KGC生成并公开系统安全参数;数据所有者和数据使用者根据公开的安全参数分别生成密钥对;
1.1)密钥中心KGC生成G1和G2,其阶数为大素数p,p>2λ,g为G1的生成器,随机选择g1∈G1;生成一个双线性映射e:G1×G1→G2;选择三个抗碰撞哈希函数H1:G2→{0,1}l,和/>
1.2)KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
1.3)数据使用者将他们的IDDU存储在智能合约上;
1.4)智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
1.5)随机选择作为数据所有者和数据使用者的私钥,计算公钥和/>
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号然后使用对称加密密钥K对明文M和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传到云服务器;数据所有者使用随机数ρ,r和他自己的公钥pkDO加密对称密钥K;
2.1)数据所有者在本地执行明文加密算法,数据所有者使用对称密钥K∈G2对明文mi∈M和docIDi进行加密生成密文Ci=E(mi,K)和密文编号N=EK(docIDi)。
2.2)数据所有者随机选择ρ∈{0,1}*,r∈{0,1}*对对称密钥K进行加密,K′=K·e(pkDO,H3(ρ))r;
第三步,安全索引生成,安全索引生成算法在数据所有者端执行,数据所有者首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
3.1)数据所有者首先在本地从文档中提取关键词信息,生成倒排索引;
3.2)用随机数r,数据使用者公钥pkDU和密钥加密索引关键字(即倒排索引的字典)对倒排列表中所有wi∈W进行对称加密/>其中/>docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小。
3.3)数据所有者根据关键字值和数据值生成加密的倒排索引B+树;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw;
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出数据使用者多次搜索自己喜欢的关键词;
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
5.1)陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,fw′))=Cw2;
智能合约搜索算法的正确性如下:
5.2)如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
5.3)智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据;确认交易数据无误后,将交易记录在其节点上,并广播给其他节点。其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥并返回给数据所有者;
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
第七步,索引解密和编号加密算法,数据使用者本地先解密对称密钥,数据所有者首先使用K′和τ解密K,然后用它解密陷门对应的倒排列表的内容;
7.1)首先,数据所有者解密对称密钥
7.2)数据使用者解密检索到的加密索引MI=Decrypt(CI,K)=docID,tf,idf,font得到搜索关键字对应的文档信息;
7.3)数据使用者利用下式所示的排序公式对文档进行排序,
Score(t,d)=tf×idf(t)×fons(t)×pref(t)×coord(t,d)
其中,tf=numbert/numberdoc:numbert是一个词t在文章中出现的频率,numberdoc描述的是文章中关键词的总数;关键字在文档中出现的次数越多,tf值就越大,说明关键字t在文档中很重要;
doccount表示文档数,df(t)是包含关键字的文档数;将分母加1以确保分数值有意义,一个关键字在所有文档中出现的频率越低,这个关键字就越不常见,对应的idf值就越大;
termizet是关键字t的字体大小,是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序,也就是说,文档不同部分的关键词的重要性是不同的;
preferencet表示用户对关键词的偏好,/>表示用户对本次查询中所有关键词的偏好之和;
coord(t,d)=overlap(t,d)/maxoverlap(t):overlap(t,d)是文档中关键字的数量,maxoverlap(t)是搜索条件的数量;例如,有一个文档是“This is an English book”,搜索“Chinese”、“English”时,本次搜索对应该文档的overlap为1(因为匹配“English”),maxoverlap为2(因为搜索条件有中文和英文两个关键字),结果搜索对该文档的值为0.5。
7.4)数据使用者根据相关性得分对返回的文件进行排序,选出需要返回的前k个文档编号;
7.5)对需要返回的前k个文档编号进行加密,并将编号上传到云服务器N′=En(docIDj,K)1≤j≤k;
第八步,云服务器搜索,在云服务器上执行,输入密文C、密文对应的加密文档号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者;
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于区块链的可搜索加密技术方法,其特征在于,包括以下步骤:
第一步,全局初始化,密钥生成中心KGC生成并公开系统安全参数;数据所有者和数据使用者根据公开的安全参数分别生成密钥对;
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号然后使用对称加密密钥K对明文m和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传到云服务器;数据所有者使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K';
第三步,安全索引生成,安全索引生成算法在数据所有者端执行,数据所有者首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw;
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥τ并返回给数据所有者;
第七步,索引解密和编号加密,数据使用者本地先解密对称密钥,首先使用K'和τ解密K,然后用K解密陷门对应的倒排列表的内容;使用MI中包含的信息对文档进行排序后,选出前k个明文编号数据所有者使用对称密钥K加密/>得到N'并将N'上传到云服务器;
第八步,云服务器搜索,在云服务器上执行,输入密文C、密文对应的加密文档号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者;
所述第一步的全局初始化具体包括:
步骤一,密钥中心KGC生成G1和G2,其阶数为大素数p,p>2λ,g为G1的生成器,随机选择g1∈G1;生成一个双线性映射e:G1×G1→G2;选择三个抗碰撞哈希函数H1:G2→{0,1}l,H2:和H3:/>
步骤二,KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
步骤三,数据使用者将他们的IDDU存储在智能合约上;
步骤四,智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
步骤五,随机选择作为数据所有者和数据使用者的私钥,计算公钥和/>
所述第二步密文生成和密钥加密具体包括:
步骤一,密文生成,数据所有者在本地执行明文加密算法,数据所有者使用对称密钥K∈G2对明文mi∈M和docIDi进行加密生成密文Ci=E(mi,K)和密文编号N=EK(docIDi);
步骤二,密钥加密,数据所有者随机选择ρ∈{0,1}*,r∈{0,1}*对对称密钥K进行加密,K′=K·e(pkDO,H3(ρ))r;
所述第三步安全索引生成具体包括:
步骤一,数据所有者首先在本地从文档中提取关键词信息,生成倒排索引;
步骤二,用随机数r,数据使用者公钥pkDU和密钥加密索引关键字(即倒排索引的字典)对倒排列表中所有wi∈W进行对称加密/>其中/>docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小;
步骤三,数据所有者根据关键字值和数据值生成加密的倒排索引B+树;
所述第四步陷门生成具体包括:
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出数据使用者多次搜索自己喜欢的关键词;
所述第五步智能合约搜索算法具体包括:
步骤一,陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,Tw′))=Cw2;
智能合约搜索算法的正确性如下:
步骤二,如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
步骤三,智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据,确认交易数据无误后,将交易记录在其节点上,并广播给其他节点;其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改;
所述第六步密钥重加密算法具体包括:
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
所述第七步索引解密和编号加密算法具体包括:
步骤一,首先,数据所有者解密对称密钥
步骤二,数据使用者解密检索到的加密索引MI=Decrypt(CI,K)=docID,tf,idf,font得到搜索关键字对应的文档信息;
步骤三,数据使用者利用下式所示的排序公式对文档进行排序;
Score(t,d)=tf×idf(t)×fons(t)×pref(t)×coord(t,d)
其中,tf=numbert/numberdoc:numbert是一个词t在文章中出现的频率,numberdoc描述的是文章中关键词的总数;
doccount表示文档数,df(t)是包含关键字的文档数;
termizet是关键字t的字体大小,是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序;
preferencet表示用户对关键词的偏好,/>表示用户对本次查询中所有关键词的偏好之和;
coord(t,d)=overlap(t,d)/maxoverlap(t):overlap(t,d)是文档中关键字的数量,maxoverlap(t)是搜索条件的数量;
步骤四,数据使用者根据相关性得分对返回的文件进行排序,选出需要返回的前k个文档编号docIDj,1≤j≤k;
步骤五,对需要返回的前k个文档编号进行加密,并将编号上传到云服务器N′=En(docIDj,K)1≤j≤k。
2.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第八步云服务器搜索算法具体包括:云服务器根据加密后的文档编号查找密文,找到对应的密文,将文档返回给数据使用者。
3.一种基于区块链的可搜索加密系统,其执行权利要求1所述一种基于区块链的可搜索加密技术方法,其特征在于,该系统包括:
系统初始化模块1,用于使用公钥密码系统生成每个数据使用者的密钥对,使用AES算法生成对称加密密钥K;
密文生成和密钥加密模块2,用于生成密文和加密密钥,首先对明文进行编号然后使用对称加密密钥K对明文M和/>进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传至云服务器;然后使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K′;
安全索引生成模块3,用于生成安全索引,首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
陷门生成模块4,用于生成陷门,使用数据使用者的私钥和搜索关键字w生成加密的陷门Tw;
智能合约搜索模块5,用于执行索引-陷门自动匹配;对于数据拥有者上传的索引和数据使用者上传的陷门执行搜索算法,并将搜索结果返回给数据使用者;
密钥重加密模块6,用于保护重加密密钥的安全性和解密对称密钥,可信第三方生成重加密密钥τ并发送给通过验证的数据使用者;
索引解密和编号加密模块7,用于解密索引,计算相关性分数并加密前k个分数的文档编号,使得返回结果更加合理,使用K′和τ解密K,然后用K解密陷门对应的倒排列表MI的内容;再使用MI中包含的信息对文档进行排序,选出前k个明文编号然后使用对称密钥K加密/>得到N′并将N′上传到云服务器;
云服务器搜索模块8,用于搜索目标密文,输入密文C、密文对应的加密文档编号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210948041.8A CN115314295B (zh) | 2022-08-08 | 2022-08-08 | 一种基于区块链的可搜索加密技术方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210948041.8A CN115314295B (zh) | 2022-08-08 | 2022-08-08 | 一种基于区块链的可搜索加密技术方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314295A CN115314295A (zh) | 2022-11-08 |
CN115314295B true CN115314295B (zh) | 2024-04-16 |
Family
ID=83860387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210948041.8A Active CN115314295B (zh) | 2022-08-08 | 2022-08-08 | 一种基于区块链的可搜索加密技术方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314295B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622700B (zh) * | 2022-11-28 | 2023-03-31 | 南方电网数字电网研究院有限公司 | 用电数据加密搜索方法、装置、计算机设备和存储介质 |
CN116132112B (zh) * | 2022-12-22 | 2024-05-03 | 广州大学 | 一种基于联盟链智能合约的关键字可加密搜索方法 |
CN115965388B (zh) * | 2022-12-30 | 2023-12-22 | 国网数字科技控股有限公司 | 基于区块链的产业链金融密态溯源方法、装置及相关设备 |
CN117077179B (zh) * | 2023-10-11 | 2024-01-02 | 中国移动紫金(江苏)创新研究院有限公司 | 基于差分隐私排序的可搜索加密方法、装置、设备及介质 |
CN118586940B (zh) * | 2024-08-07 | 2024-10-15 | 济宁职业技术学院 | 基于区块链的预制菜快速溯源管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN112328606A (zh) * | 2020-11-30 | 2021-02-05 | 齐鲁工业大学 | 基于区块链的关键字可搜索加密方法 |
CN112417006A (zh) * | 2020-11-30 | 2021-02-26 | 齐鲁工业大学 | 基于区块链的密文关键字搜索方法、系统、装置及介质 |
CN113094573A (zh) * | 2020-01-09 | 2021-07-09 | 中移(上海)信息通信科技有限公司 | 多关键词排序可搜索加密方法、装置、设备及存储介质 |
CN113626484A (zh) * | 2021-07-03 | 2021-11-09 | 西安电子科技大学 | 一种可灵活替换密文可搜索加密方法、系统及计算机设备 |
WO2022007889A1 (zh) * | 2020-07-08 | 2022-01-13 | 浙江工商大学 | 基于区块链与同态加密的可搜索加密数据共享方法及系统 |
-
2022
- 2022-08-08 CN CN202210948041.8A patent/CN115314295B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN113094573A (zh) * | 2020-01-09 | 2021-07-09 | 中移(上海)信息通信科技有限公司 | 多关键词排序可搜索加密方法、装置、设备及存储介质 |
WO2022007889A1 (zh) * | 2020-07-08 | 2022-01-13 | 浙江工商大学 | 基于区块链与同态加密的可搜索加密数据共享方法及系统 |
CN112328606A (zh) * | 2020-11-30 | 2021-02-05 | 齐鲁工业大学 | 基于区块链的关键字可搜索加密方法 |
CN112417006A (zh) * | 2020-11-30 | 2021-02-26 | 齐鲁工业大学 | 基于区块链的密文关键字搜索方法、系统、装置及介质 |
CN113626484A (zh) * | 2021-07-03 | 2021-11-09 | 西安电子科技大学 | 一种可灵活替换密文可搜索加密方法、系统及计算机设备 |
Non-Patent Citations (2)
Title |
---|
云环境下基于可搜索加密技术的密文全文检索研究;张克君等;《计算机应用与软件》;20170430;第34卷(第4期);全文 * |
基于区块链的可溯源访问控制机制;谢绒娜等;《通信学报》;20201224;第41卷(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115314295A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115314295B (zh) | 一种基于区块链的可搜索加密技术方法 | |
CN107256248B (zh) | 云存储安全中基于通配符的可搜索加密方法 | |
US20220368545A1 (en) | Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption | |
CN108632032B (zh) | 无密钥托管的安全多关键词排序检索系统 | |
CN108388807B (zh) | 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法 | |
CN107491497B (zh) | 支持任意语言查询的多用户多关键词排序可搜索加密系统 | |
CN104408177B (zh) | 基于云文档系统的密文检索方法 | |
CN106997384B (zh) | 一种排序可验证的语义模糊可搜索加密方法 | |
CN106407447A (zh) | 一种加密云数据下基于Simhash的模糊排序搜索方法 | |
CN108363689B (zh) | 面向混合云的隐私保护多关键词Top-k密文检索方法及系统 | |
CN109063509A (zh) | 一种基于关键词语义排序的可搜索加密方法 | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN112560075B (zh) | 一种基于椭圆曲线的轻量级可搜索加密方法及装置 | |
CN104636462A (zh) | 一种能抵抗统计分析攻击的快速密文检索方法和系统 | |
CN112328606A (zh) | 基于区块链的关键字可搜索加密方法 | |
CN112446041A (zh) | 一种基于安全索引的可验证多关键词密文查询方法及系统 | |
CN108282328A (zh) | 一种基于同态加密的密文统计方法 | |
CN111159352A (zh) | 一种支持多关键词加权检索和结果排序且可验证的加解密方法 | |
CN108920968B (zh) | 一种基于连接关键词的文件可搜索加密方法 | |
Fan et al. | Multi-keyword fuzzy and sortable ciphertext retrieval scheme for big data | |
CN112328626B (zh) | 面向云环境的支持模糊关键词排序的可搜索加密方法 | |
Kumari et al. | Privacy preserving similarity based text retrieval through blind storage | |
CN113158245A (zh) | 一种文档搜索的方法、系统、设备及可读存储介质 | |
Li et al. | Diverse multi-keyword ranked search over encrypted cloud data supporting range query | |
Manasrah et al. | A privacy-preserving multi-keyword search approach in cloud computing |
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 |