数据处理设备及其方法和程序 【技术领域】
本发明涉及一种用于通过采用密钥数据与服务数据存储装置进行验证的数据处理设备及其方法和程序。
背景技术
例如,现有一种数据处理设备,它根据密钥数据与服务数据存储装置进行验证并且在通过验证确认另一方的合法性(legitimacy)之后进行各种处理。这种数据处理设备例如具有用来根据密钥数据来进行验证的验证功能和用于产生密钥数据的密钥产生功能。该数据处理设备由上面的验证功能和密钥产生功能混合在一起构成。
由本发明所要解决的问题总的来说,要求让不同的开发者来开发在该数据处理设备中的验证功能和密钥产生功能并且使由密钥产生功能所使用的密钥产生算法对验证功能的开发者保密。但是,在该数据处理设备中,存在这样的问题,即验证功能和密钥产生功能混合在一起,因此难以满足上面的要求。
【发明内容】
本发明的目的在于提供一种能够使用于在密钥产生装置中产生密钥数据的技术对验证装置的开发者保密的数据处理设备及其方法和程序。
为了实现上述目的,根据本发明的第一方面,提供一种数据处理设备,它包括:用于根据密钥数据与要验证地设备进行验证的验证装置;以及用于根据从所述验证装置接收到的数据产生所述密钥数据并且将该密钥数据提供给验证装置的密钥产生装置,其中所述验证装置给密钥产生装置提供第一数据和第二数据,并且所述密钥产生装置通过只使用在从所述验证装置中接收到的第一数据和第二数据中的第一数据来产生密钥数据。
本发明第一方面的数据处理设备的操作模式如下:验证装置给密钥产生装置提供所述第一数据和第二数据。该密钥产生装置通过只使用在从验证装置中接收到的第一数据和第二数据中的第一数据来产生密钥数据。验证装置根据由密钥产生装置所产生的密钥数据对所要验证的设备进行验证。
优选的是,密钥产生装置根据从验证装置接收到的数据产生出对于所要验证的设备而言是唯一的密钥数据。另外,优选的是该密钥产生装置设有具有第一输入参数和第二输入产生并且通过只使用输入用于第一输入参数的第一数据来产生出密钥数据的函数模块,并且验证装置输入用于密钥产生装置的该函数模块的第一输入参数的第一数据并且输入用于第二输入参数的第二数据。
根据本发明第二方面,提供一种用于通过验证装置根据由密钥产生装置所产生出的密钥数据与所要进行验证的装置进行验证的数据处理方法,该方法包括以下步骤:第一步骤,所述验证装置向所述密钥产生装置提供第一数据和第二数据;第二步骤,所述密钥产生装置通过只使用在第一步骤处所获得的第一数据和第二数据中的第一数据来产生密钥数据并且将该密钥数据提供给所述验证装置;以及第三步骤,所述验证装置根据在第二步骤处所接收到的密钥数据与要验证的设备进行验证。
根据本发明的第三方面,提供一种执行用于将密钥数据提供给执行用于根据密钥数据与要验证的设备进行验证的步骤的验证程序的步骤并且在数据处理设备中执行的程序,该程序包括以下步骤:第一步骤,用于接收来自验证程序的第一数据和第二数据;第二步骤,用于只使用在第一步骤处接收到的第一数据和第二数据中的第一数据来产生密钥数据;以及第三步骤,用于将由第二步骤产生出的密钥数据提供给验证程序。
根据本发明的第四方面,提供一种用于与存储与至少一种服务有关的服务数据的IC芯片通信的安全应用模块,它包括:验证电路,用于根据密钥数据来与要验证的设备进行验证;以及密钥产生电路,用于根据从所述验证电路接收到的数据产生所述密钥数据并且将该密钥数据提供给所述验证电路,其中所述验证电路向所述密钥产生电路提供第一数据和第二数据,并且所述密钥产生电路通过只使用在从验证电路接收到的第一数据和第二数据中的第一数据来产生出密钥数据。
【附图说明】
从参照附图给出的以下优选实施方案的说明中可以更加了解本发明的这些和其它目的和特征。
图1为本发明一实施方案的卡系统的结构视图;
图2为构建在图1所示的IC卡中的IC的结构视图;
图3为用来说明在图1所示的IC中所限定的各种密钥数据的视图;
图4为在图1中所示的SAM的功能方框图;
图5为用来说明在图4中所示的SAM的处理的视图;
图6为用于说明在图5中所示的SAM的软件配置的视图;
图7为用于说明在图6所示的SAM中的程序中所限定的防火墙的视图;
图8为用于说明将密钥管理数据记录在图5所示的SAM中的视图;
图9为用于说明在图5所示的密钥产生单元中产生单个密钥数据的步骤的流程图;
图10为用于说明用于将密钥管理数据记录在图5所示的SAM中的步骤的流程图;
图11为用于说明在进行涉及在图5所示的IC卡的IC和SAM之间的服务的处理的情况中的操作的实施例的流程图;并且
图12为从图11开始继续的流程图,用来说明在进行涉及在图5所示的IC卡的IC和SAM之间的服务的处理的情况中的操作的实施例。
【具体实施方式】
下面将对根据本发明一实施方案的卡系统进行说明。图1为本实施方案的卡系统1的结构视图。如图1所示,卡系统1在例如IC卡10的集成电路(IC)15和安全应用模块(SAM)12通过读取器/写入器(R/W)11进行验证之后进行涉及预定服务的处理。这里,SAM 12对应于本发明的数据处理设备,而IC 15对应于本发明的所要验证的设备。IC存储有与至少一种服务相关的服务数据。SAM与半导体器件例如IC卡、具有IC卡功能的便携式电子装置通信。
另外,管理装置13记录了存储有用来在SAM 12中在SAM 12和IC15之间进行相互验证的密钥数据等的密钥包KP。另外,SAM 12的管理器例如利用IC卡10提供预定服务的提供者将IC卡10发给多个用户的每一个。
IC 15存储有关于由IC 15的用户利用SAM 12接收到的各种服务的数据和将在下面所述的程序的文件数据,并且利用该文件数据利用服务使用权限来进行设定。具体地说,IC 15和SAM 12根据与指定服务相关联的密钥数据进行相互验证。当它们确认相互的合法性时,IC15和SAM 12共同进行与服务相关的处理。在当前实施方案中,发给每个用户的IC卡10分配有对于各个IC卡10而言是唯一的密钥数据(本发明的密钥数据或单独密钥数据)作为用于进行验证的部分密钥数据。SAM 12作为输入从IC卡10接收IC卡10的独特数据,例如在生产时唯一分配给该IC卡10的序列号或其它装置识别数据IDM和多个用于识别指定服务等的识别数据SID1、SID2和SID3,并根据这些数据通过预定的算法产生出用于进行验证的密钥数据。
下面将对在图1中所示的组成部件进行说明。
IC 15:
图2为构建到图1所示的IC卡10中的IC 15的结构视图。如图2所示,IC 15例如具有通过内部总线20连接的接口21、存储器22和CPU23。接口21通过R/W 11与SAM 12交换数据。存储器22存储有用于涉及由IC 15的用户通过利用SAM 12接收到的关于各种服务的处理的数据和程序的文件数据。另外存储器22存储有用于在进行与这些服务相关的处理之前用于与SAM 12进行验证的各种密钥数据。另外,存储器22存储有对于各个IC卡10而言是唯一的装置识别数据IDM。
要注意的是,SAM 12根据与共同分配给模型的SAM 12的系统码相关联的密钥数据来进行相互验证。在通过相互验证识别出的相互合法性上有条件地允许对IC 15进行访问。另外,存储器22在作为具有分层结构的文件夹的区域中存储有各种服务的文件数据。SAM 12根据与在存储器22中的区域的区域码相关联的密钥数据进行相互验证,并且在这样的条件下允许针对该区域进行访问,即通过相互验证确定了相互合法性。另外,SAM 12根据与存储在该区域中的文件数据的服务码相关联的密钥数据进行该相互验证。在通过相互验证所确定的相互合法性上有条件地允许对该文件数据进行访问。
在当前实施方案中,如图3所示,固定的密钥数据和单独的密钥数据被定义为与IC 15有关的如上所述所限定的密钥数据的类型。固定密钥数据为在多个IC卡10的IC 15中具有相同数值的密钥数据,只要在文件系统中的位置相同。也就是说,固定密钥数据是由多个IC卡10的IC 15所共享的密钥数据。单独密钥数据为多个IC卡10的IC 15中的数值不同的密钥数据,即使在该文件系统中的位置相同。也就是说,单独密钥数据为对于IC卡10的IC 15而言是唯一的密钥数据。要注意的是,IC 15在没有识别出该密钥数据是固定密钥数据或单独密钥数据中的哪一个的情况下进行处理。
CPU23与SAM 12交换数据,并且根据从存储器22读出的程序和密钥数据来通过接口21和R/W 11与SAM 12进行相互验证。另外,当通过相互验证确认了相互合法性时,CPU23与SAM 12协作执行关于与用在相互验证中的密钥数据相关联的服务的处理。另外,CPU23根据管理器的操作利用接口21将加密的密钥包解密,该管理器的预定权限在例如IC卡10的发放时已经被验证,并且将在解密的密钥包中的密钥数据写入到存储器22中。
SAM 12:
图4为在图1中所示的SAM 12的功能方框图;图5为用于说明在进行验证时的SAM 12的数据的流程的视图;并且图6为用于说明SAM 12的软件配置的视图。如图4所示,SAM 12例如具有通过内部总线30连接的一接口31、一卡处理单元32、一密钥管理单元33、一密钥产生单元34以及一密钥存储单元35。在当前实施方案中,卡处理单元32和密钥管理单元33对应于本发明的验证装置,密钥产生单元34对应于本发明的密钥产生装置,而密钥存储单元35对应于本发明的密钥保存装置。
在图4中所示的SAM 12的部件可以通过电路或计算机程序来实现。
另外,如图6所示,卡处理单元32和密钥管理单元33通过在CPU(未示出)或其它数据处理设备(本发明的执行装置或数据处理设备)执行验证程序80(本发明的验证程序)来实现。密钥产生单元34通过在CPU或其它数据处理设备处执行密钥产生程序81(本发明的程序或密钥产生程序)来实现。该密钥存储单元35通过在CPU或其它数据处理设备处执行密钥存储程序82(本发明的密钥存储程序)来实现。
在当前实施方案中,如图7中所示,在验证程序80中限定有防火墙FW1,并且在密钥产生程序81和密钥存储程序82中限定有防火墙FW2。也就是说,由于这些防火墙FW1和FW2,对密钥产生程序81和密钥存储程序82的访问权限与对验证程序80的访问权限分开限定。具体地说,在SAM 12中,对存储有密钥产生程序81和密钥存储程序82的存储区域的访问权限与对存储有验证程序80的存储区域的访问权限分开限定。因此,对验证程序80具有访问权限的人如果不具有对验证程序80和密钥产生程序81的访问权限也被禁止访问该验证程序80和密钥产生程序81。密钥存储程序82与密钥产生程序81和验证程序80的下载分开地从SAM 12的外面下载。
另外,在当前实施方案中,验证程序80向密钥产生程序81提供IC15的装置识别数据IDM、服务的多个识别数据SID1、SID2和SID3等。密钥产生程序81根据装置识别数据IDM和在从验证程序80输入的数据中的识别数据SID2(本发明的第一数据)产生出单独密钥数据KI(本发明的密钥数据)。也就是说,密钥产生程序81没有使用从验证程序80输入的识别数据SID1和SID3(本发明的第二数据)来产生单独密钥数据KI。
下面将对用于在密钥产生程序81、验证程序80和密钥存储程序82中进行数据传送的技术进行说明。在当前实施方案中,如图6所示,验证程序80具有一说明(代码),用于调用在密钥产生程序81中的作为应用程序接口(API)函数的函数API1并且如在下面的等式(1)中所示一样将从IC卡的IC 5输入的服务等的识别数据SID1、SID2和SID3作为函数API1的输入参数:
API1(SID1、SID2、SID3) …(1)
然后,在验证程序80的基础上执行该代码,该程序将识别数据SID1、SID2和SID3写在缓冲器(未示出)中的指定地址处。根据在密钥产生程序81中的函数API1的执行,它采用写在这些地址处的作为输入参数的识别数据SID1、SID2和SID3产生出密钥。要注意的是,密钥产生程序81还可以将识别数据SID1、SID2和SID3写在缓冲器中作为执行API函数的返回值而被接收的地址处。要注意的是,识别程序80通过API1函数为密钥产生程序81提供原始密钥数据KO。如上所述,SAM12从验证程序80借助由密钥产生程序81所限定的API1函数将识别数据SID1至SID3以及原始密钥数据提供给密钥产生程序81。
识别程序80具有函数API2,并且将从IC卡的IC 5中输入的装置验证数据IDM存储在缓冲器中被定义为函数API2的返回值的地址处。然后,密钥产生程序81调用该函数API2并且从被定义为其返回值的地址中读取装置识别数据IDM。如上所述,SAM 12通过由验证程序80所限定的函数API2从验证程序80将装置识别数据IDM提供给密钥产生程序81。
密钥存储程序82具有一函数API3并且将由密钥存储程序82所保存的主密钥数据KM存储在缓冲器中被定义为函数API3的返回值的地址处。该密钥产生程序81调用函数API3,并且从被定义为其返回值的地址处读取主密钥数据。如上所述,SAM 12利用由密钥存储程序82所限定的函数API3从密钥存储程序82将主密钥数据提供给密钥产生程序81。
要注意的是,函数API1、API2和API3对应于本发明的函数模块(function module)。
下面将对SAM 12的组成部件进行说明。接口31利用在图1中所示的R/W 11与IC 15传送数据。卡处理单元32根据从密钥管理单元33输入的密钥数据利用接口31与IC卡10的IC 15进行相互验证,并且当通过相互验证确认了相互合法性时,与IC 15协作进行与指定服务相关的处理。卡处理单元32通过执行应用程序来实现各种功能。卡处理单元32根据从密钥管理单元33输入的密钥数据与IC 15进行相互验证。
密钥管理单元33保存着用于管理供相互验证等使用的密钥数据的密钥管理数据KMD。该密钥管理数据KMD显示出如图5所示一样链接在一起的识别数据SID、密钥数据K和密钥特性数据KPD。识别数据SID为用于识别通过SAM 12与IC 15协同进行的服务(文件数据)和用于伴随着该服务访问IC 15的存储区域(文件夹)等的数据。识别数据SID例如为从IC 15中输入的系统码、区域码或服务码。在当前实施方案中,如图6所示,验证程序80将从IC卡的IC 15中输入的装置识别数据IDM和服务的识别数据SID1、SID2和SID3等提供给密钥产生程序81。
密钥数据K为用于在服务之前与IC 15进行相互验证的密钥数据。要注意的是,根据单独密钥数据进行的处理的识别数据SID与上述作为密钥数据K的原始密钥数据KO相关联。密钥特性数据KPD为表示该密钥数据K是固定密钥数据或是单独密钥数据的数据。
当在来自卡处理单元32的密钥请求KREQ中的识别数据SID根据密钥管理数据KMD的密钥特性数据KPD与固定密钥数据相关联时,密钥管理单元33从密钥管理数据KMD读取与识别数据SID相关联的密钥数据(固定密钥数据)K。另一方面,当在来自卡处理单元32的密钥请求KREQ中的识别数据SID根据密钥管理数据KMD的密钥特性数据KPD与单独密钥数据相关联时,该密钥管理单元33请求来自卡处理单元32的装置识别数据IDM(在图5中的请求IDM_REQ)并且将与从密钥管理数据KMD(在图5中的原始密钥数据KO)中所提取的输入装置识别数据IDM、识别数据SID和与识别数据SID相关联的密钥数据K输出给密钥产生单元34。如上所述一样从验证程序80借助函数API1将识别数据SID和原始密钥数据KO提供给密钥产生程序。
例如如下在密钥管理单元33中设定密钥管理数据KMD。也就是说,在图1中所示的管理装置13产生通过设定使用主密钥数据KPM(如图8中所示)来将密钥管理数据KMD加密来获得的密钥包数据KP,并且将这个数据输出给SAM 12。SAM 12通过采用设定使用主密钥数据KPM将在图4中所示的密钥管理单元33或未示出的解码单元处将通过接口31输入的密钥包数据KP解密并且保存。这里,通过让使用SAM 12提供服务的业务将密钥管理数据KMD设定进入密钥管理单元33,从而该业务可以在安全的状态中高度自由地管理密钥。要注意的是,用作存储在密钥管理数据KMD中的各个密钥的产生来源的密钥数据KO不是单独密钥数据KI本身。因此,即使密钥管理数据KMD的秘密丧失,该单独密钥数据KI自身的秘密也不会丧失。
密钥产生单元34根据来自密钥存储单元35的主密钥数据KM、从密钥管理单元33输入的装置识别数据IDM、识别数据SID以及密钥数据K(KO)执行单独密钥产生程序KPRG,以产生出密钥数据(单独密钥数据)KI并且将该数据输出给密钥管理单元33。密钥管理单元33将从密钥产生单元34输入的密钥数据KI输出给卡处理单元32。该密钥产生单元34通过在图9中所示的步骤产生出密钥数据KI。在图9中所示的步骤在单独密钥产生程序KPRG中有说明。下面将对在图9中所示的步骤进行说明。
步骤ST11
密钥产生单元34根据如上所述由密钥产生程序81限定的函数API1接收来自密钥管理单元33的识别数据SID1、SID2和SID3以及原始密钥数据KO作为输入。
步骤ST12
密钥产生单元34根据如上所述由验证程序80所限定的函数API2接收来自密钥管理单元33的装置识别数据IDM作为输入。
步骤ST13
如上所述密钥产生单元34根据由密钥存储程序82所限定的函数API3接收来自密钥存储单元35的主密钥数据KM作为输入。
步骤ST14
密钥产生单元34加入在步骤ST11处输入的识别数据SID2、在步骤ST12处输入的装置识别数据IDM和在步骤ST13处输入的主密钥数据KM并且产生出数据X。这样,该密钥产生单元34采用在步骤ST11处输入的识别数据SID1、SID2和SID3中的识别数据SID2来产生数据X,并且没有使用识别数据SID1和SID3来产生数据X。由此,可以使密钥产生程序81的处理对限定了卡处理单元32和密钥管理单元33的验证程序80保密。
步骤ST15
密钥产生单元34使在步骤ST11处输入的原始密钥数据KO向右转动正好为在步骤ST14处所产生出的数据X的数值量,从而产生出单独密钥数据KI。
步骤ST16
密钥产生单元34将在步骤ST13处产生出的单独密钥数据KI输出给密钥管理单元33。
要注意的是,由于单独密钥产生程序KPRG用于通过密钥产生单元34产生密钥数据KI,例如也可以为IC 15提供例如对于每个处理内容,例如对于在文件系统中的处理目标的每个位置,并且例如用于每个区域码而言不同的算法的程序,选择与指定识别数据SID2对应的程序,并且执行该程序。该密钥产生单元34可以不使用主密钥数据KM来产生单独密钥数据KI。在图7中所示的单独密钥数据的产生步骤是示例。本发明并不限于此。
这样,密钥产生单元34通过除了主密钥数据KM之外使用装置识别数据IDM、识别数据SID和密钥数据K(KO)来产生单独密钥数据,从而给涉及密钥产生的这些数据赋予与主密钥数据等同的作用。为此,可以自由地改变涉及由在设定用于验证的密钥管理数据KMD上具有权限的业务等使用的密钥数据的设定。另外,如上所述,通过根据在文件系统等中的位置通过单独密钥产生程序KPRG基于不同算法来产生出单独密钥数据,从而可以进一步提高安全性。也就是说,即使用于该区域服务的逻辑部分泄露时,也可以保持其它区域服务的安全性。
下面将对在图1中所示的卡系统1的操作示例进行说明。
操作的第一实施例:
在该操作示例中,将对在SAM 12中设定密钥管理数据KMD的情况进行说明。图10为用于说明该操作示例的流程图。
步骤ST21
在图1中所示的管理装置13通过设定使用主密钥数据KPM将密钥管理数据KMD加密来获得密钥包数据KP,并且如图6所示将该数据输出给SAM 12。
步骤ST22
SAM 12通过采用设定使用主密钥数据KPM在图4所示的密钥管理单元33或未示出的解码单元中将通过接口31输入的密钥包数据KP解码,从而产生出密钥管理数据KMD。
步骤ST23
密钥管理单元33保存着在步骤ST22处所产生出的密钥管理数据KMD。
第二操作示例:
在该操作示例中,将对在IC卡10b的IC 15和基于图5的SAM 12之间进行的有关服务的处理的情况中的操作示例进行说明。图11和图12为用于说明该操作示例的流程图。
步骤ST31
用户在图1所示的R/W 11处刷IC卡10,并且通过例如使用在R/W11上提供的操作单元来指定所要求的服务。要注意的是,IC 15或SAM12还可以自动地指定该服务。由此,IC 15将指定服务的识别数据SID和从IC 15的存储器22中读取的装置识别数据IDM输出给SAM 12。
步骤ST32
卡处理单元32将包括在步骤ST31处输入的识别数据SID的密钥请求KREQ输出给密钥管理单元33。
步骤ST33
密钥管理单元33参照密钥管理数据KMD识别出与包含在步骤ST22处输入的密钥请求KREQ中的识别数据SID相关联的密钥数据K是单独密钥或是固定密钥。
步骤ST34
当在步骤ST33处将该密钥确定为固定密钥时,密钥管理单元33前进至步骤ST35,而当将该密钥确定为单独密钥时,该单元前进至步骤ST38。
步骤ST35
密钥管理单元33参照密钥管理数据KMD,并且获取与在步骤ST32处输入的单独数据SID相对应的密钥数据(固定密钥数据)。
步骤ST36
密钥管理数据33将在步骤ST35处所获得的密钥数据或在后面所述的步骤ST42处从密钥产生单元34输入的密钥数据输出给卡处理单元32。
步骤ST37
卡处理单元32根据在步骤ST36处输入的密钥数据与IC 15进行相互验证,当确认了相互合法性时,与IC 15协作进行与在步骤ST31处输入的识别数据SID相对应的服务处理。
步骤ST38
密钥管理单元33当在步骤ST34处将该密钥识别为单独密钥时将用于请求装置识别数据IDM的请求IDM_REQ输出给卡处理单元32。
步骤ST39
卡处理单元32响应于在步骤ST38处输入的请求IDM_REQ将在步骤ST31处从IC 15输入的装置识别数据IDM输出给密钥管理单元33。
步骤ST40
密钥管理单元33从密钥管理数据KMD中读取与识别数据SID相对应的密钥数据。然后,该密钥管理单元33将密钥数据KO、在步骤ST39处输入的装置识别数据IDM和在步骤ST32处输入的识别数据SID输出给密钥产生单元34。
步骤ST41
密钥产生单元34通过采用图7所述的步骤利用在步骤ST33处输入的密钥数据等产生单独密钥数据KI。
步骤ST42
密钥产生单元34将在步骤ST41处输入的单独密钥数据KI输出给密钥管理单元33。
如上所述,在该卡系统1中,如采用图6所述一样,SAM 12将来自验证程序80的识别数据SID1至SID3提供给密钥产生程序81,并且密钥产生程序81只使用识别数据SIDF2来产生单独密钥数据KI。为此,可以使得验证程序80的开发者难以根据提供给密钥产生程序81的识别数据推导出在密钥产生程序81中的密钥产生算法。
在SAM 12中,如在图7中所示一样设有防火墙FW1和FW2。因此,可以防止验证程序80对密钥产生程序81进行非法访问,并且可以使在密钥产生程序81中的密钥产生算法保持安全。
在SAM 12中,由于验证程序80和密钥产生程序81除了通过函数API1和API2传送数据之外是完全独立的程序,所以可以同时通过不同的开发者来进行验证程序80和密钥产生程序81的开发。
另外,通过将SAM 12构成为验证程序80和密钥产生程序81单独地从SAM 12外面下载密钥存储程序82,可以在不会对密钥产生程序81造成影响的情况下对密钥产生程序81进行更新。例如,当用于提供预定服务的业务准备有密钥产生程序81时,即使在更新了密钥存储程序82的情况下,该业务也不必更新密钥产生程序81,因此可以减小其负担。
另外,在该卡系统1中,在SAM 12和IC 15之间进行服务处理之前,SAM 12根据从IC 15接收到的对于IC卡10(IC 15)而言是唯一的装置识别数据IDM产生出对于IC 15而言是唯一的单独密钥数据KI,并且根据单独密钥数据KI来与IC 15进行相互验证。为此,即使当在多个IC卡10中的一些IC卡10的单独密钥数据KI的保密性丧失时,其它IC卡10的单独密钥数据的保密性也不会丧失,并且可以提高该安全性。
另外,根据该卡系统1,用于识别服务等的识别数据SID从IC 15输出给SAM 12,并且在SAM 12处根据识别数据SID来切换单独密钥产生。因此,在一些算法的保密性丧失的情况可以保持基于其它算法的单独密钥数据的保密性。
另外,根据该卡系统1,用于识别服务等的识别数据SID从IC 15输出给SAM 12,并且根据该识别数据SID来确定用于该验证的密钥数据是单独密钥还是固定密钥。因此,IC 15可以进行处理而不用知道用于验证的密钥数据是单独密钥或是固定密钥数据。
另外,根据该卡系统1,密钥管理单元33在与单独密钥和固定密钥相对应的处理之间切换。因此,该卡处理单元32可以进行处理而不用识别出用于验证的密钥数据是单独密钥还是固定密钥。为此,伴随着卡处理单元32开发的负担可以减少,同时可以防止涉及采用单独密钥来进行验证的信息向卡处理单元32的开发者泄露。
另外,根据该卡系统1,通过使所有密钥数据在密钥管理数据KMD的密钥性能数据KPD中其特性为固定密钥,从而可以获得与只使用固定密钥的系统的兼容性。
另外,根据该卡系统1,与卡处理单元32的操作无关地根据在密钥管理单元33中的密钥管理数据KMD来进行涉及单独密钥数据的处理。因此,可以使涉及单独密钥数据的信息对卡处理单元32的应用程序的开发者保密。也就是说,可以使涉及单独密钥数据的信息只对密钥管理数据KMD和单独密钥产生程序KPRG的设置者和/或开发者保持开放,因此可以实现高安全性。
根据该卡系统1,通过如上所述根据装置识别数据IDM来产生单独密钥数据,从而不必将所有IC卡10的单独密钥数据存储,因此可以通过使用小型存储器来构成SAM 12。
在这些实施方案中,IC卡10的IC 15所示为本发明所要验证的设备,但是所要验证的设备可以为计算机或类似装置。
本发明的效果总的来说,根据本发明可以提供能够使在密钥产生装置中的密钥数据产生技术对验证装置的开发者保密的数据处理设备和数据处理方法。另外,根据本发明,可以提供能够使密钥产生算法对验证程序保密的程序。
虽然已经参照选择用于说明的具体实施方案对本发明进行了描述,但是应该可以看出,本领域普通技术人员在不脱离本发明的基本构思和范围的情况下可以作出许多改变。