CN115314295A - 一种基于区块链的可搜索加密技术方法 - Google Patents

一种基于区块链的可搜索加密技术方法 Download PDF

Info

Publication number
CN115314295A
CN115314295A CN202210948041.8A CN202210948041A CN115314295A CN 115314295 A CN115314295 A CN 115314295A CN 202210948041 A CN202210948041 A CN 202210948041A CN 115314295 A CN115314295 A CN 115314295A
Authority
CN
China
Prior art keywords
key
encryption
data
document
index
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.)
Granted
Application number
CN202210948041.8A
Other languages
English (en)
Other versions
CN115314295B (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202210948041.8A priority Critical patent/CN115314295B/zh
Publication of CN115314295A publication Critical patent/CN115314295A/zh
Application granted granted Critical
Publication of CN115314295B publication Critical patent/CN115314295B/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0478Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0435Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, 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生成并公开系统安全参数;数据所有者和数据使用者根据公开的安全参数分别生成密钥对;
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号
Figure BDA0003787498600000031
然后使用对称加密密钥K对明文M和
Figure BDA0003787498600000032
进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传至云服务器;数据所有者使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K′;
第三步,安全索引生成,安全索引生成算法在数据所有者端执行,数据所有者首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥τ并返回给数据所有者;
第七步,索引解密和编号加密,数据使用者本地先解密对称密钥,使用K′和τ解密K,然后用K解密陷门对应的倒排列表MI的内容;再使用MI中包含的信息对文档进行排序,选出前k个明文编号
Figure BDA0003787498600000033
然后使用对称密钥K加密
Figure BDA0003787498600000034
得到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
Figure BDA0003787498600000041
Figure BDA0003787498600000042
步骤二,KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
步骤三,数据使用者将他们的IDDU存储在智能合约上;
步骤四,智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
步骤五,随机选择
Figure BDA0003787498600000043
作为数据所有者和数据使用者的私钥,计算公钥
Figure BDA0003787498600000044
Figure BDA0003787498600000045
所述第二步的密文生成和密钥加密具体包括:
步骤一,数据所有者在本地执行明文加密算法,数据所有者使用对称密钥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和密钥加密索引关键字(即倒排索引的字典)
Figure BDA0003787498600000046
对倒排列表中所有wi∈W进行对称加密
Figure BDA0003787498600000047
其中
Figure BDA0003787498600000048
docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小。
步骤三,数据所有者根据关键字值和数据值生成加密的倒排索引B+树。
所述第四步陷门生成具体包括:
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出
Figure BDA0003787498600000051
数据使用者多次搜索自己喜欢的关键词。
所述第五步智能合约搜索算法具体包括:
步骤一,陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,Tw′))=Cw2
智能合约搜索算法的正确性如下:
Figure BDA0003787498600000052
步骤二,如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
步骤三,智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据,确认交易数据无误后,将交易记录在其节点上,并广播给其他节点;其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改。
所述第六步密钥重加密算法具体包括:
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
Figure BDA0003787498600000061
所述第七步索引解密和编号加密算法具体包括:
步骤一,首先,数据所有者解密对称密钥
Figure BDA0003787498600000062
步骤二,数据使用者解密检索到的加密索引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在文档中很重要;
Figure BDA0003787498600000063
doccount表示文档数,df(t)是包含关键字的文档数;将分母加1以确保分值有意义,一个关键字在所有文档中出现的频率越低,这个关键字就越不常见,对应的idf值就越大;
Figure BDA0003787498600000064
termizet是关键字t的字体大小,
Figure BDA0003787498600000065
是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序,也就是说,文档不同部分的关键词的重要性是不同的;
Figure BDA0003787498600000066
preferencet表示用户对关键词的偏好,
Figure BDA0003787498600000067
表示用户对本次查询中所有关键词的偏好之和;
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,用于生成密文和加密密钥,首先对明文进行编号
Figure BDA0003787498600000071
然后使用对称加密密钥K对明文M和
Figure BDA0003787498600000072
进行加密,得到密文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个明文编号
Figure BDA0003787498600000081
然后使用对称密钥K加密
Figure BDA0003787498600000082
得到N′并将N′上传到云服务器;
云服务器搜索模块8,用于搜索目标密文,输入密文C、密文对应的加密文档编号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者。
基于一种基于区块链的可搜索加密技术方法能够提供一种更加安全的无法识别出关键字和密文对应关系的搜索系统。
综上所述,本发明的优点及积极效果为:
本发明实现了返回结果因子的重要性量化,将不同位置的关键字的重要性和不同用户的检索需求使用数字量化出来,使用对称加密结合公钥加密在保证倒排索引安全性的同时提高了对倒排索引的加解密效率,使用代理重加密实现了对称密钥在公钥加密体系下的传输。
本发明设计了合理的检索公式,安全的索引结构和对称密钥传输算法,通过认证的用户就能获得解密对称密钥的重加密密钥,使得系统更加灵活。
附图说明
图1是本发明实施例一种基于区块链的可搜索加密系统的结构示意图。
图2是本发明实施例一种基于区块链的可搜索加密系统的流程图。
图3是本发明实施例一种基于区块链的可搜索加密技术方法实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于区块链的可搜索加密系统及方法,下面结合附图对本发明作详细的描述。
如图1、图2所示,本发明实施例一种基于区块链的可搜索加密系统包括:
S201:系统初始化模块1,公钥密码系统生成每个数据使用者的密钥对,AES算法生成对称加密密钥K;
S202:密文生成和密钥加密模块2,数据所有者首先对明文进行编号
Figure BDA0003787498600000091
然后使用对称加密密钥K对明文M和
Figure BDA0003787498600000092
进行加密,得到密文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个明文编号
Figure BDA0003787498600000101
然后使用对称密钥K加密
Figure BDA0003787498600000102
得到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
Figure BDA0003787498600000103
Figure BDA0003787498600000104
1.2)KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
1.3)数据使用者将他们的IDDU存储在智能合约上;
1.4)智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
1.5)随机选择
Figure BDA0003787498600000105
作为数据所有者和数据使用者的私钥,计算公钥
Figure BDA0003787498600000106
Figure BDA0003787498600000107
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号
Figure BDA0003787498600000108
然后使用对称加密密钥K对明文M和
Figure BDA0003787498600000109
进行加密,得到密文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和密钥加密索引关键字(即倒排索引的字典)
Figure BDA0003787498600000111
对倒排列表中所有wi∈W进行对称加密
Figure BDA0003787498600000112
其中
Figure BDA0003787498600000113
docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小。
3.3)数据所有者根据关键字值和数据值生成加密的倒排索引B+树;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出
Figure BDA0003787498600000114
数据使用者多次搜索自己喜欢的关键词;
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
5.1)陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,fw′))=Cw2
智能合约搜索算法的正确性如下:
Figure BDA0003787498600000121
5.2)如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
5.3)智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据;确认交易数据无误后,将交易记录在其节点上,并广播给其他节点。其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥并返回给数据所有者;
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
Figure BDA0003787498600000122
第七步,索引解密和编号加密算法,数据使用者本地先解密对称密钥,数据所有者首先使用K′和τ解密K,然后用它解密陷门对应的倒排列表的内容;
7.1)首先,数据所有者解密对称密钥
Figure BDA0003787498600000123
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在文档中很重要;
Figure BDA0003787498600000131
doccount表示文档数,df(t)是包含关键字的文档数;将分母加1以确保分数值有意义,一个关键字在所有文档中出现的频率越低,这个关键字就越不常见,对应的idf值就越大;
Figure BDA0003787498600000132
termizet是关键字t的字体大小,
Figure BDA0003787498600000133
是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序,也就是说,文档不同部分的关键词的重要性是不同的;
Figure BDA0003787498600000134
preferencet表示用户对关键词的偏好,
Figure BDA0003787498600000135
表示用户对本次查询中所有关键词的偏好之和;
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 (10)

1.一种基于区块链的可搜索加密技术方法,其特征在于,包括以下步骤:
第一步,全局初始化,密钥生成中心KGC生成并公开系统安全参数;数据所有者和数据使用者根据公开的安全参数分别生成密钥对;
第二步,密文生成和密钥加密,密文生成和密钥加密算法由数据所有者执行,数据所有者首先对明文进行编号
Figure FDA0003787498590000011
然后使用对称加密密钥K对明文M和
Figure FDA0003787498590000012
进行加密,得到密文C和加密编号N,并将密文C和加密编号N上传到云服务器;数据所有者使用随机数ρ,r和他自己的公钥pkDO对对称密钥K进行加密生成加密后的对称密钥K′;
第三步,安全索引生成,安全索引生成算法在数据所有者端执行,数据所有者首先构造明文M对应的倒排索引I,然后对关键字字典和倒排列表进行加密,生成加密倒排索引CI,然后将CI上传到智能合约;
第四步,陷门生成,陷门生成算法由数据使用者在本地执行,输入数据使用者的私钥和搜索关键字w,输出加密的陷门Tw
第五步,智能合约搜索,数据所有者将索引生成后上传给智能合约,数据使用者将陷门生成后上传给智能合约,智能合约执行索引和陷门的匹配算法,然后将匹配成功的关键词对应倒排列表的内容发送给数据使用者;
第六步,密钥重加密,智能合约将搜索结果1和IDDU返回给可信第三方,可信第三方生成重加密密钥τ并返回给数据所有者;
第七步,索引解密和编号加密,数据使用者本地先解密对称密钥,首先使用K′和τ解密K,然后用K解密陷门对应的倒排列表的内容;使用MI中包含的信息对文档进行排序后,选出前k个明文编号
Figure FDA0003787498590000013
数据所有者使用对称密钥K加密
Figure FDA0003787498590000014
得到N′并将N′上传到云服务器;
第八步,云服务器搜索,在云服务器上执行,输入密文C、密文对应的加密文档号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者。
2.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第一步的全局初始化具体包括:
所述第一步的全局初始化具体包括:
步骤一,密钥中心KGC生成G1和G2,其阶数为大素数p,p>2λ,g为G1的生成器,随机选择g1∈G1;生成一个双线性映射e:G1×G1→G2;选择三个抗碰撞哈希函数H1:G2→{0,1}l,
Figure FDA0003787498590000021
Figure FDA0003787498590000022
步骤二,KGC公开参数params={p,G1,G2,e,g,g1,H1,H2,H3},权威中心在联盟链上部署智能合约;
步骤三,数据使用者将他们的IDDU存储在智能合约上;
步骤四,智能合约初始化,数据所有者设置检索单价$offer,数据使用者使用ID注册账户$user和存款,区块链系统设置存款账户$deposit;
步骤五,随机选择skDO,
Figure FDA0003787498590000023
作为数据所有者和数据使用者的私钥,计算公钥
Figure FDA0003787498590000024
Figure FDA0003787498590000025
3.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第二步密文生成和密钥加密具体包括:
步骤一,密文生成,数据所有者在本地执行明文加密算法,数据所有者使用对称密钥K∈G2对明文mi∈M和docIDi进行加密生成密文Ci=E(mi,K)和密文编号N=EK(docIDi)。
步骤二,密钥加密,数据所有者随机选择ρ∈{0,1}*,r∈{0,1}*对对称密钥K进行加密,K′=K·e(pkDO,H3(ρ))r
4.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第三步安全索引生成具体包括:
步骤一,数据所有者首先在本地从文档中提取关键词信息,生成倒排索引;
步骤二,用随机数r,数据使用者公钥pkDU和密钥加密索引关键字(即倒排索引的字典)
Figure FDA0003787498590000031
对倒排列表中所有wi∈W进行对称加密
Figure FDA0003787498590000032
其中
Figure FDA0003787498590000033
docID为文档编号,wi为文档包含的关键字,tf为该关键字在文档的词频,idf文该关键字的逆文档频率,font为该关键字的字号大小。
步骤三,数据所有者根据关键字值和数据值生成加密的倒排索引B+树。
5.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第四步陷门生成具体包括:
数据使用者对需要检索的关键字w′进行加密,使用数据使用者私钥skDU和关键字w′计算出
Figure FDA0003787498590000034
数据使用者多次搜索自己喜欢的关键词。
6.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第五步智能合约搜索算法具体包括:
步骤一,陷门Tw′和加密倒排索引CI上传后,智能合约自主启动检索过程H1(e(Cw1,Tw′))=Cw2
智能合约搜索算法的正确性如下:
Figure FDA0003787498590000035
步骤二,如果等式成立,则智能合约把1和数据使用者的IDDU传输给可信第三方,如果等式不成立,则智能合约给数据使用者输出0;检索结束后,智能合约自动扣除数据使用者的检索费用;
步骤三,智能合约上传检索过程到区块链通过共识算法选择记账节点,记账节点验证交易数据,确认交易数据无误后,将交易记录在其节点上,并广播给其他节点;其他节点验证通过后,该笔交易将记录在区块链分布式账本上,实现公众监督和防篡改。
7.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第六步密钥重加密算法具体包括:
智能合约将数据使用者的IDDU和1发送给可信第三方,可信第三方对对称密钥进行重新加密,并将重新加密的密钥传输给数据使用者;重加密密钥
Figure FDA0003787498590000041
8.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第七步索引解密和编号加密算法具体包括:
步骤一,首先,数据所有者解密对称密钥
Figure FDA0003787498590000042
步骤二,数据使用者解密检索到的加密索引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在文档中很重要;
Figure FDA0003787498590000051
doccount表示文档数,df(t)是包含关键字的文档数;将分母加1以确保分值有意义,一个关键字在所有文档中出现的频率越低,这个关键字就越不常见,对应的idf值就越大;
Figure FDA0003787498590000052
termizet是关键字t的字体大小,
Figure FDA0003787498590000053
是出现在文档中的关键字字体大小之和;如果关键字出现在文档的标题部分,则文档的返回顺序应高于关键字出现在文本或参考文献中的顺序,也就是说,文档不同部分的关键词的重要性是不同的;
Figure FDA0003787498590000054
preferencet表示用户对关键词的偏好,
Figure FDA0003787498590000055
表示用户对本次查询中所有关键词的偏好之和;
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。
9.根据权利要求1所述的一种基于区块链的可搜索加密技术方法,其特征在于,所述第八步云服务器搜索算法具体包括:云服务器根据加密后的文档编号查找密文,找到对应的密文,将文档返回给数据使用者。
10.权利要求1所述一种基于区块链的可搜索加密技术方法基于区块链的可搜索加密系统实现,其特征在于,一种基于区块链的可搜索加密系统包括:
系统初始化模块1,用于使用公钥密码系统生成每个数据使用者的密钥对,使用AES算法生成对称加密密钥K;
密文生成和密钥加密模块2,用于生成密文和加密密钥,首先对明文进行编号
Figure FDA0003787498590000061
然后使用对称加密密钥K对明文M和
Figure FDA0003787498590000062
进行加密,得到密文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个明文编号
Figure FDA0003787498590000063
然后使用对称密钥K加密
Figure FDA0003787498590000064
得到N′并将N′上传到云服务器;
云服务器搜索模块8,用于搜索目标密文,输入密文C、密文对应的加密文档编号N和需要检索的文档号N′,将检索到的密文Cj输出给数据使用者。
CN202210948041.8A 2022-08-08 2022-08-08 一种基于区块链的可搜索加密技术方法 Active CN115314295B (zh)

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 true CN115314295A (zh) 2022-11-08
CN115314295B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115622700A (zh) * 2022-11-28 2023-01-17 南方电网数字电网研究院有限公司 用电数据加密搜索方法、装置、计算机设备和存储介质
CN116132112A (zh) * 2022-12-22 2023-05-16 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN117077179A (zh) * 2023-10-11 2023-11-17 中国移动紫金(江苏)创新研究院有限公司 基于差分隐私排序的可搜索加密方法、装置、设备及介质
CN115965388B (zh) * 2022-12-30 2023-12-22 国网数字科技控股有限公司 基于区块链的产业链金融密态溯源方法、装置及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
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 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
张克君等: "云环境下基于可搜索加密技术的密文全文检索研究", 《计算机应用与软件》, vol. 34, no. 4, 30 April 2017 (2017-04-30) *
谢绒娜等: "基于区块链的可溯源访问控制机制", 《通信学报》, vol. 41, no. 12, 24 December 2020 (2020-12-24) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115622700A (zh) * 2022-11-28 2023-01-17 南方电网数字电网研究院有限公司 用电数据加密搜索方法、装置、计算机设备和存储介质
CN116132112A (zh) * 2022-12-22 2023-05-16 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN116132112B (zh) * 2022-12-22 2024-05-03 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN115965388B (zh) * 2022-12-30 2023-12-22 国网数字科技控股有限公司 基于区块链的产业链金融密态溯源方法、装置及相关设备
CN117077179A (zh) * 2023-10-11 2023-11-17 中国移动紫金(江苏)创新研究院有限公司 基于差分隐私排序的可搜索加密方法、装置、设备及介质
CN117077179B (zh) * 2023-10-11 2024-01-02 中国移动紫金(江苏)创新研究院有限公司 基于差分隐私排序的可搜索加密方法、装置、设备及介质

