[go: up one dir, main page]

HK1221065B - Non-volatile memory operations - Google Patents

Non-volatile memory operations Download PDF

Info

Publication number
HK1221065B
HK1221065B HK16108925.5A HK16108925A HK1221065B HK 1221065 B HK1221065 B HK 1221065B HK 16108925 A HK16108925 A HK 16108925A HK 1221065 B HK1221065 B HK 1221065B
Authority
HK
Hong Kong
Prior art keywords
partition
key
new data
storage area
module
Prior art date
Application number
HK16108925.5A
Other languages
Chinese (zh)
Other versions
HK1221065A1 (en
Inventor
Charles Serebrin Benjamin
M. MCCUNE Jonathan
Original Assignee
Google Llc
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
Priority claimed from US13/917,261 external-priority patent/US9697358B2/en
Application filed by Google Llc filed Critical Google Llc
Publication of HK1221065A1 publication Critical patent/HK1221065A1/en
Publication of HK1221065B publication Critical patent/HK1221065B/en

Links

Description

非易失性存储器的操作Non-volatile memory operations

相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS

本申请要求于2013年6月13日提交的题为“NON-VOLATILE MEMORY OPERATIONS(非易失性存储器的操作)”的第13/917,261号美国非临时专利申请的优先权,并作为该非临时专利申请的继续申请,该非临时专利申请的全部内容通过引用被合并进本文。This application claims priority to and is a continuation-of-patent application of U.S. non-provisional patent application No. 13/917,261, filed on June 13, 2013, entitled “NON-VOLATILE MEMORY OPERATIONS,” the entire contents of which are incorporated herein by reference.

技术领域Technical Field

本说明涉及非易失性存储器的操作的系统和方法,该非易失性存储器的操作包括电可擦除可编程只读存储器(EEPROM)的操作。The present description relates to systems and methods for the operation of non-volatile memory, including the operation of electrically erasable programmable read-only memory (EEPROM).

背景技术Background Art

计算机系统包括使用非易失性存储设备来存储诸如设备配置信息和像序列号、标识符和密码密钥的其它敏感信息的数据。非易失性存储设备可以包括包含电可擦除可编程只读存储器(EEPROM)的非易失性只读存储器(ROM),像上面提到的,非易失性只读存储器(ROM)被用来存储只读码或其它只读信息。在某些情况下,更新的或新的数据可以被写入非易失性存储设备。人们可能希望防止对非易失性存储设备的恶意或意外的重新编程。也可能希望更新或向非易失性存储设备写入新的可信数据Computer systems include the use of non-volatile storage devices to store data such as device configuration information and other sensitive information like serial numbers, identifiers, and cryptographic keys. Non-volatile storage devices may include non-volatile read-only memory (ROM) including electrically erasable programmable read-only memory (EEPROM), which, as mentioned above, is used to store read-only code or other read-only information. In some cases, updated or new data may be written to the non-volatile storage device. It may be desirable to prevent malicious or accidental reprogramming of the non-volatile storage device. It may also be desirable to update or write new trusted data to the non-volatile storage device.

发明内容Summary of the Invention

本文件描述用于在非易失性存储设备中以安全的方式控制数据的设备和技术。在一个示例实现方式中,非易失性存储设备包括被分割成用于存储数据的多个分区的非易失性存储模块。例如,该非易失性存储模块可以被分割成第一分区和第二分区。第一分区可以被指定为只读存储区域,而第二分区可以被指定为只写分区。以这种方式,数据可以仅从只读分区被读取。控制器控制哪个分区是只读分区和哪个分区是只写分区。以这种方式,外部设备可以仅从只读分区中读取。This document describes devices and techniques for securely controlling data in a nonvolatile storage device. In one example implementation, the nonvolatile storage device includes a nonvolatile storage module partitioned into a plurality of partitions for storing data. For example, the nonvolatile storage module may be partitioned into a first partition and a second partition. The first partition may be designated as a read-only storage area, while the second partition may be designated as a write-only partition. In this manner, data may be read only from the read-only partition. A controller controls which partition is read-only and which partition is write-only. In this manner, an external device may read only from the read-only partition.

新数据可以被外部设备写入第二分区,在这个示例中第二分区是只写分区。新数据可以包括附加于新数据的签名。通过使用被存储在非易失性存储设备上的密钥存储模块中的密钥来验证签名,控制器确认这个新数据是可信的和安全的。在接收到新数据的完整的副本并且验证签名后,控制器可以将现在存储新数据的第二分区重新指定为只读分区,并且将第一分区重新指定为只写分区,其中其它新数据可以被写入。以这种方式,被写入非易失性存储设备的新数据或图像,在新数据可以被从设备读出之前,先通过验证附加于新数据的签名来确认其被认证或被信任。不完整或不能被验证的新数据可能被丢弃。New data can be written to the second partition by an external device, which is a write-only partition in this example. The new data may include a signature attached to the new data. The controller confirms that the new data is credible and secure by verifying the signature using a key stored in a key storage module on the non-volatile storage device. After receiving a complete copy of the new data and verifying the signature, the controller can re-designate the second partition, which now stores the new data, as a read-only partition, and re-designate the first partition as a write-only partition, where other new data can be written. In this way, new data or images written to the non-volatile storage device are first confirmed to be authenticated or trusted by verifying the signature attached to the new data before the new data can be read from the device. Incomplete or unverified new data may be discarded.

在一个示例实现方式中,控制器和密钥存储模块可能与非易失性存储模块位于相同的芯片上。在另一个示例实现方式中,控制器和密钥存储模块可能位于与非易失性存储模块分离的芯片上。在一个示例实现方式中,密钥存储模块可能与控制器位于相同芯片上,而在另一个示例实现方式中,密钥存储模块可能与非易失性存储模块位于相同的芯片上,该芯片可能与包含控制器的芯片是分离的。In one example implementation, the controller and the key storage module may be located on the same chip as the non-volatile storage module. In another example implementation, the controller and the key storage module may be located on a chip separate from the non-volatile storage module. In one example implementation, the key storage module may be located on the same chip as the controller, while in another example implementation, the key storage module may be located on the same chip as the non-volatile storage module, which may be separate from the chip containing the controller.

在一个示例实现方式中,在制造和生产过程期间,描述的设备和技术可以被用于对非易失性存储设备编程或重新编程。In one example implementation, the described devices and techniques can be used to program or reprogram non-volatile memory devices during the manufacturing and production processes.

根据一个一般方面,装置包括接口模块、控制器、密钥存储模块和非易失性存储模块,其中该密钥存储模块被配置为存储密钥,该非易失性存储模块被配置为存储数据。该非易失性存储模块具有第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为新数据的只写存储区域。响应于新数据与签名一起被写入第二分区并且控制器使用被存储在密钥存储模块中的密钥来验证签名,第一分区被重新指定为其它新数据的只写存储区域,并且第二分区被重新指定为新数据的只读存储区域。According to one general aspect, an apparatus includes an interface module, a controller, a key storage module, and a non-volatile storage module, wherein the key storage module is configured to store a key and the non-volatile storage module is configured to store data. The non-volatile storage module has a first partition and a second partition, wherein the first partition is designated as a read-only storage area for data, and the second partition is designated as a write-only storage area for new data. In response to new data being written to the second partition along with a signature and the controller verifying the signature using a key stored in the key storage module, the first partition is redesignated as a write-only storage area for additional new data, and the second partition is redesignated as a read-only storage area for the new data.

在另一个一般的方面,装置包括接口模块和被配置为存储密钥的密钥存储模块。控制器被可操作地耦合到接口模块和密钥存储模块。该控制器被配置为与用于存储数据的外部非易失性存储设备接口。该控制器被配置为将该外部非易失性存储设备分割为第一分区和第二分区。第一分区被指定作为数据的只读存储区域,并且第二分区被指定作为通过接口模块接收到的新数据的只写存储区域。该控制器被配置为通过接口模块接收具有签名的新数据并将该新数据写入第二分区,使用被存储在密钥存储模块中的密钥来验证签名,并且响应于使用被存储在密钥存储模块中的密钥来验证签名,将第一分区重新指定为其它新数据的只写存储区域,并且将第二分区重新指定为新数据的只读存储区域。In another general aspect, an apparatus includes an interface module and a key storage module configured to store a key. A controller is operably coupled to the interface module and the key storage module. The controller is configured to interface with an external non-volatile storage device for storing data. The controller is configured to partition the external non-volatile storage device into a first partition and a second partition. The first partition is designated as a read-only storage area for data, and the second partition is designated as a write-only storage area for new data received through the interface module. The controller is configured to receive new data with a signature through the interface module and write the new data to the second partition, verify the signature using a key stored in the key storage module, and, in response to verifying the signature using the key stored in the key storage module, redesignate the first partition as a write-only storage area for additional new data and redesignate the second partition as a read-only storage area for new data.

在另一个一般的方面,方法包括将非易失性存储设备分割成第一分区和第二分区。第一分区被指定为数据的只读存储区域,并且第二分区被指定为通过接口模块接收到的新数据的只写存储区域。该方法包括通过接口模块接收具有签名的新数据,并且将所述新数据写入第二分区,通过控制器利用被存储在密钥存储模块中的密钥来验证签名,并且响应于利用被存储在所述密钥存储模块中的密钥来验证签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为新数据的只读存储区域。In another general aspect, a method includes partitioning a non-volatile memory device into a first partition and a second partition. The first partition is designated as a read-only storage area for data, and the second partition is designated as a write-only storage area for new data received via an interface module. The method includes receiving new data having a signature via the interface module and writing the new data into the second partition, verifying the signature via a controller using a key stored in a key storage module, and in response to verifying the signature using the key stored in the key storage module, redesignating the first partition as a write-only storage area for additional new data and redesignating the second partition as a read-only storage area for new data.

在另一个一般的方面,装置包括用于对接的设备、用于控制的设备、用于存储密钥的设备和用于非易失性存储的设备,其中用于存储密钥的设备被配置为存储密钥,用于非易失性存储的设备被配置为存储数据。用于非易失性存储的设备具有第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为新数据的只写存储区域。响应于新数据与签名一起被写入第二分区并且用于控制的设备使用被存储在用于存储密钥的设备中的密钥来验证签名,第一分区被重新指定为其它新数据的只写存储区域,并且第二分区被重新指定为新数据的只读存储区域。In another general aspect, an apparatus includes a device for interfacing, a device for controlling, a device for storing a key, and a device for non-volatile storage, wherein the device for storing a key is configured to store a key, and the device for non-volatile storage is configured to store data. The device for non-volatile storage has a first partition and a second partition, wherein the first partition is designated as a read-only storage area for data, and the second partition is designated as a write-only storage area for new data. In response to new data being written to the second partition along with a signature and the device for controlling verifying the signature using a key stored in the device for storing a key, the first partition is redesignated as a write-only storage area for additional new data, and the second partition is redesignated as a read-only storage area for the new data.

一个或多个实现方式的细节在下面的附图和说明中有详尽的解释。其它的特征根据说明和附图以及权利要求会变得显而易见。The details of one or more implementations are explained in detail in the following drawings and description. Other features will be apparent from the description and drawings, and from the claims.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1是非易失性存储设备的示例框图。FIG. 1 is an example block diagram of a non-volatile memory device.

图2是非易失性存储设备和安全设备的示例框图。FIG. 2 is an example block diagram of a non-volatile storage device and a security device.

图3是图2的多个非易失性存储设备和安全设备的示例框图。FIG. 3 is an example block diagram of a plurality of non-volatile storage devices and a security device of FIG. 2 .

图4是图示图1-3的设备的示例操作的示例流程图。4 is an example flow chart illustrating example operations of the devices of FIGS. 1-3 .

具体实施方式DETAILED DESCRIPTION

图1是非易失性存储设备102的示例框图。非易失性存储设备102包括非易失性存储模块104、接口模块106、控制器108、密钥存储模块110和策略模块112。一般地,非易失性存储设备102被配置为通过接口模块106接收数据并且将数据写入非易失性存储模块104。例如,外围设备114可以将数据写入非易失性存储设备102。数据也可以通过接口模块106被从非易失性存储设备102读取。例如,外围设备114可以通过接口模块106从非易失性存储设备102中读取数据。FIG1 is a block diagram of an example nonvolatile storage device 102. The nonvolatile storage device 102 includes a nonvolatile storage module 104, an interface module 106, a controller 108, a key storage module 110, and a policy module 112. Generally, the nonvolatile storage device 102 is configured to receive data through the interface module 106 and write data to the nonvolatile storage module 104. For example, a peripheral device 114 can write data to the nonvolatile storage device 102. Data can also be read from the nonvolatile storage device 102 through the interface module 106. For example, a peripheral device 114 can read data from the nonvolatile storage device 102 through the interface module 106.

在整个文件中,非易失性存储设备102也可以被交换地称为存储设备102来指代相同的组件。非易失性存储设备102可以是不同类型的存储设备,包括不同类型的只读存储器(ROM)设备。例如,非易失性存储设备102可以是电可擦除可编程只读存储器(EEPROM)。在其它的示例中,非易失性存储设备102可以是闪存、相变存储器(PCM)、自旋力矩转移(STT)存储器、忆阻器以及其它非易失性存储设备。Throughout this document, the nonvolatile memory device 102 may also be referred to interchangeably as the memory device 102 to refer to the same component. The nonvolatile memory device 102 may be different types of memory devices, including different types of read-only memory (ROM) devices. For example, the nonvolatile memory device 102 may be an electrically erasable programmable read-only memory (EEPROM). In other examples, the nonvolatile memory device 102 may be a flash memory, a phase change memory (PCM), a spin torque transfer (STT) memory, a memristor, and other nonvolatile memory devices.

在一个示例实现方式中,接口模块106可以是串行接口模块。例如,接口模块106可以是能支持一个或多个串行接口的串行接口模块,串行接口包括,但不限于,低引脚数(LPC)接口、I-平方-C(I2C)接口、1线接口、串行外围接口(SPI)和单线接口。其它的串行接口也可以被实现。将接口模块106连接到外围设备114的读写总线可以是对应于接口模块106所支持的接口类型的总线。在某些实现方式中,接口模块106可以支持多于一种类型的串行接口。In one example implementation, the interface module 106 can be a serial interface module. For example, the interface module 106 can be a serial interface module that supports one or more serial interfaces, including, but not limited to, a low pin count (LPC) interface, an I-squared-C ( I2C ) interface, a 1-wire interface, a serial peripheral interface (SPI), and a single-wire interface. Other serial interfaces can also be implemented. The read and write bus connecting the interface module 106 to the peripheral device 114 can be a bus corresponding to the interface type supported by the interface module 106. In some implementations, the interface module 106 can support more than one type of serial interface.

在一个示例实现方式中,接口模块106可以是并行接口模块。例如,接口模块106可以是能支持一个或多个并行接口的并行接口模块。将接口模块106连接到外围设备114的读写总线可以是对应于接口模块106所支持的接口类型的总线。在某些实现方式中,接口模块106可以支持多于一种类型的并行接口。In one example implementation, the interface module 106 may be a parallel interface module. For example, the interface module 106 may be a parallel interface module that supports one or more parallel interfaces. The read/write bus connecting the interface module 106 to the peripheral device 114 may be a bus corresponding to the type of interface supported by the interface module 106. In some implementations, the interface module 106 may support more than one type of parallel interface.

在一个示例实现方式中,接口模块106可以能够支持串行和并行两种接口。例如,接口模块106可以能够支持一个或多个以上描述的串行接口和一个或多个以上描述的并行接口。In one example implementation, the interface module 106 may be capable of supporting both serial and parallel interfaces. For example, the interface module 106 may be capable of supporting one or more of the serial interfaces described above and one or more of the parallel interfaces described above.

非易失性存储设备102中的非易失性存储模块104可以被配置为存储数据。在整个文件中,非易失性存储模块104也可以被交换地称为存储模块104来意指相同的组件。存储模块104可以被实现为不同的存储容量。例如,存储模块104可以包括8K字节、16K字节、32K字节、64K字节、128K字节、256K字节的存储容量。在其它实现方式中,存储模块104可以包括更大规模的存储容量。The non-volatile storage module 104 in the non-volatile storage device 102 can be configured to store data. Throughout this document, the non-volatile storage module 104 may also be interchangeably referred to as the storage module 104 to refer to the same component. The storage module 104 can be implemented with different storage capacities. For example, the storage module 104 can include a storage capacity of 8K bytes, 16K bytes, 32K bytes, 64K bytes, 128K bytes, or 256K bytes. In other implementations, the storage module 104 can include a larger storage capacity.

控制器108可以被配置为将存储模块104分割为多个分区。在一个示例实现方式中,控制器108可以将存储模块104分割为第一分区116和第二分区118。虽然图1图示出两个分区,但是多于两个分区是可能的。在一个实现方式中,控制器108可以在第一分区116和第二分区118之间平均地划分存储模块104的存储容量。例如,如果存储模块104的存储容量是128K字节,则第一分区116可以被分配64K字节的存储区域,并且第二分区118可以被分配64K字节存储区域。在另一个示例中,如果存储模块104的存储容量是256K字节,则第一分区116可以被分配128K字节的存储区域,并且第二分区118可以被分配128K字节的存储区域。在其它示例实现方式中,控制器108可以以非相等量分割存储模块104和/或可以将存储模块104分割成多于两个的分区。The controller 108 may be configured to partition the memory module 104 into a plurality of partitions. In one example implementation, the controller 108 may partition the memory module 104 into a first partition 116 and a second partition 118. Although FIG1 illustrates two partitions, more than two partitions are possible. In one implementation, the controller 108 may evenly divide the memory capacity of the memory module 104 between the first partition 116 and the second partition 118. For example, if the memory capacity of the memory module 104 is 128 kilobytes, the first partition 116 may be allocated a 64 kilobyte memory area, and the second partition 118 may be allocated a 64 kilobyte memory area. In another example, if the memory capacity of the memory module 104 is 256 kilobytes, the first partition 116 may be allocated a 128 kilobyte memory area, and the second partition 118 may be allocated a 128 kilobyte memory area. In other example implementations, the controller 108 may partition the memory module 104 in unequal amounts and/or may partition the memory module 104 into more than two partitions.

控制器108可以通过分配一个地址(或存储器地址)集给第一分区116和分配另一个地址集给第二分区118来对存储模块104分区。控制器108可以顺序地或非顺序地分配地址。控制器108可以使用表来跟踪地址的分配和存储模块104的对应的分区,其中这张表可以被存储在另一个模块中,诸如,例如,密钥存储模块110、策略模块112或另一个表存储模块(未示出)中。控制器108可以使用其它的方案来对存储模块104分割。The controller 108 can partition the memory module 104 by assigning one set of addresses (or memory addresses) to the first partition 116 and another set of addresses to the second partition 118. The controller 108 can assign addresses sequentially or non-sequentially. The controller 108 can use a table to track the assignment of addresses and the corresponding partitions of the memory module 104, where this table can be stored in another module, such as, for example, the key storage module 110, the policy module 112, or another table storage module (not shown). The controller 108 can use other schemes to partition the memory module 104.

在一个示例实现中,控制器108可以指定分区中的一个为只读分区而其它的分区作为只写分区。例如,控制器108可以指定第一分区116为只读分区,并且可以指定第二分区118为只写分区。控制器108可以通过控制可以被外围设备114读取的或可以被外围设备114写入的地址来控制分区的功能是只读或只写。以这种方式,控制器108可以指向对应于只读分区的地址来实现从外围设备114接收到的读取请求。这样,如果第一分区116被指定为只读分区,则控制器108通过指向第一分区116的地址满足读取请求,来将数据从存储模块104读出。如果第二分区118被指定作为只写分区,则第二分区118不用于响应读取请求。In one example implementation, the controller 108 can designate one of the partitions as a read-only partition and the other partitions as write-only partitions. For example, the controller 108 can designate the first partition 116 as a read-only partition and the second partition 118 as a write-only partition. The controller 108 can control the functionality of the partitions as read-only or write-only by controlling the addresses that can be read by the peripheral device 114 or the addresses that can be written by the peripheral device 114. In this way, the controller 108 can point to the address corresponding to the read-only partition to implement a read request received from the peripheral device 114. In this way, if the first partition 116 is designated as a read-only partition, the controller 108 satisfies the read request by pointing to the address of the first partition 116, thereby reading data from the storage module 104. If the second partition 118 is designated as a write-only partition, the second partition 118 is not used to respond to the read request.

换种说法,由于控制器108知道分区方案,控制器108可以执行任何必要的地址转换来满足来自外围设备114的读取请求。外围设备114可以不知道分区方案,并且因为它被控制器108控制,不需要知道这个方案。Stated another way, because controller 108 is aware of the partitioning scheme, controller 108 can perform any necessary address translation to satisfy a read request from peripheral 114. Peripheral 114 may be unaware of the partitioning scheme and, since it is controlled by controller 108, does not need to be aware of it.

在一个示例实现方式中,外围设备114对来自存储设备102的数据的读取可以是明文形式的。在其它示例实现方式中,外围设备114对来自存储设备102的数据的读取可以使用存储设备102和外围设备114之间的加密方案被加密。In one example implementation, the data read by the peripheral device 114 from the storage device 102 may be in plain text. In other example implementations, the data read by the peripheral device 114 from the storage device 102 may be encrypted using an encryption scheme between the storage device 102 and the peripheral device 114.

在一个示例实现方式中,对存储设备102的数据的写入可以是写入被指定为只写分区的分区。对存储设备的写入可以是签有明文的写入,和/或可以是签有加密的写入。In one example implementation, the data written to the storage device 102 may be written to a partition designated as a write-only partition. The write to the storage device may be a signed plaintext write and/or may be a signed encrypted write.

在一个示例实现方式中,外围设备114可以将数据或新图像写入存储设备102。外围设备114可以将签有附加于包含数据的消息的签名的明文数据写入存储设备102。例如,外围设备114可以计算数据的密码哈希,并使用私有密钥签名密码哈希。在其它的实现方式中,除外围设备114以外的不同的外围设备(未示出)可以计算密码哈希,并使用私有密钥签名密码哈希。在另一个示例实现方式中,外围设备114可以计算数据的密码消息认证码和秘密密钥,其中的生成的消息认证码充当签名的角色。之后,外围设备114将签名的数据传送给存储设备102。In one example implementation, the peripheral device 114 can write data or a new image to the storage device 102. The peripheral device 114 can write plaintext data with a signature attached to a message containing the data to the storage device 102. For example, the peripheral device 114 can calculate a cryptographic hash of the data and sign the cryptographic hash using a private key. In other implementations, a different peripheral device (not shown) other than the peripheral device 114 can calculate the cryptographic hash and sign the cryptographic hash using a private key. In another example implementation, the peripheral device 114 can calculate a cryptographic message authentication code and a secret key for the data, wherein the generated message authentication code acts as a signature. The peripheral device 114 then transmits the signed data to the storage device 102.

存储设备102通过接口模块114接收签名的数据。控制器108将接收到的签名的数据写入被指定为只写分区的分区。例如,如果第二分区118被指定为只写分区,则控制器使数据被写入第二分区118。当数据被接收时,控制器108验证附加于数据的签名。即,当数据正在被接收时,控制器108可以计算数据的密码哈希。控制器108可以使用对应于用于签名消息的密钥的密钥来验证签名。密钥可以通过成为公-私密钥对的公共部分而对应,或者可以是与外围设备114共享的相同的秘密密钥。被控制器108使用来验证签名的密钥可以被存储在密钥存储模块110中。The storage device 102 receives the signed data via the interface module 114. The controller 108 writes the received signed data to a partition designated as a write-only partition. For example, if the second partition 118 is designated as a write-only partition, the controller causes the data to be written to the second partition 118. When the data is received, the controller 108 verifies the signature attached to the data. That is, when the data is being received, the controller 108 can calculate a cryptographic hash of the data. The controller 108 can verify the signature using a key corresponding to the key used to sign the message. The key can correspond by being the public part of a public-private key pair, or it can be the same secret key shared with the peripheral device 114. The key used by the controller 108 to verify the signature can be stored in the key storage module 110.

在一个示例实现方式中,密钥存储模块110可以存储对应于由可信源持有的密钥的一个或多个密钥。密钥存储模块110可以是非易失性存储模块。以这种方式,具有签名的数据能够被控制器108使用被存储在密钥存储模块110中的密钥中的一个密钥来验证。例如,密钥存储模块110可以存储对应于由外围设备114持有和使用的私有密钥的公共密钥。这个公共密钥被控制器108使用来验证通过外围设备114被写入存储设备102的数据的签名。在另一个示例中,密钥存储模块110可以存储对应于由外围设备114持有和使用的共享秘密密钥的秘密密钥。In one example implementation, the key storage module 110 may store one or more keys corresponding to keys held by a trusted source. The key storage module 110 may be a non-volatile storage module. In this manner, data with a signature can be verified by the controller 108 using one of the keys stored in the key storage module 110. For example, the key storage module 110 may store a public key corresponding to a private key held and used by the peripheral device 114. This public key is used by the controller 108 to verify the signature of data written to the storage device 102 by the peripheral device 114. In another example, the key storage module 110 may store a secret key corresponding to a shared secret key held and used by the peripheral device 114.

在一个示例实现方式中,控制器108通过计算密码哈希和使用被存储在密钥存储模块110中的密钥来计算签名是否是私有密钥的持有者签名那个确切消息的密码哈希的结果来验证附加于接收到的消息的签名。在一个示例中,当数据正在通过接口模块106被流送进存储设备102时,控制器108可以计算流密码哈希。在另一个示例中,控制器108可以先接收所有的数据,并且然后在所有的数据被接收到以后,再计算密码哈希。在一个示例中,控制器108可以计算接收到的消息上的密钥消息认证码,并且将计算出的密钥消息认证码与附加于接收到的消息的签名进行比较来确定消息是否有效。In one example implementation, the controller 108 verifies the signature attached to a received message by calculating a cryptographic hash and using the key stored in the key storage module 110 to calculate whether the signature is the result of the cryptographic hash of the exact message signed by the holder of the private key. In one example, the controller 108 can calculate the stream cryptographic hash while data is being streamed into the storage device 102 through the interface module 106. In another example, the controller 108 can receive all the data first, and then calculate the cryptographic hash after all the data has been received. In one example, the controller 108 can calculate a keyed message authentication code on the received message, and compare the calculated keyed message authentication code with the signature attached to the received message to determine whether the message is valid.

当接收数据的完整副本和验证签名时,控制器108可以重新指定刚刚接收到新数据的只写分区作为只读分区。控制器108可以重新指定存储有旧数据的只读分区作为只写分区来接收可能是被外围设备114通过接口模块106发送的其它新数据(或新数据的写入)。然后,这个新指定的只写分区被配置为接收下一次的对设备的数据写入,这也可以被称为其它新数据。After receiving the complete copy of the data and verifying the signature, the controller 108 can re-designate the write-only partition that just received the new data as a read-only partition. The controller 108 can re-designate the read-only partition that stores the old data as a write-only partition to receive other new data (or the writing of new data) that may be sent by the peripheral device 114 through the interface module 106. This newly designated write-only partition is then configured to receive the next data write to the device, which can also be referred to as other new data.

例如,响应于接收到数据的完整副本和验证附加于数据的签名,控制器108可以将第二分区118重新指定为只读分区。控制器108可以通过改变指向读取命令被引导到的一个或多个地址的指针来执行重新指定,使得只有被存储在第二分区118中的数据可以被读取。控制器108还将第一分区116从只读分区重新指定为只写分区。以这种方式,对存储设备102的随后的新数据的写入将被存储在第一分区116中。For example, in response to receiving a complete copy of the data and verifying the signature attached to the data, the controller 108 can redesignate the second partition 118 as a read-only partition. The controller 108 can perform the redesignation by changing the pointer to one or more addresses to which read commands are directed, so that only data stored in the second partition 118 can be read. The controller 108 also redesignates the first partition 116 from a read-only partition to a write-only partition. In this manner, subsequent new data written to the storage device 102 will be stored in the first partition 116.

当在写入过程中,控制器108没有重新指定分区时,可能有一个或多个实例。例如,如果在写入期间接收到的数据不是数据的完整副本,则控制器108将不会重新指定分区116、118。以这种方式,如果存储设备102是EEPROM,则被写入第二分区118的不完整的图像不会被从存储设备102中读出,因为当前的只读分区会保持为只读分区,而接收到该不完整或部分副本的只写分区会保持为只写分区。可能已经被写入只写分区的部分数据可以被删除或被写覆盖。There may be one or more instances when controller 108 does not reassign partitions during a write process. For example, if the data received during a write is not a complete copy of the data, controller 108 will not reassign partitions 116, 118. In this manner, if storage device 102 is an EEPROM, the incomplete image written to second partition 118 will not be read from storage device 102 because the current read-only partition will remain read-only, while the write-only partition that received the incomplete or partial copy will remain write-only. Partial data that may have been written to the write-only partition may be deleted or overwritten.

在另一个示例中,如果新数据的签名不能被验证,则控制器108不重新指定分区。例如,如果由控制器108计算的密码哈希与附加于数据的密码哈希不匹配,则控制器108不会重新指定分区,使得只读分区保持为只读分区,并且只写分区保持为只写分区。如果签名不能使用密钥存储模块110中的密钥被验证,则控制器108不会重新指定分区,使得只读分区保持为只读分区,并且只写分区保持为只写分区。In another example, if the signature of the new data cannot be verified, the controller 108 does not reassign the partitions. For example, if the cryptographic hash calculated by the controller 108 does not match the cryptographic hash attached to the data, the controller 108 does not reassign the partitions, causing the read-only partition to remain as a read-only partition and the write-only partition to remain as a write-only partition. If the signature cannot be verified using the key in the key storage module 110, the controller 108 does not reassign the partitions, causing the read-only partition to remain as a read-only partition and the write-only partition to remain as a write-only partition.

在一个示例实现方式中,新的密钥可以被附加到正在被写入存储设备102的消息。带有新密钥的消息可以使用对应于被存储在密钥存储模块110中的密钥的私有密钥而被签以签名。在控制器108验证这个签名时,新的密钥被存储在密钥存储模块110中,并且可以被激活用于验证对存储设备102的随后的写入的签名。以这种方式,被存储在密钥存储模块110中的公共密钥可以从可信源以安全方式更新。这个新的密钥可以被从与数据一起存储在非易失性存储模块104中删除,使得这个新的密钥只能存储在密钥存储模块110中。在另一个示例中,消息认证码可以被附加到正在被写入存储设备的消息,并被存储在密钥存储模块110中,用于验证新到来的消息的签名。In one example implementation, a new key can be appended to a message being written to the storage device 102. The message with the new key can be signed using a private key corresponding to the key stored in the key storage module 110. When the controller 108 verifies this signature, the new key is stored in the key storage module 110 and can be activated for verifying the signature of subsequent writes to the storage device 102. In this way, the public key stored in the key storage module 110 can be updated from a trusted source in a secure manner. The new key can be deleted from the data stored in the non-volatile storage module 104 so that the new key can only be stored in the key storage module 110. In another example, a message authentication code can be appended to a message being written to the storage device and stored in the key storage module 110 for verifying the signature of the newly arrived message.

在一个示例实现方式中,策略模块112可以存储与存储设备102相关的信息,包括,例如,存储设备102的唯一标识符。策略模块112可以存储版本号或与被存储在只读分区的数据相关的其它附加标识信息。策略模块112还可以存储与在新数据的接收时由控制器108所采取的行动相关的其它策略规则或指令。当控制器108使用密钥存储模块110中的密钥验证新数据上的签名时,被存储在策略模块112中的策略和信息可以被以附加于新数据的新策略更新。In one example implementation, the policy module 112 can store information associated with the storage device 102, including, for example, a unique identifier for the storage device 102. The policy module 112 can store a version number or other additional identifying information associated with the data stored in the read-only partition. The policy module 112 can also store other policy rules or instructions related to actions to be taken by the controller 108 upon receipt of new data. When the controller 108 verifies a signature on new data using a key in the key storage module 110, the policy and information stored in the policy module 112 can be updated with the new policy attached to the new data.

在一个示例实现方式中,位掩码可以被用于向存储设备102发送的数据中。该位掩码可以被用于包含将要被存储在策略模块112中的数据中的信息。例如,位掩码可以被用作权限掩码来包含被存储在策略模块112中的权限信息。还有,位掩码可以被用于给每个存储设备102分配唯一号码。例如,外围设备114可以分配与设备序列号分离的以太网MAC地址给存储设备102。在一个实现方式中,位掩码信息总是可以写入设备。在其它实现方式中,使用与用于验证数据的签名的密钥不同的密钥,位掩码信息可以写入存储设备102的策略模块112中。用于写入位掩码信息的密钥也可以被存储在密钥存储模块110中。In one example implementation, a bit mask can be used in data sent to the storage device 102. The bit mask can be used to include information in the data to be stored in the policy module 112. For example, the bit mask can be used as a permission mask to include permission information stored in the policy module 112. Also, the bit mask can be used to assign a unique number to each storage device 102. For example, the peripheral device 114 can assign an Ethernet MAC address to the storage device 102 that is separate from the device serial number. In one implementation, the bit mask information can always be written to the device. In other implementations, the bit mask information can be written to the policy module 112 of the storage device 102 using a key different from the key used to verify the signature of the data. The key used to write the bit mask information can also be stored in the key storage module 110.

参考图2,示例框图图示出非易失性存储设备202和安全设备250。非易失性存储设备202包括非易失性存储模块204,非易失性存储模块204可以包括与图1中非易失性存储模块104相同的特征。例如,非易失性存储模块204可以被分割为多个分区216和218,就像上面关于被分成多个分区116和118的存储模块104所述的一样。2 , an example block diagram illustrates a nonvolatile storage device 202 and a security device 250. The nonvolatile storage device 202 includes a nonvolatile storage module 204, which may include the same features as the nonvolatile storage module 104 of FIG1 . For example, the nonvolatile storage module 204 may be divided into a plurality of partitions 216 and 218, just as described above with respect to the storage module 104 being divided into the plurality of partitions 116 and 118.

在图2中,接口模块206、控制器208、密钥存储模块210和策略模块212可以被实现在安全设备250上。安全设备250是单独的芯片或与存储设备202分离的设备。安全设备250可以通过接口260与存储设备202通信。安全设备250上的组件(即,接口模块206、控制器208、密钥存储模块210和策略模块212)可以与图1中的接口模块106、控制器108、密钥存储模块110和策略模块112以相同的方式工作。In FIG2 , the interface module 206, the controller 208, the key storage module 210, and the policy module 212 may be implemented on a security device 250. The security device 250 is a separate chip or a device that is separate from the storage device 202. The security device 250 may communicate with the storage device 202 via an interface 260. The components on the security device 250 (i.e., the interface module 206, the controller 208, the key storage module 210, and the policy module 212) may operate in the same manner as the interface module 106, the controller 108, the key storage module 110, and the policy module 112 in FIG1 .

以这种方式,可以将安全设备250与不同的存储设备202匹配来保证已被验证的仅加密的签名数据能被写入存储设备202和从其读出。例如,控制器208可以将存储模块204划分为第一分区216和第二分区218。控制器208可以指定第一分区216为只读分区,并且第二分区218为只写分区。外围设备214可以通过安全设备250将新数据写入存储设备202。外围设备214可以使用私有密钥签名数据的密码哈希,将签名附加到数据并且通过安全设备250将数据传送给存储设备202。In this way, the security device 250 can be paired with different storage devices 202 to ensure that only encrypted, signed data that has been verified can be written to and read from the storage device 202. For example, the controller 208 can divide the storage module 204 into a first partition 216 and a second partition 218. The controller 208 can designate the first partition 216 as a read-only partition and the second partition 218 as a write-only partition. The peripheral device 214 can write new data to the storage device 202 through the security device 250. The peripheral device 214 can sign a cryptographic hash of the data using a private key, append the signature to the data, and transmit the data to the storage device 202 through the security device 250.

接口模块206接收数据,并且控制器208使用接口260引导数据被写入作为只写存储区域的第二分区218。控制器208使用被存储在密钥存储模块210中的密钥验证附加于数据的签名。如果控制器成功验证签名,则第一分区216和第二分区218分别被重新指定为只写分区和只读分区。以这种方式,被写入第二分区218的新数据可以由随后接收到的读取命令而被读出。如果控制器208不能验证签名或如果数据的不完整副本被接收,则控制器208不会重新指定分区216和218,并且随后的读取命令不会读出新数据,而是会继续读出被存储在第一分区216中的数据。控制器208可以执行这些和其它的附加功能,就像上面可以关于图1的控制器108所描述的一样。Interface module 206 receives the data, and controller 208 uses interface 260 to direct the data to be written to second partition 218, which is a write-only storage area. Controller 208 verifies the signature attached to the data using the key stored in key storage module 210. If the controller successfully verifies the signature, first partition 216 and second partition 218 are redesignated as write-only and read-only partitions, respectively. In this way, new data written to second partition 218 can be read by subsequently received read commands. If controller 208 cannot verify the signature or if an incomplete copy of the data is received, controller 208 will not redesignate partitions 216 and 218, and subsequent read commands will not read the new data, but will continue to read the data stored in first partition 216. Controller 208 can perform these and other additional functions, just as described above with respect to controller 108 of FIG. 1 .

在另一个示例实现方式中,密钥存储模块210可以被实现在非易失性存储设备202上,而不是被实现在安全设备250上。在这个实现方式中,控制器208可以位于安全设备250上,并且可以与密钥存储模块210交互,存储模块210可以被实现在非易失性存储设备202上,以使用被存储在密钥存储模块210中的一个或多个密钥来验证签名。In another example implementation, the key storage module 210 may be implemented on the non-volatile storage device 202 instead of on the secure device 250. In this implementation, the controller 208 may be located on the secure device 250 and may interact with the key storage module 210, which may be implemented on the non-volatile storage device 202, to verify signatures using one or more keys stored in the key storage module 210.

参考图3,示例框图图示出具有存储模块304a-304c的多个非易失性存储设备302a-302c和图2中的安全设备250。在图3的示例中,单个安全设备250可以通过相应的接口360a-360c为多个存储设备302a-302c控制数据的读取和数据的写入。安全设备250可以像上面图2中描述的安全设备250相同地工作。控制器208可以用来验证附加于从一个或多个外围设备314a和314b被写入存储设备302a-302c中的一个设备的数据的签名。控制器208引导数据到存储设备中被指定为只写分区的分区。当使用密钥存储模块210中的密钥验证签名时,控制器208为特定存储设备重新指定分区。如果验证失败,则控制器208不重新指定分区。Referring to FIG3 , an example block diagram illustrates multiple non-volatile storage devices 302a-302c having storage modules 304a-304c and the security device 250 of FIG2 . In the example of FIG3 , a single security device 250 can control the reading and writing of data for multiple storage devices 302a-302c via corresponding interfaces 360a-360c. The security device 250 can operate similarly to the security device 250 described above in FIG2 . The controller 208 can be used to verify the signature attached to data written to one of the storage devices 302a-302c from one or more peripheral devices 314a and 314b. The controller 208 directs the data to a partition of the storage device designated as a write-only partition. When the signature is verified using the key in the key storage module 210, the controller 208 reassigns the partition for the specific storage device. If the verification fails, the controller 208 does not reassign the partition.

在图3的示例中,安全设备250可以包括多个接口模块306a和306b。接口模块306a和306b可以是不同类型的接口。例如,接口模块306a可以是串行接口模块而接口模块306b可以是并行接口模块。取决于使用在外围设备和安全模块250之间的接口类型,接口模块306a和306b可以与某些或全部的外围设备314a和314b兼容。In the example of Figure 3, the security device 250 can include multiple interface modules 306a and 306b. The interface modules 306a and 306b can be different types of interfaces. For example, the interface module 306a can be a serial interface module and the interface module 306b can be a parallel interface module. Depending on the type of interface used between the peripheral device and the security module 250, the interface modules 306a and 306b can be compatible with some or all of the peripheral devices 314a and 314b.

在图3的这个示例中,安全设备250是灵活的,因为它能通过接口模块306a和306b,使用不同类型接口被耦合到多个非易失性存储设备302a-302c和多个外围设备314a和314b。以相似的方式,接口360a-360c可以是与不同类型的非易失性存储设备302a-302c接口的不同类型的接口(例如,串行和并行接口)。3, the security device 250 is flexible because it can be coupled to multiple non-volatile storage devices 302a-302c and multiple peripheral devices 314a and 314b using different types of interfaces through the interface modules 306a and 306b. In a similar manner, the interfaces 360a-360c can be different types of interfaces (e.g., serial and parallel interfaces) that interface with different types of non-volatile storage devices 302a-302c.

参考图4,示例流程图图示出过程400。过程400图示出上面在图1-3中描述的设备的示例操作。过程400包括将非易失性存储设备分区为第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为通过接口模块接收到的新数据的只写存储区域(410)。例如,存储设备102包括存储模块104,存储模块104可以被分割为第一分区116和第二分区118,其中第一分区116被指定为数据的只读存储区域,并且第二分区118被指定为通过接口模块112接收到的新数据的只写存储区域(410)。Referring to FIG4 , an example flow chart illustrates a process 400. Process 400 illustrates example operations of the device described above in FIG1-3 . Process 400 includes partitioning a non-volatile storage device into a first partition and a second partition, wherein the first partition is designated as a read-only storage area for data and the second partition is designated as a write-only storage area for new data received through an interface module ( 410 ). For example, the storage device 102 includes the storage module 104, which can be partitioned into a first partition 116 and a second partition 118, wherein the first partition 116 is designated as a read-only storage area for data and the second partition 118 is designated as a write-only storage area for new data received through the interface module 112 ( 410 ).

过程400包括通过接口模块接收具有签名的新数据并将该新数据写入第二分区(420)。例如,接口模块106可以接收来自外围设备114的新数据,其中数据包括使用私有密钥创建的签名。新数据可以被写入第二分区118(420)。Process 400 includes receiving, by the interface module, new data with a signature and writing the new data to the second partition (420). For example, interface module 106 may receive new data from peripheral device 114, where the data includes a signature created using a private key. The new data may be written to second partition 118 (420).

过程400包括通过控制器利用被存储在密钥存储模块中的密钥来验证签名(430)。例如,控制器108可以利用被存储在密钥存储模块110中的密钥来验证签名(430)。The process 400 includes verifying, by the controller, the signature using a key stored in the key storage module ( 430 ). For example, the controller 108 may verify the signature using a key stored in the key storage module 110 ( 430 ).

过程400包括响应于利用被存储在密钥存储模块中的密钥来验证签名,将第一分区重新指定为其它新数据的只写存储区域,并且将第二分区重新指定为新数据的只读存储区域(440)。例如,控制器108可以将第一分区116重新指定为其它新数据的只写存储区域。控制器108可以响应于控制器108利用被存储在密钥存储模块110中的密钥来验证签名,将第二分区118重新指定为新数据的只读存储区域(440)。如果控制器108不能验证签名,则分区不被重新指定。Process 400 includes redesignating the first partition as a write-only storage area for other new data and redesignating the second partition as a read-only storage area for new data in response to verifying the signature using the key stored in the key storage module (440). For example, the controller 108 may redesignate the first partition 116 as a write-only storage area for other new data. The controller 108 may redesignate the second partition 118 as a read-only storage area for new data in response to the controller 108 verifying the signature using the key stored in the key storage module 110 (440). If the controller 108 cannot verify the signature, the partition is not redesignated.

本文描述的各种技术的实现可以被实现为数字电路或计算机硬件、固件、软件或它们的组合。实现可以被实现为计算机程序产品,例如,有形体现在信息载体中的计算机程序,如存储在机器只读存储设备中,用于被控制数据处理装置执行或控制数据处理装置的运行,数据处理装置包括如可编程处理器、一台计算机或多台计算机。计算机程序,如上述的计算机程序,能用任何形式的编程语言来写,包括编译语言或解释语言,并且可以被部署为任何形式,包括作为独立的程序或作为模块、组件、子程序或其它适合使用在计算环境中的单元。计算机程序能被部署到一台计算机上执行,或一个站点的多台计算机上执行,或分布于多个站点的并通过通信网络连接的多台计算机上执行。Implementations of the various techniques described herein may be implemented as digital circuits or computer hardware, firmware, software, or a combination thereof. Implementations may be implemented as computer program products, for example, computer programs tangibly embodied in an information carrier, such as stored in a machine-read-only storage device, for being executed by or controlling the operation of a data processing device, such as a programmable processor, a computer, or multiple computers. Computer programs, such as those described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as stand-alone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs can be deployed to execute on a single computer, or on multiple computers at a site, or on multiple computers distributed across multiple sites and connected via a communications network.

方法步骤可以被一个或多个执行计算机程序的可编程处理器执行,通过对输入数据的操作和产生输出来执行功能。方法步骤也可以被装置执行,这个装置可以被实现为专用逻辑电路,如FPGA(场可编程逻辑阵列)或ASIC(专用集成电路)。Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps may also be performed by an apparatus, which may be implemented as special purpose logic circuitry, such as an FPGA (field programmable logic array) or an ASIC (application-specific integrated circuit).

适合执行计算机程序的处理器包括,举例来说,通用微处理器和专用微处理器,和任何种类的数字计算机中的任何一个或多个处理器。通常,处理器会从只读存储器或随机存取存储器或从两者接收指令和数据。计算机的元件包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括或被可操作地耦合来接收来自用于存储数据的一个或多个大容量存储设备的数据,或向所述一个或多个大容量存储设备传递数据,或以上两种操作都有,所述大容量存储设备例如,磁盘、磁光盘或光盘。适合体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,举例来说,半导体存储器设备,例如,EPROM、EEPROM以及闪存设备;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充,或被并入专用逻辑电路。Processors suitable for executing a computer program include, by way of example, general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor will receive instructions and data from a read-only memory or a random-access memory, or both. Elements of a computer include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer may also include, or be operatively coupled to, receive data from or transfer data to, or both, one or more mass storage devices for storing data, such as magnetic, magneto-optical, or optical disks. Suitable information carriers for embodying computer program instructions and data include all forms of nonvolatile memory, such as semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special-purpose logic circuitry.

为提供与用户的交互,实现方式可以被实现在具有显示设备和键盘以及定点设备的计算机上,该显示设备,例如,阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息;该定点设备,例如,鼠标或跟踪球,通过该键盘和定点设备,用户可以向计算机提供输入。其它种类的设备也能被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;来自用户的输入能被以任何形式接收,包括声学、语音或触觉输入。To provide for interaction with a user, implementations may be implemented on a computer having a display device, such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user, and a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices can also be used to provide for interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, voice, or tactile input.

实现方式可以被实现在计算系统中,该计算系统包括后端组件,例如,作为数据服务器,或包括中间件组件,例如,应用服务器,或包括前端组件,例如,具有图形用户界面的客户端计算机,或用户能通过其与一个实现方式交互的Web浏览器,或这样的后端组件、中间件组件或前端组件的任何组合。组件可以通过任何形式或媒介的数字数据通信(例如通信网络)被互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。Implementations may be implemented in a computing system that includes a back-end component, such as a data server, or a middleware component, such as an application server, or a front-end component, such as a client computer with a graphical user interface, or a web browser through which a user can interact with an implementation, or any combination of such back-end components, middleware components, or front-end components. The components may be interconnected by any form or medium of digital data communication, such as a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), such as the Internet.

虽然如在本文所述,已经图示出所述实现方式的某些特征,但是本领域的技术人员将会想到许多修改、替代、变化和等效。因此,可以理解的是,所附权利要求意在覆盖落于实施例的范围内的所有这样的修改和变化。Although certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes, and equivalents will occur to those skilled in the art. It is therefore to be understood that the appended claims are intended to cover all such modifications and changes that fall within the scope of the embodiments.

Claims (28)

1.一种用于控制数据的装置,包括:1. An apparatus for controlling data, comprising: 接口模块;Interface module; 控制器,所述控制器可操作地耦合到所述接口模块;A controller, which is operatively coupled to the interface module; 密钥存储模块,所述密钥存储模块可操作地耦合到所述控制器,所述密钥存储模块被配置为存储密钥;以及A key storage module, operatively coupled to the controller, configured to store keys; and 非易失性存储模块,所述非易失性存储模块可操作地耦合到所述控制器并且被配置为存储数据,所述非易失性存储模块具有第一分区和第二分区,其中:A non-volatile storage module, operatively coupled to the controller and configured to store data, the non-volatile storage module having a first partition and a second partition, wherein: 所述第一分区被指定为所述数据的只读存储区域,The first partition is designated as a read-only storage area for the data. 所述第二分区被指定为通过所述接口模块接收到的新数据的只写存储区域,以及The second partition is designated as a write-only storage area for new data received through the interface module, and 响应于所述新数据与签名一起被写入所述第二分区和所述控制器使用被存储在所述密钥存储模块中的所述密钥验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。In response to the new data being written to the second partition along with the signature and the controller verifying the signature using the key stored in the key storage module, the first partition is redesignated as a write-only storage area for the new data, and the second partition is redesignated as a read-only storage area for the new data. 2.根据权利要求1所述的装置,其中,响应于接收到带有所述签名的所述新数据的完整副本和所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。2. The apparatus of claim 1, wherein, in response to receiving a complete copy of the new data with the signature and the controller verifying the signature using the key stored in the key storage module, the first partition is redesignated as a write-only storage area for other new data, and the second partition is redesignated as a read-only storage area for the new data. 3.根据权利要求1所述的装置,其中,所述新数据包括新密钥,响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述新密钥被存储在所述密钥存储模块中并且被激活。3. The apparatus of claim 1, wherein the new data includes a new key, and the new key is stored in the key storage module and activated in response to the controller using the key stored in the key storage module to verify the signature. 4.根据权利要求3所述的装置,其中,所述新密钥仅被存储在所述密钥存储模块中。4. The apparatus according to claim 3, wherein the new key is stored only in the key storage module. 5.根据权利要求1所述的装置,其中,响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥不能验证所述签名,所述第一分区不被重新指定为其它新数据的只写存储区域,并且所述第二分区不被重新指定为所述新数据的只读存储区域。5. The apparatus of claim 1, wherein, in response to the controller being unable to verify the signature using the key stored in the key storage module, the first partition is not redesignated as a write-only storage area for other new data, and the second partition is not redesignated as a read-only storage area for the new data. 6.根据权利要求1所述的装置,其中,响应于通过所述接口模块接收所述新数据的不完整的写入,所述第一分区不被重新指定为其它新数据的只写存储区域,并且所述第二分区不被重新指定为所述新数据的只读存储区域。6. The apparatus of claim 1, wherein, in response to receiving an incomplete write of the new data through the interface module, the first partition is not reassigned as a write-only storage area for other new data, and the second partition is not reassigned as a read-only storage area for the new data. 7.根据权利要求1或2所述的装置,其中,所述新数据被作为明文从所述第二分区读取。7. The apparatus of claim 1 or 2, wherein the new data is read as plaintext from the second partition. 8.根据权利要求1或2所述的装置,其中,所述第一分区和所述第二分区具有相同的大小。8. The apparatus according to claim 1 or 2, wherein the first partition and the second partition have the same size. 9.根据权利要求1或2所述的装置,其中,所述接口模块包括串行接口模块。9. The apparatus according to claim 1 or 2, wherein the interface module includes a serial interface module. 10.根据权利要求1或2所述的装置,其中,所述接口模块包括并行接口模块。10. The apparatus according to claim 1 or 2, wherein the interface module includes a parallel interface module. 11.根据权利要求1或2所述的装置,其中,所述装置是电可擦除可编程只读存储器(EEPROM)。11. The apparatus of claim 1 or 2, wherein the apparatus is an electrically erasable programmable read-only memory (EEPROM). 12.根据权利要求1或2所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的私有密钥相对应的公共密钥。12. The apparatus according to claim 1 or 2, wherein the key stored in the key storage module is a public key corresponding to a private key used to create the signature outside the apparatus. 13.根据权利要求1或2所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的共享秘密密钥相对应的共享秘密密钥。13. The apparatus according to claim 1 or 2, wherein the key stored in the key storage module is a shared secret key corresponding to a shared secret key used to create the signature outside the apparatus. 14.一种用于控制数据的装置,包括:14. An apparatus for controlling data, comprising: 接口模块;Interface module; 密钥存储模块,所述密钥存储模块被配置为存储密钥;A key storage module, configured to store keys; 控制器,所述控制器可操作地耦合到所述接口模块和所述密钥存储模块,所述控制器被配置为与用于存储数据的外部非易失性存储设备对接,并且所述控制器被配置为:A controller, operatively coupled to the interface module and the key storage module, is configured to interface with an external non-volatile storage device for storing data, and is configured to: 将所述外部非易失性存储设备分割为第一分区和第二分区,所述第一分区被指定为所述数据的只读存储区域,并且所述第二分区被指定为通过所述接口模块接收到的新数据的只写存储区域,The external non-volatile storage device is divided into a first partition and a second partition. The first partition is designated as a read-only storage area for the data, and the second partition is designated as a write-only storage area for new data received through the interface module. 通过所述接口模块接收具有签名的所述新数据,并且将所述新数据写入所述第二分区,The interface module receives the signed new data and writes the new data into the second partition. 使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,以及The signature is verified using the key stored in the key storage module. 响应于使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。In response to verifying the signature using the key stored in the key storage module, the first partition is reassigned as a write-only storage area for other new data, and the second partition is reassigned as a read-only storage area for the new data. 15.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于接收到所述新数据的完整副本并且响应于使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。15. The apparatus of claim 14, wherein the controller is configured to: in response to receiving a complete copy of the new data and in response to verifying the signature using the key stored in the key storage module, redesignate the first partition as a write-only storage area for other new data and redesignate the second partition as a read-only storage area for the new data. 16.根据权利要求14所述的装置,其中,所述新数据包括新密钥,并且响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述新密钥被存储在所述密钥存储模块中并且被激活。16. The apparatus of claim 14, wherein the new data includes a new key, and the new key is stored in the key storage module and activated in response to the controller using the key stored in the key storage module to verify the signature. 17.根据权利要求16所述的装置,其中,所述新密钥仅被存储在所述密钥存储模块中。17. The apparatus of claim 16, wherein the new key is stored only in the key storage module. 18.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于所述控制器使用被存储在所述存储模块中的所述密钥不能验证所述签名,不将所述第一分区重新指定为其它新数据的只写存储区域,并且不将所述第二分区重新指定为所述新数据的只读存储区域。18. The apparatus of claim 14, wherein the controller is configured to: in response to the controller being unable to verify the signature using the key stored in the storage module, not to redesignate the first partition as a write-only storage area for other new data, and not to redesignate the second partition as a read-only storage area for the new data. 19.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于通过所述接口模块接收所述新数据的不完整的写入,不将所述第一分区重新指定为所述其它新数据的只写存储区域,并且不将所述第二分区重新指定为所述新数据的只读存储区域。19. The apparatus of claim 14, wherein the controller is configured to: in response to receiving an incomplete write of the new data through the interface module, not to redesignate the first partition as a write-only storage area for the other new data, and not to redesignate the second partition as a read-only storage area for the new data. 20.根据权利要求14-19中的任何一项所述的装置,其中,所述非易失性存储设备是电可擦除可编程只读存储器(EEPROM)。20. The apparatus according to any one of claims 14-19, wherein the non-volatile storage device is an electrically erasable programmable read-only memory (EEPROM). 21.根据权利要求14-19中的任何一项所述的装置,其中,所述接口模块包括串行接口模块。21. The apparatus according to any one of claims 14-19, wherein the interface module comprises a serial interface module. 22.根据权利要求14-19中的任何一项所述的装置,其中,所述接口模块包括并行接口模块。22. The apparatus according to any one of claims 14-19, wherein the interface module includes a parallel interface module. 23.根据权利要求14-19中的任何一项所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的私有密钥相对应的公共密钥。23. The apparatus according to any one of claims 14-19, wherein the key stored in the key storage module is a public key corresponding to a private key used to create the signature outside the apparatus. 24.根据权利要求14-19中的任何一项所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的共享秘密密钥相对应的共享秘密密钥。24. The apparatus according to any one of claims 14-19, wherein the key stored in the key storage module is a shared secret key corresponding to a shared secret key used to create the signature outside the apparatus. 25.一种用于控制数据的方法,包括:25. A method for controlling data, comprising: 将非易失性存储设备分割成第一分区和第二分区,所述第一分区被指定为数据的只读存储区域,并且所述第二分区被指定为通过接口模块接收到的新数据的只写存储区域;The non-volatile storage device is divided into a first partition and a second partition, wherein the first partition is designated as a read-only storage area for data and the second partition is designated as a write-only storage area for new data received through the interface module. 通过所述接口模块接收具有签名的所述新数据,并且将所述新数据写入所述第二分区;The interface module receives the new data with a signature and writes the new data into the second partition. 通过控制器利用被存储在密钥存储模块中的密钥来验证所述签名;以及The signature is verified by the controller using a key stored in the key storage module; and 响应于利用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。In response to verifying the signature using the key stored in the key storage module, the first partition is reassigned as a write-only storage area for other new data, and the second partition is reassigned as a read-only storage area for the new data. 26.根据权利要求25所述的方法,其中,所述非易失性存储设备是电可擦除可编程只读存储器(EEPROM)。26. The method of claim 25, wherein the non-volatile storage device is an electrically erasable programmable read-only memory (EEPROM). 27.根据权利要求25所述的方法,其中,所述非易失性存储设备是处于所述控制器外部的电可擦除可编程只读存储器(EEPROM)。27. The method of claim 25, wherein the non-volatile storage device is an electrically erasable programmable read-only memory (EEPROM) located outside the controller. 28.一种用于控制数据的装置,包括:28. An apparatus for controlling data, comprising: 用于对接的设备;Equipment used for docking; 用于控制的设备,所述用于控制的设备可操作地耦合到所述用于对接的设备;Device for control, wherein the device for control is operatively coupled to the device for docking; 用于存储密钥的设备,所述用于存储密钥的设备可操作地耦合到所述用于控制的设备,其中,所述用于存储密钥的设备被配置为存储密钥;以及A device for storing keys, the device for storing keys being operatively coupled to the device for control, wherein the device for storing keys is configured to store keys; and 用于非易失性存储的设备,所述用于非易失性存储的设备可操作地耦合到所述用于控制的设备并且被配置为存储数据,所述用于非易失性存储的设备包括第一分区和第二分区,其中A device for non-volatile storage, operatively coupled to the device for control and configured to store data, the device for non-volatile storage comprising a first partition and a second partition, wherein... 所述第一分区被指定为所述数据的只读存储区域,The first partition is designated as a read-only storage area for the data. 所述第二分区被指定为通过所述用于对接的设备接收到的新数据的只写存储区域,以及The second partition is designated as a write-only storage area for new data received through the device used for docking, and 响应于所述新数据与签名一起被写入所述第二分区并且所述用于控制的设备使用被存储在所述用于存储所述密钥的设备中的所述密钥来验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。In response to the new data being written to the second partition along with the signature and the control device using the key stored in the device for storing the key to verify the signature, the first partition is redesignated as a write-only storage area for the other new data, and the second partition is redesignated as a read-only storage area for the new data.
HK16108925.5A 2013-06-13 2014-05-28 Non-volatile memory operations HK1221065B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/917,261 2013-06-13
US13/917,261 US9697358B2 (en) 2013-06-13 2013-06-13 Non-volatile memory operations
PCT/US2014/039817 WO2014200695A1 (en) 2013-06-13 2014-05-28 Non-volatile memory operations

Publications (2)

Publication Number Publication Date
HK1221065A1 HK1221065A1 (en) 2017-05-19
HK1221065B true HK1221065B (en) 2020-10-23

Family

ID=

Similar Documents

Publication Publication Date Title
CN105283921B (en) Operation of Non-Volatile Memory
JP6991431B2 (en) Methods and systems to secure communication between the host system and the data processing accelerator
US11789625B2 (en) Managing privileges of different entities for an integrated circuit
US8943319B2 (en) Managing security for computer services
US11048551B2 (en) Secure delivery and deployment of a virtual environment
US11616769B2 (en) Runtime identity confirmation for restricted server communication control
US10454910B2 (en) Management apparatus, computer program product, system, device, method, information processing apparatus, and server
TW201807616A (en) Safe storage system and method for safe storage
US9071585B2 (en) Copy offload for disparate offload providers
US20230236870A1 (en) Safe entropy source for encrypted virtual machines
CN116724309A (en) Equipment and communication methods
CN115280718B (en) Method and system for secure private key distribution between authorized instances
CN116541046B (en) Energy storage system upgrading method and device, computer equipment and readable storage medium
US11068598B2 (en) Chassis internal device security
HK1221065B (en) Non-volatile memory operations
US11948192B2 (en) Method and system for providing high-speed storage and retrieval of information
US20250199965A1 (en) Secure cross-host memory sharing
US12147354B2 (en) Methods and systems for processor agnostic encryption management
CN113935044B (en) IT system security control method, device and computing equipment for preventing data leakage
US12406074B1 (en) Request-scope security tokens
CN120283220A (en) Method and system for secure software delivery
WO2023154042A1 (en) Method and system for providing high-speed storage and retrieval of information
JP2023039217A (en) I/O command control device and information recording device
JP2019121846A (en) Vpn system and vpn system control method