CN112748901A - 随机数生成装置和方法 - Google Patents
随机数生成装置和方法 Download PDFInfo
- Publication number
- CN112748901A CN112748901A CN201911063067.9A CN201911063067A CN112748901A CN 112748901 A CN112748901 A CN 112748901A CN 201911063067 A CN201911063067 A CN 201911063067A CN 112748901 A CN112748901 A CN 112748901A
- Authority
- CN
- China
- Prior art keywords
- rram device
- rram
- resistance state
- random number
- puf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims abstract description 51
- 238000000926 separation method Methods 0.000 claims abstract description 37
- 230000003044 adaptive effect Effects 0.000 claims abstract description 35
- 230000002457 bidirectional effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 101100236208 Homo sapiens LTB4R gene Proteins 0.000 description 6
- 102100033374 Leukotriene B4 receptor 1 Human genes 0.000 description 6
- 101100437750 Schizosaccharomyces pombe (strain 972 / ATCC 24843) blt1 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- BPUBBGLMJRNUCC-UHFFFAOYSA-N oxygen(2-);tantalum(5+) Chemical compound [O-2].[O-2].[O-2].[O-2].[O-2].[Ta+5].[Ta+5] BPUBBGLMJRNUCC-UHFFFAOYSA-N 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 229910001936 tantalum oxide Inorganic materials 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 101001017969 Homo sapiens Leukotriene B4 receptor 2 Proteins 0.000 description 2
- 102100033375 Leukotriene B4 receptor 2 Human genes 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 102100028423 MAP6 domain-containing protein 1 Human genes 0.000 description 1
- 101710163760 MAP6 domain-containing protein 1 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Static Random-Access Memory (AREA)
Abstract
本申请公开了一种随机数生成装置和方法,涉及硬件加密领域,用于稳定地产生随机数。随机数生成装置,包括:第一物理不可克隆函数PUF计算模块,包括第一阻变式随机存取存储器RRAM器件和第二RRAM器件,第一RRAM器件和第二RRAM器件的初始状态为高阻态;自适应分离电路,分别连接第一RRAM器件和第二RRAM器件,并用于向第一RRAM器件和第二RRAM器件施加写电压,以及,当检测到第一RRAM器件从高阻态切换到低阻态时,停止向第一RRAM器件和第二RRAM器件施加写电压;读电路,分别连接第一RRAM器件和第二RRAM器件,并用于根据第一RRAM器件的低阻态以及第二RRAM器件的阻态的差值获得第一随机数,其中,第二RRAM器件的阻态高于第一RRAM器件的低阻态。
Description
技术领域
本申请涉及硬件加密领域,尤其涉及一种随机数生成装置和方法。
背景技术
当今,物联网(internet of things,IOT)终端节点(例如可穿戴设备、家用电器和各种传感器等)无处不在,这些终端节点的信息安全逐渐引起广泛关注,使得在实际应用中对关键信息进行加密的必要性越来越高。
加密密钥生成和存储的要求是:确保密钥不可预测,并具有唯一的随机源;具有能够可靠存储密钥的受保护的存储器。PUF技术能够同时满足上述对加密密钥的两个要求。然而,要获得一个高效可靠的PUF仍然是一个挑战。
如图1所示,为一种物理不可克隆函数(physical unclonable function,PUF)结构,包括第一晶体管11、第二晶体管12、第三晶体管13和第四晶体管14。第一晶体管11和第三晶体管13为选通管,当字线(word line,WL)置位时可以通过上述选通管来选通该PUF结构。第二晶体管12和第四晶体管14为随机源产生器件,在被施加高压时,这两个晶体管的栅氧层的断裂时间表现出一定的差异性,从而产生一位随机数,该随机数即可以作为加密密钥的一个比特位。例如,第二晶体管12的栅氧层断裂对应值为“1”的随机数,第四晶体管14的栅氧层断裂对应值为“0”的随机数。
上述PUF结构产生加密密钥之后不能被重新配置,即是一次可编程(one timeprogrammable,OTP)的,并且没有办法确保第二晶体管12和第四晶体管14中只有一个晶体管的栅氧层发生断裂,例如两个晶体管的栅氧层叠均断裂则会出现除了“1”和“0”以外的随机数,所以其产生随机数的稳定性不能保证。
发明内容
本申请实施例提供一种随机数生成装置和方法,用于稳定地产生随机数。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种随机数生成装置,包括:第一物理不可克隆函数PUF计算模块,包括第一阻变式随机存取存储器RRAM器件和第二RRAM器件,所述第一RRAM器件和所述第二RRAM器件的初始状态为高阻态。自适应分离电路,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于向所述第一RRAM器件和所述第二RRAM器件施加写电压,以及,当检测到所述第一RRAM器件从所述高阻态切换到低阻态时,停止向所述第一RRAM器件和所述第二RRAM器件施加所述写电压。读电路,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于根据所述第一RRAM器件的低阻态以及所述第二RRAM器件的阻态的差值获得第一随机数,其中,所述第二RRAM器件的阻态高于所述第一RRAM器件的所述低阻态。
本申请实施例提供的随机数生成装置,包括PUF计算模块、自适应分离电路以及读电路。PUF计算模块包括两个初始状态为高阻态的RRAM器件。自适应分离电路通过对这两个RRAM器件施加写电压,如果其中一个RRAM器件从高阻态变为低阻态,则停止对这两个RRAM器件施加写电压。然后读电路根据这两个RRAM器件之间阻态的差异性来得到一位随机数。由于不会存在两个RRAM器件之间阻态完全相同的情况,所以不会产生除了“1”和“0”以外的随机数,从而可以稳定地产生随机数。
在一种可能的实施方式中,所述第一PUF计算模块还包括:第一选择器,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于控制流过所述第一RRAM器件和所述第二RRAM器件的电流。选择器的作用是防止电流乱流,避免产生其他不必要的通路。
在一种可能的实施方式中,所述第一PUF计算模块还包括:第二选择器,连接所述第一RRAM器件,用于控制流过所述第一RRAM器件的电流;第三选择器,连接所述第二RRAM器件,用于控制流过所述第二RRAM器件的电流。选择器的作用是防止电流乱流,避免产生其他不必要的通路。
在一种可能的实施方式中,还包括:第二PUF计算模块,包括第三RRAM器件和第四RRAM器件;所述读电路,还分别连接所述第三RRAM器件和所述第四RRAM器件;其中,所述读电路和所述第三RRAM器件连接的方式与所述读电路和所述第二RRAM器件连接的方式相同,所述读电路和所述第四RRAM器件连接的方式与所述读电路和所述第一RRAM器件连接的方式相同。通过将位线在相邻PUF计算模块呈镜像的连接方式,即使存在系统偏差,使一侧的RRAM器件的设置时间比另一侧的RRAM器件的设置时间更短,但是通过上述镜像连接方式,使得读电路读取的随机数“0”和“1”的概率不会偏离1/2。
在一种可能的实施方式中,所述自适应分离电路,分别连接所述第三RRAM器件和所述第四RRAM器件,所述自适应分离电路还用于:向所述第三RRAM器件和所述第四RRAM器件施加所述写电压,其中,所述第三RRAM器件和所述第四RRAM器件的初始状态为高阻态;以及,当检测到所述第三RRAM器件从所述高阻态切换到低阻态时,停止向所述第三RRAM器件和所述第四RRAM器件施加所述写电压。所述读电路还用于根据所述第三RRAM器件的低阻态以及所述第四RRAM器件的阻态的差值获得第二随机数,其中,所述第四RRAM器件的阻态高于所述第三RRAM器件的所述低阻态。
可选的,所述第一选择器、所述第二选择器和所述第三选择器可以包括下述任意一种器件:晶体管、二极管、双向二极管。
第二方面,提供了一种随机数生成方法,该方法由包括物理不可克隆函数PUF计算模块的随机数生成装置执行,该方法包括:向所述PUF计算模块中的第一RRAM器件和第二RRAM器件施加写电压,其中,所述第一RRAM器件和所述第二RRAM器件的初始状态为高阻态;当检测到所述第一RRAM器件从所述高阻态切换到低阻态时,停止向所述第一RRAM器件和所述第二RRAM器件施加所述写电压;根据所述第一RRAM器件的低阻态以及所述第二RRAM器件的阻态的差值获得第一随机数,其中,所述第二RRAM器件的阻态高于所述第一RRAM器件的所述低阻态。
在一种可能的实施方式中,该方法还包括:控制流过所述第一RRAM器件和所述第二RRAM器件的电流。可以防止电流乱流,避免产生其他不必要的通路。
附图说明
图1为本申请实施例提供的一种物理PUF结构示意图;
图2为本申请实施例提供的一种随机数生成装置的结构示意图;
图3为本申请实施例提供的又一种随机数生成装置的结构示意图;
图4为本申请实施例提供的一种不同选择器对应的PUF计算模块的示意图;
图5为本申请实施例提供的一种氧化钽(TaOx)RRAM的设置时间和复位(Reset)时间的示意图;
图6为本申请实施例提供的一种自适应分离电路的结构示意图;
图7为本申请实施例提供的一种控制信号Set_Sel、控制信号DL和反馈信号FB的工作时序的示意图;
图8为本申请实施例提供的一种读电路的结构示意图;
图9为本申请实施例提供的一种读电路的工作时序的示意图;
图10为本申请实施例提供的一种RRAM器件与位线连接方式的示意图;
图11为本申请实施例提供的又一种随机数生成装置的结构示意图;
图12为本申请实施例提供的又一种RRAM器件与位线连接方式的示意图;
图13为本申请实施例提供的一种随机数生成方法的流程示意图;
图14为本申请实施例提供的又一种随机数生成方法的流程示意图。
具体实施方式
如前文所述的,对于利用两个晶体管的栅氧层在断裂时间上的差异性来生成随机数的PUF结构,可能会由于栅氧层均断裂产生除了“1”和“0”以外的随机数,无法保证产生随机数的稳定性。
本申请实施例提供的随机数生成装置和方法,通过对两个初始状态为高阻态的阻变式随机存取存储器(resistive random access memory,RRAM)器件施加写电压,如果其中一个RRAM器件从高阻态变为低阻态,则停止对这两个RRAM器件施加写电压,然后根据这两个RRAM器件之间阻态的差异性来得到一位随机数,从而稳定地产生随机数。
下面首先对本申请涉及的一些概念进行描述:
PUF:PUF是利用材料的物理不可克隆特性定义的“数字指纹”,PUF基于在半导体制造期间自然发生的独特物理变化来作为半导体器件(例如微处理器)的唯一标识。PUF通常在集成电路中实现,并且通常用于具有高安全性要求的应用(例如密码学)中。根据应用领域和场景的不同,PUF通常被分为强PUF和弱PUF。强PUF包括例如仲裁(arbiter)PUF、光学PUF、轻质安全PUF、双稳态环PUF等。强PUF具有挑战-相应对(challenge-response pair,CRP)数量巨大的优点,但是由于资源复用,容易遭受建模攻击,多用于认证。弱PUF包括例如互联网信用标识(internet credit identity,ICID)、涂层PUF、环形振荡器PUF、SRAM PUF、蝶形PUF、锁存PUF、触发器PUF等。弱PUF具有不容易遭受建模攻击的优点,但是CRP数量较少,多用于产生秘钥或产品标识。
高阻态和低阻态:高阻态(high impedance)指电路中的某个节点具有相对电路中其他节点相对更高的阻抗,在电路中相当于开路。低阻态是与高阻态相对的概念,即低阻态时的阻抗比高阻态时的阻抗低,在电路中相当于短路。
晶体管的第一极和第二极:对于本申请实施例中涉及的晶体管,当该晶体管为N型金属-氧化物-半导体(N-metal-oxide-semiconductor,NMOS)晶体管时,第一极指漏极,第二极为源极;当该晶体管为P型金属-氧化物-半导体(P-metal-oxide-semiconductor,PMOS)晶体管时,第一极为源极,第二极为漏极。
如图2和图3所示,本申请实施例提供了一种随机数生成装置,至少包括:自适应分离电路21、读电路22以及M*N个PUF计算模块,M、N为正整数。在本申请实施例中,M表示列数,N表示行数,即该随机数生成装置包括N行M列的PUF计算模块,每个PUF计算模块用于产生一位随机数。
需要说明的是,本申请为便于描述,可以将相邻两列PUF计算模块中,第一列PUF计算模块称为第一PUF计算模块23、第二列PUF计算模块称为第二PUF计算模块24,第一PUF计算模块23和第二PUF计算模块24采用相同的器件,在一种实施方式中,二者与位线的连接方式可以相同,在另一种实施方式中,二者与位线的连接方式可以不同。在后续的描述中,如无特别说明,对于第一PUF计算模块23的相关描述同样适用于第二PUF计算模块24,因此不再重复论述第二PUF计算模块24的相关内容,对于二者不同之处会特别说明。
另外,该随机数生成装置还包括列选通电路25、控制器26、行译码器27、字线驱动电路28。可选的,如图3所示,该随机数生成装置还可以包括选择线驱动电路29。
下面对各个部分的功能进行描述:
控制器26用于对整个随机数生成装置工作的时序进行控制,例如可以控制自适应分离电路21、读电路22、行译码器27、列选通电路25等工作的时序,以实现随机数产生、随机数读取和PUF计算模块复位等功能。
行译码器27用于根据控制器26的时序控制信号,通过字线驱动电路28选通一条字线(word line,WL),由于每条字线连接一行的PUF计算模块,因此相当于选通一行PUF计算模块。如图2和图3所示,本申请实施例中共有N条字线,即有N行的PUF计算模块。
字线驱动电路28作为缓存器(buffer)是可选的,用于加速PUF计算模块的充放电过程。
列选通电路25用于根据控制器26的时序控制信号选通一组位线(bit line,BL),由于每一组位线中的两条位线连接一列的PUF计算模块,因此相当于选通一列PUF计算模块。每组位线包括两条位线,例如第一组位线包括位线BL(0)和位线BLB(0)。如图2和图3所示,本申请中共有M组位线,即有M列的PUF计算模块。
如果通过行译码器27选通一条字线,并且通过列选通电路25选通一组位线,则相当于选通该字线和该组位线交叉处的一个PUF计算模块。
选择线驱动电路29用于根据控制器26的时序控制信号选通一条选择线(selectline,SL),由于每条选择线连接一行的PUF计算模块,因此相当于选通一行PUF计算模块。如图3所示,本申请中共有N条选择线。
如图2或图3所示,第一PUF计算模块23包括第一RRAM器件231和第二RRAM器件232。
第一RRAM器件231包括第一字线端WLT1和第一位线端BLT1,第二RRAM器件232包括第二字线端WLT2和第二位线端BLT2。第一字线端BLT1和第二字线端WLT2用于连接至同一字线,例如,图2中A所示的第一字线端BLT1和第二字线端WLT2共同连接至字线WL(0)。第一位线端BLT1用于连接至第一位线BL,例如,图2中A所示的第一位线端BLT1连接至位线BL(0);第二位线端BLT2用于连接至第二位线BLB,例如,图2中A所示的第二位线端BLT2连接至位线BLB(0),第二位线也可以称为互补位线。
在一种可能的实施方式中,如图3中A所示的,第一PUF计算模块23还可以包括:第一选择器233,其分别连接第一RRAM器件231和第二RRAM器件232,用于控制流过第一RRAM器件231和第二RRAM器件232的电流。具体的,第一选择器233的第一端SL11连接第一RRAM器件231的第一字线端WLT1,第一选择器233的第二端SL12连接第二RRAM器件232的第二字线端WLT2,第一选择器233的第三端SL13连接至字线,例如,图3中A所示的第一选择器233的第三端SL13连接至字线WL(0),第一选择器233的第四端SL14连接至选择线SL(0)。
或者,在另一种可能的实施方式中,如图3中B所示的,第一PUF计算模块23还可以包括:第二选择器234和第三选择器235。第二选择器234连接第一RRAM器件231,用于控制流过第一RRAM器件231的电流。第三选择器235连接第二RRAM器件232,用于控制流过第二RRAM器件232的电流。具体的,第二选择器234的第一端SL21连接第一RRAM器件231的第一字线端WLT1,第三选择器235的第二端SL32连接第二RRAM器件232的第二字线端WLT2,第二选择器234的第二端SL22和第三选择器235的第二端SL32连接至字线,例如,图3中B所示的第二选择器234的第二端SL22和第三选择器235的第二端SL32连接至字线WL(0)。第二选择器234的第三端SL23和第三选择器235的第三端SL33连接至选择线,例如,图3中B所示的第二选择器234的第三端SL23和第三选择器235的第三端SL33连接至选择线SL(0)。
上述选择器可以为晶体管、二极管、双向二极管等不同的器件,根据PUF计算模块中采用的选择器的数量的不同,可以形成如图4所示的2T2R/2D2R/1T2R/1D2R/0T2R/0D2R等不同结构的PUF结构,其中,T表示晶体管,D表示二极管或双向二极管,R表示RRAM器件。当没有选择器时,可以获得最小面积的PUF计算模块,提高PUF计算模块的密度。
选择器的作用是防止电流乱流,避免产生其他不必要的通路。例如,在行译码器27和列选通电路25选通第一PUF计算模块23时,选择线驱动电路29可以选通选择线SL0,可以仅控制流过第一PUF计算模块23的第一RRAM器件231和第二RRAM器件232中的电流,而不会影响流过其他PUF计算模块的RRAM器件中的电流。
第一RRAM器件231和第二RRAM器件232的初始状态为高阻态。当行译码器27通过字线驱动电路28向一条字线施加复位电压时,该条字线连接的一行PUF计算模块的两个RRAM器件即可恢复至初始状态。或者,当选择线驱动电路29向一条选择线施加复位电压时,该条字线连接的一行PUF计算模块的两个RRAM器件即可恢复至初始状态。
自适应分离电路21不限于一个,例如,可以每一列PUF计算模块对应一个自适应分离电路,或者,所有PUF计算模块共用一个自适应分离电路,以节省电路面积。本申请以所有PUF计算模块共用一个自适应分离电路为例,但并不意在限定于此。
自适应分离电路21分别连接第一RRAM器件231和第二RRAM器件232。具体的,自适应分离电路21的第一端S通过列选通电路25以及第一位线BL连接第一RRAM器件231,通过列选通电路25以及第二位线BLB连接第二RRAM器件232。
自适应分离电路21用于:向第一RRAM器件231和第二RRAM器件232施加写电压(也可以称为设置(Set)电压)。当检测到第一RRAM器件231从高阻态切换到低阻态时,停止向第一RRAM器件231和第二RRAM器件211施加写电压。
如前文所述的,第一RRAM器件231和第二RRAM器件232的初始状态为高阻态,当向第一RRAM器件231和第二RRAM器件232施加写电压后,第一RRAM器件231和第二RRAM器件232分别开始进入各自的设置(Set)时间。当第一RRAM器件231的设置(Set)时间结束(即完成设置)时,第一RRAM器件231从高阻态切换到低阻态;由于RRAM器件之间存在设置时间的差异性,第二RRAM器件232的设置时间尚未结束(即未完成设置),所以第二RRAM器件232的阻态仍高于第一RRAM器件231的低阻态。此时停止向第一RRAM器件231和第二RRAM器件232施加写电压,则第二RRAM器件232的阻态停止下降并保持。
本申请即利用第一PUF计算模块中两个RRAM器件在设置(Set)时间上的差异性作为随机源,通过读电路22读取这两个RRAM器件阻态的差异来获得随机数。
如图5所示,为一种氧化钽(TaOx)RRAM的设置时间和复位(Reset)时间的示意图,其中A对应设置时间,B对应复位时间。
如果对第一PUF计算模块中两个RRAM器件施加相同的写电压,当一个RRAM器件从高阻态切换到低阻态之后,停止施加写电压。如图5中A所示,由于RRAM器件的设置过程是突变的,在两个RRAM器件上同时形成导电细丝(conductive filament,CF)是极其罕见的,从而保证最后两个RRAM器件中一个是低阻态,另一个是高阻态。
如果采用复位时间的差异性作为随机源,对两个RRAM器件施加相同的复位电压,当一个RRAM器件从低阻态切换到高阻态之后,停止施加复位电压。如图5中B所示,由于复位过程是渐进的,两个RRAM器件中的CF可能都经历不同程度的破裂,导致最后两个RRAM器件一个是较高的高阻态,另一个是较低的高阻态。因此,通过选取两个RRAM器件在设置时间上的差异性作为随机源,可以获得两个RRAM器件之间更大的电阻差异,以利于读电路准确读出随机数。
示例性的,如图6所示,本申请实施例提供了一种自适应分离电路,该电路包括:晶体管M1-晶体管M7。晶体管M1的第一极连接设置(Set)电压Vset,晶体管M1的栅极A用于连接其他自适应分离电路的相同位置的晶体管的栅极,晶体管M1的第二极连接晶体管M2的第一极。晶体管M2的栅极连接晶体管M4的第二极、晶体管M5的第一极以及晶体管M7的栅极,并且此处引出反馈信号FB;晶体管M2的第二极连接晶体管M3的第二极、晶体管M4的栅极、晶体管M5的栅极以及晶体管M6的第一极,此处节点对应控制信号DL。晶体管M3的第一极连接设置电压Vset,晶体管M3的栅极输入控制信号Set_Sel。晶体管M4的第一极连接至电源电压Vdd。晶体管M5的第二极连接晶体管M7的第一极。晶体管M6的栅极接入控制信号Rst,晶体管M6的第二极接地。晶体管M7的第二极接地。
上述电路中,晶体管M1作为限流器。控制信号DL的节点作为自适应分离电路21的第一端S,第一端S通过列选通电路25以及第一位线BL连接第一RRAM器件231,并通过列选通电路25以及第二位线BLB连接第二RRAM器件232。自适应分离电路21即通过第一端S上的控制信号DL向第一RRAM器件231和第二RRAM器件232施加写电压,并通过监测该写电压的压降来确定两个RRAM器件中任一个RRAM器件从高阻态变为低阻态,即只要有一个RRAM器件从高阻态转变为低阻态,则该写电压的压降会降为0。
可选的,该自适应分离电路还可以包括限流产生器LG。限流产生器LG包括晶体管M8和电流源Icomp。晶体管M8的第一极接设置电压Vset,晶体管M8的栅极连接晶体管M8的第二极以及晶体管M1的栅极,晶体管M8的第二极通过恒流源Icomp接地。在实际使用过程中可以不使用限流产生器LG,以减小电路面积,但如果使用限流产生器LG,则可以加快自适应分离电路的分离速度,同时减小电路的功耗。
该自适应分离电路的工作过程如下:
控制信号Set_Sel、控制信号DL和反馈信号FB的工作时序如图7所示。首先将控制信号Set_Sel置为低电平,自适应分离电路的控制信号DL变为高电平,其电压被上拉到接近设置电压Vset,经过由晶体管M4、晶体管M5和晶体管M7构成的反相器,反馈信号FB的电压从高电平变为低电平。当第一PUF计算模块23中有一个RRAM器件从高阻态转变为低阻态时,第一位线BL或第二位线BLB上的控制信号DL的电压开始下降,由于晶体管M4、晶体管M5和晶体管M7构成的反相器的正反馈作用,控制信号DL的电压快速下降到0,防止第一PUF计算模块23中的另外一个RRAM器件变为低阻态,同时反馈信号FB的电压从低电平变为高电平。
需要说明的是,本文中第一RRAM器件231和第二RRAM器件232可以相互替换,后续不再特别说明。例如,自适应分离电路21还可以当检测到第二RRAM器件232从高阻态切换到低阻态时,停止向第一RRAM器件231和第二RRAM器件211施加写电压。第一RRAM器件231从高阻态转变为低阻态时,可以对应随机数“0”,第二RRAM器件232从高阻态转变为低阻态时,可以对应随机数“1”;或者,第一RRAM器件231从高阻态转变为低阻态时,可以对应随机数“1”,第二RRAM器件232从高阻态转变为低阻态时,可以对应随机数“0”,本申请不作限定。
采用上述自适应分离电路,一方面可以保证第一PUF计算模块23中只有一个RRAM器件在分离时从高阻态转变为低阻态,从而保证PUF正确输出随机数;另一方面在分离期间,同一PUF计算模块中的两个RRAM器件连接到自适应分离电路的同一端,使得自适应分离电路的失配不会对PUF输出的随机性造成影响。
读电路22可以为灵敏放大器(sense amplifier,SA),读电路22分别连接第一RRAM器件231和第二RRAM器件232,并用于:根据第一RRAM器件231的低阻态以及第二RRAM器件232的阻态的差值获得第一随机数。如前文所述的,当第一RRAM器件231从高阻态转变为低阻态时,第二RRAM器件232的阻态高于第一RRAM器件231的低阻态。
具体的,读电路22的第一端T通过列选通电路25以及第一位线BL连接第一RRAM器件231,读电路22的第二端V通过列选通电路25以及第二位线BLB连接第二RRAM器件232。
示例性的,如图8所示,本申请实施例提供了一种读电路,该电路包括:晶体管M0-晶体管M10。晶体管M0的栅极连接输入信号SAE,晶体管M0的第二极接地,晶体管M0的第一极连接晶体管M1的第二极以及晶体管M2的第二极。晶体管M1的栅极连接晶体管M3的栅极、晶体管M2的第一极、晶体管M4的第二极、晶体管M6的第二极以及晶体管M8的第一极,并且此处引出输出信号QB。晶体管M1的第一极连接晶体管M5的第二极、晶体管M7的第一极、晶体管M3的第二极、晶体管M4的第二极以及晶体管M2的第二极,并且此处引出输出信号Q。晶体管M3的第一极连接晶体管M5的第一极、晶体管M4的第一极、晶体管M6的第一极,并连接至电源电压Vdd。晶体管M5的栅极和晶体管M6的栅极连接输入信号PCH。晶体管M7的第二极连接晶体管M9的第一极以及第一位线BL,晶体管M8的第二极连接晶体管M10的第一极以及第二位线BLB。晶体管M7的栅极和晶体管M8的栅极连接输入信号VCL。晶体管M9的第二极和晶体管M10的第二极接地。晶体管M9的栅极和晶体管M10的栅极连接输入信号DCH。
其中,晶体管M0为启动管,晶体管M1-晶体管M4构成锁存器,晶体管M5和晶体管M6为预充电管,晶体管M7和晶体管M8为钳位管,晶体管M9和晶体管M10分别为第一位线BL和第二位线BLB的放电管。
上述电路中,晶体管M7的第二极和晶体管M9的第一极即对应前文所述的读电路22的第一输入端,用于通过列选通电路25以及第一位线BL连接第一RRAM器件231;晶体管M8的第二极以及晶体管M10的第一极即对应前文所述的读电路22的第二输入端,用于通过列选通电路25以及第二位线BLB连接第二RRAM器件232。
该读电路的工作过程如下:
如图9所示,刚开始时,输入信号DCH的为高电平,第一位线BL和第二位线BLB放电至低电平。然后将输入信号PCH置为低电平,第一位线BL和第二位线BLB开始预充电,由于晶体管M7和晶体管M8的钳位作用,第一位线BL和第二位线BLB的充电电压不会特别高。然后将输入信号SAE置为高电平,由于第一PUF计算模块的两个RRAM器件中一个是高阻态,另一个是低阻态,使得第一位线BL和第二位线BLB的放电电流不同,高阻态的RRAM器件放电较慢,其连接的位线的电压下降也较慢,低阻态的RRAM器件放电较快,其连接的位线的电压下降也较快。由于晶体管M1-晶体管M4所构成的锁存器的放大作用,从而使得锁存器的输出信号Q和输出信号QB中的一个为高电平,另一个为低电平。
第一RRAM器件连接第一位线BL,第二RRAM器件连接第二位线BLB,假设第一RRAM器件为高阻态,第二RRAM器件为低阻态,则第一位线BL的电压下降较慢,第二位线BLB的电压下降较快,与第一位线BL对应的输出信号Q为高电平,与第二位线BLB对应的输出信号QB为低电平,此时可以得到随机数1。
假设第一RRAM器件为低阻态,第二RRAM器件为高阻态,则第一位线BL的电压下降较快,第二位线BLB的电压下降较慢,与第一位线BL对应的输出信号Q为低电平,与第二位线BLB对应的输出信号QB为高电平,此时可以得到随机数0。
如图10所示,对于位于同一行的两个PUF计算模块来说,假设读电路与不同PUF计算模块中的同一侧的RRAM器件的连接方式相同,即位于一侧的RRAM器件均通过第一位线BL连接至读电路22,另一侧的RRAM器件均通过第二位线BLB连接至读电路22。此时如果存在系统偏差,即一侧的RRAM器件的设置时间比另一侧的RRAM器件的设置时间更短,则更快结束设置时间一侧(示例性的,图中为右侧)更容易先从高阻态转变为低阻态,因此读电路22更容易从该侧读取特定随机数(示例性的,图中为随机数“1”),从而使整个随机数生成装置产生随机数“0”和“1”的概率偏离1/2。
本申请实施例提供的第二PUF计算模块24可以指与第一PUF计算模块23位于同一行的相邻PUF计算模块。如图11所示,第二PUF计算模块24包括第三RRAM器件241和第四RRAM器件242,第三RRAM器件241和第四RRAM器件242的初始状态为高阻态。
自适应分离电路21,分别连接第三RRAM器件241和第四RRAM器件242,还用于:向第三RRAM器件241和第四RRAM器件242施加写电压。当检测到第三RRAM器件241从高阻态切换到低阻态时,停止向第三RRAM器件241和第四RRAM器件242施加写电压。
读电路22,还分别连接第三RRAM器件241和第四RRAM器件242,并用于:根据第三RRAM器件241的低阻态以及第四RRAM器件242的阻态的差值获得第二随机数,其中,第四RRAM器件242的阻态高于第三RRAM器件241的低阻态。
其中,读电路22和第三RRAM器件241连接的方式与读电路22和第二RRAM器件232连接的方式相同,读电路22和第四RRAM器件242连接的方式与读电路22和第一RRAM器件231连接的方式相同。也就是说,读电路22通过第一位线BL连接第四RRAM器件242和第一RRAM器件231,通过第二位线BLB连接第三RRAM器件241和第二RRAM器件232。
如图12所示,通过将位线在相邻PUF计算模块呈镜像的连接方式,即使存在系统偏差,使一侧的RRAM器件的设置时间比另一侧的RRAM器件的设置时间更短,但是通过上述镜像连接方式,使得读电路22读取的随机数“0”和“1”的概率不会偏离1/2。
本申请实施例提供的随机数生成装置的工作过程包括:随机数产生、随机数读取和PUF计算模块复位,具体如下:
在随机数产生过程中,控制器26控制行译码器27通过字线驱动电路28选通一条字线(例如WLx),并且控制器26控制列选通电路25选通一对位线BLy和BLBy,这样位于字线WLx和位线BLy/BLBy交叉处的PUF计算模块被选中。然后,自适应分离电路21通过列选通电路25对被选中的PUF计算模块的两个RRAM器件施加写电压,当检测到这两个RRAM器件中任一个RRAM器件从高阻态切换到低阻态时,停止向这两个RRAM器件施加写电压。
在随机数读取过程中,控制器26控制行译码器27通过字线驱动电路28选通一条字线(例如WLx),并且控制器26控制列选通电路25选通一对位线BLy和BLBy,这样位于字线WLx和位线BLy/BLBy交叉处的PUF计算模块被选中。然后,由读电路对根据被选中的PUF模块的中两个RRAM器件的阻态的差值获得随机数。每个PUF计算模块对应一位随机数,如果需要获取多位随机数,则可以读取对应位数的PUF计算模块。
在复位过程中,控制器26控制行译码器27通过字线驱动电路28选通一条字线(例如WLx),如果没有选择线驱动电路29并且各PUF计算模块中不包括选择器,则可以通过在选通的字线上施加复位电压来对该字线对应的PUF计算模块进行复位。如果有选择线驱动电路29并且各PUF计算模块中包括选择器,则可以通过在选择线驱动电路29的选择线(例如SLx)上施加复位电压,并对所有位线置为低电平,来对该选择线对应的PUF计算模块进行复位。另外,还要向自适应分离电路的控制信号Rst置为高电压,来对自适应分离电路进行复位。PUF计算模块的复位指该PUF计算模块的两个RRAM器件为高阻态,同时所有的BL和BLB都置为低电平,即可实现PUF单元的复位。
本申请实施例提供的随机数生成装置,包括PUF计算模块、自适应分离电路以及读电路。PUF计算模块包括两个初始状态为高阻态的RRAM器件。自适应分离电路通过对这两个RRAM器件施加写电压,如果其中一个RRAM器件从高阻态变为低阻态,则停止对这两个RRAM器件施加写电压。然后读电路根据这两个RRAM器件之间阻态的差异性来得到一位随机数。由于不会存在两个RRAM器件之间阻态完全相同的情况,所以不会产生除了“1”和“0”以外的随机数,从而可以稳定地产生随机数。
如图12所示,本申请实施例提供了一种随机数生成方法,可以由上述包括PUF计算模块的随机数生成装置执行。该方法包括:
S1301、向PUF计算模块中的第一RRAM器件和第二RRAM器件施加写电压,其中,第一RRAM器件和第二RRAM器件的初始状态为高阻态。
该步骤可以参照自适应分离电路的描述,在此不再重复。
S1302、当检测到第一RRAM器件从高阻态切换到低阻态时,停止向第一RRAM器件和第二RRAM器件施加写电压。
该步骤可以参照自适应分离电路的描述,在此不再重复。
S1303、根据第一RRAM器件的低阻态以及第二RRAM器件的阻态的差值获得第一随机数。
其中,第二RRAM器件的阻态高于第一RRAM器件的低阻态。
该步骤可以参照读电路的描述,在此不再重复。
可选的,如图13所示,该方法还可以包括:
S1401、控制流过第一RRAM器件和第二RRAM器件的电流。可以防止电流乱流,避免产生其他不必要的通路。
该步骤可以参照选择器的描述,在此不再重复。
应该理解到,在本申请所提供的几个实施例中所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚的了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种随机数生成装置,其特征在于,包括:
第一物理不可克隆函数PUF计算模块,包括第一阻变式随机存取存储器RRAM器件和第二RRAM器件,所述第一RRAM器件和所述第二RRAM器件的初始状态为高阻态;
自适应分离电路,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于向所述第一RRAM器件和所述第二RRAM器件施加写电压,以及,当检测到所述第一RRAM器件从所述高阻态切换到低阻态时,停止向所述第一RRAM器件和所述第二RRAM器件施加所述写电压;
读电路,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于根据所述第一RRAM器件的低阻态以及所述第二RRAM器件的阻态的差值获得第一随机数,其中,所述第二RRAM器件的阻态高于所述第一RRAM器件的所述低阻态。
2.根据权利要求1所述的随机数生成装置,其特征在于,所述第一PUF计算模块还包括:
第一选择器,分别连接所述第一RRAM器件和所述第二RRAM器件,并用于控制流过所述第一RRAM器件和所述第二RRAM器件的电流。
3.根据权利要求1所述的随机数生成装置,其特征在于,所述第一PUF计算模块还包括:
第二选择器,连接所述第一RRAM器件,用于控制流过所述第一RRAM器件的电流;
第三选择器,连接所述第二RRAM器件,用于控制流过所述第二RRAM器件的电流。
4.根据权利要求1所述的随机数生成装置,其特征在于,还包括:
第二PUF计算模块,包括第三RRAM器件和第四RRAM器件;
所述读电路,还分别连接所述第三RRAM器件和所述第四RRAM器件;
其中,所述读电路和所述第三RRAM器件连接的方式与所述读电路和所述第二RRAM器件连接的方式相同,所述读电路和所述第四RRAM器件连接的方式与所述读电路和所述第一RRAM器件连接的方式相同。
5.根据权利要求4所述的随机数生成装置,其特征在于:
所述自适应分离电路,分别连接所述第三RRAM器件和所述第四RRAM器件,所述自适应分离电路还用于:
向所述第三RRAM器件和所述第四RRAM器件施加所述写电压,其中,所述第三RRAM器件和所述第四RRAM器件的初始状态为高阻态;以及,
当检测到所述第三RRAM器件从所述高阻态切换到低阻态时,停止向所述第三RRAM器件和所述第四RRAM器件施加所述写电压;
所述读电路还用于根据所述第三RRAM器件的低阻态以及所述第四RRAM器件的阻态的差值获得第二随机数,其中,所述第四RRAM器件的阻态高于所述第三RRAM器件的所述低阻态。
6.根据权利要求2所述的随机数生成装置,其特征在于,所述第一选择器包括下述任意一种器件:晶体管、二极管、双向二极管。
7.根据权利要求3所述的随机数生成装置,其特征在于,所述第二选择器和所述第三选择器包括下述任意一种器件:晶体管、二极管、双向二极管。
8.一种随机数生成方法,其特征在于,所述方法由包括物理不可克隆函数PUF计算模块的随机数生成装置执行,所述方法包括:
向所述PUF计算模块中的第一RRAM器件和第二RRAM器件施加写电压,其中,所述第一RRAM器件和所述第二RRAM器件的初始状态为高阻态;
当检测到所述第一RRAM器件从所述高阻态切换到低阻态时,停止向所述第一RRAM器件和所述第二RRAM器件施加所述写电压;
根据所述第一RRAM器件的低阻态以及所述第二RRAM器件的阻态的差值获得第一随机数,其中,所述第二RRAM器件的阻态高于所述第一RRAM器件的所述低阻态。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
控制流过所述第一RRAM器件和所述第二RRAM器件的电流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911063067.9A CN112748901A (zh) | 2019-10-31 | 2019-10-31 | 随机数生成装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911063067.9A CN112748901A (zh) | 2019-10-31 | 2019-10-31 | 随机数生成装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748901A true CN112748901A (zh) | 2021-05-04 |
Family
ID=75645696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911063067.9A Pending CN112748901A (zh) | 2019-10-31 | 2019-10-31 | 随机数生成装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748901A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150301802A1 (en) * | 2014-04-16 | 2015-10-22 | Panasonic Intellectual Property Management Co., Ltd. | Random number processing apparatus and random number processing method |
CN106814991A (zh) * | 2017-01-23 | 2017-06-09 | 北京大学 | 基于rram的无偏真随机数生成方法和生成器 |
EP3389050A1 (en) * | 2017-04-13 | 2018-10-17 | eMemory Technology Inc. | Random number generator device and control method thereof |
-
2019
- 2019-10-31 CN CN201911063067.9A patent/CN112748901A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150301802A1 (en) * | 2014-04-16 | 2015-10-22 | Panasonic Intellectual Property Management Co., Ltd. | Random number processing apparatus and random number processing method |
CN106814991A (zh) * | 2017-01-23 | 2017-06-09 | 北京大学 | 基于rram的无偏真随机数生成方法和生成器 |
EP3389050A1 (en) * | 2017-04-13 | 2018-10-17 | eMemory Technology Inc. | Random number generator device and control method thereof |
Non-Patent Citations (1)
Title |
---|
栾志存;张跃军;王佳伟;潘钊;: "基于线性反馈的多模混合可重构PUF电路设计", 电子技术应用, no. 11, 6 November 2018 (2018-11-06) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109495272B (zh) | 一种基于忆阻器的强puf电路 | |
US11574674B2 (en) | SRAM based authentication circuit | |
US10032521B2 (en) | PUF value generation using an anti-fuse memory array | |
CN108694335B (zh) | 基于sram的物理不可克隆函数及产生puf响应的方法 | |
US9892783B2 (en) | Non-volatile memory device including memory cells having variable resistance values | |
US11404958B2 (en) | Random code generator and associated random code generating method | |
KR102159214B1 (ko) | 물리적으로 복제 불가능한 기능(puf) 생성 | |
US8854866B2 (en) | Identification circuit and method for generating an identification bit | |
JP6884232B2 (ja) | メモリ・セルの時間ベースのアクセス | |
CN106297863B (zh) | 可双重预充电的puf存储器及其密码生成方法 | |
JP2016105344A (ja) | 耐タンパ性を有する不揮発性メモリ装置、および集積回路カード | |
WO2017153875A1 (en) | Random number generation from multiple memory states | |
CN113707201B (zh) | 一种基于rram的高效可重构环形振荡器puf电路 | |
EP3591654B1 (en) | Random bit cell with non-volatile storage element | |
Xue et al. | A 28nm 512Kb adjacent 2T2R RRAM PUF with interleaved cell mirroring and self-adaptive splitting for extremely low bit error rate of cryptographic key | |
US11955157B2 (en) | Physically unclonable function apparatus based on ferroelectric elements and operation method thereof | |
CN111813373A (zh) | 具有浮动栅极晶体管类型存储单元的随机码产生器 | |
CN112748901A (zh) | 随机数生成装置和方法 | |
US20230127142A1 (en) | Sram with reconfigurable setting | |
Wang et al. | A novel complementary architecture of one-time-programmable memory and its applications as physical unclonable function (PUF) and one-time password | |
TWI616885B (zh) | 半導體記憶體裝置,晶片識別碼產生方法與製造方法 | |
KR102150003B1 (ko) | 3차원 크로스바 메모리를 이용한 난수 발생 장치 | |
CN113535123A (zh) | 具有通过位线预充电的物理不可克隆函数 | |
Lin et al. | A novel bi-functional memory-PUF module utilizing adjustable switching window of RRAM | |
CN117150578A (zh) | 一种可重构物理不可克隆函数的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |