具备能保护保密信息的存储结构的计算机系统及应用方法

文档序号:6368304阅读:236来源:国知局
专利名称:具备能保护保密信息的存储结构的计算机系统及应用方法
技术领域
本发明涉及计算机系统、用于计算机系统的存储结构及其操作方法,尤其是涉及包括保密信息的计算机系统,以及存储结构及其操作方法。
背景技术
保密应用被广泛应用于计算机系统。可以用这些保密应用来验证授权用户和/或加密及解密敏感性信息。
保密性对智能卡而言尤为重要。这是本领域技术人员众所周知的,智能卡是位于电子卡上的计算机系统,通常与信用卡具有相同尺寸和相同质地的材料。智能卡中含有集成电路(IC)芯片。所述IC芯片通常含有可以是微处理器的中央处理器(CPU),芯片操作系统(COS)及存储器,诸如电可擦可编程只读存储器(EEPROM)和/或只读存储器(ROM)。这样,智能卡能在此存储并处理信息。
由于智能卡中含有处理器和存储器,因而智能卡可能特别适于获得高可靠性和/或保密性,也由此可作为电子钱包使用。智能卡已被应用于各种领域,诸如金融系统、分布式处理与信息保密、工厂自动化、办公室自动化、医疗、管理程序(例如社会保险)、移动通信、公用电话、有线电视、电力、煤气、其他公共事业、教育、信用卡、现金卡、预付卡、家庭银行事务,等等。智能卡能用于单项应用或服务,或者将多项应用或服务集成于一张智能卡中。
数据的读/写/擦除操作存储在该智能卡中,通过智能卡自身的物理保护和/或通过利用密码系统,能严格控制和保护智能卡和外部设备之间的通信。然而,很多技术经过开发而胜过了这些安全程序。特别是,黑客技术已开发到在智能卡上的操作系统执行期间,可设法通过绕过智能卡复杂的加密防火墙而直接访问智能卡上的保密信息,例如利用子程序调用,在这里也称作“跳转命令”。因此,在操作系统程序运行期间,保密信息可能会在跳转到保密程序和/或载入/保存命令时被获得或改变。

发明内容
本发明的一些实施例提供了计算机系统,包括第一、第二和第三存储区,其中,该第一存储区中存储包含对第二存储区的一些子程序调用的至少一个通用应用程序。该第二存储区中只存储对第三存储区的至少一个子程序调用。该第三存储区中存储至少一个保密应用程序,该程序只可由来自于第二存储区的子程序调用进行调用。处理装置,例如处理系统,用于执行包括对第二存储区的子程序调用的第一存储区中的通用应用程序,只在执行来自于第一存储区对第二存储区的子程序调用时,解除对第三存储区的锁定。在其他实施例中,这些处理系统进一步被配置成当执行第一存储区中的通用应用程序时,防止解除对第三存储区的锁定。
在另一实施例中,处理系统包括地址总线,用来传输将要访问的存储单元的地址,并且当地址总线传输第二存储区存储单元地址时解除锁定第三存储区,当地址总线传输第一存储区存储单元地址时锁定第三存储区。其他实施例包括第四存储区,在其中存储由第一存储区中的至少一个通用应用程序处理的数据,第五存储区,在其中存储由第三存储区中的至少一个保密应用程序处理的数据。处理系统进一步被配置成,只在执行来自于第一存储区对第二存储区的子程序调用时,解除对第五存储区的锁定。此外,处理系统进一步被配置成,当执行第一存储区中的通用应用程序时,防止解除对第五存储区的锁定。
在本发明的其他实施例中,上述处理系统包括地址解码逻辑电路,其被配置成响应于地址总线上传输的位于第二存储区中的地址产生一组信号,响应于该组信号的锁存器,激活第三存储区的选择信号。该地址解码逻辑电路可进一步被配置成响应于地址总线上传输的位于第一存储区中的地址产生一复位信号,响应于该复位信号的锁存器使对第三存储区的选择信号失活。
在另一实施例中,第一、第二和第三存储区以及处理系统均包含在智能卡中,在其他实施例中,处理系统进一步被配置成,当执行第三存储区中的保密应用程序时,保持第三存储区的解除锁定状态,以及在执行来自于第三存储区对第一存储区的子程序调用时锁定第三存储区。在本发明的又一实施例中,第一存储区和第三存储区中的最高有效地址位是彼此互补的。将地址总线上的最高有效地址位加于第三存储区和以反相形式加于第一存储区。因此,在上述实施例中,通过结合选择信号和地址总线中的最高有效地址位,激活第三存储区。
本发明其他实施例为计算机系统提供了存储器结构。所述存储器结构包括如上所述的第一、第二和第三存储区。如上所述,也可提供第四和第五存储区。第一存储区和第三存储区的最高有效地址位可如上所述那样彼此互补。
根据本发明的其他实施例,也可提供一种执行应用程序时执行保密程序的方法。在所述方法中,执行一应用程序。保密程序只在执行对向量表区的子程序调用时解除锁定,所述向量表区中只包含对保密程序的至少一个子程序调用。接着,执行解除锁定的保密程序。在另一实施例中,执行对应用程序的子程序回调时,锁定保密程序。当执行保密程序时,可以保持保密程序的解除锁定状态。上述所有操作均可在智能卡中完成。