Also Published As

Publication number Publication date
CN115314295B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN108632032B (zh) 无密钥托管的安全多关键词排序检索系统
CN107491497B (zh) 支持任意语言查询的多用户多关键词排序可搜索加密系统
CN107256248B (zh) 云存储安全中基于通配符的可搜索加密方法
Wang et al. Achieving usable and privacy-assured similarity search over outsourced cloud data
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
Wang et al. Secure ranked keyword search over encrypted cloud data
Wang et al. Enabling secure and efficient ranked keyword search over outsourced cloud data
CN113626484B (zh) 一种可灵活替换密文可搜索加密方法、系统及计算机设备
CN108062485A (zh) 一种面向多服务器多用户的模糊关键字搜索方法
CN106407447A (zh) 一种加密云数据下基于Simhash的模糊排序搜索方法
CN114048448A (zh) 基于区块链的动态可搜索加密方法及装置
CN110222081A (zh) 多用户环境下基于细粒度排序的数据密文查询方法
CN111930688B (zh) 云服务器中多关键词查询的密态数据可搜索方法及装置
US9946720B1 (en) Searching data files using a key map
CN104636462A (zh) 一种能抵抗统计分析攻击的快速密文检索方法和系统
CN112328606A (zh) 基于区块链的关键字可搜索加密方法
Li et al. Enabling efficient fuzzy keyword search over encrypted data in cloud computing
CN108282328A (zh) 一种基于同态加密的密文统计方法
Ren et al. Privacy-preserving ranked multi-keyword search leveraging polynomial function in cloud computing
Zhang et al. BIB-MKS: post-quantum secure biometric identity-based multi-keyword search over encrypted data in cloud storage systems
CN116628721B (zh) 一种数字对象的可搜索加密方法与系统
Ibrahim et al. Approximate keyword-based search over encrypted cloud data
Zou et al. A Data Sorting and Searching Scheme Based on Distributed Asymmetric Searchable Encryption.
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
Song et al. An efficient and privacy-preserving multi-user multi-keyword search scheme without key sharing

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