CN110784305B - 基于不经意伪随机函数和签密的单点登录认证方法 - Google Patents

基于不经意伪随机函数和签密的单点登录认证方法 Download PDF

Info

Publication number
CN110784305B
CN110784305B CN201911048580.0A CN201911048580A CN110784305B CN 110784305 B CN110784305 B CN 110784305B CN 201911048580 A CN201911048580 A CN 201911048580A CN 110784305 B CN110784305 B CN 110784305B
Authority
CN
China
Prior art keywords
user
key
authentication
module
signcryption
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
Application number
CN201911048580.0A
Other languages
English (en)
Other versions
CN110784305A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201911048580.0A priority Critical patent/CN110784305B/zh
Publication of CN110784305A publication Critical patent/CN110784305A/zh
Application granted granted Critical
Publication of CN110784305B publication Critical patent/CN110784305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于信息安全技术领域,公开了一种基于不经意伪随机函数(OPRF)和签密的单点登录(SSO)认证系统及方法,包括系统初始化参数阶段、用户/服务提供商(SP)注册阶段、信息检索阶段及用户和SP双向认证阶段。本发明结合了OPRF以及签密方案,即用户的口令经过OPRF盲化得到OPRF值,用于加密用户的签密私钥,并且密文被存储在存储提供商端。登录之前用户恢复OPRF值并解密检索出的密文得到签密私钥,实现和SP之间的双向认证。本发明提供针对口令泄漏威胁的安全增强功能,SP不存储口令或口令衍生值,客户端不慎泄露口令,敌手无法仿冒成SP欺骗用户。本发明能够抵抗SSO认证系统中常见攻击并且高效地完成双向认证。

Description

基于不经意伪随机函数和签密的单点登录认证方法
技术领域
本发明属于信息安全技术领域,尤其涉及一种基于不经意伪随机函数和签密的单点登录认证系统及方法。
背景技术
目前,互联网上新的业务层出不穷,催生了多种多样的服务提供商,在娱乐、商业、交通、医疗等领域提供了丰富的网络服务。但是,网络攻击广泛地存在于公开的通信信道中,因而如何确保通信实体身份的合法性,实现安全数据访问控制,同时确保服务的可用性,成为当前多服务提供商网络环境面临的严峻挑战之一。
Lamport提出适于客户端/服务器架构的基于口令的身份认证协议,以实现通信实体之间的身份认证,随后许多针对单服务提供商场景下的口令认证协议被提出,然而随着网络应用服务的数量和类型大规模增长,在用户身份管理方面,用户需要单独注册和记忆多个服务提供商的口令,更糟糕的是,由于记忆能力的限制,用户不得不重复使用口令。因而,口令的安全性在应用服务数量迅速增长的形势下变得愈发脆弱,传统单服务提供商场景下的认证协议的可用性急剧下降。
因此,单点登录认证协议应运而生,用户使用单一口令在注册中心完成一次注册,就能够通过多个SP的身份验证以获取服务。
现有技术提出了匿名移动用户认证(AMUA)方案,该协议使用自认证公钥加密(SCPKC)进行多SP架构的设计,并声称实现了高效和用户匿名的移动用户身份验证。具体而言,用户的私钥受口令保护后被存储于智能卡中,以实现对口令的本地认证,在一定程度上可以抵抗拒绝服务攻击。然而,智能卡中存储的口令验证符也极有可能成为敌手攻击的目标,如果敌手可以窃取受损智能卡中的秘密信息,则会导致系统遭受离线字典攻击。
现有技术进一步提出了单一口令认证(SPA)方案。在SPA中,用户在ST的帮助下,利用隐藏凭证检索(HCR)方案在不可信的ST端存储盲签名私钥、盲签名(由盲签名私钥和口令共同生成)来加密数字签名私钥得到的密文,使得只有具有口令知识的用户才能在检索阶段恢复盲签名,进而得到数字签名私钥用于实现和SP之间的认证,由此用户可以利用单一口令登录多个SP。然而,SPA的重点是实现认证而不是认证密钥交换,意味着后续会话的安全性保证依赖于现有的加密基础设施,例如安全信道协议SSL或TLS,即SPA不能被独立部署,因而增加了方案部署的复杂性,提高了部署成本,而且SPA仅仅实现了从用户到SP的单向认证,所以无法提供抗KCI攻击的能力。
综上所述,现有技术存在的问题是:或方案存在口令验证符,敌手能够轻易实施离线字典攻击、内部人员攻击;或方案没有实现双向认证及密钥协商,依赖TLS/SSL等加密基础设施,不能被独立部署;抑或方案不能提供抗KCI攻击的属性。总之,尚未有一个具备完备的安全特性的SSO认证方案被提出。
解决上述技术问题的难度如下:
理想的SSO认证协议在安全性方面需要具备以下特征:
无验证符:为了减少系统的存储开销并抵御与验证符相关的攻击,如拒绝服务攻击和验证符被盗所引起的离线字典攻击和仿冒攻击、内部者攻击等攻击,SSO协议应在不使用口令验证符的情况下实现用户和SP之间的相互认证;
无需在线的密钥生成机构:因为建立在线KGA的成本高昂,故KGA只提供注册阶段的参数计算和发布,不参与在线的用户的登录认证过程;
相互认证及密钥协商:SP需要验证用户身份来判定是否可以授予用户所请求服务的访问权限,同样用户也需要通过身份验证来确认SP的合法性,双方在此过程中协商出安全的会话密钥用于之后的会话通信。
抗密钥腐坏仿冒(KCI)攻击:即抗反向仿冒攻击,当用户的口令由于保护不当被泄露时,SSO协议应保证敌手不能仿冒SP成功地欺骗用户。
总之,SSO协议设计的难度在于口令如何与私钥相结合才能防止被暴力破解,例如方案AUMA,其将口令和私钥经过简单的哈希计算得到衍生值,并将衍生值存储在敌手可破解的智能卡中,极易导致离线字典猜测攻击。
解决上述技术问题的意义:
本方案能够使用户更灵活地应对多SP场景下愈加复杂的网络架构,无需进行繁重的注册登录口令管理。本发明支持用户使用单一的口令登录多个SP并实现双向认证,并且解决了现有技术中存储口令验证符这一关键问题,能够有效地消除SP端口令衍生值被用于离线字典攻击以及SP端的内部人员攻击的可能性,为SSO的实现开辟了新的思路,并且该方案能够保证在登录认证阶段用户和SP在公开信道中通信的安全性,即不需要额外部署TLS/SSL安全信道,降低了部署的成本及复杂度。
发明内容
针对现有技术存在的问题,本发明提供了一种基于不经意伪随机函数和签密的单点登录认证系统及方法。
本发明是这样实现的,所述基于不经意伪随机函数和签密的单点登录认证方法包括以下步骤:
第一步,密钥生成机构运行,生成系统的公共参数和主密钥;
第二步,用户和SP分别在密钥生成机构处获取各自的签密私钥,除此之外,用户选择OPRF密钥及口令经盲化后得到的OPRF值,并将由OPRF值认证加密签密私钥得到的密文存入ST。至此,用户和SP各自完成注册过程;
第三步,在用户和SP相互认证前,用户从ST端检索出注册阶段存储的密文,并利用交互中求得的OPRF值认证解密密文得到用户的签密私钥;
第四步,实现用户和SP之间的相互认证以及会话密钥的协商。
进一步,所述基于OPRF和签密的单点登录认证方法具体包括:
步骤一,主密钥和系统参数的生成:
密钥生成机构生成主密钥
Figure BDA0002254732040000041
具有相同素数阶q及具有映射关系的乘法循环群G1和GT,如:e:G1×G1→GT;并选择单向哈希函数H:{0,1}*→G1
Figure BDA0002254732040000042
Figure BDA0002254732040000043
KGA定义认证加密方案AE(Head,msg)及AD(Head,ctext)用于认证阶段消息的加密保护传输,其中Head为公共头信息(例如包报头和IP地址),msg为加密的消息,ctext为认证加密msg得到的密文;定义密钥导出函数KDF:GT×{0,1}*→{0,1}*
步骤二,用户及SP注册:
(1)用户注册:
用户发送注册请求,其中包括身份标识IDu给KGA,KGA通过哈希函数和主密钥生成用户的签密私钥sku=H(IDu)s,并将签密私钥发送给用户;
用户接收到签密私钥后计算OPRF值
Figure BDA0002254732040000044
其中pwd、
Figure BDA0002254732040000045
为用户所选口令及随机值,随机值
Figure BDA0002254732040000046
被作为OPRF密钥,用户将签密私钥sku及身份标识在密钥rwd下进行认证加密得到密文cu=AErwd(Head,sku||IDu),将密文cu、name以及相应的OPRF密钥ku通过安全信道发送至ST;
ST接收并保存<name,cu,ku>;
(2)SP注册:
SP发送注册请求,其中包括身份标识IDsp给KGA,KGA根据该身份标识计算签密私钥sksp=H(IDsp)s并发送给SP加以保存;
步骤三,用户从ST端检索信息:
用户向ST发起信息检索请求,选择随机数
Figure BDA0002254732040000047
计算口令哈希盲化值α=H1(pwd)a,并将<α,name>发送至ST;
ST接收到<α,name>后,根据索引name检索出该用户注册阶段存储的密文cu及OPRF密钥ku,并计算OPRF参数
Figure BDA0002254732040000051
最后将<cu,β>发送至用户,该过程保证了在认证阶段只有拥有合法口令的用户才能根据β计算出有效的OPRF值;
步骤四,用户和SP完成双向认证及会话密钥的协商:
用户和SP之间通过签密过程实现双向认证,并协商出共同的会话密钥SKu=SKsp=gbc用于之后会话中的安全消息传输。
进一步,所述步骤四用户和SP完成双向认证及会话密钥的协商具体包括:
(1)接收到ST发送来的<cu,β>,用户即可输入口令pwd′恢复OPRF值rwd′=H2(pwd′,β1/a),利用OPRF值,用户可通过认证解密cu得到注册阶段生成的签密私钥sku及IDu,通过判断IDu的合法性来确定签密私钥的合法性;用户选择随机数
Figure BDA0002254732040000052
其中x用于和签密私钥构建预共享秘密PSu=e(sku,H(IDsp))x∈GT;随机数b用于Diffie-Hellman密钥的计算;用户计算B=gb及X=H(IDu)x∈G1,通过密钥导出函数KDF:GT×{0,1}*→{0,1}*计算K1=KDF(PSu,X||IDsp),其中IDsp为用户访问的SP的身份标识;用户将身份标识IDu,随机数x、SP身份标识IDsp及B在密钥K1下进行认证加密得到密文
Figure BDA0002254732040000053
最后发送<Head,X,Eu>给要访问的SP;
(2)SP利用接收到的X即可恢复预共享秘密PSu=e(X,sksp)=e(H(IDu)s,H(IDsp)x),通过密钥导出函数可计算出密钥K1=KDF(PSu,X||IDsp),利用密钥K1认证解密密文Eu,进而得到用户身份标识IDu,Diffie-Hellman密钥参数B、SP身份标识IDsp及随机值x,如果解密得到的IDsp与该SP自身的身份标识不匹配,则输出终止符⊥并终止会话;进一步通过判断验证因子X=H(IDu)x是否成立来验证用户的合法性,如果不相等,代表该用户的口令有误,则立即终止会话;反之如果相等,则代表用户通过SP的验证;
(3)SP选择随机数构造签密响应和Diffie-Hellman密钥以通过用户的认证;SP选择随机数
Figure BDA0002254732040000061
并计算Diffie-Hellman参数C=gc,进而求得Diffie-Hellman密钥SKsp=Bc=gbc;SP构建预共享秘密PSsp=e(sksp,H(IDu))y∈GT,进而利用密钥导出函数生成密钥K2=KDF(PSsp,Y||IDu),其中Y=H(IDsp)y∈G1;最后,SP在密钥K2下认证加密IDsp、IDu、Msp=H1(SKsp||IDsp||IDu)及随机数y,得到密文Esp,并发送<Esp,C,Y>给用户;
(4)用户接收到SP发送的<Esp,C,Y>,利用所知的b计算出Diffie-Hellman密钥SKu=Cb=gbc,恢复Msp=H1(SKu||IDsp||IDu),用户利用认证解密密文得到的签密私钥sku计算出预共享秘密PSsp=e(Y,sku)=e(H(IDsp)s,H(IDu)y),通过密钥导出函数计算得到K2=KDF(PSsp,Y||IDu),由密钥K2认证解密收到的密文
Figure BDA0002254732040000062
如果输出的IDu相等于已知的身份标识,表明用户得到合法参数(IDsp||IDu||Msp||y),否则输出终止符⊥;用户验证SP的合法性如下,判断Y=H(IDsp)y是否成立,并判断Msp是否相等于利用Diffie-Hellman密钥恢复的Msp,如果相等,表明该SP通过了用户的验证;反之,表明该SP没有通过用户的验证,同时用户终止此次会话。
进一步,所述基于不经意伪随机函数OPRF和签密的单点登录认证系统包括:
客户端模块,用于用户注册、用户发起信息存储和检索以及和SP完成相互认证及会话密钥的协商;
存储提供商模块,用于SP在注册阶段存储信息及响应用户检索信息的请求;
密钥生成机构模块,用于KGA选择主密钥及初始化系统参数、响应用户注册请求及响应SP注册请求;
服务提供商模块,用于SP注册、认证用户及进行认证响应。
进一步,所述客户端模块包括:
用户注册模块:包括用户注册请求发起模块及用户注册请求接收模块;用户注册请求发起模块用于用户发送注册请求,其中包括身份标识IDu到KGA;用户注册请求接收模块,用于用户接收KGA发送的签密私钥sku并保存;
用户信息存储请求模块:用于用户将签密私钥经过认证加密后存储在ST一端,用户和ST之间执行OPRF计算,用户将签密私钥sku及身份标识在OPRF输出值下进行认证加密得到密文cu,并发送存储信息请求包括检索名name、密文cu及OPRF密钥ku至ST;
认证阶段用户检索信息模块:所述认证阶段用户检索信息模块包括用户检索信息请求发起模块及用户检索信息请求接收模块;用户检索信息请求发起模块,用于用户计算口令哈希盲化值α,并发送α和检索名name至ST端;用户检索信息请求接收模块,用于用户接收ST发送来的OPRF参数β及密文cu,并恢复出OPRF值rwd认证解密密文cu得到签密私钥sku
用户认证模块:所述用户认证模块包括用户认证请求发起模块及用户认证请求接收模块;用户认证请求发起模块用于用户构造登录认证请求消息,其中包括签密消息Eu、验证因子X及公共头信息Head,并发送<Eu,X,Head>到要访问的SP以通过验证;用户请求接收模块用于用户接收SP发送的签密消息Esp、Diffie-Hellman参数C=gc及验证因子Y,通过验证参数Y及Diffie-Hellman密钥构成的Msp来判断SP是否合法。进一步,所述提供高熵信息存储功能的存储提供商模块包括注册阶段存储提供商存储信息模块及认证阶段存储提供商信息检索模块:
注册阶段存储提供商存储信息模块:用于ST接收并存储用户发送的信息<name,cu,ku>;
认证阶段存储提供商信息检索模块:所述认证阶段存储提供商信息检索模块包括ST接收用户检索信息请求模块及ST响应用户检索信息请求模块;ST接收用户检索信息请求模块用于认证阶段ST接收用户发送来的信息检索请求<α,name>;ST响应用户检索信息请求模块用于认证阶段ST响应用户信息检索请求,该响应包括ST从所存储的众多高熵数据中根据该用户发送的name检索出相应的cu并计算OPRF参数β,最后发送消息<cu,β>给用户;
所述密钥生成机构模块包括:
初始化系统参数模块:用于KGA选择主密钥、单向哈希函数、具有相同素数阶的乘法循环群,并定义映射关系;
响应用户注册请求模块:用于KGA根据用户注册请求携带的身份标识,利用主密钥和哈希函数将身份标识隐藏,进而生成相应的签密私钥并通过安全信道发送给用户;
响应服务提供商注册请求模块:用于KGA根据SP注册请求模块发送的身份标识,利用主密钥和哈希函数将其身份标识隐藏,进而生成相应的签密私钥并通过安全信道发送至服务提供商注册请求模块。
进一步,所述服务提供商模块包括SP注册模块、认证用户模块及认证响应模块:
SP注册模块:所述SP注册模块包括SP注册请求发起模块及SP注册请求接收模块;SP注册请求发起模块:用于SP发送注册请求,其中包括身份标识给KGA以获得签密私钥;SP注册请求接收模块:用于SP接收KGA发送的签密私钥并保存;
认证用户模块:用于SP接收用户发送来的<Eu,X,Head>,由自己的签密私钥sksp恢复出预共享秘密PSu,并认证解密Eu得到请求访问的用户身份标识IDu,由此构造X并通过该值验证请求用户身份的合法性,如果计算出的X不相等于接收到的X,则终止这次会话,禁止用户的登录请求,反之,用户通过SP的验证;
认证响应模块:用于SP构建签密消息及Diffie-Hellman密钥SKsp;SP将身份标识藏在Y中,并将用户验证SP合法性的关键参数y以及Msp在密钥K2下进行认证加密加以保护,并发送消息<Esp,C,Y>给请求访问的用户,用户接收到消息后对Esp进行认证解密并验证参数Y及Msp的合法性,完成对SP的认证。
本发明的另一目的在于提供一种应用基于不经意伪随机函数OPRF和签密的单点登录认证方法的信息数据处理终端。
本发明的另一目的在于提供一种应用基于不经意伪随机函数OPRF和签密的单点登录认证方法的服务器。
综上所述,本发明的优点及积极效果为:使具有单一口令的合法用户能够通过多个SP的认证来安全地获取服务,详情见表1。整个方案包括系统初始化参数阶段、用户/SP注册阶段、信息检索阶段、用户和SP进行双向认证及密钥协商阶段。此外,针对本发明,我们在移动设备(HiSiliconKirin970处理器的EML-AL00,2G字节内存和Android4.4.2操作系统)和个人计算机(戴尔,I5-45903.3GHz的处理器,4G字节内存和Window10操作系统)上使用jpbc库运行了以下操作:
TH:哈希操作的执行时间。
Tbp:双线性映射操作执行时间。
Tae:认证加密方案中加密操作执行时间。
Tad:认证加密方案解密操作执行时间。
Texp:指数操作的执行时间。
Tpa:加法群中点加操作的执行时间。
Tsm:加法群中标量乘法操作的执行时间。
Tmul:乘法群中乘法操作的执行时间。
Tmtp:加法群中map-to-point哈希操作执行时间。
在实验中,移动设备和个人计算机分别代表用户和SP/ST。表2列出了这些操作的运行时间,并且在此基础上,对比了现有的多SP场景的方案的计算成本,详情见表3。结合安全特性分析,本发明牺牲了可接受的部分性能换取了更稳健的安全性,适用于多SP场景。
与现有技术相比,本发明具有以下优势:
本发明利用与HCR方案相比更加高效的OPRF在ST端进行高熵信息的存储和检索,在注册过程中,用户无需记忆除了口令之外的其他高熵信息,在认证阶段,用户只需提供合法的口令即可恢复签密私钥,极大地降低了用户的身份维护难度;
本发明利用签密方案实现了用户和任一合法注册的SP之间的相互认证,认证的结果是合法的用户和SP双方协商出共享的会话密钥,故本方案可独立部署;
本发明消除了口令验证符的潜在威胁,虽然ST存储着口令衍生值,但是由于OPRF的特性,该口令衍生值对于敌手进行口令的暴力破解没有提供任何优势,同时SP不具有口令的相关知识,可以有效地防止内部人员攻击或是口令验证信息的泄露威胁;
本发明提供了抗KCI攻击的能力,即使口令遭到了不经意间的泄漏,本发明也可以防止敌手仿冒SP来欺骗用户。
附图说明
图1是本发明实施例提供的基于不经意伪随机函数OPRF和签密的单点登录认证方法流程图。
图2是本发明实施例提供的可信机构密钥生成机构模块结构示意图。
图3是本发明实施例提供的服务提供商模块结构示意图。
图4是本发明实施例提供的客户端模块结构示意图。
图5是本发明实施例提供的存储提供商模块结构示意图。
图6是本发明实施例提供的用户注册流程图。
图7是本发明实施例提供的服务提供商注册流程图。
图8是本发明实施例提供的用户检索高熵信息的流程图。
图9是本发明实施例提供的用户和服务提供商完成相互认证流程图。
表1是本发明实施例提供的本方案与同场景下方案的安全特性对比。
表2是本发明实施例提供的各个操作的执行时间。
表3是本发明实施例提供的本方案与同场景下方案的计算成本对比。
实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术或存在口令验证符,敌手能够轻易实施离线字典攻击、内部人员攻击;或没有实现双向认证及密钥协商,依赖TLS/SSL等加密基础设施,不能被独立部署;抑或不能提供抗KCI攻击的属性,本发明通过结合OPRF以及签密方案解决了以上问题。具体过程包括用户和SP在KGA处完成注册,获取认证阶段所需的签密私钥,并且为了保证用户只需记忆低熵口令,大部分的高熵信息被存储在ST一端,其中包括通过OPRF值认证加密用户的签密私钥所得的密文以及OPRF密钥。登录SP前,用户可以从ST端检索出密文并恢复OPRF值认证解密密文得到签密私钥,进而完成和SP之间的相互认证,本方案高效并安全地保证了用户对于多SP的访问。
下面结合附图对本发明的应用原理作详细的描述。
本发明实施例提供的基于不经意伪随机函数OPRF和签密的单点登录认证系统包括:客户端模块、存储提供商模块、密钥生成机构模块以及服务提供商模块。
密钥生成机构模块如图2,包括初始化系统参数模块、响应用户注册请求模块、响应服务提供商注册请求模块。
初始化系统参数模块:用于KGA生成主密钥
Figure BDA0002254732040000111
具有相同素数阶q及一定的映射关系的乘法循环群G1和GT,如:e:G1×G1→GT。并选择单向哈希函数H:{0,1}*→G1
Figure BDA0002254732040000112
Figure BDA0002254732040000113
KGA定义认证加密方案AE(Head,msg)及AD(Head,ctext)用于认证阶段消息的加密保护传输,其中Head为公共头信息,msg为加密的消息,ctext为加密得到的密文,KGA定义密钥导出函数KDF:GT×{0,1}*→{0,1}*
响应用户注册请求模块:用于KGA根据用户注册请求中的身份标识IDu,利用主密钥和哈希函数将身份标识隐藏生成相应的签密私钥sksp=H(IDu)s,并通过安全信道(TLS/SSL)发送至用户。
响应服务提供商注册请求模块:用于KGA根据SP注册请求中的身份标识IDsp,利用主密钥和哈希函数将身份标识隐藏生成相应的签密私钥sksp=H(IDsp)s,并通过安全信道(TLS/SSL)发送至SP。
持有唯一登录口令的客户端模块如图4所示,具体包括用户注册模块、用户信息存储请求模块、认证阶段用户检索信息模块、用户认证模块,其中:
用户注册模块:所述用户注册模块包括用户注册请求发起模块及用户注册请求接收模块。
用户注册请求发起模块:用于用户通过安全信道发送注册请求,其中包括身份标识IDu到KGA。
用户注册请求接收模块:用于用户接收KGA发送来的KGA响应用户注册请求的信息,包括根据用户身份标识生成的签密私钥sku=H(IDu)s
用户信息存储请求模块:用于用户将签密私钥sku经过认证加密后得到的密文存储在ST一端,具体而言,用户选择OPRF密钥
Figure BDA0002254732040000121
计算
Figure BDA0002254732040000122
cu=AErwd(Head,sku||IDu),并发送存储信息请求包括检索名name、密文cu及OPRF密钥ku至ST。
认证阶段用户检索信息模块:所述认证阶段用户检索信息模块包括用户检索信息请求发起模块及用户检索信息请求接收模块。
用户检索信息请求发起模块:用于用户选择随机数
Figure BDA0002254732040000123
计算口令哈希盲化值α=H1(pwd)a,并发送α和检索名name至ST端。
用户检索信息请求接收模块:用于用户接收ST发送来的OPRF参数
Figure BDA0002254732040000124
及密文cu,并恢复出OPRF值rwd′=H2(pwd′,β1/a),认证解密密文cu得到签密私钥sku及身份标识,即(sku||IDu)=ADrwd′(Head,cu),通过判断解密得到的身份标识的合法性来确定签密私钥的合法性。
用户认证模块:所述用户认证模块包括用户认证请求发起模块及用户认证请求接收模块。
用户认证请求发起模块:用于用户构造登录认证请求消息,其中包括签密消息Eu、验证因子X及公共头信息Head,并发送<Eu,X,Head>到要访问的SP端以通过SP的验证。具体而言,用户得到签密私钥sku后,选择随机数
Figure BDA0002254732040000131
其中x用于和签密私钥构建预共享秘密PSu=e(sku,H(IDsp))x∈GT,随机数b用于Diffie-Hellman密钥的计算。用户计算B=gb及X=H(IDu)x∈G1,通过密钥导出函数KDF:GT×{0,1}*→{0,1}*计算K1=KDF(PSu,X||IDsp),其中IDsp为用户访问的SP的身份标识。用户将身份标识IDu、SP身份标识IDsp、随机数x及B在密钥K1下进行认证加密得到的密文
Figure BDA0002254732040000132
最后发送<Head,X,Eu>给要访问的SP。
用户认证请求接收模块:用于用户接收SP发送的签密消息Esp、Diffie-Hellman参数C=gc及验证因子Y,通过验证参数Y及Diffie-Hellman密钥构成的Msp来判断SP是否合法。具体而言,用户接收到SP发送的<Esp,C,Y>,利用所知的b计算出Diffie-Hellman密钥SKu=Cb=gbc,恢复Msp=H1(SKu||IDsp||IDu),用户利用认证解密密文得到的签密私钥sku得到预共享秘密PSsp=e(Y,sku)=e(H(IDsp)s,H(IDu)y),通过密钥导出函数计算得到K2=KDF(PSsp,Y||IDu),由密钥K2认证解密收到的密文
Figure BDA0002254732040000133
并判断IDsp和IDu,如果相等于自身的身份标识IDu和要访问的SP身份标识,则表明用户得到了SP的合法的验证信息Msp和y,否则直接输出终止符⊥。用户验证SP的合法性如下,判断Y=H(IDsp)y是否成立,并判断Msp是否相等于利用Diffie-Hellman密钥恢复的Msp,如若相等,表明该SP通过了用户的认证,反之,表明该SP没有通过用户的验证,同时用户终止此次会话。
提供高熵信息存储功能的存储提供商模块如图5所示,包括注册阶段存储提供商存储信息模块及认证阶段存储提供商信息检索模块,其中:
注册阶段存储提供商存储信息模块:用于ST接收并存储用户发送的信息<name,cu,ku>。
认证阶段存储提供商信息检索模块:所述认证阶段存储提供商信息检索模块包括ST接收用户检索信息请求模块及ST响应用户检索信息请求模块。
ST接收用户检索信息请求模块:用于认证阶段ST接收用户发送来的信息检索请求<α,name>。
ST响应用户检索信息请求模块:用于认证阶段ST响应用户信息检索请求模块,包括ST从所存储的众多用户数据中根据该用户发送的name检索出相应的cu并计算OPRF参数
Figure BDA0002254732040000141
最后发送消息<cu,β>给用户。
服务提供商模块如图3所示,包括SP注册模块、认证用户模块及认证响应模块,其中:
SP注册模块:所述SP注册模块包括SP注册请求发起模块及SP注册请求接收模块。
SP注册请求发起模块:用于SP发送注册请求,其中包括身份标识IDsp给KGA以获得签密私钥sksp=H(IDsp)s
SP注册请求接收模块:用于SP接收KGA发送的签密私钥并保存。
认证用户模块:用于SP接收用户发送来的<Eu,X,Head>,做相关计算并判断用户合法性,具体而言,SP利用接收到的X恢复预共享秘密PSu=e(X,sksp)=e(H(IDu)s,H(IDsp)x),通过密钥导出函数可计算出密钥K1=KDF(PSu,X||IDsp),利用密钥K1认证解密密文Eu,进而得到用户身份标识IDu,Diffie-Hellman密钥参数B、SP身份标识IDsp及随机值x,如果解密得到的IDsp与该SP已知的身份标识不匹配,则输出结果⊥并终止会话。进一步通过判断验证因子X=H(IDu)x是否成立来验证用户的合法性,如果不相等,代表该用户的口令有误,则立即终止会话,反之如果相等,则代表用户通过SP的验证。
认证响应模块:用于SP选择随机数构造签密响应和Diffie-Hellman密钥以得到用户的认证,具体而言,SP选择选择随机数
Figure BDA0002254732040000151
并计算Diffie-Hellman参数C=gc,进而求得Diffie-Hellman密钥SKsp=Bc=gbc。SP构建预共享秘密PSsp=e(sksp,H(IDu))y∈GT,进而利用密钥导出函数生成密钥K2=KDF(PSsp,Y||IDu),其中Y=H(IDsp)y∈G1。最后,SP在密钥K2下认证加密IDsp、用户身份标识IDu、Msp=H1(SKsp||IDsp||IDu)及随机数y,得到密文Esp,并发送<Esp,C,Y>给用户。
下面结合附图对本发明的应用原理作进一步的描述。
如图1所示,本发明实施例提供的基于不经意伪随机函数OPRF和签密的单点登录认证方法包括依次进行的系统初始化参数阶段、用户/SP注册阶段、信息检索阶段、用户和SP之间实现双向认证及会话密钥的协商阶段。
系统初始化参数阶段:KGA生成主密钥
Figure BDA0002254732040000152
具有相同素数阶q及一定的映射关系的乘法循环群G1和GT,如:e:G1×G1→GT;并选择单向哈希函数,定义认证加密方案及密钥导出函数;
用户注册阶段:用户将身份标识发送至KGA以获得签密私钥,将签密私钥通过在口令盲化得到的OPRF值下进行认证加密后所得密文、OPRF密钥及检索名发送至ST加以保存。
SP注册阶段:SP将身份标识发送至KGA以获得签密私钥。
信息检索阶段:用户构建口令哈希盲化值,向ST发起信息检索请求,ST接收到用户的检索名及口令哈希盲化值后,在内存中检索对应于该用户的信息(注册阶段所存密文及OPRF密钥),并根据口令哈希盲化值计算OPRF参数,发送该参数及检索所得密文至用户用以恢复出OPRF值,进而用户利用OPRF值认证解密密文得到签密私钥。
用户和SP之间实现双向认证及会话密钥的协商阶段:用户向SP发送可以验证自己身份的验证参数(签密信息)及构建会话密钥的密钥材料。SP验证用户的合法性,如果合法,则构建临时会话密钥,并发送可以向用户验证自己身份的验证参数(签密信息)。用户接收到验证参数并验证该参数的合法性,同时并计算共享会话密钥。
本发明实施例提供的基于OPRF和签密的单点登录认证方法具体包括如下步骤:
步骤1)生成主密钥及系统参数:
KGA生成主密钥
Figure BDA0002254732040000161
具有相同素数阶q及一定的映射关系的乘法循环群G1和GT,如:e:G1×G1→GT。并选择单向哈希函数
Figure BDA0002254732040000162
Figure BDA0002254732040000163
KGA定义认证加密方案AE(Head,msg)及AD(Head,ctext)用于认证阶段消息的加密保护传输,其中Head为公共的头信息,msg为加密的消息,ctext为加密msg得到的密文,KGA定义密钥导出函数KDF:GT×{0,1}*→{0,1}*
步骤2)用户及SP注册。
步骤3)用户向ST发起信息检索如图8所示。
步骤4)用户和SP之间实现双向认证及密钥的协商如图9所示。
在本发明实施例中,步骤2)用户及SP注册,包括:
步骤2a)用户注册如图6所示。
步骤2b)SP注册如图7所示。SP发送注册请求,其中包括身份标识IDsp给KGA,KGA根据该身份标识计算签密私钥sksp=H(IDsp)s并发送给SP加以保存。
在本发明实施例中,步骤2a)进一步包括:
步骤2a1)用户发送注册请求,其中包括身份标识IDu给KGA,KGA通过哈希函数和主密钥生成用户的签密私钥sku=H(IDu)s,并将签密私钥发送给用户。
步骤2a2)用户接收到签密私钥后计算OPRF值
Figure BDA0002254732040000164
其中pwd、
Figure BDA0002254732040000177
为用户所选口令及随机值,并且
Figure BDA0002254732040000171
被作为OPRF密钥,用户将签密私钥sku及身份标识IDu在密钥rwd下进行认证加密,将所得密文cu=AErwd(Head,sku||IDu),检索名name以及相应的OPRF密钥ku通过安全信道发送至ST,其中Head为公共头信息,如数据包报头或是IP地址。
步骤2a3)ST接收到<name,cu,ku>后保存。
在本发明实施例中,步骤3)在公开信道中进行,进一步包括:
步骤3a)用户向ST发起信息检索请求,选择随机数
Figure BDA0002254732040000172
计算口令哈希盲化值α=H1(pwd)a,并将<α,name>发送至ST。
步骤3b)ST接收到<α,name>后,根据检索名name检索出对应于该用户的密文cu及OPRF密钥ku,并计算OPRF参数
Figure BDA0002254732040000176
最后将<cu,β>发送至用户,该过程保证了认证阶段只有拥有合法口令的用户才能根据β计算出有效的OPRF值。
在本发明实施例中,步骤4)进一步包括:
步骤4a1)接收到ST发送来的<cu,β>,用户即可输入口令pwd'恢复OPRF值rwd′=H2(pwd′,β1/a),利用OPRF值,用户可通过认证解密cu得到注册阶段生成的签密私钥sku及IDu,并判断身份标识的合法性,如果解密得到的IDu相等于自身已知的身份标识,则表明用户解密得到了合法的签密私钥,反之终止会话。接下来用户选择随机数
Figure BDA0002254732040000173
其中x用于和签密私钥构建预共享秘密PSu=e(sku,H(IDsp))x∈GT,随机数b用于Diffie-Hellman密钥的计算。用户计算B=gb及X=H(IDu)x∈G1,通过密钥导出函数KDF:GT×{0,1}*→{0,1}*计算K1=KDF(PSu,X||IDsp),其中IDsp为用户访问的SP的身份标识。用户将身份标识IDu、访问的SP身份标识IDsp、随机数x及B在密钥K1下进行认证加密,进而得到密文
Figure BDA0002254732040000174
最后发送<Head,X,Eu>给要访问的SP
步骤4a2)SP利用接收到的X即可恢复预共享秘密PSu=e(X,sksp)=e(H(IDu)s,H(IDsp)x),通过密钥导出函数可计算出密钥K1=KDF(PSu,X||IDsp),利用密钥K1认证解密密文Eu,进而得到用户身份标识IDu,Diffie-Hellman密钥参数B、SP身份标识IDsp及随机值x,如果解密得到的IDsp与该SP已知的身份标识不匹配,则输出终止符⊥并终止会话。SP进一步通过判断验证因子X=H(IDu)x是否成立来验证用户的合法性,如果不相等,代表该用户的口令有误,则立即终止会话,反之如果相等,则代表用户通过SP的验证。
步骤4a3)SP选择随机数构造签密响应和Diffie-Hellman密钥以得到用户的认证。SP选择随机数
Figure BDA0002254732040000181
并计算Diffie-Hellman参数C=gc,进而求得Diffie-Hellman密钥SKsp=Bc=gbc。SP构建预共享秘密PSsp=e(sksp,H(IDu))y∈GT,进而利用密钥导出函数生成密钥K2=KDF(PSsp,Y||IDu),其中Y=H(IDsp)y∈G1。最后,SP在密钥K2下认证加密IDsp、IDu、Msp=H(SKsp||IDsp||IDu)及随机数y,得到密文Esp,并发送<Esp,C,Y>给用户。
步骤4a4)用户接收到SP发送的<Esp,C,Y>,利用所知的b计算出Diffie-Hellman密钥SKu=Cb=gbc,恢复Msp=H(SKu||IDsp||IDu),用户利用认证解密密文得到的签密私钥sku计算出预共享秘密PSsp=e(Y,sku)=e(H(IDsp)s,H(IDu)y),通过密钥导出函数计算得到K2=KDF(PSsp,Y||IDu),由密钥K2认证解密收到的密文
Figure BDA0002254732040000182
并判断IDu和IDsp,如果相等于自身的身份标识和要访问的SP身份标识,则表明用户得到SP的合法验证信息Msp和y,否则直接输出终止符⊥。用户验证SP的合法性如下,判断Y=H(IDsp)y是否成立,并判断Msp是否相等于利用Diffie-Hellman密钥恢复的Msp,如若相等,表明该SP通过了用户的认证,反之,表明该SP没有通过用户的验证,同时用户终止此次会话。
至此,用户和SP之间实现了双向认证,并协商出共同的会话密钥SKu=SKsp=gbc用于之后会话中的安全消息传输。
Figure BDA0002254732040000191
表2相关操作运行时间(单位:毫秒)
用户 服务提供商/存储提供商
T<sub>H</sub> 0.064 0.010
T<sub>bp</sub> 50.842 6.176
T<sub>ae</sub> 0.306 0.072
T<sub>ad</sub> 0.266 0.056
T<sub>exp</sub> 8.495 0.728
T<sub>pa</sub> 0.200 0.045
T<sub>sm</sub> 34.087 10.628
T<sub>mul</sub> 0.128 0.022
T<sub>mtp</sub> 87.350 23.261
表3相关方案计算成本对比(单位:毫秒)
Figure BDA0002254732040000192
Figure BDA0002254732040000201
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于不经意伪随机函数OPRF和签密的单点登录认证方法,其特征在于,所述基于不经意伪随机函数OPRF和签密的单点登录认证方法包括以下步骤:
第一步,密钥生成机构KGA运行,生成系统的公共参数和主密钥;
第二步,用户和服务提供商SP分别在KGA处获取各自的签密私钥,除此之外,用户选择OPRF密钥及口令经盲化后得到的OPRF值,并将由OPRF值认证加密签密私钥所得的密文存入存储提供商,至此,用户和SP各自完成注册过程;
第三步,在用户和SP相互认证前,用户从ST端检索出注册阶段存储的密文,并利用交互中求得的OPRF值认证解密密文得到用户的签密私钥;
第四步,实现用户和SP之间的相互认证以及会话密钥的协商;
所述基于不经意伪随机函数OPRF和签密的单点登录认证方法具体包括:
步骤一,主密钥和公共参数的生成:
KGA生成主密钥
Figure FDA0003543773590000011
具有相同素数阶q及具有映射关系的乘法循环群G1和GT,e:G1×G1→GT;并选择单向哈希函数H:{0,1}*→G1
Figure FDA0003543773590000012
Figure FDA0003543773590000013
KGA定义认证加密方案包含AE(Head,msg)及AD(Head,ctext)用于认证阶段消息的加密保护传输,其中Head为公共头信息,公共头信息包括包报头和IP地址,msg为加密的消息,ctext为认证加密msg得到的密文;定义密钥导出函数KDF:GT×{0,1}*→{0,1}*
步骤二,用户及SP注册:
(1)用户注册:
用户发送注册请求,其中包括身份标识IDu给KGA,KGA通过哈希函数和主密钥生成用户的签密私钥sku=H(IDu)s,并将签密私钥发送给用户;
用户接收到签密私钥后计算OPRF值
Figure FDA0003543773590000014
其中pwd、
Figure FDA0003543773590000021
为用户所选口令及随机值,随机值
Figure FDA0003543773590000022
被作为OPRF密钥,用户将签密私钥sku及身份标识在密钥rwd下进行认证加密得到密文cu=AErwd(Head,sku||IDu),将密文cu、name以及相应的OPRF密钥ku通过安全信道发送至ST;
ST接收并保存<name,cu,ku>;
(2)SP注册:
SP发送注册请求,其中包括身份标识IDsp给KGA,KGA根据该身份标识计算签密私钥sksp=H(IDsp)s并发送给SP加以保存;
步骤三,用户从ST端检索信息:
用户向ST发起信息检索请求,选择随机数
Figure FDA0003543773590000023
计算口令哈希盲化值α=H1(pwd)a,并将<α,name>发送至ST;
ST接收到<α,name>后,根据索引name检索出该用户注册阶段存储的密文cu及OPRF密钥ku,并计算OPRF参数
Figure FDA0003543773590000024
最后将<cu,β>发送至用户,该过程保证了在认证阶段只有拥有合法口令的用户才能根据β计算出有效的OPRF值;
步骤四,用户和SP完成双向认证及会话密钥的协商:
用户和SP之间通过签密过程实现双向认证,并协商出共同的会话密钥SKu=SKsp=gbc用于之后会话中的安全消息传输;
所述步骤四用户和SP完成双向认证及会话密钥的协商具体包括:
(1)接收到ST发送来的<cu,β>,用户即可输入口令pwd′恢复OPRF值rwd′=H2(pwd′,β1/a),利用OPRF值,用户可通过认证解密cu得到注册阶段生成的签密私钥sku及IDu,通过判断IDu的合法性来确定签密私钥的合法性;用户选择随机数
Figure FDA0003543773590000025
其中x用于和签密私钥构建预共享秘密PSu=e(sku,H(IDsp))x∈GT;随机数b用于Diffie-Hellman密钥的计算;用户计算B=gb及X=H(IDu)x∈G1,通过密钥导出函数KDF:GT×{0,1}*→{0,1}*计算K1=KDF(PSu,X||IDsp),其中IDsp为用户访问的SP的身份标识;用户将身份标识IDu,随机数x、SP身份标识IDsp及B在密钥K1下进行认证加密得到密文
Figure FDA0003543773590000031
最后发送<Head,X,Eu>给要访问的SP;
(2)SP利用接收到的X即可恢复预共享秘密PSu=e(X,sksp)=e(H(IDu)s,H(IDsp)x),通过密钥导出函数可计算出密钥K1=KDF(PSu,X||IDsp),利用密钥K1认证解密密文Eu,进而得到用户身份标识IDu,Diffie-Hellman密钥参数B、SP身份标识IDsp及随机值x,如果解密得到的IDsp与该SP自身的身份标识不匹配,则输出终止符⊥并终止会话;进一步通过判断验证因子X=H(IDu)x是否成立来验证用户的合法性,如果不相等,代表该用户的口令有误,则立即终止会话;反之如果相等,则代表用户通过SP的验证;
(3)SP选择随机数构造签密响应和Diffie-Hellman密钥以通过用户的认证;SP选择随机数
Figure FDA0003543773590000032
并计算Diffie-Hellman参数C=gc,进而求得Diffie-Hellman密钥SKsp=Bc=gbc;SP构建预共享秘密PSsp=e(sksp,H(IDu))y∈GT,进而利用密钥导出函数生成密钥K2=KDF(PSsp,Y||IDu),其中Y=H(IDsp)y∈G1;最后,SP在密钥K2下认证加密IDsp、IDu、Msp=H1(SKsp||IDsp||IDu)及随机数y,得到密文Esp,并发送<Esp,C,Y>给用户;
(4)用户接收到SP发送的<Esp,C,Y>,利用所知的b计算出Diffie-Hellman密钥SKu=Cb=gbc,恢复Msp=H1(SKu||IDsp||IDu),用户利用认证解密密文得到的签密私钥sku计算出预共享秘密PSsp=e(Y,sku)=e(H(IDsp)s,H(IDu)y),通过密钥导出函数计算得到K2=KDF(PSsp,Y||IDu),由密钥K2认证解密收到的密文
Figure FDA0003543773590000033
如果输出的IDu相等于已知的身份标识,表明用户得到合法参数(IDsp||IDu||Msp||y),否则输出终止符⊥;用户验证SP的合法性如下,判断Y=H(IDsp)y是否成立,并判断Msp是否相等于利用Diffie-Hellman密钥恢复的Msp,如果相等,表明该SP通过了用户的验证;反之,表明该SP 没有通过用户的验证,同时用户终止此次会话。
2.一种实施权利要求1所述的基于不经意伪随机函数OPRF和签密的单点登录认证方法的基于不经意伪随机函数OPRF和签密的单点登录认证系统,其特征在于,所述基于OPRF和签密的单点登录认证系统包括:
客户端模块,用于用户注册、用户发起信息存储和检索以及和SP完成相互认证及会话密钥的协商;
存储提供商模块,用于SP在注册阶段存储信息及响应用户检索信息的请求;
密钥生成机构模块,用于KGA选择主密钥及初始化系统参数、响应用户注册请求及响应SP注册请求;
服务提供商模块,用于SP注册、认证用户及进行认证响应。
3.如权利要求2所述的基于不经意伪随机函数OPRF和签密的单点登录认证系统,其特征在于,所述客户端模块包括:
用户注册模块:包括用户注册请求发起模块及用户注册请求接收模块;用户注册请求发起模块用于用户发送注册请求,其中包括身份标识IDu到KGA;用户注册请求接收模块,用于用户接收KGA发送的签密私钥sku并保存;
用户信息存储请求模块:用于用户将签密私钥经过认证加密后存储在ST一端,用户和ST之间执行OPRF计算,用户将签密私钥sku及身份标识在OPRF输出值下进行认证加密得到密文cu,并发送存储信息请求包括检索名name、密文cu及OPRF密钥ku至ST;
认证阶段用户检索信息模块:所述认证阶段用户检索信息模块包括用户检索信息请求发起模块及用户检索信息请求接收模块;用户检索信息请求发起模块,用于用户计算口令哈希盲化值α,并发送α和检索名name至ST端;用户检索信息请求接收模块,用于用户接收ST发送来的OPRF参数β及密文cu,并恢复出OPRF值rwd认证解密密文cu得到签密私钥sku
用户认证模块:所述用户认证模块包括用户认证请求发起模块及用户认证请求接收模块;用户认证请求发起模块用于用户构造登录认证请求消息,其中包括签密消息Eu、验证因子X及公共头信息Head,并发送<Eu,X,Head>到要访问的SP以通过验证;用户请求接收模块用于用户接收SP发送的签密消息Esp、Diffie-Hellman参数C=gc及验证因子Y,通过验证参数Y及Diffie-Hellman密钥构成的Msp来判断SP是否合法。
4.如权利要求2所述的基于OPRF和签密的单点登录认证系统,其特征在于,所述提供高熵信息存储功能的存储提供商模块包括注册阶段存储提供商存储信息模块及认证阶段存储提供商信息检索模块:
注册阶段存储提供商存储信息模块:用于ST接收并存储用户发送的信息<name,cu,ku>;
认证阶段存储提供商信息检索模块:所述认证阶段存储提供商信息检索模块包括ST接收用户检索信息请求模块及ST响应用户检索信息请求模块;ST接收用户检索信息请求模块用于认证阶段ST接收用户发送来的信息检索请求<α,name>;ST响应用户检索信息请求模块用于认证阶段ST响应用户信息检索请求,该响应包括ST从所存储的众多高熵数据中根据该用户发送的name检索出相应的cu并计算OPRF参数β,最后发送消息<cu,β>给用户。
5.如权利要求2所述的基于OPRF和签密的单点登录认证系统,其特征在于,所述密钥生成机构模块包括初始化系统参数模块、响应用户注册请求模块及响应服务提供商注册请求模块:
初始化系统参数模块:用于KGA选择主密钥、单向哈希函数、具有相同素数阶的乘法循环群,并定义映射关系;
响应用户注册请求模块:用于KGA根据用户注册请求携带的身份标识,利用主密钥和哈希函数将身份标识隐藏,进而生成相应的签密私钥并通过安全信道发送给用户;
响应服务提供商注册请求模块:用于KGA根据SP注册请求模块发送的身份标识,利用主密钥和哈希函数将其身份标识隐藏,进而生成相应的签密私钥并通过安全信道发送至服务提供商注册请求模块。
6.如权利要求2所述的基于不经意伪随机函数OPRF和签密的单点登录认证系统,其特征在于,所述服务提供商模块包括SP注册模块、认证用户模块及认证响应模块:
SP注册模块:所述SP注册模块包括SP注册请求发起模块及SP注册请求接收模块;SP注册请求发起模块:用于SP发送注册请求,其中包括身份标识给KGA以获得签密私钥;SP注册请求接收模块:用于SP接收KGA发送的签密私钥并保存;
认证用户模块:用于SP接收用户发送来的<Eu,X,Head>,由自己的签密私钥sksp恢复出预共享秘密PSu,并认证解密Eu得到请求访问的用户身份标识IDu,由此构造X并通过该值验证请求用户身份的合法性,如果计算出的X不相等于接收到的X,则终止这次会话,禁止用户的登录请求,反之,用户通过SP的验证;
认证响应模块:用于SP构建签密消息及Diffie-Hellman密钥SKsp;SP将身份标识藏在Y中,并将用户验证SP合法性的关键参数y以及Msp在密钥K2下进行认证加密加以保护,并发送消息<Esp,C,Y>给请求访问的用户,用户接收到消息后对Esp进行认证解密并验证参数Y及Msp的合法性,完成对SP的认证。
7.一种应用权利要求1所述基于不经意伪随机函数OPRF和签密的单点登录认证方法的信息数据处理终端。
8.一种应用权利要求1所述基于不经意伪随机函数OPRF和签密的单点登录认证方法的服务器。
CN201911048580.0A 2019-10-31 2019-10-31 基于不经意伪随机函数和签密的单点登录认证方法 Active CN110784305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911048580.0A CN110784305B (zh) 2019-10-31 2019-10-31 基于不经意伪随机函数和签密的单点登录认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911048580.0A CN110784305B (zh) 2019-10-31 2019-10-31 基于不经意伪随机函数和签密的单点登录认证方法

