一种基于忆阻器的强PUF电路的制作方法

文档序号:17158025发布日期:2019-03-20 00:15阅读:337来源:国知局
本发明属于信息安全
技术领域
:,具体涉及一种基于忆阻器的强物理不克隆函数(physicallyunclonablefunction,puf)电路。
背景技术
::随着电子技术的飞速发展,物联网技术的兴起,人们的生活越来越离不开电子产品的同时,也不得不面对一个日益严峻的问题,即硬件的安全认证和保密问题,特别是在私人和军事领域。物理不克隆函数(physicallyunclonablefunction,puf)与传统的密码认证方式相比,它不需要保存密码,而是通过电路器件在制作工艺中的波动和差异等物理特征形成激励响应对(challengeandresponsepairs,crps),每一个输入即激励(challenge)通过一个puf后根据其特有的物理特性输出响应(response),具有优越的安全性,因此在数字认证和保密领域有广泛应用前景。根据激励响应对的数量可分为弱puf和强puf,弱puf只有少量的crps,而强puf有充足的crps,和其电路面积成指数关系,强puf对crp的访问没有限制,制造商会在硬件完成制造后选择特定的crps用于后续应用。与弱puf相比,强puf广泛用于认证电路。同时强puf由于其指数关系的crps,每个crp可以一次性使用,从而避免少量crp泄露导致秘钥被破解。目前的强puf主要由cmos电路构成,例如仲裁器puf是一种cmos的强puf,它通过比较两条结构类似的子路的延时来产生随机响应,不同的激励决定了构成两条子路的元器件不同,但是该类型puf安全性较差,为了提高其安全性和响应位数,仲裁器puf可扩展为:sram和仲裁器的混合电路、轻量型puf等。其他种类的cmos强puf还有环形振荡器puf、双稳态环形(bistablering)puf。但是基于cmos的puf电路,往往具有随机性较差、面积效率低、无法抵御机器学习的攻击等缺点。puf的性能往往和选取的熵源有关,基于新型忆阻器的存储器,例如阻变存储器、磁性存储器、铁电存储器、相变存储器等,在外电场或磁场强度达到一定阈值时,器件的阻值会在高阻和低阻之间变换。由于其天然的阈值随机性和高低阻值的分散性,新型忆阻器存储器可以作为良好的puf熵源。它们具有操作电压低、结构简单、存储密度高、功率耗费小、读写速度快等特点。使用新型忆阻器存储器件制作puf不仅可以提高其熵源的随机性还能提高安全性。美国专利us8938069b2提出了一种基于晶体管阈值电压波动的强puf结构,该方案通过比较两个相同结构电路产生的输出电压的大小来获得一位输出。该方案存在的缺陷是,当需要获得大量crps时,需要数量众多的cmos管串联,因此需要很高的供电电压,在实际应用中无法实现。中国专利cn105760786提出了一种cpu+fpga的强puf系统,通过将激励信号转化为配置信息发送给cpu,再以部分可重构的方式在fpga上对物理不克隆函数电路进行配置,最后将产生的响应返回给认证端以完成认证,如图1。该方案虽然安全性较高,但是成本高昂、电路复杂,距离大规模应用仍有一定差距。rekhagovindaraj团队在论文(astrongarbiterpufusingresistiveramwithin1t-1rmemoryarchitecture,2016)中提出了一种阻变存储器阵列(resistiverandomaccessmemory,rram)阵列和仲裁器相结合的电路结构,根据给定的rram阵列地址读出响应做为cmos仲裁器电路的输入,得到一位输出,如图2,但该电路设计rram阵列和仲裁器puf,电路面积太大,不适合嵌入式集成应用。danielarumi等人在论文(rrambasedrandombitgenerationforhardwaresecurityapplications)中提出一种随机数产生器,在置位过程中,让晶体管处于半导通状态,当并联的忆阻器有一个被先置位成低阻时,并联总电阻下降,根据分压原理大部分电压降到半导通晶体管两端,忆阻器两端电压随之下降,立即阻止另一个忆阻器置成低阻,并联单元形成一高一低的阻值,如图3,最后提取左边忆阻器的阻值作为随机数。但该方案面临的问题是:需要两倍以上的忆阻器置位和复位电压,无法满足忆阻器低功耗的特点;而且该方案属于随机数和弱puf,无法形成大量crps,不能实现强puf。elenaioanavatajelu等人在论文(stt-mram-basedstrongpufarchitecture,2015ieeecomputersocietyannualsymposiumonvlsi)中提出利用高阻状态电阻的随机分布,通过多列rram阵列的组合,比较组合电流和参考阵列总电流输出一位响应,并由用户的输入激励来决定不同列的组合方式,如图4,参考阵列和rram阵列面积相同,它们行列译码器完全相同,比较电流越大,无法比较的模糊态也就更少。若列数为总2n,该方案可以产生2的n次方对crp,但该方案的不足之处在于:当全列选择和单列选择时,比较电流列选择大小变化很大,且全列选中时,电能消耗大;同时该方案面积偏大却不能有效提高解空间,需要双倍的面积,对于需要大容量crps的应用领域,其面积将难以接受。同时该方案并没提出任何提高其抗建模攻击的方案,在深度神经网络和集成学习等算法攻击下,安全性不足。因此,有必要提出一种具有高面积效率和高随机性、结构简单、抗建模攻击的特点的新型强puf结构。技术实现要素:本发明的目的在于提出一种新型的基于忆阻器的强puf(物理不克隆函数)电路,使其具有高面积效率、高随机性、指数级解空间、抗建模攻击的特点,并能和逻辑工艺相兼容。本发明提出的基于忆阻器的强puf电路,其结构图如图5所示,包括:2t2r基本单元,puf非挥发存储阵列,读和置位模块301,puf列选择器302,列地址生成模块303,行地址生成模块304,puf行译码器305,比较地址生成模块306,比较电流列选择模块307,比较、复位模块308,读电路模块309,多重异或模块310,mbit寄存器&计数器模块311;其中:(1)所述2t2r基本单元(401到406,…,40a、40b),包括两个1t1r的单元,或者包括两个1d1r单元;其中r为忆阻器,是阻变存储器、磁性存储器、铁电存储器或相变存储器;t为晶体管,d为二极管,该存储单元通过晶体管字线/二极管电平控制让其处于全导通状态或者部分导通状态(导通左或右的电阻),在串联分压原理或者并联分流原理的情况下,其电阻值处于一高一低的状态,或者处于全高全低状态;2t2r可以为puf阻变存储器、相变存储器、eepeom或者flash依靠浮栅电荷存储的基本单元。该单元可以是并联的形式,提供的写电流通过并联分流将电阻置位成一高一低的状态。也可以是串联的形式,提供的写电压通过串联分压,将电阻复位成一高一低的状态。(2)所述puf非挥发存储阵列,由m*n个基本存储单元构成,共有m行n列;每次生成密钥之前,将该阵列初始化,分别对列和行进行扫描,依次控制每个存储单元,提供两倍置位信号,将每个存储单元置位成一个高阻一个低阻的状态;同一行中的存储单元由两条字线控制,或者由多条字线控制;每行2t2r单元所有左边晶体管的字线(left、wl2_1、wl3_1、wlm_1)相连,右边晶体管字线(right、wl2_2、wl3_2、wlm_2)全部相连,字线(wl系列)为高电平时,代表被选中(导通),例如right字线为高电平时,第一行右边晶体管全部选通。每行所有的2t2r单元可以同时将其全部选中,也可以部分选中:即同时导通一行左边和右边的晶体管(全部选中),或只导通一行中左边的晶体管或者右边的晶体管(部分选中)。可以将一行2t2r单元的左边字线相连,右边字线相连,或者每个晶体管都单独用译码器控制等方法都可实现部分选中和全选中2t2r单元。(3)所述读和置位模块301,在读操作过程中分别为puf非挥发存储阵列和参考电阻阵列提供相同的读信号;在置位过程中,给对应的存储单元提供双倍的写信号,使其形成一高一低的电阻分布;具体来说,根据其在读操作和置位操作时,提供不同大小的电流或电压给puf存储阵列。当输入端置位信号(write信号)为1时,所述读、置位模块301输出从0到两倍写操作电流逐渐增加的电流信号,当输入端读信号(read信号)为1时,所述读、置位模块301分别输出读信号给puf存储阵列和读电路模块309中的参考阵列。根据2t2r中结构不同,r的物理属性不同,置位信号可以是写电压也可以是写电流,根据分压原理或者分流原理,两个电阻由于自身物理差异会被置位成一高一低的模式,例如对于rram可以使用串联的2t2r结构,使用两倍的写操作置位信号,对于磁性随机存储器(magneticrandomaccessmemory,mram),可使用并联的2t2r结构,使用两倍的写操作电流。所述读、置位模块301可以包含反馈电路以及时关闭输出信号。(4)所述puf行译码器305,具有依次全选中每行的功能,即依次导通每行2t2r单元所有晶体管;puf行译码器305也具有依次部分选中每行的功能,即依次导通每行每个2t2r单元的其中一个r的功能,比如可以依次导通每行左边晶体管;puf行译码器305还具有同时将所有行的2t2r单元部分选中,比如同时将上半部分行2t2r单元左边r选中,下半部分行2t2r单元右边r选中;puf行译码器305具有可配置模式的功能,即可以选择随机全导通或部分导通x行的不同模式,例如对于m*n阵列可以任意选择其中x行,都导通他们左边或者右边或者全部2t2r单元,因此通过可以显著扩大其解空间;puf行译码器305也可以在置位复位的过程中同时选中多个存储单元,同时进行写操作,提高效率。(5)所述列地址生成模块303,其输出为puf列选择器302的输入,puf列选择器302输出信号控制puf存储阵列。(6)所述行地址生成模块304,和puf行译码器305相连,行地址生成模块304的输出作为puf行译码器305的输入,puf行译码器305的输出作为puf非挥发存储阵列(30mn)的输入;所述列地址生成模块303和行地址生成模块304,工作时,行地址生成模块/列地址生成模块根据时钟、用户输入、读,写,比较信号生成行地址/列地址,并将其传送给对应的puf行/列译码器。(7)所述puf列选择器302,具有依次选中每列的功能,也根据用户输入选中puf非挥发存储阵列的n列中某一特定列。(8)所述比较地址生成模块306,用于生成puf非挥发存储阵列中n列中任意两列的地址,作为比较电流列选择模块307输入。(9)所述比较电流列选择模块307,根据用户输入选择puf非挥发存储阵列中的两列或多列,使其与读电路模块相连,进行电流大小比较;也可以在电流变化和大小不超过读电路的临界值的条件下,选择多列(2列以上)进行总电流或者总电阻比较;比较地址生成模块306和比较电流列选择模块307共同工作,比较地址生成模块306可以生成n列中任意两列的地址,作为比较电流列选择模块307输入,选通puf非挥发存储阵列(30mn)两列。(10)所述比较、复位模块308,提供复位电压,在比较电流大小时提供读信号,在置位时,将对应的连线全部接地,满足置位操作要求;所述比较、复位模块308在读操作或者置位操作时,使来自puf非挥发存储阵列(30mn)的所有sl接地,在比较信号(comp信号)为1时,提供比较电压,当复位信号(reset信号)为1时,提供复位电压或电流给30mn。(11)所述读电路模块309,包括rram参考阵列、和读电路模块内部的多路选择器和灵敏放大器,读电路模块309分别和比较电流列选择模块307、puf列选择器302以及mbit寄存器&计数器模块311相连;在第一次读出过程中,参考阵列的参考电压和puf列选择器302的读电压进行比较得到一位响应存入mbit寄存器&计数器模块311,执行该操作m次,将mbit响应全部存入mbit寄存器&计数器模块311;在比较信号(comp信号)为1时,即第二次读出时,将比较电流列选择模块307提供的两列电流进行比较,将比较结果作为输出,存入所述多重异或模块310的多位输出模块中;参考阵列模块由多个非挥发存储电阻串并联构成,功能为产生非挥发存储单元工作时高低阻值的中间值,对抗工艺波动;灵敏放大器根据两路输入信号进行放大比较,输出读结果给多重异或模块310或者mbit寄存器&计数器模块311;所述读电路模块309,其中的灵敏放大器可以是电压差分放大器,即比较两个输入端电压的大小,也可以是电流差分放大器,即比较两个电流的大小。(12)所述mbit寄存器&计数器模块311,和行地址生成模块304相连,由于有m行2t2r单元,所以mbit寄存器&计数器模块311中的寄存器大小也为mbit,计数器计算到m次时,第一次读操作完成。将寄存器中的mbit数据传送给行地址生成模块304,作为第二次读出的输入。类似的操作方式可以将读出数据写入新的静态存储器中,也可以将读出数据写回到新型存储器puf阵列中,在比较信号(comp信号)为1时再将其读出作为行地址生成模块304的输入;所述mbit寄存器&计数器模块11将第一次读出的结果保存在寄存器中,并且记录相应的次数,满足计数次数时将寄存器结果作为行地址生成模块的输入;所述mbit寄存器&计数器模块也可以是该puf存储阵列里的某一些存储单元,将每次要存入寄存器的内容写入到部分存储单元中,需要的时候再进行读出。或者,是静态存储器sram代替寄存器。(13)所述多重异或模块310,和mbit寄存器&计数器模块311相连,在第二次读出过程中,输出结果将存放在多重异或模块310中,此时可以将多重异或模块310中的多位结果进行2次以上的异或操作得到一位输出,有效提高puf的抗建模攻击能力。本发明还提供所述的基于忆阻器的强puf电路的操作方法,见图6,具体步骤如下:步骤401:注册阶段1:令复位操作信号(reset)为1,比较、复位模块308开始工作;行地址生成模块304和列地址生成模块303依次生成地址,使puf列选择器302和puf行译码器305分别选中每个单元,比较、复位模块308提供复位信号,依次将所有2t2r单元复位;步骤402:注册阶段2:置位操作信号(write信号)为1,读、置位模块301提供两倍置位信号,依次将每个单元置位成一高一低的形式。(也可以一次性置位复位多个单元);步骤403:第一次读出:根据用户输入选择一列,有m个单元,并根据输入依次读取每个2t2r中的一个电阻,保存读取数据mbit在311中;步骤404:第二次读出1:根据用户输入,比较电流列选择模块307选择两列,每列有m个单元,根据步骤403读出内容作为304模块的输入,同时选中每个2t2r中的一个电阻,比较两列的总电流;步骤405:第二次读出2:在步骤404中,根据用户输入选择比较电流的模式,即根据用户输入可以让一列中任意x个电阻都参与总电流比较(为不使电流变化过大,x一般不超过m/4)参与总电流比较;步骤406:根据时钟得到多位输出,并将输出在310模块中多重异或得到一位输出。本发明所提出的电路结构及操作流程的优势是:在极小的面积下提高了强puf的解空间,实现了puf存储阵列的反复操作利用,其复杂的随机性能够很好地抵抗建模攻击。附图说明图1为现有技术中一种cpu+fpga的强puf电路原理框图。图2为现有技术中一种通过rram阵列和coms仲裁器联合的强puf电路。图3为现有技术中的一种2t2r随机数生成器。图4为现有技术中一种通过比较列电流得到输出的puf电路。图5为本发明基于存储器件的强puf电路的结构示意图。图6为本发明基于存储器件的强puf电路的操作流程图。图7为本发明提出的基于存储器件的强puf电路的结构示意图(一种实施例)。图8为本发明提出的基于存储器件的强puf电路的操作流程图(一种实施例)。图9为本发明提出的puf行译码器(一种实施例)。具体实施方式下面结合实施例和附图对本发明的具体实施方式做一步的详细描述,图7为本发明提出的一种具体实施例。此实施例只用于解释本发明,并不限定本发明。图7中:包括:基准电流模块a01,列地址生成模块a02,puf列选择器a03,行地址生成模块a04,puf行译码器a05,行参与模块a0x,比较电流列选择模块a0y,puf存储阵列m行n列a06,比较电压模块和reset电压模块a07,sa模块a08,mbit寄存器&计数器模块a10,多重异或模块a09。2t2r基本单元t01到t0b。其中:(1)第一行中晶体管t01、t03、t05、t0a位线为left,类似的,t02、t04、t06、t0b位线相连为right。每个2t2r单元的位线在列译码器中为接通状态,例如:若列选择器选择第一列,则晶体管401和402的位线均被选中。当列译码器选中一列,行译码器选中一行的左和右字线时,对应2t2r单元被全选;当列译码器选中一列,行译码器选中一行的左或者右字线时,对应2t2r单元部分被选中。例如column1选中,left选中时,晶体管t01被选中,也即是2t2r单元部分被选中,当left和right同时选中时,t01和t02晶体管同时被选中,也即是第一个2t2r单元被全选。(2)puf存储阵列中,m行n列是以一个2t2r为基本单元而言,实际上puf行译码器a03引出的线有2m根,而puf列选择器的引线有2n根。(3)所述行地址生成模块a04在write信号为1时,会依次发送地址信息给puf行译码器a05,让其依次全选中1、2…m行的2t2r单元,也即是left和right都选中;当read信号为1时,行地址生成模块根据用户的输入input1到inputm依次将每一行2t2r单元部分选中。例如input1为0,input2为1时,行地址生成模块依次让行译码器选中第一行2t2r的left,第二行2t2r的wl2_1。当comp信号为1时,puf列译码器的行选择由行参与1模块到行参与4模块和mbit寄存器&计数器模块共同决定。(4)所述行参与模块aox中,有x个行参与模块,根据电路设计者需要来确定x的值,每个行参与模块控制部分行。行参与模块通过译码器可以选择多行2t2r单元让它们可以被选中,例如2-4译码器可以选择3行导通,一行不选通。也可以全选通。在比较电流的步骤中,每次只有部分行参与模块在工作,所以每次只有部分行参与最后电流比较。每个行参与模块工作状态不同可以产生不同的响应。(5)所述参与模块1、2以及比较电流列选择模块a0y一起工作,选择n列中两列作为比较列,在comp信号为1时,比较其两列电流大小。(6)所述mbit寄存器&计数器模块a10保存第一次读出的mbit输出,当计数器到达m次,将mbit输出作为行地址生成模块a04的输入。(7)多重异或模块a09保存多位输出,根据输出bit数进行2次或以上的异或,最后得到1bit输出。下面根据操作流程图,即图8,以一个具体的输入来展现电路的运行情况:例如puf阵列大小为16*8,4个行参与模块分别控制1-4行,5-8行,9-12行,13-16行。输入为0100000000000000110011该输入代表第一次列地址生成模块a02的输入01,第一次读取数据时,puf行译码器a05输入为0000000000000011,默认模式下4个行参与模块输入分别为00000000。步骤为:(1)写信号(write信号)为1,复位信号为1,列地址生成模块a04依次生成每列地址,让puf列选择器a03依次选择每列,同时puf行译码器a05依次全选中每行,即left和right字线均被选中,比较、复位模块a07提供一倍的复位信号,将所有单元复位成高阻;(2)写信号(write信号)为1,置位信号为1,列地址生成模块a02依次生成每列地址,让puf列选择器a03依次选择每列,同时行译码器依次全选中每行,基准电流模块a01提供两倍的写电流,当一个电阻被置位成低阻后,分流更多的电流,阻止另一个电阻被置位成低阻,形成一高一低形式;(3)读信号(read信号)为1,列地址生成模块a02根据输入0001输出地址信息,列选择器选择第一列,行地址生成模块根据0000000000000011输入依次导通第一行到第14行right字线,导通第15、16行left字线(假设1为左边字线导通),依次读出16位输出(假设高阻为1低阻为0),将数据存入mbit寄存器&计数器模块a10中,假设存入数据为1111111100000000;(4)比较信号(comp信号)为1,参与模块根据其输入001110分别让比较电流列选择模块a0y导通第1列和5列,根据步骤3中读出的数据1111111100000000将其作为行地址生成模块a04的输入,将前八行left字线导通,后八行right字线导通;(5)行参与模块aox工作,4个输入分别为00000000,每次让一个行参与模块进行工作,第一次比较1到4行,第二次比较5-8行,第三次比较9-12行,第四次比较13-16行,将四次比较的结果存入多位输出模块中;(6)多重异或模块a09进行两次异或,4位输出最后得到一位输出响应。基于本发明提出的强puf电路拥有大量解空间。假设只选择一种行参与模式,那么对于mxn的阵列,解空间可以达到。假设m=16,n=8,行参与模块有4个,那么总的解空间等于:如果是m*n的阵列(m>63),x个行参与模块(x>3),每个行参与模块为4-16译码器,其总的解空间也能达到:。图9为实现所述puf行译码器a05功能的一种结构:行地址生成模块通过一个3-8译码器,可以选择8行中的任意一行,输出端的left和right字线开关可以决定部分选中或者全选中,也能通过译码器将所有行同时选中,4个行参与模块可以通过2-4译码器和与门一起工作,禁止一行被选中,也可以让这4行均被选中。可以每次让一个行参与模块工作,得到一位输出,操作4次得到4位输出,进行两次异或最后得到一位输出。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1