一种泄露密钥可追踪的属性基混合加密方法技术

技术编号:10674261 阅读:300 留言:0更新日期:2014-11-26 10:37
一种泄露密钥可追踪的属性基混合加密方法,可信权威:1、输入系数λ,输出系统参数;2、运行随机数生成算法;3、选择一种抗碰撞哈希函数,计算哈希值;4、运行指纹码生成算法GenFC;5、计算双线性对、求幂运算;6、为用户分配指纹码,指定属性集合S;7、运行随机数生成算法、乘法和求幂运算;8、在用户私钥中嵌入指纹码。数据持有者:9、进行AES数据加密;10、生成访问控制矩阵;11、运行属性基加密算法Encapsulate,对AES会话密钥加密;12、运行双线性对和乘、除法计算,得到会话密钥;数据使用者:13、运行AES数据解密算法;可信权威:1*、寻找适应性码字;2*、计算pj和Z;3*、计算权值和,输出集合C。

【技术实现步骤摘要】
一种泄露密钥可追踪的属性基混合加密方法(一)
:本专利技术涉及一种泄露密钥可追踪的属性基混合加密方法,可实现云存储环境下的用户密钥安全管理,在数据遭到非法访问时利用指纹码技术能有效追踪到泄露密钥的用户身份,属于信息安全中密码学领域。(二)技术背景:伴随着云计算概念的提出,越来越多的计算机用户将数据的存储、信息处理等业务交付给现有网络,以按需、易扩展的方式获得所需的资源,如硬件、平台、软件等。云存储就是云计算服务的一种,通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。云存储服务的出现大大减轻了数据持有用户存储数据时的沉重负担(例如手机用户的移动设备往往可用的存储空间很小,无法实现较大数据的存储)。考虑到云存储服务的优势,各网络服务供应商都相应提出了自己的云计算服务模型,例如亚马逊公司的弹性计算云(EC2,ElasticComputeCloud)、苹果公司的iCloud和微软的WindowsAzure。在云存储环境中,用户可以将大量的数据上传到云存储服务器端,服务器由云服务提供商进行维护;唯有数据持有者和被授权的用户可以实现存储数据的访问,用户无需考虑当地存储硬件及软件的限制便可轻松实现数据的共享;脱离了对存储介质的依赖,用户可以随时随地下载存储在云端的数据,便携性更强。云存储为我们的生活带来的便利是显而易见的,然而值得引起忧虑的是云存储中的数据安全与隐私保护问题。当我们将重要的数据上传到云端之后便交付出了数据的访问控制权,一旦云端的存储器遭到了恶意的网络攻击或是云服务提供商内部的员工出于商业利益等目的做出了不正等操作,都将对我们的数据安全造成极大的威胁。如何有效地保护云端数据的完整性,制定数据的访问权限成为用户在上传数据到云端之前需优先考虑的问题。数据加密方法一直以来都作为数据传输、存储过程中保护数据安全性的有效手段。在云存储环境下,数据持有者可以在将数据上传到云端服务器存储之前,利用数据加密手段,对数据加密后再上传。即便发生了数据泄露事件,由于数据是经加密后存储的,只有授权的用户可以对加密后的数据解密,最大程度地保护了用户的隐私安全。现有的加密体制分为对称加密体制与非对称加密体制,对称加密体制的加、解密密钥相同,而非对称加密体制的加、解密密钥不同。对称加密体制的优势在于加、解密速度快,密钥及密文长度短;劣势在于通信双方需使用相同的会话密钥,这往往需要额外的密钥协商协议,才能达到密钥的安全传输。非对称加密体制的优势在于,加密方加密时使用的密钥是解密方公开的密钥,解密方仅需保管好该公钥对应的解密密钥即可,省去了多余的密钥协商步骤;而非对称加密的劣势在于,加、解密的时间长,密钥及密文长度过长,存储负担过重。为了平衡两种加密机制的优劣,本专利技术采用混合加密的方法对数据进行加密。所谓混合加密是指,原始数据采用对称加密机制加密后作为一份密文,加密时使用的会话密钥采用非对称加密机制加密后作为第二份密文,将两份密文同时传输给解密方。解密方在得到所有密文后,首先对第二份密文解密,解密得到第一份密文的会话密钥,接着利用会话密钥完成第一份密文的解密,恢复出原始数据。对称加密机制里主要的加密方法有DES(DataEncryptionStandard)和AES(AdvanceddataEncryptionStandard)。DES限制了加密密钥为长度为64比特,由于密钥长度过短,极易遭到字典攻击。考虑到AES的密钥长度可取128、192和256比特,在保证了密钥长度足够长的前提下,更加灵活,可适应不同强度的加密需求,故本专利技术采用AES的对称数据加密方法。目前较为新颖的公钥加密方法有身份基加密方法(IBE,Identity-basedEncryption)和属性基广播加密方法(ABE,Attribute-basedEncryption)。身份基加密方法的主要特点是加密数据的公钥为解密方的身份,譬如身份证件号码、电话号或是邮箱地址等。加密方在对数据加密时,首先需要知晓对方的身份信息,方可进行接下来的加密工作。而属性基加密则不同,属性基加密的密钥跟用户的属性集合相关,每个用户在系统中均有对应的属性,属性代表用户的特征,例如某医院的医生Alice在系统中的属性即可定为{{XXX医院},{心脑血管科室},{女},{主治医师},{36岁}}。加密方在对数据加密之前需要制定与属性相关的访问控制策略,只有用户的属性满足该访问控制策略的条件时方可对数据解密。比方说病人Mallory希望将自己的病历信息与某些心脑血管方面的医疗专家共享,她可以根据自己的需求制定访问控制策略:“心脑血管科室”AND“主治医师”;这样上个例子里的Alice便可作为满足访问控制策略的用户对文件进行访问。属性基加密方法较之身份基加密方法的优势在于,属性基加密无需清楚地知道对方用户的具体身份,根据用户的属性便可界定出可以访问自己数据的用户集合,这通常更加贴近现实生活中的应用场景。本专利技术利用了属性基加密方法的优势,根据用户的属性集合为用户生成私钥;同时,将对称加密的会话密钥用属性基加密的方法加密。单单依靠传统的加密手段保护数据并不是万无一失的,属性基加密方法通过给用户颁发与属性集合相对的用户私钥用来对文件解密,一旦用户的私钥出于某种原因遭到了泄露,该私钥可以解密的数据也就不安全了。这时,我们需要采取紧急的应对措施,追踪到私钥泄露的源头,将数据安全的破坏降到最低。指纹码(Fingerprintcode)技术便是很好的叛徒追踪方法。顾名思义,指纹是我们每个人所特有的,指纹码即是为系统中的所有用户分配的独一无二的码字,通过指纹码可以直接找到对应的用户的身份。指纹码通常由两个算法组成:指纹码生成算法GenFC和指纹码追踪算法TraFC;GenFC算法通过输入初始系统参数生成所有用户的指纹码,TraFC算法则根据盗版解码器(PD,PirateDecoder)伪造的适应性码字追踪到泄密用户的身份。盗版解码器在这里的作用是利用泄密用户的指纹码伪造出适应性的码字,达到访问加密数据的目的。由于非法用户运行盗版解密器的具体步骤在追踪时是不可知的,所以这里我们假定它是以黑盒(Blackbox)的方式运行,即我们在进行追踪泄密用户的过程中无需考虑它的工作方式,同样可以达到追踪的目的。在本专利技术中,我们将TraFC算法为每个用户生成的指纹码嵌入到用户的私钥中,即通过指纹码标记了用户在系统中的身份,一旦发生文件非法访问事件,通过指纹码追踪技术便可找到泄密的用户。由于指纹码追踪算法是概率算法,有可能发生追踪失败(即追踪到零个用户和无辜用户)的情况,故我们采用KojiNuida等人的改进的指纹码追踪技术,在事先界定了抗合谋用户的数量上限及失败概率后,理论上保证在发生泄密事件后至少能追踪到一个泄密的用户。(三)
技术实现思路
:1、目的:本专利技术的目的是提出一种泄露密钥可追踪的属性基混合加密方法,在云存储环境下,数据持有者利用混合加密的方式将数据加密后再上传到云端存储,保证了数据在云端的安全性;同时本专利技术结合指纹码技术,将系统为用户生成的独特的指纹码嵌入到用户私钥中,即使发生了私钥泄露事件,运行指纹码追踪算法本文档来自技高网
...
一种泄露密钥可追踪的属性基混合加密方法

