一种基于双台云服务器针对两个双线性对的安全外包方法与流程

文档序号:11327032阅读:195来源:国知局

本发明涉及一种外包计算方法,特别是涉及一种利用云服务器针对双线性对的安全外包的方法,应用于云计算技术领域。



背景技术:

云计算在学术界与工业界已经越来越受关注,如何将代价过高的计算安全外包给不可信服务器的技术越来越受到科学界的高度关注。在外包计算模式中,一个计算能力有限的客户将任务外包给云中的一个或者多个服务器,这就是外包计算。对于资源受限的客户设备,它可以以按次付费方式享受无限的计算资源,这样就可以大量地节约在硬件/软件部署和维护方面的资本支出。

虽然外包计算会带来巨大的好处,但是它也不可避免地引入了一些新的安全问题和挑战。首先,计算任务通常包含一些敏感信息,这是不应该暴露给不可信的云服务器的。因此,第一个安全问题是外包计算的保密性:云服务器不应该了解它实际上是在计算什么(包括输入和输出的隐私性)。然而我们也认为加密只能提供对这个问题的部分解决方案,因为服务器在加密的数据上很难执行有意义的计算。其次,不完全可信的云服务器可能会作弊,可能会返回一个无效的结果。例如,服务器可能包含一个软件漏洞,可能根本无法完成一个常数次数的调用。此外,可能由于经济报酬上的激励不足,服务器会减少计算量,然后返回一个计算上不可区分的(无效)的结果。因此,第二个安全挑战是外包计算的可检查性:外包商应该有能力发现云服务器的作弊行为,如果云服务器作弊,外包商会立即发现错误。通常,检测程序应该不需要执行其它复杂的计算,因为很多计算能力有限的设备,如rfid标签或者智能卡等都无力执行这种检测。至少,检测过程必须比完成计算任务本身更为有效,否则外包就没什么意义了。

在过去的十年中,双线性对尤其是代数曲线上的weil对和tate对,已经形成了密码学的一些全新的领域,使得密码学可以在此基础上实现之前未知的或不切实际的加密原语。通常,基于对运算的密码协议的实现依赖于对运算的计算速度,为此也有大量的工作来研究如何有效地实现此工作。

在嵌入式设备如rfid标签或智能卡上双线性对的运算的代价一直被认为是过分高昂的(注意,我们甚至假设模指数运算在这样的设备上都太昂贵而无法进行)。chevallier-mames等人发布了第一个基于一个不可信的服务器模型的椭圆曲线上对运算的安全外包方法。如果服务器有作弊行为,外包商可以以100%的概率检测到该错误。然而,该方法的一个明显缺点是外包商需要执行其它的一些代价高昂的计算,如标量乘法和指数运算。更准确地说,一方面,我们认为这些代价高昂的计算因为太多的资源消耗是无法在计算能力有限的设备上完成的。另一方面,计算标量乘法在一些的场景下与计算对运算的代价是相当的,这与外包计算的动机和目的是矛盾的。因此,在这个意义下,该方法在真实世界的应用中是完全没有意义的。随后蒋铁金等人发布了一种基于单台服务器的云外包计算的方法,但是其预计复杂度太高,运算成本过高。陈晓峰等人与田海博等人发布了基于双台服务器的云外包计算方法,提高了运算效率,不过在实际外包场景中,很多情况下会涉及到多个双线性对的运算,然而上文所提及的方法都是为针对单个双线性对安全外包运算,计算效率不够理想,计算代价较高。



技术实现要素:

为了解决现有技术问题,本发明的目的在于克服已有技术存在的不足,提供一种基于双台服务器针对两个双线性对的安全外包方法,是一种在云计算环境下,基于双台不可信服务器模型下的安全有效的针对两个双线性对外包方法,通过调用提高计算速度的子程序rand,外包用户t将它的双线性对运算外包给计算服务器u1与u2,敌手无法知道外包算法m-pair的输入和输出的任何有用信息。外包商不需要再执行代价过高的计算sm即群g1,或者g2上的标量乘法运算和exp运算,即群gt上的指数运算,计算代价明显降低,计算效率显著提高。

