医疗应急供应链中基于RFID的医疗系统的新型轻量级身份验证协议方法

文档序号:26848725发布日期:2021-10-09 01:14阅读:82来源:国知局
医疗应急供应链中基于RFID的医疗系统的新型轻量级身份验证协议方法
医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法
技术领域
1.本发明涉及一种医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法,属于信息安全认证技术领域。


背景技术:

2.rfid技术是物联网的关键技术,可以用来增强供应链中的可见性和可追溯性,因此rfid技术广泛应用于供应链管理、物流控制、医院信息科新生儿、病人身份识别、医疗资产定位跟踪与病人管理等方面,但是随着rfid收集的数据量急剧增加,给各种领域进行数据驱动决策带来了挑战。尤其在移动医疗卫生行业,每天都会有海量数据产生,人们通常把私有的医疗信息数据库存储在云存储公司,不能保证数据的安全存储,这可能会造成患者隐私的泄露。故亟需一种医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法。


技术实现要素:

3.本发明所要解决的技术问题是,提供一种医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法,该方法在防止追溯攻击、同步攻击和时间度量攻击方面非常有效。
4.为解决上述技术问题,本发明采用的技术方案为:
5.医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法,包括初始阶段和认证阶段;
6.初始阶段包括如下步骤:
7.第一步:对于每个合法的标签,管理员分配一个伪标识符sid和一个密钥x,然后在标签的索引数据表中设置sid
old
=sid和x
old
=x,sid
old
和x
old
都设为0;其中,sid代表标签当前伪标识符;sid
old
代表标签的上一个伪标识符;x代表标签的当前密钥;x
old
代表标签的上一个密钥;
8.第二步:对于每个合法的读卡器,管理员分配一个伪标识符srid和一个密钥y,然后在读卡器的索引数据表中设置srid
old
=srid和y
old
=y,srid
old
和y
old
都设为0;其中,srid代表读卡器的当前伪标识符;srid
old
代表读卡器的上一个伪标识符;y代表读卡器的当前密钥;y
old
代表读卡器的上一个密钥;
9.认证阶段包括如下步骤:
10.第一步:读卡器

服务器:m1={n
r
},读卡器生成一个随机数n
r
并将其发送到服务器;
11.第二步:服务器

读卡器:m2={n
s
},服务器接收到m1后,生成一个随机数n
t
并发送给读卡器;
12.第三步:读卡器

标签:m3={n
s
},收到m2后,读卡器将n
s
转发给标签;
13.第四步:标签

读卡器:m4={sid,m
t1
,n
t
},一旦收到m3,标签生成一个随机数n
t
,计算m
t1
=prng(x||n
s
||n
t
),并将{sid,m
t1
,n
t
}发送给读卡器;
14.第五步:读卡器

服务器:m5={srid,m
r1
,sid,m
t1
,n
t
},读卡器收到m4后,计算m
r1
=prng(y||n
s
||n
r
)和组成一个回复{srid,m
r1
,sid,m
t1
,n
t
}到服务器;
15.第六步:服务器

