CN100428187C - 非易失性存储器设备 - Google Patents

非易失性存储器设备 Download PDF

Info

Publication number
CN100428187C
CN100428187C CNB2005100727962A CN200510072796A CN100428187C CN 100428187 C CN100428187 C CN 100428187C CN B2005100727962 A CNB2005100727962 A CN B2005100727962A CN 200510072796 A CN200510072796 A CN 200510072796A CN 100428187 C CN100428187 C CN 100428187C
Authority
CN
China
Prior art keywords
program
memory
jump list
encryption
data processor
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 - Fee Related
Application number
CNB2005100727962A
Other languages
English (en)
Other versions
CN1707446A (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.)
NEC Electronics Corp
Renesas Electronics Corp
Original Assignee
Renesas Technology 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
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of CN1707446A publication Critical patent/CN1707446A/zh
Application granted granted Critical
Publication of CN100428187C publication Critical patent/CN100428187C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

在用于通过非易失性存储器上的修改程序来实现取代部分控制器工作程序的技术中,本发明防止篡改和泄露非易失性存储器和控制器内的存储信息。在开机复位时,如果存在加密的替代程序,则从非易失性存储器转移到易失性存储器,并在实际执行时被解密。无需长时间等待,直至在从复位处理退出之后允许数据处理器的数据处理。由于一旦解密的替代程序被保持于易失性存储器中以便可再使用,所以它在每次被执行时无需解密。由于替代程序被加密,即使非易失性存储器与控制器物理分离以非法转储替代程序,仍难以分析数据。

Description

非易失性存储器设备
相关申请的交叉参考
本申请要求2004年5月20日提交的日本专利申请2004-150235的优先权,在此将其内容引入本申请中以作为参考。
技术领域
本发明涉及在具有控制器和非易失性存储器的存储器设备中用于通过非易失性存储器上的修改程序来取代控制器的部分工作程序的技术,以及适应用于例如存储器卡的技术。
背景技术
专利文献1描述了一种方法,其用于在包括存储器卡控制器和快擦写存储器的存储器卡中容易地修改存储器卡控制器内ROM中的程序。按照该方法,修改程序被置于快擦写存储器上,当电源开启时,修改程序被传送到存储器卡控制器内的RAM,RAM上的修改程序成为取代了ROM上待修改的程序的可执行执行。
为了防止篡改和泄露快擦写存储器上存储的信息,有的技术可用以加密这样的信息和将加密的信息存储于快擦写存储器上.专利文献2描述了一种快擦写存储器卡,其中:在快擦写存储器中存储和在存储加密处理部分中加密的个人信息管理应用程序(需要高度保密性)被存储密钥解密以被读出。该方法造成了难以分析被非法转储的存储数据。专利文献3描述了一种快擦写存储器卡,其中:用于执行IC卡芯片的各部分应用程序(银行处理和信用结算)在快擦写存储器芯片内的命令处理模块中被加密和存储。专利文献4描述了用于在防篡改模块(一种装置结构,其中剥离表面保护膜会损坏下方接线层,造成了无法拆解电路用于分析)的非易失性存储器中记录高度机密的小容量数据(重要的个人信息)和在快擦写存储器中记录非机密数据(由CPU执行的应用程序)的技术。
[专利文献1]日本公开未审专利申请Hei11(1999)-265283
[专利文献2]日本公开未审专利申请2003-256282
[专利文献3]日本公开未审专利申请2003-91704
[专利文献4]日本公开未审专利申请2002-229861(美国专利10/062451)
发明内容
对于在包括存储器卡控制器和快擦写存储器的存储器卡中通过快擦写存储器上的修改程序来实现取代存储器卡控制器中的部分工作程序的技术,发明人研究了防止篡改和泄露存储控制器内的程序和数据以及快擦写存储器上的修改程序。由于快擦写存储器具有它的直接暴露于芯片的存取端子,当存储器卡被拆解时,快擦写存储器比存储器卡控制器的片上掩模ROM更为容易遭受存储信息的篡改和泄露。在此情况下,如专利文献2至4中所述,高度机密的数据和程序应当加密地存储于快擦写存储器中。然而,这对于自由修改存储器卡的RAM内的程序来说并不足够。因此,如文献1中所述,需要为ROM内的所有程序设置跳转表。然而在此情况下,发现存储器卡控制器的片上掩模ROM上的程序等易于通过对存储于快擦写存储器中的跳转表进行非法篡改和分析而遭到篡改和泄露。例如,诸如允许对保持于存储器卡控制器内的高度机密数据进行外部引用的非法存取,可通过篡改跳转表来进行,从而造成存储器卡控制器执行非法程序。并且,在开机复位时从快擦写存储器控制器传送到存储器卡控制器的加密程序必须在执行之前解密。在此情况下,当程序容量较大时,与到RAM的传送一起来执行的解密将需要过长的复位处理时间。
本发明的目的是,在用于允许通过非易失性存储器上的修改程序来取代控制器的部分工作程序的技术中,提供一种存储器设备,其能够有助于防止篡改和泄露控制器内的程序和数据,以及非易失性存储器上的修改程序。
本发明的另一目的是,在用于允许通过非易失性存储器上的修改程序来取代控制器的部分工作程序的技术中,即使修改程序的容量较大时,仍可在复位处理之后防止取代处理造成操作启动的较长延迟。
从该说明书和附图的描述中,本发明的上述和其他目的及新颖特征将变得明显。
本发明的典型公开将简要概述如下。
[1]一种存储器设备包括:进行数据处理的控制器(3);以及第一非易失性存储器(4),其存储在控制器的控制下可改写的信息.该控制器包括:数据处理器(10);由该数据处理器存取的不可改写的第二非易失性存储器(11);以及由该数据处理器存取的可改写易失性存储器(12)。该第二非易失性存储器具有该数据处理器的处理程序(PGM),该第一非易失性存储器具有用于取代部分处理程序的加密替代程序(SMDLk)的存储区域(20)。在开机复位时,该数据处理器将加密替代程序传送到易失性存储器,并在该传送之后,在执行该加密的替代程序时解密该替代程序,将该解密的替代程序存储于该易失性存储器中以便随后能再使用.
按照上述,在开机复位时,该加密的替代程序被传送到易失性存储器,并在实际执行时被解密。因此,直至在从复位处理退出之后允许数据处理器的数据处理,无需长时间等待。由于一旦解密的替代程序被保持于易失性存储器以便能再使用,所以没有了每次执行时解密替代程序的繁琐。由于替代程序被加密,即使第一非易失性存储器与控制器物理或电分离以非法转储替代程序,仍难以分析数据。
期望在传送到易失性存储器之后其第一次执行时解密替代程序。这是因为可能甚至在替代程序一次也未执行时关闭工作电源。当要求有高速处理速度的程序将被取代时,可改变开机复位处理,使得在开机复位期间预先解密替代程序。
下面描述如何利用跳转表来执行上述处理程序。例如,第二非易失性存储器包括在处理程序被执行时所用的第一跳转表(TBL),第一非易失性存储器包括在部分被替代程序所取代的处理程序被执行时所用的第二跳转表(STBL)的存储区域(21),该存储区域用来存储加密的第二跳转表。当将在开机复位被清除之后的加密的替代程序传送到易失性存储器时,数据处理器解密第二跳转表,并将解密的第二跳转表存储于易失性存储器中,以便以后能取代第一跳转表而被使用。通过该方案,由于替代程序所修改的处理程序的执行所用的第二跳转表被加密地存储于第一非易失性存储器中,即使第一非易失性存储器能够与存储器卡控制器物理或电分离以非法转储跳转表,仍难以分析其内容或篡改这些内容以用于非法目的。如果跳转表可被篡改以使控制器执行非法程序,则能执行诸如允许对控制器内的高度机密数据进行外部引用的非法存取。
作为本发明的具体实施例,第二非易失性存储器具有写控制程序(MDL(PM ER)),其将分别加密的替代程序和第二跳转表写到第一非易失性存储器。即使当存储器设备被安装于应用系统时,仍可容易地更新程序和跳转表。
作为本发明的具体实施例,解密处理程序通过利用解密操作模块(硬件)来进行解密.解密处理程序可进行全部处理。
作为本发明的具体实施例,改写跳转表,以控制在解密处理程序的启动与替代程序的启动之间的切换。具体来说,第二跳转表包括在处理程序中引用的第一表区域(31)和在解密处理程序中引用的第二表区域(32),解密处理程序的位置地址信息被存储于第一引用区域(33)中,该第一引用区域被分配用来引用第一表区域中替代程序的位置地址信息,分配给第一引用区域的替代程序的位置地址信息被存储于第二表区域中与第一引用区域相对应的第二引用区域(34)中.通过引用第一引用区域中保持的地址信息和执行位于该地址处的解密处理程序,数据处理器从对应的第二引用区域中地址信息的地址处获取替代程序,解密所获取的替代程序,并将第一引用区域中保持的地址信息改变为对应的第二区域中保持的地址信息。通过该处理,替代程序能够在第一次执行时被解密,随后能够直接执行解密的替代程序。
数据处理器能够按照地址信号随机存取第二非易失性存储器和易失性存储器.可以逻辑扇区为单位对第一非易失性存储器进行文件存取.控制器具有符合指定存储器卡标准的主机接口。
[2]下面对编码的跳转表的解密进行描述.该存储器设备包括:进行数据处理的控制器;以及第一非易失性存储器,其存储在该控制器的控制下可改写的信息。该控制器包括:数据处理器;由该数据处理器存取的不可改写的第二非易失性存储器;以及由该数据处理器存取的可改写的易失性存储器。该第二非易失性存储器保持该数据处理器的处理程序和在该处理程序被执行时所用的第一跳转表。该第一非易失性存储器包括:替代程序的存储区域,该替代程序用以取代部分处理程序;以及第二跳转表的存储区域,其中在替代程序被执行时使用该第二跳转表。该存储区域用来存储第二加密跳转表。在开机复位时,数据处理器将加密的替代程序传送到易失性存储器,解密第二跳转表,并将解密的第二跳转表存储于易失性存储器中,以便能随后在取代第一跳转表时使用。
由于替代程序被加密,即使第一非易失性存储器与控制器物理或电分离以非法转储替代程序,仍难以分析数据。而且,由于替代程序所修改的处理程序的执行所用的第二跳转表被加密地存储于第一非易失性存储器中,即使第一非易失性存储器能与控制器物理或电分离以非法转储跳转表,仍难以分析其内容或者篡改这些内容以用于非法目的。因此,难以通过篡改跳转表来使控制器执行非法程序,从而有利于防止诸如允许对控制器内保持的高度机密数据进行外部引用的非法存取。
当执行被切换到易失性存储器的加密替代程序时,数据处理器可解密替代程序,将解密的替代程序存储于易失性存储器中以便随后能再使用。无需长时间等待,直至在从复位处理退出后允许数据处理器的数据处理。由于一旦解密的替代程序被保持于易失性存储器中以便能再使用,所以不存在每次执行时解密替代程序的繁琐。
本发明的典型公开所获得的效果将简述如下。
在用于允许通过非易失性存储器上的修改程序来取代控制器的部分工作程序的技术中,本发明能够有助于防止篡改和泄露控制器内的程序和数据以及非易失性存储器上的修改程序。
在用于允许通过非易失性存储器上的修改程序来取代控制器的部分工作程序的技术中,即使在修改的程序的容量较大时,本发明仍然能够防止取代处理造成复位处理后的长时间操作启动延迟。
附图说明
图1是图示按照本发明实施例的存储器卡的方框图。
图2是图示当修改程序模块SMDLk和修改跳转表STBL都未存储于快擦写存储器的指定区域中时处理程序如何进行执行的图例。
图3是图示数据如何从主机装置写到存储器卡的图例;
图4示出了当修改程序模块SMDLk和修改跳转表STBL存储于快擦写存储器的指定区域中时在开机复位时如何进行操作。
图5示出了修改程序模块在图4的处理后的执行形式。
图6示出了处理过程,其中加密的修改程序模块在第一次执行时被解密和保持于RAM中,以便随后能再使用。
图7示出了处理程序在修改程序模块SMDLk和修改跳转表STBL存储于快擦写存储器的指定区域中时的执行形式。
图8是示出开机复位时的操作过程的流程图。
图9是图示添加有散列值的修改跳转表和修改程序模块的图例。
图10是图示利用修改程序模块的数据处理过程的流程图。
图11是图示利用修改程序模块的数据处理过程的另一实例的流程图。
具体实施方式
图1示出了按照本发明实施例的存储器卡.存储器卡(MCRD)1包括:存储器卡控制器(MCNT)3,其作为执行数据处理的控制器;和快擦写存储器(FLASH)4,其作为第一非易失性存储器,以存储在存储器卡控制器3的控制下可改写的信息,存储器卡控制器3和快擦写存储器4安装在卡板上.快擦写存储器4由一个或多个快擦写存储器芯片构成。存储器卡控制器3例如由单个芯片构成。存储器卡控制器3例如包括:数据处理器(MPU)10;掩模ROM(MskROM)11,其作为由数据处理器10存取的不可改写的第二非易失性存储器;RAM(随机存取存储器)12,其作为由数据处理器10存取的可改写的易失性存储器;接口电路(HMIF)13;以及数据缓冲器(DBUF)14。
接口电路13与主机装置(HOST)15和快擦写存储器4相接口。存储器卡控制器3和主机装置15间的接口取决于存储器卡1的卡规格。响应于符合卡规格的存储器卡命令来进行处理。例如,存储器卡1符合多媒体卡(MultiMediaCard)的规格。MultiMediaCard是InfineonTechnologiesAG的注册商标。主机装置15以文件存取的形式与快擦写存储器4相接口。换而言之,存储器卡控制器3对作为文件存储器的快擦写存储器4进行存取控制。当存取逻辑地址(逻辑扇区地址)被主机装置15馈入的存取命令指定时,存储器卡控制器3产生与其对应的物理地址,将符合快擦写存储器4规格的存储器存取命令发到快擦写存储器4,以对快擦写存储器4进行存取控制。
掩模ROM 11包括数据处理器10的处理程序PGM和在处理程序PGM被执行时用到的第一跳转表(初始跳转表)TBL。数据处理器10通过执行处理程序PGM,来控制主机接口操作和快擦写存储器接口操作。处理程序PGM被构成为以函数方式调节的一组程序模块MDLi(i=1至n),指定程序模块MDL1的执行在复位被清除后立即启动。处理程序在跳转到程序模块MDLi内的其他程序模块MDLx的同时继续处理。用以引用跳转表的表地址在跳转源程序模块中描述。跳转目的程序模块的开始地址信息被保持于表地址中所引用的区域中。数据处理器10解码跳转指令,从该指令的地址域中描述的表地址的跳转表区域中获得地址信息,将程序指令地址切换为由地址信息表示的地址。结果,该执行地址改变到程序地址中指定的另一程序模块。
存储器卡控制器3包括FOF(farm on flash)功能,用于对处理程序PGM进行部分修改。下面将说明FOF功能.
快擦写存储器4包括:修改程序模块SMDLk(k=1至任意数n)的存储区域20,该程序作为加密的取代程序以取代部分处理程序;加密的第二跳转表(修改跳转表)STBL的存储区域21,当修改程序模块SMDLk所部分取代的处理程序被执行时用到该跳转表;以及标志信息FLG的存储区域22,该标志信息用于表示修改模块SMDLk和修改跳转表STBL是否存储于区域20和21中。
图2示出了当修改程序模块SMDLk和修改跳转表STBL未存储于区域20和21中时处理程序如何进行执行。在开机复位时,当工作电源电压和时钟振荡频率变稳定后,数据处理器10引用区域22中的标志信息FLG,并在修改程序模块SMDLk和修改跳转表STBL未存储于区域20和21中时将ROM 11上的初始跳转表TBL传送到RAM12的指定存储区域(TRS)。随后,例如用以从程序模块MDL1跳转到另一程序模块MDLi的处理程序引用RAM 12上的初始跳转表TBL,获得程序模块MDLi的程序地址以改变指令执行顺序(BRC)。
图3示出了数据如何从主机装置15写到存储器卡1。为了将数据从主机装置15安全传送到存储器卡1,传送数据被加密。在从主机装置15传送前,利用存储器卡1的制造商密钥和公开密钥,对用作安全模块的修改程序SMDLk和修改跳转表STBL加密。作为其他非安全模块的数据等在从主机装置15传送前被存储器卡1的公开密钥加密。从主机装置15传送的数据被暂存于数据缓冲器14中,随后由数据处理器10利用存储器卡1的秘密密钥来解密.由此,能够获得由制造商密钥加密的安全模块和明文的非安全模块。用作安全模块的修改程序SMDLk和修改跳转表STBL被加密地存储于快擦写存储器4中。通过该方案,即使快擦写存储器4与存储器卡1分离以非法转储其存储信息,也难以分析其内容。由于修改跳转表TBL也被加密,所以难以分析和篡改修改跳转表STBL的内容以用于非法目的。因此,能够抑制篡改修改跳转表STBL以使数据处理器10执行非法程序的企图,还能够防止诸如允许通过篡改修改跳转表STBL来对存储器卡控制器3内保持的高度机密数据进行外部引用的非法存取。作为一个程序模块MDLm,在处理程序PGM中包含程序MDK(PM ER),其控制修改程序模块SMDLk和修改跳转表STBL向快擦写存储器4的写入。
图4示出了当修改程序模块SMDLk和修改跳转表STBL存储于区域20和21中时在开机复位时如何进行操作.在开机复位时,在工作电源电压和时钟振动频率变得稳定后,数据处理器10引用存储区域22的标志信息,并在修改程序模块SMDLk和修改跳转表STBL存储于区域20和21中时,将快擦写存储器4上的修改跳转表STBL和修改程序模块SMDLk传送到RAM 12的指定存储区域。这时,数据处理器10解密该修改跳转表STBL,并将仍然加密的修改程序模块SMDLk传送到RAM 12。这样做是为了避免开机复位的处理时间因为一次解密整个加密的修改程序模块将需要很长的处理时间而剧增。
图5示出了修改程序模块在图4的处理后的执行形式.传送到RAM 12的修改程序模块SMDLk由数据处理器10在第一次执行时解密。解密的修改程序模块SMDLk被保持于RAM 12中,以便随后能再使用。传送到RAM的修改程序模块SMDLk在它被实际执行时被解密。因此,无需长时间等待,直至在从复位处理退出后允许数据处理器10的数据处理。由于一旦被解密的取代程序被保持于快擦写存储器4中以便能再使用,所以不存在每次执行时解密该修改程序模块SMDLk的繁琐。
修改程序模块SMDLk和修改跳转表STBL的解密处理由执行解密程序MDL(DEC)的数据处理器10来进行。作为一个程序模块MDLh,在处理程序PGM中包含解密程序模块MDL(DEC)。
图6示出了处理过程,其中加密的修改程序模块在第一次执行时被解密,并被保持于RAM中以便随后能再使用。这里,修改跳转表STBL被改写,以控制在解密处理程序的启动与修改程序模块的启动间的切换。具体而言,修改跳转表STBL包括在处理程序中引用的第一表区域31和在解密处理程序MDL(DEC)中引用的第二表区域32。第一表区域31是分配的区域,用于按照程序模块的顺序保持程序模块MDL0至MDLn的位置地址信息(程序模块的开始地址).MDLi_SADR表示程序模块MDLi的开始地址.在解密已在开机时进行并且已对RAM 14进行传送的状态下,在第一表区域31中,为引用修改程序模块的位置地址信息而分配的第一引用区域33与解密处理程序MDL(DEC)的开始地址MDL(DEC)_SADR一起被存储为其位置地址信息。第二表区域32包括与第一引用区域33相对应的第二引用区域34。第二引用区域34与向对应的第一引用区域33所分配的修改程序模块的开始地址一起被存储为其位置地址信息。具体而言,在图6的修改程序模块解密前的修改跳转表STBL中,对应于修改位置1和2的第一引用区域33与解密处理程序MDL(DEC)的开始地址MDL(DEC)_SADR一起被存储。此时,与修改位置1的第一引用区域33相对应的第二引用区域34与修改程序模块SMDL3的开始地址SMDL3_SADR一起被存储。与修改位置m的第一引用区域33相对应的第二引用区域34与修改程序模块SMDLk的开始地址SMDLk_SADR一起被存储。尽管未示出,但是第一引用区域33具有标识码,其表示当它被分配用来存储修改程序模块的开始地址时从表格的起点开始计数的修改程序模块编号。该标识码由解密处理模块MDL(DEC)识别.
当数据处理器10在引用第一表区域31中保持的地址信息的同时继续程序处理时,如果解密处理程序设置于该地址信息所示的地址处,则解密处理程序利用与当时引用的第一引用区域33中保持的地址信息一起到来的标识码,来获取第二表区域32中对应的第二引用区域34中保持的修改程序模块的位置地址。例如,当数据处理器10当前执行的程序模块中程序跳转指令的跳转目的地在修改跳转表STBL的修改位置1的地址中被指定时,数据处理器10从该地址处获取解密处理程序模块的开始地址MDL(DEC)_SADR,并切换到解密处理程序模块的执行。此时,数据处理器10读取与紧接在前的跳转指令所引用的第一引用区域33中保持的地址信息一起到来的标识码。在图6的实例中,指定的修改程序模块是第一个模块。按照该标识码,数据处理器10获取与第二表区域32的第一位置相对应的第二引用区域34中保持的修改程序模块的位置地址SMDL3_SADR.数据处理器10解密该地址SMDL3_SADR中指定的加密修改程序模块.解密的修改程序模块在相同地址SMDL3_SADR中指定的区域中进行写覆盖.随后,数据处理器10将曾已被用来引用该解密处理程序模块的第一引用区域33中的位置地址信息MDL(DEC)_SADR改写为对应的第二引用区域34中的位置地址信息SMDL3_SADR。改写完成时的修改跳转表STBL的状态如图6中的修改程序模块解密状态所示。在第一引用区域33的改写完成后,数据处理器返回至跳转到解密处理模块前的处理,以转到修改位置1中指定的修改程序模块的开始地址SMDL3_SADR。对于每个修改程序模块,上述解密处理仅在该模块被第一次执行时进行。由此,加密的修改程序模块可在第一次执行时被解密,随后解密的修改程序模块可被直接执行。
图7示出了当修改程序模块SMDLk和修改跳转表STBL存储于区域20和21中时处理程序的执行。在开机复位时,在工作电源电压和时钟振荡频率变得稳定后,数据处理器10引用区域22的标志信息FLG,当修改程序模块SMDLk和修改跳转表STBL存储于区域20和21中时,快擦写存储器4上的修改程序模块SMDLk和修改跳转表STBL被传送到RAM 12的指定存储区域并被解密,如前所述。例如当程序模块MDL1在处理程序的后续执行中引用修改跳转表STBL时,如果跳转目的地是RAM 12上的地址,则该地址中指定的RAM 12上的修改程序,例如修改程序模块SMDLk被执行。
图8是示出了开机复位时操作过程的流程图。当电源开启(S1)时,启动初始化处理(复位处理)(S2)。当数据处理器的指令执行被使能时,跳转表TBL被传送到RAM 12(S3)。确定修改固件是否存在于快擦写存储器4中(S4)。该修改固件表示修改跳转表STBL和修改程序模块SMDLk。标志FLG可被用于确定。当修改固件存在时,修改跳转表STBL和修改程序模块SMDLk被读取到RAM 12中(S5)。对于读取的修改跳转表STBL和修改程序模块SMDLk进行数据验证(S6)。例如,通过CRC(循环冗余校验)码和散列值的计算来检验是否已进行篡改。在验证后,加密的修改跳转表STBL被解密(S7)。在解密后或者当不存在修改固件时,数据处理器继续到下一处理.尽管未示出,但是作为数据验证的结果,当怀疑篡改时,可进行错误处理,比如禁止卡的使用.
图9示出了添加有散列值的修改跳转表和修改程序模块.可添加加密的散列值。有关数据的散列值是在散列值的获取时利用一个函数来计算的,并与添加到该数据的散列值做比较。如果它们不同,则可确定该数据被篡改。
图10示出了利用修改程序模块时的数据处理过程.当跳转到不同程序模块时,引用修改跳转表(S11),获得跳转目的地址(S12)。如果跳转目的地址的程序是解密处理程序模块MDL(DEC),如前所述,从区域34中获得待解密的修改程序模块SMDLk的位置地址(S13),对由此获得的修改程序模块SMDLk解密,解密前的修改程序模块被解密后的修改程序模块取代(S14)。此后,存储于修改跳转表中的解密处理程序模块的位置地址MDL(DEC)_SADR被改变成修改程序模块的位置地址SMDLk_SADR(S15),并执行修改程序模块SMDLk(S16)。如果跳转目的地址的程序是S12中的修改程序模块SMDLk,则可执行修改程序模块SMDLk(S16)。
图11示出了利用修改程序模块时的数据处理过程的另一实例。在该实例中,在修改跳转表中指定跳转目的地址的区域中,跳转目的地址被指定,无论是完成还是未完成解密。基于解密鉴别表中保持的信息,确定是否解密该跳转目的地址中所指定的修改程序模块。解密鉴别表保持有与修改程序模块的位置地址信息相对应的、表示是否进行解密的信息。
当跳转到另一程序模块时,引用修改跳转表(S21),获得跳转目的地址(S22),并利用解密鉴别表来确定跳转目的地的程序是否已被解密(S23)。如果跳转目的地的修改程序模块尚未被解密,则加密的修改程序模块SMDLk从RAM 12中被读取(S24)并被解密,解密前的修改程序模块被解密后的修改程序模块取代(S25),关于该进行取代的修改程序模块的解密鉴别表的对应标记被改变为表示解密完成的代码(S26),该进行取代的修改程序模块SMDLk被执行(S27)。如果跳转目的地的修改程序模块已被解密,则跳过解密处理,执行该修改程序模块SMDLk(S27)。
按照上述存储器卡,能够获得下述效果。
由于修改程序模块SMDLk被加密,即使快擦写存储器4与存储器卡控制器3物理或电分离以非法转储修改程序模块SMDLk,仍难以分析数据。
在开机复位时,加密的修改程序模块SMDLk从快擦写存储器4被传送到RAM 12,并在实际执行时被解密。因此,无需长时间等待,直至在从复位处理退出后允许数据处理器10的数据处理.由于一旦解密的修改程序模块SMDLk被保持于RAM 12中以便能再使用,所以不存在每次执行时解密修改程序模块SMDLk的繁琐。
修改程序模块SMDLk是在传送到RAM 12的修改程序模块SMDLk被第一次执行时解密的。当关闭工作电源时,可避免无谓的信号处理,即使修改程序模块SMDLk一次也没有执行。
由于用于修改程序模块SMDLk所修改的处理程序PGM的执行的修改跳转表被加密地存储于快擦写存储器4中,即使快擦写存储器4能够与存储器卡控制器3物理或电分离以非法转储修改跳转表STBLk,仍难以分析其内容或篡改这些内容以用于非法目的。如果能够篡改修改跳转表以使控制器3执行非法程序,则可能进行诸如允许对控制器3内的高度机密数据进行外部引用的非法存取。
通过引用第一引用区域33中保持的地址信息和执行位于该地址的解密处理程序MDL(DEC),数据处理器从对应的第二引用区域34中地址信息的地址处获取修改程序模块SMDLk,对获取的修改程序模块SMDLk解密,并将第一引用区域33中保持的地址信息改变为对应的第二区域34中保持的地址信息。通过该处理,修改程序模块SMDLk能够在其第一次执行时被解密,随后能够直接执行已解密的修改程序模块SMDLk.
上文尽管基于优选实施例已具体地描述了本发明的发明人所完成的发明,但是毋庸赘言,本发明不限于优选实施例,而是可在不改变本发明的主要目的的情况下以各种方式加以改型。
例如,RAM上的解密修改程序模块不限于存储在与加密修改程序模块相同的地址范围内。它们可以位于彼此不同的地址.
与第一区域相对应的第二区域的地址映射不限于这样的方法,该方法通过相对修改跳转表起始处的偏移来确定修改程序模块在修改跳转表上的顺序。
第一非易失性存储器不限于快擦写存储器。它可以是具有其他存储格式的存储器,比如EEPROM。
存储器卡接口不限于MMC。它可以符合其他存储器卡规格。
修改跳转表的解密处理模块和修改程序模块的解密处理模块可以完全不同,或者可以是部分公共的、具有标准化的解密算法过程控制部分的单独程序模块。

