专利名称:存储卡、应用程序存储方法以及存储程序的制作方法
技术领域:
本发明涉及用于存储应用程序的存储卡。
背景技术:
随着安全数字智能存储卡(smart Secure Digital memory card,以下 称"SD卡")等装载有集成电路卡(Integrated Circuit卡,以下称IC卡)功
能的安全存储卡越来越普及,今后将进一步增加应用程序的种类和其 使用人口。
图l(A)表示普通的安全存储卡的硬件结构。如图l(A)所示,安全 存储卡100包括只读存储器(ROM: Read Only Memory) 103、随机存 取存储器(RAM: Random Access Memory) 102、中央处理器(CPU: Central Processing Unit)104以及非易失性存储器组101。只读存储器103存储 应用程序。随机存取存储器102暂时存储执行应用程序时利用的数据。 中央处理器104按照应用程序来执行针对各种指令的处理。非易失性 存储器组101存储从存储卡外部下载到的应用程序。
非易失性存储器组101包括设在防篡改模块(TRM: Tamper Resistant Module)107内部的铁电存储器(FeRAM : Ferroelectric RAM)106、设在防篡改模块107外部的安全闪存108以及设在防篡改 模块107外部的闪速存储器109。安全闪存108是利用防篡改模块107 的功能来提高安全程度的 一种闪速存储器。
图l(B)表示构成非易失性存储器组101的三个非易失性存储器各 自的安全程度。如图l(B)所示,设在防篡改模块107内部的铁电存储 器106的安全程度最高,安全闪存108的安全程度仅次于铁电存储器 106,闪速存储器109的安全程度最低。
通常,在防篡改模块107中存储从服务提供商下载到的应用程序。
但,防篡改模块107的容量比闪速存储器109的容量小得多,因此用 户只好删除不能存储到防篡改模块107中的应用程序。
于是,有待实现一种结构,其中,用户不用删除存储在防篡改模 块107中的应用程序而在确保服务提供商要求的安全程度的状态下将 该应用程序移动到安全存储卡100内的闪速存储器109中,并按需要 将该应用程序送回到防篡改模块107区域中,从而在一张安全存储卡 100中存储尽可能多的应用程序。
专利文献1公开了按照所要下载的应用程序的安全程度来分别将 该应用程序分配到不同的存储区域的技术。
专利文献1:日本国特开2002-229861号公报
若采用专利文献1公开的以往的技术,在下载应用程序时,存储 器按照该应用程序的安全程度来分别将其存储到防篡改模块区域或闪 速存储器中。存储器要将应用程序存储到闪速存储器中的情况下,先 对以加密状态下载到的应用程序进行解密,然后利用预先存储在防篡 改模块区域中的密钥来加密该解密后的应用程序,并将该加密后的应 用程序存储到闪速存储器中。即,根据该以往的技术来在闪速存储器 中存储应用程序的情况下,也就是说,要在安全存储卡内安全程度最 低的区域中存储应用程序的情况下,便利用存储在安全存储卡中的密 钥来预先加密该应用程序。因此,在闪速存储器中存储下载到的应用 程序时,不能确保提供该应用程序的服务提供商要求的安全程度。
发明内容
本发明的目的在于提供一种存储卡,其能在确保服务提供商要求 的安全程度的状态下将从该服务提供商下载到的应用程序存储到闪速 存储器中。
为了达到上述目的,本发明涉及一种存储卡,其从主设备接收下 载到该主设备的处于加密状态的应用程序,该存储卡包括具有防篡改
功能的集成电路卡部以及闪速存储器部,所述集成电路卡部具备防
篡改存储部;程序获得部,其从所述主设备获得处于加密状态的应用 程序、所述应用程序在加密后的大小以及所述应用程序在解密后的大 小;存储控制部,其根据所述得到的应用程序在加密后的大小及所述 防篡改存储部的可用空间来将所述防篡改存储部或所述闪速存储器部 选定为存储区域,并将所述得到的处于加密状态的应用程序存储到该 选定的区域中;移动控制部,所要执行的应用程序在解密后的大小超 过所述防篡改存储部的可用空间的情况下要执行存储在所述防篡改存 储部中的应用程序时,该移动控制部将存储在所述防篡改存储部中的 处于加密状态的任意应用程序移动到闪速存储器部中;以及执行部, 其解密所述要执行的应用程序并执行该应用程序。
由此,本发明涉及的存储卡可以在确保服务提供商要求的安全程 度的状态下将从该服务提供商下载到的应用程序存储到闪速存储器 中。
例如,在所述得到的应用程序在加密后的大小等于或小于所述防 篡改存储部的可用空间的情况下,所述存储控制部将所述应用程序存 储到所述防篡改存储部中;而在所述得到的应用程序在加密后的大小 超过所述可用空间的情况下,所述存储控制部将所述应用程序存储到 所述闪速存储器部中。
例如,在所述得到的应用程序在加密后的大小超过所述防篡改存 储部的可用空间的情况下,所述存储控制部将存储在所述防篡改存储 部中的处于加密状态的任意应用程序移动到所述闪速存储器部中。
例如,所述执行部在执行应用程序后,将处于加密状态的该执行 后的应用程序移动到所述闪速存储器部中。
例如,在所述闪速存储器部中存储有所要执行的应用程序的情况 下,该所要执行的应用程序在解密后的大小和加密后的大小的总和超 过所述防篡改存储部的可用空间时,所述移动控制部将存储在所述防 篡改存储部中的处于加密状态的任意应用程序移动到所述闪速存储器 部中,并将所述要执行的应用程序复制到所述防篡改存储部中。
例如,在所述闪速存储器部中存储有所要执行的应用程序的情况 下,该所要执行的应用程序在解密后的大小超过所述防篡改存储部的 可用空间时,所述移动控制部将存储在所述防篡改存储部中的处于加 密状态的任意应用程序移动到所述闪速存储器部中,并解密所述要执 行的应用程序,将该解密后的应用程序存储到所述防篡改存储部中。
例如,所述移动控制部根据应用程序程的执行履历来产生各个应 用程序的存取履历管理信息;所述集成电路卡部也可以具备移动判断 部,该移动判断部按照所述存取履历管理信息来选定要移动到所述闪 速存储器部中的应用程序。
例如,也可以采用以下结构,即,所述程序获得部获得所述主设 备的固有信息,所述集成电路卡部还具备密钥产生部,其利用所述 得到的主设备的固有信息来产生加密密钥;以及再加密部,其利用所 述加密密钥来加密要从所述防篡改存储部移动到所述闪速存储器部中 的应用程序,并且,所述移动控制部在完毕加密后删除所述加密密钥, 并将通过所述加密密钥而处于重复加密状态的所述要移动的应用程序 移动到所述闪速存储器部中。
例如,也可以采用以下结构,g口,所述集成电路卡部还具备再解 密部,在存储在所述闪速存储器部中且通过所述加密密钥而处于重复 加密状态的应用程序被复制到所述防篡改存储部中的情况下,再解密 部利用由所述密钥产生部产生的加密密钥来解密所要复制的所述应用 程序;所述移动控制部在完毕解密后删除所述加密密钥,并将所要复 制的所述应用程序存储到所述防篡改存储部中。
本发明可以实现为将本发明涉及的存储卡的构成特征作为步骤的 应用程序存储方法,或可以实现为使计算机执行这些步骤的程序,或 者可以实现为包含所述构成特征的集成电路。所述程序可以通过 CD-ROM等记录媒体或通信网络等传输媒体来流通。
本发明可以提供一种存储卡,其能在确保服务提供商要求的安全 程度的状态下将从该服务提供商下载到的应用程序存储到闪速存储器
中。
本发明实J见在确保服务提供商要求的安全程度的状态下,在一张 安全存储卡中存储尽可能多的应用程序。
图l(A)表示普通的安全存储卡的硬件结构;图l(B)表示构成非易 失性存储器组的铁电存储器、安全闪存以及闪速存储器的各个安全程 度。
图2是第一实施例涉及的总系统的概略图。 图3是普通的安全存储卡的概略图。
图4是一个方框图,其表示第一实施例涉及的SD卡的结构。
图5是一个方框图,其表示设在第一实施例涉及的SD卡中的防篡
改模块204的结构。
图6表示第一实施例涉及的履历管理信息的例子。 图7表示第一实施例涉及的程序管理信息的例子。 图8是一个流程图,其表示在第一实施例中下载应用程序时对应
用程序进行的移动处理的顺序。
图9是一个流程图,其表示在随机存取存储器中有解密后的应用
程序的情况下下载应用程序时对应用程序进行的移动处理的顺序。
图IO是一个流程图,其表示在第一实施例中执行存储在随机存取
存储器中的应用程序时的处理顺序。
图11是一个流程图,其表示在第一实施例中执行移动在大容量非
易失性存储器中的应用程序时的处理顺序。
图12表示在第一实施例中由服务提供商提供的应用程序信息的一
个例子。
图13(A)表示在第一实施例中完成了下载应用程序A的处理后的 程序管理信息;图13(B)表示在第一实施例中完成了下载应用程序A的 处理后的随机存取存储器的状态。
图14(A)表示在第一实施例中完成了下载应用程序B的处理后的 程序管理信息;图14(B)表示在第一实施例中完成了下载应用程序B的 处理后的随机存取存储器的状态。
图15(A)表示在第一实施例中执行了应用程序B后的程序管理信 息;图15(B)表示在第一实施例中执行了应用程序B后的随机存取存储 器的状态。
图16(A)表示在第一实施例中完成了下载应用程序C的处理后的 程序管理信息;图16(B)表示在第一实施例中完成了下载应用程序C的 处理后的随机存取存储器的状态。
图17(A)表示在第一实施例中执行应用程序C时,将应用程序A 选定为所要移动的应用程序后的程序管理信息;图17(B)表示在第一实 施例中执行应用程序C时,将应用程序A选定为所要移动的应用程序 后的随机存取存储器的状态。
图18(A)表示在第一实施例中执行应用程序C时,将应用程序B 也选定为所要移动的应用程序后的程序管理信息;图18(B)表示在第一 实施例中执行应用程序C时,将应用程序B也选定为所要移动的应用 程序后的随机存取存储器的状态。
图19(A)表示在第一实施例中执行应用程序C时,从随机存取存储 器中删除了应用程序A和应用程序B后的程序管理信息;图19(B)表 示在第一实施例中执行应用程序C时,删除了应用程序A和应用程序 B后的随机存取存储器的状态。
图20(A)表示在第一实施例中执行应用程序B时,从随机存取存储 器中删除了应用程序C后的程序管理信息;图20(B)表示在第一实施例 中执行应用程序B时,删除了应用程序C后的随机存取存储器的状态。
图21(A)表示在第一实施例中执行了应用程序B后的程序管理信 息;图21(B)表示在第一实施例中执行了应用程序B后的随机存取存储 器的状态。
图22是一个方框图,表示第二实施例涉及的SD卡的结构。
符号说明100安全存储卡
101非易失性存储器组
102随机存取存储器
103只读存储器
104中央处理器
105主机接口
106铁电存储器
107防篡改模块
108安全闪存
109闪速存储器
201服务提供商
202主设备
203SD卡
204防篡改模块
205大容量非易失性存储器
206SD卡控制部
207SD接口
300外置中央处理器
301安全存储卡
302控制部
303内置中央处理器
304防篡改模块
305大容量非易失性存储器
306内置非易失性存储器
307安全区域
308认可区域
309 非认可区域
400 程序获得部
401 程序管理部
402 履历管理部
403 存储控制部
404 移动控制部
405 IC卡操作系统
406 随机存取存储器
406 a 程序存储区域
407 公钥(public key)存储部
408 解密部
409 执行部
410 再读入部
411 删除部
420、 421、 422、 423 应用程序
503 时间信息获得部
505 移动判断部
507 暂时存储部
2200 SD卡
2217 密钥产生部
2218 再加密部
2219 再解密部
具体实施例方式
以下,根据
本发明的具体实施方式
。 (第一实施例)
图2是第一实施例涉及的总系统的概略图。在第一实施例中设想 安全存储卡为SD卡的情况。
如图2所示,第一实施例涉及的SD卡203通过SD接口(以下称"SD I/F")207来与移动电话等主设备202相连接,其中包括防篡改模块 204、非易失性存储器205以及SD卡控制部206。主设备202不限于 移动电话,而只要是具备SDI/F的设备即可。
图3表示普通的安全存储卡的概略图。如图3所示,安全存储卡 301包括防篡改模块304,其具备内置非易失性存储器306;大容量 非易失性存储器305,其具备安全区域307、认可区域308、非认可区 域309;内置中央处理器303,其对内置非易失性存储器306及安全区 域307进行存取;以及控制部302,其与电子设备(读写设备)的外置中 央处理器300相通讯来对此进行验证处理,并只使获得认可的外置中 央处理器300对认可区域308进行存取。
设在防篡改模块304内的内置非易失性存储器306例如是指,能 以lbyte为单位对数据进行删除及写入的电可擦除可编程只读存储器 (EEPROM : Electronically Erasable and Programmable Read-Only Memory)。大容量非易失性存储器305例如是指,能以64kbyte等为单 位删除数据并能以lbyte为单位写入数据的闪速存储器。
对于非认可区域309,外置中央处理器300可无条件地进行存取。 但,对于认可区域308,外置中央处理器300只有通过控制部302获得 认可后才可进行存取。另一方面,外置中央处理器300无法知道是否 存在安全区域307及内置非易失性存储器306,而不能直接对这些进行 存取。对于安全区域307及内置非易失性存储器306,只有内置中央处 理器303才可进行存取。
安全区域307与内置非易失性存储器306的差异在于,内置非易 失性存储器306设在防篡改模块304中,而安全区域307设在防篡改 模块304外部的大容量非易失性存储器305中。因此,与内置非易失 性存储器306相比,安全区域307可具有更大的存储容量,不过,其 安全程度低于设在防篡改模块304中的内置非易失性存储器306。如图 3所示,在所述四个区域中,非认可区域309的安全程度最低,并按认
可区域308、安全区域307、内置非易失性存储器306的顺序依次提高 安全程度。
图l(A)所示的非易失性存储器组101与图3所示的结构的对比关 系如下。图l(A)中的铁电存储器106对应于图3中的内置非易失性存 储器306;图1(A)中的安全闪存108对应于图3中的安全区域307;图 l(A)中的闪速存储器109对应于图3中的认可区域308及非认可区域 309。
图4是一个方框图,表示第一实施例涉及的SD卡203的结构。SD 卡203包括根据SD规格的SD卡控制部206、防篡改模块204以及 大容量非易失性存储器205。 SD卡控制部206是一种接口部,其与主 设备202间进行数据的收发;防篡改模块204是装载有防篡改功能的 IC卡部。大容量非易失性存储器205例如是闪速存储器。
防篡改模块204包括程序获得部400、程序管理部401、履历管 理部402、存储控制部403、移动控制部404、 IC卡操作系统405、随 机存取存储器406、公钥存储部407、解密部408以及执行部409。此 外,防篡改模块204还包括再读入部410和删除部411,不过,图4中 未示出。关于再读入部410及删除部411,以后根据图5进行描述。
程序获得部400通过SD卡控制部206获得从服务提供商下载到的 应用程序420。所要下载的应用程序420既确保服务提供商要求的安全 程度又处于加密状态。
程序管理部401管理程序ID及应用程序的存储处;该程序ID用 来识别存储在随机存取存储器406或大容量非易失性存储器205中的 各个应用程序。应用程序的存储处是指随机存取存储器406或大容量 非易失性存储器205。
履历管理部402管理对应用程序的存取履历。
存储控制部403将由程序获得部400获得的应用程序存储到设在 随机存取存储器406内的程序存储区域406a中。
移动控制部404将所要移动的应用程序从设在随机存取存储器
406的程序存储区域406a移动到大容量非易失性存储器205中。
随机存取存储器406具备程序存储区域406a,在该程序存储区域 406a中能以下载时的加密状态来存储通过主设备202下载到的应用程 序。随机存取存储器406还存储解密后的应用程序。即,随机存取存 储器406除了程序存储区域406a之外,还具备另一区域(第二区域), 该区域用来解密从程序存储区域406a中读出的应用程序421或从大容 量非易失性存储器205读出的应用程序423。设在随机存取存储器406 内的第二区域存储解密后的应用程序422。程序存储区域406a及第二 区域均不是固定区域。
公钥存储部407中存储有用来解密处于加密状态的应用程序的公钥。
解密部408利用存储在公钥存储部407中的公钥来解密处于加密 状态的应用程序。
执行部409执行解密后的应用程序422。
图5是一个方框图,其表示防篡改模块204中的用来移动应用程 序的结构。如图5所示,防篡改模块204包括程序管理部401、履历 管理部402、存储控制部403、移动控制部404、执行部409、再读入 部410以及删除部411。移动控制部404包括时间信息获得部503、 移动判断部505以及暂时存储部507。
时间信息获得部503通过SD I/F207获得来自主设备202的时间信 息。每当由主设备202对应用程序进行存取时,时间信息获得部503 都可以获得当前的时间信息。时间信息获得部503可以通过以下方法 来获得在由主设备202对应用程序进行存取时的时间信息,S卩在由 主设备202下载到应用程序时获得当前的时间信息,并利用设在SD卡 203内的中央处理器中的时钟来算出下载到应用程序后经过了多长时 间,然后将下载到应用程序时的时间和下载到应用程序后经过的时间 相加,从而获得对应用程序进行存取时的时间。不过,时间信息获得 部503获得当前时间的方法不限于此。
暂时存储部507暂时存储所要下载的应用程序在加密后的数据大 小及解密后的数据大小等信息,这些信息可在下载时获得。
图6表示由履历管理部402管理的履历管理信息509的例子。如 图6所示,履历管理信息509包括以下四种信息程序ID,其用来识 别各个应用程序;最后存取日期,其表示主设备对应用程序进行存取 的最后日期;上上次存取日期,其表示主设备对应用程序进行存取的 最后日期的上一日期;以及存取时间间隔,其表示从上上次存取日期 到最后存取日期经过的天数。
图7表示由程序管理部401管理的程序管理信息510的例子。如 图7所示,程序管理信息510包括程序ID,其用来识别各个应用程 序;应用程序的存储处;应用程序在加密后的大小;应用程序在解密 后的大小;移动标志,其表示要将该应用程序从程序存储区域406a移 动到大容量非易失性存储器205中;以及解密完毕标志,其表示在要 执行该应用程序时己完毕该应用程序的解密。应用程序的存储处是指 防篡改模块204(随机存取存储器406)或大容量非易失性存储器205。 要从程序存储区域406a移动到大容量非易失性存储器205中的应用程 序具有的移动标志为"1" (ON)。完毕解密的应用程序具有的解密完毕 标志为"1"。
移动判断部505利用从时间信息获得部503获得的当前时间、存 储在暂时存储部507中的应用程序在加密后的数据大小及解密后的数 据大小等信息、从履历管理部402获得的履历管理信息509、从程序管 理部401获得的程序管理信息,从而选定要从防篡改模块204移动到 大容量非易失性存储器205中的应用程序。
以下描述如何选定要从防篡改模块204移动到大容量非易失性存 储器205中的应用程序。
首先,移动判断部505从程序管理部401获得程序管理信息510, 并根据随机存取存储器406的总容量、位于随机存取存储器406中的 应用程序在加密后的数据大小及解密后的数据大小来获得随机存取存
储器406当前的可用空间。
在要下载应用程序的情况下,移动判断部505对存储在暂时存储 部507中的所要下载的应用程序420在加密后的数据大小和所获得的 随机存取存储器406的可用空间进行比较。所要下载的应用程序420 在加密后的数据大小超过随机存取存储器406的可用空间的情况下, 则启动将存储在程序存储区域406a中的任意应用程序421移动到大容 量非易失性存储器205中的处理。
在要执行应用程序的情况下,移动判断部505对所要执行的应用 程序在解密后的数据大小和随机存取存储器406的可用空间进行比较。 在解密后的应用程序422的数据大小超过随机存取存储器406的可用 空间的情况下,则启动将存储在程序存储区域406a中的任意应用程序 421移动到大容量非易失性存储器205中的处理。
移动判断部505从时间信息获得部503获得当前时间。
移动判断部505与程序管理部401相通讯来从程序管理信息510 中获得存储处为防篡改模块204的应用程序的ID。
然后,移动判断部505与履历管理部402相通讯来获得履历管理 信息509。移动判断部505将最后存取日期最早的应用程序选定为所要 移动的应用程序,并从与程序管理部401相通讯来获得的程序ID中挑 选所要移动的应用程序的ID,同时获得该应用程序在加密后的数据大 小。并且,移动判断部505向程序管理部401发出指示,以使之将要 移动的应用程序所对应的程序管理信息510中的移动标志设为ON(l), 且将所要移动的应用程序的存储处更新为大容量非易失性存储器205。
其次,移动判断部505将所要移动的应用程序在加密后的数据大 小和随机存取存储器406的可用空间相加,并确认能否在随机存取存 储器406中确保应用程序的下载或解密所需的可用空间。即使将一个 应用程序移动到大容量非易失性存储器205中也不能在随机存取存储 器406中确保足够的可用空间的情况下,移动判断部505再次分别与 程序管理部401及履历管理部402相通讯来抽出要移动到大容量非易
失性存储器205中的应用程序的ID。移动判断部505反复抽出要移动 到大容量非易失性存储器205中的应用程序的ID, 一直到在随机存取 存储器406中确保应用程序的下载或所要执行的应用程序的解密所需 的空间为止。
同样,在执行移动在大容量非易失性存储器205中的应用程序423 的情况下,不能在随机存取存储器406中确保应用程序423的解密所 需的空间时,移动判断部505还要进行上述处理。由此,可在随机存 取存储器406中确保应用程序423的解密所需的空间。
最后,移动判断部505向移动控制部404通知在程序管理信息510 中的移动标志为0N(1)的应用程序的ID。
移动控制部404将具有由移动判断部505通知的程序ID的应用程 序复制到大容量非易失性存储器205中。移动控制部404在将应用程 序复制到大容量非易失性存储器205中后,通过移动判断部505向程 序管理部401发出指示,以使之将程序管理信息510中的所有移动标 志都设为OFF(O)。移动控制部404删除已复制在大容量非易失性存储 器205中的应用程序421。
删除部411删除解密后的、且己不用执行的应用程序422。
执行部409执行解密后的应用程序422。
在要由执行部409执行移动在大容量非易失性存储器205中的应 用程序423时,再读入部410读入位于大容量非易失性存储器205中 的应用程序423。
图8是一个流程图,其表示下载应用程序时对应用程序进行的移 动处理的顺序。在开始应用程序的下载时(S800),防篡改模块204中的 各构成部分进行以下工作。
首先,暂时存储部507存储所要下载的应用程序在加密后的数据 大小及解密后的数据大小等,这些信息可在下载前获得。
其次,移动判断部505从程序管理部401中获得程序管理信息510, 并根据随机存取存储器406的总容量、位于随机存取存储器406中的
应用程序在加密后的数据大小及解密后的数据大小来获得随机存取存
储器406当前的可用空间(S801)。
并且,移动判断部505对所得的随机存取存储器406的可用空间 和暂时存储在存储部507中的所要下载的应用程序在加密后的数据大 小进行比较(S802)。在这里,假设随机存取存储器406的可用空间等于 程序存储区域406a。
所要下载的应用程序的大小等于或小于随机存取存储器406的可 用空间的情况下(S802中"是"),程序获得部400获得所要下载的应用程 序,并且,存储控制部403将获得的应用程序存储到设在随机存取存 储器406内的程序存储区域406a中(S803)。然后,移动判断部505向 程序管理部401发出指示,以使之更新程序管理信息510;程序管理部 401更新程序管理信息510(S812),从而结束下载处理(S813)。
而在所要下载的应用程序的大小超过随机存取存储器406的可用 空间的情况下(S802中"否"),移动判断部505开始确保随机存取存储器 406的可用空间的处理。
首先,移动判断部505从时间信息获得部503中获得时间信息 (S804)。
其次,移动判断部505与程序管理部401相通讯来获得程序管理 信息510,并获得存储处为防篡改模块204的应用程序的ID(S805)。
接着,移动判断部505与履历管理部402相通讯来获得履历管理 信息509(S806)。
移动判断部505根据通过S806获得的履历管理信息509来选定要 移动到大容量非易失性存储器205中的应用程序,并根据程序管理信 息510获得所要移动的应用程序在加密后的数据大小(S807),该要移动 的应用程序要具有通过S805获得的程序ID、且其最后存取日期最早。
并且,移动判断部505向程序管理部401发出指示,以使之将要 移动的应用程序所对应的程序管理信息510中的移动标志设为ON(l), 且将所要移动的应用程序的存储处更新为大容量非易失性存储器205;
程序管理部401按照该指示更新程序管理信息510(S80S)。
存储控制部403将通过S807选定的所要移动的应用程序移动到大 容量非易失性存储器205中(S810)。其次,移动判断部505获得完毕移 动处理后的随机存取存储器的可用空间,并再回到S802,接着反复进 行从S802至S810的处理, 一直到能将所要下载的应用程序存储到存 储区域406a中为止。
最后,程序管理部401将程序管理信息510中的移动标志都设为 OFF(O),结束下载应用程序的处理(S813)。
再者,如上所述,移动判断部505通过S807将最后存取日期最早 的应用程序选定为所要移动的应用程序。然而,移动判断部505也可 以将存取时间间隔最长的应用程序选定为所要移动的应用程序,或者, 也可以将只有在特定星期才进行存取的应用程序选定为所要移动的应 用程序。即,移动判断部505可以按照应用程序的执行履历来选定要 移动到大容量非易失性存储器205中的应用程序。然而,选定所要移 动的应用程序的方法不限于此,而只要能在随机存取存储器406中确 保等于或大于所要下载的应用程序等大小的可用空间即可,也就是, 能确保等于或大于所要存储到随机存取存储器406中的应用程序大小 的可用空间即可。
图9是一个流程图,其表示在随机存取存储器406中有解密后的 应用程序422的情况下下载应用程序时对应用程序进行的移动处理的 顺序。本图与图8所示的处理顺序大体相同,不过,S904这一步骤不 同。按照图8所示的顺序进行处理的情况下,从存储在程序存储区域 406a的应用程序421中选定要移动到大容量非易失性存储器205中的 应用程序,从而确保随机存取存储器406的可用空间。然而,通过S904, 在选定要移动到大容量非易失性存储器205中的应用程序之前,删除 部411删除位于随机存取存储器406中的解密后的应用程序422。图9 中的这一步骤就与图8所示的处理顺序不同。
图10是一个流程图,其表示在执行存储在程序存储区域406a中
的应用程序时的处理顺序。
在开始执行应用程序后(S1000),移动判断部505从程序管理部401 获得程序管理信息510,并通过与S801相同的顺序获得随机存取存储 器406的可用空间(S1001)。
并且,移动判断部505从通过S1001获得的程序管理信息510中 获得所要执行的应用程序在解密后的大小(S1002)。
其次,移动判断部505对所得的随机存取存储器406的可用空间 和通过S1002获得的解密后的数据大小进行比较(S1003)。在这里,假 设随机存取存储器406的可用空间等于程序存储区域406a。解密后的 数据大小等于或小于随机存取存储器406的可用空间的情况下(S1003 中"是"),解密部408对处于加密状态的所要执行的应用程序进行解密 (S1004);程序管理部401更新程序管理信息510(S1012);执行部409 执行应用程序(S1013)。而在解密后的数据大小超过随机存取存储器406 的可用空间的情况下(S1003中"否"),移动判断部505开始确保随机存 取存储器406的可用空间的处理。
首先,移动判断部505从时间信息获得部503中获得时间信息 (S謂5)。
接着,移动判断部505与履历管理部402相通讯来获得履历管理 信息509(S1006)。移动判断部505根据通过S1006获得的履历管理信 息509和通过S1002获得的程序管理信息510来选定要移动到大容量 非易失性存储器205中的应用程序,并获得该应用程序在加密后的数 据大小(S1007),该要移动的应用程序的存储处为防篡改模块204、且 其最后存取日期为最早。再者,与图8相同,选定要从履历管理信息 509中移动出来的应用程序的方法不限于此,而可以采用考虑到实用频 度等的方法。
其次,移动判断部505向程序管理部401发出指示,以使之将要 移动的应用程序所对应的程序管理信息510中的移动标志设为ON(l), 且将所要移动的应用程序的存储处更新为大容量非易失性存储器205;
程序管理部401更新程序管理信息510(S1008)。
移动控制部404将通过S1007选定的所要移动的应用程序移动到 大容量非易失性存储器205中(SIOIO)。其次,移动判断部505获得完 毕移动处理后的随机存取存储器的可用空间,并再回到S1003,接着反 复进行从S1003到S1010的处理, 一直到在随机存取存储器406中确 保解密所要执行的应用程序所需的可用空间为止。
并且,解密部408对所要执行的应用程序进行解密处理(S1004)。
程序管理部401将程序管理信息510中的移动标志都设为OFF(O), 从而更新程序管理信息510(S1012)。
然后,执行部409执行应用程序(S1013)。
图11是一个流程图,其表示在执行移动在大容量非易失性存储器 205中的应用程序423时的处理顺序。在开始执行应用程序时(S1100), 防篡改模块204中的各构成部分进行以下工作。
首先,移动判断部505从程序管理部401中获得程序管理信息510, 并确认所要执行的应用程序的存储处为大容量非易失性存储器205,同 时获得所要执行的应用程序在加密后的数据大小及解密后的数据大小 (S1101)。
其次,移动判断部505根据通过S1101获得的程序管理信息510 中的存储处信息、加密后的数据大小以及解密后的数据大小来获得随 机存取存储器406的可用空间(S1102)。
然后,移动判断部505对通过S1101获得的所要执行的应用程序 在加密后的数据大小和解密后的数据大小的总和与通过S1102获得的 随机存取存储器406的可用空间进行比较(S1103)。在这里,假设随机 存取存储器406的可用空间等于程序存储区域406a。
在所述总和等于或小于随机存取存储器406的可用空间的情况下 (S1103中"是"),再读入部410从大容量非易失性存储器205中读入所 要执行的应用程序423;存储控制部403将读入的所要执行的应用程序 423存储到随机存取存储器406中(S1104)。解密部408进行解密处理
(51105) ;程序管理部401更新程序管理信息510(S1113);执行部409 执行所要执行的应用程序(S1114)。
而在所述总和超过随机存取存储器406的可用空间的情况下 (S1103中"否"),移动判断部505开始确保随机存取存储器406的可用 空间的处理。
首先,移动判断部505从时间信息获得部503获得时间信息
(51106) 。
接着,移动判断部505与履历管理部402相通讯来获得履历管理 信息509(S1107)。
其次,移动判断部505抽出程序ID,而具有该程序ID的应用程序 要满足以下条件通过S1101获得的程序管理信息510中的存储处为 防篡改模块204、且通过S1107获得的履历管理信息509中的最后存取 日期最早。移动判断部505决定要将抽出的程序ID所对应的应用程序 移动到大容量非易失性存储器205中(S1108),并从程序管理信息510 中获得所要移动的应用程序在加密后的数据大小。
其次,程序管理部401将要移动的应用程序所对应的程序管理信 息510中的移动标志设为ON(l),且将所要移动的应用程序的存储处更 新为大容量非易失性存储器205(S1109)。
移动控制部404将通过S1108选定的所要移动的应用程序从程序 存储区域406a移动到大容量非易失性存储器205中(Sllll)。其次,移 动判断部505获得完毕移动处理后的随机存取存储器的可用空间,并 再回到S1103,接着反复进行从S1103到Sllll的处理, 一直到可对所 要执行的应用程序进行解密为止。
最后,程序管理部401将程序管理信息510中的移动标志都设为 OFF(O),从而结束应用程序的移动处理。
在结束应用程序的移动处理后,移动控制部404从大容量非易失 性存储器205中读入所要执行的应用程序423,并将读入的所要执行的 应用程序423复制到随机存取存储器406中(S1104)。
最后,解密部404进行解密处理(S1105);程序管理部401更新程 序管理信息510(S1113);执行部409执行通过S1105来解密的应用程 序422(S1114)。
再者,移动判断部505通过S1108来将最后存取日期最早的应用 程序选定为所要移动的应用程序。然而,移动判断部505也可以将存 取时间间隔最长的应用程序选定为所要移动的应用程序,或者,也可 以将只有在特定星期才进行存取的应用程序选定为所要移动的应用程 序。即,移动判断部505可以按照应用程序的执行履历来选定要移动 到大容量非易失性存储器205中的应用程序。选定所要移动的应用程 序的方法不限于此,而只要能在随机存取存储器406中确保比所要下 载的应用程序等大小更大的可用空间即可,也就是,能确保比要存储 到随机存取存储器406中的应用程序大小更大的可用空间即可。
并且,在采用图ll所示的处理顺序的情况下,为确保随机存取存 储器406的可用空间而进行从S1106至S1110所示的处理,即进行移 动存储在程序存储区域406a中的应用程序421的处理。然而,在随机 存取存储器406中有已解密的应用程序422的情况下,可以在此之前 通过删除部411进行删除位于随机存取存储器406中的已解密的应用 程序422的处理。
并且,在采用图ll所示的处理顺序的情况下,移动判断部505通 过S1103来对所要执行的应用程序在加密后的数据大小和解密后的数 据大小的总和与随机存取存储器406的可用空间进行比较。然而,移 动判断部505也可以通过S1103对所要执行的应用程序在解密后的数 据大小与随机存取存储器406的可用空间进行比较。
在此情况下,所要执行的应用程序在解密后的数据大小等于或小 于随机存取存储器406的可用空间时(S1103中"是"),解密部408可以 读入所要执行的应用程序423并对此进行解密处理,然后将该应用程 序423存储到随机存取存储器406中。另一方面,所要执行的应用程 序在解密后的数据大小超过随机存取存储器406的可用空间时(S1103
中"否"),移动判断部505开始确保随机存取存储器406的可用空间的 处理,以在随机存取存储器406中确保等于或小于应用程序在解密后 的数据大小的可用空间。
采用所述结构及工作,则能在确保下载应用程序时的加密程度的 状态下简单地将从服务提供商下载到的应用程序移动到大容量非易失 性存储器205中。因此,能在确保服务提供商要求的安全程度的状态 下将尽可能多的应用程序存储到SD卡203等装载有IC卡功能的安全 存储卡中。
图12表示由服务提供商提供的应用程序的信息的一个例子。 以下,具体描述下载图12所示的应用程序时的处理及执行该应用
程序时的处理。在以下描述中,将随机存取存储器406的总容量假设
为120KB。
首先,详细描述步骤1的处理顺序,即描述在随机存取存储器406 处于未使用的状态下将应用程序A下载到SD卡203中时的处理顺序。 主设备202发出指示,以开始下载应用程序A的处理。 在开始下载处理后,服务提供商将应用程序A在加密后的数据大 小及解密后的数据大小等信息发送到SD卡203中。存储部507暂时存 储这些发送来的信息。在此情况下,暂时存储部507分别存储应用程 序A在加密后的数据大小10KB和应用程序A在解密后的数据大小 30KB 。
其次,移动判断部505从程序管理部401获得程序管理信息510, 并获得随机存取存储器406的可用空间。在此情况下,由于未下载任 何应用程序,因此随机存取存储器406的已用空间的大小为OKB,而 随机存取存储器406的可用空间为120KB。
其次,移动判断部505对存储在暂时存储部507中的应用程序A 在加密后的数据大小与随机存取存储器406的可用空间进行比较。在 此情况下,由于应用程序A在加密后的数据大小为IOKB、随机存取存 储器406的可用空间为120KB,因此移动判断部505判断为可以在程
序存储区域406a中存储应用程序A,则由存储控制部403将应用程序 A存储到程序存储区域406a中。
通过以上处理,可完成下载应用程序A的处理。
在结束下载应用程序A的处理后,程序管理部401将程序管理信 息510更新为如图13(A)所示那样。另夕卜,随机存取存储器406的状态 变为如图13(B)所示那样。
下面,描述步骤2的处理顺序,即描述将应用程序B下载到SD 卡203中时的处理顺序。
主设备202发出指示,以开始下载应用程序B的处理。
在开始下载处理时,与通过步骤1下载应用程序A时相同,暂时 存储部507存储关于应用程序B的信息(加密后的数据大小及解密后的 数据大小)。在此情况下,暂时存储部507分别存储应用程序B在加密 后的数据大小30KB和应用程序B在解密后的数据大小50KB。
其次,移动判断部505从程序管理部401中获得通过步骤1更新 的程序管理信息1300,并获得随机存取存储器406的可用空间。在此 情况下,在随机存取存储器406中只存储有应用程序A,而且随机存 取存储器406的已用空间的大小为IOKB,因此,随机存取存储器406 的可用空间为IIOKB。
接着,移动判断部505对存储在暂时存储部507中的应用程序B 在加密后的数据大小与随机存取存储器406的可用空间进行比较。在 此情况下,由于应用程序B在加密后的数据大小为30KB、随机存取存 储器406的可用空间为IIOKB,因此移动判断部505判断为可以在程 序存储区域406a中存储应用程序B,则由存储控制部403将应用程序 B存储到程序存储区域406a中。
通过以上处理,可完成下载应用程序B的处理。
在结束下载应用程序B的处理后,程序管理部401将程序管理信 息1300更新为如图14(A)所示那样。另外,随机存取存储器406的状 态变为如图14(B)所示那样。
下面,详细描述步骤3的处理顺序,即描述执行应用程序B时的 处理顺序。
主设备202发出指示,以开始执行应用程序B的处理。
首先,移动判断部505从程序管理部401获得通过步骤2更新的 程序管理信息1400,并获得所要执行的应用程序B在解密后的数据大 小,将该数据大小存储到暂时存储部507中。此时,在暂时存储部507 中存储的值是50KB。
其次,移动判断部505根据程序管理信息1400获得随机存取存储 器406的可用空间。在此情况下,由于在随机存取存储器406中有加 密后的应用程序A(10KB)和加密后的应用程序B(30KB),因此随机存 取存储器406的可用空间为80KB。
接着,移动判断部505对存储在暂时存储部507中的应用程序B 在解密后的数据大小50KB与随机存取存储器406的可用空间80KB进 行比较,从而判断为可在随机存取存储器406中解密应用程序B。
然后,如S1004所示,解密部408对应用程序B进行解密处理, 并且,程序管理部401将程序管理信息1400更新为如图15(A)所示那 样。随机存取存储器406的状态变为如图15(B)所示那样。
通过以上处理,创造能执行应用程序B的状态,则执行部409执 行应用程序B。
下面,描述步骤4的处理顺序,即描述将应用程序C下载到SD 卡203中时的处理顺序。
主设备202发出指示,以开始下载应用程序C的处理。
在开始下载处理时,与通过步骤1下载应用程序A时相同,暂时 存储部507存储关于应用程序C的信息(加密后的数据大小及解密后的 数据大小)。在此情况下,暂时存储部507分别存储应用程序C在加密 后的数据大小40KB和应用程序C在解密后的数据大小70KB。
其次,移动判断部505从程序管理部401获得通过步骤3更新的 程序管理信息1500,并获得随机存取存储器406的可用空间。在此情
况下,由于在随机存取存储器406中有加密后的应用程序A(10KB)、 加密后的应用程序B(30KB)、解密后的应用程序B(50KB),因此随机 存取存储器406的可用空间为30KB。
其次,移动判断部505对存储在暂时存储部507中的应用程序C 在加密后的数据大小(40KB)与随机存取存储器406的可用空间(30KB) 进行比较。在此情况下,由于随机存取存储器406的可用空间不足, 因此移动判断部505进行为确保随机存取存储器406的可用空间的处 理。
在这里,通过S904来确保随机存取存储器406的可用空间。
艮P,移动判断部505通过S904来进行从随机存取存储器406内的
三个应用程序中删除解密后的应用程序B的处理。
其次,移动判断部505再次获得随机存取存储器406的可用空间。 在删除解密后的应用程序B之后的随机存取存储器406的可用空
间变为80KB。移动判断部505对存储在暂时存储部507中的应用程序
C在加密后的数据大小(40KB)与随机存取存储器406的可用空间(80KB)
进行比较,从而判断为可下载应用程序C。
其次,存储控制部403将下载到的应用程序C存储到程序存储区
域406a中。
然后,程序管理部401将程序管理信息1500更新为如图16(A)那 样。另外,随机存取存储器406的状态变为如图16(B)所示那样。
通过以上处理,可完成下载应用程序C的处理。
下面,详细描述步骤5的处理顺序,即描述执行应用程序C时的 处理顺序。
主设备202发出指示,以开始执行应用程序C的处理。 如在步骤3中描述,首先,移动判断部505根据更新后的程序管
理信息1600获得应用程序C在解密后的数据大小(70KB),并将该数据
大小存储到暂时存储部507中。
其次,如在步骤3中描述,移动判断部505根据程序管理信息1600
获得随机存取存储器406的可用空间。在此情况下,随机存取存储器 406的可用空间为40KB。
接着,移动判断部505对存储在暂时存储部507中的应用程序C 在解密后的数据大小(70KB)与随机存取存储器406的可用空间(40KB) 进行比较,从而判断为不能在随机存取存储器406中确保执行应用程 序C所需的空间。
然后,移动判断部505按照从S1005至S1008所示的处理顺序, 进行为选定要移动到大容量非易失性存储器205中的应用程序的处理。 在这里,设想从下载到的第一个应用程序开始,按下载顺序依次将应 用程序移动到大容量非易失性存储器205中的情况。移动判断部505 将通过步骤1下载到的应用程序A选定为要移动到大容量非易失性存 储器205中的应用程序。
然后,程序管理部401将程序管理信息1600更新为如图17(A)那 样。另外,随机存取存储器406的状态变为如图17(B)所示那样。
接着,移动判断部505对存储在暂时存储部507中的应用程序C 在解密后的数据大小(70KB)与随机存取存储器406的可用空间(50KB) 进行比较,从而判断为还不能在随机存取存储器406中确保执行应用 程序C所需的空间。
移动判断部505将通过步骤2下载到的应用程序B选定为所要移 动的应用程序。
然后,程序管理部401将程序管理信息1700更新为如图18(A)那 样。另外,随机存取存储器406的状态变为如图18(B)所示那样。
接着,移动判断部505对存储在暂时存储部507中的应用程序C 在解密后的数据大小(70KB)与随机存取存储器406的可用空间(80KB) 进行比较,从而判断为在随机存取存储器406中确保了执行应用程序C 所需的空间。
移动控制部404从位于随机存取存储器406内的应用程序中将管 理信息1800中的移动标志为0N(1)的应用程序A(ID:0x0001)和应用程
序B(ID:Ox0002)复制到大容量非易失性存储器205中。
并且,移动控制部404在完成复制后删除位于程序存储区域406a
中的应用程序A和应用程序B。
最后,程序管理部401将程序管理信息1800更新为如图19(A)那
样。另外,随机存取存储器406的状态变为如图19(B)所示那样。
通过以上处理,创造能执行应用程序C的状态,则执行部409执
行应用程序C。
接着,详细描述步骤6的处理顺序,即描述执行移动在大容量非 易失性存储器205中的应用程序B时的处理顺序。
主设备202发出指示,以开始执行应用程序B的处理如在步骤3中描述,首先移动判断部505从更新后的程序管理信 息1900中获得应用程序B在解密后的数据大小(50KB),并将该数据大 小存储到暂时存储部507中。
其次,如在步骤3中描述,移动判断部505根据程序管理信息1900 获得随机存取存储器406的可用空间。在此情况下,随机存取存储器 406的可用空间为IOKB。
接着,移动判断部505对存储在暂时存储部507中的应用程序B 在解密后的数据大小(50KB)与随机存取存储器406的可用空间(10KB) 进行比较,从而判断为不能在随机存取存储器406中确保执行应用程 序B所需的空间。
于是,移动判断部505在处理步骤中首先进行删除位于随机存取 存储器406中的解密后的应用程序的处理,并根据程序管理信息l卯O 决定要删除解密后的应用程序C。
而,删除部411删除位于随机存取存储器406中的解密后的应用 程序C(70KB)。
在应用程序C被删除后,程序管理部401将程序管理信息l卯O更 新为如图20(A)所示那样。另外,随机存取存储器406状态变为如图 20(B)所示那样。
接着,移动判断部505对存储在暂时存储部507中的应用程序B 在解密后的数据大小(50KB)与随机存取存储器406的可用空间(80KB) 进行比较,从而判断为在随机存取存储器406中确保了解密应用程序B 所需的空间。
移动控制部404从大容量非易失性存储器205中读出应用程序B 并将其复制到随机存取存储器406中,然后进行解密应用程序B的处 理。
接着,程序管理部401将程序管理信息2000更新为如图21(A)那 样。另外,随机存取存储器406的状态变为如图21(B)所示那样。
最后,执行部409执行解密后的应用程序B。
通过以上处理,可以执行移动在大容量非易失性存储器205中的 应用程序B。
再者,在第一实施例中,防篡改模块204不过是设在本发明涉及 的存储卡中的IC卡部的一个例子而已。大容量非易失性存储器205是 设在本发明涉及的存储卡中的闪速存储器部的一个例子。随机存取存 储器406是设在本发明涉及的存储卡中的防篡改存储部的一个例子。
由于可下载应用程序在解密后的数据大小,因此执行部409也可 以在执行该应用程序时通过执行来获得该应用程序在解密后的数据大 小,从而判断该获得的数据大小是否与预先下载到的数据大小相一致。 若两者没有相一致,则表示该所要执行的应用程序是不正当的程序, 因此执行部409要停止该应用程序的执行。由此,其贡献在于可以只 继续执行正当的应用程序。
另外,存储控制部403在将从服务提供商下载到的应用程序420 存储到程序存储区域406a中的同时,也可以将其存储到大容量非易失 性存储器205中。在此情况下,如果所要下载的应用程序或所要执行 的应用程序的数据大小超过随机存取存储器406的可用空间,只要由 存储控制部403删除位于随机存取存储器406中的任意应用程序,就 能在随机存取存储器406中确保比所要下载的应用程序或所要执行的
应用程序的数据大小更大的可用空间,从而可以在随机存取存储器406 中配置该应用程序。
另外,在所要下载的应用程序在加密后的数据大小超过随机存取 存储器406的可用空间的情况下,存储控制部403也可以将由程序获 得部400获得的所要下载的应用程序存储到大容量非易失性存储器 205中。
并且,执行部409在执行应用程序后,可以将处于加密状态的该 应用程序移动到大容量非易失性存储器205中。 (第二实施例)
图22是一个方框图,表示第二实施例涉及的SD卡2200的结构。 SD卡2200除了第一实施例涉及的SD卡203包括的构成部分之外还包 括密钥产生部2217、再加密部2218以及再解密部2219。在这里, 为了说明方便,图22中不显示图4所示的程序管理部401、履历管理 部402、存储控制部403、公钥存储部407、解密部408以及执行部409。
程序获得部400从主设备202获得SIM ID(Subscriber Identity Module Identifier^终端装置ID等主设备的固有信息;密钥产生部2217 利用该主设备的固有信息来产生加密密钥。再加密部2218利用由密钥 产生部2217产生的加密密钥来对由移动控制部404选定的要从防篡改 模块204向大容量非易失性存储器205中移动的应用程序进行加密。 移动控制部404将由再加密部2218加密的应用程序从随机存取存储器 406中复制到大容量非易失性存储器205中。
移动控制部404在将由再加密部2218加密的应用程序复制到大容 量非易失性存储器205中后,删除位于程序存储区域406a中的所要移 动的应用程序。并且,密钥产生部2217删除加密密钥。
如此,在第二实施例中,利用由密钥产生部2217产生的加密密钥 来加密所要移动的应用程序,并将其移动到大容量非易失性存储器205 中,之后删除加密密钥。由此,若采用第二实施例,所要移动的应用 程序的安全程度便能提高到比第一实施例所示的移动方法实现的安全
程度更高的水平,并能在确保该高安全程度的状态下其被存储到大容
量非易失性存储器205中。
在要将存储在大容量非易失性存储器205中的应用程序复制到随 机存取存储器406中并执行该应用程序的情况下,与上述同样,程序 获得部400获得主设备的固有信息,并且,密钥产生部2217利用主设 备的固有信息来产生加密密钥。再解密部2219利用由密钥产生部2217 产生的加密密钥来解密由再加密部2218加密的应用程序。在完成解密 处理后,移动控制部404删除加密密钥,并将解密后的应用程序复制 到随机存取存储器406中。执行部409执行被复制到随机存取存储器 406中的应用程序。
并且,程序获得部400也可以从主设备202获得用户给主设备202 提供的指纹或用户指定的号码等固有信息。在此情况下,密钥产生部 2217从主设备202获得用户的固有信息,并利用该信息来产生加密密 钥。在此情况下,由于密钥产生部2217可随时产生相同的加密密钥, 因此在完成加密处理而不需要该加密密钥时,便可删除该加密密钥。 由此,所要移动的应用程序的安全程度提高到比第一实施例所示的移 动方法实现的安全程度更高的水平,并能在确保该高安全程度的状态 下,其被存储到大容量非易失性存储器205中。 (第三实施例)
在第一实施例中,从服务提供商下载到的应用程序被存储到设在 随机存取存储器406内的程序存储区域406a中。然而,在下载应用程 序时,也可以在大容量非易失性存储器205中存储下载到的所有应用 程序。由此,能够縮减随机存取存储器406的容量。
再者,对于所述各实施方式涉及的程序获得部400、程序管理部 401、履历管理部402、存储控制部403、移动控制部404、解密部408、 执行部409、再读入部410、删除部411、密钥产生部2217、再加密部 2218以及再解密部2219中的所有功能或一部分功能,都可以通过中央 处理器执行计算机程序来实现。
并且,对于大容量非易失性存储器205、程序获得部400、程序管 理部401、履历管理部402、存储控制部403、移动控制部404、 IC卡 操作系统405、随机存取存储器406、公钥存储部407、解密部408、 执行部409、再读入部410、删除部411、密钥产生部2217、再加密部 2218以及再解密部2219中的所有功能或一部分功能,都可以利用集成 电路来实现。总之,在所述构成部分中,可以将所有部分构成为单片 结构,也可以只将一部分构成为单片结构。关于集成电路,可以采用 现场可编程门阵列(FPGA: Field Programmable Gate Array)、可重构处 理器(reconfigurable processor)。
本发明涉及的存储卡能在确保下载时的应用程序的安全程度的状 态下将无法存储在防篡改模块区域中的应用程序移动到大容量非易失 性存储器中,从而在一张存储卡中能存储尽可能多的应用程序。因此, 本发明涉及的存储卡可作为具有针对应用程序的坚固保护功能的SD 卡、IC卡等作出贡献。
权利要求
1、一种存储卡,其从主设备接收下载到该主设备的处于加密状态的应用程序,该存储卡包括具有防篡改功能的集成电路卡部以及闪速存储器部,所述集成电路卡部具备防篡改存储部;程序获得部,其从所述主设备获得处于加密状态的应用程序、所述应用程序在加密后的大小以及所述应用程序在解密后的大小;存储控制部,其根据所述得到的应用程序在加密后的大小及所述防篡改存储部的可用空间来将所述防篡改存储部或所述闪速存储器部选定为存储区域,并将所述得到的处于加密状态的应用程序存储到该选定的区域中;移动控制部,所要执行的应用程序在解密后的大小超过所述防篡改存储部的可用空间的情况下要执行存储在所述防篡改存储部中的应用程序时,该移动控制部将存储在所述防篡改存储部中的处于加密状态的任意应用程序移动到闪速存储器部中;以及执行部,其解密所述要执行的应用程序并执行该应用程序。
2、 如权利要求1所述的存储卡,在所述得到的应用程序在加密后 的大小等于或小于所述防篡改存储部的可用空间的情况下,所述存储 控制部将所述应用程序存储到所述防篡改存储部中;而在所述得到的 应用程序在加密后的大小超过所述可用空间的情况下,所述存储控制 部将所述应用程序存储到所述闪速存储器部中。
3、 如权利要求2所述的存储卡,在所述得到的应用程序在加密后 的大小超过所述防篡改存储部的可用空间的情况下,所述存储控制部 将存储在所述防篡改存储部中的处于加密状态的任意应用程序移动到 所述闪速存储器部中。
4、 如权利要求1所述的存储卡,所述执行部在执行应用程序后, 将处于加密状态的该执行后的应用程序移动到所述闪速存储器部中。
5、 如权利要求1所述的存储卡,在所述闪速存储器部中存储有所 要执行的应用程序的情况下,该所要执行的应用程序在解密后的大小 和加密后的大小的总和超过所述防篡改存储部的可用空间时,所述移 动控制部将存储在所述防篡改存储部中的处于加密状态的任意应用程 序移动到所述闪速存储器部中,并将所述要执行的应用程序复制到所 述防篡改存储部中。
6、 如权利要求1所述的存储卡,在所述闪速存储器部中存储有所 要执行的应用程序的情况下,该所要执行的应用程序在解密后的大小 超过所述防篡改存储部的可用空间时,所述移动控制部将存储在所述 防篡改存储部中的处于加密状态的任意应用程序移动到所述闪速存储 器部中,并解密所述要执行的应用程序,将该解密后的应用程序存储 到所述防篡改存储部中。
7、 如权利要求1所述的存储卡,所述移动控制部根据应用程序的 执行履历来产生各个应用程序的存取履历管理信息;所述集成电路卡 部还具备移动判断部,该移动判断部按照所述存取履历管理信息来选 定要移动到所述闪速存储器部中的应用程序。
8、 如权利要求1所述的存储卡, 所述程序获得部获得所述主设备的固有信息, 所述集成电路卡部还具备密钥产生部,其利用所述得到的主设备的固有信息来产生加密密钥;以及再加密部,其利用所述加密密钥 来加密要从所述防篡改存储部移动到所述闪速存储器部中的应用程 序,所述移动控制部在完毕加密后删除所述加密密钥,并将通过所述 加密密钥而处于重复加密状态的所述要移动的应用程序移动到所述闪 速存储器部中。
9、 如权利要求8所述的存储卡,所述集成电路卡部还具备再解密 部,在存储在所述闪速存储器部中且通过所述加密密钥而处于重复加 密状态的应用程序被复制到所述防篡改存储部中的情况下,该再解密 部利用由所述密钥产生部产生的加密密钥来解密所要复制的所述应用 程序;所述移动控制部在完毕解密后删除所述加密密钥,并将所要复 制的所述应用程序存储到所述防篡改存储部中。
10、 一种在存储卡中存储应用程序的方法,该存储卡从主设备接 收下载到该主设备的处于加密状态的应用程序;该存储卡包括具有防 篡改功能的集成电路卡部以及闪速存储器部;所述集成电路卡部具备 防篡改存储部,所述存储应用程序的方法包括程序获得步骤,其从所述主设备获得处于加密状态的应用程序、 所述应用程序在加密后的大小以及所述应用程序在解密后的大小;存储控制步骤,其根据所述得到的应用程序在加密后的大小及所 述防篡改存储部的可用空间来将所述防篡改存储部或所述闪速存储器 部选定为存储区域,并将所述得到的处于加密状态的应用程序存储到 该选定的区域中;移动控制步骤,所要执行的应用程序在解密后的大小超过所述防 篡改存储部的可用空间的情况下要执行存储在所述防篡改存储部中的 应用程序时,该移动控制部将存储在所述防篡改存储部中的处于加密 状态的任意应用程序移动到闪速存储器部中;以及执行步骤,其解密所述要执行的应用程序并执行该应用程序。
11、 一种用于在存储卡中存储应用程序的存储程序,该存储卡从 主设备接收下载到该主设备的处于加密状态的应用程序;该存储卡包 括具有防篡改功能的集成电路卡部以及闪速存储器部;所述集成电路 卡部具备防篡改存储部,所述存储程序使计算机执行以下步骤程序获得步骤,其从所述主设备获得处于加密状态的应用程序、所述应用程序在加密后的大小以及所述应用程序在解密后的大小;存储控制步骤,其根据所述得到的应用程序在加密后的大小及所述防篡改存储部的可用空间来将所述防篡改存储部或所述闪速存储器部选定为存储区域,并将所述得到的处于加密状态的应用程序存储到该选定的区域中;移动控制步骤,所要执行的应用程序在解密后的大小超过所述防篡改存储部的可用空间的情况下要执行存储在所述防篡改存储部中的应用程序时,该移动控制部将存储在所述防篡改存储部中的处于加密状态的任意应用程序移动到闪速存储器部中;以及执行步骤,其解密所述要执行的应用程序并执行该应用程序
全文摘要
本发明涉及一种存储卡,其从主设备接收下载到该主设备的处于加密状态的应用程序,该存储卡包括具有防篡改功能的集成电路卡部以及闪速存储器部,所述集成电路卡部具备防篡改存储部;程序获得部,其从所述主设备获得处于加密状态的应用程序;存储控制部,其将获得的处于加密状态的应用程序存储到所述防篡改存储部或所述闪速存储器部中;移动控制部,所要执行的应用程序在解密后的大小超过所述防篡改存储部的可用空间的情况下要执行存储在所述防篡改存储部中的应用程序时,该移动控制部将存储在所述防篡改存储部中的处于加密状态的任意应用程序移动到闪速存储器部中。
文档编号G06F21/22GK101171591SQ20068001578
公开日2008年4月30日 申请日期2006年4月28日 优先权日2005年5月9日
发明者柏原和行, 河原荣治, 西村佳子 申请人:松下电器产业株式会社