CN110120872B - 交互式登录验证装置、方法及计算机可读存储介质 - Google Patents
交互式登录验证装置、方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110120872B CN110120872B CN201910477881.9A CN201910477881A CN110120872B CN 110120872 B CN110120872 B CN 110120872B CN 201910477881 A CN201910477881 A CN 201910477881A CN 110120872 B CN110120872 B CN 110120872B
- Authority
- CN
- China
- Prior art keywords
- random number
- server
- remaining number
- client
- login
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3013—Public 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 involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- 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
- H04L9/3221—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 interactive zero-knowledge proofs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种交互式登录验证方法,包括:当客户端向服务器发起登录请求时,产生随机数一,基于随机数一得到随机数二,基于随机数二及服务器存储的参数一、参数二得到剩余数一;控制服务器产生随机数三,并计算得到剩余数二;基于剩余数二、随机数二及参数二得到剩余数三;基于剩余数一、随机数三及参数二得到剩余数四;若剩余数三等于剩余数四,则控制服务器产生随机数四,并计算得到剩余数五;基于剩余数五、随机数一及参数二计算得到剩余数六;基于公钥、随机数四及参数二计算得到剩余数七;若剩余数六等于剩余数七,则认证通过。本发明还提供一种交互式登录验证装置及计算机可读存储介质。本发明可在服务器不知道登录密钥的情形下,进行用户身份验证。
Description
技术领域
本发明涉及互联网安全技术领域,尤其涉及一种交互式登录验证装置、方法及计算机可读存储介质。
背景技术
现有的很多登录网站,在网站的服务器上存储了用户密码的哈希值,为了验证用户知道密码,通常采用的验证方式是服务器对用户登录时输入的密码进行哈希值计算,并与备份的密码计算结果进行对比来验证用户是否知道密码,但该种方式的弊病在于服务器在计算时就可以知道用户的密码,一旦服务器被攻击,用户的密码可能被泄漏出去。如果通过客户端自行计算密码的哈希值的方式,会大量消耗客户端自身的计算资源,导致每次登录时间过长,也不利于用户体验。
发明内容
有鉴于此,有必要提供一种交互式登录验证装置、方法及计算机可读存储介质,其可实现在服务器不知道用户登录密钥的前提下,进行用户身份的验证,提高了用户信息的安全性。
本发明一实施方式提供一种交互式登录验证方法,用于对客户端发送至服务器的登录密钥进行认证,所述登录密钥对应的一公钥Y=gx(mod n),其中x表示所述登录密钥,g为服务器存储的第一公共参数,n为服务器存储的第二公共参数,且n为素数,g为n的一个原根,x与n-1互素,所述方法包括:
当所述客户端向所述服务器发起登录请求时,控制所述客户端产生第一随机数,并根据所述第一随机数及预设随机算法计算得到第二随机数;
基于所述第二随机数、所述第一公共参数及所述第二公共参数计算得到第一剩余数,并将所述第一剩余数发送至所述服务器;
控制所述服务器产生第三随机数,并基于所述第三随机数、所述第一公共参数及所述第二公共参数计算得到第二剩余数,并将所述第二剩余数发送至所述客户端;
基于所述第二剩余数、所述第二随机数及所述第二公共参数计算得到第三剩余数,并将所述第三剩余数发送至所述服务器;
基于所述第一剩余数、所述第三随机数及所述第二公共参数计算得到第四剩余数;
证明所述第三剩余数等于所述第四剩余数;
若所述第三剩余数被证明等于所述第四剩余数,则控制所述服务器产生第四随机数,基于所述第一剩余数、所述第四随机数及所述第二公共参数计算得到第五剩余数,并将所述第五剩余数发送至所述客户端;
基于所述第五剩余数、所述第一随机数及所述第二公共参数计算得到第六剩余数,并将所述第六剩余数发送至所述服务器;
基于所述公钥、所述第四随机数及所述第二公共参数计算得到第七剩余数;
证明所述第六剩余数等于所述第七剩余数;及
若所述第六剩余数被证明等于所述第七剩余数,则判定所述客户端发送至所述服务器的登录密钥认证通过。
优选地,第二随机数通过以下公式计算得到:
i=x*[mod(n-1)]/j,其中i表示所述第二随机数,j表示所述第一随机数。
优选地,所述根据所述第一随机数及预设随机算法计算得到第二随机数的步骤之后还包括:
判断所述第一随机数及所述第二随机数是否大于预设值;
若所述第一随机数及所述第二随机数均大于所述预设值,则进行所述第一剩余数的计算步骤;
若所述第一随机数和/或所述第二随机数不大于所述预设值,则控制所述客户端重新产生所述第一随机数,并重新计算所述第二随机数。
优选地,所述第二公共参数远大于所述预设值。
优选地,所述第一剩余数Y1通过以下公式计算得到:Y1=gi(mod n),所述第二剩余数Y2通过以下公式计算得到:Y2=gr(mod n),所述第三剩余数Y3通过以下公式计算得到:Y3=(Y2)i(mod n),所述第四剩余数Y4通过以下公式计算得到:Y4=(Y1)r(mod n),所述第五剩余数Y5通过以下公式计算得到:Y5=(Y1)s(mod n),所述第六剩余数Y6通过以下公式计算得到:Y6=(Y5)j(mod n),所述第七剩余数Y7通过以下公式计算得到:Y7=(Y)s(mod n);
其中,r表示所述第三随机数,s表示所述第四随机数。
优选地,所述证明所述第三剩余数等于所述第四剩余数的步骤之后还包括:
若所述第三剩余数被证明不等于所述第四剩余数,则判定所述客户端发送至所述服务器的登录密钥认证不通过。
优选地,所述证明所述第六剩余数等于所述第七剩余数的步骤之后包括:
若所述第六剩余数被证明不等于所述第七剩余数,则判定所述客户端发送至所述服务器的登录密钥认证不通过。
优选地,所述公钥在所述登录密钥注册时产生,所述公钥存储于所述服务器。
本发明一实施方式提供一种交互式登录验证装置,所述装置包括处理器及存储器,所述存储器上存储有若干计算机程序,所述处理器用于执行存储器中存储的计算机程序时实现上述交互式登录验证方法的步骤。
本发明一实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,多条所述指令可被一个或者多个处理器执行,以实现上述的交互式登录验证方法的步骤。
与现有技术相比,上述交互式登录验证装置、方法及计算机可读存储介质,基于离散对数的零知识证明,实现在服务器不知道用户登录密钥的情况下,且服务器在验证过程中没有获取用户登录密钥相关的任何信息,进行用户登录的验证,由于服务器并未存储用户登录密钥的信息,可避免服务器被攻击导致用户登录密钥泄露的情形,并且验证交互次数并不多,数据处理的软硬件资源开销较小,可实现较短时间的登录,且可有效地保证用户的个人信息安全。
附图说明
图1是本发明一实施方式的交互式登录验证系统的架构示意图。
图2是本发明一实施方式的交互式登录验证装置的功能模块图。
图3是本发明一实施方式的交互式登录验证程序的功能模块图。
图4是本发明一实施方式的交互式登录验证方法的流程图。
主要元件符号说明
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
请参阅图1,为本发明交互式登录验证系统较佳实施例的示意图。
所述交互式登录验证系统1包括交互式登录验证装置100、客户端200及服务器300。所述交互式登录验证装置100可用于对所述客户端200发送至所述服务器300的登录密钥进行身份验证。所述客户端200可以是手机、电脑、智能手表等用户设备。所述服务器300可以是用来提供网上信息浏览服务的服务器,比如网站服务器、APP服务器等。所述登录密钥可以是用户账号与密码。
举例而言,当用户期望通过客户端200来登录网站A时,该网站A存放于服务器300中,用户可以在客户端200内输入先前已在该网站注册的登录密钥,然后通过网络将用户输入的登录密钥发送至所述服务器300,所述交互式登录验证装置100可以实现对该登录密钥进行登录身份验证,以判断用户输入的登录密钥是否正确。所述交互式登录验证装置100可以在服务器300不知道用户登录密钥的情况下,进行用户登录的验证。
在一实施方式中,所述交互式登录验证装置100可以集成在所述服务器300中。在本发明的其他实施方式中,所述交互式登录验证装置100还可以部分集成在所述客户端200中,部分集成在所述服务器300中。
请同时参阅图2,所述交互式登录验证装置100可以包括存储器10、处理器20以及存储在所述存储器10中并可在所述处理器20上运行的交互式登录验证程序30。所述处理器20执行所述交互式登录验证程序30时实现交互式登录验证方法实施例中的步骤,例如图4所示的步骤S400~S422。或者,所述处理器20执行所述交互式登录验证程序30时实现图3中各模块的功能,例如模块101~111。
所述交互式登录验证程序30可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器10中,并由所述处理器20执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述交互式登录验证程序30在所述交互式登录验证装置100中的执行过程。例如,所述交互式登录验证程序30可以被分割成图3中的第一控制模块101、第一计算模块102、第二控制模块103、第二计算模块104、第三计算模块105、第一证明模块106、第三控制模块107、第四计算模块108、第五计算模块109、第二证明模块110及判定模块111。各模块具体功能参见下图3中各模块的功能。
本领域技术人员可以理解,所述示意图仅是交互式登录验证装置100的示例,并不构成对交互式登录验证装置100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述交互式登录验证装置100还可以包括网络接入设备、总线等。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器20也可以是任何常规的处理器等,所述处理器20可以利用各种接口和总线连接交互式登录验证装置100的各个部分。
所述存储器10可用于存储所述计算机程序30和/或模块,所述处理器20通过运行或执行存储在所述存储器10内的计算机程序和/或模块,以及调用存储在存储器10内的数据,实现所述交互式登录验证装置100的各种功能。所述存储器10可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
图3为本发明交互式登录验证程序较佳实施例的功能模块图。
参阅图3所示,交互式登录验证程序30可以包括第一控制模块101、第一计算模块102、第二控制模块103、第二计算模块104、第三计算模块105、第一证明模块106、第三控制模块107、第四计算模块108、第五计算模块109、第二证明模块110及判定模块111。在一实施方式中,上述模块可以为存储于所述存储器10中且可被所述处理器20调用执行的可程序化软件指令。可以理解的是,在其他实施方式中,上述模块也可为固化于所述处理器20中的程序指令或固件(firmware)。
当所述客户端200向所述服务器300发起登录请求时,所述第一控制模块101用于控制所述客户端200产生第一随机数j,并根据所述第一随机数j及预设随机算法计算得到第二随机数i。
在一实施方式中,当所述客户端200向所述服务器300发起登录请求时,所述第一控制模块101控制所述客户端200产生第一随机数j,所述第一随机数j优选为正整数。所述客户端200可以根据所述第一随机数j及预设随机算法计算得到第二随机数i。所述登录密钥以x表示,x可以是登录密钥的哈希值。登录密钥x对应的一公钥Y可以表示为Y=gx(modn),其中g为服务器300存储的第一公共参数,n为服务器300存储的第二公共参数,且n为素数,g为n的一个原根,x与n-1互素。
在一实施方式中,所述第二公共参数n优选为一大素数,可以提高离散对数计算的困难性,进而提高验证系统的安全性。比如所述第二公共参数n可以是大于100的素数。
在一实施方式中,公钥Y可以为用户在注册该登录密钥x时由客户端200计算得到,并将公钥Y存储到服务器300中,且服务器300不会存储登录密钥x,避免服务器300被攻击时,导致用户的登录密钥x泄露。
在一实施方式中,所述预设随机算法优选是:i*j=x*[mod(n-1)]。由于第一随机数j及第二公共参数n已知,且用户在发起登录请求时,已在客户端200中输入了登录密钥x,进而所述客户端200可以根据该公式:i*j=x*[mod(n-1)]计算得到第二随机数i。
在一实施方式中,当所述客户端200计算得到第二随机数i后,所述第一控制模块101还用于判断所述第一随机数j及所述第二随机数i是否大于预设值,若所述第一随机数j及所述第二随机数i均大于所述预设值,则进行下述的第一剩余数计算;若所述第一随机数j和/或所述第二随机数i不大于所述预设值,则控制所述客户端200重新产生所述第一随机数j,并根据所述预设随机算法重新计算得到所述第二随机数i。
在一实施方式中,所述预设值可以根据实际的运用场景进行设定,比如,所述预设值可以设置为3。若所述第一随机数j及所述第二随机数i均大于3,则进行第一剩余数的计算;若所述第一随机数j和/或所述第二随机数i不大于3,则控制所述客户端200重新产生所述第一随机数j,并根据所述预设随机算法重新计算得到所述第二随机数i。
所述第一计算模块102用于基于所述第二随机数i、所述第一公共参数g及所述第二公共参数n计算得到第一剩余数Y1,并将所述第一剩余数Y1发送至所述服务器300。
在一实施方式中,所述第一计算模块102可以控制所述客户端200基于所述第二随机数i、所述第一公共参数g及所述第二公共参数n计算得到第一剩余数Y1,并将计算得到的所述第一剩余数Y1发送至所述服务器300。所述第一计算模块102优选采用以下的计算公式计算得到所述第一剩余数Y1:Y1=gi(mod n)。
所述第二控制模块103用于控制所述服务器300产生第三随机数r,并基于所述第三随机数r、所述第一公共参数g及所述第二公共参数n计算得到第二剩余数Y2,并将所述第二剩余数Y2发送至所述客户端200。
在一实施方式中,所述第二控制模块103可以控制所述服务器300基于所述第三随机数r、所述第一公共参数g及所述第二公共参数n计算得到第二剩余数Y2,并将所述第二剩余数Y2发送至所述客户端200。所述第二控制模块103优选控制所述服务器300基于以下的计算公式计算得到所述第二剩余数Y2:Y2=gr(mod n)。
所述第二计算模块104用于基于所述第二剩余数Y2、所述第二随机数i及所述第二公共参数n计算得到第三剩余数Y3,并将所述第三剩余数Y3发送至所述服务器300。
在一实施方式中,所述第二计算模块104可以控制所述客户端200基于所述第二剩余数Y2、所述第二随机数i及所述第二公共参数n计算得到所述第三剩余数Y3,并将所述第三剩余数Y3发送至所述服务器300。所述第二计算模块104优选采用以下的计算公式计算得到所述第三剩余数Y3:Y3=(Y2)i(mod n)。
所述第三计算模块105用于基于所述第一剩余数Y1、所述第三随机数r及所述第二公共n参数计算得到第四剩余数Y4。
在一实施方式中,所述第三计算模块105可以控制所述服务器300基于所述第一剩余数Y1、所述第三随机数r及所述第二公共n参数计算得到第四剩余数Y4。所述第三计算模块105优选采用以下的计算公式计算得到所述第四剩余数Y4:Y4=(Y1)r(mod n)。
所述第一证明模块106用于证明所述第三剩余数Y3等于所述第四剩余数Y4。
在一实施方式中,所述第一证明模块106可以比较所述第三剩余数Y3是否与所述第四剩余数Y4相等,以证明(Y1)r(mod n)与(Y2)i(mod n)相等,如果证明得到Y3=Y4,则所述服务器300相信客户端200发过来的Y1的确是gi(mod n),并进行后续流程的验证;如果证明得到Y3≠Y4,则所述服务器300认为客户端200发过来的Y1不是gi(mod n),本次登录密钥认证不通过。
在一实施方式中,所述第三剩余数Y3等于所述第四剩余数Y4的正确性的证明过程如下:Y4=(Y1)r(mod n)=[gi(mod n]r(mod n)=gi*r(mod n)(mod n)=(Y2)i(mod n)=Y3。
所述第三控制模块107用于控制所述服务器300产生第四随机数s,基于所述第一剩余数Y1、所述第四随机数s及所述第二公共参数n计算得到第五剩余数Y5,并将所述第五剩余数Y5发送至所述客户端200。
在一实施方式中,当所述第三剩余数Y3被证明等于所述第四剩余数Y4时,所述第三控制模块107控制所述服务器300产生第四随机数s,基于所述第一剩余数Y1、所述第四随机数s及所述第二公共参数n计算得到所述第五剩余数Y5,并将所述第五剩余数Y5发送至所述客户端200。所述第三控制模块107优选控制所述服务器300基于以下的计算公式计算得到所述第五剩余数Y5:Y5=(Y1)s(mod n)。
在一实施方式中,所述第三随机数r、所述第四随机数s优选为正整数。
所述第四计算模块108用于基于所述第五剩余数Y5、所述第一随机数j及所述第二公共参数n计算得到第六剩余数Y6,并将所述第六剩余数Y6发送至所述服务器300。
在一实施方式中,所述第四计算模块108可以控制所述客户端200基于所述第五剩余数Y5、所述第一随机数j及所述第二公共参数n计算得到所述第六剩余数Y6,并将所述第六剩余数Y6发送至所述服务器300。所述第四计算模块108可以基于以下的计算公式计算得到所述第六剩余数Y6:Y6=(Y5)j(mod n)。
所述第五计算模块109用于基于所述公钥Y、所述第四随机数s及所述第二公共参数n计算得到第七剩余数Y7。
在一实施方式中,所述第五计算模块109可以控制所述服务器300基于所述公钥Y、所述第四随机数s及所述第二公共参数n计算得到所述第七剩余数Y7。所述第五计算模块109可以基于以下的计算公式计算得到所述第七剩余数Y7:Y7=(Y)s(mod n)。
所述第二证明模块110用于证明所述第六剩余数Y6等于所述第七剩余数Y7。
在一实施方式中,所述第二证明模块110可以比较所述第六剩余数Y6是否与所述第七剩余数Y7相等,以证明(Y5)j(mod n)与(Y)s(mod n)相等,如果证明得到Y6=Y7,则所述服务器300相信客户端200的确拥有正确的登录密钥x,用户身份验证通过,此时,用户可以通过所述客户端200成功登录至所述服务器300;如果证明得到Y6≠Y7,则所述服务器300认为客户端200未拥有正确的登录密钥x,本次登录密钥认证不通过,拒绝用户登录。
在一实施方式中,所述第六剩余数Y6等于所述第七剩余数Y7的正确性的证明过程如下:Y6=(Y5)j(mod n)=[(Y1)s(mod n)]j(mod n)=[(gi(mod n))s(mod n)]j(mod n)=(gi*s(mod n))j(mod n)=gi*j*s(mod n)(mod n)=(Y)s(mod n)=Y7。
所述判定模块111用于在所述第六剩余数被证明等于所述第七剩余数时,判定所述客户端200发送至所述服务器300的登录密钥认证通过。
在一实施方式中,当所述第六剩余数被证明等于所述第七剩余数时,所述判定模块111判定所述客户端200发送至所述服务器300的登录密钥认证通过,此时,用户可以通过所述客户端200成功登录至所述服务器300。当所述第六剩余数被证明不等于所述第七剩余数时,所述判定模块111判定所述客户端200发送至所述服务器300的登录密钥认证不通过,此时,所述服务器300将会拒绝所述客户端200的本次登录请求。
在一实施方式中,当所述服务器300拒绝所述客户端200的本次登录请求后,若接收到该客户端200以其他登录方式的登录请求后,向该客户端200索取比正常登录模式更多的验证信息。举例而言,当所述服务器300拒绝所述客户端200的本次登录请求后,客户端200可能会以其他的登录方式向所述服务器300再次发送登录请求,假设客户端200以登录方式A的形式再次向所述服务器300发送登录请求,此时,服务器300可以向该客户端200索取比正常使用登录方式A进行登录更多的验证信息。比如,正常使用登录方式A进行登录不需要验证密保问题,而在该情形下,当使用登录方式A进行登录时,还需要验证密保问题。
图4为本发明一实施方式中交互式登录验证方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S400,当所述客户端200向所述服务器300发起登录请求时,控制所述客户端200产生第一随机数,并根据所述第一随机数及预设随机算法计算得到第二随机数。
步骤S402,基于所述第二随机数及服务器300存储的第一公共参数、第二公共参数计算得到第一剩余数,并将所述第一剩余数发送至所述服务器300。
步骤S404,控制所述服务器300产生第三随机数,并基于所述第三随机数、所述第一公共参数及所述第二公共参数计算得到第二剩余数,并将所述第二剩余数发送至所述客户端200。
步骤S406,基于所述第二剩余数、所述第二随机数及所述第二公共参数计算得到第三剩余数,并将所述第三剩余数发送至所述服务器300。
步骤S408,基于所述第一剩余数、所述第三随机数及所述第二公共参数计算得到第四剩余数。
步骤S410,证明所述第三剩余数等于所述第四剩余数。
步骤S412,若所述第三剩余数被证明等于所述第四剩余数,则控制所述服务器300产生第四随机数,基于所述第一剩余数、所述第四随机数及所述第二公共参数计算得到第五剩余数,并将所述第五剩余数发送至所述客户端200。若所述第三剩余数被证明不等于所述第四剩余数,则跳转至步骤S422。
步骤S414,基于所述第五剩余数、所述第一随机数及所述第二公共参数计算得到第六剩余数,并将所述第六剩余数发送至所述服务器300。
步骤S416,基于所述公钥、所述第四随机数及所述第二公共参数计算得到第七剩余数。
步骤S418,证明所述第六剩余数等于所述第七剩余数。
步骤S420,若所述第六剩余数被证明等于所述第七剩余数,则判定所述客户端200发送至所述服务器300的登录密钥认证通过。
步骤S422,若所述第六剩余数被证明不等于所述第七剩余数,则判定所述客户端200发送至所述服务器300的登录密钥认证不通过。
上述交互式登录验证装置、方法及计算机可读存储介质,基于离散对数的零知识证明,实现在服务器不知道用户登录密钥的情况下,且服务器在验证过程中没有获取用户登录密钥相关的任何信息,进行用户登录的验证,由于服务器并未存储用户登录密钥的信息,可避免服务器被攻击导致用户登录密钥泄露的情形,并且验证交互次数并不多,数据处理的软硬件资源开销较小,可实现较短时间的登录,且可有效地保证用户的个人信息安全。
对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明所公开的范围。
Claims (8)
1.一种交互式登录验证方法,用于对客户端发送至服务器的登录密钥进行认证,其特征在于,所述登录密钥对应的一公钥Y=gx(mod n),其中x表示所述登录密钥,g为所述服务器存储的第一公共参数,n为所述服务器存储的第二公共参数,且n为素数,g为n的一个原根,x与n-1互素,所述方法包括:
当所述客户端向所述服务器发起登录请求时,控制所述客户端产生第一随机数,并根据所述第一随机数及预设随机算法计算得到第二随机数;
判断所述第一随机数及所述第二随机数是否大于预设值;
若所述第一随机数及所述第二随机数均大于所述预设值,控制所述客户端基于所述第二随机数、所述第一公共参数及所述第二公共参数计算得到第一剩余数,并将所述第一剩余数发送至所述服务器;
控制所述服务器产生第三随机数,并基于所述第三随机数、所述第一公共参数及所述第二公共参数计算得到第二剩余数,并将所述第二剩余数发送至所述客户端;
控制所述客户端基于所述第二剩余数、所述第二随机数及所述第二公共参数计算得到第三剩余数,并将所述第三剩余数发送至所述服务器;
控制所述服务器基于所述第一剩余数、所述第三随机数及所述第二公共参数计算得到第四剩余数;
证明所述第三剩余数等于所述第四剩余数;
若所述第三剩余数被证明等于所述第四剩余数,则控制所述服务器产生第四随机数,并基于所述第一剩余数、所述第四随机数及所述第二公共参数计算得到第五剩余数,并将所述第五剩余数发送至所述客户端;
控制所述客户端基于所述第五剩余数、所述第一随机数及所述第二公共参数计算得到第六剩余数,并将所述第六剩余数发送至所述服务器;
控制所述服务器基于所述公钥、所述第四随机数及所述第二公共参数计算得到第七剩余数;
证明所述第六剩余数等于所述第七剩余数;及
若所述第六剩余数被证明等于所述第七剩余数,则判定所述客户端发送至所述服务器的登录密钥认证通过;
其中,第二随机数通过以下公式计算得到:i=x*[mod(n-1)]/j,所述第一剩余数Y1通过以下公式计算得到:Y1=gi(mod n),所述第二剩余数Y2通过以下公式计算得到:Y2=gr(modn),所述第三剩余数Y3通过以下公式计算得到:Y3=(Y2)i(mod n),所述第四剩余数Y4通过以下公式计算得到:Y4=(Y1)r(mod n),所述第五剩余数Y5通过以下公式计算得到:Y5=(Y1)s(mod n),所述第六剩余数Y6通过以下公式计算得到:Y6=(Y5)j(mod n),所述第七剩余数Y7通过以下公式计算得到:Y7=(Y)s(mod n);i表示所述第二随机数,j表示所述第一随机数,r表示所述第三随机数,s表示所述第四随机数。
2.如权利要求1所述的方法,其特征在于,所述判断所述第一随机数及所述第二随机数是否大于预设值的步骤之后还包括:
若所述第一随机数和/或所述第二随机数不大于所述预设值,则控制所述客户端重新产生所述第一随机数,并重新计算所述第二随机数。
3.如权利要求1所述的方法,其特征在于,所述第二公共参数为大于100的素数。
4.如权利要求1所述的方法,其特征在于,所述证明所述第三剩余数等于所述第四剩余数的步骤之后还包括:
若所述第三剩余数被证明不等于所述第四剩余数,则判定所述客户端发送至所述服务器的登录密钥认证不通过。
5.如权利要求1所述的方法,其特征在于,所述证明所述第六剩余数等于所述第七剩余数的步骤之后包括:
若所述第六剩余数被证明不等于所述第七剩余数,则判定所述客户端发送至所述服务器的登录密钥认证不通过。
6.如权利要求1所述的方法,其特征在于,所述公钥在所述登录密钥注册时产生,所述公钥存储于所述服务器。
7.一种交互式登录验证装置,所述装置包括处理器及存储器,所述存储器上存储有若干计算机程序,其特征在于,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6任一项所述的交互式登录验证方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,多条所述指令可被一个或者多个处理器执行,以实现如权利要求1-6任一项所述的交互式登录验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477881.9A CN110120872B (zh) | 2019-06-03 | 2019-06-03 | 交互式登录验证装置、方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477881.9A CN110120872B (zh) | 2019-06-03 | 2019-06-03 | 交互式登录验证装置、方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110120872A CN110120872A (zh) | 2019-08-13 |
CN110120872B true CN110120872B (zh) | 2020-02-11 |
Family
ID=67523693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910477881.9A Active CN110120872B (zh) | 2019-06-03 | 2019-06-03 | 交互式登录验证装置、方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110120872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277571A (zh) * | 2020-01-13 | 2020-06-12 | 熊国华 | 一种基于零知识证明的企业app登录管理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116281A (zh) * | 2005-02-10 | 2008-01-30 | 国际商业机器公司 | 询问-应答签名和安全迪菲-海尔曼协议 |
CN102231666A (zh) * | 2011-06-29 | 2011-11-02 | 电子科技大学 | 基于强素数的零知识身份认证方法 |
CN107995151A (zh) * | 2016-10-27 | 2018-05-04 | 腾讯科技(深圳)有限公司 | 登录验证方法、装置及系统 |
CN108769061A (zh) * | 2018-06-25 | 2018-11-06 | 北京奇虎科技有限公司 | 登录方法、登录验证方法以及相应的装置、电子设备 |
CN109450641A (zh) * | 2018-10-25 | 2019-03-08 | 烟台市奥境数字科技有限公司 | 一种高端模具信息管理系统访问控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200820108A (en) * | 2006-05-24 | 2008-05-01 | Ibm | Method for automatically validating a transaction, electronic payment system and computer program |
-
2019
- 2019-06-03 CN CN201910477881.9A patent/CN110120872B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116281A (zh) * | 2005-02-10 | 2008-01-30 | 国际商业机器公司 | 询问-应答签名和安全迪菲-海尔曼协议 |
CN102231666A (zh) * | 2011-06-29 | 2011-11-02 | 电子科技大学 | 基于强素数的零知识身份认证方法 |
CN107995151A (zh) * | 2016-10-27 | 2018-05-04 | 腾讯科技(深圳)有限公司 | 登录验证方法、装置及系统 |
CN108769061A (zh) * | 2018-06-25 | 2018-11-06 | 北京奇虎科技有限公司 | 登录方法、登录验证方法以及相应的装置、电子设备 |
CN109450641A (zh) * | 2018-10-25 | 2019-03-08 | 烟台市奥境数字科技有限公司 | 一种高端模具信息管理系统访问控制方法 |
Non-Patent Citations (1)
Title |
---|
基于零知识证明和离散对数的认证机制的研究;周先存;《中国优秀硕士学位论文全文数据库(电子期刊)》;20050615;I138-23 * |
Also Published As
Publication number | Publication date |
---|---|
CN110120872A (zh) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10609039B2 (en) | Traitor tracing for obfuscated credentials | |
CN109413032B (zh) | 一种单点登录方法、计算机可读存储介质及网关 | |
US20190386975A1 (en) | Authentication method and device, and blockchain-based authentication data processing method and device | |
US10382426B2 (en) | Authentication context transfer for accessing computing resources via single sign-on with single use access tokens | |
US8584224B1 (en) | Ticket based strong authentication with web service | |
CN110061842B (zh) | 带外远程认证 | |
US8819801B2 (en) | Secure machine enrollment in multi-tenant subscription environment | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
CN111431844B (zh) | 一种权限认证方法及装置 | |
US11930116B2 (en) | Securely communicating service status in a distributed network environment | |
WO2020173019A1 (zh) | 访问凭证验证方法、装置、计算机设备及存储介质 | |
US9467442B2 (en) | Automated step-up digital certificate installation process | |
EP3100196A1 (en) | Authentication sequencing based on normalized levels of assurance of identity services | |
US9154497B1 (en) | Maintaining accountability of a shared password among multiple users | |
CN110120872B (zh) | 交互式登录验证装置、方法及计算机可读存储介质 | |
CN111125665A (zh) | 认证方法及设备 | |
CN114510701A (zh) | 单点登录方法、装置、设备及存储介质 | |
TW202013233A (zh) | 資料處理 | |
US8875244B1 (en) | Method and apparatus for authenticating a user using dynamic client-side storage values | |
CN113901429A (zh) | 多租户系统的访问方法及装置 | |
US10979420B2 (en) | Method for authenticating with a password comprising a salt | |
CN116707758A (zh) | 可信计算设备的认证方法、设备和服务器 | |
CN115935318A (zh) | 一种信息处理方法、装置、服务器、客户端及存储介质 | |
EP3785410B1 (en) | Validation of short authentication data with a zero knowledge proof | |
JP2019134333A (ja) | 情報処理システム、クライアント装置、認証認可サーバー、制御方法とそのプログラム |
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 |