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

基于PUF的认证与密钥协商方法和设备

2022-12-07 02:55:17 来源:中国专利 TAG:

基于puf的认证与密钥协商方法和设备
技术领域
1.本技术属于工业物联网技术领域,尤其涉及一种基于puf的认证与密钥协商方法和设备。


背景技术:

2.工业物联网就是将射频识别技术、传感网和智能分析等技术应用到工业领域中来,以更高效便捷的方式监控工业生产流程,实时收集生产数据,从而优化生产管理,降低生产成本。随着工业物联网技术的广泛应用,工业物联网中的安全问题成为其发展过程中所面临的重大挑战。工业生产中传感器节点采集的数据通常在公共信道进行传输,数据易遭受外部威胁和攻击。此外,工业物联网中的设备资源有限无法支持复杂的计算操作,现有的认证方案大多数基于非对称密码体制。而基于非对称密码体制的方案需要大量计算、存储等资源,因此无法应用于工业物联网中。
3.为了保障采集工业物联网中的数据安全和隐私,建立适用于工业物联网的安全且轻量的认证与密钥协商协议是当前研究的热点方向。bahrampour等人利用puf结构实现公钥分发,由此实现传感器间的密钥协商,提高节点安全性的代价是较高的公钥计算开销。abutaleb等人结合puf和信道状态信息提出一个点对点的物理层认证与密钥交换方案,避免使用预共享密钥,并降低了通信量。2017年,liu等人提出基于sram puf的双向认证。在这些基于puf的认证协议中,puf的激励响应对(challenge-response pair,crp)大多是明文传输,当敌手获得大量的crp样本后,可能对puf实施建模攻击。
4.综上所述,如何对工业物联网中节点设备的数据传输进行有效保护、提高节点设备的安全性成为亟待解决的技术问题。


技术实现要素:

5.(一)要解决的技术问题
6.鉴于现有技术的上述缺点、不足,本发明提供一种基于puf的认证密钥与密钥认证协商方法和设备。
7.(二)技术方案
8.为了达到上述目的,本发明采用的主要技术方案包括:
9.第一方面,本发明实施例提供一种基于puf的认证与密钥协商方法,所述认证与密钥协商方法应用于传感器网络中发起认证请求的第一节点,该方法包括:
10.s10、从第一非易失性存储器中获取第一预置参数和第二节点注册信息,所述第二节点注册信息为第二节点基于物理不可克隆函数生成的第二身份标识信息,所述第一预置参数包括本节点基于物理不可克隆函数生成的第一数字指纹帮助数据、第一数字指纹的指纹地址;
11.s20、基于所述第一数字指纹的指纹地址读取当前的数字指纹,并基于所述第一数字指纹帮助数据和当前的数字指纹进行数字指纹重构,得到第一重构数字指纹;
12.s30、基于所述第二节点的身份标识信息和第一重构数字指纹生成访问请求信息,发送至所述第二节点;
13.s40、接收所述第二节点发送的访问确认信息,并基于所述第二节点的身份标识信息和所述第一重构数字指纹对所述访问确认信息进行验证;
14.s50、验证通过后,基于所述第一重构数字指纹和所述访问确认信息计算临时会话密钥,所述第一节点和所述第二节点基于所述临时会话密钥进行保密通信。
15.可选地,该方法还包括:在s10之前,基于sram的物理不可克隆函数在所述第二节点进行注册,并生成本节点的预置参数以及接收所述第二节点的注册信息,保存至所述第一非易失性存储器中。
16.可选地,基于sram的物理不可克隆函数在所述第二节点进行注册,包括:
17.基于sram的物理不可克隆函数生成第一数字指纹;
18.基于所述第一数字指纹,通过哈希函数生成相应的第一身份标识信息;
19.将所述第一身份标识信息发送至所述第二节点。
20.可选地,生成本节点的预置参数以及接收所述第二节点的注册信息,保存至所述第一非易失性存储器中,包括:
21.接收所述第二节点发送的第二身份标识信息,将所述第二身份标识信息作为第二节点注册信息存储至第一非易失性存储器;
22.基于sram的物理不可克隆函数生成第一编码种子值,并基于所述第一编码种子值编码得到第一纠错码,基于所述第一纠错码对节点注册时生成的第一数字指纹进行异或运算,得到第一数字指纹帮助数据;
23.将所述第一数字指纹帮助数据、所述第一数字指纹的指纹地址作为第一预置参数存储至第一非易失性存储器。
24.可选地,当所述第一纠错码为bch码时,则s20包括:
25.基于所述第一数字指纹的指纹地址读取当前的数字指纹;
26.基于当前的数字指纹对所述第一数字指纹帮助数据进行异或运算,得到当前bch码;
27.对所述当前bch码进行译码,得到初始bch码字;
28.基于所述初始bch码字和所述第一数字指纹帮助数据进行指纹重构,得到第一重构数字指纹。
29.可选地,s30包括:
30.基于所述第一重构数字指纹,通过哈希函数生成第一节点身份信息;
31.基于生成的随机位置数据、所述第一节点身份信息、所述第二身份标识信息、当前的时间戳,通过哈希函数生成伪随机位置数据;
32.基于所述随机位置数据、所述第一节点身份信息、当前的时间戳,通过哈希函数生成第一待认证数据;
33.将所述伪随机位置数据、当前的时间戳、所述第一待认证数据作为访问请求信息,发送至所述第二节点。
34.第二方面,本技术实施例提供了一种基于puf的认证与密钥协商方法,所述认证与密钥协商方法应用于传感器网络中接收认证请求的第二节点,该方法包括:
35.s1、从第二非易失性存储器中获取第二预置参数和第一节点注册信息,所述第一节点注册信息为第一节点基于物理不可克隆函数生成的第一身份标识信息,所述第二预置参数包括本节点基于物理不可克隆函数生成的第二数字指纹帮助数据和第二数字指纹的指纹地址;
36.s2、接收第一节点发送的访问请求信息,基于所述第二数字指纹的指纹地址读取当前的数字指纹,并基于所述第二数字指纹帮助数据和当前的数字指纹进行数字指纹重构,得到第二重构数字指纹;
37.s3、基于所述第二重构数字指纹生成第二身份信息,基于所述第二身份信息和所述第一身份标识信息对所述访问请求信息进行验证;
38.s4、验证通过后基于所述第一身份标识信息和所述第二身份信息生成临时会话密钥和访问确认信息;
39.s5、将所述访问确认信息发送至所述第一节点。
40.可选地,所述访问请求信息包括伪随机位置数据、访问时间戳、第一待认证数据;则,s2包括:
41.接收所述访问请求信息,根据所述访问时间戳检测所述访问请求信息的时间有效性;
42.若检测通过,则基于所述第二数字指纹的指纹地址读取当前的数字指纹,并基于所述第二数字指纹帮助数据和当前的数字指纹进行数字指纹重构,得到第二重构数字指纹。
43.可选地,s3中基于所述第二身份信息和所述第一身份标识信息对所述访问请求信息进行验证,包括:
44.基于所述第二身份信息、所述伪随机位置数据、所述访问时间戳、所述第一身份标识信息,计算伪随机位置数据验证值;
45.基于所述伪随机位置数据验证值、所述第一身份标识信息、所述访问时间戳,通过哈希函数计算实际认证数据;
46.基于所述实际认证数据和所述第一待认证数据对对所述访问请求信息进行验证。
47.第三方面,本技术实施例提供了一种电子设备,包括:
48.处理器、通信接口,以及存储器,
49.所述存储器上存储有程序指令,所述程序指令当被所述处理器执行时使得所述处理器执行如上第一方面任一项所述的方法或执行如上第二方面任一项所述的方法。
50.(三)有益效果
51.本发明的有益效果是:
52.借助于上述技术方案,本技术基于puf对汇聚节点和传感器节点进行双向认证,生成临时会话密钥,保障后续通信安全。
53.参与实体之间没有存储共享密钥,并且每次认证过程中采用随机位置数据pos和随机数r生成临时会话密钥,因此临时会话密钥在认证过程中是动态且随机变化的。攻击者即使获得了当前通信的会话密钥,也不可能获得之前的会话密钥,从而保证了之前通信的机密性不会受到影响。因此,该认证与密钥协商方法和装置能够实现前向安全,从而提高了数据安全性。
54.puf利用了物理实体在制造工艺过程中产生的随机性差异构造设备的物理指纹,这种差异不可预测且难以复制,攻击者很难复制一个和已有设备拥有相同物理指纹的设备。因此,该方法能够有效抵抗物理攻击。
55.在该方法中,信道上传输的和节点中存储的并非响应的明文形式,而是其散列值,攻击者无法得到该散列值,更无法推出响应,因此散列函数的引用增加了挑战和输出之间的非线性关系,使得建模攻击变得更为困难。因此该方法能够抵抗建模攻击。
附图说明
56.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
57.图1示出了本技术实施例提供的一种传感器网络结构示意图;
58.图2示出了本技术实施例提供的一种基于puf的认证与密钥协商方法流程示意图;
59.图3示出了本技术实施例提供的加密第一数字指纹生成示意图;
60.图4示出了本技术实施例提供的puf数字指纹重构示意图;
61.图5示出了本技术另一个实施例提供的一种基于puf的认证与密钥协商方法流程示意图;
62.图6示出了本技术又一个实施例提供的一种注册阶段的流程图;
63.图7示出了本技术又一个实施例提供的一种认证与密钥协商阶段的流程图;
64.图8示出了本技术实施例提供的一种认证与密钥协商阶段的流程示例图;
65.图9示出了本技术再一个实施例提供的一种电子设备的结构框图。
具体实施方式
66.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
67.为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
68.目前的身份认证协议包括使用固定口令的弱认证、基于挑战—响应的强认证和零知识认证。弱认证协议由于认证内容固定,容易受到重放攻击,只能用在低安全要求的场合。强认证协议引入了变化的因子如:序列号、时间戳、随机数等以及密码算法,安全性大大提升,能够适用于高安全性的场合。其中使用的密码算法可以是对称密码算法,也可以是非对称密码算法,无论哪种密码算法都需要事先保存一个认证密钥,在认证过程中,使用这个密钥对认证内容进行运算。对于存放在设备中的密钥,攻击者有可能通过侵入式和侧信道分析获取,进而伪造身份。
69.基于此,本技术提供了一种基于puf的认证与密钥协商方法和设备,应用于传感器网络中。图1示出了本技术实施例提供的一种传感器网络结构示意图,如图1所示,传感器网
memory)。
83.本实施例s10中,物理不可克隆函数可以通过节点静态随机存取存储器(static random-access memory,sram)实现,具体是节点上电后读取预设地址的存储单元的初始值。因此,第二身份标识信息可以是基于第二节点的sram上电后读取的初始值得到的。
84.本节点第一数字指纹的指纹地址是sram中生成第一数字指纹的存储单元的地址。
85.本节点的第一数字指纹帮助数据是基于其他预设地址的存储单元的初始值进行编码后得到的。其中,第一数字指纹帮助数据用于进行数字指纹的重构,第一数字指纹帮助数据的生成方法可以是:
86.基于sram的物理不可克隆函数生成第一编码种子值,并基于第一编码种子值编码得到相应的bch码,作为第一纠错码。
87.基于第一纠错码对节点注册时生成的第一数字指纹进行异或运算,得到第一数字指纹帮助数据。
88.其中,第一数字指纹是基于第一节点的sram上电后读取的初始值得到的,第一数字指纹的指纹地址为根据实际需要选取的稳定性较高的存储单元的地址。
89.本实施例s20中,数字指纹重构的方法包括:
90.基于第一数字指纹的指纹地址读取当前的数字指纹;
91.基于当前的数字指纹对第一数字指纹帮助数据进行异或运算,得到当前bch码;
92.对当前bch码进行译码,得到初始bch码字;
93.基于初始bch码字和第一数字指纹帮助数据进行指纹重构,得到第一重构数字指纹。
94.以下以汇聚节点和传感器节点两个参与实体为例对第一数字指纹帮助数据的生成和第一重构数字指纹的重构过程进行描述。图3示出了本技术实施例提供的第一数字指纹帮助数据生成示意图,如图3所示,在汇聚节点/传感器节点上电后,分别读取另一段sram初始值作为汇聚节点/传感器节点的编码种子值puf
sink/sensor_seed
,并根据编码种子值生成相应的博斯-乔赫里-霍克文黑姆码(bose

chaudhuri

hocquenghem codes,bch codes)bch
sink/sensor
,作为汇聚节点/传感器节点纠错码;根据汇聚节点/传感器节点数字指纹puf
sink/sensor
和汇聚节点/传感器节点纠错码bch
sink/sensor
,计算汇聚节点/传感器节点的数字指纹帮助数据hd
sink/sensor

