CN109379176B - 一种抗口令泄露的认证与密钥协商方法 - Google Patents
一种抗口令泄露的认证与密钥协商方法 Download PDFInfo
- Publication number
- CN109379176B CN109379176B CN201811503473.8A CN201811503473A CN109379176B CN 109379176 B CN109379176 B CN 109379176B CN 201811503473 A CN201811503473 A CN 201811503473A CN 109379176 B CN109379176 B CN 109379176B
- Authority
- CN
- China
- Prior art keywords
- hidden information
- user
- password
- key
- information
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/3236—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 cryptographic hash functions
Abstract
本发明公开了一种抗口令泄露的认证与密钥协商方法,包括六个部分:系统初始化阶段、用户注册阶段、用户登录阶段、用户认证阶段、密码更换阶段、密钥更换阶段。本发明可以帮助用户与服务器高效的完成相互认证与会话密钥的协商,并可以有效的抵抗侧信道攻击,具有很高的实用性。
Description
技术领域
本发明属于信息安全技术领域,涉及一种抗口令泄露的认证与密钥协商方法,特别涉及针对用户口令使用的特点、用户隐私保护的需要、抵御侧信道攻击的需求和方法效率的限制,使用口令拆分方法的一种抗口令泄露的认证与密钥协商方法。
背景技术
随着计算机,移动设备和互联网技术的发展,人们越来越多地通过网络与他人交流。在沟通之前,有一个不容忽视的步骤是认证。没有认证的通信将失去其实际意义。目前大多数种类的认证都是通过使用验证用户名和口令来实现。其中口令通常易于记忆,并且可以方便地使用。在日常生活中人们几乎每天都使用他们的口令。但为了便于记忆和使用,口令经常短而低熵。恶意攻击者可能通过口令猜测攻击成功猜出合法用户的密码。为了抵抗口令猜测攻击,普遍的方法是增加口令的长度和口令的组成类型。
随着计算机和移动设备的数量日益增加,攻击方法不再攻击协议的漏洞,而是考虑包括定时信息,电磁辐射和功耗信息的泄露等侧信道攻击。而针对口令的主要攻击是口令猜测攻击。在协议的整个执行过程中,如果口令多次参与计算,其泄露概率因为将大大增加。如果口令有轻微泄露,猜测密码的成功将大大提高,甚至可以将猜测成功的所需次数直接减少至个位数。
现有的抗口令泄露认证密钥协商协议利用抗口令泄露的加密/解密算法或签名/验证算法来实现防止泄露的目标。但使用这些算法将严重影响要协议的高效性。因此如何设计独立于抗泄露加密/解密算法或签名/验证算法的高效抗口令泄露认证与密钥协商方法是一个值得深入研究的问题。
发明内容
为了解决上述的技术问题,本发明提供了一种抗口令泄露的认证与密钥协商方法。
本发明所采用的技术方案是:一种抗口令泄露的认证与密钥协商方法,其特征在于,包括以下步骤:
步骤1:初始化,服务器生成私钥和公钥;
具体实现包括以下子步骤:
步骤1.1:服务器确定相关公共参数,包括群的生成元、群的阶,并将所有公共参数公开;
步骤1.2:服务器选择随机的大素数作为私钥;
步骤1.3:服务器使用步骤1.2中私钥对步骤1.1中生成元计算模幂得到服务器公钥,并将公钥公开;
步骤2:用户注册;
具体实现包括以下子步骤:
步骤2.1:用户选择用户名、口令和用户密钥;
步骤2.2:将选择的口令和用户密钥分别对步骤1.1中生成元计算模幂进行隐藏处理得到口令隐藏信息和用户密钥隐藏信息;
步骤2.3:将步骤2.1中用户名、步骤2.2中口令隐藏信息和用户密钥隐藏信息通过安全通道传输给服务器;
步骤2.4:在接收到用户的信息后,服务器将步骤1.2中服务器私钥分别对步骤2.2中口令隐藏信息和用户密钥隐藏信息计算模幂,进行二次隐藏处理得到口令二次隐藏信息和用户密钥二次隐藏信息;
步骤2.5:将步骤2.1中用户名、步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息储存至数据库中;
步骤2.6:生成一张包括步骤1.1中生成元、步骤2.2中用户密钥隐藏信息以及步骤2.4中用户密钥二次隐藏信息的智能卡,并将它通过安全通道交付用户手中;
步骤3:用户登录;
具体实现包括以下子步骤:
步骤3.1:用户将智能卡插入智能卡读卡器,同时输入用户名,口令以及用户密钥;
步骤3.2:使用用户密钥将用户的口令分解为两个和用户密钥相关的伪随机数:x1+kU·x2=PWU;其中x1、x2是得到的两个伪随机数,kU是用户密钥,PWU是用户的口令;
步骤3.3:将智能卡中关于用户密钥和口令的内容删除;
步骤4:认证与协商;
具体实现包括以下子步骤:
步骤4.1:用户选择一个随机数,利用模幂运算将该随机数、步骤3.2中两个伪随机数分别进行隐藏得到随机数隐藏信息和两个伪随机数隐藏信息,并根据步骤3.2中两个伪随机数、步骤1.3中服务器公钥和步骤2.4中用户密钥二次隐藏信息计算得到口令二次隐藏信息:
其中x1、x2是得到的两个伪随机数,SP是服务器公钥,G2S是用户密钥二次隐藏信息,PWS是口令二次隐藏信息;
步骤4.2:将步骤3.1中用户口令与步骤4.1中的随机数隐藏信息、两个伪随机数隐藏信息、口令二次隐藏信息合并生成哈希值,并将该哈希值与用户口令、步骤4.1中的随机数隐藏信息和两个伪随机数隐藏信息打包作为用户认证请求信息发送给服务器;
步骤4.3:当服务器收到用户的认证请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;
步骤4.4:将步骤4.3中口令二次隐藏信息与用户认证请求信息相比较,如果匹配则进行下一步,否则拒绝此身份验证请求;
步骤4.5:对步骤4.1中哈希值进行验证,如果符合则进入下一步,否则拒绝此身份验证请求;
步骤4.6:选择一个随机数,将该随机数分别对步骤1.1中生成元和步骤4.1中随机数隐藏信息计算模幂得到两个隐藏信息,并将其中第一个隐藏信息与步骤4.3中口令二次隐藏信息合并生成哈希值;
步骤4.7:将步骤4.6中第一个隐藏信息与哈希值打包作为服务器响应信息发送给用户;
步骤4.8:服务器将步骤4.6中两个隐藏信息与步骤4.1中随机数隐藏信息合并生成哈希值,将该哈希值作为服务器与用户之间的会话密钥;
步骤4.9:用户收到服务器响应信息后,对响应信息中的哈希值进行验证;如果验证通过则进入下一步,如果验证不通过,则结束本次登录请求;
步骤4.10:用户将步骤4.1中的随机数对步骤4.6中第一个隐藏信息计算模幂,将该结果与步骤4.1中随机数隐藏信息、步骤4.6中第一个隐藏信息合并生成哈希值;将该哈希值作为用户与服务器之间的会话密钥。
作为优选,如果用户要用新口令替换旧口令,则具体实现包括以下子步骤:
步骤5.1:用户插入智能卡输入用户名、口令以及新口令;
步骤5.2:选择一个随机数,将该随机数对步骤1.3中服务器公钥、步骤1.1中生成元分别计算模幂得到两个隐藏信息;
步骤5.3:将步骤5.1中用户新口令对步骤1.1中生成元计算模幂得到新口令隐藏信息,将步骤5.1中用户口令对步骤1.3中服务器公钥计算模幂得到口令二次隐藏信息,并将新口令隐藏信息与步骤5.2中的第一个隐藏信息进行异或运算得到新口令随机数隐藏信息;
步骤5.4:将步骤5.1中用户名、步骤5.3中新口令随机数隐藏信息、口令二次隐藏信息、步骤5.2中第二个隐藏信息以及步骤2.2中用户密钥隐藏信息合并生成哈希值;
步骤5.5:将步骤5.1中用户名、步骤5.2中第二个隐藏信息、步骤5.3中新口令随机数隐藏信息以及步骤5.4中哈希值打包作为口令更换请求信息发送给服务器;
步骤5.6:当服务器收到用户的口令更换请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;步骤5.7:对步骤5.4中哈希值进行验证,如果符合则进入下一步,否则拒绝此口令更换请求;
步骤5.8:使用步骤1.2中服务器私钥对步骤5.2中第二个隐藏信息计算模幂,再将计算结果与步骤5.3中新口令随机数隐藏信息进行异或运算得到新口令隐藏信息;
步骤5.9:使用步骤1.2中服务器私钥对步骤5.8中新口令隐藏信息计算模幂,得到新口令二次隐藏信息,并用新口令二次隐藏信息替换掉数据库中存储的旧口令二次隐藏信息。
作为优选,如果用户想要将密钥更换为新的密钥,则具体实现包括以下步骤:
步骤6.1:用户插入智能卡输入用户名、口令以及新用户密钥;
步骤6.2:选择一个随机数,将该随机数对步骤1.3中服务器公钥、步骤1.1中生成元分别计算模幂得到两个隐藏信息;
步骤6.3:将步骤6.1中新用户密钥对步骤1.1中生成元计算模幂得到新用户密钥隐藏信息,将步骤6.1中用户口令对步骤1.3中服务器公钥计算模幂得到口令二次隐藏信息,并将新用户密钥隐藏信息与步骤6.2中的第一个隐藏信息进行异或运算得到新用户密钥随机数隐藏信息
步骤6.4:将步骤6.1中用户名、步骤6.3中新用户密钥随机数隐藏信息、口令二次隐藏信息、步骤6.2中第二个隐藏信息以及步骤2.2中用户密钥隐藏信息合并生成哈希值;
步骤6.5:将步骤6.1中用户名、步骤6.2中第二个隐藏信息、步骤6.3中新用户密钥随机数隐藏信息以及步骤6.4中哈希值打包作为用户密钥更换请求信息发送给服务器;
步骤6.6:当服务器收到用户密钥更换请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;
步骤6.7:对步骤6.4中哈希值进行验证,如果符合则进入下一步,否则拒绝此密钥更换请求;
步骤6.8:使用步骤1.2中服务器私钥对步骤6.2中第二个隐藏信息计算模幂,再将计算结果与步骤6.3中新用户密钥随机数隐藏信息进行异或运算得到新用户密钥隐藏信息,最后使用步骤1.2中服务器私钥对新用户密钥隐藏信息计算模幂得到新用户密钥二次隐藏信息;
步骤6.9:选择一个随机数,将该随机数分别对步骤6.8中新用户密钥隐藏信息和步骤1.1中生成元计算模幂得到随机数共享信息和随机数隐藏信息,再将随机数共享信息与步骤6.8中新用户密钥二次隐藏信息进行异或运算得到随机数二次共享信息;
步骤6.10:将步骤6.9中随机数隐藏信息和随机数二次共享信息以及步骤6.6中口令二次隐藏信息合并生成哈希值;
步骤6.11:将步骤6.9中随机数隐藏信息和随机数二次共享信息以及步骤6.10中哈希值打包作为密钥更换响应信息发送给用户;
步骤6.12:用步骤6.8中新用户密钥隐藏信息替换掉数据库中存储的旧用户密钥隐藏信息;
步骤6.13:当用户收到服务器的密钥更换响应信息后,对步骤6.11中的哈希值进行验证,如果符合则进入下一步,否则停止此密钥更换流程;
步骤6.14:用步骤6.1中新用户密钥对步骤6.9中随机数隐藏信息计算模幂,将该结果与步骤6.9中随机数二次共享信息进行异或运算,得到新用户密钥二次隐藏信息;
步骤6.15:用步骤6.3中的新用户密钥隐藏信息和步骤6.14中的新用户密钥二次隐藏信息替换掉智能卡中存储的旧用户密钥隐藏信息和旧用户密钥二次隐藏信息。
本发明提供的一种抗口令泄露的认证与密钥协商方法,假设所述的环境中有两类参与者:服务器和用户。本发明是一个没有使用自带抗泄露属性的加密算法、解密算法、签名算法或验证算法的认证与密钥协商方法,此方法可以高效实现抗口令泄露的认证与密钥交换。在该方法的登录阶段,用户口令将通过一次计算分解为两个相关的伪随机数。在协议的后续步骤,即身份验证阶段,口令将不再直接参与计算。因此,可以在该方法执行过程中直接减少用户口令参与计算的次数,从而达到抗口令泄漏的目的。本发明的贡献可以概括如下:
1)提出了第一种认证与密钥协商方法,该方法在协议执行过程中能够抗口令泄漏。
2)本方法是第一个没有使用抗泄露加密/解密算法或签名/验证算法的抗口令泄露的认证与密钥协商方法。
附图说明
图1:本发明实施例的方法流程图;
图2:本发明实施例的方法中注册流程图;
图3:本发明实施例的方法中登录、认证与协商流程图;
图4:本发明实施例的方法中口令更换流程图的;
图5:本发明实施例的方法中密钥更换流程图的。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细述,应当理解,此处所述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明提供的一种抗口令泄露的认证与密钥协商方法,包括以下步骤:
步骤1:初始化,服务器生成公共参数、私钥和公钥;
具体实现包括以下子步骤:
步骤1.2:在群中选择一个随机数s作为服务器私钥;
步骤1.2:计算服务器公钥SP=g1 s,并公开服务器公钥,其中g1表示步骤1.1中生成元,s表示步骤1.2中服务器私钥;
步骤2:用户U注册;
请见图2,具体实现包括以下子步骤:
步骤2.1:用户U选择用户名IDU、口令PWU和用户密钥kU;
其中g2表示用户密钥隐藏信息,G1P表示口令隐藏信息,g1表示步骤1.1中生成元,kU表示步骤2.1中用户密钥,PWU表示步骤2.1中用户口令;
步骤2.3:将{g2,G1P,IDU}作为注册请求信息通过安全通道发送给服务器S,其中IDU表示步骤2.1中用户名、G1P、g2分别表示步骤2.2中口令隐藏信息和用户密钥隐藏信息;
步骤2.4:在接收到用户的注册请求信息后,服务器S;
计算PWS=(G1P)s和G2S=g2 s;
其中,PWS表示口令二次隐藏信息,G2S表示用户密钥二次隐藏信息,s表示步骤1.2中服务器私钥,G1P表示步骤2.2中口令隐藏信息,g2表示步骤2.2中用户密钥隐藏信息,;
步骤2.5:将步骤2.1中用户名IDU、步骤2.2中用户密钥隐藏信息g2以及步骤2.4中的口令二次隐藏信息PWS储存至数据库中;
步骤2.6:生成一张包括步骤1.1中生成元g1、步骤2.2中的用户密钥隐藏信息g2以及步骤2.4中的用户密钥二次隐藏信息G2S的智能卡{g1,g2,G2S},并将它通过安全通道交付用户手中。
步骤3:用户登录;
请见图3,具体实现包括以下子步骤:
步骤3.1:用户将智能卡插入智能卡读卡器,同时输入用户名IDU、口令PWU以及用户密钥kU;步骤3.2:使用步骤3.1中用户密钥kU将步骤3.1中用户的口令分解为两个和用户密钥相关的伪随机数x1,x2,该伪随机数须满足如下等式:
x1+kU·x2=PWU
其中x1、x2表示得到的两个伪随机数,kU表示步骤3.1中用户密钥,PWU表示步骤3.1中用户的口令;步骤3.3:将智能卡中关于用户密钥和口令的内容删除。
步骤4:认证与协商;
当用户U完成登陆步骤后需要完成以下步骤来通过身份认证;请见图3,具体实现包括以下子步骤:
步骤4.1:用户选择一个随机数rU,计算 其中,G1RU表示随机数隐藏信息,G1X、G2X分别表示两个伪随机数隐藏信息,PWS'表示口令二次隐藏信息,g1表示步骤1.1中生成元,g2表示步骤2.2中用户密钥隐藏信息,SP表示步骤1.3中服务器公钥,G2S表示步骤2.4中用户密钥二次隐藏信息;
步骤4.2:计算将{IDU,G1RU,G1X,G2X,AuThenU}作为用户认证请求信息发送给服务器。其中AuThenU表示所得哈希值,IDU表示步骤3.1中用户名,G1RU表示步骤4.1中随机数隐藏信息,G1X、G2X表示步骤4.1中两个伪随机数隐藏信息,PWS'表示步骤4.1中口令二次隐藏信息,H(·)表示一个哈希函数;
步骤4.3:当服务器收到用户的认证请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息g2和步骤2.4中口令二次隐藏信息PWS;
步骤4.4:比较PWS与(G1X·G2X)s是否相等,如果相等则进行下一步,否则拒绝此身份认证请求,其中PWS表示步骤4.3中的口令二次隐藏信息,G1X、G2X表示步骤4.1中两个伪随机数隐藏信息,s表示步骤1.2中服务器私钥;
步骤4.5:比较AuThenU与是否相等,如果相等则承认步骤4.2中用户认证请求信息的有效性和完整性并进入下一步,否则拒绝此用户认证请求,其中AuThenU表示步骤4.2中哈希值,IDU、G1RU、G1X、G2X表示步骤4.2中发送信息,PWS表示步骤4.3中口令二次隐藏信息,H(·)表示步骤4.2中哈希函数;
其中,G1RS、KS表示两个隐藏信息,AuThenS表示所得哈希值,g1表示步骤1.1中生成元,G1RU表示步骤4.1中随机数隐藏信息,PWS表示步骤4.3中口令二次隐藏信息,H(·)表示一个哈希函数;
步骤4.7:将{G1RS,AuThenS}作为服务器响应信息发送给用户,其中G1RS表示步骤4.6中第一个隐藏信息,AuThenS表示步骤4.6中哈希值;
步骤4.8:服务器计算SK=H(G1RU||G1RS||KS),将SK作为服务器与用户之间的会话密钥,其中G1RU表示步骤4.1中随机数隐藏信息,G1RS、KS表示步骤4.6中两个隐藏信息,H(·)表示一个哈希函数;
步骤4.9:用户收到服务器响应信息后,比较AuThenS与是否相等,如果相等则承认服务器响应信息的有效性和完整性并进入下一步,如果不相等,则结束本次用户认证请求,其中AuThenS表示步骤4.7中哈希值,PWS'表示步骤4.1中口令二次隐藏信息,G1RS表示步骤4.7中隐藏信息,H(·)表示步骤4.6中哈希函数;
步骤4.10:计算SK'=H(G1RU||G1RS||KU),将SK'作为用户与服务器之间的会话密钥,其中KU表示隐藏信息,rU表示步骤4.1中随机数,G1RU表示步骤4.1中随机数隐藏信息,G1RS表示步骤4.6中第一个隐藏信息,H(·)表示步骤4.8中哈希函数。
很多时候,用户可能想要用新口令替换旧口令,请见图4,口令更换具体实现包括以下子步骤:
步骤5.1:用户插入智能卡输入用户名IDU、口令PWU以及新口令PWUnew;
步骤5.3:计算其中G1Pnew表示新口令隐藏信息,PWS'表示口令二次隐藏信息,G1PW表示新口令随机数隐藏信息,PWUnew表示步骤5.1中新口令,g1表示步骤1.1中生成元,PWU表示步骤5.1中口令,SP表示步骤1.3中服务器公钥,RPW表示步骤5.2中第一个隐藏信息;
步骤5.4:计算其中AuThenPW表示所得哈希值,IDU表示步骤5.1中用户名,G1PW表示步骤5.3中新口令随机数隐藏信息,G1RPW表示步骤5.2中第二个隐藏信息,PWS'表示步骤5.3中口令二次隐藏信息,g2表示步骤2.2中用户密钥隐藏信息,H(·)表示一个哈希函数;
步骤5.5:将{IDU,G1PW,G1RPW,AuThenPW}作为口令更换请求信息发送给服务器,其中IDU表示步骤5.1中用户名,G1PW表示步骤5.3中新口令随机数隐藏信息,G1RPW表示步骤5.2中第二个隐藏信息,AuThenPW表示步骤5.4中哈希值;
步骤5.6:当服务器收到用户的口令更换请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息g2和口步骤2.4中令二次隐藏信息PWS;
步骤5.7:比较AuThenPW与是否相等,如果相等则承认口令更换请求信息的有效性和完整性并进入下一步,否则拒绝此口令更换请求,其中IDU、G1PW、G1RPW、AuThenPW表示步骤5.5中发送的信息,g2表示步骤2.2中用户密钥隐藏信息,PWS表示步骤2.5中口令二次隐藏信息,H(·)表示步骤5.4中哈希函数;
步骤5.8:计算RPW'=(G1RPW)s、其中RPW'表示隐藏信息,G1Pnew表示新口令隐藏信息,s表示步骤1.2中服务器私钥,G1RPW表示步骤5.2中第二个隐藏信息,G1PW表示步骤5.3中新口令随机数隐藏信息;
步骤5.9:计算PWSnew=(G1Pnew)s,其中PWSnew表示新口令二次隐藏信息,G1Pnew表示步骤5.8中新口令隐藏信息,s表示步骤1.2中服务器私钥,并用新口令二次隐藏信息PWSnew替换掉数据库中存储的步骤2.5中口令二次隐藏信息PWS。
如果用户想要将密钥更换为新的密钥,请见图5,具体实现包括以下步骤:
步骤6.1:用户插入智能卡输入用户名IDU、口令PWU以及新用户密钥kUnew;
步骤6.3:计算其中g2new表示新用户密钥隐藏信息,PWS'表示口令二次隐藏信息,G1KU表示新用户密钥随机数隐藏信息,g1表示步骤1.1中生成元,kUnew表示步骤6.1中新用户密钥,SP表示步骤1.3中服务器公钥,PWU表示步骤6.1中口令,是步骤6.2中第一个隐藏信息;
步骤6.4:计算其中表示所得哈希值,IDU表示步骤6.1中用户名,G1KU表示步骤6.3中新用户密钥随机数隐藏信息,是步骤6.2中第二个隐藏信息,PWS'表示步骤6.3中口令二次隐藏信息,g2表示步骤2.2中用户密钥隐藏信息,H(·)表示一个哈希函数;
步骤6.6:当服务器收到用户的密钥更换请求信息后,从数据库中调取该用户对应数据,包括包括步骤2.2中用户密钥隐藏信息g2和包括步骤2.4中口令二次隐藏信息PWS;
步骤6.7:比较与是否相等,如果相等则承认步骤6.5中密钥更换请求信息的有效性和完整性并进入下一步,否则拒绝此密钥更换请求,其中IDU、G1KU、表示步骤6.5中发送的信息,PWS表示步骤6.6中口令二次隐藏信息,g2表示步骤6.6中用户密钥隐藏信息,H(·)表示步骤6.4中哈希函数;
步骤6.8:计算G2Snew=(g2new')s,其中表示隐藏信息,此信息的值应与步骤6.2中第一个隐藏信息相等,g2new'表示新用户密钥隐藏信息,此信息的值应与步骤6.3中新用户密钥隐藏信息相等,G2Snew表示新用户密钥二次隐藏信息,s表示步骤1.2中服务器私钥,是步骤6.2中第二个隐藏信息,G1KU表示步骤6.3中新用户密钥随机数隐藏信息;
步骤6.9:选择一个随机数计算 其中表示随机数共享信息,表示随机数隐藏信息,G2KU表示随机数二次共享信息,g2new'表示步骤6.8中新用户密钥隐藏信息,g1表示步骤1.1中生成元,G2Snew表示表示步骤6.8中新用户密钥二次隐藏信息;
步骤6.12:用步骤6.8中新用户密钥隐藏信息g2new'替换掉数据库中存储的用户密钥隐藏信息g2;
步骤6.13:当用户收到服务器的密钥更换响应信息后,比较与是否相等,如果相等则承认步骤6.11中密钥更换响应信息的有效性和完整性并进入下一步,否则停止此密钥更换流程,其中G2KU、表示步骤6.11中发送的信息,H(·)表示步骤6.10中哈希函数;
步骤6.14:计算其中表示隐藏信息,G2Snew'表示新用户密钥二次隐藏信息,此信息的值应与步骤6.8中新用户密钥二次隐藏信息相等,kUnew表示步骤6.1中新用户密钥,G2KU分别表示步骤6.9中随机数隐藏信息和随机数二次共享信息;
步骤6.15:用步骤6.3中的新用户密钥隐藏信息g2new和步骤6.15中的新用户密钥二次隐藏信息G2Snew'替换掉智能卡中存储的用户密钥隐藏信息g2和用户密钥二次隐藏信息G2S。
现今应用最普遍的认证方式就是口令认证,因为这种方式具有简单高效的特性。由用户在注册阶段任意的选择便于自己记忆的用户名和口令。其中,口令的安全性至关重要。由于口令选择的不随机性,使得口令猜测攻击时常发生。现今采用最多的解决方法是增加口令的长度和多样性。而随着侧信道攻击的发展,攻击者的能力大大提高,当攻击者获取口令的一部分,那进行口令猜测攻击的准确性将大幅度提高。在有些情况下,甚至只需泄漏一小部分就可以直接推导出整个口令。目前可以抵抗口令泄露的认证与密钥协商方法大多依赖于所谓的抗泄露加解密算法或抗泄露签名验证算法来实现抗泄漏的目的。这显然与口令认证的简单高效性相违背,本专利提出了一种抗口令泄露的认证和密钥协商方法,该方法可以帮助用户与服务器高效的完成相互认证与会话密钥的协商,并可以有效的抵抗侧信道攻击,具有很高的实用性。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (3)
1.一种抗口令泄露的认证与密钥协商方法,其特征在于,包括以下步骤:
步骤1:初始化,服务器生成私钥和公钥;
具体实现包括以下子步骤:
步骤1.1:服务器确定相关公共参数,包括群的生成元、群的阶,并将所有公共参数公开;
步骤1.2:服务器选择随机的大素数作为私钥;
步骤1.3:服务器使用步骤1.2中私钥对步骤1.1中生成元计算模幂得到服务器公钥,并将公钥公开;
步骤2:用户注册;
具体实现包括以下子步骤:
步骤2.1:用户选择用户名、口令和用户密钥;
步骤2.2:将选择的口令和用户密钥分别对步骤1.1中生成元计算模幂进行隐藏处理得到口令隐藏信息和用户密钥隐藏信息;
步骤2.3:将步骤2.1中用户名、步骤2.2中口令隐藏信息和用户密钥隐藏信息通过安全通道传输给服务器;
步骤2.4:在接收到用户的信息后,服务器将步骤1.2中服务器私钥分别对步骤2.2中口令隐藏信息和用户密钥隐藏信息计算模幂,进行二次隐藏处理得到口令二次隐藏信息和用户密钥二次隐藏信息;
步骤2.5:将步骤2.1中用户名、步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息储存至数据库中;
步骤2.6:生成一张包括步骤1.1中生成元、步骤2.2中用户密钥隐藏信息以及步骤2.4中用户密钥二次隐藏信息的智能卡,并将它通过安全通道交付用户手中;
步骤3:用户登录;
具体实现包括以下子步骤:
步骤3.1:用户将智能卡插入智能卡读卡器,同时输入用户名,口令以及用户密钥;
步骤3.2:使用用户密钥将用户的口令分解为两个和用户密钥相关的伪随机数:x1+kU·x2=PWU;其中x1、x2是得到的两个伪随机数,kU是用户密钥,PWU是用户的口令;
步骤3.3:将智能卡中关于用户密钥和口令的内容删除;
步骤4:认证与协商;
具体实现包括以下子步骤:
步骤4.1:用户选择一个随机数,利用模幂运算将该随机数、步骤3.2中两个伪随机数分别进行隐藏得到随机数隐藏信息和两个伪随机数隐藏信息,并根据步骤3.2中两个伪随机数、步骤1.3中服务器公钥和步骤2.4中用户密钥二次隐藏信息计算得到口令二次隐藏信息:
其中x1、x2是得到的两个伪随机数,SP是服务器公钥,G2S是用户密钥二次隐藏信息,PWS是口令二次隐藏信息;
步骤4.2:将步骤3.1中用户口令与步骤4.1中的随机数隐藏信息、两个伪随机数隐藏信息、口令二次隐藏信息合并生成哈希值,并将该哈希值与用户口令、步骤4.1中的随机数隐藏信息和两个伪随机数隐藏信息打包作为用户认证请求信息发送给服务器;
步骤4.3:当服务器收到用户的认证请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;
步骤4.4:将步骤4.3中口令二次隐藏信息与用户认证请求信息相比较,如果匹配则进行下一步,否则拒绝此身份验证请求;
步骤4.5:对步骤4.1中哈希值进行验证,如果符合则进入下一步,否则拒绝此身份验证请求;
步骤4.6:选择一个随机数,将该随机数分别对步骤1.1中生成元和步骤4.1中随机数隐藏信息计算模幂得到两个隐藏信息,并将其中第一个隐藏信息与步骤4.3中口令二次隐藏信息合并生成哈希值;
步骤4.7:将步骤4.6中第一个隐藏信息与哈希值打包作为服务器响应信息发送给用户;
步骤4.8:服务器计算SK=H(G1RU||G1RS||KS),将SK作为服务器与用户之间的会话密钥,其中G1RU表示步骤4.1中随机数隐藏信息,G1RS、KS表示步骤4.6中两个隐藏信息,H(·)表示一个哈希函数;
步骤4.9:用户收到服务器响应信息后,对响应信息中的哈希值进行验证;如果验证通过则进入下一步,如果验证不通过,则结束本次登录请求;
2.根据权利要求1所述的抗口令泄露的认证与密钥协商方法,其特征在于:如果用户要用新口令替换旧口令,则具体实现包括以下步骤:
步骤5.1:用户插入智能卡输入用户名、口令以及新口令;
步骤5.2:选择一个随机数,将该随机数对步骤1.3中服务器公钥、步骤1.1中生成元分别计算模幂得到两个隐藏信息;
步骤5.3:将步骤5.1中用户新口令对步骤1.1中生成元计算模幂得到新口令隐藏信息,将步骤5.1中用户口令对步骤1.3中服务器公钥计算模幂得到口令二次隐藏信息,并将新口令隐藏信息与步骤5.2中的第一个隐藏信息进行异或运算得到新口令随机数隐藏信息;
步骤5.4:将步骤5.1中用户名、步骤5.3中新口令随机数隐藏信息、口令二次隐藏信息、步骤5.2中第二个隐藏信息以及步骤2.2中用户密钥隐藏信息合并生成哈希值;
步骤5.5:将步骤5.1中用户名、步骤5.2中第二个隐藏信息、步骤5.3中新口令随机数隐藏信息以及步骤5.4中哈希值打包作为口令更换请求信息发送给服务器;
步骤5.6:当服务器收到用户的口令更换请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;步骤5.7:对步骤5.4中哈希值进行验证,如果符合则进入下一步,否则拒绝此口令更换请求;
步骤5.8:使用步骤1.2中服务器私钥对步骤5.2中第二个隐藏信息计算模幂,再将计算结果与步骤5.3中新口令随机数隐藏信息进行异或运算得到新口令隐藏信息;
步骤5.9:使用步骤1.2中服务器私钥对步骤5.8中新口令隐藏信息计算模幂,得到新口令二次隐藏信息,并用新口令二次隐藏信息替换掉数据库中存储的旧口令二次隐藏信息。
3.根据权利要求2所述的抗口令泄露的认证与密钥协商方法,其特征在于:如果用户想要将密钥更换为新的密钥,则具体实现包括以下步骤:
步骤6.1:用户插入智能卡输入用户名、口令以及新用户密钥;
步骤6.2:选择一个随机数,将该随机数对步骤1.3中服务器公钥、步骤1.1中生成元分别计算模幂得到两个隐藏信息;
步骤6.3:将步骤6.1中新用户密钥对步骤1.1中生成元计算模幂得到新用户密钥隐藏信息,将步骤6.1中用户口令对步骤1.3中服务器公钥计算模幂得到口令二次隐藏信息,并将新用户密钥隐藏信息与步骤6.2中的第一个隐藏信息进行异或运算得到新用户密钥随机数隐藏信息
步骤6.4:将步骤6.1中用户名、步骤6.3中新用户密钥随机数隐藏信息、口令二次隐藏信息、步骤6.2中第二个隐藏信息以及步骤2.2中用户密钥隐藏信息合并生成哈希值;
步骤6.5:将步骤6.1中用户名、步骤6.2中第二个隐藏信息、步骤6.3中新用户密钥随机数隐藏信息以及步骤6.4中哈希值打包作为用户密钥更换请求信息发送给服务器;
步骤6.6:当服务器收到用户密钥更换请求信息后,从数据库中调取该用户对应数据,包括步骤2.2中用户密钥隐藏信息以及步骤2.4中口令二次隐藏信息;
步骤6.7:对步骤6.4中哈希值进行验证,如果符合则进入下一步,否则拒绝此密钥更换请求;
步骤6.8:使用步骤1.2中服务器私钥对步骤6.2中第二个隐藏信息计算模幂,再将计算结果与步骤6.3中新用户密钥随机数隐藏信息进行异或运算得到新用户密钥隐藏信息,最后使用步骤1.2中服务器私钥对新用户密钥隐藏信息计算模幂得到新用户密钥二次隐藏信息;
步骤6.9:选择一个随机数,将该随机数分别对步骤6.8中新用户密钥隐藏信息和步骤1.1中生成元计算模幂得到随机数共享信息和随机数隐藏信息,再将随机数共享信息与步骤6.8中新用户密钥二次隐藏信息进行异或运算得到随机数二次共享信息;
步骤6.10:将步骤6.9中随机数隐藏信息和随机数二次共享信息以及步骤6.6中口令二次隐藏信息合并生成哈希值;
步骤6.11:将步骤6.9中随机数隐藏信息和随机数二次共享信息以及步骤6.10中哈希值打包作为密钥更换响应信息发送给用户;
步骤6.12:用步骤6.8中新用户密钥隐藏信息替换掉数据库中存储的旧用户密钥隐藏信息;
步骤6.13:当用户收到服务器的密钥更换响应信息后,对步骤6.11中的哈希值进行验证,如果符合则进入下一步,否则停止此密钥更换流程;
步骤6.14:用步骤6.1中新用户密钥对步骤6.9中随机数隐藏信息计算模幂,将该结果与步骤6.9中随机数二次共享信息进行异或运算,得到新用户密钥二次隐藏信息;
步骤6.15:用步骤6.3中的新用户密钥隐藏信息和步骤6.14中的新用户密钥二次隐藏信息替换掉智能卡中存储的旧用户密钥隐藏信息和旧用户密钥二次隐藏信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811503473.8A CN109379176B (zh) | 2018-12-10 | 2018-12-10 | 一种抗口令泄露的认证与密钥协商方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811503473.8A CN109379176B (zh) | 2018-12-10 | 2018-12-10 | 一种抗口令泄露的认证与密钥协商方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109379176A CN109379176A (zh) | 2019-02-22 |
CN109379176B true CN109379176B (zh) | 2021-12-03 |
Family
ID=65372989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811503473.8A Active CN109379176B (zh) | 2018-12-10 | 2018-12-10 | 一种抗口令泄露的认证与密钥协商方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109379176B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838920B (zh) * | 2019-11-20 | 2022-03-25 | 北京航空航天大学 | web系统中无需存储口令相关信息的口令认证与密钥协商协议 |
CN113014534A (zh) * | 2019-12-21 | 2021-06-22 | 浙江宇视科技有限公司 | 一种用户登录与认证的方法及装置 |
CN112054891B (zh) * | 2020-08-09 | 2022-10-25 | 中信银行股份有限公司 | 基于区块链的共有用户确定方法、电子设备及存储介质 |
CN112966242A (zh) * | 2021-03-29 | 2021-06-15 | 成都卫士通信息产业股份有限公司 | 一种用户名口令认证方法、装置、设备及可读存储介质 |
CN114063651B (zh) * | 2021-11-18 | 2023-07-04 | 湖北工业大学 | 用户与多架无人机进行相互认证的方法、可存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107425964A (zh) * | 2017-05-09 | 2017-12-01 | 哈尔滨工业大学深圳研究生院 | 基于信息泄露容错智能卡的三方口令认证与密钥协商协议 |
WO2018076365A1 (zh) * | 2016-10-31 | 2018-05-03 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2557399A (en) * | 1998-01-02 | 1999-07-26 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
US7644275B2 (en) * | 2003-04-15 | 2010-01-05 | Microsoft Corporation | Pass-thru for client authentication |
WO2018209138A1 (en) * | 2017-05-10 | 2018-11-15 | Mine Zero Gmbh | Secure telecommunications and transactional platform |
CN104901809B (zh) * | 2015-04-23 | 2018-12-21 | 北京航空航天大学 | 基于口令和智能卡的远程认证协议方法 |
CN105099671B (zh) * | 2015-08-20 | 2019-03-15 | 赵运磊 | 一种身份隐藏且非延展安全的认证密钥协商方法 |
CN106657124B (zh) * | 2017-01-03 | 2020-03-20 | 宜春学院 | 用于物联网的基于假名的匿名认证与密钥协商优化认证方法以及优化认证分析方法 |
CN107592197A (zh) * | 2017-05-09 | 2018-01-16 | 哈尔滨工业大学深圳研究生院 | 无需智能卡的三方口令认证与密钥协商协议 |
CN107483195A (zh) * | 2017-09-08 | 2017-12-15 | 哈尔滨工业大学深圳研究生院 | 物联网环境下安全的双方认证与密钥协商协议 |
-
2018
- 2018-12-10 CN CN201811503473.8A patent/CN109379176B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018076365A1 (zh) * | 2016-10-31 | 2018-05-03 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
CN107425964A (zh) * | 2017-05-09 | 2017-12-01 | 哈尔滨工业大学深圳研究生院 | 基于信息泄露容错智能卡的三方口令认证与密钥协商协议 |
Non-Patent Citations (1)
Title |
---|
Secure Password Ciphersuites for Transport Layer Security (TLS) draft-ietf-tls-pwd-03;D. Harkins等;《IETF 》;20131212;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109379176A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wazid et al. | Design of secure key management and user authentication scheme for fog computing services | |
CN109379176B (zh) | 一种抗口令泄露的认证与密钥协商方法 | |
Yu et al. | An efficient generic framework for three-factor authentication with provably secure instantiation | |
Chang et al. | A communication-efficient three-party password authenticated key exchange protocol | |
Das | A secure and effective user authentication and privacy preserving protocol with smart cards for wireless communications | |
CN112889047A (zh) | 利用多个装置以增强生物计量认证安全 | |
Dabra et al. | LBA-PAKE: Lattice-based anonymous password authenticated key exchange for mobile devices | |
Gong et al. | A novel one-time password mutual authentication scheme on sharing renewed finite random sub-passwords | |
Jiang et al. | An anonymous and efficient remote biometrics user authentication scheme in a multi server environment | |
Zhao et al. | A secure biometrics and PUFs-based authentication scheme with key agreement for multi-server environments | |
Odelu et al. | A secure and efficient ECC‐based user anonymity preserving single sign‐on scheme for distributed computer networks | |
Kurmi et al. | A survey of zero-knowledge proof for authentication | |
Hossain et al. | ICAS: Two-factor identity-concealed authentication scheme for remote-servers | |
Chen et al. | An efficient nonce-based authentication scheme with key agreement | |
Castiglione et al. | An efficient and transparent one-time authentication protocol with non-interactive key scheduling and update | |
Amin et al. | Design of an enhanced authentication protocol and its verification using AVISPA | |
JPWO2019077581A5 (zh) | ||
Srinivas et al. | An authentication framework for roaming service in global mobility networks | |
CN111191262A (zh) | 一种基于两方签名的区块链钱包客户端私钥保护方法 | |
Kwon et al. | Efficient and secure password-based authentication protocols against guessing attacks | |
Mishra et al. | An improved biometric–based remote user authentication scheme for connected healthcare | |
Mishra et al. | Authenticated content distribution framework for digital rights management systems with smart card revocation | |
Amin et al. | An efficient remote mutual authentication scheme using smart mobile phone over insecure networks | |
Wei et al. | A general compiler for password-authenticated group key exchange protocol in the standard model | |
Mamun et al. | A fully-secure RFID authentication protocol from exact LPN assumption |
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 |