基于BST-PUF的两方认证与会话密钥交换方法与流程

文档序号:19835673发布日期:2020-02-04 12:59阅读:401来源:国知局
基于BST-PUF的两方认证与会话密钥交换方法与流程

本发明涉及通信技术与信息安全领域,具体涉及一种基于bst-puf的两方认证与会话密钥交换方法。



背景技术:

在不安全的网络尤其是无线网络中进行通讯时,需要对传输的信息进行加密,通讯双方就需要协商建立一个公共的会话密钥,以便于后续的数据交换过程中用来加密消息。传统的通讯依赖于公开加密算法及存储在非易失性存储器(nvm)中的密钥进行安全会话,但现在出现了很多新型的物理攻击技术,试图避开加密算法本身来直接获取密钥,存储在nvm中的密钥已不再安全。

因此,采用物理不可克隆电路(puf)来产生和存储密钥成为了一个新的发展趋势,puf是一组微型的电路,通过提取半导体器件制造过程中不可避免产生的物理构造差异值,生成无限多个、特有的密钥,这些密钥不可预测,puf上电的时候,密钥存在,掉电的时候,密钥消失,即使时芯片制造商也无法仿制,从而这些密钥可以广泛地应用于安全通信和各种防伪。

为了将puf产生的密钥与其他通信实体共享以实现安全认证、数据加密等功能,需要在可信实体之间建立可靠的共享密钥,这就涉及到密钥交换问题。puf输出受到环境因素的影响,不可避免会存在噪声数据,现有的密钥交换方法中普遍采用各种纠错机制来从puf的噪声数据中提取稳定的密钥。但是纠错过程需要很大的执行开销,且纠错技术需要产生一种公开的辅助信息helperdata来恢复原始密钥,这会泄露密钥的部分信息,因此并不安全。

为此,现在提出了一种比特自测puf电路结构(bst-puf),在bst-puf中,如图3所示,通过在puf内部添加一个测试电路,自动测试每个输出的可靠性,一旦输入一个激励信息,puf就可以输出一个响应和标识该响应的可靠性标识。因此,bst-puf电路可以生成大量的激励-响应-可靠性比特对,外部电路据此可以挑选那些可靠的输出位来构建数字密钥,但该bst-puf电路还没有被应用在密钥交换领域。



技术实现要素:

本发明的目的就是针对上述技术的不足,提供一种基于bst-puf的两方认证与会话密钥交换方法,利用bst-puf电路来实现密钥产生与交换,不需要使用纠错机制就可以获取稳定的密钥,实现了双向认证和可靠的密钥交换,且能够抵抗各种攻击技术。

为实现上述目的,本发明所设计的基于bst-puf的两方认证与会话密钥交换方法,包括设备端和服务器端,所述设备端包括非易失性存储器模块,还包括:

bst-puf模块:输入一个长度为l比特的激励信息,l为正整数,输出一个l比特的puf响应值和一个l比特的可靠性标识值,其中,可靠性标识值中的第i比特值标识了对应响应中第i比特输出的可靠性,当可靠性标识值为1时,证明输出是可靠的,否则是不可靠的;

密钥提取模块:以所述bst-puf模块输出的l比特的带噪声bst-puf响应和可靠性标识值为输入,输出m位的可靠密钥,m为小于l的正整数;

异或加密模块:实现异或功能;

设备真随机数产生器:产生l位的真随机数;

设备第一伪随机函数模块:以l位密钥和l位信息为输入,产生长度为l位的伪随机数;

设备第二伪随机函数模块:以l位密钥和l位信息为输入,产生长度为5个l位的伪随机数;

控制器模块:产生控制信号,控制所述设备端内部的各模块工作;

所述服务器端包括:

数据库模块:存储id、密钥信息;

异或加密模块:实现异或功能;

服务器真随机数产生器:产生l位的真随机数;

服务器第一伪随机函数模块:与所述设备第一伪随机函数模块相同,以l位密钥和l位信息为输入,产生长度为l位的伪随机数;

服务器第二伪随机函数模块:与所述设备第二伪随机函数模块相同,以l位密钥和l位信息为输入,产生长度为5个l位的伪随机数;

所述两方认证与会话密钥交换方法包括注册阶段和密钥交换阶段,所述注册阶段包括如下步骤:

a)所述服务器真随机数产生器随机产生一个l比特的激励信息ci,并将该激励信息ci发送至所述设备端;

b)所述设备端通过所述bst-puf模块,以激励信息ci为输入,获取l比特的puf响应值ri和l比特的可靠性标识rbi,并返回给所述服务器端;

