CN117240438A - 基于零知识证明的神经网络输出结果产权证明方法及装置 - Google Patents

基于零知识证明的神经网络输出结果产权证明方法及装置 Download PDF

Info

Publication number
CN117240438A
CN117240438A CN202311492107.8A CN202311492107A CN117240438A CN 117240438 A CN117240438 A CN 117240438A CN 202311492107 A CN202311492107 A CN 202311492107A CN 117240438 A CN117240438 A CN 117240438A
Authority
CN
China
Prior art keywords
vector
layer
random number
neural network
protocol
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.)
Granted
Application number
CN202311492107.8A
Other languages
English (en)
Other versions
CN117240438B (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.)
Jinan University
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Jinan University
Shenzhen Graduate School Harbin Institute of 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 Jinan University, Shenzhen Graduate School Harbin Institute of Technology filed Critical Jinan University
Priority to CN202311492107.8A priority Critical patent/CN117240438B/zh
Publication of CN117240438A publication Critical patent/CN117240438A/zh
Application granted granted Critical
Publication of CN117240438B publication Critical patent/CN117240438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于零知识证明的神经网络输出结果产权证明方法及装置,方法包括:零知识证明与签名生成步骤、零知识证明与签名验证步骤。其中,生成步骤由证明者独立完成,验证步骤则由验证者单独完成。在零知识证明与签名生成步骤中,证明者结合zkCNN协议和Schnorr协议同时生成零知识证明和签名。在验证步骤中,验证者通过第一验证等式验证整体证明的有效性,通过第二验证等式验证签名的有效性。本发明一方面将zkCNN协议改造为非交互式协议,从而使证明者能够预先独立完成证明;另一方面将zkCNN协议改造为能够用于针对向量进行证明,同时以嵌入签名的方式修改zkCNN协议,增强产权证明的效费比及安全性。

Description

