在芯片制造期间建立唯一秘钥的制作方法

文档序号:6495381阅读:275来源:国知局
在芯片制造期间建立唯一秘钥的制作方法
【专利摘要】公开了关于生产具有唯一性性质的芯片的方法和系统。使用芯片上的硬件随机数发生器或随着正在生产硬件部件而“在运行中”生成随机位向量。生成的随机位向量被存储在芯片的一次性可编程存储器中。在芯片中从在芯片的一次性可编程存储器中编程的随机位向量导出值。所导出的值被输出到被通信连接到芯片的外部接收模块以使得安全应用提供商能够基于在芯片的一次性可编程存储器中编程的随机位向量使用秘钥将可被芯片解密的消息加密。
【专利说明】在芯片制造期间建立唯一秘钥
【技术领域】
[0001]本公开涉及为设备建立唯一秘钥。特别地,但不一定,本公开涉及用于在制造过程期间建立唯一秘钥的方法、使用所述方法制造的设备。
【背景技术】
[0002]安全应用常常受益于使用芯片内部的硬件电路实现的密码函数和数据结构。这些实现使得攻击者难以观察或影响密码函数和关联数据结构的操作。在某些芯片实现(例如,智能卡)中,提供了其他技术措施以针对旨在观察或修改密码函数的操作的攻击保护芯片。该芯片还可以被包括在消费者电子设备中,诸如移动电话、电视机、PC或平板PC。
[0003]用于支持安全应用的消费者电子装置的生产过程涉及到芯片制造商、消费者电子设备制造商以及安全应用提供商。一般地,安全应用提供商为包括具有对密码函数和数据结构的支持的芯片(安全芯片)的消费者电子设备提供安全应用。例如,智能卡包括具有意图支持特定安全应用的内置硬件电路的专用芯片(也称为微芯片或集成电路)。用于智能卡的示例性安全应用包括无线应用,例如控制到GSM网络的接入、控制到付费TV服务的有条件接入或者使得能够接入PC和建筑物等。
[0004]智能卡及其他类型的安全芯片是根据半导体晶片生产过程而生产的,其在制造商和半导体技术之间可能差异显著。硬件生产过程包括至少三个阶段。
[0005]在第一阶段(“管芯制造”)中,由管芯或芯片制造商来制造管芯。此阶段从半导体材料的晶片或任何适当基板开始。在使用掩码序列的一系列平版印刷步骤中,创建各种逻辑块、存储器结构及其他半导体电路。该存储器结构包括只读存储器(ROM)、可编程只读存储器(PR0M)、可重编程序只读存储器(EEPR0M、闪存)和随机存取存储器(RAM)。ROM存储器通常包括在芯片的商业生命周期期间不经受变化的某些控制软件程序和数据。单个晶片通常包含同一芯片电路的许多拷贝。在晶片处理之后,测试生产的芯片电路(例如,高速探测)并分类成可运行和不可运行点且用染料标记。晶片被切割成许多相同的管芯。可运行管芯可以安装到其他材料上(例如,塑料袋)以促进进一步处理,因为管芯可是脆性的。
[0006]在第二阶段(“芯片初始化”)中,可以将包括运行管芯的芯片初始化,使得芯片的各种部件可以针对特定应用被激活和/或初始化。可以针对用于芯片的不同应用将不同的一组特征激活。因此,芯片上的某些模块被激活且某些没有。此过程可以由初始化机器来执行,其被配置成加载非芯片特定(但应用特定)数据。第二阶段可以由与执行第一阶段的实体相同的实体来执行,甚至可能在同一设施中,以增加芯片初始化过程的完整性。
[0007]集中式系统可以监视和控制初始化程序以协调在芯片初始化中涉及到的各种过程。此时还可以执行测试和质量保证。此外,由于芯片的固件可以仅被部分地包含在掩码编程ROM中,所以此阶段允许在一次性可编程存储器(PROM)中写入其他数据表和其他程序代码。此步骤允许在不必重新设计ROM掩码的情况下对芯片进行扩展和修改。在此步骤之后,对芯片进行初始化以支持某些应用。此阶段涉及到对于用于特定应用的所有芯片而言相同的初始化数据的加载。此阶段的处理时间是相对快速的,并且进行减少每个芯片的所需测试时间量的努力。此阶段使得芯片适合于特定应用。
[0008]在第三阶段(“芯片个性化”)中,用秘钥和/或标识符对芯片进行个性化,因此安全应用提供商能够将该秘钥和/或标识符用于期望的安全应用。此时还可以加载对于不同的芯片而言不同的其他个性化数据。通常,秘钥和/或标识符来自唯一秘钥的预先生成列表,其由芯片制造商保持。第三芯片个性化阶段可以由与执行第一和第二阶段的实体相同或不同的实体来执行。
[0009]一旦制造了管芯并将芯片初始化和个性化(S卩,三个生产阶段),则可以将其提供给设备制造商,使得能够将其与其他芯片和外壳集成,使得其能够被装运给最终客户。
[0010]特别地,硬件生产过程使用被分成全局数据、应用特定数据以及个人数据(按照此顺序)以使生产成本最小化并使生产效率最大化。硬件生产过程的增加的特殊化允许以快得多的速度执行较早的阶段,使用更简单且更快的制造机器,同时留下更特殊化的过程朝向稍后的阶段。每个生产阶段的效率直接影响芯片生产的成本。
[0011]典型的安全应用可能要求硬件部件包括唯一地生成的秘钥或一组秘钥。这产生具有唯一性性质的硬件部件。这些秘钥通常在硬件生产过程的第三阶段、芯片个性化期间被加载到芯片的PROM中。
[0012]从安全应用提供商的角度触发,芯片的生产可以涉及到信任作为生产过程的一部分的多个实体。在生产过程的每个阶段处,通常向生产链添加更多的实体。当芯片在生产过程中通过更多的实体时,更加有可能的是,实体中的任何一个的完整性将受到损害。并且,安全应用提供商可能必须验证更多方的完整性,从而在安全方案中添加更多的薄弱点。另夕卜,更多的实体可能增加用于实现用于每个实体的审计过程的成本。
[0013]需要一种用于芯片生产的改进过程以减少必须验证完整性的实体的数目以及能够提供一种用于批量制造具有唯一秘钥的芯片的高效方法。

【发明内容】