c)所述服务器端重复所述步骤a)~b)若干次,取得集合(c,rb,r)存储在所述数据库模块中,其中,c为激励信息,rb为可靠性标识,r为puf响应值;

d)所述服务器端从集合(c,rb,r)中随机挑选一个数据对(c1,rb1,r1),将激励信息c1发送至所述设备端,所述设备端通过所述bst-puf模块,以激励信息c1为输入,获取l比特的puf响应值r1和l比特的可靠性标识rb1,并通过所述密钥提取模块,取得可靠密钥k,将所述可靠密钥k和所述设备端的id值idi发送给所述服务器端,设定初始共享密钥k1=kold=k,kold为初始密钥;

e)所述服务器端通过所述数据库模块存储所述设备端的id值idi、初始共享密钥k1、初始密钥kold及集合(c,rb,r):{idi,k1,kold,(c,rb,r)},所述设备端通过所述非易失性存储器模块存储所述设备端的id值idi、激励信息c1和可靠性标识rb1:{idi,c1,rb1},完成所述服务器端对所述设备端的注册;

所述密钥交换阶段包括如下步骤:

1)所述服务器端通过所述服务器真随机产生器产生一个随机数m1并发送至所述设备端;

2)所述设备端接收到随机数m1后,由所述设备真随机数产生器产生一个随机数m2;

3)所述设备端读取存储在所述非易失性存储器模块内的激励信息c1,并输入至所述bst-puf模块,获取带有噪声的puf响应值r′1;

4)通过所述密钥提取模块,以带有噪声的puf响应值r′1和存储在所述非易失性存储器模块内的可靠性标识rb1为输入,提取出初始共享密钥k1;

5)所述设备端以初始共享密钥k1、m1||m2为输入,通过所述设备第二伪随机函数模块产生5个伪随机数s1,...,s5,每个伪随机数的长度均为l;

6)所述设备端通过不安全的通信信道将所述设备端的id值idi、伪随机数s1、随机数m2发送至所述服务器端;

7)所述服务器端收到所述设备端的id值idi、伪随机数s1、随机数m2后,在所述数据库模块中查找与idi对应的初始共享密钥k1和初始密钥kold;

8)所述服务器端以初始共享密钥k1、m1||m2为输入,通过所述服务器第二伪随机函数模块产生5个伪随机数s′1,...,s′5,若所述设备端是可信的,则伪随机数s′1,...,s′5和伪随机数s1,...,s5相同;

9)所述服务器端首先验证伪随机数s′1和伪随机数s1是否相等,若相等,则所述服务器端通过对所述设备端的认证,跳转至步骤12);

10)若伪随机数s′1和伪随机数s1不相等,则所述服务器端使用初始密钥kold替代初始共享密钥k1再次通过所述服务器第二伪随机函数模块产生5个伪随机数s′1,...,s′5;

11)所述服务器端验证所述伪随机数s′1和随机数s1是否相等,若相等,则所述服务器端通过对所述设备端的认证,跳转至步骤12),否则,认证失败,所述服务器端返回若干个所述服务器真随机数产生器产生的真随机数至所述设备端,并结束本次密钥交换过程;

12)所述服务器端从所述数据库模块中的集合(c,rb,r)中随机挑选一个数据对(c2,rb2,r2),将激励信息c2发送至所述设备端,所述设备端通过所述bst-puf模块,以激励信息c2为输入,获取l比特的puf响应值r2和l比特的可靠性标识rb2,并通过所述密钥提取模块,取得可靠密钥k2,将所述可靠密钥k2发送给所述服务器端;

13)所述服务器端对密钥进行更新,使k1=k2,kold=k1,同时将数据对(c2,rb2,r2)从集合(c,rb,r)中删除;

14)所述服务器端利用异或加密模块,将伪随机数s′2与激励信息c2异或加密得到u,将伪随机数s′3与可靠性标识rb2异或加密得到v;

15)通过所述服务器第一伪随机函数模块,输入伪随机数s′4和m1||u||v,取得消息认证码w,并将信息(s′5,u,v,w)通过不安全的通信信道发送至所述设备端;

16)所述设备端接收信息(s′5,u,v,w)后,验证s5是否等于s′5,若相等,则完成对所述服务器端的认证,跳转到下一步,若不相等,则认证失败,结束本次密钥交换过程;

17)通过所述设备第一伪随机函数模块,输入伪随机数s4和m1||u||v,取得消息验证码w′,若w=w′,跳转到下一步,否则结束本次密钥交换过程;

