认证设备和认证方法转让专利

申请号 : CN201010151369.4

文献号 : CN101860528B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 草川雅文宫户良和

申请人 : 索尼公司

摘要 :

一种认证设备和认证方法。该认证设备包括寄存器,其中存储第一位值和与所述第一位值不同的第二位值;第一确定处理单元,用于确定输入信息和对应于该输入信息的认证信息是否匹配,并且如果所述确定的结果为真则在所述寄存器中存储所述第一位值、如果所述确定结果为假则在所述寄存器中存储所述第二位值;第二确定处理单元,用于确定输入信息与对应于该输入信息的认证信息是否不匹配,并且如果所述确定的结果为真则在所述寄存器中存储所述第一位值、如果所述确定的结果为假则在所述寄存器中存储所述第二位值;以及认证确定单元,用于在通过每个第一确定处理单元的确定过程在所述寄存器中存储所述第一位值并且通过每个第二确定处理单元的确定过程在所述寄存器中存储所述第二位值的情况下确定认证通过。

权利要求 :

1.一种认证设备,包括

寄存器,其中存储第一位值和与所述第一位值不同的第二位值;

第一确定处理单元,用于确定输入信息和对应于该输入信息的认证信息是否匹配,并且如果所述确定的结果为真则在所述寄存器中存储所述第一位值,如果所述确定结果为假则在所述寄存器中存储所述第二位值;

第二确定处理单元,用于确定输入信息与对应于该输入信息的认证信息是否不匹配,并且如果所述确定的结果为真则在所述寄存器中存储所述第一位值,如果所述确定的结果为假则在所述寄存器中存储所述第二位值;以及认证确定单元,用于在通过每个第一确定处理单元的确定过程在所述寄存器中存储所述第一位值并且通过每个第二确定处理单元的确定过程在所述寄存器中存储所述第二位值的情况下确定认证通过。

2.根据权利要求1所述的认证设备,包括:

处理电路,用于在输入用于确定过程的执行命令以及与所述执行命令相关的输入数据的情况下,如果通过使用所述输入数据执行所述执行命令的结果为真则在所述寄存器中存储所述第一位值,而如果执行的结果为假则在所述寄存器中存储所述第二位值;

其中,所述第一确定处理单元通过向所述处理电路输入用于针对两个输入数据的匹配确定过程的执行命令,并且作为输入数据输入所述输入信息和对应于所述输入信息的认证信息,来通过所述处理电路在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元通过向所述处理电路输入针对两个输入数据的用于不匹配确定过程的执行命令,并且作为输入数据输入所述输入信息和对应于所述输入信息的认证信息,来通过所述处理电路在所述寄存器中存储所述第一位值或所述第二位值。

3.根据权利要求1所述的认证设备,还包括:

存储单元,其中存储要用于认证为应用程序建立执行环境的第一程序的第一认证信息和要用于认证所述应用程序的第二认证信息;

其中,所述第一确定处理单元确定作为所述输入信息从作为执行目标的所述第一程序得到的用于认证的信息与存储在所述存储单元内的所述第一认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定作为所述输入信息从作为执行目标的第二程序得到的用于认证的信息与存储在所述存储单元内的所述第二认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

4.根据权利要求2所述的认证设备,还包括:

存储单元,其中存储要用于认证为应用程序建立执行环境的第一程序的第一认证信息和要用于认证所述应用程序的第二认证信息;

其中,所述第一确定处理单元确定作为所述输入信息从作为执行目标的所述第一程序得到的用于认证的信息与存储在所述存储单元内的所述第一认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定作为所述输入信息从作为执行目标的第二程序得到的用于认证的信息与存储在所述存储单元内的所述第二认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

5.根据权利要求1所述的认证设备,还包括:

存储单元,其中存储要用于认证为应用程序建立执行环境的第一程序的第一认证信息和要用于认证所述应用程序的第二认证信息;

其中,所述第二确定处理单元确定作为所述输入信息从作为执行目标的所述第一程序得到的用于认证的信息与存储在所述存储单元内的所述第一认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第一确定处理单元确定作为所述输入信息从作为执行目标的第二程序得到的用于认证的信息与存储在所述存储单元内的所述第二认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

6.根据权利要求2所述的认证设备,还包括:

存储单元,其中存储要用于认证为应用程序建立执行环境的第一程序的第一认证信息和要用于认证所述应用程序的第二认证信息;

其中,所述第二确定处理单元确定作为所述输入信息从作为执行目标的所述第一程序得到的用于认证的信息与存储在所述存储单元内的所述第一认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第一确定处理单元确定作为所述输入信息从作为执行目标的第二程序得到的用于认证的信息与存储在所述存储单元内的所述第二认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

7.根据权利要求1所述的认证设备,还包括:

存储单元,其中存储要用于所述认证设备与外部设备之间的认证过程的第一认证信息和要用于经由所述外部设备的用户认证的第二认证信息;

其中,所述第一确定处理单元确定从所述外部设备输入的输入信息与存储在所述存储单元内的所述第一认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定由用户经由所述外部设备输入的输入信息与存储在所述存储单元内的所述第二认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

8.根据权利要求2所述的认证设备,还包括:

存储单元,其中存储要用于所述认证设备与外部设备之间的认证过程的第一认证信息和要用于经由所述外部设备的用户认证的第二认证信息;

其中,所述第一确定处理单元确定从所述外部设备输入的输入信息与存储在所述存储单元内的所述第一认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定由用户经由所述外部设备输入的输入信息与存储在所述存储单元内的所述第二认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

9.根据权利要求1所述的认证设备,还包括:

存储单元,其中存储要用于所述认证设备与外部设备之间的认证过程的第一认证信息和要用于经由所述外部设备的用户认证的第二认证信息;

其中,所述第一确定处理单元确定由用户经由所述外部设备输入的输入信息与存储在所述存储单元内的所述第二认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定从所述外部设备输入的输入信息与存储在所述存储单元内的所述第一认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

10.根据权利要求2所述的认证设备,还包括:

存储单元,其中存储要用于所述认证设备与外部设备之间的认证过程的第一认证信息和要用于经由所述外部设备的用户认证的第二认证信息;

其中,所述第一确定处理单元确定由用户经由所述外部设备输入的输入信息与存储在所述存储单元内的所述第二认证信息是否匹配,并且在所述寄存器中存储所述第一位值或所述第二位值,并且其中,所述第二确定处理单元确定从所述外部设备输入的输入信息与存储在所述存储单元内的所述第一认证信息是否不匹配,并且在所述寄存器中存储所述第一位值或所述第二位值。

11.一种认证方法,包括步骤:

确定输入信息和对应于该输入信息的认证信息是否匹配,并执行第一确定处理步骤:如果所述确定的结果为真,则在要存储第一位值或与所述第一位值不同的第二位值的寄存器中存储所述第一位值,并且如果所述确定的结果为假,则在所述寄存器中存储所述第二位值;

确定输入信息和对应于该输入信息的认证信息是否不匹配,并执行第二确定处理步骤:如果所述确定的结果为真,则在所述寄存器中存储所述第一位值,并且如果所述确定的结果为假,则在所述寄存器中存储所述第二位值;以及在由每个第一确定处理步骤的确定过程在所述寄存器中存储所述第一位值并且由每个第二确定处理步骤的确定过程在所述寄存器中存储所述第二位值的情况下确定认证通过。

说明书 :

认证设备和认证方法

技术领域

[0001] 本发明涉及认证设备、认证方法以及程序。
[0002] 背景技术
[0003] 近年来,随着网络环境使用的普及,不只是诸如个人计算机(此后称为“PC”)的一般用途电子设备,而且诸如电视机、记录/复制设备和便携式音频设备的具有特殊功能的电子设备也变得能够连接到网络。在这种条件下,安全的保证(诸如对用户个人信息的保护或者检测计算机病毒或恶意软件)对于各种类型的电子设备变得更加重要。因此,希望各种类型的电子设备执行认证功能,用于检查通信对象的真实性。特别地,希望在电子设备中扮演重要角色的半导体集成电路(此后称为“IC”)实现认证功能,用于检查从外部输入的软件或固件(此后称为“程序”)的真实性。
[0004] 在许多情况下,通过使用加密技术来实现这种认证功能。作为使用加密技术的认证功能,存在用于检查通信对象是否具有有效密钥的认证、用于检查程序等是否有效的数字签名、信息认证码(MAC)等。根据认证,将随机数传输到所要认证的对象,并且要求该对象产生密文(ciphertext),并且通过确定从该对象返回的密文的解密结果是否与已经被传输的随机数相匹配来决定该对象的密钥是否有效。另外,根据数字签名和MAC,基于使用密钥的数据操作的结果是否与预期值匹配来检查数据篡改、密钥产生器的真实性等。例如,3749640号日本专利公开了与这种认证功能相关的技术。
[0005] 发明内容
[0006] 逻辑上,只要使用这种安全加密算法,未经授权的通信对象不被错误地识别为经授权的通信对象,或者不执行未经授权的程序。然而,当用于执行认证的程序的实现方法中存在缺陷时,不具有密钥的攻击者能够冒充经认证的通信对象,或者能够执行未经授权的程序。
[0007] 例如,考虑到验证和可读性,以这样的方式实现用于执行认证的程序:认证通过/未通过的条件分支部分为“如果条件表达式为真(TRUE)则通过;如果条件表达式为假(FALSE)则未通过。”因此,当执行程序时,IC中的微处理器(MPU,微处理单元)根据条件表达式的真或假将标志寄存器的特定位的值设置为1或0。例如,当条件表达式为真时将标志寄存器的特定位的值设置为1,而当条件表达式为假时将标志寄存器的特定位的值设置为0。
[0008] 因此,程序读取标志寄存器的特定位的值,并且在1的情况下执行认证通过过程而在0的情况下执行认证未通过过程。因此,在认证通过的情况下,标志寄存器的特定位的值总是1。然而,如果以这种方式执行程序,在通过使用聚焦离子束(FIB)将标志寄存器值的输出线短接到电源或接地(GND),则MPU的标志寄存器的特定位的值将被固定到1。类似地,诸如通过激光辐射将MPU的标志寄存器的值固定的攻击将会把MPU的标志寄存器的特定位的值固定到1。结果,攻击者使得MPU执行认证通过的过程。
[0009] 因此,根据前述内容,希望提供新的并且改进的认证设备、认证方法和程序,其能够避免认证过程的未经授权的执行,即便MPU等的标志寄存器的特定位的值被固定。 [0010] 根据本发明的一个实施例,提供了一种认证设备,包括:寄存器,其中存储第一位值或与该第一位值不同的第二位值;m(1≤m≤N-1,N≥2)个第一确定处理单元,用于确定输入信息与对应于该输入信息的认证信息是否匹配,并且如果确定的结果为真则在寄存器中存储第一位值,而如果确定的结果为假则在寄存器中存储第二位值;(N-m)个第二确定处理单元,用于确定输入信息与对应于该输入信息的认证信息是否不匹配,并且如果确定的结果为真则在寄存器中存储第一位值,而如果确定的结果为假则在寄存器中存储第二位值;以及认证确定单元,用于在由每个第一确定处理单元通过确定过程在寄存器中存储第一位值并且由每个第二确定处理单元通过确定过程在寄存器中存储第二位值的情况下确定认证通过。
[0011] 另外,该认证设备可以包括处理电路,在输入用于确定过程的执行命令和与该执行命令相关的输入数据的情况下,该处理电路用于:如果通过使用输入数据执行该执行命令的结果为真则在寄存器中存储第一位值,而如果结果为假则在寄存器中存储第二位值。在这种情况下,第一确定处理单元通过向处理电路输入用于针对两个输入数据的匹配确定过程的执行 命令,以及输入作为输入数据的输入信息和对应于该输入信息的认证信息,在寄存器中存储第一位值或第二位值。此外,第二确定处理单元通过向处理电路输入用于针对两个输入数据的不匹配确定过程的执行命令,以及输入作为输入数据的输入信息和对应于该输入信息的认证信息,在寄存器中存储第一位值或第二位值。
[0012] 另外,该认证设备还可以包括存储单元,在该存储单元中存储:第一认证信息,其要用于认证为应用程序建立执行环境的第一程序;以及第二认证信息,其要用于认证该应用程序。在这种情况下,第一确定处理单元确定作为输入信息从作为执行目标的第一程序获得的认证信息与存储在存储单元中的第一认证信息是否匹配,并且在寄存器中存储第一位值或第二位值。另外,第二确定处理单元确定作为输入信息从作为执行目标的第二程序获得的认证信息与存储在存储单元中的第二认证信息是否不匹配,并且在寄存器中存储第一位值或第二位值。
[0013] 另外,该认证设备还可以包括存储单元,在该存储单元中存储:第一认证信息,其要用于认证为应用程序建立执行环境的第一程序;以及第二认证信息,其要用于认证该应用程序。在这种情况下,第二确定处理单元确定作为输入信息从作为执行目标的第一程序获得的认证信息与存储在存储单元中的第一认证信息是否不匹配,并且在寄存器中存储第一位值或第二位值。另外,第一确定处理单元确定作为输入信息从作为执行目标的第二程序获得的认证信息与存储在存储单元中的第二认证信息是否匹配,并且在寄存器中存储第一位值或第二位值。
[0014] 另外,该认证设备还可以包括存储单元,在该存储单元中存储:第一认证信息,其要用于该认证设备与外部设备之间的认证过程;以及第二认证信息,其要用于经由外部设备的用户认证。在这种情况下,第一确定处理单元确定从外部设备输入的输入信息与存储在存储单元中的第一认证信息是否匹配,并且在寄存器中存储第一位值或第二位值。另外,第二确定处理单元确定由用户经由外部设备输入的输入信息与存储在存储单元中的第二认证信息是否不匹配,并且在寄存器中存储第一位值或第二位值。
[0015] 另外,该认证设备还可以包括存储单元,在该存储单元中存储:第一认证信息,其要用于该认证设备与外部设备之间的认证过程;以及第二认证信息,其要用于经由外部设备的用户认证。在这种情况下,第一确定处理单元确定由用户经由外部设备输入的输入信息与存储在存储单元中的 第二认证信息是否匹配,并且在寄存器中存储第一位值或第二位值。另外,第二确定处理单元确定从外部设备输入的输入信息与存储在存储单元中的第一认证信息是否不匹配,并且在寄存器中存储第一位值或第二位值。
[0016] 根据本发明的另一个实施例,提供了一种认证方法,包括以下步骤:确定输入信息与对应于该输入信息的认证信息是否匹配,并执行m次(1≤m≤N-1,N≥2)第一确定处理步骤:如果确定的结果为真,则在要存储第一位值或与该第一位值不同的第二位值的寄存器中存储第一位值,而如果确定的结果为假,则在寄存器中存储第二位值;确定输入信息与对应于该输入信息的认证信息是否不匹配,并执行(N-m)次第二确定处理步骤:如果确定的结果为真,则在寄存器中存储第一位值,而如果确定的结果为假,则在寄存器中存储第二位值;以及,在由每个第一确定处理步骤的确定过程在寄存器中存储第一位值,并且由每个第二确定处理步骤的确定过程在寄存器中存储第二位值的情况下确定认证通过。 [0017] 根据本发明的另一个实施例,提供了一种程序,用于使得计算机实现步骤:确定输入信息与对应于该输入信息的认证信息是否匹配,并执行m次(1≤m≤N-1,N≥2)第一确定处理步骤:如果确定的结果为真,则在要存储第一位值或与该第一位值不同的第二位值的寄存器中存储第一位值,而如果确定的结果为假,则在寄存器中存储第二位值;确定输入信息与对应于该输入信息的认证信息是否不匹配,并执行(N-m)次第二确定处理步骤:如果确定的结果为真,则在寄存器中存储第一位值,而如果确定的结果为假,则在寄存器中存储第二位值;以及,在由每个第一确定处理步骤的确定过程在寄存器中存储第一位值,并且由每个第二确定处理步骤的确定过程在寄存器中存储第二位值的情况下确定认证通过。 [0018] 根据本发明的另一个实施例,提供了一种记录介质,在其中记录了该程序,该记录介质能够被计算机读取。
[0019] 根据本发明的上述实施例,能够避免执行未经授权的认证过程,即便MPU等的寄存器的特定位的值被固定。