图1是根据本发明实施例,诸如智能卡的计算机系统框图。
图2是根据本发明实施例,示意图1中程序存储器的结构图。
图3是根据本发明其他实施例,诸如智能卡的计算机系统框图。
图4是根据本发明其他实施例,程序存储器和数据存储器的结构示意图,其中多个应用程序存储在程序存储器中。
具体实施例方式
下面,将参照本发明实施例的示意附图,更加详尽地描述本发明。但是,不应把本发明解释为局限于这里所列的具体实施例。更确切地说,提供所述实施例是为了便于彻底、详尽地揭示,并向本领域技术人员充分传达本发明的范围。相同附图标记始终指示相同元件。
因此,本发明容许有各种修改和替换形式,其中经由附图所示出的具体实施例将在这里作详细描述。然而,应该理解到,这并不是试图把本发明局限于所揭示出的特定形式,而反之,本发明涵盖了所有落入本发明权利要求书中所定义的范围和实质的那些经修改的、等效的以及可替换的实例。
下面将参照框图和/或根据本发明具体实施例的方法、装置(系统)和/或计算机程序产品的其他示例来描述本发明。可以理解,框图中的每个方框和/或其他示例,及框图中方框和/或其他示例的组合,均能由计算机指令实现。这些计算机指令可以提供给通用计算机、专用计算机和/或其他可编程数据处理装置的处理器,以便于通过计算机和/或其他可编程数据处理装置的处理器执行指令,生成装置,用于实现框图和/或其他方框或方框组中所指定的功能/动作。
所述计算机程序指令也可以存储在能指示计算机或其他可编程数据处理装置以某一特定方式运行的计算机可读存储器中,存储在计算机可读存储器中的指令生成一件包括实现框图和/或其他方框或方框组中所指定的功能/动作的指令的产品。
计算机程序指令也可以载入计算机或其他可编程数据处理装置,从而在计算机或其他可编程装置中产生一系列可操作步骤,以产生计算机执行的处理,以便于在计算机或其他可编程装置中执行的指令,提供用于实现框图和/或其他方框或方框组中指定的功能/动作的步骤。
也应注意到,在某些可替换的实现过程中,方框中所记录的功能/动作可以不按照附图中所记录的顺序发生。例如,如所图示两个连续的方框或操作,实际上可以完全同时地执行,或者有时方框组或操作可以按照相反的顺序执行,这取决于所相关的功能性/动作。
附图1和3是根据本发明实施例的计算机系统的方框图。上述计算机系统可具体化为企业的、应用程序软件的、个人的和/或普及的计算机系统,这是本领域技术人员众所周知的。然而,可以理解,由于其可作为电子钱包或电子身份证,因而本发明的实施例对智能卡尤为有用。所以,下面将参照智能卡描述附图1和3中的实施例。
根据本发明实施例,附图2和4分别是可应用于附图1和3中的计算机系统中的存储器结构。所述存储器结构可以用于任何如上所述的计算机系统。然而,由于该存储器结构对智能卡尤为适用,下面将结合智能卡对其进行描述。
参照附图1,根据本发明实施例,计算机系统,诸如智能卡,包括输入/输出(I/O)终端1,微处理器或中央处理器(CPU)2,程序存储器3,数据存储器7,及保密程序激活单元10。所述程序存储器3是一个存储器,诸如只读存储器(ROM),里面编制有用于操作智能卡芯片的芯片操作系统(COS)。CPU2控制用于访问所有芯片元件的内部通路,诸如数据存储器7、程序存储器3、随机存储器(RAM)(未示出),等等。所述数据存储器7包括保密数据区8和通用数据区9。所述保密数据区8是不受CPU2和芯片操作系统的外部访问的用户数据区,可以具体化为可以电读/写数据的电可擦可编程只读存储器(EEPROM)。保密数据区8包括数据集和可用各种应用程序实现的函数,其中数据集包括运算、卡发行数据、用户数据,等等。
如图1所示,所述程序存储器3包括通用代码区6,在此也称为通用应用程序区或第一存储区;保密代码区4,在此也称为保密应用程序区或第三存储区;以及向量表区5,包括(只包括)子程序调用函数,也称为跳转代码,其为只跳转到保密代码区4的专用代码。在一些实施例中,这些区可以被分区,从而使在同一存储器中的不同物理位置处理这些程序,并且可以在不连续存储区中交叉存取和/或者可以在不同存储设备中实现。
保密程序激活单元10使能/禁止选择信号,也称为芯片选择信号CS,以便允许/拒绝访问所述保密代码区4和保密数据区8(在此也称为第五存储区)。保密程序激活单元10包括地址解码逻辑电路11和连接到地址解码逻辑电路11的锁存逻辑电路12。
所有存储区4、5、6、8和9通过地址总线13连接到CPU2,虽然未在图中示出,但此外还有数据总线,以用于交换数据。也可把所述地址总线用作数据总线。保密程序激活单元10的地址解码逻辑电路11连到地址总线13,以便对加于地址总线13上的程序存储器3的相应地址进行解码(当前运行程序代码的地址,也称为程序计数器)。响应于地址解码逻辑电路11的输出信号(置位或复位信号),锁存逻辑电路12把其输出信号加到保密代码区4和保密数据区8上。锁存逻辑电路12的输出信号起着芯片选择信号CS的作用,所述芯片选择信号用于使能或禁止保密代码区4和保密数据区8。
下面,将根据本发明实施例描述保密程序的运行。根据本发明实施例,保密程序激活单元10只有当在程序存储器3中的程序正被执行、且程序计数器变更为一特定值的时候,才激活保密代码区4和保密数据区8。
在CPU2的控制下,执行通用代码区6中的用户操作系统程序(通用程序)。在此时,因为被执行的程序代码的地址(程序计数器)不是向量表区5中的地址值,所以保密程序激活单元10不会激活保密代码区4和保密数据区8。换言之,他们被锁定了。如果连续执行通用程序以至于程序计数器变更到向量表区5中的地址值,则保密程序激活单元10的地址解码逻辑电路11对程序计数器进行解码并生成一组信号。锁存逻辑电路12响应于地址解码逻辑电路11产生的置位信号置位,从而使用于激活保密代码区4和保密数据区8的芯片选择信号CS被使能或解除锁定,在此,由于向量表区5包括只跳转到保密代码区4的代码,因而程序在保密代码区4被执行。由此,能够处理保密数据区8的保密信息。
根据本发明实施例的智能卡,可进一步包括加密专用处理器15,用于控制保密程序。在所述实施例中,加密专用处理器15由保密程序激活单元10激活。根据本发明的各种实施例,也可以理解I/O终端1、CPU2、保密程序激活单元10、加密专用处理器15及其再组合和/或其他未在图1中示出的元件,可以备有计算机系统的处理系统和/或具有计算机处理功能的装置。
处理完保密信息后,保密程序结束,接着,如果程序计数器又变更为相应于通用代码区6的地址值,则保密程序激活单元10的地址解码逻辑电路11对地址值进行解码以产生一复位信号。由此,锁存逻辑电路12被复位,从而使芯片选择信号CS被禁止。结果,保密数据区8和保密代码区4被禁止(锁定)以至于不可对其进行访问。
图2是根据本发明实施例,示意图1中程序存储器的结构图。参照图2,如上所述,智能卡的程序存储器3包括通用代码区6、向量表区5和保密代码区4。每个区都有预定的地址范围。例如,通用代码区6具有地址范围从000000h(十六进制)到023FFFh的程序存储器地址,及保密代码区4具有地址范围从024200h到027FFFh的程序存储器地址。所述存储器地址和大小是作为举例说明的,以便清楚地解释本发明,因此它是可用其他邻接和/或不邻接地址来修改的。
根据本发明实施例,所述向量表区5包括(仅包括)代码(跳转操作码或子程序调用),其只跳转到保密代码区4的指定部分。例如,有两个跳转操作码,也就是,Vector_E1JMP F1和Vector_E2JMP F2。所述保密代码区4包括(仅包括)保密操作码,诸如保密操作码F1和F2,是向量表区5的跳转操作码Vector_E1JMP F1和Vector_E2JMP F2所跳转(调用)的。通用代码区6包括用于处理通用信息和跳转向量码的通用代码,诸如JMP Vector_E1和JMP Vector_E2,用于跳转到向量表区5的跳转操作码Vector_E1和Vector_E2。例如,所述通用代码包括三个载入操作码LD r0,r1,LD r2,r0和LD r3,r2。换言之,通用代码区6可进一步包括跳转向量码调用语句CallJMP Vector_E1,用来调用跳转向量码,例如,JMP Vector_E1。结果,通用代码区可仅经由子程序调用(跳转)就转到保密代码区。
再参照图1,众所周知,CPU2可以被划分为控制单元(未示出)和数据通路或执行单元(未示出)。所述控制单元可包括程序计数器和指令寄存器。所述程序计数器包含用于取出将被执行的下一指令的程序存储器地址,指令寄存器是用于存储由程序计数器取出的指令的寄存器。所述通路可包括算术逻辑单元和累加器。此外,控制单元可包括存储器地址寄存器,在存储器存取期间,用于保持程序存储器地址。数据通路也包括存储器缓冲寄存器,用于把存储器和CPU的内部操作分开。
假设,CPU2被初始化,CPU2的控制单元被复位。此时,控制单元的程序计数器也被复位到某一预定值,例如,@。用于取出下一命令的程序存储器地址存放于程序计数器中,然后移动到存储器地址寄存器。接着,控制单元利用地址总线13开始进行存储器读取操作。通过指令通路从程序存储器3中读出指令集,并将其存储于指令寄存器中。依序分析存于指令寄存器中的命令集,例如,载入命令LD r0,r1,读出存放于数据存储器(通用信息区9)中的数据。存放于数据存储器中的数据被存放于存储器缓冲寄存器和寄存器r0和r1中。通过上述操作,结束载入操作。最后,程序存储器地址值(@+1)增加。由程序计数器指定的程序存储器地址值(@+1)移动到存储器地址寄存器。程序存储器读取操作再次开始以便把指令集存放于指令寄存器中。接着,为完成载入操作,分析存放于指令寄存器中的命令,例如,LD r2,r0,并把存放于数据存储器(通用信息区9)中的值存放于寄存器r2和r0中。最后,程序计数器再次增加(@+1->@+2)。在上述方式中,连续执行程序并增加程序计数器的值(例如,@+2->->->->@+n)。
接着,从程序存储器3中取出指令集,例如,JMP Vector E1,并将它存放于指令寄存器中。分析存放于指令寄存器中的指令JMP Vector E1。由于所取出的指令为跳转命令,因而用地址值(存储区向量表区中02400h到024FFh中的一个地址,其中存有Vector E1,例如,图2中标记为Vector_E1024000h的值)替换程序计数器的值。向量表区5的地址值移动到存储区地址寄存器中并被加于地址总线13。连接到地址总线13的保密程序激活单元10的地址解码逻辑11,对向量表区的地址值024000h解码以产生置位信号。根据置位信号,锁存逻辑12被置位,以使保密代码区4的芯片选择信号CS和保密信息区8被使能(解除锁定),从而激活保密程序。
与此同时,指令集(例如,存储于程序计数器中的、在地址值为024000h处的标记为Vector_E1的跳转操作码(JMP F1),又被存放于指令寄存器中,并被控制逻辑分析。如上所述,向量表区5的所有指令集由只跳转到保密代码区4的指令集组成。于是,程序计数器变为保密代码区4中的一个地址(例如,在图2中,标记为F1的保密操作码的地址0242000h)。因此,保密程序在保密代码区被执行。换言之,保密操作码F1被执行。可能比较理想的是,保密操作码F1能以用于检查用户是否已授权的保密码为起始。例如,保密码可以是RSA_Sign函数。下面已知的操作程序能在函数内部执行RSA(input,output){check security condition,key loaddata loadRSA Sign operationStore resultReturn}授权用户经过验证后,可以操作保密数据区8中的保密信息。保密信息的操作结束后,再通过结果码或返回码(RET)把程序计数器变更为通用代码区6的地址值。例如,若有命令LD r3,r2,就把程序计数器变更为通用代码区中的地址012000h。
如果存放于程序计数器中的程序存储器地址012000h,通过存储器地址寄存器被加于地址总线13上,则保密程序激活单元10的地址解码逻辑电路11再对程序存储器地址解码以产生复位信号。所述锁存逻辑电路12响应于复位信号而被复位,以使得到保密代码区4和保密数据区8的芯片选择信号CS被禁止(锁定)。结果,不能再访问保密程序。接着,取出标明程序计数器的在程序存储器地址中的指令集LD r3,r2,并分析和执行取出的指令集。
连续执行通用代码区6中的程序,并且取出程序存储器地址01FFFFh中的命令(例如,JMP Vector_E2)和再次跳转到向量表区5的命令。因为所取出的命令为跳转命令,所以程序计数器被变更为向量表区5的地址值,在所述向量表区5中有JMP Vector_E2,保密代码区4和保密数据区8再次被保密程序激活单元10激活(解除锁定)。同时,向量表区5的跳转命令集JMP F2的执行,导致程序转移到保密代码区4。由此,保密程序在保密代码区4被执行并且保密操作码F2被执行。
如上所述,根据本发明实施例,只通过预定通路执行保密程序,例如,子程序函数调用(跳转)。换言之,在通用代码区6中执行向量跳转码JMPVector_E1,因此,程序跳转到向量表区5的跳转操作码Vector_E1。于是,执行JMP F1并且程序最终跳转到保密代码区4,以便执行保密操作码。此时,如果执行通过向量跳转码跳转到向量表区的跳转命令,程序计数器变更为存有向量跳转码的向量表区5的地址值,那么保密程序激活单元10对程序计数器进行解码以激活保密代码区4和保密信息区8。因此,可能无法通过通用代码区中的直接跳转或载入命令来访问保密代码区和保密数据区。
在本发明实施例中,通过子程序函数调用和特定程序计数器的值或地址线上的地址,用于激活保密程序的芯片选择信号(跳转)被使能。因此,基于芯片选择信号,有可能实现各种实施例。例如,在上述实施例中,当程序计数器或地址总线被变更到向量表区的地址值时,相对于保密代码区的芯片选择信号被使能。
下面,将参照附图3描述本发明的其他实施例。附图3用与附图2中相同的附图标记来表示与其相同的元件,关于这些元件的详细描述将省略。在图3中,为了在CPU2和存储器设备4、5、6、8和9间传输数据,把所有存储区连接到数据总线(未示出)。为了连接CPU2和存储器设备4、5、6、8和9,通过CPU和地址总线连接所有的存取区。在图3中,附图标记A代表地址总线。通用代码区6是逻辑地址范围从00000h到0FEFFh的区,向量表区5是地址范围从0FF00h到0FFFFh的区。保密代码区4是地址范围从10000h到1FFFFh的区。所述通用代码区6和保密代码区5通过使他们最高有效地址位彼此互补而被分开,例如,通过使他们处于逻辑互补状态。
参照图3,通过两个芯片选择信号CS1和CS2的逻辑积,来激活(解除锁定)或禁止(锁定)通用数据区9、保密数据区8、通用代码区6和保密代码区4。此外,保密程序激活单元10的地址解码逻辑电路11,只使能/禁止加于保密数据区8和保密代码区4的芯片选择信号CS2(第二芯片选择信号)。另外,在所执行程序的代码地址中,将最高有效位加于通用代码区6和保密代码区4,藉此以起着其他芯片选择信号(第一芯片选择信号)的作用,并将其反相加于通用代码区6。
尤其是,在本发明举例说明的实施例中,第一芯片选择信号CS1,响应于程序存储器地址的最高有效位Address bit16,被加于保密代码区4和通用代码区6。换言之,对于通用代码区6,加于地址总线A上的地址的逻辑状态被反相,并且所反相的逻辑状态起第一芯片选择信号CS1的作用。对于保密代码区4的,最高有效位的逻辑状态起着第一芯片选择信号CS1的作用。“0”最高有效位是低逻辑状态,“1”最高有效位是高逻辑状态。加于通用数据区9和保密数据区8的第一芯片选择信号CS1被置为逻辑“1”,即高逻辑状态。当加于地址总线A上的代码地址(程序计数器的值)变更为向量表区5的地址值时,也就是,在图3中,如存储器地址的最高有效位(Address bit16)是“0”,并且第八到第十五位(Address bit15到Address bit8)是“1”,保密程序激活单元10的地址解码逻辑电路11产生置位信号以使锁存逻辑电路12置位。因此加于保密数据区8和保密代码区4的第二芯片选择信号CS2被使能。
尤其是,假设在CPU2的控制下,在通用代码区6中执行通用程序。因为通用代码区6占有逻辑地址从00000h到0FFFFFh的区域,所以程序存储器地址的最高有效位是逻辑“0”。因此,由于所反相的逻辑“1”起着芯片选择信号CS1的作用,因而第一芯片选择信号CS处于使能状态。与此同时,因为通用代码区6的第二芯片选择信号CS2处于使能状态,所以通用代码区6由两芯片选择信号的逻辑乘积来解除锁定。
然而,在保密代码区4中,因为程序存储器地址本身的最高有效位的逻辑“0”起着第一芯片选择信号CS1的作用,所以第一芯片选择信号CS1被禁止(锁定)。此外,由于程序存储器地址不是向量表区中的值,因而地址解码逻辑电路11对程序存储器地址11解码以产生复位信号。响应于该复位信号,锁存逻辑电路12被复位,从而使加于保密代码区4和保密数据区8的第二芯片选择信号被禁止(锁定)。结果,保密代码区4和保密数据区8均未激活。当执行通用程序时,保密代码区4和保密数据区8处于非激活状态以致不能对其进行访问。
如通用程序正被处理,并且程序计数器被子程序调用函数(跳转)变更为向量表区5的地址值(0FF00h到0FFFFh中的一个地址),则把相应的地址加于地址总线A上。因此,加于保密代码区4和保密数据区8的第二芯片选择信号CS2被保密程序激活单元10的地址解码逻辑电路11使能。同时,因向量表区5由只跳转到向量表区5和保密代码区5的跳转码组成,所以程序存储器地址被变更为保密代码区4的地址。因保密代码区4的程序存储器地址值的最高有效位为逻辑“1”,所以加于保密代码区4的芯片选择信号CS1处于使能状态。然而,在通用代码区6的情况下,最高有效位被反相,加于通用代码区6的芯片选择信号处于禁止状态。结果,完成了子程序调用函数,当在保密代码区4执行程序时,通用代码区被禁止。
当保密程序的执行结束后,如程序计数器再次被变更为程序存储器地址,加于保密代码区4和保密数据区8的第二芯片选择信号CS2,和加于保密代码区4的第一芯片选择信号CS1被禁止。因此,保密代码区和保密数据区被禁止以致不能对其进行访问。同时,加于通用代码区6的第二芯片选择信号CS2处于使能状态。此外,因通用代码区6的程序存储器地址的最高有效位是逻辑“0”,加于通用代码区6第一芯片选择信号CS1处于使能状态。结果,通用代码区6被使能以便执行通用程序。
在本发明的一些实施例中,加于第二数据区8的第二芯片选择信号CS2一直是逻辑高电平。然而,根据本发明的其他实施例,可以按照与保密代码区4相同的方式应用程序存储器地址的最高有效位。
另外,在本发明的上述实施例中,通用数据区9,芯片选择信号CS1和CS2总是处于使能状态。然而,程序存储器地址的所反相的最高有效位,也以与通用代码区6相同的方式,应用于通用数据区9的第一芯片选择信号。在这种情况下,通用数据区9不总是处于使能状态,只在执行通用程序时变为使能状态。
在本发明的其他实施例中,能利用两个或更多程序存储器地址的最高有效位来使能/禁止芯片选择信号。因此,保密级别互不相同的各种应用程序能被安置于单个芯片内。另外,要求向量表区的跳转保密的保密代码区可以是多样化的。
图4是解释上述实施例的图,展示了程序存储器50和相应的数据存储器60,其中多个应用程序存放于程序存储器50中。
程序存储器50包括应用程序A区52,应用程序B区56,应用程序C区58和向量表区54。所述应用程序B和C是保密程序区,并在执行应用程序A时拒绝对其进行访问。所述数据存储器60包括相应于应用程序A的数据区A62,相应于应用程序B的数据区B64和相应于应用程序C的数据区C66,且数据区B、C64和C66均为保密数据区。
跳转到应用程序B56和C58的跳转码存储在向量表区54中,并且所述向量表区54是个地址从AA到BB的区。例如,如所示,用于跳转到应用程序B区56的地址CC的跳转命令,存放于向量表区54的存储器地址XX处。此外,用于跳转到应用程序B区56的地址DD的跳转命令,存放于向量表区54的存储器地址XX+N处。
能对程序存储器的每个区或数据存储器的每个区进行分区,以便于其能在一存储器的不同位置进行物理处理,能对其进行交叉存取和/或能在互不相同的存储设备中实现。
当由CPU在应用程序A区52中执行应用程序A(通用程序)时,如果程序计数器的值被变更为向量表区54的地址XX(通过执行用于跳转到地址XX处的跳转命令),则芯片选择信号CS1被使能,从而使应用程序B和数据区B64被激活。按照同样的方式,如果程序计数器的值被变更为向量表区54的地址XX+N(通过执行用于跳转到地址XX+N处的跳转命令),则芯片选择信号CS2被使能,从而使应用程序C和数据区C66被激活。因此,可以防止来自于应用程序A到应用程序B或C的直接存取。
虽然上面描述了智能卡的实施例,然而本发明的范围和实质并不受限于智能卡,其适用于各种处理数据的计算机系统。
根据本发明的一些实施例,只有在程序计数器的值通过子程序调用(跳转)而变为特定程序存储器地址值时,保密程序才允许访问保密代码区和保密数据区。从而,能完全把保密程序从通用程序中分离出来。换言之,通用程序不能通过直接访问保密信息被处理。通过预定的特定通路激活保密程序是可能的。
因此,在一些实施例中,因为能完全把保密信息和保密设备从通用程序中分离出来,所以保密信息能得到保护。另外,通过允许保密信息和保密设备充当服务提供者,保密信息和保密设备可以置于具有彼此互不相同的不同保密级别应用程序的同一芯片内。
在附图和说明书当中,已经揭示了本发明的典型实施例,虽然使用了专业术语,但是以一般性描述的意义上使用的,而非限定目的,本发明的保护范围由权利要求书而定。
权利要求
1.一种计算机系统,包括第一、第二和第三存储区,该第一存储区中存储包含对第二存储区的至少一个子程序调用的至少一个通用应用程序,该第二存储区中只存储对第三存储区的至少一个子程序调用,该第三存储区中存储至少一个保密应用程序,该保密应用程序只可由来自于第二存储区的子程序调用进行调用;和处理系统,其被配置成用于执行包含对第二存储区的子程序调用的第一存储区中的通用应用程序,并只在执行来自于第一存储区对第二存储区的子程序调用时解除对第三存储区的锁定。
2.根据权利要求1所述的计算机系统,其中,所述处理系统进一步被配置成,当在第一存储区中执行通用应用程序时,防止解除对第三存储区的锁定。
3.根据权利要求1所述的计算机系统,其中,所述处理系统包括地址总线,用来传输将要访问的存储单元的地址,且所述处理系统被配置成,当地址总线传输第二存储区存储单元地址时解除对第三存储区的锁定,当地址总线传输第一存储区存储单元地址时锁定第三存储区。
4.根据权利要求1所述的计算机系统,进一步包括第四存储区,在其中存储由第一存储区中的至少一个通用应用程序处理的数据,以及第五存储区,在其中存储由第三存储区中的至少一个保密应用程序处理的数据,所述处理系统进一步被配置成只在执行来自于第一存储区对第二存储区的子程序调用时解除对第五存储区的锁定。
5.根据权利要求4所述的计算机系统,其中,所述处理系统进一步被配置成当执行第一存储区中的通用应用程序时,防止解除对第五存储区的锁定。
6.根据权利要求3所述的计算机系统,其中,所述处理系统包括地址解码逻辑电路,其被配置成响应于地址总线上传输的位于第二存储区中的地址产生一组信号,以及锁存器,其响应于该组信号以激活第三存储区的选择信号。
7.根据权利要求6所述的计算机系统,其中,所述地址解码逻辑电路进一步被配置成响应于地址总线上传输的位于第一存储区中的地址产生一复位信号,响应于该复位信号的锁存器使对第三存储区的选择信号失活。
8.根据权利要求1所述的计算机系统,其中,至少其中一个保密应用程序包括用户验证程序。
9.根据权利要求3所述的计算机系统,其中,所述第一存储区和第三存储区中的最高有效地址位是彼此互补的,并且其中将地址总线上的最高有效地址位加于第三存储区和以反相形式加于第一存储区,以便于通过结合选择信号和地址总线上的最高有效地址位,激活第三存储区。
10.根据权利要求1所述的计算机系统,其中,所述第一、第二和第三存储区以及所述处理系统都包含在一个智能卡中。
11.根据权利要求1所述的计算机系统,其中,所述第一存储区是通用代码区、所述第二存储区是向量表区,而所述第三存储区是保密代码区。
12.根据权利要求1所述的计算机系统,其中,所述处理系统进一步被配置成,当执行第三存储区中的保密应用程序时,保持第三存储区的使能状态。
13.根据权利要求12所述的计算机系统,其中,所述处理系统进一步被配置成,在执行来自于第三存储区对第一存储区的子程序调用时,锁定第三存储区。
14.一种用于计算机系统的存储器结构,包括第一、第二和第三存储区,该第一存储区中存储包含对第二存储区的一些子程序调用的至少一个通用应用程序,该第二存储区中只存储对第三存储区的一些子程序调用,该第三存储区中存储一些保密应用程序,这些保密应用程序只可由来自于第二存储区的子程序调用进行调用。
15.根据权利要求14所述的存储器结构,进一步包括第四存储区,在其中存储由第一存储区中的至少一个通用应用程序处理的数据,以及第五存储区,在其中存储由第三存储区中的保密应用程序处理的数据。
16.根据权利要求14所述的存储器结构,其中,至少一个保密应用程序包括用户验证程序。
17.根据权利要求14所述的存储器结构,其中,所述第一存储区和第三存储区中的最高有效地址位是彼此互补的。
18.根据权利要求14所述的存储器结构,其中,所述第二和第三存储区都包含在一张智能卡中。
19.根据权利要求14所述的存储器结构,其中,所述第一存储区是通用代码区,所述第二存储区是向量表区,而所述第三存储区是保密代码区。
20.一种计算机系统,包括第一、第二和第三存储区,该第一存储区中存储包含对第二存储区的至少一个子程序调用的至少一个通用应用程序,该第二存储区中只存储对第三存储区的至少一个子程序调用,该第三存储区中存储至少一个保密应用程序,该保密应用程序只可由来自于第二存储区的子程序调用进行调用;用于执行包含对第二存储区的子程序调用的第一存储区中的通用应用程序的装置;和只在执行来自于第一存储区对第二存储区的子程序调用时,解除对第三存储区的锁定的装置。
21.根据权利要求20所述的计算机系统,进一步包括当执行第一存储区中的通用程序时,用来解除对第三存储区的锁定的装置。
22.根据权利要求20所述的计算机系统,其中用于执行的装置包括传输将要访问的存储单元的地址的装置;和用于解除锁定的装置包括当用于传输的装置传输第二存储区存储单元地址时,解除对第三存储区的锁定的装置;所述计算机系统进一步包括当用于传输的装置传输第一存储区存储单元地址时,用于锁定第三存储区的装置。
23.根据权利要求20所述的计算机系统,进一步包括第四存储区,在其中存储由第一存储区中的至少一个通用应用程序处理的数据;第五存储区,在其中存储由第三存储区中的至少一个保密应用程序处理的数据;和只在执行来自于第一存储区对第二存储区的子程序调用时,解除对第五存储区的锁定的装置。
24.根据权利要求23所述的计算机系统,进一步包括,当执行第一存储区中的通用应用程序时,防止解除对第五存储区的锁定的装置。
25.根据权利要求20所述的计算机系统,其中,所述第一、第二和第三存储区,以及用来执行的装置和用来解除锁定的装置都包含在一张智能卡中。
26.根据权利要求20所述的计算机系统,进一步包括,当执行第三存储区中的保密应用程序时,保持对第三存储区解除锁定的装置。
27.根据权利要求26所述的计算机系统,进一步包括,在执行来自于第三存储区对第一存储区的子程序调用时,锁定第三存储区的装置。
28.当执行应用程序时执行保密程序的方法,包括执行一应用程序;只在执行对向量表区的子程序调用时解除对保密程序的锁定,该向量表区中只包含对保密程序的至少一个子程序调用;执行被解除锁定的保密程序。
29.根据权利要求28所述的方法,进一步包括,在执行对应用程序的子程序回调时,锁定保密程序。
30.根据权利要求28所述的方法,其中,执行应用程序、解除对保密程序的锁定以及执行保密程序,均在一张智能卡中完成。
31.根据权利要求28所述的方法,其中,所述解除锁定包括,在执行保密程序时,保持对保密程序的解除锁定状态。
全文摘要
一种计算机系统,包括第一、第二和第三存储区。该第一存储区中存储包含对第二存储区的至少一个子程序调用的至少一个通用应用程序。该第二存储区中只存储对第三存储区的至少一个子程序调用。该第三存储区中存储至少一个保密应用程序,该保密应用程序只可由来自于第二存储区的子程序调用进行调用。一种处理系统,被配置成用于执行第一存储区中的通用应用程序,所述第一存储区包括对第二存储区的子程序调用,并且只在执行来自于第一存储区对第二存储区的子程序调用时解除对第三存储区的锁定。该处理系统可进一步被配置成当执行第一存储区中的通用应用程序时,防止解除对第三存储区的锁定。
文档编号G06F12/14GK1461992SQ0314292
公开日2003年12月17日 申请日期2003年5月29日 优先权日2002年5月29日
发明者金圣贤 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1