读卡器:m6={m
r2
,m
t2
},
16.在接收到m5之后,服务器在读卡器的索引数据表中搜索接收到的srid;如果找到,服务器读取相应的y,检查等式prng(y||n
s
||n
r
)=m
r1
是否成立;如果等式成立,读卡器是有效的;其中,||代表连接运算符号;
17.然后,服务器在标签的索引数据表中搜索接收到的sid;如果找到,服务器读取相应的x,检查等式prng(x||n
s
||n
t
)=m
t1
是否成立;如果成立,标签是有效的;然后确认读卡器和标签的有效性;
18.服务器计算m
r2
=prng((y+1)||n
s
||n
r
),srid
new
=prng(srid||y||n
s
||n
r
),y
new
=prng((y+2)||n
s
||n
r
),m
t2
=prng((x+1)||n
s
||n
t
),sid
new
=prng(sid||x||n
s
||n
t
)和x
new
=prng((x+2)||n
s
||n
t
);其中,srid
new
代表读卡器的下一个伪标识符;y
new
代表读卡器的下一个密钥;sid
new
代表标签的下一个伪标识符;x
new
代表标签的下一个密钥;x+1代表密钥x增加1;x+2代表密钥x增加2;y+1代表密钥y增加1;y+2代表密钥y增加2;
19.然后,服务器更新读卡器和标签的索引数据表;
20.一旦更新完成,服务器发送{m
r2
,m
t2
}到读卡器;
21.第七步:从读卡器到标签:m7={m
t2
},读卡器收到m6后,检查是否prng((y+1)||n
s
||n
r
)=m
r2
,如果是,服务器是有效的和更新了读卡器的索引数据表的;因为服务器只在标签合法时才发送m
r2
,读卡器通过m
r2
验证标签;然后读卡器计算srid
new
=prng(srid||y||n
s
||n
r
),y
new
=prng((y+2)||n
s
||n
r
),并更新srid=srid
new
,y=y
new
;之后,读卡器将m
t2
发送给标签;
22.第八步:标签验证;一旦m7到达时,标签检查等式prng((x+1)||n
s
||n
t
)=m
t2
是否成立,如果是,服务器是有效的和更新了标签的索引数据表的;标签也隐式地对读卡器进行身份验证,因为除非服务器对读卡器进行身份验证,否则标签不会收到有效的m
t2
;然后,标签计算sid
new
=prng(sid||x||n
s
||n
t
),x
new
=prng((x+2)||n
s
||n
t
)和更新sid=sid
new
,x=x
new

23.服务器更新读卡器的索引数据表的方法为:如果在更新的索引数据表的索引字段中找到srid,服务器令srid
old
=srid,y
old
=y,srid=srid
new
,y=y
new
;如果在更新的索引数据表的索引字段中未找到srid,服务器只令srid=srid
new
,y=y
new

24.服务器更新标签的索引数据表的方法为:如果在更新的索引数据表的索引字段中找到sid,服务器允许sid
old
=sid,x
old
=x,sid=sid
new
,x=x
new
;如果在更新的索引数据表的索引字段中未找到sid,服务器令sid=sid
new
,x=x
new

25.本发明提供的一种医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法,该法安全可靠,秘钥无法被揭示,攻击者无法将两个消息参数关联起来,两个消息参数被一个使用有效方案方运行的完整方案分开,进一步保证了本协议的安全性。另外,本发明的标签是普遍不可追踪的,可以确保前向保密性,能够抵抗模拟攻击,抵抗去同步攻击,具有良好的可扩展性和抗时间度量攻击的能力。
26.本发明能够满足以下的安全需求:
27.(a)不可追踪性:对手不能追踪标签。站在标签和读卡器之间的攻击者可能会窃听并关联来自两个不同会话的标签消息,从而识别标签,而本发明中,攻击者无法将两个消息参数关联起来。
28.(b)前向保密:即使一个标签的秘密参数(即密钥)暴露给对手,对手也很难识别该标签之前的消息。
29.(c)模拟攻击的恢复能力:对手可能试图模拟合法的方案方(服务器、读卡器或标签),例如,通过回放从通道截获的消息。本发明可将任何模仿都被阻止。
30.(d)抵抗去同步攻击:如果一个方案依赖于共享值进行身份验证,对手可能会导致去同步问题。例如,如果服务器更新共享值,但是标签没有更新,那么服务器将来可能无法对标签进行身份验证。本发明抵制了这样的去同步攻击。
31.(e)可扩展性:如果服务器需要做一个穷举搜索来验证一个标签,这个方案是不可扩展性的。本发明的身份验证方案能够避免任何穷尽的搜索操作,以确保可伸缩性。
32.(f)轻量级加密机制:本发明使用prng函数来加密,实现了轻量级加密机制,私有的医疗信息数据库不必存储在云存储公司,保证数据的安全存储,不会造成患者隐私的泄露。
附图说明
33.图1是本发明的流程图。
具体实施方式
34.下面结合附图对本发明作更进一步的说明。
35.如图1所示,医疗应急供应链中基于rfid的医疗系统的新型轻量级身份验证协议方法,包括初始阶段和认证阶段;
36.初始阶段包括如下步骤:
37.第一步:对于每个合法的标签,管理员分配一个伪标识符sid和一个密钥x,然后在标签的索引数据表中设置sid
old
=sid和x
old
=x,sid
old
和x
old
都设为0;其中,sid代表标签当前伪标识符;sid
old
代表标签的上一个伪标识符;x代表标签的当前密钥;x
old
代表标签的上一个密钥;
38.第二步:对于每个合法的读卡器,管理员分配一个伪标识符srid和一个密钥y,然后在读卡器的索引数据表中设置srid
old
=srid和y
old
=y,srid
old
和y
old
都设为0;其中,srid代表读卡器的当前伪标识符;srid
old
代表读卡器的上一个伪标识符;y代表读卡器的当前密钥;y
old
代表读卡器的上一个密钥;
39.认证阶段包括如下步骤:
40.第一步:读卡器