Claims (10)

1.一种存储器设备,包括:
进行数据处理的控制器;以及
第一非易失性存储器,其存储在该控制器的控制下可改写的信息,
其中,该控制器包括:数据处理器;由该数据处理器存取的不可改写的第二非易失性存储器;以及由该数据处理器存取的可改写的易失性存储器,
其中,该第二非易失性存储器保持该数据处理器的处理程序,
其中,该第一非易失性存储器包括取代部分处理程序的加密替代程序的存储区域,以及
其中,该数据处理器将加密替代程序,如果有的话,传送到可改写的易失性存储器,并在该传送之后,在执行该加密的替代程序时解密该加密的替代程序,将该解密的替代程序存储于该易失性存储器中以便随后能再使用。
2.如权利要求1所述的存储器设备,
其中,该加密的替代程序在传送到该易失性存储器后在其第一次执行时被解密。
3.如权利要求1所述的存储器设备,
其中,该第二非易失性存储器包括在该处理程序被执行时所用的第一跳转表,该第一非易失性存储器包括在该解密的替代程序所部分取代的处理程序被执行时所用的第二跳转表的存储区域,该存储区域被用来存储加密的第二跳转表,以及
其中,当该加密的替代程序在开机复位被释放后被传送到该易失性存储器时,该数据处理器解密该第二跳转表,并将解密的第二跳转表存储于该易失性存储器中,以便之后取代该第一跳转表而使用。
4.如权利要求3所述的存储器设备,
其中,该第二非易失性存储器具有用于将加密的替代程序和加密的第二跳转表写到该第一非易失性存储器中的写控制程序。
5.如权利要求3所述的存储器设备,
其中,该第二非易失性存储器具有用于解密该加密的替代程序和该加密的第二跳转表的解密处理程序。
6.如权利要求1所述的存储器设备,
其中,该数据处理器能够按照地址信号以字节为单位存取该第二非易失性存储器和该易失性存储器,并且能够按照地址信号以逻辑扇区为单位存取该第一非易失性存储器。
7.如权利要求6所述的存储器设备,
其中,该控制器具有符合指定存储器卡标准的主机接口。
8.如权利要求1所述的存储器设备,
其中,所述数据处理器对所述加密替代程序的传送在进行开机复位操作时进行。
9.一种存储器设备,包括:进行数据处理的控制器;以及第一非易失性存储器,其存储在该控制器的控制下可改写的信息,
其中,该控制器包括:数据处理器;由该数据处理器存取的不可改写的第二非易失性存储器;以及由该数据处理器存取的可改写的易失性存储器,
其中,该第二非易失性存储器保持该数据处理器的处理程序和在该处理程序被执行时所用的第一跳转表,
其中,该第一非易失性存储器包括:第一存储区域,用于存储取代部分处理程序的加密的替代程序;以及第二存储区域,用于存储加密的第二跳转表,该第二跳转表用于存储该加密的替代程序的第一分配地址,以及
其中,当进行开机复位操作时,该数据处理器将加密的替代程序和加密的第二跳转表,如果有的话,传送到该可改写的易失性存储器,解密该加密的第二跳转表,并将解密的第二跳转表存储于该可改写的易失性存储器中,以便随后取代该第一跳转表而使用。
10.如权利要求9所述的存储器设备,
其中,该数据处理器在将该加密的替代程序传送到该易失性存储器后解密该加密的替代程序,将解密的替代程序存储于该易失性存储器中以便随后能再使用,然后执行从该易失性存储器取得的解密的替代程序。
CNB2005100727962A 2004-05-20 2005-05-20 非易失性存储器设备 Expired - Fee Related CN100428187C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004-150235 2004-05-20
JP2004150235A JP2005332221A (ja) 2004-05-20 2004-05-20 記憶装置
JP2004150235 2004-05-20