95.应理解,根据编码种子值puf
sink/sensor_seed
生成相应的bch码bch
sink/sensor
的具体过程可根据实际需求来进行设置,本技术实施例并不局限于此。
96.例如,可通过如下公式计算汇聚节点的bch码bch
sink

97.bch
sink
=bch_encode(puf
sink_seed
);
98.其中,bch_encode表示bch编码。
99.还应理解,根据汇聚节点/传感器节点数字指纹puf
sink/sensor
和汇聚节点/传感器节点的纠错码bch
sink/sensor
,计算数字指纹帮助数据hd
sink/sensor
的具体过程可根据实际需求来进行设置,本技术实施例并不局限于此。
100.例如,可通过如下公式计算汇聚节点的数字指纹帮助数据hd
sink

[0101][0102]
其中,表示异或运算。
[0103]
图4示出了本技术实施例提供的puf数字指纹重构示意图,如图4所示:
[0104]
基于汇聚节点/传感器节点的数字指纹的指纹地址读取汇聚节点/传感器节点当前的数字指纹puf
sink/sensor-c

[0105]
基于当前的数字指纹puf
sink/sensor-c
对汇聚节点/传感器节点的数字指纹帮助数据hd
sink/sensor
进行异或运算,得到当前bch码bch
sink/sensor-c