[0014]安全应用提供商依赖于芯片生产和CE设备制造中的各种步骤以可靠地在那些芯片和设备中建立密码函数和关联受保护数据。
[0015]管芯制造在半导体晶片上产生期望的硬件电路。管芯应在没有任何安全后门的情况下生产。如果存在的话,此类后门使得攻击者能够获得或修改相关秘密信息或密码函数,这将损害安全应用。虽然将此类硬件电路修改插入制造过程中将是困难的,但其对于安全应用而言是严重的攻击。
[0016]芯片初始化加载预定固件和其他初始化功能。这应在没有引入任何安全后门的情况下实现。如果攻击者能够修改使得隐藏方法能够向对手输出或泄漏秘密的初始化数据,则这将形成的严重的安全漏洞。
[0017]芯片个性化在已初始化芯片中建立唯一秘密秘钥。此过程不应向对手输出或泄漏那些秘密。如果对手获得或修改了唯一秘密信息,则安全应用被严重地破坏。
[0018]在消费者电子(CE)设备制造期间,可以安装其他固件和秘密代码。在此阶段可能发生某些潜在的安全漏洞。
[0019]因此,安全应用提供商将需要验证多个生产步骤的完整性以便确定生产过程满足安全要求,并且其在整个制造链期间防止对安全应用的攻击。[0020]相应地,需要一种改进的过程,其能够允许具有可能在安全应用上经受攻击的实体的数目减少的芯片个性化,同时保持用于批量制造具有唯一性性质的芯片的相对效率。
[0021]本公开描述了一种改进硬件生产过程。在某些实施例中,可以在生产过程的较早阶段(例如,在第一阶段、管芯制造期间)处执行芯片个性化。例如,可以在管芯制造阶段期间执行唯一秘钥(芯片个性化)的加载。在管芯制造期间,可以在管芯的测试期间将唯一秘钥加载到芯片的PROM上。唯一秘钥的生成过程足够高效而允许在管芯测试期间加载秘钥。在某些实施例中,在管芯制造阶段期间输出从被加载到管芯上的秘钥导出的秘钥。
[0022]在该改进过程的一个变体中,如果以认证形式输出所导出的秘钥,则可以在生产过程的稍后阶段处执行所导出秘钥的输出。在另一变体中,可以在管芯制造之后的阶段处生成和输出唯一秘钥。在这些变体中,所导出的秘钥的认证可以允许安全应用提供商验证导出的密钥源自于在管芯制造阶段期间放置在管芯上的个性化电路。通过在过程的稍后阶段输出秘钥,与常规系统,管芯制造期间的个性化的效率基本上被保持在高水平。
[0023]在某些所述中,执行管芯制造的实体可以在管芯制造期间在管芯的PROM中加载用于多个管芯的签名秘钥(即,可以对于一批管芯而言都相同的签名秘钥)。如果在生产过程的管芯制造阶段之后输出所导出的秘钥,则可以用在管芯制造期间加载的签名秘钥对导出的秘钥进行签名。可以将使用签名秘钥创建的签名连同导出的秘钥一起输出。然后可以使用该输出的签名来验证导出的秘钥实际上源自在管芯制造步骤期间制造的电路。除签名秘钥之外,还可以使用其他机制/方案来确保输出的所导出密钥的真实性。
[0024]公开了一种用于建立用于包括管芯的芯片的秘钥的方法和用于执行所述方法的系统。从通信连接到芯片中的一次性可编程存储器的硬件随机数发生器,接收一系列的随机位,所述随机位系列形成随机位向量。该随机位向量被存储在芯片的一次性可编程存储器中,其中,用于芯片的秘钥是基于随机位向量的。在某些情况下,芯片是封装管芯。
[0025]在一个实施例中,响应于存储随机位向量,使用芯片上的推导模块,可以从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值。可以将所导出的值输出到被通信连接到芯片的外部接收模块以使得安全应用提供商能够基于存储在芯片的一次性可编程存储器中的随机位向量使用秘钥将可被芯片解密的消息加密。输出与随机位向量或其他内部中间值相比可能不那么安全敏感的导出值的特征允许诸如安全应用提供商的外部实体以相对安全的方式将消息传送至特定芯片。可以以各种方式来创建导出值。
[0026]在某些实施例中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括从芯片上的只读存储器读取与安全应用提供商相关联的公共秘钥,并在芯片中使用该公共秘钥将存储在一次性可编程存储器中的随机位向量加密,其中,所导出的值是基于加密随机位向量的。此特征旨在确保只有具有对应于公共秘钥的秘密秘钥的预定安全应用提供商才能将已加密随机位向量解密。
[0027]在某些实施例中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括向芯片上的伪随机数发生器提供存储在一次性可编程存储器中的随机位向量,以生成具有比随机位向量更长的位长度的扩展秘钥,从芯片上的只读存储器读取与安全应用提供商相关联的公共秘钥,并且在芯片中使用公共秘钥将扩展秘钥加密,其中,所导出的值是基于已加密扩展秘钥的。生成扩展秘钥的扩展模块可以被实现为一次性可编程或掩码只读存储器中的一系列指令的一部分。可以用硬件将扩展模块实现为芯片(的安全核)的一部分。扩展模块的特征是减少存储随机位向量所需的存储器的量(例如,使用一次性可编程存储器)。芯片上的只读存储器可以是以下各项中的至少一个:掩码只读存储器和一次性可编程只读存储器。
[0028]在某些实施例中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括使用芯片中的公共秘钥发生器,使用随机位向量作为秘密秘钥根据存储在一次性可编程只读存储器中的随机位向量生成公共秘钥,其中,所导出的值至少部分地基于公共秘钥。
[0029]在某些实施例中,利用类似或相同的扩展模块,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括向芯片上的伪随机数发生器提供存储在一次性可编程存储器中的随机位向量以生成具有比随机位向量更长的位长度的秘密秘钥,并且使用芯片上公共秘钥发生器来生成对应于生成的秘密秘钥的公共秘钥,其中,所导出的值至少部分地基于公共秘钥。
[0030]为了确保能够在芯片中高效地执行从秘密秘钥进行的公共秘钥生成,可以考虑生成公共秘钥所需的秘钥尺寸和时间的问题。在某些优选实施例中,使用根据椭圆曲线加密方案或ElGamal加密方案的秘钥生成方法来生成公共秘钥。
[0031]可以在芯片的一次性可编程只读存储器中用固件实现公共秘钥生成以及导出值的导出中的其他类似机制。
[0032]为了认证输出的导出值是真实的,在某些变体中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值还包括在芯片中使用与芯片相关联的对称签名秘钥对已加密随机位向量执行认证加密,以生成已认证秘钥,其中,所导出的值是基于认证已秘钥的。在某些变体中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值还包括在芯片中使用与芯片相关联的对称签名秘钥对生成的公共秘钥执行认证加密,以生成已认证秘钥,其中,所导出的值是基于已认证秘钥的。例如,已认证公共秘钥包括已加密数据和认证标签,其中,所述已加密数据和认证标签分别地可由具有与芯片相关联的对称签名秘钥的安全应用提供商来解密和验证。
[0033]在某些实施例中,从硬件随机数发生器生成的一系列随机位经由管芯测试机的测试探针可通信地被提供给芯片的管芯,其中,硬件随机数发生器在芯片外部。管芯测试机可以是被配置成在管芯制造期间测试芯片管芯的各种电路或向电路输入值的系统。管芯测试机可以包括测试探针。在某些其他实施例中,硬件随机数发生器是芯片的一部分。在又某些实施例中,硬件随机数发生器在芯片管芯的测试期间生成一系列随机位。在某些情况下,硬件随机数发生器响应于来自安全应用提供商的请求而被激活以生成一系列随机位。例如,安全应用提供商可以请求在芯片已经与消费者电子设备集成时请求导出值的输出。优选地,输出的导出值包括认证标签,使得可以跟踪该输出值回到管芯中的负责芯片的唯一性性质的电路。
[0034]虽然本公开使用芯片和消费者电子设备作为说明性示例,但本领域的技术人将理解的是该方法和设备可以用于要求唯一秘钥的其他类型的硬件设备。
[0035]在下文中将更详细地描述本发明的实施例。应理解的是相对于任何一个实施例所述的任何特征可以单独地或者与所述其他特征相组合地使用,并且还可以与任何其他实施例或任何其他实施例的任何组合相组合地使用。此外,在不脱离在所附权利要求中定义的本发明的范围的情况下可以采用上文未描述的等效物和修改。然而,应认识到的是不可以将公开的实施例理解为限制本发明的保护范围。
【专利附图】