为达到上述发明创造目的,本发明采用下述技术方案:

一种基于双台服务器针对两个双线性对的安全外包方法,包括以下步骤:

第一步:外包用户t调用程序rand生成一个六元组,其中rand是用于提高计算速度的子程序,输入g1、g2、一个双线性对以及其他的随机数;输出一个六元组{v1,v2,v1v1,v2v2,e(v1v1,v2v2)},其中v1、v1∈rg1、v2∈rg2,是去掉零元的模q的剩余类中的一个随机数,rg1是g1中的一个随机点,rg2是g2中的一个随机点,g1是p1生成的q阶的椭圆曲线加法循环群,p1是100-1000bit范围内的任意素数,g2是p2生成的q阶的椭圆曲线加法循环群,p2是100-1000bit范围内的任意素数,q是512bit的素数,e(v1v1,v2v2)为由g1、g2映射到gt上的输入为v1v1,v2v2的双线性对运算,gt:由g1、g2映射生成的q阶的椭圆曲线乘法循环群;

第二步:将e(a,b)*e(c,d)进行逻辑拆分,利用六元组中的部分元素将e(a,b)*e(c,d)变换为需要计算的四部分,e(a,b)*e(c,d)为两个双线性对相乘运算,a、b为g1上的一个随机点,c、d为g2中的一个随机点;

第三步:再次调用rand来生成两个新的六元组{x1,x2,x1x1,x2x2,e(x1x1,x2x2)},

第四步:向外包服务器发出计算出双线性对的请求,外包用户t对计算服务器u1与u2的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据,服务器u1与u2为计算能力强的外包服务器;

第五步:外包用户t再次向向外包服务器发出验证结果是否正确的请求,即外包用户t向u1与u2询问e(x1x1,x2x2)和e(y1y1,y2y2),检测服务器u1与u2的输出结果是否正确,并给出计算结果;如果错误,则输出“error”,如果正确,则得出计算e(a,b)*e(c,d)的计算结果。

作为本发明优选的技术方案,在所述第一步过程中,外包用户t调用程序rand生成一个六元组,用于通过服务器u1与u2来实现双线性对的外包方法m-pair,具体为:外包用户t首先要调用程序rand来生成一个六元组

{v1,v2,v1v1,v2v2,e(v1v1,v2v2)},{v1,v2,v1v1,v2v2,e(v1v1,v2v2)}的结果能进行预计算处理,选一个可信的服务器计算出随机的,独立的六元组形成一张查询表,将其存放在内存之中,以后使用时,要生成的新六元组只需从这张查询表中进行检索,省去了现场计算的负担,在实施m-pair双线性对外包计算方法时,输入四个随机的点a、b、c、d,输出a、b、c、d的双线性对运算e(a,b)*e(c,d),从而将a、b、c、d拆分成能被服务器u1与u2计算的数,而服务器u1与u2无法通过计算获取a、b、c、d,实现a、b、c、d的保密要求。a、b、c、d可能是秘密的或者(诚实/敌对的)受保护的,并且e(a,b),e(c,d)永远是秘密的或受保护的,此外,a、b、c、d对于服务器u1与u2来说在计算上是永远不可知的,m-pair方法是将a、b、c、d拆分成看似随机的、可以被u1与u2计算的数且u1与u2无法计算出a、b、c、d,它们都是保密的。

作为上述方案的进一步优选的技术方案,在所述第二步过程中,在进行逻辑拆分时,利用六元组中的四个随机的点a、b、c、d,将计算e(a,b)*e(c,d)变换为计算其余的四部分,具体描述如下:

第一个逻辑拆分:α1=e(a+v1v1,b+v2v2);

第二个逻辑拆分:α2=e(c+v1v1,d-v2v2);

第三个逻辑拆分:α3=e(c-a,v2v2);

第四个逻辑拆分:α4=e(v1v1,-b-d);

另外,各逻辑拆分具有如下联系:

