热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案

BMPLS: Blockchain-Based Multi-level Privacy-Preserving Location Sharing Scheme for Telecare Medical Information Systems
发表于:Journal of Medical Systems区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案

摘要:共享病人的位置是移动医疗服务和现代智能医疗保健的重要组成部分。虽然基于区块链的位置共享在分散和开放式环境上有优势,保证记录再区块链上地点的安全和隐私性是一个重大挑战。为此,本文研究了基于区块链的位置共享(远程)医疗信息系统。首先,定义了基于区块链的位置共享的基本要求,包括去中心化、不可伪造性、保密性、多级隐私保护、可检索性和可验证性 敏捷性。然后,利用保序加密和Merkle树,提出了一种基于区块链的多级位置共享方案,即BMPLS。分析结果表明,我们的方案满足上述要求.最后,对该方案的性能进行了评价,实验结果表明,该方案无论对病人还是医务工作者都是有效的。总之,该方案可以应用于实现基于区块链的远程医疗信息系统的隐私保护位置共享。

远程医疗系统的需求:

  1. 保密及隐私保护
  2. 应为TMIS(远程医疗信息系统)患者的位置提供多级隐私保护。一方面应提供定位隐私,是定位相关服务的基本安全要求,以防止TMIS中个人位置信息的非法泄漏。另一方面,对于不同的服务,TMIS中的位置隐私应按多层次划分,并在隐私要求上有区别,因为不同的位置相关服务可能有不同的隐私要求。
  3. 应保证完整位置的可检索性,以便从区块链中的记录中检索真实位置,用于一些精确的医疗保健应用,例如紧急医疗、援助等等。
  4. 具有隐私保护的共享位置的可验证性,在TMIS中,位置共享应该是必要的,因为错误的信息可能导致错误的医疗诊断。

区块链只可以匿名用户,无法对写入区块链的数据提供隐私保护,因此需要结合隐私保护技术。首先,为了实现多级隐私,本方案采用了保序加密方案(OPE),它允许将比较操作直接应用于加密数据而不对操作数进行解密。第二,应用Merkle树,它支持对大数据结构进行高效和安全的验证,以提供共享位置的可验证性。
本文贡献:

  1. 对TMIS基于块链的位置共享所需的属性进行了分类,包括去中心化、不可伪造性、保密性、多级隐私保护、可检索性和可验证性。
  2. 提出了一种新的基于区块链的TMIS隐私保护位置共享方案BMPLS。该方案可以在病人、医务工作者、医务人员等等之间提供基于位置的医疗服务。
  3. 从理论上分析了BMPLS的安全性,表明BMPLS满足上述要求的性质同时,BMPLS优于现有的方案。
  4. BMPLS的实验结果表明,BMPLS对TMIS的患者和医务工作者是有效、可行的。

加密方式
保序加密(OPE)OPE是一种加密方案,它的密文的排序顺序与相应的明文顺序相匹配。定义如下:
对于m≤n,[m]={ i | 1≤i≤m}表示明文空间,[n]={ j | 1≤j≤n}表示密文空间。假设SEm,n=(k,Em,n,Dm,n)是确定性对称加密方案,其中k 是对称加***,Em,n是确定性对称加密算法,Dm,n是解密算法满足:Dm,n(Em,n(x, k), k) = x.(易**)
系统模型
总体流程如图1所示,LDO将与位置相关的信息记录到区块链中, LDR与LDO进行交互后才能从区块链获取与位置相关的信息。在我们的方案中,区块链的每个块都由来自不同LDO的多个记录组成。此外,来自同一LDO的具有不同时间戳的位置记录应该按时间顺序连接。
区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案
Location data owner(LDO), 可以生成与位置相关的数据,并将其记录在区块链上,以便在TMIS中与LDR共享。在共享过程中,LDO可以发送不同大小的区域而不是精确的位置,根据不同的要求实现多级隐私保护。
Location data requestor(LDR), LDR可以在LDO的帮助下检索区块链中与位置相关的信息。不同的LDRs对定位精度有不同的要求。例如,医护人员需要准确的位置,慢性病管理人员需要小的区域来划分LDO的大致位置,传染病控制中心的医生根据感染风险确定不同的位置区域大小需求。
Miners,矿工负责区块链挖掘,以维护区块链。他们的目标是完成工作证明任务,并从TMIS的区块链中获得奖励。
系统应该去中心化、防篡改、保密、多层级隐私保护、可追溯性(应该实现可检索的病人的位置记录)、可验证性(我们的方案应提供具有隐私保护的共享位置的可验证性,以避免基于错误位置信息的错误医疗诊断)。
风险模型
该系统的成员有可能攻击系统:
LDO,作为位置数据提供者的LDO可能有以下不诚实的行为:1. LDO可能会拒绝在区块链中记录的位置数据;2. 他们可以将记录的位置信息的假结果返回给LDRs。
LDR,由于某些原因,LDRs作为隐私保护下的位置请求者可能希望获得更详细的LDO位置信息。换句话说,LDR可能试图根据LDO获得的区域推断出更准确的区域。此外,LDR可以尝试完全检索LDO的精确位置。
Miners,矿工作为区块链用户可能会尝试修改区块链中的记录,在未经授权情况下访问的个人医疗数据,泄露私人位置信息等。

