一种基于嵌入式间账本的双向认证方法与流程

文档序号:24130210发布日期:2021-03-02 17:23阅读:138来源:国知局
一种基于嵌入式间账本的双向认证方法与流程

[0001]
本发明涉及数据加密技术领域,尤其涉及一种基于嵌入式账本的双向认证方法。


背景技术:

[0002]
信息安全在当前嵌入式应用场景中越来越重要,嵌入式产品在使用过程中需要保证数据的安全,在业务交互前需要对各自身份进行认证,双向认证则是一种广泛使用的身份认证方式。
[0003]
在现有技术中,通常采用认证的一方(以下简称设备a)使用签名私钥对应用数据进行签名运算产生数字签名,并将自身签名公钥导出;认证的另一方(以下简称设备b)使用设备a导出的签名公钥对应用数据和设备a产生的数字签名进行验签运算,验签成功则设备a的身份得到验证;设备b使用签名私钥对应用数据进行签名运算产生数字签名,并将自身签名公钥导出,设备a使用设备b导出的签名公钥对应用数据和设备b产生的数字签名进行验签运算,验签成功则设备b的身份得到验证。
[0004]
但是现有的双向认证方案大多都是采用非对称算法进行签名和验签运算,但并未存储认证中的相关数据,这样的话,其他厂商可以轻松地做到兼容该产品,无法保证产品的独有性和不可兼容性。


技术实现要素:

