CN102804160B - 用于对数据进行操作的方法和存储器器件 - Google Patents

用于对数据进行操作的方法和存储器器件 Download PDF

Info

Publication number
CN102804160B
CN102804160B CN200980160123.9A CN200980160123A CN102804160B CN 102804160 B CN102804160 B CN 102804160B CN 200980160123 A CN200980160123 A CN 200980160123A CN 102804160 B CN102804160 B CN 102804160B
Authority
CN
China
Prior art keywords
storage component
component part
main frame
context
data
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.)
Active
Application number
CN200980160123.9A
Other languages
English (en)
Other versions
CN102804160A (zh
Inventor
B.多尔古诺夫
M.霍尔茨曼
R.巴齐莱
E.沈
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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk 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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN102804160A publication Critical patent/CN102804160A/zh
Application granted granted Critical
Publication of CN102804160B publication Critical patent/CN102804160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

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

Abstract

提供了用于实现长操作并支持多个流的方法和存储器器件。在一个实施例中,存储器器件从主机接收数据和命令以对该数据进行操作,其中存储器器件完成该操作所需的时间超过了存储器器件对该命令做出响应的最大响应时间。存储器器件开始进行对数据的操作,并且在超过该最大响应时间之前以及在完成该操作之前,将该操作的上下文发送给主机。在稍后的时间,存储器器件从主机接收:(i)恢复进行该操作的命令以及(ii)该上下文。存储器器件然后基于从主机接收的上下文恢复对数据进行操作。

Description

用于对数据进行操作的方法和存储器器件
技术领域
背景技术
诸如智能卡或SD卡的存储器器件可以用作诸如个人计算机(PC)或者移动电话的主机中的嵌入安全模块,以同时支持来自主机的多个任务和应用流。对安全模块的访问经常是不同步的,因为运行在主机上的应用经常未同步,并且因为安全模块可能在时间上的任意时刻仅能够执行单个操作。结果,主机上的多个应用可能需要时间共享该安全模块。如图5所示,来自两个或多个不同应用的数据被划分成多个块,并且被存储在两个或多个数据缓冲器中知道块可以被安全模块处理。在诸如安全性处理的应用中(例如数字签名和加密产生),数据块不能被单独处理,因为给定块的处理取决于先前处理的块。因此,当处理两个同时的流时,当前上下文(context)被保存在安全模块中并在稍后用于处理随后的块。但是,将上下文保存在安全模块中可能消耗相当大量的存储器,这对于具有有限存储器空间的注入智能卡或SD卡的存储器器件来说可能是问题。当被用作安全模块时,这样的存储器件可能进一步需要专门的状态管理块,这可能极大地增加安全模块的价格。而且,安全模块的性能可能极大地降低,因为重复向非易失性存储器写上下文可能花费相当长的时间并且降低了非易失性存储器的使用寿命。
在安全模块中的安全处理遇到的另一困难是完全安全操作(例如RSA密钥产生或者RSA签名)所需的时间可能比存储器器件对命令做出响应的最大响应时间更长。智能卡通过使用专门的“未就绪(not ready)”命令(比如在ISO-7816-3中定义的“NULL(空)”进程字节)来命令主机保持等待来应对此情况(见图6)。但是,利用此方法,主机可能需要等待相当长的时间直到操作完成,并且可能不能中断操作。另外,存在主机驱动器在此时间期间不能将安全模块置于睡眠模式的风险,这可能导致安全模块的易失性存储器被擦除。此外,对于某些安全模块,比如SD卡,这样的专门的“未就绪”命令可能不能实现,因为它们未被定义在物理协议级。
发明内容
本发明的实施例由权利要求定义,并且此部分中的任何内容不应被当作是对那些权利要求的限制。
通过介绍,以下所述的实施例指向用于对数据进行操作的方法和存储器器件。在一个实施例中,存储器器件接收来自主机的数据和命令以对数据进行操作,其中存储器器件完成该操作所需的时间超过了存储器器件对该命令做出响应的最大响应时间。存储器器件开始进行对数据的操作,并且在超过该最大响应时间之前以及在完成该操作之前,将该操作的上下文发送给主机。在稍后的时间,存储器器件从主机接收:(i)恢复进行该操作的命令以及(ii)该上下文。存储器器件然后基于从主机接收的上下文恢复对数据进行操作。
其他实施例是可能的,并且每个实施例可以单独或者组合在一起使用。因而,现在将参考附图描述各个实施例。
附图说明
图1是实施例的示例存储器器件的框图。
图2是对数据进行操作的实施例的方法的流程图。
图3是在图2的流程图中讨论的操作的例示。
图4是实施例的处理多个流的例示。
图5和图6是对数据进行操作的现有技术方法的例示。
具体实施方式
介绍
以下实施例提供了用于对数据进行操作的方法和存储器器件。如上所述,主机要求存储器器件进行的某些操作可能比对存储器器件对命令做出响应给出的最大响应时间花费更长。以下描述的实施例中的一些给出了对于此“长操作”问题的解决方案,其避免了现有方案遇到的缺点。以下描述的其他实施例可以用于支持多个应用而不增加成本以及不降低安全性。以下讨论的“长操作”实施例以及“多个流”实施例可以单独使用或者彼此组合使用。在转向这些实施例之前,以下部分讨论了可以用于实现这些实施例之一或两者的示例存储器器件。应该注意,可以使用其他类型的存储器器件。
示例存储器器件
图1是可以与这些实施例一起使用的示例存储器器件100的例示,尽管可以使用其他类型的存储器器件。在一个实施例中,存储器器件100采取可拆卸地可连接到主机的手持存储卡、嵌入存储卡(例如嵌入主机中的安全模块)、通用串行总线(USB)器件或者可移除或不可移除硬盘、比如固态驱动器的形式。如图1所示,存储器器件100包括控制器110和存储器120。控制器110包括用于与存储器120接口的存储器接口111以及用于将存储器器件置于与主机50通信的主机接口120。如在此使用的,短语“与......通信”可以意味直接与之通信或者通过可能有或者可能没有在此示出或描述的一个或多个组件间接与之通信。例如,主机接口150可以包含物理和电连接器以在存储器器件100和主机50之间发送数据和命令。同样如在此使用的,主机可以采取任何适当的形式,比如但不限于专用内容播放器、移动电话、个人计算机、游戏设备、个人数字助理(PDA)、信息站(kiosk)、机顶盒或者TV系统。
控制器110还包括中央处理单元(CPU)113、可操作以提供加密和/或解密操作的密码引擎114(密码引擎114可以实现在硬件或软件中)、读访问存储器(RAM)115、存储存储器器件100的基本操作的固件的只读存储器(ROM)116、以及存储用于加密/解密操作的设备专用密钥的非易失性存储器(NVM)117。
存储器120可以采取任何适当的形式。在一个实施例中,存储器120是采取固态(快闪)存储器形式的海量存储器件,并且可以是一次可编程的、几次可编程的或者多次可编程的。但是,可以使用其他形式的存储器。在此实施例中,存储器120包括由主机50上的文件系统管理的公共分区125以及由控制器110内部地管理的隐藏受保护系统区135。隐藏受保护系统区135存储由控制器110使用来控制存储器器件100的操作的固件(FW)代码142以及内容加密密钥(CEK)146,如以下将描述的。
公共分区125和隐藏受保护系统区135可以是相同存储器单元的部分或者可以是不同的存储器单元。隐藏受保护系统区135是“隐藏的”,因为其由控制器110(而不是由主机的控制器)内部地管理,并且是“是受保护的”,因为区域135中存储的对象被用存储在控制器110的非易失性存储器117中的唯一密钥加密。因而,为了访问该区域135中存储的对象,控制器110将使用密码引擎114和存储在非易失性存储器117中的密钥来解密被加密的对象。优选地,存储器器件100采取来自桑迪士克公司的在TrustedFlashTM平台上构建的产品系列的安全产品。
在此实施例中,受保护内容文件130A、130B被存储在主机50中并且通过密码算法保护。例如,可以使用存储在存储器器件100中(例如控制器的NVM117中的或者某些其他位置中)的密钥加密并签名内容130A、130B。
存储器器件100和主机50可以经由主机接口112彼此通信。在一个实施例中,对于涉及数据的安全传输的操作,存储器器件100中的密码引擎114以及主机50中的密码引擎可以用于相互验证彼此并提供密钥交换(只是可选的并不是强制性的)。相互验证处理要求主机50和存储器器件100交换唯一证书ID。主机50和存储器器件100可以基于PKI进行相互验证。在相互验证完成后之后,优选会话密钥可以用于建立安全信道用于在存储器器件100和主机50之间的通信。应该注意,也可以进行单个验证。
控制器110可以以任何适当的方式实现。例如,控制器110可以采取例如微处理器或者处理器以及存储可由(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器以及嵌入式微控制器的形式。控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、MicrochipPIC18F26K20、以及Silicon Labs C8051F320。控制器110也可以实现为存储器120控制逻辑的部分。
对数据进行操作的示例方法
在主机50向存储器器件100发送命令之后,主机50将期望存储器器件100在一定量的时间内对此命令做出响应。取决于应用,例如,最大响应时间范围可以从几百毫秒到几秒。如果存储器器件在分配的最大响应时间内未对该命令做出响应,则主机50可以假定发生错误。但是,当要求存储器器件100进行花费比最大响应时间更长的操作时,发生问题。例如,存储器器件100完成安全操作、比如RSA密钥产生操作或者RSA签名操作所需的时间可能超过存储器器件100对该命令做出响应的最大响应时间。智能卡通过使用专门的“未就绪”命令以迫使主机50给智能卡更多时间来完成操作来应对此情况。但是,由于协议定义,专门的“未就绪”命令可以不是对所有存储器器件都可用。此外,即使专门的“未就绪”命令可用,但是迫使主机50等待直到操作完成可能导致性降低以及其它问题,比如在供电周期或者复位期间丢失数据。
图2是根据此实施例对数据进行操作的方法的流程图200,并且将结合图1中的存储器器件100来讨论(尽管可以使用其他类型的存储器)。如图2所示,存储器器件100接收来主机50的数据和命令以对数据进行操作(动作210)。在此例子中,该操作是“长操作”,意味着存储器器件100完成此操作所需的时间超过了存储器器件100对此命令做出响应的最大响应时间。如前所述,此“长操作”可以是安全操作,比如RSA密钥产生或者RSA签名。可以进行其他类型的操作,比如非安全读和写操作、对数据进行计算的操作以及通过有线或无线网络传输和/或接收数据的操作。然后存储器器件100开始对数据进行操作(动作220)。
如果存储器器件100要进行该操作达完成,则存储器器件100将超过对该命令做出响应的最大响应时间。因此,在此实施例中,在超过最大响应时间之前以及在完成该操作之前,存储器器件100发送(i)对数据的操作未完成的指示以及(ii)该操作的上下文(动作230)。以此方式,存储器器件100可以被认为已经中断该操作并需要在稍后的时间恢复该操作。现在将讨论此指示和上下文。
对数据的操作未完成的指示通知主机50将需要向存储器器件100提供另一命令以继续该操作。该指示可以采取任何适当的形式,比如例如在提供给主机50的正常响应中的标志。应该注意,此指示与以上在上下文技术部分正讨论的专门的“未就绪”命令不同。专门的“未就绪”命令迫使主机等待直到存储器器件完成长操作,并且需要被预先定义在由主机和存储器器件使用的协议中。相反,在此实施例中提供给主机50的此指示仅仅通知主机50需要发送另外的命令以便命令存储器器件100继续该操作(例如与先前发出到该存储器器件100、致使其在首先进行此操作的命令类似或相同的命令),并且可以使用本地发送/接收(读/写)命令来提供。(在以下实施例中,“未就绪”命令和该指示两者可以一起使用。)此外,因为此指示不迫使主机50等待存储器器件100完成该操作,因此此实施例给予主机50对在存储器器件100上执行操作的更多控制。即,在接收到该指示后,代替向存储器器件100发送另一命令以允许其继续该操作,主机50可以向存储器器件100发送不同的命令用于不同的操作。以此方式,主机50可以交织来自其他应用的操作(即处理“多个流”),如将在以下更详细描述的。
如上所述,除了提供操作未完成指示之外,存储器器件100还将操作的当前上下文发送到主机50。如在此使用的,“上下文”包括被保存以允许操作在中断之后能够继续的数据的最小集合。此数据的最小集合可以是例如操作的当前执行状态和/或部分结果。可以使用许多不同类型的操作以及由此的许多不同类型的上下文。例如,该操作可以是加密操作,并且存储器器件100可以产生在该加密操作中使用的秘密密钥。加密操作的例子包括但不限于AES操作、DES操作、RC4操作、RSA操作、DH操作、DSS操作、ECDH操作、ECDSS操作、MQV操作、SHA1操作、SHA256操作、SHA384操作、SHA512操作、HMAC操作、CBC-MAC操作、以及CMAC操作。如果加密操作采取AES操作、CBC-MAC操作、CMAC操作或者DES操作的形式,则上下文可以采取当前初始向量的形式。同样,如果加密操作采取SHA1操作、SHA256操作、SHA384操作、SHA512操作或HMAC操作的形式,则上下文可以采取当前摘要值。另外,如果加密操作采取代码块链接(“CBC”)操作,则上下文可以采取最后加密的块的形式。如前所述,除了加密操作之外或者代替加密操作,可以进行其他类型的操作。例如,该操作可以是以非加密形式读或写数据、对数据进行计算或者通过有线或无线网络传输/接收数据的操作。
如上所述,根据该上下文,存储器器件100可以从其停止的点恢复该操作。因而,在稍后的时间,当主机500认为合适时,主机50将把恢复进行操作的命令与先前由存储器器件100提供给主机50的上下文一起发送到存储器器件100(动作240),并且存储器器件100将基于从主机50接收的上下文恢复对数据进行操作(动作250)。如果存储器器件100可以在对该命令做出响应的最大响应时间内完成该操作,则操作将完成。但是,如果存储器器件100仍不能完成该操作,则像完成该操作所需那样经常地重复动作230、240和250。
应该注意,在这些实施例中,上下文被存储在主机50中而不是存储器器件100中。(替换地,上下文可以被存储在另一所谓的代理(例如另一主机/服务器/存储器器件)上。)将上下文存储在主机50中解决了以上在上下文技术中讨论的问题。具体地,将上下文存储在主机50中而不是存储器器件100中避免消耗存储器器件100中的相对大量的存储器,这对于诸如CD卡的可能具有受限量的存储器的存储器器件可能是特别重要的。此外,将上下文存储在主机50中避免了对于存储器器件100中的专门的状态管理块的需要(以及花费)。此外,通过利用主机的资源(例如更多的RAM和更强健的CPU),这些实施例避免了当上下文被存储在存储器器件100中时引起的对存储器器件的性能以及存储器使用寿命的负面影响。
存在可以与这些实施例一起使用的许多替换。例如,存储器器件100可以在将上下文提供给主机50之前对上下文加密,由此增加安全级别。用于这种加密的密钥可以是存储在存储器器件100中的秘密密钥,如上所述。该秘密密钥也可以用于在将上下文提供给主机50之前对上下文签名,由此甚至提供另外的安全性,因为基于存储在存储器器件100中的秘密密钥的数字签名将允许检测可能错误地或者由于攻击而发生的任何改变。另外,存储器器件100可以将可操作信息与上下文一起发送给主机50。存储器器件100将从主机50与该上下文一起接收回该可操作信息,并且可以分析该可操作信息以检测故障或者对上下文的篡改。操作信息可以采取任何适当的形式,比如但不限于数据长度、使用的算法的标识、密钥大小和/或绘画号。
此外,如上所述,因为由存储器器件100提供的操作未完成指示不迫使主机50等待存储器器件100完成操作,因此此实施例给予主机50对在存储器器件100上执行多个操作的更多控制。此灵活性例示在图3中。在此,主机50将进行操作的数据和初始命令(与初始上下文一起,如果有的话)提供给存储器器件100。在存储器器件100完成操作的第一部分(即存储器器件100在超过最大响应时间之前可以完成的操作的部分)之后,存储器器件100将上下文返回到主机50用于存储。如上所述,因为上下文被存储在主机50中而不是存储器器件100中,所以存储器器件100不经历当上下文被存储在存储器器件100中时的上述的性能和其他问题。
在此实施例中,当存储器器件100将上下文发送到主机50时,其还发送用于指示主机50需要发送在稍后的时间恢复该操作的另外的命令的指示(例如标志)。响应于此指示,主机将恢复进行操作的命令与先前存储的上下文一起发送,并且重复上述处理。恢复操作的此命令可以就在主机50接收到该指示之后到来。但是,如果用于恢复的命令在稍后的时间到来,则存储器器件100将被释放来执行主机50上的相同或不同应用的另一操作的另一命令。以此方式,主机50可以在进行长操作的命令之间交织来自多个应用的命令。应该注意,交织可以采取任何适当的形式。因此,代替在来自第一和第二应用的命令之间交替,主机50可以在提供来自另一应用的命令之前提供来做一个应用的两个或多个连续的命令。
在以上例子中,存储器器件100负责为主机50提供主机50需要发送用于完成该操作的另外的命令的指示。存储器器件100中的控制器110可以知道最大响应时间为何,并且可以确保及时将该响应和操作未完成指示提供给主机50。或者,存储器器件100的缓冲器可以被指定为该缓冲器仅可以存储在最大响应时间内可以被处理的足够数据。不过,存储器器件100仍将负责确定是否应该将操作未完成指示提供给主机50,因为在此实施例中知道是否需要继续操作的是存储器器件100而不是主机50。
在一个替换实施例中,代替存储器器件100负责通知主机50其需要发送另外的命令来继续操作,主机50可以负起此责任。因而,在此替换实施例中,存储器器件100不需要向主机50提供操作未完成指示,因为主机50正在跟踪操作是否完成以及何时完成。次替换提供了与交织来自不同应用和操作的命令类似的优点。如图4所示,主机50向存储器器件100提供用于进行操作的数据和初始命令(与初始上下文一起,如果有的话)。在此实施例中,主机50将要处理的数据安排在一系列块中,每块包含不多于可以在存储器器件100的最大响应时间内被处理的数据。在存储器器件100进行处理来自此第一应用的第一块数据之后,其将该操作的上下文返回给主机50用于存储。(如前所述,因为在此实施例中上下文被存储在主机50中而不是存储器器件100中,存储器器件100不经历当上下文被存储在存储器器件100中时上述的性能和其他问题。)因为主机50将数据组织为块,所以其知道如果存在需要处理的另外的块、则是否需要另外的命令来完成此操作。因此,存储器器件100不需要向主机50发送操作未完成指示,像先前描述的实施例中那样。
当存储器器件100进行处理来自第一应用的第一块时,主机50可以向存储器器件100发送另一命令。在图4所示的例子中,主机50向存储器器件100发送来自第二应用的处理来自该第二应用的第一块数据的命令。然后将上述处理应用于该块数据,并且存储器器件100被释放以进行另一操作(在此是来自第一应用的处理第二块数据的命令)。以此方式,主机50可以交织命令以支持来自多个应用的多个流。(将业务分解为多个块也针对系统崩溃进行保护。)应该注意,交织可以采取任何适当的形式。因此,代替如图4所示在第一和第二应用之间进行交替,主机50可以在提供来自另一应用的命令之前提供来做一个应用的两个或多个连续命令。此外,尽管在此例子中第一和第二应用由相同的主机50初始化,但是在其他实施例中,应用可以由不同的主机初始化(例如当两个主机具有相同的加密和签名密钥时)。
如图4的例示中所示,操作的上下文被返回到主机50上的应用,并且存储上下文的处理由该应用来应对。将上下文存储在主机50上不仅消除了存储器器件100中的另外的RAM存储器以及内部非易失性存储器的需要,而且消除了存储器器件100中的管理固件的需要,因为每个应用将处理其自己的流的上下文。另外,应用不需要理解上下文包括什么。其仅需要存储上下文并将其与接下来的命令一起提供。
结论
意图将以上详细描述理解为是对本发明可以采取的所选形式的历史,而不是对本发明的限定。意图仅以下权利要求、包括所有等效物定义要求保护的本发明的范围。最后,应该注意,在此所述的任意优选实施例的任意方面可以单独或者彼此组合使用。

Claims (32)

1.一种由存储器器件对数据进行操作的方法,该方法包括:
由与主机通信的存储器器件进行:
接收来自主机的数据和命令以对该数据进行操作,其中存储器器件完成该操作所需的时间超过存储器器件对该命令做出响应的最大响应时间;
响应于该命令,开始对该数据进行操作;
在超过该最大响应时间之前以及在完成该操作之前,将该操作的上下文发送到该主机;以及
在随后的时间:
从主机接收:(i)恢复进行该操作的命令和(ii)该上下文;以及
基于从该主机接收的上下文恢复对该数据进行操作。
2.如权利要求1的方法,还包括在将该上下文发送到主机之后,但是在从该主机接收到恢复进行该操作的命令之前,开始对不同的数据进行第二操作。
3.如权利要求1的方法,还包括:在超过最大响应时间之前以及在完成该操作之前,向主机发送对数据的操作未完成的指示。
4.如权利要求1的方法,其中该存储器器件包括在主机中的嵌入的安全模块。
5.如权利要求1的方法,其中该存储器器件可从该主机拆卸。
6.如权利要求1的方法,其中该操作包括加密操作。
7.如权利要求6的方法,其中加密操作包括以下之一:AES操作、DES操作、RC4操作、RSA操作、DH操作、DSS操作、ECDH操作、ECDSS操作、MQV操作、SHA1操作、SHA256操作、SHA384操作、SHA512操作、HMAC操作、CBC-MAC操作、以及CMAC操作。
8.如权利要求6的方法,其中加密操作包括以下之一:AES操作、CBC-MAC操作、CMAC操作以及DES操作,以及其中上下文包括用于该加密操作中的当前初始向量。
9.如权利要求6的方法,其中加密操作包括以下之一:SHA1操作、SHA256操作、SHA384操作、SHA512操作以及HMAC操作,以及其中上 下文包括用于该加密操作中的当前摘要值。
10.如权利要求6的方法,还包括产生在该加密操作中使用的秘密密钥。
11.如权利要求1的方法,其中该操作包括签名操作。
12.如权利要求1的方法,还包括在将该上下文提供给主机之前对该上下文加密。
13.如权利要求12的方法,其中用于对上下文加密的密钥是存储在该存储器器件中的秘密密钥。
14.如权利要求1的方法,还包括在将该上下文提供给主机之前用存储在该存储器器件中的秘密密钥对该上下文签名。
15.如权利要求1的方法,还包括:
将可操作信息与该上下文一起发送给主机;以及
在随后的时间:
从主机接收该可操作信息与该上下文;以及
分析从主机接收的可操作信息以检测该上下文的故障或者篡改。
16.如权利要求1的方法,其中该上下文包括操作的执行状态和操作的部分结果的至少一个。
17.一种存储器器件,包括:
主机接口,被配置为将该存储器器件置于与主机通信;以及
控制器,与该主机接口通信,并被配置为:
接收来自主机的数据和命令以对该数据进行操作,其中存储器器件完成该操作所需的时间超过存储器器件对该命令做出响应的最大响应时间;
开始对该数据进行操作;
在超过该最大响应时间之前以及在完成该操作之前,将该操作的上下文发送到该主机;以及
在稍后的时间:
从主机接收:(i)恢复进行该操作的命令以及(ii)该上下文;以及
基于从该主机接收的上下文恢复对该数据进行操作。
18.如权利要求17的存储器器件,其中该控制器还被配置为在将该上下文发送到主机之后,但是在从该主机接收到恢复进行该操作的命令之前,开始对不同的数据进行第二操作。
19.如权利要求17的存储器器件,其中该控制器还被配置为在超过最大响应时间之前以及在完成该操作之前,向该主机发送对该数据的操作未完成的指示。
20.如权利要求17的存储器器件,其中该存储器器件包括在该主机中嵌入的安全模块。
21.如权利要求17的存储器器件,其中该存储器器件可从主机拆卸。
22.如权利要求17的存储器器件,其中该操作包括加密操作。
23.如权利要求22的存储器器件,其中加密操作包括以下之一:AES操作、DES操作、RC4操作、RSA操作、DH操作、DSS操作、ECDH操作、ECDSS操作、MQV操作、SHA1操作、SHA256操作、SHA384操作、SHA512操作、HMAC操作、CBC-MAC操作、以及CMAC操作。
24.如权利要求22的存储器器件,其中加密操作包括以下之一:AES操作、CBC-MAC操作、CMAC操作以及DES操作,以及其中上下文包括用于该加密操作中的当前初始向量。
25.如权利要求22的存储器器件,其中加密操作包括以下之一:SHA1操作、SHA256操作、SHA384操作、SHA512操作以及HMAC操作,以及其中上下文包括用于该加密操作中的当前摘要值。
26.如权利要求22的存储器器件,该控制器还被配置为产生在该加密操作中使用的秘密密钥。
27.如权利要求17的存储器器件,其中该操作包括签名操作。
28.如权利要求17的存储器器件,其中该控制器还被配置为在将该上下文提供给主机之前对该上下文加密。
29.如权利要求28的存储器器件,其中用于对该上下文加密的密钥是存储在该存储器器件中的秘密密钥。
30.如权利要求17的存储器器件,其中该控制器还被配置为在将该上下文提供给主机之前用存储在该存储器器件中的秘密密钥对该上下文签名。
31.如权利要求17的存储器器件,其中该控制器还被配置为:
将可操作信息与该上下文一起发送给主机;以及
在稍后的时间:
从主机接收该可操作信息与该上下文;以及
分析从主机接收的可操作信息以检测该上下文的故障或者篡改。
32.如权利要求17的存储器器件,其中该上下文包括操作的执行状态和操作的部分结果的至少一个。
CN200980160123.9A 2009-06-30 2009-12-04 用于对数据进行操作的方法和存储器器件 Active CN102804160B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/495,302 US8516232B2 (en) 2009-06-30 2009-06-30 Method and memory device for performing an operation on data
US12/495,302 2009-06-30
PCT/US2009/006395 WO2011002435A1 (en) 2009-06-30 2009-12-04 Method and memory device for performing an operation on data

Publications (2)

Publication Number Publication Date
CN102804160A CN102804160A (zh) 2012-11-28
CN102804160B true CN102804160B (zh) 2015-08-12

Family

ID=41820714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980160123.9A Active CN102804160B (zh) 2009-06-30 2009-12-04 用于对数据进行操作的方法和存储器器件

Country Status (6)

Country Link
US (1) US8516232B2 (zh)
EP (1) EP2449473A1 (zh)
KR (1) KR20120036311A (zh)
CN (1) CN102804160B (zh)
TW (1) TW201101039A (zh)
WO (1) WO2011002435A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2425322A4 (en) * 2009-04-30 2013-11-13 Synaptics Inc CONTROL CIRCUIT ELEMENTS AND METHOD
US8782389B2 (en) * 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
KR20130049542A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 소자 및 이를 포함하는 메모리 시스템
US9207749B2 (en) * 2012-08-28 2015-12-08 Intel Corporation Mechanism for facilitating efficient operations paths for storage devices in computing systems
US10402186B2 (en) 2013-05-22 2019-09-03 Gimso Mobile Ltd. Remote update of a portable storage device
US9195406B2 (en) * 2013-06-28 2015-11-24 Micron Technology, Inc. Operation management in a memory device
WO2015176040A1 (en) * 2014-05-15 2015-11-19 Adesto Technologies Corporation Memory devices and methods having instruction acknowledgement
CN105519028B (zh) * 2015-07-01 2019-05-28 海能达通信股份有限公司 一种无线系统接入控制方法及装置
KR102314137B1 (ko) * 2015-11-04 2021-10-18 삼성전자 주식회사 리커버리 동작을 선택적으로 수행하는 불휘발성 메모리 장치 및 그 동작방법
US10379781B2 (en) * 2016-04-20 2019-08-13 Sandisk Technologies Llc Storage system and method for improved command flow
CN109151160B (zh) * 2018-06-26 2021-04-13 Oppo广东移动通信有限公司 通信方法、装置、移动终端及存储介质
KR20210055448A (ko) 2019-11-07 2021-05-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11681466B2 (en) * 2020-06-30 2023-06-20 Western Digital Technologies, Inc. Proactive storage operation management
US11915047B2 (en) 2020-06-30 2024-02-27 Western Digital Technologies, Inc. Managing storage device compute operations
US11914894B2 (en) 2020-12-08 2024-02-27 Western Digital Technologies, Inc. Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455897A (zh) * 2000-08-17 2003-11-12 三因迪斯克公司 与主机串行通信的多个可拆卸非易失性存储卡

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145052A (en) * 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering
KR100528973B1 (ko) 2003-11-05 2005-11-16 한국전자통신연구원 가비지 콜렉션 방법 및 그 장치
US8001549B2 (en) * 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
JP4477616B2 (ja) * 2006-10-19 2010-06-09 株式会社日立製作所 署名システム及び署名方法
TWI343006B (en) 2006-12-04 2011-06-01 Sandisk Corp Portable module interface with timeout prevention by dummy blocks
JP4410792B2 (ja) * 2006-12-21 2010-02-03 株式会社日立コミュニケーションテクノロジー 暗号化装置
WO2008081801A1 (ja) * 2006-12-27 2008-07-10 Panasonic Corporation 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US8214651B2 (en) * 2008-07-09 2012-07-03 International Business Machines Corporation Radio frequency identification (RFID) based authentication system and methodology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455897A (zh) * 2000-08-17 2003-11-12 三因迪斯克公司 与主机串行通信的多个可拆卸非易失性存储卡

Also Published As

Publication number Publication date
WO2011002435A1 (en) 2011-01-06
US20100332855A1 (en) 2010-12-30
TW201101039A (en) 2011-01-01
EP2449473A1 (en) 2012-05-09
CN102804160A (zh) 2012-11-28
KR20120036311A (ko) 2012-04-17
US8516232B2 (en) 2013-08-20

Similar Documents

Publication Publication Date Title
CN102804160B (zh) 用于对数据进行操作的方法和存储器器件
CN100487715C (zh) 一种数据安全存储系统和装置及方法
KR101735023B1 (ko) 민감한 코드와 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
TWI567579B (zh) 用於對硬體裝置提供金鑰的方法和設備
US9633211B2 (en) Method for realizing secure communication
US8239328B2 (en) Information processing apparatus, print control apparatus, printed control system
JP2005318280A5 (zh)
CN101930508A (zh) 安全处理系统
CN101983375A (zh) 将密码模块绑定到平台
EP3316160A1 (en) Authentication method and apparatus for reinforced software
CN107368744A (zh) 用于更新固件组件的方法以及测量和控制技术的设备
RU2012130527A (ru) Способ исполнения и система универсальной электронной карты и смарт-карты
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
CN100334519C (zh) 建立可信输入输出通道的方法
US20170364711A1 (en) Secure element
CN101916344B (zh) 一种验证软件保护装置合法性的方法及系统
CN102782695A (zh) 硬件装置
JP6203556B2 (ja) 情報処理システム
CN104980410A (zh) 一种电能质量在线监测设备软件远程升级的加密方法
JP2000232442A (ja) 情報処理方法及びシステム
CN112579255B (zh) 虚拟机迁移的压缩保护方法、迁入迁出加速器模块和soc芯片
CN101782950B (zh) 主板与板载设备之间的通信控制系统和方法
US20230385461A1 (en) Secure starting of an electronic circuit
CN116167060A (zh) 可信只读存储器系统及可信基板管理控制器系统
CN105427478A (zh) 一种atm机鉴伪仪主板程序安全处理方法

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
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Patentee before: Sandisk Corp.