具体实施方式
下面参照附图,就本发明的非易失性存储装置等的实施方式进行说明。本发明的非易失性存储装置具有多个以1个以上的阈值判别电阻值而存储数据的电阻变化型非易失性存储单元。
非易失性存储装置例如具有生成个体识别信息的功能。在非易失性存储装置中,以生成的个体识别信息为基础而进行数据的加密和解密,同时也可以进行相互间的认证。更具体地说,本发明的非易失性存储装置具有如下的功能:读出电阻变化存储器元件的内容,生成在由该内容至少部分地导出数字标识符的个体识别信息用途中对每一个芯片唯一且固有的随机数数据。由此,可能妨碍电的、物理的复制。进而具有如下的功能:对于从装置外部输入的挑战信息,生成对每一个装置不同的响应信息,从而对于本发明的非易失性存储装置,能够从装置外进行安全性较高的认证。另外,通过多次读出没有改写且处于相同电阻值状态的存储单元的电阻值信息,取得电阻值的波动成分,从而生成真性随机数数据。
非易失性存储装置例如可以装在搭载有于移动型电子货币中利用的IC芯片的卡中。IC芯片另外还具有逻辑电路、易失性存储装置以及微处理器。利用它们可以实现加密功能、数字签名以及数字认证功能等各种信息安全功能。在执行这些功能时,可以使用基于机密密钥的数据加密。在IC卡内,也优选如前所述那样将机密密钥以不可复制的方式进行安全保管。
(发明人进行的研究)
为了实现上述机密密钥的保管、以及与每一个装置所固有的挑战信息相对的响应信息的生成(以后也称为挑战-响应生成),可以使用前述的PUF技术。采用PUF技术得到的个体识别信息即随机数的数字ID数据可以用于作为装置加密密钥,对机密密钥进行加密而保存于非易失性存储器中。数字ID数据由于是对各IC不同的随机数,因而使用它进行加密所得到的数据也成为各IC所固有的数据序列。加密的机密密钥即使通过黑客活动等而拷贝到其它IC中,数字ID数据也是不能复制的。由于数字ID数据不可复制,因而不会将原来的机密密钥进行不正当利用。使用PUF技术的挑战-响应生成也同样,由输入的挑战信息导出响应信息的函数使用基于制造偏差的参数。因此,由输入的挑战信息导出响应信息的函数成为对每一个装置是唯一的函数,从而是不可复制的。因此,关于使用PUF技术的挑战-响应的认证,其安全性较高。
然而,在IC卡之类的超小型设备中,用于使PUF技术具体化的数字ID数据生成的电路也要求高度小型化。特别地,以PUF技术为基础的数字ID数据由于其数据包含错误,因而需要错误校正电路。如果错误量较多,则错误校正电路的电路规模也随之增大。因此,要求降低数据错误率且使其稳定化,尽可能降低必要的错误校正能力,以削减电路规模。再者,在没有搭载电池的通常的IC卡中,必须用通信时得到的利用无线供电获得的电力在短时间内执行各种功能。也就是说,在数字ID数据的生成中,同时也要求超低电功耗化和生成速度的高速化。于是,作为适应这种要求的数字ID数据的生成器,本发明人就几种现有技术进行了研究。
在非专利文献2中,对现有的各种PUF技术进行了基准测试(bench mark)。特别着眼于数字ID数据的错误率,对于SRAM PUF以及毛刺PUF也考虑环境变化,一般认为最差到15%的数据错误率就发生恶化。考虑到制造上的成品率,需要容许20%以上的数据错误的错误校正电路。因此,错误校正电路的电路规模对IC成为课题。另外,在SRAM PUF时的最新研究中,如非专利文献1那样报告了极低错误的单元。但是,尽管使用22nm工艺,但当时的存储单元的尺寸极大,为4.66μm2。再者,在设计特殊的PUF用SRAM单元的情况下,元件的确定是容易的,防篡改性成为问题。
本发明人将PUF技术的特征整理如下。可以认为PUF技术的特征主要可以归纳为以下3点。
特征(1):从不可复制的物理现象获得固有的数字ID数据(个体识别信息)。
特征(2):物理现象只能通过动态电路控制来获得,如果为基于探头的直接读取等静态解析,则不能获得所需要的物理现象。
特征(3):得到的数字ID数据有错误,仅通过错误校正电路就可以得到真的ID数据。
再者,本发明人还将通过PUF技术得到的数字ID数据所要求的主要性能归纳如下。
性能(1):数字ID数据中含有的错误部位随机变化,从而真的ID数据的预测是困难的。
性能(2):采用PUF技术得到的数字ID数据具有较高的随机性,成为对每一个IC是唯一的固有数据。
性能(3):在采用PUF技术的情况下,为此应该附加的电路的开销(overhead)较小,生成数字ID数据时的电功耗较小。
性能(4):通过使生成各数据位的生成电路的并行处理数增多,对侧信道攻击的耐受性便得以提高。
性能(5):数据的错误率较小,可以减少错误校正电路的电路规模。
性能(6):在生成数字ID数据的时机方面制约较少,生成速度较高。
对于上述特征以及性能,在作为以往例为人所知的SRAM-PUF中,性能(6)受到较大的制约。SRAM-PUF从原理上说,仅在电源的接通时才可以得到。IC内部的SRAM由于作为数据高速缓冲存储器来利用,因而在使用PUF来生成ID数据时,必须暂且将SRAM内的数据保存或丢弃。因此,在系统动作上产生较大的制约。另外,作为其对策,为了在任意的时机生成ID数据,需要如非专利文献1那样另行设置PUF专用的单元。在此情况下,电路的开销增加,从而使性能(5)的要件明显降低。
再者,在使用SRAM的PUF的情况下,具有发生数据错误的单元变得相同的倾向。也就是说,由于动作稳定的单元和不稳定的单元是既定的,因而存在的课题是包含错误的数字ID数据的模式有限,从而容易预测真的数字ID数据。另外,在仲裁者PUF中,虽然不会产生生成时机的制约、电路规模以及生成速度等课题,但由于布线延迟以及门延迟等的偏差不大,因而缺乏ID数据的唯一性。另外,正如非专利文献2中所指出的那样,仲裁者PUF的数据错误率非常大,达15%,因而错误校正电路的规模增加成为较大的课题。
(发明人获得的见解)
本发明人就有可能解决以上课题的新颖的数字ID数据生成方法进行了潜心的研究。其结果是,本发明人发现了电阻变化元件的被写入的电阻值以正态分布产生偏差的现象,从而想到了由电阻值的偏差生成稳定的数字ID数据。
电阻变化型存储器元件通过在该存储器元件的两电极间施加规定的电压(绝对值)、极性、宽度的电脉冲,便至少在第1电阻值状态和电阻值比第1电阻值状态小的第2电阻值状态之间产生可逆的变化。通常,对第1电阻值状态和第2电阻值状态分配数字数据(例如“0”和“1”),并将其作为信息保存下来。
在此,本发明人着眼于属于上述的第1电阻值状态、第2电阻值状态、还有后述的初始状态的某1个状态的单元组,将该单元组中含有的各单元根据其电阻值的不同而分为2类。也就是说,将该单元组中含有的各单元进行2值化(数字数据化)。各单元的电阻值产生偏差,利用其偏差而将各单元变换为第1数字数据。通过将所述第1数字数据利用作为装置固有的数字ID数据,便可以提供一种能够应用于更安全且稳定的加密技术等中的以前没有的数字ID数据的生成方法。但是,所述第1数字数据与存储单元的电阻值结合较强,通过采用探头等直接读取存储单元的电阻值之类的黑客攻击,有可能预测所述第1数字数据的内容,这样的脆弱性是令人担心的。本发明所例示的电阻变化型存储单元由于在低电压下电阻值高速变化,因而通过对IC芯片的侵袭工序以及在探测中产生的静电等而使电阻灵敏地发生变化。因此,可以认为即使对于采用探头进行的所述攻击也有耐受性,但由于将来的技术进步,也有成为课题的可能性。针对该课题,本发明人进而生成与第1数字数据不同、且与存储单元的电阻值没有关联性的第2数字数据,然后以所述第2数字数据为基础而生成将所述第1数字数据变换而成的第3数字数据,并将其利用作为数字ID数据,从而谋求解决对于所述攻击的脆弱性。
另外,进行数字ID数据的生成的许多电路元件有可能与作为通常的非易失性存储装置搭载的电路通用化。因此,可以大大抑制为数字ID数据的生成而增加的电路规模,从而可以实现小型化。
再者,由于非易失性存储装置的数据读出在存储器阵列的构造上采用并行处理读出多个数据,因而数字ID数据的生成速度也飞跃性地得以提高。同时,在侧信道攻击中,也通过并行处理以并行数的总和施加辐射电磁波,因而可以提高对于攻击的耐受性。
另外,在随机数的生成中,通过生成不偏向0和1中的任一个、且偏移概率较小的随机数,可以更加提高安全性。如果能够缩短这种偏移概率较小的随机数的生成时间,则数字ID数据的生成速度也飞跃性地得以提高。
基于本发明人的见解,下面就本发明的一实施方式的概要进行说明。
本发明的实施方式涉及一种非易失性存储装置,其具备:存储器阵列,其具有多个非易失性存储单元;读出电路,其在所述多个非易失性存储单元中,选择属于由至少1个阈值加以判别的多个电阻值范围中的1个电阻值范围的多个非易失性存储单元,并取得与选择的属于所述1个电阻值范围的多个非易失性存储单元各自的电阻值有关的多个电阻值信息;运算电路,其基于由所述读出电路取得的所述多个电阻值信息而算出2值化基准值;以及识别信息生成电路,其生成个体识别信息;其中,所述读出电路根据所述电阻值信息和所述2值化基准值之间的关系而取得第1数字数据;所述识别信息生成电路取得与所述第1数字数据不同且与所述电阻值不相关的第2数字数据,并以所述第1数字数据和所述第2数字数据为基础而生成所述个体识别信息。
根据本发明的实施方式的非易失性存储装置,以与非易失性存储单元的电阻值相关的第1数字数据、和与非易失性存储单元的电阻值不相关的第2数字数据为基础而得到个体识别信息。如果利用者可以使第2数字数据任意变更,则对第1数字数据以及第2数字数据、与个体识别信息之间的相关性进行预测变得极其困难,因而作为个体识别信息的数字ID数据可以安全且稳定地生成,且极其难以进行复制。因此,可以提供一种对于近年来成为较大威胁的侧信道攻击也具有较强耐受性的PUF技术。
另外,通过使用本发明的实施方式的非易失性存储装置,能够使搭载有大量的非易失性存储器的SoC以及微型计算机中的用于个体识别的数字ID数据的位长容易多位化。再者,不预测存储单元的电阻值与数字ID数据之间的相关性、以及响应信息对于挑战信息的相关性而使芯片的复制变得困难,从而可以使安全得到极其强化。
某一实施方式的非易失性存储装置进一步具有多个晶体管,所述第2数字数据也可以由所述多个晶体管的导通电阻的偏差来得到。
也可以在某一实施方式中,所述至少1个阈值具有包含第1阈值和第2阈值的多个阈值;所述多个电阻值范围包含由所述第1阈值以及所述第2阈值规定的、且并不重复的3个电阻值范围;所述3个电阻值范围为包含预先设想的最大电阻值或者最小电阻值的第1电阻值范围、以及与所述第1电阻值范围不同的第2电阻值范围和第3电阻值范围;所述多个非易失性存储单元各自在可变状态下,具有通过施加不同的多个电信号而使所述电阻值在所述第2电阻值范围和所述第3电阻值范围之间可逆地转变的特性,在初始状态下,所述电阻值处在属于所述第1电阻值范围的初始电阻值范围;所述第2数字数据为第1种数据或者第2种数据;所述第1种数据通过用所述第1阈值加以判别而得到,表示所述多个非易失性存储单元各自是处于所述初始状态,还是处于所述可变状态;所述第2种数据通过用所述第2阈值加以判别而得到,表示所述多个非易失性存储单元各自的电阻值是处于所述第2电阻值范围,还是处于所述第3电阻值范围。
某一实施方式的非易失性存储装置也可以进一步具有循环运算电路,该循环运算电路以所述第2数字数据为初始值而进行运算,并通过所述运算而生成数据系列与所述第2数字数据不同的进行了变形的第2数字数据;所述识别信息生成电路基于所述第1数字数据和所述进行了变形的第2数字数据而生成所述个体识别信息。
也可以在某一实施方式中,所述第1数字数据按照每一个规定的数据位数被分配到多个地址;所述循环运算电路进行分别被分配到所述多个地址的所述第1数字数据的一部分的读出,对于每一个所述读出,反复进行以所述第2数字数据为所述初始值的所述运算,从而生成数据位数与所述第1数字数据的所述一部分相等的所述进行了变形的第2数字数据;所述识别信息生成电路对于每一个所述第1数字数据的一部分生成所述个体识别信息。
也可以在某一实施方式中,在读出分别被分配到所述多个地址的所述第1数字数据的所述一部分时,所述读出电路通过变更所述多个地址的读出顺序来变更所述识别信息生成电路中的所述第1数字数据的所述一部分与所述进行了变形的第2数字数据的组合。
也可以在某一实施方式中,所述非易失性存储装置从所述非易失性存储装置的外部接受表示所述多个地址的所述读出顺序的挑战输入,将根据所述组合所生成的所述个体识别信息作为响应输出而输出到所述非易失性存储装置的外部,从而所述非易失性存储装置基于所述挑战输入和所述响应输出之间的关系而从所述非易失性存储装置的外部加以认证。
在某一实施方式中,所述多个非易失性存储单元各自也可以具有包含第1电极、第2电极、以及配置在所述第1电极和所述第2电极之间的电阻变化层的电阻变化元件。
在某一实施方式中,所述电阻变化层也可以包含绝缘体的层。
在某一实施方式中,所述电阻变化层也可以具有贯穿所述绝缘体的层的局部区域。
在某一实施方式中,所述电阻变化层也可以包含金属氧化物。
在某一实施方式中,所述金属氧化物也可以是氧缺位型。
在某一实施方式中,所述金属氧化物也可以是选自过渡金属氧化物以及铝氧化物之中的至少1种。
在某一实施方式中,所述金属氧化物也可以是选自钽氧化物、铪氧化物以及锆氧化物之中的至少1种。
也可以在某一实施方式中,所述绝缘体包含金属氧化物,所述局部区域包含含氧率比所述绝缘体更低的氧缺位型金属氧化物。
某一实施方式的集成电路卡具有上述中任一项所述的非易失性存储装置、和输出个体识别信息的输入/输出接口部。
某一实施方式涉及一种非易失性存储装置的认证方法,其是用于认证所述非易失性存储装置为正规装置的认证方法,其中,所述非易失性存储装置在出货前,读出所述第1数字数据和所述第2数字数据而保持在外部认证装置中,所述非易失性存储装置在出货后,当要使用所述非易失性存储装置时,所述外部认证装置使用多个所述挑战输入来接收所述响应输出,并对使用所述外部认证装置预先保持的所述第1数字数据和所述第2数字数据而进行运算的结果与所述接收的响应输出是否一致进行判断,在一致的情况下,所述非易失性存储装置便认证为正规的装置。
某一实施方式涉及一种个体识别信息生成方法,其使用利用电阻值的变化来存储数据的电阻变化型非易失性存储单元而生成个体识别信息,其中,将具有使用至少1个阈值对所述电阻值加以判别的多个非易失性存储单元的存储器阵列中含有的、属于由所述至少1个阈值加以判别的N(N为2以上的整数)个电阻值范围中的1个电阻值范围的多个非易失性存储单元选择出来,取得与所述选择的各非易失性存储单元的所述电阻值有关的电阻值信息,以所述取得的各非易失性存储单元的电阻值信息为基础而算出2值化基准值,根据所述各非易失性存储单元的电阻值信息和所述2值化基准值之间的关系而取得第1数字数据,并取得与所述第1数字数据不同且与所述电阻值不相关的第2数字数据,以所述第1数字数据和所述第2数字数据为基础而生成所述个体识别信息。
在本发明中,组件、装置的全部或者一部分、或者方框图的功能模块的全部或者一部分也可以通过包含半导体装置、半导体集成电路(IC)或者LSI(large scaleintegration:大规模集成电路)的一个或者一个以上的电子电路来执行。LSI或者IC既可以集成于一个芯片上,也可以组合多个芯片而构成。例如,存储元件以外的功能模块也可以集成于一个芯片上。在此,虽然称之为LSI或者IC,但称呼方式随集成程度的不同而变化,也许称之为系统LSI、VLSI(very large scale integration)或者ULSI(ultra large scaleintegration)。在LSI的制造后能够编程的现场可编程门阵列(Field Programmable GateArray,FPGA)或者能够进行LSI内部的接合关系的重构或者LSI内部的电路划区的设置的可重构逻辑设备(reconfigurable logic device)也能够以相同的目的使用。
再者,组件、装置或者装置的一部分的全部或者一部分功能或者操作可以通过软件处理来执行。在此情况下,软件被记录于一个或者一个以上的ROM、光盘、硬盘驱动器等永久记录介质上,在软件采用处理装置(processor)来执行的情况下,软件使软件内的特定功能在处理装置(processor)和周边的装置中执行。系统或者装置也可以具有记录着软件的一个或者一个以上的永久记录介质、处理装置(processor)以及所需要的硬件设备例如接口。(本发明中,框图中的单元、器件、零件、部件或功能块的全部或一部分可以实现为一个或多个电路,包括但不限于半导体装置、半导体集成电路(IC)或LSI。LSI或IC可以集成到一个芯片中,也可以是多个芯片的组合。例如,除存储器以外的功能块可以集成到一个芯片中。这里使用的名称是LSI或IC,但根据集成程度,它也可以被称为系统LSI、VLSI(超大规模集成)或ULSI(巨大规模集成)。现场可编程门阵列(FPGA)可在制造LSI后编程,或允许重新配置LSI内部电路单元的连接或设置的可重构逻辑器件可用于相同目的。
此外,还可以通过执行软件来实现单元、器件、零件或部件的全部或部分功能或操作。在这种情况下,软件被记录在诸如ROM、光盘或硬盘驱动器的一个或多个非暂时性记录介质上,并且当软件被处理器执行时,软件使得处理器和外围设备一起执行在软件中指定的功能。一种系统或装置可以包括这样一个或多个记录软件的非暂时性记录介质、处理器以及如接口之类的必要硬件设备。)
下面参照附图,就基于这些见解的本发明的实施方式的详细情况进行说明。
以下说明的实施方式均示出了一具体例子。以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、步骤、步骤的顺序等说到底仅为一个例子,并不对本发明进行限定。在以下的实施方式的构成要素中,对于在表示本发明的最上位概念的独立权利要求中没有记载的构成要素,作为任意的构成要素进行说明。另外,在附图中,对于标注相同符号的构成要素,往往将其说明予以省略。另外,为了附图的容易理解而示意表示了各自的构成要素,它往往不是形状以及尺寸比等的精确表示。另外,在制造方法中,可以根据需要变更各工序的顺序等,而且可以追加其它公知的工序。
(实施方式的非易失性存储装置的概要)
图1是表示实施方式的非易失性存储装置100的概略构成的一个例子的方框图。另外,图2是表示实施方式的非易失性存储装置100所具有的存储单元的概略构成的一个例子的剖视图。非易失性存储装置100为电阻变化型非易失性存储装置。
实施方式的非易失性存储装置100至少具有存储单元阵列90和控制装置93。存储单元阵列90具有将多个存储单元91配置为阵列状的构成。多个存储单元91具有图2的电阻变化型元件,根据电阻值的不同而存储数字数据。
首先,就非易失性存储装置100所具有的“用户数据的存储功能”进行说明。一般地说,将装置利用者(用户)欲存储于装置中的任意的数字数据定义为用户数据。在将用户数据存储于存储单元阵列90中的情况下,根据由控制装置93进行的控制,对于从装置外输入的用户数据,将以至少1个阈值为基准而分为至少2值的数字信息分配存储到在阈值以上的电阻值范围被写入的存储单元和在低于阈值的电阻值范围被写入的存储单元中。在读出被存储的用户数据的情况下,根据由控制装置93进行的控制,以阈值为判定基准而恢复为原来的数字数据,并将其向装置外输出。此外,控制装置未必需要为非易失性存储装置的一部分,也可以使用连接到装置外的控制装置,进行以下所说明的动作。
其次,就成为非易失性存储装置100所具有的装置固有的数字ID数据的基础的“第1数字数据生成功能”进行说明。根据本实施方式的构成,利用所述非易失性存储装置而生成装置固有的数字ID数据。控制装置93为了生成成为用于生成所述数字ID数据的基础的第1数字数据,从电阻值处于同一电阻值状态的存储单元91组取得多个电阻值信息,并对电阻值信息的偏差的中间值进行检测。以基于被检测的中间值的阈值为基准,判定给处于同一电阻值状态的存储单元组的各存储单元分配0或者1的数字数据中的某一个值,从而生成在后述的数字ID数据的生成中使用的第1数字数据。所谓同一电阻值状态,是指在存储所述用户数据时,处于为分配数字信息的1个状态而使用的1个电阻值范围的状态。
一般地说,在非易失性存储装置中,当例如将数字量的最小单位即2值信息分配给存储单元所具有的物理量时,根据该物理量属于规定的阈值以上的某一个范围、或者属于低于规定的阈值的某一个范围来改变是分配2值信息中的哪一个。近年的非易失性存储装置具有错误校正电路。根据由错误校正电路进行的错误校正处理,即使在一部分存储单元的物理量没有进入到为分配2值信息而预先设想的范围的情况下,由其物理量得到的2值信息也可以正确地得以恢复。这意味着形成所述第1数字数据的存储单元组中的一部分也可以不在同一电阻值范围。作为本说明书的定义,只要形成所述第1数字数据的存储单元组的至少多于半数的存储单元处于同一电阻值状态,就设定为可以实现本发明的诸功能。
另外,非易失性存储装置100具有成为装置固有的数字ID数据的基础的“第2数字数据生成功能”。另外,非易失性存储装置100具有“随机数数据的数据生成功能”、“数据错误附加功能”以及“挑战-响应功能”。这些各种处理的详细情况容后叙述。
非易失性存储装置100所具有的这些多个功能既可以将所有的多个功能搭载于装置中,也可以组合搭载它们的一部分。各功能的具体的实现方法在以后进一步进行说明,但本发明并不局限于其方法,只要与上述的想法相同,就包含在本发明中。
在生成非易失性存储装置100的作为个体识别信息加以利用的数字ID数据时,对由各电阻值属于同一电阻值范围的多个非易失性存储单元生成的前述第1数字数据加以利用。用户数据不会写入该多个非易失性存储单元中。也就是说,除了装置固有的数字ID数据发生变更的情况以外,由于不会进行电阻值的改写,因而各非易失性存储单元的电阻值被固定在预先规定的电阻值范围。各电阻值在同一电阻值范围内产生偏差,其偏差成为非易失性存储装置100所固有的信息的基础。“电阻值范围”的详细情况参照后述的图3进行详细的说明。
所谓“电阻值信息”,是指与电阻值具有相关关系的信息,既可以是电阻值本身,也可以是根据电阻值进行增减而得到的值。作为根据电阻值进行增减而得到的值,也可以是例如后述那样的与存储单元并联连接的电容器中积蓄的电荷经由存储单元而进行放电的放电时间,或者相反,是处于与放电过的电容器并联连接的关系的存储单元中流过规定的恒电流而充电至规定水平的充电时间。该放电时间或者充电时间也可以是以规定的时钟周期进行计数的计数值等。此外,电容器并不局限于元件,例如也可以是布线等的寄生电容、或者晶体管的扩散电容。
电阻值信息也可以是由规定分辨能力的读出放大器电路测定的值。或者,电阻值信息也可以是通过判定由读出放大器电路测定的值符合利用阈值划分的多个电阻值范围中的哪一个来得到的值。在此情况下,多个电阻值范围分别也可以是将一部分的电阻值范围更细地进行划分的范围。
在图2所示的例中,存储单元91所具有的电阻变化元件120包括基底层(例如基板)122、第1电极124、电阻变化层126以及第2电极128。用于选择特定的存储单元的晶体管以及二极管等的选择元件也可以与各自的存储单元连接,但在图2中并未图示而予以省略。
存储单元91具有能够取得通过施加不同的多个电信号而使电阻值在多个可变电阻值范围之间可逆地转变的可变状态的性质。
图3是表示第1实施方式的非易失性存储装置所具有的存储单元的电阻值范围的一个例子的图。正如图3所例示的那样,存储单元91也可以至少具有可变状态和初始状态这2个状态。
所谓“初始状态”,是指电阻值处于与可变电阻值范围中的哪一个都并不重复的初始电阻值范围的状态。处于初始状态的存储单元只要不进行成形(forming),就不会成为可变状态。所谓“成形”,是指对存储单元施加规定的电应力,使存储单元向存储单元的电阻值在多个可变电阻值范围之间可逆地转变的状态变化。
为成形而施加的电应力(成形应力)例如有时为具有规定的电压和时间宽度的电脉冲,有时也为将多个电脉冲组合而成的电脉冲。成形应力也可以是累积的应力。在此情况下,当应力的累积量超过规定量时,存储单元91(图1)从初始状态转变为可变状态。
在本实施方式中,存储单元91在制造后,设定为具有如下的性质:如果没有进行成形,就不会处于电阻值在多个可变电阻值范围之间可逆地转变的状态。也就是说,假设在采用半导体工艺等制造后且在施加成形应力前的电阻变化元件处于初始状态而进行说明。
然而,该性质是一个例子,并不是必须的。存储单元91也可以不是能够取初始状态的元件,例如也可以是只具有可变状态的所谓无成形的元件。
[电阻变化元件的构成]
在图2所示的例子中,电阻变化元件120具有在第1电极124和第2电极128之间配置电阻变化层126的构成。电阻变化层126可以例如由金属氧化物、更详细地说例如由过渡金属氧化物构成。处于可变状态的存储单元91的电阻变化元件120具有如下的性质:通过在第1电极124和第2电极128之间施加电信号(例如电压),使第1电极124和第2电极128之间的电阻值在多个可变电阻值范围之间可逆地转变。
处于初始状态的存储单元91的电阻变化元件120的电阻变化层126也可以将第1电极124和第2电极128之间绝缘。所谓绝缘,具体地说可以设定为例如2MΩ以上。电阻变化元件120的电阻变化层126也可以具有由绝缘体构成的层。所谓绝缘体,具体地说可以设定为例如电阻率在30Ω·m以上的材料。电阻变化元件120的电阻变化层126通过由绝缘体构成,可以稳定地维持初始状态的存储单元的电阻特性。
与通过电信号的施加而使电阻值发生变化的可变状态的电阻变化元件不同,初始电阻值范围可以根据电阻变化元件的材料、大小、形状以及制造条件等而进行某种程度的调整。例如,特别在电阻变化层126为层叠构造的情况下,可以根据氧浓度较高的层的厚度、形成时的氧浓度而任意地进行调整,但对于每一个个别的存储单元则不能调整。
上述的初始状态与通过电信号的施加而使电阻值发生转变的可变状态相比更为稳定。因此,利用初始状态和可变状态的差异,可以稳定地保持数据。
所谓表示电阻值范围的电阻值,例如可以设定为比向元件施加使处于初始状态的元件转变为可变状态的成形应力、以及使处于可变状态的元件的电阻值在多个可变电阻值范围之间变化的电信号之中的哪一个都小的电压而读出时所得到的电阻值。
此外,成形应力由向存储单元91施加的电压振幅的量、脉冲的宽度以及累积施加时间等决定,各个值对于每一个存储单元阵列90内的存储单元91可以不同。此外,所谓累积施加时间,例如是指电阻状态从初始状态直至变化为可变状态而施加的电脉冲的脉冲宽度的合计。因此,将最低限度需要的电应力规定为成形应力的参数的具体值是使元件直至变化为可变状态而对每一个成为对象的存储单元91施加的电应力的电压、脉冲宽度以及累积施加时间等值,不是绝对的固定值,而是具有规定偏差的值。而且可以推测每一个这种元件的成形中的电应力的偏差成为其后的处于可变电阻值范围的各单元的电阻值的偏差的主要原因,从而难以对每一个元件人为地进行控制。
此外,成形应力通常是比为了使处于可变状态的存储单元的电阻值在多个可变电阻值范围之间可逆地变化而施加的电信号更强的电信号。具体地说,成形应力在电压的绝对值、脉冲宽度以及累积施加时间之中的至少任一种中,可以设定为比为了使处于可变状态的存储单元的电阻值发生变化而施加的电信号更大的电信号。
在可变状态下,虽然电压以及脉冲宽度等不同,但将通过施加同极性的电信号而使电阻值发生变化者称为单极型电阻变化元件。更具体地说,例如,如果在电流从第2电极128向第1电极124流动的方向以+2V施加宽度为1μSec的电信号(电脉冲),则电阻变化元件的电阻值变化为规定的高电阻水平(第1电阻值范围:也称为HR水平或者高电阻水平),如果在电流从第2电极128向第1电极124流动的方向以+4V施加宽度为50nSec的电信号,则电阻变化元件的电阻值变化为规定的低电阻水平(第2电阻值范围:也称为LR水平或者低电阻水平)。将这种通过施加同极性的电信号而使电阻值可逆地发生变化者称为单极型电阻变化元件。
另一方面,在可变状态下,将通过施加不同极性的电信号而使电阻值发生变化者称为双极型电阻变化元件。更具体地说,例如,如果在电流从第2电极128向第1电极124流动的方向以+2V施加宽度为50nSec的电信号,则电阻变化元件的电阻值变化为规定的高电阻水平(第1电阻值范围:也称为HR水平),如果在电流从第1电极124向第2电极128流动的方向以+2V施加宽度为50nSec的电信号,则电阻变化元件的电阻值变化为规定的低电阻水平(第2电阻值范围:也称为LR水平)。将这种通过施加相反极性的电信号而使电阻值可逆地发生变化者称为双极型电阻变化元件。
当然,在双极型电阻变化元件中,例如为了使动作稳定,不仅使极性不同,还可以使在变化为HR水平的情况下(也称为高电阻化)施加的电信号、和变化为LR水平的情况下(也称为低电阻化)施加的电信号中的脉冲宽度或者电压的绝对值不同。
电阻变化层126也可以由金属氧化物构成。电阻变化层126也可以具有由氧缺位型金属氧化物构成的层。构成电阻变化层126的金属氧化物既可以是过渡金属氧化物以及铝氧化物之中的至少任一种,也可以是钽氧化物、铁氧化物、铪氧化物以及锆氧化物之中的至少任一种。
单极型电阻变化元件的电阻变化层的材料可以使用钛(Ti)氧化物、镍(Ni)氧化物、铝(Al)氧化物等。另一方面,双极型电阻变化元件的电阻变化层的材料可以使用钽(Ta)氧化物、铪(Hf)氧化物、铝(Al)氧化物、铁(Fe)氧化物等。
即使在使用相同材料的氧化物的情况下,通过与电极材料的组合和氧化物的层叠构造等,有时也可以得到单极型电阻变化元件和双极型电阻变化元件这两者。此外,如果电阻变化层的材料使用钽氧化物,则由于电阻变化元件显示出良好的特性,因而在本实施方式中予以特别详细的例示。
第1电极124以及第2电极128的材料例如可以使用铱(Ir)、铂(Pt)、钨(W)、铜(Cu)、铝(Al)、氮化钛(TiN)、氮化钽(TaN)以及氮化钛铝(TiAlN)等。
此外,在图2所示的例子中,第1电极124与第2电极128相比面积大,但本发明并不局限于此。例如可以将第1电极124适用于布线的一部分等,与半导体工艺匹配而适当设计成最优的形状。基底层122也同样,可以根据半导体工艺而适当地予以省略或者变更。
电阻变化层126也可以将与第1电极124连接的第1电阻变化层、和与第2电极128连接的第2电阻变化层这至少2层层叠而构成。
第1电阻变化层可以由氧缺位型第1金属氧化物构成,第2电阻变化层可以由氧缺位度小于第1金属氧化物的第2金属氧化物构成。第2电阻变化层也可以是由绝缘体构成的层。在第2电阻变化层中,可以形成随着电脉冲的施加而使氧缺位度可逆地发生变化的微小的局部区域。局部区域可以认为包含由氧缺陷位点构成的细丝。局部区域也可以是贯穿第2电阻变化层的导电路径。绝缘体也可以由金属氧化物构成,导电路径也可以由含氧率低于绝缘体的氧缺位型金属氧化物构成。
所谓“氧缺位度”,是指在金属氧化物中,相对于构成其化学计量组成(在存在多个化学计量组成的情况下,为其中电阻值最高的化学计量组成)的氧化物的氧量而不足的氧的比例。化学计量组成的金属氧化物与其它组成的金属氧化物相比,具有更稳定且更高的电阻值。
例如,在金属为钽(Ta)的情况下,因为基于上述定义的化学计量组成的氧化物是Ta2O5,所以可表示为TaO2.5。TaO2.5的氧缺位度为0%,TaO1.5的氧缺位度则为:氧缺位度=(2.5-1.5)/2.5=40%。另外,在氧过剩的金属氧化物中,氧缺位度为负值。此外,在本说明书中,只要没有特别说明,则设定氧缺位度包括正值、0、负值而进行说明。
氧缺位度较小的氧化物由于更接近于化学计量组成的氧化物,因而电阻值较高,氧缺位度较大的氧化物由于更接近于构成氧化物的金属,因而电阻值较低。
所谓“含氧率”,是指氧原子在总原子数中所占的比率。例如,Ta2O5的含氧率是氧原子在总原子数中所占的比率(O/(Ta+O)),为71.4atm%。因此,在氧缺位型钽氧化物中,含氧率大于0且小于71.4atm%。例如,在构成第1金属氧化物的金属和构成第2金属氧化物的金属属同一种类的情况下,其含氧率处在与氧缺位度相对应的关系。也就是说,在第2金属氧化物的含氧率大于第1金属氧化物的含氧率时,第2金属氧化物的氧缺位度则小于第1金属氧化物的氧缺位度。
构成电阻变化层的金属也可以使用钽以外的金属。作为构成电阻变化层的金属,可以使用过渡金属以及铝(Al)之中的至少任一种。作为过渡金属,可以使用钽(Ta)、钛(Ti)、铪(Hf)、锆(Zr)、铌(Nb)、钨(W)、镍(Ni)、铁(Fe)等。过渡金属由于可以取多个氧化状态,因而通过氧化还原反应可以实现不同的电阻状态。
例如,当使用铪氧化物时,在当第1金属氧化物的组成设为HfOx时x为0.9~1.6、且当第2金属氧化物的组成设为HfOy时y为大于x的值的情况下,可以使电阻变化层的电阻值稳定且高速地变化。在此情况下,第2金属氧化物的膜厚也可以设定为3nm~4nm。
另外,当使用锆氧化物时,在当第1金属氧化物的组成设为ZrOx时x为0.9~1.4,且当第2金属氧化物的组成设为ZrOy时y为大于x的值的情况下,可以使电阻变化层的电阻值稳定且高速地变化。在此情况下,第2金属氧化物的膜厚也可以设定为1nm~5nm。
构成第1金属氧化物的第1金属和构成第2金属氧化物的第2金属也可以使用不同的金属。在此情况下,第2金属氧化物与第1金属氧化物相比,也可以是氧缺位度较小,即电阻较高。通过设定为这样的构成,在电阻变化时施加到第1电极124和第2电极128之间的电压中,给第2金属氧化物分配更多的电压,从而能够更容易引起第2金属氧化物中发生的氧化还原反应。
另外,在构成作为第1电阻变化层的第1金属氧化物的第1金属、和构成作为第2电阻变化层的第2金属氧化物的第2金属使用互不相同的材料的情况下,第2金属的标准电极电位也可以比第1金属的标准电极电位低。标准电极电位表示其值越高,就越难以氧化的特性。由此,在标准电极电位相对较低的第2金属氧化物中,容易发生氧化还原反应。此外,电阻变化现象可以认为是通过以下情况而表现出来的:在形成于电阻较高的第2金属氧化物中的微小的局部区域中发生氧化还原反应,使细丝(导电路径)发生变化,从而其电阻值(氧缺位度)发生变化。
例如,第1金属氧化物使用氧缺位型钽氧化物(TaOx),第2金属氧化物使用钛氧化物(TiO2),由此可以获得稳定的电阻变化动作。钛(标准电极电位=-1.63eV)是标准电极电位比钽(标准电极电位=-0.6eV)低的材料。这样一来,第2金属氧化物使用标准电极电位比第1金属氧化物低的金属的氧化物,由此在第2金属氧化物中更容易发生氧化还原反应。作为其它的组合,成为高电阻层的第2金属氧化物可以使用铝氧化物(Al2O3)。例如,第1金属氧化物也可以使用氧缺位型钽氧化物(TaOx),第2金属氧化物也可以使用铝氧化物(Al2O3)。
层叠构造的电阻变化层中的电阻变化现象都可以认为是在形成于电阻较高的第2金属氧化物中的微小的局部区域中发生氧化还原反应,使局部区域中的细丝(导电路径)发生变化,从而其电阻值发生变化。
也就是说,当向与第2金属氧化物连接的第2电极128以第1电极124为基准而施加正的电压时,电阻变化层中的氧离子被拉近到第2金属氧化物侧。由此,在形成于第2金属氧化物中的微小的局部区域中发生氧化反应,从而氧缺位度减少。可以认为其结果是,局部区域中的细丝难以连接,从而电阻值增大。
相反,当向与第2金属氧化物连接的第2电极128以第1电极124为基准而施加负的电压时,第2金属氧化物中的氧离子被排挤到第1金属氧化物侧。由此,在形成于第2金属氧化物中的微小的局部区域中发生还原反应,从而氧缺位度增加。可以认为其结果是,局部区域中的细丝容易连接,从而电阻值减少。
与氧缺位度更小的第2金属氧化物连接的第2电极128例如由铂(Pt)、铱(Ir)、钯(Pd)等、标准电极电位比构成第2金属氧化物的金属以及构成第1电极124的材料高的材料构成。另外,与氧缺位度更高的第1金属氧化物连接的第1电极124例如也可以由钨(W)、镍(Ni)、钽(Ta)、钛(Ti)、铝(Al)、氮化钽(TaN)、氮化钛(TiN)等、标准电极电位比构成第1金属氧化物的金属低的材料构成。标准电极电位表示其值越高,就越难以氧化的特性。
也就是说,第2电极128的标准电极电位V2、构成第2金属氧化物的金属的标准电极电位Vr2、构成第1金属氧化物的金属的标准电极电位Vr1、以及第1电极124的标准电极电位V1也可以满足Vr2<V2、以及V1<V2的关系。再者,也可以满足V2>Vr2、以及Vr1≥V1的关系。
通过设计为上述的构成,在第2电极128和第2金属氧化物的界面附近的第2金属氧化物中,选择性地发生氧化还原反应,从而可以得到稳定的电阻变化现象。
电阻变化层126也可以至少包括由具有用TaOx(其中0≤x<2.5)表示的组成的第1电阻变化层、和具有用TaOy(其中x<y<2.5)表示的组成的第2电阻变化层层叠而成的层叠构造。不用说,可以适当配置其它层、例如由钽氧化物以外的金属氧化物构成的第3电阻变化层等。
在此,TaOx也可以满足0.8≤x<1.9,TaOy也可以满足2.1≤y<2.5。含有钽的第2电阻变化层的厚度也可以为1nm~8nm。通过层叠氧缺位度的不同的层,可以决定双极型中的电阻变化的方向。例如,将第2电阻变化层配置在第2电极128侧,将第1电阻变化层配置在第1电极124侧。根据这样的构成,因电流从第2电极128侧向第1电极124侧流动的方向的电压施加而高电阻化,因电流向相反方向流动的方向的电压施加而低电阻化。当然,如果构成为使第2电阻变化层与第1电极124接触、使第1电阻变化层与第2电极128接触,则电阻变化和电压施加的方向之间的关系发生逆转。
[可变状态下的电阻变化元件的特性]
图4是表示处于可变状态的双极型电阻变化元件的特性的一个例子的图。在图4中,第1电极124的材料为TaN,第2电极128的材料为Ir。电阻变化层126至少包括由具有用TaOx(其中0<x<2.5)表示的组成的第1含钽层、和具有用TaOy(其中x<y)表示的组成的第2含钽层层叠而成的层叠构造。第1含钽层与第1电极124接触,第2含钽层与第2电极128接触。TaOx满足0.8≤x≤1.9,TaOy满足2.1≤y≤2.5。第2含钽层的厚度为8nm以下,整个电阻变化层126的厚度为50nm以下。与各电极的接触面积和图3的测定中使用的电阻变化元件相等。
图4的横轴表示所施加的电信号的电压,纵轴表示施加电信号后的电阻变化元件的电阻值(电阻值由施加了读出电压VR时的电流算出)。如果从图中的开始的位置使电平向正极性侧慢慢地提高,则从施加电压超过+1.1V时开始,电阻值慢慢地上升,在施加电压为+2.0V时,大约达到100kΩ。相反,可知当使电平向负极性侧慢慢地下降而超过-1.1V时,则低电阻化为大约10kΩ左右,从而回到开始的电阻值。此时,在电阻变化层126中,将第2电阻变化层配置在第2电极128侧,将第1电阻变化层配置在第1电极124侧。将电流从第2电极128向第1电极124流动的电信号的施加定义为正极性施加。在正极性施加中,电阻变化元件120变化为HR水平。另外,将电流向相反方向流动的施加定义为负极性施加。在负极性施加中,电阻变化元件120变化为LR水平。如果将从LR向HR变化的电平设定为高电阻化电压(VH),将从HR向LR变化的电平设定为低电阻化电压(VL),则可知在图4的情况下,当其绝对值为|VH|=|VL|=2.0V左右时,能够采用共通的电源电压充分地使低电阻状态和高电阻状态可逆地推移。
图5是表示IEDM Technical Digest.13-15Dec.2004,p.587中公开的处于可变状态的单极型电阻变化元件的特性的一个例子的示意图。如该论文所示,可知具有由NiO、TiO2、HfO2、ZrO2构成的电阻变化层的电阻变化元件显示单极特性,另外,由这些过渡金属氧化物构成的电阻变化层在刚制造后不久为绝缘体,而且借助于施加成形应力的工艺,形成导电路径而转变为可变状态。
通过电阻变化层的材料和电极的组合、以及在电阻变化材料中掺杂的杂质的材料等,能够得到无论在正电压侧还是在负电压侧都对称地以单极型发生电阻变化的元件。图5例示出了这种元件的特性。
在图5所示的例子中,如果偏置电压的绝对值超过0.5V,则元件向重置状态即HR水平推移,如果偏置电压的绝对值超过1.0V,则元件向设置状态即LR水平推移。在这样的元件中,通过施加同极性而电压不同的电信号,便能够在2个电阻状态之间可逆地转变。但是,当为特性如图5那样的单极型电阻变化元件时,如果进行控制以使得通过施加+0.5V以上且低于+1V的正极性的电信号而高电阻化、且通过施加-1V以下(绝对值在1V以上)的负极性的电信号而低电阻化,则也可以用作双极型电阻变化元件。在本第1实施方式中,双极型和单极型中的无论哪种类型都可以使用。
电阻变化元件通过所施加的电信号的电压(绝对值)、宽度以及施加次数等的组合,也可以作为电阻值在3以上的可变电阻值范围之间可逆地转变的多值存储器使用。例如,将钽氧化物用作电阻变化层的元件显示出良好的特性,能够应用于多值存储器。
通过断面解析观察到:这样的电阻变化元件(ReRAM元件)的电阻变化通过在电阻变化层126内产生将第2电极128和第1电极124电连接的导电性路径而发生。发现导电性路径的直径为30~10nm以下,比采用最尖端的微细的半导体工艺制作的布线宽度更小。也就是说,上述说明的电阻变化元件的特性即使采用被看作是平版印刷的加工极限的超微细半导体工艺进行制造,也可以维持同样稳定的电阻变化的特性。
另外,在电阻变化元件(ReRAM元件)的形成电阻变化层的工艺中,不需要超过几百℃的高温处理。因此,不会在加热工艺的作用下,使对CMOS晶体管的特性劣化。也就是说,电阻变化元件具有如下的特征:与使用闪存等浮动门型晶体管的存储器元件相比,与半导体工艺的亲和性非常优良,即使制造工艺的微细化得以发展,电阻变化的可靠性也不会降低。因此,例如即使在控制器等的逻辑电路和电阻变化元件形成于同一芯片上的情况下,也能够抑制对逻辑电路的特性产生的影响而形成电阻变化元件。另外,通过使逻辑电路和工艺通用化,可以降低制造成本。
所谓可变状态,是指通过施加不同的多个电信号而能够使电阻值在多个可变电阻值范围之间可逆地转变的状态。
存储单元阵列90所具有的多个存储单元91也可以包含可变状态的存储单元和初始状态的存储单元。存储单元阵列90也可以利用各存储单元91是处于初始状态还是处于可变状态的不同而记录数据。
存储单元阵列90可以利用后述的第1种数据、第2种数据以及第3种数据中的任一种而将数据记录于各存储单元91中。存储单元阵列90也可以包含记录有第3种数据的存储单元91、和记录有第1种数据以及第2种数据中的任一者或者两者的存储单元91。
初始电阻值范围以及可变电阻值范围可以设定为:刚制造后不久的存储单元91的电阻值进入初始电阻值范围而不会进入可变电阻值范围。初始电阻值范围以及可变电阻值范围可以设定为:变化为可变状态后的存储单元91的电阻值进入可变电阻值范围而不会进入初始电阻值范围。具有电阻变化元件的非易失性存储元件的存储单元能够具备这样的特性是众所周知的。使用公知的各种各样的材料,可以制造具备这样的特性的存储单元91。
初始状态的存储单元91包括受到不是变化为可变状态的电应力即成形应力的某种电应力的状态。初始状态的存储单元91包括受到不是成形应力的某种电应力等而使电阻值从刚制造后不久的电阻值开始在初始电阻值范围内发生变化的状态。
控制装置93也可以构成为:通过判定所选择的存储单元91是处于初始状态还是处于可变状态而读出记录的数据。
在图3所示的例子中的元件的构成中,第1电极124的材料为TaN(氮化钽),第2电极128的材料为Ir(铱),电阻变化层126的材料为钽氧化物,整个电阻变化层126的厚度为50nm以下,电阻变化层126具有氧浓度不同的2层层叠构造。与第1电极124接触的层是氧浓度较低的层,如果将组成设定为TaOx,则0<x<2.5。与第2电极128接触的层是氧浓度较高的层,如果将组成设定为TaOy,则y≥2.1,厚度为5.5nm左右。第1电极124与电阻变化层126的接触面以及第2电极128与电阻变化层126的接触面的面积为0.25μm2以下。
下面就存储单元的状态的变化进行具体的说明。以下将使用“HR状态”以及“LR状态”这样的术语。所谓“HR状态”,是指施加了HR脉冲(高电阻化脉冲)的存储单元的状态。所谓“LR状态”,是指施加了LR脉冲(低电阻化脉冲)的存储单元的状态。
关于成形应力,是累积性地施加电压为+3.5V、脉冲宽度为5μSec的脉冲。通过对每一个单元施加适当的累积脉冲,图3的处于(1)的初始状态的存储单元向(2)的初次HR状态推移。推移到初次HR状态后,施加低电阻化脉冲(用于使元件的电阻值从第1电阻值范围向第2电阻值范围变化的脉冲:第2电信号)即电压为-2.4V、脉冲宽度为50nSec的脉冲。由此,推移到(3)的第1数字数据设置状态。通过对处于第1数字数据设置状态的单元进而施加高电阻化脉冲(用于使元件的电阻值从第2电阻值范围向第1电阻值范围变化的脉冲:第1电信号)即电压为+1.8V、脉冲宽度为50nSec的脉冲,便向第1电阻值范围变化。在此以后的存储单元成为可变状态的单元。也就是说,在将存储单元的电阻值用于生成本发明的数字ID数据的情况下,就在图3的第1数字数据设置状态下加以利用。此外,在本发明的例子中,例示出了将图3的(3)的状态用作第1数字数据,但(1)的初始状态也有由不可复制的制造上的偏差所带来的电阻值的偏差,因而能够应用后述的方式来加以利用。
此外,脉冲施加的工序并不局限于上述的步骤。例如,(3)的第1数字数据设置状态也可以在存储器元件成为可变状态以后多次交替地重复第1电信号和第2电信号,从而使HR状态和LR状态多次转变,最终成为LR状态而使工序结束,将最后设置的状态设定为(3)的第1数字数据设置状态。
下面参照图6,就图3的第1数字数据设置状态的电阻值偏差的特性进行说明。
图6是对图3中(3)的第1数字数据设置状态的标准化电阻值信息、和关于该存储单元偏差的标准正态分布的偏差之间的关系进行作图而得到的图。
如图6所示,存储单元的正态分布相对于电阻值信息大致以直线分布。由此表明分布的偏差是极其随机的分布现象。如图6所示,检测偏差分布的中间值的电阻值信息(亦称为中间电阻值或者2值化基准值),对该中间电阻值和第1数字数据设置状态的各存储单元的电阻值的大小进行比较,将比较结果分配为数字数据的1或者0。而且通过使用电阻值偏差的随机性,可以作成对每一个非易失性存储装置是唯一且随机的第1数字数据。
下面参照图7,就本发明的第1数字数据不可复制的理由进行说明。图7示出了向上述图3中(3)的第1数字数据设置状态推移时在各种各样的电压脉冲条件下推移时的偏差分布。它是包括从作为晶体管耐压上限的3.3V且脉冲宽度也为通常的10万倍的10ms这一具有强有力的能量的条件、到2V这一比通常弱的脉冲条件在内观察偏差而得到的图。一般地说,在脉冲能量较弱的施加条件和较强的施加条件下,当在被写入的电阻值的分布间有明确的窗口时,可以使用2个施加条件而写入任意的数据。然而,由图7可知:虽然有分布的偏倚以及最大值/最小值的稍稍的差别,但总体上全部条件的分布的中间值与其它条件的分布重叠。也就是说,可知以中间值为基准人为地改变写入条件而区分写入、写入任意的数据等复制是在原理上不可能的偏差现象。
如图7所示,作为在处于相同电阻值范围的存储单元组中分布有电阻值低者和高者的理由,可以认为除了电阻变化元件的工艺偏差以及形状偏差以外,例如成形完成的存储单元随机地产生也是主要原因。
如上所述,金属氧化物中的缺陷位点对于每一个存储单元是随机配置的,通过成形将这些缺陷位点间连接起来而形成细丝。因此,本发明人事前通过实验已经确认:即使在对处于初始状态的多个存储单元施加一定的电应力的情况下,成形完成的存储单元在统计上不均匀地发生。因此,即使在对多个存储单元施加一样的应力的情况下,也随机地形成细丝,变化为上述图3中(2)的初次HR状态的时间对于每一个元件是不同的。因此,电阻变化元件内的金属氧化物中的缺陷位点的数量以及密度对每一个元件产生偏差。缺陷位点的密度以及个数的偏差是每一个元件固有的,由此带来的电阻值的大小也是每一个元件固有的。
图8示出了细丝的发生数对每一个电阻变化元件是不同的。通过初始化脉冲施加(Forming),氧缺陷位点的发生部位和密度对每一个元件是随机的。另外,缺陷相对较多地发生的元件的电阻降低,缺陷相对较少的元件的电阻升高,从而产生偏差。而且这样的偏差是不可控制的。
如图8所示,在氧缺陷位点的形成较多而容易形成细丝路径的情况下,其电阻变化元件的电阻值更为降低。另一方面,当氧缺陷位点的密度即便是一部分有较低的地方时,由于难以形成细丝路径,因而其电阻变化元件的电阻值更加升高。各元件的电阻值产生偏差,对这样的偏差不能人为地进行控制。此外,可以推测只要是通过氧缺陷位点等的连接而形成细丝路径的材料,就能采用同样的机理进行说明。
此外,将在图2的存储单元构造中,电压以第1电极124为基准而向第2电极128施加正的电压的情况设定为正极性。
作为其它的例子,也可以设计为第1电极124以及第2电极128的材料为铂(Pt),电阻变化层126的材料为铪氧化物,电阻变化层126的厚度为30nm,使元件区域的直径为3μm的圆形。此外,在电阻变化层126为HfO1.6的情况下,初始电阻值为几MΩ左右,高电阻值范围为1000~3000Ω左右,低电阻值范围为100~300Ω左右。在此情况下,关于成形应力,例如累积性地施加电压为2~3V、脉冲宽度为100nSec的脉冲。在低电阻化脉冲中,电压为+1.0V,脉冲宽度为100nSec,在高电阻化脉冲中,电压为-1.3V,脉冲宽度为100nSec。
本发明的非易失性存储装置中记录的数据也可以包含第1种数据和第2种数据之中的任一者或者两者。第1种数据利用各存储单元91的电阻值是否处于初始电阻值范围的不同而进行记录。第2种数据也可以不是利用各存储单元91的电阻值是否处于初始电阻值范围的不同、而是利用各存储单元91的电阻值是否处于至少一个可变电阻值范围的不同而进行记录。而且本发明的非易失性存储装置包括第3种数据,该第3种数据在利用处于上述某种同一电阻值范围的存储单元的电阻值偏差而生成成为装置固有的数字ID数据的基础的第1数字数据时使用。
在此情况下,存储单元阵列90也可以具有第1写入地址区域和第2写入地址区域,在第1写入地址区域记录有第1种或者第2种数据之中的任一者或者两者,在第2写入地址区域保管有成为第1数字数据的基础的电阻值状态的存储单元。第1写入地址区域和第2写入地址区域也可以未必作为物理的区域而分离。例如,也可以将各存储单元91对每一个地址按规定的规则分配给第1写入地址区域和第2写入地址区域,由此,数字ID数据的物理上的场所难以被确定,从而防篡改性得以提高。
对构成存储单元阵列90的多个存储单元施加成形应力的工序由于可以有选择性地自由地进行,因而可以自由地变更、选择第1写入地址区域和第2写入地址区域的容量分配以及配置。
图9示出了在第1实施方式中,从处在同一可变电阻值范围的存储单元连续地读出电阻值的例子。所谓电阻值处于至少1个可变电阻值范围,是指存储单元处于同一电阻状态。也就是说,在为二值型存储单元的情况下,例如是指存储单元处于低电阻状态而不处于高电阻状态。该情况与图3中(3)的第1数字数据设置状态相等。
已经确认如果交替施加高电阻化脉冲和低电阻化脉冲,则元件在高电阻状态和低电阻状态间可逆地转变。然后,对处于低电阻状态的元件仅施加1次高电阻化脉冲而使其处于高电阻状态,然后低电阻化脉冲和高电阻化脉冲都不施加而连续地执行1000次读出动作,以进行各自的电阻值信息的读出。读出的时间间隔设定为5μSec。
在图9中,横轴为读出次数,纵轴为标准化了的电阻值信息,示出了具有相同构成的3个电阻变化元件的电阻值的波动。这里所说的所谓电阻值信息,是采用后述的放电方式的读出电路而得到的,值大时表示高的电阻值,小时表示低的电阻值。根据图9,可以确认如下的情况,如果反复读出处于同一电阻状态的元件,则电阻值随机地增减。这种电阻值随机地增减的现象即使在低电阻状态下也可以同样地发生。
这里所叙述的所谓电阻值变动或者电阻值波动,是指从处于不施加使电阻状态变化的电脉冲的状态即同一电阻状态的同一存储单元读出的电阻值随着时间的经过而变动的现象。
图10A、图10B是表示使用逾渗模型(percolation model)而模拟被写入为任意的电阻状态时形成电阻变化层(例如局部区域)中的细丝的结果的一个例子的图。
所谓逾渗模型,是基于以下理论的模型,该理论为:对于电阻变化层中随机分布的缺陷位点,如果缺陷位点等的密度超过某一阈值,则缺陷位点等形成连接的概率增加。在此,所谓“缺陷”,例如是指在金属氧化物中氧发生缺位,所谓“缺陷位点的密度”,也与氧缺位度相对应。也就是说,如果氧缺位度增大,则缺陷位点的密度也增大。
在图10A、图10B所示的模拟中,将电阻变化层的氧离子位点近似假定为分隔成格子状的区域(位点),通过模拟求出由随机地形成的缺陷位点所形成的细丝。在图10A以及图10B中,包含“0”的位点表示电阻变化层中形成的缺陷位点。另一方面,成为空白的位点表示氧离子所占有的位点,是指未形成导电路径的高电阻区域。另外,用实线的箭头表示的缺陷位点的簇状物(在上下、左右以及斜方向上于1个位点的范围内相互连接的缺陷位点的集合体)表示在图中的上下方向施加电压的情况下,电阻变化层内形成的细丝即电流流过的路径。
如图10A所示,在电阻变化层的下表面和上表面之间流过电流的细丝由将随机分布的缺陷位点内的上端到下端连接起来的缺陷位点的簇状物构成。根据该逾渗模型,细丝的根数以及形状随机地形成。细丝的根数以及形状的分布形成电阻变化层的电阻值的偏差。
另外,细丝通过上述高电阻化脉冲而使氧离子导入至细丝中,与缺陷位点键合而切断几条细丝路径,从而向高电阻状态推移。相反,如果施加低电阻化脉冲,则再次发生氧离子的脱离,生成缺陷位点而使细丝路径再现,从而向低电阻状态推移。如果在各电阻状态之间细丝路径的根数有充分的差别,则电阻值的差分增大,电阻值的判定边际(margin)增加。
接着,就如图9那样在处于同一电阻状态的元件中电阻值发生波动的现象的机理进行说明。
决定各电阻状态的电阻值的细丝路径的形状、根数以及粗细在时间上是不稳定的。也就是说,通过使氧离子从氧位点脱落出来而生成缺陷位点,或者通过向缺陷位点供给氧离子而使缺陷位点消失,从而细丝路径的形状、根数以及粗细微妙地发生增减。这被观测为时间上的电阻值的波动。图10B是表示它的一个例子的说明图,只是仅仅一个缺陷位点与邻接位点替换,图10A的细丝路径中的一条路径就被断绝。在此情况下,电阻值稍稍增加。基于图的说明予以省略,但与之相反,通过使缺陷位点与邻接位点替换,有时也产生新的细丝路径。在此情况下,电阻值稍稍减少。可以认为图9之类的电阻值的波动现象是基于这样的机理而产生的。实际上,可以认为图中的细丝路径的数量有许多,虽然它的一部分发生增减,但细丝路径的总数不会发生大的变化。也就是说,可以认为在波动现象中,存储单元的电阻状态变化为其它电阻状态这种程度的细丝路径的较大变化不会发生。
根据上述机理,可以认为电阻值发生波动的现象适用于因氧化物中氧离子的移动而使电阻值发生变动的所有电阻变化元件。具体地说,例如作为具有这种性质的存储单元,可以使用将第1电极、金属氧化物和第2电极依次层叠而成的元件。或者,例如可以使用将第1电极、过渡金属氧化物和第2电极依次层叠而成的元件。
这样一来,关于电阻变化型存储装置中使用的存储单元,虽然相对于被写入的电阻值是很小的,但存在电阻值的波动现象。在使用图6所示的中间电阻值、由电阻值的大小关系判别为数字数据的1或者0而得到的第1数字数据中,产生以电阻值波动为原因的错误数据。中间电阻值附近由于在电阻值的偏差分布的中间,因而处于该电阻值附近的存储单元的分布数最多。这些中间附近的存储单元如前所述,由于电阻值随机波动,因而许多位随机地出现错误。
本发明人发现了如下的课题:被写入的电阻值随着放置时间以及温度环境、还有装置的电源环境等的不同,中间电阻值的最优值发生变动,错误率不稳定,从而不能稳定地生成数字ID数据。对于该课题,下面使用图11进行说明。
图11示出了对于每一个放置时间读出在图3所示的数字ID设置状态下被写入的规定位数的存储单元组的电阻值时的偏差范围和电阻中间值。
测定中使用的位数为1Kbit,为了使相对于放置时间的劣化加速而将放置温度设定为175℃。由图11可知:偏差范围随放置时间扩大。再者,可知正如用虚线包围的那样,电阻中间值慢慢地上升。也就是可以说,随着放置时间的增加,电阻值的分布向高电阻侧偏移。
图12示出了以图11所示的初始电阻中间值提取被写入的数字ID数据时的出错率和放置时间之间的关系。出错率表示提取的数据和初次ID数据不同的比例。由图12可知:由于最优的电阻中间值随着放置时间偏移,因而出错率急剧增大。该现象不仅随放置时间,而且也随周边温度的变化以及装置电源电压的变化而发生大的变动。
于是,本发明人设计了如图13以及图14所示的流程。
图13示出了生成数字ID数据、写入非易失性存储装置中的处理流程的一个具体例子。该流程例如在非易失性存储装置从工厂出货前的检查工序时执行。
另一方面,图14示出了将数字ID数据再现的处理流程的一个具体例子。该流程例如每逢从工厂出货后的非易失性存储装置在市场使用时执行。
如前所述,由于生成的数字ID数据包含错误数据,因而通常为了获得真的正确的ID数据而进行错误校正。因此,正如图13和图14那样,在装置的出货前的检查工序时、和和在市场中使用装置的现场使用时,处理的流程是不同的。
在出货前检查时,非易失性存储装置的各存储单元不是处于可变状态,而是处于显示与绝缘电阻接近的电阻值的初始状态。如图13所示,在步骤S1中,执行前述的施加成形应力的成形处理,从而推移至图3中(2)的初次HR状态。接着,在步骤S2中,施加低电阻化脉冲,从而设置成图3中(3)的第1数字数据设置状态。然后,在步骤S3中,将处于第1数字数据设置状态的多个存储单元的电阻值信息读出,在步骤S4中,由读出的电阻值信息对电阻值偏差的分布的中间值进行运算并保持。在步骤S5中,再次从处于第1数字数据设置状态的多个存储单元读出电阻值信息,根据与上述保持的中间值的大小关系生成数字ID数据。
图15示出了数字ID数据的例子。如上所述,将处于第1数字数据设置状态的存储单元的电阻值信息、与作为阈值的电阻值偏差的分布的中间值进行比较,在电阻值信息更小的情况下,给该存储单元分配数据“1”,在电阻值信息更大的情况下,给该存储单元分配数据“0”。由此,可以得到利用了不能人为地进行控制的存储单元的电阻值的、能够唯一地识别非易失性存储装置的数字ID数据。
再回到图13,在步骤S6中,以数字ID数据为基础而运算为校正数据错误所使用的奇偶校验数据,在步骤S7中,将奇偶校验数据记录于其它不同的存储单元中。
接着,参照图14进行说明。当在现场使用装置时,在步骤S8中,与检查时的步骤S3以及步骤S4同样,将多个处于第1数字数据设置状态的多个存储单元的电阻值信息读出,在步骤S9中,由读出的电阻值信息对电阻值偏差的分布的电阻中间值进行运算并保持。进而在步骤S10中,再次从处于第1数字数据设置状态的存储单元读出电阻值信息,根据与上述保持的电阻中间值的关系生成数字ID数据。在步骤S11中,将检查时预先保存的奇偶校验数据读出,在步骤S12中,使用奇偶校验数据来校正在步骤S10中得到的数字ID数据的错误数据。其结果是,在步骤S13通常得到相同的真的数字ID数据。
图16示出了错误校正前的数据错误率的推移。该推移是根据图14的流程在现场使用时检测最优的电阻中间值,用检测的电阻中间值生成数字ID数据时的错误校正前的数据错误率的推移。将前述的错误校正前的数字ID数据称之为原始数字ID数据(Raw DigitalID Data)。在图16中,横轴表示数字ID数据的读出次数,纵轴表示当时的数字ID数据的错误率(出错率)。由图可知:出错率上升受到抑制,以2%~3%的错误率得到了良好的结果。
再者,作为本发明的特征点,可以列举出累积出错率。图17示出了读出次数和累积出错率之间的关系。所谓累积出错率,是在多次将原始数字ID数据读出并在新的不同的位中发生了错误的情况下依次相加,根据累计的出错的位数求出错误率所得到的值。在图16中,虽然每次读出的出错率较低,为2~3%,但由于不同的位发生替换,因而累积出错率随着读出次数的增加而上升。由图可知:在2500次的数字ID数据的生成时,有多达14%的位发生错误。也就是说,可以了解出错的位对于每次读出是不同的,出错校正前的ID数据时时刻刻发生变化。根据该特征,即使在受到前述机械学习攻击的情况下,由于学习结果并不确定,无法解析真的数字ID数据,因而可以说对于黑客活动具有较高的耐受性。
接着,就用于实现本发明实施方式的方式的具体的构成例进行说明。在以下的例子中,生成根据非易失性存储单元的电阻值信息与2值化基准值之间的关系而得到的第1数字数据、和与非易失性存储单元的电阻值没有关联性的第2数字数据,然后以第1数字数据和第2数字数据为基础而生成第3数字数据,并将其利用作为数字ID数据,从而实现对于攻击较高的耐受性。
图18是表示实施方式的非易失性存储装置的具体的构成例的框图。此外,图18是一个例子,实施方式的非易失性存储装置的具体的构成并不局限于图18所示的构成。
如图18所示,实施方式的非易失性存储装置10在半导体基板上具有存储器主体部22。非易失性存储装置10进一步具有中间值检测电路25、错误校正以及辅助数据生成电路400、地址控制电路16、数据控制电路6、ID数据控制电路402、以及对整个非易失性存储装置10进行控制的控制电路15。
存储器主体部22具有读出电路11、写入电路14、列解码器电路17、行解码器电路18以及存储单元阵列20。
行解码器电路18从与存储单元阵列20连接的多条(m+1)字线WL中选择1条字线WL。
列解码器电路17从多条(n+1)位线BL和多条源线SL中选择作为并行读出数的S条位线BL、和与之相对应的S条源线SL,并与写入电路以及读出电路连接。
它们能够对应于并行地进行读出和/或写入的行和/或列的数而动作,但在本说明书中,并行读出或者写入设定为每一个S位。因此,后述的读出电路11和写入电路14具有作为并行数的S个信道。
写入电路14根据在数据控制电路6中保持的数字数据,通过地址控制电路16和控制电路15而向按每一个处于规定地址的并行数S位选择的存储单元21施加各动作中规定的电压,从而写入数据。
读出电路11通过地址控制电路16和控制电路15,经由按每一个并行数S位选择的存储单元21而对在位线中流过的电流的变化采用后述的读出方式进行检测,从而取得选择存储单元的电阻值信息作为数字计数值。
非易失性存储装置10的读出电路11具有COUNT_OUT输出、输出端子A和B、以及输入端子A。读出电路11经由输入端子A而接收阈值。该阈值用于读出电路11将从选自列解码器电路17中的存储单元的电阻值信息得到的信号二值化为0或者1的数据。在所述阈值中,设定规定的固定值、或者从后述的中间值检测电路输出的阈值(输入A)。此外,成为规定的固定值的阈值在使用户数据用存储单元中存储的数据2值化时使用。所述成为规定的固定值的阈值由控制电路15设定,由于不是新颖要件,因而在此将其详细说明予以省略。
COUNT_OUT输出表示读出的存储单元的电阻值信息,所述电阻值信息的波动作为第1数字数据的随机的数据错误而出现,而且用于后述随机数的生成。
另外,读出电路11经由输出端子B,向中间值检测电路25输出从被列解码器电路17选择的存储单元的电阻值信息得到的信号。该信号被中间值检测电路25用于算出为生成第1数字数据所必须的中间值。
再者,读出电路11经由输出端子A而输出作为用户数据的0或者1的数据、以及作为第1数字数据的0或者1的数据。在用户数据的生成时利用的阈值、与在第1数字数据的生成时利用的阈值正如前面所叙述的那样也可以不同。
(存储器主体部的用途不同的区域的说明)
如图所示,存储器主体部22作为存储区域,具有用户数据区域7、第1数字数据区域8、第2数字数据区域404以及随机数生成单元区域403。
存储单元阵列20按字线单位,将WL0、WL1、···WLm-k切分为用户数据区域7,将WLm-k+1···WLm-1切分为第1数字数据区域8,将WLm切分为随机数生成单元区域403,将WL0-1切分为第2数字数据区域404。另外,存储单元阵列20具有与相互平行地延伸而形成的多条字线WL0-1、WL0、WL1、···WLm交叉且相互平行地延伸而形成的多条位线BL0、BL1、···BLn、和相互平行地且平行于位线地延伸而形成的源线SL0、SL1、SL2、···SLn。存储单元21分别配置于多条字线和多条位线的立体交叉点。但是,只是第2数字数据区域404的单元没有电阻变化元件23,只有晶体管24。
各自的存储单元21具有电阻变化元件23和晶体管24。字线WL0-1、WL0、WL1、···WLm-k、WLm-k+1···WLm与各自的晶体管24的门极端子连接,位线BL0、BL1、···BLn除了第2数字数据区域404以外,与各自的存储单元21所具有的电阻变化元件23的第2电极连接,电阻变化元件的第1电极与晶体管24的第2主端子分别连接,源线SL0、SL1、SL2、···SLn与晶体管24的第1主端子分别连接。在第2数字数据区域404中,位线BL0、BL1、···BLn与晶体管24的第2主端子分别连接。
(关于各区域)
电阻变化元件23在存储单元21中作为非易失性存储器元件动作。非易失性存储装置10为各存储单元21由1个晶体管24和1个电阻变化元件23构成的所谓1T1R型非易失性存储装置。存储单元的选择元件并不局限于前述的晶体管。例如也可以使用二极管等2端子元件。
用户数据区域7存储用户的任意数据(用户数据)。用户数据的写入以及读出选择用户数据区域7的地址。为了在第1数字数据区域8生成成为PUF数据即装置固有的数字ID数据基础的第1数字数据而施加成形应力。其结果是,第1数字数据区域8的存储单元组被设置为同一电阻值状态,具有规定的随机的偏差分布。随机数生成单元区域403与第1数字数据同样,是被设置为同一电阻值状态的存储单元组,为了随机数的生成而进行电阻值信息的读出。此外,随机数生成单元区域403和第1数字数据区域8可以共用,但在本实施方式中,为了容易说明而设定为不同的区域。而且随机数生成单元区域403在设置成规定的电阻值状态后,成为读出专用的单元,除了因装置不良情况等的预想外的外部扰动而发生偶发事件、从而使电阻值状态超出规定的范围内的情况以外,不会被改写。另外,第1数字数据区域8在需要相同装置固有的ID数据的期间,也不会被改写而成为读出专用。另一方面,如后所述,在意图变更ID数据、或者欲使迄今为止使用的ID数据安全废弃的情况下,可以主动地改写第1数字数据区域8。第2数字数据区域404是在后述的第2数字数据的生成中使用的单元组。该存储单元没有连接电阻变化元件23,是只有选择晶体管24的单元。这在从读出电路11观察时成为大致相同的固定电阻的单元。关于最尖端的微细CMOS工艺中的晶体管,其导通电阻的偏差较大,从而用于采用读出电路11观测其电阻成分的偏差,来得到各装置固有的至少S位的数字数据。在本实施方式中,例示出了第2数字数据使用晶体管的导通电阻的偏差,但本发明并不局限于此。第2数字数据可以由与至少用于第1数字数据的存储单元组8中使用的电阻变化元件的电阻值没有关系的元件生成。例如,也可以是预先以第1种数据或者第2种数据记录于用户数据中的数据。特别是以第1种数据保存的数据在通常的读出中,不会读出正确的数据,对数据的攻击具有优势。
此外,用户数据区域7、第1数字数据区域(PUF数据区域)8、第2数字数据区域404和随机数生成单元区域403没有必要如图所示那样按字线单位划分,也可以按阵列上的任意区域划分。物理的区域划分的规则性越是设计得复杂,就越可以提高对解析以及黑客活动等的攻击的耐受性。
控制电路15以控制信号为基础,对列解码器电路17选择位线或者源线之中的任一方,写入时与写入电路14连接,读出时与读出电路11连接。而且使写入电路14或者读出电路11动作。
关于电阻变化元件23,由于在实施方式中可以设计为与上述电阻变化元件120同样的构成,因而省略其详细的说明。
在图18所示的例子中,使用NMOS晶体管作为存储单元阵列20的选择晶体管,但本发明并不局限于此,也可以使用PMOS晶体管。在此情况下,虽然对晶体管的控制方法发生改变,但由于是设计事项,因而将其说明予以省略。
(读出电路11的具体例子)
图19是表示本实施方式的非易失性存储装置10所具有的读出电路11的构成例的电路图。
读出电路11具有放电方式的读出放大器电路30。该读出放大器电路具有比较器31、电阻值计数器32、预充电用PMOS晶体管33以及负载电流用PMOS晶体管34。
电阻值计数器32与比较器31的输出端连接。电阻值计数器32通过使重置信号RST处于低电平而将电阻值计数器内的计数值初始化后,开始基于时钟信号CLK的计数。时钟信号CLK是从控制电路15输出的信号,是作为将根据电阻变化元件23的电阻值而变化的放电时间变换为计数值时的基准的信号。时钟信号CLK例如是维持一定频率的矩形波。每当该时钟信号CLK上升,电阻值计数器的计数值加1,如果节点SEN的电位低于VREF,则电阻值计数器的计数递增停止,当时的计数值被维持为COUNT_OUT。此时,从输入A输入阈值。比较器135对COUNT_OUT和输入A的阈值进行比较,如果在阈值以上,则从输出A输出0,如果低于阈值,则从输出A输出1。另外,如果在阈值以上,则从输出B输出1,如果低于阈值,则从输出B输出-1。预充电PMOS晶体管33向门极端子输入预充电控制信号PRE,向源极端子输入VDD,节点SEN与漏极端子连接。
负载PMOS晶体管34向门极端子输入负载控制信号LOAD,向源极端子输入VDD,节点SEN与漏极端子连接。
读出电路11进一步具有由钳位电压施加用NMOS晶体管35构成的钳位电路。钳位NMOS晶体管35向门极输入钳位控制信号CLMP,使节点SEN与源极端子或者漏极端子中的任一方连接,使所选择的存储单元经由列解码器电路与另一端连接。此外,图19中省略了列解码器电路。
在此,对于读出电路11输出计数值(电阻计数值的一个例子)的动作,使用读出电路的构成图(图19)和图20A以及图20B的时序图进行具体的说明。
图20A是以放电方式读出所选择的存储单元时的时序图。
在T1的预充电期间,控制信号PRE处于低电平,预充电用PMOS晶体管33处于导通状态,另一方面,控制信号LOAD处于高电平,负载用PMOS晶体管34处于截止状态。选择字线WLs的电位为低电平,晶体管24处于截止状态。
通过给钳位电路的钳位NMOS晶体管35的门极端子施加VCLMP的电压,选择位线BLs的电位被预充电至从VCLMP减去VT(钳位NMOS晶体管35的阈值)后的电位。选择源线SLs被固定为GND。节点SEN被预充电至VDD。另外,与比较器的输出连接的电阻值计数器的控制信号RST由于为高电平,因而电阻值计数器输出端子COUNT_OUT输出0的固定值。
在T2的传感期间,通过将控制信号PRE设定为高电平,预充电PMOS晶体管33便处于截止状态,通过使控制信号LOAD处于低电平,负载PMOS晶体管34便处于导通状态。另外,通过使选择字线WLs的电位处于高电平,NMOS晶体管24便处于导通状态。
接着,从选择位线BLs经由所选择的存储单元21s向选择源线SLs施加电压,从而开始放电。在放电开始的同时,电阻值计数器32的控制信号RST处于低电平,计数开始。而且每当计数1次,就通过比较器31对节点SEN的电位和参照电压VREF的电压进行比较,将计数值持续增加直到节点SEN低于参照电压VREF。读出时的电阻变化元件23的电阻值越高,放电时间越长,计数值越大。
另外,通过调整电容器36的电容,也可能调整放电时间。如果电容器36的电容较大,则节点SEN的放电时间也延长,因而计数值增大,如果电容较小,则节点SEN的放电时间缩短,从而计数值减小。电容器36例如在欲提高放电时间快的低电阻水平的检测精度时是有效的。计数的间隔由时钟信号CLK决定,所以其动作频率成为电阻计数值的分辨能力。但是,在低电阻值的情况下,由于放电时间有可能超出计数值的分辨能力,因而往往不能区别。于是,通过向节点SEN追加电容负荷而使其延迟,有意调整放电特性而有可能提高检测时的分辨能力。然而,从原理上说,在放电方式的情况下,越是高电阻,放电时间越长,随之放电的斜率缓慢地发生变化,因而电阻值信息相对于计数器值的分辨能力得以提高。也就是说,放电方式的情况是一种高电阻侧能够获得高精度的电阻值信息的方式。
在T3的锁存期间,当放电开始后,节点SEN低于参照电压VREF时的电阻值计数器32的计数值被锁存。锁存器的计数值向COUNT_OUT输出,作为表示电阻变化元件23的电阻值信息的计数值而进行操作。
在T4的重置期间,一旦数据输出完成,选择字线WLs的电位就被设定为低电平,所选择的存储单元21s的晶体管24截止,从而读出动作结束。
图20B是以充电方式读出所选择的存储单元时的时序图。
T1为放电期间,控制信号PRE、LOAD一同处于高电平,预充电用PMOS晶体管33和负载用PMOS晶体管34都处于截止状态。另外,选择字线WLs的电位处于高电平,晶体管24处于导通状态。
向钳位电路的钳位用NMOS晶体管35的门极端子施加VCLMP的电压,使选择字线WLs的电位处于高电平。其结果是,NMOS晶体管24因为处于导通状态,所以节点SEN、选择位线BLs经由电阻变化元件23而与GND连接,从而被放电至GND电平。另外,与比较器的输出连接的电阻值计数器的控制信号RST由于为高电平,因而电阻值计数器输出端子COUNT_OUT输出0的固定值。
在T2的传感期间,通过使控制信号LOAD处于低电平,负载PMOS晶体管34便处于导通状态。其结果是,负载PMOS晶体管34、钳位NMOS晶体管35、选择存储单元21s的电流路径得以形成,从而开始向节点SEN、选择位线BLs的充电。在充电开始的同时,电阻值计数器32的控制信号RST处于低电平,计数开始。而且每当计数1次,就通过比较器31对节点SEN的电位和参照电压VREF的电压进行比较,将计数值持续增加直到节点SEN超过参照电压VREF。读出时的电阻变化元件23的电阻值越低,充电时间越长,计数值越大。
另外,电容器36与放电方式的情况同样,在充电方式中也可能调整充电时间。详细的说明与放电方式中的说明同样,因而予以省略。从原理上说,在充电方式的情况下,越是低电阻,充电时间越长,随之充电的斜率缓慢地发生变化,因而电阻值信息相对于计数器值的分辨能力得以提高。也就是说,充电方式的情况是一种低电阻侧能够获得高精度的电阻值信息的方式。
在T3的锁存期间,当充电开始后,节点SEN超过参照电压VREF时的电阻值计数器32的计数值被保持。保持的计数值向COUNT_OUT输出,作为表示电阻变化元件23的电阻值信息的计数值而进行操作。
在T4的重置期间,一旦数据输出完成,选择字线WLs的电位就被设定为低电平,所选择的存储单元21s的晶体管24截止,从而读出动作结束。
如果为图19的构成,则可以使用放电方式和充电方式两者。但是,图19的比较器135中例示的输出A以及输出B的逻辑例是放电方式的读出电路的例子。在使分别对应于高电阻状态和低电阻状态的数字数据的逻辑相同的情况下,因检测方向相反而在充电方式中需要反转。具体地说,对输出A的逻辑在a≥b的情况下为1,在a<b的情况下为0。对输出B的逻辑在放电方式和充电方式中相等。
这样一来,根据读出方式的不同,对电阻值信息的分辨能力不同,因而在欲高精度地获得电阻值信息的情况下,放电方式也可以在所选择的存储单元使用较高的电阻值范围而进行保存的情况下使用。相反,充电方式也可以在所选择的存储单元使用较低的电阻值范围而进行保存的情况下使用。然而,在另一方面,图19所示的电阻值计数器32的计数器宽度受到硬件的制约而为有限的量。因此,在放电时间或者充电时间过长的情况下,计数器超过能够计数的范围,从而不能得到正确的电阻值信息。因此,在节约必要的计数器的位宽而谋求缩小电路规模的情况下,放电方式也可以在所选择的存储单元使用较低的电阻值范围而进行保存的情况下使用。相反,充电方式也可以在所选择的存储单元使用较高的电阻值范围而进行保存的情况下使用。
读出电路11在用于生成本实施方式的第1数字数据、第2数字数据以及随机数数据的电阻值信息的取得时使用。由于从得到的电阻值信息生成各自的数据的方法是不同的,因而下面就具体的一个例子进行叙述。
[第1实施例]
(第1数字数据的生成方法)
接着,对从第1数字数据区域8生成成为装置固有的数字ID数据的基础的第1数字数据的方法进行说明。如前所述,第1数字数据区域8的存储单元被写入为同一电阻值状态。如图6所示,电阻值的偏差分布遵循正态分布,因人为地控制困难而成为随机的偏差分布。为了取得第1数字数据,如图6所示,提取偏差分布的中间值,根据提取的中间值而变换为0、1的数字数据。首先,就该中间值的提取方法进行说明。
在第1数字数据的生成时,首先,执行“中间值提取动作”。此时,对于每一个所述第1数字数据区域8的并行读出数S位,依次变更地址而反复进行读出动作,一面改变在第1数字数据区域8中选择的存储单元,一面读出与各存储单元相应的电阻值信息。正如在读出电路11的动作说明中所叙述的那样,根据对于每一个S位读出的电阻值信息,向输出B输出与判定结果相应的-1、1的信号。输出B将并行读出数的S信道输入至中间值检测电路25。图22示出了中间值检测电路25的一个具体例子,下面就其动作进行说明。
图22所示的中间值检测电路25具有全信道加法器411、乘法器202、加法器412以及数据锁存电路413。乘法器202与全信道加法器411连接,输入从全信道加法器411输出的信号。加法器412与乘法器202的输出、以及数据锁存电路413的输出和输入连接。加法器412输入乘法器202的输出以及数据锁存电路413的输出而将这些输出相加,并将其相加结果输出至数据锁存电路413。
数据锁存电路413输入加法器412的输出,在控制信号B所指定的时机,将从加法器412输入的数据锁存起来。此外,数据锁存电路413是通过组合多个1位的锁存电路而能够存储多位信息的电路。位数依赖于作为该输出所需要的位数。正如以下所说明的那样,在本构成例中,数据锁存电路413的输出在读出电路11中作为电阻中间值加以利用。数据锁存电路413只要至少安装与为了表现电阻中间值所需要的位数相适应的锁存电路即可。
下面就该中间值检测电路25的动作进行更具体的说明。
全信道加法器411将从读出电路11输入的信道数为S的电阻值误差信号全部合计,将其作为总误差信号输出。乘法器202在输入总误差信号后,对该输入信号乘以系数α。乘法器202也可以使用通常的乘法器的电路,通过将系数α设定为例如1/2、1/4、1/8等2的次方分之1,可以用位移位电路代替。通过变更乘法器202的系数来调整误差信号的灵敏度。加法器412将数据锁存电路413的输出、和从乘法器202输出的用于调节灵敏度的误差信号相加,并输出至数据锁存电路413。
数据锁存电路413在由控制信号B指定的时机,将从加法器412输入的信号(数据)锁存起来。控制信号B所指定的时机例如可以例示出图20A、20B的T3期间即将结束之前。数据锁存电路413的输出每当1次读出位数为S即S位的各电阻值信息时进行更新。数据锁存电路413将之前锁存起来的数据向加法器412输出,同时也向读出电路11的输入A(参照图19)输出。该输出的数据在读出电路11中作为电阻中间值加以利用。
从上述动作可以理解,全信道加法器411以及乘法器202构成调整将电阻值误差信号进行累积时的灵敏度的灵敏度调整电路。另外,加法器412以及数据锁存电路413构成根据由控制信号B指定的时机,将前1个电阻中间值、和灵敏度进行过调节的电阻值误差信号相加而累积的累积加法电路。
由图22的构成例表明:关于设置灵敏度调整电路和电阻值误差信号的累积加法电路,可以考虑各种各电路的具体构成以及各电路的连接关系。如果遵循上述公开,则只要是本领域的技术人员就能够设计这样的变形例。鉴于本发明的宗旨,得到目前的电阻中间值与读出的电阻值信息的差分作为电阻值误差信号,可以调整将该电阻值误差信号进行累积时的灵敏度,将电阻值误差信号的累积结果更新为新的电阻中间值,以这样的设计思想设计而成的变形电路属于本发明的范畴。
图23示出了中间值检测电路25实际算出电阻中间值的结果。横轴表示一面变更地址一面读出第1数字数据区域8的次数,纵轴表示数据锁存电路413所保持的值。预先读出第1数字数据区域8的电阻值信息,采用计算机算出中间值时的理论值为17。由图23可知当读出次数是30次附近时大致收敛于作为理论值的17的状况。完成中间值提取动作,将提取的中间值保持在所述数据锁存电路413中。该保持的中间值以后称之为提取中间值。这样一来,只要是本发明的提案方式,就可以稳定地检测电阻值偏差分布的中间值,将提取中间值作为阈值,再一次将第1数字数据区域8的存储单元的电阻值信息读出,并将该读出的电阻值信息分配为0、1,从而可以良好且稳定地生成第1数字数据。
(第2数字数据和变形第2数字数据的生成方法)
接着,对从第2数字数据区域404生成成为装置固有的数字ID数据的基础的第2数字数据的方法进行说明。如前所述,第2数字数据区域404是没有电阻变化元件而只有选择晶体管的存储单元,是晶体管的导通电阻为存储单元的电阻值的“固定电阻存储单元”。但是,在最尖端的微细半导体工艺中,晶体管的导通电阻大,并具有偏差。也就是说,固定电阻单元各自的电阻值具有制造工艺上不能完全控制的随机的偏差。这与第1数字数据同样,表现出复制非常困难的特性。根据控制电路15的指示,行解码器电路18和列解码器电路17选择第2数字数据区域404并与读出电路11连接。读出电路11通过与前述同样的动作,读出第2数字数据区域404所选择的所述固定电阻存储单元的电阻值信息。此时,将得到的电阻值信息(COUNT_OUT)的S位部分向ID数据控制电路402输出。
ID数据控制电路402从读出电路11输入与电阻值信息相当的COUNT_OUT,从而生成第2数字数据。在本实施例中生成的第2数字数据为与并行读出数相等的S位的数据,但本发明并不局限于此。
图21示出了ID数据控制电路402的具体的一个例子。在图21的例示中,为了说明的简单化,示出了将并行读出数S设定为8的情况,但本发明并不局限于此。在图21中,比较器601将输入a和输入b的大小关系进行比较,如果a<b则输出1,如果a≥b则输出0。锁存器602~609是在latch_en为1时,如果load_en为1,则选择输入a进行锁存,如果load_en为0,则选择输入b进行锁存的锁存电路。在锁存器602~609中,在选择输入b的情况下,锁存器609的输出成为锁存器602的输入,锁存器602、606、607、608的输出与下一列的锁存器603、607、608、609的输入分别连接。锁存器603、604、605的输出分别与锁存器609的输出进行异或(XOR)运算,并向下一列的锁存器604、605、606输入。根据此时的电路连接,锁存器603~609构成循环型运算处理电路。例示的循环型运算处理电路使8次的原始多项式运算处理电路化。在循环型运算处理的算法中,许多的现有技术是为人所知的,所有的方式可以适用于循环型运算处理电路。也就是说,只要是以D20~D27的数据(第2数字数据)为初始值而反复进行运算、生成伪随机数而向Dm0~Dm7输出的电路,就包含在本发明的实施方式中。此时,Dm0~Dm7的数据称为变形第2数字数据(the modified second digital data)。
向D10~D17的输入端子输入前述的第1数字数据。在该例子中,对每一个S位分配第1数字数据区域8的地址而使第1数字数据存储起来。按每一个这些地址读出的第1数字数据的一部分(S位)向D10~D17的输入端子输入。位数相同的S位的变形第2数字数据与D10~D17的数据进行异或(XOR)运算而作为Dx0~Dx7输出。Dx0~Dx7的数据作为装置固有的数字ID数据(PUF数据)来使用。
通过控制电路15的控制,读出电路11从第2数字数据区域404读出所选择的固定电阻存储单元的电阻值信息,并将该读出的结果作为COUNT_OUT0~COUNT_OUT7输出。由图21可知:比较器601对各自邻接信道的COUNT_OUT值进行比较,从而输出D20~D27的第2数字数据。也就是说,第2数字数据是从固定电阻存储单元的电阻值的大小关系得到的数据。如前所述,固定电阻存储单元的电阻值由于具有半导体工艺中的制造偏差,因而第2数字数据成为不能人为地决定的随机的数据。在确定第2数字数据的D20~D27时,指定load_en为1,且latch_en为1,D20~D27作为初始值载入到锁存器602~609。而且每当读出第1数字数据时,指定load_en为0,且latch_en为1,锁存器602~609将输入端子b的数据锁存起来。也就是说,每当读出第1数字数据时,ID数据控制电路402反复进行以第2数字数据(D20~D27)为初始值的循环型运算处理,从而依次生成变形第2数字数据(Dm0~Dm7),而且进行第1数字数据和变形第2数字数据的异或运算,从而得到装置固有的数字ID数据(Dx0~Dx7)。该数字ID数据成为上述的PUF数据。
如上所述,第1数字数据是与电阻变化型存储单元被设置为相同的电阻值范围时的电阻值的偏差有关的数据,第2数字数据和变形第2数字数据是与第1数字数据完全没有相关关系的数据。第1数字数据是由电阻值的大小关系得到的数据,将第1数字数据和变形第2数字数据取逻辑异而得到数字ID数据,从而表示数字ID数据的0和1与电阻值的相关关系不复存在。由此,即使通过探头直接读出存储单元的电阻值这样的攻击成为可能,也变得不容易类推数字ID数据,从而可以得到安全性非常优良的ID数据。
此外,作为第2数字数据,也可以使用第1种数据或者第2种数据。如上所述,第1种数据为用图3所示的第1阈值进行判别而得到的数据,为表示非易失性存储单元是处于初始状态还是处于可变状态的数据。另外,第2种数据为用图3所示的第2阈值进行判别而得到的数据,为表示非易失性存储单元的电阻值是处于图3所示的第1电阻值范围还是处于第2电阻值范围的数据。以这样的第2数字数据和第1数字数据为基础而生成的数字ID数据也与上述同样,成为安全性非常优良的ID数据。
[第2实施例]
(挑战-响应)
接着使用图24,就使用第1数字数据和变形第2数字数据的挑战-响应进行说明。在本实施方式中,从装置外输入的挑战信号成为对存储单元进行访问的读出地址的顺序。图24A示出了挑战X的模式。在该挑战X的模式中,读出电路11首先选择第2数字数据区域404的地址而读出第2数字数据。此时,将访问的地址设定为Z。图21所示的load_en在读出第2数字数据区域404的地址时,被设定为High。然后,根据前述的读出方法读出电阻值信息,以确定COUNT_OUT的值,在从读出电路11输出的时机,如图24A那样使latch_en按Low→High→Low变化。其结果是,在latch_en为High的时机,图21的D20~D27作为锁存器602~609的初始值而保持下来。在图24A的例子中,以16进制记录在锁存器602~609中保持的值时,该值设定为0xA5。然后,每当变更地址而读出时,load_en为Low,latch_en按Low→High→Low变化。因此,图21的锁存电路以0xA5为初始值而执行多项式运算处理,对于每一个各自的读出次数,在锁存电路中保持的值向0x56、0xAD、0x46、0x8D、0x06依次变化。这些数据成为变形第2数字数据。
另一方面,在读出第2数字数据区域404的存储单元而使锁存器602~609保持初始值之后,读出第1数字数据区域8的各地址。此外,在读出电路的动作中说明的电阻中间值的检测设定为在事前完成。例如,读出第1数字数据区域8的地址a时的第1数字数据设定为16进制的0x15。同样,与第1数字数据区域8的地址b、c、d、e相对应,依次读出0xD0、0x2F、0x85、0x34的第1数字数据。而且与对挑战的响应相当的数字ID数据作为由第1数字数据和变形第2数字数据的异或所得到的结果而输出为图21的Dx0~Dx7。将向非易失性存储装置外输出该数字ID数据叫做响应输出。
图24B示出了挑战Y的模式。由图24B可知:在读出第2数字数据区域404的地址之后,读出电路11所读出的第1数字数据区域8的地址的顺序是不同的。由此,虽然变形第2数字数据相同,但读出的地址的顺序不同,因而进行第1数字数据和变形第2数字数据的异或运算的组合发生变化,所以与挑战X的模式不同的数字ID数据就输出为图21的Dx0~Dx7。
以上述的挑战输入和响应输出之间的关系为基础而从非易失性存储装置外进行认证。在使用本实施方式的构成而进行挑战-响应的认证的情况下,在担保安全的装置制造工序的检查时,不与变形第2数字数据进行异或运算而预先按规定的地址顺序读出第2数字数据和第1数字数据,并在认证服务器登记数据。此外,当然可以设法在装置的检查时以外,使第1数字数据和第2数字数据无法读出。例如,为了读出,只能通过复杂的指令输入进行,该指令输入的方法一般不会公开等。表示第1种数据的初始电阻值状态如果改写为连一次都不同的电阻状态,则为无法改回的电阻值状态。因此,如以下那样构成电路的对策是有效的:只要规定的存储单元不是初始状态,读出第1数字数据和第2数字数据在硬件上是办不到的。
当在市场上通过认证服务器对各装置进行认证时,使用登记的第1数字数据和第2数字数据而预先通过运算导出对挑战的响应数据,以与从装置实际返回的响应是否一致进行认证。
这样一来,在用于认证非易失性存储装置为正规装置的认证方法中,在非易失性存储装置出货前,预先读出第1数字数据和第2数字数据,并保持在外部认证装置中。而且在非易失性存储装置出货后使用时,外部认证装置使用多个挑战输入而接收响应输出,对使用外部认证装置所预先保持的第1数字数据和第2数字数据进行运算的结果、和接收的响应输出是否一致进行判断。而且在一致的情况下,认证非易失性存储装置是正规的装置。在不一致的情况下,判断非易失性存储装置不是正规的装置,认证不会进行。
只要是以上的使用本实施方式中的第1数字数据、和以第2数字数据为基础进行变形所得到的变形第2数字数据而生成装置固有的数字ID数据的方法,响应就随读出地址顺序而变化,而且第1数字数据为不可复制的装置固有的数据,因而由此得到的响应也成为对每一个装置不同且唯一的响应。另外,最终的输出的数字ID数据作为第1数字数据和变形第2数字数据的异或而得到。因此,存储单元的电阻值的大小关系、和数据的0、1不具有相关关系。其结果是,即使随着将来在攻击中使用的探测技术的进步而能够读出每一个存储单元的电阻值,数字ID数据的预测也很困难,从而可以生成安全性非常高的数字ID数据。
[第3实施例]
(随机数生成)
接着,就本实施方式中使用的随机数生成进行说明。在该随机数生成中,使用由随机数生成单元区域403的存储单元得到的多个电阻值信息而生成数字数据,并使用该数字数据且通过执行规定的算法而生成随机数数据。
第3实施例的构成为:在写入后,当随着时间的经过而电阻值变动中的电阻值的变动宽度减小时,也可以提取良好的随机数。
图25是表示由随机数生成单元区域403的存储单元的电阻值信息即COUNT_OUT的值生成随机数的随机数生成电路的概略构成的电路图。下面参照图25,就随机数生成电路401进行说明。
图25的随机数生成电路401分为随机数源信号生成电路部401a、和随机数生成后处理电路部401b。随机数源信号生成电路部401a是指以由电阻变化元件的电阻值波动得到的COUT_OUT值的变动为基础变换为0或者1的数字值、从而输出随机数源的块。另外,随机数生成后处理电路部401b是指使用随机数源信号生成电路生成的随机数源的数字值,执行进一步提高随机性的各种运算的块。作为随机数生成后处理电路部401b的处理,可以例示出各种算法,在现有文献等中利用多项式运算处理等。本发明人着眼于“The Workshop onFast Software Encryption 2007(FSE 2007)LNCS 4593,pp.137-152,2007.@International Association for Cryptologic Research 2007‘Bad and Good Ways ofPost-processing Biased Physical Random Numbers’Markus Dichtl”(以下简称为非专利文献3)中所示的H4电路。
图26示出了H4电路的构成例。如图26所示,对于输入的DIx0~DIx7的8位信号,将进行了1位循环偏移的信号、2位循环偏移的信号、4位循环偏移的信号、以及原来的DIx0~DIx7按每一位进行异或运算。将该异或运算得到的各位、和又一个输入即DIy0~DIy7的8位按每一位进行异或运算。根据前述的非专利文献3,在0或者1的发生概率中,当将偏向某一个的偏移概率设定为ε时,通过H4电路的处理而抵消(cancel)ε的4次方之前的项,从而可以使最少的偏移非常小,只是ε的5次方项。然而,H4电路相对于随机数源16位的输入,其输出为8位,从而生成速度减半。也就是说,Dichtl氏示出的H4电路即便是对0或者1的发生概率有偏向的随机数源,也可以除去偏移成分的大部分,从而重新生成非常良好的随机数,但所具有的缺点是对于所得到的随机数源的位数,可以输出的随机数数据的位数减半。本发明人进行了潜心的研究,结果从S位的存储单元的电阻值波动发现:由各位自身的电阻值的变动得到的S位的随机数源、与由各位和除此以外的位之间的电阻值的变动得到的S位的随机数源处于相互独立的关系。而且发现:通过将2个S位的随机数源分别输入至H4电路,将S位的电阻值信息读出的电路的信道数不会成倍增加,从而得到随机性极高的随机数数据。将以上叙述的由各位自身的电阻值的变动得到的S位的随机数源数据定义为自身变动随机数源,将由各位和除此以外的位之间的电阻值的变动得到的S位的随机数源数据定义为相互变动随机数源。由电阻值信息即COUNT_OUT的值生成自身变动随机数源或者相互变动随机数源的电路构成可以做各种各样的考虑,但包含上述想法的处理电路都包含在本实施方式中。下面使用图25,就电路构成的一个例子进行说明。
在图25中,用虚线包围的块是生成自身变动随机数源的自身变动随机数源信号生成电路720。另外,用单点划线包围的块是生成相互变动随机数源的相互变动随机数源信号生成电路721。
图18中的读出电路11从处于同一可变电阻值范围的N个(N为2以上)存储单元21在多个不同的时刻分别取得电阻值信息,由此取得多个电阻值信息。自身变动随机数源信号生成电路720以多个电阻值信息中的各存储单元21的过去和现在的电阻值信息的差分或者大小关系为基础而生成N位的随机数数据。相互变动随机数源信号生成电路721以各存储单元的电阻值信息、和各存储单元自身以外的其它存储单元的电阻值信息的差分或者大小关系为基础而生成N位的随机数数据。在图25中,示出了自身变动随机数源信号生成电路720、相互变动随机数源信号生成电路721输出8位的随机数数据的例子。
在自身变动随机数源信号生成电路720中,从读出放大器电路30输出的COUNT_OUT的电阻值信息的值被输入。
在接受了随机数数据读出指令时,根据控制电路15的指示,通过各信道的列选择电路而选择随机数生成单元区域403的存储单元,使其与读出电路11连接。从读出电路11内的读出放大器电路30读出与存储单元的电阻值信息相当的COUNT_OUT值。
latch_en是1时钟宽度的锁存时间的脉冲。也就是说,latch_en在成为“High”的时机,锁存器739将输入的COUNT_OUT的值锁存起来。在此情况下,在锁存器739中便保持着前次读出的电阻值信息(一个过去读出的COUNT_OUT值),检测器741(在图中用DETa表示)从现在的COUNT_OUT值中减去前次读出的COUNT_OUT值,如果为正的值则输出1,如果为负的值则输出-1,如果哪一个都不是则输出0。图25示出了检测器741(DETa)的逻辑表。检测器741的输出向0/1判定器742的Y输入。向0/1判定器742的X输入后述的锁存器740的输出。0/1判定器742的逻辑表如图25所示。0/1判定器742在输入Y为1时输出1,在输入Y为-1时输出0。再者,在输入Y为0时,将输入X直接输出。锁存器740与锁存器739同样,在latch_en的时机保持0/1判定器742的输出,从而前次读出时的0/1判定器742的输出被保持下来。也就是说,在输入Y为0时,将前1个读出时的0/1判定器742的输出再次输出。
这样一来,自身变动随机数源信号生成电路720成为如下的电路,它不会改写而反复读出在随机数生成单元区域403的存储单元中选择的相同存储单元,向COUNT_OUT输出的电阻值信息由在每次读出时发生变动的值变换为0或者1。由相同存储单元的电阻值信息发生变动的现象生成0或者1的方法可以考虑许多的派生电路,并不局限于自身变动随机数源信号生成电路720的电路构成。基于与本构成例相同的想法的电路归属于本实施方式。
接着,就相互变动随机数源信号生成电路721进行说明。向图25的各相互变动随机数源信号生成电路721中,输入各信道自身的COUNT_OUT,而且邻接信道的COUNT_OUT也同时输入。例如如果为CH0,则输入CH0的COUNT_OUT0和CH7的COUNT_OUT7。如果为CH1,则输入CH1的COUNT_OUT1和CH0的COUNT_OUT0。如果为CH2,则输入CH2的COUNT_OUT2和CH1的COUNT_OUT1。如果为CH3,则输入CH3的COUNT_OUT3和CH2的COUNT_OUT2。如果为CH4,则输入CH4的COUNT_OUT4和CH3的COUNT_OUT3。如果为CH5,则输入CH5的COUNT_OUT5和CH4的COUNT_OUT4。如果为CH6,则输入CH6的COUNT_OUT6和CH5的COUNT_OUT5。如果为CH7,则输入CH7的COUNT_OUT7和CH6的COUNT_OUT6。而且EVEN/ODD检测电路743利用2个COUNT_OUT的差分值为偶数或者奇数而输出0或者1的信号。也就是说,如果差分值为偶数则输出0,如果为奇数则输出1。再者,向锁存器750中,输入对EVEN/ODD检测电路743的输出和锁存器750的输出进行异或运算而得到的值。锁存器750与锁存器740同样,其构成为在latch_en的时机保持输入数据。在锁存器750中更新数据的状态变迁图如图27所示。在图27中,各状态的意义如下所述。Even(1)表示前次的读出为偶数且锁存器750的输出为1。Even(0)表示前次的读出为偶数且锁存器750的输出为0。Odd(1)表示前次的读出为奇数且锁存器750的输出为1。Odd(0)表示前次的读出为奇数且锁存器750的输出为0。在这4种状态中,利用与邻接的电阻值信息的值的差分为奇数或者偶数,来表示接着将转变为哪一种状态。也就是说,当前次的读出为偶数、且处于Even(1)状态时,进而在这次的读出为偶数的情况下,则转变为Even(0),锁存器750的输出为0。当前次的读出为偶数、且处于Even(1)状态时,进而在这次的读出为奇数的情况下,则转变为Odd(0),锁存器750的输出为0。当前次的读出为偶数、且处于Even(0)状态时,进而在这次的读出为偶数的情况下,则转变为Even(0),锁存器750的输出为0。当前次的读出为偶数、且处于Even(0)状态时,进而在这次的读出为奇数的情况下,则转变为Odd(0),锁存器750的输出为0。
另外,当前次的读出为奇数、且处于Odd(1)状态时,进而在这次的读出为偶数的情况下,则转变为Even(1),锁存器750的输出为1。当前次的读出为奇数、且处于Odd(1)状态时,进而在这次的读出为奇数的情况下,则转变为Odd(0),锁存器750的输出为0。当前次的读出为奇数、且处于Odd(0)状态时,进而在这次的读出为偶数的情况下,则转变为Even(1),锁存器750的输出为1。当前次的读出为奇数、且处于Odd(0)状态时,进而在这次的读出为奇数的情况下,则转变为Odd(0),锁存器750的输出为0。通过这样的状态变迁,由COUNT_OUT值的差分值可以变换为0或者1的数字值。
如以上那样输出的2种随机数源的16位的数据被输入至随机数提取运算部700。随机数提取运算部700具有与前述的图26的H4电路同样的构成,输出8位的随机数数据。随机数提取运算部700按规定的组合对自身变动随机数源信号生成电路720所输出的8位的随机数数据和相互变动随机数源信号生成电路721所输出的8位的随机数数据进行异或运算,从而生成并输出8位的随机数数据。也就是说,本实施方式的随机数生成电路401将从随机数生成单元区域403的存储单元读出的8位的数据作为输入,从而输出8位的随机数数据。
此外,这次以8位的数据单位进行了例示,但如果以8个单位对读出的S个电阻值信息的值进行与上述同样的处理,则可以输出8的n倍的位数的随机数数据。这样一来,如果利用本构成,则可以不会降低生成速度而由S个电阻值信息生成随机性极高的随机数数据。
(出错校正电路)
近年来,作为使用PUF的数字ID数据生成中的出错校正方式,提出了被称之为Fussy Extractor的数据提取器。“‘Implementation and Evaluation of SCA-ResistantAES and PUF using MDR-ROM Scheme’@SCIS2015(The 32nd Symposium on Cryptographyand Information Security Kokura,Japan,Jan.20-23,2015)by Takeshi Fujino”中所示的构成如图28A、图28B所示。图28A示出了用于在数字ID数据即PUF-ID数据上附加错误校正用信号而作为ID登记的初始登记的构成。图28B示出了使用附加的错误校正用信号而使登记过的ID再现的构成。错误校正中使用的奇偶校验数据通过以校正对象的数据为基础进行规定的运算而生成。也就是说,校正对象的数据系列和奇偶校验数据之间具有一定的相关性。通常,PUF ID数据由于以制造时的偏差为基础而生成,因而是不可复制的、进而是不能容易类推的数据系列,所以一般认为ID的安全性较高。但是,由于具有一定的数据错误,因而为了稳定地再现相同的ID,需要进行错误校正。错误校正所需要的奇偶校验数据通常保存在非易失性存储器中,因而如果通过黑客活动等恶意的攻击而盗取奇偶校验数据,则令人担心从与奇偶校验数据的相关关系类推PUF-ID。作为其对策,可以采用Fussy Extractor的方式。图18所示的错误校正以及辅助数据生成电路400执行以下说明的错误校正的处理以及生成辅助数据的处理。
在图28A中,当将PUF数据(数据W)作为数字ID数据登记时,另行准备预测困难的随机数数据。将随机数数据M由图18所示的随机数生成电路401输入给ECC编码器,从而在随机数数据M上追加错误校正用奇偶校验数据。将在该随机数数据M上追加了奇偶校验数据的数据设定为数据C。此时,使作为PUF数据的数据W(图21的数字ID数据Dx0~Dx7)和数据C的位长相同。再者,对数据W和数据C按每位进行异或(XOR)运算,以生成辅助数据(XOR(C,W))。将该辅助数据存储在非易失性存储器中,例如保存于图18的用户数据区域7。如果为这种方式,错误校正的奇偶校验数据以预测困难的随机数数据为基础而生成,因而从奇偶校验数据类推PUF数据变得非常困难。另外,辅助数据同样用数据C和数据W的异或生成,因而即使对非易失性存储器从事黑客活动,类推PUF数据也是困难的。
接着使用图28B,就由辅助数据和包含错误的PUF数据生成正确登记的PUF ID数据的方法进行说明。再现的PUF数据由于包含错误,数据W包含弄错的位,因而在图28B中作数据W+ΔW这一标记。如前所述,将事前登记的辅助数据从存储器阵列的用户数据区域7读出。辅助数据由于用数据C和数据W的异或生成,所以当进一步与包含错误的PUF数据按每位进行异或运算时,正确的数据W的位得以消除,生成在数据C上附加错误数据即ΔW的数据。该数据用(C XORΔW)表示。如果将该(C XORΔW)输入给ECC解码器,使用奇偶校验数据而进行错误校正,则生成正确的随机数数据(数据C)。通过对该数据C和辅助数据进一步进行异或运算,正确的PUF数据(W)便再现出来。
如图28A、图28B所示,PUF数据也可以使用Hash函数(散列函数)进行运算,其运算值作为在加密器中使用的加密密钥使用。通过使用Hash函数,万一加密密钥被盗,也可以使原来的PUF数据不能类推,从而可以提高安全性。例如,PUF数据在数据控制电路6的写入处理以及读出处理中使用。
这样一来,为了使PUF数据不容易从错误校正中使用的奇偶校验数据或者辅助数据中类推出来,初始登记时使用的预测困难的随机数数据的生成是非常重要的。在PUF数据的生成块、随机数数据的生成块、以及进而存储数据的非易失性存储器各自独立的情况下,由于在各自之间对各数据进行交换,因而难以担保其路径上的安全性。如果是本实施方式的构成,则PUF数据的生成、随机数的生成、在非易失性存储器中的数据的存储这些所有的功能都可以在相同装置内以自己完成的方式加以实施。因此,例如没有必要在别的块中生成随机数数据并进行输入。如果有输入路径,则发生故意地输入其路径被攻击而攻击者容易译解的已知的随机数数据等危险。然而,如果是本实施方式的构成,则可以排除这样的危险,从而能够提供可以进行安全性非常高的ID生成及其管理的装置。
(在IC卡中的应用例)
作为一个应用例,公开了基于由本发明生成的数字ID数据的机密密钥的加密、和加密机密密钥的通过基于成形的写入而进行的数据隐藏、进而公开了认证方法。
图29是表示本实施方式的通信系统500的构成例的方框图。在图29中,通信系统500具有读写器和数据服务器501(以后简称为读写器)、和IC卡502。读写器501和IC卡502例如经由各自所具有的天线等而进行无线通信。
(读写器侧)
读写器501具有RAM503、输入/输出接口(I/F)部504、CPU505、加密处理电路506以及非易失性存储装置515。
读写器501的输入/输出I/F部504是用于进行与外部的无线通信而接收发送数据的接口,例如可以作为无线通信电路来实现。输入/输出I/F部504具有RF天线。输入/输出I/F部504辐射规定的电磁波,并利用负荷的变化而检测IC卡502是否靠近。另外,输入/输出I/F部504例如对由振荡电路(未图示)供给的规定的频率的载波以由CPU505供给的数据为基础而进行调制。输入/输出I/F部504将该生成的调制波作为电磁波而由天线(未图示)输出,从而向附近配置的IC卡502发送各种数据。另外,经由天线接收从IC卡502输送来的调制波并进行解调,将得到的数据供给至CPU505。非易失性存储装置515与上述非易失性存储装置10相对应。非易失性存储装置515具有机密密钥存储部508、数据存储部509、ROM部510、固有ID存储部511以及全IC卡固有ID存储部540。
ROM部510与本发明的非易失性存储装置515所具有的第2种数据存储用存储单元组中规定的地址区域相当。读写器501的CPU505将在ROM部510中存储的程序装载到RAM503,然后使用该程序执行各种处理。CPU505为执行各种处理所需要的数据等也暂时存储在RAM503中。RAM503也可以使用SRAM(Static Random Access Memory)以及DRAM(DynamicRandom Access Memory)等易失性存储装置。或者,RAM503也可以由本发明的非易失性存储装置的第2种数据存储用存储单元组的一部分构成。
固有ID存储部511是在生成本发明的数字ID数据中使用的存储单元组,读写器所固有的ID数据可以采用本发明的方式来生成。再者,全IC卡固有ID存储部存储着对运用的多个IC卡502是不同的全部数字ID数据。此外,全IC卡的数字ID数据也能够用以读写器固有的数字ID数据为加密密钥而加密的数据来存储。
CPU505通过控制加密处理电路506,以预先规定的加密算法为基础而进行数据的加密和解密。作为加密算法,可以例示出三重DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。这些是所谓的使用1个机密密钥而进行加密和解密的公共密钥加密方式的加密算法。另外,也可以是RSA加密等使用机密密钥和公开密钥这2个不同的密钥,通过使加密时的密钥和解密时的密钥不同而进行加密通信的公开密钥方式。在此情况下,在后述的机密密钥存储部508也可以储存通信对方的公开密钥和通信者自身的机密密钥这两者。这些重要的密钥数据也可以将由固有ID存储部511生成的本发明的数字ID数据作为加密密钥进行加密,从而作为加密机密密钥或者加密公开密钥储存下来。如前所述,使用PUF技术而生成的数字ID数据是读写器所固有的,难以进行拷贝和黑客活动。因此,使用它而加密了的加密机密密钥或者加密公开密钥即使进行拷贝,也由于数字ID数据是不能拷贝的IC卡固有的数据,因而是安全的。
当在读写器501中进行数据的加密或者解密时,例如CPU505将非易失性存储装置515内规定的地址区域即机密密钥存储部508中存储的加密机密密钥以本发明的数字ID数据为密钥进行解密,从而得到原来的机密密钥,与应该加密或者解密的数据一起供给至加密处理电路506。加密处理电路506使用被供给的机密密钥而执行数据的加密或者解密。
数据存储部509存储着在CPU505执行程序方面所需要的数据。在数据存储部509中,规定的数据也能够以本发明的数字ID数据为密钥进行加密后存储。此外,规定的数据既可以作为第1种数据利用初始状态的存储单元而存储,也可以作为第2种数据利用可变状态的存储单元而存储。
作为机密密钥存储部508,可以使用前述的存储用存储单元。在使用存储用存储单元的情况下,由于利用电阻变化元件的初始状态和可变状态的不同存储数据,因而用通常的读出阈值的指令不能读出数据。因此,可以进行密钥信息的隐藏。此外,在机密密钥存储部508中,机密密钥也可以作为前述的加密机密密钥进行存储。
另外,存储单元阵列内的自由的地址可以存储数据。因此,即使欲进行使用探头而以物理的方式直接读出电阻值的解析,对该存储单元与哪一个数据对应进行确定也是困难的。再者,由于对是以数字ID数据进行了加密的数据、还是非加密的数据进行区别也很困难,因而使解析变得更加复杂。
如上所述,图29所示的通信系统500可以说对于机密密钥的泄漏具有较强的防篡改性(tamper resistant)。再者,本发明的数字ID数据在高温下的数据可靠性也优良,对于不容许数据错误的机密密钥的存储以及加密也是最合适的。
存储于机密密钥存储部508的机密密钥也可以被设定为与存储于IC卡502的机密密钥存储部526的机密密钥相同。也可以仅在与IC卡502对应的、允许IC卡502固有的数字ID数据即卡ID的读出的读写器501中预先存储机密密钥。
固有的数字ID数据基于在本发明的实施方式中说明的PUF技术而以包含数据错误的状态存储在固有ID存储部525中。
固有数字ID数据如前所述,可以成为每一个IC卡所固有的随机数。因此,可以用于IC卡固有的各种加密中。
(IC卡侧)
IC卡502具有输入/输出接口(I/F)部520、CPU521、加密处理电路522、RAM523以及非易失性存储装置530。
IC卡502的输入/输出I/F部520是用于进行与外部的无线通信而接收发送数据的接口,例如可以作为无线通信电路来实现。输入/输出I/F部520例如通常使用由线圈状天线和电容器构成的LC电路。如果IC卡的天线靠近读写器501,则可以与从读写器501辐射的规定频率的电磁波产生共振。另外,输入/输出I/F部520将在天线中被交流磁场激励的电流整流化以及稳定化,从而作为直流电源向IC卡502的各部供给。
输入/输出I/F部520将经由天线而接收的调制波检波并进行解调,并将解调后的数据解码而恢复为数字数据,从而向CPU521供给。另外,在解码的数字数据中产生使频率和相位锁定(被称为PLL的时钟再现技术:在装置内部搭载有电压可变的振荡器,与输入的数字数据匹配而对相位误差进行检测并积分,生成控制用电压并作为振荡器的控制电压输入,从而得到使输入的数据的采样频率一致、且相位也固定的时钟)的接收用时钟信号(未图示),从而作为数字数据的数据锁存用时钟信号供给。
再者,输入/输出I/F部520在将规定的信息发送给读写器501的情况下,根据从CPU521输入且进行了编码的数据而使天线的负荷发生变动而调制,经由天线而向读写器501发送。
IC卡502具有本发明的非易失性存储装置530。非易失性存储装置530与本实施方式的上述非易失性存储装置515相对应。因此,在以下的说明中,对于共同的要素,标注同一符号以及名称而进行适当的参照。此外,在本应用例中,非易失性存储装置530也作为非易失性存储装置发挥作用。
非易失性存储装置530具有存储对每一个IC卡固有的数字ID数据的固有ID存储部525、存储机密密钥数据的机密密钥存储部526、存储在CPU505执行程序方面所需要的数据的数据存储部527、以及存储CPU521所执行的程序的ROM部528。它们全都包含在1个存储单元阵列中。而且CPU521将在ROM部528中存储的程序装载到RAM523并执行等而进行各种处理。ROM部528中存储的程序数据也可以将以处于固有ID存储部的存储单元组为基础所生成的本发明的数字ID数据用作密钥进行加密而存储。
CPU521通过控制加密处理电路522,以预先规定的加密算法为基础而进行数据的加密和解密。如上所述,典型的加密方式有在发送侧和接收侧以相同机密密钥进行加密和解密的公共密钥方式、和以不同的公开密钥和机密密钥进行加密和解密的公开密钥方式。在以下的说明中,就采用公共密钥方式的情况进行说明。
此外,在公开密钥方式中,在IC卡502将IC卡侧加密的密文数据向读写器501侧发送的情况下,以预先从读写器501侧取得的公开密钥进行加密。相反,从读写器501侧送来的密文数据以在IC卡502侧预先存储的机密密钥进行解密。除了以上的点以外,公开密钥方式也与公共密钥方式同样。公开密钥方式中的公开密钥和机密密钥是相互唯一的成对的密钥,因而也能够相互将加密了的数据解密而同时进行相互认证。
在IC卡502中,也与读卡器中的说明同样,向机密密钥存储部526存储的密钥数据作为以本发明的PUF技术为基础用处于固有ID存储部525的数字ID数据进行加密的加密机密密钥或者加密公开密钥而保存。它们可以通过存储单元进行存储。在IC卡502中,在进行数据的加密或者解密的情况下,CPU521将非易失性存储装置530内的存储单元组的一部分即机密密钥存储部526中存储的加密机密密钥数据通过利用图3的阈值读出的特殊的读命令读出。读出的加密机密密钥数据通过本发明的数字ID数据而解密,成为原来的机密密钥数据。CPU521将机密密钥数据与应该加密或者解密的数据一起而向加密处理电路522供给。加密处理电路522使用供给的机密密钥而执行供给的数据的加密或者解密。
数据存储部527存储着在CPU521执行程序方面所需要的数据。在数据存储部527中,规定的数据既可以以明文的状态存储,也可以用机密密钥加密后存储,还可以以数字ID数据为密钥进行加密后存储。此外,规定的数据既可以作为第1种数据利用初始状态的存储单元而存储,也可以作为第2种数据利用可变状态的存储单元而存储。
在具有这样的加密和解密的功能的通信系统500中,以下就IC卡502和读写器501的通信的第1步骤进行叙述。
在IC卡502中,各IC卡固有的数字ID数据基于在本实施方式中说明的PUF技术而以包含数据错误的状态存在于固有ID存储部525中。
CPU521将各IC卡固有的数字ID数据从固有ID存储部525读出。CPU521将读出的加密机密密钥数据和数字ID数据作为密钥而向加密处理电路522供给。加密处理电路522以供给的数字ID数据为密钥而将加密机密密钥解密为原来的机密密钥。而且这次使用原来的机密密钥而对数字ID数据进行加密。加密的加密数字ID数据经由输入/输出I/F部520、504而向读写器侧的CPU505供给。
CPU505从读写器501内的非易失性存储装置515的机密密钥存储部508读出机密密钥数据。CPU505将机密密钥数据和接收的加密数字ID数据向加密处理电路506供给。加密处理电路506使用供给的机密密钥数据而将加密数字ID数据解密。解密的数字ID数据与固有ID存储部511所存储的各ID数据相对照。如果在各ID数据中有与解密的ID数据一致的数据,则通信的IC卡502就被认证为具有进行数据通信的资格的正规的IC卡502。而且其后的数据通信继续执行。
在读写器501和IC卡502的相互认证中示出了其它变形例。
读写器501的全IC卡固有ID存储部540保管着每一个IC卡的前述第1数字数据和第2数字数据。读写器501将想要接收的数字ID数据的地址的读出顺序的组合作为挑战数据而向IC卡502发送。IC卡502根据接受的挑战数据中的数字ID数据的地址顺序,变更进行前述第1数字数据和变形第2数字数据的异或运算的组合而作为响应数据向读写器501返送。
读写器501根据预先登记的第1数字数据和第2数字数据进行运算,从而求出期待的响应数据,然后进行与从IC卡返送的响应数据是否一致这样的对照,确认规定的位数以上一致的情况而认证IC卡。
作为响应数据的数字ID数据以包含前述错误数据的状态被发送,因而对于黑客活动的耐受性较高。数字ID数据是对各IC卡不同的随机数,只要数据间有充分的汉明距离,即使有规定位数的错误数据,也能够确定是哪一个IC卡的ID数据。因此,通过反复进行挑战数据的发送和响应数据的接收,就可以确定IC卡为正规的卡。再者,认证中使用的数据是对每一个IC卡固有且具有错误的数据,因而数据的解析很困难,可以实现能够担保非常高的安全的认证。
如上所述,根据通信系统500,可以将固有数字ID数据生成、机密密钥存储、数据存储、程序数据存储的功能仅用一个非易失性存储装置来实现。不需要另外搭载基于PUF技术的ID生成用电路,就可以提供尽可能抑制电路规模的增加的IC卡之类的移动型应用。
RAM503的功能也可以用非易失性存储装置515所具有的存储单元阵列来实现。RAM523的功能也可以用非易失性存储装置530所具有的存储单元阵列来实现。
各种数据由于可以保存在任意地址的非易失性存储单元中,因而能够对第三者隐秘哪个区域的存储单元以何种状态存储着信息。再者,也可以防卫数字ID数据免受使用物理探头而直接读出存储器内的数据之类的黑客活动的攻击,从而可以提供防篡改性极其优良的应用。
此外,将数字ID数据用作加密机密密钥而加密的数据(加密数据)不必存储在IC卡502中。例如,也可以是读写器501读取加密数据,读写器501的数据存储部509存储加密数据。再者,也可以是读写器501将加密数据向设置在外部的服务器(未图示)发送,从而该服务器的存储装置存储加密数据。在加密数据不是存储在IC卡502中的情况下,解密的步骤如以下那样。也就是说,IC卡502的CPU521经由输入/输出I/F部520而接收存储于外部的加密数据。另外,CPU521从固有ID存储部525生成各IC卡固有的数字ID数据。然后,加密处理电路522将数字ID数据用作解密密钥而使该加密数据解密。
根据上述说明,对于本领域的技术人员而言,本发明的许多改良以及其它实施方式是显而易见的。因此,上述说明应当仅作为例示来解释,是以向本领域的技术人员教示使本发明具体化的最优的实施方式为目的而提供的。不脱离本发明的精神而可以对其构造和/或功能的详细情况进行实质上的变更。
符号说明:
10 非易失性存储装置
11 读出电路
14 写入电路
15 控制电路
16 地址控制电路
17 列解码器电路
18 行解码器电路
20 存储单元阵列
21 存储单元
22 存储器主体部
25 中间值检测电路
400 错误校正以及辅助数据生成电路
401 随机数生成电路
402 ID数据控制电路