一种云系统环境个人健康记录存储访问方法转让专利

申请号 : CN201610828262.6

文献号 : CN106407681B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 白光伟蔡炎伟沈航华志祥戴加伟

申请人 : 南京工业大学

摘要 :

本发明涉及一种云系统环境个人健康记录存储访问方法,采用多授权中心的方式,每个授权中心只负责用户一部分的属性,减轻了单个授权中心的负担,并且降低了授权中心泄露用户隐私的风险,即使攻击者成功攻破了其中的一些授权中心,也无法得知用户的全部信息,并且同样防止授权中心本身过多地知道用户的属性。

权利要求 :

1.一种云系统环境个人健康记录存储访问方法,其特征在于,所述云系统环境包括存储服务器,以及至少两个服务器授权中心,所述存储访问方法,包括如下步骤:步骤01.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,由各个授权中心共同产生一个云系统环境公用参数PK,并获得各个授权中心的密钥MKn,然后进入步骤02;其中,n={1、…、N},N表示授权中心的总个数;

上述步骤01具体包括如下步骤:

步骤0101.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,针对所有授权中心,由其中任意一个授权中心An选择一个乘法循环群 将乘法循环群的生成元g作为底数,并选择一个素数p作为阶数,选择之后在所有授权中心之间公布,即各个授权中心An分别以g作为底数,以p作为阶数,然后进行步骤0102;

步骤0102.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中随机选择一个vn,并通过 计算获得Yn,接着该授权中心An将所获Yn发送给其它N-1个授权中心Ak,进而各个授权中心An分别获得所有授权中心分别对应的Yn,然后各个授权中心An分别通过Y=Πn∈NYN,获得Y,并进入步骤0103;k∈{1、…、N},且k≠n;

步骤0103.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中,针对其它N-

1个授权中心,分别随机选择一个整数Snk,计算获得 并发送给对应授权中心Ak,进而各个授权中心An分别接收来自其它N-1个授权中心所发送的 然后进入步骤0104;

步骤0104.分别针对各个授权中心An,授权中心An通过 计算获得其所对

应的参数xn,进而各个授权中心An分别获得其所对应的参数xn,然后进入步骤0105;

步骤0105.所有授权中心根据 共同产生一个云系统环境公用参数PK,

并且各个授权中心An分别根据MKn={vn,xn},获得密钥MKn;

步骤02.个人健康记录上传者将待上传健康记录文件按文件单位划分为至少1个子健康记录文件Fk,并分别针对各个子健康记录文件Fk对应设定密钥Kk,k={1、…、e},e表示子健康记录文件的个数;同时,分别针对各个子健康记录文件Fk,设定子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk;接着通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;然后将各个子健康记录密文文件CTk,结合分别所对应的各个权限文件VRk一并上传至存储服务器中进行存储,最后进入步骤03;

步骤03.判断个人健康记录使用者是否是公共用户,是则进入步骤05,否则进入步骤

04;

步骤04.针对该个人健康记录使用者,由对应个人健康记录上传者所构成的个人授权中心根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及个人授权中心的密钥MK,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06;

步骤05.针对该个人健康记录使用者,由所有服务器授权中心分别根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及各个服务器授权中心的密钥MKn,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06;

步骤06.该个人健康记录使用者由存储服务器下载获得所需求的子健康记录密文文件CTk,以及所对应各个权限文件VRk,并通过云系统环境公用参数PK,结合该个人健康记录使用者的使用者私钥SKu获得该子健康记录密文文件CTk的密钥Kk,针对该子健康记录密文文件CTk进行解密,获得所对应的子健康记录文件Fk,实现针对子健康记录文件Fk只读操作,若该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07;

步骤07.获得该个人健康记录使用者的身份属性值,并与该子健康记录密文文件CTk所对应指定类型文件操作的权限文件VRk进行比较,比较相等,则允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作,否则不允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作。

2.根据权利要求1所述一种云系统环境个人健康记录存储访问方法,其特征在于,所述步骤02中,所述各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk,分别采用权限树进行构建,其中,根据子健康记录文件Fk各指定文件操作分别所对应用户类型,构建权限树,各个权限树中的各个叶子节点分别为所对应用户类型的各个属性,各个非叶子节点为预设逻辑门符号,由各个非叶子节点的预设逻辑门符号获得各个非叶子节点的选择次数jc,jc表示非叶子节点c的选择次数;并且步骤02中,按如下公式:通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;其中,Tpk表示第k个子健康记录文件Fk所对应第p种指定文件操作的权限树;rk表示指定文件操作的种类数,p=0表示读取文件操作; 表示Y的S0k次方,S0k表示第k个子健康记录文件Fk所对应读取文件操作根节点的多项式的值;从权限树Tpk中的根节点Rpk开始,随机选择 并选择根节点Rpk的多项式 让 其中多项式的次数为其中, 为根结点Rpk的阈值,最少要有 个子结点为真,根结点Rpk才为真;对于其它节点x,使qx(0)=qparent(x)(index(x)),进而定义权限树中所有节点的多项式,其中,qik表示第k个子健康记录文件Fk所对应属性i所在节点的多项式;qx表示节点x的多项式,parent(x)表示节点x的父节点,index(x)表示结点x的索引值,att(i)表示属性i的属性值,H为的哈希函数, 表示权限树Tpk中叶子节点属性的集合;进而获得各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件权限文件表示Y的Spk次方,Spk表示第k个子健康记录文件Fk所对应第p种指定文件操作的根节点的多项式的值。

3.根据权利要求2所述一种云系统环境个人健康记录存储访问方法,其特征在于,所述步骤04中,具体包括如下步骤:步骤0401.对于个人健康记录使用者u的任意属性i,个人授权中心由0-p的自然数集合中选择一个整数ri,计算出参数 接着,个人授权中心由0-p的自然数集合 中选择一个整数dn,获得 其中H为 的哈希函数,att(i)为属性i的属性值,然后进入步骤0402;

步骤0402.个人健康记录使用者u从个人授权中心获得D、Di、Di',组成得到自己的私钥SKu为 其中,Ou表示个人健康记录使用者u所有属性组成的集合。

4.根据权利要求3所述一种云系统环境个人健康记录存储访问方法,其特征在于,所述步骤05中,具体包括如下步骤:步骤0501.对于个人健康记录使用者u的任意属性i,其中一个服务器授权中心由0-p的自然数集合 中选择一个整数ri,选择之后在所有授权中心之间公布,计算出参数 接着,各个服务器授权中心An由0-p的自然数集合 中选择一个整数dn,获得其中H为 的哈希函数,att(i)属性i的属性值,然后进入步骤0502;

步骤0502.个人健康记录使用者u从各个服务器授权中心An获得D、Di、Di',组成得到自己的私钥SKu为 其中Ou表示个人健康记录使用者u所有属性组成的集合。

5.根据权利要求4所述一种云系统环境个人健康记录存储访问方法,其特征在于,所述步骤06中,具体包括如下:定义一个公式DN(CTk,SKu,x),其中x表示权限树中的结点,k∈{1,..e},如果x是叶子结点,我们用i表示x结点的属性,如果i∈Ou,那么有DN(CTk,SKu,x)值为否则返回值为空;如果x为非叶子结点,且x有大于等于kx的孩子结点返回值不为空,那么用sx来表示kx个返回值不为空的孩子结点索引值的集合,d为满足条件的结点z的结点索引值,其中 Fx为DN(CTk,SKu,x)的输出值,那么有:如果x为非叶子结点,且x没有大于等于kx个孩子结点的返回值为空,则DN(CTk,SKu,x)的返回值为空;如果用户的属性满足权限树,那么通过公式计算有: 如果只进行读操作,并且用户的属性满足读操作的权限树则计算

并通过 计算出Kk;如果个人健康记录使用者的属性不满

足读操作权限树,无法解密并退出方法;如果该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07。

6.根据权利要求5所述一种云系统环境个人健康记录存储访问方法,其特征在于,所述步骤07中,具体包括如下:如果用户的属性满足操作的权限树Tpk,那么可以用公式DN(CTk,SKu,Rpk)得到从而有 上传到云端服务器与Vk进行比较,结果相等,可以进行操作;如果不满足权限树Tpk,则无法计算出正确的 上传到云端服务器与Vk进行比较,结果不等,不可以进行操作;其中,Tpk表示第k个子健康记录文件Fk所对应的权限树。