Publications (2)

Publication Number Publication Date
CN110784305A CN110784305A (zh) 2020-02-11
CN110784305B true CN110784305B (zh) 2022-07-12

Family

ID=69387955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911048580.0A Active CN110784305B (zh) 2019-10-31 2019-10-31 基于不经意伪随机函数和签密的单点登录认证方法

Country Status (1)

Country Link
CN (1) CN110784305B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114945171B (zh) * 2022-05-20 2023-10-03 国网智能电网研究院有限公司 一种终端二次认证方法、设备及系统
CN116150445B (zh) * 2023-04-04 2023-07-21 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种批量信息查询方法及电子设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457587A (zh) * 2000-08-15 2003-11-19 维亚克沃公司 用于安全管理的基于环球网的应用服务模式的方法和装置
CN106301788A (zh) * 2016-08-12 2017-01-04 武汉大学 一种支持用户身份认证的群组密钥管理方法
CN106789032A (zh) * 2017-01-16 2017-05-31 西安电子科技大学 服务器与移动设备间秘密共享的单一口令三方认证方法
CN107124268A (zh) * 2017-04-01 2017-09-01 中国人民武装警察部队工程大学 一种可抵抗恶意攻击的隐私集合交集计算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887293B2 (en) * 2018-03-20 2021-01-05 International Business Machines Corporation Key identifiers in an obliviousness pseudorandom function (OPRF)-based key management service (KMS)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457587A (zh) * 2000-08-15 2003-11-19 维亚克沃公司 用于安全管理的基于环球网的应用服务模式的方法和装置
CN106301788A (zh) * 2016-08-12 2017-01-04 武汉大学 一种支持用户身份认证的群组密钥管理方法
CN106789032A (zh) * 2017-01-16 2017-05-31 西安电子科技大学 服务器与移动设备间秘密共享的单一口令三方认证方法
CN107124268A (zh) * 2017-04-01 2017-09-01 中国人民武装警察部队工程大学 一种可抵抗恶意攻击的隐私集合交集计算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Qi Xie,etc.Provably Secure Dynamic ID-Based Anonymous Two-Factor Authenticated Key Exchange Protocol With Extended Security Model.《IEEE》.2017, *
汪定等.对三个多服务器环境下匿名认证协议的分析.《软件学报》.2018, *

Also Published As

Publication number Publication date
CN110784305A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
JP7119040B2 (ja) データ伝送方法、装置およびシステム
Arshad et al. An efficient and secure authentication and key agreement scheme for session initiation protocol using ECC
Lai et al. Applying semigroup property of enhanced Chebyshev polynomials to anonymous authentication protocol
CN110020524B (zh) 一种基于智能卡的双向认证方法
WO2014166546A1 (en) Method and system for accessing device by a user
Nikooghadam et al. A secure and robust elliptic curve cryptography‐based mutual authentication scheme for session initiation protocol
CN112351037B (zh) 用于安全通信的信息处理方法及装置
US11438316B2 (en) Sharing encrypted items with participants verification
Irshad et al. An efficient and anonymous chaotic map based authenticated key agreement for multi-server architecture
Nagaraju et al. SecAuthn: provably secure multi-factor authentication for the cloud computing systems
Chen et al. Security analysis and improvement of user authentication framework for cloud computing
Gupta et al. Hash based multi-server key exchange protocol using smart card
CN110784305B (zh) 基于不经意伪随机函数和签密的单点登录认证方法
CN116388995A (zh) 一种基于puf的轻量级智能电网认证方法
Mishra et al. A provably secure content distribution framework for portable DRM systems
Liou et al. T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs
CN115865520B (zh) 移动云服务环境中具有隐私保护的认证和访问控制方法
Gaharana et al. A new approach for remote user authentication in a Multi-server environment based on DYNAMIC-ID using SMART-CARD
CN114389808B (zh) 一种基于SM9盲签名的OpenID协议设计方法
Li et al. A simple and robust anonymous two‐factor authenticated key exchange protocol
CN115632797A (zh) 一种基于零知识证明的安全身份验证方法
Chatterjee et al. A novel multi-server authentication scheme for e-commerce applications using smart card
Gao et al. Cryptanalysis of three dynamic ID-based remote user authentication schemes using smart cards
Ahmed et al. Mutual authentication for mobile cloud computing: Review and suggestion
Chen et al. SSL/TLS session-aware user authentication using a gaa bootstrapped key

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