【附图说明】
[0036]将通过参考图中所示的示例性实施例更详细地解释本发明的各方面,在所述附图中:
图1示出了用于使用芯片的唯一秘钥的示例性方案;
图2示出了用于使用芯片的唯一秘钥的另一示例性方案;
图3示出了使用改进方案用对称唯一秘钥个性化的说明性芯片;
图4示出了使用另一改进方案用不对称唯一秘钥对个性化的另一说明性芯片;
图5示出了用于在硬件部件中建立唯一性性质的说明性方法;以及 图6示出了用于在硬件部件中建立唯一性性质的另一说明性方法。
【具体实施方式】
[0037]在芯片个性化阶段期间,芯片制造商可以通过将唯一值编程到芯片的一次性可编程只读存储器中来将唯一秘钥加载到设备上。该唯一值可以是唯一地生成的。该唯一值至少部分地基于在一次性可编程只读存储器上编程的唯一值。该唯一秘钥是保密的,并且可以称为秘密秘钥或秘密模块秘钥。可以由芯片制造商来生成并保持用于唯一秘钥的唯一值列表。该唯一秘钥与用于芯片的唯一标识符相关联。可以由芯片制造商来保持用于芯片的唯一秘钥和唯一标识符的此关联。
[0038]在示例性图1中看到,芯片制造商将安全模块秘钥(SMK)连同模块标识符(MID)—起编程到芯片(被示为模块)的一次性可编程序只读存储器中。芯片制造商相应地保持用于其已经编程的每个芯片的〈MID,SMK>对列表。该对列表是保密的(优选地只有使用那些芯片的安全应用提供商知道)。该安全应用提供商然后接收〈MID,SMK>对列表,使得其可以用对应于芯片的MID的SMK对模块加载秘钥(MLK)进行加密。MLK可以用作会话秘钥以加载其他秘钥。另一秘钥的示例是在广播背景下使用的控制字。
[0039]在另一示例中,芯片制造商可以用公共密码秘钥对的秘密秘钥和与芯片相关联的MID对一次性可编程只读存储器进行编程。公钥密码允许公开公共密码秘钥对的MID和公共秘钥,并且关于芯片的公开信息使得安全应用提供商能够建立与芯片的安全通信。芯片制造商生成秘钥对列表或从安全应用提供商接收它。芯片制造商将秘钥对的秘密秘钥和关联MID加载到芯片上。在已加载秘密秘钥之后,芯片制造商可以删除秘密秘钥并公开关联公共秘钥和MID。安全应用提供商使用相应的公共秘钥来与芯片通信。
[0040]在示例性图2中看到,芯片(被示为模块)具有秘密模块秘钥(SMK)和相应的MID(未示出)。所述SMK充当用于此芯片的公共秘钥的秘密秘钥。与相应的MID相关联的公共秘钥可以被例如安全应用提供商用来将其他秘钥加载到芯片中。在一个实施例中,安全应用提供商将与安全应用提供商相关联的秘钥加载消息(KLM)和签名验证秘钥(SVK)传送至芯片。芯片使用‘V’模块来验证使用SVK (用于真实性)的KLM中的签名,并且使用‘D’模块将使用SMK (确保保密性)的KLM的内容解密。SVK和已解密秘钥被作为输入提供给哈希函数(H)以产生另外一个或多个秘钥(视为‘K’)。所述产生的一个或多个秘钥可以在密码模块CM中用来生成对由软件应用提供的询问的响应。在另一实施例中,可以使用在图2中看到的相同秘钥传输协议来在广播背景下传输控制字。
[0041]作为由芯片制造商来加载秘钥的替换,某些芯片使用密码协处理器来生成唯一RSA公钥密码秘钥对。密码协处理器可以在芯片外部。然而,生成RSA秘钥对要求相当多的处理时间。为此,在硬件生产的高吞吐量阶段期间不使用RSA秘钥对生成。相反,当正在针对特定消费者电子设备对芯片进行个性化/封装时,可以在稍后的阶段使用RSA秘钥对生成。
[0042]为了说明,描述了示例性RSA秘钥生成方法。通常,RSA秘钥生成使用概率性模块来生成两个随机的大的奇数,并进行测试以查看其是否是素数。如果其不是,则再次地生成两个新的随机的大的奇数,并且该过程持续至两个数字都是素数。例如,RSA秘钥生成可能花费3至7秒来执行以生成4096位秘钥对。由于RSA秘钥生成的缓慢,在芯片制造的早期阶段期间生成RSA秘钥将显著地降低硬件生产过程的生产效率和吞吐量。因此,如果使用RSA秘钥发生模块来将芯片个性化,则其在已经制造芯片之后以及在其正在针对特定消费者电子设备被封装的时间期间完成。
[0043]为了对在图1和图2中看到的系统加以改进,描述了用于建立唯一秘钥的替换方法。该替换方法不那么依赖于芯片制造商来跟踪唯一秘钥列表以及能够提供一种用于批量制造具有唯一性性质的芯片的高效方法。
[0044]在图1和2中所示的不那么优选方法中,芯片制造商在硬件生产过程的芯片个性化阶段期间加载用于每个芯片的唯一秘钥的唯一、秘密值(例如,到一次性可编程只读存储器上)。所述秘钥的加载要求制造商具有唯一秘钥的知识。因此,芯片制造商(或者更确切地,在芯片的PROM中将唯一秘钥编程的实体)变成安全应用的关键方面。
[0045]与其依赖于芯片制造商将唯一秘钥从预先生成唯一值列表(通常存储在集中式数据库中)加载到芯片上(其易于受到大规模秘钥窃取攻击),倒不如可以使用芯片中的硬件随机数发生器来在内部生成唯一数。在某些实施例中,硬件随机数发生器在管芯外部,但是其通过测试探针在管芯制造的测试/探测部分期间被通信连接到管芯。由随机数发生器生成的唯一数被用来确定芯片的唯一秘钥。所述唯一数是芯片本身所固有的,并且硬件随机数发生器提供芯片中的唯一性性质。在某种意义上,硬件随机数发生器允许“在运行中”生成唯一值,使得安全应用提供商不再必须在中央数据库中提供预先生成值的列表以加载到硬件部件上。
[0046]在优选实施例中,随机数发生器包括用于生成随机位向量的随机位发生器(RBG)。RBG将芯片中的随机的物理源放大以使得能够基于芯片中生成的随机位向量(供作为唯一秘钥之用)来生成唯一秘钥。以这种方式,保持了芯片的唯一性性质。生成的随机位向量随后被提供给一次性可编程只读存储器以用于存储。生成的唯一位向量在一次性可编程只读存储器中被存储/编程。可以从存储的随机位向量导出值。然后以导出秘钥值的形式将存储的随机位向量输出到外部实体。导出秘钥的输出使得能够(稍后)生成唯一地以特定芯片为目标的其他消息(即,其他消息可使用基于存储在一次性可编程只读存储器上的随机位向量的唯一秘钥来解密)。
[0047]由于形成用于唯一秘钥的基础的唯一值是在芯片内部生成和编程/存储的,所以管芯制造工过程是所有管芯所共有的。规避了改变用于每个芯片的硬件生产过程并从列或唯一值生成且加载用于每个芯片的不同、唯一秘钥的需要。并且,由于使得能够实现唯一性性质的电路跨所有管芯是相同的,所以生产过程的效率被保持在高水平。
[0048]相应地,优选实施例使得能够在保持芯片的唯一性性质的同时实现高效的生产过程。由于芯片制造商不再保持预先生成的秘密秘钥列表,所以秘密的窃取不再是问题。由于唯一秘钥初始化在管芯制造期间在芯片内部或“在运行中”发生,所以改善了系统的安全性。
[0049]在硬件生产过程的管芯制造阶段期间,电路和掩码ROM由其设计布局限定,该设计布局是用被用来制造芯片的生产掩码序列表示的。朝着硬件生产过程的稍后部分,将某些固定芯片功能和一次性可编程只读存储器激活并初始化。根据芯片的特定用途,某些功能被禁用,只留下一组预定电路在制造芯片上活动。该芯片然后被装运给客户,其可以是负责将芯片与消费者电子设备集成并对芯片进行个性化的设备制造商。
[0050]一般而言,本公开涉及一种用于使得芯片能够具有唯一性性质的改进方法。该方法使得能够在不使用唯一值的预先生成列表的情况下在多个硬件部件中建立唯一秘钥,从而降低大规模秘钥窃取攻击的风险。
[0051]在一个变体中,可以在硬件生产过程的管芯制造阶段期间使用该改进方法。当针对特定安全应用(或不止一个安全应用)批量制造芯片时,以相对高的速度制造和处理管芯。正在硬件生产过程处执行的操作必须是足够高效的,从而不会显著地减慢芯片制造的
生产速率。
[0052]在某些实施例中,可以使用随机位发生器在芯片上生成随机位向量。该随机位向量被提供给一次性可编程只读存储器,使得其能够被存储。芯片的唯一秘钥是基于生成的随机位向量的。然后从芯片中输出来自随机位向量的导出值,诸如已加密唯一秘钥或对应于该唯一秘钥的公共秘钥。在某些实施例中,优选地在切割晶片并将管芯提供给设备制造商以用于进一步个性化之前的生产过程的早期阶段期间执行唯一秘钥的生成的输出。通过建立用以在消费者电子设备的生产过程中较早地生成唯一秘钥的机制,在芯片被装运到下一制造商处以用于进一步封装之前为芯片建立唯一秘钥发生器,从而降低使秘钥暴露于其他方的风险。
[0053]具体地,被编程到一次性可编程只读存储器上的唯一值由嵌入芯片中的硬件随机数发生器的随机位发生器(RBG)在芯片中生成。RBG在物理芯片本身的生产中将随机波动放大,并且从RBG生成的秘钥保持芯片的唯一性性质。许多半导体构造或其他适当的基板显示出能够被放大以供RBG使用的此类物理随机性。
[0054]一般地,硬件随机数发生器是从物理过程生成随机数的装置。此类设备常常基于生成低电平、在统计上随机的“噪声”信号的微观现象,诸如热噪声或光电效应或其他量子现象。这些过程在理论上是完全不可预测的。基于量子的硬件随机数发生器通常由用以将物理现象的某个方面转换成电信号的换能器、用以将换能器的输出带入宏观领域的放大器及其他电子电路以及将输出转换成数位、常常是简单的二进制数字0或I (所谓的RBG)的某个类型的模数转换器。通过反复地对随机变化的信号进行采样,获得一系列随机数,并且其能够用来创建随机位向量。
[0055]硬件随机数发生器不同于伪随机数发生器(PRNG),其一般在软件中使用。这些PRNG使用确定性算法来产生数值序列。虽然这些伪随机序列通过了用于随机性的统计图案测试,但通过知道用来将其初始化的算法和条件(称为“种子”),能够预测输出。虽然这能够快速地生成大量的伪随机数据,但其易于遭受算法的密码分析。密码PRNG抵抗根据其输出来确定种子,但仍要求用于种子的少量高质量随机数据。
[0056]图3示出了使用改进方案用对称唯一秘钥个性化的说明性芯片。
[0057]芯片302意图与消费者电子设备300集成。说明性消费者电子设备300包括以下各项中的至少一个:读存取存储器320和闪速存储器340。芯片302可以包括安全存储器304、输入/输出(I/O)设备310、安全核306以及主中央处理单元(CPU) 330。
[0058]在安全存储器304中,随机位发生器308可以将芯片的物理噪声源放大以在芯片中产生随机数(或者也称为随机位向量)。该随机数被编程到一次性可编程只读存储器PROM312中以充当芯片302的唯一秘钥的基础,在图3中用‘K’来表示。生成的随机数可以经由芯片上的通信信道被提供给PROM 312。用以存储随机数的一次性可编程只读存储器的编程是不可逆的,并且可以在硬件生产过程的管芯制造阶段期间发生。被编程到一次性可编程只读存储器中的唯一数优选地只有芯片302的硬件和软件可访问。已编程数据仅对专用硬件模块或以与其他软件严格隔离的方式执行的固件可用。
[0059]为了将随机位发生器308用于此过程,可以临时地激活被配置成使用硬件随机数发生器来生成随机位的芯片的一部分以及PROM 312作为管芯制造过程的测试/探测部分的一部分。在某些替换变体中,随机位发生器可以在芯片302外部。所述外部随机位发生器可以被通信连接到探针,使得可以将由所述随机位发生器生成的随机位输入到管芯(即在管芯制造阶段的测试/探测部分期间)。形成随机位向量的一系列随机位可以在管芯制造过程的测试/探测部分期间被直接编程到管芯的PROM中。在这些替换变体中,被编程到PROM中的随机位向量可以随着正在处理管芯而“在运行中”生成,从而仍避免从唯一值的预先生成列表输入唯一值的需要。
[0060]在某些实施例中,被编程到PROM 312中的随机数充当芯片302的唯一秘钥(例如,作为芯片302的秘密秘钥)。在某些其他实施例中,芯片的唯一秘钥部分地基于被编程到PROM 312中的随机数。在硬件生产过程的稍后部分处(优选地仍在管芯制造阶段期间),由安全核306从PROM 312读取秘密秘钥K。从秘密秘钥K导出值,使得其与秘密秘钥K相比不那么安全敏感。在图3中所示的实施例中,所导出的值是加密秘密秘钥K。
[0061]使用加密模块318来将秘密秘钥K加密以产生加密秘钥{K}pk。例如,使用与外部方(例如,安全应用提供商)相关联的公共秘钥对秘密秘钥K进行加密。优选地,用硬件或以使得攻击者难以获得或修改正在被输入到加密操作518的秘密秘钥K的值的方式来执行加密操作518。加密操作518可以包括用于隐藏秘钥的任何适当的公钥密码操作,使得攻击者难以从已加密秘钥{K}pk获得秘密秘钥K。
[0062]在加密之后,将已加密秘钥{K} PK传送/输出到被配置成接收秘钥的外部秘钥接收模块。可以使输出数据与芯片的序号相关联。收集的数据(即,已加密秘钥)意图用于具有与用来将秘钥加密的PK相对应的秘密秘钥SK的安全应用提供商。同样地,预定安全应用提供商可以将{K}pk解密以获得K以用于后续安全操作。
[0063]在某些实施例中,由加密模块318按照公钥密码方案将秘密秘钥K加密。可以将在加密操作中使用的公共秘钥存储在掩码只读存储器(ROM) 314中或安全存储器304的一次性可编程只读存储器PROM 312中。可以为芯片制造商提供用于包含与安全应用程序提供商相关联的公共秘钥的RM 314或PROM存储器内容的掩码。为了允许芯片制造商对不止一个安全应用提供商使用同一掩码来生产芯片,该掩码ROM 314可以包括与各种安全应用开发者相关联的不止一个的公共秘钥,其中的一个能够被激活以用于特定芯片。
[0064]安全核306中的加密操作318优选地用硬件实现。例如,可以将一般IP核(例如,由IP Cores公司提供的DSP和安全IP核)用于流行的Rivest-Shamir-Adelman (RSA)公共密钥保密系统。所述核可以将明文、模数以及一般指数取做输入并在安全核306内产生已加密数据。在某些实施例中,RSA加密过程可以如一个平方和一个模加法(e = 3)那样简单。确立模数和指数(即,公共秘钥PK)意味着使用只具有明文作为输入的简单得多的电路是可能的。
[0065]通过将公钥密码与硬件随机数发生组合,通过激活安全核306的最小部分来生成并提取已加密秘密秘钥{K}pk是可能的。可以以高速度执行秘钥的生成和输出,使得可以在不牺牲显著的吞吐量和效率的情况下实现/建立芯片的唯一性性质。这还使外部秘钥接收模块能够集成到硬件生产线中以在硬件生产过程的管芯制造阶段期间快速地收集和存储由芯片生成的输出的导出值。
[0066]存储在掩码ROM 314中或一次性可编程只读存储器PROM 312中的公共秘钥的知识并不是敏感的。只有具有与用来将K加密的公共秘钥相对应的秘密秘钥SK的知识的一方(预定安全应用提供商)能够导出唯一秘钥K的值。
[0067]然后可以使用唯一秘钥K的知识来将安全核306与主CPU 330和/或外部设备(未示出)之间的其他消息加密。例如,可以使用该秘钥作为对称密钥方案的一部分来将消息M(例如,会话秘钥)加密以产生{M}k。然后当用户使用具有芯片请求的消费者电子设备来访问服务时,可以将{M}K提供给安全核316。可以应用解密操作316来获得消息M。可以使用具有将已加密消息解密的功能的任何密码函数来导出M。
[0068]类似于加密操作318,可以使用一般IP核来提供解密操作D 316。可以应用密码操作(例如,在安全核306中实现的其他期望操作)的其他层来进一步增加M中的内容的安全性。M的内容可以包括其他秘钥和/或用于导出与特定安全应用相关联的其他秘钥的信
肩、O
[0069]优选地,安全核306保持唯一秘钥K的保密性以确保不能由攻击者容易地获得唯一秘钥K。例如,使用应用软件来读取安全核306中的K的值对于黑客而言应是在计算上困难的。在某些实施例中,在硬件模块中或在包含专用微控制器的模块中或在与其他软件严格隔离地执行的固件模块中实现安全核306中的密码操作。
[0070]图4示出了使用另一改进方案用不对称秘钥个性化的另一说明性芯片。类似于图3,意图将芯片402与消费者电子设备400集成。消费者电子设备400可以包括读存取存储器RAM 420、闪速存储器440中的至少一个。芯片402可以包括安全存储器404、输入/输出(I/O)设备410、安全核406以及主中央处理单元(CPU) 430。
[0071]随机位发生器RBG 408可以在管芯制造过程期间生成随机位向量。在某些实施例中,用在管芯制造阶段期间生成的随机位向量对一次性可编程只读存储器PROM 412进行编程。生成的随机位向量在公钥密码系统中充当秘密秘钥。芯片的秘密秘钥可以基于存储在PROM 412中的随机位向量。在某些变体中,RBG 408可以在芯片外部,但是在管芯制造过程的测试/探测部分期间被用来馈送一系列随机位以形成被编程到PROM 412上的随机位向量。外部RBG 408可以在执行管芯制造的实体处经由管芯测试/探测机器的探针来通信连接到PROM 412。
[0072]PROM 412的尺寸常常是有限的,因此能够被编程的生成秘钥可以不具有期望的位长度以供直接作为秘密秘钥之用。PROM 412的有效面积限制限制了被编程到PROM 412上的随机位向量的尺寸。随机位向量的期望位长度取决于对其使用位向量的密码算法以及期望的安全量(例如,攻击者有多难从公共秘钥发现秘密秘钥的度量)。对于流行RSA密码系统而言,非对称秘钥对常常约为数千位(到2011年为止)。可以实现用于减小存储在PROM412中的随机位向量的尺寸的措施。
[0073]适合于在芯片制造过程期间使用的一个示例性密码系统是椭圆曲线密码(ECC)公钥系统。椭圆曲线密码安全是基于离散对数问题的。可以在素域或二进制域范围内定义椭圆曲线。由于硬件生产循环的高速要求,必须谨慎地考虑并选择将在硬件生产循环期间用于生成秘钥对的密码系统的类型。
[0074]在某些情况下,安全核不具有用于大型算术计算的专用硬件加速器,一方面,RSA秘钥生成是非常冗长的概率性过程,甚至在具有专用协处理器的智能卡上,秘钥生成可能花费几秒。在硬件生产术语中,尤其是在生产过程的管芯制造或较早阶段期间,几秒可能是非常昂贵的,并且对硬件生产过程的效率有害。另一方面,生成将在ECC方案中使用的公共/专用秘钥比RSA更简单直接。
[0075]另外,由于PROM的有效面积也是有限的,所以必须考虑适当的安全量所需的秘钥长度。如果使用RSA,则秘密秘钥的长度可以优选地为2048位长(512字节的一次性可编程存储器)。如果使用ECC,则椭圆曲线秘密秘钥可以优选地为256位长(32字节的一次性可编程存储器)。
[0076]ECC相比于RSA的优点是秘钥生成更快。另外,ECC使用比较旧的方案(RSA、DSA)所使用的那些密钥长度更小的秘钥长度来实现相同的期望安全水平。即使ECC加密和解密过程趋向于与RSA相比在计算上不那么高效,但其适合于从芯片向外输出秘钥的一次性步骤。
[0077]为了减小随机位向量的位长度n (例如,以节省PROM使用),可以使用安全存储器中的扩展功能450来将随机位向量转换成具有n+x的位长度的秘密秘钥SK。可以使用用硬件或固件实现的伪随机数发生器作为扩展函数450。可以使用扩展随机位向量作为秘密密钥,以作为公钥密码系统的一部分。换言之,该唯一秘钥是基于扩展随机位向量的。有效地,扩展函数450能够在n+x位内扩展n位的熵,从而减少需要在PROM 412中编程的信息量。例如,扩展函数450可以将唯一值K取作输入并将其用作用于伪随机数发生器(PRNG)的种子。PRNG能够生成长度n+x的位向量,并且使用来自PRNG的所得到的位向量来帮助生成SK。扩展功能450还可以在图3中所示的实施例中使用。
[0078]对于ECC密码系统而言,可以首先通过获得随机位向量c并计算d来创建公共秘钥,其中,d = (c mod (n-1)) + I。取得所得到的位向量并应用模函数,能够计算d。然后可以将所得到的用于d的值用作ECC方案的SK,并且可以使用(ECC)PK发生模块418以使用SK和群组参数的高效方式计算相应的PK。相反,RSA秘钥生成涉及到提出大的素数并重复地对其进行测试,并花费长得多的时间。因此,出于生成公共秘钥对的目的,ECC方案或类似方案相比于RSA秘钥生成而言是优选的。[0079]在使用ECC的实施例中,芯片402可以在内部随机地生成秘密密钥,并且根据秘密秘钥和群组参数来相当高效地计算公共秘钥(例如,通过计算Q = dG),即使在管芯制造期间。秘钥生成过程避免了使芯片制造商提供预先生成的唯一秘钥作为输入并在管芯个性化阶段期间将那些秘密值编程到芯片上的问题。另外,芯片上秘钥生成过程在硬件生产过程的高速/高吞吐量阶段期间将足够高效地发生。
[0080]替换地,EIGamal (基于离散对数的密码系统)公钥密码系统还可以提供用以从用于秘密秘钥的随机生成值导出公共秘钥的高效方案。使用RBG 408且可选地用扩展模块450,用于秘密秘钥的随机生成值也可以是在制造期间在芯片上生成的。
[0081]如所述,可以由(ECC) PK发生模块418来执行公共秘钥的生成。为了促进从秘密秘钥进行的芯片上公共秘钥生成,优选地在硬件生产过程的芯片初始化阶段期间,PK发生模块418可以是芯片上硬件模块,或者在特定条件下运行的软件模块,并且使用存储在掩码ROM 414中或一次性可编程只读存储器PROM 312中的固件代码。对秘密秘钥的软件访问优选地局限于此。例如可以临时地激活芯片上的适当模块以便执行PK生成。
[0082]在秘钥对生成之后,可以优选地在管芯制造期间将公共秘钥输出到被配置成接收输出的公共秘钥的外部模块。公共秘钥充当与唯一秘钥相比不那么安全敏感的唯一秘钥的导出值(即,随机位向量或扩展随机位向量)。外部模块被配置成接收与内部生成的SK相对应的公共秘钥PK。可以将外部秘钥接收模块配置成使公共秘钥与对应于芯片的识别数据CID相关联,并且将其作为<PK,CID>对存储在非易失性存储器中。随后可以将收集的秘钥提供给适当的安全应用提供商。然后外部模块能够随后向安全应用提供商提供PK。同样地,安全应用提供商能够构造目的地是承载具有相应SK的芯片的预定消费者电子设备的消息。
[0083]用PK的知识,安全应用提供商然后能够通过用公共秘钥PK将消息M加密来传送已加密消息{M}pk,目的地是具有相应秘密秘钥的芯片。PK的输出有效地使得安全应用开发者能够将可被具有相应SK的芯片解密的消息加密。芯片然后可以例如使用解密模块416将已加密消息{M}PK解密,以获得M。M可以包括用于安全应用的另外的秘钥。例如,M可以包括用于加载其他秘钥的会话秘钥。
[0084]图5示出了用于在硬件部件中建立唯一性性质的说明性方法。特别地,该说明性方法一般地描述用于使得能够生产具有唯一性性质的硬件部件的步骤。换言之,硬件部件装配有能够用作唯一秘钥的唯一值。唯一秘钥使得安全应用开发者能够以相对安全的方式与硬件部件通信。
[0085]一般地,如在本文中的改进方法和系统中所述的芯片的唯一性性质是通过生成随机位向量502 (例如,在硬件生产循环期间)并使得随机位向量被加载到PROM (称为方框504)中、使得从该随机位向量导出值(例如,公共秘钥的加密或生成,称为方框506)而建立的。然后将所导出的值输出到接收模块(例如,方框508),使得安全应用提供商能够将其用来向特定芯片传送消息。常规方法通常使用来自中央数据库的一组预先生成的一组秘密秘钥。如果入侵者或内部人员窃取了该中央数据库的内容,那些常规方法冒着大规模秘钥窃取攻击的风险。为了解决该问题,本文所述的方法和系统使得以确保只有硬件部件知道秘密秘钥的方式“在运行中”或在芯片内部生成秘密秘钥(视为方框502)。换言之,用以生产具有唯一性性质的芯片的公开解决方案不再要求用以存储与每个硬件部件相关联的秘密秘钥的中央数据库。
[0086]在某些变体中,使用随机位发生器(视为方框502)来生成随机位向量可以在管芯制造过程的测试/探测部分期间发生。在单个实体的设施内执行生成、加载、导出和输出步骤的某些实施例中,增加过程的完整性(例如,该过程被包含在一个实体的设施内)。在管芯制造过程期间生成随机位向量的这些变体中,可以将随机位发生器内置为管芯的电路的一部分。如果RBG被内置在芯片上,则可以将RBG临时地激活/供电以生成随机位向量,并且然后将该随机位向量存储到管芯上的PR0M。相应地,管芯以固有方式在内部生成随机位向量以便用作秘密秘钥的基础,使得外部源难以获得唯一秘钥。
[0087]替换地,随机位发生器可以在管芯外部,但是被通信连接到管芯测试机器的测试探针。在管芯制造过程的测试/探测部分期间,可以将测试探针配置成输入由外部随机位发生器生成的一系列随机位。由外部RBG生成的一系列随机位可以形成随机位向量。探针相应地可以将RBG的输出信号通信连接并将输出的随机位直接编程到管芯上的PROM中。在此替换方案中,“在运行中”生成随机位向量。此替换方案也不要求随机值的预先生成列表的中央数据库。
[0088]使用本文所述方法,可以从随机位向量导出值,并且可以从硬件部件向外输出所导出的值。在某些变体中,在管芯制造过程的测试/探测部分期间从硬件部件向外导出该值。替换地,在这些变体中,如果不存在其他充分的认证方法,可以在值被编程在PROM中之后不久,优选地在管芯被提供给硬件生产循环中的另一实体之前输出从随机位向量导出的值。
[0089]在某些其他变体中,其中全部在管芯制造过程期间的生成随机位向量的选项、将该随机位向量加载到PROM上、从随机位向量导出值和/或输出导出值是不可用的,可以在管芯制造之后执行该方法的至少一部分。图6示出了用于在硬件部件中建立唯一性性质的另一说明性方法。
[0090]在管芯制造阶段的测试/探测阶段期间生成随机位向量的选项不可用的情况下,可以在生产循环的稍后阶段处执行随机位向量的生成(步骤602),条件是某种形式的认证步骤(步骤608)是可用的。优选地,在硬件部件中实现可选认证步骤608以使得安全应用提供商能够将输出的导出值追溯至负责管芯制造的实体。认证步骤608可以包括认证加密。
[0091]认证步骤608可以使得安全应用提供商能够验证输出值真正地与负责在负责随机数发生的芯片上创建电路(步骤602)、将该值编程到PROM中(步骤604)、值的导出(步骤606)以及导出值的输出(步骤610)的实体相关联。
[0092]一个示例性认证方法可以包括对称认证。除使得芯片上的可运行RBG在内部生成随机位向量之外,可以在管芯制造过程期间用对称密钥将管芯编程。在某些实施例中,一批管芯可以共享相同对称秘钥。假设管芯由已授权/可信实体制造,对称密钥(管芯制造实体和/或安全应用提供商知道)使得芯片能够生成能够被追溯到管芯制造过程的签名。换言之,此认证方法可以防止由未授权实体生成输出值。
[0093]适合于实现该认证方法的密码系统的示例包括3DES或AES。为了说明,在不失一般性的情况下,描述了使用ECC和AES的组合在硬件部件中建立唯一秘钥的示例。在管芯制造期间,可以在管芯制造过程的测试/探测阶段期间将对称签名秘钥(例如,128位对称签名秘钥)编程到PROM上。该对称签名秘钥与管芯的唯一序号(例如,128位序号)配对。另夕卜,管芯可以包括用于生成随机位向量的RBG。此外,管芯可以包括用于将来自RBG的输出随机位向量加载到PROM中的所需电路以及用于从PROM中的随机位向量导出值并输出所导出的值的电路。在这一点,可以由另一实体来处理管芯,诸如负责芯片初始化或芯片个性化的实体,其中,管芯被放置在其他材料中以用于进一步处理。
[0094]可能在不同的生产实体的情况下,可以为包含管芯的芯片在芯片上装配随机位发生器。在一个实施例中,激活所述随机位发生器以生成随机位向量。该随机位向量可以是256位长,或者短于256位长(如果使用扩展函数来使用PRNG将较短长度的随机位向量扩展成较长的位向量)。唯一秘钥是基于随机位向量的。芯片然后通过应用与预定义发生器点和所生成的秘密对称密钥的点乘法(ECC方法)基于唯一秘钥(即使用唯一秘钥作为秘钥对之中的秘密秘钥)来生成公共秘钥。生成的公共秘钥具有两个分量(X,Y)且每个是256位。该芯片可以在Galois计数模式下用AES来执行认证加密操作以使用在管芯制造期间在芯片中编程的对称签名秘钥作为加密秘钥并使用序号作为计数器的初始值来将512位公共秘钥对加密。此说明性加密方法可以产生具有128位认证标签T的512位加密公共秘钥(X’,Y’)。该芯片然后可以将已加密和已签名公共秘钥(X’,Y’,T)及其关联序号输出到接收部件。与接收部件相关联的接收实体然后可以使用序号来确定关联对称签名秘钥。使用对称签名秘钥,接收实体(例如,安全应用提供商)可以使用同一 AES Galois计数器模式来将公共秘钥(X,Y)解密并验证认证标签T。如果正确的话,系统可以将公共秘钥(X,Y)存储在数据库中,并且使公共秘钥(X,Y)与芯片的序号相关联。随后,接收实体可以使用公共秘钥来将消息加密到芯片。
[0095]在某些实施例中,可以在消费者电子设备的初始启动期间应用同一方案,在内部生成随机数,并且将其以受保护形式存储或在安全存储器中。与其在硬件生产过程期间初始化,倒不如可以在芯片第一次被启动时建立唯一秘钥。然后将随机位向量或扩展随机位向量的导出值(即,唯一秘钥)或从随机值导出的公共秘钥经由通信信道输出至被配置成接收输出值的实体(即,安全应用提供商)。以这种方式,可以在仍在初始启动时间充分地保持唯一性性质的同时批量制造消费者电子设备和芯片,条件是使用适当的方法(例如,按照公共秘钥签名方案使用对称签名秘钥或不对称签名秘钥的签名)对输出值进行认证。如果使用不对称秘钥,则使用签名秘钥来计算用于输出数据的签名,并且用该输出数据包括签名。在稍后阶段,安全应用提供商使用签名验证秘钥(不同于签名秘钥)来检查包括在输出数据中的签名。
[0096]本发明的一个实施例可以实现为程序产品以便与计算机系统一起使用。该程序产品的一个或多个程序定义实施例的功能(包括本文所述方法),并且能够被包含在多种计算机可读存储媒体上。该计算机可读存储介质可以是非瞬态存储介质。说明性计算机可读存储介质包括但不限于:(i)非可写存储媒体(例如,计算机内的只读存储器件,诸如可被CD-ROM驱动器读取的CD-ROM磁盘、ROM芯片或任何类型的固态非易失性半导体存储器),信息被永久地存储在其上面;以及(ii)可写存储媒体(例如,磁盘驱动器内的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器、闪速存储器),可变信息被存储在其上面。
[0097]应理解的是相对于任何一个实施例所述的任何特征可以单独地或者与所述其他特征相组合地使用,并且还可以与任何其他实施例或任何其他实施例的任何组合相组合地使用。此外,本发明不限于上述实施例,其可以在所附权利要求范围内改变。
【权利要求】
1.一种用于建立用于包括管芯的芯片的秘钥的方法,所述方法包括: 从被通信连接到芯片中的一次性可编程存储器的硬件随机数发生器接收一系列随机位,该随机位系列形成随机位向量;以及 将该机位向量存储在芯片的一次性可编程存储器中,其中,用于芯片的秘钥是基于随机位向量的。
2.权利要求1的方法,还包括: 响应于存储随机位向量,使用芯片上的推导模块,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值;以及 将所导出的值输出到被通信连接到芯片的外部接收模块以使得安全应用提供商能够基于存储在芯片的一次性可编程存储器中的随机位向量使用秘钥将可被芯片解密的消息加密。
3.权利要求2的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括: 从芯片上的只读存储器读取与安全应用提供商相关联的公共秘钥;以及 在芯片中,使用公共秘钥加密存储在一次性可编程存储器中的随机位向量加密,其中,所导出的值是基于已加密随机位向量的。
4.权利要求2的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括: 将存储在一次性可编程存储器中的随机位向量提供给芯片上的伪随机数发生器以生成具有比随机位向量更长的位长度的扩展秘钥; 从芯片上的只读存储器读取与安全应用提供商相关联的公共秘钥;以及 在芯片中使用公共秘钥将扩展秘钥加密,其中,所导出的值是基于已加密扩展秘钥的。
5.权利要求3或4中的任一项的方法,其中,芯片上的只读存储器是以下各项中的至少一个:掩码只读存储器和一次性可编程只读存储器。
6.权利要求2的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括: 使用芯片中的公共秘钥发生器,使用随机位向量作为秘密秘钥从存储在一次性可编程只读存储器中的随机位向量生成公共秘钥,其中,所导出的值至少部分地基于该公共秘钥。
7.权利要求2的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值包括: 将存储在一次性可编程存储器中的随机位向量提供给芯片上的伪随机数发生器以生成具有比随机位向量更长的位长度的秘密秘钥; 使用芯片上的公共秘钥发生器来生成对应于生成的秘密秘钥的公共秘钥,其中,所导出的值至少部分地基于公共秘钥。
8.根据权利要求6或7所述的方法,其中,生成公共秘钥包括使用根据椭圆曲线密码方案或ElGamal加密方案的秘钥生成法。
9.根据权利要求3—5中的任一项所述的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值还包括: 在芯片中使用与芯片相关联的对称签名秘钥对已加密随机位向量执行认证加密,其中,所导出的值是基于认证秘钥的。
10.根据权利要求6—8中的任一项所述的方法,其中,从存储在芯片的一次性可编程存储器中的随机位向量导出值以生成导出的值还包括: 在芯片中使用与芯片相关联的对称签名秘钥对生成的公共秘钥执行认证加密,其中,所导出的值是基于认证秘钥的。
11.根据权利要求9或10所述的方法,其中,所述已认证公共秘钥包括已加密数据和认证标签,其中,所述已加密数据和认证标签分别地可由具有与芯片相关联的对称签名秘钥的安全应用提供商来解密和验证。
12.根据上述权利要求中的任一项所述的方法,其中,从硬件随机数发生器生成的一系列随机位经由管芯测试机的测试探针可通信地被提供给芯片的管芯,其中,硬件随机数发生器在芯片外部。
13.根据权利要求1一11中的任一项所述的方法,其中,所述硬件随机数发生器是芯片的一部分。
14.根据上述权利要求中的任一项所述的方法,其中,所述硬件随机数发生器在芯片管芯的测试期间生成一系列随机位。
15.根据权利要求1一13中的任一项所述的方法,其至,所述硬件随机数发生器响应于来自安全应用提供商的请求`而被激活以生成一系列随机位。
【文档编号】G06F21/72GK103562922SQ201280026300
【公开日】2014年2月5日 申请日期:2012年3月7日 优先权日:2011年3月30日
【发明者】A.E.范福雷斯特, E.贝内德蒂, G.J.德克, S.B.徐 申请人:耶德托公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1