本发明涉及云电子医疗数据加密技术领域,具体为一种云电子医疗数据加密系统。
背景技术:
随着云计算的广泛应用,将个人健康记录(phr)数据外包给第三方服务供应商,然后由病人完全控制数据的访问授权,已经成为一种趋势。phr服务的主要思想是,每个病人可以远程修改和管理自己的个人健康信息,从而使得个人健康数据的存储、检索和共享更加有效。为了提供隐私保护,病人可以完全控制自己的电子医疗记录(emr)数据的访问权限,并仅与合法用户共享个人健康信息。一般来说,为了更好地治疗疾病和监测健康状况,病人会与自己的主治医生,家庭成员以及亲密朋友共享个人健康记录信息。
虽然phr服务可以通过以病人为中心的模式交换病人健康信息以造福患者,但phr系统存在一个应用缺陷,即允许数据拥有者任意修改数据,导致数据真实性无法保证。
技术实现要素:
(一)解决的技术问题
针对现有技术的不足,本发明提供一种云电子医疗数据加密系统,以解决目前在确保云电子医疗数据隐私的前提下,无法保证数据真实性的技术问题。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:
一种云电子医疗数据加密系统,包括:运行有医疗数据加密系统软件的云数据服务器cdsds、云授权服务器cask、用于对电子医疗数据读操作进行授权的计算机终端pctdo、用于对电子医疗数据写操作进行授权的计算机终端pctdm、用于读取电子医疗数据的计算机终端pctdr;
云授权服务器cask分别与计算机终端pctdo和计算机终端pctdm进行通信连接;计算机终端pctdo和计算机终端pctdm均与云数据服务器cdsds进行通信连接;云数据服务器cdsds与计算机终端pctdr进行通信连接;
上述医疗数据加密系统的加密方法,具体包括以下步骤:
步骤一:云授权服务器cask进行参数设置:令n=pq,φ(n)=(p-1)(q-1),其中p≠q都是素数,选择e,d,满足ed≡1modφ(n),公钥pk={e,n},私钥sk={d,n};
云授权服务器cask随机选取ei1、ei2,且ei1ei2≡emodφ(n),将ei1发送给计算机终端pctdm,将ei2发送给云数据服务器cdsds;
云授权服务器cask随机选取dj1、dj2,且dj1dj2≡dmodφ(n),将dj1发送给计算机终端pctdo,将dj2发送给云数据服务器cdsds;
步骤二:计算机终端pctdo进行参数设置:令g和gt是以素数p为阶的循环群,且g是g的生成元,h和hw为{0,1}*→g的散列函数,he为
计算机终端pctdo随机选取
设u={u1,…,un}为用户集,λ={att1,…,attp}为属性基,生成计算机终端pctdr上的用户ui的属性密钥
计算机终端pctdo随机选取
步骤三:云数据服务器cdsds根据属性群信息构造kek二叉树,并给计算机终端pctdr上的用户ui分发路径密钥pkt;
计算机终端pctdo选取
计算机终端pctdo对电子医疗数据的读密钥dj进行加密,得到读密钥dj的密文
云数据服务器cdsds对读密钥dj的密文eabe(dj)做重加密操作,具体包括:
随机选取
其中,ek(m)表示使用对称密钥k加密消息m,kek(gi)表示属性群gi的最小覆盖集合;
步骤四:计算机终端pctdm从密钥空间随机选取密钥kx作为对称密钥,先使用对称加密算法e加密消息m,得到密文
云数据服务器cdsds使用对应的写密钥ei2对密文ci2进行重加密操作,得到
步骤五:当云数据服务器cdsds使用相应的电子医疗数据的读密钥dj2对密文
计算机终端pctdr上的用户ui解密hdr获取属性群密钥
计算机终端pctdr上的用户ui解密读密钥密文
进一步的,所述用户ui检索关键字为w*的文件时,使用查询密钥
进一步的,所述云数据服务器cdsds计算
进一步的,所述用户ui使用kx恢复出消息
(三)有益的技术效果
与现有技术相比,本发明具备以下有益的技术效果:
在本发明的方案中,由于采用了读写权限分离机制,所以使得存储在云数据服务器cdsds上的电子医疗数据只有经过具有读操作权限的计算机终端pctdm的可读性授权,才允许计算机终端pctdr上的用户ui解密密文,并且使得存储在云数据服务器cdsds上的电子医疗数据只有具有写操作权限的计算机终端pctdm才能进行修改,从而解决了目前在确保云电子医疗数据隐私的前提下,无法保证数据真实性的技术问题。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种云电子医疗数据加密系统,包括:运行有医疗数据加密系统软件且用于存储电子医疗数据、响应用户请求及提供相应服务的云数据服务器cdsds,运行有医疗数据加密系统软件且用于分发读、写密钥的云授权服务器cask,运行有医疗数据加密系统软件且用于对电子医疗数据读操作进行授权的计算机终端pctdo,运行有医疗数据加密系统软件且用于对电子医疗数据写操作进行授权的计算机终端pctdm,运行有医疗数据加密系统软件且用于读取电子医疗数据的计算机终端pctdr;
云授权服务器cask通过网络通信设备在医疗数据加密系统上分别与计算机终端pctdo和计算机终端pctdm进行通信连接;
计算机终端pctdo和计算机终端pctdm通过网络通信设备在医疗数据加密系统上均与云数据服务器cdsds进行通信连接;
云数据服务器cdsds通过网络通信设备在医疗数据加密系统上与计算机终端pctdr进行通信连接;
上述医疗数据加密系统的加密方法,具体包括以下步骤:
步骤一:云授权服务器cask进行参数设置:令n=pq,φ(n)=(p-1)(q-1),其中p≠q都是素数,选择e,d,满足ed≡1modφ(n),公钥pk={e,n},私钥sk={d,n};
云授权服务器cask随机选取ei1、ei2,且ei1ei2≡emodφ(n),将ei1发送给计算机终端pctdm,将ei2发送给云数据服务器cdsds;
云授权服务器cask随机选取dj1、dj2,且dj1dj2≡dmodφ(n),将dj1发送给计算机终端pctdo,将dj2发送给云数据服务器cdsds;
步骤二:计算机终端pctdo进行参数设置:令g和gt是以素数p为阶的循环群,且g是g的生成元,h和hw为{0,1}*→g的散列函数,he为
计算机终端pctdo随机选取
设u={u1,…,un}为用户集,λ={att1,…,attp}为属性基,生成计算机终端pctdr上的用户ui的属性密钥
计算机终端pctdo随机选取
步骤三:云数据服务器cdsds根据属性群信息构造kek二叉树,并给计算机终端pctdr上的用户ui分发路径密钥pkt,其中构造二叉树时,每个用户必须被唯一分配一个叶子节点,即叶子节点与用户ui的身份一一对应;
计算机终端pctdo选取
计算机终端pctdo对电子医疗数据的读密钥dj进行加密,得到读密钥dj的密文
云数据服务器cdsds对读密钥dj的密文eabe(dj)做重加密操作,具体包括:
随机选取
其中,ek(m)表示使用对称密钥k加密消息m,kek(gi)表示属性群gi的最小覆盖集合;
步骤四:计算机终端pctdm从密钥空间随机选取密钥kx作为对称密钥,先使用对称加密算法e加密消息m,得到密文
云数据服务器cdsds使用对应的写密钥ei2对密文ci2进行重加密操作,得到
步骤五:当计算机终端pctdr上的用户ui需要检索关键字为w*的文件时,使用查询密钥
云数据服务器cdsds计算
云数据服务器cdsds使用相应的电子医疗数据的读密钥dj2对密文
用户ui解密hdr获取属性群密钥
用户ui解密读密钥密文
用户ui使用kx恢复出消息
由于采用了读写权限分离机制,所以使得存储在云数据服务器cdsds上的电子医疗数据只有经过具有读操作权限的计算机终端pctdm的可读性授权,才允许计算机终端pctdr上的用户ui解密密文,并且使得存储在云数据服务器cdsds上的电子医疗数据只有具有写操作权限的计算机终端pctdm才能进行修改。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。