说明书 :

一种云系统环境个人健康记录存储访问方法

技术领域

[0001] 本发明涉及一种云系统环境个人健康记录存储访问方法,属于云计算安全技术领域。

背景技术

[0002] 云计算是在分布式计算、网格计算和并行处理的基础上发展而来的一种新的商业计算模型,它旨在借用网络将许多成本相对而言比较低的计算实体整合成拥有强大的计算能力的系统,并借助SaaS、PaaS、IaaS等模式把计算能力分配到终端的用户手中。由于以上的优点,云计算得到了学术界和工业界的广泛关注。PHR(Personal Health Record)个人健康记录平台就是基于云计算的一种以患者为中心的健康记录平台,它的服务可以让用户通过网络创建和管理自己的个人健康记录,比如过敏史、检查记录、治疗记录、遗传病史等。每个用户可以完全控制自己的健康记录,并且可以将自己的记录分享给其他人,例如医院的医生、亲人、朋友以及一些研究人员。
[0003] 然而,将自己的个人健康记录上传到第三方存在着许多安全风险。个人健康记录包括很多个人敏感信息,比如得过的疾病、使用过的药物、家族遗传病史等,如果被非法获取,会导致用户蒙受巨大的损失。一方面,云服务器可能非法地查看用户上传的个人健康记录;另一方面,存储个人健康医疗记录的服务器可能成为被攻击的目标。

发明内容

[0004] 本发明所要解决的技术问题是提供一种基于属性的加密方法,引入公共角色和个人角色概念,实现多授权中心,能够有效提高安全性的云系统环境个人健康记录存储访问方法。
[0005] 本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种云系统环境个人健康记录存储访问方法,所述云系统环境包括存储服务器,以及至少两个服务器授权中心,所述存储访问方法,包括如下步骤:
[0006] 步骤01.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,由各个授权中心共同产生一个云系统环境公用参数PK,并获得各个授权中心的密钥MKn,然后进入步骤02;其中,n={1、…、N},N表示授权中心的总个数;
[0007] 上述步骤01具体包括如下步骤:
[0008] 步骤0101.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,针对所有授权中心,由其中任意一个授权中心An选择一个乘法循环群 将乘法循环群的生成元g作为底数,并选择一个素数p作为阶数,选择之后在所有授权中心之间公布,即各个授权中心An分别以g作为底数,以p作为阶数,然后进行步骤0102;
[0009] 步骤0102.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中随机选择一个vn,并通过 计算获得Yn,接着该授权中心An将所获Yn发送给其它N-1个授权中心Ak,进而各个授权中心An分别获得所有授权中心分别对应的Yn,然后各个授权中心An分别通过Y=Πn∈NYN,获得Y,并进入步骤0103;k∈{1、…、N},且k≠n;
[0010] 步骤0103.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中,针对其它N-1个授权中心,分别随机选择一个整数Snk,计算获得 并发送给对应授权中心Ak,进而各个授权中心An分别接收来自其它N-1个授权中心所发送的 然后进入步骤0104;
[0011] 步骤0104.分别针对各个授权中心An,授权中心An通过 计算获得其所对应的参数xn,进而各个授权中心An分别获得其所对应的参数xn,然后进入步骤0105;
[0012] 步骤0105.所有授权中心根据 共同产生一个云系统环境公用参数PK,并且各个授权中心An分别根据MKn={vn,xn},获得密钥MKn;
[0013] 步骤02.个人健康记录上传者将待上传健康记录文件按文件单位划分为至少1个子健康记录文件Fk,并分别针对各个子健康记录文件Fk对应设定密钥Kk,k={1、…、e},e表示子健康记录文件的个数;同时,分别针对各个子健康记录文件Fk,设定子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk;接着通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;然后将各个子健康记录密文文件CTk,结合分别所对应的各个权限文件VRk一并上传至存储服务器中进行存储,最后进入步骤03;
[0014] 步骤03.判断个人健康记录使用者是否是公共用户,是则进入步骤05,否则进入步骤04;
[0015] 步骤04.针对该个人健康记录使用者,由对应个人健康记录上传者所构成的个人授权中心根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及个人授权中心的密钥MK,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06;
[0016] 步骤05.针对该个人健康记录使用者,由所有服务器授权中心分别根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及各个服务器授权中心的密钥MKn,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06;
[0017] 步骤06.该个人健康记录使用者由存储服务器下载获得所需求的子健康记录密文文件CTk,以及所对应各个权限文件VRk,并通过云系统环境公用参数PK,结合该个人健康记录使用者的使用者私钥SKu获得该子健康记录密文文件CTk的密钥Kk,针对该子健康记录密文文件CTk进行解密,获得所对应的子健康记录文件Fk,实现针对子健康记录文件Fk只读操作,若该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07;
[0018] 步骤07.获得该个人健康记录使用者的身份属性值,并与该子健康记录密文文件CTk所对应指定类型文件操作的权限文件VRk进行比较,比较相等,则允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作,否则不允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作。
[0019] 作为本发明的一种优选技术方案:所述步骤02中,所述各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk,分别采用权限树进行构建,其中,根据子健康记录文件Fk各指定文件操作分别所对应用户类型,构建权限树,各个权限树中的各个叶子节点分别为所对应用户类型的各个属性,各个非叶子节点为预设逻辑门符号,由各个非叶子节点的预设逻辑门符号获得各个非叶子节点的选择次数jc,jc表示非叶子节点c的选择次数;并且步骤02中,按如下公式:
[0020]
[0021] 通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;其中,Tpk表示第k个子健康记录文件Fk所对应第p种指定文件操作的权限树;rk表示指定文件操作的种类数,p=0表示读取文件操作; 表示Y的S0k次方,S0k表示第k个子健康记录文件Fk所对应读取文件操作根节点的多项式的值;从权限树Tpk中的根节点Rpk开始,随机选择 并选择根节点Rpk的多项式 让 其中多项式的次数为 其中, 为根结点Rpk的阈值,最少要有 个子结点为真,根结点Rpk才为真;对于其它节点x,使qx(0)=qparent(x)(index(x)),进而定义权限树中所有节点的多项式,其中,qik表示第k个子健康记录文件Fk所对应属性i所在节点的多项式;qx表示节点x的多项式,parent(x)表示节点x的父节点,index(x)表示结点x的索引值,att(i)表示属性i的属性值,的哈希函数, 表示权限树Tpk中叶子节点属性的集合;进而获得各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件权限文件
表示Y的Spk次方,Spk表示第k个子健康记录文件Fk所对应第p种指定文件操作的根节点的多项式的值。
[0022] 作为本发明的一种优选技术方案:所述步骤04中,具体包括如下步骤:
[0023] 步骤0401.对于个人健康记录使用者u的任意属性i,个人授权中心由0-p的自然数集合 中选择一个整数ri,计算出参数 接着,个人授权中心由0-p的自然数集合中选择一个整数dn,获得 其中H为 的哈希函数,att(i)为属性i的属性值,然后进入步骤0402;
[0024] 步骤0402.个人健康记录使用者u从个人授权中心获得D、Di、D′i,组成得到自己的u私钥SKu为 其中,O表示个人健康记录使用者u所
有属性组成的集合。
[0025] 作为本发明的一种优选技术方案:所述步骤05中,具体包括如下步骤:
[0026] 步骤0501.对于个人健康记录使用者u的任意属性i,其中一个服务器授权中心由0-p的自然数集合 中选择一个整数ri,选择之后在所有授权中心之间公布,计算出参数接着,各个服务器授权中心An由0-p的自然数集合 中选择一个整数dn,获得其中H为 的哈希函数,att(i)属性i的属
性值,然后进入步骤0502;
[0027] 步骤0502.个人健康记录使用者u从各个服务器授权中心An获得D、Di、D′i,组成得到自己的私钥SKu为 其中Ou表示个人健康记录使用者u所有属性组成的集合。
[0028] 作为本发明的一种优选技术方案:所述步骤06中,具体包括如下:
[0029] 定义一个公式DN(CTk,SKu,x),其中x表示权限树中的结点,k∈{1,..e},如果x是叶子结点,我们用i表示x结点的属性,如果i∈Ou,那么有DN(CTk,SKu,x)值为否则返回值为空;如果x为非叶子结点,且x有大于等于kx的孩子结点返回值不为空,那么用sx来表示kx个返回值不为空的孩子结点索引值的集合,d为满足条件的结点z的结点索引值,其中 Fx为DN(CTk,SKu,x)的输出值,那么有:
[0030]
[0031] 如果x为非叶子结点,且x没有大于等于kx个孩子结点的返回值为空,则DN(CTk,SKu,x)的返回值为空;如果用户的属性满足权限树,那么通过公式计算有:如果只进行读操作,并且用户的属性满足读操作的
权限树则计算 并通过
计算出Kk;如果个人健康记录使用者的属性不满足读操作权限树,无法解密并退出方法;如果该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07。
[0032] 作为本发明的一种优选技术方案:所述步骤07中,具体包括如下:
[0033] 如果用户的属性满足操作的权限树Tpk,那么可以用公式DN(CTk,SKu,Rpk)得到从而有 上传到云端服务器与Vk进行比较,结果相等,可以进行操作;如果不满足权限树Tpk,则无法计算出正确的 上传到云端服务器与Vk进行比较,结果不等,不可以进行操作;其中,Tpk表示第k个子健康记录文件Fk所对应的权限树。
[0034] 本发明所述云系统环境个人健康记录存储访问方法采用以上技术方案与现有技术相比,具有以下技术效果:
[0035] (1)本发明所设计云系统环境个人健康记录存储访问方法,采用多授权中心的方式,每个授权中心只负责用户一部分的属性,减轻了单个授权中心的负担,并且降低了授权中心泄露用户隐私的风险,即使攻击者成功攻破了其中的一些授权中心,也无法得知用户的全部信息,并且同样防止授权中心本身过多地知道用户的属性;
[0036] (2)本发明所设计云系统环境个人健康记录存储访问方法中,用户向各个授权中心请求时用的是假名,假名与用户的私钥相关联,而授权中心只知道用户私钥的部分信息,无法知道整个私钥,所以用户向各个授权中心请求私钥时,授权中心无法知道用户的确切身份;
[0037] (3)本发明所设计云系统环境个人健康记录存储访问方法中,文件加密时,各个部分使用不同的密钥进行加密,个人健康记录的拥有者在加密时可以根据自己的需要灵活地进行加密,增加了加密时候的选择,增强了安全性,并且用户下载时只需要下载其所需要的部分,降低了流量消耗;
[0038] (4)本发明所设计云系统环境个人健康记录存储访问方法中,针对权限文件,分别采用权限树进行构建,通过多个权限树,每一个权限树对应了一个操作,将用户的权限近一步地细化为读、删除、修改等,避免了用户过多地获得对于文件的操作权限,增强了文件地保护,权限分配的方式也更加的灵活;
[0039] (5)本发明所设计云系统环境个人健康记录存储访问方法中,引入公共用户和个人用户概念,公共用户的验证由相关的公共机构进行验证,个人用户的验证通过个人健康记录上传者本人,不需要所有的验证都通过个人健康记录上传者本人,减轻了个人健康记录上传者的负担,提高了可扩展性。公共用户的验证通过相关的公共机构,提高了安全性。

附图说明

[0040] 图1是本发明所设计云系统环境个人健康记录存储访问方法的应用示意图;
[0041] 图2是本发明所设计云系统环境个人健康记录存储访问方法中权限树示例图;
[0042] 图3是实施例中高级加密标准流程图。

具体实施方式

[0043] 下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
[0044] 本发明所设计云系统环境个人健康记录存储访问方法,如图1所示,应用到实际的应用当中,所述云系统环境包括存储服务器,以及至少两个服务器授权中心,所述存储访问方法,包括如下步骤:
[0045] 步骤01.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,由各个授权中心共同产生一个云系统环境公用参数PK,并获得各个授权中心的密钥MKn,然后进入步骤02;其中,n={1、…、N},N表示授权中心的总个数。
[0046] 上述步骤01实际执行中,具体包括如下步骤:
[0047] 步骤0101.将各个个人健康记录上传者分别作为各个个人授权中心,结合各个服务器授权中心,针对所有授权中心,由其中任意一个授权中心An选择一个乘法循环群 将乘法循环群的生成元g作为底数,并选择一个素数p作为阶数,选择之后在所有授权中心之间公布,即各个授权中心An分别以g作为底数,以p作为阶数,然后进行步骤0102。
[0048] 步骤0102.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中随机选择一个vn,并通过 计算获得Yn,接着该授权中心An将所获Yn发送给其它N-1个授权中心Ak,进而各个授权中心An分别获得所有授权中心分别对应的Yn,然后各个授权中心An分别通过Y=Πn∈NYN,获得Y,并进入步骤0103;k∈{1、…、N},且k≠n。
[0049] 步骤0103.分别针对各个授权中心An,授权中心An由0-p的自然数集合 中,针对其它N-1个授权中心,分别随机选择一个整数Snk,计算获得 并发送给对应授权中心Ak,进而各个授权中心An分别接收来自其它N-1个授权中心所发送的 然后进入步骤0104。
[0050] 步骤0104.分别针对各个授权中心An,授权中心An通过 计算获得其所对应的参数xn,进而各个授权中心An分别获得其所对应的参数xn,然后进入步骤0105。
[0051] 步骤0105.所有授权中心根据 共同产生一个云系统环境公用参数PK,并且各个授权中心An分别根据MKn={vn,xn},获得密钥MKn。
[0052] 步骤02.个人健康记录上传者将待上传健康记录文件按文件单位划分为至少1个子健康记录文件Fk,并分别针对各个子健康记录文件Fk对应设定密钥Kk,k={1、…、e},e表示子健康记录文件的个数;同时,分别针对各个子健康记录文件Fk,设定子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk;接着通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;然后将各个子健康记录密文文件CTk,结合分别所对应的各个权限文件VRk一并上传至存储服务器中进行存储,最后进入步骤03。
[0053] 其中,对于加密操作,实际应用中,具体使用高级加密标准进行加密,高级加密标准,在密码学中又称Rijndael加密法,是对称密钥加密中最流行的算法之一。高级加密标准最常用的方案有三种,用以适应不同的场景要求,分别AES-128、AES-192和AES-256,本文采用AES-128的方法进行加密。高级加密标准加密过程包含4种操作:字节替代、行移位、列混淆和轮密钥加。解密过程分别为加密过程对应的逆操作。因为每一步的操作都是可逆的,按照加密过程其相反的顺序进行解密即可得到恢复的明文。加密和解密过程中每轮的密钥分别由初始的密钥扩展得到,具体的过程如图3所示。
[0054] 高级加密标准相对于普通的加密方式,安全性更强,加密的方式更加灵活,可以将一个文件按照逻辑分为各个子健康记录文件Fk,每一个部分Fk都有多个权限树Tpk。上传PHR的用户可以根据需要分别用不同的密钥加密,下载的用户可以根据需要下载所需的部分。加密过程中可以采用多个密钥,不同的部分采用不同的初始密钥Kk进行加密。
[0055] 上述步骤02中,所述各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件VRk,分别采用权限树进行构建,其中,根据子健康记录文件Fk各指定文件操作分别所对应用户类型,构建权限树,各个权限树中的各个叶子节点分别为所对应用户类型的各个属性,各个非叶子节点为预设逻辑门符号,由各个非叶子节点的预设逻辑门符号获得各个非叶子节点的选择次数jc,jc表示非叶子节点c的选择次数;并且步骤02中,按如下公式:
[0056]
[0057] 通过各个密钥Kk,分别针对对应子健康记录文件Fk进行加密,分别获得各个子健康记录密文文件CTk;其中,Tpk表示第k个子健康记录文件Fk所对应第p种指定文件操作的权限树;rk表示指定文件操作的种类数,p=0表示读取文件操作; 表示Y的S0k次方,S0k表示第k个子健康记录文件Fk所对应读取文件操作根节点的多项式的值;从权限树Tpk中的根节点Rpk开始,随机选择 并选择根节点Rpk的多项式 让 其中多项式的次数为 其中, 为根结点Rpk的阈值,最少要有 个子结点为真,根结点Rpk才为真;对于其它节点x,使qx(0)=qparent(x)(index(x)),进而定义权限树中所有节点的多项式,其中,qik表示第k个子健康记录文件Fk所对应属性i所在节点的多项式;qx表示节点x的多项式,parent(x)表示节点x的父节点,index(x)表示结点x的索引值,att(i)表示属性i的属性值,H为 的哈希函数, 表示权限树Tpk中叶子节点属性的集合;进而
获得各个子健康记录文件Fk各指定文件操作分别所对应用户类型的各个权限文件权限文件 表示Y的Spk次方,Spk表示第k个子健康记录文件Fk所对应
第p种指定文件操作的根节点的多项式的值。
[0058] 权限树实施例如图2所示,每一个非叶子结点代表一个阈值门,每一个叶子结点用一个属性表示,该图表示只有亲人、朋友或者医院A的主治医生可以解密该文件。权限树在结构树的基础上进一步延伸。对文件的操作不只有一种,比如对一个治疗记录文件来说,患者想让医生不仅有看的权限,也可以进行修改等操作,而亲人和朋友只具有查看的权限。因此,我们将一个PHR文件分为多个部分,每个部分对应多个权限树,每个权限树对应于一个操作,比如“读”或者“删除”等,只有用户的属性可以满足权限树才可以进行相应的操作。在实际应用中,权限树中非叶子结点不仅只“与”和“或”,用户也可以设置为满足多少个条件以上即可。
[0059] 步骤03.判断个人健康记录使用者是否是公共用户,是则进入步骤05,否则进入步骤04。
[0060] 步骤04.针对该个人健康记录使用者,由对应个人健康记录上传者所构成的个人授权中心根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及个人授权中心的密钥MK,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06。
[0061] 上述步骤04中,具体包括如下步骤:
[0062] 步骤0401.对于个人健康记录使用者u的任意属性i,个人授权中心由0-p的自然数集合 中选择一个整数ri,计算出参数 接着,个人授权中心由0-p的自然数集合中选择一个整数dn,获得 其中H为 的哈希函数,att(i)为属性i的属性值,然后进入步骤0402。
[0063] 步骤0402.个人健康记录使用者u从个人授权中心获得D、Di、D′i,组成得到自己的私钥SKu为 其中,Ou表示个人健康记录使用者u所有属性组成的集合。
[0064] 步骤05.针对该个人健康记录使用者,由所有服务器授权中心分别根据个人健康记录使用者的属性,通过云系统环境公用参数PK,以及各个服务器授权中心的密钥MKn,共同为该个人健康记录使用者生成使用者私钥SKu,然后进入步骤06。
[0065] 上述步骤05中,具体包括如下步骤:
[0066] 步骤0501.对于个人健康记录使用者u的任意属性i,其中一个服务器授权中心由0-p的自然数集合 中选择一个整数ri,选择之后在所有授权中心之间公布,计算出参数接着,各个服务器授权中心An由0-p的自然数集合 中选择一个整数dn,获得其中H为 的哈希函数,att(i)属性i的属
性值,然后进入步骤0502。
[0067] 步骤0502.个人健康记录使用者u从各个服务器授权中心An获得D、Di、D′i,组成得到自己的私钥SKu为 其中Ou表示个人健康记录使用者u所有属性组成的集合。
[0068] 步骤06.该个人健康记录使用者由存储服务器下载获得所需求的子健康记录密文文件CTk,以及所对应各个权限文件VRk,并通过云系统环境公用参数PK,结合该个人健康记录使用者的使用者私钥SKu获得该子健康记录密文文件CTk的密钥Kk,针对该子健康记录密文文件CTk进行解密,获得所对应的子健康记录文件Fk,实现针对子健康记录文件Fk只读操作,若该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07。
[0069] 上述步骤06中,具体包括如下:
[0070] 定义一个公式DN(CTk,SKu,x),其中x表示权限树中的结点,k∈{1,..e},如果x是叶子结点,我们用i表示x结点的属性,如果i∈Ou,那么有DN(CTk,SKu,x)值为否则返回值为空;如果x为非叶子结点,且x有大于等于kx的孩子结点返回值不为空,那么用sx来表示kx个返回值不为空的孩子结点索引值的集合,d为满足条件的结点z的结点索引值,其中 Fx为DN(CTk,SKu,x)的输出值,
那么有:
[0071]
[0072] 如果x为非叶子结点,且x没有大于等于kx个孩子结点的返回值为空,则DN(CTk,SKu,x)的返回值为空;如果用户的属性满足权限树,那么通过公式计算有:如果只进行读操作,并且用户的属性满足读操作的
权限树则计算 并通过
计算出Kk;如果个人健康记录使用者的属性不满足读操作权限树,无法解密并退出方法;如果该个人健康记录使用者需要针对该子健康记录文件Fk执行其它指定类型文件操作,则进入步骤07。
[0073] 步骤07.获得该个人健康记录使用者的身份属性值,并与该子健康记录密文文件CTk所对应指定类型文件操作的权限文件VRk进行比较,比较相等,则允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作,否则不允许该个人健康记录使用者针对该子健康记录文件Fk执行指定类型文件操作。
[0074] 其中,步骤07中,具体包括:如果用户的属性满足操作的权限树Tpk,那么可以用公式DN(CTk,SKu,Rpk)得到 从而有 上传到云端服务器与Vk进行比较,结果相等,可以进行操作;如果不满足权限树Tpk,则无法计算出正确的 上传到云端服务器与Vk进行比较,结果不等,不可以进行操作;其中,Tpk表示第k个子健康记录文件Fk所对应的权限树。
[0075] 将上述所设计云系统环境个人健康记录存储访问方法,应用到如图1所示具体应用中,PHR(Personal Health Record)个人健康记录上传者,患者对自己的个人健康记录(PHR)数据拥有完全的控制权,他们将数据加密后上传到云端,通过权限树的形式指定哪些用户可以解密密文并且进行哪些操作,他们可以建立和管理个人健康记录(PHR)数据。
[0076] 个人健康记录(PHR)数据使用者根据对个人健康记录(PHR)数据用途分为个人用户和公共用户,个人用户一般是个人健康记录(PHR)数据上传者的朋友或者亲人,由个人健康记录(PHR)数据上传者本人进行验证。个人健康记录(PHR)数据公共用户一般是专业人员,比如医生、研究人员、急救人员等,将个人健康记录(PHR)数据用于治疗或者研究,由相关的公共机构进行验证。
[0077] 公共用户有多个授权中心,每个授权中心具有强大的运算能力。一个公有用户的身份分为若干个属性,每个授权中心只负责一部分的属性,这样可以防止单个授权中心负担过重和过多的知道用户的信息。比如,医生的资格要通过卫生部的验证,职称的验证可以通过人力资源和社会保障部,所在医院和在医院的具体职务和诊疗范围可以通过卫计委来验证。个人用户的授权中心一般是PHR上传者本人。
[0078] 本发明所设计云系统环境个人健康记录存储访问方法,采用多授权中心的方式,每个授权中心只负责用户一部分的属性,减轻了单个授权中心的负担,并且降低了授权中心泄露用户隐私的风险,即使攻击者成功攻破了其中的一些授权中心,也无法得知用户的全部信息,并且同样防止授权中心本身过多地知道用户的属性;而且用户向各个授权中心请求时用的是假名,假名与用户的私钥相关联,而授权中心只知道用户私钥的部分信息,无法知道整个私钥,所以用户向各个授权中心请求私钥时,授权中心无法知道用户的确切身份;并且文件加密时,各个部分使用不同的密钥进行加密,个人健康记录的拥有者在加密时可以根据自己的需要灵活地进行加密,增加了加密时候的选择,增强了安全性,并且用户下载时只需要下载其所需要的部分,降低了流量消耗;还有针对权限文件,分别采用权限树进行构建,通过多个权限树,每一个权限树对应了一个操作,将用户的权限近一步地细化为读、删除、修改等,避免了用户过多地获得对于文件的操作权限,增强了文件地保护,权限分配的方式也更加的灵活;其中,引入公共用户和个人用户概念,公共用户的验证由相关的公共机构进行验证,个人用户的验证通过个人健康记录上传者本人,不需要所有的验证都通过个人健康记录上传者本人,减轻了个人健康记录上传者的负担,提高了可扩展性。公共用户的验证通过相关的公共机构,提高了安全性。
[0079] 上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。