专利名称:数据处理方法及其设备的制作方法
技术领域:
本发明涉及在利用嵌入卡或移动终端设备中的IC (集成电路)通 过网络进行交换情况下有用的数据处理方法、其设备、其程序、半导 体电路和身份验证设备。
背景技术:
目前,正在开发把IC卡等用于通过因特网及其它网络的交易的通 信系统。
在这种通信系统中,服务器从IC卡的阅读器/记录器或者PC (个 人计算机)接收使用IC卡的处理请求,并进行用户身份验证、数据加 密和解密,以及其它处理。
但是,就上面说明的通信系统而言,设想同时或者在短时间内接 收关于大量IC卡的处理请求的情况。
这种情况下,服务器必须能够有效地处理这样的处理请求。
此外,服务器有时执行处理与若干结算业务相关的手续的若千应 用程序,并且通过根据处理请求,利用选择的应用程序进行处理。这 样的处理请求也必须被有效处理。
此外,在上面说明的通信系统中,服务器执行的应用程序必须说 明使用密匙信息访问IC卡的代码和操作IC卡的操作命令。这里,如 果要求使用IC卡的交易的安全性,则密匙信息和操作命令只可被服务 器的管理人员知道。
于是,在过去,服务器的管理人员来自上述服务提供者的请求,产生并定制应用程序。
但是,在服务器的管理人员以这种方式产生并定制应用程序的情 况下,存在管理人员的负担变重的问题。
此外,在上面说明的服务器中,运行若千信用卡公司或其他企业 的应用程序。这种应用程序由单个的企业产生,并且通过利用个人计 算机等被下栽到服务器。
但是,如上所述,当上述服务器运行若干企业的应用程序时,必 须确保各个应用程序的处理不受另一应用程序监视或者干扰。
另一方面,需要在应用程序之间传送数据的时候,提供各种各样 的服务。
此外,单个的企业把他们的应用程序下栽到服务器上,随后根据 需要调试这些应用程序。
但是,当各企业以这种方式把应用程序下载到服务器,并调试这 些应用程序时,必须防止服务器中的程序受到非法干扰。
实现这一点的一种技术是当访问服务器时使用密匙信息的身份验 证处理技术。但是通常这种密匙信息保存在终端设备(个人计算机) 的存储器中,因此存在非法使用的可能,并且存在安全问题。
此外,形成上述服务器的LSI具有内置CPU。 CPU有时访问位于 LSI芯片之外的存储器。
这种情况下,数据流过设置在LSI芯片和外部存储器之间的总线, 从而通过探测总线可检查数据。
但是,当上述服务器执行电子商务交易、个人身份验证和其他高 度机密的处理时,如上所述,如果数据被探测,则存在安全方面的问 题。
此外,上面说明的服务器有时由单个计算机构成。 这种情况下,单个计算机运行和由不同企业提供的若千服务相关 的若干程序。当这些服务处理高度机密的数据,例如和结算相关的数 据时,存在各个企业拥有的高度机密数据被另一企业非法获取或者窜 改的可能性。此外,当把常规的计算机用作如上所述的计算机时,存在下述问题。
图133表示普通计算机601的基本结构。
在图133中所示的计算机601中,CPU 602利用从存储器6O3读 取的指令和数据进行处理。
CPU 602把存储器603中的访问地址输出给地址总线604。 此外,CPU 602根椐控制信号S602对存储器603进行读写操作。 保存在存储器603中的模块A、模块B和模块C是程序的具有特
殊函数的处理单元。
在开发程序的时候,调试程序605检查CPU 602的操作。它使用
HLAT信号临时中断CPU602的操作,读取CPU602的内部信息,并
把该信息通知程序开发人员。
这里,在图133中,假定模块A具有由模块B或模块C使用的基
本函数。
这里,假定包含在模块A中的基本函数的例程高度机密。这种情 况下,由于模块A是基本函数,它必须提供使模块B或模块C的开发 人员能够开发其程序的环境。实现此目的的一种方式是分布函数库的 方法。
这是以介于高级语言和机器语言(通常称为"汇编语言")之间 的中级语言表迷的,但是分析相当容易。程序的要求保密的处理例程 最后很可能被知道。
此外,另一种方式是预先把基本模块(本例中为模块A)保存在 存储器603中,而不是将其用作函数库,开发人员在假定基本模块存 在于特定位置的情况下开发软件。
但是,即使利用这种方法,仍然存在模块B和C的开发人员难以 读取保存在存储器603中的模块A的问题。此时,读取的内容是用 CPU 602执行的机器语言表迷的,但是存在把这种机器语言转换成汇 编语言的工具。能够相当容易地分析例程。
此外,在开发人员开发程序的阶段,在模块A的执行过程中,模块B和C的开发人员可临时暂停CPU 602的执行,以便了解模块A 的所处理数据或模块A的内容,从而了解模块A的程序的整个处理例 程。
另外,运行于上述服务器上的应用程序处理密钥数据、收费数据、 日志数据以及服务提供者设置的其它高安全性数据,因此需要保护这 些数据免受非法窜改或监视。
本发明的第一目的是提供一种能够根据大量的处理请求,有效地 进行处理的数据处理方法、半导体电路和程序。
本发明的第二目的是提供一种数据处理方法、半导体电路和程序, 在不允许用户获悉高度机密信息的情况下,使用户能够产生和定制将 由服务器执行的用户的应用程序。
本发明的第三目的是提供一种数据处理方法、半导体电路和程序, 当相同的半导体电路运行若干应用程序时,能够防止各个单独的应用 程序受到另一应用程序的影响。
本发明的第四目的是提供一种数据处理方法、半导体电路和程序, 当相同的半导体电路运行若干应用程序时,在防止各个应用程序受到 另一应用程序的用户的非法窜改、监视等的同时,允许根据需要在应 用程序之间传送数据。
本发明的第五目的是提供一种数据处理方法、半导体电路、验证 设备和程序,能够根据服务器或者其它半导体电路的权限,限制对于
服务器或者其它半导体电路的访问的内容。
本发明的第六目的是提供一种半导体电路和数据处理方法,即使 通过外部总线在半导体电路和半导体存储电路之间传送高度机密的数 据时,也能够保持数据的机密性。
本发明的第七目的是提供一种当执行若千程序时,能够在程序之 间保持指令和数据的机密性的数据处理设备。
本发明的第八目的是提供一种能够提高要执行的程序的机密性的 半导体电路。
本发明的笫九目的是提供一种数据处理设备、其方法及其程序,当提供利用IC或者其它集成电路的服务时,能够提高在服务器上运行
的应用程序的安全性。
发明内容
为了实现上述目的,本发明第一方面的数据处理方法是根据若干
处理请求,由半导体电路执行的一种数据处理方法,包括下述步骤 为若千处理请求中的每个处理请求产生作业管理数据,所述作业管理 数据包括作业执行顺序数据和状态数据,所述作业执行顺序数据表示 根据处理请求形成处理的若干作业的执行顺序,所述状态数据表示所 述若干作业的执行进程的状态,根据预定的规则,从产生的若干作业 管理数据中选择一个作业管理数据,根据选择的作业管理数据的状态 数据和处理顺序数据选择下一步要执行的作业,执行选择的作业,并 且根据该作业的执行,更新选择的作业管理数据的状态数据。
在本发明第一方面的数据处理方法中,首先,半导体电路为若干 处理请求中的每个处理请求,产生包括作业执行顺序数据和状态数据 的作业管理数据,作业执行顺序数据表示根据处理请求形成处理的若 千作业的执行顺序,状态数据表示若千处理作业的执行进程的状态。
其次,半导体电路根据预定的规则,从产生的若干作业管理数据 中选择一个作业管理数据。
接下来,半导体电路根据选择的作业管理数据的状态数据和处理 顺序数据选择下一步要执行的作业。
随后,半导体电路执行选择的作业。
最后,半导体电路根据该作业的执行,更新选择的作业管理数据 的状态数据。
此外,本发明第一方面的数据处理方法最好还包括更新选择的作 业管理数据的状态数据,随后从若干数据模块选择一个作业管理数据 的步骤。
此外,本发明第一方面的数据处理方法最好还包括在更新选择的 作业管理数据的状态数据之后,从若干数据模块选择一个作业管理数据的步骤。
此外,本发明第一方面的数据处理方法最好还包括当根据处理请 求形成处理的所有作业完成执行时,删除作业管理数据的步骤。
此外,本发明第一方面的数据处理方法最好还包括从具有存储器 的集成电路或者相对于集成电路输入输出数据的通信设备接收处理请 求的步骤,所述存储器保存将用于借助半导体电路执行的过程的处理 的数据。
本发明第二方面的半导体电路是一种根据若干处理请求处理数据 的半导体电路,包括输入若干处理请求的接口,保存作业管理数据的 存储电路,作业管理数据包括作业执行顺序数据和状态数据,作业执 行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,状态 数据表示若干作业的执行进程的状态,和为输入的若干处理请求中的 每个处理请求产生作业管理数据并将其保存在存储电路中,从产生的 若干作业管理数据中选择一个作业管理数据,根据选择的作业管理数 据的状态数据和处理顺序数据选择并执行下一步要执行的作业,并且 根据该作业的执行,更新选择的作业管理数据的状态数据的控制电路。 在本发明第二方面的半导体电路中,接口输入若干处理请求。 随后,控制电路产生作业管理数据并将其保存在存储电路中,所
程的状态的状态数据。
接下来,控制电路从若干作业管理数据中选择一个作业管理数据。 之后,控制电路根据选择的作业管理数据的状态数据和处理顺序
数据,选择并执行下一步要执行的作业,并且根据该作业的执行,更
新选择的作业管理数据的状态数据。
本发明第三方面的程序是一种由半导体电路执行的根据若干处理
请求处理数据的程序,包括为若干处理请求中的每个处理请求产生作
业管理数据的例程,作业管理数据包括作业执行顺序数据和状态数据,序,状态数据表示若干作业的执行进程的状态,从产生的若干作业管 理数据中选择一个作业管理数据的例程,根据选择的作业管理数据的 状态数据和处理顺序数据选择下一步要执行的作业的例程,执行选择 作业的例程,和根据该作业的执行,更新选择的作业管理数据的所述 状态数据的例程。
本发明第四方面的数据处理方法是一种由半导体电路执行的数据 处理方法,所述半导体电路运行和使用集成电路的过程有关的处理的 应用程序,其中半导体电路能够查看对应性指示数据,所述对应性指 示数据指示用于所述应用程序操作集成电路的操作代码和操作的名
称,即操作名称之间的对应性,所述方法包括下述步骤使半导体电 路以输入的形式接收利用操作名称描述应用程序的操作的操作说明程 序,和使半导体电路通过查看对应性指示数据,获得和在操作说明程 序中描述的操作名称相对应的操作代码,并且使用获得的操作代码定 义应用程序的处理。
此外,根据本发明笫四方面的数据处理方法最好还包括使对应性 指示数据还显示操作名称和当集成电路执行与这些搡作名称对应的操 作时使用的密钥信息之间的对应性,并且使半导体电路通过查看对应 性指示数据,获得和在操作说明程序中描述的操作名称相对应的密钥 信息,并且使用获得的密钥信息定义应用程序的处理。
此外,本发明第四方面的数据处理方法最好还包括使半导体电路 产生包括作业执行顺序数据和状态数据的作业管理数据,作业执行顺 序数据表示形成应用程序的处理的若千作业的执行顺序,状态数据表 示所述若干作业的执行进程的状态,根据作业管理数据的状态数据和 处理顺序数据选择下一步要执行的作业,执行选择的作业,并且根据 该作业的执行,更新选择的作业管理数据的状态数据。
本发明第五方面的半导体电路是一种运行用于执行和利用集成电 路的过程相关的处理的应用程序的半导体电路,包括保存对应性指示 数据的存储电路,所述对应性指示数据指示用于应用程序操作集成电 路的操作代码和操作的名称,即操作名称之间的对应性,输入利用操作名称描述应用程序的操作的操作说明程序的接口 ,和通过查看对应 性指示数据,获得和在输入的操作说明程序中描述的操作名称相对应 的操作代码,并且使用获得的操作代码定义应用程序的处理的控制电 路。
在本发明第五方面的半导体电路中,接口输入利用操作名称描迷 应用程序的操作的操作说明程序。
随后,控制电路通过查看对应性指示数据,获得和在输入的操作 说明程序中描述的操作名称相对应的操作代码。
之后,控制电路使用获得的操作代码定义应用程序的处理。
本发明第六方面的程序是由运行执行和利用集成电路的过程相关
的处理的应用程序的半导体电路执行的程序,包括输入利用集成电 路的操作的名称,即操作名称描述应用程序的操作的操作说明程序的 例程,查看指示由应用程序用于操作集成电路的操作代码和操作名称 之间的对应性的对应性指示数据,从而获得和在操作说明程序中描述 的操作名称相对应的操作代码的例程,以及利用获得的操作代码定义 应用程序的处理的例程。
本发明第七方面的数据处理方法是由执行应用程序的半导体电路 完成的数据处理方法,包括下迷步骤利用若干防火墙中事先分配给 形成应用程序的若干程序模块中的各个程序;f莫块的防火墙保护该程序 模块,记录与识别分配给程序模块的防火墙的防火墙识别信息链接的 程序模块,并且以正在进行记录为条件,执行该程序模块。
本发明第七方面的数据处理方法最好还包括允许记录的由相同防 火墙识别信息链接的若干程序模块之间的数据传送或数据查看,并且 禁止记录的由不同防火墙识别信息链接的若千程序模块之间的数据传 送或者数据查看的步骤。
本发明第七方面的数据处理方法最好还包括下述步骤
记录还与当把程序模块从半导体电路之外下栽到半导体电路时使 用的下载密钥信息链接的程序模块,并且当接收关于程序模块的下栽 请求时,利用记录的和该程序模块链接的下载密钥信息判断下载是否可能,并且当判断下载可能时,下载该程序;f莫块。
本发明第八方面的半导体电路是运行应用程序,利用若干防火墙 中事先分配给形成应用程序的若干程序模块中的各个程序模块的防火 墙保护该程序模块,记录与识别分配给程序;f莫块的防火墙的防火墙识 别信息链接的程序模块,并且以记录正在进行为条件,执行该程序模 块的半导体电路。
本发明第九方面的程序是由执行应用程序的半导体电路执行的程 序,包括利用若干防火墙中事先分配给形成应用程序的若干程序模块 中的每个程序模块的防火墙保护该程序模块的例程,记录与识别分配 给该程序模块的防火墙的防火墙识别信息链接的程序模块的例程,和 以记录正在进行为条件,执行该程序模块的例程。
本发明第十方面的数据处理方法是由执行应用程序的半导体电路
执行的数据处理方法,包括下述步骤独立执行由防火墙保护的若干 应用程序,预先记录允许通过防火墙在应用程序之间进行通信的条件, 当应用程序请求与另 一应用程序通信时,判断通信请求是否满足记录 的条件,和当判断通信请求满足记录的条件时,根据通信请求进行应 用程序之间的通信。
本发明第十一方面的半导体电路是独立执行受防火墙保护的若干 应用程序,事先记录允许通过防火墙在应用程序之间进行通信的条件, 当应用程序请求与另 一应用程序通信时,判断通信请求是否满足记录 的条件,和当判断通信请求满足记录的条件时,根据通信请求进行应 用程序之间的通信的半导体电路。
第十一方面的半导体电路独立执行受防火墙保护的若千应用程序。
此外,半导体电路事先记录允许通过防火墙在应用程序之间进行 通信的条件。
此外,当应用程序请求与另一应用程序通信时,半导体电路判断 通信请求是否满足记录的条件。
此外,当判断通信请求满足记录的条件时,半导体电路根据通信请求进行应用程序之间的通信。
本发明第十二方面的程序是使半导体电路执行独立执行受防火墙 保护的若干应用程序的例程,事先记录允许通过防火墙在应用程序之 间进行通信的条件的例程,当应用程序请求与另 一应用程序通信时, 判断通信请求是否满足记录的条件的例程,和当判断通信请求满足记 录的条件时,根据通信请求进行应用程序之间通信的例程的程序。
本发明第十三方面的数据处理方法是半导体电路或者半导体电路
:处i方法,包括下述步骤使半导体电路具有由若干层组成的软件 结构,并使对应于每层的下栽签名验证密钥信息能够被半导体电路查 看,当接收下载请求时,使半导体电路利用下载签名验证密钥信息验 证根据下载请求产生的下载签名信息,以下栽签名信息合法为条件,
证密钥信息相对应的一层的程序。
此外,本发明第十三方面的数据处理方法还包括下述步骤使验 证设备保存和允许被下载的程序所属 一层相对应的访问主密钥信息, 使验证设备把下载请求传送给半导体电路,和使验证设备使用该访问 主密钥信息产生下载签名信息,并把该下载签名信息传送给半导体电 路。
此外,本发明第十三方面的数据处理方法还包括下述步骤使验 证设备保存半导体电路的识别信息,使验证设备利用访问主密钥信息 对呈明文形式的识别信息加密,从而产生下载主密钥信息,并且使用 该下载主密钥信息产生下载签名信息。
本发明第十四方面的半导体电路是具有由若干层组成的软件结构 的半导体电路,其中半导体电路能够查看对应于每层的下载签名验证 密钥信息,当接收下载请求时,利用下载签名验证密钥信息验证根据 下载请求产生的下载签名信息,并且以下载签名信息合法为条件,允
许下载请求的发出者把和用于该验证的下载签名验证密钥信息相对应储电路。
当接收下栽请求时,本发明第十四方面的半导体电路利用下载签 名验证密钥信息,验证对应于该下载请求产生的下载信号信息。
此外,以下载签名信息合法为条件,该半导体电路允许下载请求
的发出者把和用于该验证的下载签名验证密钥信息相对应一层的程序 下载到该半导体电路或者该半导体电路可访问的半导体存储电路。
本发明第十五方面的验证设备是当把在半导体电路中运行的程序
电路访问的半导体存储设备时,用于验证的验证设备,所述验证设备 保存和允许被下载的程序所属一层相对应的访问主密钥信息,把下载 请求传送给该半导体电路,并且利用该访问主密钥信息产生下栽签名 信息,和把该下载签名信息传送给该半导体电路。
本发明第十五方面的验证设备首先把下载请求传送给该半导体电路。
此外,该验证设备使用访问主密钥信息产生下载签名信息。 此外,验证设备把下载签名信息传送给该半导体电路。 本发明第十六方面的程序是将由具有由若干层组成的软件结构的 半导体电路执行的程序,包括利用所述若干层中对应一层的下载签名 验证密钥信息,验证当接收下载请求时根据这样的下载请求产生的下 载签名信息的例程,和以下载签名信息合法为条件,允许下载请求的 发出者把和用于该验证的下载签名验证密钥信息相对应一层的程序下
程。 " " p。," 、'
本发明第十七方面的半导体电路是具有数据处理电路和数据输入 /输出处理电路的半导体电路,其中数据处理电路通过数据输入/输出处 理电路相对于该半导体电路之外的总线输入输出数据,数据输入/输出 电路对以预定数据长度为单位从数据处理电路输入的数据加密,并把 加密后的数据输出给该总线,对从总线输入的数据解密,并把解密后
的数据输出给数据处理电路,当Nc/Nb-n时,以m个数据输入/输出交易为单位,通过总线执行数据输入/输出交易,这里总线的宽度为
Nb,数据长度为Nc, n或者更大值( ii or more )的最小整数为m。
本发明第十七方面的半导体电路通过数据输入/输出处理电路相 对于该半导体电路之外的总线输入输出数据。
此时,数据输入/输出电路对以预定数据长度为单位从数据处理电 路输入的数据加密,并把加密后的数据输出给该总线。
此外,数据输入/输出电路对从总线输入的数据解密,并把解密后 的数据输出给数据处理电路。
此时,当Nc/Nb=n时,该数据输入/输出设备以m个数据输入/输 出交易为单位,通过外部总线执行数据输入/输出交易,这里总线的宽 度为Nb,数据长度为Nc, n或者更大值(nor more)的最小整数为 m。
此外,在本发明第十七方面的半导体电路中,当根据从数据处理 电路输入的第一地址访问半导体存储电路时,数据输入/输出电路最好 把第一地址转换成第二地址,以便以其中保存Nc的数据的存储区为 单位访问半导体存储电路,并且使用第二地址访问该半导体存储电路。
本发明第十八方面的数据处理方法是当半导体电路和半导体存储 电路通过总线相连时,当半导体电路访问半导体存储电路时,由半导 体电路执行的数据处理方法,包括下述步骤对将以预定数据长度为 单位写入半导体存储电路的数据加密,并把加密数据输出给总线,对 从总线输入的数据解密,和当Nc/Nb=n时,以m个数据输入/输出交 易为单位,通过总线执行数据输入/输出交易,这里总线的宽度为Nb, 数据长度为Nc, n或者更大值(nor more)的最小整数为m。
本发明第十九方面的数据处理设备包括保存若干程序的指令和数 据的存储电路,通过传输线路访问存储电路,并使用若干程序的指令 和数据执行若干程序的计算电路,置于传输线路和存储电路之间,用 于根据控制信号把传输线路和存储电路设置成连接状态和断开状态之 一的连接转换电路,根据为所述若干程序中的每个程序限定当计算电 路正在执行所述若干程序时,存储电路中能够被访问的地址范围的访问范围定义数据,存储电路中计算电路为其发出访问请求的地址,和 说明计算电路正在执行所述若干程序中的哪个程序的执行程序指示信 息产生控制信号,控制把传输线路和存储电路设置成连接状态和断开 状态之一的连接控制电路,和通过传输电路相对于计算电路输入输出 数据,并且相对于该数据处理设备外部输入输出数据的输入/输出接口 电路。
此外,在本发明第十九方面的数据处理设备中,当存储电路中计 算电路为其发出访问请求的地址在由访问范围定义数据限定的和正被 执行的程序对应的地址范围之内时,连接控制电路最好产生指示把传 输线路和存储电路设置成连接状态的控制信号,并且当所述地址不在 该地址范围之内时,产生指示把传输线路和存储电路设置成断开状态 的控制信号。
本发明第二十方面的半导体电路是执行程序的半导体电路,包括 第一传输线路,保存执行程序的指令或数据的存储电路,根据通过第 一传输线路从存储电路读取的指令操作的计算电路,根据第一控制信 号把第一传输线路和存储电路设置成连接状态和断开状态之一的第一 连接转换电路,根据第二控制信号把该半导体电路之外的第二传输线 路和第一传输线路设置成连接状态和断开状态之一的第二连接转换电 路,和当把指示连接的第一控制信号输出给第一连接转换电路时,向 第二连接转换电路输出指示断开的第二控制信号,当把指示断开的第 一控制信号输出给第一连接转换电路时,向笫二连接转换电路输出指 示连接的第二控制信号的连接控制电路。
此外,在本发明第二十方面的半导体电路中,第二连接转换电路 通过第二传输线路与位于该半导体电路之外的存储设备相连。
此外,在本发明第二十方面的半导体电路中,当计算电路从存储 电路读取指令时,连接控制电路把指示连接的第一控制信号输出给第 一连接转换电路,并把指示断开的第二控制信号输出给第二连接转换 电路。
本发明第二十一方面的半导体电路是一种执行程序的半导体电路,包括保存程序的加密指令或数据,对将通过该半导体电路之外的 第 一传输线路输出给存储设备的数据加密,并对通过第 一传输线路从 存储设备输入的加密指令或数据解密的加密/解密电路,利用解密指令 或数据进行计算的计算电路,根据控制信号选择是否许可位于该半导 体电路之外的第二传输线路和计算电路之间的通信的选择电路,当计 算电路正在利用该程序的指令或数据进行处理时,向选择电路输出指 示不允许第二传输线路和计算电路之间通信的控制信号的控制电路。
本发明第二十二方面的数据处理设备是包括存储电路和半导体电 路的数据处理设备,所述存储电路在预定的存储区中保存均由若干数 据模块构成的若干应用程序,所述若千数据模块包括描述与集成电路 通信从而提供服务的处理例程的处理例程数据,以及保存表示链接在 一起的数据模块、用于在根据该数据模块的处理中使用另 一数据模块 的第一密钥数据,和用于在根据该数据模块的处理中相对于集成电路 传送数据的第二密钥数据的管理数据,所述半导体电路根据数据模块 执行和服务相关的处理,在该处理中查看管理数据,利用对应于该数
据模块的第一密钥数据使用另一数据模块,并且利用对应于该数据模 块的第二密钥数据相对于集成电路传送数据。
此外,在本发明第二十二方面的数据处理设备中,存储电路最好 以数据模块的形式至少保存利用数据模块执行的处理的日志数据,显 示把数据模块记录到存储区中的例程的程序数据,显示从存储区删除 数据模块的记录的例程的程序数据,和显示限定用于保存应用程序的 存储区的例程的程序数据之一 。
此外,在本发明第二十二方面的数据处理设备中,当半导体电路 将执行根据另 一数据模块的处理时,半导体电路最好使用管理数据获 得对应于预定数据模块的第一密钥数据和对应于另一数据模块的第一 密钥数据,并且以获得的两个第一密钥数据相符为条件,从正在执行 的预定数据模块使用所述另 一数据模块。
本发明第二十三方面的数据处理方法是与集成电路通信,进行提
限理方法,包括下迷步骤当存储电路在预定存储区中保存均由包括描 述与集成电路通信从而提供服务的处理例程的处理例程数据在内的若 干数据模块组成的若干应用程序,以及保存显示链接在一起的数据模 块,用于在根据该数据模块的处理中使用另 一数据模块的第 一密钥数 据,和用于在根据该数据模块的处理中相对于集成电路传送数据的第 二密钥数据的管理数据时,使半导体电路根据该数据模块执行和服务 相关的处理,使半导体电路在与服务相关的处理中查看管理数据,并 利用对应于该数据模块的第 一密钥数据使用另 一数据模块,和使半导 体电路在与服务相关的处理中使用对应于该数据模块的第二密钥数据 相对于集成电路传送数据。
本发明第二十四方面的程序是由半导体电路执行的用于与集成电 路通信,从而执行提供服务的处理,并且相对于存储电路传送数据的 程序,包括当存储电路在预定存储区中保存均由包括描述与集成电路
成的若干应用程序,以及保存显示链接在一起的数据模块,用于在根 据该数据模块的处理中使用另 一数据模块的第 一 密钥数据,和用于在 根据该数据模块的处理中相对于集成电路传送数据的第二密钥数据的 管理数据时,根据该数据模块执行和服务相关的处理的例程,在与服 务相关的处理中查看管理数据,并利用对应于该数据模块的第一密钥 数据使用另 一数据模块的例程,和在与服务相关的处理中使用对应于 该数据模块的第二密钥数据相对于集成电路传送数据的例程。 根据上面说明的本发明,可获得下述效果。
即,根据本发明的第一到第三方面,能够提供可根据大量处理请 求高效进行处理的数据处理方法、半导体电路和程序。
根据本发明的第四到笫六方面,可提供在不向用户告知高度机密 信息的情况下,使用户能够产生并定制该用户的将由服务器执行的应 用程序。
根据本发明的第七到第九方面,能够提供当在相同的半导体电路 上运行若干应用程序时,可防止每个应用程序受另 一应用程序影响的数据处理方法、半导体电路和程序。
根据本发明的第十到第十二方面,能够提供考虑到上述现有技术 产生的,并且当在相同的半导体电路上运行若干应用程序时,在防止 每个应用程序受到另一应用程序的用户的非法窜改、监视等的同时, 允许根据需要在应用程序之间传送数据的数据处理方法、半导体电路 和程序。
根据本发明的第十三到第十六方面,能够提供可根据其权限限制
对服务器等的半导体电路的访问内容的数据处理方法、半导体电路、
验证设备和程序。
根据本发明的第十七和第十八方面,能够提供即使当通过外部总 线在半导体电路和半导体存储电路之间传输高度机密的数据时,也能
够保持数据的机密性的半导体电路和数据处理方法。
根据本发明的第十九方面,能够提供当执行若干程序时,可保持 程序之间指令和数据的机密性的数据处理设备。
根据本发明的第二十和第二十 一 方面,能够提供可提高被执行程 序的机密性的半导体电路。
根据本发明的第二十二到第二十四方面,能够提供当提供利用ic
卡或者其它集成电路时,可提高运行于服务器上的应用程序的安全性 的数据处理设备、方法和程序。
图l是本发明的一个实施例的通信系统的整体结构的视图。
图2说明了图1中所示的SAM芯片的软件配置。
图3是图1中所示的IC卡的IC的功能方框图。
图4说明了保存在图3中所示的存储器中的信息。
图5说明了保存在图1中所示的SAM装置的外部存储器中的信
图6说明了图5中所示的服务定义表数据。
图7说明了 SAM芯片中利用图5中所示的服务定义表数据和脚本程序的处理。
图8说明了脚本程序中使用的命令。 图9是图1中所示的SAM芯片的功能方框图。 图IO说明了保存在图9中所示的存储器中的数据。 图ll说明了由SAM芯片产生的IC卡实体数据的格式。 图12说明了图11中所示的IC卡实体数据的状态变换图。 图13说明了图10中所示的IC卡过程管理任务的处理例程。 图14说明了图1中所示的通信系统的整体操作。 图15说明了图1中所示的通信系统的整体操作。 图16说明了 IC卡和SAM芯片之间的通信协议。 图17是更具体地表示图9中所示的SAM芯片的功能块的功能方 框图。
图18说明了 SAM芯片的另一种使用模式。
图19是本发明 一个实施例的通信系统的整体结构的视图。
图20说明了图19中所示的SAM芯片的软件配置。
图21是图19中所示的IC卡的IC的功能方框图。
图22说明了保存在图21中所示的存储器中的信息。
图23说明了图19中所示的SAM装置的外部存储器。
图24说明了图23中所示的模块管理数据的格式。
图25是图1中所示的SAM芯片的功能方框图。
图26说明了由图25中所示的CPU执行的任务。
图27是说明把应用程序从个人计算机下载到图19中所示的外部
存储器的操作的流程图。
图28是说明执行图19中所示的应用程序的SAM芯片的操作的流程图。
图29说明了应用程序执行过程中的操作。 图30说明了图19中所示的的系统的整体操作。 图31是更详细地表示图25中所示的SAM芯片的功能块的功能方 框图。图32说明了 SAM芯片的另一种使用模式。 图33说明了本发明一个实施例的通信系统的整体结构。 图34说明了图33中所示的SAM芯片的软件配置。 图35是图33中所示的IC卡的IC的功能方框图。 图36说明了保存在图35中所示的存储器中的信息。 图37是图33中所示的SAM装置的外部存储器的视图。 图38说明了图37中所示的AP选择数据。 图39说明了图37中所示的AP间通信数据。 图40是图33中所示的SAM芯片的功能方框图。 图41说明了由图40中所示的CPU执行的任务。 图42说明了图41中所示的结算处理例程任务的功能。 图43是说明图41中所示的AP间通信任务的处理的流程图。 图44说明了图41中所示的SAM间通信任务。 图45说明了图33中所示的通信系统的整体操作。 图46是更详细地表示图40中所示的SAM芯片的功能块的功能方 框图。
图47说明了 SAM芯片的另一种使用模式。 图48是本发明一个实施例的通信系统的整体结构的视图。 图49说明了图48中所示的SAM芯片的软件配置。 图50是利用图48中所示的应用程序的企业的身份验证装置的功 能方框图。
图51说明了图50中所示的相互验证装置的功能。 图52说明了图50中所示的下载处理装置的功能。 图53是图48中所示的处理程序层的软件开发者的身份验证装置
的功能方框图。
图54说明了图53中所示的下载处理装置的功能。
图55是图48中所示的SAM芯片的管理人员的身份验证装置的功
能方框图。
图56说明了图55中所示的下载处理装置的功能。图57说明了图48中所示的SAM装置的外部存储器。
图58是图48中所示的SAM芯片的功能方框图。
图59是说明把应用程序从个人计算机下载到图48中所示的外部
存储器的操作的流程图。
图60说明了使用图48中所示的通信系统的IC卡的交易的处理。 图61是更详细地表示图58中所示的SAM芯片的功能块的功能方框图。
图62说明了 SAM芯片的另一种使用模式。 图63说明了图48中所示的通信系统的f^改。 图64是本发明一个实施例的通信系统的整体结构的视图。 图65说明了图64中所示SAM芯片的软件配置。 图66说明了图64中所示的SAM装置的外部存储器。 图67是图64中所示SAM芯片的功能方框图。 图68说明了图66中所示的CPU、总线扰频装置和外部存储器之 间的关系。
图69说明了图68中所示的CPU和外部存储器之间的地址空间。 图70是图67中所示的总线扰频装置的功能方框图。 图71说明了由图67中所示的总线扰频装置进行的外部存储器的 写操作。
图72是图71中所示操作的流程图。
图73说明了由图67中所示的总线扰频装置进行的外部存储器的 读操作。
图74是图73中所示操作的流程图。
图75说明了图70中所示的扰频密钥管理装置中扰频密钥的交换 处理。
图76说明了图70中所示的扰频密钥管理装置中扰频密钥的交换 处理。
图77说明了图70中所示的扰频密钥管理装置中扰频密钥的交换 计时。图78说明了图70中所示的扰频密钥管理装置中扰频密钥的交换 计时。
图79说明了图70中所示的流水线(pipeline )处理控制装置进行
的流水线处理。
图80说明了图64中所示的通信系统的整体操作。
图81是更详细地表示图67中所示的SAM芯片的功能块的功能方框图。
图82说明了 SAM芯片的另一种使用模式。
图83是构成本发明的相关技术的电子结算中使用的计算机的功 能方框图。
图84说明了图83的计算机的软件结构和本发明的一个实施例。
图85说明了由图83中所示的计算机处理的IC卡的类型。
图86说明了写入之前图83中所示存储器的存储状态。
图87说明了写入之后图83中所示存储器的存储状态。
图88说明了应用程序和图84中所示的IC卡类型之间的对应关系。
图89是根据本发明一个实施例的计算机的结构的视图。
图卯是图89中所示的判断电路的结构。
图91是图卯中所示取出(fetch)判断电路的结构的视图。
图92说明了图91中所示的取出范围限定数据。
图93是图91中所示的取出AP间调用关系限定数据的视图。
图94是图90中所示的读出判断电路的结构的视图。
图95说明了图94中所示的读出范围限定数据。
图96说明了图94中所示的读出AP间调用关系限定数据。
图97是图90中所示的写入判断电路的结构的视图。
图98说明了图97中所示的写入范围限定数据。
图99说明了图97中所示的写入AP间调用关系限定数据。
图IOO说明了本发明的另一实施例。
图IOI说明了本发明的另一实施例。图102是本发明第一实施例的半导体芯片的结构视图。 图103说明了图102中所示的半导体芯片的软件配置。 图104说明了图102中所示的程序模块的结构。 图105是本发明第二实施例的半导体芯片的结构视图。 图106说明了图105中所示程序模块的结构。 图107说明了由图105中所示的加密/解密电路执行的加密和解密 单元以及奇偶校验数据。
图108说明了由图105中所示的加密/解密电路保存的密钥信息表。
图109是本实施例的通信系统的整体结构的视图。
图IIO说明了图109中所示的SAM芯片与之通信的另一SAM芯片。
图lll说明了图109中所示的SAM芯片与之通信的另一SAM芯片。
图112是图109中所示IC卡的功能方框图。 图113是说明图112中所示存储器的视图。 图114"^兌明了图109中所示SAM芯片的软件结构。 图115说明了图109中所示外部存储器的存储区。 图116说明了图115中所示的应用程序AP。 图117说明了图116中所示的应用单元数据APE的类型。 图118说明了图109中所示的SAM芯片的处理。 图119说明了在图118中所示的IC卡操作宏命令脚本程序中使用 的命令。
图12(H兌明了图115中所示的AP管理存储区。
图121说明了图120中所示的AP管理表数据。
图122说明了 SAM—ID。
图123说明了图120中所示的APP表数据。
图124是图109中所示的SAM芯片的功能方框图。
图125说明了保存在图124中所示存储器中的任务、程序和数据。图126说明了 IC卡实体数据73—x的格式。
图127说明了图126中所示实体状态数据的状态变换。
图128是由IC卡过程管理任务执行的处理的流程图。
图129说明了当根据执行图128的步骤ST4的作业时,由应用单
元数据APE限定的例程,访问或处理由其它应用单元数据APE限定
的数据时,SAM芯片执行的处理。
图130说明了当根据执行图128的步骤ST4的作业时,由应用单
元数据APE限定的例程,访问或处理由其它应用单元数据APE限定
的数据时,SAM芯片执行的处理。
图131说明了图109中所示的通信系统的整体操作。 图132说明了图109中所示的通信系统的整体操作。 图133是说明现有技术的视图。
具体实施例方式
下面将参考
本发明的实施例。 第一实施例
本实施例是对应于本发明的第 一到第六方面的实施例。 图1是本实施例的通信系统1的总体结构。
如图1中所示,通信系统1使用服务器2、 IC卡3、读卡机/写卡 机4、个人计算机5、 ASP (应用服务提供者)服务器6和SAM (保 密应用模块)装置9通过因特网IO通信,并且利用IC卡3 (本发明 的集成电路)完成结算处理或者其它过程的处理。
SAM装置9具有外部存储器7和SAM芯片(本发明的半导体电 路)8。
SAM芯片8具有如图2中所示的软件配置。
如图2中所示,从底层到顶层,SAM芯片8具有HW(硬件)层、 OS层、低级处理程序层、高级处理程序层和AP层。 低级处理程序层包括驱动程序层。
这里,AP层包括确定信用卡公司或者图1中所示的其它企业15—1、 15_2和15_3使用IC卡3的过程的应用程序AP_1、 AP—2和 AP—3。
在AP层,在应用程序AP—1、 AP_2及AP_3和高级处理程序层 之间设置防火墙FW。
应用程序AP一1由后面说明的保存在外部存储器7中的服务定义 表数据(对应性指令数据)20_1和脚本程序(操作描述程序)21一1确 定。
应用程序AP一2由后面说明的保存在外部存储器7中的服务定义 表数据(对应性指令数据)20_2和脚本程序(操作描述程序)21—2确 定。
应用程序AP—3由后面说明的保存在外部存储器7中的服务定义 表数据(对应性指令数据)20_3和脚本程序(操作描述程序)21—3确 定。
SAM芯片8通过SCSI端口 、以太网等与ASP服务器6相连。 ASP服务器6通过因特网10与若干终端设备相连,包括最终用户的个 人计算机5和企业15—1、 15一2和15—3的个人计算机16_1、 16—2和 16_3。
个人计算机5通过串口或USB端口与Dumb型读卡机/写卡机4 相连。读卡机/写卡机4实现与IC卡3的物理无线通信。
在SAM装置9 一侧产生发送给IC卡3的操作命令并分析来自于 IC卡3的响应分组。于是,读卡机/写卡机4、个人计算机5、和置于 它们之间的ASP服务器6只起把命令或响应内容保存在数据有效负载 部分中并且中继数据有效负载部分的作用。它们不参与数据的加密或 解密、身份验证和IC卡3中的其它实际操作。
个人计算机16—1、 16—2和16—3可把后面说明的脚本程序下载到 SAM芯片上,从而定制它们的应用程序AP_1、 AP—2和AP—3。
下面说明图1中所示的組件。
图9是图1中所示的SAM芯片的功能方框图。
如图9中所示,SAM芯片8具有ASPS通信接口装置60,外部存 储器通信接口装置61,总线扰频装置62,随机数发生器63,加密/解 密装置64,存储器65和CPU66。
SAM芯片8是防窜改模块。
ASPS通信接口装置60是用于和图1中所示的ASP服务器6的数 据输入和输出的接口。
外部存储器通信接口装置61是用于和外部存储器7的数据输入和 输出的接口。
当通过外部存储器通信接口装置61输入和输出数据时,总线扰频
装置62对输出数据编码加密并对输入数据解密。
随机数发生器63产生身份验证处理时使用的随机数。 加密/解密装置64对数据加密并对加密数据解密。 如后所述,存储器65保存CPU66使用的任务、程序和数据。 CPU66根据预定的程序(本发明的程序),从而执行后面说明的
脚本下载任务、脚本解释任务、实体产生任务(作业管理数据产生任
务)和IC卡过程管理任务(作业管理数据管理任务),以及其它任务。 下面说明保存在存储器65中的任务、程序和数据。 图10说明了保存在存储器65中的任务、程序和数据。 如图IO中所示,存储器65保存脚本下栽任务69、脚本解释任务
70、实体产生任务71、 IC卡过程管理任务72、 IC卡操作宏命令脚本程序21—1-21_3、服务定义表20_1-20—3、IC卡实体模板数据30—1-30—3、 1(:卡实体数据73_乂、输入数据块31—xl、输出数据块32—x2、日志数 据块33一x3、和计算定义数据块34_x4。
如图7中所示,脚本下载任务69从企业的计算机下栽服务定义表 数据20—1-20_3,并把它们加载到SAM芯片8中。
脚本解释任务70使用服务定义表数据和脚本程序产生各个企业 的IC卡实体模板数据、输入数据块、输出数据块、日志数据块和计算 定义数据块。
为各个企业产生的数据块的数目不受特别限制。
当实体产生任务71从ASP服务器6接收实体产生请求时,它相 对于IC卡3进行轮询,随后利用对应于企业的IC卡实体模板数据产 生ic卡实体数据,所述IC卡实体数据用于IC卡3和该企业之间的 过程的处理。此时,IC卡实体模板数据变成类别,以该类别的实例的 形式产生IC卡实体数据。
实体产生任务71产生IC卡实体数据的处理将在后面详细说明。
IC卡过程管理任务72使用存在于存储器65中的一个或多个IC 卡实体数据73_x执行IC卡3和企业15—1-15_3之间的过程的处理。
本实施例中,在若干IC卡3和企业15一1一15—3之间执行的过程的 若干处理同时进行。
IC卡过程管理任务72并行执行多个过程的若干处理。
当 一 系列的过程完成时,IC卡过程管理任务72删除IC卡实体数 据73一x。
IC卡过程管理任务72的处理将在后面详细说明。 脚本程序21_1—21_3由脚本下载任务69从外部存储器7输入存储 器65。
服务定义表数据20—1-20—3由脚本下载任务69从外部存储器7输 入并保存到存储器65中。
IC卡实体模板数据30—1-30—3由脚本解释任务70产生,并且当 产生与相应企业有关的过程的IC卡实体数据73—x时,被用作才莫板(类别)。
通过利用IC卡实体模板数据30—1-30—3作为类别,实体产生任务 71以类别的一个实例的形式产生IC卡实体数据73—x。
输入数据块31一xl、输出数据块32—x2、日志数据块33—x3和计算 定义数据块34一x4由脚本解释任务70产生。
下面说明IC卡实体数据73一x。
当SAM芯片8从ASP服务器6接收利用IC卡3和预定企业的 应用程序进行处理的处理请求时,通过利用SAM芯片8中已由实体 产生任务71产生的对应企业的IC卡实体冲莫板数据产生IC卡实体数 据73一x。
图11说明了 IC卡实体数据73一x的格式。
如图11中所示,IC卡实体数据73j具有管理指针信息80、实体 ID信息81、实体状态信息(状态数据)82、 IC卡类型信息83、服务 类型单元指定信息84、处理顺序信息(处理顺序数据)85、预处理信 息86和后处理信息87。
管理指针信息80是用于管理存储器65中的IC卡实体数据73—x 的双向指针。
实体ID信息81用于IC卡实体数据73_x的产生、进程状态的确 认、删除或者剩余的一系列使用IC卡实体数据73—x的处理的请求。 实体ID信息81还变成给予最终用户的返回值。当在通用文件系统中 打开文件时,实体ID信息81对应于描述符。
实体状态信息82表示与IC卡3相关的过程的进程的状态。
如图12中所示,IC卡实体数据73—x的基本状态包括调查IC卡 3能够使用的服务的处理的状态(RS) , SAM芯片8借助其验证IC 卡3的处理的状态(Al) , IC卡3借助其验证SAM芯片8的处理的 状态(A2),从IC卡3读取数据的处理的状态(R)和把数据写入 IC卡3的处理的状态(W)。
本实施例中,调查企业的处理,SAM芯片8验证IC卡3的处理, IC卡3验证SAM芯片8的处理,从IC卡3读取数据的处理和把数据写入IC卡3的处理对应于作业。
如后所述,"作业"是IC卡过程管理任务72为其确定执行顺序 的处理单元。
注意Al和A2构成IC卡3和SAM芯片8之间的相互验证处理。 此外,本实施例中,考虑到因特网10上的通信时间,如图12的 状态变换图中所示,上面提及的基本状态被分成启动后(在发出命令 之后)状态和完成(在接收响应之后)状态。
具体地说,使用IC卡实体数据73_x的处理的状态由实例产生(IC 卡实体数据产生)状态、RS启动后状态、RS完成状态、Al启动后状 态、Al完成状态、A2启动后状态、A2完成状态、R启动后状态、R 完成状态、W启动后状态、W完成状态和实例(IC卡实体数据)删 除状态管理。
IC卡类型信息83是用于确定发出IC卡3的企业的信息。
在产生IC卡实体数据73一x时,利用由上面提及的脚本程序中的 CI命令确定的信息设置IC卡类型信息83。
服务类型单元指定信息84表示在利用IC卡实体数据73_x的处理 中所使用的服务定义表数据中定义的服务的服务类型单元。
在产生IC卡实体数据73一x时,利用上面提及的脚本程序中的CS 命令指定的一个或多个服务类型单元设置服务类型单元指定信息84。
处理顺序信息85表示在利用IC卡实体数据73_x中使用的服务 (作业)的执行顺序,即图12中所示的状态变换。
即,处理顺序信息85使用服务类型单元表示对应于IC卡3的基 本操作的作业的执行顺序。
这里如后所述,作业对应于图12中所示的RS、 Al、 A2、 R和W。 关于IC卡3的具体操作由利用作业指定的处理顺序实现。例如,对于 在只存在读取而不进行相互验证的情况下使用IC卡3的处理来说,利 用"RS—R"设置处理顺序信息85。此外,就进行相互验证的读取和 写入来说,利用"RS—Al—A2—R—W"设置处理顺序信息85。
当产生IC卡实体数据73 x时,利用图12中所示的和在上面提及的脚本程序中的cs命令中指定的服务单元的顺序对应的作业顺序设 置处理顺序信息85。
利用用于执行使用IC卡实体数据73—x的管理数据,从ASP服务 器6 —侧设置预处理信息86。
例如,利用在SF数据块中指定的服务的计算公式的点数设置预 处理^f言息86。
此外,当没有定义服务间计算函数时,利用所请求的处理费用 (charge) i殳置预处理4言息86。
例如,就结算来说,设置和赋予的费用数额或者点数等相关的状态。
利用在ASP服务器6 —侧所需的IC卡实体数据73一x的处理结果 的数据设置后处理信息87。例如,就结算来说,利用表示正常结束结 算的数据设置后处理信息87。
下面将说明图10中所示的和使用若干IC卡实体数据73_x的若干 IC卡3相关的IC卡过程管理任务72进行的处理的例程。
IC卡过程管理任务72持续不断地在图9中所示的SAM芯片8 的CPU 66上^皮起动。
图13是IC卡过程管理任务72执行的处理的流程图。
步骤ST1:
IC卡过程管理任务72从存在于存储器65中的若干IC卡实体数 据73_x中选择一个IC卡实体数据73—x用于执行下一处理。
选择IC卡实体数据73_x的方法可能是依次选择存在于存储器65 中的IC卡实体数据73_x,或者分配优先级顺序,并按照最高优先级 的顺序依据优先级进行选择。
步骤ST2:
IC卡过程管理任务72判断在步骤ST1选择的IC卡实体数据73—x 的作业是否已被启动。当判断该作业已被启动时,它进行到步骤ST5 的处理,而当判断该作业还未被启动时,则转到步骤ST3的处理。
步骤ST3:IC卡过程管理任务72根据在步骤ST1选择的IC卡实体数据73_x 的图11中所示的实体状态信息82判断和该实体数据相关的处理处于 图12中所示的状态变换图中的哪一状态,并且根据处理顺序信息85 确定下一步要执行的作业。
此时,处理顺序信息85利用如前所述的服务定义表数据中设置的 服务单元确定作业的执行顺序。
步骤ST4:
IC卡过程管理任务72启动在步骤ST3选择的作业。 IC卡过程管理任务72利用上面提及的输入数据块31—xl,输出数 据块32_x2,日志数据块33_x3和计算定义数据块34一x4中和该作业 相关的数据块执行该作业。
此时,当向执行作业的IC卡3发出命令时,IC卡过程管理任务 72把对应于该作业的服务单元用作搜索服务定义表数据,从而获得对 应于该服务单元的服务编号的关键字(IC卡3的操作命令能够被IC 卡3分析)。此外,IC卡过程管理任务72使用获得的服务编号向IC 卡3发布命令。
此外,如同利用图4说明的那样,当访问IC卡3a的存储区需要 密钥信息时,IC卡过程管理任务72使用对应于该作业的服务单元搜 索服务定义表数据,并获得对应于该^^务单元的密钥信息。此外,IC 卡过程管理任务72使用该密钥信息完成和IC卡3的相互验证,数据 的加密和解密,以及其它处理,并获得访问IC卡3的预定存储区的权 限。
步骤ST5:
当IC卡过程管理任务72向IC卡3发出命令,并且正在等待IC 卡3的处理结果时,执行步骤ST5。
当IC卡过程管理任务72从IC卡3接收处理结果时,它把该结 果放置在IC卡实体数据73一x中。
步骤ST6:
IC卡过程管理任务72更新图11中所示的IC卡实体数据73一x的实体状态信息。
这样,在本实施例中,IC卡过程管理任务72并行进行存在于SAM 芯片8中的若干IC卡3的处理,同时按照顺序选择若干IC卡3的IC 卡实体数据73—x。于是,即使当接收使用若干IC卡3的过程的处理 请求时,SAM芯片8也可同时继续进行处理。
下面将说明图1中所示的通信系统的所有操作。
图14和图15说明了图1中所示的通信系统1的所有操作。
步骤ST21:
企业15_1-15—3或者被这些企业请求的一方在图1中所示的个人 计算机16_1、 16—2和16—3上产生描述由使用IC卡3的企业进行的交 易的处理的脚本程序21—1、 21—2和21—3。
此外,SAM芯片8的管理人员产生对应于企业15_1-15—3的服务 定义表数据20_1、 20—2和20—3。
步骤ST22:
在步骤ST21中产生的服务定义表数据20—1、 20—2和20—3被保 存在外部存储器7中。
此外,通过因特网10、ASP服务器6和SAM芯片8把在步骤ST21 产生的脚本程序21—1、 21—2和21_3从个人计算机16—1、 16_2和16—3 下载到外部存储器7。如图7中所示,该下栽处理由SAM芯片8中的 脚本下载任务69管理。
步骤ST23:
图7中所示的SAM芯片中的脚本解释任务70使用服务定义表数 据和脚本程序产生每个企业的IC卡实体模板数据,输入数据块,输出 数据块,日志数据块和计算定义数据块。
产生的数据被保存在图9中所示的SAM芯片8的存储器65中。
步骤ST24:
用户被发给IC卡3。
如图4中所示,IC卡3的IC 3a的存储器50保存用于用户和企 业达成的交易的密钥信息。注意在发行IC卡3之后,用户和企业还可通过因特网10等相互 订立合同。
步骤ST25:
例如,当用户使用个人计算机5通过因特网10访问服务器2,试 图购买产品时,服务器2通过因特网10向ASP服务器6发出处理请求。
当ASP服务器6从服务器2接收处理请求时,它通过因特网10 访问个人计算机5。此外,如图16A中所示,由IC卡3的读卡机/写 卡机4发出的处理请求通过个人计算机5、因特网IO和ASP服务器6 被传送给SAM芯片8。
步骤ST26:
ASP服务器6向SAM芯片8输出实体产生请求。 实体产生请求保存显示IC卡3的发行者的信息。 步骤S27:
当SAM芯片8接收实体产生请求时,如图16B中所示,它执行 对于IC卡3的轮询。 步骤ST28:
轮询结束之后,SAM芯片8的实体产生任务71判断存在于SAM 芯片8中的IC卡实体数据73_x的数目是否在由脚本程序的SC命令 确定的最大数目之内。如果在最大数目之内,则它转到步骤ST29的 处理,如果不在最大数目之内,则结束处理。
步骤ST29:
实体产生任务71根据保存在实体产生请求中的显示IC卡3的发 行者的信息,指定要使用哪个企业的IC卡实体模板数据,并且使用指 定的IC卡实体才莫板数据产生IC卡实体数据73—x。
这对应于图12中所示的实例产生。
步骤ST30:
SAM芯片8把在步骤ST29产生的IC卡实体数据73—x的实体ID 输出给ASP服务器6。步骤ST31:
SAM芯片8的IC卡过程管理任务72调查IC卡3能够使用的服务。
这是对应于图12中所示的作业RS的处理。 步骤ST32:
SAM芯片8的IC卡过程管理任务72验证IC卡3的合法性。 这是对应于图12中所示的作业Al的处理。 步骤ST33:
IC卡3验证SAM芯片8的合法性。 这是对应于图12中所示的作业A2的处理。
借助步骤ST32和ST33, IC卡3和SAM芯片8相互验证。这对 应于图16C。 步骤ST34:
SAM芯片8的IC卡过程管理任务72读取和写入关于IC卡3的
过程所必需的数据。
这是对应于图12和图16D及16E中所示的作业R和W的处理。 此外,IC卡过程管理任务72使用根据IC卡实体数据73_x的预
处理信息指定的计算公式进行使用从IC卡3读取的数据的预定计算处理。
步骤ST35:
如图16F中所示,SAM芯片8的IC卡过程管理任务72把步骤 ST34的处理结果输出给ASP服务器6。 步骤ST36:
例如,IC卡过程管理任务72删除IC卡实体数据73—x。 如上所述,根据通信系统l,能够为和IC卡一同发生的过程的各 个处理产生IC卡实体数据73一x,并且使IC卡过程管理任务72使用 若干IC卡实体数据73一x同时继续进行关于若干IC卡3的处理。
此外,根据验证系统l,由于把实际用于IC卡3的处理的IC卡 实体数据73 3保存到存储器65中就足够了 ,因此能够有效地使用存储器65的存储区。
另外,根据验证系统l,如图12中所示,由于IC卡过程管理任 务72所处理作业的执行状态被分成启动后状态和完成状态,因此在开 始执行一个作业之后,能够在等待来自于IC卡3的数据的状态下开始 另一作业的处理。于是,能够消除通过因特网10与IC卡3传送数据 引起的等待时间。
此外,根据验证系统1,服务定义表数据描述表示各个企业提供 的服务类型的名称,即服务类型单元,IC卡3中使用的服务的编号, 以及当提供该服务时使用的密钥信息。这保存在外部存储器7中。于 是,不是SAM芯片8的开发者的企业15_1-15一3能够借助脚本程序 21—1、21_2和21—3产生他们自己的运行于SAM芯片8上的应用程序, 并且通过SAM芯片8把这些应用程序下栽到外部存储器7中以供定 制。即,在不把密钥信息、直接操作IC卡3的操作命令或者其它高度 机密的信息告知企业15_1-15—3的情况下,这些企业可定制他们自己 的应用程序。此外,当企业定制其应用程序时,它不必知道密钥信息 或者卡操作命令,从而减轻了企业的负担。
此外,根据验证系统l,由于能够定义生成若干服务的计算内容, 因此能够在IC卡3 —侧提供组合经批准同时执行的大量服务中的若干 服务的不同服务。
此外,根据验证系统1,通过引入数椐块的概念,能够容易地管 理关于IC卡3的数据输入和数据输出以及日志数据。
图17是更具体地表示图9中所示SAM芯片8的功能块的功能方 框图。
如图9中所示,SAM芯片8通过内部总线90与ASPS通信接口 装置60、外部存储器通信接口装置61、总线扰频装置62、随机数发 生器63、加密/解密装置64、存储器65和CPU66。
在图17中所示的SAM芯片8中,如图18中所示,还能够使和 内部总线卯相连的卡I/F装置91与SAM与芯片8外的RF接收/发射 装置92相连,并且通过RF接收/发射装置92的天线92a借助非接触式系统与IC卡3传送数据。 第二实施例
本实施例是对应于本发明的第七到第九方面的实施例。 图19是本实施例的通信系统101的整体结构的示意图。 如图19中所示,通信系统101使用服务器102、 IC卡103(本发 明的集成电路)、读卡机/写卡机104、个人计算机105、 ASP (应用 服务提供者)服务器106、 SAM (保密应用模块)装置109、个人计 算机116—1、 116—2和116—3、以及身份验证装置117_1、 117—2和117—3 通过因特网IO通信,并且执行使用IC卡103的过程的结算处理或者 其它处理。
SAM装置109具有外部存储器107 (本发明的半导体存储电路) 和SAM芯片108 (本发明的半导体电路)。
SAM芯片108具有图20中所示的软件配置。
如图20中所示,从底层到顶层,SAM芯片108具有HW()哽件) 层、OS层、低级处理程序层、高级处理程序层和AP层。
低级处理程序层包括驱动程序层。
这里,AP层包括确定信用卡公司或者图19中所示的其它企业
115— 1、 115—2和115—3使用IC卡103的过程的应用程序AP_1、 AP—2 和AP_3。
在AP层,在应用程序AP—1、 AP一2及AP—3和高级处理程序层 之间设置防火墙FW(本发明的防火墙)。
SAM芯片108通过SCSI端口、以太网等与ASP服务器106相连。 ASP服务器106通过因特网110与若干终端设备相连,包括最终用户 的个人计算机105和企业115一1、115—2和115—3的个人计算机116—1、
116— 2和116一3。
个人计算机105通过串口或USB端口与Dumb型读卡机/写卡机 104相连。读卡机/写卡机104实现与IC卡103的物理无线通信。
在SAM装置109 —侧产生发送给IC卡103的操作命令并分析来 自于IC卡103的响应分组。于是,读卡机/写卡机104、个人计算机105、和它们之间的ASP服务辨106只起把命令或响应内容保存在数
据有效负载部分中并且中继数据有效负栽部分的作用,它们不参与数 据的加密或解密、身份验证和IC卡103中的其它实际操作。
企业115—1、 115_2和115—3使用他们的个人计算机116_1、 116_2 和116_3产生应用程序AP—1、 AP—2和AP—3,并且通过SAM芯片 108经验证装置117—1、 117—2和117_3把产生的应用程序下栽到外部 存储器107中的预定存储区中。
此时,由于企业115_1、 115—2和115—3彼此无关,因此SAM芯 片108事先确定外部存储器107中应用程序AP—1、 AP一2和AP—3可 被下载到的存储区,以及验证是否有权下载到这样的存储区。
此外,在执行应用程序AP—1、 AP一2和AP一3的时候,防火墙FW 限制应用程序AP_1、 AP_2和AP—3之间的数据传送和查看。
当把应用程序AP_1、 AP_2和AP—3下载到SAM芯片108时, 如后所述,验证装置117_1、 117—2和117—3执行与SAM芯片108的 相互验证,产生下载签名验证密钥信息等等。
下面说明图19中所示的组件。
图21是IC卡103的功能方框图。
如图21中所示,IC卡103具有配有存储器150和处理器151的 IC (集成电路)103a。
如图22中所示,存储器150具有由信用卡公司或其它企业115一1 使用的存储区155—1,由企业115一2使用的存储区155—2和由企业 115一3使用的存储区155—3。
此外,存储器150保存用于判断对存储区155—1的权限的存在的 密钥信息,用于判断对存储区155—2的访问权限的密钥信息和用于判 断对存储区155_3的访问权限的密钥信息。密钥信息专用于相互身份 验证、数据的加密和解密等等。
此外,存储器150保存IC卡103或IC卡103用户的身份识别信
命下面将更详细地说明SAM装置109。 [外部存储器10"
图23说明了外部存储器107的存储区。
如图23中所示,外部存储器107的存储区包括保存企业115_1的 应用程序AP—1的AP存储区120—l,保存企业115—2的应用程序AP—2 的AP存储区120_2,保存企业115—3的应用程序AP—3的AP存储区 120一3,由SAM芯片108的管理人员4吏用的AP管理存储区121和密 钥信息存储区122。
保存在AP存储区120_1中的应用程序AP_1由若干程序模块组 成。对AP存储区120—1的访问由防火墙FW—1限制。
保存在AP存储区120—2中的应用程序AP一2由若干程序模块组 成。对AP存储区120—2的访问由防火墙FW一2限制。
保存在AP存储区120—3中的应用程序AP一3由若干程序模块组 成。对AP存储区120—3的访问由防火墙FW—3限制。
本实施例中,上面的程序模块是从SAM装置109之外下载到外 部存储器107的最小单元。构成每个应用程序的程序模块的数目可由 相应的企业自由确定。
此外,保存在外部存储器107中的应用程序AP_1、 AP—2和AP—3 被加密编码。当被读入SAM芯片108时,这些应用程序被解除加密 编码。
此外,应用程序AP—1、 AP_2和AP—3由使用图19中所示的个人 计算机116_1、 116—2和116一3的企业115_1、 115_2和115—3产生, 并且通过SAM芯片108被下载到外部存储器107。
对AP管理存储区121的访问由防火墙FW—4限制。 注意防火墙FW_1、 FW—2、 FW_3和FW—4对应于图20中所示 的防火墙FW。
AP管理存储区121保存图24中所示的模块管理数据130。 模块管理数据130事先记录从个人计算机116—1、 116_2和116_3
下载的程序模块的模块名称和下载签名验证密钥信息(本发明的下载密钥信息)。
即,以具有事先记录于其中的下载签名验证密钥信息的模块管理
数据130为条件允许程序模块的下载。
此外,模块管理数据130把由SAM芯片108执行的程序模块的 模块名称和执行签名验证密钥信息记录于其中。
即,以具有事先记录于其中的执行签名验证密钥信息的模块管理
数据130为条件,获得将由SAM芯片108执行程序模块的权限。
如图24中所示,模块管理数据130表示限制访问程序模块的防火 墙的防火墙编号(本发明的防火墙识别信息)的一致性,开始地址, 地址长度,下栽签名验证密钥信息,执行签名验证密钥信息和保存在 AP存储区120_1、 120_2和120—3中的应用程序AP_1、 AP—2和AP_3 的各个程序模块的模块名称。
这里,防火墙编号表示防止对程序模块的访问的防火墙的编号。 开始地址表示防火墙限制访问的存储区的开始地址。 地址长度表示防火墙限制防问的存储区的地址长度。 下栽签名验证密钥信息是用于当通过SAM芯片108把程序模块 下栽到外部存储器107时执行的签名验证的密钥信息。
执行签名验证密钥信息用于验证当SAM芯片108执行程序模块 时,给予程序模块的签名信息。例如,本实施例中,每个程序模块被 赋予证明其合法性的签名信息。当程序模块已被非法修改或者窜改, 可使用执行签名验证密钥信息验证签名信息,以确认程序模块的合法 性。
模块名称是分配给程序模块的名称。
密钥信息存储区122保存当执行应用程序AP一l,访问图22中所 示的IC卡103的存储区155—1时所使用的加密密钥信息Kj:i,当执 行应用程序AP—2,访问图22中所示的IC卡103的存储区155_2时 所使用的加密密钥信息K一C2,以及当执行应用程序AP—3,访问图22 中所示的IC卡103的存储区155—3时所使用的加密密钥信息K一C3。
利用密钥信息K X对密钥信息K一C1、 K一C2和K一C3加密。只有SAM芯片108的管理人员才允许对密钥信息存储区122的 访问。
图25是图19中所示的SAM芯片108的功能方框图。 如图25中所示,SAM芯片108具有ASPS通信接口装置160、外 部存储器通信接口装置161,总线扰频装置162,签名处理装置163, 验证处理装置164,加密/解密装置165,存储器166和CPU 167。 SAM芯片108是防窜改模块。
ASPS通信接口装置160是用于关于图19中所示的ASP服务器 106输入输出数据的接口。
外部存储器通信接口装置161是用于关于外部存储器107输入输 出数据的接口。
当通过外部存储器通信接口装置161输入和输出数据时,总线扰 频装置162对输出数据编码加密并对输入数据解密。
如后所述,当通过因特网110把应用程序下栽到外部存储器107 时,以及当执行该应用程序时,签名处理装置163产生签名并验证签 名。
当通过因特网110把应用程序下载到外部存储器107时,验证处
理装置164执行关于另 一方的相互验证。
加密/解密装置165对数据加密,并对加密数据解密。
存储器166保存用于对保存在上面提及的外部存储器107的密钥
信息存储区122中的密钥信息K—Cl、 K_C2和K_C3解密的密钥信息
K一X。
CPU 167根据预定程序(本发明的程序)执行如后所述的任务, 并且执行按照这些任务的执行所指定的应用程序。 图26说明了由CPU 167执行的任务。
如图26中所示,CPU 167执行下载任务170、系统任务171、 AP 任务172 (本发明的程序)和结算处理例程任务173。
如后所述,下载任务170执行通过SAM芯片108,从SAM装置109之外把应用程序下载到外部存储器107的处理。
系统任务171是执行只有IC卡103才有的驱动器管理操作,以及 其它处理的任务。
AP任务172全面管理当SAM芯片108从ASP服务器106或者从 SAM芯片108之外的其它地方接收处理请求时执行的应用程序AP—1、 AP—2和AP一3的执行。
结算处理例程任务173确定当SAM芯片108从ASP服务器106 接收涉及IC卡103的处理请求时,将使用应用程序AP—1、 AP一2和 AP—3中的哪一个。
下面将说明通信系统101的操作的例子。
图27是说明把应用程序AP—l从图19中所示的个人计算机116一1 下栽到外部存储器107的操作的流程图。 步骤ST101:
图19中所示的个人计算机116—1通过验证装置117—l把指定将下 载的各个程序模块的模块名称的下载请求传送给SAM芯片108。 步骤ST102:
运行于图26中所示的SAM芯片108上的下载任务170执行关于 和个人计算机116—1相连的验证装置117_1的相互验证。此外,当相 互验证确认了相互的合法性时,执行步骤ST103的处理。
注意,在本实施例中,可把各种技术用作相互验证技术,不过使 用了下述技术。
验证装置117—1和SAM芯片108都保存有SAM芯片108的身份 识别信息,即SAM一ID,和相互验证主密钥信息。
此外,验证装置117_1利用相互验证主密钥信息对SAMJD加密, 并将其传送给SAM芯片108。 SAM芯片108利用相互验证主密钥对 接收的加密SAM一ID解密,并将其和它自己保存的SAM一ID进行比较。 如果匹配,则确认验证装置117—1的合法性。此外,与此相反,SAM 芯片108利用相互验证主密钥信息对SAM—ID加密,并将其传送给验证装置117_1。验证装置117_1利用相互验证主密钥对接收的加密 SAM—ID解密,并将其和它自己保存的SAM_ID进行比较。如果匹配, 则确i人SAM芯片108的合法性。 步骤ST紙
下载任务170判断在步骤ST101由下载请求指定的各个模块名称 是否记录到模块管理数据130中,所述模块管理数据130保存在外部 存储器107的AP管理存储区121中。
步骤ST104:
当在步骤ST103判断各个模块名称未被记录时,在不进行下载处 理的情况下结束处理,而当判断各个模块名称被记录时,执行步骤 ST105的处理。
步骤ST105:
验证装置117—1利用AP主密钥KEY-A对作为明文的SAM_ID 加密,产生下载签名验证密钥信息。
此外,它把下载签名验证密钥信息或者利用该下载签名验证密钥 信息产生的签名信息传送给SAM芯片108。
步骤ST106:
当在步骤ST105收到下载签名验证密钥信息时,下载任务170判 断接收的下载签名验证密钥信息是否和模块管理数据130中的对应模 块名称的下载签名验证密钥信息匹配。
此外,当在步骤ST105收到签名信息时,下载任务170使用模块 管理数据130中的对应模块名称的下载签名验证密钥信息来判断签名 信息的合法性。
步骤ST107:
当在步骤ST106判断下载签名验证密钥信息匹配时,或者当判断 签名信息合法时,下载任务170转到步骤S108的处理,而在其它情况 下结束处理。
步骤ST108:
下载任务170通过查看模块管理数据130,指定外部存储器107中和在步骤ST101指定的模块名称对应的地址,并且把程序模块从个 人计算机116—1下载到外部存储器107上的指定地址。 [执行应用程序的操作]
图28是说明图19中所示的SAM芯片108执行应用程序AP_1的 操作的流程图。 步骤ST111:
当SAM芯片108从ASP服务器106接收执行应用程序AP—1的 请求时,图26中所示的AP任务172执行步骤ST112的处理。 步骤ST112:
在AP任务172执行应用程序AP_1的程序模块时,通过参考模块 管理数据130,它可获得对应于程序模块的模块名称的执行签名验证 密钥信息。
步骤ST113:
AP任务172使用在步骤ST112获得的执行签名验证密钥信息验 证该程序模块的信号信息的合法性。
即,它判断程序模块是否已被非法变更或窜改。 步骤ST114:
当AP任务172在步骤ST113验证该签名信息合法时,它转到步 骤ST115的处理,而当它判断该签名信息不合法时,结束处理。 步骤ST115:
AP任务172执行其签名信息已被判断为合法的程序模块。 注意,作为程序中的子例程,程序模块也可由图25中所示的CPU 167执行。
图40是图33中所示的SAM芯片208的功能方框图。如图40中所示,SAM芯片208具有ASPS通信接口装置260、外部存储器通信接口装置261,总线扰频装置262,签名处理装置263,验证处理装置264,加密/解密装置265,存储器266和CPU267。 SAM芯片208是防窜改模块。
ASPS通信接口装置160是用于关于图33中所示的ASP服务器 206输入输出数据的接口。
外部存储器通信接口装置261是用于关于外部存储器207输入输 出数据的接口。
当通过外部存储器通信接口装置261输入和输出数据时,总线扰 频装置262对输出数据扰频并对输入数据解扰频。 即,外部存储器207以解扰频状态保存数据。
在当通过因特网210把应用程序下栽到外部存储器207时,以及 当执行该应用程序时,如后所述的签名处理装置263产生签名并验证 签名。
当通过因特网210把应用程序下载到外部存储器207时,如后所 述,验证处理装置264执行关于另一方的相互验证。
加密/解密装置265对数据加密,并对加密数据解密。
存储器266保存CPU 267的处理所需的数据。
CPU 267根据预定程序(本发明的程序)执行如后所述的任务, 并且执行按照这些任务的执行所指定的应用程序。
图41说明了由CPU 267执行的4壬务。
如图41中所示,CPU167执行下载任务270、系统任务271、 AP 任务272、结算处理例程任务273、 AP间通信任务274和SAM间通 信任务275。
如后所述,下载任务270执行通过SAM芯片208,从SAM装置 209之外把应用程序下载到外部存储器207的处理。
系统任务271是执行只有IC卡203才有的驱动器管理操作,或者 其它处理的任务。
AP任务272全面管理当SAM芯片208从ASP服务器206或者从 SAM芯片208外的其它地方接收程序请求时执行的应用程序AP_1、 AP 2和AP 3的执行。如图42中所示,当SAM芯片208从ASP服务器206接收关于 IC卡203的处理请求时,结算处理例程任务273根据图38中所示的 AP选择数据231获得对应于包含在处理请求中的IC卡类型信息的AP 的身份识别信息,并且选择和执行对应于该AP身份识别信息的应用 程序AP_1、 AP_2和AP—3。
AP间通信任务274管理应用程序之间的通信。 图43是说明AP间通信任务274的处理的流程图。 这里,所给出的说明举例描述应用程序AP—1发出把数据写入 AP—2的通信请求的情况。 步骤ST201:
当正在执行的应用程序AP—1发出把数据写入AP—2的通信请求 时,执4亍步骤ST202的处理。 步骤ST202:
在步骤ST201发出的通信请求由AP间通信任务274接收。 步骤ST203:
AP间通信任务274查看图39中所示的AP间通信数据232,并且 判断通信程序AP—1是否能够和AP—2通信。 步骤ST204:
当AP间通信任务274在步骤ST203判断可进行通信时,它执行 步骤ST205的处理,而当不能进行通信时,结束处理。
本例中,根据图39,应用程序AP—1能够与AP—2通信,因此执 行步骤ST205的处理。
步骤ST205:
在AP间通信任务274的控制下,应用程序AP_1把数据写入图 37中所示的AP间通信存储区233中。 步骤ST206:
AP间通信任务274向应用程序AP一2通知数据正被写入的事实。 步骤ST207:
应用程序AP 2根据在步骤ST206接收的通知,从AP间通信存储区233读取数据。
由此,完成通过防火墙中继的应用程序AP一1和AP—2之间的通信。 如图44中所示,根据需要,SAM间通信任务275能够起动位于 SAM芯片208之外的SAM芯片208x的SAM间通信任务275,并且 向SAM芯片208x的SAM间通信任务275发出远程命令。
当SAM芯片208的处理负荷变大,并且它不能适当地执行处理 时,这种远程命令由SAM芯片208的SAM间通信任务275发送给 SAM芯片208x的SAM间通信任务275,请求SAM芯片208x至少执 行分配给SAM芯片208的部分处理。
下面将说明图33中所示的通信系统201的整体操作。 图45说明了图33中所示的通信系统201的整体操作。 步骤ST231:
企业215_1-215_3或者被这些企业请求的一方在图33中所示的个 人计算机216_1、 216_2和216_3上产生这些企业的应用程序AP—1、 AP_2和AP_3,以i更执行关于利用IC卡203的交易的处理。
步骤ST232:
应用程序AP—1、 AP—2和AP—3通过验证装置217—1、 217—2和 217—3从个人计算机216—1、 216—2和216—3被下载到SAM芯片208。 步骤ST233: 用户被发给IC卡203。
如图36中所示,IC卡203的IC 203a保存用于用户与签约企业 的交易的密钥信息。
注意,用户和企业之间的交易可在发行IC卡203之后,通过因特 网2110等締结。
步骤ST234:
例如,当用户希望使用个人计算机205通过因特网210访问服务 器202并购买产品时,服务器202通过因特网210向ASP服务器206 发送处理请求。
当ASP服务器206从服务器202接收处理请求时,ASP服务器206通过因特网210访问个人计算机205。此外,由读卡机/写卡机204 发出的关于IC卡203的处理请求通过个人计算机205、因特网210 和ASP服务器206被发送给SAM芯片208。 步骤ST235:
根据在步骤ST234接收的处理处理请求,SAM芯片208借助结算 处理例程任务273选择应用程序,并且执行选择的应用程序。
在应用程序的执行中,在应用程序之间进行的任意通信由如上提 及的图43中所示的AP间通信任务274完成。
步骤ST236:
SAM芯片208把应用程序的执行结果输出给ASP服务器206。 如上所述,根据通信系统201,如图34和图37中所示,防火墙 限制应用程序APJ、 AP—2和AP—3相互访问,因此能够防止应用程 序受到非法监视和窜改。此外,能够提高各个应用程序的机密性。 此外,根据通信系统201,通过图41中所示的AP间通信任务274 使用图37中所示的外部存储器207的AP管理存储区221完成图43 中所示的处理,在预先许可的范围内允许应用程序之间的通信。 于是,能够通过若干应用程序的同步和合作提供不同的服务。 就这种不同的服务而论,例如,存在图41中所示的结算处理例程 273自动选择应用程序的情况。即,虽然计算内容的层次相同,但 是对于按照IC卡203的发行者在结算协议方面不同的结算处理来 说,如果已知IC卡203的类型,则可自动确定对应的应用程序。于 是,通过在结算处理例程任务273的层次记录结算处理,则可自动 确定IC卡203的类型和对应的应用程序。由此,可减轻应用程序开 发人员的负担。
此外,根据通信系统201,由于保存在外部存储器207中的信息 被图40中所示的SAM芯片208的总线扰频装置262扰频,因此对 于来自外部的分析来说,存在相当高的机密性。
此外,根据通信系统201,通过提供图41中所示的SAM间通信 任务275,能够把SAM芯片208的处理负担分散给其它SAM芯片。于是,当把SAM芯片208安装在必须同时应付来自于若干终端设 备的关于结算处理的处理请求的商店服务器等中时,能够使用SAM 间通信任务275的功能提高使用若干SAM芯片208的结算处理能 力。
图46是更详细地表示图40中所示的SAM芯片208的功能块的 方框图。
如图46中所示,SAM芯片208通过内部总线290与ASPS通信 接口装置260、外部存储器通信接口装置261、总线扰频装置262、 加密/解密装置265、存储器266和CPU 267相连。
图40中所示的签名处理装置263和验证处理装置264的部分功能 由CPU 267实现。
如图47中所示,图46中所示的SAM芯片208还可使与内部总 线290相连的卡I/F装置291和SAM芯片208之外的RF接收/发射 装置292相连,并且通过RF接收/发射装置292的天线292a,借助 非接触式系统与IC卡203传送数据。
第四实施例
该实施例是对应于本发明的第13 ~ 16方面的实施例。 图48是本实施例的通信系统301的整体结构的视图。 如图48中所示,通信系统301使用服务器302, IC卡303 (本发 明的集成电路),读卡机/写卡机304,个人计算机305, ASP(应用 服务提供者)服务器306, SAM (保密应用模块)装置309,个人 计算机316—1、 316—2、 316_3、 316—4和316—5,身份验证装置317—1、 317—2、 317_3、 317—4和317—5 (本发明的验证设备)和ICE (线路 内仿真器)318通过因特网310通信,开发或者定制SAM芯片308 的软件,执行利用IC卡303的结算处理,等等。
SAM装置309具有外部存储器307 (本发明的半导体存储电路) 和SAM芯片308 (本发明的半导体电路)。 SAM芯片308具有如图49中所示的软件配置。 如图49中所示,从底层到顶层,SAM芯片308具有HW(硬件)层、OS层、低级处理程序层、高级处理程序层和应用(AP)层。
低级处理程序层确定不依赖于应用程序的处理,并且对应于OSI
协议中的传送层、网络层和数据链路层。 低级处理程序层包括驱动程序层。 驱动程序层执行和LSI的操作有关的处理。
高级处理程序层确定依赖于应用程序的处理,并且对应于OSI协 议中比传送层高的层次。
这里,OS层对应于本发明的第一层,低级处理程序层、驱动程序 层和高级处理程序层对应于本发明的第二层,AP层对应于本发明的第 三层。
AP层包括确定信用卡公司和图48中所示的其它企业315—AP1、
315— AP2和315—AP3使用IC卡303的过程的应用程序AP—1、 AP_2 和AP—3。
在AP层中,在应用程序AP—1、 AP—2及AP—3和高级处理程序 层之间设置防火墙FW(本发明的防火墙)。
在图49中所示的软件配置中,AP层确定各个企业专用的处理,例 如,使用IC卡303的结算处理的内容。直接操作IC卡303的处理由 高级处理程序层以下(on down)各层确定。
SAM芯片308通过SCSI端口 、以太网等与ASP服务器306相连。
ASP服务器306通过因特网310与个人计算机305、316—1 、316—2、
316— 3、 316_4和316—5相连。
个人计算机316一1由SAM芯片308所执行的应用程序AP—1的企 业315_AP1使用。
个人计算机316一2由SAM芯片308所执行的应用程序AP_1的企 业315—AP2使用。
个人计算机316—3由SAM芯片308所执行的应用程序AP_1的企 业315_AP3使用。
个人计算机316—4由能够开发SAM芯片308的高级处理程序层 和包括驱动程序层的低级处理程序层的软件开发者315 MID使用。个人计算机316—5由SAM芯片308的制造者,即有权整体管理 SAM芯片308的软件开发者315_SUP使用。
企业315—API 、 315—AP2和315—AP3使用个人计算机316—1 、316—2 和316—3产生应用程序AP—1、 AP_2和AP—3,并且通过SAM芯片 308,经验证装置317—1、 317—2和317—3把产生的应用程序下载到外 部存储器307中预先分配的存储区中。
此时,企业315—APl、 315—AP2和315_AP3相互毫无关系,因此 事先确定外部存储器307中可下载应用程序AP_1、 AP_2和AP一3的 存储区。SAM芯片308验证应用程序是否有权下载到这样的存储区。
此外,在应用程序AP—1、 AP一2和AP一3的执行过程中,防火墙 FW限止应用程序AP_1、 AP一2和AP一3之间的数据传送和数据查看。
软件开发者315一MID根据需要,通过验证装置317一4把预定程序 下栽到SAM芯片308,以便定制SAM芯片308的图49中所示的高级 处理程序层和包括驱动程序层的低级处理程序层等等。
此外,软件开发者315—SUP通过验证装置317—5把预定程序下载 到SAM芯片308,以便定制图49中所示的所有各层。
如后所述,当把预定程序从个人计算机316—1-316—5下载到SAM 芯片308时,验证装置371一1-317一5相互验证,并且利用SAM芯片 308产生下载签名验证密钥信息等等。
个人计算机305由IC卡303的所有者,即最终用户使用。
个人计算机305通过串行端口或者USP端口与Dumb型读卡才几/ 写卡机304相连。读卡机/写卡机304实现与IC止303的物理无线通 信。
在SAM装置309 —侧产生发送给IC卡303的操作命令并分析来 自于IC卡303的响应分组。于是,读卡机/写卡机304、个人计算机 305、和介于它们之间的ASP服务器306只起把命令或响应内容保存 在数据有效负载部分中,并且中继数据有效负载部分的作用,它们不 参与数据的加密或解密、身份验证、或者IC卡303中的其它操作。
此外,ICE 318是当调试运行于SAM芯片308上的程序时4吏用的仿真器。
下面将说明图48中所示的组件。 IC卡303
IC卡303保存使用SAM芯片308的结算处理所必需的密钥信息 等等。
身份验证装置317 1-317 5
图50是验证装置317一1的功能方框图。
如图50中所示,验证装置317—1具有存储器350—1和处理器 351」。
如图50中所示,存储器350—1保存SAM一ID、相互验证主密钥信 息Kl和访问主密钥信息KA。
SAM—ID是SAM芯片308的身份识别信息。
如后所述,相互验证主密钥信息Kl用于产生相互验证密钥信息K2。
如后所述,访问主密钥信息KA用于产生当把程序下栽到外部存 储器307中时使用的下栽签名信息。
访问主密钥信息KA是把图49中所示的SAM芯片308的软件结 构的AP层的程序下载到外部存储器307所必需的密钥信息。
如图50中所示,处理器351_1具有相互验证装置352—1和下载处 理器353—1。
如图51中所示,当把程序下载到外部存储器307时,相互验证装 置352—1利用相互验证主密钥信息Kl对呈明文形式的SAM一ID加密, 产生相互验证密钥信息K2,并且把该相互验证密钥信息K2用于和 SAM芯片308的相互验证。
如图52中所示,当把程序下载到外部存储器307时,下载处理器 353—1利用访问主密钥信息KA对呈明文形式的SAMJQ)加密,产生 下载密钥信息K—DA。此外,下载处理器353_1使用下载密钥信息 K^DA产生下载签名信息,并将其传送给SAM芯片308。
验证装置317 2和317 3的结构和上面说明的验证装置317 1相同。但是,各个验证装置的访问主密钥信息KA的内容各不相同。 图53是验证装置317_4的功能方框图。
如图53中所示,验证装置317_4具有存储器350—4和处理器 351—4。
如图53中所示,存储器350—4保存SAM—ID、相互验证主密钥信 息Kl和访问主密钥信息KA和KM。
SAM一ID、相互验证主密钥信息Kl和访问主密钥信息KA和上面 说明的相同。
访问主密钥信息KM是用于把图49中所示SAM芯片308的软件 结构的高级处理程序层和包括驱动程序层的低级处理程序层的程序下 载到外部存储器307或者SAM芯片308的密钥信息。
如图53中所示,处理器351—4具有相互验证装置352—4和下载处 理器353—4。
相互验证装置352—4和图51中说明的相互验证装置352_1相同。 如图54中所示,当把程序下载到外部存储器307时,下载处理器 353—4利用访问主密钥信息KA对呈明文形式的SAMJD加密,产生 下载密钥信息K^DA。随后,下栽处理装置353_4利用访问主密钥信 息KM对作为明文的下载密钥信息K一DA加密,产生下载密钥信息 K一DM。之后,下载处理装置353—4使用下载密钥信息K—DM产生下 载签名信息,并将其传送给SAM芯片308。 图55是验证装置317一5的功能方框图。
如图55中所示,验证装置317—5具有存储器350_5和处理器 351 5。
如图55中所示,存储器350_5保存SAM_ID、相互验证主密钥信 息Kl和访问主密钥4言息KA、 KM及KS。
SAM一ID、相互验证主密钥信息Kl和访问主密钥信息KA及KM 和上面说明的相同。
访问主密钥信息KS是把图49中所示SAM芯片308的软件结构 的OS层的程序下栽到外部存储器307或者SAM芯片308所需的密钥4§息。
如图55中所示,处理器351—5具有相互验证装置352一5和下载处 理器353一5。
相互验证装置352—5和上面提及的图51中所示的相互验证装置
352— 1相同。
如图56中所示,当把程序下载到外部存储器307时,下载处理器
353— 5利用访问主密钥信息KA对作为明文的SAMJD加密,产生下 载密钥信息K—DA。随后,下栽处理器353—5利用访问主密钥信息KM 对作为明文的下载密钥信息K一DA加密,产生下载密钥信息K一DM。 之后,下载处理器353_5利用访问主密钥信息KS对作为明文的下栽 密钥信息KUDM加密,产生下载密钥信息K_DS。然后,下载处理器 353—5使用下载密钥信息K—DS产生下载签名信息,并将其传送给 SAM芯片308。
本实施例中,验证装置317_1、 317—4和317_5安全地把信息保存 在存储器350—1、 350_4和350_5中。当这些信息受到外界因素的破坏 或者被强制打开时,这将被检测装置检测到,保存在存储器350—1、 350—4和350—5中的信息被删除。
SAM装置309
使总线扰频装置461使用的加密算法的加密块长度为Nc,使总线 419的数据总线宽度为Nb。在下面的例子中,考虑Nc为Nb的整倍 的情况,即整数n (=Nc/Nb)。
注意由于增加奇偶校验和地址扰频的缘故,CPU 466的地址空间 (SAM芯片408中的地址空间)和当总线扰频装置461访问外部存储 器407时使用的地址空间(下面也称为"外部存储器地址空间")不 同。
于是,如图68中所示,通过利用预定的映射f (地址变换算法), 总线扰频装置461把从CPU 466输入的地址CPU_ADR (本发明的第 一地址)转换成外部存储器地址空间的地址MEM一ADR (本发明的第二地址)。总线扰频装置461 -使用地址MEM_ADR访问外部存储器 407。
如图69中所示,只有当地址al (地址CPU—ADR)为"al mod Nc/Nb-0"时才定义该映射f。对于另一地址a2,利用f ( a2-( a2 mod Nc/Nb))访问外部存储器407。
这里,"xmody"是在用y去除x之后的余数。
即,总线扰频装置461以加密块长度Nc为单位相对于外部存储 器407读取和写入数据。
这里,当Nc/Nb=n,并且n或更大值(nor more)的最小整数为 m时,总线扰频装置461以m个交易为单位执行通过总线419访问外 部存储器407的交易(本发明的数据输入/输出交易)。
图70是总线扰频装置461的功能方框图。
如图70中所示,总线扰频装置461具有加密装置431,解密装置 432,地址管理装置433,扰频密钥管理装置434,奇偶校验处理装置 435,流水线处理控制装置436,工作存储器437和控制器438。
加密装置431利用预定的扰频密钥K对从CPU 466输入的数据加密。
解密装置432利用预定的扰频密钥K对从外部存储器407读取的 数据解密。
如上所述,地址管理装置433把从CPU 466输入的地址CPI^ADR 转换成地址MEM—ADR。
扰频密钥管理装置434管理在加密装置431和解密装置432使用 的扰频密钥K,并且恰当地交换扰频密钥K。
奇偶校验装置435把奇偶校验数据添加到要写入外部存储器407 的数据冲,并且验证添加到从外部存储器407读取的数据中的奇偶校 验数据。
流水线处理控制装置436把总线扰频装置461的处理分成若干阶 段,并且控制系统以阶段为单位进行流水线处理。工作存储器437用于总线扰频装置461的处理。 控制器438全面控制总线扰频装置461的处理。 [对于外部存储器407的写操作I
图71说明了当图67中所示的CPU 466把数据写入外部存储器 407时总线扰频装置461的操作。
图72是说明图71中所示操作的流程图。 步骤ST401:
CPU 466把要写入的数据DATA,即"d32"和地址CPU一ADR, 即"a3"输出给总线扰频装置461。
数据"d32"被写入图70中所示的总线扰频装置461的工作存储 器437中。
步骤ST402:
当Nc〉Nb时,图70中所示的地ii管理装置433使用地址"a3,, 查找映射f ( a3- ( a3 mod Nc/Nb )),则映射f ( a3-l),并把映射 f (a3-l)用作外部存储器地址空间的地址MEIVLADR。
步骤ST403:
图70中所示的控制器438使用在步骤ST402获得的地址 MEM—ADR f ( a3-l )从外部存储器407读取加密数据块e ( {XI, X2}),并将其写入工作存储器437。
步骤ST404:
图70中所示的解密装置432对从工作存储器437读取的数据块e ((X1, X2))解密,产生数据块(X1, X2}。此外,奇偶校验处理装置 435把添加到数据块e ({XI, X2})的奇偶校验数据用于奇偶校验处 理,随后再次把数据块(X1, X2)写入工作存储器437。 步骤ST405:
控制器438重写对应于和从工作存储器437所读取地址对应的数 据块(X1, X2)中的地址"a3,,,并且已被解密成写入数据"d32"的 "X2",以便产生数据块(X1, d32},并将其写入工作存储器437。
步骤ST406:奇偶校验处理装置435产生数据块(X1, d32)的奇偶校验数据。 步骤ST407:
加密装置431利用扰频密钥K对从工作存储器437读取的数据块 {XI, d32)加密。 步骤ST408:
控制器438在外部存储器407的地址MEM—ADR f ( a3-l)写入 数据块(X1, d32},并且在外部存储器407的预定区域中写入在步骤 ST406产生的奇偶校验数据。
注意在步骤ST407对数据块加密之前,控制器438判断接下来从 CPU466输入的地址是否为"a3-l"。如果是"a3-l",则利用写入数 据重写该数据块Xl,随后对其加密并将其写入外部存储器407。
由此,能够減少对连续地址进行写操作情况下的步骤数目。
此外,即使当把数据长度为Nb的数据写入外部存储器407时, 控制器438对该数据填充数据长度为(Nc-Nb)的数据,以便获得数 据长度为Nc的数据,随后对其加密,并将其写入外部存储器407。
即,外部存储器407中数据长度为Nc的存储区被均匀分配给数 据长度为Nb的数据。
图73说明了从外部存储器407到总线扰频装置的读取操作。
图74是说明该读取操作的流程图。
步骤ST411:
CPU 466把要读取的地址CPU—ADR输出给总线扰频装置461。 步骤ST412:
当Nc〉Nb时,图70中所示的地址管理装置433使用地址"a3" 查找映射f U3- ( a3 mod Nc/Nb )),即映射f ( a3-l),并且把映 射f ( a3-l)用作外部存储器地址空间的地址MEM—ADR。
步骤ST413:
图67中所示的CPU 466使用在步骤ST402获得的地址 MEM ADR f ( a3-l)从外部存储器407读取加密(扰频)数据块e({d31, d32}),并将其写入工作存储器437。 步骤ST414:
图70中所示的解密装置432对从工作存储器437读取的数据块e ({d31, d32))解密,产生(d31, d32}。此外,奇偶校验处理装置435 把添加到数据块e( {d31, d32})中的奇偶校验数据用于奇偶校验处理, 随后再次把数据块(d31, d32》写入工作存储器437。
步骤ST415:
控制器438取出和从工作存储器437读取的数据块(d31, d32)中 的CPU—ADR " a3"对应,并且已^皮解密的数据"d32",并将其输出 给CPU 466。
即,控制器438取出数据块中第"(a3modNc/Nb) +1"数据, 并将其输出给CPU466。 [扰频密钥的管理]
图70中所示的扰频密钥管理装置434如下管理在加密装置431和 解密装置432中使用的扰频密钥。
对于外部存储器407中的每个地址,扰频密钥管理装置434可使 用不同的密钥。于是,必须保存若干扰频密钥。下面表示了保存若干 扰频密钥的方法的一个例子。
如图75中所示,扰频密钥管理装置434保存若干扰频密钥Kl、 K2和K3。它根据来自于CPU 466的地址交换使用的密钥,并且将其 输出给加密装置431和解密装置432。
具体地说,当访问地址"al"时,它使用扰频密钥Kl,当访问地 址"a2"时,它4吏用扰频密钥K2,当访问地址"a3"时,它4吏用扰频 密钥K3。
此外,如图76中所示,扰频密钥管理装置434中的计算电路434a 利用形成类别的密钥Ks和从CPU 466输入的地址执行处理,并且把 作为扰频密钥K的计算结果输出给加密装置431和解密装置432。
计算可包括利用Ks对填充地址编号加密或解密,得到异或 (XOR),或者其它计算。此外,总线扰频装置461可把扰频密钥保存在总线的预定位置, 并且通过总线输入和CPU466发出的地址对应的扰频密钥。这种情况 下,由于传送扰频密钥的数据总线和总线扰频器的总线相同,必须由 存储器控制器进行控制。保存扰频密钥的位置可以是SAM芯片408 内外的任意地方,但是如果在芯片之外,为了确保到芯片的路径的安 全性,扰频密钥由传送密钥加密,并在到达总线扰频装置461时被解 密。总线扰频装置461以硬件或软件的形式持有传送密钥。
但是,在总线扰频装置461中,即使相对于从CPU 466输入的每 个地址改变扰频密钥,如果连续访问某一地址,通过花费一定的时间, 地址区的杂乱性被分析的可能性增大。于是,扰频密钥不是一个不变 的扰频密钥。借助如下所述的技术使之可变。
例如,当给SAM芯片408等通电时,扰频密钥管理装置434导 致产生随机数,以便产生扰频密钥。本质上扰频密钥只需被总线扰频 器知道,因此不会产生密钥传送、同步之类的问题。
此外,扰频密钥管理装置434交换用于相对于外部存储器407的 各次访问的扰频密钥。这种情况下,对已存在于外部存储器407中的 数据加密的密钥和当前持有的密钥必须不同。
于是,例如,如图77和图78中所示更新扰频密钥。
加密装置431从CPU 466输入数据"d3",而总线扰频装置 461从CPU 466输入地址"al"。:解密装置432对数据"e ( {dl, d2})"解密,产生数据"{dl, d2},,。
此时,扰频密钥管理装置434选择扰频密钥Kl,而解密装置432 利用扰频密钥Kl进行解密。
此外,由数据"d3"进行重写,产生数据"{d3, d2}"。
本实施例中,在流水线处理控制器436的控制下,总线扰频装置 461的处理被分成若干阶段,以阶段为单位形成流水线,从而能够缩 短CPU 466观察到的相对于外部存储器407的访问时间。
即,当不形成流水线时,从CPU 466到外部存储器407的一次存 储器访问至少需要处理一个加密块所需的时间。
例如,如果为根据CPU 466发出的地址"al"的数据的读取指令, 由总线扰频装置461执行的处理形成流水线,则当CPU 466依据程序 代码等从地址"al,,开始连续请求更高地址的数据时,如果总线扰频 装置461事先读取地址"f Ul),,之后的地址"f (al+Nc/Nb),, 的数据,则能够消除加密和解密处理的开销。
例如,如果考虑忽略存储器访问的时间的情况,则在如同三重DES 之类的三循环(round)中执行各个数据的加密, 一个加密循环需要一 个时钟脉冲,并且Nc/Nb-l, CPU 466发出指定地址"al", " al+l" 和"al+2"的指令,以便从外部存储器407连续读取数据。
此时,必需进行三轮解密,并且对每个数据解密需要三个时钟脉沖。
如果不执行流水线处理,如图79A中所示,CPU466发出第一个 读取指令之后的三个时钟脉冲,利用地址"al,,从外部存储器407读 取的数据"e3 (dl)"被解密三次,获得数据"dl,,,所述数据"dl" 随后净皮输入CPU 466。随后,在另外的三个时钟脉冲之后,利用地址 "al+l"从外部存储器407读取的数据"e3 (d2),,被解密三次,获得 随后被输入CPU 466的数据"d2"。之后,在另外的三个时钟脉沖之 后,利用地址"al+2"从外部存储器407读取的数据"e3 ( d3 ),,被 解密三次,获得随后被输入CPU 466的数据"d3,,。
即,在CPU 466发出第一个读取指令后的九个时钟脉冲时,数据 "dl"、 "d2"和"d3"被输入CPU 466。
与此相反,在本实施例中,通过把每个循环作为一个阶段,流水线处理控制器436把解密装置432的解密处理转换成如图79B中所示 的三阶段流水线处理。
由此,另一方面,虽然从CPU 466首次发出读取指令开始,把对 应于地址"al,,的数据输入CPU 466用了三个时钟脉冲,但是随后每 个时钟脉冲把对应于地址"al+l,,和"al+2"的数据连续输入CPU 466。
由此,在CPU 466首次发出读取指令之后五个时钟脉沖,所有 的数据"dl"、 "d2"和"d3,,被输入CPU 466。
注意,当CPU 466请求"al,,之后远离地址"al,,的地址"a2,, 的数据时,流水线上的数据被丢弃,在流水线中包装地址"a2"、 "a2+l"…的数据。
首先说明执行本发明相关技术的使用IC卡的交易商业程序的计 算机。
图83是供本发明相关技术的电子结算之用的计算机501的功能方 框图。
如图83中所示,计算机501具有CPU 502、存储器503和通信电 路504。
CPU 502、存储器503和通信电路504与CPU数据总线506相连。 CPU 502和通信电路504与CPU地址总线507相连。 CPU502全面控制计算机501的操作,根据保存在存储器503中
的程序的指令工作,并且在其工作过程中访问存储器503。
通信电路504通过接触式系统或者非4妄触式系统与IC卡508通
信。就接触式类型来说,IC卡508和通信电路504由电触点相连。此外,就非接触式类型来说,IC卡508和通信电路504通过电磁波或者 光线等相连。
通过通信电路504从IC卡508接收的数据由CPU 502按照保存 在存储器503中的程序进行处理。此外,通过CPU 502的处理获得的 数据通过通信电路504 ^皮传送给IC卡508。
此外,CPU 502把与IC卡508通信产生的结算结果写入存储器
503。
图84说明了图83中所示的CPU 502的软件配置。 在图84中,最底层是硬件层,即,图83中所示的CPU502的硬 件组件。
硬件层上是通信驱动程序层。通信驱动程序层中安置有控制与 CPU 502相连的通信电路504的通信驱动程序层。通信驱动程序层的 程序通常被保存在非易失性存储器中。
通信驱动程序层上是提供构成CPU 502的操作基础的程序的操作 系统(OS)层。和下面各层相比,OS层向最高应用(AP)层提供更 高的概念服务。例如,其例子包括后面说明的函数"get card type()", "read card data (),,和"write card data (),,。
此外,OS层上是确定由计算机501实现的特定功能(服务)的 AP层。AP层具有应用程序MAIN、 AP—1、 AP—2和AP_3。
本实施例中,将以应用程序的形式举例说明结算或者使用IC卡 508的其它交易的准备。
例如,在OS层和AP层中,确定IC卡类型508的函数由"get card type ()"定义。
在OS层和AP层中,通过调用该函数可确定IC卡508的类型。 例如,假定存在三种类型的IC卡508,即类型A、 B和C。该函数关 于IC卡508的返回值,皮定义成如图85中所示。
例如,假定使用B类IC卡508,则函数"get card type ()"的 执行结果的返回值变成"2"。
此外,在OS层和AP层中,"read data ( *rp ),,被定义成从IC卡508的内部存储器读取数据的函数。
这里,"叶p"在概念上类似于C语言中的指针,"*"表示后面 的变量是指针变量,"rp,,表示IC卡508的内部存储器中的具体位置。 当显示"、p,,时,这表示IC卡508的存储器中"rp地址"的内容。 现在假定内部存储器如图86中所示保存数据。
jt匕夕卜,i口果假定"rp=102H",贝'J函数"read data ( *rp ),,的返 回值变成"56H",能够读取"102H地址,,的数据。
此外,在OS层和AP层中,"write data ( *wp, wdata ),,被定 义成在IC卡508的内部存储器的特定地址写入数据的函数。这里, "-wp"在概念上类似于C语言中的指针,"*"表示后面的变量是指针 变量,"wp,,表示IC卡508的内部存储器的具体地址。当显示"*wp,, 时,指示IC卡508的内部存储器的wp地址的内容。"wdata,,是写 数据中的变量。现在假定IC卡508的存储器如图87中所示保存数据。 这里,如果"wp-102H"并且"wdata=73H,,,并执行函数"write data (*wp, wdata),,,如图87中所示,该存储器的"102H地址" 的数据被重写成"73H"。
图84中所示的应用程序AP_1、 AP一2和AP—3确定和不同类型的 IC卡508相关的交易的处理。图88中表示了对应关系。
在图84中,在启动计算才几501时首次执行应用程序MAIN。应用 程序MAIN使用上面提及的函数"get card type ()"确定使用的IC 卡508的类型。CPU 502按照根据图88中所示的对应关系表确定的 IC卡508的类型,选择并执行相应的应用程序。
如果想像A类、B类和C类IC卡508由不同企业使用的情况, 则应用程序AP1、 AP2和AP3由单个企业产生。此外,IC卡508的 内部存储器的存储区被应用程序AP1、 AP2和AP3共享。应用程序使 用事先分配给它们的分区。
如上所述,应用程序AP1、 AP2和AP3由单个企业产生,但是有 时程序中存在错误,另一企业的应用程序被某一企业利用该企业的非 法程序恶意读取,或者IC卡508中不允i午访问的存储区4皮非法访问。[本发明的实施例〗
图89是根据本发明的实施例的计算机551的结构视图。 如图89中所示,计算机551具有CPU 552、存储器553、通信电
路504、判断电路560和开关电路561。
这里,CPU 552对应于本发明的计算电路,存储器553对应于本
发明的存储电路,通信电路504对应于本发明的通信电路,判断电路
560对应于本发明的连接控制电路,开关电路561对应于本发明的连
接开关电路。
CPU数据总线506使CPU 552、开关电路561、判断电路560和 通信电路504与之相连。
CPU数据总线506对应于本发明的传输线路。
此外,开关电路561通过存储器数据总线562与存储器553相连。
此外,CPU地址总线507使存储器553、判断电路560和通信电 路504与之相连。
当CPU552访问存储器553或者计算机551之外的外围装置时, CPU地址总线507传送表示地址的CPU—ADR。
在图89中,被赋予和图83中相同附图标记的通信电路504和IC 卡508和图83中说明的相同。
此外,CPU 552具有和上面利用图84说明的相同软件结构。即, 确定和三种IC卡508,即A类、B类和C类相关的交易的处理的程 序被用作应用程序AP1、 AP2和AP3。
通过通信电路504从IC卡508接收的数据由CPU 552才艮据l呆存 在存储器553中的程序进行处理。此外,通过CPU 552的处理获得的 数据通过通信电路504被传送给IC卡508。
此外,CPU 552把通过与IC卡508通信而产生的结算结果写入 存储器553中。
开关电路561根据来自判断电路560的判断结果信号S560 (本发 明的控制信号),在连接状态和断开状态之间切换CPU数据总线506 和存储器数据总线562。此外,CPU 552执行从存储器553取出(读出)的图84中所示的 OS层的程序,程序MAIN和应用程序API 、 AP2和AP3的指令(代 码)。
CPU 552根据这些指令的执行产生指令类型说明信号S552a,执 行AP说明信号S552b,被调用AP说明信号S552c (如果需要),并 且把这些信号输出给判断电路560。
这里,指令类型说明信号S552a是指出CPU 552执行取出指令、 读取指令和写入指令中的哪个指令的信号。
这里,取出指令是用于CPU 552通过CPU数据总线506取出指 令代码的指令。
读取指令是用于CPU 552通过CPU数据总线506读取数据的指令。
写入指令是用于CPU 552通过CPU数据总线506写入数据的指令。
此外,执行AP说明信号S552b是表示图84中所示的应用程序 AP1、 AP2、 AP3和MAIN及OS程序的指令中,正被CPU 552执行 的指令属于哪个程序的信号。
当CPU 552正在执行的程序模块调用另一程序模块时,被调用 AP说明信号S552c表示调用目的地的程序模块属于应用程序AP1、 AP2、 AP3和MAIN及OS程序中的哪个程序。
此外,当如后所述开关电路561进入断开状态时,CPU 552暂停 CPU数据总线506及其操作。
下面详细说明判断电路560。
判断电路560根据从CPU 552输入的指令类型说明信号S552a和 执行AP说明信号S552b,以及通过CPU地址总线507从CPU 552输 入的地址CPU一ADR,产生判断结果信号S560,并把判断结果信号 S560输出给开关电路561。
图90是图89中所示判断电路的结构视图。
如图卯中所示,判断电路560具有选择电路570、取出判断电路
1571、读取判断电路572和写入判断电路573。
选择电路570根据图89中所示从CPU 552输入的指令类型说明 信号S552a,使开关574和端子575—1、 575—2及575—3中的一个端子 相连。
具体地说,当指令类型说明信号S552a指示取出指令时,选择电 路570 4吏开关574b和端子575一1相连。
由此,从取出判断电路571输出的取出判断结果信号S571通过端 子575—1和开关574以判断结果信号S560的形式从判断电路560输出 给开关电路561。
此外,当指令类型说明信号S552a指示读取指令时,选择电路570 使开关574和端子575—2相连。
由此,从读取判断电路572输出的读取判断结果信号S572通过端 子575—2和开关574以判断结果信号S560的形式从判断电路560输出 给开关电路561。
此外,当指令类型说明信号S552a指示写入指令时,选择电路570 使开关574和端子575_3相连。
由此,从写入判断电路573输出的写入判断结果信号S573通过端 子575_3和开关574以判断结果信号S560的形式从判断电路560输出 给开关电路561。
取出判断电路571使用从CPU 552输入的执行AP说明信号 S552b、被调用AP说明信号S552c和地址CPU—ADR产生取出判断结 果信号S571,并将其输出给选择电路570的端子575_1。 图91是图90中所示的取出判断电路571的结构视图。 如图91中所示,取出判断电路571具有存储器581—1和判断装置 582—1。
存储器581_1保存取出范围限定数据584一1和取出AP间调用关 系限定数据58。
取出范围限定数据584—1为CPU 552正在执行OS层程序和图84 中所示的应用程序MAIN、 AP1、 AP2及AP3的各种情况,限定当CPU552执行取出指令时,存储器553中可访问的地址。 图92说明了取出范围限定数据584—1 。
图92中的列(垂直)方向表示OS层的程序和图84中所示的应 用程序MAIN、 AP1、 AP2及AP3。
行(水平)方向中的"FROM"表示存储器553中允许存储对应 列的程序的存储区的起始地址。
行方向中的"FROM"表示存储器553中允许访问对应列的程序 的地址范围的起始地址。
行方向中的"TO,,表示存储器553中允许访问对应列的程序的地 址范围的结束地址。
例如,允许应用程序API访问存储器553的地址"2000H"-"2FFFH"的范围。
当CPU 552执行取出指令时,取出AP间调用关系限定数据585一1 表示当调用某一程序模块时,从其发出调用或者被调用的程序模块所 属的程序的组合。
图93说明了取出AP间调用关系限定数据585—1 。 图93的列方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
图93的行方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
行列的相交位置表示是否允许相应列的程序的程序模块调用相应 行的程序的程序模块。"o"表示许可调用。而"x"表示不许可调用。 例如,允许应用程序API的程序才莫块调用OS程序、MAIN和应 用程序AP3的程序模块,但是不允许调用应用程序AP2的程序模块。 判断装置582—1根据从图89中所示的CPU 552输入的执行AP 说明信号S552b和地址CPU_ADR,以及从存储器581_1读取的取出 范围限定数据584—1,判断地址CPU—ADR是否包含在图92中所示 的和由执行AP说明信号S552b指示的程序对应的列的"FROM"及 "TO,,限定的存储器553的地址范围中。当判断该地址包含在所述地址范围中时,判断装置582_1产生说 明连接的取出判断结果信号S571,并且把该信号输出给图90中所示 的选择电路570的端子575—1。
另一方面,当判断该地址不包含在所述地址范围中时,判断装置 582—1产生说明断开的取出判断结果信号S571,并且把该信号输出给 图90中所示的选择电路570的端子575—1。
此外,当正被CPU 552执行的程序的程序模块调用另一程序的程 序模块时,判断装置582—1根据从图89中所示的CPU 552输入的执 行AP说明信号S552b和被调用AP说明信号S552c,以及从存储器 581—1读取的取出AP间调用关系限定数据585一1,判断该调用是否 被由图93中所示的取出AP间调用关系限定数据585—1表示的组合 所允许。
当判断调用被许可时,判断装置582—1产生指示连接的取出判断 结果信号S571,并且把该信号输出给图90中所示选择电路570的端 子575_1。
另一方面,当判断调用不被许可时,判断装置582一1产生指示断 开的取出判断结果信号S571,并且把该信号输出给图90中所示选择 电路570的端子575一1。
读取判断电路572使用从CPU 552输入的执行AP指令信号 S552b,被调用AP说明信号S552c和地址CPU—ADR产生读取判断 结果信号S572,并且把该信号输出给选择电路570的端子575—2。
图94是图90中所示的读取判断电路572的结构视图。
如图94中所示,读取判断电路572具有存储器581—2和判断装置 582_2。
存储器581一2保存读出范围限定数据584一2和读取AP间调用关 系限定数据585一2。
读出范围限定数据584一2为CPU 552正在执行OS层的程序和图 84中所示的应用程序MAIN、 AP1、 AP2和AP3的各种情况,确定 当CPU 552正在执行读取指令时,存储器553中可访问的地址。图95说明了读出范围限定数据584—2。
图95中的列(垂直)方向表示OS层的程序和图84中所示的应 用程序MAIN、 AP1、 AP2和AP3。
行(水平)方向上的"FROM"表示存储器553中允许存储对应 列的程序的存储区的起始地址。
行方向中的"FROM"表示存储器553中允许访问对应列的程序 的地址范围的起始地址。
行方向中的"TO"表示存储器553中允许访问对应列的程序的地 址范围的结束地址。
当CPU 552执行读取指令时,读取AP间调用关系限定数据585一2 表示当调用某一程序模块时,可发出调用或者可被调用的程序模块所 属程序的组合。
图96说明了读取AP间调用关系限定数据585_2。 图96的列方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
图96的行方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
行列的相交位置表示是否允许相应列的程序的程序模块调用相应 行的程序的程序模块。"o,,表示许可调用。而"x"表示不许可调用。 判断装置582—2根据从图89中所示的CPU 552输入的执行AP 说明信号S552b和地址CPU—ADR,以及从存储器581_2读取的读取 范围限定数据584一2,判断地址CPl^ADR是否包含在图95中所示 的和由执行AP说明信号S552b指示的程序对应的列的"FROM"及 "TO,,限定的存储器553的地址范围中。
当判断该地址包含在所述地址范围中时,判断装置582—2产生说 明连接的读取判断结果信号S572,并且把该信号输出给图90中所示 的选择电路570的端子575—2。
另一方面,当判断该地址不包含在所述地址范围中时,判断装置 582 2产生说明断开的读取判断结果信号S572,并且把该信号输出给图90中所示的选择电路570的端子575_2。
此外,当正被CPU 552执行的程序的程序模块调用另 一程序的程 序模块时,判断装置582—2根据从图89中所示的CPU 552输入的执 行AP说明信号S552b和被调用AP说明信号S552c,以及从存储器
581— 2读取的读取AP间调用关系限定数据585_2,判断该调用是否 被由图96中所示的读取AP间调用关系限定数据585—2表示的组合 所允许。
当判断调用被许可时,判断装置582_2产生指示连接的读取判断 结果信号S572,并且把该信号输出给图90中所示选择电路570的端 子575一2。
另一方面,当判断调用不被许可时,判断装置582一2产生指示断 开的读取判断结果信号S572,并且把该信号输出给图卯中所示选择 电路570的端子575—2。
写入判断电路573使用从CPU 552输入的执行AP指令信号 S552b,被调用AP说明信号S552c和地址CPU_ADR产生写入判断 结果信号S573,并且把该信号输出给选择电路570的端子575—3。
图97是图90中所示的写入判断电路的结构视图。
如图97中所示,写入判断电路573具有存储器581—3和判断装置
582— 3。
存储器581—3保存写入范围限定数据584_3和写入AP间调用关 系限定数据585—3。
写入范围限定数据584_3为CPU 552正在执行OS层的程序和图 84中所示的应用程序MAIN、 AP1、 AP2和AP3的各种情况,确定 当CPU 552正在执行写入指令时,存储器553中可访问的地址。
图98说明了写入范围限定数据584一3。
图98中列(垂直)方向表示OS层的程序和图84中所示的应用 程序MAIN、 AP1、 AP2和AP3。
行(水平)方向上的"FROM"表示存储器553中允许存储对应 列的程序的存储区的起始地址。行方向中的"FROM"表示存储器553中允许访问对应列的程序 的地址范围的起始地址。
行方向中的"TO,,表示存储器553中允许访问对应列的程序的地 址范围的结束地址。
当CPU 552执行读取指令时,写入AP间调用关系限定数据585—3 表示当调用某一程序模块时,可发出调用或者可被调用的程序模块所 属程序的组合。
图99说明了写入AP间调用关系限定数据585_3 。 图99的列方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
图99的行方向表示OS层的程序和图84中所示的应用程序 MAIN、 AP1、 AP2和AP3。
行列的相交位置表示是否允许相应列的程序的程序模块调用相应 行的程序的程序模块。"o"表示许可调用。而"x"表示不许可调用。 判断装置582_3根据从图89中所示的CPU 552输入的执行AP 说明信号S552b和地址CPU—ADR,以及从存储器581—3读取的写入 范围限定数据584一3,判断地址CPU—ADR是否包含在图98中所示 的和由执行AP说明信号S552b所指示程序对应的列的"FROM"及 "TO,,限定的存储器553的地址范围中。
当判断该地址包含在所述地址范围中时,判断装置582—3产生说 明连接的写入判断结果信号S573,并且把该信号输出给图90中所示 的选择电路570的端子575一3。
另一方面,当判断该地址不包含在所述地址范围中时,判断装置 582一3产生说明断开的写入判断结果信号S573,并且把该信号输出给 图90中所示的选择电路570的端子575_3。
此外,当正被CPU 552执行的程序的程序模块调用另 一程序的程 序模块时,判断装置582—3根据从图89中所示的CPU 552输入的执 行AP说明信号S552b和被调用AP说明信号S552c,以及从存储器 581 3读取的写入AP间调用关系限定数据585_3,判断该调用是否被由图99中所示的写入AP间调用关系限定数据585—3表示的组合 所允许。
当判断调用被许可时,判断装置582—3产生指示连接的写入判断 结果信号S573,并且把该信号输出给图90中所示选择电路570的端 子575—3。
另一方面,当判断调用不被许可时,判断装置582—3产生指示断 开的写入判断结果信号S573,并且把该信号输出给图90中所示选择 电路570的端子575—3。
下面说明选择电路570。
选择电路570根据来自于CPU 552的指令类型说明信号S552a使 开关574和端子575—1、 575—2和575—3相连。
具体地说,当指令类型说明信号S552a指示取出指令时,选择电 路570使开关574和端子575_1相连,并且以判断结果S560的形式把 取出判断结果信号S571输出给开关电路561。由此,开关电路561的 连接/断开由取出判断结果信号S571控制。
此外,当指令类型说明信号S552a指示读取指令时,选择电路570 使开关574和端子575_2相连,并且以判断结果S560的形式把读取判 断结果信号S572输出给开关电路561。由此,开关电路561的连接/ 断开由读取判断结果信号S572控制。
此外,当指令类型说明信号S552a指示写入指令时,选择电路570 使开关574和端子575—3相连,并且以判断结果S560的形式把写入判 断结果信号S573输出给开关电路561。由此,开关电路561的连接/ 断开由写入判断结果信号S573控制。
下面说明计算机551的操作的例子。
下面说明计算机551在执行应用程序API的程序模块的过程中执 行取出指令,并且指定地址存储器553的地址"2100H,,时的操作例 子。
这种情况下,指示"2100H,,的CPl^ADR在CPU地址总线507上流动,指示取出指令的指令类型说明信号S552a和指示API的执行 AP说明信号S552b从CPU 552被输出给判断电路560。
此外,图91中所示的判断装置582—1根据从CPU 552输入的执 行AP说明信号S552b和地址CPU—ADR,以及从存储器581读取的 图92中所示的取出范围限定数据584—1,判断地址"2100H"是否包 含由在图92中对应于API的列的"FROM"和"TO"限定的存储器 553的地址范围"2000H"- " 2FFFH,,中。
此外,判断装置582—1产生说明连接的取出判断结果信号S571, 并将其输出给图90中所示的选择电路的端子575—1。
此外,由于指令类型说明信号S552a指示取出,因此选择电路570 4吏开关574和端子575—1相连。
由此,说明连接的取出判断结果信号S571通过选择电路570以判 断结果信号S560的形式被输出给图89中所示的开关电路561。
此外,开关电路561使CPU数据总线506和存储器数据总线562 处于连接状态,以便允许CPU 552访问存储器553。
注意,在上面说明的情况中,当地址CPU—ADR指示"3100H" 时,由于该地址不包含在地址范围"2000H,,-"2FFFH,,中,说明断开 的取出判断结果信号S571从选择电路570被输出给开关电路561。由 此,开关电路561使CPU数据总线506和存储器数据总线562处于断 开状态,以防止CPU 552访问存储器553。
下面将说明当计算机551执行读取指令时,应用程序AP2的程序 模块调用应用程序API的程序情况下的操作例子。
这种情况下,显示AP2的执行AP说明信号S552b和显示API 的被调用AP说明信号S552c从CPU 552被输出给读取判断电路572。
读取判断电路572的判断装置582一2查看图96中所示的读取AP 间调用关系限定数据585_2 ,并且判断是否允许从AP2调用API 。
此外,判断装置582一2产生说明连接的读取判断结果信号S572, 并且将其输出给图90中所示的选择电路570的端子575_2。
1此外,由于指令类型说明信号S552a指示读取指令,因此选择电 路570使开关574和端子575一2相连。
由此,说明连接的读取判断结果信号S572通过选择电路570以判 断结果信号S560的形式被输出给图89中所示的开关电路561。
此外,开关电路561把CPU数据总线506和存储器数据总线562 设置成连接状态,从而CPU 552能够访问存储器553。
另一方面,在上述情况中,当应用程序AP2的程序模块调用应用 程序AP3的程序时,根据图96中所示的读取AP间调用关系限定数据 585_2判断不允许从AP2到AP3的调用。
此外,判断装置582_2产生说明断开的读取判断结果信号S572, 并且将其输出给图90冲所示选择电路570的端子575—2。
由此,说明断开的读取判断结果信号S572通过选择电路570以判 断结杲信号S560的形式被输出给图89中所示的开关电路561。
此外,开关电路561把CPU数据总线506和存储器数据总线562 i殳置成断开状态,以防止CPU 552访问存储器553。
如上所述,根据CPU552执行的程序,判断电路560和开关电路 561根据事先按照各个程序确定的数据,确定存储器553和CPU数据 总线506之间的连接状态。
于是,可防止正被CPU 552执行的应用程序非法访问保存在存储 器553中的另一应用程序的指令和数据,并且即使当CPU 552正在执 行若千应用程序时,也可在各个应用程序之间获得高的安全性。
本发明并不局限于上述实施例。
例如,在上面说明的实施例中,举例说明了判断电路560保存取 出范围限定数据584—1 、取出AP间调用关系限定数据585_1 、读取范 围限定数据584—2、读取AP间调用关系限定数据585一2、写入范围限 定数据584_3和写入AP间调用关系限定数据585_3的情况,但是如 图100中所示,也可使用IC卡558利用密钥信息K加密保存这样的 数据。
这种情况下,判断电路560持有密钥信息K和解密程序590,通过CPU 506和通信电路504访问IC卡558,从IC卡558读取取出范 围限定数据584一1、取出AP间调用关系限定数据585_1、读取范围限 定数据584一2、读取AP间调用关系限定数据585—2、写入范围限定数 据584—3和写入AP间调用关系限定数据585一3,并且使用通过利用预 定解密程序590和密钥信息K解密的取出范围限定数据584_1、取出 AP间调用关系限定数据585一1、读取范围限定数据584_2、读取AP 间调用关系限定数据585_2、写入范围限定数据584_3和写入AP间调 用关系限定数据585一3。
此外,本发明可把上面的解密程序加密保存在IC卡558中,通过 通信电路504和CPU数据总线506把所述解密程序读入判断电路560, 由判断电路560利用预定的密钥信息对其解密,把解密后的解密程序 保存在存储器553中,并且使判断电路560从存储器553读取并执行 解密程序。
此外,在上面i兌明的实施例中,表示了 CPU 552向判断电路560 输出执行AP说明信号S552b和被调用AP说明信号S552c的情况, 但是如图101中所示,这些信号也可由监视CPU地址总线507的判断 电路560产生。
第七实施例
本实施例是对应于本发明第20-21方向的实施例。
图102是本发明的实施例的半导体芯片631的结构视图。
如图102中所示,半导体芯片631具有内部存储器632、开关电
路633、开关电路634,判断电路635,选择电路636和CPU 637。 内部存储器632、开关电路633、开关电路634、判断电路635和
CPU 637与CPU数据总线640相连。
内部存储器632、判断电路635和CPU 637与地址总线641相连。 内部存储器632、判断电路635和CPU 637与信号线642相连。 此外,内部存储器632还与内部数据总线643相连。 此外,开关电路634还通过外部数据总线644与外部存储器660相连。此外,选择电路636还通过外部数据总线645与调试器661相连。 这里,半导体芯片631对应于本发明第一方面的半导体电路,CPU 数据总线640对应于第一半导体电路的笫一传输线路,程序模块PM一1 对应于执行本发明第一方面的程序的指令,内部存储器632对应于本 发明第一方面的存储电路,CPU 637对应于本发明第一方面的处理电 路,开关电路633对应于本发明第一方面的第一连接转换电路,开关 电路634对应于本发明第一方面的第二连接转换电路,判断电路635 对应于本发明第一方面的连接控制电路,选择电路636对应于本发明 第一方面的第三连接转换电路,外部存储器660对应于本发明第一方 面的存储设备,调试器661对应于本发明第一方面的外部设备。
此外,信号线642对应于本发明第一方面的第三传输线路,而地 址总线641对应于本发明第一方面的第四传输线路。
此外,判断结果信号S635a对应于本发明第一方面的第一控制信 号,判断结果信号S635b对应于本发明第一方面的第二控制信号,判 断结果信号S635c对应于本发明第一方面的第三控制信号。
图103说明了图102中所示的半导体芯片631的软件配置。 在图103中,最底层是硬件层,即,图102中所示的半导体芯片 631的石更件组件。
硬件层上是通信驱动程序层。通信驱动程序层中安置有控制通信 的通信驱动程序层。通信驱动程序层的程序通常被保存在非易失性存 储器中。
通信驱动程序层上是提供构成半导体芯片631的操作基础的程序 的操作系统(OS)层。和下面各层相比,OS层向最高应用(AP)层 提供更高的概念服务。
此外,OS层上是确定由半导体芯片631实现的特定功能(服务) 的AP层。AP层具有由图102中所示的程序模块PM—1、PM—2和PJVL3 实现的应用程序AP1、 AP2和AP3。
内部存储器632保存图103中所示应用程序API的程序模块 PM 1。图104说明了程序模块PM一1的结构。
如图104中所示,程序模块PMJ由若千功能模块组成。图104 表示了程序模块PM—1由n个功能才莫块FM—l-FM—n组成的情况。
如图104中所示,位于各个功能模块FM_1-FM—n的头部的指令 (代码)是解锁指令,而末尾的指令是锁定指令。
这里,锁定指令是指令后面说明的判断电路635在下一解锁指令 之前,使开关电路633保持连接状态的指令。
此外,解锁指令是指令开关电路633转换到断开状态的指令。
开关电路633介于CPU数据总线640和内部数据总线643之间。
开关电路633根据从判断电路635输入的判断结果信号S635a变 成连接状态或者断开状态。
开关电路634介于CPU数据总线640和外部数据总线644之间。
开关电路634根据从判断电路635输入的判断结果信号S635b变 成连接状态或者断开状态。
判断电路635监视地址总线641和信号线642。当CPU 637输出 给地址总线641的地址信号指示内部存储器632中保存程序模块 PM一1的地址,并且CPU 637输出给信号线642的指令类型说明信号 S637a指示取出指令时,它产生指示连接的判断结果信号S635a。在其 它情况下,它产生指示断开的判断结果信号S635a。
判断电路635把判断结果信号S635a输出给开关电路633。
此外,当判断电路635产生指示连接的判断结果信号S635a时, 它产生指示断开的判断结果信号S635b,并将其输出给开关电路634。
此外,当判断电路635产生指示断开的判断结果信号S635a时, 它产生指示连接的判断结果信号S635b,并将其输出给开关电路634。
此外,当判断电路635产生指示连接的判断结果信号S635a时, 它产生指示无效/断开的判断结果信号S635c,并将其输出给选择电路 636。
此外,当判断电路635产生指示断开的判断结果信号S635a时, 它产生指示有效/连接的判断结果信号S635c,并将其输出给选择电路636。
此外,在CPU 637执行图104中所示的程序模块PM一1的过程中, 当程序模块PM—1中的功能模块被包含在正由CPU 637执行的另一功 能模块中的分支指令调用时,以位于首次启动数据取出的被调用功能 模块的头部的指令为条件(即,当指定位于被调用功能模块头部的指 令的分支指令被执行时),判断电路635把指示连接的判断结果信号 S635a输出给开关电路633。
如同利用图104说明的一样,由于每个功能模块的头部具有设置 于该处的解锁指令(本发明第一方面的断开释放指令),因此在执行 下一锁定指令(本发明第 一方面的断开开始指令)之前,判断电路635 根据解锁指令,把指示连接的判断结果信号S635a输出给开关电路 633。此时,如前所述,指示断开的判断结果信号S635b被发给开关电 路634,而指示无效/断开的判断结果信号S635c被发给选择电路636, 因此调试器661不可能临时停止CPU 637的操作,或者不可能从CPU 637采集CPU内部状态信息。于是,不能从存在于外部存储器660中 的程序才莫块PM一2和PM—3或者调试器661访问图104中所示的功能 模块FM—1-FM—n。
此外,在CPU 637正在执行图104中所示的程序模块PM_1的时 候,当程序模块PM一1中的功能模块被执行包含在另一功能模块中的 分支指令的CPU637调用时,当首次取出除位于调用目的地的功能模 块头部的指令之外的指令时,判断电路635把指示断开的判断结果信 号S635a输出给开关电路633。此外,这种情况下,判断电路635暂 停CPU 637的操作或者执行预定的错误处理。
当来自判断电路635的判断结果信号S635c指示无效/断开时,选 择电路636使从调试器661输入的HALT信号S661a (本发明第一方 面的操作暂停请求)无效,并且不将其输出给CPU637。这里,HALT 信号S661a是指示临时停止CPU 637的操作的信号。
当来自判断电路635的判断结果信号S635c指示无效/断开时,选 择电路636使从调试器661输入的CPU内部状态读取请求信号S661b和CPU内部状态重写请求信号S661c无效,并且不把这些信号输出给 CPU 637。
这里,CPU内部状态读取请求信号S661b是请求显示CPU 637 的内部状态的信息的信号。
CPU内部状态重写请求信号S661c是请求重写显示CPU 637内部 状态的信息的信号。
另一方面,当来自判断电路635的判断结果信号S635c指示有效/ 连接时,选择电路636把从调试器661输入的HALT信号S661a输出 给CPU 637。
当来自判断电路635的判断结果信号S635c指示有效/连接时,选 择电路636把从调试器661输入的CPU内部状态读取请求信号S661b 和CPU内部状态重写请求信号S661c输出给CPU 637。此外,选择电 路636把根据CPU内部状态读取请求信号S661b从CPU 637输入的 CPU内部状态信号S637d输出给调试器661。
CPU 637把内部存储器632的地址输出给地址总线641,把表示 正被执行的指令的类型的指令类型说明信号S637a输出给信号线642, 并且根据上述信号,执行使用通过开关电路633和CPU数据总线640 从内部存储器632读取的程序模块PM一1的指令和数据的处理。
此外,CPU 637把外部存储器660的地址输出给地址总线641, 把指令类型说明信号S637a输出给信号线642,并且根据上述信号执 行利用通过外部数据总线644、开关电路634和CPU数据总线640从 外部存储器660读取的程序模块PM—2、 PM—3的指令和数据的处理。
当通过选择电路636从调试器661输入HALT信号S661a时,CPU 637停止CPU 637的操作。
此外,当CPU 637接收通过选择电路636从调试器661输入的 CPU内部状态读取请求信号S661b时,它通过选择电路636把包括表 示由信号S661b指定的CPU 637中内部状态的信息的内部状态信号 S637d输出给调试器661。
此外,当CPU 637接收通过选择电路636从调试器661输入的CPU内部状态重写请求信号S661c,它利用由该信号S661c指定的内 容重写表示CPU 637的内部状态的信息。
调试器661根据调试对象使用HALT信号S661a控制CPU 637 的操作,利用内部状态读取请求信号S661b和内部状态信号S637d监 视CPU 637的操作,并且利用CPU内部状态重写请求信号S661c定 制CPU 637。
下面说明半导体芯片631的操作例子。
例如,考虑CPU 637正在通过开关电路634和外部数据总线644 访问外部存储器660的情况。
这种情况下,由于来自判断电路635的判断结果信号S635b和S635c的缘故,开关电路634和选择电路636变成连接状态,但是由 于判断结果信号S635a的缘故,开关电路633变成断开状态。于是, 不能从外部数据总线644和645访问内部存储器632。
如上所述,在半导体芯片631中,当内部存储器632和CPU数据 总线640处于连接状态时,不允许自外部数据总线644和645的外部 访问。
于是,根据半导体芯片631,能够可靠地防止从半导体芯片631 之外非法访问保存在内部存储器632中的程序模块PM—1,于是能够 维持程序模块PM—1的机密性。
此外,根据半导体芯片631,不能从外部监视和分析CPU 637执 行程序模块PM_1的过程。
此外,根据半导体芯片631,能够防止从保存在外部存储器660 中的程序冲莫块PM一2和PM_3非法访问机密程序模块PM一1。
第八实施例
本实施例是对应于本发明第20和第21方面的实施例。 图105是本发明的实施例的半导体芯片6131的结构视图。 如图105中所示,半导体芯片6131具有加密/解密电路6134,判
断电路6135,选择电路6136和CPU 6137。
加密/解密电路6134和CPU 6137与CPU数据总线6140相连。
判断电路6135和CPU 6137与地址总线6141相连。
判断电路6135和CPU 6137与信号线6142相连。
此外,加密/解密电路6134还通过外部数据总线6144与外部存储
器6160相连。
此外,选择电路6136还通过外部数据总线6145与调试器6161相连。
注意在半导体芯片6131中同样类似地应用图103中所示的软件结构。
这里,半导体芯片6131对应于本发明第二方面的半导体芯片,外 部数据总线6144对应于本发明第一方面的第一传输线路,外部存储器6160对应于本发明第二方面的存储设备,程序模块PM—1对应于执行 本发明第二方面的程序的指令,加密/解密电路6134对应于本发明第 二方面的加密/解密电路,判断电路6135对应于本发明第二方面的控 制电路,选择电路6136对应于本发明第二方面的选择电路,CPU 6137 对应于第二计算电路,外部数据总线6145对应于本发明第二方面的第 二传输线路。
首先说明外部存储器6160。
如图105中所示,外部存储器6160保存程序模块PM—1、 PM—2 和PM—3。
本实施例中,将举例说明程序模块PM—1具有机密性的情况。 机密程序模块PM一1被加密并保存在外部存储器6160中。非机密 程序模块PM—2和PM—3可被加密也可不加密。 图106说明了程序模块PM—1的结构。
如图106中所示,程序模块PM一1由若干功能模块组成。图106 表示了它由n个功能模块FM—l-FM_n组成的情况。
如图106中所示,功能模块FM_1-FM—n的头部设置有指示ID号 的ID号指示信息。ID号指示指令不被加密。
这里,ID号是识别对应功能模块的信息。如后所述,当加密/解 密电路6134对功能模块解密时,ID号被用于确定用于该解密的密钥 信息。
此夕卜,在功能模块FMJ-FM—n的末端设置指示ID号为"#0"的 指令(指示后面的指令不使用密钥,即不被加密的指令)。
如图107中所示,以预定数据长度的数据块为单位对功能模块加 密。数据块l-n具有添加于其中的奇偶校验数据l-n。
例如,如图107中所示,加密/解密电路6134以预定数据块为单 位,对将被写入外部存储器6160中的程序模块PM一1的图106中所示 的功能模块加密。
此时,加密/解密电路6134利用任意密钥信息对各个功能块加密, 并且如同利用图106说明的那样,在每个功能块的头部设置指定用于识别功能模块的ID号的末加密(明文)ID号指示指令(信息)。
此外,加密/解密电路6134产生并保持图108中所示的密钥信息 表6190,所述密钥信息表6190表示为功能块指定的ID号(本发明第 二方面的密钥指定信息)和用于对链接在一起的功能模块加密的密钥化息。
此外,当加密/解密电路6134对数据块加密时,如图107中所示, 它产生数据块的奇偶校验数据,并且把和对应数据块链接的奇偶校验 数据保存在外部存储器6160中。此时,加密/解密电路6134产生奇偶 校验数据,以致数据块和奇偶校验数据的总和变成预定值。
此外,加密/解密电路6134通过把由位于功能模块头部的ID号指 定指令指定的ID号用作密钥,查看图108中所示的密钥信息表61卯, 获得关于从外部存储器6160输入的功能模块的密钥信息。此外,加密 /解密电路6134使用该密钥信息以上面提及的数据块为单位对该功能 模块加密。
此外,加密/解密电路6134对该功能模块解密,随后判断对应于 该功能模块的奇偶校验数据的合法性。此时,如果判断该奇偶校验数 据合法,则把解密后的数据输出给CPU 6137。另一方面,如果判断该 奇偶校验数据不合法,则停止CPU 6137的操作或者执行预定的错误 处理。
注意,在本实施例中,数据块的数据长度和功能模块的数据长度 可以相同或不同。
判断电路6135产生指示无效/断开的判断结果信号S6135,并且当 CPU 6137正在访问(例如取出)机密程序模块PM—1时,将其输出给 选择电路6136。
此外,判断电路6135产生指示有效/连接的判断结果信号S6135, 并且当CPU 6137不访问(例如取出)机密程序模块PM_1时,将其 输出给选择电路6136。
判断电路6135监视CPU 6137输出的并且流过地址总线6141和 信号线6142的地址和指令,并根据所述地址和指令判断CPU 6137是否正在访问程序才莫块PM—1。
当来自判断电路6135的判断结果信号S6135指示无效/断开时, 选择电路6136使从调试器6161输入的HALT信号S6161a(本发明第 二方面的操作停止请求)无效,并且不将其输出给CPU 6137。这里, HALT信号S6161a是指令暂时停止CPU 6137的操作的信号。
当来自判断电路6135的判断结果信号S6135指示无效/断开时, 选择电路6136使从调试器6161输入的CPU内部状态读取请求信号 S6161b和CPU内部状态重写请求信号S6161c无效,并且不把它们输 出给CPU 6137。
这里,CPU内部状态读取请求信号S6161b是请求显示CPU 6137 的内部状态的信息的信号。
CPU内部状态重写请求信号S6161c是请求重写显示CPU 6137 的内部状态的信息的信号。
另一方面,当来自判断电路6135的判断结果信号S6135指示有效 /连接时,选择电路6136把从调试器6161输入的HALT信号S6161a 输出给CPU 6137。
当来自判断电路6135的判断结果信号S6135指示有效/连接时, 选择电路6136把从调试器6161输入的CPU内部状态读取请求信号 S6161b和CPU内部状态重写请求信号S6161c输出给CPU 6137。此 外,选择电路6136把根据CPU内部状态读取请求信号S6161b从CPU 6137输入的CPU内部状态信号S6137d输出给调试器6161。
CPU 6137把外部存储器6160的地址输出给地址总线6141,把显 示正被执行的指令的类型的指令类型说明信号S6137a输出给信号线 6142,并且根据这些信号,利用通过外部数据总线6144和加密/解密 电路6134从外部存储器6160读取的程序才莫块PM—1、 PM—2和PM_3 的指令和数据进行处理。
当CPU 6137接收通过选择电路6136从调试器6161输入的HALT 信号S6161a时,CPU 6137的操作被停止。
此外,当CPU 6137接收通过选择电路6136从调试器6161输入的CPU内部状态读取请求信号S6161b时,它通过选择电路6136把包 括显示由信号S6161b指定的CPU 6137中的内部状态的信息的内部状 态信号S6137d输出给调试器6161。
此外,当CPU 6137通过选择电路6136从调试器6161接收CPU 内部状态重写请求信号S6161c时,它利用由信号S6161c指定的内容 重写显示CPU 6137的内部状态的信息。由此,CPU 6137的操作由调 试器6161控制。
调试器6161〗吏用对应于调试目标的HLAT信号S6161a控制CPU 6137的操作,利用内部状态读取请求信号S6161b和内部状态信号 S6137d监^f见CPU 6137的操作,并且利用CPU内部状态重写请求信 号S6161c定制CPU 6137。
下面说明图105中所示半导体芯片的操作例子。
图112是IC卡703的功能方框图。
如图112中所示,IC卡703具有配有存储器750和CPU 751的 IC (集成电路)703a。
如图113中所示,存储器750具有由信用卡公司或者其它服务企业 715一1使用的存储区755一1、由服务企业715一2使用的存储区755一2和 由服务企业715_3使用的存储区755_3。
此外,存储器750保存用于判断对于存储区755 1的访问权限的密钥数据,用于判断对于存储区755一2的访问权限的密钥数据,和用 于判断对于存储区755—3的访问权限的密钥数据。密钥数据用于相互 验证,数据加密和解密等等。
此外,存储器750保存IC卡703或者IC卡703的用户的身份识 别信息。
下面详细"i兌明SAM装置709。
如前所述,SAM装置709具有外部存储器707 (本发明的存储电 路)和SAM芯片708 (本发明的半导体电路)。
SAM芯片708具有如图114中所示的软件配置。
如图114中所示,从底层到顶层,SAM芯片708具有HW (硬件 层)、OS层、低级处理程序层、高级处理程序层和AP层。
低级处理程序层包括驱动程序层。
这里,在AP层中,从外部存储器707读取并运行定义信用卡公 司或者其它企业715_1、 715—2和715—3 4吏用IC卡703的过程的应用 程序AP—1、 AP—2和AP—3 (本发明的应用程序)。
在AP层中,应用程序AP—1、 AP_2和AP—3与高级处理程序层 之间i殳置防火墙FW。
[外部存储器7(T7
图115说明了外部存储器707的存储区。
如图115中所示,外部存储器707的存储区包括保存服务企业 715—1的应用程序AP—1的AP存储区7220—1,保存服务企业715—2 的应用程序AP—2的AP存储区7220—2,保存服务企业715—3的应用 程序AP—3的AP存储区7220—3,以及由SAM芯片708的管理人员使 用的AP管理存储区7221。
保存在AP存储区7220_1中的应用程序AP_1由后面i兌明的若千 应用单元数据APE (本发明的数据模块)组成。对AP存储区7220_1 的访问由防火墙FW—1限制。
保存在AP存储区7220_2中的应用程序AP—2由后面说明的若千应用单元数据APE组成。对AP存储区7220_2的访问由防火墙FW_1 限制。
保存在AP存储区7220—3中的应用程序AP_3由后面说明的若干 应用单元数据APE组成。对AP存储区7220—3的访问由防火墙FW_1 限制。
本实施例中,应用单元数据APE是从SAM装置709之外下栽到
外部存储器707的最小单位。构成各个应用程序的应用单元数据APE
的数目可由相应的服务企业自由确定。
此外,保存在外部存储器707中的应用程序AP_1、 AP—2和AP—3
被扰频。当被读入SAM芯片708中时,它们被解扰频。
此外,应用程序AP_1、 AP—2和AP—3由利用图109中所示的个
人计算机716—1、 716一2和716_3的服务企业715—1、 715—2和715_3
产生,并且通过SAM芯片708被下载到外部存储器707。 下面将详细说明应用程序AP—1 、 AP—2和AP—3。 在SAM中存在每个服务企业的一个或多个应用程序。 如图116中所示,应用程序AP—1、 AP—2和AP—3 (下面称为AP)
均由用于识别应用程序AP的识别数据AP_ID,表示包括在应用程序
中的应用程序单元数据APE的数目的数据APE_NUM,和一个或多个
应用单元数据APE。
识别数据AP_ID被设置成对于各个服务企业都不同。
如图116中所示,应用单元数据APE由表示应用单元数据APE
的数据大小的数据APE—SIZE,识别应用单元数据APE的识别数据
APE ID和数据特征( proper)组成。
这里,识别数据APEJD由表示应用单元数据APE的类型的数据
APE—TYPE和表示该类型内的应用单元数据APE的识别号(实例识
别号)的数据INS—NUM组成。数据IND—NUM由最终用户(服务企
业) 一方管理。
例如,当应用单元数据APE是文件系统配置时,数据APE_TYPE 变成"2",数据INS NUM变成"1"。由此,如果SAM相同,则能够利用识别数据APE—ID明确地确定应用单元数据APE。
图115中所示的外部存储器707以应用程序包APP的形式保存利 用SAM装置709之外的加密密钥数据K—AP加密的上述应用程序AP (AP_1、 AP—2和AP—3)。
相对于各个应用程序而不同的加密密钥数据被用作加密密钥数据 K—AP。
下面将说明利用图116说明的应用单元数据APE的类型。 图117表示了保存在一个AP区中的应用单元数据APE的例子。 如图117中所示,AP区把卡访问密钥数据、文件系统配置数据、 SAM相互验证密钥数据、SAM间密钥包密钥数据、IC卡操作宏命令 脚本程序(本发明的处理例程数据)、存储器划分密钥包、区域记录 (registration)密钥包、区域删除密钥包、月良务记录密钥包、服务删 除密钥包、和AP资源密钥数据K—APE保存为应用单元数据APE。 下面将说明图117中所示的应用单元数据APE。 o卡访问密钥数据
卡访问密钥数据是用于相对于IC卡703的存储器750的读取或写 入操作的密钥数据。此外,将被后面说明的IC卡操作宏命令脚本程序
元数据APE中。
o文件系统配置数据
文件系统配置数据包括运行记录数据、负(negative)数据和种类 (genre )数据。
运行记录数据是应用单元数据APE的使用历史的数据,负数据是 IC卡的期满信息,种类数据是在SAM的执行记录。
例如,文件系统配置选择文件访问的类型(记录密钥标志分类环), 并且如果是记录密钥,则设置记录大小、整体记录的数目、记录签名 版本、记录签名方法类型、记录数据大小、和记录签名密钥。此外, 当从外部把数据写入文件系统中时,它指示是否执行签名验证等。这 里,"记录"是文件数据的写入/读取的最小单位。oSAM相互验证密钥数据
这也用于相同SAM中AP之间的相互验证。
SAM相互验证密钥数据是当从相同SAM或者另一 SAM中的另 一 AP访问对应的应用单元数据APE时使用的密钥数据。 oSAM间密钥包密钥
SAM间密钥包密钥是在SAM间相互验证之后,当交换卡访问密 钥数据或者其它数据时使用的加密密钥数据。 oIC卡操作宏命令脚本程序
IC卡操作宏命令脚本程序由服务企业自身产生,并且描述涉及IC 卡703的处理,或者与ASP服务器719的交易的顺序。IC卡操作宏 命令脚本程序设置在SAM装置709中,随后由SAM芯片708分析, 从而产生对应的IC卡实体数据。
o存储器划分密钥包
存储器划分密钥包是在服务企业开始利用IC卡703进行服务之 前,用于划分外部存储器707或者IC卡703的存储器的存储区的数据。 o区域记录密钥包
区域记录密钥包是在服务企业开始利用IC卡703进行服务之前, 当在IC卡703的存储器的存储区中进行区域记录时使用的数据。 o区域删除密钥包(内部产生)
区域删除密钥包是可根据卡访问密钥数据在SAM中自动产生的 密钥包。
o服务记录密钥(内部产生)
服务记录密钥包用于在服务企业开始利用IC卡703进行服务之前 记录外部存储器707的应用单元数据APE。
服务记录密钥包是可根据卡访问密钥数据在SAM中自动产生的 密钥包。
o服务删除密钥包(内部产生)
服务删除密钥包用于删除在外部存储器707中记录的应用单元数 据APE。服务删除密钥包是可根据卡访问密钥数据在SAM中自动产生的 密钥包。
o密钥数据K—APE
当设置应用单元数据APE时,密钥数据K一APE被用作加密密钥。 为每个AP区分配用于设置应用单元数据APE的不同密钥数据 K APE。
下面详细说明上述IC卡操作宏命令脚本程序(下面也称为脚本程 序)。
脚本程序是用于确定运行于SAM芯片708上的服务企业715_1、 715—2和715_3的应用程序AP_1、 AP—2和AP—3,以及当执行应用程 序时由IC卡703执行的处理过程的程序。
本实施例中,如后所述,如图118中所示,SAM芯片708根据脚 本下载任务769和脚本解释任务770进行处理,并且根据AP管理表 数据和脚本程序产生IC卡实体模板数据730_1、输入数据块731_xl、 输出数据块732—x2、运行记录数据块733_x3、和用于涉及服务企业 715—1、 715—2和715—3的过程的计算定义数据块734—x4。
图119说明了用于描述IC卡操作宏命令脚本程序的命令。
就命令而言,关于SAM芯片708自身的命令被赋予首字母"S", 而涉及IC卡703的操作的命令被赋予首字母"C"。
此外,根据应用有选择地使用第二字母。例如,对于IC卡703 的发行者设置说明,第二字母为"I",对于应用单元APE的说明(服 务类型单元说明),第二字母为"S",对于相对于IC卡703的简单 读取说明,第二字母为"R",对于相对于IC卡703的简单写入说明, 第二字母为"W",对于应用单元数据APE计算定义,第二字母为 "F,,。
用于描述脚本程序721—1、 721—2和721—3的命令包括SC命令、 SO命令、SI命令、SL命令、SF命令、CI命令、CS命令、CR命令
和cw命令。
SC命令是说明SAM芯片708可同时处理的IC卡实体数据的最大数目。
当SAM芯片708可同时处理1000组IC卡实体数据时,描述 "SC: 1000"。
SO命令是说明当根据后述IC卡实体数据利用IC卡703执行处 理时,在SAM芯片708中提供的数据块中,构成将保存从IC卡703 读取的数据的输出数据块732—x2的数据块的命令。
例如,当提供数据块1-10时,当把从IC卡703读取的数据保存 在数据块l中时,描述"SO: 1"。
SI命令是说明当根据后述IC卡实体数据利用IC卡703进行处理 时,在SMA芯片708中提供的数据块中,构成保存将被写入IC卡703 的数据的输入数据块731—xl的数据块的命令。
例如,当提供数据块1-10时,当把要写入IC卡703的数据保存 在数据块2, 3中时,描迷"SI: 2, 3"。
SL命令是说明当根据后述IC卡实体数据利用IC卡703进行处 理时,在SAM芯片708中提供的数据块中,构成用于保存和操作相 关的运行记录数据的运行记录数据块733一x3的数据块的命令。
例如,当提供数据块1-10时,当把运行记录数据保存在数据块4 中时,描述"SL: 4"。
SF命令是提供构成计算定义数据块734_x4的数据块的命令,所 述教育处限定数据块734一x4描述相对于IC卡703的应用单元数据 APE之间的关系的定义。
计算定义数据块73tx4的内容变成IC卡实体数据的预处理信息。
CI命令是说明IC卡703的发行者(服务企业)的命令。
确定由CI命令限定的服务企业的数据变成IC卡实体数据的IC 卡类型信息。
CS命令是通过引用应用单元数据APE (服务类型单元)的名称 APE一N,向IC卡703说明若干服务的同时操作的命令。CS命令也可 说明由名称APE一N指定的应用单元数据APE内的功能定义处理。
例如,能够说明"CS:"Rc"+" Wc"+" Wd,,"。根据CS命令的内容,确定IC卡实体数据的APE—N指定信息和 处理顺序信息。
CR命令说明当应用单元数据APE之间的关系不确定(当没有描 述SF命令)时,把从IC卡703读取的数据保存在指定数据块中。
例如,当把从IC卡703读取的数据保存到数据块1中时,说明 "CR: SO: l-"Rc""。
CW命令说明当应用单元数据APE之间的关系不确定时,把保存 在指定数据块中的数据写入IC卡703。
例如,当把保存在数据块2中的数据写入IC卡703时,说明 "CW: SI: 2="Wc,,,,。
CF命令说明用于描述计算内容生成服务的数据块。
例如,当在SF数据块1中描述计算内容生成服务时,描述"CF: CES_FUNC=SF: 1"。
此外,SF数据块1在其中描述了例如""Wc"-If ( " Wc"> 10 ) then ( " Wc,,画lO;" Wd,,= " Wc,,*0.8+ " Wd"),,。该乂>式表 述当服务的剩余数目Wc大于10时,从Wc的值中减去10,并且把对 应于8%的Wc的点数作为累积点数增加到Wd中的操作。
下面将说明保存在图115中所示的外部存储器707的AP管理存 储区7221中的数据。
对AP管理保存区7221的访问由防火墙FW—4限制。
注意,防火墙FW—4对应于图114中所示的防火墙FW。
图120说明了保存在AP管理保存区722中的数据的细节。
如图120中所示,AP管理存储区7221保存AP管理表数据7300—1 、 7300—2和7300—3(本发明的管理数据)和APP表数据7310—1、 7310_2 和7310—3 (本发明的应用许可数据)。
这里,在配置SAM芯片708的时候预先记录AP管理表数据 7300_1、7300—2和7300—3以及APP表数据7310—1、 7310—2和7310_3。 此外,AP管理表数据7300—1、 7300—2和7300_1以及APP表数据 7310 1、 7310 2和7310 3只可净皮SAM芯片708的管理人员重写。相对于每个应用程序AP定义AP管理表数据7300_1、 7300—2和 7300—3。
此外,相对于每个SAM相互验证密钥数据定义APP表数据 7310—1、 7310一2和7310—3。
图121说明了 AP管理表数据7300—1。 AP管理表数椐7300—2和 7300_3的格式和AP管理表数据7300_1相同。
如图121中所示,它表示相对于IC卡操作宏命令脚本程序中使用 的被查看应用单元数据APE的各个名称APE—N链接在一起的识别数 据APE_ID、内部/外部指示数据IEI、识别数据SAM—ID、识别数据 AP—ID、密钥数据K—CARDA (本发明的第二密钥数据)、密钥数据 K—SAM (本发明的第一密钥数据)、数据SET_APP、数据FLAG—IP 和数据FLAG—STR。
应用单元数据APE的名称APE_N是分配给由服务企业715—1、 715—2和715—3的应用程序提供的服务(应用单元数据APE )的名称。 名称APE一N是被查看的标识符,而不是各个服务企业的应用程序能 够使用的服务的服务名称。
这里,识别数据APE—ID是应用单元数据APE的识别数据。
外部/内部指示数据IEI是用于区分APE是以实体的形式存在(内 部指定)还是由另一SAM提及(外部指定)的标志。
识别数据SAM—ID是当SAM芯片708正在执行涉及该应用单元 数据APE的处理时,位于传送数据的另一方的SAM的识别数据。
图122说明了 SAM—ID。
SAM—ID是4字节的数据,并且具有类似于TCP/IP的网络掩码 的概念。可以位为单位设置网络掩码。
例如,如图122中所示的网络掩码被分成三类,即A类、B类和 C类。此外,在^皮分配相同网络掩码的SAM之间,用于相互验证的 一类密钥数据就足够了。例如,在本实施例中,相同的服务企业被分 配相同的网络掩码。
在图122中,A类网络掩码由"255.XX.XX.XX"指示,头一个字节被分配用于指定该类别的预定数值,后三个字节被分配用于指定属
于该类别的单个SAM的数值。这里,"XX"可被设置成任意数值。 即,A类网络掩码可用于确定属于A类的16777215个SAM_ID。
此外,B类网络掩码由"255.255.XX.XX"指示,头两个字节被分 配用于指定该类型的预定数值,后两个字节被分配用于指定属于该类 别的单个SAM的数值。即,B类网络掩码可用于确定属于B类的65535 个SAM一ID。
此外,C类网络掩码由"255.255.255.XX,,指示,头三个字节被赋 予用于指定该类别的预定数值,最后一个字节被赋予指定属于该类别 的单个SAM的数值。即,B类网络掩码可用于确定属于C类的255 个SAM—ID 。
识别数据AP—ID是当SAM芯片708执行涉及应用单元数据APE 的处理时,由传送数据的另一方的SAM执行的应用程序的识别数据。
密钥数据K—CARDA是当SAM芯片708执行涉及应用单元数据 APE的处理时,用于与IC卡703的存储器750传送数据的密钥数据。
密钥数据K—SAM是当SAM芯片708执行涉及应用单元数据APE 的处理时,用于与另一 SAM传送数据的密钥数据。
数据SET—APP是用于指定当SAM芯片708执行涉及应用单元数 据APE的处理时,所使用(查看)的APP表数据7310—1、 7310_2和 7310_3的数据。
数据FLAG—IP是表示是否向另一 SAM芯片708等公开由SAM 芯片708管理(持有)的数据的标志数据。
数据FLAG一STR是表示是否允许SAM芯片708管理(持有)的 数据被另一 SAM芯片708等持有的标志数据。
在图121中,APE_N "服务A,,是该SAM芯片708中由应用程序 确定的IC卡703的访问密钥。"服务A"的密钥数据被设置成不公开, 因此另一SAM的应用程序或者同一SAM的另一应用程序不能查看所 述密钥数据。
此外,"服务C"是由该应用程序确定的IC卡703的访问密钥。当该SAM被分配后面说明的C类网络掩码时,向具有SAM—ID "43.17.19.XX,,的SAM上的应用程序公开"服务C"的密钥数据。此 时,SAM相互验证密钥为"TTl..., TTn"。此外确定在下一次使用 之前,另一SAM是否能够持有"服务C"的密钥数据。当能够时, 当另一 SAM接着使用该卡上的"服务C,,时,不必再次从SAM获得 卡访问密钥。服务B的访问密钥不从该SAM获得,而是从具有 SAM—ID " 43.17.19.XX,,的SAM获得。"SSl…SSn,,被用作SAM之 间的相互验证密钥。
在下一次使用之前是否可持有"服务B"的访问密钥由该SAM 指定的标志确定。
"服务B运行记录"指示其中保存运行记录数据的文件, "43.13.137.XX,,的SAM—ID被分配给该运行记录。"服务B运行记 录,,是和"服务B,,相同的SAM网络掩码,因此相互验证密钥使用 "SSl...SSn"。这里,为各个相互验证密钥提供APP表数据。本例中, 在其它SAM的APP表数据7310中确定访问"H务B运行记录"和 "服务B"的许可,所述其它SAM上的AP管理表数据查看所述访问 许可。
图123说明了 APP表数据7310—1。
APP表数据7310—2、 7310—3和7310的格式与APP表数据7310—1相同。
如图123中所示,APP表数据7310—l表示每个应用单元数据APE 的识别数据APE—ID以及是否可从另一应用程序(另一应用单元数据 APE)读取、写入或执行该应用单元数据APE。
例如,图123中所示的APP表数据7310_1表示对于"服务B 运行记录",读取是可能的,写入是可能的,执行(删除)是不可能的。
此外,当图115中所示的外部存储器707的AP管理存储区7221 保存显示链接在一起的IC卡类型数据和AP_ID的AP选择数据。
IC卡类型数据表示图109中所示的IC卡的类型,并且是执行使 用IC卡703的交易的结算的信用卡公司的识别数据。在本实施例中,IC卡操作宏命令脚本程序在其中定义(描述)组 合若干应用单元数据APE的名称APE一N的服务内容。通过在后面说 明的IC卡实体数据(作业管理数据)中描述所述服务内容,能够提供 组合对应于若干应用单元数据APE的服务的服务。
例如,可在IC卡实体数据中定义组合从IC卡703读取数据的读 取服务和把数据写入服务器702的写入服务的服务。
此外,当执行由服务企业715_1、 715—2和715—3提供的服务时, APE_N或其服务号码是发送给IC卡703的操作命令,并且能够被IC 卡703分析。
应用程序AP_1由保存在外部存储器707中的AP管理表数据 7300—1和预定的IC卡操作宏命令脚本程序确定。
应用程序AP_2由保存在外部存储器707中的AP管理表数据 7300—2和预定的IC卡操作宏命令脚本程序确定。
应用程序AP_3由保存在外部存储器707中的AP管理表数据 7300_3和预定的IC卡操作宏命令脚本程序确定。
[SAM芯片708
SAM芯片708通过SCSI端口 、以太网等与ASP服务器719相连。 ASP服务器719通过因特网710与包括最终用户的个人计算机705和 服务企业715_1、 715—2及715—3的个人计算机716—1、 716—2及716—3 在内的若干终端设备相连。
个人计算机705通过串行端口或USB端口与Dumb型读卡机/写 卡才几704相连。读卡才几/写卡才几704实现与IC卡703的物理无线通信。
在SAM装置709 —侧产生发送给IC卡703的操作命令并分析来 自于IC卡703的响应分组。于是,读卡机/写卡机704、个人计算机 705、和置于它们之间的ASP服务器719只起把命令或响应内容保存 在数据有效负载部分中并且中继数据有效负载部分的作用,它们不参 与数据的加密或解密、身份验证、或者IC卡703中的其它实际操作。
个人计算机716_1、 716_2和716_3可把后面说明的脚本程序下载 到SAM芯片708上,从而定制应用程序AP 1、 AP 2和AP 3。
143图124是图109中所示的SAM芯片708的功能方框图。
如图124中所示,SAM芯片708具有ASPS通信接口装置760,
外部存储器通信接口装置761,总线扰频装置762,随机数发生器763,
加密/解密装置764,存储器765和CPU 766。 SAM芯片708是防窜改模块。
ASPS通信接口装置760是用于相对于图109中所示的ASP服务 器719输入输出数据的接口。
外部存储器通信接口装置761是用于相对于外部存储器7输入输 出数据的接口。
当通过外部存储器通信接口装置761输入和输出数据时,总线扰 频装置762对输出数据扰频并对输入数据解扰频。
随机数发生器763产生身份验证处理时使用的随机数。 加密/解密装置764对数据加密并对加密数据解密。 如后所述,存储器765保存CPU766使用的任务、程序和数据。 CPU 766根据预定的程序(本发明的程序),执行后面说明的脚 本下载任务、脚本解释任务、实体产生任务(作业管理数据产生任务) 和IC卡过程管理任务(作业管理数据管理任务),以及其它任务。 下面说明保存在存储器765中的任务、程序和数据。 图125说明了保存在存储器765中的任务、程序和数据。 如图125中所示,存储器765保存脚本下载任务769、脚本解释 任务770、实体产生任务771、 IC卡过程管理任务772、 IC卡操作宏 命令脚本程序721—1-721—3、 AP管理表数据7300_1-7300_3、 APP表 数据7310—1-7310—3、 IC卡实体模板数据730—1-730—3、 IC卡实体数 据773一x、输入数据块731—xl、输出数据块732一x2、日志数据块733_乂3、 和计算定义数据块734—x4。
如图118中所示,脚本下载任务769从各个服务企业的计算机下 载AP管理表数据7300_1-7300_3 (如果需要,APP表数据 7310—1-7310—3),并把它们加载到SAM芯片708中。
脚本解释任务770使用服务定义表数据(如果需要,APP表数据7310—1-7310—3)和脚本程序产生各个企业的IC卡实体模板数据、输 入数据块、输出数据块、日志数据块和计算定义数据块。
为各个企业产生的数据块的数目不受特别限制。
当实体产生任务771从ASP服务器719接收实体产生请求时,它 相对于IC卡703进行轮询,随后利用对应于服务企业的IC卡实体模 板数据产生IC卡实体数据,所述IC卡实体数据用于IC卡703和该 服务企业之间的过程的处理。此时,IC卡实体模板数据变成类别,以 该类别的实例的形式产生IC卡实体数据。
实体产生任务771产生IC卡实体数据的处理将在后面详细说明。
IC卡过程管理任务772使用存在于存储器765中的一个或多个IC 卡实体数据773_x执行IC卡703和服务企业715_1-715—3之间的过程 的处理。
本实施例中,在若干IC卡703和服务企业715—1—715—3之间执行
的过程的若干处理被同时进行。
IC卡过程管理任务772并行执行多个过程的这些若干处理。 当一系列的过程完成时,IC卡过程管理任务772删除IC卡实体
数据773一x。
IC卡过程管理任务772的处理将在后面详细说明。
脚本程序721—1—721_3由脚本下载任务769从外部存储器707输 入并保存在存储器765中。
AP管理表数据7300_l-7300—3由脚本下载任务769从外部存储器 707输入并保存到存储器765中。
APP表数据7310—1-7310—3由脚本下栽任务769从外部存储器707 输入,并被保存到存储器765中。
IC卡实体模板数据730一1-730一3由脚本解释任务770产生,并且 当产生与服务企业有关的过程的IC卡实体数据773一x时,被用作模板 (类别)。
通过把IC卡实体模板数据730一1-730一3用作类别,实体产生任务 771以类别的一个实例的形式产生IC卡实体数据773 x。输入数据块731jl、输出数据块732—x2、日志数据块733—x3和 计算定义数据块734一x4由脚本解释任务770产生。 下面说明IC卡实体数据773—x。
当SAM芯片708从ASP服务器719接收利用IC卡3和预定服 务企业的应用程序进行处理的处理请求时,通过利用已产生的该服务 企业的相应IC卡实体模板数据,在SAM芯片708中由实体产生任务 771产生IC卡实体数据773—x。
图126说明了 IC卡实体数据773_x的格式。
如图126中所示,IC卡实体数据773_x具有管理指针数据780、 实体ID数据781、实体状态数据(状态数据)782、 IC卡类型信息783、 APE—N指定数据784、处理顺序数据、预处理数据786和后处理数据 787。
管理指针数据780是用于管理存储器765中的IC卡实体数据 773—x的双向指针。
实体ID数据781用于IC卡实体数据773_x的产生、进程状态的 确认、删除或者其它的一系列使用IC卡实体数据773—x的处理的请求。 实体ID数据781也是将给予最终用户的返回值。当在通用文件系统中 打开文件时,实体ID信息781对应于描述符。
实体状态数据782表示与IC卡703相关的过程的进程的状态。
如图127中所示,IC卡实体数据773—x的基本状态包括调查IC 卡703能够使用的服务的处理的状态(RS) , SAM芯片708借助其 验证IC卡703的处理的状态(Al) , IC卡703借助其验证SAM芯 片708的处理的状态(A2),从IC卡703读取数据的处理的状态(R) 和把数据写入IC卡703的处理的状态(W)。
本实施例中,调查服务企业的处理,SAM芯片708验证IC卡703 的处理,IC卡703验证SAM芯片708的处理,从IC卡703读取数 据的处理和把数据写入IC卡703的处理对应于作业。
如后所述,"作业,,是IC卡过程管理任务772为其确定执行顺 序的处理单元。注意Al和A2构成IC卡703和SAM芯片708之间的相互验证 处理。
此外,本实施例中,考虑到因特网710上的通信时间,如图127 的状态变换图中所示,上面提及的基本状态被分成启动后(在发出命 令之后)状态和完成(在接收响应之后)状态。
具体地说,使用IC卡实体数据773—x的处理的状态由实例产生 (IC卡实体数据产生)状态、RS启动后状态、RS完成状态、Al启 动后状态、Al完成状态、A2启动后状态、A2完成状态、R启动后状 态、R完成状态、W启动后状态、W完成状态和实例(IC卡实体数 据)删除状态管理。
IC卡类型信息783是用于确定发出IC卡703的服务企业的信息。
在产生IC卡实体数据773一x时,利用由上面提及的脚本程序中的 CI命令确定的数据设置IC卡类型数据783。
服务类型单元指定数据784表示AP管理表数据7300—1-7300_3 和在利用IC卡实体数据773—x的处理中所使用的APP表数据 7310一1-7310—3中定义的应用单元数据APE。
在产生IC卡实体数据773一x时,利用上面提及的脚本程序中的 CS命令指定的一个或多个应用单元数据APE设置服务类型单元指定 数据784。
处理顺序数据785表示在利用IC卡实体数据773_x中使用的服务 (作业)的执行顺序,即图127中所示的状态变换。
即,处理顺序数据785使用应用单元数据APE对应于IC卡703 的基本操作的作业的执行顺序。
这里如后所述,作业对应于图127中所示的RS、 Al、 A2、 R和 W。关于IC卡703的具体操作由利用作业指定的处理顺序实现。例如, 对于在只存在读取而不进行相互验证的情况下使用IC卡703的处理来 说,处理顺序信息785被设置成"RS—R"。此外,就进行相互验证 的读取和写入来说,处理顺序信息 785被设置成 "RS—Al—A2—R—W"。当产生IC卡实体数据773一x时,利用图127中所示的和在上面提及的脚本程序中的CS命令中指定的服务单元的顺序对应的作业顺序设置处理顺序信息785。
利用用于执行使用IC卡实体数据773一x的管理数据,从ASP月艮务器719 —侧设置预处理信息786。
例如,利用在SF数据块(应用单元数据APE)中指定服务的计算公式的点数设置预处理信息786。
此外,当没有定义服务间处理函数时,利用所请求的处理费用(charge )设置预处理信息786。
例如,就结算来说,设置和赋予的费用数额或者点数等相关的状态。
利用在ASP服务器719 —侧所需的IC卡实体数据773—x的处理结果的数据设置后处理信息787。例如,就结算来说,利用表示正常结束结算的数据设置后处理信息787。
下面将说明由图125所示的和使用若干IC卡实体数据773_x的若干IC卡703相关的IC卡过程管理任务772进行的处理例程。
IC卡过程管理任务772持续不断地在图124中所示的SAM芯片708的CPU 766上被起动。
图128是IC卡过程管理任务772执行的处理的流程图。
步骤ST701:
IC卡过程管理任务772从存在于存储器765中的若干IC卡实体数据773一x中选择一个IC卡实体数据773—x执行下一处理。
选择IC卡实体数据773一x的方法可能是依次选择存在于存储器765中的IC卡实体数据773_x,或者分配优先级顺序,并按照最高优先级的顺序依据优先级进行选择。
步骤ST702:
IC卡过程管理任务772判断在步骤ST701选择的IC卡实体数据773一x的作业是否已被启动。当判断该作业已被启动时,它进行到步骤ST705的处理,而当判断该作业还未被启动时,则转到步骤ST703的处理。
步骤ST703:
IC卡过程管理任务772根据在步骤ST701选择的IC卡实体数据773一x的图126中所示的实体状态信息782判断和该实体数据相关的处理处于图172中所示的状态变换图中的哪一状态,并且根据处理顺序信息785确定下一步要执行的作业。
此时,处理顺序信息785利用如前所述的服务定义表数据中设置的服务单元确定作业的执行顺序。
步骤ST704:
IC卡过程管理任务772启动在步骤ST703选择的作业。
IC卡过程管理任务772使用上面利用图125说明的输入数据块731—xl,输出数据块732—x2,日志数据块733—x3和计算定义数据块734—x4中和该作业相关的数据块执行该作业。
此时,当向执行作业的IC卡703发出命令时,IC卡过程管理任务772把对应于该作业的服务单元用作搜索AP管理表数据7300—1-7300—3,从而获得对应于该服务单元的服务编号的关键字(IC卡703的操作命令能够被IC卡703分析)。此外,IC卡过程管理任务772使用获得的服务编号向IC卡703发布命令。
此外,如同利用图113说明的那样,当访问IC卡703a的存储区需要密钥信息时,IC卡过程管理任务772使用对应于该作业的服务单元搜索AP管理表数据7300—1-7300—3,并获得对应于该服务单元的密钥信息。此外,IC卡过程管理任务772使用该密钥信息完成和IC卡703的相互验证,对数据加密和解密,或者进行其它处理,并且获得访问IC卡703的预定存储区的;k限。
步骤ST705:
当IC卡过程管理任务772向IC卡703发出命令,并且等待IC卡703的处理结果时,执行步骤ST705。
当IC卡过程管理任务772从IC卡703接收处理结果时,它把该结果放置在IC卡实体数据773_x中。步骤ST706:
IC卡过程管理任务772更新图126中所示的IC卡实体数据773—x的实体状态信息782。
这样,在本实施例中,IC卡过程管理任务772并行进行存在于SAM芯片708中的若干IC卡703的处理,同时按照顺序选择所述若干IC卡703的IC卡实体数据773一x。于是,即使当接收使用若干IC卡703的过程的处理请求时,SAM芯片708也可同时继续进行处理。
图129和图130说明了当在上述图128中的步骤S704执行作业时,,根据当访问由SAM芯片708执行的数据时,由应用单元数据APE或者处理确定的例程,由另一应用单元数据APE确定的处理。
步骤ST741:
当根据预定应用单元数据APE执行处理时,指定供使用(访问)的应用程序和该应用程序中的应用单元数据。
此外,所述使用指定该应用单元数据APE的读取、写入和执行之
步骤S742:
SAM芯片708判断在步骤ST741指定的应用单元数据APE是否存在于该SAM芯片708中。如果确定不存在于该SAM芯片708中,则转到步骤ST743的处理,而如果确定存在于该SAM芯片708中,则转到步骤ST745的处理。
步骤ST743:
SAM芯片708查看对应于正在执行的应用程序的AP管理表数据7300—1-7300—3,获得对应于相应服务(应用单元数据APE )的密钥数据K—SAM,并且使用该密钥数据K—SAM和具有要使用的应用单元数据APE的SAM芯片708a进行相互验证。
步骤ST744:
如果在步骤ST743的相互验证中,SAM芯片708和708a确认彼此的合法性,则SAM芯片708转到步骤ST747的处理。如果没有确认彼此的合法性,则转到步骤ST751。步骤ST745:
SAM芯片708查看对应于正被执行的应用程序的AP管理表数据7300一1-7300—3,获得对应于该服务(应用单元数据APE)的密钥数据K—SAM。
此外,对于同样在步骤ST741指定的要使用的应用单元数据APE,SAM芯片708类似地查看对应于该应用单元数据APE的AP管理表数据7300—1-7300—3,获得和相应服务(应用单元数据APE)对应的密钥数据K一SAM。
此外,SAM芯片708比较所获得的两个密钥数据K—SAM。
扰频器746:
当SAM芯片708判断在步骤ST745的处理所比较的两个密钥数据K—SAM相符,则例程转到步骤ST747的处理,否则思索到步骤ST751。
步骤ST747:
SAM芯片708或708a查看对应于在步骤ST741指定的应用程序的AP管理表数据7300—1-7300—3,并且确定对应于所使用的应用单元数据APE的APP表数据7310_1-7310_3。
步骤ST748:
SAM芯片708或708a根据在步骤ST747指定的APP表数据7310_1-7310—3判断要使用(访问)的应用单元数据APE的访问权限。
具体地说,它判断读取、写入和执行要使用的应用单元数据APE的权限。
步骤ST749:
当SAM芯片708或者708a判断在步骤ST748存在访问;^又限,则转到步骤ST750,否则转到步骤ST751的处理。步骤ST750:
SAM芯片708或708a把在步骤ST741指定的应用单元数据APE用于在步骤ST741指定的应用。步骤ST751:SAM芯片708或708a不把在步骤ST741指定的应用单元数据APE用于在步骤ST741指定的应用。
此外,在在上面说明的图128的步骤ST704执行作业时,当SAM芯片708根据由应用单元数据APE确定的例程相对于IC卡703传送数据时,SAM芯片708查看图125中所示的AP管理表数据7300—l-7300一3 ,获得对应于该应用单元数据APE的密钥数据K—CADR,并且4吏用该密钥数据K—CARD访问IC卡703的存储器750。
下面将说明图109中所示的通信系统的整体操作。
图131和图132说明了图109中所示通信系统701的整体操作。
步骤ST721:
服务企业715—1-715_3或者这些企业所请求的一方在图109中所示个人计算机716—1、 716—2和716—3上产生脚本程序721—1、 721_2和721_3,所述脚本程序721_1、 721—2和721—3描述服务企业利用IC卡703进行的交易的处理。
此外,SAM芯片708的管理人员产生对应于服务企业715—1-715—3的AP管理表数据7300—1-7300—3。
步骤ST722:
在步骤ST721产生的AP管理表数据7300一1-7300—3 ^皮保存在外部存储器707中。
此外,在步骤ST721产生的脚本程序721_1、 721—2和721—3通过因特网710、ASP服务器719和SAM芯片708从个人计算机716—1、716—2和716_3#^下载到外部存储器707。如图118中所示,关于下载的处理由SAM芯片708中的脚本下载任务769管理。
步骤ST723:
图118中所示的SAM芯片中708中的脚本解释任务770使用AP管理表数据7300_1-7300一3和脚本程序产生每个服务企业的IC卡实体模板数据,输入数据块,输出数据块,日志数据块和计算定义数据块。
产生的数据被保存在图124中所示的SAM芯片708的存储器765中。
步骤ST724:用户被发给IC卡703。
如图113中所示,IC卡703的IC 703a的存储器750保存用于用户和服务企业达成的交易的密钥信息。
注意在发行IC卡703之后,用户和服务企业之间的合同还可通过因特网710等締结。
步骤ST725:
例如,当用户使用个人计算机705通过因特网710访问服务器702,试图购买产品时,服务器702通过因特网710向ASP服务器719发出处理请求。
当ASP服务器719从服务器702接收处理请求时,它通过因特网710访问个人计算机705。此外,从读卡机/写卡机704发出的涉及IC卡703处理请求通过个人计算机705、因特网710和ASP服务器719被传送给SAM芯片708。
步骤ST726:
ASP服务器719向SAM芯片708输出实体产生请求。该实体产生请求保存显示IC卡703的发行者的信息。步骤S727:
当SAM芯片708接收实体产生请求时,它执行对于IC卡703的轮询。
步骤ST728:
轮询结束之后,SAM芯片708的实体产生任务771判断存在于SAM芯片708中的IC卡实体数据773—x的数目是否在由脚本程序的SC命令确定的最大数目之内。如果在最大数目之内,则转到步骤ST729的处理,如果不在最大数目之内,则结束处理。
步骤ST729:
实体产生任务771根据保存在实体产生请求中的显示IC卡703的发行者的信息,指定要使用哪个服务企业的IC卡实体模板数据,并且使用指定的IC卡实体模板数据产生IC卡实体数据773一x。这对应于图127中所示的实例产生。步骤ST730:
SAM芯片708把在步骤ST729产生的IC卡实体数据773—x的实体ID输出给ASP服务器719。步骤ST731:
SAM芯片708的IC卡过程管理任务772调查IC卡703能够使用的服务。
这是对应于图127中所示作业RS的处理。步骤ST732:
SAM芯片708的IC卡过程管理任务772验证IC卡703的合法性。
这是对应于图127中所示作业Al的处理。步骤ST733:
IC卡703验证SAM芯片708的合法性。这是对应于图127中所示作业A2的处理。
根据步骤ST32和ST33,IC卡703和SAM芯片708被相互验证。此时,如前所述,根据正净皮SAM芯片708执行的应用单元数据APE,查看图211中所示的AP管理表数据7300—1-7300—3,获得密钥数据K一CARD,并且该密钥数据K_CARD被用于SAM芯片708和IC卡703的CPU 751之间的相互验证。步骤ST734:
SAM芯片708的IC卡过程管理任务772读取和写入关于IC卡703的过程所需的数据。
这是对应于图127中所示的作业R和W的处理。
此外,IC卡过程管理任务772使用根据IC卡实体数据773一x的预处理数据指定的处理公式,并且使用从IC卡703读取的数据进行预定的计算处理。
步骤ST735:SAM芯片708的IC卡过程管理任务772把步骤ST734的处理结果输出给ASP服务器719。步骤ST736:
例如,IC卡过程管理任务772删除IC卡实体数据773—x。如上所述,根据通信系统701和SAM装置709,通过配置使用若干应用单元数据APE的应用程序AP,并且使用AP管理表数据和APP表数据定义应用单元数据APE的计算内容,能够提供使用IC卡703的不同服务。
此外,根据通信系统701,能够在保持高度机密的同时,使用AP管理表数据和APP表数据灵活实现相同SAM中应用单元数据APE的利用,以及不同SAM之间应用单元数据APE的利用。
此外,根据通信系统701,当在不同SAM之间使用应用单元数据APE时,由于在SAM之间进行相互验证,因此能够提高应用程序的机密性。
此外,根据通信系统701,通过向相同服务企业的应用程序分配同类的SAM一ID,能够防止在相同企业的应用程序的应用单元数据APE之间执行复杂的相互验证处理,从而减轻SAM芯片的密钥信息管理和处理的负担。
此外,根据通信系统701,能够为和IC卡703 —同发生的过程的各个处理产生IC卡实体数据773一x,并且使IC卡过程管理任务772使用若干IC卡实体数据773_x同时继续进行涉及所述若干IC卡703的处理。
此外,根据验证系统701,由于把实际用于IC卡703的处理的IC卡实体数据773_3保存到存储器765中就足够了 ,因此能够有效地使用存储器765的存储区。
另外,根据验证系统701,如图127中所示,由于IC卡过程管理任务772所处理作业的执行状态被分成启动后状态和完成状态,因此在开始执行一个作业之后,能够在等待来自于IC卡703的数据的状态下开始另一作业的处理。于是,能够消除通过因特网10与IC卡703传送数据引起的等待时间。
此外,根据验证系统701, AP管理表数据7300—1-7300—3其中描述表示由各个服务企业提供的服务类型的名称,即APE一N, IC卡703中使用的服务的编号,以及当提供这些服务时使用的密钥信息。这些保存在外部存储器707中。于是,不是SAM芯片708的开发者的服务企业715—1-715—3可通过产生脚本程序721—1、 721—2和721_3,并且通过SAM芯片708把这些脚本程序下栽到外部存储器707,定制他们自己的运行于SAM芯片708上的应用程序。即,在不把直接操作IC卡703的密钥信息或操作命令,或者其它高度机密的信息告知服务企业715_1-715_3的情况下,这些服务企业可定制他们自己的应用程序。此外,当定制应用程序时,服务企业不必知道密钥数据或者卡操作命令,从而减轻了服务企业的负担。
此外,根据验证系统701,由于能够定义生成若干服务的计算内容,因此能够在IC卡3 —侧提供把经批准同时执行的大量服务中的若干服务组合起来的不同服务。
此外,根据验证系统701,通过引入数据块的概念,能够容易地管理相对于IC卡703的数据输入输出以及日志数据。附闺标记
l...通信系统,2...服务器,3...IC卡,4...读卡机/写卡机,5…个人计算机,6…ASP服务器,7…外部存储器,8..,SAM芯片,9…SAM装置,IO...因特网,15_1、 15—2、 15_3...信用卡企业,16_1、 16—2、16一3,.,个人计算机
101…通信系统,102…服务器,103…IC卡,104…读卡机/写卡机,105…个人计算机,106…ASP服务器,107…外部存储器,108... SAM芯片,109…SAM装置,IIO...因特网,115—1、 115-2和115—3…信用卡企业,U6—1、 116—2和116_3,..个人计算机,117—1、 117—2、 117—3…验证装置
201…通信系统,202…服务器,203…IC卡,2(M…读卡机/写卡机,205…个人计算机,206…ASP服务器,2CV7…外部存储器,208...SAM芯片,209...SAM装置,210…因特网,215_1、 215—2、 215一3…信用卡企业,216—1、 216—2、 216—3…个人计算机,217—1、 217_2、 217一3…验证装置
301…通信系统,302…服务器,303…IC卡,304…读卡机/写卡机,
305...个人计算机,306…ASP服务器,307,..外部存储器,308..,SAM芯片,309...SAM装置,310…因特网,315—1、 315—2、 315—3…信用卡企业,315—4…处理程序层的开发者,315—S…SAM芯片管理人员,316 1、 316 2、 316 3...个人计算机,317 1、 317 2、 317 3…验证装置,318…ICE
401...通信系统,402...服务器,403…IC卡,404…读卡机/写卡机,405...个人计算机,406…ASP服务器,407…外部存储器,408…SAM芯片,409...SAM装置,410…因特网,415—1、 415—2、 415一3…信用
卡企业,416—1、 416一2、 416—3…个人计算机,417一1、 417—2、 417—3...验证装置501…计算机,502…CPU, 503…存储器,504…通信电路,506...CPU数据总线,507...CPU地址总线,508…1C卡,5S1."计算机,5S2...CPU, 5S3…存储器,560,..判断电路,561...开关电路,562...存储器数据总线,570...选择电路,571...取出判断电路,572...读取判断电路,573.,.写入判断电路
631...半导体电路,632...内部存储器,633.,.开关电路,634...开关电路,635…判断电路,636…选择电路,637…CPU, 660…外部存储器,6131...半导体芯片,6134...加密/解密电路,6135...判断电路,6136...选择电路,6137…CPU, 6160…外部存储器,6190...密钥信息表
701…通信系统,702…服务器,703…IC卡,704…读卡机/写卡机,705…个人计算机,707、 707a…外部存储器,708、 708a…SAM芯片,709、 709a…SAM装置,715—1 - 715—3…服务企业,719…ASP服务器。
权利要求
1.一种由执行应用程序的半导体电路完成的数据处理方法,所述数据处理方法包括下述步骤利用多个防火墙中事先分配给形成所述应用程序的多个程序模块中的各个程序模块的防火墙保护该程序模块,记录与识别分配给程序模块的防火墙的防火墙识别信息链接的程序模块,和以所述记录正在进行为条件,执行所述程序模块。
2. 按照权利要求1所述的数据处理方法,还包括允许记录的与相 同防火墙识别信息链接的多个程序模块之间的数据传送或数据查看, 并且禁止记录的与不同防火墙识别信息链接的多个程序模块之间的数 据传送或者数据查看的步骤。
3. 按照权利要求1所述的数据处理方法,还包括下述步骤 记录还与当把程序模块从所述半导体电路之外下裁到所述半导体电路时使用的下栽密钥信息链接的程序模块,和当接收关于所述程序模块的下载请求时,利用记录的和所述程序 模块链接的所述下载密钥信息判断下栽是否可能,并且当判断下载可 能时,下载该程序一莫块。 」
4. 按照权利要求3所述的数据处理方法,还包括当对应于所述程 序模块的所述下载密钥信息未被记录时,不下栽程序模块的步骤。
5. 按照权利要求3所述的数据处理方法,还包括关于所述下载请 求的发出者进行相互验证,以便确认所述发出者的合法性,随后判断 所述下栽是否可能的步骤。
6. 按照权利要求3所述的数据处理方法,还包括下述步骤 记录还与在执行所述程序模块之前使用的密钥信息链接的程序模块,和利用和关于其的执行请求被接收的程序模块对应的所述密钥信息 来判断所述程序模块是否已被改变或者被窜改,当判断所述程序模块未被改变或者被窜改时,执行所述程序模块。
7. 按照权利要求3所述的数据处理方法,还包括下述步骤 当把程序模块保存在设置于所述半导体电路之外的半导体存储电路中时,所述半导体电路对所述程序模块扰频,随后将其写入所述半导体 存储电路中,和所述半导体电路对从所述半导体存储电路读取的程序4莫块解扰频。
8. 按照权利要求3所述的数据处理方法,还包括下述步骤 当所述应用程序定义利用集成电路相对于所述半导体电路传送数据的过程的处理时,所述半导体电路利用第二密钥信息对用于所述集成电路的操作的第一密钥信息加密,并将其保存在所述半导体存储电路中,和所述半导体电路把所述第二密钥信息保存在所述半导体电路中。
9,按照权利要求3所述的数据处理方法,其中所述集成电路安装在卡上。
10. 按照权利要求3所述的数据处理方法,还包括下述步骤 所述半导体电路执行与提供利用所述集成电路执行的过程的多个过程提供者对应的多个应用程序,及所述半导体电路利用相同的防火墙保护形成相同应用程序的多个 所述程序模块。
11. 一种运行应用程序的半导体电路, 所述半导体电路利用多个防火墙中事先分配给形成所述应用程序的多个程序模块 中的各个程序模块的防火墙保护该程序模块,记录与识别分配给该程序模块的防火墙的防火墙识别信息链接的 程序模块,和以所述记录正在进行为条件,执行所述程序模块。
12. 按照权利要求ll所述的半导体电路,所述半导体电路允许记录的与相同防火墙识别信息链接的多个程序模块之间的数据传送或数 据查看,并且禁止记录的与不同防火墙识别信息链接的多个程序模块 之间的数据传送或者数据查看。
13. 按照权利要求11所述的半导体电路,所述半导体电路 记录还与当把程序模块从所述半导体电路之外下载到所述半导体电路时使用的下载密钥信息链接的程序模块,和当接收关于所述程序模块的下载请求时,利用记录的和所述程序 模块链接的所述下栽密钥信息判断下载是否可能,当判断下栽可能时, 下载该程序模块。
14. 按照权利要求13所述的半导体电路,当对应于所述程序模块 的所述下载密钥信息未被记录时,所述半导体电路不下载程序模块。
15. 按照权利要求13所述的半导体电路,所述半导体电路相对于 所述下栽请求的发出者进行相互验证,以便确认所述发出者的合法性, 随后判断所述下栽是否可能。
16. 按照权利要求11所述的半导体电路,所述半导体电路 记录还与在执行所述程序模块之前使用的密钥信息链接的程序模块,和利用和关于其的执行请求被接收的程序模块对应的所述密钥信息 来判断所述程序模块是否已被改变或者窜改,当判断所述程序模块未 被改变或者窜改时,执行所述程序模块。
17. 按照权利要求11所述的半导体电路,其中当把程序模块保存在设置于所述半导体电路之外的半导体存储电 路中时,所述半导体电路对所述程序模块扰频,随后将其写入所述半导体 存储电路中,和所述半导体电路对从所述半导体存储电路读取的程序模块解扰频。
18. 按照权利要求11所述的半导体电路,所述半导体电路, 当所述应用程序定义利用集成电路相对于所述半导体电路传送数据的过程的处理时,利用第二密钥信息对用于所述集成电路的操作的第一密钥信息加 密,并将其保存在所述半导体存储电路中,和把所述第二密钥信息保存在所述半导体电路中。
19. 按照权利要求11所述的半导体电路,其中所述集成电路安装 在卡上。
20. 按照权利要求18所迷的半导体电路,其中所述半导体电路 执行与提供利用所述集成电路执行的过程的多个过程提供者对应的多个应用程序,及利用相同的防火墙保护形成相同应用程序的多个所述程序模块。
21. —种由半导体电路执行的用于执行应用程序的数据处理方法,所述数据处理方法包括下述步骤 独立执行由防火墙保护的多个应用程序,预先记录允许在所述应用程序之间进行的通信穿过所述防火墙的 条件,当应用程序请求与另 一应用程序通信时,判断通信请求是否满足 所述记录条件,和当判断通信请求满足所述记录条件时,根据所述通信请求进行应 用程序之间的通信。
22. 按照权利要求21所述的数据处理方法,还包括把指示允许通 过所述防火墙的通信的所述通信请求的发出者的应用程序和所述另一 应用程序的组合的信息记录为允许所述通信的条件的步骤。
23. 按照权利要求21所述的数据处理方法,还包括下述步骤, 当所述半导体电路从所述半导体电路之外接收处理请求时, 在所述多个应用程序之间选择和所述处理请求对应的应用程序,和根据选择的所述应用程序,执行和所述处理请求相符的处理。
24. 按照权利要求21所迷的数据处理方法,还包括利用所述半导间通信的数据的步骤。
25. 按照权利要求24所述的数据处理方法,还包括下述步骤 数据发送一方的应用程序把数据写入所述预定存储区, 数据发送一方的应用程序把写入操作正在进行的事实通知数据接收一方的应用程序,和数据接收一方的应用程序根据所述通知从所述预定存储区读取所 述数据。
26. 按照权利要求24所述的数据处理方法,还包括当产生关于所 述预定存储区的访问请求时,借助防火墙判断所述访问的合法性,并 且只有对被判断为合法的访问请求,才允许访问所述预定存储区的步
27. 按照权利要求24所述的数据处理方法,还包括对和所述应用 程序之间的通信一起传送的数据扰频,随后将其保存在所述预定存储 区中的步骤。
28. 按照权利要求21所述的数据处理方法,还包括所述半导体电 路向另一半导体电路请求伴随所述应用程序的执行的至少部分处理的 步骤。
29. —种半导体电路,所述半导体电路 独立执行受防火墙保护的多个应用程序,事先记录允许在所述应用程序之间进行的通信穿过所述防火墙的 条件,当应用程序请求与另 一应用程序通信时,判断通信请求是否满足 所述记录条件,和当判断通信请求满足所述记录条件时,根据所述通信请求进行所 述应用程序之间的通信。
30. 按照权利要求29所述的半导体电路,所述半导体电路把指示 允许通过所述防火墙的通信的所述通信请求的发出者的应用程序和所 述其它应用程序的组合的信息记录为允许所述通信的条件。
31. 按照权利要求29所述的半导体电路,所述半导体电路 当从外部接收处理请求时,在所述多个应用程序之间选择和所述处理请求对应的应用程序,和根据选择的所述应用程序,执行和所述处理请求相符的处理。
32. 按照权利要求29所述的半导体电路,所述半导体电路利用所程序之间通信的数据。
33. 按照权利要求32所述的半导体电路,所述半导体电路 在数据发送一方的应用程序中把数据写入所述预定存储区, 把写入操作正在进行的事实通知数据接收一方的应用程序,和 根据所述通知把所述数据从所述预定存储区读入数据接收一 方的应用程序。
34. 按照权利要求32所述的半导体电路,当产生关于所述预定存 储区的访问请求时,所迷半导体电路借助防火墙判断所述访问的合法 性,并且只有对被判断为合法的访问请求,才允许访问所述预定存储 区。
35. 按照权利要求32所述的半导体电路,所述半导体电路对和所 述应用程序之间的通信一起传送的数据扰频,随后将其保存在所述预 定存储区中。
36. 按照权利要求29所述的半导体电路,所述半导体电路向另一 半导体电路请求伴随所述应用程序的执行的至少部分处理。
37. —种数据处理方法,借助该数据处理方法半导体电路或者所 述半导体电路可访问的半导体存储设备下载在所述半导体电路中运行 的程序其中所述半导体电路具有由多层组成的软件结构,并使对应于每 层的下栽签名验证密钥信息能够被所述半导体电路查看, 所述数据处理方法包括下述步骤当接收所述下载请求时,所述半导体电路利用所述下栽签名验证密钥信息验证根据下载请求产生的下栽签名信息,以所述下栽签名信息合法为条件,所述半导体电路允许所述下载 请求的发出者下栽与用于该验证的下栽签名验证密钥信息对应的那一 层的程序。
38. 按照权利要求37所述的数据处理方法,还包括下述步骤 验证设备保存与允许被下载的程序所属那层对应的访问主密钥信息,所述验证设备把所述下载请求传送给所述半导体电路,和 所述验证设备使用该访问主密钥信息产生所述下栽签名信息,并 把该下载签名信息传送给所述半导体电路。
39. 按照权利要求37所述的数据处理方法,还包括下述步骤 验证设备保存所述半导体电路的识别信息,和所述验证设备利用所述访问主密钥信息对呈明文形式的所述识别 信息加密,产生下载主密钥信息,并且使用该下栽主密钥信息产生所 述下载签名信息。
40. 按照权利要求38所述的数据处理方法,还包括下述步骤第一访问主密钥信息和与所述层的一个或多个更高层对应的一个或多 个第二访问主密钥信息,和所述验证设备使用所述第 一访问主密钥信息和所述一 个或多个第 二访问主密钥信息产生所述下载签名信息。
41. 按照权利要求38所述的数据处理方法,还包括所述验证设备 相对于所迷半导体电路进行相互验证,随后把所述下载签名信息传送 给所述半导体电路的步骤。
42. 按照权利要求41所述的数据处理方法,还包括下述步骤 所述验证设备保存所述半导体电路的相互验证主密钥信息和识别信息,所述验证设备利用所述相互验证主密钥信息对呈明文形式的所述 识别信息加密,产生相互验证密钥信息,和所述验证设备把所述相互验证密钥信息用于和所述半导体电路的 相互验证。
43. 按照权利要求37所述的数据处理方法,其中所述半导体电路 的软件结构被分成只有所述半导体电路的管理人员被赋予下载权的第 一层,设置在所述第一层之上的第二层,操作预定集成电路的程序属 于该第二层,设置在所述第二层之上的第三层,定义使用所述集成电 路的交易过程内容的应用程序属于该第三层。
44. 按照权利要求43所述的数据处理方法,其中 所述集成电路安装在卡上,并且所述半导体电路通过通信线路和与所述通信线路相连的通信设备 访问所述集成电路。
45. 按照权利要求43所述的数据处理方法,其中与执行使用所述 集成电路的交易的多个企业对应的应用程序属于所述第三层,为所述 多个应用程序定义防火墙,并且限制通过所述防火墙的所述应用程序 之间的数据传送或数据查看。
46. 按照权利要求38所述的数据处理方法,还包括当检测到施加 于所述验证设备上的物理外力,借助所迷外力,所述访问主密钥信息 可能被非法起动时,所述验证设备自动删除所述保存的访问主密钥信
47. —种具有由多层组成的软件结构的半导体电路, 所述半导体电路能够查看对应于各层的下载签名验证密钥信息, 当接收下载请求时,利用所述下栽签名验证密钥信息验证根据下载请求产生的下载签名信息,和以所述下载签名信息合法为条件,允许所述下栽请求的发出者把 和用于该验证的下载签名验证密钥信息对应的一层的程序下载到该半 导体电路或者所述半导体电路可访问的半导体存储电路。
48. 按照权利要求47所述的半导体电路,其中所述半导体电路的 软件结构被分成只有所述半导体电路的管理人员被赋予下载权的第一 层,设置在所述第一层之上的笫二层,操作预定集成电路的程序属于该第二层,设置在所述第二层之上的第三层,定义使用所述集成电路 的交易过程内容的应用程序属于该第三层。
49. 按照权利要求47所述的半导体电路,其中 所述集成电路安装在卡上,并且所述半导体电路通过通信线路和与所述通信线路相连的通信设备 访问所述集成电路。
50. 按照权利要求49所述的半导体电路,其中与执行使用所述集 成电路的交易的多个企业对应的应用程序属于所述第三层,为所述多 个应用程序定义防火墙,并且限制通过所述防火墙的所述应用程序之 间的数据传送或数据查看。
51. —种当把在半导体电路中运行的程序下栽到具有由多层组成 的软件结构的半导体电路或者可被该半导体电路访问的半导体存储设 备时,用于验证的验证设备,所述验证设备保存与允许被下载的程序所属层相对应的访问主密钥信息, 把所述下载请求传送给所述半导体电路,和 利用该访问主密钥信息产生所述下载签名信息,并把该下载签名 信息传送给所述半导体电路。
52. 按照权利要求51所述的验证设备,所述验证设备 保存所述半导体电路的识別信息,和利用所述访问主密钥信息对呈明文形式的所述识别信息加密,从 而产生下栽主密钥信息,并且使用该下载主密钥信息产生所述下载签 名信息。
53. 按照权利要求52所述的验证设备,所述验证设备 保存与允许下栽到所述半导体电路的所述层对应的第一访问主密钥信息和与所述层的一个或多个更高层对应的一个或多个第二访问主 密钥信息,并且利用所述第一访问主密钥信息和所述一个或多个第二访问主密钥 信息产生所述下栽签名信息。
54. 按照权利要求52所述的验证设备,所述验证设备执行和所述 半导体电路的相互验证,随后把所述下载签名信息传送给所述半导体 电路。
55. 按照权利要求54所述的验证设备,所述验证设备 保存所述半导体电路的相互验证主密钥信息和识别信息,利用所述相互验证主密钥信息对呈明文形式的所述识别信息加 密,产生相互验证密钥信息,和把所述相互验证密钥信息用于和所述半导体电路的相互验证。
56. 按照权利要求52所述的验证设备,其中当检测到施加于所述 验证设备上的物理外力,借助所述外力,所述访问主密钥信息可能被 非法起动时,所述验证设备自动删除保存的所述访问主密钥信息。
57. —种具有数据处理电路和数据输入/输出处理电路的半导体电 路,其中所述数据处理电路通过所述数据输入/输出处理电路借助于该半 导体电路之外的总线输入输出数据,和 所述数据输入/输出电路对以预定数据长度为单位从所述数据处理电路输入的数据加密, 并把加密后的数据输出给所述总线,对从所述总线输入的数椐解密,并把解密后的数据输出给所述数 据处理电路,并且当Nc/Nb=n时,以m个数据输入/输出交易为单位,通过所述总 线执行数据输入/输出交易,这里所述总线的总线宽度为Nb,数据长 度为Nc, n或者更大值(n or more )的最小整数为m。
58. 按照权利要求57所述的半导体电路,其中, 所述数据输入/输出电路,当根据从所述数据处理电路输入的第一地址通过所述总线访问半 导体存储电路时,把所述第一地址转换成第二地址,以便以保存Nc的数据的存储区 为单位访问所述半导体存储电路,并且使用所述第二地址访问所述半导体存储电路。
59. 按照权利要求58所述的半导体电路,其中所述数据输入/输出 电路,当所述数据处理电路接收把第 一数据写入第 一地址的指令时, 把所述第 一地址转换成所述第二地址,使用所述第二地址从所述半导体存储电路读取包括所述第一地址 的预定地址范围的数据,对所述读取的数据解密,把对应于所述第一地址的数据重新写入所述解密数据中, 对包括所迷重写数据的预定地址范围的所述数据加密,并且 利用所述第二地址把所述加密数据写入所述半导体存储电路。
60. 按照权利要求58所述的半导体电路,其中所述数据输入/输出 电路,当所述数据处理电路接收从第一地址读取数据的指令时, 把所述第 一地址转换成所述第二地址,使用所述第二地址从所述半导体存储电路读取包括所述第一地址 的预定地址范围的数据,对所述读取的数据解密,把对应于所述第一地址的数据重新写入所述解密数据中,并且 取出所述解密数据中与所述第一地址对应的数据,并将其输出给 所述数据处理电路。
61. 按照权利要求57所述的半导体电路,其中以当对所述数据加 密以便写入所述半导体存储电路时使用的密钥数据和当从所述半导体数据输入:输出电路恰当地交换;于所述加密和解密的i钥数据。、'
62. 按照权利要求61所述的半导体电路,其中 所述数据输入/输出电路保存多个所述密钥, 所述多个密钥被恰当地交换以供使用。
63. 按照权利要求61所述的半导体电路,其中所述数据输入/输出电路把访问所述半导体存储电路的地址用于计算,以便产生所述密钥。
64. 按照权利要求61所述的半导体电路,其中所述数据输入/输出 电路根据要写入所述半导体存储电路的数据产生奇偶校验数据,把所 述奇偶校验数据写入和所述数据链接的所述半导体存储电路中,和所 述数据的读取一起读取对应的奇偶校验数据,并且根据所述奇偶校验 数据验证所述读取数据的合法性。
65. 按照权利要求57所述的半导体电路,其中所述数据输入/输出 电路将把数据写入所述半导体存储电路的处理和从所述半导体存储电 路读取数据的处理的至少之一划分成多个处理,并且以所述划分后的 处理为单位进行流水线处理。
66. 按照权利要求65所述的半导体电路,其中所述数据输入/输出 电路对从所述数据处理电路输入的地址扰频,从而产生第二地址。
67. —种当半导体电路和半导体存储电路通过总线相连时,当访 问半导体存储电路时,半导体电路所执行的数据处理方法,所述数据处理方法包括下述步骤对将以预定数据长度为单位写入所述半导体存储电路的数据加 密,并把加密数据输出给所述总线, 对从所述总线输入的数据解密,和当Nc/Nb=n时,以m个数据输入/输出交易为单位,通过所述总 线执行数据输入/输出交易,这里所述总线的总线宽度为Nb,所述数 据长度为Nc, n或者更大值(nor more)的最小整数为m。
68. 按照权利要求67所述的数据处理方法,还包括产生当访问所 述半导体存储电路时使用的地址,以便以保存Nc长度的数据的存储 区为单位访问所述半导体存储电路的步骤。
69. 按照权利要求68所述的数据处理方法,还包括下述步骤 使用所述产生的地址从所述半导体存储电路读取预定地址范围的数据,对所述读取的数据解密, 把必要的数据重新写入所述解密数据中,对包括所述重写数据的预定地址范围的所述数据加密,和 利用所述产生的地址把所述加密数据写入所述半导体存储电路。
70. 按照权利要求68所述的数据处理方法,还包括下述步骤 使用所述产生的地址从所述半导体存储电路读取预定地址范围的数据,对所述读取的数据解密,和 取出并处理所述解密数据中的必要数据。
71. 按照权利要求67所述的数据处理方法,还包括以当对所述数 据加密以便写入所述半导体存储电路时使用的密钥数据和当从所述半 导体存储电路读取并对所述数据解密时使用的密钥数据相同为条件, 恰当地交换用于所述加密和解密的密钥数据的步骤。
72. 按照权利要求71所述的数据处理方法,还包括下述步骤 保存多个所述密钥,和 恰当地交换所述多个密钥以供使用。
73. 按照权利要求71所述的数据处理方法,还包括把访问所述半 导体存储电路的地址用于计算,以便产生所述密钥。
74. 按照权利要求67所述的数据处理方法,还包括从要写入所述 半导体存储电路的数据产生奇偶校验数据,把所述奇偶校验数据写入 和所述数据链接的所述半导体存储电路中,与所述数据的读取一起读 取对应的奇偶检验数据,并根据所述奇偶校验数据验证所述读取数据 的合法性的步骤。
75. 按照权利要求67所述的数据处理方法,还包括将把数据写入的至少之一划分成多个处理,并且以所述划分后的处理为单位进行流 水线处理的步骤。
76. —种数据处理设备,包括保存多个程序的指令和数据的存储电路,通过传输线路访问所述存储电路,并使用所述多个程序的指令和 数据执行所述多个程序的计算电路,介于所述传输线路和所述存储电路之间,根据控制信号把所述传 输线路和所述存储电路设置成连接状态和断开状态之一的连接转换电 路,根据为所述多个程序中的每个程序限定当计算电路正在执行所述 多个程序时所述存储电路中能够被访问的地址范围的访问范围定义数 据、所述存储电路中所述计算电路对其发出访问请求的地址和说明所息,产生控制把所述传输线路和所述存储电路设置成连接状态和断开 状态之一的控制信号的连接控制电路,和通过所述传输线相对于所述 计算电路输入输出数据,并且相对于该数据处理设备外部输入输出数 据的输入/输出接口电路。
77. 按照权利要求76所述的数据处理设备,其中当所述存储电路 中所述计算电路对其发出访问请求的地址在由所述访问范围定义数据 限定的与正被执行的程序对应的地址范围之内时,连接控制电路产生 指示把所述传输线路和所述存储电路设置成连接状态的所述控制信 号,并且当所述地址不在该地址范围之内时,产生指示把所述传输线 路和所述存储电路设置成断开状态的所述控制信号。
78. 按照权利要求76所述的数据处理设备,其中所述连接控制电路根据以所述访问范围定义数据为基础正在执行的指令,产生所述控制信号,所述访问范围定义数据根据所述计算电路正在执行取出、读 取和写入指令中的哪个指令来定义所述存储电路中可被访问的地址范围。
79. 按照权利要求76所述的数据处理设备,其中所述连接控制电 路具有保存所述访问范围定义数据的存储器。
80. 按照权利要求76所述的数据处理设备,其中 所述输入/输出接口电路相对于保存在所述数据处理设备之外加密的所述访问范围定义数据的集成电路传送数据,所述计算电路通过所述传输线路和所述通信电路访问所述集成电 路,和所述连接控制电路保存预定的密钥信息,通过所述通信电路和所 述传输线路从所述集成电路接收所述加密的访问范围定义数据,利用 所述密钥信息对所述接收的访问范围定义数据解密,并使用所述解密 的访问范围定义数据产生所述控制信号。
81. 按照权利要求80所述的数据处理设备,其中所述连接控制电 路通过所述输入/输出接口电路和所述传输线路接收已加密的用于进 行所述解密的解密程序,对所述接收的解密程序解密,将其保存在所 述存储电路中,并使用保存在所述存储电路中的所述解密程序对所述 访问范围定义数据解密。
82. 按照权利要求76所述的数据处理设备,其中当所述连接控制 电路把所述传输线路和所述存储电路设置成断开状态时,所述计算电 路停止所述计算电路的操作。
83. 按照权利要求76所述的数据处理设备,其中当正被所述计算 电路执行的所迷程序调用另 一程序的函数时,所述连接控制电路根据 预先定义调用者和允许调用的调用者的程序的组合的程序间调用关系 定义数据,判断所述调用是否被许可,当判断所述调用被许可时,产 生把所述传输线路和所述存储电路设置成连接状态的所述控制信号, 以及当判断所迷调用不被许可时,产生把所述传输线路和所述存储电 路设置成断开状态的所述控制信号。
84. 按照权利要求83所述的数据处理设备,其中所述连接控制电 路根据以所述程序间调用关系定义数据为基础正在执行的指令,产生 所述控制信号,所述程序间调用关系定义数据根据所述计算电路正在 执行取出、读取和写入指令中的哪个指令来定义程序的组合。
85. 按照权利要求83所述的数据处理设备,其中所述连接控制电 路具有保存所述程序间调用关系定义数据的存储器。
86. 按照权利要求83所述的数据处理设备,其中 所述输入/输出接口电路相对于保存在所述数据处理设备之外加密的所述程序间调用关系定义数据的集成电路传送数据,所述计算电路通过所述传输线路和所述通信电路访问所述集成电路,和所述连接控制电路保存预定的密钥信息,通过所述通信电路和所 述传输线路从所述集成电路接收所述加密的程序间调用关系定义数 据,利用所述密钥信息对所述接收的程序间调用关系定义数据解密, 并使用所述解密的程序间调用关系定义数据产生所述控制信号。
87. 按照权利要求86所述的数据处理设备,其中所述连接控制电 路通过所述输入/输出接口电路和所述传输线路接收已加密的用于进 行所述解密的解密程序,对所述接收的解密程序解密,将其保存在所 述存储电路中,并使用保存在所述存储电路中的所述解密程序对所述 程序间调用关系定义数据解密。
88. —种执行程序的半导体电路, 所述半导体电路包括 第一传输线路,保存执行所述程序的指令或数据的存储电路,根据通过所述笫一传输线路从所述存储电路读取的所述指令操作 的计算电路,根据第一控制信号把所述第一传输线路和所述存储电路设置成连 接状态和断开状态之一的第一连接转换电路,根据第二控制信号把该半导体电路之外的第二传输线路和所述第 一传输线路设置成连接状态和断开状态之一的第二连接转换电路,和当把指示连接的所述第一控制信号输出给所述第一连接转换电路 时,向所述第二连接转换电路输出指示断开的所述第二控制信号,当 把指示断开的所述第一控制信号输出给所述第一连接转换电路时,向 所述第二连接转换电路输出指示连接的所述第二控制信号的连接控制 电路。
89. 按照权利要求88所述的半导体电路,其中所述第二连接转换 电路通过所述第二传输线路与位于所述半导体电路之外的存储设备相 连。
90. 按照权利要求88所述的半导体电路,其中,当所述计算电路从所述存储电路读取指令时,所述连接控制电路把指示连接的所述第 一控制信号输出给所述第 一连接转换电路,并把指示断开的所述第二控制信号输出给所述第二 连接转换电路。
91. 按照权利要求90所述的半导体电路,其中 所述计算电路把显示要执行指令的类型的信号输出给第三传输线路,把将被所述指令访问的存储区的地址输出给第四传输线路,并且 所述连接控制电路监视所述笫三传输线路和所述第四传输线路,并且当判断所述计 算电路正在执行取出指令和访问所述存储电路时,把指示连接的所述第一控制信号输出给所述第一连接转换电路, 并把指示断开的所迷第二控制信号输出给所述第二连接转换电路。
92. 按照权利要求88所述的半导体电路,其中, 所述存储电路保存用于执行所述程序并且保存多个指令的多个功能模块,所述多个指令包括置于它们头部的断开释放指令和置于它们 尾部的断开开始指令,当所述计算电路执行断开释放指令时,所述连接控制电路把指示 连接的所述第一控制信号输出给所述第一连接转换电路,并且当所述 计算电路执行断开开始指令时,把指示断开的所述第一控制信号输出 给所述第一连接转换电路。
93. 按照权利要求92所述的半导体电路,其中在执行所述断开释 放指令之后,所述连接控制电路把所述笫一控制信号输出给所述笫一 连接转换电路,以便把所述第一传输线路和所述存储电路持续地设置 成连接状态,直到所述计算电路下次执行断开开始指令。
94. 按照权利要求88所述的半导体电路,还包括 与向所述计算电路发出所述计算电路的内部状态的读取请求、所述内部状态的重写请求和所述计算电路的操作停止请求中至少之一的 外部设备相连,并且根据第三控制信号确定是否输出所述读取请求、 所述重写请求和所述操作停止请求的第三连接转换电路,并且当把指示连接的所述第一控制信号输出给所述第一连接转换电路 时,所述连接控制电路把指示不向所述计算电路输出所述读取请求、 所述重写请求和所述操作停止请求的所述第三控制信号输出给所述第 三连接转换电路,当把指示断开的所述笫一控制信号输出给所述第一 连接转换电路时,把指示向所述计算电路输出所述读取请求、所述重 写请求和所述操作停止请求的所述第三控制信号输出给所述第三连接 转换电路。
95. —种执行程序的半导体电路, 所述半导体电路包括保存所述程序的加密指令或数据,对将通过该半导体电路之外的 第一传输线路输出给存储设备的数据加密,并对通过所述第一传输线 路从所述存储设备输入的加密指令或数据解密的加密/解密电路,利用所述解密指令或数据进行计算的计算电路,根据控制信号选择是否许可位于所述半导体电路之外的第二传输 线路和所述计算电路之间的通信的选择电路,和当所述计算电路正在利用所述程序的指令或数据进行处理时,向 所述选择电路输出指示不允许所述第二传输线路和所述计算电路之间 通信的所述控制信号的控制电路。
96. 按照权利要求95所述的半导体电路,其中所述选择电路是与 所述笫二传输线路相连的外部设备,并且介于向所述计算电路发出所 述计算电路的内部状态的读取请求、所述内部状态的重写请求及操作 停止请求中至少之一 的外部设备和所述计算电路之间。
97. 按照权利要求95所述的半导体电路,其中所述加密/解密电路 利用预定的密钥信息对形成所述程序的功能模块加密,产生指定用于 借助明文对所述功能模块加密的密钥信息的密钥指定信息,并且把所 述密钥指定信息输出给与所述加密的功能模块链接的所述存储设备。
98. 按照权利要求95所述的半导体电路,其中所述加密/解密电路 保存用于所述加密的多个密钥信息,并且使用根据从所述存储设备输 入的所述密钥指定信息指定的密钥信息对通过所述第二传输线路从所述存储设备输入的所述功能^f莫块解密。
99. 按照权利要求97所述的半导体电路,其中所迷加密/解密电路 以预定数据长度的数据块为单位,对所述功能模块加密和解密。
100. 按照权利要求99所述的半导体电路,其中当对所述功能模 块加密时,所述加密/解密电路以所述数据块为单位产生奇偶校验信 息,并把所述奇偶校验数据保存在与所述数据块链接的所述存储设备 中。
101. 按照权利要求100所述的半导体电路,其中所述加密/解密电 路产生所述奇偶校验数据,以致所述数据块与奇偶校验数据的数值的 总和为预定的数值。
102. 按照权利要求100所述的半导体电路,其中所述加密/解密电 路对通过所述第一传输线路从所述存储设备输入的数据块解密,随后 判断对应于该数据块的奇偶校验数据的合法性,当判断该奇偶校验数 据不合法时,停止所述计算电路的操作或者执行预定的错误处理。
103. 按照权利要求97所述的半导体电路,其中所述数据块的数 据长度和所述功能模块的数据长度相同。
104. —种数据处理设备,包括在预定的存储区中保存均由多个数据模块构成的多个应用程序, 以及保存管理数据的存储电路,所述多个数据模块包括描述与集成电 路通信从而提供服务的处理例程的处理例程数据,所述管理数据表示 链接在一起的数据模块、用于在根据该数据模块的处理中使用另 一数 据模块的第一密钥数据和用于在根据该数据模块的处理中相对于所述 集成电路传送数据的第二密钥数据,和根据数据模块执行与服务相关的处理,在该处理中查看所述管理 数据,利用对应于该数据模块的所述第一密钥数据使用另一数据模块, 并且利用对应于该数据模块的所述第二密钥数据相对于所述集成电路 传送数据的半导体电路。
105. 按照权利要求104所述的数据处理设备,其中所述存储电路 以数据模块的形式保存利用所述数据模块执行的处理的日志数据、显示把所述数据模块记录到存储区中的例程的程序数据、显示从所述存 储区删除所述数据模块的记录的例程的程序数据和显示限定用于保存 所述应用程序的所述存储区的例程的程序数据的至少之一。
106. 按照权利要求104所述的数据处理设备,其中当半导体电路 将执行根据另 一数据模块的处理时,所述半导体电路使用所述管理数 据获得对应于所述预定数据模块的第一密钥数据和对应于所述另一数 据模块的所述第一密钥数据,并且以获得的两个第一密钥数据相符为 条件,从正被执行的所述预定数据模块使用所述另 一数据模块。
107. 按照权利要求106所述的数据处理设备,其中 所述存储电路保存各个所述数据模块的应用许可数据,所述应用许可数据表示数据模块的应用许可方式,并且当所述两个第一密钥数据相符时,所述半导体电路根据所述应用 许可数据以与所述另 一数据模块对应的所述应用许可数据许可的方式 使用另一数据模块。
108. 按照权利要求104所述的数据处理设备,其中当另一半导体 电路正在执行根据另 一数据模块的处理时,所述半导体电路4吏用所述 管理数据获得与所述预定数据模块对应的所述第 一密钥数据,使用所 述第一密钥数据进行与所述另一半导体电路的相互验证,并且以相互 的合法性得到证实为条件,从正被执行的所述预定数据模块使用所述 另一数据模块。
109. 按照权利要求108所述的数据处理设备,其中当所述相互合 法性被证实时,所述半导体电路根据应用许可数据以所述应用许可数 据许可的方式使用所述另一数据模块,应用许可数据指示许可使用所 述另一数据模块的方式。
110. 按照权利要求104所述的数据处理设备,其中所述第一密钥 数据被定义为对于形成相同应用程序的数据模块来说所述第 一 密钥数 据相同。
111. 按照权利要求104所述的数据处理设备,其中所述存储电路 保存利用唯一分配给所述应用程序的密钥数据加密的所述应用程序。
112.按照权利要求104所述的数据处理设备,其中所述半导体电路:根据所述数据模块数据产生包括作业执行顺序数据和状态数据的 作业管理数据,所述作业执行顺序数据表示形成所述应用程序的处理 的多个作业的执行顺序,所述状态数据表示所述多个作业的执行进程 的状态,下一步要执行的作业,执行选择的所述作业,并且根据所述作业的执行,更新选择的所述作业管理数据的所述状态 数据。
113.按照权利要求112所述的数据处理设备,其中所述半导体电路模板数据,并且利用所述模板数据,根据处理请求产生所述作业管理数据。
114, 按照权利要求113所述的数据处理设备,其中所述半导体电路为多个处理请求中的每个处理请求产生所述作业管理数据, 从所述多个数据模块中选择一个作业管理数据, 根据选择的所述作业管理数据的所述状态数据和所述处理顺序数 据,选择下一步要执行的作业, 执行选择的所述作业,根据所述作业的执行,更新所述选择的作业管理数据的所述状态 数据,和在所述更新之后,从所述多个数据模块中选择一个作业管理数据。
115. 按照权利要求114所述的数据处理设备,其中当根据处理请 求完成的形成处理的所有作业被执行时,所述半导体电路删除所迷作 业管理数据。
116. —种数据处理方法,借助该数据处理方法,与集成电路通信, 所述数据处理方法包括下述步骤当所述存储电路在预定存储区中保存均由包括描述用于与集成电 路通信从而提供服务的处理例程的处理例程数据在内的多个数据模块 组成的多个应用程序,以及保存显示链接在一起的数据模块、用于在 根据该数据模块的处理中使用另一数据模块的第一密钥数据、和用于 在根据该数据模块的处理中相对于所述集成电路传送数据的第二密钥 数据的管理数据时,所述半导体电路根据所述数据模块执行与服务相关的处理, 所述半导体电路在与所述服务相关的处理中查看所述管理数据, 并利用对应于一个数据模块的所述第一密钥数据使用另一数据模块, 和模块的所述第二密钥数据相对于所述集成电路传送数据。
117. 按照权利要求116所述的数据处理方法,还包括当所述半导 体电路将执行根据所述另一数据模块的处理时,所述半导体电路使用 所述管理数据获得对应于所述预定数据模块的第一密钥数据和对应于 所述另一数据模块的所述第一密钥数据,并且以所述两个第一密钥数 据相符为条件,从正被执行的所述预定数据模块使用所述另 一数据模 块的步骤。
118. 按照权利要求116所述的数据处理方法,还包括下述步骤 当所述存储电路保存各个所述数据模块的表示数据模块的应用许可方式的应用许可数据时,当所述两个第一密钥数据相符时,所述半导体电路根据所述应用 许可数据以与所述另 一数据模块对应的所述应用许可数据许可的方式 使用另一数据模块。
119. 按照权利要求116所述的数据处理方法,还包括当另一半导 体电路正在执行根据另 一数据模块的处理时,所述半导体电路使用所述管理数据获得与所述预定数据模块对应的所述第一密钥数据,使用 所述第一密钥数据进行与所述另一半导体电路的相互验证,并且以相 互合法性得到证实为条件,从正被执行的所述预定数椐模块使用所述 另一数据模块的步骤。
120. 按照权利要求119所述的数据处理方法,还包括当所述相互 合法性被证实时,所述半导体电路根据应用许可数据以所述应用许可 数据许可的方式使用所述另 一数据模块的步骤,应用许可数据指示许 可使用所述另 一数据模块的方式。
121. 按照权利要求116所述的数据处理方法,其中所述第一密钥 数据被定义为对于形成相同应用程序的数据模块来说所述第一密钥数 据相同。
122. 按照权利要求116所述的数据处理方法,还包括下述步骤 所述半导体电路根据所述数据模块数据产生包括作业执行顺序数据和状态数据的作业管理数据,所述作业执行顺序数据表示形成所述 应用程序的处理的多个作业的执行顺序,所述状态数据表示所述多个 作业的执行进程的状态,理顺序数据选择下一步要执行的作业,所述半导体电路执行选择的所述作业,并且所述半导体电路根据所述作业的执行,更新选择的所述作业管理 数据的所述状态数据。
123. 按照权利要求122所述的数据处理方法,还包括下述步骤 所述半导体电路使用所述处理顺序数据和所述管理数据产生所述作业管理数据的模板数据,和所述半导体电路利用所述模板数据,根据处理请求产生所述作业 管理数据。
124. 按照权利要求123所述的数据处理方法,还包括下述步骤管理数据,所述半导体电路从所述多个数据碎莫块中选择一个作业管理数据,所述半导体电路根据选择的所述作业管理数据的所述状态数据和 所述处理顺序数据,选择下一步要执行的作业, 所述半导体电路执行选择的所述作业,所述半导体电路根据所述作业的执行,更新所述选择的作业管理数据的所述状态数据,和在所述更新之后,所述半导体电路从所述多个数据模块中选择一 个作业管理数据。
125.按照权利要求124所述的数据处理方法,还包括当根据处理 请求完成的形成处理的所有作业被执行时,所述半导体电路删除所述 作业管理数据的步骤。
全文摘要
本发明涉及数据处理方法及其设备。由执行应用程序的半导体电路完成的数据处理方法包括下述步骤利用多个防火墙中事先分配给形成所述应用程序的多个程序模块中的各个程序模块的防火墙保护该程序模块;记录与识别分配给程序模块的防火墙的防火墙识别信息链接的程序模块;并且以正在进行所述记录为条件,执行所述程序模块。
文档编号G09C1/00GK101526982SQ200910004389
公开日2009年9月9日 申请日期2002年2月15日 优先权日2001年2月16日
发明者久保野文夫, 末吉正弘, 馆野启 申请人:索尼株式会社