CN108365959B - 一种云环境下全代理的外包多项式验证方法 - Google Patents

一种云环境下全代理的外包多项式验证方法 Download PDF

Info

Publication number
CN108365959B
CN108365959B CN201810151825.1A CN201810151825A CN108365959B CN 108365959 B CN108365959 B CN 108365959B CN 201810151825 A CN201810151825 A CN 201810151825A CN 108365959 B CN108365959 B CN 108365959B
Authority
CN
China
Prior art keywords
polynomial
key
client
cloud server
verification
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
CN201810151825.1A
Other languages
English (en)
Other versions
CN108365959A (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.)
Northeastern University China
Original Assignee
Northeastern University China
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 Northeastern University China filed Critical Northeastern University China
Priority to CN201810151825.1A priority Critical patent/CN108365959B/zh
Publication of CN108365959A publication Critical patent/CN108365959A/zh
Application granted granted Critical
Publication of CN108365959B publication Critical patent/CN108365959B/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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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

Landscapes

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

Abstract

本发明提供一种云环境下全代理的外包多项式验证方法,包括:用户通过客户端向云服务器和第三方发送多项式计算请求,第三方将初始化结果发送至客户端和云服务器;客户端执行密钥生成算法,将生成的密钥返回给云服务器;云服务器将编码后的密钥发送给客户端;客户端执行验证密钥恢复流程,将通过验证的密钥发送至云服务器,客户端将输入的查询值发送至云服务器;云服务器将生成的多项式计算结果和证据发送至客户端;客户端对计算结果进行验证,并将通过验证的计算结果输出;在多项式的阶不变的情况下,当要对多项式的系数进行更新时,通过客户端进行多项式系数的更新。解决了客户端预处理成本高的问题,提高了更新操作的效率。

Description

