算法替代攻击的防护方法及相关设备与流程
未命名
09-22
阅读:48
评论:0
1.本公开涉及信息安全技术领域,尤其涉及一种算法替代攻击的防护方法装置、计算机设备、可读存储介质及程序。
背景技术:
2.现有关于密码逆向防火墙的研究主要关注适用于公钥加密算法、密钥协商协议、消息传输协议、数字签名算法等密码原语的密码逆向防火墙一般性构造。
技术实现要素:
3.本公开实施例提供了一种算法替代攻击的防护方法、装置、计算机设备、可读存储介质及程序,涉及计算机技术领域,该方法可以实现算法替代攻击的防护。
4.本公开实施例提供了一种算法替代攻击的防护方法,其特征在于,包括:接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
5.在一个实施例中,所述实例包括第一系数、第二系数、第一指数、第二指数和中间参数,其中所述第一系数、所述第二系数、所述第一指数、所述第二指数、所述中间参数和第一双线性映射共同构成结对生成方程,所述证明者端输入的秘密值满足所述结对生成方程。
6.在一个实施例中,所述第一证明包括第一证明值和第一承诺值,所述第一证明值能够证明所述证明者端输入的秘密值满足所述结对生成方程。
7.在一个实施例中,所述秘密值包括第一秘密值和第二秘密值,所述第一证明值包括第一证明值1和第一证明值2,所述第一承诺值包括第一承诺值1和第一承诺值2,方法还包括:所述证明者端选择第一随机数和第二随机数,并使用第三映射、所述第一随机数和第一集合对所述第一秘密值进行承诺计算以获得所述第一承诺值1,使用第四映射、所述第二随机数和第二集合对所述第二秘密值进行承诺计算以获得所述第一承诺值2;所述证明者端选择第三随机数、第四随机数、第五随机数和第六随机数,使用所述第一承诺值2、所述第二集合、所述第三随机数和所述第六随机数获取所述第一证明值1,使用所述第一秘密值、所述第一集合、第三集合、所述第四随机数、所述第五随机数和所述第六随机数获取所述第一证明值2。
8.在一个实施例中,所述第二证明包括第二证明值和第二承诺值,将所述第一证明进行重随机化以获取第二证明包括:选择第七随机数和第八随机数,使用所述第七随机数、所述第一集合和所述第一承诺值1获取第二承诺值1;使用所述第八随机数、所述第二集合和所述第一承诺值2获取所述第二承诺值2;使用所述第七随机数和所述第一指数获取第三指数,使用所述第八随机数和所述第二指数获取第四指数;使用所述第四映射、所述第二系数、所述第二承诺值2、所述第二指数获取第二承诺值3;使用所述第三映射、所述第一系数、
所述第二承诺值1、所述第一指数获取第二承诺值4;使用所述第三指数、所述第二承诺值3和所述第一证明值1获取所述第二证明值1;使用所述第四指数、所述第二承诺值4和所述第一证明值2获取所述第二证明值2。
9.在一个实施例中,将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效包括:所述验证者使用所述第三映射、所述第二承诺值1、所述第一系数、所述第一指数获取所述第二承诺值4;所述验证者使用所述第四映射、所述第二承诺值2、所述第二系数、所述第二指数获取所述第二承诺值3;所述验证者将第二双线性映射、第五映射、所述中间参数、所述第一集合、所述第二集合、所述第二证明值1、所述第二证明值2、所述第二承诺值3和所述第二承诺值4代入验证等式以检验验证等式是否成立。
10.本公开实施例提供了一种算法替代攻击的防护装置,包括:接收单元,用于接收证明者端发送的公共参考字符串、实例和第一证明;重随机化单元,用于根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;发送单元,用于将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
11.本公开实施例提供了一种计算机设备,包括处理器、存储器、输入输出接口;所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于接收数据及输出数据,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行如上实施例中任一项所述的方法。
12.本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行如上实施例中任一项所述的方法。
13.本公开实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上实施例中任一项所述的方法。
14.本技术的算法替代攻击的防护方法,通过接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效,从而实现算法替代攻击的防护。
附图说明
15.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1示出了可以应用本公开实施方式的算法替代攻击的防护方法的示例性系统架构的示意图;
17.图2是本公开实施例提供的一种算法替代攻击的防护方法的流程图;
18.图3示出了本公开一个实施例的算法替代攻击的防护的结构示意图;
19.图4示出了本公开一个实施例的算法替代攻击的防护的流程示意图;
20.图5是本公开实施例提供的一种算法替代攻击的防护装置的结构示意图;
21.图6是本公开实施例提供的一种算法替代攻击的防护装置的结构示意图;
22.图7是实施本公开实施例提供的算法替代攻击的防护方法的计算机设备的结构示意图。
具体实施方式
23.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
24.在本公开实施例中,可以通过非交互零知识证明和密码逆向防火墙等技术,通过接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效,从而实现在非交互零知识证明系统的验证者对算法替代攻击进行防护。
25.下面首先对本公开的一些术语进行说明:
26.非交互式零知识证明,英文是non-interactive zero knowledge,简称nizk“零知识证明”通常被作为一个整体引用,有许多不同类型的zkp。严格来说,zkp方案是一种提供“零知识”性质的方案,在该方案中,证明的验证者没有得到任何关于要证明的陈述是如何被证明的知识。zkp可以是交互式的,其中验证者可以直接与证明者进行交互;也可以是非交互式的,证明者可以独立生成证明。有几类满足该条件的非交互式zkp,包括:非交互式零知识论证(nizk),简洁非交互零知识论证(snarg),简洁非交互零知识知识论证(snark或zksnark)。本技术只关注nizk这一种。另外,上面提到的“陈述”在英文论文里有两种表达方式,statement或instance,所以也把它翻译为“实例”,有的论文里也翻译为“说明”。这几个词在nizk定义里代表的意思是一样的。本技术整篇都用的是“实例”这个词。
27.算法替代攻击,(algorithm substitution attack,简称asa),是一种用以实施大规模监听,进而窃取隐私信息的常用手段。具体来说,asa是指攻击者在密码算法实现过程中加入一些仅自己已知的秘密信息或陷门信息,即设置一些后门,以方便后续破解所有收集到的加密信息,从而获取用户的隐私信息,最终达到收集情报的目的。asa要求被嵌入后门的密码算法和已被证明安全的原始算法两者之间是不可区分的。换句话说,密码工具的使用者无法判断自己使用的算法是否被嵌入后门,因为用户对密码工具的使用模式是“黑核”模式,即用户并不知晓其内部构造。asa的出现给密码学领域的研究带来了新的威胁与挑战。
28.密码逆向防火墙,(cryptographic reverse firewall,简称crf),是一种高效且易于部署的方式。不同于计算机技术中的传统防火墙技术,crf是一种位于内部用户设备之外的软件或硬件实现的密码组件,用来对内部用户设备的输入和输出进行“净化”,从而确保使用该设备的内部用户即使在设备本身存在asa攻击时,依然可以安全通信。crf背后的安全逻辑是利用满足可延展性的密码算法对内部设备输入和输出的消息进行“重随机化”。crf的安全性要求在对密码算法构造crf后,要保留密码算法原始的功能性和安全性。另外,
还要求在加入crf后,不能通过该crf泄露用户的任何隐私信息,将该性质称为抗泄露性。
29.网络金融,又称电子金融(e-finance),从狭义上讲是指在国际互联网(internet)上开展的金融业务,包括网络银行、网络证券、网络保险等金融服务及相关内容;从广义上讲,网络金融就是以网络技术为支撑,在全球范围内的所有金融活动的总称,它不仅包括狭义的内容,还包括网络金融安全、网络金融监管等诸多方面。它不同于传统的以物理形态存在的金融活动,是存在于电子空间中的金融活动,其存在形态是虚拟化的、运行方式是网络化的。它是信息技术特别是互联网技术飞速发展的产物,是适应电子商务(e-commerce)发展需要而产生的网络时代的金融运行模式。
30.安全参数,(security parameter),是用来衡量一个攻击方(adversary)攻破一个加解密机制(scheme)有多困难(“hard”)的方式。直观的理解就是,安全参数越大,对应的破解加密系统的难度也就越大。但是从密码算法实际应用的角度考虑,安全参数并不是越大越好。因为安全参数越大,算法安全性的保障越高,但是密码算法的运行效率就越低。因此,在实际应用中,会从安全性和效率两方面进行平衡来确定这个安全参数的大小。
31.公共参考字符串,(common reference string,crs)公共参考字符串(crs)其实是一个相比起随机预言机更为简单的假设,具体是这样的:我们假设在一个协议中,证明方与验证方都拥有一段相同的参考字串。这个字串可能是随机生成的,也可能是某个函数的输出。重要的是完成协议的两方并不知道这个字串具体是如何被生成的,就感觉像是天上掉下来的一样。
32.重随机化(rerandomization),密码学里随机化的意思。以加密算法来举例,在密码算法的设计过程中,为了使密码算法更安全,通常要求对同个明文每加密一次后所产生的密文要是不同的。为了做到这一点需要在加密过程中加入一些随机数。这个过程称为随机化,也可以说这个加密算法是随机性的算法(因为对应的还有确定性算法,这种算法是指对同个明文每加密一次后所产生的密文要都是相同的)。本技术提到的重随机化就是把这个加入随机数来进行随机化的过程再做一次,来构造证明者端密码逆向防火墙。这里要注意,此时就需要证明者端原始nizk证明系统是可重随机性化的,因为不是所有nizk证明系统都满足可重随机这个性质。这也是为什么我们在示例部分要选择groth-sahai这个nizk证明系统,这个系统是满足可重随机这个性质。重随机是指nizk证明系统的证明者生成的证明可以重随机。
33.本公开实施例提供的方案涉及非交互零知识证明和密码逆向防火墙等技术。
34.图1示出了可以应用本公开实施方式的算法替代攻击的防护方法的示例性系统架构100的示意图。
35.如图1所示,系统架构100可以包括终端101、102、103中的一种或多种,网络104和服务器105。网络104是用以在终端101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
36.应该理解,图1中的终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
37.终端101、102、103通过网络104与服务器105交互,可以接收或发送消息等。终端101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携
式计算机和台式计算机等等。
38.服务器105可以是提供各种服务的服务器。非交互零知识证明系统的证明者和验证者可以位于图1中的任一设备上,例如证明者可以位于终端101上,验证者可以位于服务器105上,本技术的密码逆向防火墙crf可以位于证明者所在的终端101上。
39.例如终端103(也可以是终端101或102)上的证明者向服务器105上的验证者发送公共参考字符串、实例和第一证明时,密码逆向防火墙crf可以接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
40.其中,终端可以是手机(如终端101)或平板电脑(如终端102),还可以是台式计算机(如终端101)等,在此不做限制。其中,终端中可以显示应用程序,该应用程序可以是算法替代攻击的防护的应用程序等。其中,图1中的终端仅为例举出的部分设备,在本公开中终端并不仅限于该图1中所例举的设备。
41.可以理解的是,本公开实施例中所提及的终端可以是一种用户设备,本公开实施例中的服务器包括但不限于服务器或服务器组成的集群。其中,以上所提及的终端可以是一种电子设备,包括但不限于手机、平板电脑、智能语音交互设备、智能家电、车载终端、台式电脑、笔记本电脑、掌上电脑、车载设备、增强现实/虚拟现实(augmented reality/virtual reality,ar/vr)设备、头盔显示器、智能电视、可穿戴设备、智能音箱、数码相机、摄像头及其他具备网络接入能力的移动互联网设备(mobile internet device,mid),或者火车、轮船、飞行等场景下的终端设备等。
42.其中,以上所提及的服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、车路协同、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。
43.可选的,本公开实施例中所涉及的数据可以存储在云平台中,或者可以基于云存储技术、区块链技术对该数据进行存储,在此不做限制。
44.相关技术中,尚未提出关于nizk证明系统的crf一般化及实例化构造。因此,提出使nizk证明系统抵抗asa攻击的技术,即构造适用于nizk证明系统的crf尤为必要。
45.图2是本公开实施例提供的一种算法替代攻击的防护方法的流程图。本公开实施例提供的方法可以由图1实施例中的证明者所在的终端或服务器执行。
46.如图2所示,本公开实施例提供的方法可以包括如下步骤。
47.在步骤s210中,接收证明者端发送的公共参考字符串、实例和第一证明。
48.在该步骤中,证明者所在的终端或服务器接收证明者端发送的公共参考字符串、实例和第一证明。
49.其中,公共参考字符串是nizk证明系统初始化时,在输入一个安全参数,例如为1
λ
时,输出为一个公共参考字符串crs。其中crs例如可以包括:
50.第一加法群g1,第二加法群g2,第三加法群gr,第一双线性映射e:g1×
g2→gt
;第四加法群m1,第五加法群m2,第六加法群m
t
,第二双线性映射e:m1×
m2→mt
;第三映射μ1,第四映射μ2,第五映射μ
t
分别把g1g2g
t
里的元素映射成m1m2m
t
中的元素;选取i个元素ui∈m1组成的
第一集合{ui},j个元素vi∈m2组成的第二集合{vi},i个元素ui∈m1和j个元素vi∈m2组成的第三集合{ηh};第一双线性映射e:g1×
g2→gt
通过承诺算法可将第一秘密值x∈g1,第二秘密值y∈g2进行隐藏,可得到相应的第一承诺值1,c∈m1,第二承诺值2,d∈m2,群g1,g2的生成元分别为g,h,模为p;并且存在与e对应的双线性映射e:m1×
m2→
mr,e映射和e映射是可转换的。
51.其中,所述实例包括第一系数第二系数第一指数α
q,m
∈z
p
,1≤q≤q,1≤m≤m、第二指数β
q,n
∈z
p
,1≤q≤q,1≤n≤n和中间参数t,其中,z
p
表示从1到p-1的所有整数,m,n和q是大于1的整数,x和y是秘密值,e第一双线性映射;
52.其中所述第一系数、所述第二系数、所述第一指数、所述第二指数、所述中间参数和第一双线性映射共同构成结对生成方程:所述证明者端输入的秘密值满足所述结对生成方程。
53.所述秘密值包括第一秘密值和第二秘密值,所述第一证明值包括第一证明值1和第一证明值2,所述第一承诺值包括第一承诺值1和第一承诺值2,方法还包括:所述证明者端选择第一随机数和第二随机数,并使用第三映射、所述第一随机数和第一集合对所述第一秘密值进行承诺计算以获得所述第一承诺值1,使用第四映射、所述第二随机数和第二集合对所述第二秘密值进行承诺计算以获得所述第一承诺值2;具体为:
54.证明者从z
p
中选择第一随机数(在承诺算法中也称它们为打开信息)和第二随机数分别对第一秘密值和第二秘密值进行一次承诺计算。将生成的承诺分别记为第一承诺值1,和第一承诺值2,其中,其中,其次,证明者计算证明。
55.所述证明者端选择第三随机数、第四随机数、第五随机数和第六随机数,使用所述第一承诺值2、所述第二集合、所述第三随机数和所述第六随机数获取所述第一证明值1,使用所述第一秘密值、所述第一集合、第三集合、所述第四随机数、所述第五随机数和所述第六随机数获取所述第一证明值2;具体为:
56.先选取四组随机数,分别记为第三随机数r
qi
,1≤q≤q,1≤i≤i,第四随机数s
qj
,1≤q≤q,1≤j≤j,第五随机数th,1≤h≤h,以及第六随机数t
ij
,1≤i≤i,1≤j≤j。接着证明者计算第一证明值1,第一证明值2,最终生成的证明即为第一证明值和
57.在步骤s220中,根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明。
58.在该步骤中,证明者所在的终端或服务器根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明。
59.所述第二证明包括第二证明值和第二承诺值,将所述第一证明进行重随机化以获取第二证明包括:选择第七随机数和第八随机数,使用所述第七随机数、所述第一集合和所述第一承诺值1获取第二承诺值1;使用所述第八随机数、所述第二集合和所述第一承诺值2获取所述第二承诺值2;具体为:
60.从z
p
中选取第七随机数s
mi
,1≤m≤m,1≤i≤i、第八随机数z
nj
,1≤n≤n,1≤j≤j,对承诺和进行重随机,生成第二承诺值l,和第二承诺值2,其中,
61.使用所述第七随机数和所述第一指数获取第三指数,使用所述第八随机数和所述第二指数获取第四指数;具体为:
62.计算第三指数和第四指数
63.使用所述第四映射、所述第二系数、所述第二承诺值2、所述第二指数获取第二承诺值3;使用所述第三映射、所述第一系数、所述第二承诺值1、所述第一指数获取第二承诺值4;具体为:
64.第二承诺值3,第二承诺值4第二承诺值4
65.使用所述第三指数、所述第二承诺值3和所述第一证明值1获取所述第二证明值1;使用所述第四指数、所述第二承诺值4和所述第一证明值2获取所述第二证明值2;具体为:
66.计算第二证明值1,和第二证明值2,和第二证明值2,和第二证明值2,和即为经过crf重随机化后的第二证明值。
67.在步骤s230中,将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
68.在该步骤中,证明者所在的终端或服务器将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
69.将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效包括:所述验证者使用所述第三映射、所述第二承诺值1、所述第一系数、所述第一指数获取所述第二承诺值4;所述验证者使用所述第四映射、所述第二承诺值2、所述第二系数、所述第二指数获取所述第二承诺值3;具体为:
70.验证者接收一个实例{α
q,m
}、{β
q,n
}、t以及证明者端crf重随机化的承诺值和证明验证者计算第二承诺值4,
和第二承诺值3,
71.所述验证者将第二双线性映射、第五映射、所述中间参数、所述第一集合、所述第二集合、所述第二证明值1、所述第二证明值2、所述第二承诺值3和所述第二承诺值4代入验证等式以检验验证等式是否成立。具体为:
72.代入验证等式看验证等式是否成立。如果等式成立,则说明第二证明值是关于秘密值和的有效证明。
73.本技术图1的算法替代攻击的防护方法,通过接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效,能够实现对算法替代攻击的防护。
74.下面结合具体实例对本公开的算法替代攻击的防护方法进行具体说明:
75.图3示出了本公开一个实施例的算法替代攻击的防护的结构示意图。
76.图4示出了本公开一个实施例的算法替代攻击的防护的流程示意图。
77.参考图3和图4,适用于非交互零知识证明系统的密码逆向防火墙的防护方法,包括如下实体:证明者、验证者和证明者端crf,具体包括下列5个步骤:
78.步骤410:nizk证明系统的系统设置
79.该步骤的输入为一个安全参数1
λ
,输出为一个公共参考字符串crs。该步骤可视为nizk证明系统的初始设置算法,可由一个可信第三方来运行。
80.在nizk证明系统为groth-sahai系统时:输入为一个安全参数1
λ
,输出的crs例如可以包括:
81.第一加法群g1,第二加法群g2,第三加法群g
t
,第一双线性映射e:g1×
g2→gt
;第四加法群m1,第五加法群m2,第六加法群m
t
,第二双线性映射e:m1×
m2→mt
;第三映射μ1,第四映射μ2,第五映射μ
t
分别把g1g2g
t
里的元素映射成m1m2m
t
中的元素;选取i个元素ui∈m1组成的第一集合{ui},j个元素vi∈m2组成的第二集合{vi},i个元素ui∈m1和j个元素vi∈m2组成的第三集合{ηh};第一双线性映射e:g1×
g2→gt
通过承诺算法可将第一秘密值x∈g1,第二秘密值y∈g2进行隐藏,可得到相应的第一承诺值1,c∈m1,第二承诺值2,d∈m2,群g1,g2的生成元分别为g,h,模为p;并且存在于e对应的双线性映射e:m1×
m2→mt
,e映射和e映射是可转换的。
82.步骤420:证明者端crf的系统设置
83.该步骤的输入为一个安全参数1
λ
,也可以是其他参数,输出为一个初始化公开状态值δ∈{0,1}
*
,*表示任意长度的0,1字符串。这里δ的取值为可选项,取值可以为空,具体情况可视nizk证明系统的具体构造而定。如果具体的nizk证明系统在构造crf时δ取值不为空,则称该构造为有状态的(stateful);否则,称为无状态的(stateless)。该步骤可看作是nizk证明系统证明者端crf的初始化算法,也可由证明者来运行。
84.在nizk证明系统为groth-sahai系统时:该步骤的输入为一个安全参数1
λ
,输出为一个初始化公开状态值δ∈{0,1}
*
。根据groth-sahai系统的构造,这里δ的取值设为空值。
因此,这个crf构造是无状态的。
85.步骤430:nizk证明系统生成证明
86.该步骤的输入为安全参数1
λ
、公共参考字符串crs、一个实例/说明x和一个使得关系r(x,crs,ω)成立的证据ω∈r(x),输出为一个证明π。这里,r:{0,1}
*
×
{0,1}
*
→
{ture,false}表示一个np(nondeterministic polynominal,非确定性多项式)关系,称与实例/说明x满足关系r的ω为x的证据,表示为r(x)={ω:r(x,ω)=true}。该步骤由证明者来运行。
87.在nizk证明系统为groth-sahai系统时:
88.该步骤输入一个实例以及证明者持有的秘密值和输出秘密值满足结对生成方程的证明。
89.所述实例包括第一系数第二系数第一指数α
q,m
∈z
p
,1≤q≤q,1≤m≤m、第二指数β
q,n
∈z
p
,1≤q≤q,1≤n≤n和中间参数t,其中,z
p
表示从1到p-1的所有整数,m,n和q是大于1的整数;
90.其中所述第一系数、所述第二系数、所述第一指数、所述第二指数、所述中间参数和第一双线性映射共同构成结对生成方程:所述证明者端输入的秘密值满足所述结对生成方程。
91.证明者从z
p
中选择第一随机数(在承诺算法中也称它们为打开信息)和第二随机数分别对第一秘密值和第二秘密值进行一次承诺计算。将生成的承诺分别记为第一承诺值1,和第一承诺值2,其中,其中,其次,证明者计算证明。
92.先选取四组随机数,分别记为第三随机数r
qi
,1≤q≤q,1≤i≤i,第四随机数s
qj
,1≤q≤q,1≤j≤j,第五随机数th,1≤h≤h,以及第六随机数t
ij
,1≤i≤i,1≤j≤j。接着证明者计算第一证明值1,第一证明值2,最终生成的证明即为第一证明值和
93.步骤440:证明者端crf的证明重随机化
94.该步骤的输入为一个当前状态值δ和一个证明π,输出一个经过重随机化后的证明π
′
或一个错误符号
⊥
和一个更新后的状态值δ
′
。该步骤可看作是nizk证明系统证明者端crf的求值算法,也可由证明者来运行。需要指出的是,这个算法的正确性依赖于nizk证明系统的可重随机性。而并非任意nizk证明系统都满足可重随机性。因此,该算法的实例化需
要找到或构造一个可重随机的nizk证明系统。
95.在nizk证明系统为groth-sahai系统时:
96.该步骤输入一个实例{α
q,m
}、{β
q,n
}、t以及证明者发过来的证明和承诺值
97.从z
p
中选取第七随机数s
mi
,1≤m≤m,1≤i≤i、第八随机数z
nj
,1≤n≤n,1≤j≤j,对承诺和进行重随机,生成第二承诺值1,和第二承诺值2,其中,
98.计算第三指数和第四指数
99.计算第二承诺值3,第二承诺值4,第二承诺值4,
100.计算第二证明值1,和第二证明值2,和第二证明值2,和第二证明值2,和即为经过crf重随机化后的第二证明值。
101.步骤450:证明验证
102.该步骤的输入为安全参数1
λ
、公共参考字符串crs、一个实例/说明x和一个重随机化后的证明π
′
,输出为d∈{true,false}来表示π
′
是否为实例/说明x的一个有效证明。如果d为true,则表示π
′
是关于实例/说明x的一个有效证明;否则,表明π
′
是关于实例/说明x的一个无效证明。
103.在nizk证明系统为groth-sahai系统时:
104.验证者接收一个实例{α
q,m
}、{β
q,n
}、t以及证明者端crf重随机化的承诺值和证明验证者计算第二承诺值4,和第二承诺值3,
105.代入验证等式看验证等式是否成立。如果等式成立,则说明是关于秘密值和的有效证明。
106.图5是本公开实施例提供的一种算法替代攻击的防护装置的结构示意图。
107.如图5所示,本公开实施例提供的算法替代攻击的防护装置500可以包括:
108.接收单元510,用于接收证明者端发送的公共参考字符串、实例和第一证明;
109.重随机化单元520,用于根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;
110.发送单元530,用于将所述实例和所述第二证明发送至验证者,使得所述验证者根
据所述实例和所述第二证明验证所述第二证明是否有效。
111.图5的算法替代攻击的防护装置,通过接收单元,用于接收证明者端发送的公共参考字符串、实例和第一证明;重随机化单元,用于根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;发送单元,用于将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效,可以实现算法替代攻击的防护。
112.在一个实施例中,重随机化单元520,还用于选择第七随机数和第八随机数,使用所述第七随机数、所述第一集合和所述第一承诺值1获取第二承诺值1;使用所述第八随机数、所述第二集合和所述第一承诺值2获取所述第二承诺值2;使用所述第七随机数和所述第一指数获取第三指数,使用所述第八随机数和所述第二指数获取第四指数;使用所述第四映射、所述第二系数、所述第二承诺值2、所述第二指数获取第二承诺值3;使用所述第三映射、所述第一系数、所述第二承诺值1、所述第一指数获取第二承诺值4;使用所述第三指数、所述第二承诺值3和所述第一证明值1获取所述第二证明值1;使用所述第四指数、所述第二承诺值4和所述第一证明值2获取所述第二证明值2。
113.图6是本公开实施例提供的一种算法替代攻击的防护装置的结构示意图。
114.如图6所示,本公开实施例提供的算法替代攻击的防护装置600可以包括:
115.验证单元610,用于所述验证者使用所述第三映射、所述第二承诺值1、所述第一系数、所述第一指数获取所述第二承诺值4;所述验证者使用所述第四映射、所述第二承诺值2、所述第二系数、所述第二指数获取所述第二承诺值3;所述验证者将第二双线性映射、第五映射、所述中间参数、所述第一集合、所述第二集合、所述第二证明值1、所述第二证明值2、所述第二承诺值3和所述第二承诺值4代入验证等式以检验验证等式是否成立。
116.参见图7,图7是实施本公开实施例提供的算法替代攻击的防护方法的计算机设备的结构示意图。
117.如图7所示,本公开实施例中的计算机设备可以包括:一个或多个处理器701、存储器702和输入输出接口703。该处理器701、存储器702和输入输出接口703通过总线704连接。存储器702用于存储计算机程序,该计算机程序包括程序指令,输入输出接口703用于接收数据及输出数据,如用于宿主机与计算机设备之间进行数据交互,或者用于在宿主机中的各个虚拟机之间进行数据交互;处理器701用于执行存储器702存储的程序指令。
118.其中,该处理器701可以执行如下操作:
119.接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。
120.在一些可行的实施方式中,该处理器701可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
121.该存储器702可以包括只读存储器和随机存取存储器,并向处理器701和输入输出接口703提供指令和数据。存储器702的一部分还可以包括非易失性随机存取存储器。例如,存储器702还可以存储设备类型的信息。
122.具体实现中,该计算机设备可通过其内置的各个功能模块执行如上述实施例中各个步骤所提供的实现方式,具体可参见上述实施例中各个步骤所提供的实现方式,在此不再赘述。
123.本公开实施例通过提供一种计算机设备,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机程序,执行上述实施例中所示方法的各个步骤,进行传输操作。
124.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序适于由该处理器加载并执行上述实施例中各个步骤所提供的方法,具体可参见上述实施例中各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本公开所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本公开方法实施例的描述。作为示例,计算机程序可被部署为在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
125.该计算机可读存储介质可以是前述任一实施例提供的装置或者该计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
126.本公开实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的各种可选方式中所提供的方法。
127.本公开实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
128.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在该说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
129.本公开实施例提供的方法及相关装置是参照本公开实施例提供的方法流程图和/
或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程传输设备的处理器以产生一个机器,使得通过计算机或其他可编程传输设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程传输设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程传输设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
130.以上所揭露的仅为本公开较佳实施例而已,当然不能以此来限定本公开之权利范围,因此依本公开权利要求所作的等同变化,仍属本公开所涵盖的范围。
技术特征:
1.一种算法替代攻击的防护方法,其特征在于,包括:接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。2.根据权利要求1所述的方法,其特征在于,所述实例包括第一系数、第二系数、第一指数、第二指数和中间参数,其中所述第一系数、所述第二系数、所述第一指数、所述第二指数、所述中间参数和第一双线性映射共同构成结对生成方程,所述证明者端输入的秘密值满足所述结对生成方程。3.根据权利要求2所述的方法,其特征在于,所述第一证明包括第一证明值和第一承诺值,所述第一证明值能够证明所述证明者端输入的秘密值满足所述结对生成方程。4.根据权利要求3所述的方法,其特征在于,所述秘密值包括第一秘密值和第二秘密值,所述第一证明值包括第一证明值1和第一证明值2,所述第一承诺值包括第一承诺值1和第一承诺值2,方法还包括:所述证明者端选择第一随机数和第二随机数,并使用第三映射、所述第一随机数和第一集合对所述第一秘密值进行承诺计算以获得所述第一承诺值1,使用第四映射、所述第二随机数和第二集合对所述第二秘密值进行承诺计算以获得所述第一承诺值2;所述证明者端选择第三随机数、第四随机数、第五随机数和第六随机数,使用所述第一承诺值2、所述第二集合、所述第三随机数和所述第六随机数获取所述第一证明值1,使用所述第一秘密值、所述第一集合、第三集合、所述第四随机数、所述第五随机数和所述第六随机数获取所述第一证明值2。5.根据权利要求4所述的方法,其特征在于,所述第二证明包括第二证明值和第二承诺值,将所述第一证明进行重随机化以获取第二证明包括:选择第七随机数和第八随机数,使用所述第七随机数、所述第一集合和所述第一承诺值1获取第二承诺值1;使用所述第八随机数、所述第二集合和所述第一承诺值2获取所述第二承诺值2;使用所述第七随机数和所述第一指数获取第三指数,使用所述第八随机数和所述第二指数获取第四指数;使用所述第四映射、所述第二系数、所述第二承诺值2、所述第二指数获取第二承诺值3;使用所述第三映射、所述第一系数、所述第二承诺值1、所述第一指数获取第二承诺值4;使用所述第三指数、所述第二承诺值3和所述第一证明值1获取所述第二证明值1;使用所述第四指数、所述第二承诺值4和所述第一证明值2获取所述第二证明值2。6.根据权利要求5所述的方法,其特征在于,将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效包括:所述验证者使用所述第三映射、所述第二承诺值1、所述第一系数、所述第一指数获取所述第二承诺值4;所述验证者使用所述第四映射、所述第二承诺值2、所述第二系数、所述第二指数获取
所述第二承诺值3;所述验证者将第二双线性映射、第五映射、所述中间参数、所述第一集合、所述第二集合、所述第二证明值1、所述第二证明值2、所述第二承诺值3和所述第二承诺值4代入验证等式以检验验证等式是否成立。7.一种算法替代攻击的防护装置,其特征在于,包括:接收单元,用于接收证明者端发送的公共参考字符串、实例和第一证明;重随机化单元,用于根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;发送单元,用于将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。8.一种计算机设备,其特征在于,包括处理器、存储器、输入输出接口;所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于接收数据及输出数据,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-6任一项所述的方法。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-6任一项所述的方法。10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
技术总结
本公开实施例提供了一种算法替代攻击的防护方法、装置、计算机设备、可读存储介质及程序,涉及信息安全技术领域。该方法包括:接收证明者端发送的公共参考字符串、实例和第一证明;根据所述公共参考字符串和所述实例将所述第一证明进行重随机化以获取第二证明;将所述实例和所述第二证明发送至验证者,使得所述验证者根据所述实例和所述第二证明验证所述第二证明是否有效。本公开实施例提供的方法可以实现算法替代攻击的防护。实现算法替代攻击的防护。实现算法替代攻击的防护。
技术研发人员:康步荣 周旭华 黄磊
受保护的技术使用者:中国电信股份有限公司
技术研发日:2023.05.10
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/