半导体存储卡和计算机可读程序的制作方法

文档序号:6473917阅读:188来源:国知局
专利名称:半导体存储卡和计算机可读程序的制作方法
技术领域
本发明涉及能够以文件的形式存储数据的半导体存储卡,特别涉及一种文件删除技术。
背景技术
例如IC卡和SD存储卡等的半导体存储卡已经被实验性地引入从包括广播和出版行业的大众传媒到金融机构以及政府和地方组织的各行各业中。由于其极大的方便性,存储卡在这些行业中引起了轰动。在半导体存储卡中,数据以具有物理层、文件系统层和应用层的分层模型来管理。因此,用户可以在半导体存储卡中创建文件,并以与删除存储在计算机中的文件相同的过程来删除所述被创建的文件。
在常规半导体存储卡上文件的删除仅仅涉及管理信息的重写,所述管理信息包括显示出文件片段与文件入口(entry)之间的链接关系的文件分配表(FAT)。在下面说明其原因。如果一个文件的管理信息被重写,则会丢失在半导体存储卡上构成文件实体的片段的位置,并且打断在半导体存储卡上不连续分布的片段之间的链接关系。这使得不能读取所述文件。
在待审日本专利公开No.2001-188701、美国专利No.5,479,638和日本专利No.3389186中介绍了在常规半导体存储卡上由一种文件系统进行的数据管理。
根据上述用于文件删除的方法,重写FAT和文件入口。然而,被删除文件的文件实体以及构成所述文件实体的片段,虽然不连续,但仍然留在半导体存储卡上。如果这种被删除的文件包含关于货币交易的数据,则存在从分离的片断中读出银行帐户号码和ATM卡号码的危险。
此外,第三者通过追溯半导体存储卡上的不连续的片段可以重新生成被删除的文件,从而获得应当被删除的所述文件的内容。
但是,这里存在一个为什么文件删除只涉及重写例如FAT和文件入口等管理信息的原因。这是由于重写所需的处理时间。根据试验计算,要花费2毫秒重写512字节,1兆字节要4秒,而10兆字节要40秒。这表示要花费时间来进行完全的删除操作,也就是说,重写一个文件的文件实体,从而使得完全不能读取所述文件。此外,这种完全删除操作产生了表示构成一个被删除文件的片段的地址的数据应该存储在什么位置的问题。如果在非易失性存储器中存储了表示片断的位置的数据以及所述片段,则第三者可能在完全删除操作完成之前读出所述片段的位置。因此,当进行完全删除操作时,关于要被删除文件的信息没有得到充分保护。

发明内容
本发明的一个目的是提供一种半导体存储卡,所述半导体存储卡从指示要删除文件到所述文件被完全删除能够保护要删除的文件的文件实体。
该目的可以通过包括一个非易失性存储器以及一个防篡改模块的半导体存储卡实现,所述非易失性存储器存储由实体和管理信息构成的一个文件,而所述防篡改模块包括一个处理单元和一个内部存储器。所述处理单元包括一个删除单元,如果生成对所述文件的一个删除事件,则可以进行(i)创建一个关于所述防篡改模块中的所述内部存储器的位置表,以及(ii)重写所述管理信息,其中所述位置表表示所述实体的位置,并且当所述删除单元重写所述实体时可以由所述删除单元查阅。
根据在防篡改模块中的存储器中储存的位置表来重写文件的文件实体。因此,从生成一个删除事件到所述文件被完全删除可以充分保扩关于片段的信息。
生成所述删除事件之后,在空闲时间根据位置表来重写文件实体。以这种方式,文件实体重写的处理负载被分割,从而可以在多个空闲时间单元中进行。由于这种分割,所述半导体存储卡能够更快地回到待机状态,使得能够完成文件实体的重写,而不会使用户感到文件删除花费了很长的时间。
此外,打断构成文件的片段之间的所述链接关系的文件管理信息的重写被赋予比重写文件实体更高的优先权。由于以上述顺序进行所述重写操作,所以随着时间的流逝,片段的逆向分析变得越来越困难。
这里,所述处理单元(i)根据所述半导体存储卡所连接的装置发出的命令来进行操作,并且(ii)还包括一个能够分析所述装置发出的命令并根据所述分析结果生成事件的分析单元。而且,所述删除单元包括一个如果生成所述删除事件则能够创建所述位置表并重写所述管理信息的主删除单元,和一个如果生成不同于所述删除事件的事件则能够根据所创建的位置表来重写所述实体的副删除单元。
这里,所述半导体存储卡进一步包括一个当生成所述删除事件时能够开始测量时间的定时器。所述主删除单元除了重写所述管理信息之外还重写所述实体的一部分,直到所述定时器提醒时间到,而所述副删除单元重写没有被所述主删除单元重写的所述实体的其余部分。由此,响应于文件删除指令的重写操作持续到时间到(time-out)为止。因此,如果,例如,根据非易失性存储器的重写操作所需的时间周期来调整暂停时间的周期,则可以优化用户的等待时间。
这里,所述内部存储器存储被加密的实体的加密密钥,并且当生成所述删除事件时,所述主删除单元在重写所述文件的所述管理信息之前先重写所述加密密钥。所述加密密钥的重写被赋予比文件实体的重写更高的优先权。由此,要解密所述文件变得不可能了。由于以上述顺序进行所述重写操作,所以随着时间的流逝,片段的所述逆向分析变得更加困难。
这里,所述半导体存储卡通过来自装置的接触或非接触供电的方式工作,但是所述处理单元只在所述半导体存储卡通过来自所述装置的接触供电方式工作时进行所述重写。结果,在非接触供电期间,不进行文件实体的重写。这能够实现稳定的操作。
附图简述