一种云环境下全代理的外包多项式验证方法
技术领域
本发明属于网络安全技术领域,尤其涉及一种云环境下全代理的外包多项式验证方法。
背景技术
随着信息技术的高速发展,智能手机等小型终端设备成为人们生活中不可或缺的一部分,然而这些终端设备受限于较弱的计算能力和存储能力,在应对一些复杂的计算任务时(如大数据处理、图像渲染等),无法满足计算所带来的昂贵代价。而伴随着云计算的高速发展,云服务提供商为这些弱计算能力终端执行复杂的计算任务提供了一种可行的解决方案,即用户将复杂的计算任务通过外包的形式让拥有强大计算能力的云服务器来执行。用户可以根据需求随时随地向云服务提供商申请计算资源,将复杂的计算任务外包给云服务器执行,而本地只需负责数据传输以及显示等简单操作即可。通过这种按需申请的方式,用户可以自主的选择云资源的何时租用、何时退出,这样既能够满足了复杂计算任务的计算代价,还可以极大程度降低资源维护等不必要的开销。
通过这种将计算外包的方式,用户可以随时发出计算请求,服务器会根据用户的不同请求执行计算并将计算结果返回给用户。然而,云服务器的规模是非常庞大的并且内部细节对于用户来说是不透明的,在云服务器的运行过程中,可能会受到外在因素的影响从而使云服务器产生不可信的行为,例如硬件错误或者是恶意的云服务商对用户的外包计算请求篡改等问题。此时,通过这种资源租用的模式也就带来了如计算的安全性、正确性和隐私性等诸多问题,在此情况下如何使用户相信外包的计算得到了正确的执行成为了亟待解决的问题。
针对上述的这些问题,Rosario等人提出了可验证计算的概念,并给出了通用的全代理的外包多项式验证模型,要求服务器在为用户执行计算生成结果的同时也生成一个对能够证明计算结果正确性的证据并返回给用户,用户只需要投入少量的资源就可以利用证据对计算结果进行验证,并且验证的效率高于本地重复执行计算的效率。而在关于全代理的外包多项式验证研究中,尤以关于外包多项式的研究居多,但是当前基于此模型构建的可全代理的外包多项式验证方案具有很大的局限性,首先用户在外包多项式计算的初始化过程需要执行一次代价较大的预处理操作,其次一些方案并不支持更新操作,当用户希望对自己外包的多项式进行更新时,只能重新执行外包初始化操作,这不仅造成了资源的浪费还会影响用户的计算效率。
发明内容
(一)要解决的技术问题
为了解决客户端需执行外包多项式计算的繁杂的预处理操作和外包多项式系数不支持更新的问题,本发明提供一种云环境下全代理的外包多项式验证方法。
(二)技术方案
为了达到上述的目的,本发明采用的主要技术方案包括:
一种云环境下全代理的外包多项式验证方法,包括:
步骤1:当用户通过客户端向云服务器和可信第三方发送多项式F的计算请求时,所述可信第三方通过执行初始化算法生成公共参数,并且同时将公共参数发送至所述客户端和所述云服务器;
步骤2:所述客户端利用所述公共参数执行密钥生成算法,生成计算密钥EKpp、第一验证密钥VKPP和求值密钥EKF,并所述计算密钥EKpp和所述求值密钥EKF返回给所述云服务器;
步骤3:所述云服务器根据所述公共参数和所述计算密钥EKpp生成编码后的密钥
Figure GDA0002497260160000021
和证据
Figure GDA0002497260160000022
并将所述编码后的密钥
Figure GDA0002497260160000023
和第一证据
Figure GDA0002497260160000024
发送给所述客户端;
步骤4:所述客户端利用所述密钥
Figure GDA0002497260160000031
证据
Figure GDA0002497260160000032
和第一验证密钥VKPP进行验证,如果验证通过,则所述客户端将解码后所述多项式F的第二验证密钥SKF发送至所述云服务器;如果验证结果不通过,则输出⊥终止后续所有操作;
步骤5:当所述客户端将所述第二验证密钥SKF发送至所述云服务器的同时,将输入的所述多项式F的查询值x生成编码后的形式σx,然后将所述查询值x编码后的σx一同发送至所述云服务器;
步骤6:所述云服务器采用多项式求值算法,利用所述公共参数、所述查询值x编码后的σx和所述求值密钥EKF,生成所述多项式的求值计算结果y和第二证据πy并将所述计算结果y生成编码后的形式σy,然后将编码形式的σy和所述第二证据πy发送至所述客户端;
步骤7:所述客户端对于所述云服务器返回的所述编码形式的σy进行验证,如果验证通过,所述客户端输出所述多项式F的所述计算结果y;如果验证不通过,所述客户端输出⊥并拒绝所述多项式F的所述计算结果y;
步骤8:在所述多项式F的阶不变的情况下,当需要对所述多项式F的任意系数进行更新时,可以通过所述客户端执行系数更新算法进行多项式F系数的更新。
进一步的,所述初始化算法具体包括:
S01:读取预先设置的安全参数,并生成大整数循环群;
S02:利用所述循环群构建双线性配对函数;
S03:从所述双线性配对函数中提取出G1群,并从所述G1群中随机选取元素ki,然后利用所述G1群的生成元g执行指数运算生成6个二元组;
S04:所述可信第三方将所述公共参数同时发送至所述客户端和所述云服务器;所述公共参数包括所述循环群、所述双线性配对函数、所述G1群、所述生成元g和所述6个二元组。
进一步的,所述密钥生成算法具体包括:
L01:确定所述多项式的最高次幂n和所有系数,并将所述系数设定为系数向量C=(c0,c1,...,cn);
L02:从预先设置的Zp群中随机选取元素k、α、t1、t2、r,利用k、α和所述公共参数,构造伪随机函数
Figure GDA0002497260160000041
其中i∈[0,n],以i作为所述伪随机函数的输入值,循环调用所述伪随机函数生成器计算生成对应的伪随机函数值Fα(0),Fα(1),…,Fα(n),从所述公共参数中读取所述6个二元组,然后分别计算
Figure GDA0002497260160000042
Figure GDA0002497260160000043
其中i∈[0,n];
L03:利用选取的所述元素t1生成h1,
Figure GDA0002497260160000044
利用所述元素t2生成h2
Figure GDA0002497260160000045
其中i∈[0,n];
L04:利用所述h1和h2构建所述多项式模幂运算过程的计算密钥EKpp=((wi,bi,w′i,b′i)i∈[0,n],h1,h2)和第一验证密钥VKpp=(α,k,t1,t2,r);
L05:计算
Figure GDA0002497260160000046
其中i∈[0,n],生成所述多项式预处理过程中的求值密钥EKF,EKF=(C,{Ui}i∈[0,2n+1]\[n+1],γ);以元组形式将所述计算密钥EKpp和所述求值密钥EKF发送至所述云服务器。
进一步的,所述步骤4具体包括:
所述客户端利用所述
Figure GDA0002497260160000051
和VKPP,采用parseModExpVk()算法解析所述用户的模幂运算,解析接收到的模幂运算结果并计算
Figure GDA0002497260160000052
解析接收到的模幂运算结果并计算
Figure GDA0002497260160000053
其中i∈[0,n],如果所述left与所述right的值相同,则采用recovery()算法输出解码后的所述多项式的第二验证密钥SKF,并将所述第二验证密钥SKF发送至所述云服务器;如果所述left与所述right的值不相同,则输出⊥终止后续所有操作。
进一步的,所述步骤6具体包括:
N01:所述云服务器根据所述查询值x执行n+1次指数运算并利用所述指数运算的结果构建向量X,X=(1,x,x2,...,xn);
N02:通过所述求值密钥EKF,读取所述多项式的系数向量C,利用所述向量X和所述向量C,获得所述多项式的求值计算结果
Figure GDA0002497260160000054
其中i∈[0,n],并将所述计算结果y进行编码生成σy
N03:从所述求值密钥EKF中读取参数信息{Ui}i∈[0,2n+1]\[n+1]和γ,利用所述多项式的系数计算生成
Figure GDA0002497260160000055
其中,j∈0,n;
N04:利用所述Wi计算产生所述第二证据
Figure GDA0002497260160000061
其中i∈[0,n];
N05:所述云服务器将所述编码形式的σy和所述第二证据πy以元组形式发送至所述客户端。
进一步的,所述步骤7具体包括:
X01:利用所述第一验证密钥VKPP计算生成
Figure GDA0002497260160000062
的结果,由于所述客户端本身拥有u和α的动态值,所述客户端可以通过执行等式
Figure GDA0002497260160000063
通过等比数列求和的方式计算获得
Figure GDA0002497260160000064
的值,其中i∈[0,n];
X02:利用所述X01的计算结果验证等式
Figure GDA0002497260160000065
是否成立,如果成立,则所述客户端输出所述多项式的求值计算结果y;如果不成立,则所述客户端输出⊥并拒绝所述多项式的求值计算结果y。
进一步的,所述系数更新算法具体包括:
Y01:所述客户端利用所述多项式的所述第二验证密钥SKF构建出伪随机函数Fα(i)并计算所述伪随机函数结果;
Y02:输入需要更新的原始系数c和需要更新后的新系数c′,
Y03:通过SK′F=SKF·Fα(i)c′-c计算出更新后的第二验证密钥SKF′,并且将所述新系数c′和所述更新后的第二验证密钥SKF′返回给所述云服务器。
(三)有益效果
本发明的有益效果是:
本发明一种云环境下全代理的外包多项式验证方法,包括:用户通过客户端向云服务器和第三方发送多项式计算请求,第三方将初始化结果发送至客户端和云服务器;客户端执行密钥生成算法,将生成的密钥返回给云服务器;云服务器将编码后的密钥发送给客户端;客户端执行验证密钥恢复流程,将通过验证的密钥发送至云服务器,客户端将输入的查询值发送至云服务器;云服务器将生成的多项式计算结果和证据发送至客户端;客户端对计算结果进行验证,并将通过验证的计算结果输出。云环境下全代理的外包多项式验证方法解决了客户端预处理成本高的问题,保证了计算能力和存储能力弱的客户端能承受的繁重的工作,同时降低了计算能力弱的客户端的预处理成本。
同时,在多项式的阶不变的情况下,当需要对多项式的任意系数进行更新时,可以通过客户端执行系数更新算法进行多项式系数的更新。这使得当用户对外包的多项式进行更新时,不需要重新执行外包初始化操作,提高了更新操作的效率。
附图说明
图1为本发明实施例一种云环境下全代理的外包多项式验证方法的系统示意图;
图2为本发明实施例一种云环境下全代理的外包多项式验证方法的时序图;
图3为本发明实施例一种云环境下全代理的外包多项式验证方法的初始化算法流程图;
图4为本发明实施例一种云环境下全代理的外包多项式验证方法的密钥生成算法流程图;
图5为本发明实施例一种云环境下全代理的外包多项式验证方法的验证密钥恢复流程图;
图6为本发明实施例一种云环境下全代理的外包多项式验证方法的求值算法流程图;
图7为本发明实施例一种云环境下全代理的外包多项式验证方法的计算结果验证流程图;
图8为本发明实施例一种云环境下全代理的外包多项式验证方法的多项式系数更新算法流程图。
具体实施方式
为了更好地解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
一种云环境下全代理的外包多项式验证方法,包括:
步骤1:当用户通过客户端向云服务器和可信第三方发送多项式F的计算请求时,可信第三方通过执行初始化算法生成公共参数,并且同时将公共参数发送至客户端和云服务器;
初始化算法生成公共参数流程如图3所示,具体包括如下步骤:
步骤1.1:读取预先设置的安全参数,根据安全参数选定素数群,利用循环群构建双线性配对函数,生成大整数循环群(p,g,u,G1,G2,GT,e);
步骤1.2:从双线性配对函数中提取出G1群,并从G1群中随机选取元素ki,然后利用G1群的生成元g执行指数运算生成6个二元组;
步骤1.3:可信第三方将生成的公共参数同时发送至客户端和云服务器;公共参数包括循环群、双线性配对函数、G1群、生成元g和6个二元组,即公共参数
Figure GDA0002497260160000081
步骤2:客户端利用公共参数执行密钥生成算法,生成计算密钥EKpp、第一验证密钥VKPP和求值密钥EKF,并计算密钥EKpp和求值密钥EKF返回给云服务器;
密钥生成流程如图4所示,根据外包的多项式创建Polynomial类对象poly,调用对象内部方法getCoeffs()获取多项式的所有系数信息;调用nextRandom()方法随机生成三个整数α,k,γ;实例化并解析公共参数类PublicParam params对象,执行对象内部实现的方法getElementPowPreProcessing()计算生成
Figure GDA0002497260160000091
声明伪随机数生成器对象PseudoRandom prf,利用输入i=[0,n]生成伪随机数值;调用方法genKey()生成外包模幂运算的计算密钥和第一验证密钥。创建并获取文件句柄用于保存生成的密钥信息,然后将生成的密钥信息写入文件。
密钥生成算法具体包括:
步骤2.1:确定多项式的最高次幂n和所有系数,并将系数设定为系数向量C=(c0,c1,...,cn);
步骤2.2:从预先设置的Zp群中随机选取元素k、α、t1、t2、r,利用k、α和公共参数,构造伪随机函数
Figure GDA0002497260160000092
其中i∈[0,n],以i作为伪随机函数的输入值,循环调用伪随机函数生成器计算生成对应的伪随机函数值Fα(0),Fα(1),…,Fα(n),从公共参数中读取6个二元组,然后分别计算
Figure GDA0002497260160000093
Figure GDA0002497260160000094
步骤2.3:从Zp群中选取t1,利用选取的元素t1生成h1,
Figure GDA0002497260160000095
从Zp群中选取t2,利用元素t2生成h2
Figure GDA0002497260160000096
步骤2.4:利用h1和h2构建预处理过程的计算密钥EKpp=((wi,bi,w′i,b′i)i∈[0,n],h1,h2)和第一验证密钥VKpp=(α,k,t1,t2,r);
步骤2.5:计算
Figure GDA0002497260160000101
生成多项式预处理过程中的求值密钥EKF,EKF=(C,{Ui}i∈[0,2n+1]\[n+1],γ);以元组形式将计算密钥EKpp和求值密钥EKF发送至云服务器。
步骤3:云服务器根据公共参数和计算密钥EKpp生成编码后的密钥
Figure GDA0002497260160000102
和证据
Figure GDA0002497260160000103
并将编码后的密钥
Figure GDA0002497260160000104
和第一证据
Figure GDA0002497260160000105
发送给客户端。
步骤4:客户端利用密钥
Figure GDA0002497260160000106
证据
Figure GDA0002497260160000107
和第一验证密钥VKPP进行验证,如果验证通过,则客户端将解码后多项式F的第二验证密钥SKF发送至云服务器;如果验证结果不通过,则输出⊥终止后续所有操作;
验证密钥恢复流程如图5所示,客户端采用parseModExpVk()算法解析用户的模幂运算第一验证密钥VKPP,获取t1,t2,r的值,解析接收到的模幂运算结果并计算
Figure GDA0002497260160000108
解析接收到的模幂运算结果并计算
Figure GDA0002497260160000109
如果left与right的值相同,则采用recovery()算法输出解码后的多项式的第二验证密钥SKF,并将第二验证密钥SKF发送至云服务器;如果left与right的值不相同,则输出⊥终止后续所有操作。其中,y1、y2分别是云服务器和客户端计算y得到的结果。
步骤5:当客户端将第二验证密钥SKF发送至云服务器的同时,将输入的多项式F的查询值x生成编码后的形式σx,然后将查询值x编码后的σx一同发送至云服务器。
步骤6:云服务器采用多项式求值算法,利用公共参数、查询值x编码后的σx和求值密钥EKF,生成多项式的求值计算结果y和第二证据πy并将计算结果y生成编码后的形式σy,然后将编码形式的σy和第二证据πy发送至客户端;
云环境下全代理的外包独项式验证方法的计算实现流程如图6所示;服务器调用方法new ServerSocket()创建套接字绑定端口号和网络IP地址并监听用户发送的计算请求信息;利用accept()方法与用户的客户端实体建立连接,并分析用户通过客户端发送的计算请求类别;若接收到模幂运算计算请求,则创建类ModExpDoCalc的对象并实例化;读取模幂运算的计算密钥和公共参数信息,声明并创建存储相应的对象实例PublicParamparams和ModExpEK EKpp;调用Compute()方法执行模幂运算,并利用方法genProof()生成对该结果的正确性进行证明的证据,将计算结果和证据封装在CalcResult类中返回给客户端;若接收到多项式求值计算请求,则创建类VCFEDoCompute的对象并实例化;执行parseEvaluateKey()方法,读取用户外包的多项式的求值密钥;根据用户通过客户端发送的求值密钥创建并实例化Polynomial类,用以存储用户外包的多项式信息;读取多项式的输入值x,利用多项式类中定义的EvalAt()方法执行多项式求值计算;调用genProof()方法生成对多项式求值计算结果的正确性进行证明的证据,然后将计算结果以及证据封装在类ResultAndProof中返回给用户。
具体步骤包括:
步骤6.1:云服务器根据查询值x执行n+1次指数运算并利用指数运算的结果构建向量X,X=(1,x,x2,...,xn);
步骤6.2:通过求值密钥EKF,读取多项式的系数向量C,利用向量X和向量C,获得多项式的求值计算结果
Figure GDA0002497260160000121
并将计算结果y进行编码生成σy
步骤6.3:从求值密钥EKF中读取参数信息{Ui}i∈[0,2n+1]\[n+1]和γ,利用多项式的系数计算生成
Figure GDA0002497260160000122
步骤6.4:利用Wi计算产生第二证据
Figure GDA0002497260160000123
步骤6.5:云服务器将编码形式的σy和第二证据πy以元组形式发送至客户端。
步骤7:客户端对于云服务器返回的编码形式的σy进行验证,如果验证通过,客户端输出多项式F的计算结果y;如果验证不通过,客户端输出⊥并拒绝多项式F的计算结果y;
计算结果验证流程如图7所示,具体包括:
X01:利用第一验证密钥VKPP计算生成
Figure GDA0002497260160000124
的结果,由于客户端本身拥有u和α的动态值,客户端可以通过执行等式
Figure GDA0002497260160000125
并且α和x的值固定,所以可以通过等比数列求和的方式计算获得
Figure GDA0002497260160000126
的值;
X02:利用双线性配对验证等式
Figure GDA0002497260160000131
是否成立,如果成立,则客户端输出多项式的求值计算结果y;如果不成立,则客户端输出⊥并拒绝多项式的求值计算结果y。其中,
Figure GDA0002497260160000132
步骤8:在多项式F的阶不变的情况下,当需要对多项式F的任意系数进行更新时,可以通过客户端执行系数更新算法进行多项式F系数的更新。
多项式系数更新流程如图8所示,系数更新算法具体包括:
Y01:客户端利用多项式的第二验证密钥SKF构建出伪随机函数Fα(i)并计算伪随机函数结果;
Y02:输入需要更新的原始系数c和需要更新后的新系数c′,
Y03:通过SK′F=SKF·Fα(i)c′-c计算出更新后的第二验证密钥SKF′,并且将新系数c′和更新后的第二验证密钥SKF′返回给云服务器。
需要理解的是,以上对本发明的具体实施例进行的描述只是为了说明本发明的技术路线和特点,其目的在于让本领域内的技术人员能够了解本发明的内容并据以实施,但本发明并不限于上述特定实施方式。凡是在本发明权利要求的范围内做出的各种变化或修饰,都应涵盖在本发明的保护范围内。

