一种适用于无线传感器的认证和秘钥协商的方法与流程

文档序号:30450709发布日期:2022-06-18 01:51阅读:774来源:国知局
一种适用于无线传感器的认证和秘钥协商的方法与流程

1.本发明涉及信息安全领域,更具体地说,它涉及一种适用于无线传感器的认证和秘钥协商的方法。


背景技术:

2.biohashing首先通过求取指纹方向场确定指纹中心点,利用小波变换去除噪声干扰并降低指纹特征维数,对处理后的图像通过fourier-mellin变换提取平移、旋转、缩放不变性特征,随后将指纹特征向量投影到正交随机矩阵中,阈值量化后实现对指纹特征的hash操作。
3.哈希函数是一种将任意长度比特串映射到固定长度的值(比如,32byte)。这个值为哈希值,又称摘要、散列、杂凑、指纹。哈希函数具有的安全特性有:1)单向性:给定x,求解h(x)是容易的;但已知h(x),求解x在计算上是困难的,即在多项式时间内不可解。(2)抗碰撞性:给定x和h(x),找到x'≠x使得h(x')=h(x)是不可行的。(3)快速性:哈希函数计算简单快速,即给定x,计算h(x)是容易的,如线性时间。(4)雪崩效应:输入中一个比特位发生变化将引起输出中一半以上的比特位发生变化。
4.异或加密运算因其能够简单快速的加解密而常用于身份认证协议。假如a=b

c,已知其中任意两个参数,便能轻松求解第三个;若只知道其中一个参数,求解另外两个是不可能的。因此,异或加密操作广泛用于简单的加密运算以实现敏感信息的私密传输。然而,由于传感器的信息在公共网络传输,而传感器节点的电池有限,使得无线传感器网络的安全性和效率备受关注。用户身份验证是用来限制访问的安全任务,它是通过为授权用户配备密码、令牌或生物识别技术来实现的。所以,密码和令牌很容易被窃取和遗忘;即使是生物识别学也有一些限制。


技术实现要素:

5.为解决现有技术中的不足,本发明的目的是提供一种适用于无线传感器的认证和秘钥协商的方法,能够解决用户访问传感器节点的身份合法性问题,实现用户、网关、节点之间的双向认证及秘钥协商,为无线传感器环境下数据安全传输提供了安全保证,同时本协议的应用场景较为广泛,存在多个网关节点,可实现远距离节点部署,并且在密码更改阶段,智能卡根据用户的新密码更改存储的身份注册信息,避免了用户密码泄露。
6.本发明的上述技术目的是通过以下技术方案得以实现的:一种适用于无线传感器的认证和秘钥协商的方法,包括以下步骤:
7.秘密预置阶段:对离线传感器节点、在线传感器节点和在线用户身份卡进行秘密预置;
8.登录协商阶段:用户插入身份卡以输入身份信息进行身份验证,用户的登录消息被转发到身份卡保存的网关节点,检查完时间的有效性和登录消息的有效性后,依据用户要访问的传感器节点身份存在网关节点位置选择执行场景进行认证和秘钥协商;
9.动态节点加入阶段:当需要将新的传感器节点加入目标区域,系统管理员通过离线传感器节点秘密预置在目标区域部署新的传感器节点,且新增的传感器节点通过在线传感器节点秘密预置将新的传感器节点引入设置网络模型中。
10.进一步的,所述离线传感器节点的秘密预置过程具体为:
11.s101:系统管理员为每个传感器节点sj生成独一无二的身份id
sj
,1≤j≤m,m为传感器节点个数;
12.s102:系统管理员为每个传感器节点计算秘密值1≤j≤m,s
ran
是网关节点共享的秘密随机数;
13.s103:传感器节点保存《id
sj
,pj》,1≤j≤m;
14.s104:系统管理员为gni预置主密钥x
gni
以及所有网关共享的s
ran