服务器:m1={n
r
},读卡器生成一个随机数n
r
并将其发送到服务器;
41.第二步:服务器

读卡器:m2={n
s
},服务器接收到m1后,生成一个随机数n
t
并发送给读卡器;
42.第三步:读卡器

标签:m3={n
s
},收到m2后,读卡器将n
s
转发给标签;
43.第四步:标签

读卡器:m4={sid,m
t1
,n
t
},一旦收到m3,标签生成一个随机数n
t
,计算m
t1
=prng(x||n
s
||n
t
),并将{sid,m
t1
,n
t
}发送给读卡器;
44.第五步:读卡器

服务器:m5={srid,m
r1
,sid,m
t1
,n
t
},读卡器收到m4后,计算m
r1
=prng(y||n
s
||n
r
)和组成一个回复{srid,m
r1
,sid,m
t1
,n
t
}到服务器;其中,||代表连接运算符号;
45.第六步:服务器

读卡器:m6={m
r2
,m
t2
},
46.在接收到m5之后,服务器在读卡器的索引数据表中搜索接收到的srid;如果找到,服务器读取相应的y,检查等式prng(y||n
s
||n
r
)=m
r1
是否成立;如果等式成立,读卡器是有效的;
47.然后,服务器在标签的索引数据表中搜索接收到的sid;如果找到,服务器读取相应的x,检查等式prng(x||n
s
||n
t
)=m
t1
是否成立;如果成立,标签是有效的;然后确认读卡器和标签的有效性;
48.服务器计算m
r2
=prng((y+1)||n
s
||n
r
),srid
new
=prng(srid||y||n
s
||n
r
),y
new
=prng((y+2)||n
s
||n
r
),m
t2
=prng((x+1)||n
s
||n
t
),sid
new
=prng(sid||x||n
s
||n
t
)和x
new
=prng((x+2)||n
s
||n
t
);其中,srid
new
代表读卡器的下一个伪标识符;y
new
代表读卡器的下一个密钥;sid
new
代表标签的下一个伪标识符;x
new
代表标签的下一个密钥;x+1代表密钥x增加1;x+2代表密钥x增加2;y+1代表密钥y增加1;y+2代表密钥y增加2;
49.然后,服务器更新读卡器和标签的索引数据表;
50.服务器更新读卡器的索引数据表的方法为:如果在更新的索引数据表的索引字段中找到srid,服务器令srid
old
=srid,y
old
=y,srid=srid
new
,y=y
new
;如果在更新的索引数据表的索引字段中未找到srid,服务器只令srid=srid
new
,y=y
new

51.服务器更新标签的索引数据表的方法为:如果在更新的索引数据表的索引字段中找到sid,服务器允许sid
old
=sid,x
old
=x,sid=sid
new
,x=x
new
;如果在更新的索引数据表的索引字段中未找到sid,服务器令sid=sid
new
,x=x
new

