CN107104800B - 基于单台云服务器的双线性对安全外包方法 - Google Patents

基于单台云服务器的双线性对安全外包方法 Download PDF

Info

Publication number
CN107104800B
CN107104800B CN201710167706.0A CN201710167706A CN107104800B CN 107104800 B CN107104800 B CN 107104800B CN 201710167706 A CN201710167706 A CN 201710167706A CN 107104800 B CN107104800 B CN 107104800B
Authority
CN
China
Prior art keywords
server
calculation
bilinear
alpha
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710167706.0A
Other languages
English (en)
Other versions
CN107104800A (zh
Inventor
任艳丽
毛震
张新鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN201710167706.0A priority Critical patent/CN107104800B/zh
Publication of CN107104800A publication Critical patent/CN107104800A/zh
Application granted granted Critical
Publication of CN107104800B publication Critical patent/CN107104800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于单台云服务器的双线性对安全外包运算方法。本方法是:首先,需要进行外包计算的用户T选取四个一定范围内的随机整数,然后调用提高计算速度的子程序Rand生成一个六元组,利用六元组中的一些元素以及选取的4个随机整数将e(A,B)*e(C,D)逻辑拆分为四部分。其次,调用Rand来生成两个新的六元组,紧接着对计算服务器U进行6次询问,服务器计算出双线性对结果,其中的四部分作为中间的计算结果,另外的四部分作为测试数据。最后,T检测U的输出结果是否正确,根据服务器的响应,T计算出结果。该方法可适用于资源受限的设备。它的计算效率更高,运算的次数少,外包商T不需要再执行代价过高的计算SM和Exp运算。

Description

基于单台云服务器的双线性对安全外包方法
技术领域
本发明属于云计算技术领域,尤其涉及一种基于单台云服务器的双线性对安全外包方法。
背景技术
随着云服务在可用性方面的快速发展,如何将代价过高的计算安全外包给不可信服务器的技术越来越受到科学界的高度关注。在外包计算模式中,对于资源受限的设备,它可以以按次付费方式享受无限的计算资源,这样就可以大量地节约在硬件/软件部署和维护方面的资本支出。
尽管外包计算会带来巨大的好处,但是它也不可避免地引入了一些新的安全问题和挑战。首先,计算任务通常包含一些敏感信息,这是不应该暴露给不可信的云服务器的。因此,第一个安全问题是外包计算的保密性:云服务器不应该了解它实际上是在计算什么(包括输入和输出的隐私性)。然而我们也认为加密只能提供对这个问题的部分解决方案,因为服务器在加密的数据上很难执行有意义的计算。其次,不完全可信的云服务器可能会作弊,可能会返回一个无效的结果。例如,服务器可能包含一个软件漏洞,可能根本无法完成一个常数次数的调用。此外,可能由于经济报酬上的激励不足,服务器会减少计算量,然后返回一个计算上不可区分的(无效)的结果。因此,第二个安全挑战是外包计算的可检查性:外包商应该有能力发现云服务器的作弊行为,如果云服务器作弊,外包商会立即发现错误。通常,检测程序应该不需要执行其它复杂的计算,因为很多计算能力有限的设备,如RFID标签或者智能卡等都无力执行这种检测。至少,检测过程必须比完成计算任务本身更为有效,否则外包就没什么意义了。
在过去的十年中,双线性对尤其是代数曲线上的Weil对和Tate对,已经形成了密码学的一些全新的领域,使得密码学可以在此基础上实现之前未知的或不切实际的加密原语。通常,基于对运算的密码协议的实现依赖于对运算的计算速度,为此也有大量的工作来研究如何有效地实现此工作。
在嵌入式设备如RFID标签或智能卡上双线性对的运算的代价一直被认为是过分高昂的(注意,我们甚至假设模指数运算在这样的设备上都太昂贵而无法进行)。Chevallier-Mames等人发布了第一个基于一个不可信的服务器模型的椭圆曲线上对运算的安全外包方法。如果服务器有作弊行为,外包商可以以100%的概率检测到该错误。然而,该方法的一个明显缺点是外包商需要执行其它的一些代价高昂的计算,如标量乘法和指数运算。更准确地说,一方面,我们认为这些代价高昂的计算因为太多的资源消耗是无法在计算能力有限的设备上完成的。另一方面,计算标量乘法在一些的场景下与计算对运算的代价是相当的,这与外包计算的动机和目的是矛盾的。因此,在这个意义下,该方法在真实世界的应用中是完全没有意义的。据我们所知,后来的所有的在双线性对的授权外包方面都遭遇到了同样的问题。
发明内容
本发明的目的在于针对已有技术方案的不足,提供一种基于单台云服务器的双线性对安全外包的方法,是一种在云计算环境下基于单台不可信服务器模型下的安全有效的双线性对外包方法,通过调用提高计算速度的子程序Rand,外包用户T将它的双线性对运算外包给计算服务器,敌手无法知道外包算法S-Pair的输入和输出的任何有用信息。外包商不需要再执行代价过高的计算SM(群G1,或者G2上的标量乘法运算)和Exp(群GT上的指数运算)运算。
为达到上述目的,本发明采用下述技术方案:
一种基于单台云服务器的双线性对安全外包方法,其特征在于操作步骤如下:
1、T选取4个整数t1,t2,t3,t4∈{1,2,3......s},T为需要做外包计算的用户,s为1到100之间的一个整数;
2、调用Rand生成一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},其中Rand:用于提高计算速度的子程序,输入:G1、G2、一个双线性对以及其他的随机数。输出:一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},v1
Figure BDA0001249973140000021
V1∈RG1、V2∈RG2
Figure BDA0001249973140000022
去掉零元的模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阶的椭圆曲线乘法循环群;
3、逻辑拆分,利用六元组中的一些元素以及t1,t2,t3,t4将e(A,B)*e(C,D)变换为需要计算的四部分,e(A,B)*e(C,D)为两个双线性对相乘运算,A、B为G1上的一个点,C、D为G2中的一个随机点;
4、调用Rand来生成两个新的六元组{X1,X2,x1X1,x2X2,e(x1X1,x2X2)},
{Y1,Y2,y1Y1,y2Y2,e(y1Y1,y2Y2)},x1、x2、y1
Figure BDA0001249973140000023
X1、Y1∈RG1、X2、Y2∈RG2
5、对计算服务器U的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据,U为计算能力强的外包服务器;
6、T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并给出计算结果。
第一步,T在{1,2,3......s}中随机选取4个数作为t1,t2,t3,t4
第二步,T调用Rand生成一个六元组,为了用U来实现S-Pair,T首先要调用Rand来生成一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},{V1,V2,v1V1,v2V2,e(v1V1,v2V2)}的结果可以进行预计算处理,选一个可信的服务器计算出随机的,独立的六元组形成一张查询表,将其存放在内存之中,以后使用时,要生成的新六元组只需从这张表中检索,省去了现场计算的负担,S-Pair:提出的双线性对外包计算方法,输入:四个随机的点A、B、C、D,输出:A、B、C、D的双线性对运算e(A,B)*e(C,D),需要注意的是,A、B、C、D可能是秘密的或者(诚实/敌对的)受保护的,并且e(A,B),e(C,D)永远是秘密的或受保护的,此外,A、B、C、D对于服务器U来说在计算上是永远不可知的,S-Pair的核心技巧是将A、B、C、D拆分成看似随机的、可以被U计算的数且U无法计算出A、B、C、D,它们都是保密的。
第三步,逻辑拆分,利用六元组中的一些元素将计算e(A,B)*e(C,D)变换为计算其余的四部分,具体描述如下:
第一个逻辑拆分:α1=e(A+t1t3v1V1,B+t2t4v2V2);
第二个逻辑拆分:α2=e(C+t1t4v1V1,D-t2t3v2V2);
第三个逻辑拆分:α3=e(-t4A+t3C,t2v2V2);
第四个逻辑拆分:α4=e(t1v1V1,-t3B-t4D);
注意到:
α1=e(A+t1t3v1V1,B+t2t4v2V2)=e(A,B)e(A,t2t4v2V2)e(t1t3v1V1,B)e(t1t3v1V1,t2t4v2V2);
α2=e(C+t1t4v1V1,D-t2t3v2V2)=e(C,D)e(C,-t2t3v2V2)e(t1t4v1V1,D)e(t1t4v1V1,-t2t3v2V2);
α3=e(-t4A+t3C,t2v2V2)=e(-t4A,t2v2V2)e(t3C,t2v2V2)=e(-A,t2t4v2V2)e(C,t2t3v2V2);
α4=e(t1v1V1,-t3B-t4D)=e(t1v1V1,-t3B)e(t1v1V1,-t4D)=e(t1t3v1V1,-B)e(t1t4v1V1,-D);
得出:e(A,B)*e(C,D)=α1α2α3α4
第四步,再次调用Rand,生成两个新的六元组,T调用Rand来生成两个新的六元组:{X1,X2,x1X1,x2X2,e(x1X1,x2X2)},{Y1,Y2,y1Y1,y2Y2,e(y1Y1,y2Y2)}。
第五步,对计算服务器U的询问。服务器计算出双线性对结果,求出了需要计算的四部分,其余的作为测试数据:
T以任意次序对U,进行如下询问:
U(A+t1t3v1V1,B+t2t4v2V2)→e(A+t1t3v1V1,B+t2t4v2V2)=α1
U(C+t1t4v1V1,D-t2t3v2V2)→e(C+t1t4v1V1,D-t2t3v2V2)=α2
U(-t4A+t3C,t2v2V2)→e(-t4A+t3C,t2v2V2)=α3
U(t1v1V1,-t3B-t4D)→e(t1v1V1,-t3B-t4D)=a4
U(x1X1,x2X2)→e(x1X1,x2X2)=α5
U(y1Y1,y2Y2)→e(y1Y1,y2Y2)=α6
第六步,T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并根据服务器的响应结果给出计算结果:
如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,T终止询问,输出“error″;
如果输出结果与之前对应输出结果相等,T计算e(A,B)*e(C,D)=α1α2α3α4
性能比较:
下表给出了S-Pair与Chevallier-Mames等人提出的方法的效率比较,这里忽略模加运算的代价。
Figure BDA0001249973140000031
Figure BDA0001249973140000041
符号说明:
PA:G1或者G2上的一次点与点的加法运算;
SM:G1或者G2上的一次标量乘法运算;
M:GT上的乘法运算;
Inv:GT上的求逆运算;
Exp:GT上的指数运算;
s:对应方法中相关参数;
Checkability:可验证概率;
U1,U2:外包云服务器1和外包云服务器2。
表给出了多个方法之间的效率的比较结果,很明显,我们提出的方法在计算效率方面对于同样基于单台服务器的外包方法更高,它需要的运算的次数要少很多,但是对于基于双台服务器的外包方法,S-Pair算法的计算效率是相对较低的,由于基于单台服务器的外包算法在计算成本方面更有优势,且更易实现,所以基于单台服务器的安全外包方法S-Pair方法更是具有实际使用价值的。更准确地说,在我们的S-Pair方法中,外包商T不需要再执行代价过高的计算SM(群G1,或者G2上的标量乘法运算)和Exp(群GT上的指数运算)运算,这些运算在计算能力有限的设备如RFID等上是无力执行的。甚至可以这样说,计算SM(或Exp)的计算量在某些情况下是可以和双线性对运算可比拟的。外包计算是为了减少外包商的计算量,如果T还需要计算SM或Exp的话将违背外包计算的最根本目的。
另一方面,在我们的方法S-Pair中,它需要服务器来执行6次服务器U计算。此外,计算Rand的代价可以直接查询表,因此Rand的计算代价是可以忽略不计的。该方法中服务器端需要承担更多的计算任务,然而,注意到服务器强大的计算能力,我们的方法的效率将不会受到影响。
本发明与现有技术相比较,具有如下显而易见的突出性质特点和显著技术进步:
本发明提供的双线性对的安全外包的方法,先选取一组随机整数,然后调用Rand生成一个六元组,然后进行逻辑拆分,利用六元组中的一些元素以及选取的4个随机整数将e(A,B)*e(C,D)变换为需要计算四部分,再调用Rand,生成两个新的六元组,紧接着对计算服务器询问,服务器计算出双线性对结果,求出了需要计算的四部分,其余的两部分作为测试数据,最后检测并计算出结果,如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,T终止询问,输出“error″,否则T计算e(A,B)*e(C,D)=α1α2α3α4。在计算效率方面更高,它需要的运算的次数要少很多,外包商T不需要再执行代价过高的计算SM(群G1,或者G2上的标量乘法运算)和Exp(群GT上的指数运算)运算。
附图说明
图1为本发明实施例提供的双线性对安全外包的方法的流程框图;
具体实施方式
为了使本发明的目的、技术方法及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
参见图1,本基于单台云服务器的双线性对安全外包方法,该方法包括以下步骤:
第一步、T选取4个整数t1,t2,t3,t4∈{1,2,3......s},T为需要做外包计算的用户,s为1到100之间的一个整数;
第二步、调用Rand生成一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},其中Rand:用于提高计算速度的子程序,输入:G1、G2、一个双线性对以及其他的随机数。输出:一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},v1
Figure BDA0001249973140000051
V1∈RG1、V2∈RG2
Figure BDA0001249973140000052
去掉零元的模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阶的椭圆曲线乘法循环群;
第三步、逻辑拆分,利用六元组中的一些元素以及t1,t2,t3,t4将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)},
{Y1,Y2,y1Y1,y2Y2,e(y1Y1,y2Y2)},x1、x2、y1
Figure BDA0001249973140000053
X1、Y1∈RG1、X2、Y2∈RG2
第五步、对计算服务器U的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据,U为计算能力强的外包服务器;
第六步、T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并给出计算结果。
实施例二:本实施例与实施例一基本相同,特别之处如下:
所述第一步T在{1,2,3......s}中随机选取4个数作为t1,t2,t3,t4,s为1到100之间的一个整数。
所述第二步T调用Rand生成一个六元组,为了用U来实现S-Pair,T首先要调用Rand来生成一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},{V1,V2,v1V1,v2V2,e(v1V1,v2V2)}的结果可以进行预计算处理,选一个可信的服务器计算出随机的,独立的六元组形成一张查询表,将其存放在内存之中,以后使用时,要生成的新六元组只需从这张表中检索,省去了现场计算的负担,S-Pair:提出的双线性对外包计算方法,输入:四个随机的点A、B、C、D,输出:A、B、C、D的双线性对运算e(A,B)*e(C,D),需要注意的是,A、B、C、D可能是秘密的或者诚实/敌对的受保护的,并且e(A,B),e(C,D)永远是秘密的或受保护的,此外,A、B、C、D对于服务器U来说在计算上是永远不可知的,S-Pair的核心技巧是将A、B、C、D拆分成看似随机的、可以被U计算的数且U无法计算出A、B、C、D,它们都是保密的。
所述第三步逻辑拆分,利用六元组中的一些元素将计算e(A,B)*e(C,D)变换为计算其余的四部分,具体描述如下:
第一个逻辑拆分:α1=e(A+t1t3v1V1,B+t2t4v2V2);
第二个逻辑拆分:α2=e(C+t1t4v1V1,D-t2t3v2V2);
第三个逻辑拆分:α3=e(-t4A+t3C,t2v2V2);
第四个逻辑拆分:α4=e(t1v1V1,-t3B-t4D);
注意到:
α1=e(A+t1t3v1V1,B+t2t4v2V2)=e(A,B)e(A,t2t4v2V2)e(t1t3v1V1,B)e(t1t3v1V1,t2t4v2V2);
α2=e(C+t1t4v1V1,D-t2t3v2V2)=e(C,D)e(C,-t2t3v2V2)e(t1t4v1V1,D)e(t1t4v1V1,-t2t3v2V2);
α3=e(-t4A+t3C,t2v2V2)=e(-t4A,t2v2V2)e(t3C,t2v2V2)=e(-A,t2t4v2V2)e(C,t2t3v2V2);
α4=e(t1v1V1,-t3B-t4D)=e(t1v1V1,-t3B)e(t1v1V1,-t4D)=e(t1t3v1V1,-B)e(t1t4v1V1,-D);
得出:e(A,B)*e(C,D)=α1α2α3α4
所述第五步对计算服务器U的询问。服务器计算出双线性对结果,求出了需要计算的四部分,其余的作为测试数据:
T以任意次序对U,进行如下询问:
U(A+t1t3v1V1,B+t2t4v2V2)→e(A+t1t3v1V1,B+t2t4v2V2)=α1
U(C+t1t4v1V1,D-t2t3v2V2)→e(C+t1t4v1V1,D-t2t3v2V2)=α2
U(-t4A+t3C,t2v2V2)→e(-t4A+t3C,t2v2V2)=α3
U(t1v1V1,-t3B-t4D)→e(t1v1V1,-t3B-t4D)=α4
U(x1X1,x2,X2)→e(x1X1,x2X2)=α5
U(y1Y1,y2Y2)→e(y1Y1,y2Y2)=α6
所述第六步T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并根据服务器的响应结果给出计算结果:
如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,T终止询问,输出“error″;
如果输出结果与之前对应输出结果相等,T计算e(A,B)*e(C,D)=α1α2α3α4
实施例三:
图1示出了本实施案例提供的一种基于单台云服务器的双线性对安全外包方法,该方法包括:
在步骤s101中,T在{1,2,3......s}中随机选取4个整数作为t1,t2,t3,t4,s为1到100之间的一个整数。
在步骤s102中,T调用Rand生成一个六元组,为了用U来实现S-Pair,T首先要调用Rand来生成一个六元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},{V1,V2,v1V1,v2V2,e(v1V1,v2V2)}_的结果可以进行预计算处理,选一个可信的服务器计算出随机的,独立的六元组形成一张查询表,讲其存放在内存之中,以后使用时,要生成的新六元组只需从这张表中检索,省去了现场计算的负担,S-Pair:提出的双线性对外包计算方法,输入:四个随机的点A、B、C、D,输出:A、B、C、D的双线性对运算e(A,B)*e(C,D),需要注意的是,A、B、C、D可能是秘密的或者(诚实/敌对的)受保护的,并且e(A,B),e(C,D)永远是秘密的或受保护的,此外,A、B、C、D对于服务器U来说在计算上是永远不可知的,S-Pair的核心技巧是将A、B、C、D拆分成看似随机的、可以被U计算的数且U无法计算出A、B、C、D,它们都是保密的。
在步骤s103中,逻辑拆分。利用六元组中的一些元素将计算e(A,B)*e(C,D)变换为计算其余的四部分,具体描述如下:
第一个逻辑拆分:α1=e(A+t1t3v1V1,B+t2t4v2V2);
第二个逻辑拆分:α2=e(C+t1t4v1V1,D-t2t3v2V2);
第三个逻辑拆分:α3=e(-t4A+t3C,t2v2V2);
第四个逻辑拆分:α4=e(t1v1V1,-t3B-t4D);
注意到:
α1=e(A+t1t3v1V1,B+t2t4v2V2)=e(A,B)e(A,t2t4v2V2)e(t1t3v1V1,B)e(t1t3v1V1,t2t4v2V2);
α2=e(C+t1t4v1V1,D-t2t3v2V2)=e(C,D)e(C,-t2t3v2V2)e(t1t4v1V1,D)e(t1t4v1V1,-t2t3v2V2);
α3=e(-t4A+t3C,t2v2V2)=e(-t4A,t2v2V2)e(t3C,t2v2V2)=e(-A,t2t4v2V2)e(C,t2t3v2V2);
α4=e(t1v1V1,-t3B-t4D)=e(t1v1V1,-t3B)e(t1v1V1,-t4D)=e(t1t3v1V1,-B)e(t1t4v1V1,-D);
得出:e(A,B)*e(C,D)=α1α2α3α4
在步骤s104中,再次调用Rand,生成两个新的六元组,T调用Rand来生成两个新的六元组:{X1,X2,x1X1,x2X2,e(x1X1,x2X2)},{Y1,Y2,y1Y1,y2Y2,e(y1Y2,y2Y2)}。
在步骤s105中,对计算服务器U的询问,服务器计算出双线性对结果,求出了需要计算的四部分,其余的作为测试数据:
T以任意次序对U,进行如下询问:
U(A+t1t3v1V1,B+t2t4v2V2)→e(A+t1t3v1V1,B+t2t4v2V2)=α1
U(C+t1t4v1V1,D-t2t3v2V2)→e(C+t1t4v1V1,D-t2t3v2V2)=α2
U(-t4A+t3C,t2v2V2)→e(-t4A+t3C,t2v2V2)=α3
U(t1v1V1,-t3B-t4D)→e(t1v1V1,-t3B-t4D)=α4
U(x1X1,x2X2)→e(x1X1,x2X2)=α5
U(y1Y1,y2Y2)→e(y1Y1,y2Y2)=α6
在步骤s106中,T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并根据服务器的响应结果给出计算结果:
在步骤s1061中,如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,T终止询问,输出“error″;
在步骤s1062中,如果输出结果与之前对应输出结果相等,T计算e(A,B)*e(C,D)=α1α2α3α4
安全模型:单个不可信的服务器模型。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换合改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于单台云服务器的双线性对安全外包方法,该方法包括以下步骤:
第一步、T选取4个整数t1,t2,t3,t4∈{1,2,3......s},T为需要做外包计算的用户,s为1到100之间的一个整数;
第二步、调用Rand生成一个五元组{V1,V2,v1V1,v2V2,e(v1V1,v1V2)},其中Rand:用于提高计算速度的子程序,输入:G1、G2、一个双线性对以及其他的随机数;输出:一个五元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},v1
Figure FDA0002672038440000012
V1∈RG1、V2∈RG2
Figure FDA0002672038440000013
去掉零元的模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阶的椭圆曲线乘法循环群;
第三步、逻辑拆分,利用五元组中的一些元素以及t1,t2,t3,t4将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)},{Y1,Y2,y1Y1,y2Y2,e(y1Y1,y2Y2)},x1、x2、y1
Figure FDA0002672038440000011
X1、Y1∈RG1、X2、Y2∈RG2
第五步、对计算服务器U的询问,服务器计算出双线性对结果,求出了其余的四部分,其余的作为测试数据,U为计算能力强的外包服务器;
第六步、T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并给出计算结果;
所述第三步逻辑拆分,利用五元组中的一些元素将计算e(A,B)*e(C,D)变换为计算其余的四部分,具体描述如下:
第一个逻辑拆分:α1=e(A+t1t3v1V1,B+t2t4v2V2);
第二个逻辑拆分:α2=e(C+t1t4v1V1,D-t2t3v2V2);
第三个逻辑拆分:α3=e(-t4A+t3C,t2v2V2);
第四个逻辑拆分:α4=e(t1v1V1,-t3B-t4D);
注意到:
α1=e(A+t1t3v1V1,B+t2t4v2V2)=e(A,B)e(A,t2t4v2V2)e(t1t3v1V1,B)e(t1t3v1V1,t2t4v2V2);
α2=e(C+t1t4v1V1,D-t2t3v2V2)=e(C,D)e(C,-t2t3v2V2)e(t1t4v1V1,D)e(t1t4v1V1,-t2t3v2V2);
α3=e(-t4A+t3C,t2v2V2)=e(-t4A,t2v2V2)e(t3C,t2v2V2)=e(-A,t2t4v2V2)e(C,t2t3v2V2);
α4=e(t1v1V1,-t3B-t4D)=e(t1v1V1,-t3B)e(t1v1V1,-t4D)=e(t1t3v1V1,-B)e(t1t4v1V1,-D);
得出:e(A,B)*e(C,D)=α1α2α3α4
所述第五步对计算服务器U的询问;服务器计算出双线性对结果,求出了需要计算的四部分,其余的作为测试数据:
T以任意次序对U,进行如下询问:
U(A+t1t3v1V1,B+t2t4v2V2)→e(A+t1t3v1V1,B+t2t4v2V2)=α1
U(C+t1t4v1V1,D-t2t3v2V2)→e(C+t1t4v1V1,D-t2t3v2V2)=a2
U(-t4A+t3C,t2v2V2)→e(-t4A+t3Ct2v2V2)=α3
U(t1v1V1,-t3B-t4D)→e(t1v1V1,-t3B-t4D)=α4
U(x1X1,x2X2)→e(x1X1,x2X2)=α5
U(y1Y1,y2Y2)→e(y1Y1,y2Y2)=α6
2.如权利要求1所述的基于单台云服务器的双线性对安全外包方法,其特征在于:所述第二步T调用Rand生成一个五元组,为了用U来实现S-Pair,T首先要调用Rand来生成一个五元组{V1,V2,v1V1,v2V2,e(v1V1,v2V2)},{V1,V2,v1V1,v2V2,e(v1V1,v2V2)}的结果可以进行预计算处理,选一个可信的服务器计算出随机的,独立的五元组形成一张查询表,将其存放在内存之中,以后使用时,要生成的新五元组只需从这张表中检索,省去了现场计算的负担,S-Pair:提出的双线性对外包计算方法,输入:四个随机的点A、B、C、D,输出:A、B、C、D的双线性对运算e(A,B)*e(C,D),需要注意的是,A、B、C、D是秘密的或者诚实/敌对的受保护的,并且e(A,B),e(C,D)永远是秘密的或受保护的,此外,A、B、C、D对于服务器U来说在计算上是永远不可知的,S-Pair的核心技巧是将A、B、C、D拆分成看似随机的、可以被U计算的数且U无法计算出A、B、C、D,它们都是保密的。
3.如权利要求1所述的基于单台云服务器的双线性对安全外包方法,其特征在于:所述第六步T检测U的输出结果是否正确,T再次向U询问e(x1X1,x2X2)和e(y1Y1,y2Y2),并根据服务器的响应结果给出计算结果:
如果其中有一个输出结果与之前对应输出结果不等,即出现错误,说明服务器存在作弊行为,T终止询问,输出“error";
如果输出结果与之前对应输出结果相等,T计算e(A,B)*e(C,D)=α1α2α3α4
CN201710167706.0A 2017-03-20 2017-03-20 基于单台云服务器的双线性对安全外包方法 Active CN107104800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710167706.0A CN107104800B (zh) 2017-03-20 2017-03-20 基于单台云服务器的双线性对安全外包方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710167706.0A CN107104800B (zh) 2017-03-20 2017-03-20 基于单台云服务器的双线性对安全外包方法