Claims (4)

1.一种云环境下全代理的外包多项式验证方法,其特征在于,包括:
步骤1:当用户通过客户端向云服务器和可信第三方发送多项式F的计算请求时,所述可信第三方通过执行初始化算法生成公共参数,并且同时将公共参数发送至所述客户端和所述云服务器;
步骤2:所述客户端利用所述公共参数执行密钥生成算法,生成计算密钥EKpp、第一验证密钥VKPP和求值密钥EKF,并将所述计算密钥EKpp和所述求值密钥EKF返回给所述云服务器;
步骤3:所述云服务器根据所述公共参数和所述计算密钥EKpp生成编码后的密钥
Figure FDA0002497260150000011
和第一证据
Figure FDA0002497260150000012
并将所述编码后的密钥
Figure FDA0002497260150000013
和第一证据
Figure FDA0002497260150000014
发送给所述客户端;
步骤4:所述客户端利用所述密钥
Figure FDA0002497260150000015
所述第一证据
Figure FDA0002497260150000016
和第一验证密钥VKPP进行验证,如果验证通过,则所述客户端将解码后所述多项式F的第二验证密钥SKF发送至所述云服务器;如果验证结果不通过,则输出⊥终止后续所有操作;
步骤5:当所述客户端将所述第二验证密钥SKF发送至所述云服务器的同时,将输入的所述多项式F的查询值x生成编码后的形式σx,然后将所述查询值x编码后的σx一同发送至所述云服务器;
步骤6:所述云服务器采用多项式求值算法,利用所述公共参数、所述查询值x编码后的σx和所述求值密钥EKF,生成所述多项式的求值计算结果y和第二证据πy并将所述计算结果y生成编码后的形式σy,然后将编码形式的σy和所述第二证据πy发送至所述客户端;
步骤7:所述客户端对于所述云服务器返回的所述编码形式的σy进行验证,如果验证通过,所述客户端输出所述多项式F的所述计算结果y;如果验证不通过,所述客户端输出⊥并拒绝所述多项式F的所述计算结果y;
步骤8:在所述多项式F的阶不变的情况下,当需要对所述多项式F的任意系数进行更新时,可以通过所述客户端执行系数更新算法进行多项式F系数的更新;
所述初始化算法具体包括:
S01:读取预先设置的安全参数,并生成大整数循环群(p,g,u,G1,G2,GT,e);其中,P,u是安全参数,g是群的生成元,G1、G2和GT是三个大整数循环群名称,e是代表群里面的双线配对;
S02:利用所述循环群构建双线性配对函数;
S03:从所述双线性配对函数中提取出G1群,并从所述G1群中随即选取元素ki,i∈[0,n],然后利用所述G1群的生成元g执行指数运算生长6个二元组;
S04:所述可信第三方将所述公共参数同时发送至所述客户端和所述云服务器;所述公共参数包括所述循环群、所述双线性配对函数、所述G1群、所述生成元g和所述6个二元组,即公共参数
Figure FDA0002497260150000021
所述密钥生成算法具体包括:
L01:确定所述多项式的最高次幂n和所有系数,并将所述系数设定为系数向量C=(c0,c1,...,cn);
L02:从预先设置的Zp群中随机选取元素k、α、t1、t2、r,利用k、α和所述公共参数,构造伪随机函数
Figure FDA0002497260150000022
以i作为所述伪随机函数的输入值,循环调用所述伪随机函数生成器计算生成对应的伪随机函数值Fα(0),Fα(1),…,Fα(n),从所述公共参数中读取所述6个二元组,然后分别计算
Figure FDA0002497260150000023
Figure FDA0002497260150000024
其中i∈[0,n];
L03:利用选取的所述元素t1生成h1,
Figure FDA0002497260150000031
利用所述元素t2生成h2
Figure FDA0002497260150000032
L04:利用所述h1和h2构建所述多项式模幂运算过程的计算密钥EKpp=((wi,bi,w′i,b′i)i∈[0,n],h1,h2)和第一验证密钥VKpp=(α,k,t1,t2,r);
L05:计算
Figure FDA0002497260150000033
生成所述多项式的求值密钥EKF,EKF=(C,{Ui}i∈[0,2n+1]\[n+1],γ);以元组形式将所述计算密钥EKpp和所述求值密钥EKF发送至所述云服务器,γ为随机生成的整数;
所述系数更新算法具体包括:
Y01:所述客户端利用所述多项式的所述第二验证密钥SKF构建出伪随机函数Fα(i)并计算所述伪随机函数结果;
Y02:输入需要更新的原始系数c和需要更新后的新系数c′,
Y03:通过SK′F=SKF·Fα(i)c′-c计算出更新后的第二验证密钥SKF',并且将所述新系数c′和所述更新后的第二验证密钥SKF'返回给所述云服务器。
2.根据权利要求1所述的验证方法,其特征在于,所述步骤4具体包括:
所述客户端利用所述密钥
Figure FDA0002497260150000034
所述第一证据
Figure FDA0002497260150000035
和第一验证密钥VKPP,采用parseModExpVk()算法解析所述用户的模幂运算,解析接收到的模幂运算结果并计算
Figure FDA0002497260150000041
解析接收到的模幂运算结果并计算
Figure FDA0002497260150000042
如果所述left与所述right的值相同,则采用recovery()算法输出解码后的所述多项式的第二验证密钥SKF,并将所述第二验证密钥SKF发送至所述云服务器;如果所述left与所述right的值不相同,则输出⊥终止后续所有操作;
其中,y1、y2分别是云服务器和客户端计算y得到的结果,且
Figure FDA0002497260150000043
其中X=(1,x,x2,...,xn),X为云服务器根据查询值x执行n+1次指数运算并利用所述指数运算的结果构成的向量;parseModExpVk()算法是一个解析模幂运算计算结果的算法;recovery()算法是一个输出解码算法。
3.根据权利要求2所述的验证方法,其特征在于,所述步骤6具体包括:
N01:所述云服务器根据所述查询值x执行n+1次指数运算并利用所述指数运算的结果构建向量X,X=(1,x,x2,...,xn);
N02:通过所述求值密钥EKF,读取所述多项式的系数向量C,利用所述向量X和所述向量C,获得所述多项式的求值计算结果
Figure FDA0002497260150000044
并将所述计算结果y进行编码生成σy
N03:从所述求值密钥EKF中读取参数信息{Ui}i∈[0,2n+1]\[n+1]和γ,利用所述多项式的系数计算生成
Figure FDA0002497260150000051
其中,j∈[0,n];
Figure FDA0002497260150000052
其中,向量X为云服务器根据查询值x执行n+1次指数运算并利用指数运算的结果构建的向量,且X=(1,x,x2,...,xn);
N04:利用所述Wi计算产生所述第二证据
Figure FDA0002497260150000053
Figure FDA0002497260150000054
N05:所述云服务器将所述编码形式的σy和所述第二证据πy以元组形式发送至所述客户端。
4.根据权利要求3所述的验证方法,其特征在于,所述步骤7具体包括:
X01:利用所述第一验证密钥VKPP计算生成
Figure FDA0002497260150000055
的结果,由于所述客户端本身拥有u和α的动态值,所述客户端可以通过执行等式
Figure FDA0002497260150000056
通过等比数列求和的方式计算获得
Figure FDA0002497260150000057
的值,其中i∈[0,n];
X02:利用所述X01的计算结果验证等式
Figure FDA0002497260150000058
是否成立,如果成立,则所述客户端输出所述多项式的求值计算结果y;如果不成立,则所述客户端输出⊥并拒绝所述多项式的求值计算结果y;其中,e()为双线性配对的表现形式,且
Figure FDA0002497260150000061
CN201810151825.1A 2018-02-14 2018-02-14 一种云环境下全代理的外包多项式验证方法 Active CN108365959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810151825.1A CN108365959B (zh) 2018-02-14 2018-02-14 一种云环境下全代理的外包多项式验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810151825.1A CN108365959B (zh) 2018-02-14 2018-02-14 一种云环境下全代理的外包多项式验证方法

