本发明涉及信息安全技术领域,尤其涉及轻量级无证书认证方法、客户端及系统。
背景技术:
目前,公钥认证技术是增强物联网终端设备安全性的有效技术,国内常用的公钥认证技术主要有两种,sm2公钥认证和sm9公钥认证。其中,sm2认证是目前应用最广泛的公钥认证方法,缺点是身份认证需要数字证书的参与,其对于轻量级物联网终端设备的存储空间和传输带宽来说是一个比较沉重的负担;sm9认证是基于身份标识的公钥认证方法,缺点是算法复杂度高,在轻量级的物联网终端设备上不易实现。
因此,如何给物联网终端设备提供一种轻量级的、便于管理的公钥认证方法是当下急需解决的问题。
技术实现要素:
本发明所要解决的技术问题是针对现有技术的不足,提供一种轻量级的、便于管理的公钥认证方法、客户端及系统。
本发明解决上述技术问题的技术方案如下:
一种轻量级无证书认证方法,包括:
客户端生成临时公钥和临时私钥,并将身份标识和所述临时公钥发送给密钥生成中心;
所述密钥生成中心根据所述身份标识和所述临时公钥,计算得到部分公钥和部分私钥,并将所述部分公钥和所述部分私钥发送给所述客户端;
所述客户端根据所述临时私钥和所述部分私钥计算得到完整私钥;
当所述客户端与第三方进行公钥验证时,根据所述完整私钥、所述身份标识和所述部分公钥与所述第三方进行验证。
本发明的有益效果是:本发明提供的认证方法,适用于物联网环境,基于sm2公钥算法标准和身份标识技术实现,通过客户端与密钥生成中心协同完成密钥的注册过程,生成公私钥对,后续的认证过程就不需要密钥生成中心参与了,客户端与第三方可以直接通过完整的公私钥对和客户端的身份标识进行验签,签名和验签都是标准的sm2算法,运算复杂度低,并且可以兼容现有的公钥基础设施,且无需复杂的证书管理,客户端对私钥有完整的自主权,不存在密钥托管问题,在做公钥认证时,需要传输的数据少,因此,本发明可以适用于低带宽的物联网环境。
本发明解决上述技术问题的另一种技术方案如下:
一种轻量级无证书认证客户端,包括:
生成单元,用于生成临时公钥和临时私钥;
发送单元,用于将身份标识和所述临时公钥发送给密钥生成中心;
接收单元,用于接收所述密钥生成中心根据所述身份标识和所述临时公钥,计算得到的部分公钥和部分私钥;
计算单元,用于根据所述临时私钥和所述部分私钥计算得到完整私钥;
验证单元,用于根据所述完整私钥、所述身份标识和所述部分公钥与第三方进行验证。
本发明解决上述技术问题的另一种技术方案如下:
一种轻量级无证书认证系统,包括:客户端、第三方和密钥生成中心,其中:
所述客户端用于生成临时公钥和临时私钥,并将身份标识和所述临时公钥发送给密钥生成中心;
所述密钥生成中心用于根据所述身份标识和所述临时公钥,计算得到部分公钥和部分私钥,并将所述部分公钥和所述部分私钥发送给所述客户端;
所述客户端还用于根据所述临时私钥和所述部分私钥计算得到完整私钥,并当所述客户端与第三方进行公钥验证时,根据所述完整私钥、所述身份标识和所述部分公钥与所述第三方进行验证。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明轻量级无证书认证方法的实施例提供的流程示意图;
图2为本发明轻量级无证书认证方法的其他实施例提供的密钥注册过程示意图;
图3为本发明轻量级无证书认证方法的其他实施例提供的公钥认证过程示意图;
图4为本发明轻量级无证书认证客户端的实施例提供的结构框架图;
图5为本发明轻量级无证书认证系统的实施例提供的结构框架图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
随着物联网的高速发展,物联网的安全问题得到了越来越广泛的关注。物联网终端设备是整个物联网安全性最薄弱的一环,给所有接入物联网的设备带来了安全隐患。所以加强物联网终端设备的安全等级,成为当前物联网发展亟待解决的问题。然而物联网环境通常带宽较低,因此,目前的认证算法中需要使用数字证书参数的sm2认证和算法逻辑复杂的sm9认证均不能适用于物联网环境,基于此,本发明提供了一种适用于物联网环境的轻量级无证书认证方法,具体说明如下。
如图1所示,为本发明轻量级无证书认证方法的实施例提供的流程示意图,该认证方法包括:
s1,客户端生成临时公钥和临时私钥,并将身份标识和临时公钥发送给密钥生成中心;
例如,客户端可以生成一个随机数,将随机数作为临时私钥,然后通过预设的加密算法,根据随机数生成临时公钥。
s2,密钥生成中心根据身份标识和临时公钥,计算得到部分公钥和部分私钥,并将部分公钥和部分私钥发送给客户端;
例如,密钥生成中心可以生成一个随机数,根据随机数和预设的算法规则生成加密因子,再根据预设的加密算法和加密因子生成部分公钥,再根据密钥生成中心维护的主私钥,计算得到部分私钥。
s3,客户端根据临时私钥和部分私钥计算得到完整私钥;
例如,可以将临时私钥和部分私钥相加,得到完整私钥。
s4,当客户端与第三方进行公钥验证时,根据完整私钥、身份标识和部分公钥与第三方进行验证。
应理解,当第三方接收到完整私钥、身份标识和部分公钥后,可以首先根据身份标识和主公钥计算出真正的公钥,然后再根据真正的公钥进行验签。
需要说明的是,密钥生成中心kgc端维护着一对公私钥,主私钥和主公钥(sm,pkm),其中,主公钥pkm公开。
应理解,其中,步骤s1~s3为密钥注册过程,步骤s4为公钥认证过程,其使用的具体加密认证算法可以根据实际需求选择。
本实施例提供的认证方法,适用于物联网环境,基于sm2公钥算法标准和身份标识技术实现,通过客户端与密钥生成中心协同完成密钥的注册过程,生成公私钥对,后续的认证过程就不需要密钥生成中心参与了,客户端与第三方可以直接通过完整的公私钥对和客户端的身份标识进行验签,签名和验签都是标准的sm2算法,运算复杂度低,并且可以兼容现有的公钥基础设施,且无需复杂的证书管理,客户端对私钥有完整的自主权,不存在密钥托管问题,在做公钥认证时,需要传输的数据少,因此,本发明可以适用于低带宽的物联网环境。
可选地,在一些实施例中,如图2所示,密钥生成中心维护有主私钥和主公钥,密钥生成中心根据身份标识和临时公钥,计算得到部分公钥和部分私钥,具体包括:
客户端维护一对临时公私钥,临时私钥和临时公钥(dc,pc),密钥生成中心维护着一对公私钥,主私钥和主公钥(sm,pkm);
客户端将自身的身份标识和临时公钥(id,pc)发送给密钥生成中心;
密钥生成中心接收到身份标识和临时公钥(id,pc)后,生成随机数k;
密钥生成中心根据随机数k、主私钥sm和临时公钥pc计算得到部分公钥p;
密钥生成中心根据主私钥sm和随机数k计算得到部分私钥d2;
密钥生成中心将部分私钥和部分公钥(d2,p)发送给客户端;
客户端根据部分私钥d2和临时私钥dc计算得到完整私钥d;
客户端存储完整私钥d和部分公钥p;
密钥生成中心维护身份标识id和部分公钥p。
通过上述过程实现密钥对的注册,避免了复杂的数字证书管理,使客户端对私钥有完整的自主权,不存在密钥托管问题,运算复杂度低,并且可以兼容现有的公钥基础设施。
可选地,在一些实施例中,如图3所示,根据完整私钥、身份标识和部分公钥与第三方进行验证,具体包括:
客户端维护着完整私钥及部分公钥(d,p),第三方维护着主公钥pkm;
客户端根据完整私钥d做签名运算,得到签名值(r,s);
客户端将签名值、身份标识和部分公钥(r,s,id,p)发送给第三方;
第三方通过身份标识id、部分公钥p和主公钥pkm计算出完整公钥pk;
第三方根据完整公钥pk对签名值(r,s)进行验签运算。
通过上述方式进行公钥认证,需要传输的数据少,适用于低带宽的物联网环境。
下面以一个具体实例进行说明,以支持sm2标准的签名方式为例,以下实施方式中椭圆曲线都为基于有限素数域fp的椭圆曲线e(fp),g为基点,n为g的阶;[k]p表示椭圆曲线上点p的k倍点。
客户端和密钥生成中心kgc支持sm2标准,kgc的主公钥和主私钥为(sm,pkm),主公钥pkm公开。
首先,进行密钥注册:
1.客户端的身份标识为id,生成随机数d1,作为临时私钥,并计算临时公钥p1=[d1]g,将(id,p1)发送给kgc。
2.kgc收到客户端发送的(id,p1)后,进行如下操作:
a)生成随机数k,计算h1=k*sm。
b)计算部分公钥p=p1 [h1]g=(x,y),(x,y)是点p的横纵坐标。
c)计算h2=sm3(x||id||y)。
d)计算部分私钥d2=sm*(h2 k)。
e)将部分公钥和部分私钥(p,d2)发送给客户端。
f)kgc维护(id,p)的对应关系。
3.客户端收到(p,d2)后,进行如下操作:
a)计算完整的私钥d=d1 d2。
b)保存私钥d以及部分公钥p。
然后,进行公钥认证:
客户端与第三方进行公钥认证时,需要做如下操作:
1.客户端用私钥d做标准的签名运算,得到签名值(r,s)。
2.将签名值与身份标识和部分公钥(r,s,id,p)发送给第三方。
3.第三方收到签名值(r,s)和部分公钥p后,进行如下操作
a)首先利用身份标识与部分公钥(id,p)和主公钥pkm计算出真正的公钥pk=p [h2]pkm,其中h2=sm3(x||id||y),(x,y)是点p的横纵坐标。
b)利用公钥pk对(r,s)做标准的sm2验签运算。
至此,完成了公钥认证过程。
如图4所示,为本发明轻量级无证书认证客户端的实施例提供的结构框架图,该客户端包括:
生成单元1,用于生成临时公钥和临时私钥;
发送单元2,用于将身份标识和临时公钥发送给密钥生成中心;
接收单元3,用于接收密钥生成中心根据身份标识和临时公钥,计算得到的部分公钥和部分私钥;
计算单元4,用于根据临时私钥和部分私钥计算得到完整私钥;
验证单元5,用于根据完整私钥、身份标识和部分公钥与第三方进行验证。
可选地,在一些实施例中,密钥生成中心维护有主私钥和主公钥,接收单元3具体用于接收密钥生成中心根据随机数、主私钥和临时公钥计算得到的部分公钥,以及根据主私钥和随机数计算得到部分私钥。
可选地,在一些实施例中,验证单元5具体用于根据完整私钥做签名运算,得到签名值,将签名值、身份标识和部分公钥发送给第三方,使第三方通过身份标识、部分公钥和主公钥计算出完整公钥,并根据完整公钥对签名值进行验签运算。
需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。
如图5所示,为本发明轻量级无证书认证系统的实施例提供的结构框架图,该认证系统包括:客户端10、第三方20和密钥生成中心30,其中:
客户端10用于生成临时公钥和临时私钥,并将身份标识和临时公钥发送给密钥生成中心30;
密钥生成中心30用于根据身份标识和临时公钥,计算得到部分公钥和部分私钥,并将部分公钥和部分私钥发送给客户端10;
客户端10还用于根据临时私钥和部分私钥计算得到完整私钥,并当客户端10与第三方20进行公钥验证时,根据完整私钥、身份标识和部分公钥与第三方20进行验证。
可选地,在一些实施例中,密钥生成中心30维护有主私钥和主公钥,密钥生成中心30具体用于接收到身份标识和临时公钥后,生成随机数,根据随机数、主私钥和临时公钥计算得到部分公钥,并根据主私钥和随机数计算得到部分私钥。
可选地,在一些实施例中,客户端10具体用于根据完整私钥做签名运算,得到签名值,并将签名值、身份标识和部分公钥发送给第三方20;
第三方20具体用于通过身份标识、部分公钥和主公钥计算出完整公钥,并根据完整公钥对签名值进行验签运算。
需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种轻量级无证书认证方法,其特征在于,包括:
客户端生成临时公钥和临时私钥,并将身份标识和所述临时公钥发送给密钥生成中心;
所述密钥生成中心根据所述身份标识和所述临时公钥,计算得到部分公钥和部分私钥,并将所述部分公钥和所述部分私钥发送给所述客户端;
所述客户端根据所述临时私钥和所述部分私钥计算得到完整私钥;
当所述客户端与第三方进行公钥验证时,根据所述完整私钥、所述身份标识和所述部分公钥与所述第三方进行验证。
2.根据权利要求1所述的轻量级无证书认证方法,其特征在于,所述密钥生成中心维护有主私钥和主公钥,所述密钥生成中心根据所述身份标识和所述临时公钥,计算得到部分公钥和部分私钥,具体包括:
所述密钥生成中心接收到所述身份标识和所述临时公钥后,生成随机数;
所述密钥生成中心根据所述随机数、所述主私钥和所述临时公钥计算得到部分公钥;
所述密钥生成中心根据所述主私钥和所述随机数计算得到部分私钥。
3.根据权利要求2所述的轻量级无证书认证方法,其特征在于,根据所述完整私钥、所述身份标识和所述部分公钥与所述第三方进行验证,具体包括:
所述客户端根据所述完整私钥做签名运算,得到签名值;
所述客户端将所述签名值、所述身份标识和所述部分公钥发送给所述第三方;
所述第三方通过所述身份标识、所述部分公钥和所述主公钥计算出完整公钥;
所述第三方根据所述完整公钥对所述签名值进行验签运算。
4.一种轻量级无证书认证客户端,其特征在于,包括:
生成单元,用于生成临时公钥和临时私钥;
发送单元,用于将身份标识和所述临时公钥发送给密钥生成中心;
接收单元,用于接收所述密钥生成中心根据所述身份标识和所述临时公钥,计算得到的部分公钥和部分私钥;
计算单元,用于根据所述临时私钥和所述部分私钥计算得到完整私钥;
验证单元,用于根据所述完整私钥、所述身份标识和所述部分公钥与第三方进行验证。
5.根据权利要求4所述的轻量级无证书认证客户端,其特征在于,所述密钥生成中心维护有主私钥和主公钥,所述接收单元具体用于接收所述密钥生成中心根据随机数、所述主私钥和所述临时公钥计算得到的部分公钥,以及根据所述主私钥和所述随机数计算得到部分私钥。
6.根据权利要求5所述的轻量级无证书认证客户端,其特征在于,所述验证单元具体用于根据所述完整私钥做签名运算,得到签名值,将所述签名值、所述身份标识和所述部分公钥发送给所述第三方,使所述第三方通过所述身份标识、所述部分公钥和所述主公钥计算出完整公钥,并根据所述完整公钥对所述签名值进行验签运算。
7.一种轻量级无证书认证系统,其特征在于,包括:客户端、第三方和密钥生成中心,其中:
所述客户端用于生成临时公钥和临时私钥,并将身份标识和所述临时公钥发送给密钥生成中心;
所述密钥生成中心用于根据所述身份标识和所述临时公钥,计算得到部分公钥和部分私钥,并将所述部分公钥和所述部分私钥发送给所述客户端;
所述客户端还用于根据所述临时私钥和所述部分私钥计算得到完整私钥,并当所述客户端与第三方进行公钥验证时,根据所述完整私钥、所述身份标识和所述部分公钥与所述第三方进行验证。
8.根据权利要求7所述的轻量级无证书认证系统,其特征在于,所述密钥生成中心维护有主私钥和主公钥,所述密钥生成中心具体用于接收到所述身份标识和所述临时公钥后,生成随机数,根据所述随机数、所述主私钥和所述临时公钥计算得到部分公钥,并根据所述主私钥和所述随机数计算得到部分私钥。
9.根据权利要求8所述的轻量级无证书认证系统,其特征在于,所述客户端具体用于根据所述完整私钥做签名运算,得到签名值,并将所述签名值、所述身份标识和所述部分公钥发送给所述第三方;
所述第三方具体用于通过所述身份标识、所述部分公钥和所述主公钥计算出完整公钥,并根据所述完整公钥对所述签名值进行验签运算。
技术总结