一种基于身份的跨系统代理重加密方法

文档序号:7806722阅读:1134来源:国知局
一种基于身份的跨系统代理重加密方法
【专利摘要】一种基于身份的跨系统代理重加密方法,PKG运行的步骤:1、输入系数λ,输出系统参数;2、运行随机数生成算法;3、计算双线性对、求幂和乘法;4、选择一种抗碰撞哈希函数,输出公钥;5、运行抗碰撞哈希函数;6、计算加法、求倒和幂,输出私钥;授权方运行的步骤:7、运行抗碰撞哈希函数;8、运行随机数生成算法、乘法和求幂运算,输出密文;9、选择盲化因子k;10、运行抗碰撞哈希函数;11、运行随机数生成算法、乘法和求幂运算,输出转换密钥;代理方运行的步骤:12、计算双线性对和除法,输出重加密密文;被授权方运行的步骤:13、运行抗碰撞哈希函数;14、计算双线性对、加法、连乘和除法,输出k;15、计算双线性对和乘法,输出明文。
【专利说明】一种基于身份的跨系统代理重加密方法
(—)【技术领域】:
[0001]本发明涉及一种基于身份的跨系统代理重加密方法,可实现不同加密系统下密文的代理转换,属于信息安全中密码学领域。
(二)技术背景:
[0002]随着通信安全性的提高,多种密码体制被提出用以对数据进行加密传输,保证了用户之间的通信隐私安全,基于身份的公钥加密体制就是被广泛应用的一种。根据通信双方所采用的密钥是否相同,将数据加密的体制分为两种:单钥加密体制与公钥加密体制;公钥加密是与单钥加密相对的一种加密体制,两者均强调加密算法可以公开,而解密密钥必须严格保密,一旦密钥泄露则整个加密的数据就不安全了。两者的不同之处在于,单钥加密的加密密钥与解密密钥是相同的,而公钥加密的加密密钥与解密密钥是不同的。在公钥加密体制中,公钥用以对要加密的信息(这里我们称之为明文)加密,而私钥则用来对加密后的信息(这里我们称之为密文)加密。
[0003]基于身份的加密方法-1dentity-Based Encrypt1n(IBE)最开始是由Shamir
提出的,属于公钥加密体制。参与方通常为加、解密方和私钥生成中心。在IBE系统中,解密方的身份ID作为加密的公钥,该身份ID可以是解密方的身份证号码、邮箱地址或是电话
号码等。加密方根据公钥对明文进行加密,私钥生成中心-Private Key Generator (PKG)
负责根据系统中用户的身份对用户发放私钥,只有解密方的身份与公钥一致,方可解密。该
加密方法的优势在于,解除了公钥基础设施-Public Key Infrastructure (PKI)对用户
发放认证证书的环节,减轻了系统的开销,更具有实用意义。
[0004]在IBE这种高效快捷的加密算法基础上又衍生出了许多基于身份的多功
能加密方法,其中就包括基于身份的广播加密方法-1dentity-Based Broadcast
Encrypt1n(IBBE)。IBBE加密方法主要用于解决加密用户同时对多解密用户进行广播加密的应用需求,加密用户在加密时使用的公钥为所有解密用户的身份组成的集合,只有在该身份集合中的用户才可以成功对密文解密。譬如,我们参考这样一种应用场景:某医院的主治医生A想与其他各大医院的η位医生共同讨论分析某位病人的病历信息,由于考虑到病人信息的敏感性并出于保护病人隐私的考虑,医生A在发送病历之前对病历信息进行了加密。若此处采用IBE加密方法,首先A需要根据η个医生的身份分别对病历信息加密,生成η份密文;若采用IBBE加密方法,A仅须根据η个医生的身份组成的身份集合对病历信息加密一次,生成一份密文,身份集合中的医生即可对密文解密;该方法大大节省了加密用户的时间与精力,降低了密文存储的开销,方法更加高效。
[0005]除此之外,我们考虑另一种应用场景:邮箱用户Alice有一封加密邮件想与另一用户Bob共享,但该邮件是以Alice的身份作为公钥,在IBE加密系统下加密的,Bob不知晓Alice的私钥时无法完成解密。而Alice不想泄露自己私钥的前提下,传统的做法是:Alice使用自己的私钥对邮件进行解密,再使用Bob的身份对解密后的明文再次加密。将密文传送给Bob ;Bob使用自己的私钥对收到的密文解密,从而完成了邮件内容的共享。无疑上述做法是繁杂且耗时的,因而衍生出一种称为:“代理重加密”一Proxy re-encrypt1n(PRE)的解决方法。代理重加密的概念最早是由Blaze、Bleumer和Strauss三位科学家在1998年的欧洲密码学年会上提出的,在PRE方案中,通信参与方分别为私钥生成中心——PKG、解密授权方(Delegator)、代理重加密方(Proxy)和被授权方(Delegatee)。在上述应用场景下,若采用代理重加密方法,Alice作为Delegator仅需根
据自己的私钥和Bob的身份计算生成一个转换密钥-Re-encrypt1n Key (RK),并将密文
和转换密钥同时发送给代理重加密方;代理重加密方使用转换密钥,在完全不知晓明文内容和Alice私钥信息的前提下将只有Alice的私钥可解密的密文重加密得到Bob的私钥可解密的密文。这样,Bob只需从代理重加密方处下载重加密后的密文,使用自己的私钥完成密文的解密即可。代理重加密方法运行的过程中,省去了 Delegator对原始密文先解密再加密的步骤,节约了用户与系统的开支;除此之外,代理重加密方在重加密环节中不可获知任何有关明文与用户私钥的信息,数据在整个外界存储的过程中都是以密文形式存在的,保障了复杂的分布式网络环境下的数据安全。
[0006]根据代理重加密的加密方向的不同,代理重加密可以分为单向的代理重加密和双向的代理重加密;单向的代理重加密可以实现将Delegator的公钥加密的密文转换成被授权方Delegatee的公钥加密的密文,反向不可以;双向的代理重加密则可以同时实现反向的密文转换。
[0007]随着代理重加密方法的提出,越来越多的加密方法与代理重加密的思想结合起来形成了不同加密系统下的代理重加密方案。考虑目前已有的代理重加密方案,密文转换前后的加密系统均是相同的;也就是说,若使用IBE加密系统加密的密文经过代理重加密之后仍为IBE加密系统下的密文,这在某些应用场景下局限了用户的适用范围。以云环境下的用户信息加密存储为例,该类用户在自己存储能力不足的限制下,选择将数据上传到云端服务器,出于保护数据的安全性及节省存储开销的目的,将持有分布式存储数据的用户以IBE加密系统组织起来,每个数据持有用户由PKG分配了独一无二的公、私钥对;在数据持有用户将数据上传到云端服务器之前,首先根据自己被分配到的公钥对数据进行加密,再传送至云端存储。加密后的数据只有该用户自己可以解密,避免了数据遭到恶意服务器泄密的危险。
[0008]然而,当数据持有用户想与多个用户进行数据共享时,若采用现有的代理重加密方法,则出现了两点限制:首先被授权用户同样需要在该IBE加密系统之中拥有合法身份;其次授权用户需要根据每一个被授权用户的身份生成转换密钥发送给代理方。当被授权方是以其他加密系统组织起来的情况下,现有的代理重加密便无法成功进行。因此,我们发明了一种适用范围更广、功能更加全面的“跨加密系统代理重加密”方法一可轻松实现从IBE加密系统到IBBE加密系统的代理密文转换。在本发明方法中IBE加密系统和IBBE加密系统是彼此独立存在的,分别具有自己的系统参数,代理方在转换过程中充当了桥梁的作用,将IBE系统与IBBE系统联系起来。通过转换密钥,将IBE系统中公钥加密后的密文转换成IBBE系统中公钥加密后的密文,实现了用户的跨系统解密。
[0009]由于IBE加密系统和IBBE加密系统不仅所使用的公钥不同,而且IBE加密系统中密文是根据一个身份加密的,IBBE是根据多个身份构成的身份集合加密的,两者加密后的密文结构形式必然有很大的差异,如何成功实现密文转换,是我们的发明主要解决的问题。基于现有的一种高效简洁的IBBE加密方案,我们构造了一种全新的IBE加密系统。首先,我们令授权方将原始消息使用自己的公钥,按照我们设计出的IBE加密系统加密,只有授权方自己的私钥可以成功解密。随后,授权方方选择随机数,盲化自己的私钥,将该随机数依照被授权用户的身份集合,利用IBBE系统中的系统参数加密。满足身份在被授权用户集合中的用户可以成功解密得到该随机值,最后恢复出明文信息。此外,本发明为单向的代理重加密方法,授权方与代理方无法合谋达到解密被授权方的密文的目的,从而最大程度地保护了被授权人的数据安全。
(三)
【发明内容】
:
[0010]1、目的:一种基于身份的跨系统代理重加密方法
[0011]本发明的目的是提出一种基于身份的跨系统代理重加密方法,它是一种在不同加密系统下的身份基代理重加密方法,该方法结合了现有身份基加密技术和代理重加密技术的优势,可轻松实现从授权方到被授权方的密文转换,同时保护明文信息在整个重加密过程中不会遭到代理重加密方的恶意泄露;同时我们根据现有的身份基广播加密(IBBE)方案重新设计了新颖的的身份基加密(IBE)系统,在保留了现有IBBE加密系统解密速度快、密文短等特性的同时,使跨IBE到IBBE系统的密文转换成为可能。
[0012]2、技术方案:
[0013]本发明包括五个实体:1)私钥生成中心(Private Key Generator, PKG):具有验证用户身份,计算生成、分发用户私钥功能的机构;2)解密授权方(Delegator):具有加密、生成转换密钥功能的的个人或社会机构;3)代理重加密方(Proxy):具有根据重加密密钥Re-encrypt1n Key (RK)转换密文的个人或社会机构;4)解密被授权方(Delegatee):具有解密功能的的个人或社会机构;5)文件管理方(File Manager):具有存储数据功能的社会机构。
[0014]首先,我们定义用户的身份——ID,代表用户在系统中的身份,表示为一串任意的字符串。其次,我们定义IBBE系统中用户身份集合——S,代表广播加密面向的用户身份集合,集合中的元素为IBBE系统中用户的身份。由于本发明所设计的算法中使用了双线性映射和抗碰撞哈希函数这两方面的数学知识。特在此对双线性映射和抗碰撞哈希函数的定义和特性做出解释。
[0015]2.1双线性对
[0016]我们定义一种函数映射e(.,.),将群G中的元素映射到群&r中去,即:
[0017]
β: G X G ~、Gy;
[0018]双线性对满足的特性有:
[0019]①双线性特性:对于,WeZj7,有e(ga,hb) = e(g,h)ab成立;
[0020]②非退化性:G群中至少存在一个元素g,使得计算后的e (g, g)为Gr群的某个生成元;
[0021]③可计算性:存在有效的算法,使得所有的",veG,可以有效计算出e(u,v)的值;[0022]其中,Zp表示集合{0,1,2,..., p-?}。
[0023]2.2抗碰撞哈希函数
[0024]本发明中使用的哈希函数具备两个基本特性:单向性和抗碰撞性;单向性是指只能从哈希函数的输入推导出输出,而不能从哈希函数的输出计算出输入;抗碰撞性是指不能找到两个不同的哈希函数输入使其哈希后的结果相同。本发明中的哈希算法输入是用户的身份ID,以任意字符串形式表示;输出为映射到域Zp中的元素。
[0025]2.3方案内容
[0026]本发明为一种基于身份的跨系统代理重加密方法,该方法由初始化模块、数据加密模块、私钥生成模块、转换密钥生成模块、代理重加密模块和解密模块,六个模块共15个步骤实现其功能,本发明所设计的代理重加密方法的系统架构图如图1所示,现结合图1将本发明所述方法及各模块的功能介绍如下。
[0027]本发明一种基于身份的跨系统代理重加密方法,其作法如下:
[0028]模块一:初始化模块
[0029]PKG在这一模块中将系统安全参数λ ,IBBE系统中被授权用户集合所能包含的用户数量上限(m-l)作为输入,输出主密钥MSKIBE、MSKIBBE,以及公钥PKIBE、PKIBBE。公钥可以公开,而主密钥则须PKG严格保密,不可泄露。该模块功能的实现具体分为下述四步:
[0030]步骤1:PKG首先输入系统安全参数λ,然后运行算法g(lA),输出两个阶数为素数P的群G、—个双线性映射 运算e: G X G Gr;
[0031]步骤2:g二G,hh a^Zl
[0032]PKG接下来运行随机数生成算法,随机选择G群中的某个生成元g,G群中的一个元素h,以及Z:域中的一个元素α作为随机指数;
[0033]步骤3:PKG运行一次双线性对运算、两次求幂运算和(m-l)次乘法运算,得到Gr群中的一个元素e(g,h),和G群中的(m+Ι)个元素ga、Ita , ham;
[0034]步骤4:最后,PKG选择一种抗碰撞哈希函数H(.),该函数满足抗碰撞哈希函数的所有特性,输入可以为任意的字符串,输出为映射到域Z,中的某一元素。经过上述四个步骤得到的参数:
[0035]PKibbe =(g\e(g,hl Iu ha/, , H (.))
[0036]作为IBBE加密系统的公钥可以对外公开;IBE加密系统的公钥与上述公钥不同,为:
[0037]PKihe = (g“, e(g, h), /7, ha, Ir, H(.))
[0038]IBE和IBBE加密系统的主密钥相同,为:
[0039]MSKibe = MSK臓=(g, α )
[0040]由PKG 保管;
[0041]其中,在步骤I中所述的“算法g(lA)”,其运行方法如下:私钥生成中心(PKG)输入系统安全参数入,根据λ的大小,系统选择相应的椭圆曲线:Y2 = X3+aX+b(a和b是系数),再由椭圆曲线上的点构成两个素数P阶的群€、GT。选择一种函数映射e,将群G中的元素映射到群中去;安全参数数值越大,所选择椭圆曲线上的点也越多,群也越大。
[0042]其中,在步骤2中所述的“随机数生成算法”,其做法如下:根据步骤I中所选的椭圆曲线:Y2 = X3+aX+b,随机选择自变量X的一个值X1,计算对应因变量Y的值Y1 ;若点(X1, Y1)在我们想要映射的群中,则成功生成了随机元素。若点(Xl,yi)不在群中,则继续
选择X的值,直到找到出现在群中的点。此外,域Z-表示集合{l,2,...,p-l},随机选择域
Z,,中元素的随机数生成函数可以从Pairing-Based Cryptosystems函数包中调用库函数运行。下文中提到的随机数生成算法皆按上述方法运行。
[0043]其中,在步骤3中所述的“运行双线性对运算”,其做法如下:自变量的输入为群G中的元素g、h,输出为群& 中的元素:e(g,h)。
[0044]其中,在步骤4中所述的“抗碰撞哈希函数H(.) ”,同样可以从Pairing-BasedCryptosystems函数包中调用库函数运行。
[0045]模块二:私钥生成模块
[0046]该模块由PKG分别为IBE系统和IBBE系统中的用户分配私钥,模块输入某一用户在系统中的身份ID和主密钥MSKibe或MSKibbe,生成对应的私钥SKibe或SKibbe,并将输出的私钥发送给各系统用户保管。该模块功能的实现为下述两步:
[0047]步骤5 =PKG运行抗碰撞哈希函数H (.),计算得到
[0048]
【权利要求】
1.一种基于身份的跨系统代理重加密方法,其特征在于:其作法如下: 模块一:初始化模块 私钥生成中心即PKG在这一模块中将系统安全参数λ、基于身份的广播加密方法即IBBE系统中被授权用户集合所能包含的用户数量上限m-Ι作为输入,输出主密钥MSKibe、MSKibbe,以及公钥PKIBE、PKibbe ;公钥能公开,而主密钥则须PKG严格保密,不可泄露;该模块功能的实现具体分为下述四步: 步骤1:PKG首先输入系统安全参数λ,然后运行算法g (Iλ),输出两个阶数为素数P的群6、^^和一个双线性映射运算s: SXS^CSr ; 步骤 2:gi(G,h^G, a^Zl PKG接下来运行随机数生成算法,随机选择G群中的某个生成元g,G群中的一个元素h,以及Z域中的一个元素α作为随机指数; 步骤3:PKG运行一次双线性对运算、两次求幂运算和(m-Ι)次乘法运算,得到Gr群中的一个元素e(g,h),和G群中的(m+Ι)个元素f、h' ha', 步骤4:最后,PKG选择一种抗碰撞哈希函数H(.),该函数满足抗碰撞哈希函数的所有特性,输入为任意的字符串,输出为映射到域K中的某一元素; 经过上述四个步骤得到的参数:
PKibbe = (ga , e(g, h) Ji,h(/ ,...,ham, H (.)) 作为IBBE加密系统的公钥能对外公开;IBE加密系统的公钥与上述公钥不同,为: PKibe = {ga,咖,hi K ha, r2 ,H (,)) IBE和IBBE加密系统的主密钥相同,为:
MSKibe = MSKibbe = (g, α ) 由PKG保管; 模块二:私钥生成模块 该模块由PKG分别为IBE系统和IBBE系统中的用户分配私钥,模块输入某一用户在系统中的身份ID和主密钥MSKibe或MSKibbe,生成对应的私钥SKibe或SKibbe,并将输出的私钥发送给各系统用户保管;该模块功能的实现为下述两步: 步骤5 =PKG运行抗碰撞哈希函数H (.),计算得到 H{IDIBE\H{IDmBE)^Z], 公式中的IDibe代表1BE加密系统中用户的身份,IDibbe代表1BBE加密系统中用户的身份,均用一串任意的字符串表不; 步骤6 =PKG运行一次加法运算,一次求倒数运算和求指数运算,按照下面公式计算得到 IBE加密系统中的用户私钥:

I
?Κ?ΒΕ -S以及,IBBE加密系统中用户的私钥:
2.根据权利要求1所述的一种基于身份的跨系统代理重加密方法,其特征在于:在步骤I中所述的“算法g(1λ) ”,其运行方法如下:私钥生成中心即PKG输入系统安全参数λ,根据λ的大小,系统选择相应的椭圆曲线:Y2 = X3+aX+b,a和b是系数,再由椭圆曲线上的点构成两个素数P阶的群G、?T;选择一种函数映射e,将群e中的元素映射到群Sf中去;安全参数数值越大,所选择椭圆曲线上的点也越多,群也越大。
3.根据权利要求1所述的一种基于身份的跨系统代理重加密方法,其特征在于:在步骤2中所述的“随机数生成算法”,其做法如下:根据步骤I中所选的椭圆曲线:Y2 =X31 aX I b,随机选择自变量X的一个值X1,计算对应因变量Y的值Y1 ;若点(X1, Y1)在我们想要映射的群中,则成功生成了随机元素;若点(Xl,yi)不在群中,则继续选择X的值,直到找到出现在群中的点;此外,域ζ表示集合{1,2,...,ρ-1},随机选择域Ζ:中元素的随机数生成函数能从Pairing-Based Cryptosystems函数包中调用库函数运行。
4.根据权利要求1所述的一种基于身份的跨系统代理重加密方法,其特征在于:在步骤3中所述的“运行双线性对运算”,其做法如下:自变量的输入为群fi中的元素g、h,输出为群Gt中的元素:e(g,h)。
5.根据权利要求1所述的一种基于身份的跨系统代理重加密方法,其特征在于:在步骤4中 所述的“抗碰撞哈希函数H(.) ”,同样能从Pairing-Based Cryptosystems函数包中调用库函数运行。
【文档编号】H04L9/30GK104038341SQ201410280293
【公开日】2014年9月10日 申请日期:2014年6月20日 优先权日:2014年6月20日
【发明者】伍前红, 邓桦, 秦波, 刘建伟, 周云雅 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1