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

文档序号:19835673发布日期:2020-02-04 12:59阅读:来源:国知局

技术特征:

1.一种基于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,完成密钥交换过程,实现了所述服务器端和设备端之间的安全认证并建立了新的会话密钥。

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