CN103403670A - 用于伪随机数生成的半导体存储器件 - Google Patents
用于伪随机数生成的半导体存储器件 Download PDFInfo
- Publication number
- CN103403670A CN103403670A CN2012800108180A CN201280010818A CN103403670A CN 103403670 A CN103403670 A CN 103403670A CN 2012800108180 A CN2012800108180 A CN 2012800108180A CN 201280010818 A CN201280010818 A CN 201280010818A CN 103403670 A CN103403670 A CN 103403670A
- Authority
- CN
- China
- Prior art keywords
- random number
- circuit
- data
- primitive
- storage
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 claims description 242
- 238000000034 method Methods 0.000 claims description 226
- 230000008569 process Effects 0.000 claims description 135
- 238000009826 distribution Methods 0.000 claims description 24
- 230000001186 cumulative effect Effects 0.000 claims description 14
- 230000015654 memory Effects 0.000 abstract description 146
- 238000010586 diagram Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 35
- 230000000694 effects Effects 0.000 description 27
- 238000007906 compression Methods 0.000 description 23
- 238000012795 verification Methods 0.000 description 20
- 238000007667 floating Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 238000012937 correction Methods 0.000 description 15
- 230000000052 comparative effect Effects 0.000 description 14
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 9
- 239000000758 substrate Substances 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000005056 compaction Methods 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 8
- 238000007689 inspection Methods 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 101001122448 Rattus norvegicus Nociceptin receptor Proteins 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 6
- 238000009413 insulation Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000002347 injection Methods 0.000 description 5
- 239000007924 injection Substances 0.000 description 5
- 239000002243 precursor Substances 0.000 description 5
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000004087 circulation Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000003534 oscillatory effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004899 c-terminal region Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- 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
-
- 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/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
根据一个实施例,一种半导体存储器件包括:存储基元阵列,其包括多个存储基元;随机数生成电路,其被配置为生成随机数;以及控制器,其被配置为控制所述存储基元阵列和所述随机数生成电路。所述随机数生成电路包括:随机数控制电路,其被配置为基于通过生成的控制参数从所述存储基元读出的数据而生成随机数参数;以及伪随机数生成电路,其被配置为通过使用所述随机数参数作为种子值来生成所述随机数。
Description
相关申请的交叉引用
本申请基于并要求2011年6月3日提交的第2011-125282号在先日本专利申请的优先权,此在先日本专利申请的所有内容在此引入作为参考。
技术领域
在此描述的实施例例如一般地涉及半导体存储器件。
背景技术
在需要安全性的领域中,使用随机数生成器以便在多方之间的认证过程中生成密钥或质询数据。
近年来,例如在智能电话、平板PC等环境中,严格限制电路规模和功耗。在这种环境中,愈发需要高能力随机数,这些随机数将用于商业内容使用或会计/结算中。
另一方面,在诸如上述智能电话和平板PC的移动设备中,NAND闪存例如主要用作非易失性存储器。
附图说明
图1是示出根据第一实施例的半导体存储器件的整体结构实例的框图;
图2是示出图1中的块(BLOCK)的等效电路图;
图3是示出处于擦除状态的存储基元的截面图;
图4是示出注入电子时的存储基元的截面图;
图5是示出处于编程状态的存储基元的截面图;
图6是示出释放电子时的存储基元的截面图;
图7示出单电平存储基元的阈值分布;
图8示出具有检验操作和没有检验操作的阈值分布;
图9示出多电平存储基元的阈值分布;
图10示出处于退化模式的多电平存储基元的阈值分布;
图11是示出根据第一实施例的随机数生成电路的框图;
图12是示出图11中的伪随机数生成电路的结构实例的等效电路图;
图13是示出图11中的随机数控制电路的结构实例的框图;
图14A是示出图13中的控制参数生成电路的结构实例的框图;
图14B示出记录在由页地址设置电路设置为读取目标的页中的数据;
图15是示出图13中的累加电路的结构实例的框图;
图16是示出图15中的累加电路的结构实例的框图;
图17示出通过控制参数读取的数据;
图18示出通过控制参数读取的数据;
图19示出控制参数与阈值分布之间的关系(MLC);
图20示出控制参数与阈值分布之间的关系(SLC);
图21是示出根据第二实施例的随机数生成电路的框图;
图22是示出根据第三实施例的随机数生成电路的框图;
图23是示出根据第四实施例的随机数生成电路的框图;
图24是示出根据第五实施例的系统的框图;
图25是示出根据比较实例1的协议的框图;
图26是示出根据比较实例2的协议的框图;
图27是示出根据第六实施例的结构实例的框图;
图28是示出根据第六实施例的认证流的流程图;
图29是示出根据第七实施例的结构实例的框图;
图30是示出根据第七实施例的认证流的流程图;
图31是示出根据第八实施例的结构实例的框图;
图32是示出根据第八实施例的认证流的流程图;
图33是示出第八实施例中的机密信息的数据传输的框图;
图34是示出根据第九实施例的结构实例的框图;
图35是示出根据第九实施例的认证流的流程图;
图36是示出根据第十实施例的结构实例的框图;
图37是示出根据第十实施例的认证流的流程图;
图38是示出根据第十一实施例的结构实例的框图;
图39是示出根据第十一实施例的认证流的流程图;
图40是示出根据第十二实施例的结构实例的框图;
图41是示出根据第十二实施例的认证流的流程图;
图42是示出根据第13实施例的ID检索过程(1)的框图;
图43是示出根据第13实施例的ID检索过程(2)的框图;
图44是示出根据第13实施例的ID检索过程(3)的框图;
图45是示出根据第13实施例的ID检索过程(4)的框图;
图46是示出根据第14实施例的ID绑定过程(1)的框图;
图47是示出根据第14实施例的ID绑定过程(2)的框图;
图48是示出根据第15实施例的结构实例的框图;
图49是示出根据第16实施例的结构实例的框图;以及
图50是示出根据第17实施例的结构实例的框图。
具体实施方式
通常,根据一个实施例,一种半导体存储器件包括:存储基元阵列,其中布置多个存储基元;随机数生成电路,其被配置为生成随机数;以及控制器,其被配置为控制所述存储基元阵列和所述随机数生成电路。所述随机数生成电路包括:随机数控制电路,其被配置为基于通过生成的控制参数从所述存储基元读出的数据而生成随机数参数;以及伪随机数生成电路,其被配置为通过使用所述随机数参数作为种子值而生成所述随机数。[关于:随机数生成器(随机数生成电路)]
在描述各实施例之前,首先描述随机数生成器(随机数生成电路)的概要。
如上所述,在需要安全性的领域中,使用随机数生成器以便在多方之间的认证过程中生成密钥或质询数据。一般地说,随机数生成器分为两种类型。
第一种类型是称为“确定性随机数生成器(确定性RNG)”或“伪随机数生成器(伪RNG)”的随机数生成器。这种类型的随机数生成器通过设置预定初始值(种子)来生成随机数。确定性随机数生成器的实例包括基于FIPS140-2附录C中列出的加密器的随机数生成器,以及作为简化后的生成器的M序列生成器,M序列生成器包括线性反馈移位寄存器(LFSR:线性反馈移位寄存器)。确定性随机数生成器可以具有独立软件的结构、独立硬件的结构,或者这两者的结构。
第二种类型是称为“非确定性随机数生成器(非确定性RNG)”或“物理随机数生成器(物理RNG)”的随机数生成器。这种随机数生成器主要包括硬件。非确定性随机数生成器的实例包括包含电路的随机数生成器,其中电路的热噪声(约翰逊噪声)被放大,以及包括高速振荡电路和平滑电路的随机数生成器。
上面的随机数生成器生成的随机数需要的主要能力包括以下三项:
“预测困难性”:预测困难性意味着不可能从观察到的随机数预测下一阶段的随机数。为此,例如需要非周期性和无规律性。
“一致性”:一致性意味着在输出的随机数中,0的出现概率和1的出现概率在统计上是相等的。
“长周期性”:长周期性意味着已输出随机数被再次输出的周期足够长。
可以通过使用适当数量的寄存器级,构造M序列生成器来实现一致性和长周期性,M序列生成器已作为确定性随机数生成器的实例被提及。另一方面,至于预测困难性,在M序列生成器中,因为可以从观察到的随机数序列很容易地清楚M序列生成器的结构,所以可以预测输出随机数,并且难以满足需要的能力。因此,当生成器用于内容保护或用于生成结算安全的密钥时,有必要使用上述基于FIPS140-2附录C中列出的加密器的随机数生成器,或者有必要通过IC卡中的特殊方法等构造非确定性随机数生成器。
但是,当通过硬件实现基于加密器的确定性随机数生成器时,需要多精度算术电路或多级非线性电路,并且在通常情况下,必需具有10000至100000个栅极的电路规模。另一方面,即使在热噪声放大电路(上面作为非确定性随机数生成器的实例被提及)中,热噪声最多为7-10μm,并且热噪声被放大4或5个数量级,此外添加用于调整0和1之间的平衡的电路。因此,热噪声放大电路的电路规模变得很大。此外,在包括高速振荡电路和平滑电路的随机数生成器中,具有以下倾向:在随机数中保持振荡电路中固有的周期性,并且电流消耗增加。
因此,如上所述,在严格限制电路规模和功耗的环境中,难以应用上述随机数生成器。
近年来,如上所述,例如在严格限制电路规模和功耗的智能电话、平板PC等环境中,愈发需要高能力随机数,这些随机数用于商业内容使用或会计/结算中。
另一方面,在诸如智能电话和平板PC的移动设备中,NAND闪存例如主要用作非易失性存储器。
因此,当半导体存储器件(例如NAND闪存)具有随机数生成功能时,具有高实用价值。
在下面描述的实施例中,将NAND闪存作为半导体存储器件的实例,并提出具体实例,其中在半导体存储器件中构造随机数生成器。
下面将参考附图描述不同实施例。在下面的描述中,将NAND闪存描述为半导体存储器件的实例,但半导体存储器件并不限于NAND闪存。在说明书中,所有附图中的通用部分由相同的参考标号表示。
[第一实施例]
参考图1至图20描述根据第一实施例的半导体存储器件。
<1.结构实例>
1-1.整体结构实例
首先,参考图1,描述了根据第一实施例的半导体存储器件的整体结构实例。如图1中所示,通过实例的方式示出NAND闪存。
该实施例的NAND闪存包括存储基元阵列11、随机数生成电路16、控制电路19、位线控制电路52、列解码器53、数据输入/输出缓冲器54、数据输入/输出端子55、字线驱动电路56、控制信号输入端子58和电源生成电路59。
存储基元阵列11包括多个块(块1至块n)。每个块(块1至块n)包括多个存储基元,这些存储基元布置在字线与位线之间的交叉部分处。稍后将描述详细信息。
如有必要,随机数生成电路16根据随机数触发信号生成预定随机数,随机数触发信号是响应于从外部输入的随机数触发命令而从控制电路19输出的。在控制电路19的控制下,使用生成的随机数例如在认证过程中生成密钥或质询数据,或者如有必要,通过数据输入/输出端子55将生成的随机数传输到外部主机设备。
根据本实施例的随机数生成电路16例如包括伪随机数生成电路,其通过设置预定初始值(种子值)而生成随机数。伪随机数生成电路的一个实例是线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)。稍后将描述详细信息。
位线控制电路52通过位线读出存储基元阵列11中的存储基元的数据,并通过位线检测存储基元阵列11中的存储基元的状态。此外,位线控制电路52通过位线向存储基元阵列11中的存储基元施加写入控制电压,从而在存储基元中写入数据。
在位线控制电路52中,提供数据存储电路,例如页缓冲器(未示出),并且列解码器53选择该数据存储电路。被读出到数据存储电路的存储基元的数据通过数据输入/输出缓冲器54被从数据输入/输出端子55输出到外部。
数据输入/输出端子55例如连接到外部主机设备。数据输入/输出端子55具有例如8位或16位的总线宽度。NAND闪存可以支持高速接口标准,例如切换模式接口。在切换模式接口中,例如通过数据输入/输出端子55,与数据选通信号(DQS)的上升沿和下降沿同步地执行数据传输。
主机设备例如是微计算机,并接收从数据输入/输出端子55输出的数据。主机设备20输出不同的命令CMD(写入命令、读取命令、擦除命令、状态读取命令、随机数触发命令等),以便控制NAND闪存、地址ADD和数据DT的操作。从主机设备输入到数据输入/输出端子55的写入数据DT通过数据输入/输出缓冲器54提供给由列解码器53选择的数据存储电路(未示出)。另一方面,将命令CMD和地址ADD提供给控制电路19。
字线驱动电路56在控制电路19的控制下,选择存储基元阵列11中的字线,并向所选择的字线施加数据读取、写入或擦除所必需的电压。
电压生成电路59在控制电路19的控制下,为图中所示的所连接的结构电路的操作提供必需的电压。例如,电压生成电路59增加从主机设备提供的外部电压,并生成在数据读取、写入或擦除时施加于字线的电压。
控制电路(控制器)19将必需的控制信号和控制电压传送到相应的所连接的电路,从而控制NAND闪存10的整体操作。控制电路19连接到存储基元阵列11、随机数生成电路16、位线控制电路52、列解码器53、数据输入/输出缓冲器54、字线驱动电路56和电压生成电路59。所连接的结构电路由控制电路19控制。
控制电路19连接到控制信号输入端子58,并由例如以下控制信号的组合控制:WE(写入使能)信号、RE(读取使能)信号、ALE(地址锁存使能)信号和CLE(命令锁存使能)信号,通过控制信号输入端子58从主机设备输入这些信号。
在功能方面,字线驱动电路56、位线控制电路52、列解码器53和控制电路19组成数据写入电路、数据读取电路和数据擦除电路。主机设备通过监视RY/BY(就绪/繁忙)信号输出端子(未示出)而检测NAND闪存是否正在执行内部操作,例如写入操作、读取操作或擦除操作。控制电路19通过RY/BY信号输出端子输出RY/BY信号。
1-2.块(BLOCK)的结构实例
接下来,参考图2,描述了组成有关第一实施例的存储基元阵列的块(BLOCK)的一个结构实例。通过实例的方式描述图2中的块1。在该实例中,因为块1中的存储基元被分批擦除,所以该块是数据擦除单位。
块1包括多个存储基元单元MU,它们沿着字线方向(WL方向)布置。存储基元单元MU包括NAND串(存储基元串),其沿着与WL方向交叉的位线方向(BL方向)布置,并包括:具有串联连接的电流路径的8个存储基元MC0至MC7;源极侧选择晶体管S1,其连接到NAND串的电流路径的一端;以及漏极侧选择晶体管S2,其连接到NAND串的电流路径的另一端。
在本实施例中,存储基元单元MU包括8个存储基元MC0至MC7。但是,存储基元的数量并不限于8,并且可以是两个或更多,例如56或32。
源极侧选择晶体管S1的电流路径的另一端连接到源极线SL。漏极侧选择晶体管S2的电流路径的另一端连接到位线BLm-1,与每个存储基元单元MU关联的位线BLm-1在该存储基元单元MU的上侧提供并沿着BL方向延伸。
字线WL0至WL7沿着WL方向延伸,并沿着WL方向共同连接到多个存储基元的控制电极。选择栅极线SGS沿着WL方向延伸,并沿着WL方向共同连接到多个选择晶体管S1。同样,选择栅极线SGD沿着WL方向延伸,并沿着WL方向共同连接到多个选择晶体管S2。
存在与字线WL0至WL7中的每一个关联的页(PAGE)。例如,如图2中的虚线所指示,存在与字线WL7关联的页7(PAGE7)。因为以页(PAGE)为单位执行数据读取操作和数据写入操作(稍后将描述),所以页(PAGE)是数据读取单位和数据写入单位。
1-3.关于:存储基元MC
接下来,参考图3至图6,描述了存储基元MC的元件结构,以及在执行数据写入等情况下的存储基元MC。
图3示出处于擦除状态(Erase state)的存储基元MC。如图3中所示,存储基元MC被如此配置:在半导体衬底(Si衬底)51上相继堆叠隧道绝缘薄膜(隧道氧化物)TO、浮置栅极(Floating Gate)FG、栅极间绝缘薄膜(栅极间氧化物)IGO和控制栅极(Control Gate)CG,并且以将堆叠结构夹入其间的方式在半导体衬底51中提供源极(Source)和漏极(Drain)(源极(Source)和漏极(Drain)之间具有间隔)。
在处于擦除状态的存储基元MC中,未在浮置栅极FG中注入电子,并且浮置栅极FG带正电。
图4示出将电子注入浮置栅极(插入电子)时的存储基元MC。如图4中所示,通过向控制栅极CG施加写入电压Vpgm,将电子(经由源极/漏极沟道而穿过隧道绝缘薄膜TO)注入浮置栅极FG。在下面的描述中,在某些情况下将电子注入到浮置栅极FG的操作表示为“数据编程”。
图5示出处于编程状态(Programmed state)的存储基元MC。如图5中所示,在处于编程状态的存储基元MC中,在浮置栅极FG中注入电子,并且浮置栅极FG带负电。因为在浮置栅极FG中充分注入电子,所以处于编程状态的存储基元MC的阈值电压变得高于处于擦除状态的存储基元MC的阈值电压。存储基元MC通过利用这种阈值电压变化来存储数据。
图6示出从浮置栅极释放电子(Extracting electron)时的存储基元MC。如图6中所示,通过向半导体衬底51施加擦除电压Vera,导致已被注入浮置栅极FG中的电子穿过隧道绝缘薄膜TO并被释放到半导体衬底51中。在下面的描述中,在某些情况下将从浮置栅极FG获得电子的操作表示为“数据擦除”。
在本实施例的情况下,以上述页(PAGE)为单位执行数据写入和数据读取。此外,以上述块(BLOCK)为单位执行数据擦除。
1-4.关于:阈值电压分布
接下来,描述存储基元的阈值电压分布。
1-4-1.单电平存储基元(SLC:Single Level Cell)的阈值分布
首先,参考图7,描述了单电平存储基元(SLC:Single Level Cell)的阈值分布。
在单电平存储基元的阈值分布(Vth分布)中,如图7中所示,显示了通过上述操作在存储基元中记录数据之后的“1”、“0”的分布。在该实例中,将“1”分配给擦除状态(Erase state),将“0”分配给编程状态(Programmed state)。
在数据写入操作和数据擦除操作时,施加写入电压或擦除电压之后,执行检验(Verify)操作以便检查每个存储基元的阈值电压,并在尚未达到目标电平的基元中再次执行数据写入或持续控制数据擦除操作。因此,在“1”和“0”的分布中提供用于确定检验操作是否已完成的检验电平(Verify level)。
在控制的一个实例中,在数据写入操作中,控制电路(Controller)19组合地增加以下项:施加于控制栅极的电压,电压施加时间,以及电压施加次数,从而将每个存储基元的阈值电压设置为目标电平。此外,在数据擦除操作中,控制电路(Controller)19组合地增加以下项:施加于半导体衬底51中的p阱(Pwell)的电压,电压施加时间,以及电压施加次数,从而将每个存储基元的阈值电压设置为目标电平。这样,编程数据具有预定的“1”和“0”分布宽度,如图7中所示。
在数据读取中,在“0”分布和“1”分布之间的中点处设置读取电压(读取电平的阈值)。从而,确定每个存储基元保存哪一数据。具体地说,向控制栅极CG施加读取电压时,如果存储基元MC设置为ON状态,则确定“1”,如果存储基元MC保持OFF状态,则确定“0”。
1-4-2.关于:检验操作
接下来,参考图8,描述了检验操作之前和之后的阈值分布。
图8的部分(a)示出在不执行上述检验操作(没有检验)的情况下的阈值分布。图8的部分(b)示出在执行上述检验操作(具有检验)的情况下的阈值分布。
如图8中所示,与不执行检验操作的情况相比,执行检验操作的情况下的阈值分布变得更窄。其原因是通过施加一次写入电压注入的电子量在存储基元之间变化,并且存在较早编程的存储基元和较晚编程的存储基元。
在图8的部分(a)中,因为不执行检验操作,所以即使在充分注入电子的存储基元中,数据编程也会继续,因此,阈值分布整体扩散。另一方面,在图8的部分(b)中,每次施加写入电压时,都会检查每个存储基元的阈值电压。在已达到检验电平的存储基元中,后续电子注入被禁止(抑制)。在未达到检验电平的存储基元中,再次施加写入电压,并且电子注入继续。因此,与不执行检验操作的情况相比,阈值分布变得更窄。
1-4-3.多电平存储基元(MLC:Multi Level Cell)的阈值分布
接下来,参考图9,描述了多电平存储基元(MLC:多电平基元)的阈值分布。
在多电平存储基元中,处于编程状态(Programmed state)的电子注入量被精细地控制。从而,例如在一个存储基元中存储两位时,形成四个阈值分布。在一个存储基元中存储三位时,形成八个阈值分布。
在该实例中,在多电平存储基元的阈值分布(Vth分布)中,将两位数据记录在一个存储基元中。因此,如图9中所示,按照从较低阈值电压侧的顺序,将“11”、“01”、“00”和“10”分配给四个阈值分布。为方便起见,在某些情况下,按照从较低阈值电压侧的顺序,将四个阈值分布称为“E”电平、“A”电平、“B”电平和“C”电平。
此外,在多电平存储基元的数据写入的情况下(如同单电平存储基元的数据写入的情况),以达到目标阈值电压的方式适当地控制写入操作。此外,在“11”、“01”、“00”和“10”分布的每一个中,同样提供检验电平(Verify level)。
在多电平存储基元中的数据读取时,在相应分布之间的中点处设置读取电压TH1、TH2和TH3。从而,确定在每个存储基元中存储“11”、“01”、“00”和“10”中的哪一数据。
在许多情况下,根据位是否为TH2或更多来区分的位(即,图中的MSB位)以及根据位是否为TH1或更多及TH3或更少来区分的位(即,图中的LSB位)被分配给不同的页,并且这些页例如称为“低页”和“高页”。具体地说,并非通过同时使用TH1、TH2和TH3来读取一个页。当读取低页时,使用TH2,当读取高页时,使用TH1和TH3。
1-4-4.处于退化模式的阈值分布
首先,参考图10,描述了处于退化模式的阈值分布。在下面的描述中,通过实例的方式描述多电平存储基元中的退化模式。
如上所述,在存储基元中对数据编程之后,如果在同一存储基元中或者在该存储基元附近的存储基元中执行数据写入操作,则在该基元的控制栅极CG与半导体衬底51中的p阱(Pwell)之间施加低于写入电压的预定电压。因此,产生弱编程状态,并且阈值电压移动到较高电压侧(读取/编程干扰的方向)。这种状态称为“读取干扰”或“编程干扰”。阈值分布的宽度增加,并且读取能力退化。这种干扰变化很大,具体取决于使用NAND闪存的条件。
例如,在第2008-117471号日本专利申请KOKAT公开(基于此公开,登记为第7613048号美国专利的第11/934330号美国专利申请要求优先权)中披露了编程干扰对存储基元的影响。例如,在第2004-326867号日本专利申请KOKAT公开(基于此公开,登记为第7099190号美国专利的第10/822177号美国专利申请要求优先权)中披露了读取干扰对存储基元的影响。这些文档的内容在此引入作为参考。
另一方面,如果在存储基元中对数据编程之后,在预定时段内保留存储基元,则取消捕获保留在浮置栅极FG中的电子,并且阈值电压移动到较低电压侧(数据保留的方向)。这种状态称为“数据保留”,并且阈值分布的宽度增加,从而导致读取能力退化。数据保留变化很大,具体取决于存储基元的保留时段,或者保留存储基元时的温度和湿度环境。此外,众所周知,如果存储基元的重新编程次数(例如擦除次数)增加,则数据保留变得更糟。
例如,在第2008-269473号日本专利申请KOKAT公开(基于此公开,第12/107984号美国专利申请要求优先权)中公开了存储基元的数据保留特性,并且此文档的内容在此引入作为参考。
此外,紧接在数据编程之后,无法明显区分在隧道氧化物薄膜TO中捕获的电子与在浮置栅极FG中捕获的电子。因此,将发生这种现象:阈值电压根据是否取消捕获这种电子而变化。例如,在NAND闪存的情况下(如在本实施例中),随着微制造工艺的发展,集成度增加。因此,可以保留在浮置栅极FG中的电子数量减少,并且在隧道氧化物薄膜TO中捕获的电子的相对贡献率增加,因此在退化模式下,在隧道氧化物薄膜TO中捕获的电子变成重要因素。
如上所述,数据编程之后的阈值电压分布状态由于各种因素而变化,这些因素例如包括存储基元的使用条件、存储基元的使用环境等。此外,在再生产时的环境中,阈值电压分布并不恒定,具体取决于使用环境,例如温度。此外,因为制造时的产品不一致而导致这些特性变化很大,所以几乎不可能预测每个NAND闪存中的每个存储基元的状态。
考虑以上所述,在本实施例中,NAND闪存中物理上固有的这种预测困难性用于随机数生成电路16中的预测困难性。从而,可以最小化电路规模和功耗的增加,并可以生成高能力随机数。稍后将描述具体结构等。
在本实施例中,将NAND闪存描述为半导体存储器件的一个实例。但是,该实施例中的半导体存储器件并不限于NAND闪存。其原因是读出数据等有所变化的现象也会在诸如DRAM(动态随机存取存储器)和MRAM(磁随机存取存储器)之类的半导体存储器件中发生,以及在NAND闪存中发生。
1-5.关于:随机数生成电路16
接下来,参考图11,描述了根据第一实施例的随机数生成电路16的一个结构实例。
如图11中所示,根据第一实施例的随机数生成电路16包括时钟生成电路160、线性反馈移位寄存器161和TRNG控制器162。
时钟生成电路(时钟生成器)160为线性反馈移位寄存器161提供预定时钟CLK。时钟生成器160不一定布置在随机数生成电路16中,并且可以从包括在NAND闪存中的组件提供必需的时钟CLK。备选地,可以使用从NAND闪存外部提供的时钟CLK。
线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)(伪随机数生成电路)161通过提供的操作时钟CLK使用预定初始值启动操作,并通过从TRNG控制器162输入的信号PRESET和CLR生成随机数(Random Number)。
TRNG控制器(TRNG Controller)(随机数控制电路)162接收从控制电路(控制器)19提供的随机数生成触发信号,并启动过程。作为从控制电路(控制器)19提供的随机数生成触发信号,可以使用通过利用有关随机数生成的请求命令(随机数触发命令)生成的信号,请求命令从NAND闪存外部的主机设备输入。备选地,可以向NAND闪存添加新的控制信号输入端子,并且可以根据来自该控制信号输入端子的输入生成随机数生成触发信号。
TRNG控制器162接收随机数触发信号,然后通过使用从LFSR161输入的随机数来设置读取电压设置参数(读取电压参数)。例如通过布置在随机数生成电路16外部的数据输入/输出缓冲器54,将读取电压设置参数(读取电压参数)输出到控制电路(控制器)19。备选地,可以将读取电压设置参数(读取电压参数)直接从随机数生成电路16输出到控制电路(控制器)19。
随后,控制电路(控制器)19根据读取电压设置参数(读取电压参数),针对存储基元阵列11执行数据读取操作。例如通过位线控制电路52中的页缓冲器,相继将针对其执行数据读取过程的数据(页数据)输入到TRNG控制器162。
然后,TRNG控制器162生成依赖于读出数据的PRESET值(种子值),并将PRESET值传送到LFSR161。
随后,LFSR161将接收的PRESET值存储在它自己的寄存器中,并通过使用PRESET值作为种子值而生成随机数。
通过上面的一系列操作,即使当种子值(在LFSR161的初始操作时设置)固定时,时间自身(直到输入随机数生成触发信号时)才作为随机数生成参数而做出贡献。进一步,因为读取电压设置参数(读取电压参数)(由从LFSR161输出的随机数确定)而导致读出数据变化,所以可以通过将读出数据再次设置为LFSR161的种子值而改进随机数的属性。
在这种情况下,如果始终在从启动LFSR161操作时起经过固定时间之后输入随机数生成触发信号,则读取电压设置参数(读取电压参数)变成固定参数。但是,即使在这种情况下,如上所述,因为NAND闪存的退化模式或环境依赖性而导致读出数据不唯一,所以可以很肯定地预计种子值也有所变化。
在本结构实例中,示出了LFSR161的使用模式。但是,根据要求级别,可以使用某种其它伪随机数生成器。例如,当要提供较高级随机数生成功能时,可以使用TRNG控制器162作为物理随机数种子,并将LFSR161替换为以下各项:基于FIPS140-2中指示的AES(高级加密系统)加密的伪随机数生成器,或者基于椭圆曲线加密的随机数生成器,或者基于离散对数加密的伪随机数生成器。另一方面,可以认为本实施例的随机数生成电路16对可能变成伪随机数生成器的一个弱点的种子设置方法有效。
此外,通过进一步多次重复上述系列操作,可以进一步改进随机数的属性。具体地说,即使在LFSR161输出的读取电压设置参数(读取电压参数)固定并且读出数据的随机数属性较低的情况下,即使1位不同,则用于下一阶段过程的读取电压设置参数(读取电压参数)也将不同,因此改进随机数的属性。
1-5-1.线性反馈移位寄存器(LFSR)161的结构实例
接下来,参考图12,描述了有关第一实施例的线性反馈移位寄存器(LFSR)161的一个结构实例。
如图12中所示,有关第一实施例的线性反馈移位寄存器(LFSR)161包括多个寄存器电路RG1至RG16和多个异或电路XOR1至XOR4。
寄存器电路RG1至RG16中的每一个的PRE端子从TRNG控制器162接收PRESET信号作为寄存器设置信号接收部分。寄存器电路RG1至RG16中的每一个的CLR端子从TRNG控制器162接收CLR信号作为寄存器设置信号接收部分。寄存器电路RG1至RG16的D端子接收XOR4的输出或前一个寄存器电路的输出作为数据输入部分。寄存器电路RG1至RG16中的每一个的C端子从时钟生成器160接收时钟CLK作为时钟输入部分,并且寄存器电路RG1至RG16中的每一个的Q端子输出输出数据作为数据输出部分。多个寄存器电路RG1至RG16串联,以便前一种状态的输出Q变成后一级的输入D。
在本实施例中,如稍后将描述的那样,为了示出16位的实例,使用最后一级的寄存器电路RG16的输出Q作为随机数(Random Number)。根据必需的位数,可以使用必需寄存器电路RG1至RG16的输出Q。
异或电路XOR1至XOR4将它们的输入端和输出端串联连接。异或电路XOR4的另一个输入端连接到寄存器电路RG11的输出端Q,并且异或电路XOR4的输出端连接到寄存器电路RG1的输入端D。异或电路XOR3的另一个输入端连接到寄存器电路RG13的输出端Q,并且异或电路XOR3的输出端连接到异或电路XOR4的输入端。异或电路XOR2的另一个输入端连接到寄存器电路RG14的输出端Q,并且异或电路XOR2的输出端连接到异或电路XOR3的输入端。异或电路XOR1的输入端连接到寄存器电路RG15和RG16的输出端Q,并且异或电路XOR1的输出端连接到异或电路XOR2的输入端。
如同寄存器电路RG1至RG16,如有必要,可以根据必需的位数和对应的寄存器电路RG来布置异或电路XOR1至XOR4。
在用于生成随机数的情况下(如在本实施例中),根据具有最大循环周期的多项式来连接LFSR161中的寄存器电路RG1至RG16和异或电路XOR1至XOR4。该实施例的结构输出的随机数序列例如称为“M序列”。
1-5-2.TRNG控制器(TRNG Controller)162的结构实例
接下来,参考图13,描述了有关第一实施例的TRNG控制器(TRNGController)162的一个结构实例。
如图13中所示,TRNG控制器(随机数控制电路)162包括读取电压设置参数生成电路(读取电压参数生成器)162A和累加电路(累加器)162B。
读取电压设置参数生成电路(读取电压参数生成器)(参数生成电路)162A通过随机数生成触发信号而锁存LFSR161的输出(output),然后将LFSR输出变成参数(稍后将描述),并输出它作为读取电压设置参数(读取电压参数)。
累加电路(累加器)162B从存储基元阵列11接收读出数据(页数据),然后执行累加过程并将随机种子值(随机种子)输出到LFSR161。该随机种子值(随机种子)以上述PRESET信号和CLR信号的形式输出,这两个信号是寄存器设置参数。
1-5-3.参数生成电路(读取电压参数生成器)162A的结构实例
接下来,参考图14A,描述了图13中的参数生成电路(读取电压参数生成器)162A的一个结构实例。
如图14A中所示,参数生成电路162A包括页地址设置电路(页地址设置)162A-1和读取电压设置电路(Vth电平设置)162A-2。
页地址设置电路(页地址设置)162A-1从控制器19接收随机数生成触发信号,并生成页地址的控制参数,该参数通过使用LFSR161的输出值来读出。其原因是当记录在相应页中的数据不同时,用作基础的数据的变化有助于改进随机数的属性。
参考图14B,描述了记录在由页地址设置电路162A-1设置为读出目标的页中的数据。记录在读出目标页中的数据需要满足这样的条件:该数据是由随机数序列随机化的数据,该数据包括在NAND闪存之间不同的数据,无法从外部读出同一页中的数据,并以预定计时更新该数据。
至于记录在读出目标页中的数据是随机数序列所随机化的数据的条件,以预定大小的段为单位对读出数据执行累加过程,如稍后将描述的那样。因此,希望段中的数据没有偏差。如果段中的数据存在偏差,例如,如果所有数据均为“1”或“0”,则可能出现这种情况:读出数据中未出现变化,具体取决于设置的读取电压。希望“1”的出现概率和“0”的出现概率尽可能相等,或者换言之,数据由随机数序列随机化。
至于记录在读出目标页中的数据包括在NAND闪存之间不同的数据(芯片唯一的数据)的条件,当所有数据公用于所有NAND闪存时,针对读取电压和读取数据之间的关系,可能在所有芯片中出现共同趋势。希望数据的至少一部分不同。
至于无法从外部(读取禁止区域)读出同一页中的数据的条件,攻击难度变化很大,具体取决于攻击者是否访问读出页中的数据。例如,如果攻击者通过某种方法获得读取电压,则从记录在页中的数据和读取电压的组合预测位具有翻转可能性的难度变化很大,具体取决于攻击者是否持有数据。
至于以预定计时更新记录在读出目标页中的数据(更新数据)的条件,如果更新所记录数据的至少一部分,则确保读出数据一定不同,并且一定更新随机种子值。可以考虑在以下时间点设置更新计时:NAND闪存通电之后的某一时间点、将有关随机数生成的命令输入到NAND闪存之后的某一时间点,或者生成随机数之后的某一时间点。可以考虑通过以下方法执行数据更新:在页数据的一部分中提供用于更新的数据字段并在该字段中添加数据的方法、将作为数据生成的随机数记录在该字段中的方法,或者记录作为数据记录在字段中的数据与所生成的随机数之间的异或逻辑和(exclusive logical sum)的方法。
读取电压设置电路(Vth电平设置)162A-2从控制器19接收随机数生成触发信号,并使用LFSR161的输出值,生成从基元阵列读取页时的读取电压的控制参数。
电路162A-1和162A-2生成的两个参数作为读取电压设置参数(读取电压参数)信号被输出。其原因是根据读出的页是多电平存储基元的上述低页还是高页,从读取电压设置电路(Vth电平设置)162A-2输出的必需参数有所不同。
1-5-4.累加电路(累加器)162B的结构实例
接下来,参考图15,描述了图13中的TRNG控制器162中的累加电路(累加器)162B的一个结构实例。
如图15中所示,累加电路(累加器)162B包括多个累加电路(累加器)(1)至(N),并从读出页数据(Page data)计算到LFSR161的种子设置值(累加数据)。
从存储基元阵列11读出并输入到累加电路(累加器)(1)至(N)的页数据(Page data)以预定数据长度为单位被划分,并对其执行累加过程。每个划分的数据称为“段”(段1-N)。累加电路(累加器)(1)至(N)执行段的位相加。在位相加中,使用异或逻辑和。具体地说,在段内的位中,如果1的数量是奇数,则输出“1”。如果1的数量是偶数,则输出“0”。
可以根据需要确定累加电路(累加器)(1)至(N)的数量。例如,在本实施例中,如果到LFSR161的输出位是16位,则应该足够。因此,累加器的数量是16(N=16)。
通过有关该实施例的累加电路(累加器)162B的结构,执行累加过程。即使几乎所有的读出数据都与先前的读出数据相同,但如果即使存在1位不同,则累加结果也不同。因此,具有增加信息熵的效果,从而有助于改进随机数的属性。
针对每个段(段1-N)计算的累加数据用于LFSR161的种子设置值。
尽管本实施例涉及提供多个累加电路的情况,但同样适用于以下结构的情况:通过使用单个累加器,针对每个段边界执行重设。
此外,可以通过使用包括单个寄存器电路和单个异或电路的反馈寄存器来构造累加器,如下面将描述的那样。
1-5-4.累加电路(累加器)(1)的结构实例
接下来,参考图16,描述了图15中的累加电路(累加器)的一个结构实例。通过实例的方式描述累加电路(累加器)(1)。
如图16中所示,该实例的累加电路(累加器)(1)包括异或电路XOR0和寄存器电路RG0。
将段数据(段数据(1))和寄存器电路RG0的输出Q输入到异或电路XOR0的输入端。将异或电路XOR0的输出端连接到寄存器电路RG0的输入端D。
将时钟CLK、预充电信号PRE和清除信号CLR输入到寄存器电路RG0,并从输出端子Q输出累加后的信号(累加后的数据)。
如上所述,可以仅通过包括单个寄存器电路和单个异或电路的反馈寄存器构造有关本实施例的累加电路(累加器)。这同样适用于其它累加电路(累加器)(2)至(N)。
<2.通过控制参数(读取电压参数)的数据读取操作>
接下来,参考图17至图20,描述了由上面的结构实例设置的读取电压设置参数(读取电压参数)的数据读取操作。
2-1.多电平存储基元(“A”、“B”、“C”)中的数据读取
首先,参考图17,描述了多电平存储基元中的读取电压设置参数的数据读取。如图17中所示,在这种情况下,在阈值电压分布“A”、“B”、“C”的中心基准处设置读取电压TH1’/TH2’/TH3’。
使用TRNG控制器(TRNG Controller)162指定的读取电压设置参数(读取电压参数)作为通过控制电路19的控制来读取存储基元阵列11的预定页时的读取电压。
在正常数据读取中,在相应阈值电压分布(如图17中所示的TH1/TH2/TH3)之间的中间电平的目标处设置数据读取基准(读取电压)。
但是,根据有关该实例的读取电压设置参数(读取电压参数),将相应阈值电压分布(即,图17中所示的TH1’/TH2’/TH3’)的中点“A”、“B”和“C”设置为数据读取基准。这样,通过在每个阈值电压分布“A”、“B”、“C”的中心处设置数据读取基准,即使在阈值电压电平具有微小变化的情况下,也可以最大化检测位的翻转数量。
更具体地说,将每个阈值电压分布“A”、“B”、“C”的中点设置为基准,并将具有预定宽度的范围设置为读取电压TH1’/TH2’/TH3’的设置范围。在该设置范围中,根据从LFSR161输出的随机数,TRNG控制器162选择读取电压设置参数(读取电压参数)。稍后将描述详细信息。
2-2.多电平存储基元(“E”、“A”、“B”)中的数据读取
接下来,参考图18,描述了多电平存储基元中的控制参数的数据读取。
所示实例不同于图17中所示的实例,因为将阈值电压分布“E”、“A”、“B”的中心电平设置为读取电压TH1’/TH2’/TH3’的目标。
如有必要,可以使用该设置。
2-3.读取电压设置参数(读取电压参数)与阈值电压之间的关系(MLC)
接下来,参考图19,针对在上节2-1和2-2中描述的多电平存储基元(MLC)中的读取电压设置参数(读取电压参数)和阈值电压之间的关系,描述了涵盖两个实例的具体参数设置方法。
图19示出处于多电平模式的读取电压设置参数(读取电压参数)(由参数设置电路(Vth参数设置)162A-2输出)与阈值电压之间的关系的一个实例。
如图19中所示,在本实例中,针对阈值电压分布“E”、“A”、“B”和“C”,读取电压设置参数(读取电压参数)从总共电平0至电平31中选择电平。
例如,在阈值电压分布“E”中,参考阈值电压分布“E”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平0到电平7。在阈值电压分布“A”中,参考阈值电压分布“A”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平8到电平15。在阈值电压分布“B”中,参考阈值电压分布“B”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平16到电平23。在阈值电压分布“C”中,参考阈值电压分布“C”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平24到电平31。
2-4.读取电压设置参数(读取电压参数)和阈值电压之间的关系(SLC)
接下来,参考图20,描述了单电平存储基元(SLC)中的读取电压设置参数(读取电压参数)和阈值电压之间的关系。
如图20中所示,在本实例中,针对阈值电压分布“E”和“A”,读取电压设置参数(读取电压参数)从总共电平0至电平15中选择电平。
例如,在阈值电压分布“E”中,参考阈值电压分布“E”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平0到电平7。在阈值电压分布“A”中,参考阈值电压分布“A”的中点,提供预定宽度的设置范围,并按预定间隔将该范围分成从电平8到电平15。
在该单电平存储基元的情况下,通过由十进制记数法表示LFSR161的输出4位值而获得的值对应于电平i。在SLC记录的情况下,因为读取电压参数(Read voltage parameter)是单个参数,所以使用LFSR161的输出4位值选择的一个阈值电压参数作为TH’。
<3.有利效果>
根据有关第一实施例的半导体存储器件,至少可以获得以下有利效果(1)至(4):
(1)可以生成高能力随机数,并可以提高预测困难性。
如上所述,根据第一实施例的NAND闪存至少包括其中布置存储基元MC的存储基元阵列11、生成随机数的随机数生成电路16,以及控制存储基元阵列11和随机数生成电路16的控制电路(控制器)19。
随机数生成电路16包括:随机数控制电路162,其根据生成的读取电压设置参数(读取电压参数)从存储基元MC读出的数据,生成随机数参数(PRESET、CLR);以及伪随机数生成电路161,其通过使用随机数参数(PRESET、CLR)作为种子值,生成随机数(Random number)。
如上所述,有关该实施例的随机数生成电路16包括伪随机数生成电路161,其通过使用随机数参数(PRESET、CLR)作为种子值来生成随机数(Random number),随机数参数(PRESET、CLR)基于通过生成的读取电压设置参数(读取电压参数)从存储基元MC读出的数据。
在本实施例中,如上所述,首先,可以在结构中使用NAND闪存的读取数据中的阈值电压分布的随时间变化的属性,以便生成随机数。
更具体地说,如参考有关退化模式的阈值电压分布的图10描述的那样,在NAND闪存的存储基元中,数据编程之后的阈值电压分布状态由于各种因素而变化,这些因素例如包括使用条件、使用环境。此外,在再生产时的环境中,阈值电压分布并不恒定,具体取决于使用环境,例如温度。此外,因为制造时的产品不一致而导致这些特性变化很大,所以几乎不可能预测每个NAND闪存中的每个存储基元的状态。
在本实施例中,NAND闪存中物理上固有的这种预测困难性可以用于随机数生成电路16生成的随机数的预测困难性。
因此,可以生成高能力随机数(Random number),并可以提高预测困难性。
(2)可以确保随机数的一致性和长周期性。
包括在随机数生成电路16中的伪随机数生成电路161将生成的随机数(Random number)反馈回随机数控制电路162。
根据上述结构,其次,可以通过使用生成的高能力随机数(Randomnumber)再次作为随机数控制电路162的所谓初始值,确保随机数的一致性和长周期性。
(3)可以最小化随机数生成电路16的电路规模和功耗的增加。
如上所述,在本实施例中,在随机数生成电路16用以生成随机数的结构中,使用NAND闪存中物理上固有的预测困难性。
因此,该实施例的随机数生成电路16是有利的,因为为了生成高级随机数,不需要增加电路规模,功耗也不增加,并可以有利地最小化电路规模和功耗。
近年来,例如在严格限制电路规模和功耗的智能电话、平板PC等环境中,可以应用该实施例的随机数生成电路16作为生成高能力随机数的随机数生成电路,这些随机数将用于商业内容使用或会计/结算中。
另一方面,在诸如智能电话和平板PC的移动设备中,NAND闪存例如主要用作非易失性存储器。
因此,可以认为在NAND闪存包括独立于控制器19的随机数生成电路16的结构中,具有高实用价值。此外,可以有利地降低制造成本。
(4)可以提高种子值(PRESET、CLR)的信息熵,并可以改进随机数的属性。
本实施例的随机数生成电路162包括:参数生成电路162A,其通过随机数生成触发信号锁存随机数,并生成阈值读取电压设置参数信号(读取电压参数);以及累加电路162B,其通过针对读出数据(页数据)执行累加过程而生成种子值(PRESET、CLR)。
在上述结构中,累加电路162B以预定段为单位,对从存储基元阵列11读出的数据(页数据)执行平滑累加过程。从而,可以提高生成的种子(PRESET、CLR)的信息熵。
因此,具有以下优势:可以提高信息熵,并可以改进随机数的属性。
[第二实施例(随机数生成电路的另一个结构实例)]
接下来,参考图21描述根据第二实施例的半导体存储器件。该实施例涉及随机数生成电路16的另一个结构实例。将省略与第一实施例共有的部分的详细描述。
<随机数生成电路16的结构实例>
如图21中所示,第二实施例的随机数生成电路16与第一实施例的不同之处在于:随机数生成电路16包括LFSR1(161-1)、LFSR2(161-2)和TRNG控制器162,并从时钟生成器1(160-1)和时钟生成器2(160-2)向LFSR1(161-1)和LFSR2(161-2)提供工作时钟CLK1和CLK2。
通过从外部提供的自由运行触发信号,启用时钟生成器1(160-1)的操作。作为自由运行触发信号,例如可以在NAND闪存的接口处使用芯片使能信号(CE)、地址锁存使能信号(ALE)或命令锁存使能信号(CLE)。此外,可以单独或组合使用这些使能信号。进一步,可以使用某种其它信号,例如读取使能信号(RE)或写入使能信号(WE)。当自由运行触发信号为ON时,时钟生成器1(160-1)运行,并为LFSR1提供时钟CLK1。
LFSR1(161-1)通过提供的操作时钟CLK1使用预定初始值启动操作,并生成随机数1作为级数1。通过从外部提供的使能信号的提供时间,更新LFSR1(161-1)的运行周期(即,从LFSR1(161-1)输出的值)。
TRNG控制器162接收从控制器19提供的随机数生成触发信号,并启动操作。作为从外部提供的随机数生成触发信号,例如使用通过利用有关随机数生成的请求命令作为触发器而生成的信号,请求命令从NAND闪存的外部输入。接收到触发信号之后,TRNG控制器162通过使用从LFSR1(161-1)输入的随机数1来设置读取电压设置参数(读取电压参数)。
将读取电压设置参数(读取电压参数)输出到随机数生成电路16的外部,并且NAND闪存的控制器19根据该参数针对预定基元阵列执行数据读取操作。相继将针对其执行读取过程的数据输入到TRNG控制器162。TRNG控制器162生成依赖于读出数据的种子值(PRESET、CLR),并将种子值作为级数2提供给LFSR2。
LFSR2(161-2)将所接收的种子值(PRESET、CLR)存储在包括在LFSR2(161-2)内的寄存器中,并通过使用该种子值生成随机数(Randomnumber)。
该实施例中的LFSR1(161-1)、LFSR2(161-2)和TRNG控制器162与在第一实施例中描述的LFSR(伪随机数生成电路)161和TRNG控制器(随机数控制电路)162具有相同的结构。
时钟生成器1(160-1)和时钟生成器2(160-2)可以包括在随机数生成电路16中,或者包括在NAND闪存中的时钟生成器可以被代替。此外,在不提供时钟生成器2(160-2)的情况下,可以将时钟生成器1(160-1)的时钟作为工作时钟提供给LFSR1(161-1)和LFSR2(161-2)。在许多情况下,在最初在NAND闪存中提供的时钟生成器与用于随机数生成电路16的时钟生成器之间,需要的工作频带有所不同,并且工作所必需的计时也有所不同。例如,需要包括在NAND闪存中的时钟生成器以便以高频(例如数十至数百MHz)工作。另一方面,通常随机数生成电路16中的工作频率可能很低,尽管该频率有所变化,具体取决于生成的随机数的大小和需要的操作时间。在这种情况下,独立于最初在NAND闪存中提供的高速时钟生成器,准备了低速时钟生成器(如在本实施例中),并且这有助于降低功耗。
希望用于NAND闪存的总体工作的时钟具有最高可能质量。但是,从随机数生成电路16的角度来看,希望工作时钟的质量存在变化。其原因是质量变化可增加预测困难性。在此上下文中,质量例如是时钟抖动量,或者由于温度变化而导致的时钟频率变化。此外,准备多个时钟生成器(如在此实施例中)意味着增加上述质量变化的因素,并且这有助于改进随机数的属性。这些因素依赖于需要的随机数能力,以及如何设计损失(例如电路大小和功耗)。本实施例适用于任何情况。
其它结构和操作与第一实施例基本相同。
<有利效果>
根据有关第二实施例的半导体存储器件,至少可以获得与上述相同的有利效果(1)至(4)。
此外,第二实施例的随机数生成电路16包括LFSR1(161-1)、LFSR2(161-2)和TRNG控制器162,并从时钟生成器1(160-1)和时钟生成器2(160-2)向LFSR1(161-1)和LFSR2(161-2)提供工作时钟CLK1和CLK2。
通过伪随机数生成电路被分成两个组件(即,LFSR1(161-1)和LFSR2(161-2))的结构,具有以下优势:可以通过利用输入到LFSR1(161-1)和LFSR2(161-2)的信号的长度差异,进一步改进长周期性。
在本实施例中,通过利用输入到时钟生成器1(160-1)的自由运行信号与输入到时钟生成器2(160-2)的随机数触发信号之间的长度差异,生成随机数1作为级数1,并生成种子值(PRESET、CLR)作为级数2。因此,在本实施例中,希望级数1小于级数2(级数1<级数2)。
时钟生成器1(160-1)和时钟生成器2(160-2)之间的变化如上所述。
[第三实施例(随机数生成电路的另一个结构实例)]
接下来,参考图22描述根据第三实施例的半导体存储器件。该实施例涉及随机数生成电路16的另一个结构实例。将省略与上面描述中共有的部分的详细描述。
<随机数生成电路16的结构实例>
如图22中所示,第三实施例的随机数生成电路16与第二实施例的不同之处在于,随机数生成电路16除了LFSR1的种子设置之外,进一步包括异或电路XOR9,以便将从TRNG控制器162输出的物理随机数用于从LFSR2输出的伪随机数。
<有利效果>
根据有关第三实施例的半导体存储器件,至少可以获得与上述相同的有利效果(1)至(4)。
第三实施例的随机数生成电路16除了LFSR1的种子设置之外,进一步包括异或电路XOR9,以便将从TRNG控制器162输出的物理随机数用于从LFSR2输出的伪随机数。
通过上述结构,不仅添加种子值,而且还添加从TRNG控制器162输出的物理随机数。从而,可以将预测困难性传递给输出的随机数序列(Random number)本身。因此,有利的是,可以进一步改进随机数的属性。
同时,在无法仅通过从TRNG控制器162输出的物理随机数来确保一致性(其是对随机数的要求)的情况下,可以将物理随机数与伪随机数相组合。
[第四实施例(随机数生成电路的另一个结构实例)]
接下来,参考图23描述根据第四实施例的半导体存储器件。该实施例涉及随机数生成电路16的另一个结构实例。将省略与上面描述中共有的部分的详细描述。
<随机数生成电路16的结构实例>
如图23中所示,第四实施例的随机数生成电路16与第三实施例的不同之处在于,还将来自TRNG控制器162的种子值(PRESET、CLR)输入到LFSR1(161-1),从而执行种子设置过程。
<有利效果>
根据有关第四实施例的半导体存储器件,至少可以获得与上述相同的有利效果(1)至(4)。
根据第四实施例的随机数生成电路16的结构,还将来自TRNG控制器162的种子值(PRESET、CLR)输入到LFSR1(161-1),从而可以改进读取电压设置参数本身的随机数属性。
因此,可以有利地改进最终输出的随机数序列(Random number)。
[第五实施例(系统实例)]
接下来,参考图24描述根据第五实施例的系统。根据第五实施例的系统涉及包括上述实施例的半导体存储器件的系统实例。将省略与上面描述中共有的部分的详细描述。
<系统结构实例>
如图24中所示,第五实施例的系统例如包括:根据第一至第四实施例的半导体器件100,例如可以针对其应用eMMC、SSD(商标)卡等;以及主机设备200,例如可以针对其应用PC、智能电话、平板PC等。
半导体存储器件100包括RNG作为上述随机数生成电路16。进一步,控制器19包括加密引擎190,并且在此方面,本实施例不同于上述实施例。加密引擎190响应于来自主机设备200的随机数请求,经由安全通道(Secure channel)199,向主机设备侧上的加密引擎290通知随机数生成电路16生成的随机数。
主机设备200包括加密引擎290、应用接口240和预定应用220。
其它结构和操作与第一实施例基本相同。
<有利效果>
根据有关第五实施例的系统,至少可以获得与上述相同的有利效果(1)至(4)。
此外,在本实施例中,控制器19包括加密引擎190,其响应于来自主机设备200的随机数请求,经由安全通道(Secure channel)199,向主机设备侧上的加密引擎290通知随机数生成电路16生成的随机数。
加密引擎190经由安全通道(Secure channel),通知随机数生成电路16生成的随机数。因此,具有以下优势:可以进一步提高整体系统的安全性。
接下来,针对通过使用第一至第五实施例的随机数生成电路16生成的随机数执行认证的具体实例,描述比较实例1、比较实例2以及第6至第17实施例。
[比较实例1(HB+Protocol的实例)]
首先,参考图25,描述了比较实例1。比较实例1涉及HB+Protocol的实例。
HB+Protocol是HB协议的改进协议,HB协议是Hopper和Blum在2000年提出的一种轻量级认证协议。HB协议基于以下事实:很难标识具有噪声的奇偶校验值(LPN:了解具有噪声的奇偶校验),并且应对被动攻击的安全性已得到证明。但是,HB协议易受到主动攻击,例如伪装读取器(Reader)。为了解决该问题,Juels等人在2005年提出HB+Protocol。
HB+Protocol的概要如图25中所示。在图25中,a、b、x和y是向量,ν和z是位。
如图中所示,在HB+Protocol中,作为被认证方(要被认证的组件)的标签(Tag)和作为认证方(认证组件)的读取器(Reader)共享机密信息向量x和y。
标签将临时(nonce)随机数向量b传送到读取器。
然后,读取器将临时随机数a传送到标签。
随后,标签计算随机数a和机密信息向量x之间的内积(a·x),以及随机数b和机密信息向量y之间的内积(b·y)。进一步,标签产生变量ν,其变成1的概率为η。然后,标签将内积(a·x)、内积(b·y)和变量ν相加,并计算z=ax⊕by⊕ν。在这种情况下,ax表示内积(a·x),⊕表示异或逻辑和。
然后,标签将计算出的z传输到读取器。
随后,读取器比较接收的z与它本身计算的ax⊕by,并检查一致/不一致。上述过程系列可以称为“第1循环”。
当第1循环的过程重复多次(例如数十至数万次)时,并且当上述不一致概率低于预定t时,可以认为标签持有机密信息,并成功执行认证。
同时,ax⊕by是机密信息x、y和绑定向量a、b的内积。因此,如果x、y的绑定向量xy是机密信息,a、b的绑定向量是Concat(a,b),则ax⊕by可以表示为Concat(a,b)xy。
[比较实例2(随机HB#Protocol的实例)]
接下来,参考图26,描述了比较实例2。比较实例2涉及随机HB#Protocol的实例。随机HB#Protocol是上述比较实例1中所示HB+Protocol的进一步改进的协议。
尽管上述HB+Protocol提供了用于被动攻击和主动攻击的解决方案,但具有以下倾向:HB+Protocol易受中间人攻击。为了解决该问题,Gilbert等人提出随机HB#Protocol作为HB+Protocol的改进协议。
随机HB#Protocol的概要如图26中所示。在图26中,X和Y是矩阵,a、b、z和ν是向量。
如图26中所示,在随机HB#Protocol中,标签(Tag)和读取器(Reader)共享机密信息矩阵X和Y。
首先,标签将临时随机数向量b传送到读取器。
然后,读取器将临时随机数a传送到标签。
随后,标签计算随机数a和机密信息矩阵X之间的内积(aX),以及随机数b和机密信息矩阵Y之间的内积(bY)。在这种情况下,因为X和Y是矩阵,a和b是向量,所以每个内积结果是向量。进一步,标签产生变量ν,其变成1的概率为η。然后,标签将上述值相加,并计算z=aX⊕bY⊕ν。在这种情况下,z是向量。
然后,标签将计算出的z传输到读取器。
随后,读取器在接收的z和它本身计算的aX⊕bY之间执行位相加,即,通过使用异或运算的结果,计算aX⊕bY⊕z的汉明权重Hwt(aX⊕bY⊕z)。当汉明权重Hwt(aX⊕bY⊕z)低于预定值t*clen时,可以认为标签持有机密信息,并成功执行认证。在这种情况下,η≤t<0.5,clen是aX⊕bY的位长度。
同时,aX⊕bY是机密信息块X和Y的绑定矩阵以及a和b的绑定向量之间的内积。因此,如果X和Y的绑定矩阵XY是机密信息,a和b的绑定向量是Concat(a,b),则aX⊕bY可以表示为Concat(a,b)XY。
<有关实现的改进点>
但是,在上述比较实例1和2的协议中,例如,当要在NAND闪存等上实现协议时,可以考虑以下改进点(Ⅰ)至(Ⅴ)。
(Ⅰ)机密信息块X和Y的共享手段
如上所述,在上述比较实例1和2中,读取器和标签需要共享机密信息X、Y。但是,实例1和2无法预设具体的共享方法以便共享机密信息X、Y。
因此,在所有读取器和标签预先共享相同X、Y的情况下,如果X、Y一旦暴露,则整体系统将受到致命影响。另一方面,在向每个标签应用不同信息X、Y的情况下,要求读取器侧例如访问存储应用于所有标签的X和Y或者完全管理X和Y的数据库。因此,读取器侧上的负载增加。
作为相关现有技术,第2000-357213号日本专利申请KOKAT公开提出一种方法,该方法在记录设备(其在具有算术处理功能的记录介质中记录重复内容)和记录介质之间进行相互认证。记录介质至少存储依赖于记录介质的第一信息和依赖于记录介质的第二信息,并在执行与记录设备的相互认证时与记录设备共享。根据从记录介质获得的第一信息,记录设备生成认证信息,当执行与记录介质的相互认证时使用该信息。通过使用生成的认证信息和第二信息,执行记录设备和记录介质之间的相互认证。
(Ⅱ)在组件P中高效记录机密信息块X和Y的手段
在上述HB+Protocol和随机HB#Protocol中,必需相应的机密信息量(即,X、Y的相应数据大小),以便难以使用实际计算量标识上述LPN问题。如果X、Y通用于所有标签,则硬连线日志实现是可能的。但是,当X、Y因标签不同而有所变化时,标签需要具有足够的存储容量以便保存X、Y。同时,必需在标签制造中单独记录数据,并在制造时间上反映记录时间。
因此,由于存储容量的增加和记录时间的增加而导致标签的成本增加。
(Ⅲ)防止存储在组件P中的机密信息块X和Y损坏的手段
在组件P将X、Y存储在内部存储器中的情况下,当X、Y用于认证时,需要X、Y的数据完整性。但是,现有技术对此保持沉默。为了确保数据完整性,可以考虑这种方法:将添加有错误纠正代码的X、Y存储在标签的内部存储器中,并在认证时执行纠正过程。但是,通常廉价存储器并非始终具有纠正功能。当存储器没有纠正功能时,需要作为组件在标签(而不是存储器)中提供纠正功能。
因此,标签的成本增加。
(Ⅳ)机密信息块X和Y暴露时的机密信息更新手段
上述随机HB#Protocol被认为能够在预定条件下抵抗被动攻击、主动攻击和中间人攻击。但是,近年来,已经报告广义中间人攻击漏洞,并且无法排除暴露X、Y的可能性。尽管暴露X、Y需要相应的攻击成本,但如果X、Y一旦暴露,则使用X、Y制造伪造标签变得可能。因此,需要更新机密信息的手段,以便即使当X、Y已暴露时,也会转变为新的X、Y。
考虑以上所述,下面参考附图描述各实施例。上面通过实例的方式描述了RFID的读取器和标签。但是,相同的要求适用于诸如NAND闪存之类的存储芯片,其中电路面积直接涉及成本。因此,在下面的实施例中,描述了实例,其中使用认证NAND闪存的主机设备(Host)作为读取器(Reader),其用作认证方,并使用NAND闪存(NAND芯片)作为标签(Tag),其用作被认证方。但是,各实施例并不限于这些实例。例如,各实施例适用于各种实现模式,例如NOR闪存、电阻式随机存取存储器(ReRAM)、磁阻随机存取存储器(MRAM)、相变随机存取存储器(PRAM)、铁电随机存取存储器(FeRAM)、具有算术功能和存储器的存储器件(例如硬盘驱动器或固态驱动器)、需要认证的组件(例如RFID或IC卡)、包括计算机(包括通用算术元件和通用存储器)的系统,以及软件。在下面的描述中,所有附图中的通用部分由相同的参考标号表示。
[第六实施例]
接下来,描述根据第六实施例的认证方、被认证方和认证方法。
<11.结构实例(存储系统)>
首先,参考图27,描述了根据第六实施例的结构实例。
图27中所示的存储系统包括作为被认证方的NAND闪存10、作为认证方的主机设备20,以及在这两者之间进行中介的控制器19。如图27中所示,主机设备20通过称为“控制器19”的设备访问NAND闪存10,控制器19具有访问NAND闪存10的功能。
描述了半导体产品的制造工艺。半导体产品的制造工艺主要分成在衬底晶片上形成电路的预处理,以及将晶片切成片并执行布线和树脂封装密封的后处理。在这种情况下,控制器19以不同方式配置,以便例如控制器19在预处理中包括在NAND闪存10中,控制器19不包括在预处理中但在后处理中包括在同一封装中,或者控制器19作为不同于NAND闪存10的芯片形成。在包括图27的各图中,通过实例的方式描述这种情况,其中控制器19作为不同于NAND闪存10的芯片形成。但是,本实施例适用于以上任何情况。在下面的描述中,除非另外指定,否则在许多情况下,控制器协调主机设备20和NAND闪存10之间的数据和指令事务,但以下将省略其描述。稍后将描述NAND闪存10和控制器19的结构实例。
下面将描述图27中所示的相应组件和数据处理。如图中所示,示出共享机密信息X、Y的方法,以及将该方法应用于NAND闪存10的情况下的结构。
11-1.NAND闪存
NAND闪存10是被认证方。根据该实例的NAND闪存10包括基元阵列11、布置在基元阵列11外围区域的数据高速缓存12、压缩运算电路13、偏置RNG14、输出模块15、随机数生成器16、置换与串接电路18和逐位相加电路C1。
在基元阵列(Cell array)11中,在位线和字线(未示出)之间的交叉部分处,将多个存储基元布置成矩阵。存储基元包括(在半导体衬底上按命名顺序)隧道绝缘薄膜、浮置栅极、层间绝缘薄膜,以及连接到字线的控制栅极。沿着位线方向的存储基元的电流路径串联连接,从而组成基元单元。连接到位线和源极线的选择晶体管选择基元单元。沿着字线方向的多个存储基元组成1页(Page),页是数据读取和数据写入单位。此外,多个页组成块(Block),块是数据擦除单位。
基元阵列(Cell array)11包括ROM区域11-1、隐藏区域11-2和用户区域11-3。
ROM区域(ROM area)11-1是禁止数据记录而允许数据读取的区域。在根据该实例的ROM区域11-1中,记录数据XYE(xe位),该数据通过对机密信息XY进行加密并向加密后的机密信息进一步添加纠正代码而获得。对于加密,可以使用例如AES(高级加密标准)的加密器,AES是对称密钥密码。作为加密模式,可以使用CTR(计数器)、CBC(密码块链)等。此外,可以使用ECDSA(椭圆曲线密码)或RSA,ECDSA或RSA是非对称密码。此外,作为错误纠正代码,可以使用BCH码、里德-所罗门码、LDPC(低密度奇偶校验)码等。这样,本实例适用于任何加密方法和任何纠正代码。在这种情况下,XYE表示为通过对机密信息XY进行加密并向加密后的机密信息进一步添加纠正代码而获得的数据。此外,(xe位)表示位编号。
隐藏区域(Hidden area)11-2是禁止在NAND闪存10外部进行数据记录,并禁止数据读取(读取程序禁止)的区域。在根据该实例的隐藏区域11-2中,记录与用于认证的X、Y对应的数据XY。
用户区域(User area)11-3是可以自由执行数据记录和数据读取的区域。在用户区域11-3中,例如记录图像数据(例如照片)和动画数据。
上述ROM区域、隐藏区域和用户区域可以通过使物理结构不同来实现,或者在物理结构相同的情况下,可以通过NAND闪存中的逻辑控制来实现。在这种情况下,逻辑控制例如是这种方法:为相应区域提供控制从NAND闪存外部进行访问的标识符,存储这些标识符,并且当NAND闪存接收从外部访问区域时,通过标识符执行访问控制。
此外,组成基元阵列(Cell array)11的每个存储基元可以是存储多个位的存储基元(MLC:多电平基元),或者是存储1位的存储基元(SLC:单电平基元)。此外,ROM区域和隐藏区域可以被配置为由SLC使用,用户区域可以被配置为由MLC使用。同时,基元阵列的物理结构可以在SLC区域和MLC区域之间有所不同,或者仅可以使用可用作MLC的存储基元的部分位作为伪SLC数据。
数据高速缓存(Data cache)12临时存储从基元阵列11读出的数据。
偏置RNG(Biased RNG)14生成随机数ν,其变成1的预定概率为η。同时,随机数生成器(下面描述)可以用作偏置RNG的输入源。在这种情况下,可以通过针对从随机数生成器输出的多个随机数序列执行算术运算(例如AND或OR),生成对应于概率η的随机数。
随机数生成器(RNG:随机数生成器)16生成用于认证的随机数Nonce_N(a位)。作为随机数生成器16,可以使用根据上述第一至第五实施例的随机数生成电路16。在这种情况下,例如随机数生成器16同样通过图27中的虚线指示的路径,接收读出数据(Data)和随机数触发信号。从而,同样可以应用根据第一至第五实施例的随机数生成电路16,并可以获得相同的有利效果。
置换与串接电路(Permutation&Concatenation)18通过使用主机设备20和存储器10共享的XY生成随机数Nonce(c位),其由从主机设备20输入的随机数Nonce_H和从存储器10输入的随机数Nonce_N组成。在这种情况下,a表示Nonce_N的位长度,b表示Nonce_H的位长度,c表示根据压缩运算电路的1个过程输入的位长度。具体地说,从置换与串接电路(Permutation&Concatenation)输出的单个随机数Nonce是用于压缩运算电路的1个过程的数据,可以将Nonce_N和Nonce_H的总位用于1个过程,或者可以选择性地使用其各部分。
压缩运算电路(压缩(例如内积))13针对数据高速缓存12的输出XY(每c位)和置换与串接电路18的输出(c位)执行预定的算术运算(例如内积算术运算),并输出数据C。
逐位相加电路C1将Z=C+ν输出到输出模块15,通过将偏置RNG生成的ν与压缩运算电路13的输出位相加获得Z=C+ν。如上所述,位相加表示异或逻辑和。具体地说,逐位相加电路输出2个输入数据的位的异或逻辑和。
输出模块15经由控制器19,将逐位相加电路C1的结果(Z=C+ν)输出到主机设备20。
还可以在存储控制器19中布置基元阵列11之外的结构组件,例如数据高速缓存12。
11-2.主机
根据本实例的主机(Host)20包括纠正过程模块21、解密模块22、密钥保存模块23、数据临时存储模块25、压缩运算电路26、随机数生成器27、置换与串接电路29和确定模块30。
纠正过程模块(ECC)21针对从NAND闪存10的ROM区域11-1读出的数据XYE,执行错误纠正过程(ECC)。
在对读出数据XYE执行错误纠正过程之后,解密模块(Decrypt)22通过保存在密钥保存模块23中的密钥(KEY)对数据XYE进行解密,从而获得XY。
数据临时存储模块(数据高速缓存)25临时存储解密的XY。从而,主机设备20和NAND闪存10可以共享机密信息XY。
压缩运算电路(压缩(例如内积))26针对数据高速缓存25的输出(每c位)和置换与串接电路29的输出(c位)执行预定的算术运算(例如内积算术运算),并输出数据C。
随机数生成器(RNG)27生成主机的随机数Nonce_H(b位)。
置换与串接电路(Permutation&Concatenation)29通过使用主机20和存储器10共享的XY生成随机数Nonce(c位),其由从主机20输入的随机数Nonce_H和从存储器10输入的随机数Nonce_N组成。
确定模块(接受,如果Hwt(Z⊕C)≤t*clen)30针对压缩运算模块26的输出C和输出模块15的输出Z,计算汉明权重Hwt(Z⊕C),如上所述。当汉明权重Hwt(Z⊕C)变得低于预定值t*clen时,确定模块30认为持有机密信息,并确定认证成功。假设η≤t<0.5,clen是Z⊕C的位长度。
这样,通过确定模块30比较由同一过程获得的C和Z,主机20(不包括偏置RNG过程27)确认作为被认证方的NAND闪存10的真实性。
同时,上述结构可以多次执行同一过程,从而可以最终确认真实性。例如,在本图中,通过实例的方式示出C是多位的情况,并且在确定时,比较确定方法在位序列Z和C相加中采用汉明权重。如果C是一位,则上述过程需要执行多次,如同上述HB+Protocol。在这种情况下,如同HB+Protocol,如果根据错误变量的出现概率检查Z和C之间的不一致率,则应该足够。
11-3.修改
除了上述之外,如有必要,可以修改该实施例的结构,如下面描述的那样。
压缩过程可对应于根据图25和图26中所示的比较实例1和2的内积计算,但可能不一定对应于内积计算。例如,在压缩过程中,可以将基于XY的数据以及基于Nonce_H和Nonce_N的数据输入到包括LFSR(线性反馈移位寄存器)的运算设备,并在输入之后,可以将LFSR中的部分或全部寄存器值作为压缩结果。备选地,可以使用CRC运算设备作为LFSR。进一步,可以使用散列函数作为用于压缩过程的函数。散列函数可以基于也可以不基于加密器。无论使用哪种运算方法,都可以应用该实施例中提出的方法。在属于作为安全性基础的LPN问题方面没有区别。压缩过程可以是无损压缩或有损压缩。压缩过程表示输出至少小于输入数据的数据的过程,并依赖于输入数据。
描述了发送根据Nonce_H和Nonce_N生成的Nonce的过程。Nonce是通过按预定顺序绑定Nonce_H和Nonce_N生成并且然后被发送的数据。绑定/发送方法可以是简单的前馈数据绑定/发送方法,或者是交错数据绑定/发送方法,其中交替插入相互的数据。可以通过上述方法多次发送数据。在任何情况下,Nonce都是从Nonce_N和Nonce_H的至少一部分生成的数据,并且是具有c位长度的数据。假设Nonce_N的数据长度是a,Nonce_H的数据长度是b,两个随机数的总数据长度是d。如果c=d并且没有多次发送数据,则压缩计算模块的输出是1位。如果c=d并且多次发送数据,则压缩计算模块的输出是这样的输出:使得多次发送1位。如果c<d并且多次发送数据,则压缩计算模块的输出是这样的输出:使得多次发送1位。
另一方面,至于针对其计算压缩与Nonce的XY,以c位为单位,将XY中的数据发送到压缩计算模块。XY数据的位大小x等于c或是作为c倍数的整数。当位大小x等于c时,压缩计算模块的输出是1位。当XY数据的位大小x是作为c倍数的整数时,压缩计算模块的输出是这样的输出:使得多次输出1位。典型的组合如下所示:
●在c=d=x的情况下,压缩计算模块的输出是1位,
●在c=d<x的情况下,压缩计算模块的输出是多次1位,以及
●在c<d并且c<x的情况下,压缩计算模块的输出是多次1位。同时,上面的实例涉及压缩计算模块将2个输入压缩成1位的情况。在压缩计算模块将2个输入压缩成多位的情况下,每一次的输出值本身变成多位。
<20.认证流>
接下来,参考图28,描述了具有图27中所示结构的存储系统的认证流。
如果认证开始(Start),则在步骤S11,主机设备20向NAND闪存10发送XYE的读取指令(Read XYE)。
然后,在步骤S12,NAND闪存10根据读取指令从基元阵列11-1加载XYE(load XYE),然后将XYE发送到主机设备20。
随后,在步骤S13,主机设备20针对接收的XYE执行上述解密过程,并检索XY(Retrieve XY)。
然后,在步骤S14,主机设备20向NAND闪存10发送认证请求(Request authentication)。在这种情况下,认证请求可以包括Nonce_H。
之后,在步骤S15,NAND闪存10接收Nonce_H,并加载XY(LoadXY(如果需要))。
然后,在步骤S16,NAND闪存10产生Nonce_N和ν(产生Nonce_N,产生ν)。
随后,在步骤S17,NAND闪存10加上所生成的ν,如上所述,并计算Z。NAND闪存10将Nonce_N和Z发送到主机20。
然后,在步骤S18,在接收Nonce_N和Z之后,主机20执行预定的算术运算(例如内积算术运算),并计算数据C。
随后,在步骤S19,主机设备20针对Z和C的逐位XOR值序列计算汉明权重Hwt(Z⊕C),并执行确定过程以便确定汉明权重Hwt(Z⊕C)是否低于预定值t*clen(检查Hwt(Z⊕C)≤t*Clen)。如上所述,t是基于NAND闪存10在计算Z时使用的错误位或错误向量中的错误相加概率(或者数据中1的出现概率)η的值,并假设η≤t<0.5。此外,假设clen是C的位长度。
随后,在步骤S20,当步骤S19中的确定结果无法变得低于预定值(失败)时,主机20确定故障并停止操作。
然后,在步骤S21,当步骤S19中的确定结果低于预定值(成功)时,主机20确定是否达到预定循环数(足够的循环)。在此上下文中,循环数指从认证请求过程到确定过程的过程系列。如果未达到循环数(否),则重复认证请求过程(S14及以后步骤)。
随后,在步骤S22,当达到循环数(是)时,主机设备20认为成功执行认证,并且如有必要,执行基于XY计算介质ID的过程。稍后将描述介质ID的计算过程和使用介质ID的方法(S23及以后步骤)。
通过上述操作,完成根据第六实施例的认证流(结束)。
同时,必需在相应循环之间使用不同的Nonce_N、Nonce_H和ν参数。此外,当NAND闪存10接收认证请求时,如果前一个认证请求时的XY仍加载在数据高速缓存中,则可以省略从基元阵列加载XY,并使用数据高速缓存中的值。此外,在步骤S17之后,可以擦除数据高速缓存中的XY。具体地说,在NAND闪存10为外部提供访问数据高速缓存的功能的情况下,在某一阶段,当已计算认证必需的数据Z时,擦除数据高速缓存中的机密信息XY对于安全性而言很有用。
<30.有利效果>
根据有关第六实施例的结构和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得以下有利效果(11)。
(11)可以在认证方和被认证方之间共享不同的机密信息XY,同时保持机密信息XY的机密状态,并可以根据共享机密信息,通过少量计算执行认证。
根据本实施例的NAND闪存10将机密信息XY存储在是记录禁止/读取禁止区域的隐藏区域11-2中,将XYE(通过对机密信息XY进行加密并向加密后的机密信息添加纠正代码而获得)存储在是记录禁止/读取允许区域的ROM区域11-1中。进一步,主机设备20具有读出XYE以及执行错误纠正过程21和解密过程22的功能,并可以通过用于解密的密钥23,在NAND闪存10和主机设备20之间共享机密信息XY。因此,认证方和被认证方可以通过共享机密信息XY执行认证(S11至S23)。
此外,NAND闪存10和主机设备20包括产生临时随机数的RNG16、27,置换与串接模块18、29,压缩计算模块13、26,临时随机数的逐位相加模块C1,以及输出模块15。此外,NAND闪存10包括偏置RNG14。主机20包括确定模块30,其将从NAND闪存10输出的Z与在主机设备中计算的C相比较,从而执行认证。
如上所述,在第六实施例中,因为将机密信息XY存储在是记录禁止/读取禁止区域的隐藏区域11-2中,并且通过使用该信息生成数据Z,所以可以保护机密性。此外,将XYE(通过对机密信息XY进行加密并向加密后的机密信息添加纠正代码而获得)存储在是记录禁止/读取允许区域的ROM区域11-1中。主机20使用密钥23,对从中读出的XYE执行错误纠正过程21和解码过程22,从而共享XY。因此,可以在认证方和被认证方之间共享不同的机密信息XY,同时保持机密信息XY的机密状态。
因此,根据有关第六实施例的结构和认证方法,具有以下优势:可以在认证方和被认证方之间共享不同的机密信息XY,同时保持机密信息XY的机密状态,并可以根据共享的机密信息,通过少量计算执行认证。
[第七实施例]
接下来,参考图29和图30,描述了根据第七实施例的认证方/被认证方和认证方法。在下面的描述中,将省略与第六实施例重复的部分的描述。<结构实例(存储系统)>
参考图29,描述了第七实施例的结构实例。
如图29中所示,第七实施例的结构实例与第六实施例的不同之处在于,NAND闪存10分别将多个XYE块和多个XY块存储在ROM区域11-1和隐藏区域11-2中。在该实例中,当i和j不同时,XY[i]≠XY[j],并且XYE[i]≠XYE[j]。
这样,通过存储包含多个XYE和多个XY的多个组,可以在机密信息块X和Y暴露时,提供用于更新机密信息的手段。如果通过中间人攻击等暴露一组XY和XYE,并且通过盗用暴露的XY和XYE制造伪造设备,则可以在本实施例中更新主机设备20持有的密钥[1]23(例如密钥[1]=>更新后的密钥[2])。这样,通过使用不同于一组暴露的XY和XYE的组,使消除伪造设备变得可能。至于用于加密每个XY[i]的密钥,当i不同时,优选使用不同的密钥。
在其它方面,第七实施例与第六实施例基本相同,因此将省略详细描述。
<认证流>
接下来,参考图30,描述了根据第七实施例的认证操作。
在第七实施例中,因为将多个XY和多个XYE记录在NAND闪存10中,所以主机设备20选择要使用的XY,从而执行认证。
因此,在第七实施例中,在步骤S14,当主机20请求认证(Requestauthentication)时,主机设备20将指定要使用的XY的参数i与随机数Nonce_H一起发送到NAND闪存10。在此方面,第七实施例不同于第六实施例。
在其它方面,第七实施例与第六实施例基本相同,因此将省略详细描述。
<有利效果>
根据有关第七实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得上述有利效果(11)。
此外,第七实施例与第六实施例的不同之处在于,NAND闪存10分别将多个XYE块和多个XY块存储在ROM区域11-1和隐藏区域11-2中。
这样,通过存储包含多个XYE和多个XY的多个组,可以在机密信息块X和Y暴露时,提供用于更新机密信息的手段。如果通过中间人攻击等暴露一组XY和XYE,并且通过盗用暴露的XY和XYE制造伪造设备,则可以在本实施例中更新主机20持有的密钥[1]23(例如密钥[1]=>更新后的密钥[2])。
因此,在第七实施例的认证流中,在步骤S14,当主机设备20请求认证(Request authentication)时,主机设备20将指定要使用的XY的参数i与随机数Nonce_H一起发送到NAND闪存10。
在第七实施例中,如上所述,NAND闪存10具有多个XY和多个XYE,具有通过来自主机设备的指令选择性地发送XYE,并通过来自主机设备的指令选择性地设置用于认证的XY的功能。此外,主机设备具有选择性地读出对应于主机设备本身持有的密钥的XYE的功能,具有对XYE进行解密的功能,并具有在预定条件下更新它本身持有的密钥的功能。
因此,通过使用不同于一组暴露的XY和XYE的组,使有利地消除伪造设备变得可能。
[第八实施例]
接下来,参考图31至图33,描述了根据第八实施例的认证方/被认证方和认证方法。
<结构实例(存储系统)>
参考图31,描述了第八实施例的结构实例。
如图31中所示,第八实施例与第七实施例的不同之处在于,NAND闪存10分别将多个XYsubE块和多个XYsub块存储在ROM区域11-1B和隐藏区域11-2B中。在该实例中,当i和j不同时,XYsub[i]≠XYsub[j],并且XYsubE[i]≠XYsubE[j]。XYsubE是通过对XYsub进行加密然后向其中添加纠正代码而获得的。
XYsub(如同XY那样)被记录在记录禁止/读取禁止区域(隐藏区域)11-2B中,XYsubE(如同XYE那样),被存储在记录禁止/读取允许区域(ROM区域)11-1B中。
XYmain的数据大小大于XYsub的数据大小(数据大小:XYmain>XYsub)。此外,包括XYmain和XYsub的数据对应于上述机密信息XY。
在第八实施例中,如上所述,因为除了一组XY之外,还包括一组XYsub[i]和XYsubE[i],所以第八实施例是有利的,因为可以高效记录机密信息X和Y。稍后将描述详细信息。
此外,NAND闪存10包括用于存储XYsub的数据高速缓存12B,以及用于对XYmain和XYsub进行逐位相加的逐位相加模块C2。逐位相加模块C2的输出值对应于上述用于认证的XY值。在该实例中,因为位长度在XYmain和XYsub之间有所不同,所以向位相加C2应用XYsub的相应数据。
例如,如图中所示,可以考虑将位相加作为预定的算术运算。当XYmain的数据大小是XYsub的数据大小的整数倍时,可以考虑这种配置:相继从存储XYmain数据的数据高速缓存发送XYmain,并相继和重复地从存储XYsub数据的数据高速缓存发送XYsub。可以认为存储XYsub的数据高速缓存是环形缓冲器。除了逐位相加之外,可以使用XYmain和XYsub的绑定值作为XY,或者可以使用XYmain和XYsub的交错绑定值作为XY。此外,可以将XYmain和XYsub输入到LFSR,并可以使用LFSR的预定寄存器值作为XY。简言之,在本实施例中,尽管使用逐位相加模块,但可以使用包括两个输入的数据作为XY而应用任何运算方法。
同样,主机设备20还包括纠正过程模块21B、解密模块22B、密钥持有模块23B、数据存储模块25B和相加模块C3,它们适用于读出的XYsubE。通过上述结构,主机20同样执行错误纠正过程,并通过对应的KEY_XYsub执行解密,从而获得XYsub。因此,可以在主机设备和NAND闪存之间共享机密信息XYmain和XYsub。尽管KEY_XYmain和KEY_XYsub在图中被示出为不同的对象,但它们实际可以相同。至于用于加密每个XYsub[i]的KEY_XYsub,当i不同时,优选使用不同的KEY_XYsub。此外,主机设备20和存储器10根据通过使用XYmain和XYsub执行预定算术运算而获得的XY值,执行认证过程。
<认证流>
接下来,参考图32,描述了根据第八实施例的认证操作。
在第八实施例中,除了XYmain之外,将XYsub记录在NAND闪存10中,并且还记录通过加密它们获得的XYmainE和XYsubE。
因此,如图中所示,在对应的步骤S13中,主机10还读出XYmainE和XYsubE,对它们进行解密,并根据机密信息XYmain和XYsub产生机密信息XY(产生XY)。随后,主机20通过使用从机密信息XYmain和XYsub获得的信息,执行类似的认证。
同样,在NAND闪存10侧,在步骤S15,根据读出的机密信息XYmain和XYsub产生机密信息XY(产生XY)。在此方面,第八实施例不同于第七实施例。
<有利效果>
根据有关第八实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得上述有利效果(11)。此外,在第八实施例中,可以获得以下有利效果(12)。
(12)可以高效记录机密信息X、Y,并可以有利地缩短记录时间。
在第八实施例中,NAND闪存10具有多个XYsub和多个XYsubE,通过来自主机20的指令选择性地发送XYsubE,通过来自主机20的指令选择性地设置用于认证的XYsub,并通过选定XYsub和XY的预定算术运算而获得的值来执行认证。
此外,主机设备具有选择性地读出对应于主机设备本身持有的密钥23B的XYsubE的功能,具有对XYsubE进行解密的功能22B,具有在预定条件下更新它本身持有的密钥23B的功能,并通过选定XYsub和XYmain的预定算术运算而获得的值来执行认证30。
如上所述,因为除了一组XYmain之外,还包括一组XYsub[i]和XYsubE[i],所以具有以下优势:可以高效记录机密信息X和Y。
更具体地说,例如,这在图33中示出。如图33中所示,在NAND闪存的制造工艺中,XY生成器(XY GEN)生成多组XYmain、XYmainE、XYsub和XYsubE,并且写入器(Writer)将它们写入多个NAND闪存(在该实例中,为芯片1至芯片4)中。
在该实例中,在包括多个芯片(芯片1至芯片4)的组(例如,一批(lot))中,XYmain和XYmainE的数据可以是相同的数据。另一方面,在芯片(芯片1至芯片4)之间,XYsub和XYsubE需要是不同的数据(XYsub1至XYsub4,XYsubE1至XYsubE4)。
如上所述,在第八实施例中,在数据写入操作中,数据量大的XYmain和XYmainE在多个芯片(芯片1至芯片4)之间公用。从而,可以优化存储器中的数据写入过程,并可以高效记录数据。
如果通过硬连线配置构造XYmain和XYmainE,则实际记录的数据是数据量小的XYsub和XYsubE,并可以缩短记录时间。如果在基元上记录XYmain和XYmainE,则因为这些数据在组中相同,所以可以缩短在NAND闪存中将记录数据传输到数据记录设备的时间。如上所述,因为记录时间的增加变成成本的增加,所以第八实施例的一大优点是可以降低制造成本。
[第九实施例(多次记录的实例)]
接下来,参考图34和图35,描述了根据第九实施例的认证方/被认证方和认证方法。
<结构实例(存储系统)>
参考图34,描述了第九实施例的结构实例。
第九实施例与第七实施例的不同之处在于,在存储器10的隐藏区域11-2中进一步包括信息块11-2A、11-2B和11-2C,这些信息块通过重复复制多个XY[i]而产生。
具体地说,通过在第七实施例中复制XY[i]而获得的数据在图34中由XY[i,1]、XY[i,2]、...、XY[i,n]指示,并且XY[i,1]=XY[i,2]=、...、=XY[i,n],其中1≤i≤m。此外,XY[1,j]≠XY[2,j]≠、...、≠XY[m,j],其中1≤j≤n。
在该实例中,当将ECC添加到XYE时,不会将ECC添加到XY。因此,当从NAND闪存中的基元读出的数据中包括错误时,可以认为NAND闪存用于认证的XY失去完整性。但是,如在本实施例中,因为进一步包括通过复制多个XY[i]而产生的信息块11-2A、11-2B和11-2C,所以校验和与选择模块12-0可以通过重复数据之间的数据比较,检测是否包括错误。
因此,本实施例的存储器与第七实施例的存储器的不同之处在于,该实施例进一步包括校验和与选择模块(Check sum&select)12-0,其适用于通过复制XY[i]而产生的信息块11-2A、11-2B和11-2C。
在图34中,通过与上述相同的预定方法比较从基元11-2加载的包含至少两个XY的一组数据,并检查是否包括错误。如果包括错误或者如果无法消除错误,则再次加载包含至少两个XY的一组不同数据,并执行类似的检查。重复此操作直到不包括错误或者直到找到可以从其中消除错误的一组数据。当找到一组此类数据时,将其用于认证。作为预定方法的一个实例,可以考虑这种方法:加载两个XY,并逐位计算XOR值,然后检查所有XOR值是否为0。备选地,可以考虑这种方法:加载三个或更多个XY,并通过多数检查获得从其中逐位消除错误的XY。此外,尽管在该图中XY的所有重复数据都是相同数据,但可以考虑采用这种方法:预先形成并记录数据,所述数据具有这种互补关系:在重复数据中反转奇数编号的数据的极性和偶数编号的数据的极性。在这种情况下,加载具有互补关系的两个XY,并逐位计算XOR值,然后检查所有XOR值是否为1。
<认证流>
接下来,参考图35,描述了根据第九实施例的认证操作。
如图35中所示,在第九实施例中,将多个XY重复记录在NAND闪存10的隐藏区域11-2中。
因此,在步骤S15,NAND闪存10读出至少两个XY,比较它们,并通过使用不包括错误的XY来执行认证(加载/比较XY)。
<有利效果>
根据有关第九实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得上述有利效果(11)。
此外,根据第九实施例,存储器10的隐藏区域11-2中进一步包括信息块11-2A、11-2B和11-2C,这些信息块通过重复复制多个XY[i]而产生。
在这种情况下,当将ECC添加到XYE时,不会将ECC添加到XY。因此,当从NAND闪存中的基元读出的数据中包括错误时,可以认为NAND闪存用于认证的XY失去完整性。
但是,根据第九实施例,因为还包括通过复制多个XY[i]而产生的信息块11-2A、11-2B和11-2C,所以校验和与选择模块12-0可以通过重复数据之间的数据比较,检测是否包括错误。因此,即使在从存储器10中的基元读出的数据中包括错误的情况下,也可以有利地防止存储器10用于认证的XY失去完整性。
[第十实施例]
接下来,参考图36和图37,描述了根据第十实施例的认证方/被认证方和认证方法。
<结构实例(存储系统)>
参考图36,描述了第十实施例的结构实例。第十实施例的结构实例是有关第八和第九实施例的组合的一个实例。
如图36中所示,第十实施例的NAND闪存10与第九实施例的不同之处在于,还在隐藏区域11-2中记录XYsub和XYsubE的重复数据XYsub[i,j]和XYsubE[i,j]。
此外,该实施例还包括校验和与选择模块12-0B和数据高速缓存12B以便适用于上述数据。
<认证流>
接下来,参考图37,描述了根据第十实施例的认证操作。
在第十实施例中,还在NAND闪存10中重复记录XYsub(XYsub[i,j]和XYsubE[i,j])。
因此,在步骤S15,NAND闪存10还读出至少两个XYsub,比较它们,并通过使用不包括错误的XYsub执行认证(加载/比较XY和XYsub)。<有利效果>
根据有关第十实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得上述有利效果(11)。
此外,根据第十实施例,NAND闪存10还在隐藏区域11-2中记录XYsub和XYsubE的重复数据XYsub[i,j]和XYsubE[i,j]。
如有必要,可以应用本实施例的结构和方法。
[第十一实施例]
接下来,参考图38和图39,描述了根据第十一实施例的认证方/被认证方和认证方法。
<结构实例(存储系统)>
参考图38,描述了第十一实施例的结构实例。
在第十一实施例中,NAND闪存10还包括通过复制多个XY[i]块而产生的信息。具体地说,通过在第七实施例中复制XY[i]而产生的数据在图38中由XY[i,1]、XY[i,2]、...、XY[i,n]指示,并且XY[i,1]=XY[i,2]=、...、=XY[i,n],其中1≤i≤m。此外,XY[1,j]≠XY[2,j]≠、...、≠XY[m,j],其中1≤j≤n。
在该实例中,XY数据的复制与第九实施例相同。但是,在第十一实施例中,不在NAND闪存10侧执行重复数据的压缩过程。相反,在主机20中执行压缩过程。在此方面,第十一实施例不同于第九实施例。此外,第十一实施例与第九实施例的不同之处在于,主机20包括多数检查模块(Majority check)31。
具体地说,根据主机设备20指定的i,NAND闪存10加载XY[i,1]、XY[i,2]、...、XY[i,n]中的至少两个,并针对每个XY执行上述认证过程。在这种情况下,针对每个XY使用相同的Nonce_N和相同的Nonce_H,并且还应用由偏置RNG产生的相同ν。
NAND闪存10的传输模块15在相同的其它参数条件下,针对多个XY计算多个Z(Z[i,1]、Z[i,2]、...、Z[i,n]),并将它们发送到主机设备20。
接收多个Z(Z[i,1]、Z[i,2]、...、Z[i,n])之后,主机设备通过多数检查模块31执行多数检查并获得单个Z。在这种情况下,当每个Z包括多个位元素时,并且当压缩计算模块的输出包括多个位时,逐位执行多数检查。
通过多数检查获得从其中消除错误的Z之后,主机设备执行与上述相同的确定过程30,从而认证NAND闪存10。
<认证流>
接下来,参考图39,描述了根据第十一实施例的认证操作。
在第十一实施例中,NAND闪存10通过使用重复记录在NAND闪存10中的XY计算多个Z’,并发送Z’。主机设备针对多个Z’执行多数检查,从而获得单个Z并执行认证。
因此,在步骤S17,NAND闪存10将所计算的多个Z’和j’传输到主机20。
随后,在步骤S18,主机20针对多个Z’执行多数检查(Majoritycheck),这不同于第九实施例。
<有利效果>
根据有关第十一实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得上述有利效果(11)。
此外,在第十一实施例中,NAND闪存10还包括通过复制多个XY[i]而产生的信息。此外,主机20包括多数检查模块(Majority check)31。
因此,可以减少计算资源有限的NAND闪存10中的比较过程的负载,并可以依赖于具有足够计算资源的主机20执行比较过程(多数检查过程)31。因此,有利的是,可以抑制NAND闪存10的成本增加,并可以消除错误。
[第十二实施例]
接下来,参考图40至图41,描述了根据第十二实施例的认证方/被认证方和认证方法。
<结构实例(存储系统)>
参考图40,描述了第十二实施例的结构实例。第十二实施例涉及第八和第十一实施例的组合的实例。
如图40中所示,NAND闪存10还存储XYsub和XYsubE的重复数据11-2B和11-1B。如同上述第十一实施例,计算模块15计算用于多个XY的认证数据Z并将其发送到主机20,并在主机设备20中执行多数检查31。
<认证流>
接下来,参考图41,描述了根据第十二实施例的认证操作。
在第十二实施例中,NAND闪存10通过使用重复记录在NAND闪存10中的XYmain和XYsub计算多个Z’,并发送Z’。主机设备针对多个Z’执行多数检查,从而获得单个Z并执行认证。
因此,在步骤S11,主机20发出重复记录的XYmain和XYsub的读出请求(读取XYmainE和XYsubE)。
随后,在步骤S12,NAND闪存10读出重复记录的XYmain和XYsub(加载XYmainE和XYsubE),并将XYmain和XYsub发送到主机20(XYmainE和XYsubE)。
<有利效果>
根据有关第十二实施例的认证方/被认证方和认证方法,可以改进上面的点(Ⅰ)至(Ⅳ),并至少可以获得有利效果(11)。
此外,根据第十二实施例,NAND闪存10还记录XYsub和XYsubE的重复数据11-2B和11-1B。如同上述第十一实施例,计算模块15计算用于多个XY的认证数据Z并将其发送到主机20,并在主机20中执行多数检查31。
这样,如有必要,可以应用本实施例。
[第13实施例(介质ID检索过程)]
接下来,参考图42至图45,描述了第13实施例。第13实施例涉及在上述步骤S22中计算介质ID(Media ID)的各种过程(介质ID检索过程)。
ID检索过程(1)
ID检索过程(1)如图42中所示。如图42中所示,在该实例(1)中,在步骤RS1,针对用于上述认证的XYmain和XYsub执行单向函数过程(One-way function)。将该过程的结果视为介质ID。
在这种情况下,作为单向函数过程,可以使用基于诸如SHA-1、SHA-256或AEG-H之类的密码的单向算术运算。
ID检索过程(2)
ID检索过程(2)如图43中所示。如图43中所示,在该实例(2)中,在步骤RS1、RS2,通过使用对应于KEY_XYmain和KEY_XYsub(在上述认证过程中用于KEY_XYmainE和KEY_XYsubE的解密)之一的KEY_XY,进一步对用于上述认证的XYmain和XYsub执行解码过程(Decode)。
随后,在步骤RS3,执行类似的单向函数过程(One-way function),并将该过程的结果视为介质ID。
ID检索过程(3)
ID检索过程(3)如图44中所示。如图44中所示,在该实例(3)中,在步骤RS1、RS2,通过使用在上述认证过程中用于KEY_XYmainE和KEY_XYsubE解密的KEY_XYmain和KEY_XYsub,进一步对用于上述认证的XYmain和XYsub执行解码过程(Decode)。
随后,在步骤RS3,执行类似的单向函数过程(One-way function),并将该过程的结果视为介质ID。
ID检索过程(4)
ID检索过程(4)如图45中所示。如图45中所示,在该实例(4)中,在步骤RS1、RS2,通过使用与在上述认证过程中用于KEY_XYmainE和KEY_XYsubE解密的KEY_XYmain和KEY_XYsub不同的KEY_XYmain2和KEY_XYsub2,进一步对用于上述认证的XYmain和XYsub执行解码过程(Decode)。在这种情况下,KEY_XYmain2和KEY_XYsub2可以具有相同的值。
随后,在步骤RS3,执行类似的单向函数过程(One-way function),并将该过程的结果视为介质ID。
[第14实施例(介质ID绑定过程)]
接下来,参考图46和图47,描述了第14实施例。第14实施例涉及介质ID的使用方法(介质ID绑定过程)。
例如,当在物理介质上记录商业动画内容等并重放时,使用这种方法:在内容记录时,在加密过程中使用对物理介质而言唯一的标识信息,并将内容绑定到物理介质。
当重放内容时,采用这种方法:执行基于标识信息的解密过程或检查过程,并且当重新生成的标识信息与记录内容时用于加密过程的标识信息不一致时,停止内容重放。物理介质的实例包括诸如SD卡之类的可移动介质,以及结合在移动电话等中的嵌入式存储器。
在任何情况下,上述方法的目的是当将记录在某种介质上的加密内容非法复制到另一介质时,停止重放非法复制的内容。作为用于该用途的信息,使用上述标识信息(介质ID),该信息因介质的不同而有所不同。
ID绑定过程(1)
ID绑定过程(1)如图46中所示。如图46中所示,在该实例(1)中,执行MAC(消息认证代码)生成过程,该过程用于防止非法复制。
具体地说,在步骤BP1,在使用介质ID作为上述标识信息的方法的一个实例中,根据用于内容加密的内容密钥,针对介质ID或其它信息执行MAC生成过程。
随后,在将内容记录在介质中的装置中,生成MAC并将生成的MAC记录在介质上。在从介质重放内容的装置中,根据介质ID或内容密钥来检查记录的MAC。当已确认真实性时,重放内容。当未确认真实性时,应用停止内容重放的方法。
ID绑定过程(2)
ID绑定过程(2)如图47中所示。如图47中所示,在该实例(2)中,使用介质ID作为信息以便生成用于内容加密的内容密钥。
在步骤BP1,在将内容记录在介质中的装置中,对介质ID和内容密钥前体(precursor)执行单向函数过程(One-way function)。
在将内容记录在介质中的装置中,记录已通过处理后的内容密钥加密的内容。
在从介质重放内容的装置中,对记录的内容密钥前体和介质ID执行类似的单向函数过程,从而获得内容密钥。因此,执行内容的解密和重放。在介质ID不一致的情况下,即,在将内容数据非法复制到不同介质的情况下,获得的内容密钥与用于内容加密的内容密钥不一致。因此,内容解密将失败,并停止重放。
[第15实施例(存储器和存储/重放主机的实例)]
接下来,参考图48,描述了第15实施例。第15实施例涉及以下实例:在包含存储卡(包括NAND芯片)10、记录主机(记录设备)20A和重放主机(重放设备)20B的系统(其是上述实施例的结构组合)中,执行上述认证,并通过使用上述介质ID在主机20B中重放内容。
当记录主机(记录设备)20A在存储卡(包括NAND芯片)10中记录内容时,首先在存储卡(包括NAND芯片)10和记录主机(记录设备)20A之间执行上面实施例中的认证过程。成功执行认证过程之后,执行上面实施例中的ID检索过程。然后,在存储卡(包括NAND芯片)10中记录通过上面实施例中的ID绑定过程(1)所生成的MAC。此外,记录通过用于ID绑定过程(1)的内容密钥而加密的内容(加密内容)。进一步,还以安全形式记录内容密钥本身。在此上下文中,安全形式可以是在存储卡(包括NAND芯片)10中的记录区域中记录的形式,在存储卡(包括NAND芯片)10和记录主机(记录设备)20A之间成功执行认证之后,该记录区域变得可访问。在此上下文中,认证可以是本申请中描述的认证方法,或者可以通过存储卡(包括NAND芯片)10具有的某种其它认证功能来实现。安全形式的另一个实例可以是通过存储卡(包括NAND芯片)10或记录主机(记录设备)20A具有的密钥实现的加密形式。
当重放主机(重放设备)20B从存储卡(包括NAND芯片)10读出内容并重放内容时,首先在存储卡(包括NAND芯片)10和重放主机(重放设备)20B之间执行上面实施例中的认证过程。成功执行认证过程之后,执行上面实施例中的ID检索过程。然后,通过对应于上面实施例中的ID绑定过程(1)的过程,检验记录在存储卡(包括NAND芯片)10中的MAC。之后,从存储卡(包括NAND芯片)10读出内容密钥,并对加密内容(Encrypted Content)进行解密,从而重放内容。
[第16实施例(存储器和存储/重放主机的另一个实例)]
接下来,参考图49,描述了第16实施例。第16实施例涉及以下实例:在包含存储卡(包括NAND芯片)10、记录主机(记录设备)20A和重放主机(重放设备)20B的系统(其是上述实施例的结构组合)中,执行上述认证,并通过使用上述介质ID在主机20B中重放内容。
当记录主机(记录设备)20A在存储卡(包括NAND芯片)10中记录内容时,首先在存储卡(包括NAND芯片)10和记录主机(记录设备)20A之间执行上面实施例中的认证过程。成功执行认证过程之后,执行上面实施例中的ID检索过程。然后,在存储卡(包括NAND芯片)10中记录通过上面实施例中的ID绑定过程(1)而生成的内容密钥。此外,记录通过由ID绑定过程(2)生成的内容密钥所加密的内容(加密内容)。进一步,还以安全形式记录内容密钥前体本身。
在此上下文中,安全形式可以是在存储卡(包括NAND芯片)10中的记录区域中记录的形式,在存储卡(包括NAND芯片)10和记录主机(记录设备)20A之间成功执行认证之后,该记录区域变得可访问。在此上下文中,认证可以是本申请中描述的认证方法,或者可以通过存储卡(包括NAND芯片)10具有的某种其它认证功能来实现。安全形式的另一个实例可以是通过存储卡(包括NAND芯片)10或记录主机(记录设备)20A具有的密钥实现的加密形式。
当重放主机(重放设备)20B从存储卡(包括NAND芯片)10读出内容并重放内容时,首先在存储卡(包括NAND芯片)10和重放主机(重放设备)20B之间执行上面实施例中的认证过程。成功执行认证过程之后,执行上面实施例中的ID检索过程。然后,通过对应于上面实施例中的ID绑定过程(2)的过程,从记录在存储卡(包括NAND芯片)10中的内容密钥前体生成内容密钥。之后,对加密内容(Encrypted Content)进行解密,从而重放内容。
[第17实施例(存储器、控制器和主机的实例)]
接下来,参考图50,描述了第17实施例。第17实施例涉及可以应用于上述实施例的NAND闪存10、控制器19和主机设备20的一个实例。在该实施例中,将SD卡(商标)作为存储卡的一个实例。
如图50中所示,在该实施例中,示出了连接到存储卡的主机设备的功能块。可以通过硬件或计算机软件,或者通过这两者的组合实现相应的功能块。因此,通常从相应块的功能角度描述这些块,以便说明通过哪些功能实现每个块。这些功能是作为硬件还是软件执行则取决于具体的实现模式,或者取决于施加于整体系统的设计限制。本领域的技术人员可以在每种具体的实现模式中通过各种方法实现这些功能,但所有实现方法均落入本发明的范围之内。
主机20包括软件211,例如应用或操作系统。用户指示软件211将数据写入存储卡中,或者从存储卡读出数据。软件211指示文件系统212写入和读取数据。文件系统212是用于管理记录在作为管理对象的存储介质中的文件数据的方案。文件系统212将管理信息记录在存储介质中的存储区域内,并通过使用管理信息来管理文件数据。
主机20包括SD接口213。SD接口213包括硬件和软件,在主机20和存储卡之间执行接口过程必需这些硬件和软件。主机20通过SD接口213与存储卡通信。SD接口213指定在主机20和存储卡之间通信必需的各种协议,并包括一组可由存储卡的SD接口31相互识别的各种命令,稍后将对此进行描述。此外,SD接口213包括可连接到存储卡的SD接口31的硬件结构(引脚排列、引脚数等)。
存储卡包括NAND闪存10和用于控制存储器10的控制器19。当存储卡连接到主机20时,或者当在存储卡插入处于OFF状态的主机20的状态下开启主机20时,为存储卡提供电力,执行初始化过程,并执行对应于从主机20进行访问的过程。
NAND存储器10以非易失性状态存储数据,并以称为“页”的单位执行数据写入和读取,页包括多个存储基元。为每个页分配唯一的物理地址。此外,存储器10以称为“块”(擦除块)的单位执行数据擦除,块包括多个页。在某些情况下,为物理块单元分配物理地址。
控制器19管理存储器10的数据存储状态。存储状态的管理包括管理页(或物理块)的物理地址与存储在该页中的数据的逻辑地址之间的关系,并管理哪个物理地址指示处于擦除状态(不写入数据或存储无效数据的状态)的页(或物理块)。
控制器19包括SD接口31、MPU32、ROM(只读存储器)33、RAM(随机存取存储器)34和NAND接口35。
SD接口31包括硬件和软件,在主机20和控制器19之间执行接口过程必需这些硬件和软件。如同SD接口213,SD接口31指定在主机20和控制器19之间实现通信的协议,包括一组各种命令,并且还包括硬件结构(引脚排列、引脚数等)。存储卡(控制器19)通过SD接口31与主机20通信。SD接口31包括寄存器36。
MPU32控制存储卡的全部操作。例如,当为存储卡提供电力时,MPU32将存储在ROM33中的固件(控制程序)读出到RAM34,并执行预定过程。MPU32根据控制程序在RAM34上创建各种表,或者根据从主机20接收的命令在存储器10上执行预定过程。
ROM33例如存储由MPU32控制的控制程序。RAM34用作MPU32的工作区域,并临时存储控制程序或各种表。这些表包括转换表(逻辑/物理表),其用于将文件系统212分配给数据的逻辑地址转换为实际存储数据的页的物理地址。NAND接口35在控制器19和存储器10之间执行接口过程。
根据所存储数据的类型,NAND闪存10中的存储区域例如包括系统数据区域、机密数据区域、受保护数据区域、用户数据区域等。系统数据区域是存储器10中由控制器19保护的区域,以便存储控制器19的操作必需的数据。机密数据区域存储用于加密的密钥信息,以及在认证时使用的机密数据,并且不可从主机20访问。受保护数据区域存储重要数据、安全数据等。用户数据区域可由主机20自由访问和使用,并且例如存储诸如AV内容文件和图像数据之类的用户数据。控制器19保护用户数据区域的一部分,并存储控制器19本身的操作必需的控制数据(例如,逻辑/物理地址转换表)。
尽管描述了某些实施例,但这些实施例仅通过实例的方式提供,并且并非旨在限制本发明的范围。实际上,在此描述的新颖实施例可以以各种其它形式体现;此外,可以在此处描述的实施例的形式中做出各种省略、替代和更改而不偏离本发明的精神。所附权利要求及其等效物旨在涵盖将落入本发明的范围和精神之内的这些形式或修改。
Claims (20)
1.一种半导体存储器件,包括:
存储基元阵列,其包括多个存储基元;
随机数生成电路,其被配置为生成随机数;以及
控制器,其被配置为控制所述存储基元阵列和所述随机数生成电路,
其中所述随机数生成电路包括:
随机数控制电路,其被配置为基于通过生成的控制参数从所述存储基元读出的数据而生成随机数参数;以及
伪随机数生成电路,其被配置为通过使用所述随机数参数作为种子值来生成所述随机数。
2.根据权利要求1的器件,其中所述随机数控制电路包括:
控制参数生成电路,其被配置为生成所述控制参数;以及
累加电路,其被配置为通过针对作为输入的所述存储基元的读出数据执行累加过程而生成所述种子值。
3.根据权利要求2的器件,其中所述控制参数生成电路包括:
地址设置电路,其被配置为从所述控制器接收随机数生成触发信号,并在从所述存储基元阵列读出数据时,通过使用所述伪随机数生成电路的输出值而生成地址的控制参数;以及
电压设置电路,其被配置为从所述控制器接收所述随机数生成触发信号,并在从所述存储基元阵列读出数据时,通过使用所述伪随机数生成电路的所述输出值而生成读取电压的控制参数,
其中由所述地址设置电路和所述电压设置电路生成的所述参数均被输出为所述控制参数。
4.根据权利要求2的器件,其中所述累加电路包括多个累加电路,来自所述存储基元阵列的读出数据被分成的段是所述多个累加电路的输入,每个段具有预定数据长度,并且所述多个累加电路执行累加过程,
其中所述多个累加电路执行所述段的位相加。
5.根据权利要求1的器件,还包括时钟生成器,其被配置为生成时钟,所述时钟被传送到所述伪随机数生成电路。
6.根据权利要求5的器件,其中所述伪随机数生成电路包括寄存器电路,所述寄存器电路具有:设置信号输入端子,所述种子值被输入到所述设置信号输入端子;数据输入端子,所述随机数被输入到所述数据输入端子;以及时钟输入部分,由所述时钟生成器生成的所述时钟被输入到所述时钟输入部分。
7.根据权利要求1的器件,其中所述存储基元或者是单电平基元,其被配置为使得一个存储基元能够存储1位数据,或者是多电平基元,其被配置为使得一个存储基元能够存储多位数据。
8.根据权利要求7的器件,其中根据所述控制参数而如此配置所述存储基元的阈值电压分布:通过将所述阈值电压分布的中心设置为基准,提供具有预定宽度的设置范围,并且按预定间隔将所述设置范围划分为多个电平。
9.一种半导体存储器件,包括:
存储基元阵列,其包括多个存储基元;
随机数生成电路,其被配置为生成随机数;以及
控制器,其被配置为控制所述存储基元阵列和所述随机数生成电路,
其中所述随机数生成电路包括:
随机数控制电路,其被配置为基于通过生成的控制参数从所述存储基元读出的数据而生成随机数参数;以及
伪随机数生成电路,其被配置为通过使用所述随机数参数作为种子值来生成所述随机数,并将所述随机数反馈回所述随机数控制电路。
10.根据权利要求9的器件,其中所述随机数控制电路包括:
控制参数生成电路,其被配置为生成所述控制参数;以及
累加电路,其被配置为通过针对作为输入的所述存储基元的读出数据执行累加过程而生成所述种子值。
11.根据权利要求10的器件,其中所述控制参数生成电路包括:
地址设置电路,其被配置为从所述控制器接收随机数生成触发信号,并在从所述存储基元阵列读出数据时,通过使用所述伪随机数生成电路的输出值而生成地址的控制参数;以及
电压设置电路,其被配置为从所述控制器接收所述随机数生成触发信号,并在从所述存储基元阵列读出数据时,通过使用所述伪随机数生成电路的所述输出值而生成读取电压的控制参数,
其中由所述地址设置电路和所述电压设置电路生成的所述参数均被输出为所述控制参数。
12.根据权利要求10的器件,其中所述累加电路包括多个累加电路,来自所述存储基元阵列的读出数据被分成的段是所述多个累加电路的输入,每个段具有预定数据长度,并且所述多个累加电路执行累加过程,
其中所述多个累加电路执行所述段的位相加。
13.根据权利要求9的器件,还包括时钟生成器,其被配置为生成时钟,所述时钟被传送到所述伪随机数生成电路。
14.根据权利要求13的器件,其中所述伪随机数生成电路包括寄存器电路,所述寄存器电路具有:设置信号输入端子,所述种子值被输入到所述设置信号输入端子;数据输入端子,所述随机数被输入到所述数据输入端子;以及时钟输入部分,由所述时钟生成器生成的所述时钟被输入到所述时钟输入部分。
15.根据权利要求9的器件,其中所述存储基元或者是单电平基元,其被配置为使得一个存储基元能够存储1位数据,或者是多电平基元,其被配置为使得一个存储基元能够存储多位数据。
16.根据权利要求15的器件,其中根据所述控制参数而如此配置所述存储基元的阈值电压分布:通过将所述阈值电压分布的中心设置为基准,提供具有预定宽度的设置范围,并且按预定间隔将所述设置范围划分为多个电平。
17.一种半导体存储器件,包括:
存储基元阵列,其包括多个存储基元;
随机数生成电路,其被配置为生成随机数;以及
控制器,其被配置为控制所述存储基元阵列和所述随机数生成电路,
其中所述随机数生成电路包括:
随机数控制电路,其被配置为基于通过生成的控制参数从所述存储基元读出的数据而生成随机数参数;
第一伪随机数生成电路,其被配置为使用初始值启动操作,并将随机数1作为级数1输出到所述随机数控制电路;以及
第二伪随机数生成电路,其被配置为通过使用所接收的随机数参数作为种子值(级数2)来生成所述随机数。
18.根据权利要求17的器件,其中所述随机数生成电路进一步包括异或电路,所述第二伪随机数生成电路的输出和所述随机数控制电路的输出被输入到所述异或电路。
19.根据权利要求18的器件,其中所述随机数生成电路被如此配置:使得来自所述随机数控制电路的所述种子值也被输入到所述第一伪随机数生成电路。
20.根据权利要求17的器件,还包括第一和第二时钟生成器,它们被配置为生成时钟,所述时钟被传送到所述第一和第二伪随机数生成电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-125282 | 2011-06-03 | ||
JP2011125282A JP5813380B2 (ja) | 2011-06-03 | 2011-06-03 | 半導体記憶装置 |
PCT/JP2012/054497 WO2012164986A2 (en) | 2011-06-03 | 2012-02-17 | Semiconductor memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103403670A true CN103403670A (zh) | 2013-11-20 |
Family
ID=45976988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012800108180A Pending CN103403670A (zh) | 2011-06-03 | 2012-02-17 | 用于伪随机数生成的半导体存储器件 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8976586B2 (zh) |
EP (1) | EP2715524B1 (zh) |
JP (1) | JP5813380B2 (zh) |
KR (1) | KR101540875B1 (zh) |
CN (1) | CN103403670A (zh) |
TW (1) | TW201250582A (zh) |
WO (1) | WO2012164986A2 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930093A (zh) * | 2015-02-26 | 2016-09-07 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106168896A (zh) * | 2016-07-05 | 2016-11-30 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN106817591A (zh) * | 2017-01-03 | 2017-06-09 | 硅谷数模半导体(北京)有限公司 | 数据传输系统、方法和装置 |
CN107077324A (zh) * | 2014-09-26 | 2017-08-18 | 英特尔公司 | 用于使用相变材料来生成随机数据的方法以及相关的设备和系统 |
CN108702362A (zh) * | 2016-02-22 | 2018-10-23 | Arm有限公司 | 用于生成随机数的设备和方法 |
CN110211618A (zh) * | 2019-06-12 | 2019-09-06 | 中国科学院计算技术研究所 | 一种用于区块链的处理装置及方法 |
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
CN111210862A (zh) * | 2018-11-22 | 2020-05-29 | 爱思开海力士有限公司 | 存储器控制器及操作该存储器控制器的方法 |
CN111338565A (zh) * | 2018-12-19 | 2020-06-26 | 美光科技公司 | 基于存储器单元的噪声特性生成随机值 |
CN111952374A (zh) * | 2020-08-25 | 2020-11-17 | 湘潭大学 | 一种随机数字发生器及其制备方法及其使用方法 |
CN112583581A (zh) * | 2019-09-29 | 2021-03-30 | 杭州中天微系统有限公司 | 一种数据读取装置、系统及数据读取方法 |
CN113050086A (zh) * | 2021-06-01 | 2021-06-29 | 中国南方电网有限责任公司超高压输电公司广州局 | 探地雷达系统及控制方法、装置、设备及存储介质 |
CN113468518A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 用于针对非易失性存储器进行信息保护的方法和设备 |
CN114301729A (zh) * | 2021-12-22 | 2022-04-08 | 北京海林自控科技股份有限公司 | 一种基于ntc的总线通信地址分配方法及系统 |
CN115357523A (zh) * | 2022-07-08 | 2022-11-18 | 镕铭微电子(济南)有限公司 | 一种随机化方法及数据读写方法 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9418022B2 (en) | 2012-07-26 | 2016-08-16 | Kabushiki Kaisha Toshiba | Storage system in which information is prevented |
JP6103958B2 (ja) * | 2013-01-25 | 2017-03-29 | 株式会社メガチップス | 半導体記憶装置 |
US8959615B2 (en) | 2013-02-25 | 2015-02-17 | Kabushiki Kaisha Toshiba | Storage system in which fictitious information is prevented |
US8990530B2 (en) | 2013-02-28 | 2015-03-24 | Kabushiki Kaisha Toshiba | Storage system in which fictitious information is prevented |
KR101489758B1 (ko) | 2013-08-26 | 2015-02-04 | 한국전자통신연구원 | 플래시 메모리의 동작 제어 방법 및 장치 |
CN103593160B (zh) * | 2013-11-04 | 2017-10-13 | 上海新储集成电路有限公司 | 一种基于相变存储单元的随机数字发生器 |
US9513815B2 (en) * | 2013-12-19 | 2016-12-06 | Macronix International Co., Ltd. | Memory management based on usage specifications |
JP6151203B2 (ja) | 2014-03-04 | 2017-06-21 | 株式会社東芝 | 演算制御装置、それを備えたメモリシステム、および、情報処理装置 |
DE102014206992A1 (de) * | 2014-04-11 | 2015-10-15 | Siemens Aktiengesellschaft | Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen |
JP6380804B2 (ja) | 2014-04-16 | 2018-08-29 | パナソニックIpマネジメント株式会社 | 乱数処理装置および乱数処理方法 |
KR102368507B1 (ko) * | 2014-05-09 | 2022-02-25 | 퀀텀 넘버스 코포레이션 | 난수 생성 방법 및 난수 생성기 |
KR102211709B1 (ko) | 2014-05-19 | 2021-02-02 | 삼성전자주식회사 | 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법 |
US10216484B2 (en) * | 2014-06-10 | 2019-02-26 | Texas Instruments Incorporated | Random number generation with ferroelectric random access memory |
KR102154187B1 (ko) * | 2014-08-07 | 2020-09-09 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR101575810B1 (ko) | 2014-09-30 | 2015-12-08 | 고려대학교 산학협력단 | 물리적 복제 방지 기능을 갖는 플래시 메모리 장치 및 그 구현 방법 |
US9548113B2 (en) | 2014-11-21 | 2017-01-17 | Panasonic Intellectual Property Management Co., Ltd. | Tamper-resistant non-volatile memory device |
KR101575807B1 (ko) | 2014-11-28 | 2015-12-08 | 고려대학교 산학협력단 | 물리적 복제 방지 기능을 갖는 플래시 메모리 장치 및 그 구현 방법 |
JP6617924B2 (ja) | 2015-06-18 | 2019-12-11 | パナソニックIpマネジメント株式会社 | 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法 |
TWI569275B (zh) * | 2015-07-17 | 2017-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US9601193B1 (en) | 2015-09-14 | 2017-03-21 | Intel Corporation | Cross point memory control |
JP6499065B2 (ja) * | 2015-12-04 | 2019-04-10 | 東芝メモリ株式会社 | 乱数発生回路および半導体記憶装置 |
CN107203365B (zh) * | 2016-03-17 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 随机数的生成及获取方法和装置 |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US10579583B2 (en) * | 2016-08-09 | 2020-03-03 | International Business Machines Corporation | True random generator (TRNG) in ML accelerators for NN dropout and initialization |
WO2018046009A1 (zh) * | 2016-09-12 | 2018-03-15 | 上海鼎利信息科技有限公司 | 一种区块链身份系统 |
JP6542171B2 (ja) | 2016-09-15 | 2019-07-10 | 東芝メモリ株式会社 | ランダマイザおよび半導体記憶装置 |
CN108259162A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 一种密钥存储方法 |
JP6730215B2 (ja) | 2017-03-22 | 2020-07-29 | キオクシア株式会社 | メモリコントローラ、メモリシステムおよび制御方法 |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10534554B2 (en) | 2017-10-13 | 2020-01-14 | Silicon Storage Technology, Inc. | Anti-hacking mechanisms for flash memory device |
US10396769B2 (en) * | 2017-10-18 | 2019-08-27 | Qualcomm Incorporated | Apparatus and method for clock signal frequency division using self-resetting, low power, linear feedback shift register (LFSR) |
US11728000B1 (en) | 2017-12-13 | 2023-08-15 | Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville | Systems and methods for detecting counterfeit or defective memory |
CN108509180B (zh) * | 2018-04-13 | 2021-04-06 | 太原理工大学 | 一种基于二输入异或门低功耗随机数产生装置 |
JP7292864B2 (ja) * | 2018-04-23 | 2023-06-19 | キオクシア株式会社 | 半導体記憶装置 |
TWI814685B (zh) * | 2018-04-23 | 2023-09-01 | 日商鎧俠股份有限公司 | 半導體記憶體裝置 |
WO2019209233A1 (en) * | 2018-04-26 | 2019-10-31 | Dokuz Eylül Üni̇versi̇tesi̇ Rektörlüğü | Fast and lightweight random number generator |
US11620108B1 (en) * | 2018-05-17 | 2023-04-04 | Board Of Trustees Of The University Of Alabama For And On Behalf Of The University Of Alabama In Huntsville | Random number generation systems and methods |
US10564864B1 (en) * | 2018-10-04 | 2020-02-18 | Dell Products L.P. | Method for estimating data retention time in a solid state drive |
KR20200046481A (ko) * | 2018-10-24 | 2020-05-07 | 삼성전자주식회사 | 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법 |
CN109815750A (zh) * | 2018-12-28 | 2019-05-28 | 深圳市德名利电子有限公司 | 一种存储装置的加密方法及存储装置 |
US11012425B2 (en) | 2018-12-28 | 2021-05-18 | Micron Technology, Inc. | Replay protection nonce generation |
US12013808B2 (en) | 2019-03-15 | 2024-06-18 | Intel Corporation | Multi-tile architecture for graphics operations |
AU2020241262A1 (en) | 2019-03-15 | 2021-11-04 | Intel Corporation | Sparse optimizations for a matrix accelerator architecture |
EP4024223A1 (en) | 2019-03-15 | 2022-07-06 | Intel Corporation | Systems and methods for cache optimization |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
US11139043B2 (en) | 2019-05-20 | 2021-10-05 | Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville | Systems and methods for identifying counterfeit memory |
KR20200137542A (ko) | 2019-05-30 | 2020-12-09 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 저장 장치 |
CN112291056B (zh) * | 2019-07-25 | 2024-02-23 | 熵码科技股份有限公司 | 加密密钥生成器及传输系统 |
JP2021033687A (ja) * | 2019-08-26 | 2021-03-01 | キオクシア株式会社 | メモリシステム |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
KR20210145341A (ko) | 2020-05-25 | 2021-12-02 | 삼성전자주식회사 | 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치 |
US11651825B2 (en) | 2021-04-12 | 2023-05-16 | Micron Technology, Inc. | Random value generator |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130240A1 (en) * | 2005-06-23 | 2007-06-07 | Infineon Technologies Ag | Circuit arrangement and method for initializing a random number generator |
US20070180285A1 (en) * | 2006-01-31 | 2007-08-02 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
CN101038541A (zh) * | 2006-03-15 | 2007-09-19 | 中兴通讯股份有限公司 | 一种随机数的产生方法 |
US20090165086A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | Random number generation through use of memory cell activity |
WO2010017320A2 (en) * | 2008-08-06 | 2010-02-11 | Cassy Holdings Llc | Uncertainty random value generator |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3358954B2 (ja) * | 1996-09-17 | 2002-12-24 | アイオニクス沖縄株式会社 | 擬似ランダムビット列生成器及びそれを使用する暗号通信方法 |
JPH10257303A (ja) * | 1997-03-13 | 1998-09-25 | Dainippon Screen Mfg Co Ltd | 画像処理方法および装置 |
JP2000209195A (ja) * | 1999-01-14 | 2000-07-28 | Toyo Commun Equip Co Ltd | 暗号通信システム |
JP4011792B2 (ja) | 1999-06-16 | 2007-11-21 | 株式会社東芝 | 記録方法、再生方法、記録装置、再生装置及び記録媒体 |
JP3602984B2 (ja) * | 1999-07-09 | 2004-12-15 | 富士通株式会社 | メモリ装置 |
US6345001B1 (en) * | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
JP4053792B2 (ja) * | 2001-03-09 | 2008-02-27 | 株式会社東芝 | 音楽配信方法及び音楽再生装置 |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
FR2829643A1 (fr) | 2001-09-12 | 2003-03-14 | Everbee Wireless Ltd | Procede pour generer des nombres aleatoires |
JP4256198B2 (ja) | 2003-04-22 | 2009-04-22 | 株式会社東芝 | データ記憶システム |
DE602005023910D1 (de) * | 2004-10-15 | 2010-11-11 | Nxp Bv | Integrierte Schaltung mit einem echten Zufallszahlengenerator |
TWI270003B (en) | 2004-12-17 | 2007-01-01 | Ind Tech Res Inst | Memory power model related to access information or the variation thereof and the method of applying the power model |
US8443020B2 (en) * | 2005-09-09 | 2013-05-14 | Mitsubishi Electric Corporation | Pseudo random number generator |
JP2007234001A (ja) * | 2006-01-31 | 2007-09-13 | Semiconductor Energy Lab Co Ltd | 半導体装置 |
JP4896605B2 (ja) | 2006-07-04 | 2012-03-14 | 株式会社東芝 | 不揮発性半導体記憶システム |
JP4882598B2 (ja) | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008117471A (ja) | 2006-11-02 | 2008-05-22 | Toshiba Corp | 不揮発性半導体記憶装置及び不揮発性メモリシステム |
JP2008269473A (ja) | 2007-04-24 | 2008-11-06 | Toshiba Corp | データ残存期間管理装置及び方法 |
US7885990B2 (en) * | 2007-05-31 | 2011-02-08 | Intel Corporation | Random telegraph signal noise as a source for random numbers |
JP5032290B2 (ja) * | 2007-12-14 | 2012-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR101374427B1 (ko) | 2008-05-23 | 2014-03-17 | 에이저 시스템즈 엘엘시 | 보안 난수 생성기 |
JP4538066B2 (ja) | 2008-08-26 | 2010-09-08 | 株式会社東芝 | 乱数生成装置 |
JP2011013902A (ja) * | 2009-07-01 | 2011-01-20 | Sony Corp | セキュリティチップ、セキュリティカード及び暗号化処理方法 |
US9330753B2 (en) * | 2010-11-29 | 2016-05-03 | Seagate Technology Llc | Memory sanitation using bit-inverted data |
-
2011
- 2011-06-03 JP JP2011125282A patent/JP5813380B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-17 WO PCT/JP2012/054497 patent/WO2012164986A2/en active Application Filing
- 2012-02-17 EP EP12715448.2A patent/EP2715524B1/en active Active
- 2012-02-17 CN CN2012800108180A patent/CN103403670A/zh active Pending
- 2012-02-17 US US13/985,436 patent/US8976586B2/en not_active Expired - Fee Related
- 2012-02-17 KR KR1020137022824A patent/KR101540875B1/ko active IP Right Grant
- 2012-02-24 TW TW101106412A patent/TW201250582A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130240A1 (en) * | 2005-06-23 | 2007-06-07 | Infineon Technologies Ag | Circuit arrangement and method for initializing a random number generator |
US20070180285A1 (en) * | 2006-01-31 | 2007-08-02 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
CN101038541A (zh) * | 2006-03-15 | 2007-09-19 | 中兴通讯股份有限公司 | 一种随机数的产生方法 |
US20090165086A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | Random number generation through use of memory cell activity |
WO2010017320A2 (en) * | 2008-08-06 | 2010-02-11 | Cassy Holdings Llc | Uncertainty random value generator |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077324B (zh) * | 2014-09-26 | 2021-06-29 | 英特尔公司 | 用于使用相变材料来生成随机数据的方法以及相关的设备和系统 |
CN107077324A (zh) * | 2014-09-26 | 2017-08-18 | 英特尔公司 | 用于使用相变材料来生成随机数据的方法以及相关的设备和系统 |
CN105930093A (zh) * | 2015-02-26 | 2016-09-07 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN108702362A (zh) * | 2016-02-22 | 2018-10-23 | Arm有限公司 | 用于生成随机数的设备和方法 |
CN108702362B (zh) * | 2016-02-22 | 2021-12-14 | Arm有限公司 | 用于生成随机数的设备和方法 |
CN106168896A (zh) * | 2016-07-05 | 2016-11-30 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN106168896B (zh) * | 2016-07-05 | 2018-10-09 | 北京大学深圳研究生院 | 一种真随机数发生器 |
CN106817591A (zh) * | 2017-01-03 | 2017-06-09 | 硅谷数模半导体(北京)有限公司 | 数据传输系统、方法和装置 |
CN106817591B (zh) * | 2017-01-03 | 2019-10-22 | 硅谷数模半导体(北京)有限公司 | 数据传输系统、方法和装置 |
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
CN111210862A (zh) * | 2018-11-22 | 2020-05-29 | 爱思开海力士有限公司 | 存储器控制器及操作该存储器控制器的方法 |
CN111338565A (zh) * | 2018-12-19 | 2020-06-26 | 美光科技公司 | 基于存储器单元的噪声特性生成随机值 |
US11757632B2 (en) | 2018-12-19 | 2023-09-12 | Micron Technology, Inc. | Generating a random value based on a noise characteristic of a memory cell |
CN110211618B (zh) * | 2019-06-12 | 2021-08-24 | 中国科学院计算技术研究所 | 一种用于区块链的处理装置及方法 |
CN110211618A (zh) * | 2019-06-12 | 2019-09-06 | 中国科学院计算技术研究所 | 一种用于区块链的处理装置及方法 |
CN112583581A (zh) * | 2019-09-29 | 2021-03-30 | 杭州中天微系统有限公司 | 一种数据读取装置、系统及数据读取方法 |
CN113468518A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 用于针对非易失性存储器进行信息保护的方法和设备 |
CN111952374A (zh) * | 2020-08-25 | 2020-11-17 | 湘潭大学 | 一种随机数字发生器及其制备方法及其使用方法 |
CN111952374B (zh) * | 2020-08-25 | 2022-06-14 | 湘潭大学 | 一种随机数字发生器及其制备方法及其使用方法 |
CN113050086A (zh) * | 2021-06-01 | 2021-06-29 | 中国南方电网有限责任公司超高压输电公司广州局 | 探地雷达系统及控制方法、装置、设备及存储介质 |
CN114301729A (zh) * | 2021-12-22 | 2022-04-08 | 北京海林自控科技股份有限公司 | 一种基于ntc的总线通信地址分配方法及系统 |
CN115357523A (zh) * | 2022-07-08 | 2022-11-18 | 镕铭微电子(济南)有限公司 | 一种随机化方法及数据读写方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012164986A3 (en) | 2013-03-28 |
KR101540875B1 (ko) | 2015-07-30 |
WO2012164986A2 (en) | 2012-12-06 |
KR20130122664A (ko) | 2013-11-07 |
JP2012252195A (ja) | 2012-12-20 |
EP2715524B1 (en) | 2021-01-06 |
JP5813380B2 (ja) | 2015-11-17 |
US20140146607A1 (en) | 2014-05-29 |
US8976586B2 (en) | 2015-03-10 |
EP2715524A2 (en) | 2014-04-09 |
TW201250582A (en) | 2012-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103403670A (zh) | 用于伪随机数生成的半导体存储器件 | |
US9544138B2 (en) | Authenticator, authenticatee and authentication method | |
CN103348625B (zh) | 认证者、被认证者和认证方法 | |
US9191210B2 (en) | Authenticator, authenticatee and authentication method | |
US9049026B2 (en) | Authenticator, authenticatee and authentication method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20170208 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |