法律状态公告日
法律状态信息
法律状态
2017-10-27
授权
授权
2015-05-20
实质审查的生效 IPC(主分类):H04L29/06 申请日:20141225
实质审查的生效
2015-04-22
公开
公开
技术领域
本发明属于云计算数据安全领域,更具体地,涉及一种提高外包加密 数据共享功能的重加密方法。
背景技术
外包数据是指存储在云端的数据。随着个人数据量越来越大,也随着 人们对数据访问便利性的要求越来越高,越来越多的数据被存放在云端。 如何保证外包数据的安全性也成为了不可避免的问题。为了保证数据的私 密性,现在采取的手段是将数据进行加密后存放在云端,但是加密数据的 高效共享成为一个难题。
Chu等人在“条件代理广播重加密”一文中提出了一种带细粒度控制 的广播代理重加密方法,此方法中共实现了细粒度控制、广播和代理重加 密三种功能,细粒度控制是指将分享的粒度控制到单个文件级,广播是指 可以为多个用户生成一条密文,代理重加密是指云端可以根据数据拥有者 生成的代理重加密密钥将一条可以被用户群S1解密的数据重加密成用户群 S2解密的数据。使用此方法可以实现外包加密数据共享的高效性。M.Green 等人在《基于身份的代理重加密》一中提出了基于身份的代理重加密方案, 在此方案中将基于身份加密与代理重加密结合起来,可以对在基于身份加 密的体系下实现代理重加密。相比于传统的公钥体制,基于身份加密具有 不需证书管理的优势。Shao等人在《基于身份的条件代理重加密》一文中 提出了带细粒度控制的基于身份代理重加密方案,此方案在基于身份代理 重加密方案的基础上加入了细粒度控制,实现了对文件级的外包密文数据 的共享。
然而,现有上述方法存在以下问题:
(1)在上述第一种方法中,使用的加密体系是传统的公钥体系,而 传统的公钥体系的运行过程中需要证书管理的证书的认证,这会带来很大 的开销;
(2)在上述第二种方法中,虽然使用了基于身份加密的体系,免去 了证书管理和认证方面的开销,但是它并不能将粒度控制到单个的文件级, 也不能实现对多用户的广播;
(3)在上述第三种方法中,并不能实现对多用户的广播,在多用户 请求分享外包密文数据的情况下,会有很大的计算和传输开销。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种提高外包加 密数据共享功能的代理重加密方法,其目的在于解决现有方法中存在的开 销大、不能实现对多用户广播、以及计算和传输开销大的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种提高外包加密 数据共享功能的代理重加密方法,其应用在包括多个用户、云端以及KGC 的存云存储系统中,该方法包括以下步骤:
(1)根据预先确定的安全级别构建对应的双丝性映射,并根据该双线 性映射和系统中的用户数量计算主公共密钥PK和主秘密参数MK;
(2)根据生成的主秘密参数MK和每个用户所具有的身份ID,为每 个用户生成私钥SK,并将该私钥发送给对应的用户;
(3)接收由接收方集合向数据拥有者发送的数据请求,并根据该数据 请求判断该数据请求对应的数据是否已经存放在云端,如果是则转入步骤 (5),否则转入步骤(4);
(4)使用接收方集合S1的公钥对该数据请求对应的数据m进行加密, 以生成初始密文C,并经由云端将初始密文转发给发送数据请求的用户, 由接收方集合S1在收到初始密文后用其私钥进行解密;
(5)数据拥有者生成与相应初始密文对应的代理重加密密钥,将其发 送给云端,云端对初始密文做重加密生成重加密密文C2,将其发送给请求 方集合S2中的用户,请求方集合S2中的用户收到后可用其私钥对其进行 解密。
优选地,步骤(1)包括以下子步骤:
(1-1)根据所需的安全级别设定安全参数λ,并构建双线性映射e: G1×G1→GT,其中G1和G2为椭圆曲线群,这两个椭圆曲线群的阶数p的 长度等于安全参数λ;
(1-2)在椭圆曲线群G1中随机选取四个元素g,、h、,u、,t,在p阶的 正整数群群中随机选取一个数γ,同时选择两个哈希函数如下:H1:
(1-3)根据上述步骤(1-1)和(1-2)的结果生成主公共密钥PK和主 秘密参数MK:,
MK=(g,γ)
其中w=gγ,v=e(g,h),N表示系统中运行的用户总数。
优选地,步骤(2)是采用以下公式:
优选地,步骤(4)包括以下子步骤:
(4-1)确定待发送明文数据的接收方集合S1,并取得S1中所有用户 的公钥;
(4-2)为待发送明文选择一个特征值α作为细粒度控制的条件;
(4-3)在正整数集合中选择一个随机数k,并利用以下公式将明文数 据m加密成初始密文C:
C=(c1,,c2,,c3,,c4)
c1=w-k
c3=vk·m
(4-4)数据拥有者生成初始密文C后,将其发送给云端,由云端代为 转发给数据请求者S1,并在云端保存备份;
(4-5)一个用户收到初始密文C=(c1,,c2,,c3,,c4)后,用其私钥SKID进行解密,具体如以下公式:
最后得出明文
优选地,步骤(5)包括以下子步骤:
(5-1)取得请求方集合S2中所有用户的公钥、以及数据请求对应的初 始密文的特征值α;
(5-2)在正整数集合中随机选取两个数k′、s,由以下公式计算生成重 加密密钥,并将该重加密密钥发送到云端:
dID→S2|α=(d1,d2,d3,d4)
d1=w-k′
d3=H2(vk′)
其中dID→S2|α表示针对具有特征值α的初始密文,重加密给请求方集合的重 加密密钥;
(5-3)云端将重加密密钥dID→S2|α与初始密文C做计算,生成重加密 密文,并将生成的重加密密文C2发送给请求方集合S2;具体计算步骤如 以下公式:
C2=(c′1,,c′2,,c′3,,c′4,,c′5)
c′2=d2
c′3=d3
c′4=c4
(5-4)用户群S2中的用户收到重加密密文C2后用自己的私钥对其解 密,具体如以下公式:
并通过K′计算得到明文m=c′5·e(K′,c′4),其中ID’表示S2中的一个 用户。
按照本发明的另一方面,提供了一种提高外包加密数据共享功能的代 理重加密系统,其应用在包括多个用户、云端以及KGC的存云存储系统中, 包括:
第一模块,用于根据预先确定的安全级别构建对应的双丝性映射,并 根据该双线性映射和系统中的用户数量计算主公共密钥PK和主秘密参数 MK;
第二模块,用于根据第一模块生成的主秘密参数MK和每个用户所具 有的身份ID,为每个用户生成私钥SK,并将该私钥发送给对应的用户;
第三模块,用于接收由接收方集合向数据拥有者发送的数据请求,并 根据该数据请求判断该数据请求对应的数据是否已经存放在云端,如果是 则转入第五模块,否则转入第四模块;
第四模块,用于使用接收方集合S1的公钥对该数据请求对应的数据m 进行加密,以生成初始密文C,并经由云端将初始密文转发给发送数据请 求的用户,由接收方集合S1在收到初始密文后用其私钥进行解密;
第五模块,用于数据拥有者生成与相应初始密文对应的代理重加密密 钥,将其发送给云端,云端对初始密文做重加密生成重加密密文C2,将其 发送给请求方集合S2中的用户,请求方集合S2中的用户收到后可用其私 钥对其进行解密。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够 取得下列有益效果:
1、能够解决现有方法所遇到的使用传统公钥体系会带来的证书管理 开销过大的问题,在本发明中使用基于身份加密作为基本的加密体系,基 于身份加密将用户的身份作为公钥,这样就不用对用户的公钥进行认证, 可以节省大量开销;
2、能够解决现有方法中所遇到的分享不便利的问题,在步骤(2) 和步骤(3)中,在初始密文生成和代理重加密密钥生成的过程中,加入 了细粒度控制的条件,而且实现了对多用户的广播,为多用户生成一条密 文,这样在外包加密数据共享的便利性和效率上会有很大提高;
3、本发明所提出的方法实现了细粒度控制、广播、基于身份加密和 代理重加密四种特性,在保证外包加密数据安全性的同时,提高了外包加 密数据共享的便利性和高效性。
附图说明
图1是本发明的应用环境图。
图2是本发明提高外包加密数据共享功能的代理重加密方法的流程图。
图3是本发明方法中步骤(1)的细化流程图。
图4是本发明方法中步骤(4)的细化流程图。
图5是本发明方法中步骤(5)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体 实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的 本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可 以相互组合。
如图1所示,其显示出本发明方法的应用环境图,本方法涉及三方实 体:用户、密钥生成中心(Key Generation Center,简称KGC)、数据存储 云端(Cloud)。用户可以为好友加密初始密文并发送给云端,如果有好友 请求已有密文,用户负责生成重加密密钥并将其发送给云端。KGC负责生 成主公共密钥、主秘密参数以及为每个用户生成相对应的私钥,将主公共 密钥发送给每个用户,将主秘密参数保密,将每个用户的私钥发给用户。 数据存储云端用来存储、转发密文数据和使用代理重加密密钥计算代理重 加密密文。
如图2所示,本发明提高外包加密数据共享功能的代理重加密方法, 其应用在包括多个用户、云端以及KGC的存云存储系统中,该方法包括以 下步骤:
(1)根据预先确定的安全级别构建对应的双丝性映射,并根据该双线 性映射和系统中的用户数量计算主公共密钥PK和主秘密参数MK;具体而 言,预先确定的安全级别是云端根据需要确定的,如果安全级别越高,则 用户私钥的长度越大,每次运算需要的时间就越长,相应的系统运行效率 就越低,反之则运行效率越高。主公共密钥向所有用户公开,主秘密参数 被系统保留;
如图3所示,本步骤包括以下子步骤:
(1-1)根据所需的安全级别设定安全参数λ,并构建双线性映射e: G1×G1→GT,其中G1和G2为椭圆曲线群,这两个椭圆曲线群的阶数p的 长度等于安全参数λ;
(1-2)在椭圆曲线群G1中随机选取四个元素g,、h、,u、,t,在p阶的 正整数群群中随机选取一个数γ,同时选择两个哈希函数如下:
H1:用于将任意长度的01串映射到p阶正整数群中;
H2:GT→G1,用于将群GT中的元素映射到群G1中。
(1-3)根据上述步骤(1-1)和(1-2)的结果生成主公共密钥PK和主 秘密参数MK:,
MK=(g,γ)
其中w=gγ,v=e(g,h),N表示系统中运行的用户总数;
(2)根据上一步生成的主秘密参数MK和每个用户所具有的身份ID (其为具有一定长度的01字符串),为每个用户生成私钥SK,并将该私钥 发送给对应的用户;具体而言,本步骤是采用以下公式:
在本发明中,用户的公钥是其本身的身份ID。
(3)接收由接收方集合向数据拥有者发送的数据请求,并根据该数据 请求判断该数据请求对应的数据是否已经存放在云端,如果是则转入步骤 (5),否则转入步骤(4);
(4)使用接收方集合S1的公钥对该数据请求对应的数据m进行加密, 以生成初始密文C,并经由云端将初始密文转发给发送数据请求的用户, 由接收方集合S1在收到初始密文后用其私钥进行解密;
如图4所示,本步骤包括以下子步骤:
(4-1)确定待发送明文数据的接收方集合S1,并取得S1中所有用户 的公钥,也就是其身份ID;
(4-2)为待发送明文选择一个特征值,作为细粒度控制的条件,在正 整数集合中选取α作为特征值;
(4-3)在正整数集合中选择一个随机数k,并利用以下公式将明文数 据m加密成初始密文C:
C=(c1,,c2,,c3,,c4)
c1=w-k
c3=vk·m
(4-4)数据拥有者生成初始密文C后,将其发送给云端,由云端代为 转发给数据请求者S1,并在云端保存备份;
(4-5)一个用户(令其身份为ID)收到初始密文C=(c1,,c2,,c3,,c4) 后,用其私钥SKID进行解密,具体如以下公式:
最后得出明文
(5)数据拥有者生成与相应初始密文对应的代理重加密密钥,将其发 送给云端,云端对初始密文做重加密生成重加密密文C2,将其发送给请求 方集合S2中的用户,请求方集合S2中的用户收到后可用其私钥对其进行 解密。
如图5所示,具体步骤如下:
(5-1)取得请求方集合S2中所有用户的公钥、以及数据请求对应的初 始密文的特征值α;
(5-2)在正整数集合中随机选取两个数k′、s,由以下公式计算生成重 加密密钥,并将该重加密密钥发送到云端:
dID→S2|α=(d1,d2,d3,d4)
d1=w-k′
d3=H2(vk′)
其中dID→S2|α表示针对具有特征值α的初始密文,重加密给请求方集合的重 加密密钥;
(5-3)云端将重加密密钥dID→S2|α与初始密文C做计算,生成重加密 密文,并将生成的重加密密文C2发送给请求方集合S2;具体计算步骤如 以下公式:
C2=(c′1,,c′2,,c′3,,c′4,,c′5)
c′2=d2
c′3=d3
c′4=c4
(5-4)用户群S2中的用户收到重加密密文C2后用自己的私钥对其解 密,具体的解密步骤如以下公式:
并通过K′计算得到明文m=c′5·e(K′,c′4),其中ID’表示S2中的一个 用户;
本发明的优点在于本方法可以同时具有细粒度控制、广播、免掉证书 管理开销和安全共享四种特性,并在实现这四种特性的同时,性能与现有 方法相比也比较有优势,具体如下:
本发明与现有方法的性能与功能比较
在本方法提出之前,也有大量工作致力于解决我们所提出的问题,接 下来对现有工作与本方法在功能性和性能方面做详细比较。
在功能性方面,可将本方法所具有的功能分为四块:
(1)代理重加密保护密文安全性;
(2)基于身份加密减少证书管理开销;
(3)广播加密减少多用户发送时带宽和计算开销;
(4)条件加密控制细粒度。
表1 与相关工作的功能性对比
如上表1所示,在本方法提出前的相关工作中,并没有一种方法能同 时具备这四种特性,而且这四种特性分管不同的属性,每一种特性都会带 来相应功能性上的便利,在功能性上来看,本方法比以往方法更具优势。
在性能方面,将本方法与同类型工作进行计算开销上的比较,如下:
表2 N个用户生成初始密文性能对比
表3 N个用户生成重加密密钥性能对比
表4 N个用户生成重加密密文并由用户解密性能对比
由上表2,表3,表4可知,本方法在为N个用户生成初始密文、为 N个用户生成重加密密钥、为N个用户生成重加密密文并由其解密的过程 中,综合开销最小。
本发明在加密云邮件系统中的应用
本方法可以应用到加密云邮件场景中,方法的实现步骤与加密云邮件 系统实际步骤的结合如下:
(1)用户注册:用户注册时自己决定自己的邮箱账户名,此账户名 与用户天然绑定,这个用户名就代表用户本身。使用算法的第(1)步和 第(2)步,系统根据用户自己的用户名,为用户生成用户的私钥,用户的 公钥就是自己的用户名;
(2)发邮件:用户可以使用算法第(3)步给一个朋友发邮件也可以 直接群发邮件,用户选定要发送的好友,并编辑好发送内容后将其交给系 统,系统将此邮件为用户选定的好友加密成初始密文,并广播推送给这些 好友;
(3)转发邮件:使用算法的第(4)步,如果用户想将自己收到的 邮件给自己的好友转发,首先选定要转发的好友,系统根据用户的私钥、 所要转发的邮件及所要转发的好友生成相应的重加密密钥,并将其发送给 云邮件服务器。云邮件服务器用些重另密密钥对初始密文进行转换,并将 转换后的重加密密文作为邮件群发给所选定的用户;
(4)查看邮件:用户收到邮件后,用自己的私钥将其解密,不论是 初始密文还是重加密密文,用户都可以用自己的私钥将其解密,解密过程 可以对用户透明。
根据本方法的步骤,将其与加密云邮件结合后,与现有的加密云邮件 系统相比,如Trend Micro,ProofPoint等,具有更强的安全性和易用性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等 同替换和改进等,均应包含在本发明的保护范围之内。
机译: 基于多代理重加密的医学数据共享和二次使用的方法和装置
机译: 基于格环境的代理重加密方法及其能够通过降低计算复杂度来提高计算效率的装置
机译: 通过保护用户隐私来提高个人数据共享服务系统功能的特定方法