用于智能卡芯片个性化的方法和系统的制作方法

文档序号:8435863阅读:467来源:国知局
用于智能卡芯片个性化的方法和系统的制作方法
【技术领域】
[0001]本发明涉及在独特的秘密和应用代码被植入期间智能卡芯片个性化的领域。特别地,个性化的步骤在受控的条件下执行以阻止在该领域复制和重新编程智能卡。
【背景技术】
[0002]安全芯片主要用在制造智能卡、安全模块、识别设备和其他用在需要高安全级别的应用中的集成电路里。
[0003]文献W02010/130709A1公开了一种通过测试设备用于认证对安全芯片的访问的方法。一旦测试设备由该芯片认证,即,成功认证已经被由测试设备和芯片之间的控制数据交换做出,在硬件和软件功能和/或芯片上执行的程序上执行不同的操作测试或模拟。依照用于芯片所预见的应用需求,测试设备也可以通过使能、禁用或编程特征来包括芯片配置或自定义的功能。依照优选实施例,本方法的一个优点是最小化测试设备和安全芯片之间的数据转换。响应于由芯片产生的挑战,在认证测试设备在所述芯片上执行测试之前,测试设备发送将由芯片分析和验证的密文。
[0004]文献EP1441313在电子芯片和包括从电子芯片中的输入参数计算认证值的应用之间处理保护硬连线电子逻辑芯片的不对称加密方法以防止欺诈。该方法包括步骤:由芯片生成交易特定的随机数;在交易之前向应用发送由应用计算的第一参数,其由数学关系链接至随机数,并且被存储在芯片的数据存储器中;借助一系列函数由芯片计算构成认证值的第二参数,其中,函数的输入参数至少是交易特定的随机数以及属于不对称密钥对的私钥;发送认证值到应用,并且借助验证函数验证所述认证值,其输入参数仅由至少包括公钥的公共参数组成。
[0005]文献EP1983466描述了用于芯片上系统(SoC)的安全认证方法和装置。SoC可以使能认证尝试获得一个功能或系统的访问的外部实体。SoC和认证的外部实体在认证尝试前,其每个可以知晓隐藏数据并且也可以在认证处理期间通信数据。使用类似数据,SoC和外部实体能够生成相同的密码并且获取系统访问。密码可以以两种方式唯一,例如:每个操作和每个SoC设备。在SoC上的随机数生成器可以使得密码对于认证处理的每个迭代改变。SoC的每个实例有其自己的密码字以允许密码对于每个设备是唯一的。
[0006]在制造后,智能卡集成电路或芯片需要被个性化以植入唯一的密码并且以非常安全的方式载入应用代码以阻止复制或重新编程由这些芯片制作的智能卡。经典的解决方案是基于专用计算机站,其允许受训人员编程个性化设施(室内或外部)处的这些卡。这个方法有许多薄弱的方面并且要克服这些问题需要考虑下列需求:
[0007]a) 一旦晶片被切割以及该芯片被打包,使个性化仅仅在晶片级可能并且极难用物理方式重新激活。
[0008]b)个性化激活不应该仅仅依赖于单个密码或能由个性化设施处的工作人员掌握(和泄漏)的软件包。
[0009]c)为了复制要在智能卡上实施的芯片,使重现个性化序列不可能。
[0010]d)阻止智能卡芯片完整的逆向工程,其允许攻击者重新生成该芯片个性化。

【发明内容】

[0011]本发明的目的是为了最大化满足以上提及的关于智能卡芯片个性化的需求以及为了克服现有技术解决方案的缺点。
[0012]该目的通过用于个性化至少一个芯片的方法而获得,芯片将被集成至智能卡内,包括与连接至芯片的(现场可编程门阵列)FPGA设备关联的测试仪,该芯片是包括多个芯片的排列的晶片的一部分,包括步骤:
[0013]-由测试仪发送第一密码至FPGA设备,所述第一密码被永久地存储在测试仪的存储器中,
[0014]-由FPGA设备发送命令至芯片以初始化测试模式激活的序列,
[0015]-由芯片发送信号至安置在晶片上的一次性硬件模块,所述硬件模块返回指示晶片上存在芯片的响应,
[0016]-由芯片生成并发送一个随机数至FPGA设备,
[0017]-由FPGA设备通过使用由随机数和第一密码参数化的加密算法加密第二密码,获取第一密文,
[0018]-由FPGA设备发送第一密文至芯片,
[0019]-由芯片通过使用由随机数和第一密码参数化的逆加密算法解密第一密文获取的结果上执行布尔函数来确定第二密文,
[0020]-由芯片比较第二密文和通过在临时存储在芯片上的第二密码上执行布尔函数所获取的结果,
[0021]-如果第二密文对应于由在第二密码上执行布尔函数获取的结果,使能测试模式序列,
[0022]-由芯片发送响应消息至FPGA设备,
[0023]-如果消息包括一个肯定的响应,则由FPGA设备执行芯片的个性化。
[0024]本发明还涉及一种被配置用于个性化至少一个芯片的系统,芯片将被集成至智能卡内,包括与连接至芯片的(现场可编程门阵列)FPGA设备关联的测试仪,该芯片是包括多个芯片的排列和一次性的硬件模块的晶片的一部分,特征在于:
[0025]-测试仪被配置用于发送第一密码至FPGA设备,所述第一密码被永久地存储在测试仪的存储器中,
[0026]-FPGA设备被配置用于发送命令至芯片以初始化测试模式激活的序列,使用由从芯片接收的随机数和第一密码参数化的加密算法加密第二密码,以获取第一密文并将其发送至芯片,
[0027]-一次性硬件模块被配置用于从芯片接收信号并且返回表示晶片上存在芯片的响应,
[0028]-芯片被配置用于通过使用由随机数和第一密码参数化的逆加密算法解密第一密文获取的结果上执行布尔函数来确定第二密文,并且比较第二密文和通过在临时存储在芯片上的第二密码上执行布尔函数所获取的计算结果,
[0029]-只有通过第二密文和计算的结果之间的成功比较使能芯片的测试模式时,FPGA设备还被配置用于执行芯片的个性化。
[0030]通常,个性化仅仅当智能卡芯片处于特殊状态才有可能,称为“测试模式”。因此该解决方案主要是,但不仅仅是,专注于使测试模式的激活非常安全。
[0031]测试模式激活保护基于几个安全特征,即:
[0032]-基于在文档W02010/130709A1中描述的方法,利用不可逆挑战-响应协议,
[0033]-利用硬件模块以校验晶片上存在芯片。这个硬件模块在晶片切除后被破坏,
[0034]-利用植入FPGA设备的电子板,被称为“晶片盒”,其在测试仪装备内被机械地和电子地集成,
[0035]-在智能卡芯片中实施真随机生成器(TrueRandom Number Generator,TRNG),其使个性化交易统计上唯一。
【附图说明】
[0036]通过下述详细描述本发明将被更容易地理解,其参照作为非限制示例所给出的附图。
[0037]图1示出了表示本发明系统的方框示意图,包括与连接至晶片的至少一个芯片的FPGA设备关联的测试仪。在个性化之前,芯片以测试模式通过由测试仪和FPGA设备执行的校验设置以及安全数据交换来被设定。
【具体实施方式】
[0038]图1所示出的系统包括关联至也被称为“晶片盒”的FPGA设备WB的测试仪T,其配置文件以已知方法加密以阻止复制。测试模式激活和个性化处理优选地在晶片级执行,即,芯片被排列在用于其制造的晶片上。优选在晶片上实现的硬件模块腿,在FPGA设备WB和晶片W上的芯片IC之间扮演接口的角色并且在测试模式初始化后负责验证晶片W上芯片IC的存在。当芯片从晶片被切除或集成在现场服务的智能卡中时,这个校验阻止操作或尝试修改个性化参数。为了分开所有芯片,在晶片切除期间硬件模块HM在个性化处理结束时被销毁。除了这种物理安全方式,软件和通信安全方式也被用于保护敏感的个性化处理。物理和软件方式的组合阻止仅仅拥有必要的软件程序而与一次性物理硬件电路没有任何链接的第三方的个性化。
[0039]在个性化处理的开始,测试仪T以及FPGA设备和芯片IC开机。测试仪T读取并发送从测试仪T永久存储器取得的第一密码SI至FPGA设备WB。为了初始化以测试模式进入芯片,FPGA设备发送命令C至芯片1C,其发送一个信号s至安置在晶片W上的硬件模块HM。硬件模块HM返回一个响应r至芯片以指示其在晶片上存在,即,并非孤立或集成在连接至FPGA设备WB的设备中。
[0040]如果芯片IC没有从硬件模块HM接收响应r,与硬件模块HM的连接可能是有缺陷的或者芯片IC从晶片W分离。FPGA设备WB分别与硬件模块HM通信的测试仪T停止处理并且可以显示一个错误信息。优选地,状态指示符ST(晶片上的芯片/晶片外的芯片)在测试模式序列激活持续之前可以被报告给FPGA设备WB。这个状态指示符ST可以被包括在对初始化命令C的响应中。
[0041]在与硬件模块HM成功通信后,芯片IC生成一个随机数R并且将其转送至FPGA设备WB。随机数R优选是一个真随机数,即,用硬件真随机数生成器(True Random NumberGenerator,TRNG)产生以改进结果的统计唯一"性。
[0042]有两种原理方法用于生成随机数:第一种方法是基于某些物理现象测量方法(例如半导体元件中的噪音),其被期待是随机的并且随后补偿在测量过程中可能的偏差。第二种方法使用计算算法,其可以产生明显随机结果的长序列,其实际上完全由一个较短的初始化值确定,已知为种子或关键值。生成器的后一种类型通常被称为伪随机数字生成器。由于其输出是固有可预测的,所以一种仅基于确定性计算的“随机数生成器”不能被当作是“真”随机数字生成器。
[0043]FPGA设备WB通过使用由随机数R和第一密码SI参数化的加密算法E加密第二密码S2以获取发送给芯片IC的第一密文Ml = Ee
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1