CN108092766A - 一种密文搜索权限验证方法及其系统 - Google Patents
一种密文搜索权限验证方法及其系统 Download PDFInfo
- Publication number
- CN108092766A CN108092766A CN201711244196.9A CN201711244196A CN108092766A CN 108092766 A CN108092766 A CN 108092766A CN 201711244196 A CN201711244196 A CN 201711244196A CN 108092766 A CN108092766 A CN 108092766A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- search
- user
- key
- trapdoor
- 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
Links
Classifications
-
- 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
- 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
-
- 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
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
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)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于在移动医疗网络中支持授权控制的密文搜索领域,提供了一种密文搜索权限验证方法及其系统,该方法包括:系统初始化步骤:根据输入的系统安全参数和全局属性集生成系统的公钥和主私钥;秘钥生成步骤:根据公钥和主私钥生成用户秘钥SK;文件加密和索引建立步骤:利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引;搜索权限验证步骤:利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR;生成陷门步骤:根据输入的秘钥SK和权限验证结果AVR生成陷门TD;搜索匹配步骤:根据陷门TD并利用搜索算法搜索匹配的健康记录。
Description
技术领域
本发明属于数据处理领域,尤其涉及在移动医疗网络中支持授权控制的密文搜索领域。
背景技术
基于物联网、云计算、可穿戴技术的快速发展,由可穿戴设备、接入设备、云服务器所组成的移动医疗网络逐渐形成,将极大地提升现有的医疗水平与效率。可穿戴设备附着在人体将采集用户的健康数据,包括血压、心率等,健康数据通过接入设备上传到云服务器,医生等通过云服务器搜索或下载用户健康数据,进而实时监控到用户的健康状况。
然而,由于健康数据属于用户隐私,云服务器也是不完全可信的,任何健康数据的泄露将影响到用户财产甚至生命状况。数据加密是保障用户隐私的最直接方式之一,但与此同时健康数据的灵活性受到影响,因此,医生如何对加密数据进行高效的搜索操作一直是业界亟需解决的问题。
发明内容
本发明所要解决的技术问题为提高对加密数据进行搜索操作的效率,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
为解决上述技术问题,本发明是这样实现的,一种密文搜索权限验证方法,其中,所述方法包括:
系统初始化步骤:根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK;
秘钥生成步骤:根据所述公钥PK和主私钥MSK生成用户秘钥SK;
文件加密和索引建立步骤:利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引;
搜索权限验证步骤:利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR;
生成陷门步骤:根据输入的所述秘钥SK和所述搜索权限验证结果AVR生成陷门TD;
搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
优选的,所述系统初始化步骤包括:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
优选的,所述秘钥生成步骤包括:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
优选的,所述文件加密和索引建立步骤包括:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj;
IndGen(PK,T,W)→CI,索引生成算法将公钥PK,访问树T和关键字集合W作为输入,对于访问树T中的每个节点x,选择多项式qx,从根节点R开始,以自顶向下的方式选择多项式,对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1;
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR,对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx;
在访问树T中,令X表示与叶子节点相对应的属性构成的集合,通过访问结构树T,创建授权控制密文ACC:
构造与关键字集W相关联的密文KC(简称为关键字密文):
数据属主将索引密文CI整合为
CI={ACC,KC}。
优选的,所述搜索权限验证步骤包括:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存验证结果AVR。
优选的,所述生成陷门步骤包括:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字的加密健康记录;
随机选择u∈Zp,并生成陷门
优选的,所述搜索匹配步骤包括:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
本发明还提供了一种密文搜索权限验证系统,其中,所述系统包括:
系统初始化模块,用于根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK;
秘钥生成模块,用于根据所述公钥PK和主私钥MSK生成用户秘钥SK;
文件加密和索引建立模块,用于利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引;
搜索权限验证模块,用于利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR;
生成陷门模块,用于根据输入的所述秘钥SK和所述搜索权限验证结果AVR生成陷门TD;
搜索匹配模块,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
优选的,所述系统初始化模块具体用于:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
优选的,所述秘钥生成模块具体用于:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
优选的,所述文件加密和索引建立模块具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj;
IndGen(PK,T,W)→CI,索引生成算法将公钥PK,访问树T和关键字集合W作为输入,对于访问树T中的每个节点x,选择多项式qx,从根节点R开始,以自顶向下的方式选择多项式,对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1;
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR,对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx;
在访问树T中,令X表示与叶子节点相对应的属性构成的集合,通过访问结构树T,创建授权控制密文ACC:
构造与关键字集W相关联的密文KC(简称为关键字密文):
数据属主将索引密文CI整合为
CI={ACC,KC}。
优选的,所述搜索权限验证模块具体用于:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存验证结果AVR。
优选的,所述生成陷门模块具体用于:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字的加密健康记录;
随机选择u∈Zp,并生成陷门
优选的,所述搜索匹配模块具体用于:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
本发明与现有技术相比,有益效果在于:本发明的技术方案支持搜索权限控制,只有具有权限的用户才能对密文进行搜索,本发明的技术方案既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
附图说明
图1是本发明实施例提供的密文搜索权限验证方法流程图;
图2是本发明实施例提供的密文搜索权限验证系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,为本发明实施例提供的密文搜索权限验证方法流程图。
在步骤S1中,系统初始化步骤:根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK。
在本实施例中,假设系统有n个属性,用N={a1,a2,…,an}表示,令e:G0×G0→GT表示一个双线性映射,其中G0是素数p、生成元为g的双线性群,设H1:{0,1}*→Zp和H2:{0,1}*→G0表示两个抗碰撞的哈希函数,对i∈Zp以及Zp中的元素集合S,拉格朗日系数Δi,S可定义为
在本实施例中,所述系统初始化步骤S1为Setup(1κ,L)→(PK,MSK),具体包括:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
在步骤S2中,秘钥生成步骤:根据所述公钥PK和主私钥MSK生成用户秘钥SK。
在本实施例中,所述秘钥生成步骤S2为KeyGen(PK,MSK,N′)→SK,具体包括:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
在步骤S3中,文件加密和索引建立步骤:利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引。
在本实施例中,所述文件加密和索引建立步骤S3包括:
数据属主要上传l个用户健康记录D={d1,…,dl}并存储到医疗健康服务器上,在上传这些记录之前,数据所有者向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法(例如AES算法)对上传的用户健康记录进行加密,其中,用户健康记录的数量远远大于关键字的数量,即l>>t,加密的用户健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令D(wj)表示与关键字wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,例如,如果D(wj)={id1,id2},则CD(wj)={c1,c2},对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj。
在本实施例中,索引建立算法IndGen包括:
IndGen(PK,T,W)→CI。索引生成算法将公钥PK,访问树T和关键字集合W作为输入。对于访问树T中的每个节点x,选择多项式qx。从根节点R开始,以自顶向下的方式选择多项式。对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1。
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR。对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx。
在访问树T中,令X表示与叶子节点相对应的属性构成的集合。通过访问结构树T,创建授权控制密文ACC:
构造与关键字集W相关联的密文KC(简称为关键字密文):
数据属主将索引密文CI整合为:
CI={ACC,KC}。
在步骤S4中,授权验证步骤:利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR。
在本实施例中,所述搜索权限验证步骤S4包括:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存验证结果AVR。
具体而言,当用户首次向医疗健康服务器发送搜索请求时,用户将收到授权控制密文ACC,以检查用户他或她是否有权搜索加密的健康数据。如果属性集N′不满足嵌入在ACC中的访问树T,则解密之后得到null,这表示用户没有权利搜索加密的健康记录。否则,可生成有效的陷门用于搜索。
用户收到授权控制密文然后执行以下操作:
DecryptVal(PK,ACC,SK)→AVR。由于验证过程被定义为递归算法,用户需要定义递归算法DecValNode(ACC,SK,x),其输入授权控制密文ACC,密钥SK和T中的节点x;
1)如果x是叶子节点,则令aj=att(x)。如果则DecValNode(ACC,SK,x)=null。否则,计算
2)如果x是非叶子节点,则递归算法DecValNode(ACC,SK,x)定义如下:对于节点x的所有子节点z,执行Fz=DecValNode(ACC,SK,z)。设Sx是任意的kx个子节点z构成的集合,则Fz≠null。如果这样的集合不存在,那么Fz=null。否则,计算Fx如下:
其中,j=index(z),S′x={index(z):z∈Sx}。
然后,通过调用T的根节点R的函数DecValNode(ACC,SK,R),定义解密算法的操作如下。如果N′满足T,则用户可计算得到
以及
最后,用户保存验证结果AVR={A}。
在步骤S5中,生成陷门步骤:根据输入的所述秘钥SK和所述搜索权限验证结果AVR生成陷门TD。
在本实施例中,如果用户想要搜索包含关键字的加密健康记录,则运行以下算法来生成与相关联的陷门。所述生成陷门步骤S5为具体包括:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字的加密健康记录;
随机选择u∈Zp,并生成陷门
最后,用户向医疗健康服务器提交TD。
在步骤S6中,搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
在本实施例中,接收到用户的陷门TD后,医疗健康服务器执行以下算法来搜索匹配的健康记录。所述搜索匹配步骤S6为Search(CI,VI,TD)→Search result,具体包括:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
本发明提供的一种密文搜索权限验证方法,支持授权控制,只有具有权限的用户才能对密文进行搜索,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
请参阅图2,为本发明实施例提供的密文搜索权限验证系统结构示意图。
在本实施例中,密文搜索权限验证系统10具体包括系统初始化模块11、秘钥生成模块12、文件加密和建立索引模块13、搜索权限验证模块14、生成陷门模块15、搜索匹配模块16。
系统初始化模块11,用于根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK。
在本实施例中,所述系统初始化模块11具体用于:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
秘钥生成模块12,用于根据所述公钥PK和主私钥MSK生成用户秘钥SK。
在本实施例中,所述秘钥生成模块12具体用于:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
文件加密和索引建立模块13,用于利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引。
在本实施例中,所述文件加密和建立索引模块13具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密。加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l。令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文。对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj。
IndGen(PK,T,W)→CI。索引生成算法将公钥PK,访问树T和关键字集合W作为输入。对于访问树T中的每个节点x,选择多项式qx。从根节点R开始,以自顶向下的方式选择多项式。对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1。
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR。对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx。
在访问树T中,令X表示与叶子节点相对应的属性构成的集合。通过访问结构树T,创建授权控制密文ACC:
构造与关键字集W相关联的密文KC(简称为关键字密文):
数据属主将索引密文CI整合为
CI={ACC,KC}。
授权验证模块14,用于利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR。
在本实施例中,所述搜索权限验证模块14具体用于:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存搜索权限验证结果AVR。
生成陷门模块15,用于根据输入的所述秘钥SK和所述搜索权限验证结果AVR生成陷门TD。
在本实施例中,所述生成陷门模块15具体用于:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字的加密健康记录;
随机选择u∈Zp,并生成陷门TD={D′=AVRu=e(g,g)(β+αr)su,
搜索匹配模块16,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
在本实施例中,所述搜索匹配模块16具体用于:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
在本实施例中,各个模块中的处理流程分别和前述方法步骤中的步骤一一对应,在此不做重复描述。
本发明提供的一种密文搜索权限验证系统10,支持搜索权限控制,只有具有权限的用户才能对密文进行搜索,既保证用户健康数据的隐私,又能对用户健康数据进行高效处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种密文搜索权限验证方法,其特征在于,所述方法包括:
系统初始化步骤:根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK;
秘钥生成步骤:根据所述公钥PK和主私钥MSK生成用户秘钥SK;
文件加密和索引建立步骤:利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引;
搜索权限验证步骤:利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR;
生成陷门步骤:根据输入的所述秘钥SK和所述权限验证结果AVR生成陷门TD;
搜索匹配步骤:根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
2.如权利要求1所述的密文搜索权限验证方法,其特征在于,所述系统初始化步骤包括:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
3.如权利要求2所述的密文搜索权限验证方法,其特征在于,所述秘钥生成步骤包括:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
4.如权利要求3所述的密文搜索权限验证方法,其特征在于,所述文件加密和索引建立步骤包括:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj;
IndGen(PK,T,W)→CI,索引生成算法将公钥PK,访问树T和关键字集合W作为输入,对于访问树T中的每个节点x,选择多项式qx,从根节点R开始,以自顶向下的方式选择多项式,对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1;
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR,对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx;
在访问树T中,令X表示与叶子节点相对应的属性构成的集合,通过访问结构树T,创建授权控制密文ACC:
<mrow>
<mi>A</mi>
<mi>C</mi>
<mi>C</mi>
<mo>=</mo>
<mo>{</mo>
<mi>T</mi>
<mo>,</mo>
<mover>
<mi>C</mi>
<mo>~</mo>
</mover>
<mo>=</mo>
<mi>e</mi>
<msup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>,</mo>
<mi>g</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>&beta;</mi>
<mi>s</mi>
</mrow>
</msup>
<mo>,</mo>
<mo>&ForAll;</mo>
<msub>
<mi>a</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<mi>a</mi>
<mi>t</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>&Element;</mo>
<mi>X</mi>
<mo>:</mo>
<msub>
<mi>C</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>v</mi>
<mi>j</mi>
</msub>
<msub>
<mi>q</mi>
<mi>x</mi>
</msub>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>}</mo>
<mo>;</mo>
</mrow>
构造与关键字集W相关联的密文KC(简称为关键字密文):
<mrow>
<mi>K</mi>
<mi>C</mi>
<mo>=</mo>
<mo>{</mo>
<msubsup>
<mi>C</mi>
<mn>1</mn>
<mo>&prime;</mo>
</msubsup>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>sH</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>w</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<msubsup>
<mi>C</mi>
<mi>t</mi>
<mo>&prime;</mo>
</msubsup>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>sH</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>w</mi>
<mi>t</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>}</mo>
<mo>;</mo>
</mrow>
数据属主将索引密文CI整合为
CI={ACC,KC}。
5.如权利要求4所述的密文搜索权限验证方法,其特征在于,所述搜索权限验证步骤包括:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存验证结果AVR。
6.如权利要求5所述的密文搜索权限验证方法,其特征在于,所述生成陷门步骤包括:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字的加密健康记录;
随机选择u∈Zp,并生成陷门
7.如权利要求6所述的密文搜索权限验证方法,其特征在于,所述搜索匹配步骤包括:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
8.一种密文搜索权限验证系统,其特征在于,所述系统包括:
系统初始化模块,用于根据输入的系统安全参数κ和全局属性集N生成系统的公钥PK和主私钥MSK;
秘钥生成模块,用于根据所述公钥PK和主私钥MSK生成用户秘钥SK;
文件加密和索引建立模块,用于利用对称加密算法对上传的用户健康记录进行加密,利用公钥加密算法对从健康记录提取的关键字建立索引;
搜索权限验证模块,用于利用用户收到的授权控制密文ACC对用户搜索加密健康记录的权限进行验证,并保存验证结果AVR;
生成陷门模块,用于根据输入的所述秘钥SK和所述权限验证结果AVR生成陷门TD;
搜索匹配模块,用于根据所述陷门TD并利用搜索算法搜索匹配的健康记录。
9.如权利要求8所述的密文搜索权限验证系统,其特征在于,所述系统初始化模块具体用于:
输入系统安全参数κ和全局属性集N,并选择一个阶为素数p、生成元为g的双线性群G0,其中,e:G0×G0→GT表示双线性映射;
随机选择α,β∈Zp以及h∈G0,并对任一aj∈N,选择随机数vj∈Zp并计算
生成系统的公钥PK和主私钥MSK,其中,MSK={α,gβ,{vj|aj∈N}}。
10.如权利要求9所述的密文搜索权限验证系统,其特征在于,所述秘钥生成模块具体用于:
输入所述公钥PK、主私钥MSK以及属性集选择随机数r∈Zp,并生成用户秘钥SK,其中,
11.如权利要求10所述的密文搜索权限验证系统,其特征在于,所述文件加密和索引建立模块具体用于:
在将l个用户健康记录D={d1,…,dl}上传到医疗健康服务器之前,向每个记录dj分配一个标识符idj(j=1,…,l),并从D中提取t个关键字W={w1,…,wt},然后使用对称加密算法对上传的用户健康记录进行加密,加密的健康记录表示为C={c1,…,cl},其中ci是di的密文,i=1,…,l,令表示与关键词wj相关联的标识符集,CD(wj)表示与存储在D(wj)中的标识符相关的密文,对于每个关键字wj∈W,数据属主将D(wj)添加到对应于wj的密文的桶bj;
IndGen(PK,T,W)→CI,索引生成算法将公钥PK,访问树T和关键字集合W作为输入,对于访问树T中的每个节点x,选择多项式qx,从根节点R开始,以自顶向下的方式选择多项式,对于T中的每个节点x,阈值tx仅需要比qx的阶dx多1,即tx=dx+1;
从R开始,数据属主随机选择s∈Zp,设置qR(0)=s,接着随机选择dR个其它节点来完整的定义多项式qR,对于每个非根节点x,设定qx(0)=qparent(x)(index(x)),并随机选择dx个其它节点来完整的定义qx;
在访问树T中,令X表示与叶子节点相对应的属性构成的集合,通过访问结构树T,创建授权控制密文ACC:
<mrow>
<mi>A</mi>
<mi>C</mi>
<mi>C</mi>
<mo>=</mo>
<mo>{</mo>
<mi>T</mi>
<mo>,</mo>
<mover>
<mi>C</mi>
<mo>~</mo>
</mover>
<mo>=</mo>
<mi>e</mi>
<msup>
<mrow>
<mo>(</mo>
<mi>g</mi>
<mo>,</mo>
<mi>g</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>&beta;</mi>
<mi>s</mi>
</mrow>
</msup>
<mo>,</mo>
<mo>&ForAll;</mo>
<msub>
<mi>a</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<mi>a</mi>
<mi>t</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>&Element;</mo>
<mi>X</mi>
<mo>:</mo>
<msub>
<mi>C</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>v</mi>
<mi>j</mi>
</msub>
<msub>
<mi>q</mi>
<mi>x</mi>
</msub>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>}</mo>
<mo>;</mo>
</mrow>
构造与关键字集W相关联的密文KC(简称为关键字密文):
<mrow>
<mi>K</mi>
<mi>C</mi>
<mo>=</mo>
<mo>{</mo>
<msubsup>
<mi>C</mi>
<mn>1</mn>
<mo>&prime;</mo>
</msubsup>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>sH</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>w</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<msubsup>
<mi>C</mi>
<mi>t</mi>
<mo>&prime;</mo>
</msubsup>
<mo>=</mo>
<msup>
<mi>g</mi>
<mrow>
<msub>
<mi>sH</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>w</mi>
<mi>t</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</msup>
<mo>}</mo>
<mo>;</mo>
</mrow>
数据属主将索引密文CI整合为
CI={ACC,KC}。
12.如权利要求11所述的密文搜索权限验证系统,其特征在于,所述搜索权限验证模块具体用于:
在用户首次向所述医疗健康服务器发送搜索请求时,从所述医疗健康服务器接收到授权控制密文ACC;
如果属性集N′不满足嵌入在所述授权控制密文ACC中的访问树T,则在解密之后得到null;
如果属性集N′满足嵌入在所述授权控制密文ACC中的访问树T,则可生成有效的陷门用于搜索,并保存验证结果AVR。
13.如权利要求12所述的密文搜索权限验证系统,其特征在于,所述生成陷门模块具体用于:
输入所述秘钥SK、所述搜索权限验证结果AVR以及关键字其中,所述关键字表示用户想要搜索包含关键字加密健康记录;
随机选择u∈Zp,并生成陷门
14.如权利要求13所述的密文搜索权限验证系统,其特征在于,所述搜索匹配模块具体用于:
以索引密文CI和所述陷门TD作为输入以检验等式是否成立;
若成立,则搜索到与所述陷门TD相匹配的桶bi以及相应的用户健康记录CD(wi),返回搜索结果{bi,CD(wi)}给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244196.9A CN108092766B (zh) | 2017-11-30 | 2017-11-30 | 一种密文搜索权限验证方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244196.9A CN108092766B (zh) | 2017-11-30 | 2017-11-30 | 一种密文搜索权限验证方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108092766A true CN108092766A (zh) | 2018-05-29 |
CN108092766B CN108092766B (zh) | 2020-12-18 |
Family
ID=62173515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711244196.9A Active CN108092766B (zh) | 2017-11-30 | 2017-11-30 | 一种密文搜索权限验证方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108092766B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740364A (zh) * | 2019-01-04 | 2019-05-10 | 大连大学 | 可控搜索权限的基于属性的密文搜索方法 |
CN110602099A (zh) * | 2019-09-16 | 2019-12-20 | 广西师范大学 | 基于可验证的对称可搜索加密的隐私保护方法 |
CN112737924A (zh) * | 2020-12-28 | 2021-04-30 | 杭州趣链科技有限公司 | 基于配对的加密邮件过滤方法 |
CN112765650A (zh) * | 2021-01-05 | 2021-05-07 | 西安电子科技大学 | 一种属性基可搜索加密的区块链医疗数据共享方法 |
CN113724112A (zh) * | 2021-08-31 | 2021-11-30 | 哈尔滨金融学院 | 一种基于公共数据调用的学籍管理方法 |
CN115333845A (zh) * | 2022-08-19 | 2022-11-11 | 南京理工大学 | 基于子集的隐私数据验证方法 |
CN116910788A (zh) * | 2023-08-15 | 2023-10-20 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
CN116910788B (zh) * | 2023-08-15 | 2024-06-11 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191650A1 (en) * | 2012-01-25 | 2013-07-25 | Massachusetts Institute Of Technology | Methods and apparatus for securing a database |
CN106330865A (zh) * | 2016-08-12 | 2017-01-11 | 安徽大学 | 云环境下支持高效撤销的属性基关键字搜索方法 |
CN106682069A (zh) * | 2016-11-14 | 2017-05-17 | 湖南工业大学 | 用户可控的数据检索方法及数据存储方法、终端、系统 |
CN106888213A (zh) * | 2017-03-14 | 2017-06-23 | 深圳大学 | 云密文访问控制方法及系统 |
-
2017
- 2017-11-30 CN CN201711244196.9A patent/CN108092766B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191650A1 (en) * | 2012-01-25 | 2013-07-25 | Massachusetts Institute Of Technology | Methods and apparatus for securing a database |
CN106330865A (zh) * | 2016-08-12 | 2017-01-11 | 安徽大学 | 云环境下支持高效撤销的属性基关键字搜索方法 |
CN106682069A (zh) * | 2016-11-14 | 2017-05-17 | 湖南工业大学 | 用户可控的数据检索方法及数据存储方法、终端、系统 |
CN106888213A (zh) * | 2017-03-14 | 2017-06-23 | 深圳大学 | 云密文访问控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
YINBIN MIAO: "m2-ABKS-Attribute-Based Multi-Keyword Search over Encrypted Personal Health Records in Multi-Owner Setting", 《JOURNAL OF MEDICAL SYSTEM》 * |
ZHANG PENG: "A Cloud-Based Access Control Scheme with User Revocation and Attribute Update", 《ACISP 2016 INFORMATION SECURITY AND PRIVACY》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740364A (zh) * | 2019-01-04 | 2019-05-10 | 大连大学 | 可控搜索权限的基于属性的密文搜索方法 |
CN110602099A (zh) * | 2019-09-16 | 2019-12-20 | 广西师范大学 | 基于可验证的对称可搜索加密的隐私保护方法 |
CN112737924A (zh) * | 2020-12-28 | 2021-04-30 | 杭州趣链科技有限公司 | 基于配对的加密邮件过滤方法 |
CN112765650A (zh) * | 2021-01-05 | 2021-05-07 | 西安电子科技大学 | 一种属性基可搜索加密的区块链医疗数据共享方法 |
CN112765650B (zh) * | 2021-01-05 | 2023-11-10 | 西安电子科技大学 | 一种属性基可搜索加密的区块链医疗数据共享方法 |
CN113724112A (zh) * | 2021-08-31 | 2021-11-30 | 哈尔滨金融学院 | 一种基于公共数据调用的学籍管理方法 |
CN115333845A (zh) * | 2022-08-19 | 2022-11-11 | 南京理工大学 | 基于子集的隐私数据验证方法 |
CN115333845B (zh) * | 2022-08-19 | 2024-04-12 | 南京理工大学 | 基于子集的隐私数据验证方法 |
CN116910788A (zh) * | 2023-08-15 | 2023-10-20 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
CN116910788B (zh) * | 2023-08-15 | 2024-06-11 | 广州粤建三和软件股份有限公司 | 一种业务数据的可搜索加密管理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108092766B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Garg et al. | BAKMP-IoMT: Design of blockchain enabled authenticated key management protocol for internet of medical things deployment | |
CN108092766B (zh) | 一种密文搜索权限验证方法及其系统 | |
CN108494768B (zh) | 一种支持访问控制的密文搜索方法及系统 | |
CN111835500A (zh) | 基于同态加密与区块链的可搜索加密数据安全共享方法 | |
CN106776904B (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
CN107359998B (zh) | 一种便携式智能口令管理体制的建立与操作方法 | |
CN107948146B (zh) | 一种混合云中基于属性加密的连接关键词检索方法 | |
CN112365945B (zh) | 基于区块链的电子病历细粒度访问控制和密文可搜索方法 | |
CN104584509A (zh) | 一种共享数据的访问控制方法、装置及系统 | |
CN111431898B (zh) | 用于云协助物联网的带搜索的多属性机构属性基加密方法 | |
CN108171066A (zh) | 一种医疗云中隐私保护下的关键词跨域搜索方法及系统 | |
CN114048448A (zh) | 基于区块链的动态可搜索加密方法及装置 | |
CN112543099B (zh) | 一种基于边缘计算的无证书可搜索加密方法 | |
Cho et al. | A secure three-factor authentication protocol for e-governance system based on multiserver environments | |
Liu et al. | EMK-ABSE: Efficient multikeyword attribute-based searchable encryption scheme through cloud-edge coordination | |
CN108256348B (zh) | 一种密文搜索结果验证方法及其系统 | |
CN116469501A (zh) | 基于区块链的电子病历共享方法、系统、设备及存储介质 | |
WO2018070932A1 (en) | System and method for querying an encrypted database for documents satisfying an expressive keyword access structure | |
CN105553667A (zh) | 一种动态口令的生成方法 | |
CN113411323A (zh) | 基于属性加密的医疗病历数据访问控制系统及方法 | |
WO2019104674A1 (zh) | 一种密文搜索权限验证方法及其系统 | |
CN113630250B (zh) | 基于数据加密的模型训练方法及系统 | |
CN113836571B (zh) | 基于云和区块链的医疗数据拥有终端位置匹配方法及系统 | |
CN114567465A (zh) | 基于区块链的分类医疗数据可搜索加密方法 | |
Alqarni et al. | Authenticated wireless links between a drone and sensors using a blockchain: Case of smart farming |
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 |