【技术保护点】
一种泄露密钥可追踪的属性基混合加密方法,其特征在于:其作法如下:模块一:系统初始化模块:步骤1:可信权威即TA输入系统安全参数λ,运行算法输出两个阶数为素数p的群和一个双线性映射运算步骤2:可信权威接下来运行随机数生成算法,随机选择群中的某个生成元g,以及Zp域中的两个元素a,α;步骤3:可信权威选择一种抗碰撞哈希函数H(·),该函数满足抗碰撞哈希函数的所有特性,输入为任意长度的0、1字符串,输出为映射到群中的某一元素;步骤4:可信权威运行指纹码生成算法GenFC,输入该整数n和L,该整数n表示将要生成的指纹码集合Γ中元素的个数,L表示集合Γ中每个指纹码的长度;算法GenFC输出指纹码集合Γ={ω(1),...,ω(n)},其中每个码字的长度为L;步骤5:可信权威经过一次双线性对运算和两次指数运算得到公钥为:PK=(g,ga,e(g,g)α,H(·))经过一次指数运算得到主密钥为:MSK=gα;模块二:用户录入模块:步骤6:对于请求加入系统的用户,由可信权威为其分配集合Γ中的某个指纹码ω(ω∈Γ),并根据用户身份条件指定属于该用户的属性集合S;步骤7:可信权威输入主密钥MSK=gα,运行随机数生成算法,随机选择Zp域中的某个元素r,运行两次指数和一次乘法运算,得到:K0=gαgar和K1=gr;步骤8:可信权威输入该用户属性集合S和指纹码ω,对属性集合S中的所有属性x,从1到l,进行级联、哈希函数和指数运算,得到:{Dx,j=H(x||j||ωj)r}∀x∈S,j=1,...,L]]>用户最终分配到的私钥为:SK=(K0,K1,{Dx,j}∀x∈S,j=1,...,L);]]>其中,该级联运算“||”表示字符串x,j,ωj首尾相接;模块三:文档建立模块:步骤9:数据持有者即Data Owner首先运行随机数生成算法,随机选择群中的某一元素M作为对称加密的会话密钥;使用会话密钥M对文档进行AES数据加密,加密后的密文CT上传到云端存储器存储;步骤10:数据持有者根据自己的安全需求,制定相应的访问控制策略,该策略由用户属性表示,例如“(属性1AND属性2)OR属性3”,根据访问控制策略后,生成对应的访问控制矩阵(A,ρ),A表示l行n列的矩阵,ρ表示能将矩阵A的一行映射到访问控制策略中的某一属性的映射;步骤11:数据持有者输入公钥PK、访问控制矩阵(A,ρ)和待加密的会话密钥M后,为确保泄露的用户私钥能被追踪到,数据持有者首先随机选择[1,L]区间的某一整数j,对于0和1分别运行属性基加密算法Encapsulate:Hdrj,0←Encapsulate(PK,M,(A,ρ),(j,0))Hdrj,1←Encapsulate(PK,M,(A,ρ),(j,1))]]>Encapsulate算法的运行如下:首先,数据持有者选择随机的向量向量中的s为解密时,数据使用者需要恢复的指数;其他元素υ2,…,υn是从Zp域中随机选取的,将矩阵A的每一行作为行向量与向量进行内积运算,得到λ1,λ2,…,λl:λi=A→i·υ→(i=1,...,l)]]>接下来,Encapsulate算法对矩阵A中的每一行i进行ρ(·)映射,得到对应的属性字符串ρ(i)后与j和0、1字符级联;最后分别计算其抗碰撞哈希函数的值:H(ρ(i)||j||0)H(ρ(i)||j||1)]]>最后,经过(2+2l)次指数和(1+2l)次乘法运算,得到Encapsulate算法的结果:C=Me(g,g)αs,C0=gs,C1=gaλ1H(ρ(1)||j||0),C2=gaλ2H(ρ(2)||j||0),...,Cl=gaλlH(ρ(l)||j||0)]]>C1′=gaλ1H(ρ(1)||j||1),C2′=gaλ2H(ρ(2)||j||1),...,Cl′=gaλlH(ρ(l)||j||1)]]>记为:Hdrj,0=(C,C0,{C1,C2,...,Cl})Hdrj,1=(C,C0,{C1′,C2′,...,Cl′})]]>最终M经Encapsulate算法加密后的密文表示为:Hdr=(j,Hdrj,0,Hdrj,1);模块四:文档访问模块:定义集合I(I={i|ρ(i)∈S}),表示用户属性集合S中所有属性ρ(i)∈S通过映射ρ(·),对应的访问控...