[0106]
对当前bch码bch
sink/sensor-c
进行译码,得到汇聚节点/传感器节点的初始bch码字bch

sink/sensor

[0107]
基于初始bch码字bch

sink/sensor
和数字指纹帮助数据hd
sink/sensor
进行指纹重构,得到汇聚节点/传感器节点的重构数字指纹puf

sink/sensor

[0108]
实施例二
[0109]
本实施例提供一种基于puf的认证与密钥协商方法,应用于传感器网络中接收认证请求的第二节点。请参见图5,图5示出了本技术另一个实施例提供的一种基于puf的认证与密钥协商方法流程示意图。如图5所示,该认证与密钥协商方法包括:
[0110]
s1、从第二非易失性存储器中获取第二预置参数和第一节点注册信息,所述第一节点注册信息为第一节点基于物理不可克隆函数生成的第一身份标识信息,所述第二预置参数包括本节点基于物理不可克隆函数生成的第二数字指纹帮助数据和第二数字指纹的指纹地址;
[0111]
s2、接收第一节点发送的访问请求信息,基于所述第二数字指纹的指纹地址读取当前的数字指纹,并基于所述第二数字指纹帮助数据和当前的数字指纹进行数字指纹重构,得到第二重构数字指纹;
[0112]
s3、基于所述第二重构数字指纹生成第二身份信息,基于所述第二身份信息和所述第一身份标识信息对所述访问请求信息进行验证;
[0113]
s4、验证通过后基于所述第一身份标识信息和所述第二身份信息生成临时会话密钥和访问确认信息;
[0114]
s5、将所述访问确认信息发送至所述第一节点。
[0115]
本实施例的技术效果和相关参数说明与实施例一相同,请参见实施例一,本实施例不再赘述。
[0116]
实施例三
[0117]
本实施例在实施例一和实施例二的基础上,通过汇聚节点和传感器节点之间的认证与密钥协商实现过程来进一步说明基于puf的认证与密钥协商方法。
[0118]
这里需要说明的是,鉴于接入节点和汇聚节点的认证方式与汇聚节点和传感器节点的认证方式相同,因此本实施例仅以汇聚节点和传感器节点两个参与实体为例进行详细描述。
[0119]
本实施例中,认证与密钥协商方法包括注册阶段和认证与密钥协商阶段,故下面分别对注册阶段和认证与密钥协商阶段进行描述。
[0120]
请参见图6,图6示出了本技术又一个实施例提供的一种注册阶段的流程图。如图6所示,该注册阶段包括:
[0121]
步骤s310、在汇聚节点上电后,汇聚节点读取静态随机存取存储器(static random-access memory,sram)初始值,并将初始值作为汇聚节点的数字指纹puf
sink
,并根
据数字指纹puf
sink
,生成汇聚节点的身份标识id
sink
。以及,汇聚节点读取另一段sram初始值作为汇聚节点的编码种子值puf
sink_seed
,并根据编码种子值编码得到汇聚节点的bch码,作为汇聚节点的纠错码。基于汇聚节点的纠错码对数字指纹puf
sink
进行异或运算,得到汇聚节点的数字指纹帮助数据。
[0122]
具体地,通过如下公式计算汇聚节点的身份标识id
sink