18)所述设备端通过所述异或加密模块对信息进行解密,将u和伪随机数s2异或到激励信息c2,将v和伪随机数s3异或到可靠性标识rb2;

19)所述设备端将所述非易失性存储器模块中存储的激励信息c1和可靠性标识rb1更新为激励信息c2和可靠性标识rb2,完成密钥交换过程,实现了所述服务器端和设备端之间的安全认证并建立了新的会话密钥。

本发明与现有技术相比,具有以下优点:

1、利用bst-puf电路来实现密钥产生与交换,不需要使用纠错机制就可以获取稳定的密钥;

2、使用伪随机函数和异或运算来进行双向认证和异或加密,代替了传统的哈希散列函数和对称加密算法,安全性更高;

3、实现了双向认证和可靠的密钥交换,能够抵抗窃听攻击、篡改攻击、中间人攻击、dos攻击、建模攻击、物理探测攻击等各种攻击技术。

附图说明

图1为本发明基于bst-puf的两方认证与会话密钥交换方法中设备端和服务器端的结构示意图;

图2为可靠密钥提取过程示意图;

图3为bst-puf的原理示意图。

图中各部件标号如下:

设备端1、服务器端2、非易失性存储器模块3、bst-puf模块4、密钥提取模块5、异或加密模块6、设备真随机数产生器7、设备第一伪随机函数模块8、设备第二伪随机函数模块9、控制器模块10、数据库模块11、服务器真随机数产生器12、服务器第一伪随机函数模块13、服务器第二伪随机函数模块14。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细说明。

如图1所示,本发明基于bst-puf的两方认证与会话密钥交换方法,包括设备端1和服务器端2,设备端1包括非易失性存储器模块3,还包括:

bst-puf模块4:输入一个长度为l比特的激励信息,l为正整数,输出一个l比特的puf响应值和一个l比特的可靠性标识值,其中,可靠性标识值中的第i比特值标识了对应响应中第i比特输出的可靠性,当可靠性标识值为1时,证明输出是可靠的,否则是不可靠的;

密钥提取模块5:以bst-puf模块4输出的l比特的带噪声bst-puf响应和可靠性标识值为输入,输出m位的可靠密钥,m为小于l的正整数,如图2所示,提取可靠性标识值为1的bst-puf响应,丢弃可靠性标识值为0的bst-puf响应,经哈希运算后构建密钥;

异或加密模块6:实现异或功能;

设备真随机数产生器7:产生l位的真随机数;

设备第一伪随机函数模块8:以l位密钥和l位信息为输入,产生长度为l位的伪随机数;

设备第二伪随机函数模块9:以l位密钥和l位信息为输入,产生长度为5个l位的伪随机数;

控制器模块10:产生控制信号,控制设备端1内部的各模块工作;

服务器端2包括:

数据库模块11:存储id、密钥信息;

异或加密模块6:实现异或功能;

服务器真随机数产生器12:产生l位的真随机数;

服务器第一伪随机函数模块13:与设备第一伪随机函数模块8相同,以l位密钥和l位信息为输入,产生长度为l位的伪随机数;

服务器第二伪随机函数模块14:与设备第二伪随机函数模块9相同,以l位密钥和l位信息为输入,产生长度为5个l位的伪随机数;

本发明基于bst-puf的两方认证与会话密钥交换方法包括注册阶段和密钥交换阶段,注册阶段包括如下步骤:

a)服务器真随机数产生器12随机产生一个l比特的激励信息ci,并将该激励信息ci发送至设备端1;

b)设备端1通过bst-puf模块4,以激励信息ci为输入,获取l比特的puf响应值ri和l比特的可靠性标识rbi,并返回给服务器端2;

c)服务器端2重复步骤a)~b)若干次,取得集合(c,rb,r)存储在数据库模块11中,其中,c为激励信息,rb为可靠性标识,r为puf响应值;

d)服务器端2从集合(c,rb,r)中随机挑选一个数据对(c1,rb1,r1),将激励信息c1发送至设备端1,设备端1通过bst-puf模块4,以激励信息c1为输入,获取l比特的puf响应值r1和l比特的可靠性标识rb1,并通过密钥提取模块5,取得可靠密钥k,将可靠密钥k和设备端1的id值idi发送给服务器端2,设定初始共享密钥k1=kold=k,kold为初始密钥;