15.进一步的,所述在线传感器节点的秘密预置过程具体为:
16.s201:每个传感器节点发送注册信息《id
sj
,tr,mj》到当前网关节点gni,验证值mj=h(id
sj
·
pj·
tr),tr是注册时间;
17.s202:一旦gni收到消息,计算验证如果验证通过,gni发送确认消息到sj,gni存储《id
sj
,tr》,sj存储tr。
18.进一步的,所述在线用户身份卡的秘密预置过程具体为:
19.s301:用户ui插入身份卡ici,选择身份idi、密码pwi以及一个随机数u,计算身份注册请求didi=h(idi·
u)和rpwi=h(pwi·u·
idi),通过安全信道发送《didi,rpwi》到gni;
20.s302:gni接收到身份注册请求,如果didi未被注册,gni选择一个随机数tidi,计算身份注册信息ki=h(didi·
tidi·
x
gni
)和ki为和gni之间的秘密值,gni保存《tidi,didi》;
21.s303:gni通过安全信道发送身份注册信息《yi,tidi,h(.),id
gni
》给ui,ui将《yi,tidi,h(.),id
gni
》存储进ici,h(.)是抗碰撞的哈希函数;
22.s304:ui输入生物指纹bi,计算生物信息验证值ici保存ci和vi。
23.进一步的,所述用户的登录过程具体为:
24.s401:用户ui插入身份卡,输入id’i
、pw’i
和b’i
,ici计算验证验证
25.s402:成功登录后,身份卡根据保存的网关身份id
gni
将ui访问需求x发送到gni,gni根据访问需求x将对应的传感器的标识id
sj
发送给ui;
26.s403:ici产生随机数ri,计算didi=h(idi·
u)、rpwi=h(pwi·u·
idi)、以及登陆请求和d2=h(didi·ri
·
tidi·ki
·
t1·
id
sj
),t1是当前时间戳;
27.s404:ui发送登录消息m1=《tidi,id
sj
,d1,d2,t1》到gni。
28.进一步的,依据用户要访问的传感器节点身份存在网关节点位置选择执行场景进行认证和秘钥协商的过程具体为:当前gni收到登录消息,检查请求的传感器节点sj是否在注册的传感器列表中;如果在,则执行场景1的认证和秘钥协商阶段;否则执行场景2的认证
和秘钥协商阶段。
29.进一步的,所述执行场景1的认证和秘钥协商阶段的过程具体为:
30.s501:当前gni在t2时刻接收到登录消息m1=《tidi,id
sj
,d1,d2,t1》,gni检查时间的有效性|t
2-t1|≤δt,δt消息传播时延的阈值,如果检验不通过,则连接终止;gni使用tidi检索didi,计算验证如果验证通过,则gni确认用户ui身份,否则连接终止;
31.s502:id
sj
存在于gni,gni产生随机数rh,计算认证请求,计算认证请求及d6=h(id
sj
·ri
·
didi·
tr·
pj·
rh·
t2),gni发送消息m2=《tidi,d3,d4,d5,d6,t2》到sj;
32.s503:sj在t3时刻接收到m2,检查时间的有效性|t
3-t2|≤δt,如果验证有效,计算|≤δt,如果验证有效,计算验证不成立,则连接终止;
33.s504:sj产生随机数rj,计算认证请求及d8=h(pj·rj
·
t2·
rh·
tidi·ri
·
t3·
tr),发送消息m3=《d7,d8,t3》到gni;
34.s505:当gni在t4时刻接收到消息m3,检查时间的有效性|t
4-t3|≤δt,如果验证有效,计算验证如果验证不通过,则连接终止,否则计算认证请求及d
11
=h(ki·
didi·
r’j
·
t1·
rh·
t4·ri
),发送消息m4=《d9,d
10
,d
11
,t4》到用户ui;
35.s506:当用户ui在t5时刻接收到消息m4,检查时间的有效性|t
5-t4|≤δt,如果验证有效,计算验证如果验证通过,则传感器节点是真实可靠的,否则连接终止;
36.s507:相互认证成功后,会话秘钥在sk=h(didi·ri
·rj
·
id
sj
)在ui,gni及sj之间建立起来。
37.进一步的,所述执行场景2的认证和秘钥协商阶段的过程具体为:
38.s601:当前gni在th时刻接收到登录消息m1=《tidi,id
sj
,d1,d2,t1》,gni检查时间的有效性|t
h-t1|≤δt,如果检验通过,gni使用tidi检索didi,计算k’i
=h(didi·
tidi·
x
gni
),验证m1的有效性如果验证通过,则gni确认用户ui身份,否则连接终止;id
sj
不存在于gni,gni广播一条消息《id
sj
,tidi,id
gni
,l1,th》给剩下的网关节点(gnj),其中验证值l1=h(id
sj
·
tidi·
id
gni
·sran
·
th);
39.s602:gnj在tf时刻接收到消息《id
sj
,tidi,id
gni
,l1,th》,检查时间的有效性|t
f-th|≤δt,如果验证有效,且id
sj
存在于gnj,则验证如果验证通过,计算秘密值k
fi
=h(tidi·
x
gnj
),认证请求及l2=h(tidi·
id
gni
·kfi
·
id
sj
·
tf),发送消息m5=《a1,id
gnj
,l2,tidi,tf》到gni;
40.s603:当gni在t
ugf
时刻接收到消息m5,检查时间的有效性|t
ugf-tf|≤δt,如果检验通过,计算验证如果验证通过,gni使用tidi检索didi,计算认证请求ki=h(didi·
tidi·
x
gni
),及l3=h(ki·kfi
·
id
sj
·
id
gnj
·
t
ugf
),发送m6=《a2,l3,id
gnj
,t
ugf
》到用户ui;
41.s604:当用户ui在t2时刻接收到消息m4,检查时间的有效性|t
2-t
ugf
|≤δt,如果检验通过,计算验证如果验证通过,产生随机数ri,计算认证请求l4=h(tidi·ri
·kfi
·
t2·
id
sj
),然后ui发送登录消息m7=《tidi,id
sj
,a3,l4,t2》到gnj;
42.s605:gnj在t3时刻接收到消息m7,检查时间的有效性|t
3-t2|≤δt,如果验证有效,计算k
fi
=h(tidi·
x
gnj
),验证如果验证通过,gnj产生随机数rf,计算认证请求,计算认证请求及l5=h(id
sj
·ri
·
tidi·
tr·
pj·
rf·
t3),发送消息m8=《tidi,a4,a5,l5,t3》到sj;
43.s606:sj在t4时刻接收到消息m8,检查时间的有效性|t
4-t3|≤δt,如果验证有效,计算验证如果验证通过,sj产生随机数rj,计算认证请求及l6=h(pj·rj
·
t3·
rf·
tidi·ri
·
t4·
tr),然后发送m9=《a6,l6,t4》到gnj;
44.s607:gnj在t5时刻接收到消息m9,检查时间的有效性|t
5-t4|≤δt,如果验证有效,计算验证如果验证通过,计算认证请求及l7=h(k
fi
·
tidi·rj
·
t2·
rf·
t5·ri
),发送m
10
=《a7,a8,l7,t5》发送给ui;
45.s608:当用户ui在t6时刻接收到消息m
10
,检查时间的有效性|t
6-t5|≤δt,如果检验通过,计算验证如果验证通过,则传感器节点是真实可靠的,否则连接终止;
46.s609:相互认证成功后,会话秘钥在sk=h(tidi·ri
·rj
·
rf·
id
sj
)在ui,gnj及sj之间建立起来,使用会话秘钥,用户ui可以访问到sj。
47.进一步的,该方法还包括密码更换阶段:身份卡验证有效后要求输入新的密码,身份卡通过计算用新的值代替原先的值。
48.进一步的,所述密码更换阶段的具体过程为:
49.s701:用户ui输入idi、pwi和bi,ici计算验证如果验证有效,ici要求输入新的密码;
50.s702:当接收到新的密码pw
inew
,ici计算rpwi=h(pwi·u·
idi),新的身份信息rpw
inew
=h(pw
inew
·u·
idi)和新的验证值
51.s703:ici使用v
inew
,y
inew
,代替vi和yi。
52.与现有技术相比,本发明具有以下有益效果:
53.1、本发明提出的一种适用于无线传感器的认证和秘钥协商的方法,能够解决用户访问传感器节点的身份合法性问题,实现用户、网关、节点之间的双向认证及秘钥协商,为无线传感器环境下数据安全传输提供了安全保证,同时本协议的应用场景较为广泛,存在多个网关节点,可实现远距离节点部署。
54.2、本发明利用生物哈希在有助于消除错误接受率的同时,而不增加错误拒绝率的发生率;此外,生物散列对于冒名顶替的、真实和零错误率的人群具有高度的分离;
55.3、本发明还支持动态节点添加和用户友好的密码更改机制,在密码更改阶段,智能卡根据用户的新密码更改存储的身份注册信息,避免了用户密码泄露
附图说明
56.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本技术的一部分,并不构成对本发明实施例的限定。在附图中:
57.图1是本发明实施例中无线传感器网络拓扑结构示意图;
58.图2是本发明实施例中在线用户身份卡秘密预置过程;
59.图3是本发明实施例中场景1认证和秘钥协商过程;
60.图4是本发明实施例中场景2认证和秘钥协商过程。
具体实施方式
61.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
62.实施例:一种适用于无线传感器的认证和秘钥协商的方法,如图1所示,该方法涉及用户、系统管理员、身份卡、网关节点、传感器节点五种角色,协议中的符号及意义如表1所示:
63.表1符号描述
[0064][0065]
该协议包括如下步骤:
[0066]
s1、秘密预置阶段;
[0067]
s2、登录协商阶段;
[0068]
s3、动态节点加入阶段;
[0069]
s4、密码更换阶段。
[0070]
在步骤s1中,秘密预置阶段分为离线传感器节点秘密预置、在线传感器节点秘密预置、在线用户身份卡秘密预置三个步骤。
[0071]
离线传感器节点的秘密预置过程具体为:
[0072]
s101:系统管理员为每个传感器节点sj生成独一无二的身份id
sj
,1≤j≤m,m为传感器节点个数;
[0073]
s102:系统管理员为每个传感器节点计算秘密值1≤j≤m,s
ran
是网关节点共享的秘密随机数;
[0074]
s103:传感器节点保存《id
sj
,pj》,1≤j≤m;
[0075]
s104:系统管理员为gni预置主密钥x
gni
以及所有网关共享的s
ran

