CN1261870C - 数据处理方法及其设备 - Google Patents

数据处理方法及其设备 Download PDF

Info

Publication number
CN1261870C
CN1261870C CN02801052.3A CN02801052A CN1261870C CN 1261870 C CN1261870 C CN 1261870C CN 02801052 A CN02801052 A CN 02801052A CN 1261870 C CN1261870 C CN 1261870C
Authority
CN
China
Prior art keywords
data
processing
card
circuit
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN02801052.3A
Other languages
English (en)
Other versions
CN1465008A (zh
Inventor
末吉正弘
久保野文夫
馆野启
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2001040705A external-priority patent/JP2002244868A/ja
Priority claimed from JP2001039969A external-priority patent/JP2002244755A/ja
Priority claimed from JP2001040415A external-priority patent/JP4765174B2/ja
Priority claimed from JP2001040414A external-priority patent/JP4670158B2/ja
Priority claimed from JP2001042396A external-priority patent/JP2002244756A/ja
Priority claimed from JP2001042446A external-priority patent/JP2002244925A/ja
Priority claimed from JP2001042445A external-priority patent/JP2002244757A/ja
Priority claimed from JP2001042397A external-priority patent/JP4617581B2/ja
Priority claimed from JP2001262288A external-priority patent/JP4207409B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN1465008A publication Critical patent/CN1465008A/zh
Publication of CN1261870C publication Critical patent/CN1261870C/zh
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Abstract

根据若干处理请求,SAM芯片为所述各个所述处理请求产生包括作业执行顺序数据和状态数据的IC卡实体数据,所述作业执行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,所述状态数据表示所述若干作业的执行进程的状态。此外,SAM芯片从所述若干实体数据中选择一个实体数据,根据所述选择的实体数据的状态数据和处理顺序数据选择并执行下一步要执行的作业,并且根据所述作业的执行,更新状态数据。

Description

数据处理方法及其设备
技术领域
本发明涉及在利用嵌入卡或移动终端设备中的IC(集成电路)通过网络进行交换情况下有用的数据处理方法、其设备、其程序、半导体电路和身份验证设备。
背景技术
目前,正在开发把IC卡等用于通过因特网及其它网络的交易的通信系统。
在这种通信系统中,服务器从IC卡的阅读器/记录器或者PC(个人计算机)接收使用IC卡的处理请求,并进行用户身份验证、数据加密和解密,以及其它处理。
但是,就上面说明的通信系统而言,设想同时或者在短时间内接收关于大量IC卡的处理请求的情况。
这种情况下,服务器必须能够有效地处理这样的处理请求。
此外,服务器有时执行处理与若干结算业务相关的手续的若干应用程序,并且通过根据处理请求,利用选择的应用程序进行处理。这样的处理请求也必须被有效处理。
此外,在上面说明的通信系统中,服务器执行的应用程序必须说明使用密匙信息访问IC卡的代码和操作IC卡的操作命令。这里,如果要求使用IC卡的交易的安全性,则密匙信息和操作命令只可被服务器的管理人员知道。
于是,在过去,服务器的管理人员来自上述服务提供者的请求,产生并定制应用程序。
但是,在服务器的管理人员以这种方式产生并定制应用程序的情况下,存在管理人员的负担变重的问题。
此外,在上面说明的服务器中,运行若干信用卡公司或其他企业的应用程序。这种应用程序由单个的企业产生,并且通过利用个人计算机等被下载到服务器。
但是,如上所述,当上述服务器运行若干企业的应用程序时,必须确保各个应用程序的处理不受另一应用程序监视或者干扰。
另一方面,需要在应用程序之间传送数据的时候,提供各种各样的服务。
此外,单个的企业把他们的应用程序下载到服务器上,随后根据需要调试这些应用程序。
但是,当各企业以这种方式把应用程序下载到服务器,并调试这些应用程序时,必须防止服务器中的程序受到非法干扰。
实现这一点的一种技术是当访问服务器时使用密匙信息的身份验证处理技术。但是通常这种密匙信息保存在终端设备(个人计算机)的存储器中,因此存在非法使用的可能,并且存在安全问题。
此外,形成上述服务器的LSI具有内置CPU。CPU有时访问位于LSI芯片之外的存储器。
这种情况下,数据流过设置在LSI芯片和外部存储器之间的总线,从而通过探测总线可检查数据。
但是,当上述服务器执行电子商务交易、个人身份验证和其他高度机密的处理时,如上所述,如果数据被探测,则存在安全方面的问题。
此外,上面说明的服务器有时由单个计算机构成。
这种情况下,单个计算机运行和由不同企业提供的若干服务相关的若干程序。当这些服务处理高度机密的数据,例如和结算相关的数据时,存在各个企业拥有的高度机密数据被另一企业非法获取或者窜改的可能性。
此外,当把常规的计算机用作如上所述的计算机时,存在下述问题。
图133表示普通计算机601的基本结构。
在图133中所示的计算机601中,CPU 602利用从存储器603读取的指令和数据进行处理。
CPU 602把存储器603中的访问地址输出给地址总线604。
此外,CPU 602根据控制信号S602对存储器603进行读写操作。
保存在存储器603中的模块A、模块B和模块C是程序的具有特殊函数的处理单元。
在开发程序的时候,调试程序605检查CPU 602的操作。它使用HLAT信号临时中断CPU 602的操作,读取CPU 602的内部信息,并把该信息通知程序开发人员。
这里,在图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或者其它集成电路的服务时,能够提高在服务器上运行的应用程序的安全性。
发明内容
为了实现上述目的,本发明第一方面的数据处理方法是根据若干处理请求,由半导体电路执行的一种数据处理方法,包括下述步骤:为若干处理请求中的每个处理请求产生作业管理数据,所述作业管理数据包括作业执行顺序数据和状态数据,所述作业执行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,所述状态数据表示所述若干作业的执行进程的状态,根据预定的规则,从产生的若干作业管理数据中选择一个作业管理数据,根据选择的作业管理数据的状态数据和处理顺序数据选择下一步要执行的作业,执行选择的作业,并且根据该作业的执行,更新选择的作业管理数据的状态数据。
在本发明第一方面的数据处理方法中,首先,半导体电路为若干处理请求中的每个处理请求,产生包括作业执行顺序数据和状态数据的作业管理数据,作业执行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,状态数据表示若干处理作业的执行进程的状态。
其次,半导体电路根据预定的规则,从产生的若干作业管理数据中选择一个作业管理数据。
接下来,半导体电路根据选择的作业管理数据的状态数据和处理顺序数据选择下一步要执行的作业。
随后,半导体电路执行选择的作业。
最后,半导体电路根据该作业的执行,更新选择的作业管理数据的状态数据。
此外,本发明第一方面的数据处理方法最好还包括更新选择的作业管理数据的状态数据,随后从若干数据模块选择一个作业管理数据的步骤。
此外,本发明第一方面的数据处理方法最好还包括在更新选择的作业管理数据的状态数据之后,从若干数据模块选择一个作业管理数据的步骤。
此外,本发明第一方面的数据处理方法最好还包括当根据处理请求形成处理的所有作业完成执行时,删除作业管理数据的步骤。
此外,本发明第一方面的数据处理方法最好还包括从具有存储器的集成电路或者相对于集成电路输入输出数据的通信设备接收处理请求的步骤,所述存储器保存将用于借助半导体电路执行的过程的处理的数据。
本发明第二方面的半导体电路是一种根据若干处理请求处理数据的半导体电路,包括输入若干处理请求的接口,保存作业管理数据的存储电路,作业管理数据包括作业执行顺序数据和状态数据,作业执行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,状态数据表示若干作业的执行进程的状态,和为输入的若干处理请求中的每个处理请求产生作业管理数据并将其保存在存储电路中,从产生的若干作业管理数据中选择一个作业管理数据,根据选择的作业管理数据的状态数据和处理顺序数据选择并执行下一步要执行的作业,并且根据该作业的执行,更新选择的作业管理数据的状态数据的控制电路。
在本发明第二方面的半导体电路中,接口输入若干处理请求。
随后,控制电路产生作业管理数据并将其保存在存储电路中,所述作业管理数据包括表示根据处理请求形成处理的若干作业的执行顺序的作业执行顺序数据和表示根据若干处理请求的若干作业的执行进程的状态的状态数据。
接下来,控制电路从若干作业管理数据中选择一个作业管理数据。
之后,控制电路根据选择的作业管理数据的状态数据和处理顺序数据,选择并执行下一步要执行的作业,并且根据该作业的执行,更新选择的作业管理数据的状态数据。
本发明第三方面的程序是一种由半导体电路执行的根据若干处理请求处理数据的程序,包括为若干处理请求中的每个处理请求产生作业管理数据的例程,作业管理数据包括作业执行顺序数据和状态数据,作业执行顺序数据表示根据处理请求形成处理的若干作业的执行顺序,状态数据表示若干作业的执行进程的状态,从产生的若干作业管理数据中选择一个作业管理数据的例程,根据选择的作业管理数据的状态数据和处理顺序数据选择下一步要执行的作业的例程,执行选择作业的例程,和根据该作业的执行,更新选择的作业管理数据的所述状态数据的例程。
本发明第四方面的数据处理方法是一种由半导体电路执行的数据处理方法,所述半导体电路运行和使用集成电路的过程有关的处理的应用程序,其中半导体电路能够查看对应性指示数据,所述对应性指示数据指示用于所述应用程序操作集成电路的操作代码和操作的名称,即操作名称之间的对应性,所述方法包括下述步骤:使半导体电路以输入的形式接收利用操作名称描述应用程序的操作的操作说明程序,和使半导体电路通过查看对应性指示数据,获得和在操作说明程序中描述的操作名称相对应的操作代码,并且使用获得的操作代码定义应用程序的处理。
此外,根据本发明第四方面的数据处理方法最好还包括使对应性指示数据还显示操作名称和当集成电路执行与这些操作名称对应的操作时使用的密钥信息之间的对应性,并且使半导体电路通过查看对应性指示数据,获得和在操作说明程序中描述的操作名称相对应的密钥信息,并且使用获得的密钥信息定义应用程序的处理。
此外,本发明第四方面的数据处理方法最好还包括使半导体电路产生包括作业执行顺序数据和状态数据的作业管理数据,作业执行顺序数据表示形成应用程序的处理的若干作业的执行顺序,状态数据表示所述若干作业的执行进程的状态,根据作业管理数据的状态数据和处理顺序数据选择下一步要执行的作业,执行选择的作业,并且根据该作业的执行,更新选择的作业管理数据的状态数据。
本发明第五方面的半导体电路是一种运行用于执行和利用集成电路的过程相关的处理的应用程序的半导体电路,包括保存对应性指示数据的存储电路,所述对应性指示数据指示用于应用程序操作集成电路的操作代码和操作的名称,即操作名称之间的对应性,输入利用操作名称描述应用程序的操作的操作说明程序的接口,和通过查看对应性指示数据,获得和在输入的操作说明程序中描述的操作名称相对应的操作代码,并且使用获得的操作代码定义应用程序的处理的控制电路。
在本发明第五方面的半导体电路中,接口输入利用操作名称描述应用程序的操作的操作说明程序。
随后,控制电路通过查看对应性指示数据,获得和在输入的操作说明程序中描述的操作名称相对应的操作代码。
之后,控制电路使用获得的操作代码定义应用程序的处理。
本发明第六方面的程序是由运行执行和利用集成电路的过程相关的处理的应用程序的半导体电路执行的程序,包括:输入利用集成电路的操作的名称,即操作名称描述应用程序的操作的操作说明程序的例程,查看指示由应用程序用于操作集成电路的操作代码和操作名称之间的对应性的对应性指示数据,从而获得和在操作说明程序中描述的操作名称相对应的操作代码的例程,以及利用获得的操作代码定义应用程序的处理的例程。
本发明第七方面的数据处理方法是由执行应用程序的半导体电路完成的数据处理方法,包括下述步骤:利用若干防火墙中事先分配给形成应用程序的若干程序模块中的各个程序模块的防火墙保护该程序模块,记录与识别分配给程序模块的防火墙的防火墙识别信息链接的程序模块,并且以正在进行记录为条件,执行该程序模块。
本发明第七方面的数据处理方法最好还包括允许记录的由相同防火墙识别信息链接的若干程序模块之间的数据传送或数据查看,并且禁止记录的由不同防火墙识别信息链接的若干程序模块之间的数据传送或者数据查看的步骤。
本发明第七方面的数据处理方法最好还包括下述步骤:
记录还与当把程序模块从半导体电路之外下载到半导体电路时使用的下载密钥信息链接的程序模块,并且当接收关于程序模块的下载请求时,利用记录的和该程序模块链接的下载密钥信息判断下载是否可能,并且当判断下载可能时,下载该程序模块。
本发明第八方面的半导体电路是运行应用程序,利用若干防火墙中事先分配给形成应用程序的若干程序模块中的各个程序模块的防火墙保护该程序模块,记录与识别分配给程序模块的防火墙的防火墙识别信息链接的程序模块,并且以记录正在进行为条件,执行该程序模块的半导体电路。
本发明第九方面的程序是由执行应用程序的半导体电路执行的程序,包括利用若干防火墙中事先分配给形成应用程序的若干程序模块中的每个程序模块的防火墙保护该程序模块的例程,记录与识别分配给该程序模块的防火墙的防火墙识别信息链接的程序模块的例程,和以记录正在进行为条件,执行该程序模块的例程。
本发明第十方面的数据处理方法是由执行应用程序的半导体电路执行的数据处理方法,包括下述步骤:独立执行由防火墙保护的若干应用程序,预先记录允许通过防火墙在应用程序之间进行通信的条件,当应用程序请求与另一应用程序通信时,判断通信请求是否满足记录的条件,和当判断通信请求满足记录的条件时,根据通信请求进行应用程序之间的通信。
本发明第十一方面的半导体电路是独立执行受防火墙保护的若干应用程序,事先记录允许通过防火墙在应用程序之间进行通信的条件,当应用程序请求与另一应用程序通信时,判断通信请求是否满足记录的条件,和当判断通信请求满足记录的条件时,根据通信请求进行应用程序之间的通信的半导体电路。
第十一方面的半导体电路独立执行受防火墙保护的若干应用程序。
此外,半导体电路事先记录允许通过防火墙在应用程序之间进行通信的条件。
此外,当应用程序请求与另一应用程序通信时,半导体电路判断通信请求是否满足记录的条件。
此外,当判断通信请求满足记录的条件时,半导体电路根据通信请求进行应用程序之间的通信。
本发明第十二方面的程序是使半导体电路执行独立执行受防火墙保护的若干应用程序的例程,事先记录允许通过防火墙在应用程序之间进行通信的条件的例程,当应用程序请求与另一应用程序通信时,判断通信请求是否满足记录的条件的例程,和当判断通信请求满足记录的条件时,根据通信请求进行应用程序之间通信的例程的程序。
本发明第十三方面的数据处理方法是半导体电路或者半导体电路可访问的半导体存储设备借助其下载在半导体电路中运行的程序的数据处理方法,包括下述步骤:使半导体电路具有由若干层组成的软件结构,并使对应于每层的下载签名验证密钥信息能够被半导体电路查看,当接收下载请求时,使半导体电路利用下载签名验证密钥信息验证根据下载请求产生的下载签名信息,以下载签名信息合法为条件,使半导体设备允许下载请求的发出者下载和用于该验证的下载签名验证密钥信息相对应的一层的程序。
此外,本发明第十三方面的数据处理方法还包括下述步骤:使验证设备保存和允许被下载的程序所属一层相对应的访问主密钥信息,使验证设备把下载请求传送给半导体电路,和使验证设备使用该访问主密钥信息产生下载签名信息,并把该下载签名信息传送给半导体电路。
此外,本发明第十三方面的数据处理方法还包括下述步骤:使验证设备保存半导体电路的识别信息,使验证设备利用访问主密钥信息对呈明文形式的识别信息加密,从而产生下载主密钥信息,并且使用该下载主密钥信息产生下载签名信息。
本发明第十四方面的半导体电路是具有由若干层组成的软件结构的半导体电路,其中半导体电路能够查看对应于每层的下载签名验证密钥信息,当接收下载请求时,利用下载签名验证密钥信息验证根据下载请求产生的下载签名信息,并且以下载签名信息合法为条件,允许下载请求的发出者把和用于该验证的下载签名验证密钥信息相对应一层的程序下载到该半导体电路或者该半导体电路可访问的半导体存储电路。
当接收下载请求时,本发明第十四方面的半导体电路利用下载签名验证密钥信息,验证对应于该下载请求产生的下载信号信息。
此外,以下载签名信息合法为条件,该半导体电路允许下载请求的发出者把和用于该验证的下载签名验证密钥信息相对应一层的程序下载到该半导体电路或者该半导体电路可访问的半导体存储电路。
本发明第十五方面的验证设备是当把在半导体电路中运行的程序下载到具有由若干层组成的软件结构的半导体电路或者可被该半导体电路访问的半导体存储设备时,用于验证的验证设备,所述验证设备保存和允许被下载的程序所属一层相对应的访问主密钥信息,把下载请求传送给该半导体电路,并且利用该访问主密钥信息产生下载签名信息,和把该下载签名信息传送给该半导体电路。
本发明第十五方面的验证设备首先把下载请求传送给该半导体电路。
此外,该验证设备使用访问主密钥信息产生下载签名信息。
此外,验证设备把下载签名信息传送给该半导体电路。
本发明第十六方面的程序是将由具有由若干层组成的软件结构的半导体电路执行的程序,包括利用所述若干层中对应一层的下载签名验证密钥信息,验证当接收下载请求时根据这样的下载请求产生的下载签名信息的例程,和以下载签名信息合法为条件,允许下载请求的发出者把和用于该验证的下载签名验证密钥信息相对应一层的程序下载到该半导体电路或者该半导体电路可访问的半导体存储电路的例程。
本发明第十七方面的半导体电路是具有数据处理电路和数据输入/输出处理电路的半导体电路,其中数据处理电路通过数据输入/输出处理电路相对于该半导体电路之外的总线输入输出数据,数据输入/输出电路对以预定数据长度为单位从数据处理电路输入的数据加密,并把加密后的数据输出给该总线,对从总线输入的数据解密,并把解密后的数据输出给数据处理电路,当Nc/Nb=n时,以m个数据输入/输出交易为单位,通过总线执行数据输入/输出交易,这里总线的宽度为Nb,数据长度为Nc,n或者更大值(n or more)的最小整数为m。
本发明第十七方面的半导体电路通过数据输入/输出处理电路相对于该半导体电路之外的总线输入输出数据。
此时,数据输入/输出电路对以预定数据长度为单位从数据处理电路输入的数据加密,并把加密后的数据输出给该总线。
此外,数据输入/输出电路对从总线输入的数据解密,并把解密后的数据输出给数据处理电路。
此时,当Nc/Nb=n时,该数据输入/输出设备以m个数据输入/输出交易为单位,通过外部总线执行数据输入/输出交易,这里总线的宽度为Nb,数据长度为Nc,n或者更大值(n or more)的最小整数为m。
此外,在本发明第十七方面的半导体电路中,当根据从数据处理电路输入的第一地址访问半导体存储电路时,数据输入/输出电路最好把第一地址转换成第二地址,以便以其中保存Nc的数据的存储区为单位访问半导体存储电路,并且使用第二地址访问该半导体存储电路。
本发明第十八方面的数据处理方法是当半导体电路和半导体存储电路通过总线相连时,当半导体电路访问半导体存储电路时,由半导体电路执行的数据处理方法,包括下述步骤:对将以预定数据长度为单位写入半导体存储电路的数据加密,并把加密数据输出给总线,对从总线输入的数据解密,和当Nc/Nb=n时,以m个数据输入/输出交易为单位,通过总线执行数据输入/输出交易,这里总线的宽度为Nb,数据长度为Nc,n或者更大值(n or more)的最小整数为m。
本发明第十九方面的数据处理设备包括保存若干程序的指令和数据的存储电路,通过传输线路访问存储电路,并使用若干程序的指令和数据执行若干程序的计算电路,置于传输线路和存储电路之间,用于根据控制信号把传输线路和存储电路设置成连接状态和断开状态之一的连接转换电路,根据为所述若干程序中的每个程序限定当计算电路正在执行所述若干程序时,存储电路中能够被访问的地址范围的访问范围定义数据,存储电路中计算电路为其发出访问请求的地址,和说明计算电路正在执行所述若干程序中的哪个程序的执行程序指示信息产生控制信号,控制把传输线路和存储电路设置成连接状态和断开状态之一的连接控制电路,和通过传输电路相对于计算电路输入输出数据,并且相对于该数据处理设备外部输入输出数据的输入/输出接口电路。
此外,在本发明第十九方面的数据处理设备中,当存储电路中计算电路为其发出访问请求的地址在由访问范围定义数据限定的和正被执行的程序对应的地址范围之内时,连接控制电路最好产生指示把传输线路和存储电路设置成连接状态的控制信号,并且当所述地址不在该地址范围之内时,产生指示把传输线路和存储电路设置成断开状态的控制信号。
本发明第二十方面的半导体电路是执行程序的半导体电路,包括第一传输线路,保存执行程序的指令或数据的存储电路,根据通过第一传输线路从存储电路读取的指令操作的计算电路,根据第一控制信号把第一传输线路和存储电路设置成连接状态和断开状态之一的第一连接转换电路,根据第二控制信号把该半导体电路之外的第二传输线路和第一传输线路设置成连接状态和断开状态之一的第二连接转换电路,和当把指示连接的第一控制信号输出给第一连接转换电路时,向第二连接转换电路输出指示断开的第二控制信号,当把指示断开的第一控制信号输出给第一连接转换电路时,向第二连接转换电路输出指示连接的第二控制信号的连接控制电路。
此外,在本发明第二十方面的半导体电路中,第二连接转换电路通过第二传输线路与位于该半导体电路之外的存储设备相连。
此外,在本发明第二十方面的半导体电路中,当计算电路从存储电路读取指令时,连接控制电路把指示连接的第一控制信号输出给第一连接转换电路,并把指示断开的第二控制信号输出给第二连接转换电路。
本发明第二十一方面的半导体电路是一种执行程序的半导体电路,包括保存程序的加密指令或数据,对将通过该半导体电路之外的第一传输线路输出给存储设备的数据加密,并对通过第一传输线路从存储设备输入的加密指令或数据解密的加密/解密电路,利用解密指令或数据进行计算的计算电路,根据控制信号选择是否许可位于该半导体电路之外的第二传输线路和计算电路之间的通信的选择电路,当计算电路正在利用该程序的指令或数据进行处理时,向选择电路输出指示不允许第二传输线路和计算电路之间通信的控制信号的控制电路。
本发明第二十二方面的数据处理设备是包括存储电路和半导体电路的数据处理设备,所述存储电路在预定的存储区中保存均由若干数据模块构成的若干应用程序,所述若干数据模块包括描述与集成电路通信从而提供服务的处理例程的处理例程数据,以及保存表示链接在一起的数据模块、用于在根据该数据模块的处理中使用另一数据模块的第一密钥数据,和用于在根据该数据模块的处理中相对于集成电路传送数据的第二密钥数据的管理数据,所述半导体电路根据数据模块执行和服务相关的处理,在该处理中查看管理数据,利用对应于该数据模块的第一密钥数据使用另一数据模块,并且利用对应于该数据模块的第二密钥数据相对于集成电路传送数据。
此外,在本发明第二十二方面的数据处理设备中,存储电路最好以数据模块的形式至少保存利用数据模块执行的处理的日志数据,显示把数据模块记录到存储区中的例程的程序数据,显示从存储区删除数据模块的记录的例程的程序数据,和显示限定用于保存应用程序的存储区的例程的程序数据之一。
此外,在本发明第二十二方面的数据处理设备中,当半导体电路将执行根据另一数据模块的处理时,半导体电路最好使用管理数据获得对应于预定数据模块的第一密钥数据和对应于另一数据模块的第一密钥数据,并且以获得的两个第一密钥数据相符为条件,从正在执行的预定数据模块使用所述另一数据模块。
本发明第二十三方面的数据处理方法是与集成电路通信,进行提供服务的处理的半导体电路借助其相对于存储电路传送数据的数据处理方法,包括下述步骤:当存储电路在预定存储区中保存均由包括描述与集成电路通信从而提供服务的处理例程的处理例程数据在内的若干数据模块组成的若干应用程序,以及保存显示链接在一起的数据模块,用于在根据该数据模块的处理中使用另一数据模块的第一密钥数据,和用于在根据该数据模块的处理中相对于集成电路传送数据的第二密钥数据的管理数据时,使半导体电路根据该数据模块执行和服务相关的处理,使半导体电路在与服务相关的处理中查看管理数据,并利用对应于该数据模块的第一密钥数据使用另一数据模块,和使半导体电路在与服务相关的处理中使用对应于该数据模块的第二密钥数据相对于集成电路传送数据。
本发明第二十四方面的程序是由半导体电路执行的用于与集成电路通信,从而执行提供服务的处理,并且相对于存储电路传送数据的程序,包括当存储电路在预定存储区中保存均由包括描述与集成电路通信从而提供服务的处理例程的处理例程数据在内的若干数据模块组成的若干应用程序,以及保存显示链接在一起的数据模块,用于在根据该数据模块的处理中使用另一数据模块的第一密钥数据,和用于在根据该数据模块的处理中相对于集成电路传送数据的第二密钥数据的管理数据时,根据该数据模块执行和服务相关的处理的例程,在与服务相关的处理中查看管理数据,并利用对应于该数据模块的第一密钥数据使用另一数据模块的例程,和在与服务相关的处理中使用对应于该数据模块的第二密钥数据相对于集成电路传送数据的例程。
根据上面说明的本发明,可获得下述效果。
即,根据本发明的第一到第三方面,能够提供可根据大量处理请求高效进行处理的数据处理方法、半导体电路和程序。
根据本发明的第四到第六方面,可提供在不向用户告知高度机密信息的情况下,使用户能够产生并定制该用户的将由服务器执行的应用程序。
根据本发明的第七到第九方面,能够提供当在相同的半导体电路上运行若干应用程序时,可防止每个应用程序受另一应用程序影响的数据处理方法、半导体电路和程序。
根据本发明的第十到第十二方面,能够提供考虑到上述现有技术产生的,并且当在相同的半导体电路上运行若干应用程序时,在防止每个应用程序受到另一应用程序的用户的非法窜改、监视等的同时,允许根据需要在应用程序之间传送数据的数据处理方法、半导体电路和程序。
根据本发明的第十三到第十六方面,能够提供可根据其权限限制对服务器等的半导体电路的访问内容的数据处理方法、半导体电路、验证设备和程序。
根据本发明的第十七和第十八方面,能够提供即使当通过外部总线在半导体电路和半导体存储电路之间传输高度机密的数据时,也能够保持数据的机密性的半导体电路和数据处理方法。
根据本发明的第十九方面,能够提供当执行若干程序时,可保持程序之间指令和数据的机密性的数据处理设备。
根据本发明的第二十和第二十一方面,能够提供可提高被执行程序的机密性的半导体电路。
根据本发明的第二十二到第二十四方面,能够提供当提供利用IC卡或者其它集成电路时,可提高运行于服务器上的应用程序的安全性的数据处理设备、方法和程序。
附图说明
图1是本发明的一个实施例的通信系统的整体结构的视图。
图2说明了图1中所示的SAM芯片的软件配置。
图3是图1中所示的IC卡的IC的功能方框图。
图4说明了保存在图3中所示的存储器中的信息。
图5说明了保存在图1中所示的SAM装置的外部存储器中的信息。
图6说明了图5中所示的服务定义表数据。
图7说明了SAM芯片中利用图5中所示的服务定义表数据和脚本程序的处理。
图8说明了脚本程序中使用的命令。
图9是图1中所示的SAM芯片的功能方框图。
图10说明了保存在图9中所示的存储器中的数据。
图11说明了由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中所示的通信系统的修改。
图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是根据本发明一个实施例的计算机的结构的视图。
图90是图89中所示的判断电路的结构。
图91是图90中所示取出(fetch)判断电路的结构的视图。
图92说明了图91中所示的取出范围限定数据。
图93是图91中所示的取出AP间调用关系限定数据的视图。
图94是图90中所示的读出判断电路的结构的视图。
图95说明了图94中所示的读出范围限定数据。
图96说明了图94中所示的读出AP间调用关系限定数据。
图97是图90中所示的写入判断电路的结构的视图。
图98说明了图97中所示的写入范围限定数据。
图99说明了图97中所示的写入AP间调用关系限定数据。
图100说明了本发明的另一实施例。
图101说明了本发明的另一实施例。
图102是本发明第一实施例的半导体芯片的结构视图。
图103说明了图102中所示的半导体芯片的软件配置。
图104说明了图102中所示的程序模块的结构。
图105是本发明第二实施例的半导体芯片的结构视图。
图106说明了图105中所示程序模块的结构。
图107说明了由图105中所示的加密/解密电路执行的加密和解密单元以及奇偶校验数据。
图108说明了由图105中所示的加密/解密电路保存的密钥信息表。
图109是本实施例的通信系统的整体结构的视图。
图110说明了图109中所示的SAM芯片与之通信的另一SAM芯片。
图111说明了图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卡操作宏命令脚本程序中使用的命令。
图120说明了图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通过因特网10通信,并且利用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中所示的组件。
[IC卡3]
图3是IC卡3的功能方框图。
如图3中所示,IC卡3具有配置有存储器50和处理器51的IC(集成电路)3a。
如图4中所示,存储器50具有由信用卡公司或者其它企业15_1使用的存储区55_1,由企业15_2使用的存储区55_2和由企业15_3使用的存储区55_3。
此外,存储器50保存用于判断对存储区55_1的访问权限的密钥信息,用于判断对存储区55_2的访问权限的密钥信息和用于判断对存储区55_3的访问权限的密钥信息。密钥信息用于相互身份验证、数据的加密和解密等等。
此外,存储器50保存IC卡3或IC卡3的用户的身份识别信息。
下面将更详细地说明SAM装置9。
[外部存储器7]
图5说明了图1中所示的外部存储器7中保存的数据和程序。
如图5中所示,外部存储器7保存企业15_1的服务定义表数据20_1和IC卡操作宏命令脚本程序21_1。
此外,外部存储器7保存企业15_2的服务定义表数据20_2和IC卡操作宏命令脚本程序21_2。
此外,外部存储器7保存企业15_3的服务定义表数据20_3和IC卡操作宏命令脚本程序21_3。
服务定义表数据20_1、20_2和20_3具有相同的格式。
此外,利用共同的宏命令编写IC卡操作宏命令脚本程序21_1、21_2和21_3。
此外,服务定义表数据20_1、20_2和20_3以及IC卡操作宏命令脚本程序21_1、21_2和21_3被加密编码保存到外部存储器7中。加密编码后的数据和程序在SAM芯片8中被解密。
在本实施例中,脚本程序21_1、21_2和21_3由企业15_1、15_2和15_3利用图1中所示的个人计算机16_1、16_2和16_3产生,并且通过SAM芯片8被下载到外部存储器7。
此外,SAM芯片9的管理人员根据企业15_1、15_2和15_3的指令产生服务定义表数据20_1、20_2和20_3。
图6说明了服务定义表数据20_1。
如图6中所示,服务定义表数据20_1具有服务类型单元(操作名称)、地址、服务编号(操作代码)、密钥版本信息和密钥信息。
“服务类型单元”表示分配给由企业15_1的应用程序提供的服务的名称。服务类型单元是检查标识符,而不是企业15_1的应用程序能够使用的服务的服务编号。
本实施例中,如图6中所示,“Rc”、“Rd”、“Wd”和“Wc”被用作对应于企业15_1的服务定义表数据20_1的服务类型单元。
本实施例中,IC卡操作宏命令脚本程序21_1确定组合若干服务类型单元的服务内容,并将此反映于后面说明的IC卡实体数据(作业管理数据)中,以便能够提供对应于若干服务类型单元的服务组合服务。
例如,可在IC卡实体数据中确定组合用于从IC卡3读取数据的服务和用于把数据写入服务器2中的服务的服务。
服务定义表数据20_1中的服务编号是当执行企业15_1提供的服务时,发布给IC卡3并且可由IC卡3分析的操作命令。
服务定义表数据20_1中的“地址”指示保存和与涉及对应服务类型单元的过程相关的数据的地址。
服务定义表数据20_1中的“密钥版本信息”表示当提供该服务时,所使用的密钥的版本。
服务定义表数据20_1中的“密钥信息”是当提供该服务时所使用的密钥信息。
例如,设置当访问图3中所示的IC卡3的IC 3a的存储区55_1时,服务定义表数据20_1使用的密钥信息。
此外,在服务定义表数据20_2中,设置当访问IC 3a的存储区55_2时使用的密钥信息。
此外,在服务定义表数据20_3中,设置当访问IC 3a的存储区55_3时使用的密钥信息。
下面将说明IC卡操作宏命令脚本程序21_1。
脚本程序21_1是用于确定运行于SAM芯片上的企业15_1的应用程序,以及当执行该应用程序时IC卡3进行的处理过程的程序。
本实施例中,如同后面说明的那样,如图7中所示,SAM芯片8使用服务定义表数据20_1和脚本程序21_1产生用于和企业15_1相关的过程的IC卡实体模板数据30_1、输入数据块31_x1、输出数据块32_x2、日志数据33_x3以及计算定义数据块34_x4。
图8说明了用于描述IC卡操作宏命令脚本程序21_1、21_2和21_3的命令。
就命令而言,关于SAM芯片8自身的命令被赋予首字母“S”,而与IC卡3的操作相关的命令被赋予首字母“C”。
此外,根据应用有选择地使用第二个字母。例如,对于设定IC卡3的说明的发行者来说,第二字母为“I”,对于服务类型单元说明来说,第二字母为“S”,对于从IC卡3读取说明来说,第二字母为“R”,对于把说明写入IC卡3来说,第二字母为“W”,用于服务类型计算定义来说,第二字母为“F”。
用于描述脚本程序21_1、21_2和21_3的命令包括SC命令、SO命令、SI命令、SL命令、SF命令、CI命令、CS命令、CR命令和CW命令。
SC命令是说明SAM芯片8可同时处理的IC卡实体数据的最大数目的命令。
例如,当SAM芯片8可同时处理1000个IC卡实体数据时,描述“SC:1000”。
SO命令是说明当根据后面说明的IC卡实体数据,利用IC卡3进行处理时,在SAM芯片8中所产生的数据块中构成其中保存从IC卡3读取的数据的输出数据块32_x2的数据块的命令。
例如,当形成数据块1-10时,当把从IC卡3读取的数据保存到数据块1中时,说明“SO:1”。
SI命令是说明当根据后面说明的IC卡实体数据,利用IC卡3进行处理时,在SAM芯片8中形成的数据块中构成其中保存将写入IC卡3中的数据的输入数据块31_x1的数据块的命令。
例如,当形成数据块1-10时,当把将写入IC卡3的数据保存到数据块2、3中时,说明“SI:2,3”。
SL命令是说明当根据后面说明的IC卡实体数据,利用IC卡3进行处理时,在SAM芯片8中形成的数据块中构成用于保存和操作相关的日志数据的日志数据块33_x3的数据块的命令。
例如,当形成数据块1-10时,当把日志数据保存到数据块4中时,说明“SL:4”。
SF命令是提供形成计算定义数据块34_x4的数据块的命令,计算定义数据块34_x4说明和IC卡3有关的服务类型单元之间的关系的定义。
计算定义数据块的内容34_x4成为IC卡实体数据的预处理信息。
CI命令是说明IC卡3的发行者(企业)的命令。
指定由CI命令定义的企业的信息变成IC卡实体数据的IC卡类型信息。
CS命令是通过引用服务类型单元向IC卡3说明若干服务的同时操作的命令。
例如,可能说明“CS:“Rc”+“Wc”+“Wd””。
根据CS命令的内容,确定IC卡实体数据的服务类型单元指定信息和处理顺序信息。
CR命令说明当服务类型单元之间的关系不确定时(当没有描述SF命令时),把从IC卡3读取的数据保存到指定的数据块中。
例如,当把从IC卡3读取的数据保存到数据块1中时,说明“CR:SO:1=“Rc””。
CW命令说明当服务类型单元之间的关系不确定时,把保存在指定数据块中的数据写入IC卡3中。
例如,当把保存在数据块2中的数据写入IC卡3中时,说明“CW:SI:2=“Wc””。
CF命令说明描述计算内容生成(spanning)服务的数据块。
例如,当在SF数据块1中描述计算内容生成服务时,说明“CF:CES_FUNC=SF:1”。
此外,SF数据块1中描述了,例如““Wc”=If(“Wc”>10)then(“Wc”-10;“Wd”=“Wc”*0.08+“Wd”)”。该公式表示当服务的剩余数目Wc大于10时,从Wc的值减去10,并且把对应于8%的Wc的若干点数作为累积点数加到Wd上的运算。
[SAM芯片8]
图9是图1中所示的SAM芯片的功能方框图。
如图9中所示,SAM芯片8具有ASPS通信接口装置60,外部存储器通信接口装置61,总线扰频装置62,随机数发生器63,加密/解密装置64,存储器65和CPU 66。
SAM芯片8是防窜改模块。
ASPS通信接口装置60是用于和图1中所示的ASP服务器6的数据输入和输出的接口。
外部存储器通信接口装置61是用于和外部存储器7的数据输入和输出的接口。
当通过外部存储器通信接口装置61输入和输出数据时,总线扰频装置62对输出数据编码加密并对输入数据解密。
随机数发生器63产生身份验证处理时使用的随机数。
加密/解密装置64对数据加密并对加密数据解密。
如后所述,存储器65保存CPU 66使用的任务、程序和数据。
CPU 66根据预定的程序(本发明的程序),从而执行后面说明的脚本下载任务、脚本解释任务、实体产生任务(作业管理数据产生任务)和IC卡过程管理任务(作业管理数据管理任务),以及其它任务。
下面说明保存在存储器65中的任务、程序和数据。
图10说明了保存在存储器65中的任务。程序和数据。
如图10中所示,存储器65保存脚本下载任务69、脚本解释任务70、实体产生任务71、IC卡过程管理任务72、IC卡操作宏命令脚本程序21_1-21_3、服务定义表20_1-20_3、IC卡实体模板数据30_1-30_3、IC卡实体数据73_x、输入数据块31_x1、输出数据块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-3_03作为类别,实体产生任务71以类别的一个实例的形式产生IC卡实体数据73_x。
输入数据块31_x1、输出数据块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卡实体数据73_x具有管理指针信息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的处理的状态(A1),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为其确定执行顺序的处理单元。
注意A1和A2构成IC卡3和SAM芯片8之间的相互验证处理。
此外,本实施例中,考虑到因特网10上的通信时间,如图12的状态变换图中所示,上面提及的基本状态被分成启动后(在发出命令之后)状态和完成(在接收响应之后)状态。
具体地说,使用IC卡实体数据73_x的处理的状态由实例产生(IC卡实体数据产生)状态、RS启动后状态、RS完成状态、A1启动后状态、A1完成状态、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、A1、A2、R和W。关于IC卡3的具体操作由利用作业指定的处理顺序实现。例如,对于在只存在读取而不进行相互验证的情况下使用IC卡3的处理来说,利用“RS→R”设置处理顺序信息85。此外,就进行相互验证的读取和写入来说,利用“RS→A1→A2→R→W”设置处理顺序信息85。
当产生IC卡实体数据73_x时,利用图12中所示的和在上面提及的脚本程序中的CS命令中指定的服务单元的顺序对应的作业顺序设置处理顺序信息85。
利用用于执行使用IC卡实体数据73_x的管理数据,从ASP服务器6一侧设置预处理信息86。
例如,利用在SF数据块中指定的服务的计算公式的点数设置预处理信息86。
此外,当没有定义服务间计算函数时,利用所请求的处理费用(charge)设置预处理信息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_x1,输出数据块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、因特网10和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中所示的作业A1的处理。
步骤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。
如上所述,根据通信系统1,能够为和IC卡一同发生的过程的各个处理产生IC卡实体数据73_x,并且使IC卡过程管理任务72使用若干IC卡实体数据73_x同时继续进行关于若干IC卡3的处理。
此外,根据验证系统1,由于把实际用于IC卡3的处理的IC卡实体数据73_3保存到存储器65中就足够了,因此能够有效地使用存储器65的存储区。
另外,根据验证系统1,如图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的情况下,这些企业可定制他们自己的应用程序。此外,当企业定制其应用程序时,它不必知道密钥信息或者卡操作命令,从而减轻了企业的负担。
此外,根据验证系统1,由于能够定义生成若干服务的计算内容,因此能够在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中所示,还能够使和内部总线90相连的卡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通过因特网10通信,并且执行使用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中所示的组件。
[IC卡103]
图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。
[外部存储器107]
图23说明了外部存储器107的存储区。
如图23中所示,外部存储器107的存储区包括保存企业115_1的应用程序AP_1的AP存储区120_1,保存企业115_2的应用程序AP_2的AP存储区120_2,保存企业115_3的应用程序AP_3的AP存储区120_3,由SAM芯片108的管理人员使用的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_1,访问图22中所示的IC卡103的存储区155_1时所使用的加密密钥信息K_C1,当执行应用程序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的访问。
[SAM芯片108]
图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_C1、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的操作的例子。
[把AP下载到外部存储器的操作]
图27是说明把应用程序AP_1从图19中所示的个人计算机116_1下载到外部存储器107的操作的流程图。
步骤ST101:
图19中所示的个人计算机116_1通过验证装置117_1把指定将下载的各个程序模块的模块名称的下载请求传送给SAM芯片108。
步骤ST102:
运行于图26中所示的SAM芯片108上的下载任务170执行关于和个人计算机116_1相连的验证装置117_1的相互验证。此外,当相互验证确认了相互的合法性时,执行步骤ST103的处理。
注意,在本实施例中,可把各种技术用作相互验证技术,不过使用了下述技术。
验证装置117_1和SAM芯片108都保存有SAM芯片108的身份识别信息,即SAM_ID,和相互验证主密钥信息。
此外,验证装置117_1利用相互验证主密钥信息对SAM_ID加密,并将其传送给SAM芯片108。SAM芯片108利用相互验证主密钥对接收的加密SAM_ID解密,并将其和它自己保存的SAM_ID进行比较。如果匹配,则确认验证装置117_1的合法性。此外,与此相反,SAM芯片108利用相互验证主密钥信息对SAM_ID加密,并将其传送给验证装置117_1。验证装置117_1利用相互验证主密钥对接收的加密SAM_ID解密,并将其和它自己保存的SAM_ID进行比较。如果匹配,则确认SAM芯片108的合法性。
步骤ST103:
下载任务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中所示的CPU167执行。
[应用程序的执行过程中的操作]
图29是说明执行应用程序的操作的视图。
步骤ST121:
当AP任务172通过图28中所示的处理,执行程序模块中的代码时,它判断接下来要执行的代码是否是关于另一程序模块指令数据传送或者数据检查的代码。
步骤ST122:
当AP任务172判断接下来要执行的代码并不指令关于另一程序模块的数据传送或者数据检查时,它转到步骤ST124的处理,而当它判断接下来要执行的代码指令数据传送或者数据检查时,它转到步骤ST123的处理。
步骤ST123:
AP任务172执行该代码。
步骤ST124:
AP任务172在不执行该代码的情况下进行错误处理。
下面将说明图19中所示的通信系统的整体操作。
图30是说明图19中所示通信系统101的整体操作的视图。
步骤ST131:
企业115_1-115_3或者这些企业所请求的一方在图19中所示个人计算机116_1、116_2和116_3上产生应用程序AP_1、AP_2和AP_3,所述应用程序AP_1、AP_2和AP_3使这些企业能够执行和利用IC卡103进行的交易相关的处理。
此外,SAM芯片108的管理人员产生图23中所示的模块管理数据130,对其进行加密编码,并将其保存在外部存储器107中。
步骤ST132:
应用程序AP_1、AP_2和AP_3通过验证装置117_1、117_2和117_3从个人计算机116_1、116_2和116_3被下载到SAM芯片108。
此时,执行利用图27说明的处理。
步骤ST133:
用户被发给IC卡103。
如图22中所示,IC卡103的IC 103a的存储器150保存用于用户与签约企业的交易的密钥信息。
注意,在发行IC卡103之后,用户和企业还可通过因特网110等缔结合同。
步骤ST134:
例如,当用户使用个人计算机105通过因特网110访问服务器102,试图购买产品时,服务器102通过因特网110向ASP服务器106发送处理请求。
当从服务器102接收处理请求时,ASP服务器106通过因特网110访问个人计算机105。此外,由读卡机/写卡机104发出的关于IC卡103的处理请求通过个人计算机105、因特网110和ASP服务器106被传送给SAM芯片108。
步骤ST135:
SAM芯片108根据在步骤ST134接收的处理请求,由结算处理例程任务173选择应用程序,并且执行选择的应用程序。
随后执行在应用程序的执行中使用图28和图29说明的处理。
SAM芯片108把应用程序的执行结果输出给ASP服务器106。
如上所述,根据通信系统101,如同利用图27说明的那样,由于SAM芯片108使用验证装置117_1、117_2和117_3验证应用程序的下载者,并且只允许把应用程序下载到外部存储器107中的指定存储区,因此能够防止未经许可的一方非法交换或窜改外部存储器107中的应用程序。
此外,根据通信系统101,当SAM芯片108运行若干应用程序时,由于应用程序之间的数据传送和数据及代码查看受防火墙FW_1、FW_2和FW_3限制,因此能够防止每个应用程序的处理被另一应用程序非法干扰或者窜改。此外,能够提高每个应用程序的机密性。
此外,根据通信系统101,和利用图28说明的一样,当执行应用程序时,通过验证应用程序是否正被窜改,能够避免身份偷窃或者基于非法窜改应用程序的其它非法行为。
此外,根据通信系统101,通过由若干程序模块构成各个应用程序,能够以程序模块为单位下载到外部存储器107。
此外,根据通信系统101,通过对用于关于IC卡103的操作的高度机密密钥信息进行通常的扰频,对其加密,以及将其保存在外部存储器中,能够提高密钥信息的安全等级。
此外,根据通信系统101,由于在总线扰频功能进行代码访问时,应用程序进行加密和解密,因此当停止SAM芯片108的处理时,能够防止保存在外部存储器107中的应用程序免受非法分析等等。
图31是更具体地表示图25中所示的SAM芯片108的功能块的功能方框图。
如图31中所示,SAM芯片108通过内部总线190与ASPS通信接口装置160、外部存储器通信接口装置161、总线扰频装置162、加密/解密装置165、存储器166和CPU 167相连。
图25中所示的签名处理装置163和验证处理装置164的部分功能由CPU 167实现。
在图31中所示的SAM芯片108中,例如如图32中所示,还能够使与内部总线190相连的卡I/F装置191和位于SAM芯片108外的RF接收/发射装置192相连,并且通过RF接收/发射装置192的天线192a,借助非接触式系统相对于IC卡102传送数据。
第三实施例
本实施例是对应于本发明的第10-12方面的实施例。
图33表示了本实施例的通信系统201的整体结构。
如图33中所示,通信系统201使用服务器202、IC卡203、读卡机/写卡机204、个人计算机205、ASP(应用服务提供者)服务器206、SAM(保密应用模块)装置209、个人计算机216_1、216_2和216_3,以及身份验证装置217_1、217_2和217_3通过因特网210通信,并且执行使用IC卡203的过程的结算处理或者其它处理。
SAM装置209具有外部存储器207和SAM芯片208。
SAM芯片208具有图34中所示的软件配置。
如图34中所示,从底层到顶层,SAM芯片208具有HW(硬件)层、OS层、低级处理程序层、高级处理程序层和AP层。
低级处理程序层包括驱动程序层。
这里,AP层包括确定信用卡公司或者图33中所示的其它企业215_1、215_2和215_3使用IC卡203的过程的应用程序AP_1、AP_2和AP_3。
在AP层,在应用程序AP_1、AP_2及AP_3和高级处理程序层之间设置防火墙FW。
SAM芯片208通过SCSI端口、以太网等与ASP服务器206相连。ASP服务器206通过因特网210与若干终端设备相连,包括最终用户的个人计算机205和企业215_1、215_2和215_3的个人计算机216_1、216_2和216_3。
个人计算机205通过串口或USB端口与Dumb型读卡机/写卡机204相连。读卡机/写卡机204实现与IC卡203的物理无线通信。
在SAM装置209一侧产生发送给IC卡203的操作命令并分析来自于IC卡203的响应分组。于是,读卡机/写卡机204、个人计算机205、和它们之间的ASP服务器206只起把命令或响应内容保存在数据有效负载部分中并且中继数据有效负载部分的作用。它们不参与数据的加密或解密、身份验证和IC卡103中的其它实际操作。
企业215_1、215_2和215_3使用个人计算机216_1、216_2和216_3产生应用程序AP_1、AP_2和AP_3,并且通过验证装置217_1、217_2和217_3并经SAM芯片208把产生的应用程序下载到外部存储器207中的预定存储区中。
此时,由于企业215_1、215_2和215_3彼此无关,因此预先确定外部存储器207中可下载应用程序AP_1、AP_2和AP_3的存储区。SAM芯片208验证这些应用程序是否有权下载到这些存储区。
此外,应用程序AP_1、AP_2和AP_3之间的数据传送和数据查看由防火墙FW限制。如后所述,当把应用程序AP_1、AP_2和AP_3下载到SAM芯片108时,验证装置217_1、217_2和217_3执行相对于SAM芯片209的相互验证,产生下载签名验证密钥信息等等。
下面说明图33中所示的组件。
[IC卡203]
图35是IC卡203的功能方框图。
如图35中所示,IC卡203具有配有存储器250和处理器251的IC(集成电路)203a。
如图36中所示,存储器250具有由信用卡公司或者另一企业215_1使用的存储区255_1,由企业215_2使用的存储区255_2,和由企业215_3使用的存储区255_3使用的存储区。此外,存储器250保存用于判断关于存储区255_1的权限的存在的密钥信息,用于判断对存储区255_2的访问权限的密钥信息,和用于判断对存储区255_3的访问权限的密钥信息。密钥信息专用于相互验证、数据的加密和解密等等。
此外,存储器250保存IC卡203或者IC卡203的用户的身份识别信息。
下面,详细说明SAM装置209。
[外部存储器207]
图37说明了外部存储器207的存储区。
如图37中所示,外部存储器207的存储区包括保存企业215_1的应用程序AP_1的存储区220_1,保存企业215_2的应用程序AP_2的存储区220_2,保存企业215_3的应用程序AP_3的存储区220_3,以及由SAM芯片208的管理人员使用的AP管理存储区221。
保存在AP存储区220_1中的应用程序AP_1由若干程序模块组成。防火墙FW_1限制对AP存储区220_1的访问。
保存在AP存储区220_2中的应用程序AP_2由若干程序模块组成。防火墙FW_2限制对AP存储区220_2的访问。
保存在AP存储区220_3中的应用程序AP_3由若干程序模块组成。防火墙FW_3限制对AP存储区220_3的访问。
本实施例中,上述程序模块是从SAM装置209外部下载到外部存储器207的最小单元。构成每个应用程序的程序模块的数目可由对应的企业自由确定。
此外,保存在外部存储器207中的应用程序AP_1、AP_2和AP_3被扰频。当被读入SAM芯片208时这些应用程序被解扰频。
此外,应用程序AP_1、AP_2和AP_3由企业215_1、215_2和215_3使用图33中所示的个人计算机216_1、216_2和216_3产生,并且通过SAM芯片208被下载到外部存储器207。
防火墙FW_4限止对AP管理存储区221的访问。
注意防火墙FW_1、FW_2、FW_3和FW_4对应于图34中所示的防火墙FW。
AP管理存储区221保存如图37中所示的AP选择数据231和AP间通信数据232。
这里,在形成SAM芯片208的时候事先记录AP选择数据231和AP间通信数据232。此外,AP选择数据231和AP间通信数据232只可被SAM芯片208的管理人员重写。
图38说明了AP选择数据231。
如图38中所示,AP选择数据231显示链接在一起的IC卡类型信息和AP身份识别信息。
IC卡类型信息表示图33中所示的IC卡203的类型,并且是执行利用IC卡203的交易的结算的信用卡公司的身份识别信息。
如图34中所示,AP身份识别信息是在SAM芯片208的AP层上操作的应用程序的识别信息。
图39说明了AP间通信数据232。
AP间通信数据232表示图34中所示的应用程序AP_1、AP_2和AP_3之间的通信是否可能。
具体地说,这表示是否许可由图39中所示位于某一列条目的应用程序向位于某一行条目的应用程序发出的通信请求。
例如,许可应用程序AP_3向应用程序AP_1发出的通信请求,但是拒绝向应用应用程序AP_2发出的通信请求。
此外,如图37中所示,AP管理存储区221具有用于与应用程序通信(数据的传送)的AP间通信存储区233。
[SAM芯片208]
图40是图33中所示的SAM芯片208的功能方框图。
如图40中所示,SAM芯片208具有ASPS通信接口装置260、外部存储器通信接口装置261,总线扰频装置262,签名处理装置263,验证处理装置264,加密/解密装置265,存储器266和CPU 267。
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执行的任务。
如图41中所示,CPU 167执行下载任务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的通信请求时,执行步骤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,以便执行关于利用IC卡203的交易的处理。
步骤ST232:
应用程序AP_1、AP_2和AP_3通过验证装置217_1、217_2和217_3从个人计算机216_1、216_2和2163被下载到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中所示,防火墙限制应用程序AP_1、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_AP1、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_AP1、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上的程序时使用的仿真器。
下面将说明图48中所示的组件。
IC卡303
IC卡303保存使用SAM芯片308的结算处理所必需的密钥信息等等。
身份验证装置317_1-317_5
图50是验证装置317_1的功能方框图。
如图50中所示,验证装置317_1具有存储器350_1和处理器351_1。
如图50中所示,存储器350_1保存SAM_ID、相互验证主密钥信息K1和访问主密钥信息KA。
SAM_ID是SAM芯片308的身份识别信息。
如后所述,相互验证主密钥信息K1用于产生相互验证密钥信息K2。
如后所述,访问主密钥信息KA用于产生当把程序下载到外部存储器307中时使用的下载签名信息。
访问主密钥信息KA是把图49中所示的SAM芯片308的软件结构的AP层的程序下载到外部存储器307所必需的密钥信息。
如图50中所示,处理器351_1具有相互验证装置352_1和下载处理器353_1。
如图51中所示,当把程序下载到外部存储器307时,相互验证装置352_1利用相互验证主密钥信息K1对呈明文形式的SAM_ID加密,产生相互验证密钥信息K2,并且把该相互验证密钥信息K2用于和SAM芯片308的相互验证。
如图52中所示,当把程序下载到外部存储器307时,下载处理器353_1利用访问主密钥信息KA对呈明文形式的SAM_ID加密,产生下载密钥信息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、相互验证主密钥信息K1和访问主密钥信息KA和KM。
SAM_ID、相互验证主密钥信息K1和访问主密钥信息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对呈明文形式的SAM_ID加密,产生下载密钥信息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、相互验证主密钥信息K1和访问主密钥信息KA、KM及KS。
SAM_ID、相互验证主密钥信息K1和访问主密钥信息KA及KM和上面说明的相同。
访问主密钥信息KS是把图49中所示SAM芯片308的软件结构的OS层的程序下载到外部存储器307或者SAM芯片308所需的密钥信息。
如图55中所示,处理器351_5具有相互验证装置352_5和下载处理器353_5。
相互验证装置352_5和上面提及的图51中所示的相互验证装置352_1相同。
如图56中所示,当把程序下载到外部存储器307时,下载处理器353_5利用访问主密钥信息KA对作为明文的SAM_ID加密,产生下载密钥信息K_DA。随后,下载处理器353_5利用访问主密钥信息KM对作为明文的下载密钥信息K_DA加密,产生下载密钥信息K_DM。之后,下载处理器353_5利用访问主密钥信息KS对作为明文的下载密钥信息K_DM加密,产生下载密钥信息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
[外部存储器307]
图57说明了外部存储器307的存储区。
如图57中所示,外部存储器307的存储区包括保存企业315_1的应用程序AP_1的AP存储区320_1,保存企业315_2的应用程序AP_2的AP存储区320_2,保存企业315_3的应用程序AP_3的AP存储区320_3,和SAM芯片308的管理人员所使用的AP管理存储区321。
保存在AP存储区320_1中的应用程序AP_1由若干程序模块组成。对AP存储区320_1的访问由防火墙FW_1限制。
保存在AP存储区320_2中的应用程序AP_2由若干程序模块组成。对AP存储区320_2的访问由防火墙FW_2限制。
保存在AP存储区320_3中的应用程序AP_3由若干程序模块组成。对AP存储区320_3的访问由防火墙FW_3限制。
本实施例中,上述程序模块是从SAM装置309之外下载到外部存储器307的最小单元。构成各个应用程序的程序模块的数目可由相应的企业自由确定。
此外,保存在外部存储器307中的应用程序AP_1、AP_2和AP_3被扰频。此外,当被读入SAM芯片308时,它们被解扰频。
此外,应用程序AP_1、AP_2和AP_3由利用图48中所示的个人计算机316_1、316_2和316_3的企业315_1、315_2和315_3产生,并且通过SAM芯片308被下载到外部存储器307。
对AP管理存储区321的访问由防火墙FW_4限制。
注意,防火墙FW_1、FW_2、FW_3和FW_4对应于图49中所示的防火墙FW。
AP管理存储区321保存AP管理数据330。
AP管理数据330包括SAM_ID、相互验证密钥信息K2(或者相互验证主密钥信息K1)和下载签名验证信息K_DA、KDVM和KDVS。
这里,下载签名验证密钥信息K_DVA是验证利用下载密钥信息K_DA产生的签名信息的合法性的密钥信息。
下载签名验证密钥信息K_DVM是验证利用下载密钥信息K_DM产生的签名信息的合法性的密钥信息。
下载签名验证密钥信息K_DVS是验证利用下载密钥信息K_DS产生的签名信息的合法性的密钥信息。
下载签名验证密钥信息是用于当通过SAM芯片308把程序模块下载到外部存储器307时执行的签名验证的密钥信息。
[SAM芯片308]
图58是图48中所示的SAM芯片的功能方框图。
如图58中所示,SAM芯片308具有ASPS通信接口装置360、外部存储器通信接口装置361,总线扰频装置362,加密/解密装置363,存储器364和CPU 365。
SAM芯片308是防窜改模块。
ASPS通信接口装置360是用于关于图48中所示ASP服务器306输入输出数据的接口。
外部存储器通信接口装置361是用于关于外部存储器307输入输出数据的接口。
当通过外部存储器通信接口装置361输入和输出数据时,总线扰频装置362对输出数据扰频并对输入数据解扰频。
加密/解密装置363对数据加密,并对加密数据解密。
存储器364保存用于CPU 365的处理的数据。
CPU 365根据呈任务等形式的预定程序(本发明的程序)执行包括由SAM芯片308进行应用程序在内的各种处理。
例如,CPU 365执行用于完成通过因特网310下载程序模块的处理的下载任务365a。
下面将说明由CPU 365的下载任务365a完成的程序模块的下载操作。
图59是说明下载操作的流程图。
在下面的实施例中,将给出当企业315_AP1下载图49和图57中所示应用程序AP_1的程序模块时的操作的说明。
步骤ST301:
图48中所示的个人计算机316_1通过验证装置317_1、因特网310、ASP服务器306和ICE 318把指定要下载的构成应用程序AP_1的各个程序模块的模块名称的下载请求传送给SAM芯片308。
步骤ST302:
如图51中所示,验证装置317_1的处理器351_1的相互验证装置352_1利用相互验证主密钥信息K1对作为明文的SAM_ID加密,产生相互验证密钥信息K2。
步骤ST303:
验证装置317_1的处理器351_1的相互验证装置352_1利用在步骤ST302产生的相互验证密钥信息K2执行与SAM芯片308的CPU365的下载任务365a的相互验证。
步骤ST304:
当在步骤ST303的相互验证中确认相互合法性时,该装置转到步骤ST305的处理,而当没有确认相互合法性时,结束处理。
步骤ST305:
如图52中所示,图50中所示的验证装置317_1的处理器351_1的下载处理装置353_1利用访问主密钥信息KA对作为明文的SAM_ID加密,产生下载密钥信息K_DA。
步骤ST306:
下载处理装置353_1使用在步骤ST305产生的下载密钥信息K_DA产生下载签名信息。
步骤ST307:
下载处理装置353_1把在步骤ST306产生的下载签名信息传送给SAM芯片308。
步骤ST308:
图58中所示的SAM芯片308的CPU 365的下载任务365a使用图57中所示的下载签名验证密钥信息K_DVA判断在步骤ST307接收的下载签名信息的合法性。
此时,下载任务365a根据在步骤ST301接收的模块名称判断下载请求是否在AP层作出,并且指定下载签名验证密钥信息K_DVA。
步骤ST309:
如果在步骤ST308判断下载签名信息合法,则任务转到步骤ST310的处理,否则结束处理。
步骤ST310:
图58中所示的SAM芯片308的CPU 365的下载任务365a通过查看模块管理数据330,指定外部存储器307中对应于在步骤ST301指定的模块名称的地址,并且把从个人计算机316_1接收的程序模块下载到外部存储器307上的指定地址。
注意当软件开发者315_MID把图49中所示的高级处理程序层和低级处理程序层的程序模块下载到外部存储器307时,在步骤ST305,下载密钥信息K_DM由利用图54说明的例程产生。利用该下载密钥信息,在步骤ST306产生下载签名信息。此外,在步骤ST308,在SAM芯片308中,图57中所示的下载签名验证密钥信息K_DVM用于验证下载签名信息。
此外,当软件开发者315_SUP把图49中所示的OS层的程序模块下载到外部存储器307时,在步骤ST305,利用图56说明的例程被用于产生下载密钥信息K_DS。利用该下载密钥信息K_DS,在步骤ST306产生下载签名信息。此外,在步骤ST308,在SAM芯片308中,图57中所示的下载签名验证密钥信息K_DVS被用于验证下载签名信息。
注意软件开发者315_MID和315_SUP可使用访问主密钥信息KA把AP层的程序模块下载到外部存储器307。
此外,软件开发者315_SUP可使用访问主密钥信息KA和KM把高级处理程序层和低级处理程序层的程序模块下载到外部存储器307。
下面说明图48中所示的通信系统301进行的使用IC卡303的交易的处理。
图60说明了图48中所示的通信系统的整体操作。
步骤ST331:
企业315_1-315_3或者这些企业所请求的一方在图48中所示的个人计算机316_1、316_2和316_3上产生这些企业的执行关于使用IC卡303的交易的处理的应用程序AP_1、AP_2和AP_3。
此时,执行利用图59说明的下载处理。
步骤ST332:
通过验证装置317_1、317_2和317_3,应用程序AP_1、AP_2和AP_3从个人计算机316_1、316_2和316_3被下载到SAM芯片308。
此时,执行利用图56说明的处理。
步骤ST333:
用户被发给IC卡303。
IC卡303保存用于用户与签约企业的交易的密钥信息。
注意,在发行IC卡303之后,用户和企业还可通过因特网310等缔结合同。
步骤ST334:
例如,当用户希望使用个人计算机305通过因特网310访问服务器302以便购买产品时,服务器302通过因特网310向ASP服务器306发送处理请求。
当从服务器302接收处理请求时,ASP服务器306通过因特网310访问个人计算机305。此外,由读卡机/写卡机304发出的关于IC卡303的处理请求通过个人计算机305、因特网310和ASP服务器306被传送给SAM芯片308。
步骤ST335:
SAM芯片308根据在步骤ST334接收的处理请求,由结算处理例程任务选择应用程序,并且执行选择的应用程序。
步骤ST336:
SAM芯片308把应用程序的执行结果输出给ASP服务器306。
如上所述,根据通信系统301,通过验证装置317_1、317_2和317_3保存访问主密钥信息KA,验证装置317_4保存访问主密钥信息KM,验证装置317_5保存访问主密钥信息KS,并且如上所述,执行把程序模块下载到外部存储器307的处理,能够根据按照图49中所示的软件层次给予的权限下载程序模块。于是,能够防止未经许可的一方非法交换或窜改将由SAM芯片308执行的程序模块。
此外,根据通信系统301,如前所述,验证装置317_1、317_4和317_5安全地把信息保存在存储器350_1、350_4和350_5中。当这些信息受到外界因素的破坏或者被强制打开时,这将被检测装置检测到,存储器350_1、350_4和350_5中的保存信息被删除。于是,可避免用于SAM芯片308的下载的密钥信息的非法使用。
此外,根据通信系统301,当SAM芯片308运行若干应用程序时,由于应用程序之间的数据传送或者数据和代码的查看受到防火墙FW_1、FW_2和FW_3的限制,因此可防止另一应用程序非法干扰或者窜改各个应用程序的处理。此外,能够提高每个应用程序的保密性。
此外,根据通信系统301,通过由若干程序模块构成各个应用程序,能够以程序模块为单位下载到外部存储器307。
此外,根据通信系统301,通过除了常规扰频之外,对用于IC卡303的操作的高度机密的密钥信息加密,并将其保存在外部存储器307中,能够提高密钥信息的安全程度。
此外,根据因特网301,当借助总线扰频功能访问代码时,应用程序能够执行加密和解密,从而能够在停止SAM芯片308的处理的时候,防止保存在外部存储器307中的应用程序受到非法分析等等。
图61是更详细地表示图58中所示的SAM芯片308的功能块的功能方框图。
如图61中所示,SAM芯片308通过内部总线390与ASPS通信接口装置360、外部存储器通信接口装置361、总线扰频装置362、加密/解密装置365、存储器364和CPU 366相连。
在图61中所示的SAM芯片308中,例如如图62中所示,还能够使与内部总线390相连的卡I/F装置391与SAM芯片308之外的RF接收/发射装置392相连,并且通过RF接收/发射装置392的天线392a,利用非接触式系统与IF卡303传送数据。
本发明并不局限于上面说明的实施例。
例如,在上面说明的实施例中,举例说明了通过SAM芯片308把程序模块从个人计算机316_1-316_5下载到外部存储器307的情况,但是即使当把程序模块从个人计算机316_1-316_5下载到SAM芯片308中的存储器364时,通过利用上面说明的下载任务365a的功能,也可类似地应用本发明。
此外,在上面说明的实施例中,举例说明了在个人计算机316_1-316_6一侧为因特网310提供验证装置317_1-317_5的情况,但是如图63中所示,也可在SAM芯片308中设置验证装置317_1-317_5,并且对于相应的个人计算机316_1-316_5,允许访问验证装置317_1-317_5。
第五实施例
本实施例是对应于本发明的第17和第18方面的实施例。
图64是本实施例的通信系统401的整体结构的视图。
如图64中所示,通信系统401使用服务器402,IC卡403,读卡机/写卡机404,个人计算机405,ASP(应用服务提供者)服务器406,SAM(保密应用模块)装置409,个人计算机416_1、416_2和416_3,和身份验证装置417_1、417_2和417_3通过因特网410通信,并且执行利用IC卡403的过程的结算处理或者其它处理。
SAM装置409具有外部存储器407和SAM芯片408。
SAM芯片408具有图65中所示的软件配置。如图65中所示,从底层到顶层,SAM芯片408具有HW(硬件)层、OS层、低级处理程序层、高级处理程序层和AP层。
低级处理程序层包括驱动程序层。
这里,AP层包括确定信用卡公司或者图64中所示的其它企业415_1、415_2和415_3使用IC卡403的过程的应用程序AP_1、AP_2和AP_3。
在AP层,在应用程序AP_1、AP_2及AP_3和高级处理程序层之间设置防火墙FW。
利用SCSI端口、以太网等,SAM芯片408通过总线419与ASP服务器406相连。ASP服务器406通过因特网410与包含最终用户的个人计算机405和企业415_1、415_2和415_3的个人计算机416_1、416_2和416_3在内的若干终端设备相连。
个人计算机405通过串行端口或者USB端口与Dumb型读卡机/写卡机404相连。读卡机/写卡机404实现和IC卡403的物理无线通信。
在SAM装置409一侧产生发送给IC卡403的操作命令,并且分析来自于IC卡403的响应分组。于是,读卡机/写卡机404、个人计算机405和介于它们之间的ASP服务器406只起把命令或响应内容保存在数据有效负载部分中并且中继数据有效负载部分的作用。它们不参与数据的加密或解密、身份验证和IC卡403中的其它实际操作。
企业415_1、415_2和415_3使用个人计算机416_1、416_2和416_3产生应用程序AP_1、AP_2和AP_3,并且通过SAM芯片408经验证装置417_1、417_2和417_3把产生的应用程序下载到外部存储器407中预先分配的存储区。
此时,由于企业415_1、415_2和415_3彼此没有关系,事先确定外部存储器407中可下载应用程序AP_1、AP_2和AP_3的存储区,并且由SAM芯片408验证是否有权下载到这样的存储区。
此外,应用程序AP_1、AP_2和AP_3之间的数据传送和数据查看受到防火墙FW的限制。
当把应用程序AP_1、AP_2和AP_3下载到SAM芯片408时,如后所述,验证装置417_1、417_2和417_3执行和SAM芯片408的相互验证,产生下载签名验证密钥信息等等。
下面将详细说明图64中所示的SAM装置409。
外部存储器407
图66说明了外部存储器407的存储区。
如图66中所示,外部存储器407的存储区包括保存企业415_1的应用程序AP_1的AP存储区420_1,保存企业415_2的应用程序AP_2的AP存储区420_2,保存企业415_3的应用程序AP_3的AP存储区420_3,由SAM芯片408的管理人员使用的AP管理存储区421。
保存在AP存储区420_1中的应用程序AP_1由若干程序模块组成。对AP存储区420_1的访问由防火墙FW_1限制。
保存在AP存储区420_2中的应用程序AP_2由若干程序模块组成。对AP存储区420_2的访问由防火墙FW_2限制。
保存在AP存储区420_3中的应用程序AP_3由若干程序模块组成。对AP存储区420_3的访问由防火墙FW_3限制。
本实施例中,上面的程序模块是从SAM装置409之外下载到外部存储器407的最小单元。构成每个应用程序的程序模块的数目可由相应的企业自由确定。
此外,应用程序AP_1、AP_2和AP_3由使用图64中所示的个人计算机416_1、416_2和416_3的企业415_1、415_2和415_3产生,并且通过SAM芯片408被下载到外部存储器407。
借助防火墙FW_4,对AP管理存储区421a的访问只由SAM芯片408的管理人员许可。
注意防火墙FW_1、FW_2、FW_3和FW_4对应于图65中所示的防火墙FW。
AP管理存储区421保存图66中所示的模块管理数据421.
这里,AP管理数据421由SAM芯片408用于管理应用程序AP_1、AP_2和AP_3的执行。
在本实施例中,如后所述,保存在外部存储器407中的应用程序AP_1、AP_2和AP_3以及AP管理数据421由SAM芯片408中的总线扰频装置461利用扰频密钥K扰频。当被读入SAM芯片408时,利用扰频密钥K对它们解扰频。
SAM芯片408
图67是图64中所示的SAM芯片的功能方框图。
如图67中所示,SAM芯片408具有ASPS通信接口装置460,总线扰频装置461,签名处理装置462,验证处理装置463,加密/解密装置464,存储器465和CPU 466。
SAM芯片408是防窜改模块。
这里,CPU对应于本发明的数据处理电路,而总线扰频装置461对应于本发明的数据输入/输出电路。
此外,SAM芯片408对应于本发明的半导体电路,而外部存储器407对应于本发明的半导体存储电路。
ASPS通信接口装置460是用于关于图64中所示的ASP服务器406输入输出数据的接口。
总线扰频装置461对要写入外部存储器407的数据扰频,并对从外部存储器407读出的数据解扰频。
即,外部存储器407保存呈扰频状态的数据。
后面将详细说明总线扰频装置461的处理。
如后所述,签名处理装置462产生签名,并且当通过因特网410下载应用程序时,以及当执行应用程序时,验证签名。
如后所述,当通过因特网410把应用程序下载到外部存储器407时,验证处理装置463执行和另一方的相互验证。
加密/解密装置464对数据加密并对加密数据解密。
存储器465保存CPU 466的处理所必需的数据。
在通过总线扰频装置461访问外部存储器407的时候,CPU 466执行应用程序AP_1、AP_2和AP_3,并且执行对应于SAM芯片408的服务的各种处理。
下面将详细说明总线扰频装置461的处理。
注意,在本实施例中,举例说明了当访问外部总线时,使用总线扰频装置461的情况,但是在通过I/O总线等由另一SAM芯片408相对于外部输入输出数据的情况下,也可应用总线扰频装置461。
总线扰频装置461利用预定的扰频密钥K对来自CPU 466的数据输入加密,随后通过总线419将其写入外部存储器407。
此外,总线扰频装置461利用扰频密钥K对通过总线419从外部存储器407读取的数据解密,并将其输出给CPU 466。
[地址空间]
使总线扰频装置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中所示,只有当地址a1(地址CPU_ADR)为“a1modNc/Nb=0”时才定义该映射f。对于另一地址a2,利用f(a2-(a2modNc/Nb))访问外部存储器407。
这里,“x mod y”是在用y去除x之后的余数。
即,总线扰频装置461以加密块长度Nc为单位相对于外部存储器407读取和写入数据。
这里,当Nc/Nb=n,并且n或更大值(n or more)的最小整数为m时,总线扰频装置461以m个交易为单位执行通过总线419访问外部存储器407的交易(本发明的数据输入/输出交易)。
[总线扰频装置461的结构]
图70是总线扰频装置461的功能方框图。
如图70中所示,总线扰频装置461具有加密装置431,解密装置432,地址管理装置433,扰频密钥管理装置434,奇偶校验处理装置435,流水线处理控制装置436,工作存储器437和控制器438。
加密装置431利用预定的扰频密钥K对从CPU 466输入的数据加密。
解密装置432利用预定的扰频密钥K对从外部存储器407读取的数据解密。
如上所述,地址管理装置433把从CPU 466输入的地址CPU_ADR转换成地址MEM_ADR。
扰频密钥管理装置434管理在加密装置431和解密装置432使用的扰频密钥K,并且恰当地交换扰频密钥K。
奇偶校验装置435把奇偶校验数据添加到要写入外部存储器407的数据中,并且验证添加到从外部存储器407读取的数据中的奇偶校验数据。
流水线处理控制装置436把总线扰频装置461的处理分成若干阶段,并且控制系统以阶段为单位进行流水线处理。
工作存储器437用于总线扰频装置461的处理。
控制器438全面控制总线扰频装置461的处理。
[对于外部存储器407的写操作]
图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中所示的地址管理装置433使用地址“a3”查找映射f(a3-(a3mod Nc/Nb)),则映射f(a3-1),并把映射f(a3-1)用作外部存储器地址空间的地址MEM_ADR。
步骤ST403:
图70中所示的控制器438使用在步骤ST402获得的地址MEM_ADR f(a3-1)从外部存储器407读取加密数据块e({X1,X2}),并将其写入工作存储器437。
步骤ST404:
图70中所示的解密装置432对从工作存储器437读取的数据块e({X1,X2})解密,产生数据块{X1,X2}。此外,奇偶校验处理装置435把添加到数据块e({X1,X2})的奇偶校验数据用于奇偶校验处理,随后再次把数据块{X1,X2}写入工作存储器437。
步骤ST405:
控制器438重写对应于和从工作存储器437所读取地址对应的数据块{X1,X2}中的地址“a3”,并且已被解密成写入数据“d32”的“X2”,以便产生数据块{X1,d32},并将其写入工作存储器437。
步骤ST406:
奇偶校验处理装置435产生数据块{X1,d32}的奇偶校验数据。
步骤ST407:
加密装置431利用扰频密钥K对从工作存储器437读取的数据块{X1,d32}加密。
步骤ST408:
控制器438在外部存储器407的地址MEM_ADR f(a3-1)写入数据块{X1,d32},并且在外部存储器407的预定区域中写入在步骤ST406产生的奇偶校验数据。
注意在步骤ST407对数据块加密之前,控制器438判断接下来从CPU 466输入的地址是否为“a3-1”。如果是“a3-1”,则利用写入数据重写该数据块X1,随后对其加密并将其写入外部存储器407。
由此,能够减少对连续地址进行写操作情况下的步骤数目。
此外,即使当把数据长度为Nb的数据写入外部存储器407时,控制器438对该数据填充数据长度为(Nc-Nb)的数据,以便获得数据长度为Nc的数据,随后对其加密,并将其写入外部存储器407。
即,外部存储器407中数据长度为Nc的存储区被均匀分配给数据长度为Nb的数据。
[从外部存储器407读取]
图73说明了从外部存储器407到总线扰频装置的读取操作。
图74是说明该读取操作的流程图。
步骤ST411:
CPU 466把要读取的地址CPU_ADR输出给总线扰频装置461。
步骤ST412:
当Nc>Nb时,图70中所示的地址管理装置433使用地址“a3”查找映射f(a3-(a3mod Nc/Nb)),即映射f(a3-1),并且把映射f(a3-1)用作外部存储器地址空间的地址MEM_ADR。
步骤ST413:
图67中所示的CPU 466使用在步骤ST402获得的地址MEM_ADR f(a3-1)从外部存储器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取出数据块中第“(a3 mod Nc/Nb)+1”数据,并将其输出给CPU 466。
[扰频密钥的管理]
图70中所示的扰频密钥管理装置434如下管理在加密装置431和解密装置432中使用的扰频密钥。
对于外部存储器407中的每个地址,扰频密钥管理装置434可使用不同的密钥。于是,必须保存若干扰频密钥。下面表示了保存若干扰频密钥的方法的一个例子。
如图75中所示,扰频密钥管理装置434保存若干扰频密钥K1、K2和K3。它根据来自于CPU 466的地址交换使用的密钥,并且将其输出给加密装置431和解密装置432。
具体地说,当访问地址“a1”时,它使用扰频密钥K1,当访问地址“a2”时,它使用扰频密钥K2,当访问地址“a3”时,它使用扰频密钥K3。
此外,如图76中所示,扰频密钥管理装置434中的计算电路434a利用形成类别的密钥Ks和从CPU 466输入的地址执行处理,并且把作为扰频密钥K的计算结果输出给加密装置431和解密装置432。
计算可包括利用Ks对填充地址编号加密或解密,得到异或(XOR),或者其它计算。
此外,总线扰频装置461可把扰频密钥保存在总线的预定位置,并且通过总线输入和CPU 466发出的地址对应的扰频密钥。这种情况下,由于传送扰频密钥的数据总线和总线扰频器的总线相同,必须由存储器控制器进行控制。保存扰频密钥的位置可以是SAM芯片408内外的任意地方,但是如果在芯片之外,为了确保到芯片的路径的安全性,扰频密钥由传送密钥加密,并在到达总线扰频装置461时被解密。总线扰频装置461以硬件或软件的形式持有传送密钥。
但是,在总线扰频装置461中,即使相对于从CPU 466输入的每个地址改变扰频密钥,如果连续访问某一地址,通过花费一定的时间,地址区的杂乱性被分析的可能性增大。于是,扰频密钥不是一个不变的扰频密钥。借助如下所述的技术使之可变。
例如,当给SAM芯片408等通电时,扰频密钥管理装置434导致产生随机数,以便产生扰频密钥。本质上扰频密钥只需被总线扰频器知道,因此不会产生密钥传送、同步之类的问题。
此外,扰频密钥管理装置434交换用于相对于外部存储器407的各次访问的扰频密钥。这种情况下,对已存在于外部存储器407中的数据加密的密钥和当前持有的密钥必须不同。
于是,例如,如图77和图78中所示更新扰频密钥。
[1]:加密装置431从CPU 466输入数据“d3”,而总线扰频装置461从CPU 466输入地址“a1”。
[2]:总线扰频装置461访问外部存储器407的地址“f(a1)”。
[3]:数据“e({d1,d2})”从外部存储器407的地址“f(a1)”被读入解密装置432。
[4]:解密装置432对数据“e({d1,d2})”解密,产生数据“{d1,d2}”。
此时,扰频密钥管理装置434选择扰频密钥K1,而解密装置432利用扰频密钥K1进行解密。
此外,由数据“d3”进行重写,产生数据“{d3,d2}”。
[5]:总线扰频装置461把扰频密钥从K1改变成K2。扰频密钥K1和K2是计时器的值,在各个地址保存的值,或者由随机数生成或者其它技术产生的值。
[6]:加密装置431利用改变后的扰频密钥K2对重写的数据“{d3,d2}”加密,产生数据“e({d3,d2})”。
[7]:在外部存储器407的地址“f(a1)”写入数据“e({d3,d2})”。
[奇偶校验处理装置435的奇偶校验处理]
当把数据写入外部存储器407时,奇偶校验处理装置在加密之前事先计算数据的奇偶校验数据,并把该奇偶校验数据和加密数据一起写入外部存储器407。
由此,当在外部存储器407中产生某些种类的物理问题,数据被窜改等等时,在读出时检测这些情况,从而能够更安全地执行程序。
此外,由于添加了奇偶校验数据,即使明文的长度和加密文本的长度相同,CPU 466的地址空间和外部存储器407的地址空间也决不会完全相符。这是因为当和在f(a1)写入Nc部分相同的时间,在地址“a1”写入数据“d1”时,必须在外部存储器407中的某处写入数据“d1”的奇偶校验数据“p1”(大小Np)。以下述情况下,奇偶校验数据被保存在外部存储器407中的任意存储区。
奇偶校验数据被紧接着放在通过对相应明文加密获得的数据之后。这样,总线扰频装置461从外部存储器407的地址“fa(1)”读取数据“e(d1)”,随后从地址“f(a1)+Nc/Nb”读取奇偶校验数据“p1”。这样,除了地址的映射f之外,总线扰频装置461不必执行任何特殊计算。
另外,外部存储器407已在其中预先得到专用于奇偶校验数据的存储区。奇偶校验数据“p1”被写入该专用存储区中。这种情况下,总线扰频装置461必须根据奇偶校验地址映射fp进行处理。奇偶校验数据“p1”被写入外部存储器407中的地址“fp(a1)”。
当奇偶校验处理装置435检测到奇偶校验错误时,它暂停CPU466等的处理,以防止数据或者程序的非法处理。注意奇偶校验处理的内容不受特别限制。
[流水线处理控制线436的流水线处理]
本实施例中,在流水线处理控制器436的控制下,总线扰频装置461的处理被分成若干阶段,以阶段为单位形成流水线,从而能够缩短CPU 466观察到的相对于外部存储器407的访问时间。
即,当不形成流水线时,从CPU 466到外部存储器407的一次存储器访问至少需要处理一个加密块所需的时间。
例如,如果为根据CPU 466发出的地址“a1”的数据的读取指令,由总线扰频装置461执行的处理形成流水线,则当CPU 466依据程序代码等从地址“a1”开始连续请求更高地址的数据时,如果总线扰频装置461事先读取地址“f(a1)”之后的地址“f(a1+Nc/Nb)”的数据,则能够消除加密和解密处理的开销。
例如,如果考虑忽略存储器访问的时间的情况,则在如同三重DES之类的三循环(round)中执行各个数据的加密,一个加密循环需要一个时钟脉冲,并且Nc/Nb=1,CPU 466发出指定地址“a1”,“a1+1”和“a1+2”的指令,以便从外部存储器407连续读取数据。
此时,必需进行三轮解密,并且对每个数据解密需要三个时钟脉冲。
如果不执行流水线处理,如图79A中所示,CPU 466发出第一个读取指令之后的三个时钟脉冲,利用地址“a1”从外部存储器407读取的数据“e3(d1)”被解密三次,获得数据“d1”,所述数据“d1”随后被输入CPU 466。随后,在另外的三个时钟脉冲之后,利用地址“a1+1”从外部存储器407读取的数据“e3(d2)”被解密三次,获得随后被输入CPU 466的数据“d2”。之后,在另外的三个时钟脉冲之后,利用地址“a1+2”从外部存储器407读取的数据“e3(d3)”被解密三次,获得随后被输入CPU 466的数据“d3”。
即,在CPU 466发出第一个读取指令后的九个时钟脉冲时,数据“d1”、“d2”和“d3”被输入CPU 466。
与此相反,在本实施例中,通过把每个循环作为一个阶段,流水线处理控制器436把解密装置432的解密处理转换成如图79B中所示的三阶段流水线处理。
由此,另一方面,虽然从CPU 466首次发出读取指令开始,把对应于地址“a1”的数据输入CPU 466用了三个时钟脉冲,但是随后每个时钟脉冲把对应于地址“a1+1”和“a1+2”的数据连续输入CPU 466。
由此,在CPU 466首次发出读取指令之后五个时钟脉冲,所有的数据“d1”、“d2”和“d3”被输入CPU 466。
注意,当CPU 466请求“a1”之后远离地址“a1”的地址“a2”的数据时,流水线上的数据被丢弃,在流水线中包装地址“a2”、“a2+1”…的数据。
[地址管理装置433的地址扰频]
当SAM芯片408反复访问外部存储器407中的特定连续地址区时,在一定程度上能够预测该连续地址区是子例程或者数组。如果是数组或者其它数据,则通过集中攻击该连续地址区,攻击者易于获得有用(对操作方来说关键的)数据。
为了避免这种情况,本实施例中,CPU 466和SAM芯片408之间的地址总线通过总线扰频装置461,并使地址管理装置433对地址扰频,以便能够防止对外部存储器407中连续区域的访问。这种扰频对应于上面提及的映射f。如果不对地址扰频,则映射f变成只是为奇偶校验数据保证的区域的映射。例如,“α∈[CPU地址空间],f(a)=(1+p)a”。这里,p是奇偶校验数据的调整大小。
下面将说明图64中所示的通信系统401的整体操作。
图80说明了图64中所示的通信系统401的整体操作。
步骤ST431:
企业415_1-415_3或者这些企业所请求的一方在图64中所示的个人计算机416_1、416_2和416_3上产生用于由企业使用IC卡403执行的交易的处理的应用程序AP_1、AP_2和AP_3。
此外,SAM芯片408的管理人员产生AP管理数据421,对其扰频并保存在外部存储器407中。
步骤ST432:
应用程序AP_1、AP_2和AP_3通过验证装置417_1、417_2和417_3从个人计算机416_1、416_2和416_3被下载到SAM芯片408。
步骤ST433:
用户被发给IC卡403。
IC卡403的IC保存用于用户和企业达成的交易的密钥信息。
注意在发行IC卡403之后,用户和企业之间的合同还可通过因特网410等缔结。
步骤ST434:
例如,当用户通过因特网410使用个人计算机405访问服务器402,试图购买产品时,服务器402通过因特网410向ASP服务器406发出处理请求。
当ASP服务器406从服务器402接收处理请求时,它通过因特网410访问个人计算机405。此外,从读卡机/写卡机404发出的涉及IC卡403的处理请求通过个人计算机405、因特网410和ASP服务器406被传送给SAM芯片408。
步骤ST435:
SAM芯片408根据在步骤ST434接收的处理请求选择应用程序,并执行选择的应用程序。
在应用程序的执行过程中,SAM芯片408和外部存储器407根据上面提及的总线扰频装置461的处理进行通信。
步骤ST436:
SAM芯片408把应用程序的执行结果输出给ASP服务器406。
图81是更详细地表示图67中所示SAM芯片408的功能块的功能方框图。
如图81中所示,SAM芯片408通过内部总线490与卡I/F装置491、ASP通信接口装置460、总线扰频装置461、加密/解密装置465、存储器463和CPU 466相连。
图67中所示的签名处理装置462和验证处理装置463的部分功能由CPU 466实现。
如图82中所示,图81中所示的SAM芯片408可使与内部总线490相连的卡I/F装置491和位于SAM芯片408外的RF接收/发射装置492相连,并且通过RF接收/发射装置492的天线492a,借助非接触式系统相对于IC卡203传送数据。
如上所述,根据通信系统401,通过向SAM芯片408中的总线扰频装置461赋予上述功能,获得下述效果。
即,根据通信系统401,能够安全地把和使用IC卡403的处理相关的机密数据保存在外部存储器407中。
此外,根据通信系统401,通过使总线扰频装置461的处理形成流水线,SAM芯片408能够高速访问外部存储器407。
此外,根据通信系统401,通过向总线扰频装置461赋予奇偶校验功能,能够提高从外部存储器407读取的数据的可靠性。
第六实施例
本实施例是对应于本发明第19方面的实施例。
[本实施例的相关技术]
首先说明执行本发明相关技术的使用IC卡的交易商业程序的计算机。
图83是供本发明相关技术的电子结算之用的计算机501的功能方框图。
如图83中所示,计算机501具有CPU 502、存储器503和通信电路504。
CPU 502、存储器503和通信电路504与CPU数据总线506相连。
CPU 502和通信电路504与CPU地址总线507相连。
CPU 502全面控制计算机501的操作,根据保存在存储器503中的程序的指令工作,并且在其工作过程中访问存储器503。
通信电路504通过接触式系统或者非接触式系统与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中所示的CPU 502的硬件组件。
硬件层上是通信驱动程序层。通信驱动程序层中安置有控制与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的函数由“getcard 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的内部存储器读取数据的函数。
这里,“*rp”在概念上类似于C语言中的指针,“*”表示后面的变量是指针变量,“rp”表示IC卡508的内部存储器中的具体位置。当显示“*rp”时,这表示IC卡508的存储器中“rp地址”的内容。现在假定内部存储器如图86中所示保存数据。
此外,如果假定“rp=102H”,则函数“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中不允许访问的存储区被非法访问。
[本发明的实施例]
图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与之相连。
当CPU 552访问存储器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根据保存在存储器553中的程序进行处理。此外,通过CPU 552的处理获得的数据通过通信电路504被传送给IC卡508。
此外,CPU 552把通过与IC卡508通信而产生的结算结果写入存储器553中。
开关电路561根据来自判断电路560的判断结果信号S560(本发明的控制信号),在连接状态和断开状态之间切换CPU数据总线506和存储器数据总线562。
此外,CPU 552执行从存储器553取出(读出)的图84中所示的OS层的程序,程序MAIN和应用程序AP1、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中所示判断电路的结构视图。
如图90中所示,判断电路560具有选择电路570、取出判断电路571、读取判断电路572和写入判断电路573。
选择电路570根据图89中所示从CPU 552输入的指令类型说明信号S552a,使开关574和端子575_1、575_2及575_3中的一个端子相连。
具体地说,当指令类型说明信号S552a指示取出指令时,选择电路570使开关574b和端子575_1相连。
由此,从取出判断电路571输出的取出判断结果信号S571通过端子575_1和开关574以判断结果信号S560的形式从判断电路560输出给开关电路561。
此外,当指令类型说明信号S552a指示读取指令时,选择电路570使开关574和端子5752相连。
由此,从读取判断电路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的各种情况,限定当CPU 552执行取出指令时,存储器553中可访问的地址。
图92说明了取出范围限定数据584_1。
图92中的列(垂直)方向表示OS层的程序和图84中所示的应用程序MAIN、AP1、AP2及AP3。
行(水平)方向中的“FROM”表示存储器553中允许存储对应列的程序的存储区的起始地址。
行方向中的“FROM”表示存储器553中允许访问对应列的程序的地址范围的起始地址。
行方向中的“TO”表示存储器553中允许访问对应列的程序的地址范围的结束地址。
例如,允许应用程序AP1访问存储器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”表示不许可调用。
例如,允许应用程序AP1的程序模块调用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产生说明连接的取出判断结果信号S57_1,并且把该信号输出给图90中所示的选择电路570的端子575_1。
另一方面,当判断该地址不包含在所述地址范围中时,判断装置582_1产生说明断开的取出判断结果信号S57_1,并且把该信号输出给图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产生指示连接的取出判断结果信号S57_1,并且把该信号输出给图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,判断地址CPU_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,并且把该信号输出给图90中所示选择电路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在执行应用程序AP1的程序模块的过程中执行取出指令,并且指定地址存储器553的地址“2100H”时的操作例子。
这种情况下,指示“2100H”的CPU_ADR在CPU地址总线507上流动,指示取出指令的指令类型说明信号S552a和指示AP1的执行AP说明信号S552b从CPU_552被输出给判断电路560。
此外,图91中所示的判断装置5821根据从CPU 552输入的执行AP说明信号S552b和地址CPU_ADR,以及从存储器581读取的图92中所示的取出范围限定数据5841,判断地址“2100H”是否包含由在图92中对应于AP1的列的“FROM”和“TO”限定的存储器553的地址范围“2000H”-“2FFFH”中。
此外,判断装置582_1产生说明连接的取出判断结果信号S571,并将其输出给图90中所示的选择电路的端子575_1。
此外,由于指令类型说明信号S552a指示取出,因此选择电路570使开关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的程序模块调用应用程序AP1的程序情况下的操作例子。
这种情况下,显示AP2的执行AP说明信号S552b和显示AP1的被调用AP说明信号S552c从CPU 552被输出给读取判断电路572。
读取判断电路572的判断装置582_2查看图96中所示的读取AP间调用关系限定数据585_2,并且判断是否允许从AP2调用AP1。
此外,判断装置582_2产生说明连接的读取判断结果信号S572,并且将其输出给图90中所示的选择电路570的端子575_2。
此外,由于指令类型说明信号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设置成断开状态,以防止CPU 552访问存储器553。
如上所述,根据CPU 552执行的程序,判断电路560和开关电路561根据事先按照各个程序确定的数据,确定存储器553和CPU数据总线506之间的连接状态。
于是,可防止正被CPU 552执行的应用程序非法访问保存在存储器553中的另一应用程序的指令和数据,并且即使当CPU 552正在执行若干应用程序时,也可在各个应用程序之间获得高的安全性。
本发明并不局限于上述实施例。
例如,在上面说明的实施例中,举例说明了判断电路560保存取出范围限定数据584_1、取出AP间调用关系限定数据585_1、读取范围限定数据5842、读取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读取并执行解密程序。
此外,在上面说明的实施例中,表示了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层上是确定由半导体芯片63实现的特定功能(服务)的AP层。AP层具有由图102中所示的程序模块PM_1、PM_2和PM_3实现的应用程序AP1、AP2和AP3。
内部存储器632保存图103中所示应用程序AP1的程序模块PM_1。
图104说明了程序模块PM_1的结构。
如图104中所示,程序模块PM_1由若干功能模块组成。图104表示了程序模块PM_1由n个功能模块FM_1-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的操作,或者不可能从CPU637采集CPU内部状态信息。于是,不能从存在于外部存储器660中的程序模块PM_2和PM_3或者调试器661访问图104中所示的功能模块FM_1-FM_n。
此外,在CPU 637正在执行图104中所示的程序模块PM_1的时候,当程序模块PM_1中的功能模块被执行包含在另一功能模块中的分支指令的CPU 637调用时,当首次取出除位于调用目的地的功能模块头部的指令之外的指令时,判断电路635把指示断开的判断结果信号S635a输出给开关电路633。此外,这种情况下,判断电路635暂停CPU 637的操作或者执行预定的错误处理。
当来自判断电路635的判断结果信号S635c指示无效/断开时,选择电路636使从调试器661输入的HALT信号S661a(本发明第一方面的操作暂停请求)无效,并且不将其输出给CPU 637。这里,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时,CPU637停止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的操作例子。
[第一操作例]
例如,考虑调试器661把HALT信号S661a、CPU内部状态读取请求信号S661b和CPU内部状态重写请求信号S661c之一输出给选择电路636的情况。
这种情况下,当CPU 637通过CPU数据总线640和开关电路633访问内部存储器632时,即当开关电路633处于连接状态时,由于来自于判断电路635的判断结果信号S635c的缘故,选择电路636变成无效/断开状态,选择电路636不把HALT信号S661a、CPU内部状态读取请求信号S661b和CPU内部状态重写请求信号S661c输出给CPU 637。
于是,调试器661不能访问CPU 637,也不能访问内部存储器632。
另一方面,当CPU 637不访问内部存储器632时,即当开关电路633处于断开状态时,由于来自于判断电路635的判断结果信号S635c的缘故,选择电路636变成有效/连接状态,选择电路636把HALT信号S661a、CPU内部状态读取请求信号S661b和CPU内部状态重写请求信号S661c输出给CPU 637。
于是,调试器661能够监视并调整CPU 637的操作但是由于开关电路633处于断开状态,因此不能访问内部存储器632。
[第二操作例]
例如,考虑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_1-FM_n组成的情况。
如图106中所示,功能模块FM_1-FM_n的头部设置有指示ID号的ID号指示信息。ID号指示指令不被加密。
这里,ID号是识别对应功能模块的信息。如后所述,当加密/解密电路6134对功能模块解密时,ID号被用于确定用于该解密的密钥信息。
此外,在功能模块FM_1-FM_n的末端设置指示ID号为“#0“的指令(指示后面的指令不使用密钥,即不被加密的指令)。
如图107中所示,以预定数据长度的数据块为单位对功能模块加密。数据块1-n具有添加于其中的奇偶校验数据1-n。
例如,如图107中所示,加密/解密电路6134以预定数据块为单位,对将被写入外部存储器6160中的程序模块PM_1的图106中所示的功能模块加密。
此时,加密/解密电路6134利用任意密钥信息对各个功能块加密,并且如同利用图106说明的那样,在每个功能块的头部设置指定用于识别功能模块的ID号的末加密(明文)ID号指示指令(信息)。
此外,加密/解密电路6134产生并保持图108中所示的密钥信息表6190,所述密钥信息表6190表示为功能块指定的ID号(本发明第二方面的密钥指定信息)和用于对链接在一起的功能模块加密的密钥信息。
此外,当加密/解密电路6134对数据块加密时,如图107中所示,它产生数据块的奇偶校验数据,并且把和对应数据块链接的奇偶校验数据保存在外部存储器6160中。此时,加密/解密电路6134产生奇偶校验数据,以致数据块和奇偶校验数据的总和变成预定值。
此外,加密/解密电路6134通过把由位于功能模块头部的ID号指定指令指定的ID号用作密钥,查看图108中所示的密钥信息表6190,获得关于从外部存储器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从CPU6137输入的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控制CPU6137的操作,利用内部状态读取请求信号S6161b和内部状态信号S6137d监视CPU 6137的操作,并且利用CPU内部状态重写请求信号S6161c定制CPU 6137。
下面说明图105中所示半导体芯片的操作例子。
[第一操作例]
本操作例子中,将说明CPU 6137把程序模块PM_1的数据写入外部存储器6160的情况。
CPU 6137通过CPU数据总线6140把写入数据输出给加密/解密电路6134。
此外,如前所述,通过以数据块为单位,利用对应于功能模块的密钥信息,加密/解密电路6134对写入数据加密,并且通过外部数据总线6144把加密后的写入数据写入外部存储器6160中。
此外,和用于加密的密钥信息相关的信息被添加到图108中所示的密钥信息表6190中。
此时,判断电路6135把显示无效/断开的判断结果信号S6135输出给选择电路6136,而从选择电路6136发出的HALT信号S6161a,CPU内部状态读取请求信号S6161b和CPU内部状态重写请求信号S6161c不被输出给CPU 6137。
此外,由于不在外部数据总线6144上对写入数据加密,因此即使外部数据总线6144受到非法探测,也不会失去程序模块PM_1的机密性。
[第二操作例]
本操作例子中,说明CPU 6137从外部存储器6160读取程序模块PM_1的指令或数据的情况。
由于CPU 6137发出的读取指令的缘故,从外部存储器6160的指定地址读取程序模块PM_1的指令或数据,并且通过外部数据总线6144将其输出给加密/解密电路6134。
此外,加密/解密电路6134根据由设置在各个功能模块的头部的ID号指定指令所示的ID号,查看图108中所示的密钥信息表6190,获得对应于该ID号的密钥信息。
此外,加密/解密电路6134以数据块为单位,利用密钥信息对从外部存储器6160读取的指令或数据解密,随后进行奇偶校验处理。
经过奇偶校验处理后的数据或指令通过CPU数据总线6140被输出给CPU 6137。
这时,判断电路6135把指示无效/断开的判断结果信号S6135输出给选择电路6136,而从选择电路6136发出的HALT信号S6161a、CPU内部状态读取请求信号S6161b和CPU内部状态重写请求信号S6161c不输出给CPU 6137。
由于不在外部数据总线6144上对写入数据加密,因此即使外部数据总线6144受到非法探测,也不会失去程序模块PM_1的机密性。
如上所述,根据半导体芯片6131,即使当把机密程序模块PM_1保存在位于半导体芯片6131之外的外部存储器6160中时,也可保持程序模块PM_1的机密性。
即,当CPU 6137访问保存在外部存储器6160中的机密程序模块PM_1时,选择电路6136禁止调试器6161与CPU 6137通信,因此能够防止正被CPU 6137执行的程序模块PM_1的处理受到调试器6161的非法监视。
此外,由于在对从外部存储器6160读取的数据和指令解密之后进行奇偶校验处理,因此当不适宜的密钥信息被用于解密或者当所述数据和指令受到破坏或者被窜改时,通过奇偶校验处理可检测所述破坏或者窜改,并且恰当地进行应付。
本发明并不局限于上述实施例。
例如,在上述实施例中,举例说明了图108中所示的密钥信息表6190,即密钥信息保存在判断电路6135中的情况,但是也可对密钥信息表6190加密,并将其保存在外部存储器6160中。
第九实施例
本实施例是对应于本发明第22-24方面的实施例。
下面将参考附图说明本发明的该实施例。
图109是本实施例的通信系统701的整体结构的视图。
如图109所示,通信系统701使用服务器702,IC卡703,读卡机/写卡机704,个人计算机705,ASP(应用服务提供者)服务器719,和SAM(保密应用模块)装置709通过因特网通信,并且执行使用IC卡703(本发明的集成电路)的过程的结算处理或者其它处理。
SAM装置709(本发明的数据处理设备)具有外部存储器707(本发明的存储电路)和SAM芯片708(本发明的半导体电路)。
如果需要,SAM芯片708和另一SAM芯片708a(本发明的另一半导体电路)传送数据。如图110中所示,SAM芯片708a不同于SAM芯片708与另一ASP服务器719a相连,或者如图111中所示,和SAM芯片708一样与相同的SAP服务器719相连。
SAM芯片708a的结构基本上和SAM芯片708相同。
下面说明图109中所示的组件。
[IC卡703]
图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的用户的身份识别信息。
下面详细说明SAM装置709。
如前所述,SAM装置709具有外部存储器707(本发明的存储电路)和SAM芯片708(本发明的半导体电路)。
[SAM芯片708的软件配置]
SAM芯片708具有如图114中所示的软件配置。
如图114中所示,从底层到顶层,SAM芯片708具有HW(硬件层)、OS层、低级处理程序层、高级处理程序层和AP层。
低级处理程序层包括驱动程序层。
这里,在AP层中,从外部存储器707读取并运行定义信用卡公司或者其它企业715_1、715_2和715_3使用IC卡703的过程的应用程序AP_1、AP_2和AP_3(本发明的应用程序)。
在AP层中,应用程序AP_1、AP_2和AP_3与高级处理程序层之间设置防火墙FW。
[外部存储器707]
图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由后面说明的若干应用单元数据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)组成。
这里,识别数据APE_ID由表示应用单元数据APE的类型的数据APE_TYPE和表示该类型内的应用单元数据APE的识别号(实例识别号)的数据INS_NUM组成。数据IND_NUM由最终用户(服务企业)一方管理。
例如,当应用单元数据APE是文件系统配置时,数据APE_TYP变成“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。
○卡访问密钥数据
卡访问密钥数据是用于相对于IC卡703的存储器750的读取或写入操作的密钥数据。此外,将被后面说明的IC卡操作宏命令脚本程序查看的密钥数据也以卡访问密钥数据的形式包含在相同类型的应用单元数据APE中。
○文件系统配置数据
文件系统配置数据包括运行记录数据。负(negative)数据和种类(genre)数据。
运行记录数据是应用单元数据APE的使用历史的数据,负数据是IC卡的期满信息,种类数据是在SAM的执行记录。
例如,文件系统配置选择文件访问的类型(记录密钥标志分类环),并且如果是记录密钥,则设置记录大小、整体记录的数目、记录签名版本、记录签名方法类型、记录数据大小、和记录签名密钥。此外,当从外部把数据写入文件系统中时,它指示是否执行签名验证等。这里,“记录”是文件数据的写入/读取的最小单位。
○SAM相互验证密钥数据
这也用于相同SAM中AP之间的相互验证。
SAM相互验证密钥数据是当从相同SAM或者另一SAM中的另一AP访问对应的应用单元数据APE时使用的密钥数据。
○SAM间密钥包密钥
SAM间密钥包密钥是在SAM间相互验证之后,当交换卡访问密钥数据或者其它数据时使用的加密密钥数据。
○IC卡操作宏命令脚本程序
IC卡操作宏命令脚本程序由服务企业自身产生,并且描述涉及IC卡703的处理,或者与ASP服务器719的交易的顺序。IC卡操作宏命令脚本程序设置在SAM装置709中,随后由SAM芯片708分析,从而产生对应的IC卡实体数据。
○存储器划分密钥包
存储器划分密钥包是在服务企业开始利用IC卡703进行服务之前,用于划分外部存储器707或者IC卡703的存储器的存储区的数据。
○区域记录密钥包
区域记录密钥包是在服务企业开始利用IC卡703进行服务之前,当在IC卡703的存储器的存储区中进行区域记录时使用的数据。
○区域删除密钥包(内部产生)
区域删除密钥包是可根据卡访问密钥数据在SAM中自动产生的密钥包。
○服务记录密钥(内部产生)
服务记录密钥包用于在服务企业开始利用IC卡703进行服务之前记录外部存储器707的应用单元数据APE。
服务记录密钥包是可根据卡访问密钥数据在SAM中自动产生的密钥包。
○服务删除密钥包(内部产生)
服务删除密钥包用于删除在外部存储器707中记录的应用单元数据APE。
服务删除密钥包是可根据卡访问密钥数据在SAM中自动产生的密钥包。
○密钥数据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_x1、输出数据块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读取的数据保存在数据块1中时,描述“SO:1”。
SI命令是说明当根据后述IC卡实体数据利用IC卡703进行处理时,在SMA芯片708中提供的数据块中,构成保存将被写入IC卡703的数据的输入数据块731_x1的数据块的命令。
例如,当提供数据块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之间的关系的定义。
计算定义数据块734_x4的内容变成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:1=“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”-10;“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是分配给由服务企业7151、715_2和715_3的应用程序提供的服务(应用单元数据APE)的名称。名称APE_N是被查看的标识符,而不是各个服务企业的应用程序能够使用的服务的服务名称。
这里,识别数据APE_ID是应用单元数据APE的识别数据。
外部/内部指示数据IEI是用于区分APE是以实体的形式存在(内部指定)还是由另一SAM提及(外部指定)的标志。
识别数据SAM_ID是当SAM芯片708正在执行涉及该应用单元数据APE的处理时,位于传送数据的另一方的SAM的识别数据。
图122说明了SAMI_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相互验证密钥为“TT1…,TTn”。此外确定在下一次使用之前,另一SAM是否能够持有“服务C”的密钥数据。当能够时,当另一SAM接着使用该卡上的“服务C”时,不必再次从SAM获得卡访问密钥。服务B的访问密钥不从该SAM获得,而是从具有SAM_ID“43.17.19.XX”的SAM获得。“SS1…SSn”被用作SAM之间的相互验证密钥。
在下一次使用之前是否可持有“服务B”的访问密钥由该SAM指定的标志确定。
“服务B运行记录”指示其中保存运行记录数据的文件,“43.13.137.XX”的SAM_ID被分配给该运行记录。“服务B运行记录”是和“服务B”相同的SAM网络掩码,因此相互验证密钥使用“SS1…SSn”。这里,为各个相互验证密钥提供APP表数据。本例中,在其它SAM的APP表数据7310中确定访问“服务B运行记录”和“服务B”的许可,所述其它SAM上的AP管理表数据查看所述访问许可。
图123说明了APP表数据7310_1。
APP表数据7310_2、7310_3和7310的格式与APP表数据7310_1相同。
如图123中所示,APP表数据7310_1表示每个应用单元数据APE的识别数据APE_ID以及是否可从另一应用程序(另一应用单元数据APE)读取、写入或执行该应用单元数据APE。
例如,图123中所示的APP表数据7310_1表示对于“服务B运行记录”读取是可能的,写入是可能的。执行(删除)是不可能的。
此外,当图115中所示的外部存储器7077的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。
图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保存CPU 766使用的任务、程序和数据。
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_x1、输出数据块732_x2、日志数据块733_x3、和计算定义数据块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_1-7300_3由脚本下载任务769从外部存储器707输入并保存到存储器765中。
APP表数据7310_1-7310_3由脚本下载任务769从外部存储器707输入,并被保存到存储器765中。
IC卡实体模板数据7301-7303由脚本解释任务770产生,并且当产生与服务企业有关的过程的IC卡实体数据773_x时,被用作模板(类别)。
通过把IC卡实体模板数据730_1-730_3用作类别,实体产生任务771以类别的一个实例的形式产生IC卡实体数据773_x。
输入数据块731_x1、输出数据块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的处理的状态(A1),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为其确定执行顺序的处理单元。
注意A1和A2构成IC卡703和SAM芯片708之间的相互验证处理。
此外,本实施例中,考虑到因特网710上的通信时间,如图127的状态变换图中所示,上面提及的基本状态被分成启动后(在发出命令之后)状态和完成(在接收响应之后)状态。
具体地说,使用IC卡实体数据773_x的处理的状态由实例产生(IC卡实体数据产生)状态、RS启动后状态、RS完成状态、A1启动后状态、A1完成状态、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、A1、A2、R和W。关于IC卡703的具体操作由利用作业指定的处理顺序实现。例如,对于在只存在读取而不进行相互验证的情况下使用IC卡703的处理来说,处理顺序信息785被设置成“RS→R”。此外,就进行相互验证的读取和写入来说,处理顺序信息785被设置成“RS→A1→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_x1,输出数据块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的预定存储区的权限。
步骤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-731_03判断要使用(访问)的应用单元数据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_1-7300_3,获得对应于该应用单元数据APE的密钥数据K_CADR,并且使用该密钥数据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中所示作业A1的处理。
步骤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的数据输入输出以及日志数据。

Claims (19)

1、一种根据多个处理请求,由半导体电路执行的数据处理方法,
所述数据处理方法包括下述步骤:
从具有存储器的集成电路或者相对于所述集成电路输入输出数据的通信设备接收所述多个处理请求,所述存储器保存将用于借助所述半导体电路执行的过程的处理的数据,
轮询所述集成电路,
为所述多个处理请求中的每个处理请求产生作业管理数据,所述作业管理数据包括作业执行顺序数据和状态数据,所述作业执行顺序数据表示根据处理请求形成处理的多个作业的执行顺序,所述状态数据表示所述多个作业的执行进程的状态,
从产生的所述多个作业管理数据中选择一个作业管理数据,
根据选择的所述作业管理数据的所述状态数据和所述处理顺序数据选择下一步要执行的作业,
执行选择的所述作业,和
根据该作业的执行,更新选择的所述作业管理数据的所述状态数据,所述状态数据区分向所述集成电路发出和所述作业的执行有关的指令之前的状态和发出指令之后的状态。
2、按照权利要求1所述的数据处理方法,还包括在更新选择的所述作业管理数据的所述状态数据之后,从所述多个作业管理数据选择一个作业管理数据的步骤。
3、按照权利要求1所述的数据处理方法,还包括当根据所述处理请求形成处理的所有作业完成执行时,删除所述作业管理数据的步骤。
4、按照权利要求1所述的数据处理方法,还包括向所述集成电路发出和所述作业的执行有关的指令,随后选择并执行利用另一集成电路的过程的处理的作业的步骤。
5、按照权利要求1所述的数据处理方法,还包括当选择的所述作业管理数据的所述状态数据指示发出指令之后的所述状态时,接收对应于所述发出指令的处理结果,并将其写入选择的所述作业管理数据的步骤。
6、按照权利要求1所述的数据处理方法,还包括下述步骤:
当接收处理请求时,起动作业管理数据产生任务并且产生所述作业管理数据;和
当产生所述作业管理数据时,起动作业管理数据管理任务,并选择所述作业,执行所述作业和更新所述状态数据。
7、按照权利要求1所述的数据处理方法,还包括下述步骤:
执行对应于提供利用所述集成电路执行的过程的多个过程提供者的多个应用程序,
根据处理请求,指定对应于该处理请求的过程提供者,和
产生用于执行对应于指定的所述过程提供者的应用程序的所述作业管理数据。
8、按照权利要求1所述的数据处理方法,还包括向所述作业管理数据赋予标识符,并且利用所述标识符管理多个作业管理数据的步骤。
9、按照权利要求1所述的数据处理方法,其中所述集成电路安装在卡上。
10、一种根据多个处理请求处理数据的半导体电路,
所述半导体电路包括:
从具有存储器的集成电路或者相对于所述集成电路输入输出数据的通信设备接收所述多个处理请求的接口,所述存储器保存将用于借助所述半导体电路执行的过程的处理的数据
保存作业管理数据的存储电路,所述作业管理数据包括作业执行顺序数据和状态数据,所述作业执行顺序数据表示根据处理请求形成处理的多个作业的执行顺序,所述状态数据表示所述多个作业的执行进程的状态,和
一个控制电路,用于轮询所述集成电路,为输入的多个处理请求中的每个处理请求产生所述作业管理数据并将其保存在所述存储电路中,从产生的所述多个作业管理数据中选择一个作业管理数据,根据选择的所述作业管理数据的所述状态数据和所述处理顺序数据选择并执行下一步要执行的作业,并且根据该作业的执行,更新选择的所述作业管理数据的所述状态数据,所述状态数据被表示成区分向所述集成电路发出和所述作业的执行有关的指令之前的状态和发出指令之后的状态。
11、按照权利要求10所述的半导体电路,其中所述控制电路在更新选择的所述作业管理数据的所述状态数据之后,从所述多个作业管理数据中选择一个作业管理数据。
12、按照权利要求10所述的半导体电路,其中所述控制电路在根据所述处理请求形成处理的所有作业完成执行时,删除所述作业管理数据。
13、按照权利要求10所述的半导体电路,其中所述控制电路向所述集成电路发出和所述作业的执行有关的指令,随后选择并执行利用另一集成电路的过程的处理的作业。
14、按照权利要求10所述的半导体电路,其中所述控制电路在选择的所述作业管理数据的所述状态数据指示发出指令之后的所述状态时,接收对应于所述发出指令的处理结果,并将其写入选择的所述作业管理数据。
15、按照权利要求10所述的半导体电路,其中所述控制电路:
当接收处理请求时,起动作业管理数据产生任务并且产生所述作业管理数据;和
当产生所述作业管理数据时,起动作业管理数据管理任务,并选择所述作业,执行所述作业和更新所述状态数据。
16、按照权利要求10所述的半导体电路,其中所述控制电路:
执行对应于提供利用所述集成电路执行的过程的多个过程提供者的多个应用程序,
根据处理请求,指定对应于该处理请求的过程提供者,和
产生用于执行对应于指定的所述过程提供者的应用程序的所述作业管理数据。
17、按照权利要求10所述的半导体电路,其中所述控制电路向所述作业管理数据赋予标识符,并且利用所述标识符管理多个作业管理数据。
18、按照权利要求10所述的半导体电路,其中所述集成电路安装在卡上。
19、按照权利要求10所述的半导体电路,它是防窜改的半导体电路。
CN02801052.3A 2001-02-16 2002-02-15 数据处理方法及其设备 Expired - Lifetime CN1261870C (zh)

Applications Claiming Priority (27)

Application Number Priority Date Filing Date Title
JP39969/01 2001-02-16
JP39969/2001 2001-02-16
JP40415/2001 2001-02-16
JP40415/01 2001-02-16
JP2001040705A JP2002244868A (ja) 2001-02-16 2001-02-16 データ処理方法、半導体回路およびプログラム
JP40414/01 2001-02-16
JP2001040414A JP4670158B2 (ja) 2001-02-16 2001-02-16 データ処理方法および半導体回路
JP40705/01 2001-02-16
JP2001040415A JP4765174B2 (ja) 2001-02-16 2001-02-16 アプリケーション実行装置、通信システム、およびアプリケーション実行方法
JP40414/2001 2001-02-16
JP2001039969A JP2002244755A (ja) 2001-02-16 2001-02-16 データ処理方法、半導体回路およびプログラム
JP40705/2001 2001-02-16
JP2001042446A JP2002244925A (ja) 2001-02-19 2001-02-19 半導体回路およびデータ処理方法
JP2001042396A JP2002244756A (ja) 2001-02-19 2001-02-19 データ処理方法、半導体回路および認証用装置
JP2001042445A JP2002244757A (ja) 2001-02-19 2001-02-19 半導体回路
JP42446/2001 2001-02-19
JP42396/2001 2001-02-19
JP2001042397A JP4617581B2 (ja) 2001-02-19 2001-02-19 データ処理装置
JP42397/2001 2001-02-19
JP42397/01 2001-02-19
JP42446/01 2001-02-19
JP42445/01 2001-02-19
JP42396/01 2001-02-19
JP42445/2001 2001-02-19
JP2001262288A JP4207409B2 (ja) 2001-08-30 2001-08-30 データ処理装置およびその方法
JP262288/2001 2001-08-30
JP262288/01 2001-08-30

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN200910004389.6A Division CN101526982B (zh) 2001-02-16 2002-02-15 数据处理方法及其设备
CN200610077336.3A Division CN100481103C (zh) 2001-02-16 2002-02-15 数据处理方法及其设备