52.一旦更新完成,服务器发送{m
r2
,m
t2
}到读卡器;
53.第七步:从读卡器到标签:m7={m
t2
},读卡器收到m6后,检查是否prng((y+1)||n
s
||n
r
)=m
r2
,如果是,服务器是有效的和更新了读卡器的索引数据表的;因为服务器只在标签合法时才发送m
r2
,读卡器通过m
r2
验证标签;然后读卡器计算srid
new
=prng(srid||y||n
s
||n
r
),y
new
=prng((y+2)||n
s
||n
r
),并更新srid=srid
new
,y=y
new
;之后,读卡器将m
t2
发送给标签;
54.第八步:标签验证;一旦m7到达时,标签检查等式prng((x+1)||n
s
||n
t
)=m
t2
是否成立,如果是,服务器是有效的和更新了标签的索引数据表的;标签也隐式地对读卡器进行身份验证,因为除非服务器对读卡器进行身份验证,否则标签不会收到有效的m
t2
;然后,标签计算sid
new
=prng(sid||x||n
s
||n
t
),x
new
=prng((x+2)||n
s
||n
t
)和更新sid=sid
new
,x=x
new

55.安全性分析与证明
56.引理1:在该方案中,密钥必须调用reveal oracle才能被公开。
57.证明:在该方案,转移参数标签相关密钥x包括m
t1
和m
t2
,其中m
t1
=prng(x||n
s
||n
t
)和m
t2
=prng((x+1)||n
s
||n
t
)。攻击者不能从m
t1
或m
t2
中获取x,因为prng()被认为是一个不
可逆的操作。另一方面,相关的传输参数y包括读卡器密钥,其中m
r1
和m
r2
各由m
r1
=prng(y||n
s
||n
r
)和m
r2
=prng((y+1)||n
s
||n
r
)生成。因为prng()是不可逆的,对手不能从m
r1
或m
r2
得到y。因此,除非对手调用揭示神谕,否则秘钥无法被揭示。
58.引理2:在本实施例提出的方案中,如果不调用reveal oracle,则不能将两个消息参数(在有效方案方运行方案之前和之后)关联起来。
59.结果证明:为了便于阅读,我们将第i个会话中的参数p表示为
i
p。在不丧失一般性的前提下,我们假设对手试图将
i
p与
i+1
p关联起来。在我们的方案中,消息由9个参数组成:n
s
、n
r
、n
t
、sid、srid、m
t1
、m
t2
、m
r1
和m
r2

60.首先,我们考虑参数n
s
、n
r
和n
t
,n
s
是每个会话中生成的随机数,因此攻击者无法将
i
n
s

i+1
n
s
关联起来。同样,n
r
和n
t
不可能分别与
i+1
n
r

i+1
n
t
相关。
61.其次,我们考虑伪标识符sid和srid。
i+1
sid的值为根据引理1,敌方无法获得
i
x。因此,除非调用揭示预言,否则敌方很难将
i
sid与
i+1
sid关联起来。类似地,
i+1
srid的值是因为
i
y没有暴露,敌方无法将
i+1
srid与srid关联起来。
62.最后,我们考虑剩余的参数。由于和要将
i
m
t1

i+1
m
t1
关联起来,敌方需要知道
i
x,没有揭示神谕(引理1)是无法获得的。出于同样的原因,
i
m
t2
,其值为不能与
i+1
m
t2
,其值为关联。同样,由于和没有“y”的知识,敌方无法将
i
m
r1

i+1
m
r1
关联起来。出于同样的原因,
i
m
r2
,其值为不能与
i+1
m
r2
,其值为关联。因此,在不调用reveal oracle的情况下,攻击者无法将两个消息参数关联起来,这两个消息参数被一个使用有效方案方运行的完整方案分开。
63.定理3:在该方案中,标签是普遍不可追踪的。
64.证明:在rfid方案中,如果敌方不能将标签发送和接收的两条消息关联起来,并且由一个完整的方案与有效的方案方运行,则标签是普遍不可追踪的。这是通过作为rfid系统的挑战者c和对手a之间的博弈来建模的。假设c和a的功率不超过多项式时间算法:
65.(1)c选择两个标签,t0和t1,读卡器r和服务器s,它们都是有效的。
66.(2)a在t0、t1、r和s上以多项式次数调用oracle execute(执行命令)、send(发送命令)和block(阻止命令)。
67.(3)a停下来通知c。
68.(4)t=b位随机选择t
b