Publications (2)

Publication Number Publication Date
CN107104800A CN107104800A (zh) 2017-08-29
CN107104800B true CN107104800B (zh) 2021-06-04

Family

ID=59675432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710167706.0A Active CN107104800B (zh) 2017-03-20 2017-03-20 基于单台云服务器的双线性对安全外包方法

Country Status (1)

Country Link
CN (1) CN107104800B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336822A (zh) * 2019-07-09 2019-10-15 青岛大学 一种基于双线性配对的信息加密方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024006A (zh) * 2012-11-23 2013-04-03 西安电子科技大学 一种云计算环境下双线性对的安全外包的方法
CN105306214A (zh) * 2015-09-24 2016-02-03 中山大学 一种双线性对安全外包方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547720B2 (en) * 2014-12-24 2017-01-17 Sap Se Access control for encrypted query processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024006A (zh) * 2012-11-23 2013-04-03 西安电子科技大学 一种云计算环境下双线性对的安全外包的方法
CN105306214A (zh) * 2015-09-24 2016-02-03 中山大学 一种双线性对安全外包方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"单服务器模型下双线性运算外包协议设计";王少辉 等;《计算机技术与发展》;20161130;第26卷(第11期);全文 *
"可完全验证的双线性对运算外包算法";任艳丽 等;《中国科学》;20160731;第46卷(第7期);全文 *
"基于单个服务器的双线性对外包算法";蒋铁金 等;《计算机应用》;20160731;第36卷(第7期);全文 *

