CN112365945B - 基于区块链的电子病历细粒度访问控制和密文可搜索方法 - Google Patents

基于区块链的电子病历细粒度访问控制和密文可搜索方法 Download PDF

Info

Publication number
CN112365945B
CN112365945B CN202011168296.XA CN202011168296A CN112365945B CN 112365945 B CN112365945 B CN 112365945B CN 202011168296 A CN202011168296 A CN 202011168296A CN 112365945 B CN112365945 B CN 112365945B
Authority
CN
China
Prior art keywords
ciphertext
medical data
attribute
index
key
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
Application number
CN202011168296.XA
Other languages
English (en)
Other versions
CN112365945A (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.)
Yangzhou University
Original Assignee
Yangzhou 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 Yangzhou University filed Critical Yangzhou University
Priority to CN202011168296.XA priority Critical patent/CN112365945B/zh
Publication of CN112365945A publication Critical patent/CN112365945A/zh
Application granted granted Critical
Publication of CN112365945B publication Critical patent/CN112365945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Bioethics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Primary Health Care (AREA)
  • Epidemiology (AREA)
  • Public Health (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于区块链的电子病历细粒度访问控制和密文可搜索方法。包括:医疗数据划分成公开部分和隐私部分,给医院不同的访问结构;发送对称密钥;分别加密医疗数据的公共部分和隐私部分上传到云服务器中;利用关键词生成索引;利用基于属性加密技术将对称可搜索加密技术中的对称密钥进行加密,并上传到数据池中;用户向患者发送包含属性信息的请求和感兴趣的关键词;患者返回属性私钥和搜索凭证;用户把搜索凭证发送给智能合约,智能合约返回索引和表;用户把索引和搜索凭证发送给云服务器,云服务器返回医疗数据密文、密文ID和解密表;用户解密对称密钥和医疗数据;本发明简单有效,易于操作,保证数据安全的同时降低本地的负载压力。

Description

基于区块链的电子病历细粒度访问控制和密文可搜索方法
技术领域
本发明属于信息安全领域,具体为一种基于区块链的电子病历细粒度访问控制和密文可搜索方法。
背景技术
近年来,信息技术的飞速发展让人们感受到了前所未有的便捷,各行各业都广泛地应用其进行改革。在医疗方面,随着病历数据的增加,传统的纸质医疗记录已经不能满足人们的需要,一种新兴的服务模式,电子病历逐渐进入了人们的视野,它拥有信息记录全面、交互成本低等优点,可以在远程医疗、病情诊断、新药研发等领域提供支持,极大地改善了人们的就医问题。另外,云计算作为大数据时代下必不可少的一项技术,成为了很多企业争相发展的新战略,其服务成本较低、存储能力强大的优点也吸引了医院将医疗数据上传到云服务器中。然而,云存储服务给人们服务的同时,也对数据的安全性造成了威胁。虽然云服务器提供商声称不会滥用用户的数据,但是用户不再拥有对云端数据的直接控制权,所以信息泄露的情况也时有发生。医疗数据中包含患者的隐私数据,一旦非法泄露将给患者带来精神和名誉上的巨大损失。为了保护医疗数据的安全性,医院把医疗数据加密之后再上传到云服务器中,但是加密也就意味着基于明文的关键词搜索技术无法使用。因此提出一种支持区块链应用的医疗数据可搜索加密和细粒度共享的方法是十分有必要的。
Kang等提出了一种基于区块链的移动边缘计算中的数据共享方案[J.Kang etal.,"Blockchain for Secure and Efficient Data Sharing in Vehicular EdgeComputing and Networks,"in IEEE Internet ofThings Journal,vol.6,no.3,pp.4660-4670,June 2019.]。在该方案中,为了保证数据处理的及时性,传感器接收到的数据将会先提交给边缘节点进行处理,同时为了减轻边缘节点的存储花销,对于有价值的数据存储到云服务器中。虽然保证了数据处理的及时性,但是依旧存在问题,半信任的边缘节点处理数据时很可能泄露用户的隐私数据,同时也无法保证网络边缘设备产生数据的完整性和真实性。基于身份签名方法虽然可以保证数据完整性和真实性,但是无法实现匿名身份验证。Wang等人提出了一种新的基于区块链的可验证数据完整性的个人健康档案共享方案[WangS,Zhang D,Zhang Y.Blockchain-based personal health records sharing schemewith data integrity verifiable[J].IEEEAccess,2019,PP(99):1-1.],针对个人健康档案共享过程中存在的隐私泄露、关键词搜索能力有限、控制权丧失等问题,采用可搜索对称加密和基于属性的加密技术,实现隐私保护、关键词搜索和细粒度访问控制,但是在此方案中,患者只能对电子病历进行整体访问控制,无法将电子病历的公开部分和隐私部分分别共享。
发明内容
本发明的目的在于提供了一种基于区块链的电子病历细粒度访问控制和密文可搜索方法。
实现本发明目的的技术解决方案为:一种基于区块链的电子病历细粒度访问控制和密文可搜索方法,具体步骤为:
步骤1,将医疗数据划分成公开部分和隐私部分,构建两个不同的访问结构树分别对医疗数据的公私部分进行控制;
步骤2,将划分好的医疗数据和访问结构树上传至医院数据库,形成明文集;
步骤3,生成对称可搜索加密和基于属性加密的密钥信息;
步骤4,用对称可搜索加密技术分别加密患者医疗数据的公开部分和隐私部分,并上传到云服务器中,云服务器生成对应的密文存储编号并返回给医院;
步骤5,利用医疗数据明文集中的关键词生成索引;
步骤6,利用基于属性加密技术分别加密医疗数据的公开部分和隐私部分的对称密钥,并形成一张包含医疗数据密文存储编号、对称密钥密文以及密文哈希值的解密表;
步骤7,医院将索引和解密表上传到区块链的数据池中;
步骤8,用户向患者发送包含属性信息的请求和感兴趣的关键词;
步骤9,验证用户身份,利用属性和关键词生成属性私钥和搜索凭证并返回给用户;
步骤10,用户把搜索凭证发送给智能合约,智能合约在区块链中进行搜索匹配,返回索引、解密表;
步骤11,用户把索引和搜索凭证发送给云服务器,云服务器返回对应的医疗数据密文、密文存储编号以及解密表;
步骤12,用户通过医疗数据密文存储编号、解密表以及属性私钥解密对称密钥密文;
步骤13,用户通过对称密钥解密医疗数据密文,得到想要的医疗数据。
本发明与现有技术相比,其显著优点为:1)本发明将医疗数据密文存储在云服务器上,将索引、对称密钥以及医疗数据哈希值存储在区块链上。不仅解决了云存储服务器半诚实的问题,而且解决了区块链存储空间有限的问题;2)本发明利用对称加密技术和基于属性加密技术,使得患者可以分别控制医疗数据公共部分和隐私部分的共享,且提高了效率;3)本发明中智能合约在系统中自动执行算法,返回索引及相关信息,云服务器收到索引和搜索凭证后,通过计算返回密文,节省了用户的搜索成本。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明的系统架构示意图。
图2为本发明基于区块链的电子病历细粒度访问控制和密文可搜索方法的流程图。
图3为本发明电子病历的公共部分和隐私部分分布图。
图4为本发明电子病历公共部分的访问控制树示意图。
图5为本发明电子病历隐私部分的访问控制树示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,一种基于区块链的电子病历细粒度访问控制和密文可搜索方法,包括以下步骤:
步骤1,患者将医疗数据划分成公开部分和隐私部分,构建两个不同的访问结构树分别对医疗数据的公私部分进行控制;
进一步地,在其中一个实施例中,步骤1所述的患者给医生不同的访问结构树对自己医疗数据的两个部分进行访问控制,访问结构树由叶节点、分支节点和根节点组成。每个叶节点由一个属性描述,如图4中医生就是一个属性,医生所在的那个节点也就是叶节点。每个分支节点代表一个阈值门,例如与门和或门。当访问控制树中的根节点可以满足分支节点时,表示设置的属性满足访问结构树,如图4中根节点就是访问控制树最顶端的节点。
步骤2,医生将划分好的医疗数据和访问结构树上传至医院数据库,形成明文集;
步骤3,医院生成对称可搜索加密和基于属性加密的密钥信息;
进一步地,在其中一个实施例中,步骤3中所述生成对称可搜索加密和基于属性加密的密钥信息,具体包括:
步骤3-1,医院为患者随机生成对称密钥K1,K2和K3,K1用来加密医疗数据的公开部分,K2用来加密医疗数据的隐私部分,K3用来生成索引和搜索凭证。K1,K2和K3的计算公式为:
K1,K2,K3←{0,1}k
式中,k为随机选择的一个整数;
步骤3-2,医院随机选择一个双线性组G,p和g是双线性组G的生成元。随机选取α,β∈Zp,Zp指含有p个整数的群。计算系统主密钥和系统公共参数,具体计算公式为:
MSK=(gα,β),PK=(g,e(g,g)α,h=gβ);
步骤4,医院用对称可搜索加密技术分别加密患者医疗数据的公开部分和隐私部分,并上传到云服务器中,云服务器生成对应的密文存储编号并返回给医院。
进一步地,在其中一个实施例中,步骤4中所述的医院分别用对称可搜索加密技术加密患者医疗数据的公开部分和隐私部分,具体包括:
步骤4-1,假设需要加密的数据有n个,医院利用K1加密每个数据中的公共部分DP,生成密文CP,利用K2加密每个数据中的隐私部分DP,生成密文CS,CS+Cp=C。
步骤4-2,医院将医疗数据密文C外包存储到云服务器中,云服务器返回医疗数据在云服务器中的存储编号IDC
步骤5,医院利用医疗数据明文中的关键词生成索引;
进一步地,在其中一个实施例中,步骤5中所述的利用医疗数据明文中的关键词生成索引,具体包括:
步骤5-1,扫描医疗数据明文集D;
步骤5-2,从医疗数据明文集中提取关键词集w;
步骤5-3,利用伪随机函数PRF来计算关键词对应的数值Ew
Ew=PRF(K3,w);
步骤5-4,找到关键词对应的医疗数据明文集Dw、密文集Cw以及密文对应的 表示关键词w所对应的医疗数据的存储编号;
步骤5-5,利用Ew生成索引集I
步骤6,医院分别利用基于属性加密技术将加密医疗数据的公开部分和隐私部分的对称密钥进行加密,并形成一张包含医疗数据密文ID、对称密钥密文以及哈希值的解密表;
进一步地,在其中一个实施例中,步骤6中所述的生成对称密钥的密文和解密表,具体包括:
步骤6-1,医院利用基于属性加密技术中的访问结构树AT1加密医疗数据公共部分的对称密钥K1。医院随机选择一个指数t,设置qR(0)=t,K1的密文的计算公式为:
式中,e(g,g)为双线性映射,h和α为公钥PK中的参数,Y表示AT1中的叶节点集,att(x)表示AT1中叶节点x的属性值;
步骤6-2,利用基于属性加密技术中的访问结构树AT2加密医疗数据隐私部分的对称密钥K2,生成密文方法与步骤6-1类似;
步骤6-3,计算每个医疗数据密文隐私部分和公共部分的哈希值H(CP)和H(CS);
步骤6-4,生成解密表,包括医疗数据在云服务器中的存储编号IDC、对称密钥K1的密文对称密钥K2的密文/>医疗数据公共部分密文的哈希值H(CP)和医疗数据隐私部分密文的哈希值H(CS);
步骤7,医院将索引和表上传到区块链的数据池中;
进一步地,在其中一个实施例中,步骤7中上传过程中共识节点对数据进行处理,具体包括:
步骤7-1,共识节点从数据池中获得数据进行处理;
步骤7-2,共识节点触发目标难度、随机数,并首先解决难题;
步骤7-3,共识节点构建区块。
步骤7-4,在区块通过了其他共识节点的验证和共识后,共识节点将区块连接到区块链中;
步骤8,用户向患者发送包含属性信息的请求和感兴趣的关键词。
步骤9,患者验证其身份,生成属性私钥和搜索凭证并返回给用户;
进一步地,在其中一个实施例中,步骤9中生成属性私钥和搜索凭证,具体包括:
步骤9-1,用户向患者发送包含其身份信息和感兴趣的关键词的访问请求;
步骤9-2,患者为用户选择属性集合ω={a1,a2,…,ak};
步骤9-3,患者为用户在Zp中随机选择一个指数r,并为每一个属性在Zp中随机选择一个值计算属性私钥,具体计算公式为:
步骤9-4,患者通过伪随机函数生成搜索凭证。搜索凭证的计算公式为:
Tw=PRF(K3,w)=(E′w);
步骤10,用户把搜索凭证发送给智能合约,智能合约在区块链中进行搜索匹配,返回索引、解密表。
步骤11,用户把索引和搜索凭证发送给云服务器,云服务器返回对应的医疗数据密文、密文存储编号以及解密表;
进一步地,在其中一个实施例中,步骤11所述的搜索关键字的医疗数据密文以及其ID中,具体包括:
步骤11-1,用户将搜索凭证Tw发送给智能合约;
步骤11-2,智能合约通过区块链找到索引I并返回给用户;
步骤11-3,用户将凭证Tw和索引I发送给云服务器;
步骤11-4,云服务器验证索引I和凭证Tw,如果中的Ew与Tw=(E'w)中的E'w一致的话,则验证成功;
步骤11-5,如果验证一致,云服务器记录下包含关键词的医疗数据密文Cw
步骤11-6,云服务器将包含关键词对应的Cw的结果返回给用户;
步骤12,用户通过医疗数据密文存储编号、解密表以及属性私钥解密对称密钥密文;
进一步地,在其中一个实施例中,步骤12所述的解密对称密钥和医疗数据密文中,具体包括:
步骤12-1,根据医疗数据密文和解密表找到对应的对称密钥密文/>和/>
步骤12-2,利用属性私钥SKω解密和/>
步骤12-3,再用和/>解密对应的CP和CS
步骤13,用户通过对称密钥解密医疗数据密文,得到想要的医疗数据;
进一步地,在其中一个实施例中,步骤13所述的解密对称密钥和医疗数据密文中,具体包括:
步骤13-1,首先我们定义一个递归算法它采用公共部分的对称密钥密文/>属性私钥SKω和访问结构树AT1中的叶节点x作为输入。
步骤13-2,如果节点x是叶节点,并且其属性值与用户的属性集中的属性值匹配,则可以通过执行DecryptNode算法获得秘密值。计算如下:
如果不匹配,那么
步骤13-3,如果节点x是分支节点,将开始正式执行递归算法。对于节点x的所有子节点z,如果在用户的属性集中能够找到符合子节点z的属性,将执行上面的并输出/>将其存储为Fz;如果找不到,则令然后,根据Fz计算Fx
步骤13-4,在定义了函数DecryptNode之后,定义解密算法。该算法在AT1的根节点上调用函数。如果根节点的子节点满足根节点的阈值,那么设置 医疗数据公共部分的对称密钥密文/>的解密计算如下:
类似地,使用上面的方法解密医疗数据隐私部分的对称密钥密文
进一步的实施例中,患者有权修改公开部分和隐私部分电子病历的权限。
进一步地,在其中一个实施例中,步骤14所述的患者修改公开部分和隐私部分电子病历的权限中,具体包括:
保持对称密钥密文和/>不变的情况下;
患者将修改好的公共部分和隐私部分的电子病历发送给医院;
医院使用原来的对称密钥分别对修改后的公共部分和隐私部分的电子病历进行加密;
医院上传电子病历密文以及对应的密文ID给云服务器;
云服务器根据密文ID将电子病历的密文进行替换。
作为一种具体示例,在其中一个实施例中,对本发明进行进一步验证说明。本发明的基于区块链的电子病历细粒度访问控制和密文可搜索方法,包括以下内容:
(1)患者随机生成后续需要用到的对称密钥K1,K2和K3,K1用来加密医疗数据的公开部分,K2用来加密医疗数据的隐私部分,K3用来生成索引和搜索凭证。{0,1}k表示k个集合{0,1}进行笛卡尔乘积。
K1,K2,K3←{0,1}k
(2)患者随机选择一个大素数p,构建阶数为p的循环群G,G1和双线性映射e:G×G→G1,g为G的生成元。接着,随机选取α,β∈Zp,Zp指含有p个整数的群,生成系统主密钥和系统公共参数。
MSK=(gα,β),PK=(g,e(g,g)α,h=gβ)
(3)为了实现隐私保护,在将医疗数据明文上传到云服务器之前,医院需要对其进行加密。假设需要加密的医疗数据明文有n个,记为D={D1,D2,…,Dn}。医生利用K1加密每个Di中的公共部分,利用K2加密每个Di中的隐私部分,生成了n条医疗数据密文Ci,记为C={C1,C2,…,Cn},每条Ci中都包括了公共部分和隐私部分的密文,记为 然后将Ci外包存储到云服务器中,云服务器返回密文/>这里需要注意的是,医院在加密不同患者的医疗数据时,使用的对称密钥都是不同的。
(4)为了使数据请求者可以搜索到自己指定关键词w的医疗数据,医院执行BuildIndex算法。D为医疗数据明文集,W={w1,w2,…,wm}为关键词集,m表示为关键词的个数。利用伪随机函数PDF生成关键词的参数方便与搜索凭证进行匹配。生成索引后将索引上传到区块链中。
(5)首先会自上而下的从根节点R开始为访问结构树AT中的每个叶子节点x选取多项式qx。假设根节点满足qR(0)=t,t∈Zp,Y为AT中叶子节点集合,H为哈希函数,att(x)是与AT的叶子节点x相关的属性值,通过加密算法生成医疗数据公共部分的对称密钥密文Ck医疗数据隐私部分的对称密钥加密与上述过程类似。
(6)为了验证云服务器有无篡改数据,医院计算每个医疗数据密文隐私部分和公共部分的哈希值H(Ci);最后生成一张包含密文ID、对称密钥密文和哈希值的解密表,如下表所示,将这张表也上传到区块链网络中的数据池。
表1解密表
(7)要想访问患者的医疗数据,用户需要向患者发送包含其身份信息的访问请求和感兴趣的关键词。在患者验证数据请求者的身份之后,为其选择适当的属性集合,假设数据请求者的属性集为ω',ω'={a1,a2,…,ak},可信机构随机选取r∈Zp,并为每一个属性ai选择一个随机值生成属性私钥/> 患者通过伪随机函数PRF生成搜索凭证Tw,其中Tw=(Ew)。通过安全信道将Tw和SKω发送给已认证的用户。
(8)当智能合约收到用户发送的搜索凭证Tw后,访问链中存储的索引I以及对称密钥和哈希值表,验证Tw中的Ew与I中的Ew是否一致。如果一致的话,将I={I1,I2,…,If}(f表示验证一致的索引数量)和表格发送给用户。
(9)用户将搜索凭证和索引发送给云服务器。当云服务器收到来自用户的搜索凭证Tw和索引I后,执行Search算法,验证索引I中是否存在Ew,如果存在,记录下包含关键词w的医疗数据密文ID,然后生成包含关键词w的医疗数据密文集。然后,云服务器将对应的结果发送给用户。
(10)用户通过IDC和表找到对应的对称密钥密文,然后利用属性私钥解密得到对称密钥,再用对称密钥解密对应的医疗数据密文,得到医疗数据明文。
由上述实施例可知本发明的理论模型可以将医疗数据密文存储在云服务器上,将索引、对称密钥以及医疗数据哈希值存储在区块链上。不仅解决了云存储服务器半诚实的问题,而且解决了区块链存储空间有限的问题;本发明利用对称加密技术和基于属性加密技术,使得患者可以分别控制医疗数据公共部分和隐私部分的共享,且提高了效率;本发明中智能合约在系统中自动执行算法,返回索引及相关信息,云服务器收到索引和搜索凭证后,通过计算返回密文,节省了用户的搜索成本。我们的方案具有良好的应用前景。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实例的限制,上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界。

Claims (8)

1.一种基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,具体步骤为:
步骤1,将医疗数据划分成公开部分和隐私部分,构建两个不同的访问结构树分别对医疗数据的公私部分进行控制;
步骤2,将划分好的医疗数据和访问结构树上传至医院数据库,形成明文集;
步骤3,生成对称可搜索加密和基于属性加密的密钥信息;
步骤4,用对称可搜索加密技术分别加密患者医疗数据的公开部分和隐私部分,并上传到云服务器中,云服务器生成对应的密文存储编号并返回给医院;
步骤5,利用医疗数据明文集中的关键词生成索引;
步骤6,利用基于属性加密技术分别加密医疗数据的公开部分和隐私部分的对称密钥,并形成一张包含医疗数据密文存储编号、对称密钥密文以及密文哈希值的解密表;
步骤7,医院将索引和解密表上传到区块链的数据池中;
步骤8,用户向患者发送包含属性信息的请求和感兴趣的关键词;
步骤9,验证用户身份,利用属性和关键词生成属性私钥和搜索凭证并返回给用户;
步骤10,用户把搜索凭证发送给智能合约,智能合约在区块链中进行搜索匹配,返回索引、解密表;
步骤11,用户把索引和搜索凭证发送给云服务器,云服务器返回对应的医疗数据密文、密文存储编号以及解密表;
步骤12,用户通过医疗数据密文存储编号、解密表以及属性私钥解密对称密钥密文;
步骤13,用户通过对称密钥解密医疗数据密文,得到想要的医疗数据。
2.根据权利要求1所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,生成对称可搜索加密和基于属性加密的密钥信息的具体包括:
步骤3-1,随机生成对称密钥K1,K2和K3,K1用来加密医疗数据的公开部分,K2用来加密医疗数据的隐私部分,K3用来生成索引和搜索凭证;
步骤3-2,随机选择一个双线性组G,p和g是双线性组G的生成元,随机选取α,β∈Zp,Zp指含有p个整数的群,计算系统主密钥和系统公共参数,具体计算公式为:
MSK=(gα,β),PK=(g,e(g,g)α,h=gβ);
式中,MSK为系统主密钥,PK为系统公共参数,e(g,g)为双线性映射。
3.根据权利要求2所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,医院利用医疗数据明文中的关键词生成索引具体包括:
步骤5-1,扫描医疗数据明文集D;
步骤5-2,从医疗数据明文集中提取关键词集w;
步骤5-3,利用伪随机函数PRF计算关键词对应的数值Ew,计算公式为:
Ew=PRF(K3,w);
式中,K3为医院为患者随机生成对称密钥;
步骤5-4,找到关键词对应的医疗数据明文集Dw、密文集Cw以及包含对应的关键词w的医疗数据的存储编号
步骤5-5,利用关键词对应的数值Ew和关键词w所对应的医疗数据的存储编号生成索引集I,/>
4.根据权利要求3所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,生成对称密钥的密文和解密表具体包括:
步骤6-1,医院利用基于属性加密技术中的访问结构树AT1加密医疗数据公共部分的对称密钥K1;医院随机选择一个指数t,设置qR(0)=t,K1的密文的计算公式为:
式中,e(g,g)为双线性映射,h和α为公钥PK中的参数,Y表示AT1中的叶节点集,att(x)表示AT1中叶节点x的属性值,H表示哈希值,K1为医院为患者随机生成对称密钥,g是双线性组G的生成元;
步骤6-2,利用基于属性加密技术中的访问结构树AT2加密医疗数据隐私部分的对称密钥K2,生成密文
步骤6-3,计算每个医疗数据密文隐私部分和公共部分的哈希值H(CP)和H(CS);
步骤6-4,生成解密表,包括医疗数据在云服务器中的存储编号IDC、对称密钥K1的密文对称密钥K2的密文/>医疗数据公共部分密文的哈希值H(CP)和医疗数据隐私部分密文的哈希值H(CS)。
5.根据权利要求4所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,医院将索引和解密表上传到区块链的数据池中,共识节点对数据进行处理,具体包括:
步骤7-1,共识节点从数据池中获得数据进行处理;
步骤7-2,共识节点触发目标难度、随机数;
步骤7-3,共识节点构建区块;
步骤7-4,在区块通过了其他共识节点的验证和共识后,共识节点将区块连接到区块链中。
6.根据权利要求5所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,生成属性私钥和搜索凭证,具体包括:
步骤9-1,用户向患者发送包含其身份信息和感兴趣的关键词的访问请求;
步骤9-2,患者为用户选择属性集合ω={a1,a2,…,ak};
步骤9-3,患者为用户在含有p个整数的群Zp中随机选择一个指数r,并为每一个属性在Zp中随机选择一个值计算属性私钥,具体计算公式为:
式中,g是双线性组G的生成元,随机选取α,β∈Zp,Zp指含有p个整数的群,H表示哈希值;
步骤9-4,患者通过伪随机函数生成搜索凭证,搜索凭证的计算公式为:
Tw=PRF(K3,w)=(E′w)
式中,K3为医院为患者随机生成对称密钥,Tw为搜索凭证。
7.根据权利要求6所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,搜索关键字的医疗数据密文以及密文ID具体包括:
步骤11-1,用户将搜索凭证Tw发送给智能合约;
步骤11-2,智能合约通过区块链找到索引I并返回给用户;
步骤11-3,用户将凭证Tw和索引I发送给云服务器;
步骤11-4,云服务器验证索引I和凭证Tw,如果中的Ew与Tw=(E′w)中的E′w一致的话,则验证成功;
步骤11-5,如果验证一致,云服务器记录下包含关键词的医疗数据密文Cw及IDCw
步骤11-6,云服务器将包含关键词对应的Cw的结果返回给用户。
8.根据权利要求7所述的基于区块链的电子病历细粒度访问控制和密文可搜索方法,其特征在于,通过医疗数据密文ID、解密表以及属性私钥解密对称密钥密文,具体包括:
步骤12-1,根据医疗数据密文和解密表找到对应的对称密钥密文/>和对称密钥K2的密文/>
步骤12-2,利用属性私钥SKω解密对称密钥K1的密文和对称密钥K2的密文/>
步骤12-3,用和/>解密对应的公共密文CP和隐私密文CS
CN202011168296.XA 2020-10-27 2020-10-27 基于区块链的电子病历细粒度访问控制和密文可搜索方法 Active CN112365945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011168296.XA CN112365945B (zh) 2020-10-27 2020-10-27 基于区块链的电子病历细粒度访问控制和密文可搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011168296.XA CN112365945B (zh) 2020-10-27 2020-10-27 基于区块链的电子病历细粒度访问控制和密文可搜索方法

Publications (2)

Publication Number Publication Date
CN112365945A CN112365945A (zh) 2021-02-12
CN112365945B true CN112365945B (zh) 2024-03-26

Family

ID=74511016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011168296.XA Active CN112365945B (zh) 2020-10-27 2020-10-27 基于区块链的电子病历细粒度访问控制和密文可搜索方法

Country Status (1)

Country Link
CN (1) CN112365945B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989375B (zh) * 2021-03-05 2022-04-29 武汉大学 一种分级优化加密无损隐私保护方法
CN113407627B (zh) * 2021-06-17 2024-03-01 安徽师范大学 一种基于区块链的智能医疗网络系统及医疗数据共享方法
CN114826703B (zh) * 2022-04-11 2024-04-05 江苏大学 基于区块链的数据搜索细粒度访问控制方法及系统
CN115691732B (zh) * 2022-09-22 2024-03-26 海南星捷安科技集团股份有限公司 一种用于互联网医院的病例管理系统
CN115664810B (zh) * 2022-10-25 2024-02-23 电子科技大学 一种面向云辅助电子医疗系统的流行病预警方法
CN116779084B (zh) * 2023-05-12 2024-02-13 石家庄铁道大学 基于区块链的电子病例隐私保护方法
CN116561786B (zh) * 2023-06-14 2024-01-26 成都信息工程大学 一种基于区块链的医疗数据分类加密共享方法
CN117540430A (zh) * 2023-12-07 2024-02-09 北方工业大学 隐私数据的安全共享方法和系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503994A (zh) * 2016-11-02 2017-03-15 西安电子科技大学 基于属性加密的区块链隐私数据访问控制方法
CN107948146A (zh) * 2017-11-20 2018-04-20 武汉科技大学 一种混合云中基于属性加密的连接关键词检索方法
CN109117662A (zh) * 2018-06-14 2019-01-01 安徽师范大学 基于区块链的电子病历安全搜索方法
CN109741803A (zh) * 2019-01-14 2019-05-10 南京大学 基于区块链的医疗数据安全协作系统
CN109981643A (zh) * 2019-03-26 2019-07-05 长沙学院 一种细粒度查询授权的可搜索加密方法及系统
CN110020091A (zh) * 2018-10-16 2019-07-16 陕西医链区块链集团有限公司 一种基于区块链的医疗搜索引擎系统
CN110400642A (zh) * 2019-06-12 2019-11-01 梁胤豪 一种基于区块链技术的医疗数据共享系统及设计方法
CN111130757A (zh) * 2019-12-31 2020-05-08 华中科技大学 一种基于区块链的多云cp-abe访问控制方法
CN111324898A (zh) * 2020-01-20 2020-06-23 福州大学 基于区块链的电子医疗文档双重访问控制系统
CN111371561A (zh) * 2020-02-27 2020-07-03 华信咨询设计研究院有限公司 基于cp-abe算法的联盟区块链数据访问控制方法
KR20200089893A (ko) * 2019-01-18 2020-07-28 이화령 빅데이터 텍스트 마이닝과 블록체인 기술을 이용한 건강정보 저장 및 서칭 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170114B2 (en) * 2017-06-06 2021-11-09 City University Of Hong Kong Electronic storage system and a method of data management

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503994A (zh) * 2016-11-02 2017-03-15 西安电子科技大学 基于属性加密的区块链隐私数据访问控制方法
CN107948146A (zh) * 2017-11-20 2018-04-20 武汉科技大学 一种混合云中基于属性加密的连接关键词检索方法
CN109117662A (zh) * 2018-06-14 2019-01-01 安徽师范大学 基于区块链的电子病历安全搜索方法
CN110020091A (zh) * 2018-10-16 2019-07-16 陕西医链区块链集团有限公司 一种基于区块链的医疗搜索引擎系统
CN109741803A (zh) * 2019-01-14 2019-05-10 南京大学 基于区块链的医疗数据安全协作系统
KR20200089893A (ko) * 2019-01-18 2020-07-28 이화령 빅데이터 텍스트 마이닝과 블록체인 기술을 이용한 건강정보 저장 및 서칭 시스템
CN109981643A (zh) * 2019-03-26 2019-07-05 长沙学院 一种细粒度查询授权的可搜索加密方法及系统
CN110400642A (zh) * 2019-06-12 2019-11-01 梁胤豪 一种基于区块链技术的医疗数据共享系统及设计方法
CN111130757A (zh) * 2019-12-31 2020-05-08 华中科技大学 一种基于区块链的多云cp-abe访问控制方法
CN111324898A (zh) * 2020-01-20 2020-06-23 福州大学 基于区块链的电子医疗文档双重访问控制系统
CN111371561A (zh) * 2020-02-27 2020-07-03 华信咨询设计研究院有限公司 基于cp-abe算法的联盟区块链数据访问控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘格昌等."基于可搜索加密的区块链数据隐私保护机制".《计算机应用》.2019,140-146. *
闫玺玺 等."基于区块链且支持验证的属性基搜索加密方案".《通信学报》.2020,第第41 卷卷(第第2 期期),187-198. *

Also Published As

Publication number Publication date
CN112365945A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN112365945B (zh) 基于区块链的电子病历细粒度访问控制和密文可搜索方法
US11973889B2 (en) Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
Liu et al. Cloud-based electronic health record system supporting fuzzy keyword search
WO2019090988A1 (zh) 一种基于动态规则的密码学属性基访问控制方法与系统
CN109450935B (zh) 云存储中可验证的语义安全的多关键词搜索方法
CN108040056B (zh) 基于物联网的安全医疗大数据系统
CN113067857A (zh) 一种基于双链结构的电子病历跨院共享方法
CN108171066A (zh) 一种医疗云中隐私保护下的关键词跨域搜索方法及系统
CN111431898B (zh) 用于云协助物联网的带搜索的多属性机构属性基加密方法
CN112543099B (zh) 一种基于边缘计算的无证书可搜索加密方法
Sun et al. Research on logistics information blockchain data query algorithm based on searchable encryption
Liu et al. BMDS: a blockchain-based medical data sharing scheme with attribute-based searchable encryption
Niu et al. Attribute-based keyword search encryption scheme with verifiable ciphertext via blockchains
Yin et al. Attribute-based multiparty searchable encryption model for privacy protection of text data
Li et al. Efficient data retrieval over encrypted attribute-value type databases in cloud-assisted ehealth systems
Gao et al. Blockchain-enabled fine-grained searchable encryption with cloud-edge computing for electronic health records sharing
Zhang et al. NANO: Cryptographic Enforcement of Readability and Editability Governance in Blockchain Databases
Nie et al. Time-enabled and verifiable secure search for blockchain-empowered electronic health record sharing in IoT
CN115412259B (zh) 基于区块链的云健康系统可搜索代理签密方法及产品
CN115174072B (zh) 一种保护隐私的医疗信息相似范围查询方法
CN116663046A (zh) 基于区块链的隐私数据共享和检索方法、系统及设备
CN116611083A (zh) 一种医疗数据共享方法及系统
Gan et al. An encrypted medical blockchain data search method with access control mechanism
CN109299804B (zh) 具有医生搜索功能的医疗预约挂号系统
Wang et al. A Blockchain-Based fine-grained access data control scheme with attribute change function

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