[0076]
在线传感器节点的秘密预置过程具体为:
[0077]
s201:每个传感器节点发送注册信息《id
sj
,tr,mj》到当前网关节点gni,验证值mj=h(id
sj
·
pj·
tr),tr是注册时间;
[0078]
s202:一旦gni收到消息,计算验证如果验证通过,gni发送确认消息到sj,gni存储《id
sj
,tr》,sj存储tr。
[0079]
如图2所示,在线用户身份卡的秘密预置过程具体为:
[0080]
s301:用户ui插入身份卡ici,选择身份idi、密码pwi以及一个随机数u,计算身份注册请求didi=h(idi·
u)和rpwi=h(pwi·u·
idi),通过安全信道发送《didi,rpwi》到gni;
[0081]
s302:gni接收到身份注册请求,如果didi未被注册,gni选择一个随机数tidi,计算身份注册信息ki=h(didi·
tidi·
x
gni
)和ki为和gni之间的秘密值,gni保存《tidi,didi》;
[0082]
s303:gni通过安全信道发送身份注册信息《yi,tidi,h(.),id
gni
》给ui,ui将《yi,tidi,h(.),id
gni
》存储进ici,h(.)是抗碰撞的哈希函数;
[0083]
s304:ui输入生物指纹bi,计算生物信息验证值ici保存ci和vi。
[0084]
在步骤s2中,登录协商阶段分为登录阶段以及认证和秘钥协商阶段两个阶段。用户首先使用身份卡ici启动登录会话,用户的身份在身份卡中得到验证,一旦用户的合法性验证通过,登录消息被转发到当前网关节点(gni)。gni检查完时间的有效性和登录消息的有效性后,如果id
sj
存在于gni,则认证和秘钥协商阶段执行场景1,否则执行场景2。
[0085]
用户的登录过程具体为:
[0086]
s401:用户ui插入身份卡,输入id’i
、pw’i
和b’i
,ici计算验证验证
[0087]
s402:成功登录后,身份卡根据保存的网关身份id
gni
将ui访问需求x发送到gni,gni根据访问需求x将对应的传感器的标识id
sj
发送给ui;
[0088]
s403:ici产生随机数ri,计算didi=h(idi·
u)、rpwi=h(pwi·u·
idi)、以及登陆请求和d2=h(didi·ri
·
tidi·ki
·
t1·
id
sj
),t1是当前时间戳;
[0089]
s404:ui发送登录消息m1=《tidi,id
sj
,d1,d2,t1》到gni。
[0090]
如图3所示,执行场景1的认证和秘钥协商阶段的过程具体为:
[0091]
s501:当前gni在t2时刻接收到登录消息m1=《tidi,id
sj
,d1,d2,t1》,gni检查时间的有效性|t
2-t1|≤δt,δt消息传播时延的阈值,如果检验不通过,则连接终止;gni使用tidi检索didi,计算k’i
=h(didi·
tidi·
x
gni
),验证如果验证通过,则gni确认用户ui身份,否则连接终止;
[0092]
s502:id
sj
存在于gni,gni产生随机数rh,计算认证请求,计算认证请求及d6=h(id
sj
·ri
·
didi·
tr·
pj·
rh·
t2),gni发送消息m2=《tidi,d3,d4,d5,d6,t2》到sj;
[0093]
s503:sj在t3时刻接收到m2,检查时间的有效性|t
3-t2|≤δt,如果验证有效,计算
验证不成立,则连接终止;
[0094]
s504:sj产生随机数rj,计算认证请求及d8=h(pj·rj
·
t2·
rh·
tidi·ri
·
t3·
tr),发送消息m3=《d7,d8,t3》到gni;
[0095]
s505:当gni在t4时刻接收到消息m3,检查时间的有效性|t
4-t3|≤δt,如果验证有效,计算验证如果验证不通过,则连接终止,否则计算认证请求及d
11
=h(ki·
didi·
r’j
·
t1·
rh·
t4·ri
),发送消息m4=《d9,d
10
,d
11
,t4》到用户ui;
[0096]
s506:当用户ui在t5时刻接收到消息m4,检查时间的有效性|t
5-t4|≤δt,如果验证有效,计算验证如果验证通过,则传感器节点是真实可靠的,否则连接终止;
[0097]
s507:相互认证成功后,会话秘钥在sk=h(didi·ri
·rj
·
id
sj
)在ui,gni及sj之间建立起来。
[0098]
如图4所示,执行场景2的认证和秘钥协商阶段的过程具体为:
[0099]
s601:当前gni在th时刻接收到登录消息m1=《tidi,id
sj
,d1,d2,t1》,gni检查时间的有效性|t
h-t1|≤δt,如果检验通过,gni使用tidi检索didi,计算k’i
=h(didi·
tidi·
x
gni
),验证m1的有效性如果验证通过,则gni确认用户ui身份,否则连接终止;id
sj
不存在于gni,gni广播一条消息《id
sj
,tidi,id
gni
,l1,th》给剩下的网关节点(gnj),其中验证值l1=h(id
sj
·
tidi·
id
gni
·sran
·
th);
[0100]
s602:gnj在tf时刻接收到消息《id
sj
,tidi,id
gni
,l1,th》,检查时间的有效性|t
f-th|≤δt,如果验证有效,且id
sj
存在于gnj,则验证如果验证通过,计算秘密值k
fi
=h(tidi·
x
gnj
),认证请求及l2=h(tidi·
id
gni
·kfi
·
id
sj
·
tf),发送消息m5=《a1,id
gnj
,l2,tidi,tf》到gni;
[0101]
s603:当gni在t
ugf
时刻接收到消息m5,检查时间的有效性|t
ugf-tf|≤δt,如果检验通过,计算验证如果验证通过,gni使用tidi检索didi,计算认证请求ki=h(didi·
tidi·
x
gni
),及l3=h(ki·kfi
·
id
sj
·
id
gnj
·
t
ugf
),发送m6=《a2,l3,id
gnj
,t
ugf
》到用户ui;
[0102]
s604:当用户ui在t2时刻接收到消息m4,检查时间的有效性|t
2-t
ugf
|≤δt,如果检验通过,计算验证如果验证通过,产生随机数ri,计算认证请求l4=h(tidi·ri
·kfi
·
t2·
id
sj
),然后ui发送登录消息m7=《tidi,id
sj
,a3,l4,t2》到gnj;
[0103]
s605:gnj在t3时刻接收到消息m7,检查时间的有效性|t
3-t2|≤δt,如果验证有
效,计算k
fi
=h(tidi·
x
gnj
),验证如果验证通过,gnj产生随机数rf,计算认证请求,计算认证请求,计算认证请求及l5=h(id
sj
·ri
·
tidi·
tr·
pj·
rf·
t3),发送消息m8=《tidi,a4,a5,l5,t3》到sj;
[0104]
s606:sj在t4时刻接收到消息m8,检查时间的有效性|t
4-t3|≤δt,如果验证有效,计算验证如果验证通过,sj产生随机数rj,计算认证请求然后发送m9=《a6,l6,t4》到gnj;
[0105]
s607:gnj在t5时刻接收到消息m9,检查时间的有效性|t
5-t4|≤δt,如果验证有效,计算验证如果验证通过,计算认证请求及l7=h(k
fi
·
tidi·rj
·
t2·
rf·
t5·ri
),发送m
10
=《a7,a8,l7,t5》发送给ui;
[0106]
s608:当用户ui在t6时刻接收到消息m
10
,检查时间的有效性|t
6-t5|≤δt,如果检验通过,计算验证如果验证通过,则传感器节点是真实可靠的,否则连接终止;
[0107]
s609:相互认证成功后,会话秘钥在sk=h(tidi·ri
·rj
·
rf·
id
sj
)在ui,gnj及sj之间建立起来,使用会话秘钥,用户ui可以访问到sj。
[0108]
在步骤s3中,动态节点加入阶段具体内容为:当需要将新的传感器节点加入目标区域,系统管理员通过以离线传感器节点秘密预置阶段,在目标区域上部署新的传感器节点。然后,新增的传感器节点通过在线传感器节点秘密预置阶段,并将新的传感器节点引入设置网络模型中。
[0109]
步骤s4密码更换阶段具体内容为:身份卡验证有效后要求输入新的密码,身份卡通过计算用新的值代替原先的值,具体为:
[0110]
s701:用户ui输入idi、pwi和bi,ici计算验证如果验证有效,ici要求输入新的密码;
[0111]
s702:当接收到新的密码pw
inew
,ici计算rpwi=h(pwi·u·
idi),新的身份信息rpw
inew
=h(pw
inew
·u·
idi)和新的验证值
[0112]
s703:ici使用v
inew
,y
inew
,代替vi和yi。
[0113]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1