Publications (2)

Publication Number Publication Date
CN108365959A CN108365959A (zh) 2018-08-03
CN108365959B true CN108365959B (zh) 2020-09-15

Family

ID=63002226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810151825.1A Active CN108365959B (zh) 2018-02-14 2018-02-14 一种云环境下全代理的外包多项式验证方法

Country Status (1)

Country Link
CN (1) CN108365959B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468284A (zh) * 2020-11-26 2021-03-09 东北大学 基于she安全外包的方法
CN114826778B (zh) * 2022-06-21 2022-09-27 杭州安恒信息技术股份有限公司 一种鉴权方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104901942A (zh) * 2015-03-10 2015-09-09 重庆邮电大学 一种基于属性加密的分布式访问控制方法
CN106209368A (zh) * 2016-06-29 2016-12-07 邓月霞 一种基于标识密码系统的即时通信系统部署方法
CN107113168A (zh) * 2015-01-16 2017-08-29 日本电信电话株式会社 密钥交换方法、密钥交换系统、密钥装置、终端装置和程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812141B (zh) * 2016-03-07 2018-11-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN105978696B (zh) * 2016-05-09 2019-10-11 北京航空航天大学 可撤销快速数据外包封装方法及装置
US9698986B1 (en) * 2016-09-23 2017-07-04 ISARA Corporation Generating shared secrets for lattice-based cryptographic protocols
CN107086911B (zh) * 2017-03-31 2020-04-07 西安电子科技大学 一种cca安全的可委托验证的代理重加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107113168A (zh) * 2015-01-16 2017-08-29 日本电信电话株式会社 密钥交换方法、密钥交换系统、密钥装置、终端装置和程序
CN104901942A (zh) * 2015-03-10 2015-09-09 重庆邮电大学 一种基于属性加密的分布式访问控制方法
CN106209368A (zh) * 2016-06-29 2016-12-07 邓月霞 一种基于标识密码系统的即时通信系统部署方法