附图说明

[0020] 图1是示出根据本发明的一个实施例的认证处理系统的结构示例的说明图; [0021] 图2是示出根据本实施例的认证方法的示例的说明图;
[0022] 图3是示出根据本实施例的IC卡用户终端的结构示例的说明图;
[0023] 图4是示出根据本实施例的IC卡的结构示例的说明图;
[0024] 图5是示出根据本实施例的IC卡的处理流程的说明图;
[0025] 图6A是示出要由根据本实施例的IC卡执行的操作的部分的说明图; [0026] 图6B是示出要由根据本实施例的IC卡执行的操作的部分的说明图; [0027] 图7是示出根据本实施例的IC卡的更具体的处理流程的说明图;
[0028] 图8是用于比较根据本实施例的认证方法和一般认证方法的说明图; [0029] 图9是示出在使用一般认证方法的情况下可能执行的篡改的示例的说明图;以及 [0030] 图10是示出在使用一般认证方法的情况下可能执行的篡改的示例的说明图。 具体实施方式
[0031] 下面,将参照附图具体描述本发明的优选实施例。注意,在本说明书和附图中,使用相同的附图标记表示具有基本相同的功能和结构的结构单元,并省略对这些结构单元的重复说明。另外,将以以下顺序进行说明。
[0032] <说明的流程>
[0033] 这里,将简述下面将要描述的本发明的实施例的说明流程。首先,参照图1,将描述根据本发明的一个实施例的认证处理系统的结构示例。接下来,参照图2,将描述根据本实施例的认证过程的流程。然后,参照图3,将描述根据本实施例的IC卡用户终端10的功能结构。然后,参照图4,将描述根据本实施例的IC卡20的功能结构。然后,参考图5,将描述根据本实施例的IC卡20的过程流程。
[0034] 接下来,参照图6A和图6B,将更详细地描述根据本实施例的IC卡20的部分操作。然后,参照图7,将关于根据本实施例的IC卡20的过程的部分描述更具体的过程流程。然后,参照图8到图10,将描述根据本实施例的认证方法与一般的认证方法之间的差别,并且将描述通过应用根据本实施例的认证方法得到的效果。最后,将简要描述本实施例的技术思路以及由本技术思路得到的效果。
[0035] (说明项)
[0036] 1:实施例
[0037] 1-1:认证处理系统的结构
[0038] 1-2:认证方法的总体流程
[0039] 1-3:IC卡用户终端10的功能结构
[0040] 1-4:IC卡20的功能结构
[0041] 1-5:与一般认证方法的比较
[0042] 2:结论
[0043] <1:实施例>
[0044] 将描述本发明的一个实施例。本实施例涉及在半导体集成电路(IC)中运行的用于执行诸如相互认证和消息认证的各种类型的认证过程的程序的实现方法。另外,本实施例涉及用于执行认证的程序中的认证通过/未通过判决部分,并且其特点在于该程序被这样实现,使得用于在条件表达式为真的情况下执行认证通过过程的部分以及用于在条件表达式为假的情况下执行认证未通过的部分以混合的方式存在。此特点使得能够避免通过诸如FIB、激光辐射等分析技术对认证结果进行的固定攻击而造成的对认证结果的篡改。另外,本实施例的技术被应用于实现认证执行程序的情况,该认证执行程序用于执行认证通过/未通过判决若干次。
[0045] (1-1:认证处理系统的结构)
[0046] 首先,参照图1,将描述根据本实施例的认证处理系统的结构示例。图1是示出根据本实施例的认证处理系统的结构示例的说明图。图1中示出的系统结构仅仅是示例,并且根据本实施例的技术的应用范围不限于此。例如,在本实施例中,为了说明的目的使用利用非接触IC卡的认证过程作为示例。然而,应该注意,各种配备有IC、接触式IC卡等的电子设备也在本实施例的技术范围内。
[0047] 如图1所示,认证处理系统主要由IC卡用户终端10和IC卡20构成。另外,IC卡20是认证设备的一个示例。IC卡用户终端10是用于读取和写入IC信息的终端,其连接到PC等或安装在公共交通工具的检票口、零售店、银行柜台等处。IC卡用户终端10主要由输入设备12、显示设备14、处理器16和读取器/写入器18构成。然而,可以根据实施例的模式部分地省略这些结构单元。
[0048] 输入设备12是IC卡用户用来输入个人信息、认证信息(PIN,个人 识别号)等的输入装置。另外,显示设备14是用于显示由IC卡用户输入的个人信息或用于提示输入认证信息的显示装置。处理器16是控制显示设备14显示或读取器/写入器18操作的装置。另外,处理器16能够保持通过使用输入设备12输入的IC卡用户的个人信息和认证信息或各种经由读取器/写入器18得到的信息。另外,处理器16是用于执行认证过程中的各种操作过程的装置。
[0049] 另外,读取器/写入器18是用于通过与IC卡20通信来读取安装在IC卡20上的IC芯片22中的信息或在IC芯片22中写入信息的装置。另外,读取器/写入器18与IC卡20之间的通信可以是非接触通信或接触通信。如上所述,IC芯片22被提供在IC卡20内。
另外,在非接触通信的情况下,回路天线被设置在IC卡20内,并且回路天线的一端连接到IC芯片22。因此,由于由读取器/写入器18导致的磁场改变、通过使用由回路天线导致的功率调制来实现IC卡20和IC卡用户终端10之间的通信。
[0050] [29]图1所示的配置仅仅是示例,但是为了说明的目的,下面的说明将根据图1的系统配置。当然,根据本实施例的技术的应用范围不限于此。
[0051] (1-2:认证方法的总体流程)
[0052] 下面将参照图2描述本实施例的认证处理系统的认证方法的总体流程。图2是示出根据本实施例的认证处理系统的认证方法的总体流程的示例性图示。然而,图2所示的认证方法仅仅是示例,根据本实施例的技术的应用范围不限于此。例如,本实施例可以应用于任何包括若干次确定过程的认证方法。因此,应该记住图2仅仅是从包括若干次确定过程的认证方法中选择的示例。
[0053] 首先,用户通过使用输入设备12向IC卡用户终端10输入PIN(S102、S104)。另外,关于由用户输入的PIN的信息此时被保持在IC卡20中。接下来,IC卡用户终端10产生随机数请求并将其发送给IC卡20(S106)。该随机数请求用于获取由IC卡20产生的随机数。当从IC卡用户终端10接收到该随机数请求时,IC卡20产生随机数(r)(S108)。接下来,IC卡20将所产生的随机数r发送给IC卡用户终端10(S110)。
[0054] 当从IC卡20接收到该随机数r时,IC卡用户终端10生成随机数(K0)(S112)。然后,从IC卡20获取的随机数r、在步骤S112中生成的随机数K0和由用户输入的PIN被使用IC卡20产生的公开密钥PK加密 (S114)。由此加密过程生成密文E(PK,(r,K0,PIN))。另外,当表示为E(A,B)时,E(A,B)指示通过用加密密钥A加密B而得到的密文。另外,E(PK,(r,K0,PIN))指示密文,其中r、K0和PIN分别以某种形式加密,该形式能够被对应于该公开密钥PK的秘密密钥SK解密。
[0055] 当产生了密文E(PK,(r,K0,PIN))时,IC卡用户终端10将该密文E(PK,(r,K0,PIN))发送到IC卡20(S116)。当从IC卡用户终端10接收到密文E(PK,(r,K0,PIN))时,IC卡20通过使用与公开密钥PK对应的秘密密钥SK来解密r、K0和PIN(S118)。然后,IC卡20检查所解密的PIN与其自己保持的PIN是否不匹配(S120)。此时,在PIN不匹配的情况下,由IC卡20确定为真。在PIN不匹配的情况下,IC卡20执行错误处理过程并结束该系列认证过程。
[0056] 在PIN匹配的情况下,IC卡20检查已经在步骤S118中解密的随机数r与IC卡在步骤S108中自己产生的随机数r是否匹配(S122)。此时,在随机数r匹配的情况下,由IC卡20确定为真。在该随机数不匹配的情况下,IC卡20执行错误处理过程并结束该系列认证过程。另一方面,在随机数r匹配的情况下,IC卡20生成随机数(K1)(S124)。接下来,IC卡20使用已经在步骤S118中解密的随机数K0加密随机数K1(S126)。由该加密过程生成密文E(K0,K1)。然后,IC卡20将所生成的密文E(K0,K1)发送到IC卡用户终端10(S128)。
[0057] 当从IC卡20接收到密文E(K0,K1)时,IC卡用户终端10用在步骤S112中作为密钥生成的随机数K0来解密包括在密文E(K0,K1)中的随机数K1(S130)。然后,IC卡用户终端10使用随机数K0和K1生成公共密钥K=K1 xor K0(S132)。“xor”是指异或运算。以相似的方式,IC卡20使用随机数K0和K1生成公共密钥K=K1 xor K0(S134)。然后,IC卡用户终端10和IC卡20使用公共密钥K来执行加密通信(S136)。
[0058] 如上所述,图2所示的认证方法包括由IC卡20执行的两个确定过程(步骤S120、S122)。在本实施例中,步骤S120的确定过程是不匹配检查,而步骤S122的确定过程是匹配检查。因此,当步骤S120中的确定过程指示“假”并且步骤S122中的确定过程指示“真”时通过认证。如所述,本实施例的主要技术特点是每个确定过程的确定认证通过/未通过的真值不同。下面,将以图2所示的过程为例更详细地描述本技术。
[0059] (1-3:IC卡用户终端10的功能结构)
[0060] 首先,参照图3,将描述根据本实施例的IC卡用户终端10的功能结构。图3是示出根据本实施例的IC卡用户终端10的功能结构示例的说明图。另外,图3中示出的功能结构示例用于执行图2的认证步骤,并且其根据所要执行的认证过程的类型等适当地改变。 [0061] 如图3所示,IC卡用户终端10主要包括输入设备12、显示设备14、通信单元102、随机数获取单元104、随机数生成单元106、存储单元108、加密单元110、公共密钥生成单元112和解密单元114。另外,随机数获取单元104、随机数生成单元106、存储单元108、加密单元110公共密钥生成单元112和解密单元114的功能是由处理器16实现的。另外,通信单元102的功能是通过读取器/写入器18实现的。
[0062] 首先,当用户使用输入设备12输入PIN时,该PIN被从输入设备12输入到加密单元110。此时,关于输入的PIN的确认信息可以显示在显示设备14上。另外,从输入设备12向随机数获取单元104输入指示PIN被输入的通知信息(info)。当接收到该通知信息时,随机数获取单元104产生随机数请求(请求)并经由通信单元102将其发送到IC卡20。当根据随机数请求的接收从IC卡20发送随机数r时,随机数r被经由通信单元102输入到随机数获取单元104。
[0063] 当以这种方式从IC卡20获取到随机数r时,随机数获取单元104将所获取的随机数r输入到加密单元110。由随机数生成单元106生成的随机数K0也被输入到加密单元110。随机数生成单元106生成随机数K0,并且除了加密单元110外,还将随机数K0输入到公共密钥生成单元112和解密单元114。另外,加密单元110获取存储在存储单元108中的公开密钥PK,并用公开密钥PK加密所输入的PIN、r和K0。由此加密过程生成密文E(PK,(r,K0,PIN))。
[0064] 由加密单元110生成的密文E(PK,(r,K0,PIN))被经由通信单元102发送到IC卡20。由IC卡20在接收到密文E(PK,(r,K0,PIN))时执行针对PIN和随机数r的认证过程,并且当认证成功时,从IC卡20发送通过使用随机数K0加密随机数K1而得到的密文E(K0,K1)。通过通信单元102接收的密文E(K0,K1)被从通信单元102输入到解密单元114。当输入密文E(K0,K1)时,解密单元114通过使用从随机数生成单元106输入的随机数K0来解密包括在密文E(K0,K1)中的随机数K1。然后,由解密单元114解密的随机数K1被输入到公共密钥生 成单元112。
[0065] 当从解密单元114输入随机数K1时,公共密钥生成单元112使用由随机数生成单元106生成的随机数K0和从解密单元114输入的随机数K1生成公共密钥K=K0 xor K1。另外,基于随机数K0和K1生成由公共密钥生成单元112生成的公共密钥K是充分的。因此,用于生成公共密钥K的算术表达式不一定限于上述异或运算。然而,为了说明的目的,应该理解由上述算术表达式生成该公共密钥。由公共密钥生成单元112生成的公共密钥K被输入到解密单元114和加密单元110。
[0066] 加密单元110用公共密钥K加密存储在存储单元108中的传输数据(数据),并经由通信单元102将该数据发送到IC卡20。另一方面,在从IC卡20发送使用公共密钥K加密的密文的情况下,经由通信单元102接收的密文被输入到解密单元114。然后,解密单元114使用公共密钥K对所接收的密文执行解密过程。以此方式实现加密通信。到此,已经描述了IC卡用户终端10的功能结构。下面,将具体描述IC卡20的功能结构。 [0067] (1-4:IC卡20的功能结构)
[0068] 接下来,参照图4,将描述根据本实施例的IC卡20的功能结构示例。图4是示出根据本实施例的IC卡20的功能结构示例的说明图。另外,图4中示出的功能结构示例用于执行图2的认证过程,并且根据所要执行的认证方法的类型等适当地改变。 [0069] 如图4所示,IC卡20主要包括通信单元202、第一随机数生成单元204、存储单元206、解密单元208、PIN检查单元210、随机数检查单元212、第二随机数生成单元214、加密单元216和公共密钥生成单元218。在这些结构单元中,主要特点是PIN检查单元210和随机数检查单元212的功能。另外,上述PIN检查单元210是第二确定处理单元的示例。另外,上述随机数检查单元212是第一确定处理单元的示例。另外,上述PIN检查单元210和随机数检查单元212是认证确定单元的示例。
[0070] 首先,当从IC卡用户终端10发送随机数请求(请求)时,IC卡20通过通信单元202接收该随机数请求。所接收的随机数请求被经由通信单元202输入到第一随机数生成单元204。第一随机数生成单元204响应于该随机数请求生成随机数r。然后,由第一随机数生成单元204生成的随机数r被输入到通信单元202,并且被存储在存储单元206中。除了随机 数r,用户的PIN和对应于公开密钥PK的秘密密钥SK被存储在存储单元206中。 [0071] 当随机数r被从第一随机数生成单元204输入到通信单元202时,随机数r被经由通信单元202发送到IC卡用户终端10。然后,当从已接收到该随机数r的IC卡用户终端10发送使用公开密钥PK生成的密文E(PK,(r,K0,PIN))时,IC卡20通过通信单元202接收密文E(PK,(r,K0,PIN))。然后,密文E(PK,(r,K0,PIN))被从通信单元202输入到解密单元208。
[0072] 当输入了密文E(PK,(r,K0,PIN))时,解密单元208从存储单元206读取对应于该公开密钥PK的秘密密钥SK,使用该秘密密钥SK解密该密文E(PK,(r,K0,PIN)),并得到r、K0和PIN。然后,解密单元208将得到的r输入到随机数检查单元212,将得到的PIN输入到PIN检查单元210,并将得到的K0输入到加密单元216。
[0073] PIN检查单元210检查从解密单元208输入的PIN与从存储单元206读出的PIN是否不匹配。当检查结果为PIN不匹配(确定操作的输出=“真”)时,PIN检查单元210执行错误处理过程。另一方面,当PIN匹配(确定操作的输出=“假”)时,PIN检查单元210通知随机数检查单元212PIN认证的通过(ok)。
[0074] 当通知了PIN认证的通过时,随机数检查单元212检查从解密单元208输入的r和从存储单元206读出的r是否匹配。当检查结果为r匹配(确定操作的输出=“真”)时,随机数检查单元212向第二随机数生成单元214输入指示基于随机数的该认证通过(ok)的通知。另一方面,当r不匹配(确定操作的输出=“假”)时,随机数检查单元212执行错误处理过程。
[0075] 当被随机数检查单元212输入指示基于随机数的认证通过的通知时,第二随机数生成单元214生成随机数K1。由第二随机数生成单元214生成的随机数K1被输入到加密单元216。当输入了随机数K1时,加密单元216使用从解密单元208输入的K0来加密该随机数K1。由此加密过程生成密文E(K0,K1)。然后,由加密单元216生成的密文E(K0,K1)被经由通信单元202发送到IC卡用户终端10。
[0076] 另外,由解密单元208得到的K0和由第二随机数生成单元214生成的随机数K1被输入到公共密钥生成单元218。公共密钥生成单元218使 用所输入的K0和K1生成公共密钥K=K0 xor K1。另外,基于随机数K0和K1生成由公共密钥生成单元218生成的公共密钥K是充分的。因此,用于生成公共密钥K的算术表达式不一定限于上述异或运算。然而,为了说明的目的,会理解由上述算术表达式生成公共密钥。
[0077] 由公共密钥生成单元218生成的公共密钥K被输入到加密单元216,并且被存储在存储单元206中。加密单元216在加密要通过该加密通信发送的数据时使用公共密钥K。另外,在解密通过该加密通信接收的密文时,解密单元208使用存储在存储单元206的公共密钥K来解密该密文。以这种方式实现该加密通信。到此,已经描述了IC卡20的功能结构。如上所述,本实施例的IC卡20的特点是PIN检查单元210和随机数检查单元212的功能。下面,将更为详细地给出针对这些特征的描述。
[0078] (关于确定过程的操作)
[0079] 首先,参照图5,将针对PIN检查单元210和随机数检查单元212的过程描述IC卡20的过程流程。图5是示出IC卡20的过程的流程的说明图。
[0080] 首先,IC卡20通过通信单元202接收从IC卡用户终端10发送的随机数请求(S142)。然后,IC卡20通过第一随机数生成单元204生成随机数r,并经由通信单元202向IC卡用户终端10发送该随机数r(S144)。然后,IC卡20从IC卡用户终端10接收密文E(PK,(r,K0,PIN)),并通过解密单元208将其解密(S146)。通过步骤S146的过程,得到了r、K0和PIN。
[0081] 然后,PIN检查单元210检查所得到的PIN和保持在IC卡20中的PIN是否不匹配(S148)。当检查结果为不匹配时,IC卡20执行错误处理过程(S152)。另一方面,当检查结果不是不匹配时,IC卡20前进到步骤S150的过程。这里应该注意,PIN检查单元210不确定“其是否匹配”,而是确定“其是否不匹配”。稍后将描述该配置的原因。 [0082] 当过程前进到步骤S150时,由随机数检查单元212检查所得到的r和保持在IC卡20中的r是否匹配(S150)。当检查结果为不匹配时,IC卡20执行错误处理过程(S152)。
另一方面,当其匹配时,IC卡20前进到步骤S154的过程。这里应该注意,PIN检查单元210确定“其是否不匹配”,而随机数检查单元212确定“其是否匹配”。
[0083] 当过程前进到步骤S154时,IC卡20通过第二随机数生成单元214 生成随机数K1(S154)。然后,IC卡20通过加密单元216生成密文E(K0,K1),并经由通信单元202将其发送到IC卡用户终端10(S156)。另外,IC卡20通过公共密钥生成单元218生成公共密钥K=K0xor K1(S158)。
[0084] 将更详细地描述步骤S148和S150的过程。如上所述,步骤S148的过程是针对PIN的“不匹配检查”的确定过程。另一方面,步骤S150的过程是针对随机数r的“匹配检查”的确定过程。这些过程实际上通过使用如图6A和图6B所示的安装在IC卡20上的MPU220执行。因此,MPU 220是处理电路的示例。
[0085] 首先,参照图6A。图6A示意性地示出PIN检查单元210的“不匹配检查”过程。另外,在图6A中,从IC卡用户终端10获取的PIN被表示为PIN’,而保持在IC卡20中的PIN被简单表示为PIN。如图6A所示,MPU 220设置有标志寄存器222(FR)。另外,虽然表示为“标志寄存器”,在广义上,其含义为指示MPU 220的操作状态的状态寄存器。另外,标志寄存器是寄存器的一个示例。
[0086] 另外,标志寄存器222在特定位的位置包括零标志(ZF)。该零标志是当操作结果为1(确定过程中的“真”)时被设置(写入1)的部分。相反地,当操作结果为0(确定过程中的“假”)时,该零标志被清除(写入0)。
[0087] 如上所述,PIN检查单元210确定PIN和PIN’是否不匹配。换句话说,PIN检查单元210向MPU 220输入用于使MPU 220确定是否其不匹配的确定过程命令(bne A,B),以及作为参数的PIN和PIN’,并与存储在标志寄存器222的零标志中的值关联。这里,“bne A,B”是指过程命令,通过该过程命令,在参数A和B不匹配的情况下确定“真”而在它们匹配的情况下确定“假”。
[0088] 当输入此命令时,MPU 220确定PIN和PIN’是否不匹配,并在确定结果为“真”的情况下设置标志寄存器222的零标志,而在确定结果为“假”的情况下清除标志寄存器222的零标志。因此,在要通过PIN认证的情况下,“0”需要被存储在标志寄存器222的零标志中。
[0089] 接下来,参照图6B。图6B示意性地示出随机数检查单元212的“匹配检查”过程。因此,从IC卡用户终端10获取的r被表示为r’,而保持在IC卡20中的r被简单表示为r。如上所述,随机数检查单元212确定r和r’是否匹配。换句话说,随机数检查单元212向MPU 220输入 用于使MPU 220确定其是否匹配的确定过程命令(beq A,B),以及作为参数的r和r’,并与存储在标志寄存器222的零标志中的值关联。
[0090] 这里,“beq A,B”是指过程命令,通过该过程命令,在参数A和B匹配的情况下确定“真”而在它们不匹配的情况下确定“假”。当向MPU220输入此命令时,MPU 220确定r和r’是否匹配,并在确定结果为“真”的情况下设置标志寄存器222的零标志,而在确定结果为“假”的情况下清除标志寄存器222的零标志。因此,在要通过基于随机数r的认证的情况下,“1”需要被存储在标志寄存器222的零标志中。
[0091] 从图6A和图6B明显看出,“匹配检查”和“不匹配检查”的相同之处在于比较两个参数并确定参数的匹配/不匹配。然而,由于通过MPU 220执行的操作过程不同,即便确定结果都是“匹配”,零标志的值也将不同。本实施例提出一种通过使用图6A和图6B中示出的特征来提高安全性的方法,该特征为,对于“相同的确定结果‘匹配(或不匹配)’”,“零标志的值”彼此不同。根据一般方法,如果标志寄存器222的零标志被固定到“1”,PIN认证和基于随机数的认证都将被通过。然而,当使用根据本实施例的方法时,PIN认证将被未通过,并且能够避免篡改。下面将更为详细地描述这一点。
[0092] (1-5:与一般认证方法的比较)
[0093] 首先,参照图7,下面将针对包括与图5所示的根据本实施例的认证过程中的与PIN认证和随机数认证相关的步骤S146到S154(此后称为“步骤160”)描述MPU 220的操作的流程。然后,将描述在使用一般认证方法(图8)的情况下MPU 220的操作的流程(图9)。另外,将在比较一般认证方法(图9)和本实施例的方法(图7)的同时描述对固定零标志的攻击的抵抗性(图10)。
[0094] (根据本实施例的认证方法的MPU 220的操作)
[0095] 首先,将参照图7。图7详细示出图5中示出的关于MPU 220的操作的步骤S148和S150的过程。
[0096] 如图7所示,当通过步骤S146的过程得到PIN和r时,PIN检查单元210向MPU220输入命令“bne A,B”PIN和PIN’。MPU 220根据该输入命令确定PIN和PIN’是否不匹配(S1481)。当确定结果为“真(是)”时,MPU 220在标志寄存器222的零标志中存储“1”(S1482)。另一方面,当确定结果为“假(否)”时,MPU 220在标志寄存器222的 零标志中存储“0”(S1483)。
[0097] 接下来,PIN检查单元210检查标志寄存器222的零标志是否为“0”(S1484)。当零标志不是“0”时,IC卡20执行错误处理过程(S152)。另一方面,当零标志为“0”时,IC卡20前进到步骤S1501的过程。即便零标志的值被零标志固定攻击固定到“1”,该攻击能够在步骤S1484中被避免。
[0098] 在过程前往步骤S1501的情况下,随机数检查单元212向MPU 220输入命令“beq A,B”r和r’。MPU 220根据该输入命令确定r和r’是否匹配(S1501)。当确定结果为“真(是)”时,MPU 220在标志寄存器222的零标志中存储“1”(S1502)。另一方面,当确定结果为“假(否)”时,MPU 220在标志寄存器222的零标志中存储“0”(S1503)。 [0099] 接下来,随机数检查单元212检查标志寄存器222的零标志是否为“1”(S1504)。当零标志不是“1”时,IC卡20执行错误处理过程(S152)。另一方面,当零标志为“1”时,IC卡20前进到步骤S154的过程。即便零标志的值被零标志固定攻击固定到“0”,该攻击能够在步骤S1504中被避免。
[0100] (一般认证方法的MPU 220的操作)
[0101] 接下来,参照图8和图9,将描述一般认证方法的MPU 220的操作。图8是示出一般认证方法的总体流程的说明图。另外,图9是示出认证过程的流程的说明图,其中详细示出了MPU 220的与PIN认证和随机数认证相关的操作。
[0102] 首先,将参照图8。首先,从IC卡用户终端10接收随机数请求(S12),并且产生随机数r并将其发送到IC卡用户终端10(S14)。然后,从IC卡用户终端10接收密文E(PK,(r,K0,PIN)),并且得到r和PIN(S16)。然后,检查所得到的PIN和已经保持的PIN是否匹配(S18)。在检查结果为匹配的情况下,过程前进到步骤S20;而在检查结果为不匹配的情况下,执行错误处理过程(S22)。
[0103] 在前往步骤S20的情况下,检查所得到的r和已经保持的r是否匹配(S20)。在检查结果为匹配的情况下,过程前进到步骤S24;而在检查结果为不匹配的情况下,执行错误处理过程(S22)。在前进到S24的过程的情况下,生成随机数K1(S24),并且生成密文E(K0,K1)并将其发送到IC卡用户终端10(S26)。另外,生成公共密钥K(S28)。
[0104] 如上所述,在一般认证方法中,步骤S18和步骤S20中执行的确定过程都是“匹配检查”。将考虑到这一点来参考图9。
[0105] 如图9所示,当通过步骤S16的过程获得了PIN和r时,向MPU 220输入命令“beq A,B”PIN和PIN’。MPU 220根据所输入的命令确定PIN和PIN’是否匹配(S0181)。当确定操作的输出为“真(是)”时,MPU 220在标志寄存器222的零标志中存储“1”(S0182)。另一方面,当确定操作的输出为“假(否)”时,MPU 220在标志寄存器222的零标志中存储“0”(S0183)。
[0106] 接下来,检查标志寄存器222的零标志是否为“1”(S0184)。在零标志不是“1”的情况下,执行错误处理过程(S22)。另一方面,在零标志为“1”的情况下,过程前进到步骤S0201。如果零标志的值被零标志固定攻击固定到“1”,步骤S0184的确定过程通过,该攻击没有被避免。
[0107] 当过程前进到步骤S0201时,向MPU 220输入命令“beq A,B”r和r’。MPU 220根据该输入命令确定r和r’是否匹配(S0201)。当确定操作的输出为“真(是)”时,MPU220在标志寄存器222的零标志中存储“1”(S0202)。另一方面,当确定操作的输出为“假(否)”时,MPU220在标志寄存器222的零标志中存储“0”(S0203)。
[0108] 接下来,检查标志寄存器222的零标志是否为“1”(S0204)。在零标志不为“1”的情况下,执行错误处理过程(S22)。另一方面,在零标志为“1”的情况下,过程前进到步骤S24。如果零标志的值被零标志固定攻击固定到“1”,步骤S0204的确定过程通过,该攻击没有被避免。
[0109] 也就是,如图10所示,PIN匹配检查(步骤S44)和r匹配检查(步骤S46)被无效。这里,将参照图10简要描述固定零标志的位值的攻击以及该攻击对采用一般认证方法的IC卡的影响。
[0110] 如图10所示,怀有恶意的一方首先产生随机数请求并将其发送到IC卡(S30)。IC卡响应于所接收的随机数请求生成随机数r(S34)。然后,IC卡将所生成的随机数r发送到该攻击者(S32)。接下来,攻击者生成随机数K0’(S36)。然后,用IC卡的公开密钥PK加密r’、K0’和PIN’,并生成密文E(PK,(r’,K0’,PIN’))(S38)。这里,r’与IC卡生成的r不同。另外,PIN’与保持在IC卡中的PIN不同。另外,r有可能代替r’被使用。 [0111] 然后,攻击者将所生成的密文E(PK,(r’,K0’,PIN’))发送到 IC卡(S40)。然而,在此时,攻击者开始对IC卡进行激光辐射,并将IC卡的MPU 220的标志寄存器222的零标志固定到“1”。密文E(PK,(r’,K0’,PIN’))被IC卡接收并且使用对应于公开密钥PK的秘密密钥解密r’、K0’和PIN’(S42)。然后,执行PIN匹配检查(S44)和r匹配检查(S46)。 [0112] 然而,由于标志寄存器222的零标志被固定到“1”,虽然PIN≠PIN’且r≠r’,PIN认证和r认证仍然通过。也就是,步骤S44和S46的认证过程被无效。当步骤S44和S46的认证通过时,IC卡生成随机数K1(S48)。然后,IC卡用已经在步骤S42中解密的K0’来加密K1,并生成密文E(K0’,K1)(S50)。
[0113] 然后,IC卡将密文E(K0’,K1)发送到攻击者(S52)。接收到该密文E(K0’,K1)的该攻击者使用该攻击者保持的K0’解密该密文E(K0’,K1),并得到K1(S54)。另外,该攻击者使用所得到的K1生成公共密钥K=K1 xor K0’(S56)。同样地,IC卡生成公共密钥K=K1 xorK0’。此时该公共密钥变为由该攻击者和IC卡共享,并且因此,通过使用该公共密钥K建立加密通信S60。结果,该攻击者能够自由地篡改该IC卡上的信息。
[0114] 只要使用一般认证方法,对于使用FIB对标志寄存器值的输出线的短路攻击也是这种情况。然而,通过应用根据本实施例的认证方法,针对这些攻击输出错误,并且能够避免允许对IC卡的信息进行篡改的情况。
[0115] 另外,可以假设一种方法,根据该方法,攻击者在PIN认证和r认证之间在激光的辐射/不辐射之间切换。然而,这种激光辐射控制在技术上是相当困难的。另外,由于没有加入新电路以获得对上述攻击的抵御,本实施例的技术的应用不导致电路尺度或逻辑复杂度的增大。因此,能够提高安全性而不增加制造成本和设计负担。
[0116] 到此,已经参考具体示例详细描述了根据本实施例的技术。在以上示例中,本技术应用的目标是IC卡20。然而,在包括若干次确定过程的认证将要被IC卡用户终端10执行的情况下,该技术也可以应用到IC卡用户终端10。另外,本技术所应用的目标不限于IC卡或IC芯片。也就是,其可以应用于任何配备有具有如MPU 220的结构的操作单元的装置,并且在执行若干次确定过程时,其向MPU 220输入确定操作命令并通过参照输出到标志寄存器222的特定位的值来执行该确定过程。因此,其可以应用于包括上述装置的PC、移动终端、移动电话、IC芯片、读取器/写 入器以及各种类型的电子设备等。
[0117] (2:结论)
[0118] 根据本实施例的技术被应用到用于执行若干次认证过程的认证设备。例如,其能够应用于使用用户个人识别号PIN以及共享使用随机数r的密钥来执行认证的IC卡等。通过应用此配置,未经授权的用户可以被拒绝,并且使用过去的数据的伪装攻击能够被避免。然而,如果实际执行要在认证过程时执行的确定过程的MPU的标志寄存器值被固定到“1”或“0”,则会出现困难的情况,即任一认证都以未经授权的方式通过。
[0119] 为了解决这一困难情况,本实施例提出一种方法,其交替地或随机地执行在条件表达式为“真”的情况下执行认证通过过程的部分以及在条件表达式为“假”的情况下执行认证通过过程的部分。通过应用这种实施方法,实施这样的过程,根据该过程,在标志寄存器的值为“0”的情况下通过认证,并且实施这样的过程,根据该过程,在该值为“1”的情况下通过认证。结果,即便标志寄存器的值被固定,也能够避免攻击者执行未经授权的认证通过过程。
[0120] 本领域技术人员应该理解,可以根据设计需要和其它因素在所附权利要求或与其等同的范围内进行各种修改、组合、次组合和改变。
[0121] 例如,在与上述实施例相关的说明中,为了简化说明主要描述了将本实施例的技术应用于使用外部设备进行的相互认证。然而,根据本实施例的技术能够被应用到在作为认证设备的例子的IC卡等内执行的各种认证过程。例如,其可以被应用于在IC卡等内执行的程序认证。提供各种服务的应用程序被加载到IC卡等。另外,在启动时执行的以及用于为应用程序等通过执行环境的固件被加载到IC卡等。
[0122] 这些固件和应用程序用于读取存储在IC卡等内的各种信息或向IC卡等写入信息。因此,需要坚决避免对这些固件和应用程序的篡改。在许多情况下,在IC卡等内执行程序认证以避免固件和应用程序的篡改。然而,当进行例如激光辐射等的篡改攻击时,在IC卡等内执行的认证过程被无效。因此,将本实施例的技术应用于针对固件和应用程序的认证过程以增强对篡改的抵御变得很重要。
[0123] 例如,接连执行对作为执行目标的应用程序的认证过程和用来为该应用程序通过执行环境的固件的认证过程,并且此时使用本实施例的技术。通过使用此方法,能够有效地避免在程序认证被例如激光辐射的篡改攻击 无效时未经授权的应用程序的执行。如所描述的,根据本实施例的技术不仅对使用外部设备相互执行的认证过程产生巨大的效果,还对在设备内执行的认证过程产生巨大的效果。
[0124] 本申请包含的主题涉及2009年4月10日在日本专利局提交的日本优先权专利申请JP 2009-096196,通过引用将其完整内容结合于此。