方案BMPLS由以下三个阶段组成:初始化阶段、记录生成阶段(位置记录)和位置共享阶段
初始化:
注册记录是LDO的第一条记录,用于保存以下位置共享的初始化信息,首先,应确定表示LDO可以访问的整个矩形区域。然后,LDO将位置的地理坐标(经度和纬度)转化为一个笛卡尔坐标,其中区域左下角的顶点是笛卡尔坐标的原点,在笛卡尔坐标下,区域可以设置为S={(x,y)=0≤x≤X,0≤y≤Y}。再,LDO根据四叉树函数递归地将区域划分为网格,设N表示LDO分区级别的数目,根据OPE的安全要求,N应满足:
区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案
定义了函数Parti(S,N),根据分区级别N对区域S进行分区:区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案
根据{x1 , x2 , … , x2N}生成一棵名为verTree的Merkle树,并根据{y1, y2 , … , y2N}生成一棵名为Hortree的Merkle树。图2为当N=3时,生成的一棵Merkle树。最后,LDO将注册记录reg Rec放入区块链的一个块中。

区块链论文阅读(三)BMPLS,用于远程医疗信息系统的区块链多级隐私保护位置共享方案

位置记录:
区块链上记录注册信息、位置信息。
位置共享:
位置共享阶段由位置共享阶段和位置验证阶段组成,在不失去一般性的情况下,我们假设LDR希望获得LDO的一个位置信息记录。
Step1位置共享:根据与LDR共享位置的要求,LDO进行了不同程度的隐私保护。
(1)如果LDR完全可信,将完整的位置信息提供给LDR,LDO将有关地点的具体记录加密发送给LDR;
(2)如果LDR非完全可信且具有n级隐私保护,则LDO将根据n确定矩形边框的大小,将消息返回到LDR,消息包括位置的OPE密文、位置边界信息、帮助LDR计算这棵merkle树的根和验证共享位置信息的merkle结点。
Step2 位置验证:在收到LDO的消息后,LDR通过区块链中的位置记录和注册记录来验证位置,以防止LDO位置欺诈。边界信息是在LDO注册之前确定的,Merkle树的根可以用来验证响应信息。

BMPLS策略
为了满足远程医疗信息系统中多层次位置隐私保护的要求,我们讨论了在现实中要设置的N的适当值。根据BMPLS的初始化阶段,N表示可选择位置隐私保护级别的总数。给定一个具有边长l的可接受的最小隐私保护区域,并且整个区域覆盖边长L,N=log2L/l 。即使系统需要覆盖一个巨大的区域,N的值也不会很大。而且LDO在初始化阶段生成的Merkle树的高度等于N。此外,LDR在位置验证阶段的计算成本较小。去中心化和激励策略和比特币类似采用PoW。
去中心化其网络的每个节点都有一个区块链的副本,而区块链上的数据由大量的数据库副本维护 此外,所有节点的权利和义务是平等的。区块链上存储LDO的注册记录,如RegRec,用于验证borInfo的正确性,以及位置记录,像recordiLDO,i用于验证位置点(xi,yi)。因此,位置信息不受任何第三方的控制,网络的所有实体都可以访问所有记录的位置信息。
防篡改 每一个区块除创世块外都包含前块的块头的hash,上链的方式都采用PoW,最长链51%算力以防止分叉攻击。
保密 利用了区块链中hash函数的collision free 和hiding的特性。
多层级加密性 从图2表示的merkle树的结构及n来实现多层级加密。
(1)在该方案中,边界是严格对齐的,没有重叠区域,因此恶意节点不能通过请求重叠区域来生成较小的区域来降低隐私保护水平。
(2)除了密文之间的顺序之外,LDR无法获取其他关系来推测位置信息
(3)密文之间不能泄露彼此的位置隐私。
追溯 任意位置记录recordjLDO包含SymCiphj=Enc(ksym , x j|| yj,其中Enc()表示对称加密,*ksym由LDO持有。在某些紧急或特殊的医疗情况下,必须完全检索LDO在区块链中的位置信息(x j || y j)。LDO可以使用ksym对任意SymCiphj*进行解密,从而实现追溯。为了确保保密性,*ksym*不能给其他人,除非在某些特殊情况下或对于某些特殊的可信请求者。
可验证 非完全可信的LDR和完全可信的LDR都可以验证边界的正确性和完整性。

本篇文章的算法较多。主要了解到分级访问控制、追溯。追溯需要从加密的角度来看,需要某部分可以解密任意加密信息从而实现全部的信息追溯检索,但是本文主要依靠不人为泄露**。


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
author-avatar
我爱左_470
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有