随机数字值的生成装置以及方法与流程

文档序号:18741628发布日期:2019-09-21 01:50阅读:210来源:国知局

技术领域
:本发明涉及安保领域,更具体而言,涉及利用工序变异(processvariation)生成随机数字值的PUF(physicallyunclonablefunction:物理不可克隆函数)。
背景技术
::PUF可提供不可预测(unpredictable)的数字值。各PUF即使指定准确的制造工序,以相同的工序制成,上述各PUF所提供的数字值也不同。PUF可被称为不可复制的POWF(physicalone-wayfunction:物理单向函数)或者是PRF(physicalrandomfunction:物理随机函数)。PUF的这种特性可被用来产生加密密钥以用在安保及/或认证上。譬如PUF可用来提供唯一密钥(uniquekey)以区分一设备与另一设备。韩国专利注册号10-1139630(以下称为“630专利”)提出实现PUF的方法。“630专利”揭露了利用半导体工序变异使半导体的导电层或导电节点(conductivelayersorconductivenodes)间是否生成内层接触(inter-layercontact)或者过孔(via)机率性地决定来生成PUF的方法。揭露于“630专利”的一实施例,通过将过孔(via)的尺寸设计为小尺寸,来使形成过孔的情况和不形成过孔的情况随机地发生。由此,生成无法人为推测的随机数字值。然而就“630专利”而言,为了提高PUF的收率,需要决定由PUF生成的数字值所包含的各位值成为真随机数(truerandomnumber)而非偏向“0”或“1”的最佳过孔尺寸。为此,对特定工序预先利用各种过孔尺寸生成PUF之后,检测PUF所生成的数字值,来进行决定要在上述特定工序中使用的最佳过孔尺寸的首次通过(firstpass)。然后进行利用这样决定的单一最佳过孔尺寸生成实际PUF的二次通过(secondpass)。然而,为了在上述特定工序中使用而决定的上述最佳过孔尺寸,有可能在其他晶片和/或芯片中并非是最佳的值。这是因为即便在同一工序,工序变异在个别晶片和/或个别芯片中也会以不同程度发生。并且,即便在同一工序、同一生产线,最佳值也会随着时间的流逝,因工序环境或各种因素的变化而产生不同。因此,要求能够提高PUF生成收率的方法。技术实现要素:根据一侧面,提供利用半导体工序变异来生成数字值的装置。根据一实施例,上述数字值的生成装置包括:生成部,利用上述半导体工序变异,来生成多个数字值;处理部,处理上述多个数字值,来提供第一数字值。其中,上述生成部可包括多个PUF,相互不同地适用引发上述工序变异的至少一个参数来制造上述多个PUF中的至少一部分PUF,由上述多个PUF生成上述多个数字值。根据一实施例,上述多个PUF中的至少一个,包含形成在半导体的导电层之间的至少一个过孔(Via),利用上述导电层是否因上述至少一个过孔而短路,来生成上述多个数字值中的至少一个。根据一实施例,上述参数包含上述过孔的尺寸。根据一实施例,上述过孔的尺寸选自如下范围:在先于生成上述生成装置的工序进行的测试工序中,既确认到上述导电层之间短路又确认到没有短路这样的过孔尺寸的最小值至最大值的范围(将其称为“有效区间”),上述多个PUF每一个被适用上述范围内的相不同的过孔尺寸。根据一实施例,上述处理部将上述多个数字值中的符合事先指定的条件的值选择为上述第一数字值。这种情况下,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数最小的PUF生成。此外,根据另一实施例,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数为最小值和最大值之间的中间值的PUF生成。根据另一实施例,上述处理部对上述多个数字值按照位序列实施逻辑运算来计算上述第一数字值。根据一实施例,上述逻辑运算为异或(XOR)逻辑运算。根据另一侧面,提供一种数字值的生成方法,由利用半导体工序变异生成数字值的生成装置来生成数字值,该方法包括:由相不同地适用引发上述工序变异的至少一个参数而制作出的多个PUF,来生成多个数字值的步骤;以及由处理部处理上述多个数字值来提供第一数字值的步骤。根据一实施例,上述多个PUF中的至少一个包含形成在半导体的导电层之间的至少一个过孔(Via),在生成多个数字值的上述步骤中,根据上述导电层是否因上述至少一个过孔而短路来生成上述多个数字值中的至少一个。根据一实施例,上述参数包含上述过孔的尺寸。在这种情况下,上述过孔的尺寸选自如下范围:在先于生成上述生成装置的工序进行的测试工序中,既确认到上述导电层之间短路又确认到没有短路这样的过孔尺寸的最小值至最大值的范围,上述多个PUF每一个被适用上述范围内的相不同的过孔尺寸。根据一实施例,在由处理部处理的上述步骤中,将上述多个数字值中的符合事先指定的条件的值选择为上述第一数字值。这种情况下,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数最小的PUF生成。另一方面,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数为最小值和最大值之间的中间值的PUF生成。根据另一实施例,在由处理部处理的上述步骤中,对上述多个数字值按照位序列实施逻辑运算来计算上述第一数字值。这种情况下,上述逻辑运算为异或(XOR)逻辑运算。附图说明图1为一实施例所涉及的数字值生成装置的框图。图2为用于说明一实施例所涉及的生成部的细部结构的概念图。图3为用于说明一实施例所涉及的处理部的动作的概念图。图4为用于说明一实施例所涉及的处理部的动作的概念图。图5为用于说明一实施例所涉及的处理部的动作的概念图。图6为表示一实施例所涉及的数字值生成方法的流程图。图7为表示另一实施例所涉及的数字值生成方法的流程图。图8为表示一实施例所涉及的数字值生成方法的流程图。具体实施方式以下,参照附图对实施例进行详细说明。然而,权利要求范围并非限定于这些实施例。各附图所示出的相同的附图标记表示相同的部件。以下说明中所使用的用语选自相关
技术领域
:普遍使用的术语,但由于技术的发展和/或变化、惯例、技术人员的喜好等因素,可能存在不同的用语。因此,以下说明中所使用的用语不应理解成对技术思想的限定,而是应理解成用于说明实施例的例示性用语。此外,在特定情况下存在申请人任意选定的用语,这种情况下,在相应的说明部分会记载有其详细含义。因此,以下说明中所使用的用语,并非单纯地指代用语名称,而是应该基于该用语所具有的含义以及说明书的整个内容理解。图1为一实施例所涉及的数字值生成装置100的框图。根据一实施例,装置100可包括利用半导体工序变异生成多个数字值的生成部110、以及处理上述多个数字值而提供第一数字值的处理部120。上述生成部110可包括多个因半导体工序变异而生成随机数字值的PUF。这种多个PUF可以是包含于生成部110的半导体结构中的概念性地划分的部分。多个PUF(PUF1~PUFn)可以因半导体工序变异而分别生成随机数字值。这种数字值可分别为位序列。多个PUF均不可物理性地复制,分别生成的数字值可具有时不变性。以下,将多个PUF用PUFi区分。其中,i为正数,是区分PUF的概念性标示符。但这种区分与实际电路中的配置或结构性区分概念不同。因此,也可以理解成生成部110自身为PUF,而PUFi每一个为生成部110的局部。如图所示,生成部110可以包括n个PUF。其中,n为自然数。根据一实施例,n个PUF使对随意生成的数字值所包含的个别位成为“0”的概率(或成为“1”的概率)产生影响的这样那样的工序因素和/或设计因素(以下,将该“因素”称为“参数”)不同来生成。根据一实施例,PUFi可包括形成在半导体的导电层之间的k个过孔(via)。其中,k为自然数,且为PUFi所包含的过孔数。于是,可以根据PUFi所包含的k个过孔每一个是否使导电层之间短路,使各过孔生成数字值“1”或“0”。因此,一个PUFi提供k位(bit)的数字值,在生成部110生成n个数字值。根据一实施例,n个PUF可以是使用不相同的参数而生成的。在有关上述过孔的实施例中,该参数可以是过孔尺寸。例如,PUF1~PUFn可以被设计和/或制造成具有不同的过孔尺寸。当然,如上所述,有关过孔的实施例仅仅是制作PUF的一实施例,在制作PUF的其他实施例中,上述参数显然也可以不同。因此,即便无其他说明,有关上述过孔的实施例,也应被理解成便于理解所进行的示例。例如,也可以构筑如下实施例,利用电路内的同一元件随意性的电特性差来实现PUF的实施例,半导体导电层的间距(spacingbetweenconductivelayers)等其他形态的PUF实施例。因此,实现PUF的其他多种实施例,可以与上述过孔实施例一同适用,或代替过孔实施例适用。另外,对有效区间的PUF进行说明。如上所述,n个PUF具有不相同的参数(例如尺寸)。该过孔尺寸可以是在PUF1最小,在PUFn最大。过孔尺寸越小,经工序的过孔不能正常生成的概率越大,过孔尺寸越大,工序后过孔能正常生成的概率相对越大。在本说明书整个内容中,有效区间可以指PUFi所生成的二进制值包含0和1这两个的参数范围,而非均为0或均为1的情况。例如,在上述的有关过孔的实施例中,PUFi的二进制值中存在0和1这两个的过孔尺寸范围可以表示有效区间。当然,也可以设置一定余量(margin)而使上述范围稍微扩大或缩窄,实际上可以将包含上述范围的区间表现为有效区间。以下,参照图2,对与利用在有效区间设定的过孔尺寸的上述实施例有关的PUF结构进行说明。图2为用于说明一实施例所涉及的生成部110的细部结构的概念图。在PUF标示符i相同的PUFi中,k个过孔可以具有相同的尺寸。该尺寸可以选择成,k个过孔能够随机地使导电层之间短路或不能短路的适合的尺寸。理论上存在k个过孔每一个使导电层之间短路的概率和无法短路的概率相同地为1/2的情况,这种情况的尺寸就是上述的最佳过孔尺寸。如上所述,以往,对生成PUF的特定工序事先进行了上述的首次通过。于是,在根据首次通过的进行决定要在上述特定工序中使用的最佳过孔尺寸之后,利用该最佳过孔尺寸进行了量产实际要使用的PUF的二次通过。然而,即便适用进行首次通过而决定的该最佳过孔尺寸来进行二次通过,也可能存在在个别晶片和/或(即便在一个晶片上)个别PUF芯片中过孔使导电层之间短路的概率无法维持1/2的情况。可以意识到为了将由PUF生成的随机数适用于各产业领域尤其是安保领域,这一点必须要解决。根据一实施例,不是选择一个特定的最佳过孔尺寸,而是在一个芯片生成具有有效区间内的多种过孔尺寸的多个PUF之后,在其中选择最佳的PUFi使用,或者对部分PUF的值进行加工,而使用随机性高的值,由此大幅提高制作PUF的工序的收率。换而言之,不是以相同的一个尺寸生成PUF,而是将具有多种值的PUF在一个芯片制作之后,在其中挑选一部分或加工后使用,因此能够消除PUF的生成值中“0”和“1”的比例不平衡的问题。那么,在被生成而被使用的最终数字值中“0”和“1”的频率差大幅缩减,从而能够作为安保用途使用。另外,为了使所生成的数字值成为真随机数,需要通过规定的测试以评价“0”和“1”的发生频率是否相近。如同美国标准和技术协会(NIST,NationalInstituteofStandardsandTechnology)的“AStatisticalTestSuiteforRandomandPseudorandomNumberGeneratorsforCryptographicApplications”特编800-22,也在说明使用于安保领域的随机数必须要通过这种频率测试(frequencytestormonobittest)。根据实施例,生成能够通过这种随机性测试的PUF的收率大幅提高。根据一实施例,代替预先决定某一种过孔尺寸并将所有过孔尺寸相同地生成这一的情况,在生成部110内一同实现多种过孔尺寸。这种情况下,上述的“引起工序偏差的参数”为“过孔的尺寸”。即,由于无法准确获悉怎样设计个别过孔尺寸,上述个别过孔短路导电层之间的概率和无法短路导电层之间的概率才能变得一样,并且即便获悉,在实际工序中也可能导出其他结果,因此鉴于这种情况,在一个芯片实现适用多种参数的PUF。在图2所示出的实施例中,在生成部110内实现的PUF1~PUFn具有不同的过孔尺寸。在某特定的PUF标示符i,存在k位长度的位序列(以下可称为“PUF位序列”)。若将它们分别以k位数字值使用,则能够生成不相同的n个数字值。在本说明书中,为便于说明,将由具有相同的过孔尺寸的k个过孔构成的PUFi所提供的k位的二进制位序列作为一个“PUF数字值”进行说明。另一方面,位数k、或者在一个芯片中实现的不同过孔尺寸的种类n,可根据所需随机数的长度、工序进行条件、用于通过随机性测试的要求条件、PUF的应用领域等而进行各种设定。若参照图2,则在PUF1过孔尺寸最小,并且依次增大,而在PUFn过孔尺寸最大。当然,这种顺序只是为了便于说明而采用,并非一定要按照尺寸增大的顺序实现。此外,这种过孔尺寸增大的程度也可进行各种设定,增大一定比例的例子、增大均匀的直径的例子、使过孔尺寸之差在PUFn/2附近比在PUF1或PUFn附近小来提高精密度的例子等均可。作为参考,在本说明书所有内容中,将过孔使导电层之间短路的情况用二进制值“1”进行说明,将无法短路的情况用二进制值“0”进行说明。当然,根据短路与否将二进制值决定为“1”或“0”只是为了便于理解而进行的例示性说明,根据读取电路为下拉(pull-down)结构还是上拉(pullup)结构,也可存在相反情况。再次参照附图进行说明,就过孔尺寸小的PUF1而言,k位的PUF位序列可均为“0”。另外,就过孔尺寸大的PUFn而言,k位的PUF位序列可均为“1”。根据一实施例,PUF1的过孔尺寸可以为在工序中通过设计及制造预期能够制作出“0”和“1”的最小过孔尺寸,也可以为预先在该工序中进行上述的首次通过的结果确认到作为位序列“0”和“1”均产生的最小过孔尺寸。在这层含义上,给出的实施例不排除只进行已知的二次通过方式工序的情况。另外,PUFn的过孔尺寸可以为在工序中通过设计及制造预期能够制作出“0”和“1”的最大过孔尺寸,也可以为预先在该工序中进行上述的首次通过的结果确认到作为位序列“0”和“1”均产生的最大过孔尺寸。像这样通过将多种尺寸的PUFi在一个生成部110内同时实现,能够防止所生成的PUF数字值因无法通过随机测试而导致芯片整体无法使用的情况。这是对生成部110和/或数字值生成装置100的收率有直接影响的部分,相比现有技术有重要的改善。若生成部110以这种方式生成n个数字值(分别为k位),则图1的处理部120利用n个数字值提供数字值生成装置100所提供的最终数字值(以下将其称为“第一数字值”)。这种处理过程也可具有多种实施例,图3~图6为用于说明多种实施例中的部分实施例的概念图。图3为用于说明一实施例所涉及的处理部120的动作的概念图。根据一实施例,处理部120的读取部121通过读取各个PUF而读取PUF数字值A1~An。在之前说明的图2的实施例中,PUF1的过孔尺寸最小,过孔尺寸逐渐增大,因此A1所包含的“0”可以多于“1”,An所包含的“1”可以多于“0”。如图3所例示,由于包含A1而部分数字值可以均仅包含“0”,由于包含An而部分数字值可以均仅包含“1”。根据一实施例,处理部120的决定部122可以在所读取的A1~An中包含数字值“0”和“1”这两者的Ap~Aq(有效区间的值)中选择任一个,并将其决定为数字值生成装置100所提供的第一数字值。关于选择哪一数字值,也存在多种实施例。根据一实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的最初的数字值Ap决定为上述第一数字值。根据另一实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的最后的数字值Aq决定为上述第一数字值。根据另一其他实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的任意值决定为上述第一数字值。另一方面,根据另一其他实施例,决定部122可以在Ai中的包含“0”和“1”这两者的有效区间值即Ap~Aq中将标示符处于p和q的中间的Am决定为上述第一数字值。Am的数字值“0”和“1”的分布较为均匀,从这点上看这种实施例是合理的。另一方面,根据另一其他实施例,决定部122可以对数字值A1~An中的至少一部分按照位(bitbybit)进行逻辑运算,来算出上述第一数字值。该实施例由于能够以更高级别制作出第一数字值的随机性,因此第一数字值适合使用在安保领域。以下,参照图4及图5对该实施例所包含的几个方法进行详细说明。图4为用于说明一实施例所涉及的处理部的动作的概念图。如图所示,可以对A1~An中的列标示符相同的数字值进行逻辑运算,来计算第一数字值B的位。数字值Ai由位序列ai1~aik构成。那么,决定部122对列标示符j(j为自然数)相同的a1j~anj进行逻辑运算,可以计算出第一数字值的位bj。逻辑运算可以有多种例子,根据一实施例,上述逻辑运算可以为异或运算(eXclusiveOR:XOR)。若在输入值a1j~anj中包含奇数个“1”,则XOR运算输出“1”,若在输入值a1j~anj中包含偶数个“1”,则XOR运算输出“0”。根据利用XOR运算的一实施例,由于将多个数字值A1~An使用在第一数字值B的计算中,因此可以期待多个数字值的熵被相加的、进而整个熵大幅提升的效果。由于这种XOR运算,运算中所使用的n越大,使位值为“1”的概率接近于50%,因此大幅提高第一数字值B的随机性。在本实施例中,决定部122所计算出的k位的第一数字值B(B=b1b2b3b4b5bk)通过界面(interface)123输出,而作为数字值生成装置100的输出提供。另一方面,虽然在图4的实施例中将A1~An均使用在XOR运算中,但这仅仅是一实施例,也可进行各种应用。以下,说明几个不同的其他实施例。图5为用于说明一实施例所涉及的处理部的动作的概念图。如图所示,根据一实施例,决定部122可以只对所读取的A1~An中除位值均为“0”或“1”的数字值之外的位值包含“0”及“1”这两者的范围的数字值利用上述XOR运算。例如为只对Ap~Aq按照位实施XOR运算来计算第一数字值B的方法。虽然XOR运算中所使用的位数为(q-p+1)个,相比XOR运算中所使用的输入位为n个的图4所示实施例稍稍变少,但能够减少用于逻辑运算的电路,并且预先选定熵高的值予以利用这一点可以成为另外的优点。另一方面,在图4及图5的实施例中,对列标示符j相同的位值进行了XOR运算,但这也仅仅是例子,实施XOR运算的方法显然可以进行各种变形。因此,除对列标示符j相同的位值进行运算之外,也可以对按照预先设定的选择规则或随机选择的位进行运算。例如,也可以为在其他个别PUF位序列的数字值不全部为“0”或者不全部为“1”的位序列中,对PUF标示符i相同的位值进行XOR运算。进而,也可以利用任意选定的个别PUF位序列执行其他任意逻辑运算。对于这种变形例,本领域技术人员通过本说明书显然能够理解,因此不作更具体的说明。此外,如上所述,XOR运算可以被其他逻辑运算代替,关于如何组合逻辑运算的输入,也存在其他实施例。图6为表示一实施例所涉及的数字值生成方法的流程图。所示出的流程图对应于,参照图3说明的实施例中的、决定部122将由PUF生成的数字值Ai中包含数字值“0”和“1”这两者的最初的数字值Ap选作上述第一数字值B的实施例。最初的标示符i被选定为0,在步骤610中标示符i值逐次增加1。然后,在步骤620中,测试当前标示符i是否与最终标示符n相同。在步骤620的判断结果,若在第一数字值B还未决定的状态下i变为与n相同,则可以将错误返回(步骤621)。另外,在步骤620的判断结果,若i与n相同,则在步骤630中判断与当前标示符对应的数字值Ai的所有位是否为“0”。若在步骤630中判断出Ai的所有位为“0”,则返回步骤610,对下一标示符执行相同的过程,若判断出不是Ai的所有位为“0”的情况,则将与当前标示符i对应的Ai决定为第一数字值B(步骤640)。对比参照图3的实施例,步骤640中成为B=Ap。图7为表示另一实施例所涉及的数字值生成方法的流程图。所示出的流程图对应于,参照图3说明的实施例中的、决定部122在由PUF生成的数字值Ai中识别包含数字值“0”和“1”这两者的Ap~Aq、并将与标示符p与标示符q之间的中间值m对应的数字值Am选作上述第一数字值B的实施例。最初的标示符i被选定为0,在步骤710中标示符i逐次增加1。在步骤720中i和n不相同的情况下,在步骤730中判断Ai的所有位是否为“1”。若Ai的所有位不是“1”,则在步骤740中判断Ai的所有位是否为“0”。在该步骤740中,若Ai的所有位为“0”,则返回步骤710,使位标示符增加,之后反复以后的过程。然而,若在步骤740中Ai的所有位不是“0”,则将当前标示符i决定为p,返回步骤710。另一方面,在这一循环(iteration)过程中,若在步骤730中Ai的所有位为“1”,则q值被决定出。q值可以被决定为当前标示符i,也可以被决定为未图示的比当前标示符小的(i-1)(步骤760)。此外,若无法找出Ai的所有位为“1”的位序列并在步骤720中i变为等于n,则可以在步骤760中将当前标示符即n决定为q。那么,在步骤770中,计算上述p与q的中间值即median(p,q),并该与该标示符median(p,q)对应的Amedian(p,q)决定为第一数字值B。图8为表示一实施例所涉及的数字值生成方法的流程图。在步骤810中数字值生成装置100的生成部110所生成的多个数字值被读取部121读取。上述多个数字值可以是分别由图1的PUF生成的值。另外,上述的读取过程可以是从参照图1及图2说明的PUF读取Ai~An的数字值的过程。如上所述,通过这种过程n个数字值(分别为k位)可以被传递于决定部122。当然并非要读取n个PUF生成的所有值,也可以是n个中的仅一部分数字值被传递于决定部122。那么,在步骤820中,利用决定部122所读取的数字值,决定数字值生成装置100所提供的随机数即第一数字值。根据一实施例,决定部122在所读取的多个数字值A1~An中识别出包含数字值“0”和“1”这两者的值Ap~Aq。然后可以在Ap~Aq中选择任意一个并将其决定为第一数字值B。上述选择可以按照预先决定的规则进行,也可以是随机性的选择。在该选择过程中所能进行的几个实施例已参照图3进行了说明。根据一实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的最初的数字值Ap决定为上述第一数字值B。根据另一实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的最后的数字值Aq决定为上述第一数字值B。此外,根据另一其他实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的Ap~Aq中的任意值决定为上述第一数字值B。另外,根据另一其他实施例,决定部122可以在Ai中将包含数字值“0”和“1”这两者的Ap~Aq中的标示符为p与q的中间的Am决定为上述第一数字值B。另一方面,如参照图4、图5所进行的说明,根据另一其他实施例,决定部122可以对数字值A1~An中的至少一部分按照位(bitbybit)进行逻辑运算,来算出上述第一数字值B。根据一实施例,决定部122可以对列标示符j(j为自然数)相同的a1j~anj进行逻辑运算比如XOR运算,来计算包含于第一数字值B的位值bj。详细内容如参照图4进行的上述说明。此外,如参照图5所进行的说明,根据另一实施例,决定部122可以对所读取的A1~An中除位值均为“0”或均为“1”的数字值之外的位值包含“0”和“1”这两者的范围的数字值(Ap~Aq)按照位进行XOR运算,来计算第一数字值B。对于在步骤820中决定第一数字值的过程,除了参照图3~图5进行例示性说明的实施例之外,还可以进行各种变形。此外,对于逻辑运算,如上所述,除了XOR运算之外,还可进行其他各种运算以提高数字值的熵。当这样第一数字值B被决定,则作为步骤830中由数字值生成装置100提供的随机数可提供B。根据这样的多种实施例,即便适用参数的部分PUF没有生成随机的数字值,包含该PUF的生成部110芯片整体可以被利用,因此能够提高PUF制作收率。此外,通过一次性地实现适用多种参数的PUF,因此还能够减少进行另外的首次通过的时间,因此能够最小化PUF工序所需的时间。此外,最终被提供的第一数字值B其熵极其高,因此被当做真正的随机数的概率变高。因此,能够大幅提高PUF能够使用在安保领域等随机性非常重要的领域的可靠性。以上说明的实施例,可由硬件构成要素、软件构成要素和/或硬件构成要素与软件构成要素的组合来实现。例如在实施例中说明的装置及构成要素,可以利用如处理器、控制器、ALU(arithmeticlogicunit:算术逻辑单元)、数字信号处理器(digitalsignalprocessor)、微型计算机、FPGA(fieldprogrammablearray:现场可编程阵列)、PLU(programmablelogicunit:可编程逻辑单元)、微处理器、或者可执行及响应指令(instruction)的其他任意装置那样,一个以上的通用计算机或者特殊目的计算机来实现。处理装置可以执行操作系统(OS)或在该操作系统上执行的一个以上的软件应用程序。此外,处理装置还可以响应于软件的执行而接近、存储、操作、处理或生成数据。为便于理解,处理装置存在使用一个进行说明的情况,但所属
技术领域
:的普通技术人员显然理解处理装置可以包括多个处理要素(processingelement)和/或多种类型的处理要素。例如,处理装置可以包括多个处理器或者一个处理器及一个控制器。另外,还可以为如并行处理器(parallelprocessor)那样的其他处理结构(processingconfiguration)。软件可以包括计算机程序(computerprogram)、代码(code)、指令(instruction)、或者它们中的一个以上的组合,可以以进行所希望的动作的方式构成处理装置,或者共同地(collectively)命令处理装置。软件和/或数据,为了被处理装置解释或者向处理装置提供指令或者数据,而可以永久或暂时地具体化为任意类型的设备、结构要素(component)、物理装置、虚拟装置(virtualequipment)、计算机存储介质或装置、或者被传送的信号波(signalwave)。软件可以分散在被网络连接的计算机系统中,且可以以分散的方法存储或执行。软件及数据可以存储于一个以上的计算机可读记录介质中。实施例所涉及的方法,可以以通过各种计算机单元执行的程序指令形态实现,且可记录于计算机可读介质中。上述计算机可读介质可以单独地或相组合地包含程序指令、数据文件、数据结构等。记录于上述介质中的程序指令,可以是为了实施例而特别设计构成的指令,或者也可以是本领域技术人员公知的可使用的指令。作为计算机可读记录介质的例子,有如硬盘、软盘及磁带之类的磁介质(magneticmedia),如CD-ROM、DVD之类的光记录介质(opticalmedia),如光磁软盘(flopticaldisk)之类的磁光介质(magneto-opticalmedia),以及如ROM、RAM、闪存等之类的存储程序指令并执行的特意构成的硬件装置。作为程序指令的例子,可包括由编译程序(compiler)制作的机器语言代码、以及使用解释器(interpreter)可由计算机执行的高级语言代码。上述的硬件装置,为了执行实施例的动作,可以以作为一个以上的软件组件动作的方式构成,相反也可以。此外,本公开提供的技术可配置如下:方案1.一种数字值的生成装置,利用半导体的工序变异来生成数字值,其特征在于,上述数字值的生成装置包括:生成部,利用上述半导体的工序变异,来生成多个数字值;处理部,处理上述多个数字值,来提供第一数字值,上述生成部包括多个PUF(physicallyunclonablefunction),相互不同地适用引发上述工序变异的至少一个参数来制造上述多个PUF中的至少一部分,由上述多个PUF生成上述多个数字值。方案2.根据方案1所述的数字值的生成装置,其中,上述多个PUF中的至少一个,包含形成在半导体的导电层之间的至少一个过孔(Via),利用上述导电层是否因上述至少一个过孔而短路,来生成上述多个数字值中的至少一个。方案3.根据方案2所述的数字值的生成装置,其中,上述参数包含上述过孔的尺寸。方案4.根据方案3所述的数字值的生成装置,其中,上述过孔的尺寸选自如下范围:在先于生成上述生成装置的工序进行的测试工序中,既确认到上述导电层之间短路又确认到没有短路这样的过孔尺寸的最小值至最大值的范围,上述多个PUF每一个被适用上述范围内的相不同的过孔尺寸。方案5.根据方案1所述的数字值的生成装置,其中,上述处理部将上述多个数字值中的符合事先指定的条件的值选择为上述第一数字值。方案6.根据方案5所述的数字值的生成装置,其中,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数最小的PUF生成。方案7.根据方案5所述的数字值的生成装置,其中,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数为最小值和最大值之间的中间值的PUF生成。方案8.根据方案1所述的数字值的生成装置,其中,上述处理部对上述多个数字值按照位序列实施逻辑运算来计算上述第一数字值。方案9.根据方案8所述的数字值的生成装置,其中,上述逻辑运算为异或(XOR)逻辑运算。方案10.一种数字值的生成方法,由利用半导体的工序变异生成数字值的生成装置来生成数字值,其特征在于,包括:由相不同地适用引发上述工序变异的至少一个参数而制作出的多个PUF,来生成多个数字值的步骤;以及由处理部处理上述多个数字值来提供第一数字值的步骤。方案11.根据方案10所述的数字值的生成方法,其中,上述多个PUF中的至少一个包含形成在半导体的导电层之间的至少一个过孔(Via),在生成多个数字值的上述步骤中,根据上述导电层是否因上述至少一个过孔而短路来生成上述多个数字值中的至少一个。方案12.根据方案11所述的数字值的生成方法,其中,上述参数包含上述过孔的尺寸。方案13.根据方案12所述的数字值的生成方法,其中,上述过孔的尺寸选自如下范围:在先于生成上述生成装置的工序进行的测试工序中,既确认到上述导电层之间短路又确认到没有短路这样的过孔尺寸的最小值至最大值的范围,上述多个PUF每一个被适用上述范围内的相不同的过孔尺寸。方案14.根据方案10所述的数字值的生成方法,其中,在由处理部处理的上述步骤中,将上述多个数字值中的符合事先指定的条件的值选择为上述第一数字值。方案15.根据方案14所述的数字值的生成方法,其中,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数最小的PUF生成。方案16.根据方案14所述的数字值的生成方法,其中,上述事先指定的条件由提供位序列包含“1”和“0”这两者的数字值的至少一个PUF中的、所适用的上述参数为最小值和最大值之间的中间值的PUF生成。方案17.根据方案10所述的数字值的生成方法,其中,在由处理部处理的上述步骤中,对上述多个数字值按照位序列实施逻辑运算来计算上述第一数字值。方案18.根据方案17所述的数字值的生成方法,其中,上述逻辑运算为异或(XOR)逻辑运算。虽然利用限定的实施例及附图说明了上述的实施例,但对于所属
技术领域
:的技术人员而言,显然可以根据上述记载进行多种修改及变形。例如,以与所说明的方法不同的顺序执行已说明的技术,和/或以与所说明的方法不同的形态结合或组合已说明的系统、结构、装置、电路等结构要素,或者用其他结构要素或均等物代替或置换,也能实现适当的结果。因此,其他实现例子、其他实施例以及与权利要求范围等同的例子,也均属于所附的权利要求范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1