一种身份认证方法及系统技术方案

技术编号:22172704 阅读:34 留言:0更新日期:2019-09-21 13:24
本发明专利技术公开了一种身份认证方法及系统,方法包括:将密码通过椭圆曲线计算对应公钥,并将公钥发送至服务端进行保存;生成登录请求,接收服务端在接收到登录请求后产生的随机数,基于随机数与拥有的密码产生只用于本轮认证的公钥,通过哈希算法等输出认证信息;将认证信息发送至服务端,服务端基于认证信息,随机数,储存公钥进行认证。本发明专利技术能够有效减少客户端与服务端的交互次数,提高效率,以及提高密码的便捷性和在认证信息中不包含密码的明文或者密文,提高认证的安全性。

An Identity Authentication Method and System

【技术实现步骤摘要】
一种身份认证方法及系统
本专利技术数据安全
,尤其涉及一种身份认证方法及系统。
技术介绍
随着越来越多的网页应用,手机应用,如何储存用户的账号密码成为一个重要问题。由于时常爆出数据库被脱库,以及不安全的储存方式导致库中账号密码泄露,造成了用户的巨大损失。同时随着欧盟的GDPR(GeneralDataProtectionRegulation,通用数据保护条例)的生效,人们更加关注自身的数据安全,各公司也关心自己的安全措施是否符合法律法规。目前,现有技术最接近的是Linux中通过公私钥来登录。用户保存一份私钥,服务端存着对应的公钥,通过公私钥的方法就可以不使用密码登录。服务端发送一串字符,用户加密后返回给服务端,服务端解密后对比是否一致,如果一致,就登录成功。另一种技术就是通过交互式零知识证明来完成身份认证,但是交互式需要客户端与服务端交互更多的次数,并且过程中没有随机因素,无法防止重放攻击。因此,如何减少客户端与服务端的交互次数,提高效率,以及提高密码的便捷性,提高认证的安全性,是一项亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种身份认证方法,能够有效减少客户端与服务端的交互次数,提高效率,以及提高密码的便捷性和提高认证的安全性。本专利技术提供了一种身份认证方法,应用于客户端,所述方法包括:将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g的阶;计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存,其中,g为椭圆曲线上的基点,[x]g为g的x倍点;生成登录请求;接收所述服务端在接收到所述登录请求后产生的随机数m;基于所述随机数m,根据公式pub*=[x+m]g计算本轮登录需要的新公钥pub*;产生随机数w;基于所述随机数w,通过哈希算法输出结果c,r;将所述结果c,r发送至所述服务端,所述结果c,r用于所述服务端进行认证。优选地,所述基于所述随机数w,通过哈希算法输出结果r,c,包括:基于所述随机数w,通过公式W=[w]g计算W;通过公式c=Hash(W,pub*)计算c;基于公式r=w-c(x+m)mod(n)输出结果r,其中,n为椭圆曲线基点g的阶。一种身份认证方法,应用于服务端,所述方法包括:保存客户端发送的公钥信息pub;接收客户端生成的登录请求;基于所述登录请求产生的随机数m;发送所述随机数m至所述客户端;基于所述登录请求,根据唯一的登录名查找到存储的所述pub;基于所述随机数m和所述pub计算登录依据pub*;接收所述客户端基于所述随机数m通过哈希算法输出的结果r,c;基于所述结果r,c,通过哈希算法进行身份认证。优选地,所述基于所述随机数m和所述pub计算登录依据pub*,包括:根据公式pub*=pub+[m]g(modq)计算登录依据pub*。优选地,所述基于所述结果r,c,通过哈希算法进行身份认证,包括:判断Hash([r]g+[c]pub*,pub*)是否等于c,若是,则身份认证成功,若否,则身份认证失败。一种身份认证系统,应用于客户端,所述系统包括:转化模块,用于将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g的阶;第一计算模块,用于计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存,其中,g为椭圆曲线上的基点,[x]g为g的x倍点;第一生成模块,用于生成登录请求;接收模块,用于接收所述服务端在接收到所述登录请求后产生的随机数m;第二计算模块,用于基于所述随机数m,根据公式pub*=[x+m]g计算本轮登录需要的新公钥pub*;第二生成模块,用于产生随机数w;第三计算模块,用于基于所述随机数w,通过哈希算法输出结果r,c;发送模块,用于将所述结果r,c发送至所述服务端,所述结果r,c用于所述服务端进行认证。优选地,所述第三计算模块在执行基于所述随机数w,通过哈希算法输出结果r,c时,具体用于:基于所述随机数w,通过公式W=[w]g计算W;通过公式c=Hash(W,pub*)计算c;基于公式r=w-c(x+m)mod(n)输出结果r,其中,n为椭圆曲线基点g的阶。一种身份认证系统,应用于服务端,所述系统包括:存储模块,用于保存客户端发送的公钥信息pub;第一接收模块,用于接收客户端生成的登录请求;生成模块,用于基于所述登录请求产生的随机数m;发送模块,用于发送所述随机数m至所述客户端;查找模块,用于基于所述登录请求,根据唯一的登录名查找到存储的所述pub;计算模块,用于基于所述随机数m和所述pub计算登录依据pub*;第二接收模块,用于接收所述客户端基于所述随机数m通过哈希算法输出的结果r,c;认证模块,用于基于所述结果r,c,通过哈希算法进行身份认证。优选地,所述计算模块在执行基于所述随机数m和所述pub计算登录依据pub*时,具体用于:根据公式pub*=pub+[m]g(modq)计算登录依据pub*。优选地,所述认证模块在执行基于所述结果r,c,通过哈希算法进行身份认证时,具体用于:判断Hash([r]g+[c]pub*,pub*)是否等于c,若是,则身份认证成功,若否,则身份认证失败。综上所述,本专利技术公开了一种身份认证方法,应用于客户端,当需要进行身份认证时,首先将密码转化成椭圆曲线上的一个值x,然后计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存,生成登录请求,接收服务端在接收到登录请求后产生的随机数m,基于随机数m,根据公式pub*=[x+m]g计算本轮登录需要的新公钥pub*,产生随机数w;基于随机数w,通过哈希算法输出结果r,c,将结果r,c发送至服务端,结果r,c用于服务端进行认证。本专利技术能够有效减少客户端与服务端的交互次数,提高效率,以及提高密码的便捷性和提高认证的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术公开的一种身份认证方法实施例1的方法流程图;图2为本专利技术公开的一种身份认证方法实施例2的方法流程图;图3为本专利技术公开的一种身份认证系统实施例1的结构示意图;图4为本专利技术公开的一种身份认证系统实施例2的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术公开的一种身份认证方法实施例1的方法流程图,所述方法应用于客户端,所述方法可以包括以下步骤:S101、将密码转化成椭圆曲线上的一个值x;当需要进行身份认证时,在客户端将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g的阶,g为椭圆曲线的一个基点。S102、计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存;当将密码转化成椭圆曲线上的一个值x后,根据x计算[x]g的值,得到计算结本文档来自技高网...

【技术保护点】
1.一种身份认证方法,其特征在于,应用于客户端,所述方法包括:将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g的阶;计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存,其中,g为椭圆曲线上的基点,[x]g为g的x倍点;生成登录请求;接收所述服务端在接收到所述登录请求后产生的随机数m;基于所述随机数m,根据公式pub*=[x+m]g计算本轮登录需要的新公钥pub*;产生随机数w;基于所述随机数w,通过哈希算法输出结果c,r;将所述结果c,r发送至所述服务端,所述结果c,r用于所述服务端进行认证。

【技术特征摘要】
1.一种身份认证方法,其特征在于,应用于客户端,所述方法包括:将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g的阶;计算[x]g的值,并将计算结果公钥信息pub发送至服务端进行保存,其中,g为椭圆曲线上的基点,[x]g为g的x倍点;生成登录请求;接收所述服务端在接收到所述登录请求后产生的随机数m;基于所述随机数m,根据公式pub*=[x+m]g计算本轮登录需要的新公钥pub*;产生随机数w;基于所述随机数w,通过哈希算法输出结果c,r;将所述结果c,r发送至所述服务端,所述结果c,r用于所述服务端进行认证。2.根据权利要求1所述的方法,其特征在于,所述基于所述随机数w,通过哈希算法输出结果r,c,包括:基于所述随机数w,通过公式W=[w]g计算W;通过公式c=Hash(W,pub*)计算c;基于公式r=w-c(x+m)mod(n)输出结果r,其中,n为椭圆曲线基点g的阶。3.一种身份认证方法,其特征在于,应用于服务端,所述方法包括:保存客户端发送的公钥信息pub;接收客户端生成的登录请求;基于所述登录请求产生的随机数m;发送所述随机数m至所述客户端;基于所述登录请求,根据唯一的登录名查找到存储的所述pub;基于所述随机数m和所述pub计算登录依据pub*;接收所述客户端基于所述随机数m通过哈希算法输出的结果r,c;基于所述结果r,c,通过哈希算法进行身份认证。4.根据权利要求3所述的方法,其特征在于,所述基于所述随机数m和所述pub计算登录依据pub*,包括:根据公式pub*=pub+[m]g(modq)计算登录依据pub*。5.根据权利要求4所述的方法,其特征在于,所述基于所述结果r,c,通过哈希算法进行身份认证,包括:判断Hash([r]g+[c]pub*,pub*)是否等于c,若是,则身份认证成功,若否,则身份认证失败。6.一种身份认证系统,其特征在于,应用于客户端,所述系统包括:转化模块,用于将密码转化成椭圆曲线上的一个值x,其中,0<x<n,n为椭圆曲线基点g...

【专利技术属性】
技术研发人员:王勤武
申请(专利权)人:浙江齐治科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1