CN112003705B - 基于零知识证明的身份认证方法和装置 - Google Patents
基于零知识证明的身份认证方法和装置 Download PDFInfo
- Publication number
- CN112003705B CN112003705B CN202010809161.0A CN202010809161A CN112003705B CN 112003705 B CN112003705 B CN 112003705B CN 202010809161 A CN202010809161 A CN 202010809161A CN 112003705 B CN112003705 B CN 112003705B
- Authority
- CN
- China
- Prior art keywords
- random number
- parameter
- verification
- challenge
- prover
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种基于零知识证明的身份认证方法和装置,方法包括:在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;根据第一随机数R和第二随机数N构建第一挑战参数C1和第二挑战参数C2;根据将第一挑战参数C1和第二挑战参数C2形成挑战回应,并将挑战回应发送给证明者;挑战回应用于触发证明者生成验证参数N′;在接收到证明者生成的验证参数N′后,判断验证参数N′和第二随机数N是否相同;在判断验证参数N′和第二随机数N相同的情况下,通过对证明者的身份验证。这种证明方法计算过程简单、计算量较小。此外,在采用加密算法具有较好的安全性的前提下,经过一次挑战验证即可以实现对证明者身份的证明。
Description
技术领域
本公开涉及加密技术领域,尤其涉及一种基于零知识证明的身份认证方法和装置。
背景技术
零知识证明是证明者在不向验证者提供任何有用信息的情况下,向验证者证明某个论断是否正确的方法,其在身份认证领域具有广泛应用。
目前,已经广泛采用的零知识证明算法包括乘法证明协议等类似的算法。此类算法不仅计算过程复杂,其计算量也较大,还需要多轮迭代验证,才能使得欺骗概率下降到足够小。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种。
一方面,本申请提供用于验证者的一种基于零知识证明的身份认证方法,包括:
在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;
根据所述第一随机数R和所述第二随机数N构建第一挑战参数 C1,以及,根据所述第一随机数R构建第二挑战参数C2;C1=N+R*M, C2=R*G;M为所述证明者的公钥,G为基于离散对数的加密算法的基点;
根据将所述第一挑战参数C1和所述第二挑战参数C2形成挑战回应,并将所述挑战回应发送给所述证明者;所述挑战回应用于触发所述证明者生成验证参数N′;
在接收到所述证明者生成的所述验证参数N′后,判断所述验证参数N′和所述第二随机数N是否相同;
在判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
可选地,所述验证请求包括验证随机数Z;
所述生成第一随机数R和第二随机数N,包括:
按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数的第二部分和另一新生成随机数,组合形成所述第二随机数N。
可选地,所述基于离散对数加密算法为基于椭圆曲线离散对数的加密算法。
另一方面,本申请提供一种用于证明者的基于零知识证明的身份认证方法,包括:
生成验证请求,并发送给验证者;所述验证请求用于触发所述验证者生成挑战回应;所述挑战回应包括第一挑战参数C1和第二挑战参数C2;
在接收到所述挑战回应后,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′;C3=s*C2,N′=C1-C3;
将所述验证参数N′发送给所述验证者,以使所述验证者进行身份验证。
可选地,所述验证请求包括验证随机数Z;
将所述验证参数N′发送给所述验证者,包括:
按照预定规则,判断所述验证参数N′是否有所述验证随机数Z 的第二部分;
在所述验证参数N′包含所述验证随机数的第一部分的情况下,将所述验证参数N′发送给所述验证者。
可选地,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,包括:
采用基于椭圆曲线的离散对数加密算法,根据所述第二挑战参数 C2和所述证明者的私钥s计算所述中间参数C3。
再一方面,本申请提供一种基于零知识证明的身份认证方法包括:
证明者生成验证请求,并发送给验证者;
验证者在接收到所述验证请求时,生成第一随机数R和第二随机数N;
所述验证者根据所述第一随机数R和所述第二随机数N构建第一挑战参数C1,以及,根据所述第一随机数R构建第二挑战参数C2; C1=N+R*M,C2=R*G;M为所述证明者的公钥,G为基于离散对数加密算法的基点;
将所述第一挑战参数C1和所述第二挑战参数C2发送给所述证明者;
所述证明者根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′,并将所述验证参数N′发送给所述验证者;C3=s*C2,N′=C1-C3;
所述验证者在判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
可选地,所述验证请求包括验证随机数Z;
所述生成第一随机数R和第二随机数N,包括:
按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数的第二部分和另一新生成随机数,组合形成所述第二随机数N。
再一方面,本申请提供用于验证者的一种基于零知识证明的身份认证装置,包括:
第一随机数生成单元,用于在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;
挑战参数生成单元,用于根据所述第一随机数R和所述第二随机数N构建第一挑战参数C1,以及,根据所述第一随机数R构建第二挑战参数C2;C1=N+R*M,C2=R*G;M为所述证明者的公钥,G为基于离散对数的加密算法的基点;
挑战发送单元,用于根据所述第一挑战参数C1和所述第二挑战参数C2形成挑战回应,并将所述挑战回应发送给所述证明者;所述挑战回应用于触发所述证明者生成验证参数N′;
判断单元,用于在接收到所述证明者生成的所述验证参数N′后,判断所述验证参数N′和所述第二随机数N是否相同;
身份认证单元,用于在所述判断单元判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
可选地,所述验证请求包括验证随机数Z;
第一随机数生成单元,按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数的第二部分和另一新生成随机数,组合形成所述第二随机数N。
本申请提供一种用于证明者的基于零知识证明的身份认证装置,包括:
请求发送单元,用于生成验证请求,并发送给验证者;所述验证请求用于触发所述验证者生成挑战回应;所述挑战回应包括第一挑战参数C1和第二挑战参数C2;
挑战处理单元,用于在接收到所述挑战回应后,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′;C3=s*C2,N′=C1-C3;
回复单元,用于将所述验证参数N′发送给所述验证者,以使所述验证者进行身份验证。
可选的,所述验证请求包括验证随机数Z;
所述回复单元包括验证子单元和回复子单元;
所述验证子单元用于按照预定规则,判断所述验证参数N′是否有所述验证随机数Z的第二部分;
所述回复子单元用于在所述验证参数N′包含所述验证随机数的第一部分的情况下,将所述验证参数N′发送给所述验证者。
本申请提供的基于零知识证明的身份验证方法,在证明者和验证者处均仅通过较少运算就可以实现对证明者的身份认证;这种证明方法计算过程简单、计算量较小。此外,在采用加密算法具有较好的安全性的前提下,经过一次挑战验证即可以实现对证明者身份的证明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是实施例提供的基于零知识证明的身份认证方法流程图;
图2是本申请实施例提供的证明者执行步骤流程图;
图3是本申请实施例提供的验证者执行步骤流程图;
图4是本申请实施例提供的用于验证者的一种基于零知识证明的身份认证装置;
图5是本申请实施例提供的用于证明者的一种基于零知识证明的身份认证装置;
图6是本申请实施例提供的电子设备的结构示意图;
其中:11-第一随机数生成单元,12-挑战参数生成单元,13-挑战发送单元,14-判断单元,15-身份认证单元,16-请求发送单元,17-挑战处理单元,18-回复单元;21-处理器,22-存储器,23-通信接口,24- 总线系统。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本申请实施例提供 一种基于零知识证明的身份认证方法,用于使得验证者实现对证明者的身份认证。
图1是实施例提供的基于零知识证明的身份认证方法流程图。如图1所示,本申请实施例的身份认证方法包括步骤S101-S110。
在对步骤S101-S110做介绍前,首先对方法实施前的准备步骤做介绍。
本申请实施例中需要基于素数群离散对数方法建立私钥公钥对。对应的准备步骤包括初始化步骤和秘钥生成步骤。
初始化步骤:采用系统参数生成算法,输出一个循环群,其中群的阶为大素数p,生成元为g,离散对数加密算法的基点为G,也就是系统参数Param=(G,g,p)。初始化步骤可以是由证明者、验证者或者第三方参与者执行,并申请实施例并不做限定。
秘钥生成步骤:各个参与方(包括证明者和验证者)根据系统参数,在群阶内选择随机数作为私钥s,计算对应各个随机数的公钥M。
在生成公钥M后,各个参与方将公钥M公开,以使得各个其他参与方能够获得自己的公钥。
S101:生成验证请求,并发送给验证者。
步骤S101由证明者执行。验证者在有向验证者证明自己身份的请求时,生成验证请求。
本申请实施例中,验证请求按照标准格式生成,在特定字段表示其为验证请求。
S102:在接收到验证请求时,生成第一随机参数R和第二随机参数N。
步骤S102、随后的S103和S104均由验证者执行。本申请实施例中,根据协议设置方式,验证者生成第一随机数R和第二随机数N的步骤相应的不同。
第一种方式:在能够保证验证者不是恶意参与者,其能够构建满足安全性要求的随机数的情况下,可以由验证者自行生成第一随机数R 和第二随机数N。在此情况下,根据采用的加密算法,需要保证确定第一随机数R和第二随机数N满足特定长度,避免后续处理过程中证明者通过暴力破解方式破解。
第二种方式:如果步骤S101中证明者在发送验证请求时,将一验证随机数Z提供给验证者。根据标准协议的需求,验证者需要根据验证随机数Z和自己生成的随机数组合形成第一随机数R和第二随机数 N。
具体的,按照标准协议,验证者可以将验证随机数分成第一部分和第二部分,将验证随机数的第一部分和一自己新生成的随机数组合形成第一随机数R,将验证随机数的第二部分和一自己新生成的另一随机数组合形成第二随机数N。
比方说,验证随机数Z为Z1|Z2,验证者新生成的两个随机数分别为Y1和Y2,则验证者可以将Z1和Y1组成Z1|Y1作为第一随机数R,可以将Z2和Y2组成Z2|Y2作为第二随机数N。因为第一随机数R和第二随机数N均包含了验证者自己生成的随机数段,所以在后续操作步骤中,如果证明者不具有正确的私钥s,其仅可能采用暴力破解的方式进行相应的运算而得到合理的结果。
在实际应用中,采用第二种方式可以使得第一随机数R和第二随机数N能够满足特定的长度要求,也可以提高使用的安全性,并使得证明者能够检验验证者是否为恶意,此优点在后文中描述。
在前文描述中,用于形成第一随机数R和第二随机数N的两个新生成随机数均是由验证者自己生成;在本申请其他实施中,两个新生成随机数也可以有第三方生成。实际应用中,第三方多为具有权威认证的第三方。触发第三方生成两个新的随机数的可以是证明者,也可以是验证者。
S103:根据第一随机数R和第二随机数构建第一挑战参数C1和第二挑战参数C2。
如图1所示,步骤S103由验证者执行。验证者根据第一随机数R 和第二随机数构建第一挑战参数C1和第二挑战参数C2的步骤包括: (1)采用C1=N+R*M计算得到第一挑战参数C1,M为证明者的公钥; (2)采用C2=R*G计算得到第二挑战参数C2。G为前文确定的离散对数加密算法的基点。
本申请实施例中,“*”表示基于离散对数加密算法中的“点乘”运算,本文中提及的加减法也是离散对数算法中的加减法,并且结果均作了求模处理(即经过mod p)处理。
S104:根据第一挑战参数C1和第二挑战参数C2形成挑战回应,并将挑战回应发送给证明者。
步骤S104中,验证者按照标准格式协议将第一挑战参数C1和第二挑战参数C2填入到挑战回应报文中,随后将挑战回应报文发送给证明者。
S105:在接收到挑战回应后,根据挑战回应中的第一挑战参数C1 和第二挑战参数C2计算验证参数N′。
步骤S105由证明者执行。证明者在接收到挑战回应后,按照标准格式协议提取第一挑战参数C1和第二挑战参数C2。
随后,证明者根据第二挑战参数C2和自己的私钥计算中间参数 C3,C3=s*C2;在确定C3后,根据中间参数C3和第一挑战参数C1 计算验证参数N′,N′=C1-C3。
如果公钥M和私钥s匹配,则采用C3=s*C2=R*M,继而N′=N。
S106:将验证参数N′发送给验证者。
步骤S106中,证明者采用标准格式协议生成返回报文,并将验证参数N′添加到返回报文中,并将返回报文发送给验证者。
对应前文S102提及的第二种方式,在本申请实施例一些应用中,对应是否执行S106和后续的步骤,也可以设定相应的判断条件。具体的可以是:证明者在获得验证参数N′后,可以根据标准格式协议判断N′是否包括验证随机数Z中的第二部分;在验证参数N′包括验证随机数Z的第二部分的情况下,则可以证明验证者是非恶意参与者 (恶意者诸如为想通过较小字段的第一随机参数R和第二随机参数N 获取证明者私钥s的参与方)。
S107:接收返回报文,并提取验证参数N′。
S108:判断验证参数N′和第二随机数N是否相同。若是,执行 S109;若否,执行S110。
S109:通过对证明者的身份验证。
步骤S107-S110均由验证者执行。如前所述,如果证明者为具有相应私钥s的证明者,则证明者生成的验证参数N′和第二随机数N 相同,此时验证者可以确认证明者的身份,也就可以通过身份验证。
具体应用中,通过对证明者的身份验证可以是:证明者根据第一验证参数C1和第二验证参数生成身份凭据,并将身份凭据发送给证明者,或者授予证明者对应的权限。
S110:拒绝通过对证明者的身份验证。
如果证明参数N′和第二随机数N不同,则验证者不能确定证明者是否合法,也就决绝通过对证明者的身份验证。
通过前述步骤S101-S110分析可知,本申请实施例提供的基于零知识证明的身份验证方法,在证明者和验证者处均仅通过较少运算就可以实现对证明者的身份认证;这种证明方法计算过程简单、计算量较小。此外,在采用加密算法具有较好的安全性的前提下,经过一次挑战验证即可以实现对证明者身份的证明。在实际应用中,本申请实施例中证明者和验证者采用的加密算法可以是基于椭圆曲线的离散对数的加密算法。因为椭圆曲线加密算法的安全性很高,并且根据私钥计算公钥的计算复杂度很小,所以其能够满足本申请实施例对计算复杂度较小和安全性有保证的两个要求。在本申请其他实施例中,也可以采用其他的加密算法,例如RSA加密算法。
应当注意的是,基于椭圆曲线的离散对数加密算法在2016年已经成为了国家标准(也就成为了国密算法),并且其安全性得到广泛验证,因此本申请实施例优选采用此算法,以能够满足国内使用需求。
如前文所述,本申请实施例提供的基于零知识证明的身份认证方法包括证明者和验证者两个参与方。实际中,两个参与方均相对于现有技术做了改进。为了更好地确定本申请实施例参与方的执行动作,以下就证明者和验证者的执行步骤再分开简要说明,具体内容可以参见前文表述。
图2是本申请实施例提供的证明者执行步骤流程图。如图2所示,证明者执行步骤包括S201-S204。
S201:生成验证请求,并发送给验证者。
验证请求用于触发验证者生成挑战回应;挑战回应包括第一挑战参数C1和第二挑战参数C2。
S202:在接收到挑战回应后,提取第一挑战参数C1和第二挑战参数C2。
S203:根据第一挑战参数C1和第二挑战参数C2计算验证参数N′。
具体的,根据第二挑战参数C2和证明者的私钥s计算中间参数 C3,C3=s*C2;随后,根据中间参数C3和第一挑战参数C1计算验证参数N′,N′=C1-C3。
S204:将验证参数N′发送给验证者。
验证参数N′用于死的严重者对证明者身份是否合法进行验证,即进行身份证明。
在实际应用中,验证请求中包括随机参数Z。随机参数Z发送给验证者后,用于验证者构建第一验证参数C1和第二验证参数C2,并且经过正确的第一验证参数C1和第二验证参数C2构建的N′具有随机参数Z的部分。在实际应用中,可以在执行S204前判断验证参数N′是否包括随机参数Z的第二部分,在其包括此部分的情况下才认定验证者是非恶意验证者,可以执行步骤S204。
图3是本申请实施例提供的验证者执行步骤流程图。如图3所示,验证者执行步骤包括S301-S304。
S301:在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N。
具体应用中,如果验证请求中包括验证随时数Z,则可以按照预定规则,将验证随机数Z的第一部分和一新生成随机数,组合形成第一随机数R;以及,将验证随机数的第二部分和另一新生成随机数,组合形成第二随机数N。
S302:根据第一随机数R和第二随机数N构建第一挑战参数C1 和第二挑战参数C2。
具体应用中,根据第一随机数R和第二随机数N构建第一挑战参数C1,C1=N+R*M;根据第一随机数R构建第二挑战参数C2,C2=R*G。
S303:根据第一挑战参数C1和第二挑战参数C2形成挑战回应,并将挑战回应发送给证明者。
步骤S303中,验证者按照标准格式协议将第一挑战参数C1和第二挑战参数C2填入到挑战回应报文中,随后将挑战回应报文发送给证明者。挑战回应用于触发验证者生成验证参数N′
S304:在接收到证明者生成的验证参数N′后,判断验证参数N′和第二随机数N是否相同;若是,执行S305;若否,执行S306。
S305:通过对证明者的身份验证。
S306:拒绝通过对证明者的身份验证。
除了提供前述的基于零知识证明的身份认证方法外,本申请实施例还提供基于零知识证明的身份认证装置。身份认证装置和前述的方法采用相同的发明构思,因此下文仅就装置的结构做介绍,相应的技术实现过程和技术效果可以参见前文表述。
图4是本申请实施例提供的用于验证者的一种基于零知识证明的身份认证装置。如图4所示,身份认证装置包括第一随机数生成单元 11、挑战参数生成单元12、挑战发送单元13、判断单元14和身份认证单元15。
第一随机数生成单元11用于在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;
挑战参数生成单元12用于根据第一随机数R和第二随机数N构建第一挑战参数C1,以及,根据第一随机数R构建第二挑战参数C2; C1=N+R*M,C2=R*G;M为证明者的公钥,G为基于离散对数的加密算法的基点;
挑战发送单元13用于根据第一挑战参数C1和第二挑战参数C2 形成挑战回应,并将挑战回应发送给证明者;挑战回应用于触发证明者生成验证参数N′;
判断单元14用于在接收到证明者生成的验证参数N′后,判断验证参数N′和第二随机数N是否相同;
身份认证单元15用于在判断单元14判断验证参数N′和第二随机数N相同的情况下,通过对证明者的身份验证。
在一个具体应用中,验证请求可以包括验证随机数Z;对应的,第一随机数生成单元11可以按照预定规则,将验证随机数Z的第一部分和一新生成随机数,组合形成第一随机数R;以及,将验证随机数的第二部分和另一新生成随机数,组合形成第二随机数N。
图5是本申请实施例提供的用于证明者的一种基于零知识证明的身份认证装置。如图5所示,身份认证装置包括请求发送单元16、挑战处理单元17和回复单元18。
请求发送单元16用于生成验证请求,并发送给验证者;验证请求用于触发验证者生成挑战回应;挑战回应包括第一挑战参数C1和第二挑战参数C2;
挑战处理单元17用于在接收到挑战回应后,根据第二挑战参数 C2和证明者的私钥s计算中间参数C3,以及,根据中间参数C3和第一挑战参数C1计算验证参数N′;C3=s*C2,N′=C1-C3;
回复单元18用于将验证参数N′发送给验证者,以使验证者进行身份验证。
在一个具体应用中,请求发送单元16发送的验证请求包括验证随机数Z,使得验证者将验证随机数Z的第一部分和一新生成随机数,组合形成第一随机数R;以及,将验证随机数的第二部分和另一新生成随机数,组合形成第二随机数N,并生成第一挑战参数C1和第二挑战参数C2。
对应的,回复单元18包括验证子单元和回复子单元;验证子单元用于按照预定规则,判断验证参数N′是否有验证随机数Z的第二部分;回复子单元用于在验证参数N′包含验证随机数的第一部分的情况下,将验证参数N′发送给验证者。
基于前述的发明构思,本申请还提供一种电子设备,电子设备用于实现前述的基于零知识证明的身份认证方法。
图6是本申请实施例提供的电子设备的结构示意图。如图6所示,第一服务器包括至少一个处理器21、至少一个存储器22和至少一个通信接口23。通信接口23,用于与外部设备之间的信息传输。
第一服务器中的各个组件通过总线系统24耦合在一起。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统24除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图5中将各种总线都标为总线系统24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器 (Browser)等,用于实现各种应用任务。实现本公开实施例提供的基于零知识证明的身份认证的方法的程序可以包含在应用程序中。
在本公开实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本公开实施例提供的基于零知识证明的身份认证方法的各个步骤。
本公开实施例提供的解决天窗问题的方法可以应用于处理器21 中,或者由处理器21实现。处理器21可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的解决天窗问题的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行基于零知识证明的身份认证方法的步骤各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种基于零知识证明的身份认证方法,用于验证者,其特征在于,包括:
在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;
根据所述第一随机数R和所述第二随机数N构建第一挑战参数C1,以及,根据所述第一随机数R构建第二挑战参数C2;C1=N+R*M,C2=R*G;M为所述证明者的公钥,G为基于离散对数的加密算法的基点;
根据将所述第一挑战参数C1和所述第二挑战参数C2形成挑战回应,并将所述挑战回应发送给所述证明者;所述挑战回应用于触发所述证明者生成验证参数N′;
在接收到所述证明者生成的所述验证参数N′后,判断所述验证参数N′和所述第二随机数N是否相同;
在判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
2.根据权利要求1所述的方法,其特征在于,所述验证请求包括验证随机数Z;
所述生成第一随机数R和第二随机数N,包括:
按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数Z 的第二部分和另一新生成随机数,组合形成所述第二随机数N;
所述一新生成 随机数和所述另一新生成随机数由所述验证者或者第三方生成。
3.根据权利要求1或2所述的方法,其特征在于,所述基于离散对数加密算法为基于椭圆曲线离散对数的加密算法。
4.一种基于零知识证明的身份认证方法,用于证明者,其特征在于,包括:
生成验证请求,并发送给验证者;所述验证请求用于触发所述验证者生成挑战回应;所述挑战回应包括第一挑战参数C1和第二挑战参数C2;
在接收到所述挑战回应后,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′;C3=s*C2,N′=C1-C3;
将所述验证参数N′发送给所述验证者,以使所述验证者进行身份验证。
5.根据权利要求4所述的方法,其特征在于,所述验证请求包括验证随机数Z;
将所述验证参数N′发送给所述验证者,包括:
按照预定规则,判断所述验证参数N′是否有所述验证随机数Z的第二部分;
在所述验证参数N′包含所述验证随机数的第一部分的情况下,将所述验证参数N′发送给所述验证者。
6.根据权利要求4或5所述的方法,其特征在于,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,包括:
采用基于椭圆曲线的离散对数加密算法,根据所述第二挑战参数C2和所述证明者的私钥s计算所述中间参数C3。
7.一种基于零知识证明的身份认证方法,其特征在于,包括:
证明者生成验证请求,并发送给验证者;
验证者在接收到所述验证请求时,生成第一随机数R和第二随机数N;
所述验证者根据所述第一随机数R和所述第二随机数N构建第一挑战参数C1,以及,根据所述第一随机数R构建第二挑战参数C2;C1=N+R*M,C2=R*G;M为所述证明者的公钥,G为基于离散对数加密算法的基点;
将所述第一挑战参数C1和所述第二挑战参数C2发送给所述证明者;
所述证明者根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′,并将所述验证参数N′发送给所述验证者;C3=s*C2,N′=C1-C3;
所述验证者在判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
8.根据权利要求7所述的方法,其特征在于:所述验证请求包括验证随机数Z;
所述生成第一随机数R和第二随机数N,包括:
按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数Z 的第二部分和另一新生成随机数,组合形成所述第二随机数N;
所述一新生成 随机数和所述另一新生成随机数由所述验证者或者第三方生成。
9.一种基于零知识证明的身份认证装置,用于验证者,其特征在于,包括:
第一随机数生成单元,用于在接收到证明者发起的验证请求时,生成第一随机数R和第二随机数N;
挑战参数生成单元,用于根据所述第一随机数R和所述第二随机数N构建第一挑战参数C1,以及,根据所述第一随机数R构建第二挑战参数C2;C1=N+R*M,C2=R*G;M为所述证明者的公钥,G为基于离散对数的加密算法的基点;
挑战发送单元,用于根据所述第一挑战参数C1和所述第二挑战参数C2形成挑战回应,并将所述挑战回应发送给所述证明者;所述挑战回应用于触发所述证明者生成验证参数N′;
判断单元,用于在接收到所述证明者生成的所述验证参数N′后,判断所述验证参数N′和所述第二随机数N是否相同;
身份认证单元,用于在所述判断单元判断所述验证参数N′和所述第二随机数N相同的情况下,通过对所述证明者的身份验证。
10.根据权利要求9所述的装置,其特征在于,所述验证请求包括验证随机数Z;
第一随机数生成单元,按照预定规则,将所述验证随机数Z的第一部分和一新生成随机数,组合形成所述第一随机数R;以及,将所述验证随机数的第二部分和另一新生成随机数,组合形成所述第二随机数N。
11.一种基于零知识证明的身份认证装置,用于证明者,其特征在于,包括:
请求发送单元,用于生成验证请求,并发送给验证者;所述验证请求用于触发所述验证者生成挑战回应;所述挑战回应包括第一挑战参数C1和第二挑战参数C2;
挑战处理单元,用于在接收到所述挑战回应后,根据所述第二挑战参数C2和所述证明者的私钥s计算中间参数C3,以及,根据中间参数C3和所述第一挑战参数C1计算验证参数N′;C3=s*C2,N′=C1-C3;
回复单元,用于将所述验证参数N′发送给所述验证者,以使所述验证者进行身份验证。
12.根据权利要求11所述的装置,其特征在于,所述验证请求包括验证随机数Z;
所述回复单元包括验证子单元和回复子单元;
所述验证子单元用于按照预定规则,判断所述验证参数N′是否有所述验证随机数Z的第二部分;
所述回复子单元用于在所述验证参数N′包含所述验证随机数的第一部分的情况下,将所述验证参数N′发送给所述验证者。
13.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至8任一项所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809161.0A CN112003705B (zh) | 2020-08-12 | 2020-08-12 | 基于零知识证明的身份认证方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809161.0A CN112003705B (zh) | 2020-08-12 | 2020-08-12 | 基于零知识证明的身份认证方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112003705A CN112003705A (zh) | 2020-11-27 |
CN112003705B true CN112003705B (zh) | 2021-06-08 |
Family
ID=73462475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010809161.0A Active CN112003705B (zh) | 2020-08-12 | 2020-08-12 | 基于零知识证明的身份认证方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112003705B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506128B (zh) * | 2023-03-24 | 2024-03-12 | 中国科学院信息工程研究所 | 一种打包零知识证明方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890763B1 (en) * | 2007-09-14 | 2011-02-15 | The United States Of America As Represented By The Director, National Security Agency | Method of identifying invalid digital signatures involving batch verification |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
CN109963282A (zh) * | 2019-03-28 | 2019-07-02 | 华南理工大学 | 在ip支持的无线传感网络中的隐私保护访问控制方法 |
CN110912713A (zh) * | 2019-12-20 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
-
2020
- 2020-08-12 CN CN202010809161.0A patent/CN112003705B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890763B1 (en) * | 2007-09-14 | 2011-02-15 | The United States Of America As Represented By The Director, National Security Agency | Method of identifying invalid digital signatures involving batch verification |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
CN109963282A (zh) * | 2019-03-28 | 2019-07-02 | 华南理工大学 | 在ip支持的无线传感网络中的隐私保护访问控制方法 |
CN110912713A (zh) * | 2019-12-20 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"基于自证明公钥和零知识证明的身份认证协议";曹炳华; 张红旗;杜学绘;钱雁斌;张文波;《计算机工程》;20090620;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112003705A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Eldefrawy et al. | OTP-based two-factor authentication using mobile phones | |
KR102549272B1 (ko) | 패스워드와 id 기반 서명을 이용한 인증 키 합의 방법 및 장치 | |
CN111147472B (zh) | 一种边缘计算场景下的智能电表轻量级认证方法及系统 | |
KR101486782B1 (ko) | 무한 중첩된 해시 체인들에 의한 1회용 패스워드 인증 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN109861828B (zh) | 一种基于边缘计算的节点接入和节点认证方法 | |
KR20140054151A (ko) | 크레덴셜 검증 | |
Chow et al. | Server-aided signatures verification secure against collusion attack | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
Akram et al. | An anonymous authenticated key-agreement scheme for multi-server infrastructure | |
CN113505382A (zh) | 微服务鉴权方法、电子装置和存储介质 | |
CN112003705B (zh) | 基于零知识证明的身份认证方法和装置 | |
US7975142B2 (en) | Ring authentication method for concurrency environment | |
Bicakci et al. | Server assisted signatures revisited | |
CN113438650B (zh) | 基于区块链的网络设备认证方法及系统 | |
CN111600703B (zh) | 基于sm2的签名方法、系统、电子设备及存储介质 | |
CN112785307A (zh) | 一种请求消息处理方法及装置 | |
CN115442052B (zh) | 一种协同签名方法、系统、设备及计算机可读存储介质 | |
CN116170144A (zh) | 智能电网匿名认证方法、电子设备及存储介质 | |
EP4252384B1 (en) | Methods, devices and system related to a distributed ledger and user identity attribute | |
CN112738043A (zh) | 大数据系统中对用户身份进行合法性认证的方法、系统及相关产品 | |
CN114079573A (zh) | 一种路由器访问方法以及路由器 | |
CN111600704A (zh) | 基于sm2的秘钥交换方法、系统、电子设备及存储介质 | |
CN109995535B (zh) | 一种sip用户认证方法及装置 | |
Wang et al. | Mutual authentication‐based RA scheme for embedded systems |
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 |