Publications (2)

Publication Number Publication Date
CN1465008A CN1465008A (zh) 2003-12-31
CN1261870C true CN1261870C (zh) 2006-06-28

Family

ID=27577800

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200910004389.6A Expired - Lifetime CN101526982B (zh) 2001-02-16 2002-02-15 数据处理方法及其设备
CN02801052.3A Expired - Lifetime CN1261870C (zh) 2001-02-16 2002-02-15 数据处理方法及其设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200910004389.6A Expired - Lifetime CN101526982B (zh) 2001-02-16 2002-02-15 数据处理方法及其设备

Country Status (6)

Country Link
US (2) US7240345B2 (zh)
EP (1) EP1361511A4 (zh)
CN (2) CN101526982B (zh)
HK (2) HK1062722A1 (zh)
SG (7) SG143064A1 (zh)
WO (1) WO2002065287A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003100682A1 (en) 2002-05-29 2003-12-04 Sony Corporation Information processing system
WO2004006165A1 (en) 2002-07-09 2004-01-15 Bnc Ip Switzerland Gmbh System and method for providing secure identification solutions
US7299315B2 (en) * 2003-04-02 2007-11-20 Nisca Corporation Control device including connecting device for rewriting memory region
US8996874B2 (en) * 2003-04-03 2015-03-31 Stmicroelectronics Sa Protection of a program waiting to be executed in a memory used by a microprocessor
US7533276B2 (en) 2003-08-26 2009-05-12 Panasonic Corporation Program execution device
US20050108170A1 (en) * 2003-11-17 2005-05-19 Hailpern Brent T. Secured method and apparatus for selling and distributing software and related services
US20050223378A1 (en) * 2004-03-31 2005-10-06 Mehmet Musa Method and apparatus for enhancing computer application performance
JP4409349B2 (ja) * 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
JP4567391B2 (ja) * 2004-07-26 2010-10-20 パナソニック株式会社 モジュール間通信装置および方法
US7822994B2 (en) * 2005-01-07 2010-10-26 Konica Minolta Systems Laboratory, Inc. Data bus line and bus having an encryption/decryption device
JP4704045B2 (ja) * 2005-01-12 2011-06-15 株式会社エヌ・ティ・ティ・ドコモ 通信装置、デジタル署名検証方法およびデジタル署名生成方法
US8364792B2 (en) * 2005-03-09 2013-01-29 Vudu, Inc. Method and system for distributing restricted media to consumers
JP4818651B2 (ja) * 2005-07-13 2011-11-16 ルネサスエレクトロニクス株式会社 暗号化・復号化回路
US20070135956A1 (en) * 2005-12-13 2007-06-14 Taiwan Semiconductor Manufacturing Co., Ltd. Data location systems and methods
US7900060B2 (en) * 2006-02-17 2011-03-01 Vudu, Inc. Method and system for securing a disk key
US8239686B1 (en) 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
US8560863B2 (en) 2006-06-27 2013-10-15 Intel Corporation Systems and techniques for datapath security in a system-on-a-chip device
JP2008059304A (ja) * 2006-08-31 2008-03-13 Sony Corp 通信装置および方法、並びにプログラム
US20080141334A1 (en) * 2006-12-12 2008-06-12 Wicker James M Method and Apparatus for Dissociating Binding Information from Objects to Enable Proper Rights Management
US8065741B1 (en) 2007-04-24 2011-11-22 Adobe Systems Incorporated Method and apparatus for locally caching digital rights information
GB2450505A (en) * 2007-06-26 2008-12-31 Symbian Software Ltd Authorised debugging
US20090067625A1 (en) * 2007-09-07 2009-03-12 Aceurity, Inc. Method for protection of digital rights at points of vulnerability in real time
US20100058276A1 (en) * 2007-09-11 2010-03-04 Andreas Felder Method for the integration of an integrated circuit into a standardized software architecture for embedded systems
US20090080665A1 (en) * 2007-09-25 2009-03-26 Aceurity, Inc. Method of Generating Secure Codes for a Randomized Scrambling Scheme for the Protection of Unprotected Transient Information
US20090249346A1 (en) * 2008-03-27 2009-10-01 Toru Harada Image forming apparatus, information processing apparatus and information processing method
CN102081524A (zh) * 2009-11-27 2011-06-01 英业达股份有限公司 电子装置及其控制方法
US8412954B2 (en) * 2010-05-19 2013-04-02 Innostor Technology Corporation Data encryption device for storage medium
KR101279213B1 (ko) 2010-07-21 2013-06-26 삼성에스디에스 주식회사 시스템 온 칩 기반의 안티-멀웨어 서비스를 제공할 수 있는 디바이스 및 그 방법과 인터페이스 방법
EP2434725A1 (en) 2010-09-27 2012-03-28 Research In Motion Limited Method, apparatus and system for managing communications between a computing device and a client machine
CA2735515C (en) * 2010-09-27 2015-05-19 Research In Motion Limited Method, apparatus and system for controlling transmission of an attachment to an email using a plurality of computers
US8566937B2 (en) 2010-10-04 2013-10-22 Panasonic Corporation Information processing apparatus and method for preventing unauthorized cooperation of applications
DE112010005842T8 (de) 2010-10-05 2014-07-17 Hewlett-Packard Development Company, L.P. Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern in einer Speichervorrichtung
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法
EP2689367B1 (en) * 2011-03-21 2019-06-19 Sony Ericsson Mobile Communications AB Data protection using distributed security key
CN103009816B (zh) * 2011-09-20 2015-08-19 珠海天威技术开发有限公司 耗材芯片及对其重写的重写器、重写方法
CN103188306B (zh) * 2011-12-30 2016-04-27 中国移动通信集团公司 分布式预处理方法和系统
US9445262B2 (en) * 2012-12-10 2016-09-13 Lg Uplus Corp. Authentication server, mobile terminal and method for issuing radio frequency card key using authentication server and mobile terminal
JP6176020B2 (ja) 2013-09-17 2017-08-09 株式会社リコー 機器、情報処理システム、情報処理方法、情報処理プログラム、および情報処理プログラムが記憶された記憶媒体
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
CN105426493B (zh) * 2015-11-24 2019-11-19 北京中电普华信息技术有限公司 一种应用于分布式存储系统的数据处理系统及方法
CN108256346B (zh) * 2016-12-28 2020-12-01 中移(杭州)信息技术有限公司 关键数据的保护方法、加密保护装置及嵌入式系统装置
CN106982210B (zh) * 2017-03-28 2021-01-15 联想(北京)有限公司 一种数据下载方法和电子设备
CN109032704B (zh) * 2017-06-12 2022-08-09 深圳市中兴微电子技术有限公司 一种数据处理的方法和设备
US11550927B2 (en) * 2017-09-26 2023-01-10 C-Sky Microsystems Co., Ltd. Storage data encryption/decryption apparatus and method
CN108491702A (zh) * 2018-04-02 2018-09-04 深圳春沐源控股有限公司 数据采集方法及装置、电子设备及计算机可读存储介质
IT201800006911A1 (it) * 2018-07-04 2020-01-04 Metodo di codifica e decodifica di informazioni digitali
CN109968359A (zh) * 2019-03-28 2019-07-05 台州九牛慧联机器人技术有限公司 一种工业机器人控制系统
CN110442439B (zh) * 2019-08-05 2022-04-01 北京百佑科技有限公司 任务进程处理方法、装置和计算机设备

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5144400Y2 (zh) 1971-03-23 1976-10-27
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
JPS5715499U (zh) * 1980-06-27 1982-01-26
JPS5715499A (en) 1980-07-02 1982-01-26 Hitachi Ltd High density multilayer printed board and method of producing same
JPH06103478B2 (ja) 1986-04-07 1994-12-14 松下電器産業株式会社 マイクロコンピユ−タ
JPS63208145A (ja) 1987-02-25 1988-08-29 Hitachi Ltd Icカ−ド
JPS6449443A (en) * 1987-08-20 1989-02-23 Koji Ohashi Receiver for radio communication equipment
JPS6463580A (en) * 1987-09-02 1989-03-09 Hokko Chem Ind Co Benzimidazole derivative and agricultural and horticultural germicide
JP2723231B2 (ja) * 1987-09-10 1998-03-09 亮一 森 ソフトウェア権利管理制御方法
US5134700A (en) 1987-09-18 1992-07-28 General Instrument Corporation Microcomputer with internal ram security during external program mode
JPS6478919A (en) * 1987-09-18 1989-03-24 Nifco Inc Flush mount for installing molding for adhesive type window of automobile
JPH01162959A (ja) 1987-12-19 1989-06-27 Fujitsu Ltd 連続データ転送方式
JPH01277993A (ja) 1988-04-28 1989-11-08 Toshiba Corp 携帯可能電子装置
JPH02297235A (ja) * 1989-03-22 1990-12-07 Nec Corp メモリデータ保護回路
DE68926043T2 (de) 1989-07-20 1996-08-22 Toshiba Kawasaki Kk Mehrprozessor-Computersystem
JP2680899B2 (ja) 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
JPH03147158A (ja) * 1989-11-02 1991-06-24 Nec Off Syst Ltd メモリ制御回路
DE69231077T2 (de) * 1991-03-06 2001-02-01 Nec Corp Einchipmikrorechner mit Schutzfuntion für den Inhalt eines internen ROM's
JPH0689348A (ja) * 1991-03-06 1994-03-29 Nec Corp シングルチップ・マイクロコンピュータ
JPH0594299A (ja) * 1991-10-01 1993-04-16 Matsushita Electric Ind Co Ltd 半導体回路装置
JPH05197612A (ja) 1992-01-22 1993-08-06 Nec Ic Microcomput Syst Ltd データ・アクセス回路
JPH05233460A (ja) * 1992-02-21 1993-09-10 Toshiba Corp ファイル保護方式
JP3485940B2 (ja) 1992-03-31 2004-01-13 株式会社東芝 仮想記憶制御装置及び方法
JP3489155B2 (ja) 1993-10-28 2004-01-19 カシオ計算機株式会社 カード使用方法
CA2149476A1 (en) * 1994-06-21 1995-12-22 James Michael Magee Capability engine method and apparatus for a microkernel data processing system
JPH08171617A (ja) 1994-12-19 1996-07-02 Toppan Printing Co Ltd データ通信システム
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JP3049636B2 (ja) 1995-03-31 2000-06-05 株式会社日立製作所 データ分析方法
JP3218555B2 (ja) 1995-09-18 2001-10-15 日本電信電話株式会社 保護層付きセリア系固体電解質
JPH09114513A (ja) * 1995-10-19 1997-05-02 Fanuc Ltd 数値制御システム
JPH09167135A (ja) 1995-12-15 1997-06-24 Fujitsu Ltd 処理分担決定システムと装置と方法
US5870542A (en) 1995-12-28 1999-02-09 Sterling Commerce, Inc. Security apparatus and method for a data processing system
JP3747520B2 (ja) 1996-01-30 2006-02-22 富士ゼロックス株式会社 情報処理装置及び情報処理方法
JPH09259044A (ja) 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
JPH1020956A (ja) 1996-06-28 1998-01-23 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア課金方法及びシステム
JPH1049443A (ja) 1996-08-02 1998-02-20 Nippon Telegr & Teleph Corp <Ntt> 情報処理システム
JP4021956B2 (ja) * 1996-08-27 2007-12-12 大日本印刷株式会社 Icカード
JPH1078919A (ja) * 1996-09-05 1998-03-24 Nec Eng Ltd 不正アクセス防止装置
JP3950186B2 (ja) 1996-09-11 2007-07-25 株式会社エルイーテック 遊技機用プログラム解読防止機能付きセキュリティチップ
JP3863252B2 (ja) 1996-11-15 2006-12-27 富士通株式会社 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法
JPH10301856A (ja) 1997-02-28 1998-11-13 Fujitsu Ltd ファイルアクセスシステムおよび記録媒体
EP0862124A3 (en) 1997-02-28 2003-03-26 Fujitsu Limited File access system for efficiently accessing a file having encrypted data within a storage device
JP4268690B2 (ja) 1997-03-26 2009-05-27 ソニー株式会社 認証システムおよび方法、並びに認証方法
JPH1131199A (ja) 1997-07-11 1999-02-02 Hitachi Ltd Icカード及びicカード端末装置
JPH11167526A (ja) 1997-12-03 1999-06-22 Tamura Electric Works Ltd メモリリード・ライト方法及びメモリリード・ライト装置
JP2000082028A (ja) 1997-12-18 2000-03-21 Matsushita Electric Ind Co Ltd メッセージ受信装置およびメッセージ送信装置
JP4169822B2 (ja) 1998-03-18 2008-10-22 富士通株式会社 記憶媒体のデータ保護方法、その装置及びその記憶媒体
JP3147158B2 (ja) 1998-03-25 2001-03-19 日本電気株式会社 半導体装置の故障解析方法
JPH11282667A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 多重鍵方式の暗号処理機能を有するマイクロプロセッサ
JP2000138917A (ja) 1998-05-29 2000-05-16 Texas Instr Inc <Ti> 安全計算システム及び方法
EP0961193B1 (en) * 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
JP2000010782A (ja) 1998-06-18 2000-01-14 Hitachi Ltd クライアントコンポーネント間通信制御システム
JP3257512B2 (ja) 1998-06-26 2002-02-18 松下電器産業株式会社 高周波結合器、プラズマ処理装置及び方法
JP2001028025A (ja) 1998-07-03 2001-01-30 Bank Of Tokyo-Mitsubishi Ltd 決済管理システム、決済管理方法及び記録媒体
JP2000099404A (ja) 1998-09-25 2000-04-07 Tamura Electric Works Ltd 端末装置
US6378074B1 (en) * 1998-10-05 2002-04-23 Sentry Technologies Pte Ltd Method for security partitioning of a computer system
US6243778B1 (en) * 1998-10-13 2001-06-05 Stmicroelectronics, Inc. Transaction interface for a data communication system
JP3481470B2 (ja) * 1998-10-19 2003-12-22 日本電気株式会社 データ等の不正改竄防止システム及びそれと併用される暗号化装置
US6553375B1 (en) * 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
JP2000172490A (ja) 1998-12-01 2000-06-23 Toshiba Corp Icカード発行システムとicカード処理システムとicカード
JP4242494B2 (ja) 1998-12-24 2009-03-25 大日本印刷株式会社 携帯型信号処理装置
FR2790629A1 (fr) 1999-02-19 2000-09-08 Bull Cp8 Procede d'activation d'applications localisees dans une carte a puce par un navigateur du type dit "web"
FR2791159B1 (fr) 1999-03-15 2001-05-04 Bull Cp8 Procede d'acces a un objet a l'aide d'un navigateur de type "web" cooperant avec une carte a puce et architecture pour la mise en oeuvre du procede
JP2000353216A (ja) 1999-06-11 2000-12-19 Ntt Data Corp Icカードシステム、icカード端末、icカード処理方法及び記録媒体

