JP2008197578A - データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置 - Google Patents

データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置 Download PDF

Info

Publication number
JP2008197578A
JP2008197578A JP2007035432A JP2007035432A JP2008197578A JP 2008197578 A JP2008197578 A JP 2008197578A JP 2007035432 A JP2007035432 A JP 2007035432A JP 2007035432 A JP2007035432 A JP 2007035432A JP 2008197578 A JP2008197578 A JP 2008197578A
Authority
JP
Japan
Prior art keywords
data
transfer
encrypted
transferred
encryption
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.)
Granted
Application number
JP2007035432A
Other languages
English (en)
Other versions
JP4347350B2 (ja
Inventor
Mitsumasa Haneda
光正 羽根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007035432A priority Critical patent/JP4347350B2/ja
Priority to US12/003,672 priority patent/US8321659B2/en
Priority to CN200810001575XA priority patent/CN101246456B/zh
Priority to KR1020080005439A priority patent/KR100953252B1/ko
Publication of JP2008197578A publication Critical patent/JP2008197578A/ja
Application granted granted Critical
Publication of JP4347350B2 publication Critical patent/JP4347350B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (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

【課題】データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化および復号化を行う。
【解決手段】暗号処理部150が、データが転送されるDMAチャネルを識別するDMA番号を含んだディスクリプタ2を取得し、取得したディスクリプタ2に含まれるDMA番号に基づいて、同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で暗号化し、暗号化したデータをディスクインタフェース制御部160に対して転送する。
【選択図】 図1

Description

この発明は、第一の装置と第二の装置との間で転送されるデータの暗号化および復号化を行うデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置に関し、特に、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化および復号化を行うことができるデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置に関するものである。
従来、磁気ディスク装置や光ディスク装置などの記憶装置では、盗難や不正アクセスによる情報漏洩を防ぐことを目的とし、記憶媒体(磁気ディスクや光ディスクなど)にデータを記録する際や、ホストコンピュータなどの上位装置との間でデータを送受信する際に、当該データを暗号化することが行われている(例えば、特許文献1および2を参照)。
例えば、記憶媒体として複数のディスクを備えたディスク装置と、ディスク装置に対するデータの読み出しや書き込みを要求する上位装置と、上位装置からの要求に基づいてディスク装置に対するデータの入出力を制御するRAIDコントローラ(ディスク制御装置)とから構成される一般的なRAID(Redundant Arrays of Inexpensive Disks)システムについて考える。
図17は、従来のRAIDシステムの一例を示す図である。同図に示すように、このRAIDシステムは、RAIDコントローラ10と、上位装置であるホスト装置20と、ディスク装置30とから構成されており、RAIDコントローラ10は、ホスト装置20とディスク装置30との間に接続される。
このうち、RAIDコントローラ10は、同図に示すように、ホストインタフェース制御部11と、メインメモリ12と、メモリ制御部13と、CPU(Central Processing Unit)14と、ディスクインタフェース制御部16とを有する。
各機能部について簡単に説明すると、ホストインタフェース制御部11は、ホスト装置20との間でやり取りされるデータ転送を制御する制御部であり、メインメモリ12は、キャッシュとして利用するためのキャッシュ領域などを有するメモリである。
また、メモリ制御部13は、メインメモリ12に対するデータの読み出しおよび書き込みを制御する制御部であり、CPU14は、RAIDコントローラ10を全体制御するファームウェアを実行する中央処理装置であり、ディスクインタフェース制御部16は、ディスク装置30との間で行われるデータ転送を制御する制御部である。
ここで、さらに同図を用いて、かかるRAIDコントローラ10の動作について簡単に説明しておく。なお、以下では、ホスト装置20からライト要求を受信した際の動作(以下、「ライト動作」と呼ぶ)と、ホスト装置20からリード要求を受信した際の動作(以下、「リード動作」と呼ぶ)について、それぞれ説明する。
まず、ライト動作では、同図(a)に示すように、ホスト装置20からライト要求が送信されると(同図に示す(1))、ホストインタフェース制御部11が、当該ライト要求とともに送信されるデータを受信し、メモリ制御部13に引き渡す。メモリ制御部13は、受け取ったデータを順次メインメモリ12のキャッシュ領域に格納する(同図に示す(2))。そして、ディスクインタフェース制御部16が、メモリ制御部13を介してキャッシュ領域からデータを読み出し(同図に示す(3)、読み出したデータをディスク装置30に対して転送する(同図に示す(4))。
一方、リード動作では、同図(b)に示すように、ホスト装置20からリード要求が送信されると(同図に示す(1))、ディスクインタフェース制御部16が、当該リード要求で要求されたデータをディスク装置30から読み出し(同図に示す(2))、メモリ制御部13に引き渡す。メモリ制御部13は、受け取ったデータを順次メインメモリ12のキャッシュ領域に格納する(同図に示す(3))。そして、ホストインタフェース制御部11が、メモリ制御部13を介してキャッシュ領域からデータを読み出し(同図に示す(4))、読み出したデータをホスト装置20に対して転送する(同図に示す(5))。
このようなRAIDシステムにおいて、ディスク装置30に記憶されるデータに対する暗号処理(暗号化および復号化)を行う場合には、かかる暗号処理は、RAIDコントローラ10によって行われるのが一般的である。
その場合、暗号処理は、ホスト装置20とメインメモリ12との間でデータが転送される間で行う場合と、メインメモリ12とディスク装置30との間でデータが転送される間で行う場合とが考えられる。
しかし、ホスト装置20とメインメモリ12との間でデータが転送される間で行う場合には、メインメモリ12に格納されるデータは全て暗号化されることになり、ファームウェアによって、メインメモリ12に格納されているデータの参照を要する処理が行われるような場合には、参照のたびにデータの復号化が必要になり、効率が悪い。
そのため、RAIDコントローラ10がディスク装置30に記憶されるデータに対する暗号処理を行う場合には、メインメモリ12とディスク装置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に記憶されるデータに対する暗号処理を行うことを前提とする。
図18は、暗号処理チップを用いた場合のRAIDコントローラ10を示す図である。同図に示すように、このRAIDコントローラ10では、暗号処理チップを有する暗号処理部15を、メモリ制御部13とディスクインタフェース制御部16との間にバスを介して接続している。
かかるRAIDコントローラ10の動作について説明すると、ライト動作では、同図(a)に示すように、ホスト装置20からライト要求が送信されると(同図に示す(1))、ホストインタフェース制御部11が、当該ライト要求とともに送信されるデータを受信し、メモリ制御部13に引き渡す。メモリ制御部13は、受け取ったデータを順次メインメモリ12のキャッシュ領域に格納する(同図に示す(2))。そして、暗号処理部15が、メモリ制御部13を介してキャッシュ領域から順次データを読み出し、読み出したデータを暗号化して、ディスクインタフェース制御部16に引き渡す(同図に示す(3))。ディスクインタフェース制御部16は、暗号化済みのデータを受け取ると、そのデータをディスク装置30に対して転送する(同図に示す(4))。
一方、リード動作では、同図(b)に示すように、ホスト装置20からリード要求が送信されると(同図に示す(1))、ディスクインタフェース制御部16が、当該リード要求で要求されたデータをディスク装置30から読み出し(同図に示す(2))、暗号処理部15に引き渡す。暗号処理部15は、受け取ったデータを復号化し、復号化したデータを、メモリ制御部13を介して順次メインメモリ12のキャッシュ領域に格納する(同図に示す(3))。そして、ホストインタフェース制御部11が、メモリ制御部13を介して、復号化済みのデータをキャッシュ領域から読み出し(同図に示す(4))、読み出したデータをホスト装置20に対して転送する(同図に示す(5))。
このように、暗号処理チップを用いて暗号処理を行う場合には、前述した退避領域が不要になるため、ファームウェアで暗号処理を行う場合に生じるコスト増や処理低下の問題は解決される。
特開2005−322201号公報 特開2006−39000号公報
しかしながら、暗号処理チップを用いて暗号処理を行う場合には、RAIDコントローラ10内部の各デバイスを接続するバスにおけるデータ転送の単位となるデータサイズと、暗号化チップによる暗号処理の処理単位となるデータサイズとが異なる場合には、複雑な制御が必要になるという問題がある。以下、この問題について具体的に説明する。
例えば、バスの規格がPCI Express(Peripheral Component Interconnect Express:以下、「PCIe」と呼ぶ)を、暗号化チップによる暗号処理の方式がAES(Advanced Encryption Standard)暗号方式をそれぞれ用いた場合について説明する。この場合、バスにおけるデータの転送単位となるサイズは4バイト(32ビット)の倍数となり、暗号処理の処理単位となるサイズは16バイト(128ビット)となる。
そのため、PCIeバスで転送されたデータに対してAES暗号方式で暗号化すると、16バイトに満たないデータが暗号化されずに残ってしまう場合がある(復号化についても同様)。この場合、暗号処理部15は、残ったデータ(以下、「端数データ」と呼ぶ)を保持しておき、後続して転送されるデータと連結することによって、16バイト以上のデータにしたうえで当該データを暗号化することになる。
ところで、PCIeでは、データは、TLP(Transaction Layer Packet)と呼ばれるパケットに成形されて転送されるが、ひとつのTLPで転送可能なデータのサイズには上限サイズが規定されている。そのため、上限サイズを超えるデータを転送する場合には、当該データは、複数のTLPに分割されて転送される。
また、通常、メモリ制御部13を介してメインメモリ12に通ずるバスで転送されるデータは、CPUの負荷を軽減するため、DMA(Direct Memory Access)方式で転送される。このDMA方式では、複数のDMAチャネルを用いて並列にデータ転送を行うことが可能である。
そして、ひとつのデータをもとに分割されたTLPは、同じDMAチャネルを用いて転送される。そのため、端数データと、後続して転送されるデータとを連結する際には、同じDMAチャネルで転送されたデータであるか否かを識別する必要がある。
TLPには、各種コマンド(リードコマンドやライトコマンドなど)やアドレスなどを含むヘッダが付与されており、データの転送に用いられるDMAチャネルは、当該TLPのヘッダに含まれるTag情報を用いて識別することが可能である。
しかしながら、通常、Tag領域にどのように情報を設定するかは、データを転送するデバイス(ここでは、メモリ制御部13や、ディスクインタフェース制御部16など)の仕様によって異なっているため、デバイスの仕様によらない汎用的な暗号化チップを実現するには、かかるTag情報を、DMAチャネルを識別するための要素として用いることはできない。
そのため、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、いかにして、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化および復号化を行うかが極めて重要な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化および復号化を行うことができるデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化装置であって、データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記データ暗号化手段は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする。
また、本発明は、上記の発明において、前記第一の装置に対してデータの転送を要求するとともに当該データの転送に用いるチャネルを識別する要求チャネル識別情報を含んだデータ転送要求を前記第二の装置から受信する転送要求受信手段をさらに備え、前記データ暗号化手段は、前記転送要求受信手段によりデータ転送要求が受信された場合に、前記要求チャネル識別情報と、前記転送情報取得手段により取得された転送チャネル識別情報とが同じであるか否かを判定し、同じであった場合に、前記第一の装置に対してデータ転送要求を送信し、送信したデータ転送要求に応じて前記第一の装置から転送されるデータを暗号化することを特徴とする。
また、本発明は、上記の発明において、前記転送要求受信手段により受信されるデータ転送要求には、当該データ転送要求によって要求されるデータを暗号化するか否かを示す暗号化要否情報が含まれており、前記データ暗号化手段は、前記暗号化要否情報に基づいて、前記データ転送要求に応じて前記第一の装置から転送されるデータを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする。
また、本発明は、第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化装置であって、暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記データ復号化手段は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする。
また、本発明は、第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化方法であって、データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化工程と、前記データ暗号化工程により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送工程と、を含んだことを特徴とする。
また、本発明は、上記の発明において、前記データ暗号化工程は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする。
また、本発明は、第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化方法であって、暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化工程と、前記データ復号化工程により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送工程と、を含んだことを特徴とする。
また、本発明は、上記の発明において、前記データ復号化工程は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする。
また、本発明は、ホスト装置から記憶装置に対するデータの転送を制御するデータ転送制御装置であって、データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記記憶装置に対して転送するデータ転送手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記データ暗号化手段は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする。
また、本発明は、記憶装置からホスト装置に対する暗号化データの転送を制御するデータ転送制御装置であって、暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記ホスト装置に対して転送するデータ転送手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記データ復号化手段は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする。
本発明によれば、データが転送されるチャネルを識別する転送チャネル識別情報を取得し、取得した転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化し、第二のデータサイズ単位で暗号化したデータを第二の装置に対して転送するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化を行うことができるという効果を奏する。
また、本発明によれば、蓄積したデータを暗号化する際に、第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するので、データ転送の単位となるデータサイズが暗号処理の単位となるデータサイズを超えていた場合でも、端数となったデータと後続するデータとを結合して、暗号化を行うことができるという効果を奏する。
また、本発明によれば、第一の装置に対してデータの転送を要求するとともに当該データの転送に用いるチャネルを識別する要求チャネル識別情報を含んだデータ転送要求を第二の装置から受信し、データ転送要求を受信した場合に、当該データ転送要求に含まれる要求チャネル識別情報と、取得した転送チャネル識別情報とが同じであるか否かを判定し、同じであった場合に、第一の装置に対してデータ転送要求を送信し、送信したデータ転送要求に応じて第一の装置から転送されるデータを暗号化するので、データの転送に先立って転送先から送信されるデータ転送要求に、当該データの転送に用いられるチャネルを識別する情報を設定しておくことによって、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化を行うことができるという効果を奏する。
また、本発明によれば、第二の装置から受信するデータ転送要求には、当該データ転送要求によって要求されるデータを暗号化するか否かを示す暗号化要否情報が含まれており、この暗号化要否情報に基づいて、データ転送要求に応じて第一の装置から転送されるデータを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化するので、例えば、データ転送を制御するための制御データなど、暗号化を行う必要がないデータを、暗号処理の対象から除くことができるという効果を奏する。
また、本発明によれば、暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得し、取得した転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化し、第二のデータサイズ単位で復号化したデータを第一の装置に対して転送するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの復号化を行うことができるという効果を奏する。
また、本発明によれば、蓄積した暗号化データを復号化する際に、第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するので、データ転送の単位となるデータサイズが暗号処理の単位となるデータサイズを超えていた場合でも、端数となったデータと後続するデータとを結合して、復号化を行うことができるという効果を奏する。
以下に添付図面を参照して、この発明に係るデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置の好適な実施例を詳細に説明する。なお、本実施例では、RAIDコントローラに本発明を適用した場合について説明する。
まず、本実施例に係るRAIDコントローラの概念について説明する。図1は、本実施例に係るRAIDコントローラの概念を説明するための説明図である。同図に示すように、このRAIDコントローラ100は、ホスト装置200とディスク装置300との間に接続され、ホストインタフェース制御部110と、メインメモリ120と、メモリ制御部130と、CPU140と、暗号処理部150と、ディスクインタフェース制御部160とを有する。
各機能部について簡単に説明すると、ホストインタフェース制御部110は、ホスト装置200との間でやり取りされるデータ転送を制御する制御部であり、メインメモリ120は、キャッシュとして利用するためのキャッシュ領域などを有するメモリである。また、メモリ制御部130は、メインメモリ120に対するデータの読み出しおよび書き込みを制御する制御部であり、CPU140は、RAIDコントローラ100を全体制御するファームウェアを実行する中央処理装置である。また、暗号処理部150は、暗号処理チップを用いて、AES暗号方式に準拠した暗号処理を行う処理部であり、ディスクインタフェース制御部160は、ディスク装置300との間で行われるデータ転送を制御する制御部である。
ここで、ホストインタフェース制御部110、メモリ制御部130、暗号処理部150およびディスクインタフェース制御部160は、それぞれ、PCIeバスを介して接続され、ホストインタフェース制御部110とメインメモリ120との間で、メモリ制御部130を介して行われるデータ転送、および、メインメモリ120とディスクインタフェース制御部160との間で、メモリ制御部130および暗号処理部150を介して行われるデータ転送は、それぞれDMA方式を用いて行われる。
このように、本実施例に係るRAIDコントローラ100は、上位装置であるホスト装置200と、ディスク装置300との間に接続され、ホスト装置200からの要求に基づいて、ディスク装置300に対するデータの入出力を制御する装置であって、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたチャネルを識別して、チャネルごとにデータの暗号化および復号化を行うことができる点に主な特徴がある。
この特徴について具体的に説明すると、まず、本実施例に係るRAIDコントローラ100では、図1(a)に示すように、ホストインタフェース制御部110が、ホスト装置200から送信されたライト要求を受信すると(同図に示す(1))、ライト要求とともに送信されるデータを、メモリ制御部130を介してメインメモリ120のキャッシュ領域に格納する(同図に示す(2))。
この一方で、ファームウェア(CPU140)が、メインメモリに格納されたデータを転送するための制御情報を生成する。この制御情報には、当該データの転送に用いられるDMAチャネルを識別するDMA番号などが含まれている(同図に示す(3))。
そして、暗号処理部150が、ファームウェアによって生成された制御情報を取得し(同図に示す(4))、取得した制御情報に含まれるDMA番号に基づいて、メモリ制御部130から同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で暗号化する(同図に示す(5))。
ここで、暗号処理部150は、蓄積したデータを暗号化する際に、AES暗号方式で規定されたデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で暗号化する。
そして、暗号処理部150は、暗号化したデータを順次ディスクインタフェース制御部160に対して転送し(同図に示す(6))、ディスクインタフェース制御部160が、暗号処理部150から転送された暗号化済みデータをディスク装置300に対して転送する(同図に示す(7))。ここで転送されたデータは、ディスク装置300において、記憶媒体であるディスクに書き込まれる。
また、本実施例に係るRAIDコントローラ100では、図1(b)に示すように、ホストインタフェース制御部110が、ホスト装置200から送信されたリード要求を受信すると(同図に示す(1))、ファームウェア(CPU140)が、ディスク装置300から読み出される暗号化データを転送するための制御情報を生成する(同図に示す(2))。この制御情報には、当該暗号化データの転送に用いられるDMAチャネルを識別するDMA番号などが含まれている。
この一方で、ディスクインタフェース制御部160が、リード要求で要求されたデータをディスク装置30から読み出して(同図に示す(4))、同一のDMAチャネルを用いて、PCIeで規定されたデータサイズ単位で暗号処理部15に転送する。
そして、暗号処理部150が、ファームウェアによって生成された制御情報を取得し(同図に示す(3))、取得した制御情報に含まれるDMA番号に基づいて、ディスクインタフェース制御部160から転送された暗号化データを蓄積し、蓄積した暗号化データを、AES暗号方式で規定されたデータサイズ単位で復号化する(同図に示す(5))。
ここで、暗号処理部150は、蓄積した暗号化データを復号化する際に、AES暗号方式で規定されたデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で復号化する。
そして、暗号処理部150は、復号化したデータを順次メモリ制御部130に対して転送し、メモリ制御部130が、暗号処理部150から転送された復号化済みデータをメインメモリ120のキャッシュ領域に格納し(同図に示す(6))、ホストインタフェース制御部110が、キャッシュ領域に格納されたデータをホスト装置に対して送信する(同図に示す(7)および(8))。
このように、本実施例に係るRAIDコントローラ100では、暗号処理部150が、ホスト装置200から要求されたデータが転送されるDMAチャネルを識別するDMA番号を取得し、取得したDMA番号に基づいて、同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを、AESで規定されたデータサイズ単位で暗号化し、暗号化したデータを、ディスクインタフェース制御部160が、ディスク装置300に対して転送するようにしている。
また、本実施例に係るRAIDコントローラ100では、暗号処理部150が、ホスト装置200から要求された暗号化データが転送されるDMAチャネルを識別するDMA番号を取得し、取得したDMA番号に基づいて、同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを、AESで規定されたデータサイズ単位で復号化し、復号化したデータを、ホストインタフェース制御部110が、ホスト装置200に対して転送するようにしている。
これにより、本実施例に係るRAIDコントローラ100では、データが転送されたDMAチャネルを識別し、DMAチャネルごとにデータの暗号化および復号化を行うことができる。
次に、本実施例に係るRAIDコントローラ100の構成について説明する。図2は、本実施例に係るRAIDコントローラ100の構成を示す機能ブロック図である。同図に示すように、本実施例に係るRAIDコントローラ100は、ホスト装置200とディスク装置300との間に接続される。
ホスト装置200は、ディスク装置300に対してデータのライトおよびリードを行う上位装置である。このホスト装置200は、データのライトを行う場合には、RAIDコントローラ100に対してライト要求を送信し、データのリードを行う場合には、RAIDコントローラ100に対してリード要求を送信する。
ディスク装置300は、各種データを記憶する記憶装置であり、データの記憶媒体として、所定の種類のRAID(RAID0,1,3,5など)で構成された複数のディスク3101〜310nを有する。
RAIDコントローラ100は、ホスト装置200からの要求に基づいて、ディスク装置300に対するデータの入出力を制御する装置であり、ホストインタフェース制御部110と、ディスクインタフェース制御部160と、メインメモリ120と、メモリ制御部130と、CPU140と、暗号処理部150とを有する。
ここで、前述したように、ホストインタフェース制御部110、メモリ制御部130、暗号処理部150およびディスクインタフェース制御部160は、それぞれ、PCIeバスを介して接続され、ホストインタフェース制御部110とメインメモリ120との間で、メモリ制御部130を介して行われるデータ転送、および、メインメモリ120とディスクインタフェース制御部160との間で、メモリ制御部130および暗号処理部150を介して行われるデータ転送は、それぞれDMA方式を用いて行われる。
以下、RAIDコントローラ100が有する各機能部について、それぞれ具体的に説明する。なお、以下では、ホスト装置200からのライト要求に応じてディスク装置300に書き込まれるデータを「ライトデータ」と呼び、ホスト装置からのリード要求に応じてディスク装置300から読み出されるデータを「リードデータ」と呼ぶ。
ホストインタフェース制御部110は、ホスト装置200との間で行われるデータ転送や、メインメモリ120との間で行われるデータ転送を制御する処理部である。このホストインタフェース制御部110は、ライト動作では、ホスト装置200からライト要求を受信すると、当該ライト要求とともに送信されたライトデータを、メモリ制御部130を介してメインメモリ120のキャッシュ領域に格納する。一方、リード動作では、ホストインタフェース制御部110は、ホスト装置200からリード要求を受信すると、当該リード要求をメモリ制御部130に対して転送する。
メインメモリ120は、各種プログラムや各種データを記憶する記憶装置であり、RAIDコントローラ100の全体制御を行うための各種処理手順を規定したファームウェアや、ファームウェアの実行に必要な制御データなどを記憶する。また、メインメモリ120は、ホスト装置200から転送されたデータや、ディスク装置300から転送されたデータを一時的に格納するためのキャッシュ領域や、後述するディスクリプタ1やディスクリプタ2などの制御情報を格納するための所定の領域を有する。
メモリ制御部130は、メインメモリ120に対するデータの読み出しおよび書き込みを制御する処理部である。このメモリ制御部130は、書き込み要求パケットを受信すると、当該書き込み要求パケットに基づいて、メインメモリ120にデータを書き込み、また、読み出し要求パケットを受信すると、当該読み出し要求パケットに基づいて、メインメモリ120からデータを読み出し、読み出したデータを含めた読み出し応答パケットを、読み出し要求パケットを送信した処理部に対して送信する。
ここでいう読み出し要求パケットおよび書き込み要求パケットは、それぞれ、PCIeでフォーマットが規定されたTLPであり、シーケンス番号やヘッダ、データ、CRC(Cyclic Redundancy Check)などから構成される。ここでは、TLPのヘッダについて説明する。
図3は、PCIeで規定されたTLPのヘッダのフォーマットを示す図である。同図に示すように、TLPのヘッダには、パケットの転送や、データの読み出しや書き込みを制御するための各種の情報が含まれている。特に本発明に関連する情報について説明すると、5〜8バイト目(同図に示す「{Fields in bytes 4 through 7 depend on type of Request}」)には、ライト要求やリード要求など、要求の種類を識別する情報などが設定され、9〜16バイト目には、アドレス情報(同図に示す「Address」)として、リードデータの読み出し先となるメインメモリ120上の物理アドレスや、ライトデータの書き込み先となるメインメモリ120上の物理アドレスなどが設定される。
なお、PCIeでは、読み出し要求パケットおよび書込み要求パケットにて要求可能なデータの上限サイズや、読み出し応答パケットにて応答可能なデータの上限サイズが規定されている。そのため、メモリ制御部130は、読み出し応答パケットを送信する際に、メインメモリ120から読み出したデータが、読み出し応答パケットにて応答可能な上限サイズを超えていた場合には、当該データを上限サイズ以下となるように分割し、分割したそれぞれのデータについて読み出し応答パケットを送信する。
図2に戻って、CPU140は、メインメモリ120に格納されたファームウェアを読み出して実行することによって、RAIDコントローラ100の全体制御を行う中央処理装置である。このCPU140は、ファームウェアを実行することによって、RAIDコントローラ100の全体制御を行うための各種の処理を行う。なお、ここでは、CPU140によって行われる処理のうち、特に本発明に関連する処理のみを説明する。
CPU140は、ホストインタフェース制御部110を介してホスト装置200からライト要求やリード要求などの要求を受信すると、受信した要求に基づいて、メインメモリ120に対するデータの読み出しや書き込みを制御するための制御情報であるディスクリプタ1およびディスクリプタ2をそれぞれ生成し、メインメモリ120に格納する。そして、CPU140は、ディスクリプタ1およびディスクリプタ2をメインメモリ120の所定の領域に格納した後に、後述する暗号処理部150およびディスクインタフェース制御部160を起動する。
ここで、CPU140によって生成されるディスクリプタ1およびディスクリプタ2について説明する。まず、ディスクリプタ1について説明する。図4は、ディスクリプタ1のフォーマットを示す図である。同図に示すように、ディスクリプタ1は、暗号化要否フラグと、DMA番号と、物理アドレスと、DMA転送サイズとから構成される。
ここで、暗号化要否フラグには、「1」が固定で設定され、DMA番号には、リード要求またはライト要求の対象データをDMA転送する際に用いられるDMAチャネルを識別する番号が設定され、物理アドレスには、ホスト装置200から要求されたデータが格納されるメインメモリ120上のアドレスが設定され、DMA転送サイズには、ホスト装置200から要求されたデータのサイズが設定される。
続いて、ディスクリプタ2について説明する。図5は、ディスクリプタ2のフォーマットを示す図である。同図に示すように、ディスクリプタ2は、DMA番号と、物理アドレスと、暗号鍵と、DMA転送サイズとから構成される。ここで、DMA番号、物理アドレスおよびDMA転送サイズには、ディスクリプタ1のDMA番号、物理アドレスおよびDMA転送サイズに設定された値と同じ値がそれぞれ設定され、暗号鍵には、後述する暗号処理部150においてデータの暗号化および復号化が行われる際に用いられる鍵情報が設定される。
図2に戻って、ディスクインタフェース制御部160は、ディスク装置300との間で行われるデータ転送や、メインメモリ120との間で行われるDMA転送を制御する処理部であり、アービター161と、DMAチャネル1621〜162nとを有する。このディスクインタフェース制御部160は、ファームウェアによって起動されると、メインメモリ120からディスクリプタ1を読み出すための読み出し要求パケットを生成し、暗号処理部150に対して送信する。
ここで、ディスクリプタ1の読み出し要求パケットを生成する際、ディスクインタフェース制御部160は、当該読み出し要求のヘッダのアドレス情報に、暗号化要否フラグと、物理アドレスとをそれぞれ設定する。図6は、ディスクリプタ読み出し要求パケットのアドレス情報を示す図である。同図は、読み出し要求パケットに含まれるアドレス情報を示している(図3に示した「Addres」を参照)。
具体的には、ディスクインタフェース制御部160は、同図に示すように、アドレス情報の先頭1ビット(bit63)に、暗号化要否フラグとして「0(暗号化不要)」を設定し、2〜62ビット目(bit62〜2)に、物理アドレスとして、メインメモリ120のディスクリプタ格納アドレス(ここでは、ディスクリプタ1の格納アドレス)を設定する。
ここで送信されたディスクリプタ1の読み出し要求パケットは、暗号処理部150によって、メモリ制御部130に転送される。メモリ制御部130は、この読み出し要求パケットを受信すると、メインメモリ120のキャッシュ領域からディスクリプタ1を読み出し、ディスクインタフェース制御部160に対して送信する。
そして、ディスクインタフェース制御部160は、メモリ制御部130からディスクリプタ1が送信されると、ライト動作では、ディスクリプタ1に設定されている情報に基づいて、メインメモリ120からライトデータを読み出すための読み出し要求パケットを生成し、暗号処理部150に対して送信する。
この時、ディスクインタフェース制御部160は、ディスクリプタ1に設定されているDMA転送サイズが、読み出し要求パケットにて要求可能なデータの上限サイズを超えていた場合には、ライトデータを上限サイズ以下となるように分割し、分割したそれぞれのデータについて読み出し要求パケットを送信する。なお、ここで送信される読み出し要求パケットは、それぞれ、同じDMAチャネルを用いて送信される。
ここで、データの読み出し要求パケットを生成する際、ディスクインタフェース制御部160は、当該読み出し要求のアドレス情報に、暗号化要否フラグと、DMA番号と、物理アドレスとをそれぞれ設定する。図7は、データ読み出し要求パケットのアドレス情報を示す図である。同図は、読み出し要求パケットに含まれるアドレス情報を示している(図3に示した「Addres」を参照)。
具体的には、ディスクインタフェース制御部160は、同図に示すように、1ビット目(bit63)に、暗号化要否フラグとして「1(暗号化要)」を設定し、2〜9ビット目(bit62〜55)に、DMA番号として、当該読み出し要求パケットが転送されるDMAチャネルを識別するDMA番号を、10〜62ビット目(bit54〜2)に、物理アドレスとして、ライトデータの格納先となるメインメモリ120上のアドレスの9bit目以降を、それぞれ設定する。
なお、ここではDMA番号が8ビットである場合を説明するが、DMA番号の桁数は、これに限られず、DMAチャネルの数などに応じて適宜決められる。
ここで送信されたデータ読み出し要求パケットは、暗号処理部150によって、アドレス情報に含まれるDMA番号が、ディスクリプタ2に含まれている物理アドレスに変換されたうえで、メモリ制御部130に転送される。
そして、送信した読み出し要求パケットに対して、暗号処理部150によって暗号化されたデータが応答されると、ディスクインタフェース制御部160は、受信したデータをディスク装置300に対して転送する。
一方、リード動作では、ディスクインタフェース制御部160は、メモリ制御部130からディスクリプタ1が応答されると、ディスクインタフェース制御部160は、ディスクリプタ1に設定されている情報に基づいて、ディスク装置300からデータを読み出し、読み出したデータをメインメモリ120に書き込むための書き込み要求パケットを生成し、暗号処理部150に対して送信する。
この時、ディスクインタフェース制御部160は、ディスク装置300から読み出したデータのサイズが、書き込み要求パケットにて要求可能なデータの上限サイズを超えていた場合には、当該データを上限サイズ以下となるように分割し、分割したそれぞれのデータについて書き込み要求パケットを送信する。なお、ここで送信される書き込み要求パケットは、それぞれ、同じDMAチャネルを用いて送信される。
ここで、データの書き込み要求パケットを生成する際、ディスクインタフェース制御部160は、当該書き込み要求パケットのアドレス情報には、暗号化要否フラグと、DMA番号と、物理アドレスとをそれぞれ設定する。具体的には、ディスクインタフェース制御部160は、図7に示したデータ読み出し要求パケットのアドレス情報と同様に、bit63に、暗号化要否フラグとして「1(暗号化要)」を、bit62〜55に、DMA番号として、当該書き込み要求パケットが転送されるDMAチャネルを識別するDMA番号を、bit54〜2に、物理アドレスとして、ライトデータの書き込み先となるメインメモリ120上のアドレスの9bit目以降を、それぞれ設定する。
DMAチャネル1621〜162nは、ディスクインタフェース制御部160とメインメモリ120との間に、暗号処理部150およびメモリ制御部130を経由して設定された転送チャネルであり、それぞれ、ディスクインタフェース制御部160とメモリ制御部130との間でデータのDMA転送が行われる際に用いられる。これらDMAチャネルは、それぞれ固有のDMA番号によって識別される。
アービター161は、ディスクインタフェース制御部160とメモリ制御部130との間でDMA転送が行われる際に、データの転送に用いるDMAチャネル1621〜162nを選択する処理部である。このアービター161は、ディスクインタフェース制御部160からメモリ制御部130に対してデータが転送される場合には、DMAチャネル1621〜162nのうちから1つのDMAチャネルを選択し、選択したDMAチャネルを介して、当該データをDMA転送する。
また、アービター161は、メインメモリ120に格納されていたデータがDMAチャネル1621〜162nを介してDMA転送されると、各データをディスク装置300に対して送信する。このアービター161によって、各DMAチャネルを介して、ディスクインタフェース制御部160とメインメモリ120との間で、複数のデータが並列してDMA転送される。
暗号処理部150は、暗号処理チップを用いて、AES暗号方式に準拠した暗号処理を行う処理部である。具体的には、この暗号処理部150は、ファームウェアによって起動されると、メインメモリ120からディスクリプタ2を読み出すための読み出し要求パケットを生成し、メモリ制御部130に対して送信する。
ここで、ディスクリプタ2の読み出し要求パケットを生成する際、暗号処理部150は、当該読み出し要求のヘッダのアドレス情報に、暗号化要否フラグと、物理アドレスとをそれぞれ設定する。なお、アドレス情報の設定方法は、ディスクリプタ1のヘッダのアドレスの設定方法と同じであるので、ここでは説明を省略する(図6を参照)。
そして、暗号処理部150は、送信したディスクリプタ2の読み出し要求パケットに対して、メモリ制御部130からディスクリプタ2が応答されると、ディスクリプタ2に含まれるDMA番号、物理アドレス、暗号鍵およびDMA転送サイズを、内部メモリに記憶する。
この後、暗号処理部150は、ライト動作では、ディスクインタフェース制御部160から読み出し要求パケットを受信すると、当該読み出し要求パケットのヘッダのアドレス情報に設定されている暗号化要否フラグを確認し、「1」が設定されていた場合には、アドレス情報に設定されているDMA番号と、内部メモリに記憶したDMA番号とを比較する。
ここで、DMA番号が一致していた場合には、暗号処理部150は、ヘッダに設定されているDMA番号を内部メモリに記憶した物理アドレスに変換したうえで、メモリ制御部130に対して読み出し要求パケットを送信する。
これにより、ディスクリプタ1または2の読み出し要求パケットについては、暗号化要否フラグが「0」であるため、アドレス情報は変換されず、ライトデータの読み出し要求パケットやリードデータの書き込み要求パケットについては、暗号化要否フラグが「0」であるため、アドレス情報が変換されるようになる。
なお、暗号処理部150は、暗号化要否フラグが「1」である読み出し要求パケットを送信する場合には、送信する前に、当該読み出し要求パケットのヘッダに設定されているTag情報を内部メモリに記憶しておく。そして、送信した読み出し要求パケットに対して、メモリ制御部130から読み出し応答パケットが送信された場合には、当該読み出し応答パケットのヘッダに設定されているTag情報と、内部メモリに記憶したTag情報とを比較する。
図8は、PCIeで規定された読み出し要求パケットのヘッダのフォーマットを示す図であり、図9は、PCIeで規定された読み出し応答パケットのヘッダのフォーマットを示す図である。各図に示すように、Tag情報は、読み出し要求パケットでは、ヘッダの49〜56ビット目に設定され、読み出し応答パケットでは、ヘッダの81〜88ビット目に設定されている。PCIeの規格上、読み出し要求パケットのTag情報と、その応答として生成される読み出し応答パケットのTag情報には、それぞれ同じ値が設定される。
暗号処理部150は、Tag情報を比較した結果、それぞれが同じ値であった場合には、送信された読み出し応答パケットに含まれているデータを、内部メモリに記憶されている暗号鍵を用いて暗号化し、暗号化したデータを、ディスクインタフェース制御部160に対して送信する。
ここで、暗号処理部150は、読み出し応答パケットに含まれているデータをAES処理方式で規定されたデータサイズ単位(16バイト単位)で暗号化するが、当該データが16バイト未満であった場合や、16バイト単位で暗号化した際に、16バイト未満のデータが残った場合には、残ったデータを、端数データとして内部メモリに保持しておく。
ところで、前述したように、メモリ制御部130から送信される読み出し応答パケットは、PCIeで規定された応答可能なデータの上限サイズの関係で、ひとつのデータについて読み出し応答パケットが分割されて送信される場合がある。
そこで、暗号処理部150は、後続して読み出し応答パケットがさらに送信されると、当該読み出し応答パケットのTag情報と、内部メモリに記憶したTag情報とを比較し、それぞれが同じ値であった場合には、送信された読み出し応答パケットに含まれているデータの先頭を、内部メモリに記憶されている端数データの末尾に結合し、その結果得られるデータを暗号化し、暗号化したデータを、ディスクインタフェース制御部160に対して送信する。
このように、暗号処理部150は、読み出し応答パケットが分割されて送信された場合でも、Tag情報の値に基づいて、各読み出し応答パケットに含まれているデータを結合して、暗号化することができる。
そして、暗号処理部150は、分割されて送信された全ての読み出し応答パケットのデータを暗号化した結果、さらに16バイト未満のデータが残った場合には、残ったデータを端数データとして内部メモリに保持しておく。
ところで、前述したように、ディスクインタフェース制御部160から送信される読み出し要求パケットは、PCIeで規定された要求可能なデータの上限サイズの関係で、ひとつのデータについて読み出し要求パケットが分割されて送信される場合がある。
そこで、暗号処理部150は、後続して読み出し要求パケットがさらに送信されると、当該読み出し要求パケットのヘッダのアドレス情報に設定されている暗号化要否フラグを確認し、「1」が設定されていた場合には、アドレス情報に設定されているDMA番号と、内部メモリに記憶したDMA番号とを比較する。
そして、DMA番号が一致していた場合には、暗号処理部150は、ヘッダに設定されているDMA番号を内部メモリに記憶した物理アドレスに変換したうえで、メモリ制御部130に対して読み出し要求パケットを送信する。
その後、暗号処理部150は、メモリ制御部130から読み出し応答パケットが送信されると、送信された読み出し応答パケットに含まれているデータを、内部メモリに記憶されている暗号鍵を用いて暗号化し、暗号化したデータを、ディスクインタフェース制御部160に対して送信する。
ここで、暗号処理部150は、データの暗号化を行う際に、内部メモリに端数データが記憶されていた場合には、送信された読み出し応答パケットに含まれているデータの先頭を、端数データの末尾に結合し、その結果得られるデータを暗号化する。
なお、暗号処理部150は、上記の過程のなかで、データを暗号化するたびに、暗号化したデータのサイズを内部メモリに記憶されているDMAサイズから減算しておく。そして、内部メモリに記憶されているDMAサイズがゼロになった場合には、暗号処理部150は、分割されて送信された全ての読み出し要求パケットのデータが暗号化されたと判断し、次のディスクリプタ2の読み出し要求をメモリ制御部130に対して送信し、ディスクリプタ2が応答された場合には、当該ディスクリプタ2に基づいて、上記と同様のライト動作を行う。
このように、暗号処理部150は、読み出し要求パケットが分割されて送信された場合でも、DMA番号の値に基づいて、各読み出し要求パケットで要求されたデータをDMAチャネルごとに結合して、暗号化することができる。
一方、暗号処理部150は、リード動作では、ディスクインタフェース制御部160から書き込み要求パケットを受信すると、当該書き込み要求パケットのヘッダのアドレス情報に設定されている暗号化要否フラグを確認し、「1」が設定されていた場合には、アドレス情報に設定されているDMA番号と、内部メモリに記憶したDMA番号とを比較する。
ここで、DMA番号が一致していた場合には、暗号処理部150は、ヘッダに設定されているDMA番号を内部メモリに記憶した物理アドレスに変換する。
そして、暗号処理部150は、書き込み要求パケットに含まれているデータをAES処理方式で規定されたデータサイズ単位(16バイト単位)で復号化し、復号化したデータを、アドレス変換を行った書き込み要求パケットに設定して、メモリ制御部130に対して送信する。
ここで、暗号処理部150は、受信した書き込み要求パケットに含まれていたデータが16バイト未満であった場合や、16バイト単位で復号化した際に、16バイト未満のデータが残った場合には、残ったデータを、端数データとして内部メモリに保持しておく。
ところで、前述したように、メモリ制御部130から送信される書き込み応答パケットは、PCIeで規定された要求可能なデータの上限サイズの関係で、ひとつのデータについて書き込み要求パケットが分割されて送信される場合がある。
そこで、暗号処理部150は、後続して書き込み要求パケットがさらに送信されると、当該書き込み要求パケットのヘッダのアドレス情報に設定されている暗号化要否フラグを確認し、「1」が設定されていた場合には、前回受信した書き込み要求パケットと同様に、アドレス情報に設定されているDMA番号と、内部メモリに記憶したDMA番号とを比較し、DMA番号が一致していた場合には、ヘッダに設定されているDMA番号を内部メモリに記憶した物理アドレスに変換する。
そして、暗号処理部150は、送信された書き込み要求パケットに含まれているデータの先頭を内部メモリに記憶されている端数データの末尾に結合し、結合して得られたデータを復号化し、復号化したデータを、アドレス変換を行った書き込み要求パケットに設定して、メモリ制御部130に対して送信する。
なお、暗号処理部150は、上記の過程のなかで、データを暗号化するたびに、暗号化したデータのサイズを内部メモリに記憶されているDMAサイズから減算しておく。そして、内部メモリに記憶されているDMAサイズがゼロになった場合には、暗号処理部150は、分割されて送信された全ての書き込み要求パケットのデータが復号化されたと判断し、メモリ制御部130に対して、次のディスクリプタ2の読み出し要求を送信し、ディスクリプタ2が応答された場合には、当該ディスクリプタ2に基づいて、上記と同様のリード動作を行う。
このように、暗号処理部150は、書き込み要求パケットが分割されて送信された場合でも、DMA番号の値に基づいて、各書き込み要求パケットで要求されたデータをDMAチャネルごとに結合して、復号化することができる。
次に、本実施例に係るRAIDコントローラ100の処理手順について説明する。ここでは、図10〜13を参照して、ライト動作におけるRAIDコントローラ100の処理手順について説明した後に、図14〜16を参照して、リード動作におけるRAIDコントローラ100について処理手順を説明する。なお、以下では、読み出し要求パケットを、単に「読み出し要求」と呼び、書き込み要求パケットを、単に「書き込み要求」と呼ぶ。
まず、ライト動作におけるRAIDコントローラ100の処理手順について説明する。図10〜13は、ライト動作におけるRAIDコントローラ100の処理手順を示すシーケンス図(1)〜(4)である。各図に示すように、ライト動作では、ホストインタフェース制御部110が、ホスト装置200からライト要求を受信すると、メモリ制御部130を介して、ライトデータをメインメモリ120のキャッシュ領域に書き込む(ステップS101、S102)。
メモリ制御部130は、ライトデータを書き込んだ後に、CPU140に対して完了通知を送信する(ステップS103)。CPU140は、完了通知を受信すると、ファームウェアを実行することによって、RAID処理を行い(ステップS104)、ディスクリプタ1およびディスクリプタ2をメインメモリ120に設定し(ステップS105、S106)、その後、暗号処理部150およびディスクインタフェース制御部160をそれぞれ起動する(ステップS107、S108)。
暗号処理部150は、ファームウェアによって起動されると、メモリ制御部130に対してディスクリプタ2の読み出し要求を送信し(ステップS109)、読み出し要求を受信したメモリ制御部130は、メインメモリ120からディスクリプタ2を読み出し、暗号処理部150に対して応答する(ステップS110)。
暗号処理部150は、ディスクリプタ2を受信すると、当該ディスクリプタ2に含まれるDMA番号や物理アドレス、DMA転送サイズなどを内部メモリに記憶する(ステップS111)。
一方、ディスクインタフェース制御部160は、ファームウェアによって起動されると、暗号処理部150に対してディスクリプタ1の読み出し要求を送信する(ステップS112)。
暗号処理部150は、ディスクリプタ1の読み出し要求を受信すると、当該読み出し要求のヘッダに設定されている暗号化要否フラグを参照し(ステップS113)、暗号化要否フラグが「0」であるため、アドレス変換を行わずに、メモリ制御部130に対して読み出し要求を送信する(ステップS114)。
メモリ制御部130は、読み出し要求を受信すると、ディスクインタフェース制御部160に対してディスクリプタ1を応答し(ステップS115)、ディスクリプタ1を受信したディスクインタフェース制御部160は、ライトデータの読み出し要求を生成する。ここで、ディスクインタフェース制御部160は、読み出し要求にて要求可能なデータの上限サイズを超えていたため、当該ライトデータをデータ1とデータ2とに分割して、それぞれの読み出し要求を生成したとする。
そして、ディスクインタフェース制御部160は、まず、データ1の読み出し要求を暗号処理部150に送信したとする(ステップS116)。
暗号処理部150は、データ1の読み出し要求を受信すると、当該読み出し要求のヘッダに設定されている暗号化要否フラグを参照し(ステップS117)、ここでは、暗号化要否フラグが「1」であるため、アドレス情報のDMA番号が、内部メモリに記憶されているDMA番号と一致しているか否かを判定する(ステップS118)。
そして、ここでは、DMA番号が一致しているため、暗号処理部150は、アドレス情報のDMA番号を内部メモリに記憶されている物理アドレスで変換し(ステップS119)、アドレス変換後の読み出し要求をメモリ制御部130に対して送信し(ステップS120)、Tag情報を内部メモリに記憶する(ステップS121)。
そして、メモリ制御部130が、メインメモリ120からデータ1を読み出し、読み出したデータ1を含む読み出し応答を暗号処理部150に対して送信すると(ステップS122)、暗号処理部150は、受信した読み出し応答のヘッダに設定されているTag情報が、内部メモリに記憶されているTag情報と一致しているか否かを判定する(ステップS123)。
そして、暗号処理部150は、Tag情報が一致する読み出し応答に含まれるデータを連結することによってデータ1を暗号化し、暗号化したデータ1をディスクインタフェース制御部160に対して送信する(ステップS124)。
ディスクインタフェース制御部160は、データ1を受信すると、ディスク装置300に対して当該データ1を転送する(ステップS125)。
そして、暗号処理部150は、データ1を暗号化した際に、16バイトに満たない端数データが残った場合には、残った端数データを内部メモリに保持し(ステップS126)、暗号化したデータのサイズを内部メモリに記憶しているDMA転送サイズから減算する(ステップS127)。
その後、暗号処理部150は、データ転送サイズがゼロになっているか否かを判定し(ステップS128)、データ転送サイズがゼロになっていなかった場合には、後続する読み出し要求が転送されるまで待機する(ステップS129)。
ディスクインタフェース制御部160は、ステップS116でデータ1の読み出し要求を送信した後に、データ2の読み出し要求を暗号処理部150に対して送信する(ステップS130)。
これ以降、読み出し要求を受信した暗号処理部150が、データ2を含む読み出し応答をメモリ制御部130から受信するまでの処理手順(ステップS131〜S136)は、前述した、データ1を含む読み出し要求を受信した際の手順(ステップS117からステップS122)と同様であるため、ここでは説明を省略する。
読み出し応答を受信すると、暗号処理部150は、受信した読み出し応答のヘッダに設定されているTag情報が、内部メモリに記憶されているTag情報と一致しているか否かを判定する(ステップS137)。
そして、暗号処理部150は、内部メモリに保持されているデータ1の端数データと、Tag情報が一致する読み出し応答に含まれるデータとを連結することによって(ステップS139)、データ1の端数およびデータ2を暗号化し、暗号化したデータ(データ1の端数およびデータ2)をディスクインタフェース制御部160に対して送信する(ステップS139)。
ディスクインタフェース制御部160は、データ1の端数およびデータ2を受信すると、ディスク装置300に対して、当該データ1の端数およびデータ2を転送する(ステップS140)。
そして、暗号処理部150は、暗号化したデータのサイズを内部メモリに記憶しているDMA転送サイズから減算する(ステップS141)。なお、ここでは、データ1の端数およびデータ2を暗号化した結果、端数データが残らなかったとする。
その後、暗号処理部150は、データ転送サイズがゼロになっているか否かを判定し(ステップS142)、データ転送サイズがゼロになっていた場合には、メモリ制御部130に対して、次のディスクリプタ2の読み出し要求を送信する(ステップS143)。そして、メモリ制御部130からディスクリプタ2が応答された場合には(ステップS144)、RAIDコントローラ100は、ステップS111以降の処理を同様に行う。
続いて、リード動作におけるRAIDコントローラ100の処理手順について説明する。なお、ここでは、上記で説明したライト動作でディスク装置300に転送されたデータ(データ1およびデータ2)を読み出す場合について説明する。図14〜16は、リード動作におけるRAIDコントローラ100の処理手順を示すシーケンス図(1)〜(3)である。各図に示すように、リード動作では、ホストインタフェース制御部110が、ホスト装置200からリード要求を受信すると、メモリ制御部130に対してリード要求を転送する(ステップS201)。
メモリ制御部130は、リード要求を受信すると、CPU140に対して、リード要求を受信したことを通知する(ステップS202)。CPU140は、リード要求の受信通知を受信すると、ファームウェアを実行することによって、ディスクリプタ1およびディスクリプタ2をメインメモリ120に設定し(ステップS203、S204)、その後、暗号処理部150およびディスクインタフェース制御部160をそれぞれ起動する(ステップS205、S206)。
暗号処理部150は、ファームウェアによって起動されると、メモリ制御部130に対してディスクリプタ2の読み出し要求を送信し(ステップS207)、読み出し要求を受信したメモリ制御部130は、メインメモリ120からディスクリプタ2を読み出し、暗号処理部150に対して応答する(ステップS208)。
暗号処理部150は、ディスクリプタ2を受信すると、当該ディスクリプタ2に含まれるDMA番号や物理アドレス、DMA転送サイズなどを内部メモリに記憶する(ステップS209)。
一方、ディスクインタフェース制御部160は、ファームウェアによって起動されると、暗号処理部150に対してディスクリプタ1の読み出し要求を送信する(ステップS210)。
暗号処理部150は、ディスクリプタ1の読み出し要求を受信すると、当該読み出し要求のヘッダに設定されている暗号化要否フラグを参照し(ステップS211)、暗号化要否フラグが「0」であるため、アドレス変換を行わずに、メモリ制御部130に対して読み出し要求を送信する(ステップS212)。
メモリ制御部130は、読み出し要求を受信すると、ディスクインタフェース制御部160に対してディスクリプタ1を応答し(ステップS213)、ディスクリプタ1を受信したディスクインタフェース制御部160は、ディスク装置300からデータ1およびデータ2を読み出す(ステップS214)。
ここで、ディスクインタフェース制御部160は、読み出したデータ1およびデータ2の書込み要求を生成するが、データ1およびデータ2の合計サイズが、書き込み要求で要求可能なデータの上限サイズを超えていたため、データ1およびデータ2について、それぞれ読み出し要求を生成したとする。
そして、ディスクインタフェース制御部160は、まず、データ1の書き込み要求を暗号処理部150に送信したとする(ステップS215)。
暗号処理部150は、データ1の書き込み要求を受信すると、当該書き込み要求のヘッダに設定されている暗号化要否フラグを参照し(ステップS216)、ここでは、暗号化要否フラグが「1」であるため、アドレス情報のDMA番号が、内部メモリに記憶されているDMA番号と一致しているか否かを判定する(ステップS217)。
そして、ここでは、DMA番号が一致しているため、暗号処理部150は、アドレス情報のDMA番号を内部メモリに記憶されている物理アドレスで変換し(ステップS218)、さらに、データ1を復号化し(ステップS219)、復号化したデータ1をアドレス変換後の書き込み要求に設定して、その書き込み要求をメモリ制御部130に対して送信する(ステップS220)。書き込み要求を受信したメモリ制御部130は、メインメモリ120に対してデータ1を書き込む(ステップS221)。
そして、暗号処理部150は、データ1を復号化した際に、16バイトに満たない端数データが残った場合には、残った端数データを内部メモリに保持し(ステップS222)、復号化したデータのサイズを内部メモリに記憶しているDMA転送サイズから減算する(ステップS223)。
その後、暗号処理部150は、データ転送サイズがゼロになっているか否かを判定し(ステップS224)、データ転送サイズがゼロになっていなかった場合には、後続する書き込み要求が転送されるまで待機する(ステップS225)。
ディスクインタフェース制御部160は、ステップS215でデータ1の書き込み要求を送信した後に、データ2の書き込み要求を暗号処理部150に対して送信する(ステップS226)。
暗号処理部150は、データ2の書き込み要求を受信すると、当該書き込み要求のヘッダに設定されている暗号化要否フラグを参照し(ステップS227)、ここでは、暗号化要否フラグが「1」であるため、アドレス情報のDMA番号が、内部メモリに記憶されているDMA番号と一致しているか否かを判定する(ステップS228)。
そして、ここでは、DMA番号が一致しているため、暗号処理部150は、アドレス情報のDMA番号を内部メモリに記憶されている物理アドレスで変換し(ステップS229)、さらに、内部メモリに記憶されているデータ1の端数とデータ2とを連結し(ステップS230)、連結したデータを復号化し(ステップS231)、復号化したデータをアドレス変換後の書き込み要求に設定して、その書き込み要求をメモリ制御部130に対して送信する(ステップS232)。
書き込み要求を受信したメモリ制御部130は、メインメモリ120に対してデータ1の端数およびデータ2を書き込み(ステップS233)、データの書き込みが完了したことをCPU140に通知する(ステップS234)。
CPU140は、書き込み完了が通知されると、ホストインタフェース制御部110と連携して、ホスト装置200に対する応答処理を行う(ステップS235)。
一方、暗号処理部150は、書き込み要求を送信した後に、復号化したデータのサイズを内部メモリに記憶しているDMA転送サイズから減算する(ステップS236)。なお、ここでは、データ1の端数およびデータ2を復号化した結果、端数データが残らなかったとする。
その後、暗号処理部150は、データ転送サイズがゼロになっているか否かを判定し(ステップS237)、データ転送サイズがゼロになっていた場合には、メモリ制御部130に対して、次のディスクリプタ2の読み出し要求を送信する(ステップS238)。そして、メモリ制御部130からディスクリプタ2が応答された場合には(ステップS239)、RAIDコントローラ100は、ステップS209以降の処理を同様に行う。
上述してきたように、本実施例では、暗号処理部150が、データが転送されるDMAチャネルを識別するDMA番号を含んだディスクリプタ2を取得し、取得したディスクリプタ2に含まれるDMA番号に基づいて、同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で暗号化し、暗号化したデータをディスクインタフェース制御部160に対して転送するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたDMAチャネルを識別して、DMAチャネルごとにデータの暗号化を行うことができる。
また、本実施例では、暗号処理部150が、蓄積したデータを暗号化する際に、AES暗号方式で規定されたデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを、AES暗号方式で規定されたデータサイズ単位で暗号化するので、データ転送の単位となるデータサイズが暗号処理の単位となるデータサイズを超えていた場合でも、端数となったデータと後続するデータとを結合して、暗号化を行うことができる。
また、本実施例では、暗号処理部150が、メモリ制御部130に対してデータの読み出しを要求するとともに当該データの転送に用いるDMAチャネルを識別するDMA番号を含んだデータ読み出し要求をディスクインタフェース制御部160から受信し、データ読み出し要求を受信した場合に、当該データ読み出し要求に含まれるDMA番号と、取得したDMA番号とが同じであるか否かを判定し、同じであった場合に、メモリ制御部130に対してデータ読み出し要求を送信し、送信したデータ読み出し要求に応じてメモリ制御部130から転送されるデータを暗号化するので、データの転送に先立って転送先から送信されるデータ転送要求に、当該データの転送に用いられるDMAチャネルを識別する情報を設定しておくことによって、データが転送されたDMAチャネルを識別して、DMAチャネルごとにデータの暗号化を行うことができる。
また、本実施例では、ディスクインタフェース制御部160から受信するデータ読み出し要求には、当該データ転送要求によって要求されるデータを暗号化するか否かを示す暗号化要否フラグが含まれており、この暗号化要否フラグに基づいて、暗号処理部150が、データ読み出し要求に応じてメモリ制御部130から転送されるデータを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化するので、例えば、データ転送を制御するための制御データなど、暗号化を行う必要がないデータを、暗号処理の対象から除くことができる。
また、本実施例では、暗号処理部150が、暗号化データが転送されるDMAチャネルを識別するDMA番号を含んだディスクリプタ2を取得し、取得したディスクリプタ2に含まれるDMA番号に基づいて、同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを、AES暗号方式で規定されたデータサイズ単位で復号化し、AES暗号方式で規定されたデータサイズ単位で復号化したデータをメモリ制御部130に対して転送するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データが転送されたDMAチャネルを識別して、DMAチャネルごとにデータの復号化を行うことができる。
また、本実施例では、暗号処理部150が、蓄積した暗号化データを復号化する際に、AES暗号方式で規定されたデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のDMAチャネルを用いてPCIeで規定されたデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データをAES暗号方式で規定されたデータサイズ単位で復号化するので、データ転送の単位となるデータサイズが暗号処理の単位となるデータサイズを超えていた場合でも、端数となったデータと後続するデータとを結合して、復号化を行うことができる。
また、本実施例では、RAIDコントローラに本発明を適用した場合について説明したが、本発明はこれに限定されるものではなく、例えば、PCIeバスで接続されたデバイスから構成される各種のデータ転送制御装置において、デバイス間で転送されるデータを暗号化および復号化する場合にも同様に適用することができる。
また、本実施例では、暗号方式としてAES暗号方式をそれぞれ用いた場合について説明したが、本発明はこれに限定されるものではなく、他の暗号方式であっても、暗号処理の処理単位と、バスにおけるデータ転送の単位となるデータサイズとが異なるような場合には、同様に適用することができる。
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
(付記1)第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化装置であって、
データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、
前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送手段と、
を備えたことを特徴とするデータ暗号化装置。
(付記2)前記データ暗号化手段は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする付記1に記載のデータ暗号化装置。
(付記3)前記第一の装置に対してデータの転送を要求するとともに当該データの転送に用いるチャネルを識別する要求チャネル識別情報を含んだデータ転送要求を前記第二の装置から受信する転送要求受信手段をさらに備え、
前記データ暗号化手段は、前記転送要求受信手段によりデータ転送要求が受信された場合に、前記要求チャネル識別情報と、前記転送情報取得手段により取得された転送チャネル識別情報とが同じであるか否かを判定し、同じであった場合に、前記第一の装置に対してデータ転送要求を送信し、送信したデータ転送要求に応じて前記第一の装置から転送されるデータを暗号化することを特徴とする付記1または2に記載のデータ暗号化装置。
(付記4)前記転送要求受信手段により受信されるデータ転送要求には、当該データ転送要求によって要求されるデータを暗号化するか否かを示す暗号化要否情報が含まれており、
前記データ暗号化手段は、前記暗号化要否情報に基づいて、前記データ転送要求に応じて前記第一の装置から転送されるデータを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする付記3に記載のデータ暗号化装置。
(付記5)第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化装置であって、
暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、
前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送手段と、
を備えたことを特徴とするデータ復号化装置。
(付記6)前記データ復号化手段は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする付記5に記載のデータ復号化装置。
(付記7)第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化方法であって、
データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、
前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化工程と、
前記データ暗号化工程により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送工程と、
を含んだことを特徴とするデータ暗号化方法。
(付記8)前記データ暗号化工程は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする付記7に記載のデータ暗号化方法。
(付記9)第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化方法であって、
暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、
前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化工程と、
前記データ復号化工程により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送工程と、
を含んだことを特徴とするデータ復号化方法。
(付記10)前記データ復号化工程は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする付記9に記載のデータ復号化方法。
(付記11)ホスト装置から記憶装置に対するデータの転送を制御するデータ転送制御装置であって、
データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、
前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記記憶装置に対して転送するデータ転送手段と、
を備えたことを特徴とするデータ転送制御装置。
(付記12)前記データ暗号化手段は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする付記11に記載のデータ転送制御装置。
(付記13)記憶装置からホスト装置に対する暗号化データの転送を制御するデータ転送制御装置であって、
暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、
前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記ホスト装置に対して転送するデータ転送手段と、
を備えたことを特徴とするデータ転送制御装置。
(付記14)前記データ復号化手段は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする付記13に記載のデータ転送制御装置。
以上のように、本発明に係るデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ転送制御装置は、ディスク制御装置などのデータ転送制御装置において、装置内のデバイス間で転送されるデータの暗号化および復号化する場合に有用であり、特に、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合に適している。
本実施例に係るRAIDコントローラの概念を説明するための説明図である。 本実施例に係るRAIDコントローラの構成を示す機能ブロック図である。 TLPのヘッダのフォーマットを示す図である。 ディスクリプタ1のフォーマットを示す図である。 ディスクリプタ2のフォーマットを示す図である。 ディスクリプタ読み出し要求パケットのアドレス情報を示す図である。 データ読み出し要求パケットのアドレス情報を示す図である。 読み出し要求パケットのヘッダのフォーマットを示す図である。 読み出し応答パケットのヘッダのフォーマットを示す図である。 ライト動作におけるRAIDコントローラの処理手順を示すシーケンス図(1)である。 ライト動作におけるRAIDコントローラの処理手順を示すシーケンス図(2)である。 ライト動作におけるRAIDコントローラの処理手順を示すシーケンス図(3)である。 ライト動作におけるRAIDコントローラの処理手順を示すシーケンス図(4)である。 リード動作におけるRAIDコントローラの処理手順を示すシーケンス図(1)である。 リード動作におけるRAIDコントローラの処理手順を示すシーケンス図(2)である。 リード動作におけるRAIDコントローラの処理手順を示すシーケンス図(3)である。 従来のRAIDシステムの一例を示す図である。 暗号処理チップを用いた場合のRAIDコントローラを示す図である。
符号の説明
10,100 RAIDコントローラ
11,110 ホストインタフェース制御部
12,120 メインメモリ
13,130 メモリ制御部
14,140 CPU
15,150 暗号処理部
16,160 ディスクインタフェース制御部
161 アービター
1621〜162n DMAチャネル
20,200 ホスト装置
30,300 ディスク装置
3101〜310n ディスク

Claims (10)

  1. 第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化装置であって、
    データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
    前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、
    前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送手段と、
    を備えたことを特徴とするデータ暗号化装置。
  2. 前記データ暗号化手段は、前記蓄積したデータを暗号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送されるデータと結合して蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化することを特徴とする請求項1に記載のデータ暗号化装置。
  3. 前記第一の装置に対してデータの転送を要求するとともに当該データの転送に用いるチャネルを識別する要求チャネル識別情報を含んだデータ転送要求を前記第二の装置から受信する転送要求受信手段をさらに備え、
    前記データ暗号化手段は、前記転送要求受信手段によりデータ転送要求が受信された場合に、前記要求チャネル識別情報と、前記転送情報取得手段により取得された転送チャネル識別情報とが同じであるか否かを判定し、同じであった場合に、前記第一の装置に対してデータ転送要求を送信し、送信したデータ転送要求に応じて前記第一の装置から転送されるデータを暗号化することを特徴とする請求項1または2に記載のデータ暗号化装置。
  4. 前記転送要求受信手段により受信されるデータ転送要求には、当該データ転送要求によって要求されるデータを暗号化するか否かを示す暗号化要否情報が含まれており、
    前記データ暗号化手段は、前記暗号化要否情報に基づいて、前記データ転送要求に応じて前記第一の装置から転送されるデータを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする請求項3に記載のデータ暗号化装置。
  5. 第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化装置であって、
    暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
    前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、
    前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送手段と、
    を備えたことを特徴とするデータ復号化装置。
  6. 前記データ復号化手段は、前記蓄積した暗号化データを復号化する際に、前記第二のデータサイズに満たない残余データが生じた場合には、当該残余データを、さらに同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データと結合して蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化することを特徴とする請求項5に記載のデータ復号化装置。
  7. 第一の装置から第二の装置に対して転送されるデータを暗号化するデータ暗号化方法であって、
    データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、
    前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化工程と、
    前記データ暗号化工程により第二のデータサイズ単位で暗号化されたデータを前記第二の装置に対して転送するデータ転送工程と、
    を含んだことを特徴とするデータ暗号化方法。
  8. 第二の装置から第一の装置に対して転送される暗号化データを復号化するデータ復号化方法であって、
    暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得工程と、
    前記転送情報取得工程により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化工程と、
    前記データ復号化工程により第二のデータサイズ単位で復号化されたデータを前記第一の装置に対して転送するデータ転送工程と、
    を含んだことを特徴とするデータ復号化方法。
  9. ホスト装置から記憶装置に対するデータの転送を制御するデータ転送制御装置であって、
    データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
    前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送されるデータを蓄積し、蓄積したデータを第二のデータサイズ単位で暗号化するデータ暗号化手段と、
    前記データ暗号化手段により第二のデータサイズ単位で暗号化されたデータを前記記憶装置に対して転送するデータ転送手段と、
    を備えたことを特徴とするデータ転送制御装置。
  10. 記憶装置からホスト装置に対する暗号化データの転送を制御するデータ転送制御装置であって、
    暗号化データが転送されるチャネルを識別する転送チャネル識別情報を取得する転送情報取得手段と、
    前記転送情報取得手段により取得された転送チャネル識別情報に基づいて、同一のチャネルを用いて第一のデータサイズ単位で転送される暗号化データを蓄積し、蓄積した暗号化データを第二のデータサイズ単位で復号化するデータ復号化手段と、
    前記データ復号化手段により第二のデータサイズ単位で復号化されたデータを前記ホスト装置に対して転送するデータ転送手段と、
    を備えたことを特徴とするデータ転送制御装置。
JP2007035432A 2007-02-15 2007-02-15 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法 Expired - Fee Related JP4347350B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007035432A JP4347350B2 (ja) 2007-02-15 2007-02-15 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US12/003,672 US8321659B2 (en) 2007-02-15 2007-12-28 Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data transfer controlling apparatus
CN200810001575XA CN101246456B (zh) 2007-02-15 2008-01-14 数据加密设备、数据解密设备及数据加密方法
KR1020080005439A KR100953252B1 (ko) 2007-02-15 2008-01-17 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007035432A JP4347350B2 (ja) 2007-02-15 2007-02-15 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法

Publications (2)

Publication Number Publication Date
JP2008197578A true JP2008197578A (ja) 2008-08-28
JP4347350B2 JP4347350B2 (ja) 2009-10-21

Family

ID=39717277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007035432A Expired - Fee Related JP4347350B2 (ja) 2007-02-15 2007-02-15 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法

Country Status (4)

Country Link
US (1) US8321659B2 (ja)
JP (1) JP4347350B2 (ja)
KR (1) KR100953252B1 (ja)
CN (1) CN101246456B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513743A (ja) * 2012-02-29 2015-05-14 アップル インコーポレイテッド ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP2015207288A (ja) * 2014-04-17 2015-11-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング インタフェースユニット

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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
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
US10853277B2 (en) * 2015-06-24 2020-12-01 Intel Corporation Systems and methods for isolating input/output computing resources
US10552619B2 (en) * 2015-07-20 2020-02-04 Intel Corporation Technologies for secure trusted I/O access control
US10181946B2 (en) * 2015-07-20 2019-01-15 Intel Corporation Cryptographic protection of I/O data for DMA capable I/O controllers
US10303900B2 (en) 2015-07-20 2019-05-28 Intel Corporation Technologies for secure programming of a cryptographic engine for trusted I/O
US10248791B2 (en) 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
JP6301027B2 (ja) * 2015-11-24 2018-03-28 三菱電機株式会社 組込み装置、通信方法及び通信プログラム
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
US11169935B2 (en) * 2018-06-20 2021-11-09 Intel Corporation Technologies for low-latency cryptography for processor-accelerator communication
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計算方法
US11474970B2 (en) 2019-09-24 2022-10-18 Meta Platforms Technologies, Llc Artificial reality system with inter-processor communication (IPC)
US11487594B1 (en) 2019-09-24 2022-11-01 Meta Platforms Technologies, Llc Artificial reality system with inter-processor communication (IPC)
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
US11601532B2 (en) 2019-11-15 2023-03-07 Meta Platforms Technologies, Llc Wireless communication with code separation
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 北京中科昊芯科技有限公司 一种保护开发程序的方法以及处理器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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ä
JP3990565B2 (ja) * 2000-12-25 2007-10-17 松下電器産業株式会社 セキュリティ通信パケット処理装置及びその方法
CN2480908Y (zh) * 2001-02-26 2002-03-06 张巨洪 计算机数据加密装置
DE60119694T2 (de) * 2001-04-12 2006-09-14 Stmicroelectronics Ltd., Almondsbury System zum Empfangen von Transportströmen
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 暗号キー、暗号化装置、暗号化復号化装置、暗号キー管理装置及び復号化装置
GB0322683D0 (en) * 2003-09-27 2003-10-29 Koninkl Philips Electronics Nv Data encryption method and apparatus
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 ストレージアレイ装置、暗号化記録システム、暗号化記録読出し方法及びプログラム
JP2008538643A (ja) * 2005-03-28 2008-10-30 データレグロ,インコーポレーテッド リレーショナルデータベース管理システム用の非侵襲性暗号化
JP2006330126A (ja) 2005-05-24 2006-12-07 Matsushita Electric Ind Co Ltd 暗号化処理方法、および復号化処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513743A (ja) * 2012-02-29 2015-05-14 アップル インコーポレイテッド ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP2015207288A (ja) * 2014-04-17 2015-11-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング インタフェースユニット

Also Published As

Publication number Publication date
CN101246456A (zh) 2008-08-20
US20080209203A1 (en) 2008-08-28
JP4347350B2 (ja) 2009-10-21
KR100953252B1 (ko) 2010-04-16
US8321659B2 (en) 2012-11-27
CN101246456B (zh) 2012-01-11
KR20080076718A (ko) 2008-08-20

Similar Documents

Publication Publication Date Title
JP4347350B2 (ja) データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US8165301B1 (en) Input-output device and storage controller handshake protocol using key exchange for data security
US8127150B2 (en) Data security
TWI525471B (zh) 具有加密之資料儲存裝置及其方法以及運用該裝置之系統、固態磁碟機、電腦可讀媒體
TWI492088B (zh) 用於控制固態磁碟之系統、方法及電腦可讀媒體
EP2803012B1 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
JP2019505924A (ja) 周辺コンポーネント相互接続エクスプレス(PCIe)システムのためのインライン暗号エンジン(ICE)
US20080052537A1 (en) Storage device, write-back method, and computer product
TWI767893B (zh) 包含多處理器所共享之記憶體的多處理器系統
US20100241619A1 (en) Backup apparatus with higher security and lower network bandwidth consumption
JP4347351B2 (ja) データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置
US20080059795A1 (en) Security-enabled storage controller
CN110795497A (zh) 分布式存储系统中的协同压缩
CN105354503A (zh) 储存装置数据加解密方法
US9282083B2 (en) Encryption system and method
US20050259458A1 (en) Method and system of encrypting/decrypting data stored in one or more storage devices
CN112887077B (zh) 一种ssd主控芯片随机缓存保密方法和电路
US11354048B2 (en) Storage device and data disposal method thereof
US20130061059A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
US11080409B2 (en) SSD content encryption and authentication
US10929030B2 (en) Computer and control method
US11861374B2 (en) Batch transfer of commands and data in a secure computer system
US20230128638A1 (en) Method of operating storage device and method of operating storage system using the same
KR20230063170A (ko) 스토리지 컨트롤러를 포함하는 스토리지 장치 및 이의 동작 방법
US9086999B2 (en) Data encryption management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees