对由测试装置对安全芯片的访问进行认证的方法

文档序号:6349193阅读:137来源:国知局
专利名称:对由测试装置对安全芯片的访问进行认证的方法
技术领域
本发明涉及通过防止对存储在安全芯片的存储器中的数据的未经授权操作,特别地利用测试装置保护对安全芯片的访问的领域。
背景技术
安全芯片主要用于智能卡、安全模块、识别装置和在需要高安全级别的应用中使用的其它集成电路的制造。可以通过响应于由装置或者远程单元发送的询问(challenge)优选地使用在用户终端单元上引入的一次性口令,来授权对该装置或者远程单元的安全访问。例如,文件 W02005125078描述一种用于在中心位置和至少一个客户站之间安全地通信的方法,包括下述步骤产生初始秘密并把其存储在中心位置;产生一组一次性口令,每个一次性口令与一索引关联;把所述一组一次性口令的子集存储在客户站中;从中心位置向客户站发送询问,其中所述询问是所述一组一次性口令的所述子集的索引;从客户站向中心位置发送与该索引关联的一次性口令。文件EP 1392052描述了用于控制对装置功能的访问的方法,包括下述步骤接收启用装置的特征的请求;确定该特征是否被禁用;确定通过授权是否能够启用该特征;确定请求者是否被授权启用装置的该特征。当装置和请求者满足所有条件时,能够启用该特征。通过以下步骤可获得所述授权由装置产生询问值,存储询问值,把询问值发送给请求者,由请求者对询问值加密,把加密的询问值发送回装置,由装置对加密的询问值解密,并比较存储的询问值和解密的询问值。如果这两个询问值相等,则给予启用所述特征的授权。文件EP 1441313涉及一种保护硬连线电子逻辑芯片免受电子芯片和应用之间的交易中的欺诈的非对称密码方法,该方法包括从电子芯片中的输入参数计算认证值。该方法包括下述步骤由芯片产生特定于交易的随机数;向所述应用发送在交易之前由所述应用计算并且通过数学关系联系到该随机数并且存储在芯片的数据存储器中的第一参数;由芯片借助其输入参数至少为该特定于交易的随机数和属于非对称密钥对的私钥的序列函数,计算构成认证值的第二参数;把认证值发送给所述应用,并借助其输入参数仅包括至少包含公钥的公共参数的验证函数,来验证所述认证值。文件EP 198;3466描述了用于片上系统(system on chip,SoC)的安全认证的方法和设备。SoC可实现试图访问功能或者系统的外部实体的认证。SoC和授权的外部实体中均可在认证尝试之前知道隐藏的数据,也可以在认证处理期间传送数据。使用同样的数据, SoC和外部实体能够产生相同的口令并实现系统访问。口令可以按照两种方式是唯一的,例如针对每个操作是唯一的以及针对每个SoC装置是唯一的。SoC上的随机数产生器可以使口令对于认证处理的每次重复而改变。SoC的每个实例具有它自己的使口令针对每个装置唯一的秘密字。通过反向工程或篡改被保护芯片的密钥或者通过监听或窃听访问装置和芯片之间的通信,现有技术的访问认证方法的安全性可能受到危害。事实上,几种已知的攻击(诸如,强力攻击、信号分析、芯片的物理检查等)允许发现加密密钥并且推断出询问或者用于创建一次性口令的其它参数。在一些其它情况下,装置认证处理创建从装置向芯片发送的数据集以及反过来从芯片向装置发送的数据集,这些数据集当被第三方装置捕获并分析时可能暴露重要的安全参数。

发明内容
本发明的目的在于通过使用快速、高效并且防攻击的处理,以最高安全级别对由测试装置对安全芯片的访问进行认证。例如,篡改来自测试装置或者来自芯片的密钥将不会给出充分结果以获得对芯片的访问。另外,在认证期间捕获的数据集将不会暴露对于模拟对芯片的访问授权有用的任何密钥或者密文。这个目的通过一种对由测试装置对安全芯片的访问进行认证的方法来实现,该测试装置存储至少一个公共密钥和一个测试密钥,该安全芯片存储相同的公共密钥和通过对测试密钥应用密码函数而得到的参考摘要(reference digest),该方法包括下述步骤-由测试装置接收由安全芯片产生的询问,-由测试装置通过应用双向数学运算来组合接收的询问与测试密钥,利用公共密钥对结果加密,获得密文,-把密文发送到安全芯片,-由安全芯片利用公共密钥对密文解密,通过与询问一起应用先前由测试装置使用的数学运算的逆运算获得代表测试密钥的映像密钥,-利用密码单向函数计算映像密钥的预期摘要,-通过比较预期摘要与所述参考摘要来验证有效性,-如果映像密钥的摘要和参考摘要之间的比较的结果是肯定的,则由测试装置在测试模式下访问安全芯片。在投放市场之前或者为了维护的目的,利用以安全模式访问安全芯片的测试装置测试安全芯片的各种功能。一旦对于芯片认证了测试装置,即通过测试装置和芯片之间的控制数据交换已进行了成功验证,则对芯片中实现的硬件和软件功能和/或程序执行不同的操作测试或模拟。通过根据对于芯片预见到的应用要求启用、禁用特征或者对特征编程, 测试装置还能够包括芯片的配置或定制的功能。本发明提供了一种阻止芯片的侵入攻击或者阻止诸如探听(snooping)的攻击但不阻止组合在一起的两种攻击的方法。侵入攻击是对芯片的物理攻击,芯片将会被破坏并留下可检测的痕迹。这种攻击允许访问芯片内的信号,通过反向工程提取数据,利用显微镜进行观测以及使用诸如激光切割机或钻头、探针和电子束测试器的工具。探听是非破坏性数据挖掘技术,该技术不必在数据发送到外部装置期间提供对数据的未经授权访问。这种技术也可包括通过经由例如网络远程监测计算机活动对数据变化的观测。根据一优选实现方式,该方法的一个优点是使测试装置和安全芯片之间的数据传输最小化。响应于由芯片产生的询问,测试装置发送密文,在授权测试装置对所述芯片执行测试之前密文将会被芯片分析并验证。
询问可通过芯片中集成的基于硬件的产生器随机地产生。在一个实施例中,芯片可存储仅可使用一次的询问的列表。在另一实施例中,询问可具有如下形式仅使用一次的数值、或者通过从预定义值使计数器单调地递增或递减而产生的随机值(nonce)。假设单向函数是已知的,由第三方装置捕获询问和/或密文不会使得通过与存储在芯片中的摘要进行比较而得到验证所需的测试密钥。事实上,通过利用公共密钥对询问与测试密钥的组合的结果进行加密而获得的密文需要分别知道公共密钥、测试密钥和所述双向数学运算或函数、和它的逆。如果通过篡改安全芯片能够获得公共密钥,则再现密文将会相当困难,因为这需要知道测试密钥。与公共密钥相反,测试密钥未存储在安全芯片的非易失性存储器中。


利用下面参照作为非限制性例子给出的附图的详细描述,将会更好地理解本发明。图1 显示代表连接到安全芯片的测试装置及其各个存储的密钥、摘要和函数的框图。由测试装置响应于接收的询问而发送的密文允许访问安全芯片。图2显示包括作为对测试的请求和响应消息在测试装置和安全芯片之间流动的附加数据的图1的框图。图3显示包括均具有索引的公共密钥和另外的测试的图1的框图。图4显示使用对参考明文数据集加密的映像测试密钥的摘要计算处理的框图,所得到的映像密码数据集与参考密码数据集进行比较。
具体实施例方式如图1中所示的测试装置TD在非易失性存储器中存储识别数据,所述识别数据包括测试密钥TK、公共密钥CK和能够组合输入的数据与测试密钥TK的程序。该程序包括与由测试装置TD为了测试目的从连接到测试装置TD的安全芯片SC接收的询问R —起应用的双向(具有反向)、双射数学运算或者函数op。如果函数既是单射的(没有两个值映射到同一值)又是满射的(对于映像域的每个元素,存在开始域的某一元素映射到它),则它是双射的或双射或一一对应。换句话说,对于映像域的每个元素,在开始域中正好存在一个元素映射到它。安全芯片SC在非易失性存储器中存储-公共密钥CK,-通过密码单向函数F获得的测试密钥TK的摘要F(TK),-能够对输入数据应用由测试装置(TD)存储的程序中包括的运算或者函数op的逆op—1的程序。这些数据等已在完成安全芯片的制造的个性化步骤期间被引入到安全芯片中。测试装置TD随后针对可用于测试的芯片被调整为包括向芯片进行认证所需的所有数据。摘要可被定义为通过使用密钥(即,测试密钥TK)利用应用于数据集的密码函数进行计算而获得的结果。另外,安全芯片优选地包括用于产生将要被发送给测试装置TD的询问R的随机产生器和用于处理从测试装置接收的密文的装置,以执行用于对测试装置进行认证的必要验证。认证意味着仅拥有必需的密钥和程序的测试装置被授权访问安全芯片;没有兼容的识别数据的其它装置被排除并且不能执行测试。在第一步骤(1)中,测试装置TD从安全芯片SC接收询问R,询问R借助于存储的程序的运算op而与测试密钥TK进行组合。由此获得的结果(TK op R)被利用公共密钥CK 加密以产生密文CK (TKop R)。在第二步骤( 中,测试装置TD把密文CK (TK op R)发送给安全芯片SC以进行处理。安全芯片SC利用公共密钥CK对密文CK(TK op R)解密并获得结果TK op R0因为询问R存储在产生器的临时存储器中,所以它可用作包括与询问R—起应用于结果TK op R的逆运算op—1的程序的输入数据,以获得测试密钥的映像TK’ TK op R Op^1R给出TK op I = TK,其中I是用于运算op和op—1的标识或中性元素。在另一例子中,该运算可以是把询问R加到测试密钥TK,它的逆将是减去询问R以获得密钥TK。TK+R-R给出TK+0 = TK, O是用于加法和减法运算的中性元素。可利用乘法和除法运算进行类似的推理,其中中性元素是1。在特定情况下,运算op可以是XOR运算,其逆op—1是相同的XOR运算。在执行验证之前,获得的测试密钥首先代表真实测试密钥TK的映像TK’。根据第一实施例,密码单向函数F (诸如,例如类型SHA256的散列函数)被应用于映像TK’。获得的摘要F(TK’)与存储的先前在安全芯片的个性化时利用相同的单向散列型函数F计算的摘要F(TK)进行比较。当存储的摘要F(TK)和映像摘要F(TK’ )的比较值相同时,测试密钥TK有效,测试装置TD被安全芯片SC视为得到认证,并授权用于测试目的的访问。根据第二实施例,存储在安全芯片中的参考摘要F (TK)包括明文数据集PD和密码数据集CD。映像密钥TK’用作应用明文数据集PD以获得映像密码数据集CD’的密码模块 CM中的密钥。然后,如图4中示意性所示,在参考摘要F(TK)的参考密码数据集CD和计算的映像密码数据集⑶’之间进行比较。在下面的描述中,摘要可以具有如前面两个实施例中所述的任何类型。根据如图2中所示的实施例,本发明的方法可包括向安全芯片SC发送认证请求 (RQ)的初始步骤(1)。一旦安全芯片接收到请求RQ,它在步骤(2)中向测试装置TD发送询问R并在步骤(3)中从测试装置TD接收密文CK(TK op R)。可选地,在安全芯片SC执行了密文CK (TK op R)的验证之后,可在步骤⑷中向测试装置TD返回响应消息M。消息M指示认证是否成功,S卩,被比较的摘要的值是相同F(TK’) = F(TK)还是不同F(TK’ )兴F(TK)。在后者的情况下,阻止对安全芯片的访问,根据一个例子,可在芯片完全去激活之前执行有限数量的另外的认证尝试。图2的附加步骤(1)或中的一个或二者可被包括在该方法中。由安全芯片产生的询问R可由硬件伪随机数产生器或者由存储的产生程序中执行的算法产生。在另一实施例中,询问可由计数器产生,该计数器在测试装置每次连接到安全芯片时或者对于发送给所述安全芯片的每个测试请求从给定开始值递增或递减。在另一实施例中,询问可包括时间戳,该时间戳包括具有预定精度(1秒、100毫秒、10ms、Ims等)的当前日期和时间。两个或更多个前面的实施例的组合也可以用于产生询问。必须注意的是,该方法中使用的测试和/或公共密钥(TK,CK)可以是对称或非对称类型。在另一实施例中,测试密钥可从测试装置TD的唯一标识符得出,而公共密钥可从安全芯片SC的唯一标识符得出。在另一实施例中,测试装置和安全芯片存储多个公共密钥。测试装置也可以存储多个测试密钥并且安全芯片存储利用存储在测试装置中的对应测试密钥分别计算的多个摘要。有益地,可将索引与每个测试和公共密钥关联以防止为了利用摘要的解密和验证操作而进行的对所有存储的密钥的系统性试验。特别当密钥和摘要很多时,这种尝试会以不希望的方式使认证处理变慢。索引可以是指示存储公共和测试密钥的位置的寄存器参考或存储器地址。索引也可以是存储在非易失性存储器中的一组密钥中的一个密钥的等级编号。测试装置自动确定索引或者根据由程序定义的序列或者按照由用户输入的指令确定索引。图3示出测试装置TD存储三个测试密钥(TKl,TK2,TK3)和两个公共密钥(CKl, CK2)的实施例。测试密钥和公共密钥优选地分别伴有用于指定将要为处理认证而选择的特定密钥的对应索引(II,12,13)、(J1, J2)。安全芯片SC存储伴有与各测试密钥对应的索引(II,12,13)的测试密钥的三个摘要F(TKl)、F(TK2)和F(TK3)。与测试装置TD中一样,也把公共密钥(CKl,CK2)与它们的索引(Jl,J2) —起存储。响应于接收的询问R从测试装置发送的密文CKl (TK3 op R)伴有在其中使用的密钥的索引(I,J)。在图3的例子中,与指定测试密钥TK3的索引13和指定公共密钥CKl的索引Jl 一起发送密文CKl (TK3 op R)。在由安全芯片SC接收到密文CKl (TK3 op R)时,索引Jl首先被读取以选择要用于对密文CK1(TK3 op R)解密的正确公共密钥CK1。在通过应用逆运算op—1获得测试密钥 TK3并计算映像摘要F(TK3’)之后,安全芯片选择由接收的索引13指定的存储的参考摘要 F(TK3)。然后在与第三测试密钥TK3对应的映像摘要F(TK3’ )和参考摘要F(TO)之间进行比较,从而在两个摘要值相同的情况下授权由测试装置TD访问安全芯片SC。必须注意的是,密钥和对应的摘要可以以任何数量存储在测试装置和安全芯片中。根据一个实施例,与密文CKl (TK3 op R) 一起发送的测试密钥TK的索引I可以通过公共密钥CK加密,所述公共密钥CK对通过与询问R —起把运算OP应用于测试密钥TK 获得的结果TK op R加密。在例子中,由测试装置TD发送的数据将会是密文CKl (TK3op R)、CK1 (13)、J1,其中CKl(U)是利用公共密钥CKl加密的测试密钥TK3的索引。在接收时,测试装置将会利用由索引Jl指定的公共密钥CKl对索引13解密。在利用公共密钥CKl对密文CKl (TK3 op R)解密并确定测试密钥TK3之后,先前解密的索引13随后用于选择合适的摘要F(TK3)以验证测试密钥TK3的有效性。
权利要求
1.一种用于对由测试装置(TD)对安全芯片(SC)的访问进行认证的方法,该测试装置存储至少一个公共密钥(CK)和一个测试密钥(TK),该安全芯片(SC)存储相同的公共密钥 (CK)和通过对所述测试密钥(TK)应用密码函数而得到的参考摘要F(TK),该方法包括下述步骤-由测试装置(TD)接收由安全芯片(SC)产生的询问(R),-由测试装置(TD)通过应用双向数学运算(op)来组合接收的询问(R)与测试密钥 (TK),利用公共密钥(CK)对结果(TK op R)进行加密,获得密文CK(TK op R),-把密文CK (TK op R)发送到安全芯片(SC),-由安全芯片(SC)利用公共密钥(CK)对密文CK(TK op R)解密,通过与询问(R) —起应用先前由测试装置(TD)使用的数学运算(op)的逆运算(op-1)获得代表测试密钥(TK) 的映像密钥(TK’),-利用密码单向函数计算映像密钥(TK’ )的预期摘要F(TK’),-通过比较预期摘要F(TK’ )与所述参考摘要F(TK)来验证有效性,-如果映像密钥(TK’)的摘要F(TK’)和参考摘要F(TK)之间的比较的结果是肯定的, 则由测试装置(TD)在测试模式下访问安全芯片(SC)。
2.如权利要求1所述的方法,其特征在于,通过对映像密钥(TK’)应用散列函数(F) 获得所述预期摘要。
3.如权利要求1所述的方法,其特征在于,所述参考摘要F(TK)包括明文数据(PD)集和密码数据集(CD),所述映像密钥(TK’ )用作应用该明文数据集(PD)以获得作为结果的映像密码数据集(CD’ )的密码模块(CM)的密钥,在参考摘要F(TK)的密码数据集(CD)和计算出的映像密码数据(⑶’)集之间进行比较。
4.如权利要求1所述的方法,其特征在于,如下执行测试装置对询问(R)的接收 由测试装置(TD)向安全芯片(SC)发送认证请求(RQ),安全芯片(SC)在接收到所述请求(RQ)时把询问(R)返回到测试装置(TD)。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述安全芯片(SC)返回响应消息(M),该响应消息(M)向测试装置(TD)指示映像密钥(TK’ )的摘要F(TK’ )和参考摘要F(TK)之间的比较的结果。
6.如权利要求1至5中任一项所述的方法,其特征在于,询问(R)由安全芯片(SC)通过硬件伪随机数产生器或者通过存储的产生程序中实现的算法产生。
7.如权利要求1至5中任一项所述的方法,其特征在于,询问(R)由计数器产生,该计数器在测试装置(TD)每次连接到安全芯片(SC)时或者对于发送给所述安全芯片(SC)的每个测试请求从给定开始值递增或递减。
8.如权利要求1至7中任一项所述的方法,其特征在于,询问(R)包括时间戳,该时间戳包括具有预定精度的当前日期和时间。
9.如权利要求1至8中任一项所述的方法,其特征在于,所述测试装置(TD)和安全芯片(SC)存储多个公共密钥(CK)。
10.如权利要求1至9中任一项所述的方法,其特征在于,所述测试装置(TD)存储多个测试密钥(TK)并且安全芯片(SC)存储利用存储在测试装置(TD)中的对应测试密钥(TK) 分别计算的多个摘要F(TK)。
11.如权利要求9或10所述的方法,其特征在于,存储在测试装置(TD)中和安全芯片 (SC)中的每个公共密钥(CK)、存储在测试装置(TD)中的每个测试密钥(TK)以及存储在安全芯片(SC)中的对应摘要F(TK)伴有索引(I,J),该索引(I,J)用于在访问认证处理期间选择特定测试密钥(TK)、公共密钥(CK)和摘要F (TK)。
12.如权利要求11所述的方法,其特征在于,由测试装置(TD)向安全芯片(SC)发送的密文CK(TK op R)伴有在所述密文CK(TK opR)中使用的相应测试密钥和公共密钥(TK, CK)的索引(I,J)。
13.如权利要求11所述的方法,其特征在于,所述安全芯片(SC)选择接收的指定要用于对密文CK (TK op R)解密的公共密钥(CK)的索引(J)和要用于验证从密文CK (TK op R) 确定的测试密钥(TK)的有效性的摘要F(TK)的索引(I)。
14.如权利要求12所述的方法,其特征在于,在密文CKj (TKiop R)中使用的测试密钥 (TK)的索引(I)被利用与随密文CK(TK op R) 一起发送的索引(J)对应的公共密钥(CK) 加密。
15.如权利要求14所述的方法,其特征在于,所述安全芯片(SC)利用由伴随密文CK(TK op R)的索引(J)指定的公共密钥(CK)对测试密钥(TK)的索引(I)解密,所解密的索引 (I)被用于选择合适的摘要F(TK)以验证从密文CK(TK op R)确定的测试密钥(TK)的有效性。
全文摘要
一种用于对由测试装置TD对安全芯片SC的访问进行认证的方法,测试装置存储至少一个公共密钥CK和一个测试密钥TK,安全芯片SC存储相同的公共密钥CK和通过对测试密钥TK应用密码函数而得到的参考摘要F(TK),该方法包括下述步骤-由测试装置TD接收由安全芯片SC产生的询问R,-由测试装置TD通过应用双向数学运算(op)来组合接收的询问(R)与测试密钥TK,利用公共密钥CK对结果(TK op R)进行加密,获得密文CK(TK op R),-把密文CK(TK op R)发送到安全芯片SC,-由安全芯片SC利用公共密钥CK对密文CK(TK op R)解密,通过与询问R一起应用先前由测试装置TD使用的数学运算(op)的逆运算(op-1)获得代表测试密钥TK的映像密钥TK’,-利用密码单向函数计算映像密钥TK’的预期摘要F(TK’),-通过比较预期摘要F(TK’)与参考摘要F(TK)验证有效性,-如果映像密钥TK’的摘要F(TK’)和参考摘要F(TK)之间的比较的结果是肯定的,则由测试装置TD在测试模式下访问安全芯片SC。
文档编号G06F21/44GK102422296SQ201080020579
公开日2012年4月18日 申请日期2010年5月11日 优先权日2009年5月13日
发明者P·朱诺德 申请人:纳格拉影像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1