【技术特征摘要】
1.一种泄露密钥可追踪的属性基混合加密方法,其特征在于:其作法如下:步骤一:系统初始化步骤:步骤1:可信权威即TA输入系统安全参数λ,运行算法输出两个阶数为素数p的群和一个双线性映射运算e:步骤2:可信权威接下来运行随机数生成算法,随机选择群中的某个生成元g,以及Zp域中的两个元素a,α;步骤3:可信权威选择一种抗碰撞哈希函数H(·),该函数满足抗碰撞哈希函数的所有特性,输入为任意长度的0、1字符串,输出为映射到群中的某一元素;步骤4:可信权威运行指纹码生成算法GenFC,输入整数n和L,整数n表示将要生成的指纹码集合Γ中元素的个数,L表示集合Γ中每个指纹码的长度;算法GenFC输出指纹码集合Γ={ω(1),...,ω(n)},其中每个码字的长度为L;步骤5:可信权威经过一次双线性对运算和两次指数运算得到公钥为:PK=(g,ga,e(g,g)α,H(·))经过一次指数运算得到主密钥为:MSK=gα;步骤二:用户录入步骤:步骤6:对于请求加入系统的用户,由可信权威为其分配集合Γ中的某个指纹码ω(ω∈Γ),并根据用户身份条件指定属于该用户的属性集合S;步骤7:可信权威输入主密钥MSK=gα,运行随机数生成算法,随机选择Zp域中的某个元素r,运行两次指数和一次乘法运算,得到:K0=gαgar和K1=gr;步骤8:可信权威输入该用户属性集合S和指纹码ω,对属性集合S中的所有属性x,从1到l,进行级联、哈希函数和指数运算,得到:用户最终分配到的私钥为:其中,该级联运算“||”表示字符串x,j,ωj首尾相接;步骤三:文档建立步骤:步骤9:数据持有者即DataOwner首先运行随机数生成算法,随机选择群中的某一元素M作为对称加密的会话密钥;使用会话密钥M对文档进行AES数据加密,加密后的密文CT上传到云端存储器存储;步骤10:数据持有者根据自己的安全需求,制定相应的访问控制策略,该策略由用户属性表示,例如“(属性1AND属性2)OR属性3”,根据访问控制策略后,生成对应的访问控制矩阵(A,ρ),A表示l行n列的矩阵,ρ表示能将矩阵A的一行映射到访问控制策略中的某一属性的映射;步骤11:数据持有者输入公钥PK、访问控制矩阵(A,ρ)和待加密的会话密钥M后,为确保泄露的用户私钥能被追踪到,数据持有者首先随机选择[1,L]区间的某一整数j,对于0和1分别运行属性基加密算法Encapsulate:Encapsulate算法的运行如下:首先,数据持有者选择随机的向量向量中的s为解密时,数据使用者需要恢复的指数;其他元素υ2,…,υn是从Zp域中随机选取的,将矩阵A的每一行作为行向量与向量进行内积运算,得到λ1,λ2,…,λl:接下来,Encapsulate算法对矩阵A中的每一行i进行ρ(·)映射,得到对应的属性字符串ρ(i)后与j和0、1字符级联;最后分别计算其抗碰撞哈希函数的值:最后,经过(2+2l)次指数和(1+2l)次乘法运算,得到Encapsulate算法的结果:C=Me(g,g)αs,C0=gs,记为:最终M经Encapsulate算法加密后的密文表示为:Hdr=(j,Hdrj,0,Hdrj,1);步骤四:文档访问步骤:定义集合I(I={i|ρ(i)∈S}),表示用户属性集合S中所有属性ρ(i)∈S通过映射ρ(·),对应的访问控制矩阵A的行标i的集合;若用户的属性集合S中的属性满足数据持有者加密M时制定的访问控制策略,则一定能找到常数wi∈Zp,按照下式:有效恢复出指数s;步骤12:在这一步骤中,数据的使用者即DataConsumer从云端存储器下载需要访问的加密文件CT和Hdr;从步骤11的输出可知,消息Hdr由三部分组成;数据使用用户首先查看自身指纹码的第j位:对于指纹码的第j位是0的情况,属性基解密算法的输入...

【专利技术属性】
技术研发人员:伍前红邓桦周云雅刘建伟秦波
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1