Publications (2)

Publication Number Publication Date
CN1707446A CN1707446A (zh) 2005-12-14
CN100428187C true CN100428187C (zh) 2008-10-22

Family

ID=35374973

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100727962A Expired - Fee Related CN100428187C (zh) 2004-05-20 2005-05-20 非易失性存储器设备

Country Status (4)

Country Link
US (1) US20050259465A1 (zh)
JP (1) JP2005332221A (zh)
CN (1) CN100428187C (zh)
TW (1) TW200608283A (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
EP1906412A1 (en) * 2006-09-29 2008-04-02 Koninklijke Philips Electronics N.V. A secure non-volatile memory device and a method of protecting data therein
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
US20090199014A1 (en) * 2008-02-04 2009-08-06 Honeywell International Inc. System and method for securing and executing a flash routine
US20090327750A1 (en) * 2008-06-29 2009-12-31 Tse-Hong Wu Security system for code dump protection and method thereof
JP2010211516A (ja) * 2009-03-10 2010-09-24 Toshiba Corp 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
TWI489718B (zh) * 2009-10-14 2015-06-21 Inventec Appliances Corp 儲存裝置及其運作方法
TWI514551B (zh) * 2013-05-15 2015-12-21 Toshiba Kk Nonvolatile memory device
JP2015036965A (ja) * 2013-08-16 2015-02-23 富士通株式会社 メモリ制御装置、メモリ制御装置の制御方法及び情報処理装置
JP6270377B2 (ja) * 2013-08-27 2018-01-31 キヤノン株式会社 画像形成装置
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
US10095432B2 (en) 2016-09-27 2018-10-09 Intel Corporation Power management and monitoring for storage devices
US9727267B1 (en) * 2016-09-27 2017-08-08 Intel Corporation Power management and monitoring for storage devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229861A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
JP2003256282A (ja) * 2002-02-28 2003-09-10 Matsushita Electric Ind Co Ltd メモリカード
CN1461003A (zh) * 2002-05-20 2003-12-10 索尼公司 信息处理装置、程序加载和更新方法、介质及电路设备
US20040065744A1 (en) * 2002-10-07 2004-04-08 Renesas Technology Corp. Nonvolatile memory card
CN1495620A (zh) * 2002-09-04 2004-05-12 ���µ�����ҵ��ʽ���� 有加密部分或外部接口的半导体器件及内容再生方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675645A (en) * 1995-04-18 1997-10-07 Ricoh Company, Ltd. Method and apparatus for securing executable programs against copying
JP3799642B2 (ja) * 1996-01-10 2006-07-19 ソニー株式会社 通信端末のソフトウェア更新システム、通信端末及び通信管理センタ
WO1998024021A1 (fr) * 1996-11-29 1998-06-04 Hitachi, Ltd. Systeme de commande de micro-ordinateur
FR2764716B1 (fr) * 1997-06-13 2001-08-17 Bull Cp8 Procede de modification de sequences de code et dispositif associe
JPH11265283A (ja) * 1998-03-18 1999-09-28 Hitachi Ltd 記憶装置におけるファームウェアの修正方法及び記憶装置
JP4042280B2 (ja) * 1999-12-21 2008-02-06 富士ゼロックス株式会社 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体
JP3865629B2 (ja) * 2001-07-09 2007-01-10 株式会社ルネサステクノロジ 記憶装置
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
JP4349788B2 (ja) * 2002-10-31 2009-10-21 パナソニック株式会社 半導体集積回路装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229861A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
JP2003256282A (ja) * 2002-02-28 2003-09-10 Matsushita Electric Ind Co Ltd メモリカード
CN1461003A (zh) * 2002-05-20 2003-12-10 索尼公司 信息处理装置、程序加载和更新方法、介质及电路设备
CN1495620A (zh) * 2002-09-04 2004-05-12 ���µ�����ҵ��ʽ���� 有加密部分或外部接口的半导体器件及内容再生方法
US20040065744A1 (en) * 2002-10-07 2004-04-08 Renesas Technology Corp. Nonvolatile memory card

Also Published As

Publication number Publication date
CN1707446A (zh) 2005-12-14
TW200608283A (en) 2006-03-01
JP2005332221A (ja) 2005-12-02
US20050259465A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
CN100428187C (zh) 非易失性存储器设备
US7058818B2 (en) Integrated circuit for digital rights management
US8572410B1 (en) Virtualized protected storage
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US11411747B2 (en) Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems
JP6585153B2 (ja) 重要なまたは機密扱いの技術情報および他のデータを記憶するためのフラッシュメモリを用いたデバイス
US20130124854A1 (en) Authenticator
WO1999038078A1 (en) Storage device, encrypting/decrypting device, and method for accessing nonvolatile memory
CN102117387A (zh) 安全密钥访问设备及方法
CN102171704A (zh) 用硬件加密存储设备进行外部加密和恢复管理
US10142303B2 (en) Separation of software modules by controlled encryption key management
CN101241534A (zh) 有加密部分或外部接口的半导体器件及内容再生方法
US20100077230A1 (en) Protecting a programmable memory against unauthorized modification
KR20170102285A (ko) 보안 요소
CN111931190B (zh) 一种基于xip处理器系统的启动方法
CN103246852A (zh) 加密数据的存取方法及装置
EP3964965A1 (en) Secure flash controller
US9218484B2 (en) Control method and information processing apparatus
WO2022019910A1 (en) Read protection for uefi variables
JP2008191208A (ja) 暗号処理回路、演算装置及び電子機器
CN112703703B (zh) 用于存储敏感信息和其它数据的闪存设备
JP2006120089A (ja) データ管理システム及びデータ管理方法
US20230274037A1 (en) Secure Flash Controller
US11734415B2 (en) Device and method for managing an encrypted software application
JP5103668B2 (ja) 半導体メモリおよび情報処理システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NEC CORP.

Free format text: FORMER OWNER: RENESAS TECHNOLOGY CORP.

Effective date: 20100716

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: RENESAS ELECTRONICS CO., LTD.

Free format text: FORMER NAME: NEC CORP.

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: TOKYO, JAPAN TO: KANAGAWA, JAPAN COUNTY

CP01 Change in the name or title of a patent holder

Address after: Kanagawa, Japan

Patentee after: Renesas Electronics Corp.

Address before: Kanagawa, Japan

Patentee before: NEC ELECTRONICS Corp.

TR01 Transfer of patent right

Effective date of registration: 20100716

Address after: Kanagawa, Japan

Patentee after: NEC ELECTRONICS Corp.

Address before: Tokyo, Japan

Patentee before: Renesas Technology Corp.

CP02 Change in the address of a patent holder

Address after: Tokyo, Japan

Patentee after: Renesas Electronics Corp.

Address before: Kanagawa, Japan

Patentee before: Renesas Electronics Corp.

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081022

Termination date: 20180520

CF01 Termination of patent right due to non-payment of annual fee