图1示出了SDeX存储卡400的使用环境;图2示出了根据本发明的半导体存储卡的内部结构;图3示出了TRM 1(图2所示)的硬件结构;图4示出了在所述TRM 1中由掩模ROM 6和CPU 7(两者都示于图3)构成的部分的软件结构;图5示出了外部快闪存储器2和内部EEPROM 3(两者都示于图3)的逻辑格式;图6示出了用于EC客户应用22的扩展区、认证区23和非认证区24(图5所示)的内部结构;图7示出了分区的结构;图8A示出了双FAT的结构,图8B示出了根目录入口的结构,而图8C示出了用户区的结构;图9示出了名字为EOB001.SE1的文件根据簇的尺寸被划分为五个片段,并且所述片段分别存储在簇003、004、005、00A和00C中;图10示出了被分开存储在多个簇中的文件“EOB001.SE1”的根目录入口和FAT的例子;图11示出了API 10(图4所示)的结构;图12A示出了所述读/写处理程序14如何对文件进行写入操作,而图12B示出了所述读/写事件处理程序14如何对文件进行读出操作;图13示出了针对删除处理程序16(图11所示)的特性的所述API10的内部结构;图14示出了清除操作管理表的一个例子;图15示出了事件分析处理程序11(图11所示)的步骤的流程图;图16示出了非命令执行处理程序(not-command-executing)12(图11所示)的步骤的流程图;图17示出了所述读/写处理程序14的步骤的流程图;图18示出了删除处理程序16(图11所示)的步骤的流程图;图19示出了清空子程序的步骤的流程图;图20示出了当对如图10中所述的存储文件生成一个删除事件时,所述删除处理程序16的操作;图21示出了由所述非命令执行处理程序12和所述删除处理程序16所进行的重写操作;图22示出了根据第二实施例清除操作管理表的例子;图23示出了根据第二实施例的清空子程序的步骤;图24示出了反向清空子程序的步骤的流程图;图25示出了根据第四实施例的存储模块的结构;图26比较了快闪存储器和FeRAM的性能;图27示出了存储例如文件入口、FAT和清除操作管理表等频繁更新的数据的FeRAM;图28示出了在根据第五实施例的所述TRM 1中存储器3的结构。
最佳实施方式下面介绍本发明的半导体存储卡的实施例。根据第一实施例的半导体存储卡是具有IC卡的内建防篡改模块的SDeX存储卡。SDeX存储卡类似于SD存储卡,用作SD便携装置的存储介质,并具有IC卡的内建防篡改模块。另外,根据第一实施例的所述SDeX存储卡400(图1中)能够与接触和非接触通信方式的外部装置通信。
首先,介绍如何使用根据本发明的所述半导体存储卡(SDeX存储卡400)。所述SDeX存储卡400连接到例如手机等SD便携装置,并且用在图1所示的环境中。图1示出了所述SDeX存储卡400的使用环境。
图1所示的环境包括一个电子商务(EC)服务器100、一个卡读/写器200、一个无线基站210,以及一个SD便携装置300。
所述EC服务器100通过所述卡读/写器200和所述无线基站210以及一个网络为所述SDeX存储卡400提供EC服务。在所述EC服务器100上执行多个EC应用程序,并且每个所述应用程序为所述SDeX存储卡400提供唯一的EC服务。在所述EC服务器100上执行的EC应用程序是服务器应用程序,并且它们中的每一个提供不同的EC服务。在图1中,n种EC服务的EC服务器应用程序分别用S_APL1、2、3、...、n来简单表示。这里,有n种服务器应用程序。所述EC服务器100通过所述网络、所述卡读/写器200和所述无线基站210对所述SDeX存储卡400发出EC命令来提供EC服务。
例如,所述卡读/写器200是在信用卡公司和金融机构的自动提款机或商店的收银机中包括的装置。所述卡读/写器200为所述SDeX存储卡400供电,并对所述SDeX存储卡400进行非接触输入/输出。所述卡读/写器200连接到所述网络。通过所述卡读/写器200,所述SDeX存储卡400接收由所述EC服务器100提供的EC服务。
所述无线基站210布置在建筑和电线杆的顶部。所述无线基站210通过空气与移动电话类型的所述SD便携装置300进行数据输入/输出。所述无线基站210连接到所述网络。通过所述无线基站210,所述SD便携装置300也接收由所述EC服务器100提供的EC服务。
所述SD便携装置300以所述SDeX存储卡400连接到所述SD便携装置300的方式来获得对所述SDeX存储卡400的访问。在所述SD便携装置300中安装浏览器软件等,从而用户能够通过所述浏览器的用户界面获得对所述SDeX存储卡400的文件系统(下文中称作FS)的访问。以所述SD便携装置300向所述SDeX存储卡400发出一条由SD存储卡定义的SD命令,并从所述SDeX存储卡400接收对所述命令的响应的方式来进行这种文件系统的访问。当所述SD便携装置300引导所述SDeX存储卡400时,所述SDeX存储卡400并入所述SD便携装置300中,从而起到一块IC卡的作用。这里,在所述SD便携装置300的背面埋入一个螺旋天线。当所述SD便携装置300用作IC卡时,所述螺旋天线从所述卡读/写器200向所述SDeX存储卡400供电。另外,所述SD便携装置300交换所述SDeX存储卡400与所述EC服务器100之间的命令/响应。具体地,所述SD便携装置300封装来自所述EC服务器100的命令,并生成扩展的SD命令,并将所述扩展的SD命令输出到所述SDeX存储卡400。此外,所述SD便携装置300通过来自所述SDeX存储卡400的一个SD响应得到一个EC响应,并将所述EC响应输出到所述EC服务器100。当所述SD便携装置300引导所述SDeX存储卡400,从而它们用作一块IC卡时,它们处于“EC模式”。当所述SD便携装置300使用所述SDeX存储卡400作为存储介质时,它们处于“SD模式”。
当所述SDeX存储卡400处于所述SD模式时,它被用作SD存储卡。在所述SD模式中,所述SD便携装置300是所述SDeX存储卡400的宿主装置(host device)。在这种情况下,所述SDeX存储卡400用来存储从分布服务器下载到所述SD便携装置300的音频和视频数据。由此,所述宿主装置可以回放存储在所述SDeX存储卡400中的所述音频和视频数据。
在所述EC模式中,所述SDeX存储卡400用作IC卡。在所述EC模式中,所述SDeX存储卡400也连接到所述SD便携装置300。但是,所述SDeX存储卡400的宿主装置不是所述SD便携装置300,而是所述网络上的所述EC服务器100。所述SDeX存储卡400通过与所述SDeX存储卡400连接的所述SD便携装置300以及所述卡读/写器200和所述无线基站210与所述EC服务器100通信。以这种方式,在所述SDeX存储卡400与所述EC服务器100之间进行货币交易。
由于根据本实施例的所述SDeX存储卡400除了具有存储传送的(delivered)音频和视频数据的功能之外还具有作为IC卡的功能,这能为用户提供更大的方便。
这里,所述SDeX存储卡400在根据图1的所述EC模式中通过所述卡读/写器200获得对所述EC服务器100的访问。或者,所述SDeX存储卡400可以用所述SD便携装置300通过所述无线基站210和所述网络访问所述EC服务器100的方式来获得对所述EC服务器100的访问。
下面的部分介绍如何制造根据本发明的所述半导体存储卡。根据本发明的所述半导体存储卡具有如图2和图3所示的内部结构,并且可以工业化制造。
如图2所示,一个连接器、一个防篡改模块芯片(TRM)1和一个具有多达256兆字节容量的快闪存储器2封装在根据本发明的所述半导体存储卡中。
存在各种关于防止纂改的定义。但是,防止纂改的一般定义如下(1)即使从物理上打开TRM芯片,也无法获知其内部结构。
(2)即使电磁波照射到TRM芯片上,也无法获知其内部结构。
(3)在输入到TRM芯片的数据长度与所述数据的处理时间之间存在非线性的关系。
(4)通过基于输入数据的错误的反向操作(reverse operation)不能得到输出数据。
由于这四个特性,所述TRM 1可以抵抗各种反向操作。下面的部分介绍所述TRM 1中的硬件元件。
图3示出了所述TRM 1中的硬件结构。如图3所示,在所述TRM 1中封装一个内部EEPROM 3、一个外部存储器控制单元4、一个主接口模块(HIM)5、一个掩模ROM 6、一个CPU 7,以构成一个微计算机系统。
所述内部EEPROM 3是可读和可写的内部存储器。封装成所述TRM 1的所述微计算机系统每单位面积表现出高的制造成本。在所述TRM 1中的所述内部EEPROM 3具有32K字节的容量。图2所示的所述快闪存储器2在下文中有时被称作外部存储器,以与所述内部EEPROM 3相区别。
所述外部存储器控制单元4是专门用来访问所述外部快闪存储器2的电路。根据由所述SD便携装置300发出的一条SD命令来进行对所述外部快闪存储器2的访问。
所述HIM 5根据由所述SD便携装置300发出的SD命令的命令编号将SD命令分类。所述SD命令编号是从1到m的数字,或(m+1)或更大的扩展编号。当一条SD命令的SD命令编号落在从1到m的范围内时,所述HIM 5输出所述SD命令到所述外部存储器控制单元4。当一条SD命令的SD命令编号为(m+1)或更大时,所述HIM 5得到一条已经被封装为扩展SD命令的EC命令,并将所述EC命令输出到所述CPU7。
所述掩模ROM 6预先存储Java虚拟机和一个应用程序。当所述SDeX存储卡400引导所述SD便携装置300时,所述引导从所述掩模ROM 6中的一个预定地址开始。由此,所述SD便携装置300被激活而处于所述EC模式。
所述CPU 7执行存储在所述掩模ROM 6中的一个程序。
图4示出了在所述TRM 1中由所述掩模ROM 6和CPU 7构成的部分(图3所示)的软件结构。用虚线wk1包围的部分是等效于一块IC卡的模块。所述TRM 1的其余部分是等效于一块SD存储卡的模块。
等效于一块SD存储卡的所述TRM 1的所述部分包括所述外部存储器控制单元4和所述HIM 5。HIM 5不仅具有作为SD存储卡的功能,而且还有作为所述SD存储卡等效模块与所述IC卡等效模块之间的第一接触的功能。
所述IC卡兼容模块具有分层结构。在所述分层结构中,所述内部EEPROM 3处于底层(物理层)。应用接口(API)10位于直接处于所述内部EEPROM 3所在层之上的层中。所述Java虚拟机9位于直接处于所述API 10所在层之上的层中。EC客户应用程序8处于顶层。应当注意,在所述SD存储卡兼容部分中的所述外部存储器控制单元4位于类似于所述内部EEPROM 3的物理层。
以下的部分介绍在图4中所示的软件结构(所述EC客户应用程序8、所述Java虚拟机9和所述API 10)。
所述EC客户应用程序8是用Java编写的一种EC应用程序,并根据用户的指令获得对所述EC服务器100的访问。由于有分别对应于不同EC服务的多种EC服务器应用程序在所述EC服务器100上运行,所以在所述SDeX存储卡400上运行分别对应于不同EC服务的多种EC客户应用程序。在图4中,示出EC客户应用程序C_APL 1、2、3、...、n分别对应于所述EC服务器100上的EC服务器应用程序(S_APL1、2、3、...、n)。所述EC客户应用程序8通过所述卡读/写器200、所述无线基站210和所述网络向所述EC服务器100上的所述EC服务器应用程序发送命令,并从所述EC服务器应用程序接收命令,以得到各种EC服务。当从一个EC服务器应用程序接收到的EC命令是数据写入命令时,所述EC客户应用程序8通过所述Java虚拟机9向所述API 10输出所述EC命令。
此外,在所述EC模式中,所述EC客户应用程序8根据用户的指令来获得对所述外部快闪存储器2和所述内部EEPROM 3的访问。所述访问包括文件访问,例如,创建文件和对所述文件进行读和写操作。
所述Java虚拟机9(图4中的JavaCard VM(注册商标))将编写所述EC客户应用程序8的Java语言转换为所述CPU 7的自身代码,并使所述CPU 7执行所述EC客户应用程序8。
所述API 10根据由所述EC客户应用程序8发出的一条命令从所述外部快闪存储器2和所述内部EEPROM 3读出数据或者向所述外部快闪存储器2和所述内部EEPROM 3写入数据。在上述部分中,已经介绍了所述SDeX存储卡400的软件结构。
在下面的部分中介绍所述外部快闪存储器2和所述内部EEPROM 3的逻辑格式。图5示出了所述外部快闪存储器2和所述内部EEPROM 3的逻辑格式。所述外部快闪存储器2和所述内部EEPROM 3具有两个存储空间,即,sm1和sm2。所述存储空间sm1可以由所述TRM 1中的所述CPU 7访问,并由一块用于EC客户应用程序21的区域和一块用于所述EC客户应用程序22的扩展区域构成。所述存储空间sm2可以由所述SD便携装置300访问,而不通过所述TRM 1中的所述CPU 7。所述存储空间sm2由一个认证区23和一个非认证区24构成。所述认证区23和非认证区24是SD存储卡的存储区,并且在日本专利No.3389186中进行了说明。
图6示出了具有根据ISO/IEC 9293的文件系统结构的用于所述EC客户应用程序的所述扩展区域22、所述认证区23和所述非认证区24的结构。但是,所述ISO/IEC 9293文件系统结构仅仅用作例子,并且是为了方便而选择的。用于所述EC客户应用程序的所述扩展区域22、所述认证区23和所述非认证区24可以具有其它的文件系统结构,例如,通用磁盘格式(UDF)。一般而言,可以采用一种片段长度可变并且在入口信息中显示起始地址和数据长度的文件系统结构。
用于所述EC客户应用程序的所述扩展区域22由所述内部EEPROM 3上的区域22a和所述外部快闪存储器2上的安全快闪区域22b构成。所述安全快闪区域22b具有分区1、2、3、...、n,即,文件系统区。另一方面,在所述内部EEPROM 3中的所述区域22a包括一条主引导记录和用于分区的参考表(分区表1、2、3、...、n)。
在用于所述EC客户应用程序的所述扩展区域22、所述认证区23和所述非认证区24中的分区具有相同的内部结构。图7示出了这种分区结构。
分区包括一个分区引导扇区、一个双文件分配表(FAT)、一个根目录入口以及一个用户区。
所述分区引导扇区是显示关于所述分区信息的表。
所述双FAT包括根据ISO/IEC 9293的两个FAT。每个FAT包括与簇一一对应的多个FAT入口。每个FAT入口表示相应的簇是否被使用。如果一个相应的簇没有被使用,则FAT入口的值设为“0”。如果使用了相应的簇,则FAT入口的值设为表示簇之间的链接关系的簇编号的值,也就示说,在所述相应的簇之后下一个要读取的簇。在图8A中的虚线ff1表示在一个FAT中包括的多个FAT入口002、003、004、005......。赋予每个FAT入口的编号(002、003、004、005......)表示相应的簇,也就是说,对应于FAT入口的簇的簇编号。
所述根目录入口包括在根目录中的多个文件入口,其中的每一个文件入口对应一个文件。每个文件入口包括表示文件名的“文件名”、显示所述文件的文件扩展名的“文件扩展名”、表示存储所述文件的起始部分的簇的“第一簇号”、表示所述文件属性的“文件属性”、表示所述文件存储时间的“存储时间”、表示所述文件存储日期的“存储日期”、表示所述文件的数据长度的“文件长度”的入口。
在所述用户区,存储了一个文件,并且最小的单位是簇。在图8C中的虚线ff2表示在所述用户区中的多个簇002、003、004、005.....。在图8C中的编号(002、003、004、005、006、007、008......)是用十六进制表示的三位数字的簇编号,用来识别每个簇。由于访问所述数据区最小以簇为单位进行,所以在所述数据区中的位置用所述簇编号来表示。
这里,下面参考图9介绍在根目录中如何存储名称为EOB001.SE1的文件,也就是说,存储文件的一种示例方法。这里,“EOB001.SE1”的“EOB”是对EC对象的简写形式,而“SE”是按照“安全EC”来命名的扩展名。如上所述,由于在所述数据区中最小的可访问单位是簇,所以所述文件EOB001.SE1需要以簇为最小单位存储在所述数据区中。所述文件EOB001.SE1首先被划分为每一个都具有簇的尺寸的片段,并分别写入簇中。图9示出了所述文件EOB001.SE1根据簇的尺寸被划分为五个片段,并且所述片段分别存储在簇003、004、005、00A和00C中。
如果所述文件EOB001.SE1如上所述分为片段,则需要如图10所示设置一个目录入口和一个FAT。
图10示出了当所述文件EOB001.SE1被分开存储在多个簇中时的目录入口和FAT,来作为一个例子。根据图10,由于所述文件EOB001.SE1的起始部分存储在簇003中,所以在根目录入口中的所述“第一簇号”入口显示为003,即,存储所述起始的所述簇的簇编号。从图10可以看到,所述文件EOB001.SE1的两个随后的片段分别存储在簇004和005中。存储所述文件EOB001.SE1的起始部分的所述簇003对应于FAT入口003(004)。这里,所述FAT入口003显示表示存储了所述起始部分后面的所述簇004的004。此外,存储了所述起始部分之后的两个片段的所述簇004和005对应于所述FAT入口004(005)和005(00A)。这些FAT入口显示005和00A,表示存储随后的片段的所述簇005和00A。
如果根据箭头fk1、fk2、fk3、fk4和fk5追溯在FAT入口中的簇编号,则可以读出构成所述文件EOB001.SE1的所有片段。从上述介绍可以看到,对于所述SDeX存储卡400的所述用户区的最小可访问单元是簇,并且簇与FAT入口一一对应。对应于存储EOB文件的末尾的簇(图9中的簇00C)的FAT入口显示为“FFF”,表示相应的簇存储所述文件的最后一个片段。
下面的部分介绍所述API 10的结构。这里,事件是表示输入到所述API 10的例如EC命令、发生硬件中断和输入通信数据的统称。所述API 10由响应于所述API 10内部和外部发生的事件而启动的程序构成。这种程序被称作“事件处理程序”,并且在示出所述API 10的结构的图11中示出。如图11所示,所述API 10包括事件处理程序,例如,事件分析处理程序11、非命令执行处理程序12、定时器处理程序13、读/写处理程序14、加密密钥表15和删除处理程序16。
所述事件分析处理程序11分析发生在所述API 10的内部和外部的事件,并根据所述分析结果生成一个API内部事件。在所述API 10的外部发生的最普通的事件是由所述EC客户应用程序8发出的EC命令。所述事件分析处理程序11分析EC命令的内容。如果EC命令表示对文件进行读和写操作,则所述事件分析处理程序11生成文件读/写事件和命令起始事件的内部事件。如果EC命令表示文件删除,则所述事件分析处理程序11生成文件删除事件和命令起始事件的内部事件。这些内部事件的生成分别引起对文件的读和写操作的事件处理程序或者删除文件的事件处理程序的操作。
所述API内部事件包括表示由一个事件处理程序进行的过程已经完成的事件(完成事件)。当执行EC命令的事件处理程序生成一个完成事件时,所述事件分析处理程序11输出EC响应到发出所述EC命令的所述EC客户应用程序8。
当在所述API 10中没有其它事件处理程序正在执行命令时,所述非命令执行处理程序12工作。所述非命令执行处理程序12的驱动周期和执行EC命令的其它事件处理程序的驱动周期是互斥的。也就是说,如果没有其它事件处理程序工作,则所述非命令执行处理程序12工作。
当生成一个命令起始事件时,所述定时器处理程序13开始测量时间,并且当所测得的时间等于一个预定的时间周期时,提醒时间到。所述事件分析处理程序11监视所述定时器处理程序13是否提醒时间到,从而能够强行使由一个事件处理程序进行的冗长的操作停止。这种强行停止通过所述事件分析处理程序11的停止事件来实现。
当生成一个读/写事件时,所述读/写处理程序14对所述外部快闪存储器2和所述内部EEPROM 3上的一个文件进行读/写数据。图12A示出了所述读/写处理程序14如何对一个文件进行写入操作。
以下面的方式对文件进行写入操作。所述读/写处理程序14从所述EC客户应用程序8(C_APL 1、2、3、...n)接收要写入数据的文件的名字和要写入的数据(参看图12A(1)和(2))。此外,通过所述读/写处理程序14从所述加密密钥表15得到分配给要写入数据的所述文件的加密密钥(3)。之后,用从所述加密密钥表15得到的所述加密密钥将从所述EC客户应用程序8(C_APL 1、2、3...n)接收的数据加密(4),从而将所述数据写入所述文件(5)。图12B示出了所述读/写事件处理程序14如何对一个文件进行读出操作。
以下面的方式对文件进行读出操作。所述读/写处理程序14从所述EC客户应用程序8(C_APL 1、2、3...n)接收要读出的文件的名字。在从所述外部快闪存储器2读出加密的数据之后(图12B(1)),从所述加密密钥表15得到分配给要读出数据的所述文件的加密密钥(2)。然后,用得到的加密密钥将所述读出的数据解密(3),从而将所述数据传送给所述EC客户应用程序8(C_APL1、2、3...n)((4)和(5))。
所述加密密钥表15在文件的加密密钥与文件名之间显示出一一对应的关系。当所述EC客户应用程序8创建一个文件时,由所述读/写处理程序14生成一个加密密钥,并记录在所述加密密钥表15中。当打开文件并且对文件进行读出和写入操作时,要查阅在所述加密密钥表15中保存的加密密钥。
当生成一个删除事件时,所述删除处理程序16工作。当生成一个删除事件时,在创建清除操作管理表之后,由所述删除处理程序16用空代码重写构成一个文件的文件入口、FAT和文件实体。在本实施例中的文件删除表示重写文件的加密密钥、文件入口和FAT以及重写所述文件的文件实体。这里,重写表示用空代码(清空)或以特殊的方式重写。所述删除处理程序16对前一种重写赋予优先权。由于后一种重写需要大量的处理时间,所以可能要由其它事件处理程序来进行。但是,根据本发明,对于需要大量处理时间的对一个文件的文件实体的重写是在多个空闲周期中秘密地且分开地进行。
图13示出了针对本发明的上述特性的所述API 10的内部结构。如图13中的箭头cw1所示,当生成一个删除事件时,由所述删除处理程序16创建一张清除操作管理表,然后将其写入所述TRM 1中的所述存储器3中。清除操作管理表示出了应当如何进行重写。在重写文件入口和FAT之前创建这种清除操作管理表,以便通知其它事件处理程序存在应当被清空的片段以及文件的多少数据已经被清空了。如果已经创建了一张清除操作管理表,则所述非命令执行处理程序12、所述读/写处理程序14和所述删除处理程序16根据所述清除操作管理表重写一个片段的X(单元长度)个字节(如箭头nc1和2所示)。之后,更新所述清除操作管理表。如所述箭头nc1和2所示,在本实施例中可以清空在所述外部快闪存储器2和所述内部EEPROM 3中存储的文件。但是,这里只介绍了对存储在所述外部快闪存储器2中的文件的清空操作,以避免繁冗的说明。在本实施例中,无论文件的文件实体是否被划分成片断,都能够进行清空操作。但是,这里只介绍了当文件的文件实体是成片断时进行的清空操作,以避免重复的介绍。(由此,在下面的部分相应用“片段”来代替“文件实体”)。
图14示出了清除操作管理表的一个例子。清除操作管理表由与片段一一对应的多个记录构成。每个记录具有四个入口“有效标志”显示是否正在清除一个相应的片断或者已经完全清除;“起始地址”表示所述片段的起始地址;“清除地址”表示已清除的地址,如果对所述片段的清除操作正在进行,则显示已经清空了所述片段的多少数据;而“结束地址”表示所述片段的结束地址。所述删除处理程序16根据在上述FAT或文件入口中描述的地址来设置起始地址和结束地址的值。
通过用计算机语言编写执行图15、16、17、18和19中所示的步骤的程序来生成在所术API 10中的所述事件分析处理程序11、所述非命令执行处理程序12、所述读/写处理程序14和所述删除处理程序16。图15、16、17和18分别是示出了所述事件分析处理程序11、所述非命令执行处理程序12、所述读/写处理程序14和所述删除处理程序16的步骤的流程图。图19是示出了清空操作步骤的流程图。清空操作表示用空代码重写片段的X个字节。由于清空操作是由所述非命令执行处理程序12、所述读/写处理程序14和所述删除处理程序16执行的,所以清空操作被认为是子程序。
图15是示出了所述事件分析处理程序11的步骤的流程图。
在图15中的步骤S101到S103形成扫描事件的循环过程。该循环过程检查是否有外部事件发生(所述步骤S101),由所述读/写处理程序14和所述删除处理程序16进行的操作是否完成(所述步骤S102),以及所述定时器处理程序13的过程是否完成(所述步骤S103)。
如果在所述步骤S101中检测到外部事件的发生,则执行从步骤S104到S109的过程。
在所述步骤S104中,进行事件分析,以判断一个外部事件是否是EC命令,如果所述判断是肯定的,则分析所述EC命令的内容。如果外部事件是指示对所述外部快闪存储器2上的文件进行读和写操作的EC命令,也就是说,一条读/写命令,则生成一个读/写事件和一个命令起始事件(所述步骤S106)。然后,所述事件分析处理程序11的所述过程回到所述步骤S101到S103的循环过程。
如果外部事件是指示删除所述外部快闪存储器2上的文件的EC命令,也就是说,一条删除命令,则生成一个删除事件和一个命令起始事件(所述步骤S108)。然后,所述事件分析处理程序11的所述过程回到所述步骤S101到S103的循环过程。
如果发生除上述例子之外的外部事件,则进行相应于所述事件的操作(所述步骤S109)。然后,所述事件分析处理程序11的所述过程回到所述步骤S101到S103的循环过程。
当由所述读/写处理程序14和所述删除处理程序16进行的过程完成时,执行所述步骤S110和S111。在这些步骤中,一个EC响应输出到已经发出一条命令的所述EC客户应用程序8,并在所述API 10中生成一个命令结束事件。
当所述定时器处理程序13提醒时间到的时候,执行所述步骤S112。在该步骤中,生成一个停止事件。
图16是示出了所述非命令执行处理程序12的过程的流程图。所述步骤S1和S2形成一个循环过程,在该循环过程中检查是否生成一个命令起始事件(所述步骤S1)以及是否存在一张清除操作管理表(所述步骤S2)。在所述步骤S1和S2的每一次循环中,在所述步骤S2中判断是否存在一张清除操作管理表。如果存在清除操作管理表,则调用一个清空子程序(所述步骤S4)。这里,在没有其它事件处理程序工作的空闲周期中执行由所述非命令执行处理程序12进行的片段的重写。因此,即使由于半导体存储卡的特性使得重写文件要花费很多时间,用户也不会受到重写花费的时间长的困扰。
图17是示出了所述读/写处理程序14的过程的流程图。在所述步骤S20中从所述加密密钥表15得到对应于要进行读出和写入操作的文件的加密密钥。在所述步骤S21中判断是否进行写入操作。如果进行写入操作,则使用在所述步骤S20中得到的所述加密密钥将来自所述EC客户应用程序8的数据加密(所述步骤S22),并将所述加密的数据写入所述安全快闪存储器2中(所述步骤S23)。
另一方面,如果在所述步骤S21中的所述判断表示要进行读出操作,则从所述安全快闪存储器2中读出所述EC客户应用程序8所需要的加密数据(所述步骤S24)。然后,使用在所述步骤S20中得到的所述加密密钥来将从所述安全快闪存储器2中读出的所述加密数据解密,并传送给所述EC客户应用程序8(所述步骤S25)。
在所述步骤S26中判断是否存在一张清除操作管理表。如果不存在清除操作管理表,则完成所述过程。但是,如果存在清除操作管理表,则在所述步骤S27中进行清空操作。
图18是示出了所述删除处理程序16的过程的流程图。首先,在所述步骤S11中,以与文件片段一一对应的方式生成记录。在所述步骤S12中,在每个记录中的起始地址和结束地址的值设置为相应的文件片段的起始和结束地址的值。在所述步骤S13中,在每个记录中的有效标志的值设为“1”,表示一个相应的片段正在清除。在所述步骤S14中,在每个记录中的清除地址的值设为相应的文件片段的起始地址的值。
在所述加密密钥表15的多个加密密钥中,在所述步骤S15中删除对应于要被删除的文件的加密密钥。所述加密密钥的删除使得所述文件不可能被解密。
在所述步骤S16中清空文件入口之后,在所述步骤S17中判断是否生成一个停止事件。当生成一个停止事件时,终止所述删除处理程序16的所述过程。
如果没有生成停止事件,则在所述步骤S18中清空FAT。由于在该阶段已经清空了文件入口和FAT,构成文件的文件实体的片段已经失去了彼此之间的链接关系,并且变得彼此分离。
之后,在所述步骤S19中判断是否生成停止事件。如果生成停止事件,则终止所述删除处理程序16的所述过程。如果没有生成停止事件,则在所述步骤S20中清空文件的片段。
随后,重复所述步骤S19到S20的所述过程。以这种方式,继续由所述删除处理程序16重写片段,直到所述定时器处理程序13提醒时间到。
图19是示出了清空子程序的过程的流程图。在所述步骤S31中选择记录中有效标志的值设为“1”的第一个记录作为记录s。在所述步骤S31之后判断从清除地址到结束地址的数据长度是大于还是小于单元长度X,以确定将要进行的步骤。在所述步骤S32中进行该判断。即,判断将所述清除地址加上重写的所述单元长度X得到的地址是否小于所述记录s的所述结束地址。如果所述判断是肯定的,则随后进行所述步骤S33到S35。在这些步骤中,所述外部存储器控制单元4被指示从所述清除地址开始在一个相应的片段中重写X个字节的数据(所述步骤S33)。当所述外部存储器控制单元4的重写完成时(所述步骤S34),所述清除地址更新为(所述清除地址+X)(所述步骤S35)。
如果从所述清除地址到所述结束地址的数据长度大于所述单元长度X,则进行所述步骤S36到S39以处理多余的数据长度。根据这些步骤,转换所述单元长度X,从而使其等于从所述结束地址中减去所述清除地址得到的值(所述步骤S36)。之后,通知所述外部存储器控制单元4从所述清除地址开始的X个字节的数据用空代码重写(所述步骤S37)。当所述重写完成时,所述记录s的有效标志的值设为“0”(所述步骤S39)。在所述步骤S40中判断在所有记录中的有效标志的值是否为“0”。如果所述判断是肯定的,则所述过程转到所述步骤S41,从而删除清除操作管理表。
这里作为例子,参考图20和21介绍由所述非命令执行处理程序12、所述读/写处理程序14和所述删除处理程序16进行的删除在根目录下存储的文件名为EOB001.SE1的文件的操作。图20示出了在所述删除处理程序16根据删除事件对图10中所述存储的文件操作之后,所述文件的根目录入口和FAT。当生成对所述文件“EOB001.SE1”的删除事件时,创建所述文件的文件片段的清除操作管理表,并且用空代码重写所述文件的所述文件入口中的文件名、文件扩展名和第一簇号入口以及FAT入口003、004、005、00A和00C。在所述删除处理程序16进行所述重写之后,开始由所述非命令执行处理程序12进行操作。
图21示出了在由所述非命令执行处理程序12和所述删除处理程序16进行的所述重写之后的所述根目录入口和所述FAT。由于已经由所述删除处理程序16创建所述文件的文件片段的清除操作管理表,所以已经用空代码重写存储所述片段的簇003、004、005、00A和00C。
如上所述,如果由所述EC客户应用程序8发出的一条EC命令指示文件删除,则继续由所述删除处理程序16进行清空操作,直到所述定时器处理程序13提醒时间到。根据所述时间到的发生,终止所述删除处理程序16的操作。因此,可以缩短从所述EC客户应用程序8发出EC命令到所述事件分析处理程序11发出EC响应的时间周期。这能够缩短处理EC命令所需的处理时间,从而不使所述EC客户应用程序8的用户失望。
还没有被清空的所述文件的数据的重写工作量被划分开在多个空闲周期中由除所述删除处理程序16之外的事件处理程序进行,例如,所述非命令执行处理程序12和所述读/写处理程序14。因此,即使对所述EEPROM 3的重写操作需要长时间,并且每个片段具有大尺寸的数据,也可以完成文件实体的重写,而不会由于冗长的删除过程而使用户感到厌烦。
此外,对于读出加密文件来说至关重要的加密密钥在最开始首先被清空。因此,即使用户在所述删除处理程序16进行所述删除的过程中间将所述SDeX存储卡400从所述SD便携装置300中粗暴地用力拔出,仍然能够充分保护所述加密文件。
第二实施例根据第一实施例,用空代码重写片段是从所述片段的起始地址向结束地址进行,即,以正方向进行。根据第二实施例,重写不仅以正方向进行,而且以各种不同的方式进行。
图22示出了根据第二实施例的清除操作管理表的一个例子。如图22所示,所述表的记录还具有清除方法的入口。
在清除方法入口中,设置正向、反向、偶/奇和奇/偶中的一个。当所述清除方法入口设置为正向时,用空代码重写片段如第一实施例那样从清除地址向结束地址顺序进行。当所述清除方法入口设置为反向时,重写则从清除地址向起始地址进行。
当所述清除方法入口设置为偶/奇时,从清除地址向结束地址首先清空偶数地址的数据,然后再清空奇数地址的数据。
当所述清除方法入口设置为奇/偶时,从清除地址向结束地址首先清空奇数地址的数据,然后再清空偶数地址的数据。
片段的清除方法可以由所述删除处理程序16轮流选择。更具体地,对于第一个片断可以选择正向清空操作,第二个选择反向清空操作,第三个选择偶/奇清空操作,第四个选择奇/偶清空操作。此外,对于第五个和之后的片段可以分别选择正向、反向、偶/奇和奇/偶清空操作。
或者,可以随机选择片段的清除方法。具体地,由所述删除处理程序16随机生成从1到4的随机数,用由所述数字中的一个表示的清除方法来进行清空操作。
此外,可以根据从所述EC客户应用程序8收到的参数来确定清除方法。
图23示出了根据第二实施例的清空子程序的过程。在所述步骤S31中在记录中选择有效标志的值设为“1”的第一个记录来作为记录s。在所述步骤S51中查阅所述记录s的所述清除方法入口。如果所述清除方法入口设为正向,在所述步骤S50中以与图19的流程图中所示的步骤S32到S40相同的过程进行清空操作。
如果所述清除方法入口设为反向(所述步骤S53),则以图24的流程图介绍的过程进行清空操作(所述步骤S60)。
如果所述清除方法入口设为偶/奇(所述步骤S54),则以与图19的流程图中的所述步骤S32到S40相同的过程对清除地址后面的偶数地址的数据进行清空操作(所述步骤S55)。如果偶数地址的数据被完全清空(所述步骤S56),则在所述步骤S57中以与图19的流程图中的步骤S32到S40相同的过程对所述清除地址后面的奇数地址的数据进行清空操作。
如果所述清除方法入口设为奇/偶(所述步骤S58),则以与图19的流程图中的步骤S32到S40相同的过程对清除地址后面的奇数地址的数据进行清空操作(所述步骤S57)。如果奇数地址的数据被完全清空(所述步骤S59),则在所述步骤S55中以与图19的流程图中的步骤S32到S40相同的过程对所述清除地址后面的偶数地址的数据进行清空操作。
图24是示出了反向清空操作的过程的流程图。当与图19介绍的所述清空子程序比较时,在所述反向清空操作中的起始地址和结束地址之间的关系被颠倒。在所述步骤S61中判断通过从清除地址中减去所述重写单元长度X得到的地址是否大于记录s的起始地址。如果所述判断是肯定的,则在所述步骤S62中所述外部存储器控制单元4被指示从片段的一个地址(所述清除地址-X)开始重写X个字节的数据。如果所述外部存储器控制单元4完成重写(所述步骤S63),则在所述步骤S64中将所述清除地址更新为(所述清除地址-X)的地址。
如果地址(所述清除地址-所述重写单元长度X)小于所述记录s的起始地址,则转换所述单元长度X,使其等于通过从所述清除地址中减去所述起始地址得到的值(所述步骤S65)。然后,在所述步骤S66中指示所述外部存储器控制单元4从所述起始地址开始用空代码重写X个字节的数据。如果完成所述重写(所述步骤S67),则所述记录s的有效标志的值设为“0”(所述步骤S68)。在所述步骤S69中判断在所有记录中的有效标志的值是否设为“0”。如果所述判断是肯定的,则在所述步骤S70中删除所述清除操作管理表。
如上所述,在第二实施例中可以为每个片段分配不同的清除方法。由此,组合各种清除方法,从而可以防止要被删除的片段的内容泄露。
第三实施例根据第三实施例,如果半导体存储卡正在从所述卡读/写器200接受供电,则限制进行在第一实施例中介绍的用空代码重写的操作。当所述SDeX存储卡400通过所述卡读/写器200获得对所述EC服务器100的访问时,如在第一实施例中所述,所述SDeX存储卡400通过在所述SD便携装置300背面的螺旋天线接受供电。由于无线电波供电是不稳定的,并且功率较小,所以最好避免在所述SDeX存储卡400上的不必要的负载。
根据所述第三实施例,由所述SD便携装置300和所述删除处理程序16进行下面的操作。
当所述SD便携装置300接近所述卡读/写器200时,它输出一条扩展SD命令到所述SdeX存储卡400,以便通知它收到了非接触电源。另一方面,当所述SD便携装置300远离所述卡读/写器200时,它输出一条扩展SD命令到所述SdeX存储卡400,以便通知SDeX非接触供电已经停止。通过所述SD便携装置300是否从所述卡读/写器200收到查询命令来确定所述SD便携装置300是接近还是远离所述卡读/写器200。
当从所述SD便携装置300收到通知存在非接触电源的扩展SD命令时,所述删除处理程序16进入非接触电源模式。如果所述删除处理程序16处于该模式,则生成文件入口和FAT的备份拷贝,并且根据生成的删除事件只重写文件入口和FAT。也就是说,只生成文件入口和FAT的备份拷贝,而不创建清除操作管理表。因此,其它事件处理程序不进行清空操作。
当之后所述SD便携装置300发出一条通知非接触电源已经停止的扩展SD命令时,所述删除处理程序16退出所述非接触电源模式,并根据文件入口和FAT的所述备份拷贝来创建一张清除操作管理表。由于生成了所述清除操作管理表,开始除所述删除处理程序16之外的事件处理程序的清空操作。
根据所述第三实施例,如上所述,如果所述SDeX存储卡400由来自所述卡读/写器200的电源进行操作,则不进行文件的文件实体的清空操作。因此,在所述SDeX存储卡400上没有施加不必要的负载。这可以实现所述SDeX存储卡400的稳定操作。
第四实施例在所述第一、第二和第三实施例中,在所述TRM 1中的所述存储器3和所述外部存储器2分别由EEPROM和快闪存储器构成。但是,根据第四实施例,在所述TRM 1中的所述存储器3和所述外部存储器2分别由两个存储器模块构成。图25示出了根据第四实施例的所述内部存储器3和所述外部存储器2分别的结构。如图25所示,EEPROM 3a和快闪存储器2a是主存储器模块,并且分别与第一到第六实施例中的所述EEPROM 3和所述快闪存储器2相同。除了这些主存储器模块之外,在第四实施例中分别为所述外部存储器2和所述内部存储器3提供辅助存储器模块2b和3b。这些辅助存储器模块2b和3b是铁电随机存取存储器(FeRAMs),并且它们的性能与快闪存储器的性能显著不同。图26比较了快闪存储器和FeRAM的性能。根据图26,快闪存储器价廉,并且适于存储大容量数据(在图中用○表示)。但是数据写入是以块为单位(用※1表示)。这里,这种块的尺寸随着快闪存储器容量的增加而增加。因此,写入小尺寸数据意味着性能的较大损失。此外,写入所需的时间长(10000ns),并且能够写入操作的次数少(1000000)。此外,只有在存储的数据被删除之后才能进行数据写入,这使得写入性能不稳定(用※2表示)。
另一方面,虽然FeRAM昂贵,并且不适于存储大容量数据(用△表示),但是数据写入的单位是字节,并且写入所需的时间短(30到100ns)。此外,能够写入操作的次数多。
考虑到这种性能的差别,如果把FeRAM用作存储频繁更新的文件入口、FAT等的辅助存储器模块,则可以补偿所述快闪存储器2a的写入性能。图27示出了存储例如文件入口、FAT和清除操作管理表等频繁更新的数据的FeRAM。
根据所述第四实施例,FeRAM用作存储例如文件入口和FAT等尺寸小并且频繁更新的数据的辅助存储器模块。这能够实现对文件入口和FAT的高速改写操作。
FeRAM具有破坏性读出的特性(用※4表示)。也就是说,一旦读出存储的数据,则所述存储数据的内容就从存储介质中删除。该特性对于彻底保证安全是首选的。但是,根据该特性,每次读出数据都要求再次写入所述读出的数据,这毕竟增加了数据写入的次数。最好采用磁阻RAM来避免破坏性读出的特性。
第五实施例在第四实施例中FeRAM用作辅助存储器模块。但是,在第五实施例中,只有FeRAM用于所述TRM 1中的所述存储器3。图28示出了根据所述第五实施例的所述内部存储器3的内部结构。这里,所述TRM1中的所述存储器3是小尺寸的。因此,即使FeRAM用于所述内部存储器3,所述存储器3的制造成本也不会显著增加。在所述第五实施例中,所述TRM 1中的所述存储器3仅由FeRAM构成,但是应当注意,所述存储器3也可以仅由MRAM构成。
第六实施例根据第六实施例,文件的管理信息用不同于所述文件的文件实体的加密密钥的密钥来加密。这种文件管理信息的加密密钥存储在所述TRM 1中的所述存储器3中。当指示删除文件时,在重写文件实体的加密密钥之前,所述删除处理程序16除了进行在所述第一实施例中介绍的过程外还进行文件管理信息的加密密钥的重写。
文件管理信息用不同的加密密钥来加密。由此,当指示删除一个文件时,不管管理信息的尺寸如何,所述文件立刻变得不可读。
修改例上述介绍没有提及本发明的所有实施例。本发明可以通过包括以下改型(A)到(E)的实施例来实现。但是,以下的修改没有包括在权利要求书中公开的可以由本领域的普通技术人员根据说明书、附图和申请时公知的技术想到的本发明的实施例。
(A)以一个EC客户应用程序作为例子,但是本发明也可用于其它应用。例如,本发明可以用于运输行业,例如,铁路、航空、公共汽车和高速公路公司等拥有的服务器装置上的服务器应用程序以及相应的客户应用程序。因此,在铁路车票闸门和登机手续中可以利用所述SDeX存储卡400。
或者,本发明可以用于政府和地方组织拥有的服务器装置上的服务器应用程序以及相应的客户应用程序。因此,所述SDeX存储卡400可以用于居民卡、各种证明和登记。
(B)由图15到19、23、24中所示的程序进行的信息处理是通过硬件资源,例如,CPU和EEPROM来物理实现的。也就是说,通过结合程序和硬件资源得到的物理单元进行信息处理,以实现一个特定的目的。以这种方式,可以分别实现在第一到第六实施例中介绍的所述SDeX存储卡400。
由程序进行的信息处理是通过硬件资源来物理实现。因此,在上述图中示出其过程的所述程序可以认为是利用了自然规律的技术创意的产品,并且程序本身可以被认为是一种发明。因此,图15到19、23和24公开了根据本发明的所述程序的实施例。
第一到第六实施例介绍了根据本发明的所述程序开发的实施例,其中所述程序集成在所述SDeX存储卡400中。但是,在第一到第六实施例中所示的程序可以独立于所述SDeX存储卡400来开发。这里,所述程序本身的开发表示以下动作(1)产生所述程序,(2)免费或收费地分配所述程序,(3)出租所述程序,(4)进口所述程序,(5)通过双向电子通信线路为公众提供所述程序以及(6)通过在商店橱窗为所述程序做广告以及通过小册子和目录的分发,向公众用户提供所述程序的分配或出租的活动。
通过双向电子通信线路提供所述程序的活动(5)的一个典型例子是程序下载服务和应用服务供应商(ASP)服务,所述程序下载服务是供应商将所述程序发送到用户,从而所述用户能够使用所述程序,所述应用服务供应商服务是通过电子通信线为所述用户提供所述程序的功能,但是所述程序本身由所述供应商保留。
(C)过程的时间顺序(temporal order),例如在图15到19、23和24中的流程图中每一幅的所述步骤的顺序被认为是用来指定发明的基本问题。因此,在上述流程图中的每一幅中所示的过程公开了如何使用控制方法。因此,这些流程图示出了使用根据本发明的所述控制方法的实施例。如果在每个流程图中的步骤是按所述的时间顺序来执行的,从而实现本发明的最初目的和效果,则在这些流程图中的所述过程的确是用于根据本发明的所述半导体存储卡的所述控制方法的实施例。
(D)在第一到第六实施例中,EEPROM用于所述TRM 1内部和外部的所述非易失性存储器。但是,所述内部和外部存储器可以是其它非易失性存储器,例如FeRAM。
(E)用移动电话型作为所述SD便携装置300的一个例子。但是,所述SD便携装置可以是消费者便携音频设备、机顶盒(STB)或移动电话。
在本发明的权利要求书中限定的本发明扩充或概括了在上面介绍的实施例以及所述实施例的改型。扩充或概括的程度基于在申请时相关技术中的技术状态。
但是,由于在权利要求书中限定的本发明是基于解决相关领域中的技术问题的方式,所以每条发明的范围不会脱离由相关领域中的普通技术人员实现的相关技术的范围。因此,在本权利要求书中限定的每条发明实质上对应于所述说明书中的公开。
工业适用性根据本发明的所述半导体存储卡为删除的文件提供高度保护,因此适于存储机密数据。由此,根据本发明的所述半导体存储卡可以用在例如消费设备领域等的工业界的各个领域。
权利要求
1.一种半导体存储卡,包括存储由实体和管理信息构成的文件的一个非易失性存储器;以及包括一个处理单元和一个内部存储器的一个防篡改模块,所述处理单元包括一个删除单元,如果生成对所述文件的一个删除事件,则能够进行(i)创建一个关于所述防篡改模块中的所述内部存储器的位置表,以及(ii)重写所述管理信息的操作,其中所述位置表表示所述实体的位置,并且当所述删除单元重写所述实体时由所述删除单元查阅。
2.根据权利要求1所述的半导体存储卡,其中所述处理单元(i)进行相应于由与所述半导体存储卡相连接的装置发出的一条命令的操作,并且(ii)进一步包括能够分析所述装置发出的所述命令并生成对应于所述分析结果的事件的一个分析单元,所述删除单元包括一个主删除单元,如果生成所述删除事件,则能够创建所述位置表并重写所述管理信息;以及一个副删除单元,如果生成一个不同于所述删除事件的事件,则根据所创建的位置表来重写所述实体。
3.根据权利要求2所述的半导体存储卡,进一步包括当生成所述删除事件时能够开始测量时间的一个定时器,其中所述主删除单元除了重写所述管理信息之外还重写所述实体的一部分,直到所述定时器提醒时间到,以及所述副删除单元重写没有被所述主删除单元重写的所述实体的其余部分。
4.根据权利要求3所述的半导体存储卡,其中所述位置表示出了(i)表示已经有多少所述实体被重写了的一个清除地址,以及(ii)从多种重写方法中选择的一种重写所述实体的方法,以及所述副删除单元根据在所述位置表中示出的所述重写方法重写所述实体,并且当每次所述副删除单元重写所述实体的一个预定长度时更新在所述位置表中示出的所述清除地址。
5.根据权利要求2所述的半导体存储卡,其中所述删除事件是当与所述半导体存储卡相连接的所述装置发出一条删除所述文件的命令时,由所述分析单元生成的,以及所述不同的事件是当所述处理单元完成相应于所述命令的所述操作时,由所述分析单元生成的一个命令结束事件。
6.根据权利要求5所述的半导体存储卡,其中所述主删除单元是响应于所述删除事件的生成而开始操作的一个删除处理程序;以及所述副删除单元是响应于所述命令结束事件的生成而开始操作的一个非命令执行处理程序。
7.根据权利要求2所述的半导体存储卡,其中所述删除事件是当与所述半导体存储卡相连接的所述装置发出一条删除所述文件的命令时,由所述分析单元生成的,以及所述不同的事件是读出事件和写入事件中的一个,当所述装置发出一条命令读取所述半导体存储卡中的一个不同的文件时,由所述分析单元生成所述读出事件,而当所述装置发出一条命令向所述半导体存储卡中的所述不同文件写入时,由所述分析单元生成所述写入事件。
8.根据权利要求7所述的半导体存储卡,其中所述主删除单元是响应于所述删除事件的生成而开始操作的一个删除处理程序,以及所述副删除单元包括在一个读/写处理程序中,所述读/写处理程序响应于所述读出事件和所述写入事件中的一种事件的生成而开始操作。
9.根据权利要求2所述的半导体存储卡,其中所述内部存储器存储加密所述实体的一个加密密钥,并且当生成所述删除事件时,所述主删除单元在重写所述文件的所述管理信息之前重写所述加密密钥。
10.根据权利要求9所述的半导体存储卡,其中用不同于所述实体的所述加密密钥的加密密钥来加密所述文件的所述管理信息,用于所述管理信息的所述加密密钥存储在所述内部存储器中,并且当生成所述删除事件时,所述主删除单元在重写所述实体的加密密钥之前重写所述管理信息的加密密钥。
11.根据权利要求9所述的半导体存储卡,其中所述文件的所述实体被划分为片段,并且所述位置表示出了(i)构成所述实体的每个片段的起始地址,以及(ii)一个标志,如果每一个所述片段没有被完全重写则该标志被设为“OFF”,而如果所述片段被完全重写则该标志被设为“ON”。
12.根据权利要求1所述的半导体存储卡,通过来自一个装置的接触或非接触电源来工作,其中只有当所述半导体存储卡通过来自所述装置的接触电源的方式工作时,所述处理单元才进行所述重写。
13.根据权利要求1所述的半导体存储卡,其中所述非易失性存储器由一个第一存储器模块和一个第二存储器模块构成,所述第二存储器模块的写入单位小于所述第一存储器模块的写入单位,以及所述管理信息存储在所述第二存储器模块中。
14.根据权利要求13所述的半导体存储卡,其中所述第二存储器模块是铁电随机存取存储器和磁阻随机存取存储器中的一种。
15.根据权利要求1所述的半导体存储卡,其中所述内部存储器由一个第一存储器模块和一个第二存储器模块构成,所述第二存储器模块的写入单位小于所述第一存储器模块的写入单位,以及所述位置表存储在所述第二存储器模块中。
16.根据权利要求15所述的半导体存储卡,其中所述第二存储器模块是铁电随机存取存储器和磁阻随机存取存储器中的一种。
17.一种控制程序,由一块半导体存储卡中包含的一个防篡改模块中的CPU执行,所述防篡改模块还包括一个内部存储器,并且所述半导体存储卡还包括用于存储由一个实体和管理信息构成的文件的一个非易失性存储器,其中如果生成对所述文件的一个删除事件,则所述控制程序(i)创建一个关于所述防篡改模块中的所述内部存储器的位置表,以及(ii)重写所述管理信息,以及所述位置表表示所述实体的位置,并且当所述控制程序重写所述实体时由所述控制程序查阅。
全文摘要
本发明提供一种半导体存储卡,不再允许获取删除文件的内容的非法实践。这里,当生成一个删除事件时,删除处理程序为要删除文件的文件入口和FAT的清空操作赋予比所述文件的其它组成部分的清空操作更高的优先权。对所述文件的文件实体的清空操作分配给包括所述删除处理程序的多个事件处理程序。
文档编号G06F21/62GK1698130SQ200480000439
公开日2005年11月16日 申请日期2004年2月4日 优先权日2003年2月4日
发明者中部太志, 川野真二 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1