[0123]
id
sink
=h(puf
sink
)
[0124]
其中,h()表示单向哈希函数。
[0125]
具体地,可通过如下公式计算汇聚节点的bch码bch
sink
,作为汇聚节点的纠错码:
[0126]
bch
sink
=bch_encode(puf
sink_seed
);
[0127]
这里需要说明的是,根据汇聚节点的编码种子值生成汇聚节点的纠错码,并不一定是bch码,也可以采用其他具有纠错功能的编码,例如里德-所罗门码(reed-solomon codes,rs codes)码,具体编码方式可根据实际需求来进行设置,本技术实施例并不局限于此。
[0128]
具体地,通过如下公式计算汇聚节点的数字指纹帮助数据hd
sink

[0129][0130]
步骤s320、汇聚节点向传感器节点发送汇聚节点的身份标识id
sink
。对应地,传感器节点接收汇聚节点的身份标识id
sink

[0131]
步骤s330、在传感器节点上电后,传感器节点读取sram初始值,并将初始值作为传感器节点的数字指纹puf
sensor
,并根据数字指纹puf
sensor
,生成传感器节点的身份标识id
sensor
。以及,传感器节点读取另一段sram初始值作为传感器节点的编码种子值puf
sensor_seed
,并根据传感器节点的编码种子值生成传感器节点的bch码,作为传感器节点的纠错码。基于传感器节点的纠错码对数字指纹puf
sensor
进行异或运算,得到传感器节点的数字指纹帮助数据。
[0132]
具体地,通过如下公式计算传感器节点的身份标识id
sensor

[0133]
id
sensor
=h(puf
sensor
);
[0134]
具体地,可通过如下公式计算传感器节点的bch码bch
sensor
,作为传感器节点的纠错码:
[0135]
bch
sensor
=bch_encode(puf
sensor_seed
);
[0136]
具体地,通过如下公式计算传感器节点的数字指纹帮助数据hd
sensor

[0137][0138]
步骤s340、传感器节点向汇聚节点发送传感器节点的身份标识id
sensor
。对应地,汇聚节点接收传感器节点的身份标识id
sensor

[0139]
步骤s350、汇聚节点将传感器节点的身份标识id
sensor
、汇聚节点的数字指纹帮助数据hd
sink
和数字指纹地址addr
sink
存储到汇聚节点的非易失性存储器中。
[0140]
步骤s360、传感器节点将汇聚节点的身份标识id
sink
、传感器节点的数字指纹帮助数据hd
sensor
和数字指纹地址addr
sensor
存储到传感器节点的非易失性存储器中。
[0141]
可以理解的是,以上步骤仅仅是示例性地阐述本发明方法的具体实施例的步骤,并不代表该方法必须以以上步骤的顺序进行,更非对本技术的方法的步骤顺序的限定。例如,以上步骤中步骤s310、步骤s320也可以在步骤s330、步骤s340之后执行。
[0142]
请参见图7和图8,图7示出了本技术实施例提供的一种认证与密钥协商阶段的流程图,图8示出了本技术实施例提供的一种认证与密钥协商阶段的流程示例图。如图7和图8所示,该认证与密钥协商阶段包括:
[0143]
步骤s410、汇聚节点生成随机位置数据pos,并获取当前时间戳作为第一时间戳ts1,根据汇聚节点的数字指纹地址addr
sink
,读取汇聚节点的当前数字指纹puf
sink-c
,并基于当前数字指纹puf
sink-c
进行指纹重构,得到第一重构数字指纹puf'
sink
。利用汇聚节点的第一重构数字指纹puf'
sink
计算汇聚节点身份信息id

sink
,基于汇聚节点身份信息id

sink
、随机位置数据pos、传感器节点的身份标识id
sensor
和第一时间戳ts1,计算伪随机位置数据mpos,以及利用puf'
sink
、随机位置数据pos和第一时间戳ts1,计算第一待认证数据v1;其中,ts1用于表示生成pos的时间点。
[0144]
具体地,可通过如下公式计算伪随机位置数据mpos:
[0145][0146]
id'
sink
=h(puf'
sink
);
[0147]
其中,mpos表示伪随机位置数据;pos表示随机位置数据;表示异或运算;h( )表示单向哈希函数;||表示联接操作;ts1表示第一时间戳。
[0148]
通过如下公式计算第一待认证数据v1:
[0149]v1
=h(id'
sink
||pos||ts1);
[0150]
其中,v1表示第一待认证数据。
[0151]
步骤s420、汇聚节点向传感器节点发送携带有第一时间戳ts1、伪随机位置数据mpos和第一待认证数据v1的访问请求信息。对应地,传感器节点接收到访问请求信息。
[0152]
步骤s430、传感器节点基于第一时间戳ts1检测访问请求信息的时间有效性;检测通过后,根据传感器节点的数字指纹地址addr
sensor
,读取传感器节点的当前数字指纹puf
sensor-c
,并基于当前数字指纹puf
sensor-c
进行指纹重构,得到第二重构数字指纹puf'
sensor
。基于第二重构数字指纹puf'
sensor
计算传感器节点身份信息id