e)服务器端2通过数据库模块11存储设备端1的id值idi、初始共享密钥k1、初始密钥kold及集合(c,rb,r):{idi,k1,kold,(c,rb,r)},设备端1通过非易失性存储器模块3存储设备端1的id值idi、激励信息c1和可靠性标识rb1:{idi,c1,rb1},完成服务器端2对设备端1的注册;

密钥交换阶段包括如下步骤:

1)服务器端2通过服务器真随机产生器12产生一个随机数m1并发送至设备端1;

2)设备端1接收到随机数m1后,由设备真随机数产生器7产生一个随机数m2;

3)设备端1读取存储在非易失性存储器模块3内的激励信息c1,并输入至bst-puf模块4,获取带有噪声的puf响应值r′1;

4)通过密钥提取模块5,以带有噪声的puf响应值r′1和存储在非易失性存储器模块3内的可靠性标识rb1为输入,提取出初始共享密钥k1;

5)设备端1以初始共享密钥k1、m1||m2为输入,通过设备第二伪随机函数模块9产生5个伪随机数s1,...,s5,每个伪随机数的长度均为l;

6)设备端1通过不安全的通信信道将设备端1的id值idi、伪随机数s1、随机数m2发送至服务器端2;

7)服务器端2收到设备端1的id值idi、伪随机数s1、随机数m2后,在数据库模块11中查找与idi对应的初始共享密钥k1和初始密钥kold;

8)服务器端2以初始共享密钥k1、m1||m2为输入,通过服务器第二伪随机函数模块14产生5个伪随机数s′1,...,s′5,若设备端1是可信的,则伪随机数s′1,...,s′5和伪随机数s1,...,s5相同;

9)服务器端2首先验证伪随机数s′1和伪随机数s1是否相等,若相等,则服务器端2通过对设备端1的认证,跳转至步骤12);

10)若伪随机数s′1和伪随机数s1不相等,则服务器端2使用初始密钥kold替代初始共享密钥k1再次通过服务器第二伪随机函数模块14产生5个伪随机数s′1,...,s′5;

11)服务器端2验证伪随机数s′1和随机数s1是否相等,若相等,则服务器端2通过对设备端1的认证,跳转至步骤12),否则,认证失败,服务器端2返回若干个服务器真随机数产生器12产生的真随机数至设备端1,并结束本次密钥交换过程;

12)服务器端2从数据库模块11中的集合(c,rb,r)中随机挑选一个数据对(c2,rb2,r2),将激励信息c2发送至设备端1,设备端1通过bst-puf模块4,以激励信息c2为输入,获取l比特的puf响应值r2和l比特的可靠性标识rb2,并通过密钥提取模块5,取得可靠密钥k2,将可靠密钥k2发送给服务器端2;

13)服务器端2对密钥进行更新,使k1=k2,kold=k1,同时将数据对(c2,rb2,r2)从集合(c,rb,r)中删除;

14)服务器端2利用异或加密模块,将伪随机数s′2与激励信息c2异或加密得到u,将伪随机数s′3与可靠性标识rb2异或加密得到v;

15)通过服务器第一伪随机函数模块13,输入伪随机数s′4和m1||u||v,取得消息认证码w,并将信息(s′5,u,v,w)通过不安全的通信信道发送至设备端1;

16)设备端1接收信息(s′5,u,v,w)后,验证s5是否等于s′5,若相等,则完成对服务器端的认证,跳转到下一步,若不相等,则认证失败,结束本次密钥交换过程;

17)通过设备第一伪随机函数模块8,输入伪随机数s4和m1||u||v,取得消息验证码w′,若w=w′,跳转到下一步,否则结束本次密钥交换过程;

18)设备端1通过异或加密模块6对信息进行解密,将u和伪随机数s2异或到激励信息c2,将v和伪随机数s3异或到可靠性标识rb2;

19)设备端1将非易失性存储器模块3中存储的激励信息c1和可靠性标识rb1更新为激励信息c2和可靠性标识rb2,完成密钥交换过程,实现了服务器端2和设备端1之间的安全认证并建立了新的会话密钥。

本发明基于bst-puf的两方认证与会话密钥交换方法,利用bst-puf电路来实现密钥产生与交换,不需要使用纠错机制就可以获取稳定的密钥,使用伪随机函数和异或运算来进行双向认证和异或加密,代替了传统的哈希散列函数和对称加密算法,安全性更高,实现了双向认证和可靠的密钥交换,能够抵抗窃听攻击、篡改攻击、中间人攻击、dos攻击、建模攻击、物理探测攻击等各种攻击技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1