基于零知识证明的神经网络输出结果产权证明方法及装置
技术领域
本发明属于密码学、神经网络的技术领域,具体涉及一种基于零知识证明的神经网络输出结果产权证明方法及装置。
背景技术
零知识证明是运行在证明者和验证者之间的一种两方密码协议,它可以使证明者(Prover,缩写为P)说服验证者(Verifier,缩写为V)相信某一命题的正确性而不泄露除正确性之外的任何信息。
零知识证明首先是交互式证明,即证明者与验证者双方需要同时在线、共同协作完成协议的交互过程,然后验证者才能决定是否信任证明者所陈述的命题。零知识证明协议的主要性能指标有三项:证明复杂度、验证复杂度、证明大小。其中,与业务的时间限制相关的是证明复杂度和验证复杂度,与业务的通信量限制相关的是证明大小。目前,这三项指标之间的关系有点像一个不可能三角——基于不同技术路线实现的零知识证明协议,只能在其中的一个或两个方面优于其他对比方案。
在交互式证明的基础上,零知识证明可以通过Fiat-Shamir变换修改为非交互式证明。转变成非交互式协议之后,证明者可以独立完成全部证明过程,然后将生成的证明发送给验证者,而验证者可以在任意时刻独立检查证明的有效性,从而决定信任与否。
另外,数字签名(又称公钥数字签名)是一种用于验证和保证电子文档或数据的真实性、完整性和不可抵赖性的技术手段。它使用了非对称加密算法,结合了公钥密钥对和哈希算法。它是一种类似物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
对于利用生成式神经网络进行AI创作,在当前的如此高速发展的社会中已形成一种趋势。虽然在结合零知识证明和数字签名的加密方式该应用领域中发挥着不小的作用,在一定的限度内能够提供比较好的保密效果,但是原本用于神经网络可验证计算场景的zkCNN协议应用到神经网络输出结果的产权证明场景当中,并且要解决如下两个问题:第一,在产权证明场景中会出现的“证明盗用”问题;第二,zkCNN协议目前支持的神经网络类型有限,仅支持输出结果为单个数值的神经网络模型,例如各种分类模型,而无法支持输出结果为向量的神经网络模型,例如各种生成式网络。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于零知识证明的神经网络输出结果产权证明方法及装置,提出一种基于零知识证明的神经网络输出结果产权证明方案,能够在保证不泄露神经网络输入数值和神经网络权重参数的同时,生成一份安全可靠且持久有效的证明π,以证明某个数值或向量确实是由该神经网络计算出来的,从而为神经网络输出结果的产权证明提供一种新的思路、为版权保护场景提供一种新的工具。
为了达到上述目的,本发明采用以下技术方案:
第一方面,本发明提供了一种基于零知识证明的神经网络输出结果产权证明方法,包括下述步骤:
包括验证零知识证明π步骤和验证签名步骤:
所述验证零知识证明π步骤,具体为:
S11、基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
S12、证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
S13、对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
S14、生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述步骤S11-S14均在zkCNN协议下进行;
所述验证签名步骤:具体为:
S21、在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
作为优选的技术方案,所述基于深度神经网络构建算术电路,具体为:
所述基于深度神经网络构建算术电路,具体为:
设定算术电路共有d层;设置运算门,包括加法门和乘法门,加法门设置输出导线z和输入导线x,乘法门设置输出导线z和输入导线xy;所述运算门的任意一条输入导线的来源均分为两种情况:第一是相邻层的某条导线的值,第二是来自输入层的输入向量里的某个值;
运算门的运算等式如下:
其中,Xadd表示加法门,Xmult表示乘法门,V i (z)表示第i层电路的第z条导线,s in 表示输入层的电路门总数,s i 表示第i层的电路门总数,表示某函数的多变量线性拓展。
作为优选的技术方案,所述拼接输入参数形成向量T,具体为:
将输入层的全体参数通过量化等式或定点表示法转化为整数;
统计输入样本X、权重参数W、辅助参数aur、密钥字段sk四个字段各自的长度,得到其中最长的字段的长度为N;用0将四个字段的长度均补足为N,然后将四个字段拼接在一起,形成一个长度为4N的向量
作为优选的技术方案,步骤S13,还包括以下步骤:
设电路输出层的输出向量为,则根据电路函数的定义等式,分别为其各个分量定义函数/>,其中/>且/>;然后对此n个函数分别利用第一求和等式执行zk-sumcheck协议,并且要求这n组zk-sumcheck协议并行执行;
第一次执行完毕后,输出层输出n个函数值,并且该n个函数值的正确性被归约至相邻层的同一组点的正确性,即四个值:、/>、/>和/>,然后,生成随机数αβ,计算组点/>
根据深度学习网络的层数i,循环执行以下步骤:首先对组点Q值基于第一求和等式zk-sumcheck协议,从而将其正确性归约到以下四个值的正确性上、/>、/>和/>,然后,生成随机数αβ,得到新的组点Q值;当输出层执行完毕后终止;
继续调用zk-sumcheck协议,将来自各层的正确性参数和/>的正确性归约到输入层,如下式:
其中,z i 表示运算门的输出导线是第i层的第z条导线,C i 表示一种输出0或1的匹配函数。
作为优选的技术方案,步骤S14中所述生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量,具体为:
生成随机数向量r a=( r 1, r 2,…, r logN, r 1+logN, r 2+logN),该向量的长度为2+logN,然后,裁剪掉向量r a 的最后2个分量,从而获得一个较短的随机数向量r b=( r 1, r 2,…, r logN),该向量的长度为logN。
作为优选的技术方案,步骤S14还包括以下步骤:
证明者与验证者合作,利用随机数向量r b 和随机数r打开承诺多项式com,即zkPC.open(com,r,r b )从而使验证者获得随机点r b 的多变量线性值、/>、/>
验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式,如下式:
其中表示由神经网络的输入样本X转化形成的秘密参数,/>表示由神经网络的内部权重参数转化秘密参数,/>表示神经网络的池化运算形成的秘密参数,/>表示证明者的私钥;
如果第一验证等式成立,则零知识证明π有效,输出
作为优选的技术方案,步骤S21还包括以下步骤:
令电路输入层的输入向量T=(X, W, aux, sk),经过算术电路运算后得到输出向量(Y,Z),且Z=(a, e,z),其中,Y是一个长度为n的输出向量,表示输入样本X经过神经网络W所得到的输出产物,也是需要进行产权证明的核心对象;Z表示签名向量,字段,/>表示拼接,w表示秘密群元素,/>表示生成元,m表示被签名的消息,a表示证明者计算出的随机数,e表示验证者选取的随机数,z表示隐蔽携带着秘密信息的一个值;
证明者代替验证者计算随机数e计算,如下式:
验证者分两步验证签名Z的有效性,具体为:
S211、检验随机数的有效性,即是否成立;
S212、用证明者的公钥h和输出向量中的签名向量Z=(a, e,z)去验证是否成立;
如果S211至S212均成立,则签名有效,输出
第二方面,本发明还提供了一种基于零知识证明的神经网络输出结果产权证明系统,应用于所述的基于零知识证明的神经网络输出结果产权证明方法,包括验证零知识模块和验证签名模块;所述验证零知识模块包括电路准备模块、承诺输入模块、逐层证明模块和最终验证模块;
所述验证零知识模块在zkCNN协议下进行;
所述电路准备模块用于基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
所述承诺输入模块用于证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
所述逐层证明模块用于对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
所述最终验证模块生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述验证签名模块用于在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
第三方面,本发明提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的基于零知识证明的神经网络输出结果产权证明方法。
第四方面,本发明提供了一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现所述的基于零知识证明的神经网络输出结果产权证明方法。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明以并行执行n组zk-sumcheck协议的方式,将zkCNN协议改造为能够用于针对向量进行证明,使得整体证明协议的执行次数与向量长度无关,仅仅是部分子协议的执行次数与向量长度成正比,从而有效控制了整体证明开销。
(2)本发明将神经网络可验证计算方案嵌入数字签名,修改后的协议则可以让原本公开的要求神经网络的输入X具备保密性,保证证明的不可盗用性,从而使其能在实际场景当中支持非交互式证明,这样不但降低了成本,而且不需要引入可信第三方或者区块链。
(3)本发明通过使用Fiat-Shamir转换,将交互式证明协议转变为非交互式证明协议,使得任何需要由验证者选取的随机数可以由证明者利用哈希函数进行代替计算,从而让证明者可以在没有第二方参与的情况下独立完成证明,并且依此法生成的证明对后来的任意一方验证者均保持有效性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于零知识证明的神经网络输出结果产权证明方法的流程图;
图2为本发明实施例sumcheck协议流程示意图;
图3为本发明实施例证明盗用问题示意图;
图4为本发明实施例Schnorr协议示意图;
图5为本发明实施例零知识的交互式证明示意图
图6为本发明实施例基于零知识证明的神经网络输出结果产权证明系统的结构示意图;
图7为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其他实施例相结合。
(1)零知识证明(ZK-DEIP):零知识证明是运行在证明者(Prover,缩写为P)和验证者(Verifier,缩写为V)之间的一种两方密码协议,它可以使证明者说服验证者相信某一命题的正确性,而不泄露除命题本身以及命题正确性之外的任何信息。
(2)非交互式零知识证明(ZK-SNARK):零知识证明首先是交互式证明,即证明者与验证者双方需要同时在线、共同协作完成协议的交互过程,然后验证者才能决定是否信任证明者所陈述的命题。在交互式证明的基础上,零知识证明可以被修改为非交互式证明,从而允许证明者可以独立完成全部证明过程,然后将生成的证明发送给验证者,而验证者可以在任意时刻独立检查证明的有效性,从而决定信任与否。
(3)神经网络可验证计算:神经网络可验证计算是一类用于外包计算场景的密码学方案的统称,在该场景中有证明者和验证者两个参与方,其中证明者使用其私有的神经网络模型对验证者提供的某个输入样本进行计算,同时为计算结果的正确性给出证明。
(4)数字水印:数字水印技术是用于将一些标识信息(即数字水印)以令人难以察觉的形式嵌入数字载体(如图片、音频、视频、文本)当中的技术。通过这些隐藏在载体中的信息,可以在不影响原载体的使用价值的前提下,达到确认内容创建者、传送隐秘信息或者判断载体是否被篡改等目的。
请参阅图1,本实施例提出的一种基于零知识证明的神经网络输出结果产权证明方法,从整体流程上论述,首先,证明者关于命题C(X, W , aux, m, sk) = (Y,Z)生成证明π,其中Y是神经网络的输出结果(也是版权保护的目标),而Z是关于m的签名,X是神经网络的输入,W是神经网络的权重参数,aux是神经网络中与池化层相关的参数,m是被签名的消息,该消息可以是一段用于注明版权拥有者相关信息的文本的UTF-8编码串,sk是由签名所需的私钥,C是由神经网络预测过程和签名过程构建的算术电路,满足,且分别有/>,/>。之后,验证者分别针对零知识证明π和签名Z执行验证算法,流程如图3所示。如果/>且/>则验证者可以信任证明者的陈述,即“Y确实是由证明者私有的神经网络(权重参数为W,架构为C 1)生成的”。在以上参数中,公开的参数为C、m、Y、Z、π,秘密参数为X、W、aux、sk
具体而言,本实施例两个步骤,包括验证零知识证明π和验证签名:
所述验证零知识证明π步骤,具体为:
S11、基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
优选的,步骤S11中所述基于深度神经网络构建算术电路,具体为:
设定算术电路共有d层;设置运算门,包括加法门和乘法门,加法门设置输出导线z和输入导线x,乘法门设置输出导线z和输入导线xy;所述运算门的任意一条输入导线的来源均分为两种情况:第一是相邻层的某条导线的值,第二是来自输入层的输入向量里的某个值;
运算门的运算等式如下:
其中,Xadd表示加法门,Xmult表示乘法门,V i (z)表示第i层电路的第z条导线,s in 表示输入层的电路门总数,s i 表示第i层的电路门总数,表示某函数的多变量线性拓展。
优选的,步骤S11中所述拼接输入参数形成向量T,具体为:
将输入层的全体参数通过量化等式或定点表示法转化为整数;
统计输入样本X、权重参数W、辅助参数aur、密钥字段sk四个字段各自的长度,得到其中最长的字段的长度为N;用0将四个字段的长度均补足为N,然后将四个字段拼接在一起,形成一个长度为4N的向量
S12、证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
其中零知识承诺协议(zkPC)是一种密码学原语,它的基本作用有三点:第一,让证明者为自己在某个协议中将要使用的多项式预先设下承诺,以消除后续偷换多项式的可能;第二,让验证者能够随机地指定一点,在需要时得到多项式在该点处的值,并且确信这个值是正确的;第三,除了证明者主动揭示的值以外,验证者始终无法获得关于多项式的任何信息。
零知识承诺协议zkPC由四部分算法组成:参数生成算法KeyGen()、承诺算法Commit()、打开算法Open()、验证算法Verify()。其使用流程是:让证明者通过对某个多项式f调用承诺算法Commit()来生成承诺交给验证者,然后在需要的时候对承诺调用打开算法来计算出多项式f在由验证者指定的点t上的值f(t)、以及用于证明该计算结果正确性的一份证明π,验证者对证明π调用验证算法Verify()来检查计算结果的正确性。2018年S&P会议的一篇论文中提出了一种符合该定义的zkPC方案,其方案基于离散对数困难问题构建,证明复杂度为O(n),验证复杂度和通信复杂度均为/>,本实施例中提到的zkPC均指代该论文中的方案。
S13、对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数。
优选的,步骤S13,如图2所示,还包括以下步骤:
设电路输出层的输出向量为,则根据电路函数的定义等式,分别为其各个分量定义函数/>,其中/>且/>;然后对此n个函数分别利用第一求和等式执行zk-sumcheck协议,并且要求这n组zk-sumcheck协议并行执行;
第一次执行完毕后,输出层输出n个函数值,并且该n个函数值的正确性被归约至相邻层的同一组点的正确性,即四个值:、/>、/>和/>,然后,生成随机数αβ,计算组点/>
根据深度学习网络的层数i,循环执行以下步骤:首先对组点Q值基于第一求和等式zk-sumcheck协议,从而将其正确性归约到以下四个值的正确性上、/>、/>和/>,然后,生成随机数αβ,得到新的组点Q值;当输出层执行完毕后终止;
继续调用zk-sumcheck协议,将来自各层的正确性参数和/>的正确性归约到输入层,如下式:
其中,z i 表示运算门的输出导线是第i层的第z条导线,C i 表示一种输出0或1的匹配函数。
要注意的是,在这里并非表示电路,而是表示一种输出0或1的匹配函数。它查找第i层电路的第a条导线,然后与输入层的第b条导线进行对比,如果是同一条,就输出1,否则输出0。在这个电路中,每个电路门的输入导线可能来自两种不同出处:要么是来自相邻层,要么是从输入层直接连过来的。因此分为以下两种记号:/>表示这条导线是从输入层的某条导线直接连到第i层电路的某个电路门上的,/>则表示这条导线是从相邻层的某条导线连接过来的。
接着,关于向量证明的想法:计算是正向的,从电路的输入层开始,逐层计算,直到输出层得到(Y,Z)结束;而证明则是逆向的,从输出层的(Y,Z)开始,逐层证明,直到输入层结束。在逆向证明的过程中,会对每一层执行一次zk-sumcheck协议,从而将该层的正确性归约到靠近输入层方向的相邻一层。zkCNN协议只考虑了Y是单个数值的情况,对Y是向量时的情况则没有给出支持。本实施例则给出如下设计:如果Y是长度为n的向量,而不是单个数值,那就在第一轮证明中并行地执行n组zk-sumcheck协议,以便利用协议特性将输出层的正确性归约到相邻层的同一组数值的正确性上。
另外,对于求和检查协议(sumcheck)和零知识的求和检查协议(zk-sumcheck)需要补充。求和检查协议(sumcheck)的基本功能如下:证明者对一个函数在所有二进制输入空间/>里的函数值f(x)进行求和并得到了求和结果H,即/>,然后证明者通过sumcheck协议来让验证者确认计算过程的正确性。
为了便于介绍具体的算法流程,这里以更加详细的格式再次介绍目标命题。
其中函数fl个输入变量,对于每个变量来说,定义域均为整个域,但在求和时只考虑两个取值,即0与1。
sumcheck协议整体需要l轮交互,在每轮交互中双方围绕函数f的其中一个变量展开验证。在协议的第一轮,证明者发送关于第一个变量的函数:
V在收到函数之后检验以下等式是否成立:。如果成立,则V随机选取一个数值/>,然后把r 1发送给P。
开始循环交互:在第i轮(2il-1)交互中,P将会首先将上一轮收到的随机数代入到函数的对应变量中,然后发送关于第i个变量的函数:
V在收到函数之后检验以下等式是否成立:。如果成立,则V随机选取一个数值/>,然后把r 1发送给P。在第l轮交互中,P发送函数。V在收到函数后检验以下等式是否成立:/>。然后V选取随机数/>,并且计算/>。之后V借助预言机获取数值/>,并且检验如下等式是否成立:/>。如果成立,则接受P所陈述的命题。
而零知识的求和检查协议(zk-sumcheck),是在sumcheck协议的基础上,后续又构造了零知识化的版本,即zk-sumcheck协议,在完成原有证明目标的同时,不泄露计算过程中的函数数值信息。zk-sumcheck协议的具体过程如下。
P随机选择一个多项式,其中并且所有系数a i,j 都是均匀随机选取的。P计算出多项式f的求和结果为H,计算出多项式的求和结果G,然后对多项式做承诺得到,然后将HG和/>发送给V。V随机选取一个系数/>,计算出数值/>,然后将ρ发送给P,而P和V对以下等式调用sumcheck协议:/>
在sumcheck协议的最后一轮中,P向V发送了一个待验证等式。P通过承诺协议的打开算法公布多项式g在随机点/>处的值/>,然后V通过承诺协议的验证算法来确认这个值的正确性。如果未通过验证,则V拒绝接受命题,并且终止协议。
V计算,然后将其与从预言机中获取的值/>进行对比:如果相等,则接受命题;否则拒绝接受命题。
还需要说明的是,上述的组点,Q是/>和/>随机线性组合,它的作用如下:
作用一:通过秘密的随机数αβ,保证了验证者无法通过Q的值去破解出,从而保证导线值的机密性,即保证了证明者所私有的神经网络内部参数的机密性。
作用二:既然Q的值是该层的两条导线的值和/>的线性组合,那么Q也必然是上一层导线的线性组合,从而可以用zk-sumcheck协议将这一层的计算正确性归约到上一层的计算正确性。
S14、生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效。
优选的,步骤S14中所述生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量,具体为:
生成随机数向量r a=( r 1, r 2,…, r logN, r 1+logN, r 2+logN),该向量的长度为2+logN,然后,裁剪掉向量r a 的最后2个分量,从而获得一个较短的随机数向量r b=( r 1, r 2,…, r logN),该向量的长度为logN。
步骤S14还包括以下步骤:
证明者与验证者合作,利用随机数向量r b 和随机数r打开承诺多项式com,即zkPC.open(com,r,r b )从而使验证者获得随机点r b 的多变量线性值、/>、/>
验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式,如下式:
其中表示由神经网络的输入样本X转化形成的秘密参数,/>表示由神经网络的内部权重参数转化秘密参数,/>表示神经网络的池化运算形成的秘密参数,/>表示证明者的私钥;
如果第一验证等式成立,则零知识证明π有效,输出。/>
实际上,上述第一验证等式应用到了多变量线性拓展(Multilinear-Extension,MLE)。多变量线性拓展是一种多项式定义方法,它的输入一个具有l个变量的多变量函数/>,而输出是另一个多变量函数/>。“拓展”一词表明函数g的每个输入变量的定义域均由{0,1}拓展到域/>,从而保证对函数G使用求和检查协议时能够满足协议的可靠性。该方法在拓展函数定义域的同时,要求函数G在原本函数g的定义域上的任意一点的输出值保持不变,即:/>。函数g的多变量线性拓展G如下:
其中b i 指函数的输入二进制串b的第i位,即/>。该定义方式可以按如下方式理解:函数G由/>项求和而成,其中每一项均是A∙B形式,A就是求积符号所代表的项,B则是g(b)。指定G的输入串/>,如果/>,则G的/>项当中仅有当b=x的那1项满足A=1且/>,在另外的/>项当中则因为b≠x而有A=0,因此最终满足/>
还有需要说明的有,验证者最终所获取的仅仅是各函数在单个随机点r b 上的函数值,因此这些值仅仅只能用于彼此之间的等式验证,而无法从中破解出原输入向量当中的秘密向量X、W、aux、sk。这些多变量线性组合都是由证明者所定义且私有的,因此验证者无法通过随机点上的函数值还原出原来的秘密值。例如,证明者根据秘密w定义了一个不公开的函数,定义等式叫“多变量线性拓展”,并且最终让验证者只得到该函数在某一点的值。验证者只能用/>这个值去做等式验证,但无法从/>反推出证明者所拥有的秘密w。
所述步骤S11-S14均在zkCNN协议下进行;
基于零知识证明的神经网络可验证计算方案:例如zkCNN协议与vCNN协议。这类方案可以用于证明某个计算结果确实是由某个秘密的神经网络模型计算出来的,同时保证该神经网络模型的权重参数不会因证明而泄露;又由于此类方案被证明满足可靠性,因此任何恶意证明者都无法针对其私有模型不曾计算出的产物生成一份合格的证明。
其中,zkCNN协议与vCNN协议的主要区别在于实现零知识证明的技术路线不同:zkCNN是基于双向高效的零知识证明(ZK-DEIP),其核心是上文中提到的零知识的求和检查协议(zk-sumcheck);而vCNN则是基于简明非交互式零知识论证(ZK-SNARK),其核心是将待证命题转化为一系列高度压缩的方程组,最终将证明规模压缩到三个域元素。
可是,单纯地采用zkCNN协议是存在局限性的,第一个缺点是适用对象有局限,目前只支持输出结果为数值的神经网络,不支持输出结果为向量的神经网络,这是因为该协议的算法设计决定了证明的起点只能是单个数值,而向量无法作为证明的起点;第二个缺点是,zkCNN协议在实际应用中不支持非交互式证明,否则生成的证明将可以被任何人盗取并用于欺骗他人,这是因为以非交互方式生成的证明在生成之后始终有效,可是zkCNN协议的证明命题当中实际上并不含有证明者的身份信息,因此验证者只能确认一份证明的合格与否,而无法确认证明的提供者是否是证明的生成者。例如,证明盗用问题参见图3,zkCNN协议在实际应用中只能支持交互式证明,这导致证明者必须为每个不同的验证者临时计算新的证明,这既浪费计算资源,又降低服务的响应速度和并发能力。
因此,本实施例将神经网络可验证计算方案嵌入数字签名,修改后的协议则可以让原本公开的要求神经网络的输入X具备保密性,保证证明的不可盗用性,从而使其能在实际场景当中支持非交互式证明。为了实现对数字签名的嵌入,本实施例利用Schnorr协议来实现签名与验证。如图4所示的签名步骤:对于一个生成元是q阶群G,证明者与验证者拥有公共参数hG,证明者要证明其拥有一个私密群元素w且满足/>。Schnorr协议规定的证明方法如下:证明者选取随机数r,然后计算/>并将a发送给验证者。验证者选取随机数/>并将其发送给证明者,其中λ是安全参数。证明者随后计算/>并将z发送给验证者。验证者检查以下关系是否成立:/>,如果成立则相信证明者。简言之,由于计算z需要用到验证者提供的随机数e,因此证明者无法在不拥有w的前提下伪造出一个能通过最终验证的z;由于计算z时使用了只有证明者自己知道的随机数r,因此验证者在收到z值之后无法破解出秘密值w,从而保证了“零知识”证明,也就是证明者没有因为这段证明过程而泄露自身的秘密值w。这是一个交互式的零知识证明协议,可以基于此转变成签名方案。
所述验证签名步骤:如图5所示,具体为:
S21、在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
优选的,步骤S21还包括以下步骤:
令电路输入层的输入向量T=(X, W, aux, sk),经过算术电路运算后得到输出向量(Y,Z),且Z=(a, e,z),其中,Y是一个长度为n的输出向量,表示输入样本X经过神经网络W所得到的输出产物,也是需要进行产权证明的核心对象;Z表示签名向量,字段,/>表示拼接,w表示秘密群元素,/>表示生成元,m表示被签名的消息,a表示证明者计算出的随机数,e表示验证者选取的随机数,z表示隐蔽携带着秘密信息的一个值。
需要说明的有,被签名的消息m实际上是神经网络所有者用于证明自身身份或机构信息的一段文字。
由于使用Fiat-Shamir变换将协议转变为非交互式证明,因此本应由验证者选取的随机数e将由证明者代替计算,如下式:
验证者分两步验证签名Z的有效性,具体为:
S211、检验随机数的有效性,即是否成立;
S212、用证明者的公钥h和输出向量中的签名向量Z=(a, e,z)去验证是否成立;/>
如果S211至S212均成立,则签名有效,输出
值得注意的是,被签名的消息m可以是一段用于注明版权拥有者相关信息的文本的UTF-8编码串;w代表Schnorr协议当中的秘密群元素,而不是神经网络的秘密权重参数W;对应的电路输出(Y,Z)中的Z就是签名部分,且Z=(a,e,z),其中本应由验证者提供的随机数e将改为由证明者自行计算,计算方式为
在这个方案中,证明者的实际私钥是w,与之配对的公钥是(g,h)。只要这一组非对称密钥是被公共认证过的,即可使依此法生成的任何一份零知识证明π和签名Z与其证明者的身份绑定。整体的交互流程如图5所示。如果零知识证明π没有通过验证,则验证者可以直接拒绝信任证明者;只有当零知识证明π和签名Z均通过验证时,验证者可以且必然可以相信证明者对Y所主张的产权。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
基于与上述实施例中的基于零知识证明的神经网络输出结果产权证明方法相同的思想,本发明还提供了基于零知识证明的神经网络输出结果产权证明系统,该系统可用于执行上述基于零知识证明的神经网络输出结果产权证明方法。为了便于说明,基于零知识证明的神经网络输出结果产权证明系统实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
请参阅图6,在本申请的另一个实施例中,提供了一种基于零知识证明的神经网络输出结果产权证明系统00,该系统包括验证零知识模块10和验证签名模块20;所述验证零知识模块10包括电路准备模块11、承诺输入模块12、逐层证明模块13和最终验证模块14;
所述验证零知识模块10在zkCNN协议下进行;
所述电路准备模块11用于基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
所述承诺输入模块12用于证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
所述逐层证明模块13用于对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
所述最终验证模块14用于生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述验证签名模块20用于在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
需要说明的是,本发明的基于零知识证明的神经网络输出结果产权证明系统与本发明的基于零知识证明的神经网络输出结果产权证明方法一一对应,在上述基于零知识证明的神经网络输出结果产权证明方法的实施例阐述的技术特征及其有益效果均适用于基于零知识证明的神经网络输出结果产权证明方法的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述实施例的基于零知识证明的神经网络输出结果产权证明系统的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述基于零知识证明的神经网络输出结果产权证明系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
请参阅图7,在一个实施例中,提供了一种实现基于零知识证明的神经网络输出结果产权证明方法的电子设备,所述电子设备30可以包括第一处理器31、第一存储器32和总线,还可以包括存储在所述第一存储器32中并可在所述第一处理器31上运行的计算机程序,如基于零知识证明的神经网络输出结果产权证明程序33。
其中,所述第一存储器32至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述第一存储器32在一些实施例中可以是电子设备30的内部存储单元,例如该电子设备30的移动硬盘。所述第一存储器32在另一些实施例中也可以是电子设备30的外部存储设备,例如电子设备30上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述第一存储器32还可以既包括电子设备30的内部存储单元也包括外部存储设备。所述第一存储器32不仅可以用于存储安装于电子设备30的应用软件及各类数据,例如基于零知识证明的神经网络输出结果产权证明程序33的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述第一处理器31在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述第一处理器31是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述第一存储器32内的程序或者模块,以及调用存储在所述第一存储器32内的数据,以执行电子设备30的各种功能和处理数据。
图7仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对所述电子设备30的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
所述电子设备30中的所述第一存储器32存储的基于零知识证明的神经网络输出结果产权证明程序33是多个指令的组合,在所述第一处理器31中运行时,可以实现:
所述验证零知识证明π步骤,具体为:
S11、基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
S12、证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
S13、对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
S14、生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述步骤S11-S14均在zkCNN协议下进行;
所述验证签名步骤:具体为:
S21、在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
进一步地,所述电子设备30集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双数据率SDRAM (DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.基于零知识证明的神经网络输出结果产权证明方法,其特征在于,包括验证零知识证明 步骤和验证签名步骤:
所述验证零知识证明π步骤,具体为:
S11、基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
S12、证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
S13、对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
S14、生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述步骤S11-S14均在zkCNN协议下进行;
所述验证签名步骤:具体为:
S21、在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
2.根据权利要求1所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,所述基于深度神经网络构建算术电路,具体为:
设定算术电路共有d层;设置运算门,包括加法门和乘法门,加法门设置输出导线z和输入导线x,乘法门设置输出导线z和输入导线xy;所述运算门的任意一条输入导线的来源均分为两种情况:第一是相邻层的某条导线的值,第二是来自输入层的输入向量里的某个值;
运算门的运算等式如下:
其中,Xadd表示加法门,Xmult表示乘法门,V i (z)表示第i层电路的第z条导线,s in 表示输入层的电路门总数,s i 表示第层的电路门总数,/>表示某函数的多变量线性拓展。
3.根据权利要求1所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,所述拼接输入参数形成向量T,具体为:
将输入层的全体参数通过量化等式或定点表示法转化为整数;
统计输入样本X、权重参数W、辅助参数aur、密钥字段sk四个字段各自的长度,得到其中最长的字段的长度为N;用0将四个字段的长度均补足为N,然后将四个字段拼接在一起,形成一个长度为4N的向量
4.根据权利要求1所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,步骤S13,还包括以下步骤:
设电路输出层的输出向量为,则根据电路函数的定义等式,分别为其各个分量定义函数/>,其中/>且/>;然后对此n个函数分别利用第一求和等式执行zk-sumcheck协议,并且要求这n组zk-sumcheck协议并行执行;
第一次执行完毕后,输出层输出n个函数值,并且该n个函数值的正确性被归约至相邻层的同一组点的正确性,即四个值:、/>、/>和/>,然后,生成随机数αβ,计算组点/>
根据深度学习网络的层数,循环执行以下步骤:首先对组点Q值基于第一求和等式zk-sumcheck协议,从而将其正确性归约到以下四个值的正确性上/>、/>、/>,然后,生成随机数αβ,得到新的组点Q值;当输出层执行完毕后终止;
继续调用zk-sumcheck协议,将来自各层的正确性参数和/>的正确性归约到输入层,如下式:
其中,z i 表示运算门的输出导线是第i层的第z条导线,C i 表示一种输出0或1的匹配函数。
5.根据权利要求1所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,步骤S14中所述生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量,具体为:
生成随机数向量r a=( r 1, r 2,…, r logN, r 1+logN, r 2+logN),该向量的长度为2+logN,然后,裁剪掉向量r a 的最后2个分量,从而获得一个较短的随机数向量r b=( r 1, r 2,…, r logN),该向量的长度为logN。
6.根据权利要求5所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,步骤S14还包括以下步骤:
证明者与验证者合作,利用随机数向量r b 和随机数r打开承诺多项式com,即zkPC.open(com,r,r b )从而使验证者获得随机点的多变量线性值/>、/>、/>及/>
验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式,如下式:
其中表示由神经网络的输入样本X转化形成的秘密参数,/>表示由神经网络的内部权重参数转化秘密参数,/>表示神经网络的池化运算形成的秘密参数,/>表示证明者的私钥;
如果第一验证等式成立,则零知识证明π有效,输出
7.根据权利要求1所述基于零知识证明的神经网络输出结果产权证明方法,其特征在于,步骤S21还包括以下步骤:
令电路输入层的输入向量T=(X, W, aux, sk),经过算术电路运算后得到输出向量(Y, Z),且Z=(a, e,z),其中, Y是一个长度为n的输出向量,表示输入样本X经过神经网络W所得到的输出产物,也是需要进行产权证明的核心对象;Z表示签名向量,字段,/>表示拼接,w表示秘密群元素,/>表示生成元,m表示被签名的消息,a表示证明者计算出的随机数,e表示验证者选取的随机数,z表示隐蔽携带着秘密信息的一个值;
证明者代替验证者计算随机数e计算,如下式:
验证者分两步验证签名Z的有效性,具体为:
S211、检验随机数的有效性,即是否成立;
S212、用证明者的公钥h和输出向量中的签名向量Z=(a, e,z)去验证是否成立;
如果S211至S212均成立,则签名有效,输出
8.基于零知识证明的神经网络输出结果产权证明系统,其特征在于,应用于权利要求1-7中任一项所述的基于零知识证明的神经网络输出结果产权证明方法,包括验证零知识模块和验证签名模块;所述验证零知识模块包括电路准备模块、承诺输入模块、逐层证明模块和最终验证模块;
所述验证零知识模块在zkCNN协议下进行;
所述电路准备模块用于基于深度神经网络构建算术电路,拼接输入参数形成向量T;所述输入参数包括秘密参数和密钥字段;
所述承诺输入模块用于证明者选取随机数r,使用零知识承诺协议zkPC和随机数r对向量T做承诺,zkPC(T, r)获得承诺多项式com;利用算术电路对向量T运算得到输出向量E
所述逐层证明模块用于对输出向量E经过电路函数定义形成输出层的定义函数,而后逐层执行zk-sumcheck协议;执行过程中,将定义函数的正确性归约到靠近输出层一侧的相邻层的同一组点的正确性,即生成深度神经网络各层的正确性参数、/>、/>和/>,然后生成随机数αβ作为权,利用第一求和等式对/>和/>进行加权求和,求得组点Q值;再利用组点Q值根据深度学习网络的层数循环执行zk-sumcheck协议;继续调用zk-sumcheck协议,计算第二求和等式将正确性参数/>和/>的正确性归约到输入层;其中,xy则分别表示运算门的第一条输入导线和第二条输入导线在其来源层的导线序数,in表示输入层,i表示深度神经网络的层数;
所述最终验证模块用于生成设定长度的随机数向量,然后将该随机数向量裁剪,获取较短的随机数向量;基于零知识承诺协议zkPC,证明者与验证者合作,利用随机数向量和随机数r打开承诺多项式com,验证者获得秘密参数和密钥字段的映射值,然后计算第一验证等式;验证者根据第一验证等式完成最终检查,如果第一验证等式成立,则零知识证明π有效;
所述验证签名模块用于在算术电路中,令秘密群元素w、生成元和被签名的消息m拼接形成向量T的密钥字段,然后将该新向量输入电路中,得到新的输出向量;证明者计算新的输出向量中的签名的随机数;验证者根据第二验证等式检验新的输出向量中的签名的随机数,然后利用公钥和签名验证第三验证等式,如果第二验证等式和第三验证等式均成立,则签名有效。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任意一项所述的基于零知识证明的神经网络输出结果产权证明方法。
10.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1-7任一项所述的基于零知识证明的神经网络输出结果产权证明方法。
CN202311492107.8A 2023-11-10 2023-11-10 基于零知识证明的神经网络输出结果产权证明方法及装置 Active CN117240438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311492107.8A CN117240438B (zh) 2023-11-10 2023-11-10 基于零知识证明的神经网络输出结果产权证明方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311492107.8A CN117240438B (zh) 2023-11-10 2023-11-10 基于零知识证明的神经网络输出结果产权证明方法及装置

Publications (2)

Publication Number Publication Date
CN117240438A true CN117240438A (zh) 2023-12-15
CN117240438B CN117240438B (zh) 2024-04-26

Family

ID=89098513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311492107.8A Active CN117240438B (zh) 2023-11-10 2023-11-10 基于零知识证明的神经网络输出结果产权证明方法及装置

Country Status (1)

Country Link
CN (1) CN117240438B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118093442A (zh) * 2024-04-24 2024-05-28 暨南大学 一种基于零知识证明的神经网络模型可验证测试方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781521A (zh) * 2018-12-06 2020-02-11 山东大学 基于零知识证明的智能合约认证数据隐私保护方法及系统
US20210406436A1 (en) * 2020-06-30 2021-12-30 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method for verifying convolutional neural network model and device thereof
CN114841363A (zh) * 2022-04-11 2022-08-02 北京理工大学 一种基于零知识证明的隐私保护与可验证的联邦学习方法
CN115277197A (zh) * 2022-07-27 2022-11-01 深圳前海微众银行股份有限公司 模型所有权验证方法、电子设备、介质及程序产品
CN115694822A (zh) * 2021-07-26 2023-02-03 华为技术有限公司 基于零知识证明的验证方法、装置和系统、设备及介质
US20230208643A1 (en) * 2021-12-23 2023-06-29 Visa International Service Association Zero-knowledge interaction processing system and method
CN116488823A (zh) * 2023-04-20 2023-07-25 山东浪潮科学研究院有限公司 一种基于sm2和sm3的非交互式零知识证明方法
CN116821958A (zh) * 2023-06-15 2023-09-29 华南理工大学 一种隐私数据集质量评估方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781521A (zh) * 2018-12-06 2020-02-11 山东大学 基于零知识证明的智能合约认证数据隐私保护方法及系统
US20210406436A1 (en) * 2020-06-30 2021-12-30 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method for verifying convolutional neural network model and device thereof
CN115694822A (zh) * 2021-07-26 2023-02-03 华为技术有限公司 基于零知识证明的验证方法、装置和系统、设备及介质
US20230208643A1 (en) * 2021-12-23 2023-06-29 Visa International Service Association Zero-knowledge interaction processing system and method
CN114841363A (zh) * 2022-04-11 2022-08-02 北京理工大学 一种基于零知识证明的隐私保护与可验证的联邦学习方法
CN115277197A (zh) * 2022-07-27 2022-11-01 深圳前海微众银行股份有限公司 模型所有权验证方法、电子设备、介质及程序产品
CN116488823A (zh) * 2023-04-20 2023-07-25 山东浪潮科学研究院有限公司 一种基于sm2和sm3的非交互式零知识证明方法
CN116821958A (zh) * 2023-06-15 2023-09-29 华南理工大学 一种隐私数据集质量评估方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIASI WENG: "pvCNN: Privacy-Preserving and Verifiable Convolutional Neural Network Testing", 《HTTPS://ARXIV.ORG/PDF/2201.09186.PDF》, pages 1 - 15 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118093442A (zh) * 2024-04-24 2024-05-28 暨南大学 一种基于零知识证明的神经网络模型可验证测试方法及系统

Also Published As

Publication number Publication date
CN117240438B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
CN108768652B (zh) 一种可抗量子攻击的联盟区块链底层加密方法
US5790675A (en) Cryptographic communication process
CN104780050A (zh) 基于椭圆曲线的前向安全的成员可撤销无证书群签名方案
CN113159762B (zh) 基于Paillier和博弈论的区块链交易方法
CN111931209B (zh) 基于零知识证明的合同信息验证方法及装置
CN113743939A (zh) 基于区块链的身份认证方法、装置及系统
CN110569672A (zh) 一种基于移动设备的高效可信电子签名系统及方法
CN105141419A (zh) 大属性域的属性基签名方法及系统
TW202318833A (zh) 臨界簽章方案
CN112364335B (zh) 标识身份鉴别方法、装置及电子设备和存储介质
CN113722767A (zh) 一种数据完整性验证方法、系统、存储介质及计算设备
CN112487464A (zh) 一种基于区块链的加密数据分享方法及装置
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN112434281A (zh) 一种面向联盟链的多因子身份认证方法
CN117240438B (zh) 基于零知识证明的神经网络输出结果产权证明方法及装置
CN115473632B (zh) 一种改进的多层可链接环签名生成方法及装置
CN111262707A (zh) 数字签名方法及验证方法、设备、存储介质
CN114092092B (zh) 基于门限签名的去中心化的数字证书管理系统及使用方法
CN115378613A (zh) 基于区块链的匿名信息监管方法及系统
Rondelet A note on anonymous credentials using BLS signatures
CN112541197A (zh) 一种结果验证方法及装置
CN112887097A (zh) 基于sm2椭圆曲线的签名方法、相关装置、及存储介质
CN115473634B (zh) 一种改进的可链接环签名生成方法及装置
KR20190041203A (ko) 내재적 인증서를 사용하는 전자서명에 대한 효율적인 서명 검증 방법
CN113779147B (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