发明名称 |
一种云计算环境下双线性对的安全外包的方法 |
摘要 |
本发明公开了一种云计算环境下双线性对的安全外包的方法,需要进行外包计算的用户T首先调用提高计算速度的子程序Rand生成一个六元组,利用六元组中的一些元素将e(A,B)逻辑拆分为五部分,接着调用Rand来生成两个新的六元组,紧接着对计算服务器U<sub>1</sub>,U<sub>2</sub>进行8次询问,服务器计算出双线性对结果,其中的四部分作为中间的计算结果,另外的四部分作为测试数据。最后T检测U<sub>1</sub>和U<sub>2</sub>的输出结果是否正确,根据服务器的响应,T计算出结果。该方法可适用于资源受限的设备。它的计算效率更高,运算的次数少,外包商T不需要再执行代价过高的计算SM和Exp运算。此外,利用该方法作为子例程可以实现Boneh-Franklin基于身份的加密方案和Cha-Cheon基于身份的签名方案的安全外包。 |
申请公布号 |
CN103024006B |
申请公布日期 |
2016.05.25 |
申请号 |
CN201210507847.X |
申请日期 |
2012.11.23 |
申请人 |
西安电子科技大学 |
发明人 |
陈晓峰;杨昌松;王星;尤沛;李进;朱辉 |
分类号 |
H04L29/08(2006.01)I;H04L29/06(2006.01)I |
主分类号 |
H04L29/08(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
一种云计算环境下双线性对的安全外包的方法,其特征在于该方法包括以下步骤:第一步:调用Rand生成一个六元组:为了用外包计算中的第一服务器U<sub>1</sub>和外包计算中的第二服务器U<sub>2</sub>来实现双线性对的外包算法,外包用户T首先要调用Rand来生成一个六元组(V<sub>1</sub>,V<sub>2</sub>,v<sub>1</sub>V<sub>1</sub>,v<sub>2</sub>V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>,e(v<sub>1</sub>V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>));记λ=e(v<sub>1</sub>V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>);双线性对的外包算法的核心技巧是将A,B拆分成看似随机的、可以被外包计算中的第一服务器U<sub>1</sub>和外包计算中的第二服务器U<sub>2</sub>计算的数;A和B是保密的,且外包计算中的第一服务器U<sub>1</sub>和外包计算中的第二服务器U<sub>2</sub>无法通过其他方法计算出A和B;第二步:逻辑拆分,利用六元组中的一些元素将e(A,B)逻辑拆分为五部分,其中一部分在生成的六元组中,只需计算另外的四部分;利用六元组中的一些元素将e(A,B)逻辑拆分为五部分α<sub>1</sub>、α<sub>2</sub><sup>‑1</sup>、α<sub>3</sub><sup>‑1</sup>、λ<sup>‑1</sup>、e(V<sub>1</sub>,V<sub>2</sub>)<sup>v1+v2</sup>,其中一部分在生成的六元组中,只需计算另外的四部分α<sub>1</sub>、α<sub>2</sub><sup>‑1</sup>、α<sub>3</sub><sup>‑1</sup>、λ<sup>‑1</sup>;具体描述如下:第一个逻辑拆分:α<sub>1</sub>=e(A+v<sub>1</sub>V<sub>1</sub>,B+v<sub>2</sub>V<sub>2</sub>);第二个逻辑拆分:α<sub>2</sub>=e(A+V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>);第三个逻辑拆分:α<sub>3</sub>=e(v<sub>1</sub>V<sub>1</sub>,B+V<sub>2</sub>);注意到:α<sub>1</sub>=e(A+v<sub>1</sub>V<sub>1</sub>,B+v<sub>2</sub>V<sub>2</sub>)=e(A,B)e(A,v<sub>2</sub>V<sub>2</sub>)e(v<sub>1</sub>V<sub>1</sub>,B)e(v<sub>1</sub>V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>);α<sub>2</sub>=e(A+V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>)=e(A,v<sub>2</sub>V<sub>2</sub>)e(V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>);α<sub>3</sub>=e(v<sub>1</sub>V<sub>1</sub>,B+V<sub>2</sub>)=e(v<sub>1</sub>V<sub>1</sub>,B)e(v<sub>1</sub>V<sub>1</sub>,V<sub>2</sub>);因此:e(A,B)=α<sub>1</sub>α<sub>2</sub><sup>‑1</sup>α<sub>3</sub><sup>‑1</sup>λ<sup>‑1</sup>e(V<sub>1</sub>,V<sub>2</sub>)<sup>v1+v2</sup>;第三步:调用Rand来生成两个新的六元组;(X1,X2,x1X1,x2X1,x2X2,e(x1X1,x2X2))和(Y1,Y2,y1Y1,y2Y1,y2Y2,e(y1Y1,y2Y2));第四步:对计算服务器外包计算中的第一服务器U<sub>1</sub>和外包计算中的第二服务器U<sub>2</sub>的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据;外包用户T以任意次序对外包计算中的第一服务器U<sub>1</sub>进行如下询问:U<sub>1</sub>(A+v<sub>1</sub>V<sub>1</sub>,B+v<sub>2</sub>V<sub>2</sub>)→e(A+v<sub>1</sub>V<sub>1</sub>,B+v<sub>2</sub>V<sub>2</sub>)=α<sub>1</sub>;U<sub>1</sub>(v<sub>1</sub>V<sub>1</sub>+v<sub>2</sub>V<sub>1</sub>,V<sub>2</sub>)→e(V<sub>1</sub>,V<sub>2</sub>)<sub>v1+v2</sub>;U<sub>1</sub>(x<sub>1</sub>X<sub>1</sub>,x<sub>2</sub>X<sub>2</sub>)→e(x<sub>1</sub>X<sub>1</sub>,x<sub>2</sub>X<sub>2</sub>);U<sub>1</sub>(y<sub>1</sub>Y<sub>1</sub>,y<sub>2</sub>Y<sub>2</sub>)→e(y<sub>1</sub>Y<sub>1</sub>,y<sub>2</sub>Y<sub>2</sub>);外包用户T以任意次序对外包计算中的第二服务器U<sub>2</sub>进行如下询问:U<sub>2</sub>(A+V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>)→e(A+V<sub>1</sub>,v<sub>2</sub>V<sub>2</sub>)=α<sub>2</sub>;U<sub>2</sub>(v<sub>1</sub>V<sub>1</sub>,B+V<sub>2</sub>)→e(v<sub>1</sub>V<sub>1</sub>,B+V<sub>2</sub>)=α<sub>3</sub>;U<sub>2</sub>(x<sub>1</sub>X<sub>1</sub>,x<sub>2</sub>X<sub>2</sub>)→e(x<sub>1</sub>X<sub>1</sub>,x<sub>2</sub>X<sub>2</sub>);U<sub>2</sub>(y<sub>1</sub>Y<sub>1</sub>,y<sub>2</sub>Y<sub>2</sub>)→e(y<sub>1</sub>Y<sub>1</sub>,y<sub>2</sub>Y<sub>2</sub>);第五步:外包用户T检测外包计算中的第一服务器U<sub>1</sub>和外包计算中的第二服务器U<sub>2</sub>的输出结果是否正确,外包用户T再次分别向外包计算中的第一服务器U<sub>1</sub>,外包计算中的第二服务器U<sub>2</sub>询问e(x<sub>1</sub>X<sub>1</sub>,x<sub>2</sub>X<sub>2</sub>)和e(y<sub>1</sub>Y<sub>1</sub>,y<sub>2</sub>Y<sub>2</sub>),并给出计算结果;如果其中有一个输出结果与之前询问时对应的输出结果不等,即出现错误,说明服务器存在作弊行为,外包用户T终止询问,输出“error”;如果输出结果与之前询问时对应的输出结果相等,外包用户T计算e(A,B)=α<sub>1</sub>α<sub>2</sub><sup>‑1</sup>α<sub>3</sub><sup>‑1</sup>λ<sup>‑1</sup>e(V<sub>1</sub>,V<sub>2</sub>)<sup>v1+v2</sup>。 |
地址 |
710071 陕西省西安市雁塔区太白南路2号 |