Also Published As

Publication number Publication date
CN107104800A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN104396181B (zh) 用于生成和保护密码密钥的系统和方法
CN103024006B (zh) 一种云计算环境下双线性对的安全外包的方法
US11424907B2 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
CN108306735A (zh) 椭圆曲线点乘运算的硬件实现方法及其系统
Abdaoui et al. Fuzzy elliptic curve cryptography for authentication in Internet of Things
CN107248973B (zh) 一种基于双台云服务器针对两个双线性对的安全外包方法
CN111107076A (zh) 一种安全高效的矩阵乘法外包方法
Ren et al. Verifiable outsourcing algorithms for modular exponentiations with improved checkability
Ding et al. The Nested Subset Differential Attack: A Practical Direct Attack Against LUOV Which Forges a Signature Within 210 Minutes
CN115840936A (zh) 数论变换的低开销侧信道保护
JP2022095852A (ja) デジタル署名方法、署名情報の検証方法、関連装置及び電子機器
Das et al. A new modified version of standard RSA cryptography algorithm
Ernstberger et al. Do You Need a Zero Knowledge Proof?
US20180034628A1 (en) Protecting polynomial hash functions from external monitoring attacks
US20220131708A1 (en) Efficient hybridization of classical and post-quantum signatures
CN107104800B (zh) 基于单台云服务器的双线性对安全外包方法
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
Zakerolhosseini et al. Secure transmission of mobile agent in dynamic distributed environments
Kumar et al. Privacy preserving, verifiable and efficient outsourcing algorithm for regression analysis to a malicious cloud
CN114205104A (zh) 针对功率和电磁侧信道攻击的对认证标签计算的保护
KR20210072711A (ko) 사물인터넷 디바이스와 신뢰 서버 간 상호 인증 방법 및 장치
Li et al. [Retracted] Hardware Optimization and System Design of Elliptic Curve Encryption Algorithm Based on FPGA
KR20210061194A (ko) 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치
Shirazi et al. An innovative design of substitution-box using Trigonometric-Multiplicative Functions Using Square Root Arguments: A Data-driven study.
Gao et al. V-Curve25519: Efficient Implementation of Curve25519 on RISC-V Architecture

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant