一种基于SRAM型存储器的物理不可克隆函数响应纠错电路的制作方法

文档序号:12375567阅读:257来源:国知局
一种基于SRAM型存储器的物理不可克隆函数响应纠错电路的制作方法与工艺

本发明涉及一种基于SRAM型存储器的物理不可克隆函数响应纠错电路,属于信息安全技术领域。



背景技术:

物理不可克隆函数PUF是指一种可以依靠制造过程中的差异性来产生其特有输出的物理实体。对PUF结构输入的激励C和产生的响应R被称为激励-响应对CRP。一些情况下,PUF结构被认为是匹配激励响应的映射函数。对于同一个PUF结构,输入多次相同的激励会产生不同的响应,响应的差异是由于一些不规则的噪声、测量误差和周围环境如温度、电压等的变化引起的,而响应之间的差异称为片内汉明距离。为了使同一个PUF结构的响应具有可再现的特性,片内汉明距离当然是越小越好。但两个不同PUF结构的响应差异越大,就越容易区分两者。由于制造不出两块产生相同的激励响应对的PUF结构,因此,PUF是不可克隆的。

SRAM PUF(静态随机存取存储器物理不可克隆函数)电路是利用数字信号锁存结构在集成电路制造过程中存在的工艺偏差来产生物理不可克隆函数关系的电路。SRAM PUF电路的函数关系容易受到供电电压、温度以及老化等因素的影响,输出值并不稳定,因此在使用前必须经过纠错处理,使同一片PUF产生的有差异的响应通过函数能得到稳定的映射值。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种基于SRAM型存储器的物理不可克隆函数响应纠错电路,克服SRAM PUF响应的不稳定性,将不稳定的SRAM PUF响应输出转换为稳定的密钥和位置码之间的映射关系,从而实现硬件身份认证,认证过程简单可靠,高效稳定,降低硬件成本。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种基于SRAM型存储器的物理不可克隆函数响应纠错电路,包括控制模块、编码模块及解码模块;

其中,所述编码模块用于将物理不可克隆函数的响应结合由随机数组成的密钥序列通过编码规则映射成唯一对应的位置码序列;

所述解码模块用于将物理不可克隆函数的响应结合原有的位置码序列通过相应的解码规则反映射还原出对应的密钥序列;

所述控制模块用于实现编码和解码这两种状态之间的转换、时序和地址的生成、各模块电路之间的线路控制和计算编码前密钥和解码后密钥之间的相似度的功能。

优选的,所述控制模块包括控制电路、编码-解码转换器、时钟产生电路、地址生成电路及数据串组合电路;

其中,所述编码-解码转换器用于切换编码和解码这两种工作状态,时钟产生电路用于生成时钟触发信号,地址生成电路用于生成每个存储器的读写地址,数据串组合电路用于将数据串形式的密钥拆成单个二进制码或将二进制码形式的密钥重新组合成数据串形式。

所述编码模块包括汉明纠错算法电路、求最大偏差值电路、位置码存储器、密钥生成电路、纠错码存储器及SRAM PUF-1响应提取电路;

所述解码模块包括汉明纠错算法电路、数值极性判断电路、位置码存储器、纠错码存储器及SRAM PUF-2响应提取电路;

其中,所述汉明纠错算法电路包括编码和解码两种模式,其中编码模式下,当输入一个数据串时,汉明纠错算法电路将输出该数据串及对应的检验码;解码模式下,当输入一个数据串和对应的检验码时,汉明纠错算法电路将输出该数据串经过纠错后得到的数据串。

(一)具体的编码过程如下:

(1)编码初始复位:当收到外部的编码指令时,控制电路向编码-解码转换器发出编码请求,编码-解码转换器随后发出复位信号,使编码电路复位;同时,编码-解码转换器向SRAM PUF-1响应提取电路发出响应提取信号;

(2)SRAM PUF-1响应提取:SRAM PUF-1响应提取电路收到信号后开始提取第一个SRAM型存储器物理不可克隆函数的响应SRAM PUF-1,并通过数据串组合电路把该响应SRAM PUF-1以8位二进制补码的形式导出若干个响应数值,导出的响应数值存储在数据库中并发送给求最大偏差值电路,存储完毕后发送编码准备完毕信号给编码-解码转换器;

(3)开始编码:编码-解码转换器收到反馈信号后,向密钥生成电路发出生成密钥信号,并通过时钟产生电路触发汉明纠错算法电路的编码模式,使汉明纠错算法电路工作在编码状态;

(4)生成密钥序列:密钥生成电路收到信号后生成由随机数组成的密钥序列,同时将该密钥序列存储在数据库中并发送给汉明纠错算法电路;

(5)产生纠错码:编码状态的汉明纠错算法电路收到作为密钥序列的数据串后生成该数据串对应的纠错码并存储在纠错码存储器中,同时通过数据串组合电路将该密钥序列转换成二进制码的形式发送给求最大偏差值电路;

(6)生成位置码:包括以下步骤:

(61)求最大偏差值电路接收到SRAM PUF-1响应提取电路发出的若干个SRAMPUF-1响应数值后,将这些SRAMPUF-1响应数值按照每组N个的形式进行分组,每组中的SRAMPUF-1响应数值对应的位置序号依次为0,1,2…N-1;

(62)计算出每一组的平均响应数值,保存在数据库中并定义大于该组平均响应数值为正,小于该组平均响应数值为负;

(63)密钥序列中每一比特位对应一个响应数值组,若该响应数值组对应的比特位为1,则找出该组中数值与平均响应数值正向偏差最大的响应,同时将该响应在该组中的位置序号保存;若该响应数值组对应的比特位为0,则找出该组中数值与平均响应数值负向偏差最大的响应,同时将该响应在组中的位置序号保存;这些位置序号通过数据串组合电路顺序排列组成位置码存储到位置码存储器中;

(64)密钥序列中每一比特位对应N*8比特位的SRAM PUF-1响应,这种时序对应关系由时钟产生电路控制;

(7)编码完成:当所有的SRAM PUF-1响应都编码完成后,求最大偏差值电路向控制电路发出编码完成信号,编码结束。

(二)具体的解码过程如下:

(A)解码初始复位:当收到外部的解码命令时,控制电路向编码-解码转换器发出解码请求,编码-解码转换器随后发出复位信号,使解码电路复位;同时,编码-解码转换器向SRAM PUF-2响应提取电路发出响应提取信号;

(B)SRAM PUF-2响应提取:SRAM PUF-2响应提取电路收到信号后开始提取第二个SRAM型存储器物理不可克隆函数的响应SRAM PUF-2,并通过数据串组合电路把该响应SRAM PUF-2以8位二进制补码的形式导出若干个响应数值,导出的响应数值存储在数据库中并发送给数值极性判断电路,存储完毕后发送响应提取完成信号给编码-解码转换器;

(C)开始解码:编码-解码转换器收到SRAM PUF-2响应提取电路的反馈信息后,向数值极性判断电路发送解码开始信号,并通过时钟产生电路触发汉明纠错算法电路的解码模式,使汉明纠错算法电路工作在解码状态;

(D)生成密钥序列:包括以下步骤:

(D1)数值极性判断电路收到解码开始信号后,将从SRAM PUF-2响应提取电路得到的若干个SRAMPUF-2响应数值同样按照每组N个的形式进行分组,每组中的SRAMPUF-2响应数值对应的位置序号依次为0,1,2…N-1;

(D2)计算出每一组的平均响应数值,保存在数据库中并定义大于该组平均响应数值为正,小于该组平均响应数值为负;

(D3)从位置码存储器中读取位置码,位置码中每一个位置序号对应一个响应数值组,找出该组中其位置序号所对应的SRAM PUF-2响应数值,若该响应数值为正,则对应的密钥值为1,否则,对应的密钥值为0;位置码中每一个位置序号对应N*8比特位的SRAM PUF-2响应,这种时序对应关系由时钟产生电路控制;

(D4)将这些密钥值通过数据串组合电路转换成数据串形式的密钥序列存储到数据库中并发送给汉明纠错算法电路;

(E)密钥序列纠错:收到该密钥序列后,汉明纠错算法电路同时从纠错码存储器中读取相应的纠错码,得到纠错后的密钥序列,存储后发送到控制电路;

(F)相似度计算:控制电路对纠错后的密钥序列及编码中生成的密钥序列进行相似度计算,若两者的相似度高于设定值,说明产生SRAMPUF-1响应的硬件和产生SRAM PUF-2响应的硬件是同一块硬件;否则,说明两者是两块不同的硬件;

(G)解码完成判断:当完成SRAMPUF-1响应与SRAM PUF-2响应的对比后,控制电路向外部输出判断的结果,解码结束。

优选的,编码过程中,密钥生成电路生成的密钥序列按照每组S个的形式进行分组后再通过汉明纠错算法电路来产生纠错码;对应地,解码过程中,数值极性判断电路生成的密钥序列按照每组S个的形式进行分组后再通过汉明纠错算法电路来纠错。

一般SRAM PUF有大量的响应数据,而使用带纠错码的汉明纠错方法时,由于纠错能力有限,不能一次将所有的密钥序列纠错,因此对密钥序列分组纠错能有效提高汉明纠错算法电路的纠错效率。

进一步的,编码过程中,求最大偏差值电路(103)生成的位置码为K比特位,对应地,解码过程中,数值极性判断电路(104)读取的位置码为K比特位,且满足N<2K。

有益效果:本发明提供的一种基于SRAM型存储器的物理不可克隆函数响应纠错电路,相对于现有技术,具有以下效果:本发明克服了SRAM PUF响应的不稳定性,将不稳定的SRAMPUF响应输出转换为稳定的密钥和位置码之间的映射关系,从而实现了硬件身份的认证,提高了身份认证的安全性,简化了认证过程,提高了认证效率,降低了硬件成本。

附图说明

图1为本发明一种基于SRAM型存储器的物理不可克隆函数响应纠错电路的总体结构原理框图;

图2为本发明控制模块电路的结构原理框图;

图3为本发明在编码阶段的流程图;

图4为本发明在解码阶段的流程图;

图中包括:汉明纠错算法电路101,纠错码存储器102,求最大偏差值电路103,数值极性判断电路104,位置码存储器105,密钥生成电路106,SRAM PUF-1响应提取电路107,SRAM PUF-2响应提取电路108,控制电路201,编码-解码转换器202,时钟产生电路203,地址生成电路204,数据串组合电路205。

具体实施方式

下面结合附图对本发明作更进一步的说明。

如图1所示为一种基于SRAM型存储器的物理不可克隆函数响应纠错电路,包括控制模块、编码模块及解码模块;

其中,所述编码模块用于将物理不可克隆函数的响应结合由随机数组成的密钥序列通过编码规则映射成唯一对应的位置码序列;

所述解码模块用于将物理不可克隆函数的响应结合原有的位置码序列通过相应的解码规则反映射还原出对应的密钥序列;

所述控制模块用于实现编码和解码这两种状态之间的转换、时序和地址的生成、各模块电路之间的线路控制和计算编码前密钥和解码后密钥之间的相似度的功能。

如图2所示,所述控制模块包括控制电路201、编码-解码转换器202、时钟产生电路203、地址生成电路204及数据串组合电路205;

所述编码模块包括汉明纠错算法电路101、求最大偏差值电路103、位置码存储器105、密钥生成电路106、纠错码存储器102及SRAM PUF-1响应提取电路107;

所述解码模块包括汉明纠错算法电路101、数值极性判断电路104、位置码存储器105、纠错码存储器102及SRAM PUF-2响应提取电路108;

如图3所示,具体的编码过程如下:

(1)编码初始复位:当收到外部的编码指令时,控制电路201向编码-解码转换器202发出编码请求,编码-解码转换器202随后发出复位信号,使编码电路复位;同时,编码-解码转换器202向SRAM PUF-1响应提取电路107发出响应提取信号;

(2)SRAM PUF-1响应提取:SRAM PUF-1响应提取电路107收到信号后开始提取第一个SRAM型存储器物理不可克隆函数的响应SRAM PUF-1,并通过数据串组合电路205把该响应SRAM PUF-1以8位二进制补码的形式导出若干个响应数值,导出的响应数值存储在数据库中并发送给求最大偏差值电路103,存储完毕后发送编码准备完毕信号给编码-解码转换器202;

(3)开始编码:编码-解码转换器202接受到反馈信号后,向密钥生成电路106发出生成密钥信号,并通过时钟产生电路203触发汉明纠错算法电路101的编码模式,使汉明纠错算法电路101工作在编码状态;

(4)生成密钥序列:密钥生成电路106收到信号后生成由随机数组成的密钥序列,同时将该密钥序列按照每组7个的形式进行分组后存储在数据库中并发送给汉明纠错算法电路101;

(5)产生纠错码:编码状态的汉明纠错算法电路101收到作为密钥序列的数据串后生成该数据串对应的纠错码并存储在纠错码存储器102中,同时通过数据串组合电路205将该密钥序列转换成二进制码的形式发送给求最大偏差值电路103;

(6)生成位置码:包括以下步骤:

(61)求最大偏差值电路103接收到SRAM PUF-1响应提取电路107发出的若干个SRAMPUF-1响应数值后,将这些SRAMPUF-1响应数值按照每组8个的形式进行分组,每组中的SRAMPUF-1响应数值对应的位置序号依次为0,1,2…7;

(62)计算出每一组的平均响应数值,保存在数据库中并定义大于该组平均响应数值为正,小于该组平均响应数值为负;

(63)密钥序列中每一比特位对应一个响应数值组,若该响应数值组对应的比特位为1,则找出该组中数值与平均响应数值正向偏差最大的响应,同时将该响应在该组中的位置序号保存;若该响应数值组对应的比特位为0,则找出该组中数值与平均响应数值负向偏差最大的响应,同时将该响应在组中的位置序号保存;这些位置序号通过数据串组合电路205按顺序排列组成位置码存储到位置码存储器105中;

(64)密钥序列中每一比特位对应8*8比特位的SRAM PUF-1响应,这种时序对应关系由时钟产生电路203控制;

(7)编码完成:当所有的SRAM PUF-1响应都编码完成后,求最大偏差值电路103向控制电路201发出编码完成信号,编码结束。

如图4所示,具体的解码过程如下:

(A)解码初始复位:当收到外部的解码命令时,控制电路201向编码-解码转换器202发出解码请求,编码-解码转换器202随后发出复位信号,使解码电路复位;同时,编码-解码转换器202向SRAM PUF-2响应提取电路108发出响应提取信号;

(B)SRAM PUF-2响应提取:SRAM PUF-2响应提取电路108收到信号后开始提取第二个SRAM型存储器物理不可克隆函数的响应SRAM PUF-2,并通过数据串组合电路205把该响应SRAM PUF-2以8位二进制补码的形式导出若干个响应数值,导出的响应数值存储在数据库中并发送给数值极性判断电路104,存储完毕后发送响应提取完成信号给编码-解码转换器202;

(C)开始解码:编码-解码转换器202收到SRAM PUF-2响应提取电路108的反馈信息后,向数值极性判断电路104发送解码开始信号,并通过时钟产生电路203触发汉明纠错算法电路101的解码模式,使汉明纠错算法电路101工作在解码状态;

(D)生成密钥序列:包括以下步骤:

(D1)数值极性判断电路104收到解码开始信号后,将从SRAM PUF-2响应提取电路108得到的若干个SRAMPUF-2响应数值同样按照每组8个的形式进行分组,每组中的SRAMPUF-2响应数值对应的位置序号依次为0,1,2…7;

(D2)计算出每一组的平均响应数值,保存在数据库中并定义大于该组平均响应数值为正,小于该组平均响应数值为负;

(D3)从位置码存储器105中读取位置码,位置码中每一个位置序号对应一个响应数值组,找出该组中其位置序号所对应的SRAM PUF-2响应数值,若该响应数值为正,则对应的密钥值为1,否则,对应的密钥值为0;位置码中每一个位置序号对应8*8比特位的SRAM PUF-1响应,这种时序对应关系由时钟产生电路203控制;

(D4)将这些密钥值通过数据串组合电路205转换成数据串形式的密钥序列,将得到的密钥序列按照每组S个的形式进行分组后存储到数据库中并发送给汉明纠错算法电路101;

(E)密钥序列纠错:收到该密钥序列后,汉明纠错算法电路101同时从纠错码存储器102中读取相应的纠错码,得到纠错后的密钥序列,存储后发送到控制电路201;

(F)相似度计算:控制电路201对纠错后的密钥序列及编码中生成的密钥序列进行相似度计算,若两者的相似度高于设定值,说明产生SRAMPUF-1响应的硬件和产生SRAM PUF-2响应的硬件是同一块硬件;否则,说明两者是两块不同的硬件;

(G)解码完成判断:当完成SRAMPUF-1响应与SRAM PUF-2响应的对比后,控制电路201向外部输出判断的结果,解码结束。

如图3、4所示,在编码和解码阶段中一共有两次纠错过程,第一次发生在求最大偏差值和极性判断的函数映射过程中,此过程中,既利用了不可克隆的响应数值映射出了位置码并且反映射重新得到密钥,又避免了大量的单个不稳定PUF响应;第二次发生在密钥两次通过汉明纠错算法模块的过程中,解码时利用编码生成的纠错码可以将第一次纠错过程中没有纠错成功的数据位再次纠正。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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