Also Published As

Publication number Publication date
SG143976A1 (en) 2008-07-29
US20070288922A1 (en) 2007-12-13
SG160187A1 (en) 2010-04-29
CN1465008A (zh) 2003-12-31
HK1062722A1 (en) 2004-11-19
US7240345B2 (en) 2007-07-03
SG143064A1 (en) 2008-06-27
CN101526982A (zh) 2009-09-09
HK1098849A1 (en) 2007-07-27
EP1361511A4 (en) 2012-03-21
WO2002065287A1 (en) 2002-08-22
SG132507A1 (en) 2007-06-28
EP1361511A1 (en) 2003-11-12
US8141057B2 (en) 2012-03-20
SG143065A1 (en) 2008-06-27
CN101526982B (zh) 2012-05-30
SG154320A1 (en) 2009-08-28
SG140467A1 (en) 2008-03-28
US20040015948A1 (en) 2004-01-22

Similar Documents

Publication Publication Date Title
CN1261870C (zh) 数据处理方法及其设备
CN1309487A (zh) 数据处理装置、数据处理系统及其数据处理方法
CN1290009C (zh) 使用全局数据结构在小型注脚设备上允许越过文本屏障进行访问的技术
CN1296846C (zh) 信息发送系统、发送装置和发送方法与信息接收系统、接收装置和接收方法
CN1273901C (zh) 用于计算机装置验证的系统和方法
CN1304977C (zh) 数据提供系统、装置及其方法
CN1183449C (zh) 用微控制器使用高级程序设计语言
CN1365474A (zh) 认证装置
CN1290035C (zh) 采用网络广播服务的数字内容分送
CN1668990A (zh) 开放型通用抗攻击cpu及其应用系统
CN1241144C (zh) 自主型集成电路卡
CN1476580A (zh) 内容使用权管理系统和管理方法
CN1157655C (zh) 采用文本屏障在小型注脚设备上实施安全的技术
CN1338070A (zh) 使用进入点对象在小型注脚设备上允许越过文本屏障进行访问的技术
CN1322322A (zh) 数据提供系统及其方法
CN1282071C (zh) 数据处理装置、数据处理方法和程序
CN1348130A (zh) 保密和/或鉴别文件的远控打印
CN1313917C (zh) 数据处理装置以及数据处理方法
CN1236132A (zh) 应用块链接和块重新排序的带有外部存储器的安全处理器
CN1957336A (zh) 信息管理设备和信息管理方法
CN1902604A (zh) 数据通信设备和用于管理数据通信设备的存储器的方法
CN1756150A (zh) 信息管理仪器、信息管理方法和程序
CN1758590A (zh) 信息处理装置、信息处理方法和程序
CN1212773A (zh) 个人电子结算系统及其终端和管理装置
CN1684050A (zh) 半导体装置和电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1062722

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20060628