69.(5)a在t、r和s上调用oracle execute、send和block。
70.(6)a输出位b’。如果b’=b,a就赢了。
71.成功识别标签的优点定义为adv
a
=2x(p
r
[b'=b]=1/2)。如果对手a在随机猜测中没有优势,p
r
[b'=b]=1/2。因此,如果adv
a
为0,则标记通常是不可追踪的。
[0072]
p
r
代表概率,p
r
[b'=b]=1/2解释为:当b’=b时的概率为1/2。
[0073]
假设挑战者c为游戏选择两个标签t0和t1、一个读卡器r和一个服务器s。a开始游戏,并调用oracles execute、send和block,次数为多项式,分别为t1、r和s。假设c使用每个标记执行方案的完整实例,表示为第i个会话。a记录oracle调用的所有输出并通知c。然后,c选择一个随机位b并设置t=t
b
。现在,a在t、r和s上调用oracles execute、send和block。假设c执行带有标记t的方案的完整实例,表示为i+1会话。a记录oracle调用的所有输出,并生成猜测位b’。在所提出的方案中,标签发送和接收消息m1、m2和m7,它们由以下消息参数组成:sid、n
t
、n
r
、m
t1
和m
t2
,由于a不能将第i会话中的任何消息参数与第i+1会话中的参数相关联(通过引理2),a只能执行随机猜测。因此,p
r
[b'=b]为1/2且adv
a
攻击成功的概率趋于0。所以我们提出的方案中的标签满足不可追踪性能。
[0074]
定理4:所提出的方案可以保证向前的保密性。
[0075]
证明:在定理3的证明中,我们将其建模为博弈。挑战者c为游戏选择两个标签t0、t1、一个读卡器r和一个服务器s。对手a开始游戏,并在t0、t1、r和s上多次调用预言机execute、send和block。假设c使用每个标记执行方案的完整实例。a记录oracle调用的输出。然后,c生成一个随机位b并设置t=t
b
。此后,a调用oracles reveal(t)以获得标记t的伪标识符和密钥。最后,a输出猜测位b’。
[0076]
因为t的当前密钥是由前一个密钥的prng生成的,所以a不能通过反prng函数来获得前一个密钥。类似地,由于t的当前伪标识符是由前一伪标识符的prng生成的,因此a不能推断前一伪标识符。此外,通过引理2,a不能将t的前一个伪标识符(t0的伪标识符或t1的伪标识符)与t的当前伪标识符相关联。因此,a与随机猜测相比没有优势,这意味着该方案可以确保前向保密性。
[0077]
定理5:该方案能够抵抗模拟攻击。
[0078]
证明:对手可能会试图冒充标签、读卡器或服务器。我们讨论这三种情况如下。
[0079]
(a)标记模拟
[0080]
我们将其建模为挑战者c和对手a之间的博弈。
[0081]
(1)挑战者c选择标签t、读卡器r和服务器s,这些都是有效的。
[0082]
(2)a在t、r和s上以多项式次数调用oracle execute、send和block。
[0083]
(3)a停下来通知c。
[0084]
(4)a调用send oracle将其模拟为标记。
[0085]
(5)如果a被验证为有效标记,则a将赢得游戏。
[0086]
假设挑战者c为游戏选择了标签t、读卡器r和服务器s。a开始游戏并在t、r和s上调用oracle execute、send和block多项式次。假设c在t、r和s上执行方案实例。a记录所有oracle输出。
[0087]
要通过身份验证,必须发送有效的sid和有效的要做到这一点,a需要知道标签密钥x。然而,引理1,a无法获得x来生成有效的m
t1
。另一方面,假设a调用block oracle来阻止消息m5,这样就不会发生更新,然后通知c。此后,c在t、r和s上执行方案的新实例。为了模拟为标记,a调用send oracle将记录的sid、m
t1
和n
t
作为响应m2发送给读卡器r。然而,由于读卡器r在该方案运行中生成新n
r
,因此记录的m
t1
不能有效,除非新的n
r
恰好与旧n
r
相同,其概率可忽略不计。因此,a很难模拟为有效标记。
[0088]
(b)读者模拟
[0089]
首先,我们认为对手a试图模拟为标签的有效读卡器。在定理2的证明中,尝试被建模为博弈。为了通过标签t进行验证,a需要发送一个有效的然而,引理1不能得到x来生成有效的m
t2
。另一方面,假设a阻止m7以防止标签上的任何更新,然后通知c。此后,c在t、r和s上执行方案的新实例。为了模拟作为标签的读卡器,a向标签t发送记录的m
t2
。然而,记录的m
t2
不能有效,除非旧n
t
与新方案运行中生成的n
t
相同,这具有可忽略的概率。
[0090]
其次,我们认为a试图模仿服务器的有效读卡器,这可以被建模为一个类似于定理2证明中的游戏,只是在最后一步,对手a应该由服务器s进行身份验证。要进行身份验证,a必须向服务器发送一个有效的srid和一个有效的根据引理1,读卡器密钥y没有公开,因此a不能生成有效的m
r1
。另一方面,假设a阻止m5以防止任何更新,然后通知c。此后,c在t、r和s上执行方案的新实例。为了模拟作为读卡器到服务器,a将记录的n
r
、srid和m
r1
发送到服务器s。由于s在新方案运行中生成新的n
s
,记录的m
r1
有效的概率可以忽略不计。因此,冒充有效读者的可能性可以忽略不计。
[0091]
(c)服务器模拟
[0092]
我们将此尝试建模为一个类似于案例(a)的游戏,只是a调用send oracle来模拟有效服务器。要模拟为合法服务器,必须发送有效的然而,在不知道y(引理1)的情况下,a无法生成有效的m
r2
。另一方面,假设a阻止m6以防止读卡器和标签上的任何更新,然后通知c。此后,c在t、r和s上执行方案的新实例。为了模拟服务器,a将记录的m
r2
发送给读卡器r。因为新n
r
与旧n
r
几乎不相同,记录的m
r2
通过认证的概率可以忽略不计。因此,对手a可以以可忽略的概率模拟为有效服务器。综上所述,本实施例提出的方案能够抵抗模拟攻击。
[0093]
定理6:该方案能保证抗同步攻击。
[0094]
证明:在该方案中,服务器在接收到消息m5并进行验证后更新索引数据表。如果消息m8被阻止,则读卡器不会更新其伪标识符srid和密钥y。由于srid和y存储在旧字段中,因此服务器可以基于它们与读卡器同步。假设有一个新会话,并且m6再次被阻止。在此会话中,由于服务器在旧索引字段中找到收到的srid,因此,旧值不会更新。因此,服务器仍然可以与读卡器同步。类似地,如果m6(或m7)被阻塞,则服务器和标记可以在它们之间保持同步。另一方面,正如定理5的证明中所讨论的,对手不能伪造有效的m
t1
和m
r1
来迫使服务器更新索引数据表。因此,该方案能够抵抗去同步攻击。
[0095]
定理7:该方案具有可扩展性。
[0096]
证明:根据burmester等人的研究,如果服务器仅仅根据接收到的数据就可以找到标签的记录,那么时间开销是恒定的。如果需要验证某个搜索操作,则每个搜索操作都需要一个测试标记来记录。该方案利用标签伪标识符作为标签索引数据表的索引,使得服务器只需根据接收到的sid就可以找到标签的记录。类似地,通过接收到的srid,服务器可以找到读卡器的记录。因此,该方案不需要穷举搜索操作。因此,该方案具有良好的可扩展性和抗时间度量攻击的能力。
[0097]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1