Also Published As

Publication number Publication date
CN108365959A (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
Zhao et al. Veriml: Enabling integrity assurances and fair payments for machine learning as a service
CN110351096B (zh) 多重签名方法、签名中心、程序介质及电子设备
CN107612697B (zh) 数字证书申请方法和装置
CN108269062B (zh) 基于h5的电子合同制作方法、装置、设备及介质
CN116561789B (zh) 隐私数据的处理方法、装置、电子设备及可读存储介质
CN109889497A (zh) 一种去信任的数据完整性验证方法
US9948462B2 (en) Hypersphere-based multivariable public key signature/verification system and method
CN111064583B (zh) 一种门限sm2数字签名方法、装置、电子设备及存储介质
CN111597590B (zh) 一种基于区块链的数据完整性快速检验方法
CN108833117B (zh) 一种私钥存储和读取方法、装置及硬件设备
CN111541666B (zh) 基于无证书且含隐私保护功能的云端数据完整性审计方法
CN105515778B (zh) 云存储数据完整性服务签名方法
CN112347500A (zh) 分布式系统的机器学习方法、装置、系统、设备及存储介质
US20220131707A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
CN108365959B (zh) 一种云环境下全代理的外包多项式验证方法
Qi et al. Scalable decentralized privacy-preserving usage-based insurance for vehicles
CN109413099B (zh) 基于证书的混合云加密通信方法、装置以及电子设备
CN114785524A (zh) 电子印章生成方法、装置、设备和介质
CN113722767A (zh) 一种数据完整性验证方法、系统、存储介质及计算设备
CN109618348A (zh) 一种单向代理重签名的实现方法及装置
CN113627911A (zh) 一种基于区块链匿名收发红包的方法、设备及储存介质
CN114640464A (zh) 基于区块链的订阅数据传输方法、装置、设备及存储介质
CN111539031A (zh) 一种云存储标签隐私保护的数据完整性检测方法及系统
Lai Succinct arguments: constructions and applications
CN112784314B (zh) 一种数据完整性检测方法、装置、电子设备及存储介质

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