sensor
;基于传感器节点身份信息id

sensor
、伪随机位置数据mpos、第一时间戳ts1、汇聚节点身份标识信息id
sink
对第一待认证数据v1进行认证。
[0153]
具体地,传感器节点获取第四时间戳ts4;其中,ts4用于表示接收到访问请求信息的时间点,以及计算ts4和ts1的时间戳差值,即验证ts1的新鲜度,以及在第四时间戳与第一时间戳差值小于第一预设时间戳差值的情况下,则ts1通过认证,并利用ts1、mpos、id
sink
和addr
sensor
,计算第一实际认证数据v1′
,以及判断v1和v1′
是否相同,若v1和v1′
相同,则v1通过认证;若v1和v1′
不相同,则v1未通过认证,从而可终止认证。以及,在第四时间戳与第一时间戳差值大于等于第一预设时间戳差值的情况下,则ts1未通过认证,从而可终止认证。
[0154]
可通过如下公式计算第一实际认证数据v1′

[0155]v1

=h(id
sink
||pos

||ts1);
[0156][0157]
id'
sensor
=h(puf'
sensor
);
[0158]
其中,pos’为伪随机位置数据验证值。
[0159]
步骤s440、在第一待认证数据v1通过认证的情况下,生成随机数r,基于随机数r、
传感器节点身份信息id

sensor
、汇聚节点身份标识信息id
sink
、访问请求信息生成临时会话密钥;并获取第二时间戳ts2,以及利用随机数r、第二时间戳ts2和汇聚节点的身份标识id
sink
,计算辅助认证数据m,以及利用第一时间戳ts1、第二时间戳ts2、伪随机位置数据mpos、传感器节点身份信息id