α1=e(a+v1v1,b+v2v2)=e(a,b)e(v1v1,b)e(a,v2v2)e(v1v1v2v2);

α2=e(c+v1v1,d-v2v2)=e(c,d)e(v1v1,d)e(c,-v2v2)e(v1v1,-v2v2);

α3=e(c-a,v2v2)=e(c,v2v2)e(-a,v2v2);

α4=e(v1v1,-b-d)=e(v1v1,-b)e(v1v1,-d);

从而得出e(a,b)*e(c,d)=α1α2α3α4。

作为上述方案的进一步优选的技术方案,在所述第四步过程中,对计算服务器u1与u2进行询问,服务器计算出双线性对结果,求出了需要计算的四部分,其余的作为测试数据,具体为:

外包用户t以任意次序对服务器u1进行如下询问:

u1(a+v1v1,b+v2v2))→e((a+v1v1,b+v2v2)=α1;

u1(c+v1v1,d-v2v2)→e(c+v1v1,d-v2v2)=α2;

u1(x1x1,x2x2)→e(x1,x1,x2x2)=α5;

u1(y1y1,y2y2)→e(y1y1,y2y2)=α6;

外包用户t以任意次序对u2进行如下询问:

u2(c-a,v2v2)→e(c-a,v2v2)=α3;

u2(v1v1,-b-d)→e(v1v1,-b-d)=α4;

u2(x1x1,x2x2)→e(x1x1,x2x2)=α7;

u2(y1y1,y2y2)→e(y1y1,y2y2)=α8。

作为上述方案的进一步优选的技术方案,在所述第五步过程中,外包用户t在检测服务器u1与u2的输出结果是否正确时,外包用户t再次向服务器u1与u2询问e(x1x1,x2x2)和e(y1y1,y2y2),并根据服务器的响应结果给出如下计算结果:

如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,t终止询问,输出“error";

如果输出结果与之前对应输出结果相等,外包用户t即得到计算e(a,b)*e(c,d)=α1α2α3α4的结果。

本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点:

1.本发明提供的双线性对的安全外包的方法,先调用rand生成一个六元组,然后进行逻辑拆分,利用六元组中的一些元素将e(a,b)*e(c,d)变换为需要计算四部分,再调用rand,生成两个新的六元组,紧接着对计算服务器询问,服务器计算出双线性对结果,求出了需要计算的四部分,其余的四部分作为测试数据,最后检测并计算出结果,如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,t终止询问,输出“error",否则t计算e(a,b)*e(c,d)=α1α2α3α4;

2.本发明在计算效率方面更高,它需要的运算的次数要少很多,外包商t不需要再执行代价过高的计算sm(群g1,或者g2上的标量乘法运算)和exp(群gt上的指数运算)运算;

3.本发明方法适用于资源受限的设备,它的计算效率更高,运算的次数少,外包商t不需要再执行代价过高的计算sm和exp运算;

4.本发明方法适合应用的安全模型特别为双台不可信且不勾结的的服务器模型,可以允许其中有一个恶意的服务器;

5.本发明方法适用于多个双线性对外包运算的场景,更具有实际应用价值。

附图说明

图1为本发明优选实施例基于双台服务器针对两个双线性对的安全外包方法的流程图。

具体实施方式

本发明的优选实施例详述如下:

在本实施例中,参见图1,一种基于双台服务器针对两个双线性对的安全外包方法,包括以下步骤:

第一步:外包用户t调用程序rand生成一个六元组,其中rand是用于提高计算速度的子程序,用于通过服务器u1与u2来实现双线性对的外包方法m-pair,具体为:外包用户t首先要调用程序rand,输入g1、g2、一个双线性对以及其他的随机数,生成并输出一个六元组{v1,v2,v1v1,v2v2,e(v1v1,v2v2)},{v1,v2,v1v1,v2v2,e(v1v1,v2v2)}的结果能进行预计算处理,其中v1、v1∈rg1、v2∈rg2,是去掉零元的模q的剩余类中的一个随机数,rg1是g1中的一个随机点,rg2是g2中的一个随机点,g1是p1生成的q阶的椭圆曲线加法循环群,p1是100-1000bit范围内的任意素数,g2是p2生成的q阶的椭圆曲线加法循环群,p2是100-1000bit范围内的任意素数,q是512bit的素数,e(v1v1,v2v2)为由g1、g2映射到gt上输入为v1v1,v2v2的双线性对运算,gt:由g1、g2映射生成的q阶的椭圆曲线乘法循环群,选一个可信的服务器计算出随机的,独立的六元组形成一张查询表,将其存放在内存之中,以后使用时,要生成的新六元组只需从这张查询表中进行检索,在实施m-pair双线性对外包计算方法时,输入四个随机的点a、b、c、d,输出a、b、c、d的双线性对运算e(a,b)*e(c,d),从而将a、b、c、d拆分成能被服务器u1与u2计算的数,而服务器u1与u2无法通过计算获取a、b、c、d,实现a、b、c、d的保密要求;a、b、c、d可能是秘密的或者(诚实/敌对的)受保护的,并且e(a,b),e(c,d)永远是秘密的或受保护的,此外,a、b、c、d对于服务器u1与u2来说在计算上是永远不可知的,m-pair方法是将a、b、c、d拆分成看似随机的、可以被u1与u2计算的数且u1与u2无法计算出a、b、c、d,它们都是保密的,参见图1中的s1步骤;

第二步:将e(a,b)*e(c,d)进行逻辑拆分,利用六元组中的部分元素将e(a,b)*e(c,d)变换为需要计算的四部分,e(a,b)*e(c,d)为两个双线性对相乘运算,a、b为g1上的一个随机点,c、d为g2中的一个随机点,具体为:在进行逻辑拆分时,将计算e(a,b)*e(c,d)变换为计算其余的四部分,具体描述如下:

第一个逻辑拆分:α1=e(a+v1v1,b+v2v2);

第二个逻辑拆分:α2=e(c+v1v1,d-v2v2);

第三个逻辑拆分:α3=e(c-a,v2v2);

第四个逻辑拆分:α4=e(v1v1,-b-d);

另外,各逻辑拆分具有如下联系:

α1=e(a+v1v1,b+v2v2)=e(a,b)e(v1v1,b)e(a,v2v2)e(v1v1v2v2);

α2=e(c+v1v1,d-v2v2)=e(c,d)e(v1v1,d)e(c,-v2v2)e(v1v1,-v2v2);

α3=e(c-a,v2v2)=e(c,v2v2)e(-a,v2v2);

α4=e(v1v1,-b-d)=e(v1v1,-b)e(v1v1,-d);

从而得出e(a,b)*e(c,d)=α1α2α3α4;参见图1中的s2步骤;

第三步:再次调用rand来生成两个新的六元组{x1,x2,x1x1,x2x2,e(x1x1,x2x2)},{y1,y2,y1y1,y2y2,e(y1y1,y2y2)},x1、x2、y1、x1、y1∈rg1、x2、y2∈rg2;参见图1中的s3步骤;

第四步:向外包服务器发出计算出双线性对的请求,外包用户t对计算服务器u1与u2的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据,服务器u1与u2为计算能力强的外包服务器,具体为:

外包用户t以任意次序对服务器u1进行如下询问:

u1(a+v1v1,b+v2v2)→e((a+v1v1,b+v2v2)=α1;

u1(c+v1v1,d-v2v2)→e(c+v1v1,d-v2v2)=α2;

u1(x1x1,x2x2)→e(x1x1,x2x2)=α5;

u1(y1y1,y2y2)→e(y1y1,y2y2)=α6;

外包用户t以任意次序对u2进行如下询问:

u2(c-a,v2v2)→e(c-a,v2v2)=α3;

u2(v1v1,-b-d)→e(v1v1,-b-d)=α4;

u2(x1x1,x2x2)→e(x1x1,x2x2)=α7;

u2(y1y1,y2y2)→e(y1y1,y2y2)=α8;参见图1中的s4步骤;

第五步:外包用户t再次向向外包服务器发出验证结果是否正确的请求,即外包用户t向u1与u2询问e(x1x1,x2x2)和e(y1y1,y2y2),检测服务器u1与u2的输出结果是否正确,并根据服务器的响应结果给出如下计算结果,参见图1中的s5步骤;:

如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,t终止询问,输出“error";参见图1中的s5.1步骤;

如果输出结果与之前对应输出结果相等,外包用户t即得到计算e(a,b)*e(c,d)=α1α2α3α4的结果,参见图1中的s5.2步骤。本实施例适合的安全模型为双台不可信且不勾结的的服务器模型,可以允许其中有一个恶意的服务器。

实验测试与性能对比分析:

下表给出了本发明优选实施例m-pair方法与chevallier-mames等人提出的方法的效率比较,这里忽略模加运算的代价。

符号说明:

pa:g1或者g2上的一次点与点的加法运算;

sm:g1或者g2上的一次标量乘法运算;

m:gt上的乘法运算;

inv:gt上的求逆运算;

exp:gt上的指数运算;

s:对应方法中相关参数。

checkability:可验证概率;

u:运算能力强的外包服务器。

上表给出了多个方法之间的效率的比较结果,很明显,上述实施例提出的方法m-pair与b.chevallier-mames等和蒋铁金等提出的方法相比,虽然m-pair是基于双台服务器的双线性对外包方法,但是,m-pair在实现了用户设备输入输出参数的保密性的同时,大大减少了用户计算量,所做的模逆运算、模乘运算次数都要少,效率上有明显的提高。而与对比例中陈晓峰等、田海博等提出的方法相比,本文与前两者都是基于双台服务器的双线性对运算方法,可验证概率上与本文方法几乎相等,但是m-pair在计算效率上相较于前两者是最高的,计算代价也是最低的,几乎是陈晓峰等提出的方法所需计算代价的一半。所以,上述实施例的技术方案对于普通用户效率更高,更实用。

更准确地说,在上述实施例的m-pair方法中,外包商t不需要再执行代价过高的计算sm(群g1,或者g2上的标量乘法运算)和exp(群gt上的指数运算)运算,这些运算在计算能力有限的设备如rfid等上是无力执行的。甚至可以这样说,计算sm(或exp)的计算量在某些情况下是可以和双线性对运算可比拟的。外包计算是为了减少外包商的计算量,如果t还需要计算sm或exp的话将违背外包计算的最根本目的。

另一方面,在上述实施例方法m-pair中,它需要服务器u1与u2来各执行4次服务器计算。此外,计算rand的代价可以直接查询表,因此rand的计算代价是可以忽略不计的。上述实施例方法中服务器端需要承担更多的计算任务,然而,注意到服务器强大的计算能力,上述实施例方法的效率将不会受到影响。

在上述实施例基于双台云服务器针对两个双线性对的安全外包运算方法中,首先,需要进行外包计算的用户t调用提高计算速度的子程序rand生成一个六元组,利用六元组中的一些元素将e(a,b)*e(c,d)逻辑拆分为四部分;其次,调用rand来生成两个新的六元组,紧接着对计算服务器u1,u2各进行4次询问,服务器计算出双线性对结果,其中的四部分作为中间的计算结果,另外的四部分作为测试数据;最后,t检测u1,u2的输出结果是否正确,根据服务器的响应,t计算出结果。上述实施例方法可适用于资源受限的设备,它的计算效率更高,运算的次数少,外包商t不需要再执行代价过高的计算sm和exp运算,上述实施例方法适用于多个双线性对外包运算的场景,更具有实际应用价值。

上面结合附图对本发明实施例进行了说明,但本发明不限于上述实施例,还可以根据本发明的发明创造的目的做出多种变化,凡依据本发明技术方案的精神实质和原理下做的改变、修饰、替代、组合或简化,均应为等效的置换方式,只要符合本发明的发明目的,只要不背离本发明基于双台服务器针对两个双线性对的安全外包方法的技术原理和发明构思,都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1