一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于生物识别和SM2协同密码算法的密码保护方法及装置与流程

2022-02-20 07:31:04 来源:中国专利 TAG:

基于生物识别和sm2协同密码算法的密码保护方法及装置
技术领域
1.本发明涉及信息安全技术领域,尤其涉及一种基于生物识别和sm2协同密码算法的密码保护方法及装置。


背景技术:

2.在证券行业,基于系统安全和稳定等原因,后台交易系统只支持交易密码登录,且根据安全合规要求,禁止除柜台外其他中台系统存储密码及其加密后数据,因此造成每次交易客户端登录,必须输入交易密码的使用痛点。
3.随着移动设备普及和生物识别技术的成熟,证券交易移动客户端出现了生物识别登录交易系统的需求,开发厂商针对该需求,提供了一些技术方案,基本上都是使用rsa公钥加密交易密码存储到客户端本地或服务端,生物识别登录的时候,访问rsa私钥解密对应密文送交易系统登录,但该方法仅需私钥即可解密,如果私钥和密文被窃取,可能造成客户交易密码泄漏的风险。


技术实现要素:

4.本发明实施例提供了一种基于生物识别和sm2协同密码算法的密码保护方法及装置,旨在解决现有技术的密码安全存储中客户交易密码泄漏风险较大的问题。
5.第一方面,本发明实施例提供了一种基于生物识别和sm2协同密码算法的密码保护方法,其包括:客户端接收用户的生物特征并验证通过,并依次对用户的明文密码进行加密处理,分别得到第一密文和第二密文,以开通生物识别登录;当客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,得到签名数据,并基于本地的第一私钥分量和所述第二密文进行点乘运算,得到第一点乘结果,并将所述第一点乘结果、签名数据、账号id发送至服务端;服务端采用所述账号id对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,基于所述第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将所述第二点乘结果发送至客户端;客户端基于所述第一私钥分量对所述第二点乘结果解密,得到所述第一密文,接着使用所述rsa私钥对所述第一密文进行解密,得到所述生物特征对应用户的明文密码。
6.第二方面,本发明实施例提供了一种基于生物识别和sm2协同密码算法的密码保护装置,其包括客户端和服务端:客户端包括:第一交互模块,用于接收用户的生物特征并验证通过,并依次对用户的明文密码进行加密处理,分别得到第一密文和第二密文,以开通生物识别登录;以及,当客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,得到签名数据,并基于本地的第一私钥分量和所述第二密文进行点乘运算,得到第一点乘结果,并将所述
第一点乘结果、签名数据、账号id发送至服务端;以及,基于所述第一私钥分量对所述第二点乘结果解密,得到所述第一密文,接着使用所述rsa私钥对所述第一密文进行解密,得到所述生物特征对应用户的明文密码;服务端包括:第二交互模块,用于采用所述账号id对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,基于所述第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将所述第二点乘结果发送至客户端。
7.本发明实施例提供了基于生物识别和sm2协同密码算法的密码保护方法及装置。该方法包括客户端接收用户的生物特征并验证通过,并依次对用户的明文密码进行加密处理,分别得到第一密文和第二密文,以开通生物识别登录;当客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,得到签名数据,并基于本地的第一私钥分量和所述第二密文进行点乘运算,得到第一点乘结果,并将所述第一点乘结果、签名数据、账号id发送至服务端;服务端采用所述账号id对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,基于所述第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将所述第二点乘结果发送至客户端;客户端基于所述第一私钥分量对所述第二点乘结果解密,得到所述第一密文,接着使用所述rsa私钥对所述第一密文进行解密,得到所述生物特征对应用户的明文密码。该方法利用rsa算法和sm2算法对用户的明文密码进行两次加密,并利用rsa私钥对用户id进行签名验证,确保用户密码存储的安全性和加密安全,解决了生物识别体系和sm2协同密码体系的转换绑定,增强用户密码在客户端本地的安全存储,降低用户密码的泄漏风险。
附图说明
8.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
9.图1为本发明实施例提供的基于生物识别和sm2协同密码算法的密码保护方法的流程示意图;图2为图1中步骤s110的子流程示意图;图3为本发明实施例提供的基于生物识别和sm2协同密码算法的密码保护装置的示意性框图。
具体实施方式
10.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
11.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和
ꢀ“
包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
12.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
13.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
14.请参阅图1所示,图1为本发明实施例提供的基于生物识别和sm2协同密码算法的密码保护方法的流程示意图,该方法包括步骤s110~s140。
15.步骤s110、客户端接收用户的生物特征并验证通过,并依次对用户的明文密码进行加密处理,分别得到第一密文和第二密文,以开通生物识别登录;本实施例中,为方便客户端对用户身份进行验证,首先进行客户端生物识别登陆的开通,客户端接收用户的生物特征并验证通过;接着对用户的明文密码进行一次加密,得到明文密码一次加密后的第一密文;再对明文密码一次加密后的第一密文进行二次加密,得到明文密码的第二密文。
16.在一实施例中,步骤s110还包括:客户端建立所述rsa密钥对与所述生物特征的映射关系并存储于客户端本地。
17.本实施例中,为了便于用户进行生物识别登陆时,客户端根据接收到的生物特征调用对应rsa私钥对账号id进行签名,因此客户端生成包含rsa密钥对后,建立rsa密钥对与生物特征和账号id的绑定关系。
18.如图2所示,在一实施例中,步骤s110包括:步骤s210、当客户端接收到开通生物识别登录的请求时,接收并验证用户输入的生物特征,生成包含所述rsa公钥和rsa私钥的rsa密钥对,采用所述rsa公钥对接收到的明文密码进行加密得到第一密文,根据sm2算法生成所述第一私钥分量,并将所述rsa私钥和第一私钥分量存储于本地,基于所述第一私钥分量进行中间值计算,得到客户端中间值,将所述客户端中间值、rsa公钥及用户id发送至服务端;步骤s220、服务端根据sm2算法生成第二私钥分量,基于所述第二私钥分量计算得到服务端中间值,基于所述客户端中间值和服务端中间值进行公钥计算,得到sm2公钥,将所述sm2公钥发送至客户端;步骤s230、客户端采用所述sm2公钥对所述第一密文进行加密,得到所述第二密文并存储于本地。
19.本实施例中,rsa算法是先生成一对rsa密钥,其中之一是保密密钥,由客户端保存;另一个为公开密钥,可对外公开,甚至可在网络服务端中注册。sm2算法为椭圆曲线公钥密码算法,是一种非对称加密算法。当客户端接收到开通生物识别登陆的请求时,以用户生物特征验证通过为前提条件;接着根据rsa算法生成包含rsa私钥和rsa公钥的rsa密钥对,然后采用rsa公钥对接收到的明文密码进行加密以得到第一密文;进而根据sm2算法生成第一私钥分量,将rsa私钥和第一私钥分量存储于本地,根据sm2算法和第一私钥分量进行中间值计算,得到客户端中间值,最后将客户端中间值、rsa公钥和用户id发送至服务端进行交互。服务端接收客户端中间值、rsa公钥和用户id后,根据sm2算法生成第二私钥分量,基于sm2算法和第二私钥分量计算得到服务端中间值,基于所述客户端中间值和服务端中间值进行公钥计算,得到sm2公钥并将sm2公钥发送至客户端。客户端接收sm2公钥后采用sm2
公钥对第一密文进行加密,得到第二密文后存储于客户端本地。需要知道的是,客户端接收sm2公钥后,建立生物特征和ras私钥、第一私钥分量、sm2公钥、账号id的映射关系。其中,用户id包括有账户id(通行证)、设备编号及应用编号。其中,按以下公式计算得到所述sm2公钥,确定客户端和服务端共享的sm2 算法的椭圆曲线参数 e(fq)、g 和 n,椭圆曲线 e为定义在有限域 fq 上的椭圆曲线,g 表示椭圆曲线 e 上 n 阶的基点,各参数的具体取值等均根据国密sm2算法预先设定:1)客户端产生一个位于 [1,n-1] 之间的随机数,将产生的随机数作为第一私钥分量,即有第一私钥分量d1 ∈ [1,n-1];2)服务端产生一个位于 [1,n-1] 之间的随机数,将产生的随机数作为第二私钥分量,即有第二私钥分量d2 ∈ [1,n-1];3)客户端按以下公式计算客户端中间值,并将计算结果(客户端中间值p1)发送给服务端: p1 = d1[*]g,其中,[*] 表示椭圆曲线点乘运算;3)服务端按以下公式计算服务端中间值p2:p2 = d2[*]g;接着按以下公式计算sm2公钥p:p=p1 p2 d2[*]p1。
[0020]
在一实施例中,步骤s220还包括:所述服务端建立所述rsa公钥、sm2公钥、第二私钥分量和用户id的映射关系并存储于服务端本地。
[0021]
本实施例中,为了便于获取对应用户id的rsa公钥、sm2公钥及第二私钥分量进行密钥加密或中间值计算,服务端建立rsa公钥、sm2公钥、第二私钥分量和用户id的映射关系,并存储于服务端本地。
[0022]
在一实施例中,步骤s220还包括:服务端设定所述映射关系对应的生物识别登录授权有效期。
[0023]
本实施例中,在防止rsa公钥、sm2公钥、第二私钥分量和用户id泄露,在建立rsa公钥、sm2公钥、第二私钥分量和用户id的映射关系后,还设定该映射关系对应的生物识别登陆的授权有效期。
[0024]
步骤s120、当客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,得到签名数据,并基于本地的第一私钥分量和所述第二密文进行点乘运算,得到第一点乘结果,并将所述第一点乘结果、签名数据、账号id发送至服务端;本实施例中,为了加强用户的身份验证,在客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,以得到签名数据。接着基于本地的第一私钥分量和第二密文进行点乘运算,得到第一点乘结果,最后将第一点乘结果、签名数据发送至服务端。具体的,第一点乘结果的计算过程如下:客户端获取sm2密文的第一比特串;对第一比特串进行数据类型转换,得到所述第一比特串对应的椭圆曲线群元素;根据第一私钥分量和第一比特串对应的椭圆曲线群元素,得到第一点乘结果。此外,客户端发送第一点乘结果至服务端时,还将对第一比特串对应的椭圆曲线群元素传输至服务端。
[0025]
进一步的,在将第一点乘结果和第一比特串对应的椭圆曲线群元素传输给服务端
的步骤之前还包括:对第一比特串对应的椭圆曲线群元素进行验证,在验证出第一比特串对应的椭圆曲线群元素是椭圆曲线的无穷远点时,报错并退出解密;以及,根据第一比特串对应的椭圆曲线群元素,基于以下公式计算点乘结果s,在检测到点乘结果s为椭圆曲线的无穷远点时,报错并退出解密:,式中,为椭圆曲线上基点的阶n的余因子;为所述第一比特串对应的椭圆曲线群元素。
[0026]
步骤s130、服务端采用所述账号id对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,基于所述第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将所述第二点乘结果发送至客户端;本实施例中,服务端采用对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,若验证不通过,则结束通讯。当验证通过时,基于本地的第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将第二点乘结果发送至客户端。
[0027]
步骤s140、客户端基于所述第一私钥分量对所述第二点乘结果解密,得到所述第一密文,接着使用所述rsa私钥对所述第一密文进行解密,得到所述生物特征对应用户的明文密码。
[0028]
本实施例中,根据第二点乘结果和第一比特串对应的椭圆曲线群元素,得到临时对称密钥,并提取sm2密文的第二比特串;对临时对称密钥和第二比特串进行按位异或运算,得到解密明文;对解密明文进行校验,并在校验成功时输出生物特征对应用户的明文密码。其中,根据第二点乘结果和第一比特串对应的椭圆曲线群元素,得到临时对称密钥的过程如下:基于以下公式得到椭圆曲线群元素:,式中,为第二点乘结果,为第一比特串对应的椭圆曲线群元素;根据所述椭圆曲线群元素,基于以下公式生成临时对称密钥:,式中,为所述临时对称密钥,||表示拼接,为预先定义的密钥派生函数,表述输出的比特串长度。
[0029]
进一步的,对解密明文进行校验,并在校验成功时输出所述解密明文的步骤具体包括:基于以下公式得到校验码:,式中,为校验码,为明文密码,表示预设的密码杂凑算法;接着提取所述sm2密文中的第三比特串c3,在u=c3时,确认所述校验成功,输出明文密码。
[0030]
该方法利用rsa算法和sm2算法对用户的明文密码进行两次加密,还利用sm2算法生成私钥分量对用户id进行签名,确保用户密码存储的安全性,解决了生物识别体系和sm2
协同密码体系的转换绑定,增强用户密码在客户端本地的安全存储,降低用户密码的泄漏风险。
[0031]
本发明实施例还提供一种基于生物识别和sm2协同密码算法的密码保护装置,该基于生物识别和sm2协同密码算法的密码保护装置用于执行前述基于生物识别和sm2协同密码算法的密码保护方法的任一实施例。具体地,请参阅图3,图3是本发明实施例提供的基于生物识别和sm2协同密码算法的密码保护装置的示意性框图。该基于生物识别和sm2协同密码算法的密码保护装置100可以配置于服务端中。
[0032]
如图3所示,基于生物识别和sm2协同密码算法的密码保护装置100包括客户端110、服务端120。
[0033]
客户端110包括:第一交互模块,用于接收用户的生物特征并验证通过,并依次对用户的明文密码进行加密处理,分别得到第一密文和第二密文,以开通生物识别登录;以及,当客户端接收到生物特征并验证通过时,通过本地的rsa私钥对对应的账号id进行签名,得到签名数据,并基于本地的第一私钥分量和所述第二密文进行点乘运算,得到第一点乘结果,并将所述第一点乘结果、签名数据、账号id发送至服务端;以及,基于所述第一私钥分量对所述第二点乘结果解密,得到所述第一密文,接着使用所述rsa私钥对所述第一密文进行解密,得到所述生物特征对应用户的明文密码;服务端120包括:第二交互模块,用于采用所述账号id对应的rsa公钥对接收到的签名数据进行验证,若验证通过则获取本地的第二私钥分量,基于所述第二私钥分量和第一点乘结果进行点乘运算,得到第二点乘结果,并将所述第二点乘结果发送至客户端。
[0034]
在一实施例中,所述第一交互模块包括:绑定单元,用于客户端建立所述rsa密钥对与所述生物特征的绑定关系。在一实施例中,所述第二交互模块包括:映射单元,用于建立所述rsa公钥和sm2公钥、第二私钥分量、用户id的映射关系并存储于本地。
[0035]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0036]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可
以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0037]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0038]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0039]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 ( 可以是个人计算机,服务端,或者网络设备等 ) 执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u 盘、移动硬盘、只读存储器 (rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0040]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献