[0005]
本发明的目的在于提供一种基于嵌入式间账本的双向认证方法,从而解决现有技术中存在的前述问题。
[0006]
为了实现上述目的,本发明采用的技术方案如下:
[0007]
一种基于嵌入式间账本的双向认证方法,包括以下步骤:
[0008]
s1,设备a将算法标识algorithma发送给设备b,所述设备b产生随机数rb并将随机数rb、设备标识idb、算法标识algorithmb和设备b的签名证书certb发送给设备a;
[0009]
s2,所述设备a产生随机数ra,使用私钥对应用数据i进行签名运算,生成数字签名signab,最后将随机数ra、设备标识ida、数字签名signab和设备a的签名证书certa发送给设备b;
[0010]
s3,设备b进行签名验签运算,使用设备a的签名证书certa的签名公钥对应用数据i和数字签名signab进行验签运算;设备b使用私钥对应用数据ii进行签名运算,生成数字签名signba,最后将数字签名signba发送给设备a;
[0011]
s4,所述设备a进行签名验证运算,使用certb的签名公钥对应用数据ii和数字签名signba进行验签运算,从而完成双向认证流程。
[0012]
优选的,步骤s2中的所述应用数据i包括随机数rb、设备b的设备标识idb、随机数ra;
[0013]
所述应用数据ii包括随机数rb、设备a的设备标识ida、随机数ra。
[0014]
优选的,步骤s2中的所述设备a产生随机数ra,使用私钥对应用数据i进行签名运
算,生成数字签名signab,将生成的数字签名signab以及设备标识ida、设备标识idb记载进签名摘要表中具体包括:
[0015]
s21,判断设备a中的签名摘要表是否是存在匹配设备a和设备b的签名摘要值,若存在,则将已存在的所述签名摘要值记录后进入步骤s23;否则,进入步骤s22;
[0016]
s22,设备a将设置一个出厂默认值作为默认签名摘要值,进入步骤s23;
[0017]
s23,对应用数据i和已记录的签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashab;
[0018]
s24,采用设备a的私钥对杂凑值hashab进行签名运算,生成数字签名signab;
[0019]
s25,将生成的数字签名signab进行杂凑运算,生成签名摘要值shab,然后再次判断签名摘要表中是否已存在签名摘要值,若存在,则用新生成的签名摘要值shab替换所述已存在签名摘要值,否则将签名摘要值shab以及设备标识ida、设备标识idb直接记载进签名摘要表。
[0020]
优选的,步骤s3中具体包括:
[0021]
s31,设备b判断验签摘要表中是否存在匹配设备a和设备b的签名摘要值,若存在,则直接记录该签名摘要值并进入步骤s33,否则进入步骤s32;
[0022]
s32,设备b将设置一个出厂默认值作为默认签名摘要值,进入步骤s33;
[0023]
s33,对应用数据ii和已记录签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashab;
[0024]
s34,设备b采用设备a的公钥对杂凑值hashab和签名值signab进行验签运算,若验签成功,进入步骤s35;否则结束设备b的验签运算过程;
[0025]
s35,判断验签摘要表中是否已存在匹配设备a和设备b的签名摘要值,若存在,则更新签名摘要值;若不存在,则对签名值signab进行杂凑运算生成签名摘要值shab,同时将签名摘要值shab以及设备标识ida、设备标识idb记载进验签摘要表中。
[0026]
优选的,步骤s3中还包括设备b对设备a的签名运算,具体包括:
[0027]
s36,判断设备b中的签名摘要表是否是存在匹配设备a和设备b的签名摘要值,若存在,则将已存在的所述签名摘要值记录后进入步骤s38;否则,进入步骤s37;
[0028]
s37,设备b将设置一个出厂默认值作为默认签名摘要值,进入步骤s38;
[0029]
s38,对应用数据ii和已记录的签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashba;
[0030]
采用设备b的私钥对杂凑值hashba进行签名运算,生成数字签名signba;
[0031]
s39,将生成的数字签名signba进行杂凑运算,生成签名摘要值shba,然后再次判断签名摘要表中是否已存在签名摘要值,若存在,则用新生成的签名摘要值shba替换所述已存在签名摘要值,否则将签名摘要值shba以及设备标识ida、设备标识idb直接记载进签名摘要表。
[0032]
优选的,步骤s4中具体包括:
[0033]
s41,设备a判断验签摘要表中是否存在匹配设备a和设备b的签名摘要值,若存在,则直接记录该签名摘要值并进入步骤s43,否则进入步骤s42;
[0034]
s42,设备a将设置一个出厂默认值作为默认签名摘要值,进入步骤s43;
[0035]
s43,对应用数据ii和已记录签名摘要值或默认签名摘要值进行杂凑运算,生成杂
凑值hashba;
[0036]
s44,设备a采用设备b的公钥对杂凑值hashba和签名值signba进行验签运算,若验签成功,进入步骤s45;否则结束设备a的验签运算过程;
[0037]
s45,判断验签摘要表中是否存在设备a和设备b的签名摘要值,若存在,则更新签名摘要值;若不存在,则对签名值signba进行杂凑运算生成签名摘要值shba,同时将签名摘要值shba以及设备标识ida、设备标识idb记载进验签摘要表中。
[0038]
本发明的有益效果是:
[0039]
本发明公开了一种基于嵌入式间账本的双向认证方法,该方法在设备a和b的双向身份认证过程中,添加签名摘要表和验签摘要表,每次进行签名和验签过程时,都要确认签名摘要表和验签摘要表中是否存在匹配认证设备另一方的签名摘要值,即上一次进行认证的签名摘要值;若不存在,则要采用出厂默认值作为默认签名摘要值进行签名或验签运算,若存在匹配认证设备另一方的签名摘要值,则直接采用已存在的签名摘要值进行运算。由于每个设备在认证过程中存储了下次认证双方所需的签名摘要值,并且认证双方第一次使用的签名摘要值外部不可知性,因此本发明所采用的方法可以确保实施认证的设备是唯一的,保证了设备厂商的不可替换性。
附图说明
[0040]
图1是实施例1中提供的一种基于嵌入式间账本的双向认证方法流程示意图;
[0041]
图2是实施例1中提供的一种基于嵌入式间账本的双向认证方法中设备a或设备b进行签名运算的方法流程图;
[0042]
图3是实施1中提供的一种基于嵌入式间账本的双向认证方法中设备a或设备b进行验签运算的方法流程图。
具体实施方式
[0043]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
[0044]
名词解释:
[0045]
1、签名摘要表:签名摘要表在设备出厂时是空的,无任何数据,当设备a和设备b进行双向认证,且设备a第一次对设备b签名时,会生成一个包含设备a的id,设备b的id和签名摘要值的字段,并将该字段写入签名摘要表中,说明:签名摘要值即该次签名运算生成的签名经过摘要运算得到的值。
[0046]
2、验签摘要表:验签摘要表在设备出厂时是空的,无任何数据,当设备a和设备b进行双向认证,且设备b第一次对设备a验签成功后,才会生成一个包含设备a的id,设备b的id和签名摘要值的字段,并将该字段写入验签摘要表中,说明:签名摘要值即设备a传给设备b的签名经过摘要运算得到的值。
[0047]
3、签名运算:设备私钥对应用数据进行签名运算的过程;验签运算:公钥对应用数据进行验签运算的过程。
[0048]
4、设备id:标识设备唯一身份的字符串。
[0049]
5、签名密钥对:设备内部生成的非对称密钥对,私钥存放在设备内部,不可导出,公钥可通过相应接口导出
[0050]
6、杂凑算法:将任意长度的数据映射成一个长度较短且固定长度值的运算,该运算具有不可逆性。
[0051]
实施例1
[0052]
本实施例提供了一种基于嵌入式间账本的双向认证方法,如图1所示,包括以下步骤:
[0053]
s1,设备a将算法标识algorithma发送给设备b;设备b产生随机数rb,并将随机数rb、设备标识idb、算法标识algorithmb和签名证书certb发送给设备a;
[0054]
s2,设备a生成随机数ra,使用私钥对应用数据进行签名运算,生成数字签名signab,最后将随机数ra、设备标识ida、数字签名signab和签名证书certa发送给设备b;
[0055]
s3,设备b进行签名验签运算,使用certa的签名公钥对应用数据和数字签名signab进行验签运算;设备b使用私钥对应用数据进行签名运算,生成数字签名signba,最后将数字签名signba发送给设备a;
[0056]
s4,设备a进行签名验证运算,使用certb的签名公钥对应用数据和数字签名signba进行验签运算,至此双向认证流程结束。
[0057]
具体的,上述步骤中,步骤s2中的设备a进行签名运算,生成签名摘要值的过程如图2所示,具体如下:
[0058]
s21,判断设备a中的签名摘要表是否是存在匹配设备a和设备b的签名摘要值,若存在,则将所述签名摘要值记录后进入步骤s23;否则,进入步骤s22;
[0059]
s22,设备a将设置一个出厂默认值作为默认签名摘要值,进入步骤s23;
[0060]
s23,对应用数据i和已记录的签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashab;
[0061]
s24,采用设备a的私钥对杂凑值hashab进行签名运算,生成数字签名signab;
[0062]
s25,将生成的数字签名signab进行杂凑运算,生成签名摘要值shab,然后再次判断签名摘要表中是否已存在签名摘要值,若存在,则用新生成的签名摘要值shab替换已存在签名摘要值,否则将签名摘要值shab以及设备标识ida、设备标识idb记载进签名摘要表。
[0063]
步骤s3和步骤s4中进行验签运算的过程如图3所示,其中,步骤s3中设备b进行验签运算过程具体包括:
[0064]
s31,判断验签摘要表中是否存在匹配设备a和设备b的签名摘要值,若存在,则直接记录该签名摘要值并进入步骤s33,否则进入步骤s32;
[0065]
s32,设备b将设置一个出厂默认值作为默认签名摘要值,进入步骤s33;
[0066]
s33,对应用数据ii和已记录签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashab;
[0067]
s34,设备b采用设备a的公钥对杂凑值hashab和签名值signab进行验签运算,若验签成功,进入步骤s35;否则结束设备b的验签运算过程;
[0068]
s35,判断验签摘要表中是否存在设备a和设备b的签名摘要值,若存在,则更新签名摘要值;若不存在,则对签名值signab进行杂凑运算生成签名摘要值shab,同时将签名摘要值shab以及设备标识ida、设备标识idb记载进验签摘要表中。
[0069]
本实施例中的步骤s3中还包括设备b对设备a的签名运算,具体包括:
[0070]
s36,判断设备b中的签名摘要表是否是存在匹配设备a和设备b的签名摘要值,若存在,则将已存在的所述签名摘要值记录后进入步骤s38;否则,进入步骤s37;
[0071]
s37,设备b将设置一个出厂默认值作为默认签名摘要值,进入步骤s38;
[0072]
s38,对应用数据ii和已记录的签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashba;
[0073]
采用设备b的私钥对杂凑值hashba进行签名运算,生成数字签名signba;
[0074]
s39,将生成的数字签名signba进行杂凑运算,生成签名摘要值shba,然后再次判断签名摘要表中是否已存在签名摘要值,若存在,则用新生成的签名摘要值shba替换所述已存在签名摘要值,否则将签名摘要值shba以及设备标识ida、设备标识idb直接记载进签名摘要表。
[0075]
步骤s4中设备a进行验签运算的过程中具体包括:
[0076]
s41,判断验签摘要表中是否存在匹配设备a和设备b的签名摘要值,若存在,则直接记录该签名摘要值并进入步骤s43,否则进入步骤s42;
[0077]
s42,设备a将设置一个出厂默认值作为默认签名摘要值,进入步骤s43;
[0078]
s43,对应用数据iii和已记录签名摘要值或默认签名摘要值进行杂凑运算,生成杂凑值hashba;
[0079]
s44,设备b采用设备a的公钥对杂凑值hashba和签名值signba进行验签运算,若验签成功,进入步骤s45;否则结束设备b的验签运算过程;
[0080]
s45,判断验签摘要表中是否存在设备a和设备b的签名摘要值,若存在,则更新验签摘要值;若不存在,则对签名值signba进行杂凑运算生成签名摘要值shba,同时将签名摘要值shba以及设备标识ida、设备标识idb记载进验签摘要表中。
[0081]
值得注意的是,对于签名摘要表和验签摘要表而言,在设备出厂时都是属于空白的,只有当第一次认证成功后,才会将设备id和生成的签名摘要值记载进签名摘要表中;此时,在第一次认证时,步骤s22中会采用设备的出厂默认值进行计算。由于该出厂默认值是在设备出厂时通过安全方式配置进去的,因此其他厂商并不知晓该出厂默认值,因此不同的厂商设备在进行验证时不会产生相同的签名摘要值,从而保证设备认证的排他性。
[0082]
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0083]
本发明公开了一种基于嵌入式间账本的双向认证方法,该方法在设备a和b的双向身份认证过程中,添加签名摘要表和验签摘要表,每次进行签名和验签过程时,都要确认签名摘要表和验签摘要表中是否存在匹配认证设备另一方的签名摘要值,即上一次进行认证的签名摘要值;若不存在,则要采用出厂默认值作为默认签名摘要值进行签名或验签运算,若存在匹配认证设备另一方的签名摘要值,则直接采用已存在的签名摘要值进行运算。由于每个设备在认证过程中存储了下次认证双方所需的签名摘要值,并且认证双方第一次使用的签名摘要值外部不可知性,因此本发明所采用的方法可以确保实施认证的设备是唯一的,保证了设备厂商的不可替换性。
[0084]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1