一种切比雪夫多项式多注册中心匿名认证密钥协商协议

文档序号:29690814发布日期:2022-04-16 11:34阅读:203来源:国知局
一种切比雪夫多项式多注册中心匿名认证密钥协商协议

1.本发明属于工业物联网安全领域,具体涉及工业物联网设备间一种基于切比雪夫多项式的认证密钥协商协议,用于实现工业物联网设备间的身份认证和密钥协商。


背景技术:

2.随着工业物联网技术的快速发展和广泛应用,工业物联网系统也面临着许多信息安全问题,如通信保密性问题、数据完整性问题等。工业数据通常包含身份隐私信息、工业生产数据以及控制指令等敏感信息,一旦泄露会给企业带来巨大的经济损失。认证密钥协商协议能够实现通信双方的身份认证和密钥协商,是保障工业物联网系统通信安全的关键。由于工业自动化生产的需求和工业系统的高可用性,工业物联网系统接入的大量终端设备,其所归属的注册中心也不尽相同,无法通过同注册中心的认证密钥协商协议来实现身份认证和密钥协商。因此,在工业物联网系统多注册中心场景下,所属不同注册中心的终端设备采用多注册中心的认证密钥协商协议,借助各自所属注册中心来实现双方的身份认证和密钥协商。与同注册中心的认证密钥协商协议相比,多注册中心的认证密钥协商协议的认证密钥协商阶段需要多个注册中心的参与,执行过程更复杂,对通信网络和注册中心的并发执行能力要求较高。该协议能够保障在公共信道上协议各阶段的安全执行,解决了注册中心资源耗尽问题,实现了设备和注册中心的多方身份认证,并且结合量子密钥分发技术来保障多个注册中心间的通信安全。现有研究成果均存在安全性或性能问题,abbasinezhad-mood协议能够有效抵抗大多数已知攻击,但是该协议计算开销较大,并且无法抵抗内部特权攻击,也不具备匿名性。pak协议结合了生物特征识别技术,加强对用户的隐私保护,但该协议存在不能抵抗重放攻击和已知会话特定临时信息攻击等问题。jabbari协议在前人的研究基础上增强了抗模仿攻击,但是该协议计算和通信开销也较大,且仍存在无法抵抗重放攻击和已知会话特定临时信息攻击等问题。
3.本发明的积极效果是:
4.(1)在计算开销方面,本发明的计算开销优于现有abbasinezhad-mood协议、pak协议和jabbari协议,执行效率更高;
5.(2)在通信开销方面,本发明的通信开销低于现有abbasinezhad-mood协议、pak协议和jabbari协议,使用的网络流量更少;
6.(3)在安全性方面,本发明的安全性强于现有abbasinezhad-mood协议、pak协议和jabbari协议,能够抵抗未知密钥共享攻击、重放攻击、模仿攻击以及已知会话特定临时信息攻击,并且满足匿名性、已知密钥安全性、双向认证性和消息完整性。


技术实现要素:

7.本发明解决上述问题所提出的基于切比雪夫多项式的认证密钥协商协议,分为初始化阶段、注册阶段以及认证密钥协商阶段。初始化阶段,注册中心首先选取身份标识并计算身份代理标识,并从量子随机数设备获取合适的量子随机数作为系统初始化参数、长期
私钥和大素数。然后,注册中心计算对应的长期公钥,并选择单向哈希摘要函数。最后,注册中心向网络中其他协议参与方公开部分系统参数。注册阶段,协议参与主体选取各自身份标识并计算产生身份代理标识,然后通过基于切比雪夫多项式半群性质的临时密钥伪协商法来向注册中心安全地发起注册请求。注册成功后,协议参与主体获取并存储协商式下发的长期身份令牌、量子随机数以及注册中心的身份代理标识等信息。认证密钥协商阶段,协议参与双方通过各自所属的注册中心来实现双方的身份认证和密钥协商。首先,协议参与双方与各自所属的注册中心进行身份认证。然后,若双方身份验证都通过后,发起者所属的注册中心通过量子密钥分发技术,将相关信息使用量子密钥加密后发送给接收者所属的注册中心,再由接收者所属的注册中心将该信息转发给会话接收者。最后,由协议参与双方直接进行相互的身份认证和密钥协商。若通过此阶段所有的验证,则双方临时会话密钥协商成功。
附图说明
8.图1发明身份认证和密钥协商步骤图。
具体实施方式
9.第一步:选择随机数ra,za∈(-∞,∞),计算临时密钥协商参数和临时密钥值:
10.ta=h(ra||ida||wtidi),ra=t
ta
(x)modp,k
ai
=h(t
ta
(pki)modp),计算临时会话密钥协商参数:ska=h(za||ida||token
ai
),计算身份验证值:auth
ai
=h(token
ai
||k
ai
||wtidi);产生本地时间戳tspa,使用k
ai
对信息ska,auth
ai
,wida,widb,tspa进行异或加密:计算哈希摘要值:signa=h(msga||k
ai
||wtidi);将消息messagea={msga,signa,ra}通过公共信道发送给trci;
11.第二步:当trci收到alice的消息messagea后,执行以下步骤:计算临时密钥值:k
ia
=h(t
ski
(ra)modp),重新计算哈希摘要值:signa`=h(msga||k
ia
||wtidi),判断signa和signa`的值是否相等,若相等则继续执行,否则中止执行;使用k
ia
对msga进行异或解密:产生本地时间戳tspa`,判断|tsp
a-tspa`|≤δt是否成立,若成立则继续执行,否则中止执行;ti4:根据wida查询数据库,若查询结果为空则拒绝执行,否则从数据库中查询到消息:{wida,stka,tsp
ai
};通过异或解密:计算参数:auth
ai
`=h(token
ia
||k
ia
||wtidi),判断auth
ai
和auth
ai
`的值是否相等,若相等则对alice身份认证成功,继续执行,否则认证失败,中止执行;产生本地时间戳tspi,从qkd设备获取量子密钥qkey;计算身份认证值:auth
ia
=h(token
ia
||tsp
ai
||wtidi);使用k
ia
对信息qkey,tspi,auth
ia
进行异或加密:计算哈希摘要值:signi=h(msgi||k
ia
||wida);将消息messagei={msgi,signi}通过公共信道发送给alice;产生本地时间戳tsp
ij
,使用qkey对ska,tsp
ij
,wida,widb进行异或加密:计算哈希摘要值:sign
ij
=h(msg
ij
||qkey);将消息message
ij
={msg
ij
,sign
ij
}通过公共信道发
送给trcj。
12.第三步:选择随机数rb∈(-∞,∞),计算临时密钥协商参数和临时密钥值:tb=h(rb||idb||wtidj),rb=t
tb
(y)modq,k
bj
=h(t
tb
(pkj)modq);计算身份验证信息:auth
bj
=h(token
bj
||k
bj
||wtidj);产生时间戳tspb,使用k
bj
对auth
bj
,tspb进行异或加密计算哈希摘要值信息:sign
bj
=h(msg
bj
||k
bj
);将消息message
bj
={msg
bj
,sign
bj
,rb}通过公共信道发送给trcj。
13.第四步:当trcj收到trci发送的消息message
ij
和bob发送的消息message
bj
后,执行以下步骤(y和q分别为trcj的扩展切比雪夫多项式的参数和大素数):从qkd设备获取量子密钥qkey,计算临时密钥值:k
jb
=h(t
skj
(rb)modq);重新计算哈希摘要值sign`
ij
=h(msg
ij
||qkey),sign`
bj
=h(msg
bj
||k
jb
),判断sign
ij
和sign
ij
`的值以及sign
bj
和sign
bj
`的值是否分别相等,若都相等则继续执行,否则中止执行;使用k
jb
对msg
bj
进行异或解密:产生时间戳tspb`,判断|tsp
b-tspb`|≤δt是否成立,若成立,则继续执行,否则中止执行;根据widb查询数据库,若查询结果为空则拒绝执行,否则从数据库中查询得到消息:{widb,stkb,tsp
bj
};计算长期身份令牌以及身份验证信息:auth`
bj
=h(token
jb
||k
jb
||wtidj),判断auth`
bj
和auth
bj
的值是否相等,若相等则对bob身份认证成功并继续执行,否则中止执行;使用qkey对msg
ij
进行异或解密:
14.第五步:当bob收到trcj发送来的消息message
jb
后,执行以下步骤:重新计算哈希摘要值:sign`
jb
=h(msg
jb
||k
bj
||widb||token
bj
),判断sign
jb
和sign`
jb
的值是否相等,若相等则继续执行,否则中止执行;使用k
bj
对msg
jb
进行异或解密:计算身份验证值:auth`
jb
=h(token
jb
||tsp
bj
||wtidj),判断auth
jb
和auth
jb
的值是否相等,若相等则对trcj身份认证成功,继续执行,否则认证失败,中止执行;产生本地时间戳tspj`,判断|tsp
j-tspj`|≤δt是否成立,若成立则继续执行,否则中止执行;选取随机数zb∈(-∞,∞),计算临时会话密钥协商参数:skb=h(zb||idb||token
bj
);首先计算bob和alice的临时会话密钥:ssk
ba
=h(ska||skb||qkey),然后计算身份验证值:auth
ba
=h(ssk
ba
||wida||widb||qkey),计算临时密钥值:k
ba
=h(qkey||ska||wida||widb);产生本地时间戳tsp
ba
,使用k
ba
对信息tsp
ba
,auth
ba
,skb进行异或加密:计算哈希摘要值:sign
ba
=h(msg
ba
||k
ba
||wida||widb||qkey);将消息message
ba
={msg
ba
,sign
ba
}通过公共信道发送给alice。产生时间戳tsp
ij
`,判断|tsp
ij-tsp
ij
`|≤δt是否成立,若都成立则继续执行,否则中止执行;计算身份验证信息:auth
jb
=h(token
jb
||tsp
bj
||wtidj);产生本地时间戳tspj,使用k
jb
对信息ska,wida,qkey,tspj,auth
jb
进行异或加密:计算哈希摘要值:sign
jb
=h(msg
jb
||k
jb
||widb||token
jb
);将消息message
jb
={msg
jb
,sign
jb
}通过公共信道发送给bob;
15.第六步:当alice收到trci发送的消息messagei和bob发送的消息message
ba
后,执
行以下步骤:重新计算哈希摘要值signi`=h(msgi||k
ai
||wida),判断signi和signi`的值是否相等,若相等则继续执行,否则中止执行;使用k
ai
对msgi进行异或解密:产生本地时间戳tspi`,判断|tsp
i-tspi`|≤δt是否成立,若成立则继续执行,否则中止执行。计算身份验证值:auth`
ia
=h(token
ai
||tsp
ai
||wtidi),判断auth
ai
和auth
ai
`的值是否相等,若相等则对trci身份认证成功,继续执行,否则认证失败,中止执行;计算临时密钥:k
ab
=h(qkey||ska||wida||widb),重新计算哈希摘要值:sign
ba
`=h(msg
ba
||k
ab
||wida||widb||qkey),判断sign
ba
和sign
ba
`的值是否相等,若相等则继续执行,否则中止执行;使用k
ab
对msg
ba
进行异或解密:产生本地时间戳tsp
ba
`,判断|tsp
ba-tsp
ba
`|≤δt是否成立,若成立则继续执行,否则中止执行;计算alice和bob临时会话密钥:ssk
ab
=h(ska||skb||qkey);计算会话身份验证值:auth`
ba
=h(ssk
ab
||wida||widb||qkey),判断auth`
ba
和auth
ba
的值是否相等,若相等则对bob的身份认证成功继续执行,否则中止执行;将ssk
ab
正式作为alice和bob之间的临时会话密钥,计算身份认证和密钥确认值:auth
ab
=h(ssk
ab
||wida||widb||skb)。产生本地时间戳tsp
ab
,使用k
ab
对信息tsp
ab
,auth
ab
进行异或加密:计算哈希摘要值:sign
ab
=h(msg
ab
||k
ab
||wida||widb||qkey);将消息message
ab
={msg
ab
,sign
ab
}通过公共信道发送给bob。
16.第七步:当bob收到alice发送的消息message
ab
后,执行以下步骤:重新计算哈希摘要值:sign
ab
`=h(msg
ab
||k
ba
||wida||widb||qkey),判断sign
ab
和sign
ab
`的值是否相等,若相等则继续执行,否则中止执行;使用k
ba
对msg
ab
进行异或解密:产生本地时间戳tsp
ab
`,判断|tsp
ab-tsp
ab
`|≤δt是否成立,若成立则继续执行,否则中止执行;计算身份认证和密钥确认值:auth`
ab
=h(ssk
ba
||wida||widb||qkey),判断auth
ab
和auth`
ab
的值是否相等,若相等则身份认证和密钥协商成功,否则中止执行;将ssk
ba
正式作为bob和alice之间的临时会话密钥。执行至此,注册在不同注册中心上的协议参与主体alice和bob,通过注册中心trci和trcj的参与协助实现了身份认证和密钥协商。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1