一种双线性对安全外包方法

文档序号:9551056阅读:252来源:国知局
一种双线性对安全外包方法
【技术领域】
[0001] 本发明涉及信息安全领域,特别是涉及一种双线性对安全外包方法。
【背景技术】
[0002] 云计算使越来越多的人能充分利用云计算资源进行复杂繁琐的计算。移动设备或 其它能源受限的设备更加受益于云计算带来的好处。例如,可使用云计算去完成单个设备 需要消耗较大的能量才能完成的复杂计算,如双线性对计算。将一些耗能较大的计算外包 给云计算平台,并保证计算结果的正确与安全性,显然能够节约这些设备的能量消耗,在网 络畅通的条件下,还可以减小计算的时间,提高运行的效率。
[0003] 在计算外包中,安全性一直是人们考虑的重点。首先,用户计算的数据可能涉及 到用户的私钥信息,例如外包解密等操作,所以用户待计算的数据应对服务器隐藏,即秘密 性是一个安全外包方案需要满足的;其次,云服务器通常是不可信的设备,服务器上可能存 在某些系统漏洞或者人为的配置,使得计算结果不完整,返回的结果不正确,所以用户需要 验证服务器返回结果的正确性,即可验证性是安全外包方案需要满足的。最后,在具体实施 上,有些方案要求至少有一个服务器是可信的,有些方案允许两个服务器都不可信,有些方 案仅使用一个不可信服务器,这些都对实际的实施提出了要求,所以在实施上的便利性或 者灵活性上安全外包解决方案是应该满足的。
[0004]GiraultandLefranc首先提出了双线性对外包的方案,其中包括了基本的盲化 待计算群元素的方法。Chevalier-Mames等人提出了安全的椭圆曲线双线性对外包的算法。 该算法能向服务器隐藏待计算的群元素,并通过对比获得的计算结果,进行校验。Kang等人 改进了此算法,让服务器计算一系列群元素,并从服务器的返回结果中获取可校验的数据。 Canard等人提出了新的方法外包双线性对运算,他们的方法中也是让服务器输出相关的两 个数据来获得可验证性。上述方法有一个共同的缺点,就是用户需要在较高的计算代价下 去完成结果的验证,如进行标量乘或者模幂运算。这些运算本身与双线性对的运算在能量 消耗上类似,从而无助于减少移动设备的能量消耗,与外包计算的初衷相违背。
[0005]Chen等人给出了一个改进的算法,仅需要在群G^G;;上进行5次点加,在群GT下进 行4次乘法运算,不需要标量乘和模幂运算,使得安全外包算法有了实质性的意义。但其外 包方法还可以进一步改进,一个是其方案要求至少一个服务器是可信的,其二就是可验证 性方面可以进一步提高。事实上,对于数字签名等服务而言,如果用户外包签名的验证过程 中的双线性对运算,而外包的返回值却可能出错,将直接导致数字签名验证算法的失效。所 以,提高外包算法的可验证性是有意义的。
[0006] 本发明引入了校验参数t使外包算法具有可调节的验证性。该参数的取值范围是 te{1,2,…,s},可验证的概率为(1-1/3S)2,当s= 4时,本发明的可验证性是84%,远高 于以前50%到67%的可验证概率。同样由于校验参数的存在,我们的方案允许两台服务器 都是不可信的,增强了部署的灵活性。总之,本发明提供了一种灵活和可验证的双线性对安 全外包方法。

【发明内容】

[0007] 本发明的目的在于提供一种灵活和可验证的双线性对安全外包方法。本发明引入 了校验参数t使外包算法具有可调节的验证性。该参数的取值范围是te{1,2,…,s},可 验证的概率为(1-1/3S)2,该方法允许两个不可信的服务器提供外包服务,并提供了一种机 制提高用户T的验证概率,解决了当前的解决方案需要至少一台可信服务器,并且验证概 率较低的问题。
[0008] 为实现上述目的,本发明给出如下方法:
[0009](一)、该方法涉及用户T、服务器UpUg个实体,包括以下四个步骤:
[0010]S1.用户T预先计算偶数组随机矢量,每组包括五个群元素;
[0011]S2.用户T每次用两组随机矢量和一个校验参数隐藏待计算的群元素,并把隐藏 后的结果发送给服务器Ui、%;
[0012] S3.服务器Up1]2分别计算多个双线性对,并把结果返回给用户T;
[0013]S4.用户T使用所述校验参数来校验服务器返回的结果,校验通过后恢复要 计算的群元素的双线性对运算结果。
[0014](二)、步骤S1 (即当用户T预先计算偶数组随机矢量)包括以下子步骤:
[0015] (Sla)用户T均匀随机选择,其中%I},并且q是大素 数,是群GpG2,GT的阶,在群G^G2上可以定义双线性对运算e:G'G2-Gτ;
[0016] (Sib)随后用户Τ计算χ!的逆元χ! 1和χ2的逆元χ2 \计算标量乘运算 (????-ShAT%巧,41??和模幂运算峨其中Pi是群Gi的生成元,Ρ2是群 G2的生成元,e(Pi,P2)是群生成元,这五个群元素 构成了一组随机矢量;
[0017] (Sic)进而用户Τ均匀随机选择e以.
[0018] (Sid)随后用户T计算Xi'的逆元A \计算x' 2的逆元x:_I,计算标量乘运算 X疒42Ρ2,X;-%P2)和模幂运算,这五个群元素 构成 了另外一组随机矢量;
[0019] (Slf)用户T通过重复上述步骤(Sla)到(Sid)生成预计算的偶数组随机矢量。 [0020](三)、步骤S2(即用户T每次用两组随机矢量隐藏待计算的群元素,并把隐藏后 的结果发送给服务器Upu2)包括如下子步骤:
[0021](S2a).用户T待计算的元素AeGi隐藏为uQ1=A+x&,其中X&来自步骤S1中 子步骤(Sib)所示的随机矢量;
[0022] (S2b).用户T待计算的元素BeG2隐藏为,其中来自步骤 S1中子步骤(Sib)所示的随机矢量;
[0023] (S2c).用户T随机选择te{1,2, 一,8}作为校验参数,其中s取值为大于等于4 的整数,计算标量乘运算tA,并隐藏为% + .其中来自于步骤S1中子步 骤(Sid)所示的随机矢量;
[0024] (S2d) ·用户T计算随机矢量的逆元,并设置《η= ;
[0025] (S2e).用户Τ计算随机矢量X' &的逆元,并设置u21=-X'少1;
[0026] (S2f) ·用户T隐藏待计算的群元素BeG2为5 + +? :
[0027] (S2g).用户T用步骤S1子步骤(Sid)所示随机矢量中的群元素x/Pi隐藏tA, 设置vQ1 =tA+xi'Pi;
[0028] (S2h).用户T用步骤SI子步骤(Sid)所示随机矢量中的群元素隐藏B,设 置v<G = 5 + (、巧.
[0029] (S2i).用户Τ用步骤S1子步骤(Sib)所示随机矢量中的群元素a:,隐藏Α, 设置νη= 4 +λ_Λ_、气
[0030] (S2j).用户Τ计算随机矢量的逆元,并设置
[0031] (S2k).用户Τ计算随机矢量xR的逆元,并设置ν21=-X少1;
[0032] (S21).用户T用步骤S1子步骤(Sib)所示随机矢量中的群元素χΓ1^^隐藏群元 素Β,并设置ι?22 =β+xpxA;
[0033] (S2m).用户随机选择整数i,je{1,2,3},并向服务器Ui发送6个群元素Ull,ul2 j(i+lmod3) 1? (i+lmod3) 2? (i+2mod3) 1J(i+2mod3) 2 ? 同时向服务器U2发送6个群元素 Vjl,Vj2,V(j+lmod3)l,V(j +lmod3)2,V(j+2mod3)l,V(j+2mod3)20
[0034] (四)、步骤S3(即服务器1U2分别计算多个双线性对,并把结果返回给用户T) 包括如下子步骤:
[0035] (S3a)UjE从用户T接收到的6个元素依次称为en,e12,e13,e14,e15,e16,计算ai= e(en,e12),a2=e(e13,e14)和a3=e(e15,e16),并把α丨,α2,a3返回给用户T;
[0036] (S3b)U2把从用户T接收到的6个元素依次称为e21,e22,e23,e24,e25,e26,计算a/ =6(621,622),(1'2=6(6 23,624)和€['2=6(625,626),并把€[ 1',(1'2,(13'返回给用 户To
[0037] (五)、步骤S4 (用户T使用校验参数来校验服务器1^、1]2返回的结果,校验通过后 恢复要计算的群元素的双线性对运算结果)的子步骤包括:
[0038] (S4a).用户T把服务器仏返回的结果称为a iJ^i+lmod3i^i+2mod3? 把服务器1]2返回 的结果称为a/,a' j+lncid3,a'j+2nrod3,其中i和j与步骤S2中子步骤(S2m)所选择的 值一致;
[0039] (S4b)·用户T计算0=%和 = 其中 来自步骤S1中子步骤(S1b)和(Sid)所述的随机矢量,aa2,a3和a/,a'2,a3'是步骤S4中子步骤(S4a)中i和j代入数值后得到的元 素;
[0040](S4c).用户T使用校验参数t校验(^是否等于0',并且〇teGY,如果满足这两 个条件,用户T输出0做为元素A和B的双线性对运算结果,否则输出错误。
【附图说明】
[0041] 图1 一种双线性对安全外包方法。
【具体实施方式】
[0042] 该方案包括用户T,服务器1^、1]2三个实体。首先由用户T预先计算一组符合要求 的随机矢量;之后在需要计算两个元素的双线性对运算时,用户T用两组随机矢量隐藏这 两个元素,并向服务器Ui、u2发送隐藏后的矢量,要求服务器完成双线性对运算,并返回结 果;最后用户T校验结果的正确性,正确的话则输出两个元素的双线性对运算结果。下面以 BLS签名为例说明具体实施过程。
[0043] 实施例1
[0044] 双线性对运算外包服务商可以在百度云、亚马逊等云平台上建立虚拟机,建立双 线性对运算的服务,我们把两个这样的服务商称为UpU2,其接收6个元素,依次计算3个对 运算,返回3个结果。
[0045] 用户T是某经理张三的智能手机中的邮件APP。张经理需要验证来自下属的邮件, 确认邮件的来源,每天需要处理的邮件比较多,因而需要减少验证算法的能量消耗,确保手 机可以正常通信。张经理需要下载专用的邮件APP,其中采用了BLS验证算法来验证邮件的 签名,验证过程中的双线性对运算采用了安全外包计算。
[0046] 首先,双线性对运算外包服务商和邮件APP中具有相同的系统参数,例如PBC库中 的类型a参数
[0047] q:
[0048] 8780710799663312522437781984754049815806883199414208211028653399266 475630880222957078625179422662221423155858769582317459277713367317481324925 129998224791
[0049] h:
[0050] 120160122648911460793888213667405342048029544012513118229196151310472 07289359704531102844802183906537786776
[0051] r:730750818665451621361119245571504901405976559617
[0052] exp2 :159
[0053] exp1 :107
[0054] signl:1
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1