JP4347351B2 - データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置 - Google Patents

データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置 Download PDF

Info

Publication number
JP4347351B2
JP4347351B2 JP2007035433A JP2007035433A JP4347351B2 JP 4347351 B2 JP4347351 B2 JP 4347351B2 JP 2007035433 A JP2007035433 A JP 2007035433A JP 2007035433 A JP2007035433 A JP 2007035433A JP 4347351 B2 JP4347351 B2 JP 4347351B2
Authority
JP
Japan
Prior art keywords
data
size
encrypted
transmitted
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.)
Expired - Fee Related
Application number
JP2007035433A
Other languages
English (en)
Other versions
JP2008199542A (ja
Inventor
光正 羽根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007035433A priority Critical patent/JP4347351B2/ja
Priority to US12/004,430 priority patent/US8478984B2/en
Priority to KR1020080005457A priority patent/KR100954649B1/ko
Priority to CN2008100030514A priority patent/CN101246415B/zh
Publication of JP2008199542A publication Critical patent/JP2008199542A/ja
Application granted granted Critical
Publication of JP4347351B2 publication Critical patent/JP4347351B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Description

この発明は、第一の装置と第二の装置との間で転送されるデータの暗号化および復号化を行うデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置に関し、特に、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化および復号化を行うことができるデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置に関するものである。
従来、磁気ディスク装置や光ディスク装置などの記憶装置では、盗難や不正アクセスによる情報漏洩を防ぐことを目的とし、記憶媒体(磁気ディスクや光ディスクなど)にデータを記録する際や、ホストコンピュータなどの上位装置との間でデータを送受信する際に、当該データを暗号化することが行われている(例えば、特許文献1および2を参照)。
例えば、記憶媒体として複数のディスクを備えたディスク装置と、ディスク装置に対するデータの読み出しや書き込みを要求する上位装置と、上位装置からの要求に基づいてディスク装置に対するデータの入出力を制御するRAIDコントローラ(ディスク制御装置)とから構成される一般的なRAID(Redundant Arrays of Inexpensive Disks)システムについて考える。
図11は、従来のRAIDシステムの一例を示す図である。同図に示すように、このRAIDシステムは、RAIDコントローラ10と、上位装置であるホスト装置20と、ディスク装置30とから構成されており、RAIDコントローラ10は、ホスト装置20とディスク装置30との間に接続される。
このうち、RAIDコントローラ10は、同図に示すように、ホストインタフェース制御部11と、メインメモリ12と、メモリ制御部13と、CPU(Central Processing Unit)14と、ディスクインタフェース制御部15とを有する。
各機能部について簡単に説明すると、ホストインタフェース制御部11は、ホスト装置20との間でやり取りされるデータ転送を制御する制御部であり、メインメモリ12は、キャッシュとして利用するためのキャッシュ領域などを有するメモリである。
また、メモリ制御部13は、メインメモリ12に対するデータの読み出しおよび書き込みを制御する制御部であり、CPU14は、RAIDコントローラ10を全体制御するファームウェアを実行する中央処理装置であり、ディスクインタフェース制御部15は、ディスク装置30との間で行われるデータ転送を制御する制御部である。
ここで、さらに同図を用いて、かかるRAIDコントローラ10の動作について簡単に説明しておく。なお、以下では、ホスト装置20からライト要求を受信した際の動作(以下、「ライト動作」と呼ぶ)と、ホスト装置20からリード要求を受信した際の動作(以下、「リード動作」と呼ぶ)について、それぞれ説明する。
まず、ライト動作では、同図(a)に示すように、ホスト装置20からライト要求が送信されると(同図に示す(1))、ホストインタフェース制御部11が、当該ライト要求とともに送信されるデータを受信し、メモリ制御部13に引き渡す。メモリ制御部13は、受け取ったデータを順次メインメモリ12のキャッシュ領域に格納する(同図に示す(2))。そして、ディスクインタフェース制御部15が、メモリ制御部13を介してキャッシュ領域からデータを読み出し(同図に示す(3))、読み出したデータをディスク装置30に対して転送する(同図に示す(4))。
一方、リード動作では、同図(b)に示すように、ホスト装置20からリード要求が送信されると(同図に示す(1))、ディスクインタフェース制御部15が、当該リード要求で要求されたデータをディスク装置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のキャッシュ領域とは異なる退避領域に退避する。そして、ディスクインタフェース制御部15が、メモリ制御部13を介して、暗号化済みのデータを退避領域から読み出し、読み出したデータをディスク装置30に対して転送する。
一方、リード動作では、ホスト装置20からリード要求が送信されると、ディスクインタフェース制御部15が、当該リード要求で要求されたデータをディスク装置30から読み出し、メモリ制御部13に引き渡す。メモリ制御部13は、受け取ったデータを順次メインメモリ12のキャッシュ領域に格納する。ここで、ファームウェアが、メモリ制御部13を制御してキャッシュ領域に格納されたデータを順次読み出して復号化し、復号化したデータを、メインメモリ12のキャッシュ領域とは異なる退避領域に退避する。そして、ホストインタフェース制御部11が、メモリ制御部13を介して、復号化済みのデータを退避領域から読み出し、読み出したデータをホスト装置20に対して転送する。
このように、ファームウェアがメインメモリ12とディスク装置30との間で転送されるデータに対して暗号処理を行うことによって、ディスク装置30に記憶されるデータを暗号化することができる。
しかし、ファームウェアに暗号処理を行わせるためには、上述したように、暗号処理を行う前後でデータを一時的に退避するための退避領域が必要になり、RAIDコントローラ10に実装すべきメモリ(メインメモリまたは他のメモリ)の容量が増大するという問題がある。メモリ容量の増大は、RAIDコントローラ10のコスト増にもつながる。
さらに、この場合には、ディスク装置に対するデータの入出力が発生するたびに必ずファームウェアによる暗号処理ステップが行われることになり、データの入出力におけるレスポンスタイムが増加するという問題もある。さらに、ファームウェアが暗号処理を行うことによって、RAIDコントローラ10のCPUにかかる負荷が増大し、その結果としてディスク制御装置のビジー率が高くなり、また、上述の暗号処理に伴うメインメモリバス使用も発生するため、結果的にRAIDシステム全体の性能が低下するという問題もある。
そこで、ここでは、RAIDコントローラ10において、ファームウェアに暗号処理を行わせるのではなく、集積回路などのハードウェアで暗号化および復号化の機能を実現した暗号処理チップを用いて、ディスク装置30に記憶されるデータに対する暗号処理を行うことを前提とする。
その場合、例えば、RAIDコントローラ10とディスク装置30との間に、暗号処理チップを備えたデータ中継装置を接続し、このデータ中継装置が、RAIDコントローラ10からディスク装置30に対して転送されるデータの暗号化、および、ディスク装置30からRAIDコントローラ10に対して転送されるデータの復号化を行う。
これにより、RAIDコントローラ10において、前述した退避領域が不要になるため、ファームウェアで暗号処理を行う場合に生じるコスト増や処理低下の問題は解決される。
特開2003−271460号公報 特開2006−41684号公報
しかしながら、データ中継装置が暗号処理を行う場合には、RAIDコントローラとディスク装置とを接続するインタフェースの種類、および、暗号処理チップに用いられた暗号処理方式の種類によっては、データ転送が不可能になる場合があるという問題がある。以下、この問題について具体的に説明する。
例えば、RAIDコントローラとディスク装置とを接続するインタフェースが、FC(Fibre Channel)またはSAS(Serial Attached SCSI)であった場合を考える。FCやSASでは、データは4バイト(32ビット)の倍数となるサイズの単位で転送され、かかるデータの転送は、SCSI(Small Computer system Interface)で規定されたプロトコルを用いて行われる。
まず、SCSIによるデータ転送について説明しておく。SCSIでは、データ転送を要求する側をイニシエータと呼び、データを提供する側をターゲットと呼ぶ。
例えば、イニシエータからターゲットに対してデータを転送する場合について説明する。図12は、SCSIによるデータ転送を説明するための説明図である。この場合、同図に示すように、まず、イニシエータが、書き込みコマンドを設定した書き込みコマンドパケットをターゲットに対して送信する(同図に示す(1))。
ターゲットは、書き込みコマンドパケットを受信すると、受信可能サイズを設定したデータ転送要求パケットをイニシエータに対して応答し、イニシエータは、当該受信可能サイズに基づいて、書き込み対象のデータを設定したデータパケットをターゲットに対して送信する。
なお、SCSIでは、ひとつのデータ転送要求パケットに設定できる受信可能サイズや、ひとつのデータパケットに設定できるデータのサイズには上限値が決められている。そのため、転送対象のデータのサイズが大きい場合には、当該データは、上限値に基づいて複数のデータ転送要求パケットまたは複数のデータパケットに分割されて転送される。
例えば、同図に示すように、ターゲットが、まず、受信可能サイズをAとしたデータ転送要求パケットをイニシエータに対して応答し(同図に示す(2))、これに対して、イニシエータが、データサイズがBバイトであるデータ1を設定したデータパケットと、データサイズがCバイトであるデータ2を設定したデータパケットとをそれぞれターゲットに対して送信したとする(同図に示す(3)および(4))。なお、ここでは、C=A−Bであるとする。
ターゲットは、データパケットを受信するごとに、受信済データのサイズを累計し、送信したデータ転送要求パケットに設定した受信可能サイズ分のデータがイニシエータから送信された場合には、次のデータ転送要求パケットをイニシエータに対して送信する。
例えば、同図に示すように、ターゲットは、データ1が設定されたデータパケットと、データ2が設定されたデータパケットとをイニシエータからそれぞれ受信すると、受信済データのサイズがB+C=Aバイトとなったため、次のデータ転送要求パケットをイニシエータに対して送信する(同図に示す(5))。
このように、SCSIでは、ターゲットは、送信したデータ転送要求パケットに設定した受信可能サイズ分のデータがイニシエータから送信されるまでは、次のデータ転送要求パケットを送信しない。
このようなSCSIの特性をふまえたうえで、前述したデータ中継装置による暗号処理に係る問題について、具体的に説明する。図13は、データ中継装置による暗号処理に係る問題を説明するための説明図である。
例えば、同図に示すように、FCにより接続されたRAIDコントローラとディスク装置との間にFCスイッチを接続し、このFCスイッチが、AES(Advanced Encryption Standard)暗号方式による暗号処理を行うとする。この場合、RAIDコントローラがイニシエータとなり、ディスク装置がターゲットとなる。
ここでは、RAIDコントローラからディスク装置に対してデータを転送するライト動作について説明する。同図に示すように、ライト動作では、まず、RAIDコントローラが、FCスイッチを経由し、ディスク装置に対して書き込みコマンドパケットを送信する(同図に示す(1))。
ここで、書き込みコマンドパケットを受信したディスク装置が、受信可能サイズを16×A+aバイト(A,aは0以上の整数)としたデータ転送要求パケットを、FCスイッチを経由し、RAIDコントローラに対して応答したとする(同図に示す(2))。なお、ここでは、a<16であるとする。
そして、データ転送要求パケットを受信したRAIDコントローラが、まず、データサイズが16×Bバイト(Bは0以上の整数)であるデータ1を設定したデータパケットを、FCスイッチに送信したとする(同図に示す(3))。
FCスイッチは、データパケットを受信すると、そのデータパケットに設定されているデータ1を、AES暗号方式で暗号化する。AES暗号方式では、16バイト(128ビット)単位でデータが暗号化される。そのため、この場合、FCスイッチは、データ1を全て暗号化することができ、暗号化したデータ1を設定したデータパケットをディスク装置に対して送信する(同図に示す(4))。
ディスク装置は、FCスイッチから送信されたデータパケットを受信し、受信したデータパケットに設定されているデータ1を、記憶媒体であるディスクに書き込む。この時、ディスク装置における受信済データの累計サイズは、16×Bバイトとなる。
続いて、RAIDコントローラが、データサイズが16×C+aバイト(C,aは0以上の整数)であるデータ2を設定したデータパケットをFCスイッチに送信したとする(同図に示す(5))。なお、ここでは、C=A−Bであるとする。
この場合、FCスイッチは、受信したデータパケットに設定されたデータ2の一部である16×Cバイトのデータのみを暗号化する。その結果、16バイト未満であるaバイトのデータが、暗号化されずに残る。そして、ここでFCスイッチが行う処理としては、全てのデータが暗号化できなかったためディスク装置に対して何も送信しないか(同図に示す(6))、または、暗号化した16×Cバイトのデータのみを設定したデータパケットをディスク装置に対して送信するか(同図に示す(7))のいずれが考えられる。
しかし、いずれの場合でも、ディスク装置は、受信済データの累計サイズが、データ転送要求パケットに設定した受信可能サイズである16×A+aバイトにはならないため、次のデータ転送要求パケットを送信することはできない(同図に示す(8))。
このように、FCやSASによってデータ転送が行われる場合には、データ転送の単位となるデータサイズと、暗号処理の単位となるデータサイズが異なる場合、RAIDコントローラがディスク装置に対して転送すべきデータを全て転送する前に、データ転送が中断されてしまうことになる。
そのため、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、いかにして、データ転送を中断させることなく暗号化および復号化を行うかが極めて重要な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化および復号化を行うことができるデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化装置であって、前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、
前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを前記データ暗号化手段により後続してさらに暗号化されるデータである後続暗号化データと結合し、当該未送信データと当該後続暗号化データとを結合することにより得られたデータを前記第二の装置に対して送信するデータ送信手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記データ暗号化手段は、前記第一の装置から送信されるデータを暗号化した際に、前記暗号化データサイズに満たない残余データが生じた場合には、当該残余データを前記第一の装置から後続してさらに送信されるデータである後続転送データと結合し、当該残余データと当該後続転送データとを結合することにより得られたデータを前記暗号化データサイズ単位で暗号化することを特徴とする。
また、本発明は、上記の発明において、前記第一の装置から送信されるデータには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、前記データ暗号化手段は、前記残余データを含んでいたデータの入出力識別情報と前記後続転送データの入出力識別情報とが一致する場合に、当該残余データと当該後続転送データとを結合することを特徴とする。
また、本発明は、上記の発明において、前記第一の装置から送信されるデータには、データの種類を示すデータ種別情報が含まれており、前記データ暗号化手段は、前記第一の装置から応答されるデータを暗号化する際に、前記データ種別情報に基づいて、当該データを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする。
また、本発明は、上記発明の記載のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化装置であって、前記第二の装置から送信される暗号化データを受信するデータ受信手段と、前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、前記データ復号化手段は、前記残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする。
また、本発明は、第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化装置が当該データを暗号化する際に適用されるデータ暗号化方法であって、転送要求送信手段が、前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信工程と、データ暗号化手段が、前記転送要求送信工程により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化工程と、データ送信手段が、前記データ暗号化工程により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを記憶部に保持し当該記憶部に保持したデータを読み出して前記データ暗号化工程により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信工程と、を含んだことを特徴とする。
また、本発明は、上記発明のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化装置が当該暗号化データを復号化する際に適用されるデータ復号化方法であって、データ受信手段が、前記第二の装置から送信される暗号化データを受信するデータ受信工程と、データ復号化手段が、前記データ受信工程により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを記憶部に保持し、当該記憶部に保持した残余データを読み出して前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化工程と、データ送信手段が、前記データ復号化工程により復号化されたデータを前記第一の装置に対して送信するデータ送信工程と、を含んだことを特徴とする。
また、本発明は、第一の装置から第二の装置に対して転送されるデータを中継するとともに、当該データを所定の暗号化データサイズ単位で暗号化するデータ中継装置であって、前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、前記データ暗号化手段により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信手段と、を備えたことを特徴とする。
また、本発明は、上記発明のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを中継するとともに、当該暗号化データを所定の復号化データサイズ単位で復号化するデータ中継装置であって、前記第二の装置から送信される暗号化データを受信するデータ受信手段と、前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、を備えたことを特徴とする。
本発明によれば、受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を第二の装置から受信した場合に、第一の受信可能サイズ以上であり、かつ、暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信し、送信したデータ転送要求に対する応答として第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを暗号化データサイズ単位で暗号化し、暗号化したデータを第一の受信可能サイズ単位で第二の装置に対して送信し、送信時に第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、後続してさらに暗号化されるデータと結合し、結合したデータを第二の装置に対して送信するので、データ転送要求で指定された第一の受信可能サイズ分のデータが、第二の装置に対して送信されることになり、第二の装置が、次のデータ転送を送信することが可能になる。すなわち、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化を行うことができるという効果を奏する。
また、本発明によれば、第一の装置から送信されるデータを暗号化した際に、暗号化データサイズに満たない残余データが生じた場合には、当該残余データを第一の装置から後続してさらに送信されるデータと結合し、結合したデータを、暗号化データサイズ単位で暗号化するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、転送される全てのデータに対して、データ転送を中断させることなく暗号化を行うことができるという効果を奏する。
また、本発明によれば、第一の装置から送信されるデータには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、残余データを、第一の装置から後続してさらに送信されるデータと結合する場合に、入出力識別情報に基づいて結合するので、複数の連続するデータが並列に転送されるような場合でも、それぞれのデータごとに暗号化を行うことができるという効果を奏する。
また、本発明によれば、第一の装置から送信されるデータには、データの種類を示すデータ種別情報が含まれており、第一の装置から応答されるデータを暗号化する際に、データ種別情報に基づいて、当該データを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化するので、制御用のデータは暗号化せずに、ユーザデータのみを暗号化するなど、暗号化する必要があるデータと、暗号化する必要がないデータとを振り分けることができるという効果を奏する。
また、本発明によれば、第二の装置から送信される暗号化データを受信し、暗号化データを受信した場合に、当該暗号化データを復号化データサイズ単位で復号化し、復号化した際に、復号化データサイズに満たない残余データが生じた場合には、当該残余データを、第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを復号化データサイズ単位で復号化し、復号化したデータを第一の装置に対して送信するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、転送される全てのデータに対して、データ転送を中断させることなく復号化を行うことができるという効果を奏する。
また、本発明によれば、第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、残余データを、第二の装置から後続してさらに送信される暗号化データと結合する場合に、入出力識別情報に基づいて結合するので、複数の連続するデータが並列に転送されるような場合でも、それぞれのデータごとに復号化を行うことができるという効果を奏する。
また、本発明によれば、第二の装置から送信される暗号化データには、データの種類を示すデータ種別情報が含まれており、第二の装置から送信される暗号化データを復号化する際に、データ種別情報に基づいて、当該暗号化データを復号化するか否かを判定し、復号化すると判定した場合に、暗号化データを復号化するので、制御用のデータは復号化せずに、ユーザデータのみを復号化するなど、復号化する必要があるデータと、復号化する必要がないデータとを振り分けることができるという効果を奏する。
以下に添付図面を参照して、この発明に係るデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置の好適な実施例を詳細に説明する。なお、本実施例では、FCスイッチに本発明を適用した場合について説明する。
まず、本実施例に係るFCスイッチの概念について説明する。図1および2は、本実施例に係るFCスイッチの概念を説明するための説明図(1)および(2)である。このうち、図1は、図13で説明したFCスイッチに本発明を適用した場合を示している。
図1および2に示すように、本実施例に係るFCスイッチは、RAIDコントローラとディスク装置との間でやり取りされるデータを中継するとともに、当該データを暗号化および復号化する装置であって、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化および復号化を行うことができる点に主な特徴がある。
この特徴について具体的に説明すると、まず、ライト動作では、図1の(1)〜(6)に示すように、RAIDコントローラが書き込みコマンドパケットを送信してから、ディスク装置がデータ転送要求パケットを送信し、これに応じて、RAIDコントローラが、データ1を設定したデータパケット、および、データ2を設定したデータパケットをディスク装置に対して送信するまでは、図13の(1)〜(5)に示した手順と同じであるが、まず、FCスイッチが、ディスク装置から送信されたデータ転送要求パケットに対して新たな受信可能サイズを設定したうえで、当該データ転送要求パケットをRAIDコントローラに対して送信する点が異なる。
ここでは、FCスイッチは、ディスク装置から送信されたデータ転送要求パケットに対して、当該データ転送要求パケットに設定されていた受信可能サイズ以上であり、かつ、AES暗号方式の処理単位となるデータサイズの倍数、すなわち、16バイトの倍数となる新たな受信可能サイズを設定したうえで、当該データ転送要求パケットをRAIDコントローラに対して送信する。
例えば、FCスイッチは、受信可能サイズを16×A+aとしたデータ転送要求パケットが送信されると、当該データ転送要求に対して、16×A+16バイトを新たな受信可能サイズとして設定する(図1に示す(3))。
これにより、RAIDコントローラからFCスイッチに送信されるデータのサイズは16バイトの倍数になるため、FCスイッチが、当該データをAES暗号方式で暗号化する際に、16バイト未満のデータを残すことなく、完全にデータを暗号化することが可能になる。
例えば、データ転送要求パケットに設定された受信可能サイズが16×A+16バイトに増えたことによって、RAIDコントローラは、x=16−aとした場合に、サイズが16×C+a+xバイトであるデータ2を設定したデータパケットをFCスイッチに対して送信する(図1に示す(6))。ここで、a+x=16であるので、データ2のサイズは16バイトの倍数となる。
そして、FCスイッチは、データ2を全て暗号化し、暗号化したデータのうち16×C+aバイト分のデータを設定したデータパケットをディスク装置に対して送信し、xバイト分のデータを内部メモリに保持する(図1に示す(7))。
ディスク装置は、FCスイッチから送信されたデータパケットに設定されているデータを、記憶媒体であるディスクに書き込む。この時、ディスク装置が受信したデータの累計サイズは、16×B+16×C+a=16×A+a、すなわち、データ転送要求パケットに設定した受信可能サイズと同じになる。これにより、ディスク装置は、次のデータ転送要求パケットを送信することができる(図1に示す(8))。
その後、FCスイッチは、同図に示した(3)以降と同様の処理を行い、ディスク装置から後続して送信されるデータ転送要求パケットに応じて、RAIDコントローラからデータパケットが送信されると(図1に示す(10))、当該データパケットに設定されているデータを暗号化し、暗号化したデータと、内部メモリに保持した暗号化済みの未転送データ(xバイトのデータ)とを結合し、結合したデータを設定したデータパケットをディスク装置に対して送信する(図1に示す(11))。これ以降は、ディスク装置、FCスイッチおよびRAIDコントローラは、同図に示した(6)以降と同様の処理を行う。
このように、本実施例に係るFCスイッチでは、受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求パケットをディスク装置から受信した場合に、第一の受信可能サイズ以上であり、かつ、暗号化データサイズ(AES暗号方式の処理単位となるデータサイズ)の倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求パケットをRAIDコントローラに対して送信し、送信したデータ転送要求パケットに対する応答としてRAIDコントローラから送信される第二の受信可能サイズ分のデータを受信し、受信したデータを暗号化データサイズ単位で暗号化し、暗号化したデータを第一の受信可能サイズ単位でディスク装置に対して送信し、送信時に第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、後続してさらに暗号化されるデータと結合し、結合したデータを含めたデータパケットをディスク装置に対して送信するようにしている。
これにより、データ転送要求で指定された第一の受信可能サイズ分のデータが、ディスク装置に対して送信されることになり、ディスク装置が、次のデータ転送を送信することができる。すなわち、FCやSASとAES暗号方式のように、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化を行うことができる。
一方、ディスク装置からRAIDコントローラにデータを転送するリード動作では、図2に示すように、まず、RAIDコントローラが、FCスイッチを経由し、ディスク装置に対して読み出しコマンドパケットを送信する(同図に示す(1))。
ここで、読み出しコマンドパケットを受信したディスク装置が、まず、データサイズが16×A+aバイト(A,aは0以上の整数)であるデータ1を設定したデータパケットを、FCスイッチに対して送信したとする(同図に示す(2))。なお、ここでは、a<16であるとする。
FCスイッチは、データパケットを受信すると、そのデータパケットに設定されているデータを、AES暗号方式で復号化する。AES暗号方式では、16バイト(128ビット)単位でデータが復号化される。そのため、FCスイッチは、受信したデータを16バイト単位で暗号化し、16バイトに満たないデータが残った場合には、残ったデータを内部メモリに保持する。
すなわち、ここでは、FCスイッチは、データ1のうち16×Aバイトのデータを復号化し、残ったaバイトのデータを内部メモリに保持する。そして、FCスイッチは、復号化したデータをRAIDコントローラに対して送信する(同図に示す(3))。
ディスク装置は、RAIDコントローラからデータパケットを受信すると、当該データパケットに設定されているデータをメインメモリのキャッシュ領域に格納する。この時、RAIDコントローラにおける受信済データの累計サイズは、16×Aバイトとなる。
続いて、ディスク装置が、データサイズがn+16×B+bバイト(n,B,bは0以上の整数)であるデータ2を設定したデータパケットを、FCスイッチに対して送信したとする(同図に示す(4))。なお、ここでは、n=16−a,b<16であるとする。
FCスイッチは、データパケットを受信すると、そのデータパケットに設定されているデータを、AES暗号方式で復号化する。この時、FCスイッチは、受信したデータの先頭に、内部メモリに保持しているデータを結合したうえで復号化を行い、16バイトに満たない、結合したデータを復号化する。
すなわち、ここでは、FCスイッチは、内部メモリに保持しているaバイトのデータをデータ2の先頭に結合し、結合したデータのうちa+n+16×Bバイトのデータを復号化し、残ったbバイトのデータを内部メモリに保持する。そして、FCスイッチは、復号化したデータを設定したデータパケットをRAIDコントローラに対して送信する(同図に示す(5))。
ディスク装置は、RAIDコントローラからデータパケットを受信すると、当該データパケットに設定されているデータをメインメモリのキャッシュ領域に格納する。この時、RAIDコントローラにおける受信済データの累計サイズは、16×A+a+n+16×Bバイトとなる。
さらに、ディスク装置が、読み出し対象の最終データとして、データサイズがm+16×C+cバイト(m,C,cは0以上の整数)であるデータ3を設定したデータパケットを、FCスイッチに対して送信したとする(同図に示す(6))。なお、ここでは、m=16−bであり、cは16の倍数であるとする。
FCスイッチは、内部メモリに保持しているbバイトのデータをデータ3の先頭に結合し、結合したデータのうちb+m+16×C+cバイトのデータを復号化する。そして、FCスイッチは、復号化したデータを設定したデータパケットをRAIDコントローラに対して送信する(同図に示す(7))。
ディスク装置は、RAIDコントローラからデータパケットを受信すると、当該データパケットに設定されているデータをメインメモリのキャッシュ領域に格納する。この時、RAIDコントローラにおける受信済データの累計サイズは、16×A+a+n+16×B+b+m+16×C+cバイトとなる。
これにより、RAIDコントローラは、ディスク装置から送信された全てのデータ(データ1、データ2およびデータ3)をメインメモリのキャッシュメモリに格納したことになる。
このように、本実施例に係るFCスイッチでは、ディスク装置から送信される暗号化データを受信し、暗号化データを受信した場合に、当該暗号化データを復号化データサイズ(AES暗号方式の処理単位となるデータサイズ)単位で復号化し、復号化した際に、復号化データサイズに満たない残余データが生じた場合には、当該残余データを、ディスク装置から後続してさらに送信される暗号化データと結合し、結合したデータを復号化データサイズ単位で復号化し、復号化したデータをRAIDコントローラに対して送信するようにしている。
これにより、FCやSASとAES暗号方式のように、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、転送される全てのデータに対して、データ転送を中断させることなく復号化を行うことができる。
次に、本実施例に係るFCスイッチを用いたRAIDシステムについて説明する。図3は、本実施例に係るRAIDシステムの構成を示す機能ブロック図である。同図に示すように、このRAIDシステムは、各種データを記憶するディスク装置300と、ディスク装置300に対するデータのライトやリードを要求するホスト装置200との間に、FCを介して、RAIDコントローラ100と、FCスイッチ400とがそれぞれ接続されて構成される。
RAIDコントローラ100は、ホスト装置200からの指示に応じて、ディスク装置300へのデータの入出力を制御する装置であり、ホスト装置200との間でやり取りされるデータ転送を制御するホストインタフェース制御部110と、キャッシュとして利用するためのキャッシュ領域などを有するメインメモリ120と、メインメモリ120に対するデータの読み出しおよび書き込みを制御するメモリ制御部130と、RAIDコントローラ100を全体制御するファームウェアを実行するCPU140と、ディスク装置300との間で行われるデータ転送を制御するディスクインタフェース制御部150とを有する。
FCスイッチ400は、RAIDコントローラ100とディスク装置300との間で転送されるデータを中継するとともに、当該データを暗号化および復号化する装置であり、AES暗号方式を用いた暗号処理チップを備えた暗号処理部430を有する。
かかるRAIDシステムの動作について簡単に説明すると、ライト動作では、同図(a)に示すように、ホスト装置200からライト要求が送信されると(同図に示す(1))、RAIDコントローラ100において、ホストインタフェース制御部110が、当該ライト要求とともに送信されるデータを受信し、メモリ制御部130に引き渡す。メモリ制御部130は、受け取ったデータを順次メインメモリ120のキャッシュ領域に格納する(同図に示す(2))。
そして、ディスクインタフェース制御部150が、メモリ制御部130を介してキャッシュ領域から順次データを読み出し(同図に示す(3))、読み出したデータを、FCスイッチ400に対して送信する(同図に示す(4))。そして、FCスイッチ400において、暗号処理部430が、受信したデータを暗号化し、ディスク装置300に対して送信する(同図に示す(5))。ディスク装置300は、暗号処理部430から送信されたデータを、記憶媒体であるディスクに書き込む。
一方、リード動作では、同図(b)に示すように、ホスト装置200からリード要求が送信されると(同図に示す(1))、ディスク装置300が、要求されたデータをディスクから読み出し、FCスイッチに対して送信する(同図に示す(2))。FCスイッチ400は、ディスク装置300からデータが送信されると、暗号処理部430が、当該データを復号化し、RAIDコントローラ100に対して送信する。
RAIDコントローラ100では、ディスクインタフェース制御部150が、暗号処理部430から送信されたデータを受信し(同図に示す(3))、受信したデータを、メモリ制御部130を介して順次メインメモリ120のキャッシュ領域に格納する(同図に示す(4))。そして、ホストインタフェース制御部110が、メモリ制御部130を介して、復号化済みのデータをキャッシュ領域から読み出し(同図に示す(5))、読み出したデータをホスト装置200に対して転送する(同図に示す(6))。
ここで、図3に示したFCスイッチ400の構成について、さらに詳細に説明する。図4は、本実施例に係るFCスイッチ400の構成を示す機能ブロック図である。同図に示すように、FCスイッチ400は、RAIDコントローラ100とディスク装置300との間にFCを介して接続される。
まず、RAIDコントローラ100について説明する。このRAIDコントローラ100は、ホスト装置200からの要求に基づいて、SCSIで規定されたプロトコルを用いてデータ転送を行う。
具体的には、RAIDコントローラ100は、ホスト装置200からライト要求が送信されると、FCスイッチ400に対して書き込みコマンドパケットを送信し、書き込みコマンドパケットに応じて送信されるデータ転送要求パケットがFCスイッチ400から送信されると、当該データ転送要求パケットに基づいて、メインメモリ120のキャッシュ領域から読み出し、読み出したデータを設定したデータパケットをFCスイッチ400に対して送信する。
一方、RAIDコントローラ100は、ホスト装置200からリード要求が送信されると、FCスイッチ400に対して読み出しコマンドパケットを送信し、読み出しコマンドで要求したデータが設定されたデータパケットがFCスイッチ400から送信されると、当該データをメインメモリ120のキャッシュ領域に格納する。
続いて、ディスク装置300について説明する。このディスク装置300は、RAIDコントローラ100から送信される各種コマンドパケットに基づいて、SCSIで規定されたプロトコルを用いてデータ転送を行う。
具体的には、ディスク装置300は、FCスイッチ400から書き込みコマンドが送信されると、ディスク3101〜310nの空き容量などを確認し、受信可能なデータのサイズを示す受信可能サイズを含んだデータ転送要求パケットをFCスイッチ400に対して送信する。
一方、ディスク装置300は、FCスイッチ400から読み出しコマンドパケットが送信されると、当該読み出しコマンドに基づいてディスク3101〜310nからデータを読み出し、読み出したデータをFCスイッチ400に対して送信する。
続いて、FCスイッチ400について説明する。このFCスイッチ400は、FCを介して通信を行う装置の間で、データの中継や通信経路の制御などを行う機能を備えた一般的なスイッチであり、特に本発明に関連する機能部としては、コントローラインタフェース制御部410と、ディスクインタフェース制御部420と、暗号処理部430とを有する。
コントローラインタフェース制御部410は、RAIDコントローラ100との間で、FCを介してやり取りされるデータの送受信を制御する処理部である。例えば、コントローラインタフェース制御部410は、書き込みコマンドパケットや読み出しコマンドパケット、データパケットなどをRAIDコントローラ100から受信し、データパケットや、データ転送要求パケットなどをRAIDコントローラ100に対して送信する。
ディスクインタフェース制御部420は、ディスク装置300との間で、FCを介してやり取りされるデータの送受信を制御する処理部である。例えば、ディスクインタフェース制御部420は、RAIDコントローラ100から送信された書き込みコマンドパケットや読み出しコマンドパケット、ディスク3101〜310nに書き込むデータが設定されたデータパケット、データ転送要求パケットなどをディスク装置300に対して送信し、ディスク3101〜310nから読み出したデータが設定されたデータパケットなどをディスク装置300から受信する。
暗号処理部430は、AES暗号方式を用いた暗号処理チップを備え、RAIDコントローラ100とディスク装置300との間で転送されるデータを暗号化および復号化する処理部である。以下、暗号処理部430によって行われる処理について説明するが、ここでは、ライト動作において行われる処理と、リード動作において行われる処理とをそれぞれ説明する。
まず、ライト動作では、暗号処理部430は、RAIDコントローラ100から書き込みコマンドパケットが送信されると、当該書き込みコマンドパケットをディスク装置300に対して転送する。
そして、暗号処理部430は、転送した書き込みコマンドパケットに応じてディスク装置300からデータ転送要求パケットが送信されると、当該データ転送要求パケットに含まれている受信可能サイズを参照し、その受信可能サイズ以上であり、かつ、暗号化データサイズ(16バイト)の倍数となる新たな受信可能サイズを算出する。
さらに、暗号処理部430は、算出した新たな受信可能サイズを、ディスク装置300から送信されたデータ転送要求パケットに対して設定し、当該データ転送要求パケットをRAIDコントローラ100に対して送信する。
そして、暗号処理部430は、送信したデータ転送要求パケットに応じて、RAIDコントローラ100からデータが送信されると、当該データを、AES暗号方式の処理単位となる16バイト単位で暗号化し、ディスク装置300に対して送信する。
ここで、暗号処理部430は、暗号化において16バイトに満たない残余データが生じた場合には、当該データを内部メモリに保持しておく。そして、暗号処理部430は、RAIDコントローラ100から後続してデータが送信された場合には、当該データの先頭に、内部メモリに保持しておいたデータを結合し、結合したデータを暗号化する。
また、暗号処理部430は、データを暗号化するたびに、それまでに暗号化したデータのサイズの累計を算出し、算出した累計と、内部メモリに記憶している受信可能サイズとが同じになった場合には、以降のデータはディスク装置300に送信せずに、内部メモリに保持しておく。
これにより、データ転送要求パケットで指定した受信可能サイズ分のデータがディスク装置300に対して送信されるので、ディスク装置は、次のデータ転送要求パケットを、FCスイッチ400を介し、RAIDコントローラ100に対して送信することができる。
そして、暗号処理部430は、次にディスク装置300から送信されるデータ転送要求に応じてRAIDコントローラ100からデータが送信された場合には、当該データを暗号化したのちに、そのデータの先頭に、内部メモリに保持しておいたデータを結合し、結合したデータをディスク装置300に対して転送する。
一方、リード動作では、暗号処理部430は、RAIDコントローラ100から読み出しコマンドパケットが送信されると、当該読み出しコマンドパケットをディスク装置300に対して転送する。
そして、暗号処理部430は、転送した書き込みコマンドパケットに応じてディスク装置300からデータ転送要求パケットが送信されると、当該データを、AES暗号方式の処理単位となる16バイト単位で復号化し、RAIDコントローラ100に対して送信する。
ここで、暗号処理部430は、復号化において16バイトに満たない残余データが生じた場合には、当該データを内部メモリに保持しておく。そして、暗号処理部430は、ディスク装置300から後続してデータが送信された場合には、当該データの先頭に、内部メモリに保持しておいたデータを結合し、結合したデータを復号化する。
以上、暗号処理部430によって行われる処理について、ライト動作において行われる処理と、リード動作において行われる処理とをそれぞれ説明したが、以下では、それぞれの動作において共通して行われる処理について説明する。
前述したように、SCSIでは、転送されるデータのサイズが所定のサイズより大きい場合には、ひとつのコマンドパケットで処理されるデータが複数のパケットに分割されて転送される。そのため、RAIDコントローラ100が複数のコマンドを並列に処理することが可能である場合には、FCスイッチ400には、異なるコマンドに応じて生成されたパケットが混在して送信されることになる。
そのため、暗号処理部430は、複数送信されるそれぞれのパケットを、同じコマンドに応じて生成されたパケットごとに分類して、暗号処理を行う必要がある。
FCの場合、データ転送を行う際の単位となるパケットには、データ転送を制御するための制御情報を含んだFCフレームヘッダが付加されている。図5は、FCフレームヘッダのフォーマットを示す図である。同図に示すように、FCフレームには各種の制御情報が設定されるが、このうち、「OX_ID」には、同じコマンドに応じて生成されたパケットである場合、同じ値が設定される。
そこで、暗号処理部430は、RAIDコントローラ100から書き込みコマンドパケットまたは読み出しコマンドパケットを受信した際に、当該コマンドに設定されている「OX_ID」を内部メモリに記憶しておき、その後、データ転送要求パケットやデータパケットに対する処理を行う場合には、各パケットに設定されている「OX_ID」が、記憶している「OX_ID」と同じであるか否かを判定し、同じ場合のみ処理を行う。
なお、本実施例では、RAIDコントローラ100とディスク装置300とを接続するインタフェースがFCであった場合について説明しているが、インタフェースがSASであった場合でも、本発明は同様に適用することができる。
その場合、パケットに付加されたSASフレームヘッダに設定されている情報に基づいて、同様の判定を行う。図6は、SASフレームヘッダのフォーマットを示す図である。SASの場合は、同図に示す「Tag」を用いることによって、同様の判定を行う。
また、FCやSASでは、転送されるパケットは、各種コマンドなどを含んだ制御用のパケットと、ユーザデータを含んだデータパケットに大別されるが、暗号処理部430は、データパケットに含まれるユーザデータのみを暗号化する。そのため、暗号処理部430は、パケットを受信した際に、当該パケットが制御用のパケットであるかデータパケットであるかを判定し、データパケットであった場合のみ暗号処理を行う。
FCやSASのパケットでは、フレームヘッダに続く領域にSCSI層のヘッダが設定される。暗号処理部430は、このSCSI層のヘッダに含まれるコマンド情報に基づいて、パケットの種類を識別する。図7はSCSI層のヘッダに含まれるコマンド情報を示す図である。同図の(a)は、FCおよびSASのフレームヘッダの一部を示しており、同図に示す「CDB」がコマンド情報である。
かかるコマンド情報には、同図の(b)に示すように、コマンドの種類を示す「OPERATION CODE」が含まれており、「OPERATION CODE」には、同図の(c)に示すように、各種のコマンドが設定される。
そこで、例えば、暗号処理部430は、パケットに含まれる「OPERATION CODE」に設定されているコマンドが、「READ(任意の数値)」、「WRITE(任意の数値)」または「WRITE AND VERIFY(任意の数値)」であった場合には、当該パケットが、読み出し対象または書き込み対象のユーザデータを含んだデータパケットであると判定し、暗号処理を行う。
次に、本実施例に係るFCスイッチ400の処理手順について説明する。ここでは、図8および9を参照して、ライト動作におけるFCスイッチ400の処理手順について説明した後に、図10を参照して、リード動作におけるFCスイッチ400について処理手順を説明する。
最初に、ライト動作におけるFCスイッチ400の処理手順について説明する。図8および9は、ライト動作におけるFCスイッチ400の処理手順を示す図(1)および(2)である。
図8に示すように、ライト動作では、FCスイッチ400は、RAIDコントローラ100から送信された書き込みコマンド(wtコマンド)パケットを受信すると(ステップS101)、受信したパケットのSCSI層のヘッダに含まれるコマンドを解析し(ステップS102)、当該コマンドが暗号対象であるか否かを判定する。
ここで、暗号対象であった場合には、FCスイッチ400は、当該パケットのフレームヘッダに含まれる「OX_ID」を記憶するとともに(ステップS103)、当該書き込みコマンドパケットをディスク装置300に対して送信する。
そして、書き込みコマンドパケットに応じてディスク装置300から送信されたデータ転送要求パケット(X.RDY)を受信すると、FCスイッチ400は、受信したパケットのフレームヘッダに含まれる「OX_ID」と、記憶している「OX_ID」とが一致しているか否かを判定する(ステップS104)。
ここで、一致していた場合には、FCスイッチ400は、データ転送要求パケットに含まれる受信可能サイズを記憶し(ステップS105)、さらに、この受信可能サイズ以上であり、かつ、16バイトの倍数となる新たな受信可能サイズを設定し、設定した受信可能サイズを、データ転送要求パケットに含めることによって、RAIDコントローラ100に対して通知する(ステップS106)。
例えば、同図に示すように、データ転送要求パケットに含まれる受信可能サイズが16×A+aバイトであった場合には、16×(A+1)バイトを、新たな受信可能サイズとしてRAIDコントローラ100に通知する。
そして、データ転送要求パケットに応じてRAIDコントローラ100からデータパケット(DATA1〜DATA4)が送信されると、FCスイッチ400は、それぞれ、パケットのフレームヘッダに含まれる「OX_ID」が、記憶している「OX_ID」と一致しているか否かを判定する(ステップS107)。
ここで、一致していた場合には、FCスイッチ400は、データパケットに含まれるユーザデータを解析し、16バイトの端数がある場合には、端数分のデータを保持する。その場合、FCスイッチ400は、次のデータパケットを受信した際に、そのパケットの先頭に、保持した端数データを結合する(ステップS108)。
そして、FCスイッチ400は、16バイトのデータが揃った部分のみをAES暗号化し、ディスク装置300に対して送信する(ステップS109)。ここで、FCスイッチ400は、ステップS105で記憶した受信可能サイズと、暗号化したデータのサイズとが同じになった場合には、それ以降、RAIDコントローラ100から送信されるデータは、ディスク装置300へ送信せずに保持しておく(ステップS110)。
これにより、ディスク装置300には、データ転送要求パケットに設定されていた受信可能サイズ分のデータが送信される。例えば、ディスク装置300には、同図に示すように、16×A+aバイトのデータが送信される。
そして、図9に示すように、ディスク装置300から次のデータ転送要求パケットが送信されると、FCスイッチ400は、ステップS104〜S106と同様の処理を行い、新たな受信可能サイズを含めたデータ転送要求パケットをRAIDコントローラ100に対して送信する(ステップS111〜S113)。
そして、データ転送要求パケットに応じてRAIDコントローラ100からデータパケット(DATA5〜DATA8)が送信されると、FCスイッチ400は、それぞれ、パケットのフレームヘッダに含まれる「OX_ID」が、記憶している「OX_ID」と一致しているか否かを判定する(ステップS114)。
ここで、一致していた場合には、FCスイッチ400は、未送信データ(ステップS110を参照)が保持されているか否かを確認し、保持されている場合には、当該未送信データを、最初に受信したデータパケットに含まれるユーザデータの先頭に結合する(ステップS115)。
そして、FCスイッチ400は、データパケットに含まれるユーザデータを解析し、16バイトの端数がある場合には、端数分のデータを保持する。その場合、FCスイッチ400は、次のデータパケットを受信した際に、そのパケットの先頭に、保持した端数データを結合する(ステップS116)。
そして、FCスイッチ400は、16バイトのデータが揃った部分のみをAES暗号化し、ディスク装置300に対して送信する(ステップS117)。ここで、FCスイッチ400は、ステップS105で記憶した受信可能サイズと、暗号化したデータのサイズとが同じになった場合には、それ以降、RAIDコントローラ100から送信されるデータは、ディスク装置300へ送信せずに保持しておく(ステップS118)。
そして、FCスイッチ400は、最終データであることを示す情報(End Sequence)を含んだデータパケットを受信した場合にディスク装置300が送信する終了コマンドパケット(RSP)を受信すると、受信したパケットのフレームヘッダに含まれる「OX_ID」が、記憶している「OX_ID」と一致しているか否かを判定する(ステップS119)。
ここで、一致していた場合には、FCスイッチ400は、当該書き込みコマンドによる入出力処理を終了する(ステップS120)。
続いて、リード動作におけるFCスイッチ400の処理手順について説明する。図10は、リード動作におけるFCスイッチ400の処理手順を示す図である。
図10に示すように、リード動作では、FCスイッチ400は、RAIDコントローラ100から送信された読み出しコマンド(rdコマンド)パケットを受信すると(ステップS201)、受信したパケットのSCSI層のヘッダに含まれるコマンドを解析し(ステップS202)、当該コマンドが暗号対象であるか否かを判定する。
ここで、暗号対象であった場合には、FCスイッチ400は、当該パケットのフレームヘッダに含まれる「OX_ID」を記憶するとともに(ステップS203)、当該読み出しコマンドパケットをディスク装置300に対して送信する。
そして、読み出しコマンドパケットに応じてディスク装置300からデータパケット(DATA1〜DATA4)が送信されると、FCスイッチ400は、それぞれ、パケットのフレームヘッダに含まれる「OX_ID」が、記憶している「OX_ID」と一致しているか否かを判定する(ステップS204)。
ここで、一致していた場合には、FCスイッチ400は、データパケットに含まれるユーザデータを解析し、16バイトの端数がある場合には、端数分のデータを保持する。その場合、FCスイッチ400は、次のデータパケットを受信した際に、そのパケットの先頭に、保持した端数データを結合する(ステップS205)。
そして、FCスイッチ400は、16バイトのデータが揃った部分のみをAES復号化し、RAIDコントローラ100に対して送信する(ステップS206)。
そして、FCスイッチ400は、最終データであることを示す情報(End Sequence)を含んだデータパケットを送信した場合にディスク装置300が送信する終了コマンドパケット(RSP)を受信すると、受信したパケットのフレームヘッダに含まれる「OX_ID」が、記憶している「OX_ID」と一致しているか否かを判定する(ステップS207)。
ここで、一致していた場合には、FCスイッチ400は、当該読み出しコマンドによる入出力処理を終了する(ステップS208)。
上述してきたように、本実施例では、FCスイッチ400が、受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求パケットをディスク装置300から受信した場合に、第一の受信可能サイズ以上であり、かつ、暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求パケットをRAIDコントローラ100に対して送信し、送信したデータ転送要求に対する応答としてRAIDコントローラ100から送信される第二の受信可能サイズのデータを含んだデータパケットを受信し、当該データを暗号化データサイズ単位で暗号化し、暗号化したデータを第一の受信可能サイズ単位でディスク装置300に対して送信し、送信時に第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、後続してさらに暗号化されるデータと結合し、結合したデータを含めたデータパケットをディスク装置300に対して送信するので、データ転送要求パケットで指定された第一の受信可能サイズ分のデータが、ディスク装置300に対して送信されることになり、ディスク装置300が、次のデータ転送を送信することが可能になる。すなわち、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、データ転送を中断させることなく暗号化を行うことができる。
また、本実施例では、FCスイッチ400が、RAIDコントローラ100から送信されるデータパケットに含まれるデータを暗号化した際に、暗号化データサイズに満たない残余データが生じた場合には、当該残余データをRAIDコントローラ100から後続してさらに送信されるデータパケットに含まれるデータと結合し、結合したデータを、暗号化データサイズ単位で暗号化するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、転送される全てのデータに対して、データ転送を中断させることなく暗号化を行うことができる。
また、本実施例では、FCスイッチ400が、RAIDコントローラ100から送信されるデータパケットには、連続するデータである場合に同じ値が設定される「OX_ID」が含まれており、残余データを、RAIDコントローラ100から後続してさらに送信されるデータと結合する場合に、「OX_ID」に基づいて結合するので、複数の連続するデータが並列に転送されるような場合でも、それぞれのデータごとに暗号化を行うことができる。
また、本実施例では、RAIDコントローラ100から送信されるデータパケットには、データの種類を示すコマンド情報が含まれており、FCスイッチ400が、RAIDコントローラ100から応答されるデータパケットに含まれるデータを暗号化する際に、コマンド情報に基づいて、当該データを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化するので、制御用のデータは暗号化せずに、ユーザデータのみを暗号化するなど、暗号化する必要があるデータと、暗号化する必要がないデータとを振り分けることができる。
また、本実施例では、FCスイッチ400が、ディスク装置300から送信されるデータパケットを受信し、データパケットを受信した場合に、当該データパケットに含まれる暗号化データを復号化データサイズ単位で復号化し、復号化した際に、復号化データサイズに満たない残余データが生じた場合には、当該残余データを、ディスク装置300から後続してさらに送信される暗号化データと結合し、結合したデータを復号化データサイズ単位で復号化し、復号化したデータをRAIDコントローラ100に対して送信するので、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合でも、転送される全てのデータに対して、データ転送を中断させることなく復号化を行うことができる。
また、本実施例では、ディスク装置300から送信されるデータパケットに含まれる暗号化データには、連続するデータである場合に同じ値が設定される「OX_ID」が含まれており、残余データを、ディスク装置300から後続してさらに送信される暗号化データと結合する場合に、「OX_ID」に基づいて結合するので、複数の連続するデータが並列に転送されるような場合でも、それぞれのデータごとに復号化を行うことができる。
また、本実施例では、ディスク装置300から送信されるデータパケットには、データの種類を示すコマンド情報が含まれており、FCスイッチ400が、ディスク装置300から送信されるデータパケットに含まれる暗号化データを復号化する際に、コマンド情報に基づいて、当該暗号化データを復号化するか否かを判定し、復号化すると判定した場合に、暗号化データを復号化するので、制御用のデータは復号化せずに、ユーザデータのみを復号化するなど、復号化する必要があるデータと、復号化する必要がないデータとを振り分けることができる。
なお、本実施例では、FCスイッチ400に本発明を適用した場合について説明したが、本発明はこれに限られるわけではなく、上記で説明した暗号処理部430が有する機能を、RAIDコントローラ100やディスク装置300が有するように構成してもよい。
また、本実施例では、暗号方式としてAES暗号方式をそれぞれ用いた場合について説明したが、本発明はこれに限定されるものではなく、他の暗号方式であっても、暗号処理の処理単位となるデータサイズと、データ転送の単位となるデータサイズとが異なるような場合には、同様に適用することができる。
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
(付記1)第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化装置であって、
前記受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、
前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、
前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、前記データ暗号化手段により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信手段と、
を備えたことを特徴とするデータ暗号化装置。
(付記2)前記データ暗号化手段は、前記第一の装置から送信されるデータを暗号化した際に、前記暗号化データサイズに満たない残余データが生じた場合には、当該残余データを前記第一の装置から後続してさらに送信されるデータと結合し、結合したデータを、前記暗号化データサイズ単位で暗号化することを特徴とする付記1に記載のデータ暗号化装置。
(付記3)前記第一の装置から送信されるデータには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
前記データ暗号化手段は、前記残余データを、前記第一の装置から後続してさらに送信されるデータと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする付記2に記載のデータ暗号化装置。
(付記4)前記第一の装置から送信されるデータには、データの種類を示すデータ種別情報が含まれており、
前記データ暗号化手段は、前記第一の装置から応答されるデータを暗号化する際に、前記データ種別情報に基づいて、当該データを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする付記1、2または3に記載のデータ暗号化装置。
(付記5)第二の装置から第一の装置に対して転送される暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化装置であって、
前記第二の装置から送信される暗号化データを受信するデータ受信手段と、
前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、
前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、
を備えたことを特徴とするデータ復号化装置。
(付記6)前記第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
前記データ復号化手段は、前記残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする付記5に記載のデータ復号化装置。
(付記7)前記第二の装置から送信される暗号化データには、データの種類を示すデータ種別情報が含まれており、
前記データ復号化手段は、前記第二の装置から送信される暗号化データを復号化する際に、前記データ種別情報に基づいて、当該暗号化データを復号化するか否かを判定し、復号化すると判定した場合に、当該暗号化データを復号化することを特徴とする付記5または6に記載のデータ復号化装置。
(付記8)第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化方法であって、
前記受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信工程と、
前記転送要求送信工程により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化工程と、
前記データ暗号化工程により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、前記データ暗号化工程により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信工程と、
を含んだことを特徴とするデータ暗号化方法。
(付記9)前記データ暗号化工程は、前記第一の装置から送信されるデータを暗号化した際に、前記暗号化データサイズに満たない残余データが生じた場合には、当該残余データを前記第一の装置から後続してさらに送信されるデータと結合し、結合したデータを、前記暗号化データサイズ単位で暗号化することを特徴とする付記8に記載のデータ暗号化方法。
(付記10)第二の装置から第一の装置に対して転送される暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化方法であって、
前記第二の装置から送信される暗号化データを受信するデータ受信工程と、
前記データ受信工程により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化工程と、
前記データ復号化工程により復号化されたデータを前記第一の装置に対して送信するデータ送信工程と、
を含んだことを特徴とするデータ復号化方法。
(付記11)前記第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
前記データ復号化工程は、前記残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする付記10に記載のデータ復号化方法。
(付記12)第一の装置から第二の装置に対して転送されるデータを中継するとともに、当該データを所定の暗号化データサイズ単位で暗号化するデータ中継装置であって、
前記受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、
前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、
前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、前記データ暗号化手段により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信手段と、
を備えたことを特徴とするデータ中継装置。
(付記13)前記データ暗号化手段は、前記第一の装置から送信されるデータを暗号化した際に、前記暗号化データサイズに満たない残余データが生じた場合には、当該残余データを前記第一の装置から後続してさらに送信されるデータと結合し、結合したデータを、前記暗号化データサイズ単位で暗号化することを特徴とする付記12に記載のデータ中継装置。
(付記14)第二の装置から第一の装置に対して転送される暗号化データを中継するとともに、当該暗号化データを所定の復号化データサイズ単位で復号化するデータ中継装置であって、
前記第二の装置から送信される暗号化データを受信するデータ受信手段と、
前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、
前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、
を備えたことを特徴とするデータ中継装置。
(付記15)前記第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
前記データ復号化手段は、前記残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする付記14に記載のデータ中継装置。
以上のように、本発明に係るデータ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置は、FCスイッチやSASエクスパンダーなどのデータ中継装置においてデータの暗号化および復号化する場合に有用であり、特に、データ転送の単位となるデータサイズと暗号処理の単位となるデータサイズが異なる場合に適している。
本実施例に係るFCスイッチの概念を説明するための説明図(1)である。 本実施例に係るFCスイッチの概念を説明するための説明図(2)である。 本実施例に係るRAIDシステムの構成を示す機能ブロック図である。 本実施例に係るFCスイッチの構成を示す機能ブロック図である。 FCフレームヘッダのフォーマットを示す図である。 SASフレームヘッダのフォーマットを示す図である。 SCSI層のヘッダに含まれるコマンド情報を示す図である。 ライト動作におけるFCスイッチの処理手順を示す図(1)である。 ライト動作におけるFCスイッチの処理手順を示す図(2)である。 リード動作におけるFCスイッチの処理手順を示す図である。 従来のRAIDシステムの一例を示す図である。 SCSIによるデータ転送を説明するための説明図である。 データ中継装置による暗号処理に係る問題を説明するための説明図である。
符号の説明
10,100 RAIDコントローラ
11,110 ホストインタフェース制御部
12,120 メインメモリ
13,130 メモリ制御部
14,140 CPU
15,150 ディスクインタフェース制御部
20,200 ホスト装置
30,300 ディスク装置
3101〜310n ディスク
400 FCスイッチ
410 コントローラインタフェース制御部
420 ディスクインタフェース制御部
430 暗号処理部

Claims (10)

  1. 第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化装置であって、
    前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、
    前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、
    前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを前記データ暗号化手段により後続してさらに暗号化されるデータである後続暗号化データと結合し、当該未送信データと当該後続暗号化データとを結合することにより得られたデータを前記第二の装置に対して送信するデータ送信手段と、
    を備えたことを特徴とするデータ暗号化装置。
  2. 前記データ暗号化手段は、前記第一の装置から送信されるデータを暗号化した際に、前記暗号化データサイズに満たない残余データが生じた場合には、当該残余データを前記第一の装置から後続してさらに送信されるデータである後続転送データと結合し、当該残余データと当該後続転送データとを結合することにより得られたデータを前記暗号化データサイズ単位で暗号化することを特徴とする請求項1に記載のデータ暗号化装置。
  3. 前記第一の装置から送信されるデータには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
    前記データ暗号化手段は、前記残余データを含んでいたデータの入出力識別情報と前記後続転送データの入出力識別情報とが一致する場合に、当該残余データと当該後続転送データとを結合することを特徴とする請求項2に記載のデータ暗号化装置。
  4. 前記第一の装置から送信されるデータには、データの種類を示すデータ種別情報が含まれており、
    前記データ暗号化手段は、前記第一の装置から応答されるデータを暗号化する際に、前記データ種別情報に基づいて、当該データを暗号化するか否かを判定し、暗号化すると判定した場合に、当該データを暗号化することを特徴とする請求項1、2または3に記載のデータ暗号化装置。
  5. 請求項1〜4のいずれか一つに記載のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化装置であって、
    前記第二の装置から送信される暗号化データを受信するデータ受信手段と、
    前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、
    前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、
    を備えたことを特徴とするデータ復号化装置。
  6. 前記第二の装置から送信される暗号化データには、連続するデータである場合に同じ値が設定される入出力識別情報が含まれており、
    前記データ復号化手段は、前記残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合する場合に、前記入出力識別情報に基づいて結合することを特徴とする請求項5に記載のデータ復号化装置。
  7. 第一の装置から第二の装置に対して転送されるデータを所定の暗号化データサイズ単位で暗号化するデータ暗号化装置が当該データを暗号化する際に適用されるデータ暗号化方法であって、
    転送要求送信手段が、前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信工程と、
    データ暗号化手段が、前記転送要求送信工程により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化工程と、
    データ送信手段が、前記データ暗号化工程により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを記憶部に保持し当該記憶部に保持したデータを読み出して前記データ暗号化工程により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信工程と、
    を含んだことを特徴とするデータ暗号化方法。
  8. 請求項1〜4のいずれか一つに記載のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを所定の復号化データサイズ単位で復号化するデータ復号化装置が当該暗号化データを復号化する際に適用されるデータ復号化方法であって、
    データ受信手段が、前記第二の装置から送信される暗号化データを受信するデータ受信工程と、
    データ復号化手段が、前記データ受信工程により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを記憶部に保持し、当該記憶部に保持した残余データを読み出して前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化工程と、
    データ送信手段が、前記データ復号化工程により復号化されたデータを前記第一の装置に対して送信するデータ送信工程と、
    を含んだことを特徴とするデータ復号化方法。
  9. 第一の装置から第二の装置に対して転送されるデータを中継するとともに、当該データを所定の暗号化データサイズ単位で暗号化するデータ中継装置であって、
    前記第二の装置が受信可能なデータのサイズを示す第一の受信可能サイズの情報を含んだデータ転送要求を前記第二の装置から受信した場合に、当該第一の受信可能サイズ以上であり、かつ、前記暗号化データサイズの倍数となる第二の受信可能サイズを設定し、設定した第二の受信可能サイズを含めたデータ転送要求を第一の装置に対して送信する転送要求送信手段と、
    前記転送要求送信手段により送信されたデータ転送要求に対する応答として前記第一の装置から送信される第二の受信可能サイズのデータを受信し、受信したデータを前記暗号化データサイズ単位で暗号化するデータ暗号化手段と、
    前記データ暗号化手段により暗号化されたデータを前記第一の受信可能サイズ単位で前記第二の装置に対して送信し、送信時に前記第一の受信可能サイズに満たない未送信データが残った場合には、当該未送信データを、前記データ暗号化手段により後続してさらに暗号化されるデータと結合し、結合したデータを前記第二の装置に対して送信するデータ送信手段と、
    を備えたことを特徴とするデータ中継装置。
  10. 請求項1〜4のいずれか一つに記載のデータ暗号化装置によって暗号化された暗号化データを記憶する前記第二の装置から前記第一の装置に対して転送される前記暗号化データを中継するとともに、当該暗号化データを所定の復号化データサイズ単位で復号化するデータ中継装置であって、
    前記第二の装置から送信される暗号化データを受信するデータ受信手段と、
    前記データ受信手段により前記暗号化データが受信された場合に、当該暗号化データを前記復号化データサイズ単位で復号化し、復号化した際に前記復号化データサイズに満たない残余データが生じた場合には、当該残余データを、前記第二の装置から後続してさらに送信される暗号化データと結合し、結合したデータを前記復号化データサイズ単位で復号化するデータ復号化手段と、
    前記データ復号化手段により復号化されたデータを前記第一の装置に対して送信するデータ送信手段と、
    を備えたことを特徴とするデータ中継装置。
JP2007035433A 2007-02-15 2007-02-15 データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置 Expired - Fee Related JP4347351B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007035433A JP4347351B2 (ja) 2007-02-15 2007-02-15 データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置
US12/004,430 US8478984B2 (en) 2007-02-15 2007-12-21 Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data relay apparatus
KR1020080005457A KR100954649B1 (ko) 2007-02-15 2008-01-17 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법
CN2008100030514A CN101246415B (zh) 2007-02-15 2008-01-18 数据加密装置和方法、数据解密装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007035433A JP4347351B2 (ja) 2007-02-15 2007-02-15 データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置

Publications (2)

Publication Number Publication Date
JP2008199542A JP2008199542A (ja) 2008-08-28
JP4347351B2 true JP4347351B2 (ja) 2009-10-21

Family

ID=39707667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007035433A Expired - Fee Related JP4347351B2 (ja) 2007-02-15 2007-02-15 データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置

Country Status (4)

Country Link
US (1) US8478984B2 (ja)
JP (1) JP4347351B2 (ja)
KR (1) KR100954649B1 (ja)
CN (1) CN101246415B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090013016A1 (en) * 2007-07-06 2009-01-08 Neoscale Systems, Inc. System and method for processing data for data security
US8134875B2 (en) * 2008-12-08 2012-03-13 Xilinx, Inc. Data storage system with removable memory module having parallel channels of DRAM memory and flash memory
US8355499B2 (en) * 2008-12-12 2013-01-15 Micron Technology, Inc. Parallel encryption/decryption
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US8885334B1 (en) 2011-03-10 2014-11-11 Xilinx, Inc. Computing system with network attached processors
US10318431B2 (en) 2015-09-17 2019-06-11 Hewlett Packard Enterprise Development Lp Obscuration of a cache signal
JP6992437B2 (ja) * 2017-11-22 2022-01-13 日本電気株式会社 ログ記録装置、ログ記録方法、ログ復号装置、及びログ復号方法
CN110557354B (zh) * 2018-05-31 2020-10-13 杭州海康威视数字技术股份有限公司 一种实现节点间通讯的方法、装置及电子设备
CN111262798B (zh) * 2018-11-30 2023-03-14 深圳市中兴微电子技术有限公司 一种信息处理方法、设备及计算机存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459455A (en) * 1991-07-29 1995-10-17 Kabushiki Kaisha Toshiba Method and apparatus for data communication between transmission terminal and reception terminal of a network system
JPH0537551A (ja) 1991-07-29 1993-02-12 Toshiba Corp データ転送装置およびデータ転送方法
JP3110572B2 (ja) 1992-10-07 2000-11-20 大日本印刷株式会社 動物モデル組立キット
JP3627765B2 (ja) 1995-06-15 2005-03-09 日本電信電話株式会社 スクランブルにより情報秘匿を行なう通信システムにおける送信装置
JP2000341328A (ja) 1999-05-27 2000-12-08 Fujitsu Ltd データ中継装置
CN2480908Y (zh) * 2001-02-26 2002-03-06 张巨洪 计算机数据加密装置
JP3925218B2 (ja) * 2002-01-30 2007-06-06 ソニー株式会社 ストリーミングシステム及びストリーミング方法、ストリーミングサーバ及びデータ配信方法、クライアント端末及びデータ復号方法、並びにプログラム及び記録媒体
JP3722767B2 (ja) 2002-03-13 2005-11-30 三菱電機インフォメーションテクノロジー株式会社 ハードディスク装置、コンピュータ
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
GB2400935B (en) 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
GB0322683D0 (en) * 2003-09-27 2003-10-29 Koninkl Philips Electronics Nv Data encryption method and apparatus
JP4073892B2 (ja) * 2004-05-10 2008-04-09 株式会社ソニー・コンピュータエンタテインメント コンテンツ再生装置、コンテンツ再生方法、コンピュータプログラム
JP2006033350A (ja) 2004-07-15 2006-02-02 Nippon Telegr & Teleph Corp <Ntt> 代理セキュアルータ装置及びプログラム
JP2006041684A (ja) 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法
JP2006252328A (ja) * 2005-03-11 2006-09-21 Toshiba Corp ディスクアレイ制御装置、ストレージシステム、およびディスクアレイ制御方法
JP2006330126A (ja) 2005-05-24 2006-12-07 Matsushita Electric Ind Co Ltd 暗号化処理方法、および復号化処理方法

Also Published As

Publication number Publication date
US8478984B2 (en) 2013-07-02
JP2008199542A (ja) 2008-08-28
KR20080076719A (ko) 2008-08-20
KR100954649B1 (ko) 2010-04-27
CN101246415B (zh) 2011-05-18
CN101246415A (zh) 2008-08-20
US20080201574A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
JP4347351B2 (ja) データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置
US8321659B2 (en) Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data transfer controlling apparatus
US8621241B1 (en) Storage and recovery of cryptographic key identifiers
US8165301B1 (en) Input-output device and storage controller handshake protocol using key exchange for data security
US8489893B2 (en) Encryption key rotation messages written and observed by storage controllers via storage media
TWI492088B (zh) 用於控制固態磁碟之系統、方法及電腦可讀媒體
JP4856400B2 (ja) 記憶装置及び情報処理端末
US8140864B2 (en) Computer system, storage system, and data management method for updating encryption key
US8250318B2 (en) Storage controller and storage control method for accessing storage devices in sub-block units
US7873828B2 (en) Method and apparatus for encrypting and decrypting data to/from an ESCON tape system
US20080052537A1 (en) Storage device, write-back method, and computer product
US20130290736A1 (en) Data storage device, data control device and method for encrypting data
US20080059795A1 (en) Security-enabled storage controller
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524969A5 (ja)
US9979541B2 (en) Content management system, host device and content key access method
US10168939B2 (en) Reading records from a tape medium
US20060053282A1 (en) Canister-based storage system security
US8943328B2 (en) Key rotation for encrypted storage media
US20160026582A1 (en) Encrypt data of storage device
US8615492B1 (en) Techniques for providing multiplexed data for backup
CN116070295A (zh) 数据处理系统
JP3110572U (ja) データバックアップ構造

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

Ref document number: 4347351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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