sensor
和汇聚节点的身份标识id
sink
,计算第二待认证数据v2。
[0160]
具体地,可通过如下公式计算辅助认证数据m:
[0161][0162]
通过如下公式计算第二待认证数据v2:
[0163]v2
=h(id
sink
||pos'||ts2)。
[0164]
通过如下公式计算临时会话密钥sk:
[0165]
sk=h(idf||pos');
[0166]
idf=h(id
sink
||id'
sensor
||r);
[0167][0168]
其中,h()表示单向哈希函数;r表示随机数;mpos表示伪随机位置数据mpos;表示异或运算;ts1表示第一时间戳;puf'
sensor
表示第二重构数字指纹。
[0169]
这里需要说明的是,在步骤s430中,该传感器节点还可对puf'
sensor
进行重构,重构过程包括:
[0170]
传感器节点可对puf'
sensor
和hd
sensor
进行异或运算,得到异或运算结果bch'
sensor
,并对bch'
sensor
进行译码,得到bch
sensor
,并对bch
sensor
和hd
sensor
进行异或运算,得到puf'
sensor

[0171]
步骤s450、传感器节点向汇聚节点发送携带有第二时间戳ts2、辅助认证数据m和第二待认证数据v2的访问确认信息。对应地,汇聚节点接收传感器节点发送的访问确认信息。
[0172]
步骤s460、汇聚节点基于第二时间戳ts2检测访问确认信息的时间有效性;检测通过后,汇聚节点基于汇聚节点身份信息id

sink
、第二时间戳ts2、随机位置数据pos对第二待认证数据v2进行认证;认证通过后汇聚节点基于汇聚节点身份信息id

sink
、第二时间戳ts2、随机位置数据pos、辅助认证数据m、传感器节点身份标识信息id
sensor
计算得到临时会话密钥sk。
[0173]
具体地,汇聚节点获取第三时间戳ts3,其中,第三时间戳ts3用于表示接收到访问确认信息的时间点,以及计算第三时间戳和第二时间戳的时间戳差值,即验证ts2的新鲜度,以及在第三时间戳和第二时间戳的差值小于第二预设时间戳的情况下,则第二时间戳ts2通过认证,并利用ts2、puf'
sink
和pos,计算第二实际认证数据v
′2,以及判断v2和v
′2是否相同,若v2和v
′2相同,则v2通过认证;若v2和v
′2不相同,则v2未通过认证,从而可终止认证。以及,若ts2与ts3时间戳差值大于等于第二预设时间戳,则ts2未通过认证,从而可终止认证。
[0174]
具体地,通过如下公式计算第二实际认证数据v
′2:
[0175]v′2=h(id'
sink
||pos||ts2)
[0176]
其中,id'
sink
为汇聚节点身份信息。
[0177]
具体地,通过如下公式计算临时会话密钥sk:
[0178]
sk=h(idf'||pos);
[0179]
idf'=h(id'
sink
||id
sensor
||r');
[0180][0181]
其中,sk表示临时会话密钥;m表示辅助认证数据;ts2表示第二时间戳。
[0182]
步骤s470、传感器节点和汇聚节点利用临时会话密钥进行保密通信。
[0183]
应理解,上述认证与密钥协商阶段仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本技术的保护范围。
[0184]
借助于上述技术方案,本技术基于puf对汇聚节点和传感器节点进行双向认证,参与实体之间没有存储共享密钥,并且每次认证过程中采用随机位置数据pos和随机数r生成临时会话密钥,因此临时会话密钥在认证过程中是动态且随机变化的。攻击者即使获得了当前通信的会话密钥,也不可能获得之前的会话密钥,从而保证了之前通信的机密性不会受到影响。
[0185]
以及,汇聚节点和传感器节点在实现身份认证后协商出了一个临时会话密钥,用于保护二者之间的安全通信。该临时会话密钥由随机位置数据作用于动态标识字段idf计算得到,任何第三方都无法事先获取到该会话密钥。因此,该认证与密钥协商方法能够实现会话密钥协商。
[0186]
以及,本技术采用时间戳和随机数方法抵抗重放攻击。在每个会话中,汇聚节点和传感器节点分别生成随机位置数据和随机数,这些随机数用于确保交换消息的新鲜度和独立性。此外,汇聚节点和传感器节点存在时间戳新鲜性检测机制,即使攻击者重放之前的消息,也无法通过认证。因此,该认证与密钥协商方法能够抵抗重放攻击。
[0187]
以及,临时会话密钥是根据随机位置数据和idf通过哈希运算得到的,攻击者无法获取随机位置数据和idf,更不可能计算得到当前通信的会话密钥。因此,该认证与密钥协商方法能够抵抗在线密钥猜测攻击。
[0188]
以及,本技术的参与实体之间没有存储相同的秘密值。此外,当会话完成时,参与实体并不需要更新任何信息。因此,该认证与密钥协商方法能够抵抗去同步攻击。
[0189]
实施例四
[0190]
请参见图9,图9示出了本技术再一个实施例提供的一种电子设备900的结构框图。如图9所示,电子设备900可以包括处理器910、通信接口920、存储器930和至少一个通信总线940。存储器930上存储有程序指令,程序指令当被处理器910执行时使得处理器910执行如上任一实施例的方法。
[0191]
其中,通信总线940用于实现这些组件直接的连接通信。其中,本技术实施例中设备的通信接口920用于与其他节点设备进行信令或数据的通信。处理器910可以是一种集成电路芯片,具有信号的处理能力。上述的处理器910可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程逻辑门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框
图。通用处理器可以是微处理器或者该处理器910也可以是任何常规的处理器等。
[0192]
存储器930可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除只读存储器(erasable programmable read-only memory,简称eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称eeprom)等。存储器930中存储有计算机可读取指令,当计算机可读取指令由处理器910执行时,电子设备900可以执行上述方法实施例中的各个步骤。
[0193]
存储器930、通信接口920、处理器910各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线940实现电性连接。处理器910用于执行存储器830中存储的可执行模块,例如电子设备900包括的软件功能模块或计算机程序。
[0194]
可以理解,图9所示的结构仅为示意,电子设备900还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。图9中所示的各组件可以采用硬件、软件或其组合实现。
[0195]
本技术提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例所述的方法。
[0196]
本技术还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
[0197]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0198]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0199]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0200]
本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0201]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0202]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0203]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0204]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献