CN101246456B - 数据加密设备、数据解密设备及数据加密方法 - Google Patents
数据加密设备、数据解密设备及数据加密方法 Download PDFInfo
- Publication number
- CN101246456B CN101246456B CN200810001575XA CN200810001575A CN101246456B CN 101246456 B CN101246456 B CN 101246456B CN 200810001575X A CN200810001575X A CN 200810001575XA CN 200810001575 A CN200810001575 A CN 200810001575A CN 101246456 B CN101246456 B CN 101246456B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- dma
- encryption
- equipment
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/10—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了数据加密设备和方法、解密设备和方法、传送控制设备。一种保密处理器被连接到主计算机和存储设备。来自主计算机的数据经由DMA(直接存储器访问)传送到保密处理器以完成加密并随后存储在存储设备中。保密处理器获取限定DMA号的描述符,该DMA号用于识别用来DMA传送数据的DMA通道。基于该获得的描述符中包括的DMA号,保密处理器在其中存储以在数据总线中规定数据量为单位、使用相同DMA通道传送的数据。然后该保密处理器以在加密***中规定的数据量为单位,对所存储数据进行加密,并将该被加密的数据传送到存储设备。
Description
技术领域
本发明涉及数据加密设备、数据解密设备、数据加密方法、数据解密方法以及对第一设备和第二设备之间传送的数据进行加密和解密的数据传送控制设备。本发明具体涉及数据加密设备、数据解密设备、数据加密方法、数据解密方法以及数据传送控制设备,通过识别用来传送数据的通道,能够加密和解密每个通道的数据,即使当用于数据传送单位的数据量不同于用于保密处理单位的数据量时,也能如此。
背景技术
通常,在磁盘装置、光盘装置及其他存储装置中,为了防止由于盗窃和未授权访问引起的信息泄露,当在存储介质(如磁盘和光盘)中记录数据时,或数据被传输到诸如主计算机的网络***的主机设备和从主机设备接收时,数据被加密。例如,在日本专利申请特开2005-322201和2006-39000中公开了常规技术。
在计算机网络***中,典型的RAID***(廉价盘冗余阵列)是众所周知的。RAID***包括,例如,作为存储介质的多个盘的盘设备、请求从盘设备读出数据和将数据写到盘设备的上位设备、基于来自该上位设备的请求控制输入数据到盘设备和从盘设备输出数据的RAID控制器。
图17A和17B是示出了常规RAID***的实施例的示意图。如该图所示,RAID***包括RAID控制器10、用作上位设备的主机设备20、以及盘设备30。RAID控制器10被连接在主机设备20和盘设备30之间。
如图17A和17B所示,RAID控制器10包括主机接口控制器11、主存储器12、存储控制器13、中央处理单元(CPU)14和盘接口控制器16。
现在将简要地描述这些功能单元。主机接口控制器11控制传送到主机设备20和从主机设备20传送的数据。主存储器12包括用作高速缓冲存储器的高速缓存区。
存储控制器13控制从主存储器12读出数据和将数据写到主存储器12。CPU 14是中央处理单元,其实现了对整个RAID控制器10进行控制的固件。盘接口控制器16控制传送数据到盘设备30和从盘设备30传送数据。
参照图17A和17B,简要地描述由RAID控制器10执行的操作。下面描述从主机设备20接收到写要求时执行的操作(下面称为“写操作”),以及从主机设备20接收到读请求时执行的操作(下面称为“读操作”)。
在写操作中,如图17A所示,当从主机设备20发送了写要求时(图17A中的附图标记(1)),主机接口控制器11接收连同写要求一起发送来的数据,并将该数据传递给存储控制器13。存储控制器13在主存储器12的高速缓存区中顺序地存储所接收的数据(图17A中的附图标记(2))。盘接口控制器16经由存储控制器13从高速缓存区读出该数据(图17A中的附图标记(3)),并将该数据传送到盘设备30(图17A中的附图标记(4))。
另一方面,在读操作中,如图17B所示,当从主机设备20发送了读请求时(图1 7B中的附图标记(1)),盘接口控制器16从盘设备30读出该读请求中请求的数据(图17B中的附图标记(2)),并将该数据传递给存储控制器13。存储控制器13在主存储器12的高速缓存区中顺序地存储所接收的数据(图1 7B中的附图标记(3))。然后,主机接口控制器11经由存储控制器13从高速缓存区读出数据(图17B中的附图标记(4)),并将该数据传送到主机设备20(图17B中的附图标记(5))。
在这种RAID***中,通常由RAID控制器10对将被存储在盘设备30中的数据执行保密处理(加密与解密)。
可以对主机设备20和主存储器12之间传送的数据以及主存储器12和盘设备30之间传送的数据执行该保密处理。
对于在主机设备20和主存储器12之间传送的数据,主存储器12中存储的数据全部被加密。因此,每当用于处理的固件引用主存储器12中 存储的数据时,该数据都需要被解密,这意味着低的处理效率。
因此,实践中,在主存储器12和盘设备30之间传送数据时,RAID控制器10也对将存储在盘设备30中的数据执行保密处理。
这种保密处理通常通过在固件中嵌入保密处理的程序来实现。下面简要地描述由固件执行的典型保密处理。
在写操作中,当从主机设备20发送写请求时,主机接口控制器11接收连同写要求一起发送来的数据,并将该数据传递给存储控制器13。存储控制器13在主存储器12的高速缓存区中顺序地存储接收到的数据。该固件控制存储控制器13从高速缓存区顺序地读出该数据,加密该数据,并在不同于主存储器12中的高速缓存区的保存区中保存该加密数据。然后盘接口控制器16经由存储控制器13从该保存区读出该加密数据,并将该加密数据传送到盘设备30。
另一方面,在读操作中,当从主机设备20发送读请求时,盘接口控制器16从盘设备30读出该读请求中请求的数据,并将该数据传递给存储控制器13。存储控制器13在主存储器12的高速缓存区中顺序地存储接收数据。该固件控制存储控制器13顺序地读出高速缓存区中存储数据,解密该数据,并在不同于主存储器12中的高速缓存区的保存区中保存该解密数据。主机接口控制器11经由存储控制器13从该保存区读出解密数据,并将该解密数据传送到主机设备20。
由此,该固件对在主存储器12和盘设备30之间传送的数据执行了保密处理,从而能够加密将在盘设备30中存储的数据。
但是使固件执行保密处理需要在所述保密处理之前和之后临时保存数据的保存区。这造成了RAID控制器10中安装的存储器(主存储器或其他存储器)的容量增加的问题。存储容量的增加导致RAID控制器10的成本增加。
在该结构中,输入数据到盘设备和从盘设备输出数据一直需要由固件执行的保密处理,导致增加了数据输入和输出的响应时间。此外,因为固件执行保密处理,增加了RAID控制器10的CPU的负载,引起盘控制器的忙比率增加,并使主存储器总线的通信量很繁重。因此,整个 RAID***性能下降。
有鉴于此,提出了将RAID控制器10构成为用加密芯片(其通过硬件(如集成电路)实现加密与解密功能)来对将存储在盘设备30中的数据执行保密处理,而不使固件执行保密处理。
图18A和18B示出了使用加密芯片的RAID控制器10的示意图。如图所示,在RAID控制器10中,包括加密芯片的保密处理器15经由总线被连接在存储控制器13和盘接口控制器16之间。
下面描述由RAID控制器10执行的操作。在写操作中,如图18A所示,当从主机设备20发送了写要求时(图18A中的附图标记(1)),主机接口控制器11接收连同写要求一起发送来的数据,并将该数据传递给存储控制器13。存储控制器13在主存储器12的高速缓存区中顺序地存储该接收到的数据(图18A中的附图标记(2))。然后,保密处理器15经由存储控制器13从高速缓存区顺序地读出该数据,加密由此读出的数据,并将该数据传递给盘接口控制器16(图18A中的附图标记(3))。当接收到该加密数据时,盘接口控制器16将该加密数据传送到盘设备30(图18A中的附图标记(4))。
另一方面,在读操作中,如图18B所示,当从主机设备20发送了读请求时(图18B中的附图标记(1)),盘接口控制器1 6从盘设备30读出该读请求中请求的数据(图18B中的附图标记(2)),并将该数据传递给保密处理器15。保密处理器15解密该接收数据,并通过存储控制器13将它顺序地存储在主存储器12的高速缓存区中(图18B中的附图标记(3))。主机接口控制器11经由存储控制器13从高速缓存区读出该解密的数据(图18B中的附图标记(4)),并将该数据传送到主机设备20(图18B中的附图标记(5))。
当这种加密芯片用来执行保密处理时,不需要保存区。该结构解决由固件执行的保密处理引起的成本增加和处理降低的问题。
但是,使用加密芯片执行保密处理导致了这样的问题,即,当作为在连接RAID控制器10中的装置的总线上传送的数据的单位的数据量和作为使用加密芯片执行的密码处理的单位的数据量之间有区别时,需要 复杂的控制。下面详细地描述该问题。
下面描述了这样的构成,例如,在该构成中,***元件互连表示(PCIe)被用作总线标准的配置,而高级加密标准(AES)被用作使用加密芯片执行的保密处理的格式。在该构成中,用于在总线上传送的数据的单位的数据量是4字节的倍数(32位),用作保密处理的单位的数据量是16字节(128位)。
当AES被用来加密PCIe总线上传送来的数据时,少于16字节的数据会剩下,而不被加密(解密时相同)。在此情况下,保密处理器15保持剩余的数据(下面称为“零散数据”),并将它与随后传送的数据组合,以便产生和加密基于16字节的数据。
在PCIe中,以交易层包(TLP)的形式传送数据,可以由一个TLP传送的数据量具有规定的上限。由此,当将被传送的数据超过该上限量时,该数据被分为多个TLP,然后被传送。
此外,在经由存储控制器13连接到主存储器12的总线上传送的数据通常通过直接存储器访问(DMA)传送,旨在减小CPU的负载。DMA允许使用多个DMA通道来并行传送数据。
从一个数据组分出的TLP通过使用相同的DMA通道来传送。由此,当零散数据和随后传送的数据组合时,必须识别这些数据项是否是通过相同的通道传送的。
各TLP设有包括各种类型的命令(如读命令和写指令)、地址及其他信息的头部。可以使用TLP的头部中包括的标记信息来识别用于数据传送的DMA通道。
通常,在标记区中怎样设置信息随传送数据的装置的规格(如存储控制器13或盘接口控制器16)而不同。为了实现与器件规格无关的通用加密芯片,标记信息不能被用作识别DMA通道的因素。
这提出了这样的重要课题,即,尤其是在用于数据传送的单位的数据量不同于用于保密处理的单位的数据量时,怎样识别用来传送信息以加密和解密用于各通道的信息。
发明内容
本发明的目的是至少部分地解决常规技术中的问题。
根据本发明的一个方面,一种对从第一设备传送到第二设备的数据进行加密的数据加密设备包括:传送信息获取单元,获得用于识别用来传送数据的通道的传送通道识别信息;数据加密单元,基于由该传送信息获取单元获得的传送通道识别信息,在其中存储经由相同通道以第一数据量为单位传送的数据,并以第二数据量为单位加密所存储的数据;以及数据传送单元,向所述第二设备传送该数据加密单元以第二数据量为单位加密的数据。
根据本发明的另一方面,一种对从第二设备传送到第一设备的加密数据进行解密的数据解密设备包括:传送信息获取单元,获得用于识别用来传送加密数据的通道的传送通道识别信息;数据解密单元。基于该传送信息获取单元获得的传送通道识别信息,在其中存储经由相同通道以第一数据量为单位传送来的加密数据,并以第二数据量为单位解密所存储的加密数据;以及数据传送单元,向所述第一设备传送所述数据解密单元以第二数据量为单位解密出的数据。
根据本发明的再一方面,一种对经由通道从第一设备传送到第二设备的数据进行加密的数据加密方法包括:获取用于识别用来传送数据的通道的传送通道识别信息;基于所述传送通道识别信息,存储以第一数据量为单位经由相同通道传送的数据,以及以第二数据量为单位加密该存储数据;以及向第二设备传送以第二数据量为单位的加密数据。
通过阅读本发明的当前优选实施方式的下列详细描述,同时结合附图考虑,将很好地理解本发明的上述及其他目的、特点、优点以及技术和工业重要性。
附图说明
图1A和1B是用于说明根据本发明的一种实施方式的RAID控制器的概述的示意图;
图2是根据本实施方式的RAID控制器的功能框图;
图3是示出了TLP的头部格式的示意图;
图4是示出了描述符1的格式的示意图;
图5是示出了描述符2的格式的示意图;
图6是示出了用于读出描述符的请求包的地址信息的示意图;
图7是示出了用于读出数据的请求包的地址信息的示意图;
图8是示出了读请求包的头部格式的示意图;
图9是示出了读响应包的头部格式的示意图;
图10是示出了在写操作中由RAID控制器执行的处理过程的第一顺序图;
图11是示出了在写操作中由RAID控制器执行的后续处理过程的第二顺序图;
图12是示出了在写操作中由RAID控制器执行的后续处理过程的第三顺序图;
图13是示出了在读操作中由RAID控制器执行的后续处理过程的第四顺序图;
图14是示出了在读操作中由RAID控制器执行的处理过程的第一顺序图;
图15是示出了在读操作中由RAID控制器执行的后续处理过程的第二顺序图;
图16是示出了在读操作中由RAID控制器执行的后续处理过程的第三顺序图;
图17A和17B是示出了常规RAID***的实施例的示意图;以及
图18A和18B是示出了使用加密芯片的RAID控制器的示意图。
具体实施方式
现在将参照附图,详细地描述根据本发明的数据加密设备、数据解密设备、数据加密方法、数据解密方法以及数据传送控制设备的示例性实施方式。该实施方式描述了应用了本发明的RAID控制器。
下面描述根据本实施方式的RAID控制器的概述。图1A和1B是用 于说明根据本实施方式的RAID控制器的概述的示意图。如图所示,RAID控制器100被连接和共享在主机设备200和盘设备300之间。RAID控制器100包括主机接口控制器110、主存储器120、存储控制器130、CPU 140、保密处理器150以及盘接口控制器160。
现在将简要地描述这些功能单元。主机接口控制器110控制数据到主机设备200的传送和来自主机设备200的数据传送。主存储器120包括用作高速缓冲存储器的高速缓存区。存储控制器130控制从主存储器120读出数据和写数据到主存储器120。CPU 140是中央处理单元,其实现了控制整个RAID控制器100的固件。保密处理器150使用加密芯片依据AES执行保密处理。盘接口控制器160控制数据到盘设备300的传送和来自盘设备300的数据传送。
主机接口控制器110、存储控制器130、保密处理器150以及盘接口控制器160经由PCIe总线互相连接。此外,DMA用于经由存储控制器130的、在主机接口控制器110和主存储器120之间的数据传送以及用于经由存储控制器130和保密处理器150的、在主存储器120和盘接口控制器160之间的数据传送。
由此,根据本实施方式的RAID控制器100被连接到并共享在盘设备300和用作上位设备的主机设备200之间。RAID控制器100基于来自主机设备200的请求,控制数据输入到盘设备300和从盘设备300输出数据。具有这种主要特点的RAID控制器100能够识别用来传送数据的通道并由此加密和解密各通道的数据,即使当作为数据传送的单位的数据量不同于用于保密处理的单位的数据量时,也是如此。
下面更详细地描述这些特点。如图1A所示,在根据本实施方式的RAID控制器100中,当主机接口控制器110接收到来自主机设备200的写请求时(图1A中的附图标记(1)),它经由存储控制器130在主存储器120的高速缓存区中存储连同写请求一起发送来的数据(图1A中的附图标记(2))。
另一方面,固件(CPU 140)产生用来传送主存储器中存储的数据的控制信息。该控制信息包括用于识别用来传送数据的DMA通道的DMA 号(图1A中的附图标记(3))。
保密处理器150获得由固件产生的控制信息(图1A中的附图标记(4)),并基于获得的控制信息中包括的DMA号,在其中存储从存储控制器130以PCIe中规定的数据量为单位使用相同的DMA通道传送来的数据。然后保密处理器1 50以AES中规定的数据量为单位加密所存储的数据(图1A中的附图标记(5))。
作为加密该数据的结果,如果剩余了少于AES中规定的数据量的数据,则保密处理器150将剩余的数据与以PCIe中规定的数据量为单位使用相同DMA通道随后传送的数据相组合,以便以AES中规定的数据量为单位加密所存储的数据。
此外,保密处理器150顺序地将该加密数据传送到盘接口控制器160(图1A中的附图标记(6))。盘接口控制器160向盘设备300传送从保密处理器150传送的加密数据(图1A中的附图标记(7))。由此传送的数据被写入盘中,盘是盘设备300中的存储介质。
在根据本实施方式的RAID控制器100中,如图1B所示,当主机接口控制器110接收到来自主机设备200的读请求时(图1B中的附图标记(1)),固件(CPU 140)产生用来传送从盘设备300读出的加密数据的控制信息(图1B中的附图标记(2))。该控制信息包括用于识别用来传送加密数据的DMA通道的DMA号。
另一方面,盘接口控制器160从盘设备300中读出该读请求中请求的数据(图1B中的附图标记(4)),并以PCIe中规定数据量为单位使用相同DMA通道将它传送到保密处理器150。
保密处理器150获得由固件产生的控制信息(图1B中的附图标记(3)),并基于所获得的控制信息中包括的DMA号,在其中存储从盘接口控制器160传送的加密数据。然后保密处理器150以AES中规定的数据量为单位解密所存储的加密数据(图1B中的附图标记(5))。
作为解密该存储的加密数据的结果,如果少于AES中规定的数据量的数据剩余,那么保密处理器150将剩余的数据与以PCIe中规定的数据量为单位、使用相同DMA通道随后传送的数据相组合,以便在其中存储 它。然后保密处理器150以AES中规定的数据量为单位解密所存储的数据。
此外,保密处理器150将该解密的数据顺序地传送到存储控制器130。存储控制器130在主存储器120的高速缓存区中存储从保密处理器150传送的解密数据(图1B中的附图标记(6))。主机接口控制器110向主机设备发送高速缓存区中存储的数据(图1B中的附图标记(7)和(8))。
由此,在根据本实施方式的RAID控制器100中,保密处理器150获得用于识别用来传送主机设备200请求的数据的DMA号,以及基于该获得的DMA号,在其中存储以PCIe中规定的数据量为单位使用相同DMA通道传送的数据。然后保密处理器150以AES中规定数据量为单位加密存储的数据。该加密数据被盘接口控制器160传送到盘设备300。
此外,在根据本实施方式的RAID控制器100中,保密处理器150获得用于识别用来传送由主机设备200请求的加密数据的DMA通道的DMA号,并基于该获得的DMA号,在其中存储以PCIe中规定的数据量为单位使用相同DMA通道传送的加密数据。然后保密处理器150以AES中规定数据量为单位解密所存储的加密数据。该解密数据被主机接口控制器110传送到主机设备200。
利用该结构,根据本实施方式的RAID控制器100可以识别用于数据传送的DMA通道,由此能够加密和解密用于各DMA通道的数据。
下面描述根据本实施方式的RAID控制器100的结构。图2是根据本实施方式的RAID控制器100的功能框图。如图2所示,RAID控制器100被连接到主机设备200和盘设备300,并在主机设备200和盘设备300之间共享。
主机设备200是从盘设备300读出数据和将数据写入盘设备300的上位设备。在数据写操作中,主机设备200向RAID控制器100发送写请求,而在数据读操作中,它向RAID控制器100发送读请求。
盘设备300是在其中存储各种数据的存储设备。盘设备300包括用作在其中储存数据的介质的多个盘3101至310n,并构成预定类型的RAID (如RAID 0、1、3和5)。
RAID控制器100是基于来自主机设备200的请求,控制输入数据到盘设备300和从盘设备300输出数据的装置。RAID控制器100包括主机接口控制器110、盘接口控制器160、主存储器120、存储控制器130、CPU 140和保密处理器150。
如所述,主机接口控制器110、存储控制器130、保密处理器150以及盘接口控制器160经由PCIe总线互相连接。此外,DMA用于经由存储控制器130在主机接口控制器110和主存储器120之间的数据传送,以及用于经由存储控制器130和保密处理器150在主存储器120和盘接口控制器160之间的数据传送。
现在将详细描述RAID控制器100的功能单元。将响应于来自主机设备200的写请求写入盘设备300中的数据称为“写数据”,而将响应于来自主机设备200的读请求从盘设备300读出数据称为“读数据”。
主机接口控制器110是控制数据传送到主机设备200和从主机设备200传送来数据以及控制数据传送到主存储器120和从主存储器120传送来的数据的处理单元。在写操作中,当接收到来自主机设备200的写请求时,主机接口控制器110通过存储控制器130在主存储器120的高速缓存区中存储连同写请求一起发送来的写数据。另一方面,在读操作中,当接收到来自主机设备200的读请求时,主机接口控制器110向存储控制器130传送该读请求。
主存储器120用作在其中存储程序和各种数据的存储装置。主存储器120在其中存储限定用于控制整个RAID控制器100的各种操作的程序的固件、为执行该固件所必需的控制数据及其他信息。此外,主存储器120包括:临时存储从主机设备200传送来的数据和从盘设备300传送来的数据的高速缓存区;以及存储控制信息(诸如之后描述的描述符1和2)的预定区域。
存储控制器130是控制从主存储器120读取数据和将数据写入主存储器120的处理单元。当接收到写请求包时,存储控制器130基于该写请求包将数据写到主存储器120。此外,当接收到读请求包时,存储控制 器130基于该读请求包从主存储器120读出数据,并将包括由此读出的数据的读响应包发送到发送读请求包的处理器。
该读请求包和写请求包是TLP,各具有PCIe规定的格式并包括序号、头部、数据和循环冗余校验(CRC)码。下面描述TLP的头部。
图3示出了TLP的头部的、PCIe规定的格式的示意图。如图3所示,TLP的头部包括用于控制包传送和数据读和写的各种信息。至于与本发明的实施方式具体相关的信息,在第5字节至第8字节中分配用于识别请求类型(如写请求或读请求)的信息,(参见图3中的{字节4至7中的字段取决于请求的类型})。此外,作为地址信息(参见图3中的“地址”),从中读出读数据的主存储器120上的物理地址和写入写数据的主存储器120的物理地址被分配在第9至第16字节中。
PCIe规定了在读请求包中和在写请求包中可以请求的上限数据量,以及在读响应包中可以请求的上限数据量。如果从主存储器120读出的数据超过了读响应请求中可接受的上限量,那么在发送读响应包之前,存储控制器130将该数据分开,以便各分出的数据项变为等于或小于该上限量。以此方式,存储控制器130发送用于各分出数据项的读请求包。
返回参照图2,CPU 140是通过读出并执行主存储器120中存储的固件控制整个RAID控制器100的中央处理单元。通过执行该固件,CPU 140执行用于控制整个RAID控制器100的各种操作。下面描述由CPU 140执行的处理,仅具体描述与本发明的实施方式相关的处理。
当经由主机接口控制器110接收到来自主机设备200的请求(如写请求或读请求)时,CPU 140基于该接收的请求产生描述符1和2,并在主存储器120中存储描述符1和2。描述符1和2是用于控制从主存储器120读取数据和写入数据到主存储器120的控制信息。此外,CPU 140在主存储器120的预定区域中存储描述符1和2,然后激活保密处理器150和盘接口控制器160(之后将描述)。
下面描述由CPU 140产生的描述符1和2,从描述符1开始。图4是示出了描述符1的格式的示意图。如图4所示,描述符1包括加密需要标记、DMA号、物理地址和DMA传送量。
在加密需要标记中设置“1”的固定值。DMA号被分配用于识别DMA通道的号码,该DMA通道用于DMA传送读请求或写请求中请求的数据。物理地址被分配主存储器120上的地址,在该地址存储由主机设备200请求的数据。DMA传送量被指定由主机设备200请求的数据量。
下面描述描述符2。图5示意性地示出了描述符2的格式。如图5所示,描述符2包括DMA号、物理地址、密钥和DMA传送量。DMA号、物理地址和DMA传送量被分配与描述符1中设置的相同的值。密钥被分配用于由之后将描述的保密处理器150执行的数据加密和解密的密钥信息。
返回参照图2,盘接口控制器160是控制传送数据到盘设备300和从盘设备300传送数据以及DMA传送到主存储器120和从主存储器120DMA传送的处理单元。盘接口控制器160包括判优器161和DMA通道1621至162n。当被固件激活时,盘接口控制器160产生用于从主存储器120读出描述符1的读请求包,并将该读请求包发送到保密处理器150。
为了产生用于描述符1的读请求包,盘接口控制器160设置加密需要标记和物理地址(作为读请求包的头部中的地址信息)。图6是示出了用于读出描述符的请求包的地址信息的示意图。在图6中,示出了读请求包中包括的地址信息(参见图3中所示的“地址”)。
具体地说,如图6所示,盘接口控制器160将“0(不需要加密)”设置到地址信息的第1位(位63)作为加密需要标记,以及,将主存储器120上的描述符存储器地址(这里,描述符1的存储器地址)设置到第2位至第62(位62至2)作为物理地址。
因此发送的用于描述符1的读请求包被保密处理器150传送到存储控制器130。当接收该读请求包时,存储控制器130从主存储器120的高速缓存区读出描述符1,并将它发送到盘接口控制器160。
在写操作中,当从存储控制器130接收描述符1时,盘接口控制器160基于描述符1中设置的信息产生用于从主存储器120读出写数据的读请求包,然后将该读请求包发送到保密处理器150。
当描述符1中设置的DMA传送量超过读请求包中可以请求的上限 数据量时,盘接口控制器160将该写数据分开,以便每个分出的数据项变为等于或小于该上限量。盘接口控制器160发送用于各分出的数据项的读请求包。注意,该读请求包使用相同的DMA通道发送。
为了产生用于该数据的读请求包,盘接口控制器160设置加密需要标记、DMA号和物理地址(作为各读请求包的地址信息)。图7是示出了用于读出数据的请求包的地址信息的示意图。在图7中,示出了读请求包中包括的地址信息(参见图3中所示的“地址”)。
具体地说,如图7所示,盘接口控制器160:将“1(需要加密)”设置到地址信息的第1位(位63),作为加密需要标记;将用于识别用来传送读请求包的DMA号设置到第2位至第9位(位62至55),作为DMA号;以及将写入写数据的主存储器120上的第9位地址之后的位设置到第10位至第62位(位54至2),作为物理地址。
尽管下面描述的DMA号是8位的配置,但是DMA号的位数不局限于8位,可以根据DMA通道的数目适当地决定。
对于因此发送的数据读请求包,保密处理器150将地址信息中包括的DMA号转变为描述符2中包括的物理地址,然后将它传送到存储控制器130。
当接收到保密处理器150响应于因此发送的读请求包而加密的数据时,盘接口控制器160将该加密的数据传送到盘设备300。
另一方面,在读操作中,当接收到来自存储控制器130的描述符1时,盘接口控制器160基于描述符1中设置的信息从盘设备300读出数据。此外,盘接口控制器160产生用于将因此读出的数据写入主存储器120的写请求包,并将它发送到保密处理器150。
当从盘设备300读出的数据量超过写请求包中可以请求的上限数据量时,盘接口控制器160将该数据分开,以便各分出的数据项变为等于或小于上限量。然后盘接口控制器160发送用于各分出的数据项的写请求包。注意,该写请求包使用相同的DMA通道发送。
为了产生用于该数据的写请求包,盘接口控制器160设置加密需要标记、DMA号和物理地址(作为各写请求包的地址信息)。具体地说, 如同图7所示的数据读请求包的地址信息一样,盘接口控制器160将“1(需要加密)”设置到位63,作为加密需要标记;将用于识别用来传送写请求包的DMA通道的DMA号设置到位62至55,作为DMA号;以及将写入写数据的主存储器120上的第9位地址之后的位设置到位54至2,作为物理地址。
DMA通道1621至162n是在盘接口控制器160和主存储器120之间提供的经由保密处理器150和存储控制器130传送通道。DMA通道用于盘接口控制器160和存储控制器130之间的数据DMA传送。每个DMA通道通过专用的DMA号识别。
判优器161是当在盘接口控制器160和存储控制器130之间执行DMA传送时,选择用来传送数据的DMA通道1621至162n的处理单元。当从盘接口控制器160至存储控制器130传送数据时,判优器161选择DMA通道1621至162n之一,以便经由该选出的DMA通道DMA传送数据。
此外,当接收到在主存储器120中存储的并经由DMA通道1621至162nDMA传送的数据时,判优器161将该数据发送到盘设备300。判优器161经由DMA通道在盘接口控制器160和主存储器120之间并行DMA传送多个数据项。
保密处理器150是使用加密芯片依据AES执行密码处理的处理器。具体地说,当被固件激活时,保密处理器150产生用于从主存储器120读出描述符2的读请求包,并将该读请求包发送到存储控制器130。
为了产生用于描述符2的读请求包,保密处理器150设置加密需要标记和物理地址作为读请求包的头部中的地址信息。注意以针对描述符1的同样方式设置头部中的地址信息,因此这里省略该描述(参见图6)。
当响应于因此发送的针对描述符2的读请求包,接收到来自存储控制器130的描述符2时,保密处理器150在其内部存储器中存储DMA号、物理地址、密钥以及DMA传送量,它们都包括在描述符2中。
此后,在写操作中,当从盘接口控制器160接收到读请求包时,保密处理器150检查在读请求包的头部中的地址信息中设置的加密需要标 记。如果该标记被设为“1”,保密处理器150将地址信息中设置的DMA号与其内部存储器中存储的DMA号比较。
如果DMA号匹配,那么保密处理器150将该头部中设置的DMA号转变为在其内部存储器中存储的物理地址,然后将该读请求包发送到存储控制器130。
以此方式,对于用于描述符1和2的读请求包,因为加密需要标记是“0”,所以地址信息不被转变。对于用于写数据的读请求包和用于读数据的写请求包,因为加密需要标记是“1”,所以地址信息不被转变。
为了发送加密需要标记为“1”的读请求包,在发送它之前,保密处理器150在其内部存储器中存储该读请求包的头部中设置的标记信息。当响应于因此发送的读请求包接收读响应包时,保密处理器150将该读响应包的头部中设置的标记信息与其内部存储器中存储的标记信息相比较。
图8示出了读请求包的头部的、PCIe规定的格式的示意图。图9示出了读响应包的头部的、PCIe规定的格式的示意图。如图8和9所示,在读请求包的头部中的第49位至第56位中,以及在读响应包的头部中的第81位至第88位中,分配标记信息。根据PCIe标准,在读请求包的标记信息中,以及在响应于读请求包产生的读响应包的标记信息中设置相同的值。
作为比较标记信息的设置的结果,如果该值匹配,那么保密处理器150使用其内部存储器中存储的密钥加密接收的读响应包中包括的数据。然后保密处理器150向盘接口控制器160发送该加密数据。
保密处理器150以AES规定的数据量为单位(以16-字节单位)对读响应包中包括的数据进行加密。如果该数据少于16字节,或如果由于以16-字节位单位加密该数据的结果,剩余有少于16字节的数据,那么保密处理器150在其内部存储器中保持这些剩余的数据作为零散数据。
如所述,用于从存储控制器130发送的一个数据组的读响应包可以被分开发送,这取决于根据PCIe规格的可接受为响应的上限数据量。
当接收到随后的读响应包时,保密处理器150将该读响应包中设置 的标记信息与其内部存储器中存储的标记相比较。如果该值匹配,那么保密处理器150将该接收到的读响应包中包括的数据的头部与其内部存储器中存储的零散数据的末尾组合,以便加密该所得的数据,并将该加密数据发送到盘接口控制器160。
由此,即使当分开地接收读响应包时,保密处理器150也可以基于该标记信息,组合和加密该读响应包中包括的数据。
如果作为分开地接收所有读响应包中加密的数据的结果,少于16字节的数据剩下,那么保密处理器150在其内部存储器中保持剩余的数据作为零散数据。
如所述,从盘接口控制器160发送的一个数据组的读请求包可以被分开发送,这取决于可以根据PCIe规格请求的上限数据量。
当接收到后续读请求时,保密处理器150检查该读请求包的头部中的地址信息中设置的加密需要标记。如果该标记被设为“1”,那么保密处理器150将该地址信息中设置的DMA号与其内部存储器中存储的DMA号比较。
如果DMA号匹配,那么保密处理器150将头部中设置的DMA号转变为在其内部存储器中存储的物理地址,然后将该读请求包发送到存储控制器130。
此后,当接收到来自存储控制器130的读响应包时,保密处理器150使用其内部存储器中存储的密钥来加密接收的读响应包中包括的数据,并将该加密数据发送到盘接口控制器160。
如果当加密该数据时,保密处理器150具有在其内部存储器中存储的零散数据,那么它将接收的读响应包中包括的数据的头部与零散数据的末尾组合,以便加密该所得的数据。
在该处理过程中,每当保密处理器150加密该数据时,它从其内部存储器中存储的DMA量中减去加密数据的量。当在内部存储器中存储的DMA量变为0时,保密处理器150确定所有接收的读请求包已经被加密,并向存储控制器130发送给用于描述符2的下一个读请求。当接收作为响应的描述符2时,保密处理器150基于描述符2以所述类似的方式执 行写操作。
由此,即使分开地接收读请求包,保密处理器150也可以基于DMA号的值组合和加密该读请求包中请求的数据项。
另一方面,在读操作中,当接收到来自盘接口控制器160的写请求包时,保密处理器150检查写请求包的头部中的地址信息中设置的加密需要标记。如果该标记被设为“1”,那么保密处理器150将地址信息中设置的DMA号与其内部存储器中存储的DMA号进行比较。
如果DMA号匹配,那么保密处理器150将头部中设置的DMA号转变为在其内部存储器中存储的物理地址。
保密处理器150以AES规定的数据量为单位解密写请求包中包括的数据(以16字节为单位)。此外,保密处理器150在包括转变地址的写请求包中设置该解密数据,并把它发送到存储控制器130。
如果接收的写请求包中包括的数据少于16字节,或如果由于以16字节为单位解密该数据,结果得到少于16字节的数据剩余,那么保密处理器150在其内部存储器中保持剩余的数据作为零散数据。
如所述,从存储控制器130发送的一个数据组的写响应包可以被分开发送,这取决于可以依据PCIe标准请求的上限数据量。
当接收后续读请求时,保密处理器150检查在读请求包的头部中的地址信息中设置的加密需要标记。如果该标记被设为“1”,那么保密处理器150将地址信息中设置的DMA号与其内部存储器中存储的DMA号比较,以和之前接收的读请求包相同的方法。如果该DMA号匹配,那么保密处理器150将头部中设置的DMA号转变为在其内部存储器中存储的物理地址。
保密处理器150将接收的写请求包中包括的数据的头部与其内部存储器中存储的零散数据的末尾组合。然后,保密处理器150解密该所得的组合数据,在包括转变地址的写请求包中设置该解密数据,并将它发送到存储控制器130。
在该处理过程中,每当保密处理器150加密该数据时,它从其内部存储器中存储的DMA量中减去加密数据的量。由此,当在内部存储器中 存储的DMA量变为0时,保密处理器150确定所有接收的写请求包中的数据已经被加密,并将用于描述符2的下一个写请求发送到存储控制器130。此外,当接收到作为响应的描述符2时,保密处理器150基于描述符2以所述类似的方式执行读操作。
由此,即使当分开地接收写请求包时,保密处理器150也可以基于DMA号的值组合和加密写请求包中请求的数据项。
下面描述由根据本实施方式的RAID控制器100执行的处理过程。首先,参照图10至13描述写操作中由RAID控制器100执行的处理过程,然后参照图14至16描述在读操作中通过RAID控制器执行的处理过程。该读请求包被简单地称为“读请求”,将该写请求包简单地称为“写请求”。
下面描述写操作中由RAID控制器100执行的处理过程。图10至13示出了在写操作中由RAID控制器100执行的处理过程的顺序图。如图10至13所示,在写操作中,当接收到来自主机设备200的写请求时,主机接口控制器110经由存储控制器130将数据写到主存储器120的高速缓存区(步骤S101,S102)。
在完成写该写数据时,存储控制器130向CPU 140发送完成通知(步骤S103)。当接收到该完成通知时,CPU 140通过执行固件,执行RAID处理(步骤S104),在主存储器120中设置描述符1和2(步骤S105,S106),然后激活保密处理器150和盘接口控制器160(步骤S107,S108)。
当被固件激活时,保密处理器150向存储控制器130发送用于描述符2的读请求(步骤S109)。当接收该读请求时,存储控制器130从主存储器120中读出描述符2,并向保密处理器150进行响应(步骤S110)。
当接收到描述符2时,保密处理器150在其内部存储器中存储描述符2中包括的DMA号、物理地址、DMA传送量等(步骤S111)。
另一方面,当被固件激活时,盘接口控制器160向保密处理器150发送用于描述符1的读请求(步骤S112)。
当接收到用于描述符1的读请求时,保密处理器150参照在读请求的头部中设置的加密需要标记(步骤S113)。因为该加密需要标记是“0”, 所以保密处理器150向存储控制器130发送读请求,而不转变地址(步骤S114)。
当接收到该读请求时,存储控制器130将作为响应的描述符1发送到盘接口控制器160(步骤S115)。盘接口控制器160接收描述符1并产生用于写数据的读请求。在该实施方式中,假定写数据了超过在读请求中可以请求的上限数据量,那么盘接口控制器160将写数据分为数据项1和数据项2,并产生用于各个数据项的读要求。
盘接口控制器160首先发送数据项1的读请求到保密处理器150(步骤S116)。
当接收用于数据项1的读请求时,保密处理器150参照在该读请求的头部中设置的加密需要标记(步骤S117)。因为在该实施方式中加密需要标记是“1”,所以保密处理器150确定地址信息中的DMA号是否匹配其内部存储器中存储的DMA号(步骤S118)。
因为DMA号匹配,所以保密处理器150将地址信息中的DMA号转变为其内部存储器中存储的物理地址(步骤S119)。然后保密处理器150向存储控制器130发送包括该转变地址的读请求(步骤S120),并在其内部存储器中存储该标记信息(步骤S121)。
存储控制器130从主存储器120中读出数据项1,并把包括因此读出的数据项1的读响应发送给保密处理器150(步骤S122)。由此,保密处理器150确定接收的读响应的头部中设置的标记信息是否匹配其内部存储器中存储的标记信息(步骤S123)。
然后保密处理器150组合包括匹配标记信息的读响应中包括的数据,以便加密该数据项1。此外,保密处理器150向盘接口控制器160发送该加密的数据项1(步骤S124)。
盘接口控制器160接收数据项1,并将它传送到盘设备300(步骤S125)。
如果作为对数据项1加密的结果,剩余有少于16字节的数据,那么保密处理器150在其内部存储器中保持剩余的零散数据(步骤S126),并从其内部存储器中存储的DMA传送量中减去加密数据的量(步骤S127)。
然后保密处理器150确定数据传送量是否变为0(步骤S128)。如果该数据传送量没有变为0,那么保密处理器150等待将被传送的后续读请求(步骤S129)。
在步骤S116发送了用于数据项1的读请求之后,盘接口控制器160向保密处理器150发送用于数据项2的读请求(步骤S130)。
后续处理,即,从在保密处理器150接收读请求至从存储控制器130接收包括数据项2的读响应的处理(步骤S131至S136)与响应于包括数据1的读请求执行的上述处理中描述的那些处理相同(步骤S117至S122),因此这里省略它们的描述。
当接收该读响应时,保密处理器150确定该接收的读响应的头部中设置的标记信息是否匹配其内部存储器中存储的标记信息(步骤S137)。
然后保密处理器150将其内部存储器中存储的数据项1的零散数据与包括匹配标记信息的读响应中包括的数据进行组合(步骤S138),以便加密数据项1的零散数据和数据项2。此外,保密处理器150将该加密数据(数据项1的零散数据和数据项2)发送到盘接口控制器160(步骤S139)。
盘接口控制器160接收数据项1的零散数据和数据项2,并将它们传送到盘设备300(步骤S140)。
保密处理器150从其内部存储器中存储的DMA传送量中减去加密数据的量(步骤S141)。在该实施方式中,假定作为加密数据项1的零散数据和数据项2的结果,没有零散数据剩下。
然后保密处理器150确定数据传送量是否变为0(步骤S142)。如果该数据传送量变为0,那么保密处理器150发送用于描述符2的下一个读请求(步骤S143)。此外,当接收到作为来自存储控制器130的响应的描述符2时(步骤S144),RAID控制器100执行与步骤S111之后的处理相同的处理。
下面描述在读操作中由RAID控制器100执行的处理过程,处理在写操作中传送到盘设备300的数据(数据项1和2)的读取。图14至16是示出了在读操作中由RAID控制器100执行的后续处理过程的顺序图。
如图14至16所示,在读操作中,当主机接口控制器110接收来自主机设备200的读请求时,它向存储控制器130传送该读请求(步骤S201)。
当接收到该读请求时,存储控制器130通知CPU 140收到读请求(步骤S202)。当接收到该收到通知时,CPU 140通过执行固件,在主存储器120中设置描述符1和2(步骤S203,S204),然后激活保密处理器150和盘接口控制器160(步骤S205,S206)。
当被固件激活时,保密处理器150向存储控制器130发送用于描述符2的读请求(步骤S207)。当接收到该读请求时,存储控制器130从主存储器120读出描述符2,并提供它作为对保密处理器150的响应(步骤S208)。
当接收到描述符2时,保密处理器150在其内部存储器中存储描述符2中包括的DMA号、物理地址、DMA传送量等等(步骤S209)。
另一方面,当被固件激活时,盘接口控制器160向保密处理器150发送用于描述符1的读请求(步骤S210)。
当接收到用于描述符1的读请求时,保密处理器150参照在读请求的头部中设置的加密需要标记(步骤S211)。因为该加密需要标记是“0”,因而保密处理器150向存储控制器130发送该读请求,而不转变地址(步骤S212)。
当接收该读请求时,存储控制器130将作为响应的描述符1发送到盘接口控制器160(步骤S213)。盘接口控制器160接收描述符1,并从盘设备300读出数据项1和2(步骤S214)。
盘接口控制器160产生用于因此读出的数据项1和2的写请求。在该实施方式中,假定写数据的总量超过了在读请求中可以请求的上限数据量,因此盘接口控制器160将产生用于各个数据项1和2的读要求。
盘接口控制器160首先向保密处理器150发送用于数据项1的写请求(步骤S215)。
当接收用于数据项1的写请求时,保密处理器150参照在写请求的头部中设置的加密需要标记(步骤S216)。因为在该实施方式中该加密需要标记是“1”,所以保密处理器150确定地址信息中的DMA号是否匹配 其内部存储器中存储的DMA号(步骤S217)。
因为DMA号匹配,所以保密处理器150将地址信息中的DMA号转变为其内部存储器中存储的物理地址(步骤S218)。此外,保密处理器150解密数据项1(步骤S219),在包括该转变后的地址的写请求中设置解密的数据项1,并向存储控制器130发送该写请求(步骤S220)。由此,存储控制器130接收该写请求,并将该写数据项目1写入主存储器120(步骤S221)。
如果作为解密数据项1的结果,剩余有少于16字节的零散数据,那么保密处理器150在其内部存储器中保持剩余的零散数据(步骤S222)。此外,保密处理器150从其内部存储器中存储的DMA传送量中减去解密数据的量(步骤S223)。
然后保密处理器150确定该数据传送量是否变为0(步骤S224)。如果该数据传送量没有变为0,那么保密处理器150等待将被传送的后续写请求(步骤S225)。
在步骤S215中发送了用于数据项1的写请求之后,盘接口控制器160向保密处理器150发送用于数据项2的写请求(步骤S226)。
当接收到用于数据项2的写请求时,保密处理器150参照在写请求的头部中设置的加密需要标记(步骤S227)。因为在该实施方式中该加密需要标记是“1”,保密处理器150确定地址信息中的DMA号是否匹配其内部存储器中存储的DMA号(步骤S228)。
因为DMA号匹配,所以保密处理器150将地址信息中的DMA号转变为其内部存储器中存储的物理地址(步骤S229)。此外,保密处理器150将其内部存储器中存储的数据项1的零散数据与数据项2组合(步骤S230),解密该组合的数据(步骤S231),在包括该转变地址的写请求中设置解密数据,并向存储控制器130发送该写请求(步骤S232)。
当接收到该写请求时,存储控制器130将数据项1的零散数据和数据项2写入主存储器120(步骤S233),并通知CPU 140完成了该数据的写入(步骤S234)。
当通知写入完成时,CPU 140向与主机接口控制器110协作的主机 设备200提供响应(步骤S235)。
另一方面,在发送了该写请求之后,保密处理器150从其内部存储器中存储的DMA传送量中减去该解密数据的量(步骤S236)。在该实施方式中,假定作为对数据项1的零散数据和数据项2进行解密的结果,没有零散数据剩余。
然后保密处理器150确定数据传送量是否变为0(步骤S237)。如果该数据传送量没有变为0,那么保密处理器150向存储控制器130发送用于描述符2的下一个读请求(步骤S238)。此外,当从存储控制器130接收到描述符2时(步骤S239),RAID控制器100执行与步骤S209之后的处理相同的处理。
根据本实施方式,保密处理器150获得包括DMA号的描述符2,该DMA号用于识别用来传送数据的DMA通道。基于获得的描述符2中包括的DMA号,保密处理器150在其中存储以PCIe规定的数据量为单位使用相同DMA通道传送的数据。然后保密处理器150以AES规定的数据量为单位加密存储的数据,并将该加密数据传送到盘接口控制器160,由此通过识别用来传送数据的DMA通道,能够加密用于各通道的数据,即使当作为数据传送的单位的数据量不同于作为保密处理的单位的数据量时,也是如此。
根据本实施方式,如果作为加密该存储数据的结果,剩余有少于AES规定的数据量的数据,那么保密处理器1 50将所剩余的数据与以PCIe规定的数据量为单位使用相同DMA通道随后传送的数据相组合,以便在其中存储它。然后保密处理器150以AES规定的数据量为单位加密存储的数据。因此,即使当用于数据传送的单位的数据量超过了用于保密处理的单位的数据量时,通过将零散数据与后续数据结合,也能够进行数据的加密。
根据本实施方式,保密处理器150接收来自盘接口控制器160的数据读请求,该数据读取请求请求存储控制器130读出数据并包括用于识别用来传送数据的DMA通道的DMA号。在此情况下,保密处理器150确定该数据读请求中包括的DMA号是否匹配获得的DMA号。如果DMA 号匹配,那么保密处理器150向存储控制器130发送该数据读请求。然后保密处理器150加密存储控制器130响应于因此发送的数据读请求而传送的数据。由此,通过在数据传送之前,在从传送目的地发送的数据传送请求中设置用于识别用来传送数据的DMA通道的信息,可以识别用来传送数据的DMA通道,能够加密用于各通道的数据。
根据本实施方式,从盘接口控制器160接收的数据读请求包括表示是否对数据传送请求中的数据进行加密的加密需要标记。基于该加密需要标记,保密处理器150决定是否加密存储控制器130响应于数据读请求而传送的数据。如果保密处理器150决定执行加密,那么它加密该数据。利用该配置,从保密处理中排除了不需要加密的数据,例如,用于控制数据传送的控制数据。
根据本实施方式,保密处理器150获得包括DMA号的描述符2,该DMA号用于识别用来传送加密数据的DMA通道。基于获得的描述符2中包括的DMA号,保密处理器150在其中存储以PCIe规定的数据量为单位使用相同DMA通道传送的加密数据。然后保密处理器150以AES规定的数据量为单位解密所存储的加密数据,并将以AES规定的数据量为单位解密出的数据传送到存储控制器130。通过识别用来传送数据的DMA通道,即使当作为数据传送的单位的数据量不同于用于保密处理的单位的数据量时,也能够解密用于各通道的数据。
根据本实施方式,当作为解密所存储的加密数据的结果,剩余有少于AES规定的数据量的数据时,保密处理器150将剩下的数据与以PCIe规定的数据量为单位使用相同DMA通道随后传送的加密数据组合,以便在其中存储它。然后保密处理器150以AES规定的数据量为单位解密存储的加密数据。因此通过将零散数据与后续数据组合,即使当作为数据传送的单位的数据量超过了密码处理的单位的数据量时,也能够进行数据的解密。
本实施方式描述了本发明被应用于RAID控制器的配置。本发明不局限于这种配置,可以被类似地应用于,例如,对经由PCIe总线连接的装置之间传送的数据执行加密和解密的配置并构成各种类型的数据传送 控制设备。
本实施方式描述了AES被用作加密格式的配置。本发明不局限于该配置,可以被类似地应用于作为保密处理的单位的数据量不同于作为经由总线的数据传送的单位的数据量的配置,即使当其他类型的加密格式被使用时,也是如此。
此外,对于本实施方式中描述为自动执行的处理,所有或部分处理可以被人工地执行。另外地,对于描述为人工执行的处理,所有或部分处理可以通过已知的方法自动地执行。
此外,可以以任意方法改变说明书和附图中示出的处理过程、控制过程、特定名称、包括各种数据和参数的信息,除非另有规定。
此外,附图中所示的设备的构成元件表示理想功能,它们的物理配置未必与图中所示的那些配置相同。因此,分布和集成这些设备的配置不局限于图中具体所示的那些,可以基于考虑设备的负荷和用途的给定单元,关注功能和物理性质,修改所有或部分设备。
根据本发明的实施方式,即使当作为数据传送的单位的数据量不同于作为密码处理的单位的数据量时,也可得到识别用来传送数据的通道从而能够加密各通道的数据的这种优点。
根据本发明的实施方式,即使当作为数据传送的单位的数据量超过了作为保密处理的单位的数据量时,也可得到零散数据与后续数据相结合从而能够加密数据的这种优点。
根据本发明的实施方式,可得到以下优点。通过在数据传送之前预先在从传送目的地发送的数据传送请求中设置用于识别用来传送数据的DMA通道的信息,可以识别用来传送数据的DMA通道,从而能够加密用于各通道的数据。
根据本发明的实施方式,得到在保密处理中排除了不需要加密的数据(例如用于控制数据传送的控制数据)的这种优点。
根据本发明的实施方式,即使当作为数据传送的单位的数据量不同于作为保密处理的单位的数据量时,也可得到识别用来传送数据的通道从而能够解密用于各通道的数据的这种优点。
根据本发明的实施方式,即使当作为数据传送的单位的数据量超过了作为保密处理的单位的数据量时,也可得到零散数据与后续数据相结合从而能够解密该数据的这种优点。
尽管为了完整和清楚的公开,针对特定实施方式描述了本发明,但是附加的权利要求并不因此受到限制,权利要求应被解释为包含所属技术领域的技术人员可能想到的属于在此阐述的基本教导的所有改进和选择性结构。
Claims (5)
1.一种对从第一设备传送到第二设备的数据进行加密的数据加密设备,该数据加密设备包括:
传送信息获取单元,获得用于识别用来传送数据的通道的传送通道识别信息;
数据加密单元,基于由所述传送信息获取单元获得的传送通道识别信息,在其中存储经由相同通道以第一数据量为单位传送的数据,并以第二数据量为单位加密所存储的数据;以及
数据传送单元,向所述第二设备传送该数据加密单元以所述第二数据量为单位加密的数据,
如果作为加密所存储的数据的结果,剩余有大小小于第二数据量的数据,那么该数据加密单元将剩余的数据与经由相同通道以第一数据量为单位随后传送的数据相组合,在其中存储作为将所述剩余的数据与所述随后传送的数据相组合的结果而获得的数据,并以第二数据量为单位加密所存储的数据。
2.根据权利要求1所述的数据加密设备,所述数据加密设备还包括:
传送请求接收单元,接收来自所述第二设备的数据传送请求,所述数据传送请求用于请求所述第一设备传送数据,并包括用于识别用来传送数据的通道的请求通道识别信息,
其中当所述传送请求接收单元接收到所述数据传送请求时,所述数据加密单元确定所述请求通道识别信息是否匹配所述传送信息获取单元获得的传送通道识别信息,如果匹配,那么向所述第一设备发送所述数据传送请求,并加密所述第一设备响应于因此发送的所述数据传送请求而传送来的数据。
3.根据权利要求2所述的数据加密设备,其中
所述传送请求接收单元接收的数据传送请求包括表示是否加密所述数据传送请求中请求的数据的加密需要信息,以及
基于所述加密需要信息,所述数据加密单元确定是否加密所述第一设备响应于所述数据传送请求而传送来的数据,如果确定出要执行加密,那么加密所述数据。
4.一种对从第二设备传送到第一设备的加密数据进行解密的数据解密设备,所述数据解密设备包括:
传送信息获取单元,获得用于识别用来传送所述加密数据的通道的传送通道识别信息;
数据解密单元,基于所述传送信息获取单元获得的所述传送通道识别信息,在其中存储经由相同通道以第一数据量为单位传送的加密数据,以及以第二数据量为单位解密所存储的加密数据;以及
数据传送单元,向所述第一设备传送所述数据解密单元以所述第二数据量为单位解密的数据,
其中如果作为对所存储的加密数据进行解密的结果,剩余有大小小于所述第二数据量的数据,那么所述数据解密单元将所剩余的数据与经由相同通道以所述第一数据量为单位随后传送的加密数据相组合,在其中存储所组合的数据,并以所述第二数据量为单位解密所存储的加密数据。
5.一种对经由通道从第一设备传送到第二设备的数据进行加密的数据加密方法,所述数据加密方法包括:
获取用于识别用来传送数据的通道的传送通道识别信息;
基于所述传送通道识别信息,存储经由相同通道以第一数据量为单位传送的数据,并以第二数据量为单位加密所存储的数据;以及
将以所述第二数据量为单位的加密数据传送到所述第二设备,
如果作为对所存储的数据进行加密的结果,剩余有大小小于第二数据量的数据,那么将所剩余的数据与经由相同通道以所述第一数据量为单位随后传送的数据相组合;存储作为将所剩余的数据与所述随后传送的数据相组合的结果而获得的数据,并以所述第二数据量为单位加密所存储的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-035432 | 2007-02-15 | ||
JP2007035432A JP4347350B2 (ja) | 2007-02-15 | 2007-02-15 | データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法 |
JP2007035432 | 2007-02-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101246456A CN101246456A (zh) | 2008-08-20 |
CN101246456B true CN101246456B (zh) | 2012-01-11 |
Family
ID=39717277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810001575XA Expired - Fee Related CN101246456B (zh) | 2007-02-15 | 2008-01-14 | 数据加密设备、数据解密设备及数据加密方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8321659B2 (zh) |
JP (1) | JP4347350B2 (zh) |
KR (1) | KR100953252B1 (zh) |
CN (1) | CN101246456B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193763A1 (en) * | 2003-03-28 | 2004-09-30 | Fujitsu Limited | Inter-bus communication interface device and data security device |
GB0624582D0 (en) * | 2006-12-08 | 2007-01-17 | Visible Computing Ltd | USB autorun devices |
US10181055B2 (en) * | 2007-09-27 | 2019-01-15 | Clevx, Llc | Data security system with encryption |
US8782433B2 (en) * | 2008-09-10 | 2014-07-15 | Inside Secure | Data security |
DE102009019051B4 (de) * | 2009-04-28 | 2011-07-07 | Giesecke & Devrient GmbH, 81677 | Speichermedium mit Verschlüsselungseinrichtung |
US20110154015A1 (en) * | 2009-12-21 | 2011-06-23 | Tareq Mahmud Rahman | Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File |
US9141831B2 (en) | 2010-07-08 | 2015-09-22 | Texas Instruments Incorporated | Scheduler, security context cache, packet processor, and authentication, encryption modules |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US9361305B2 (en) * | 2011-08-09 | 2016-06-07 | Kyocera Document Solutions Inc. | Image forming apparatus having a file system |
US9152825B2 (en) | 2012-02-29 | 2015-10-06 | Apple Inc. | Using storage controller bus interfaces to secure data transfer between storage devices and hosts |
DE102014207417A1 (de) * | 2014-04-17 | 2015-10-22 | Robert Bosch Gmbh | Schnittstelleneinheit |
KR102263880B1 (ko) | 2014-06-19 | 2021-06-11 | 삼성전자주식회사 | 호스트 컨트롤러 및 시스템-온-칩 |
US10503405B2 (en) * | 2015-02-10 | 2019-12-10 | Red Hat Israel, Ltd. | Zero copy memory reclaim using copy-on-write |
EP3314366A4 (en) * | 2015-06-24 | 2019-02-20 | INTEL Corporation | Systems and methods for isolating input / output computer resources |
US10248791B2 (en) | 2015-07-20 | 2019-04-02 | Intel Corporation | Technologies for secure hardware and software attestation for trusted I/O |
US10303900B2 (en) * | 2015-07-20 | 2019-05-28 | Intel Corporation | Technologies for secure programming of a cryptographic engine for trusted I/O |
US10181946B2 (en) * | 2015-07-20 | 2019-01-15 | Intel Corporation | Cryptographic protection of I/O data for DMA capable I/O controllers |
US10552619B2 (en) * | 2015-07-20 | 2020-02-04 | Intel Corporation | Technologies for secure trusted I/O access control |
DE112015007040B4 (de) * | 2015-11-24 | 2019-11-21 | Mitsubishi Electric Corporation | Integrierte Vorrichtung, Kommunikationsverfahren und Kommunikationsprogramm |
US10157153B2 (en) * | 2016-02-03 | 2018-12-18 | Qualcomm Incorporated | Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems |
US11042496B1 (en) * | 2016-08-17 | 2021-06-22 | Amazon Technologies, Inc. | Peer-to-peer PCI topology |
US10372656B2 (en) * | 2016-11-21 | 2019-08-06 | Intel Corporation | System, apparatus and method for providing trusted input/output communications |
US11386017B2 (en) * | 2018-06-20 | 2022-07-12 | Intel Corporation | Technologies for secure authentication and programming of accelerator devices |
US20200151362A1 (en) * | 2019-08-21 | 2020-05-14 | Intel Corporation | Integrity and data encryption (ide) over computer buses |
JP2021039672A (ja) | 2019-09-05 | 2021-03-11 | キオクシア株式会社 | メモリシステム、パケット保護回路およびcrc計算方法 |
US11487594B1 (en) | 2019-09-24 | 2022-11-01 | Meta Platforms Technologies, Llc | Artificial reality system with inter-processor communication (IPC) |
US11474970B2 (en) | 2019-09-24 | 2022-10-18 | Meta Platforms Technologies, Llc | Artificial reality system with inter-processor communication (IPC) |
US11601532B2 (en) | 2019-11-15 | 2023-03-07 | Meta Platforms Technologies, Llc | Wireless communication with code separation |
US11520707B2 (en) | 2019-11-15 | 2022-12-06 | Meta Platforms Technologies, Llc | System on a chip (SoC) communications to prevent direct memory access (DMA) attacks |
US11190892B2 (en) | 2019-11-20 | 2021-11-30 | Facebook Technologies, Llc | Audio sample phase alignment in an artificial reality system |
CN114996725B (zh) * | 2022-05-06 | 2023-07-28 | 北京中科昊芯科技有限公司 | 一种保护开发程序的方法以及处理器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2480908Y (zh) * | 2001-02-26 | 2002-03-06 | 张巨洪 | 计算机数据加密装置 |
CN1856956A (zh) * | 2003-09-27 | 2006-11-01 | 皇家飞利浦电子股份有限公司 | 数据加密方法和设备 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03110572A (ja) | 1989-09-25 | 1991-05-10 | Fuji Photo Film Co Ltd | 駆動力伝達構造 |
JP3110572B2 (ja) | 1992-10-07 | 2000-11-20 | 大日本印刷株式会社 | 動物モデル組立キット |
JP3627765B2 (ja) | 1995-06-15 | 2005-03-09 | 日本電信電話株式会社 | スクランブルにより情報秘匿を行なう通信システムにおける送信装置 |
JP2000057005A (ja) | 1998-06-02 | 2000-02-25 | Hitachi Ltd | 半導体処理装置 |
FI107487B (fi) * | 1999-03-08 | 2001-08-15 | Nokia Mobile Phones Ltd | Datalähetyksen salausmenetelmä radiojärjestelmässä |
EP1364509B1 (en) * | 2000-12-25 | 2007-04-18 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for security processing of communication packets |
EP1257119B1 (en) * | 2001-04-12 | 2006-05-17 | STMicroelectronics Limited | A system for receiving transport streams |
US6937727B2 (en) * | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
US7162643B1 (en) * | 2001-06-15 | 2007-01-09 | Informatica Corporation | Method and system for providing transfer of analytic application data over a network |
JP2003216037A (ja) * | 2001-11-16 | 2003-07-30 | Yazaki Corp | 暗号キー、暗号化装置、暗号化復号化装置、暗号キー管理装置及び復号化装置 |
JP4698982B2 (ja) | 2004-04-06 | 2011-06-08 | 株式会社日立製作所 | 暗号処理を行うストレージシステム |
JP2007533012A (ja) | 2004-04-12 | 2007-11-15 | アリゾナ ボード オブ リージェンツ | データ格納のための情報処理と輸送アーキテクチャ |
JP2006033350A (ja) | 2004-07-15 | 2006-02-02 | Nippon Telegr & Teleph Corp <Ntt> | 代理セキュアルータ装置及びプログラム |
JP4337675B2 (ja) * | 2004-07-23 | 2009-09-30 | ソニー株式会社 | 暗号処理装置および暗号処理方法 |
JP2006260491A (ja) | 2005-03-18 | 2006-09-28 | Nec Corp | ストレージアレイ装置、暗号化記録システム、暗号化記録読出し方法及びプログラム |
CN101288065B (zh) * | 2005-03-28 | 2010-09-08 | 德塔勒哥若公司 | 关系数据库管理***的非侵入式加密 |
JP2006330126A (ja) | 2005-05-24 | 2006-12-07 | Matsushita Electric Ind Co Ltd | 暗号化処理方法、および復号化処理方法 |
-
2007
- 2007-02-15 JP JP2007035432A patent/JP4347350B2/ja not_active Expired - Fee Related
- 2007-12-28 US US12/003,672 patent/US8321659B2/en not_active Expired - Fee Related
-
2008
- 2008-01-14 CN CN200810001575XA patent/CN101246456B/zh not_active Expired - Fee Related
- 2008-01-17 KR KR1020080005439A patent/KR100953252B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2480908Y (zh) * | 2001-02-26 | 2002-03-06 | 张巨洪 | 计算机数据加密装置 |
CN1856956A (zh) * | 2003-09-27 | 2006-11-01 | 皇家飞利浦电子股份有限公司 | 数据加密方法和设备 |
Non-Patent Citations (3)
Title |
---|
JP特开2000-57005A 2000.02.25 |
JP特开2006-330126A 2006.12.07 |
JP特开2006-33350A 2006.02.02 |
Also Published As
Publication number | Publication date |
---|---|
JP2008197578A (ja) | 2008-08-28 |
CN101246456A (zh) | 2008-08-20 |
KR100953252B1 (ko) | 2010-04-16 |
KR20080076718A (ko) | 2008-08-20 |
JP4347350B2 (ja) | 2009-10-21 |
US8321659B2 (en) | 2012-11-27 |
US20080209203A1 (en) | 2008-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246456B (zh) | 数据加密设备、数据解密设备及数据加密方法 | |
CN107438850B (zh) | 使用签名的地址验证 | |
CN108604214B (zh) | 用于高速***组件互连(PCIe)***的内联密码引擎(ICE) | |
CN100514471C (zh) | 用器件访问移动介质上的加密内容的方法和*** | |
CN101246415B (zh) | 数据加密装置和方法、数据解密装置 | |
KR100400386B1 (ko) | 이종버스를 연결하는 고기밀 호스트 어댑터 | |
US20060047961A1 (en) | Wireless tag system, wireless tag access control device, wireless tag access control method, wireless tag access control program and wireless tag | |
CN101536007A (zh) | 用于对外部非易失性存储器中所存储信息进行加密的方法及*** | |
WO2000072500A2 (en) | Information encryption system and method | |
CN1592877A (zh) | 用于对大容量存储设备上数据加密/解密的方法和装置 | |
CN106169041A (zh) | 一种基于usbkey鉴权的安全加密移动硬盘及其数据传输方法 | |
JP4804042B2 (ja) | データ送受信システム、非接触icチップ、非接触通信装置、携帯端末、情報処理方法、並びにプログラム | |
CN1956373B (zh) | 信息处理设备和方法、设置设备和方法 | |
CN104364760A (zh) | 采用多个存储器件的并行计算 | |
US8635463B2 (en) | Information storage apparatus, information storage method, and electronic device | |
CN101124545A (zh) | 带有流中数据加密/解密和纠错的存储器*** | |
CN101883357A (zh) | 一种终端与智能卡之间的相互认证方法、装置及*** | |
US9979541B2 (en) | Content management system, host device and content key access method | |
EP4020433A1 (en) | Method, chip, and system for managing a physically unclonable function chip public key | |
US20170126669A1 (en) | Hard drive management system and method thereof with network authentication function | |
JPH1065663A (ja) | Icカードシステム及びicカード | |
JP2000232442A (ja) | 情報処理方法及びシステム | |
CN111159731B (zh) | 一种密码设备和数据处理方法 | |
JP7435263B2 (ja) | 通信システム、通信方法、及びプログラム | |
US9086999B2 (en) | Data encryption management |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120111 Termination date: 20190114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |