説明

暗号化ドライブに対するアクセスのためのSID管理の方法およびシステム(暗号化ドライブに対するアクセスのためのSID管理)

【課題】 ロックされたかまたはロック解除することができない記憶デバイスをロック解除するための方法およびシステムを開示する。
【解決手段】 ビットを除去しビットを追加することによってキーからヒントを発生する。除去ビットの位置、追加ビットの位置、除去ビット数、および追加ビット数を、セキュリティ上安全に記憶し知らせる。キーに対応する記憶デバイスをこのキーがロック解除することができない場合、除去ビットの位置、追加ビットの位置、除去ビット数(N)、および追加ビット数を検索する。次いで、ヒントにおいて追加ビットを除去する。除去ビットの位置においてヒントにそれぞれ可能なNビットを配置して、2Nの可能なキーを発生する。次いで、記憶デバイスをロック解除するために、2Nの可能なキーの各々を試す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、暗号化記憶デバイスのセキュリティ識別子(SID:Security Identifier)管理に関する。更に具体的には、本発明は、SIDが紛失または破損した場合のSIDの回復に関する。
【背景技術】
【0002】
例えば磁気ディスク、光ディスク、固体ドライブ、ハード・ディスク、コンパクト・ディスク、デジタル多用途ディスク、フラッシュ・メモリ・カード、直接アクセス記憶装置(DASD:direct access storage device)のような記憶デバイスは、これに記憶される全てのデータを暗号化することができる。記憶デバイスにデータを書き込む場合、記憶デバイスは暗号化/復号化アルゴリズムを用いることによってそのデータを暗号化する。記憶デバイスからデータを読み出す場合、記憶デバイスは暗号化/復号化アルゴリズムを用いることによってそのデータを復号化する。暗号化/復号化アルゴリズムは、暗号化キーを知らない限りは暗号化データの復号化をほぼ不可能とするようになっており、この結果、高いレベルのデータ・セキュリティが得られる。暗号化/復号化は、記憶デバイス自体で行われ、記憶デバイス上でファームウェア(例えばハードウェア・デバイスに埋め込まれたコンピュータ・プログラム)によって管理される。
【0003】
ファームウェアは、記憶デバイスの使用前にデータの所有者のみに理解される私用値(private value)に設定されたSIDを用いて暗号化データにアクセスすることを可能とする。SIDは、ユーザまたはグループを一意に識別するために用いられる英数字の文字列を指す。あるいは、SIDは、データの暗号化または復号化あるいはその両方を行うために用いられる1つの情報(パラメータ)を指す。SIDを用いて、記憶デバイス、従って記憶デバイス内のデータに対するアクセスをロックおよびロック解除する。記憶デバイスがロックされた状態(すなわち有効なSIDを有するユーザのみが記憶デバイス内のデータにアクセスすることができる状態)にある間は、記憶デバイス上のデータにアクセスすることはできない。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Patterson等の「A Case for Redundant Array of InexpensiveDisks (RAID)」(以後、「Patterson」)(SIGMOD Conference、1988年)
【発明の概要】
【発明が解決しようとする課題】
【0005】
SIDは、SIDを管理および発行する別個の機械に記憶される。記憶デバイスをロック解除し、記憶デバイス内のデータに対するアクセスを得るために、ユーザまたはコンピューティング・デバイスは、この機械からSIDを取得し、このSIDを記憶デバイスに適用して記憶デバイス内のデータにアクセスする。しかしながら、この機械が壊れる場合がある。このため、機械が提供したSIDが無効なSIDであることがある。あるいは、SIDが機械から検索された時点と、SIDを記憶デバイスに適用する時点との間に、SIDが破損する可能性がある。
【0006】
SIDの有効性が失われた結果、1組のデータ全体が永久的にロックされアクセス不可能となる恐れがある。SIDが破損すると、そのSIDに関連した記憶デバイス(複数の記憶デバイス)にデータを記憶するユーザ全員に影響が及ぶことがある。記憶デバイス全体に用いられる共有SIDが破損または紛失すると、記憶デバイス内の全てのデータの復号化が不可能となるので、このデータを回復することができない。
【0007】
従って、記憶デバイスのキーまたはSIDが紛失または破損した場合に、ロックされたかまたはロック解除することができない記憶デバイスをロック解除するための方法およびシステムを提供することは望ましいであろう。
【課題を解決するための手段】
【0008】
本発明は、記憶デバイスのキーまたはSIDが紛失したか破損した場合に、ロックされたかまたはロック解除することができない記憶デバイスまたはこの記憶デバイス内のデータをロック解除するための方法およびシステムである。
【0009】
一実施形態において、ロックされたかまたはロック解除することができない記憶デバイスをロック解除するためのシステムが提供される。このシステムは、
キーをセキュリティ上安全に記憶するためのキー・マネージャと、
キーからビットを除去するための手段と、
除去したビットの位置および除去したビット数(N)をセキュリティ上安全に記憶するための除去ビット・マネージャと、
キーからビットを除去した後、キーにビットを追加してヒントを発生するための手段と、
追加したビットの位置および追加したビット数をセキュリティ上安全に記憶するための追加ビット・マネージャと、
キー・マネージャにおけるキーが紛失したか、または記憶デバイスをロック解除することができない場合、追加ビットの位置においてヒントから追加ビットを除去するための手段と、
除去ビットの位置においてヒントにそれぞれ可能なNビットを配置して2Nの可能なキーを発生するための手段と、
記憶デバイスがロック解除されるまで2Nの可能なキーの各々を適用するための手段と、
を含む。
【0010】
一実施形態においては、ロックされたかまたはロック解除することができない記憶デバイスをロック解除するための方法が提供される。この方法は、
キーを記憶することと、
キーからビットを除去することと、
除去したビットの位置および除去したビット数(N)を記憶することと、
キーからビットを除去した後、キーにビットを追加してヒントを発生することと、
追加したビットの位置および追加したビット数を記憶することと、
キー・マネージャにおけるキーが紛失したか、または記憶デバイスをロック解除することができない場合、追加ビットの位置においてヒントから追加ビットを除去することと、
除去ビットの位置においてヒントにそれぞれ可能なNビットを配置して2Nの可能なキーを発生することと、
記憶デバイスがロック解除されるまで2Nの可能なキーの各々を記憶デバイスに適用することと、
を含む。
【0011】
更に別の実施形態においては、暗号化/復号化アルゴリズムを利用することによって、キーを用いて記憶デバイスにおけるデータを暗号化または復号化する。
【0012】
更に別の実施形態においては、除去ビットの位置および追加ビットの位置は同一の組織または同一の人物に知られない。
【0013】
添付図面は、本発明を更に理解するために含まれ、本明細書に組み込まれてその一部を構成する。図面は、本発明の実施形態を例示し、記述と共に、本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態においてヒントを発生するための方法ステップを示す。
【図2】本発明の一実施形態におけるシステム図を示す。
【図3】本発明の一実施形態においてヒントを記憶するための方法ステップを示す。
【図4】本発明の一実施形態においてヒントを用いて記憶デバイスをロック解除するための方法ステップを示す。
【図5】本発明の一実施形態における別のシステム図を示す。
【発明を実施するための形態】
【0015】
図1は、本発明の一実施形態においてヒント(hint)を発生するための方法ステップを示す。デフォルトの製造値(すなわち製造目的のために一時的に割り当てられたキーの初期値)から記憶デバイスのキーが更新されると、ヒントを発生する。このヒントは、キーが紛失したか、破損したか、入手不可能になったか、無効になったか、または使用不可能になった場合に、記憶デバイスをロック解除するために用いられる。一実施形態において、キーはMビットの二進数である。しかしながら、このキーは、暗号化/復号化アルゴリズムと関連付けて記憶デバイスをロックまたはロック解除するために用いられるいずれかの英数字とすることができる。キーは、ユーザまたはグループを一意に識別するために用いるSIDである場合がある。キーは、暗号化/復号化アルゴリズムと関連付けて記憶デバイス内のデータを暗号化または復号化するために用いる1つの情報である場合がある。暗号化/復号化アルゴリズムは、限定ではないが、RSA(Rivest Shamir Adleman:リベスト シャミア エイドルマン)、DES(Data Encryption Standard:データ暗号化標準)、Blowfish(ブローフィッシュ)、IDEA(アイディア:International Data Encryption Algorithm)、SEAL(Software-optimizedEncryption Algorithm:ソフトウェア最適化暗号アルゴリズム)、およびRC4(Rivest Cipher 4)を含む。
【0016】
ステップ100において、ユーザは記憶デバイスにMビットのキーを記憶する。一実施形態では、Mビットのキーは、記憶デバイスまたはデータベースにおいてパスワード保護を実施することによって、記憶デバイスまたはデータベースにセキュリティ上安全に記憶される。ステップ110において、ユーザはMビットのキーからNビットを除去し、除去したNビットを廃棄する。しかしながら、ユーザは、除去したビット数(N)および除去したビットの位置を記憶する。一実施形態では、除去したビット数(N)および除去したビットの位置は、例えば記憶デバイスまたはデータベース上にパスワード保護を実施することによって、記憶デバイスまたはデータベースにセキュリティ上安全に記憶される。更に別の実施形態では、除去したビット数(N)および除去したビットの位置は、異なる記憶デバイスまたは異なるデータベースに別個に記憶される。更に別の実施形態では、ユーザは複数の位置でビットを除去する。次いで、ユーザは、各位置の除去したビット数を記憶する。
【0017】
Nビットを除去した後、ステップ120では、キーはM−Nビットから成る。ステップ130において、ユーザはキーにランダム・ビットを追加する。ランダム・ビットは、キーのどこにでも追加することができる。一実施形態では、ランダム・ビット数(K)はNに均しい。別の実施形態では、ランダム・ビット数はNとは異なる。ランダム・ビットを追加した後、ユーザは、追加したビットの位置および追加したビット数を記憶デバイスまたはデータベースに記憶する。ユーザは、記憶デバイスまたはデータベース上にパスワード保護を実施することによって、記憶デバイスまたはデータベースにこの位置および数をセキュリティ上安全に記憶することができる。更に別の実施形態では、ユーザは、キーにおける複数の位置にランダム・ビットを追加することができる。次いで、ユーザは、追加したビット数および追加したビットの各位置を記憶する。
【0018】
ランダム・ビットを追加した後、ステップ140では、キーはM−N+Kから成る。ランダム・ビット数(K)がNと同じである場合、ステップ140においてキーはMビットから成る。ステップ150において、ユーザは、ステップ110から140によって構築された(M−N+K)ビットのキーを、ヒントとして記憶する。ステップ100におけるキーを記憶している記憶デバイスの欠陥のために、このキー(すなわちステップ100におけるキー)が紛失したか、無効になったか、入手不可能になったか、または使用不可能になった場合に、ヒントを用いることができる。ヒントは、記憶デバイスまたはデータベースに記憶することができる。ヒントは、例えば記憶デバイスまたはデータベース上にパスワード保護を実施することによって、記憶デバイスまたはデータベースにセキュリティ上安全に記憶することができる。一実施形態では、ヒントは、ステップ110から140によって構築された二進数である。別の実施形態では、ヒントは、ASCIIコードによって表される数字、文字、または記号である。
【0019】
一実施形態において、除去したビットの位置(複数の位置)、各除去位置における除去したビット数、追加したビットの位置(複数の位置)、および各追加位置における追加したビット数は、それぞれ異なる組織またはそれぞれ異なる人物あるいはその両方によって管理されるかまたは知られている。従って、キーは、単一の組織または単一の人物によってヒントから再構築することはできない。ヒントからキーを再構築する方法については、後に詳しく述べる。
【0020】
図2は、本発明の一実施形態におけるシステム図を示す。図2は、アダプタ・インタフェース・モジュール220がデータ記憶デバイスにおいて実行され、キー(例えばSID)、除去したビットの情報200(すなわち除去したビットの位置(複数の位置)または各位置における除去したビット数あるいはその両方)、および追加したビットの情報240(すなわち追加したビットの位置(複数の位置)または各位置における追加したビット数あるいはその両方)を受信した後にヒントを構築することを示す。アダプタ220は、記憶デバイス(例えばディスク250)に取り付けられ、冗長またはRAID(Redundant Array of IndependentDisks)等の様々な記憶アルゴリズムを提供する。冗長またはRAIDについては、Patterson等の「A Case for Redundant Array of InexpensiveDisks (RAID)」(以後、「Patterson」)(SIGMOD Conference、1988年)に記載されている。一実施形態では、アダプタ220は、ユーザが用いているコンピューティング・デバイス(図示せず)とユーザがデータを記憶する記憶デバイス(例えばディスク250)との間のインタフェースである。
【0021】
キー(例えばSID210)がユーザまたはオペレーティング・システム(例えばMicrosoft Windows(R))によって生成されると、アダプタ220は、接続しているコンピューティング・デバイス(図示せず)のユーザまたはオペレーティング・システムから、キー(例えばSID210)を受信する。次いで、ユーザまたはオペレーティング・システムは、除去ビット情報200を提供することができる。除去ビット情報200は、限定ではないが、除去ビットの位置(複数の位置)および各位置における除去ビット数を含む。換言すると、情報200は、ビットが除去される位置および各位置における除去されるビット数を特定する。次いで、アダプタ200は、特定された位置(複数の位置)において特定されたビット数を除去する。
【0022】
キーにおいて特定されたビット数を除去した後、アダプタ220は、ユーザまたはオペレーティング・システムから、追加ビット情報240を受信する。情報240を提供するユーザまたはオペレーティング・システムは、情報200を提供したユーザまたはオペレーティング・システムとは異なる場合がある。別の実施形態では、情報240を提供するユーザまたはオペレーティング・システムは、情報200を提供したユーザまたはオペレーティング・システムと同じである。追加ビットの情報240は、限定ではないが、追加ビットの位置(複数の位置)および各位置における追加ビット数を含む。換言すると、情報240は、ビットが追加される位置および各位置において追加されるビットの数を特定する。次いで、アダプタ200は、特定された位置(複数の位置)において特定されたビット数を追加する。
【0023】
キーにおいて特定されたビット数を追加した後、キーはヒント230になる。ヒント230は記憶デバイス(例えばディスク250)に記憶することができる。
【0024】
一実施形態では、アダプタ220は、プログラミング言語(例えばアセンブリ言語、二進コード、C、C++、Java、NET等)を用いて記憶デバイス(例えばディスク250)と関連付けられたファームウェアとして実施される。一実施形態では、アダプタ220は、プロセッサ(例えばIntel(R)Pentium(R)、IBM(R)Power PC(R)、AMD(R)Opteron(R))によって実行される命令(例えば機械言語またはアセンブリ言語)として、コンピュータ読み取り可能媒体(例えばCD(コンパクト・ディスク)、DVD(デジタル多用途ディスク)、HDD(ハード・ディスク・ドライブ)、メモリ)に記録される。
【0025】
別の実施形態では、アダプタ220は、ハードウェア記述言語(Verilog、VHDL、Handel-C、またはSystem C)を用いて、再構成可能ハードウェア(例えばFPGA(Field Programmable Gate Array)またはCPLD(ComplexProgrammable Logic Device)上にハードウェアとして実施される。更に別の実施形態では、アダプタ220は、準カスタム設計方法論(すなわち標準セルおよびハードウェア記述言語を用いてチップを設計する)を用いて、半導体チップ(例えばASIC(特定用途向け集積回路)上に実施される。
【0026】
更に別の実施形態では、アダプタ220は、コンピューティング・デバイス(例えばサーバ、メインフレーム、デスクトップ、ラップトップ等)において実行されることによって、コンピューティング・デバイスによってハードウェアとして実施される。コンピューティング・デバイスは、限定ではないが、プロセッサ(複数のプロセッサ)、メモリ(複数のメモリ)、ディスプレイ・デバイス(複数のディスプレイ・デバイス)、入出力デバイス(複数の入出力デバイス)、およびネットワーク・インタフェース(複数のネットワーク・インタフェース)を含む。
【0027】
図3は、本発明の一実施形態においてヒントを登録するための方法ステップを示す。ステップ300において、ヒントを登録するためのプロセスを開始する。ステップ310において、アダプタ220またはファームウェアは、図1に関して本明細書中に記載したように、キー(例えばSID210)からビットを除去し、次いでキーにビットを追加することによって、キーからヒントを生成する。次いで、アダプタ220またはファームウェアは、生成したヒントをキーに関連付ける。ステップ320において、アダプタ220またはファームウェアは、キーに関連した記憶デバイス(複数のデバイス)を更新して、ヒントとの関連付けを生成することができる。
【0028】
記憶デバイス(複数の記憶デバイス)のヒントとの関連付けに成功した後、ステップ330において、アダプタ220またはファームウェアは、ヒントを記憶デバイスまたはデータベースに記憶する。ステップ340において、ヒントを登録するためのプロセスは完了する。
【0029】
図4は、本発明の一実施形態において、記憶したヒントを用いることによってロックされた記憶デバイスをロック解除する方法ステップを示す。記憶デバイス内のデータを検索するため、ユーザまたはユーザが動作中のコンピューティング・デバイスは、記憶デバイスまたはデータベースから対応するキーを取得することができる。次いで、ユーザは、対応するキーをアダプタ220に提供して、記憶デバイスをロック解除するか、または記憶デバイス内のデータを復号化する。しかしながら、対応するキーが破損しているために、対応するキーが、記憶デバイスをロック解除することまたは記憶デバイス内のデータを復号化することができない場合がある。例えば、対応するキーを記憶している記憶デバイスまたはデータベースが欠陥を有し、これが最初のキーに影響を与えた。そのため、記憶デバイスまたはデータベースからキーを取得した際に、記憶デバイスまたはデータベースが欠陥のあるキーを提供した。あるいは、記憶デバイスまたはデータベースは有効なキーを提供した。しかしながら、通信経路上のジッタまたは通信経路上のソフトウェア欠陥のために、有効なキーがアダプタ220またはファームウェアに送出される間に破損する場合がある。
【0030】
アダプタ220が、提供されたキーによって記憶デバイスをロック解除することができない場合、ステップ400において、アダプタ220は、提供されたキーに関連付けられたヒントを記憶している記憶デバイスまたはデータベースにアクセスすることができる。ステップ410において、アダプタ220は、記憶デバイスまたはデータベースから、ヒント(例えば二進数、文字のASCIIコード、数字のASCIIコード、または記号のASCIIコード)を検索する。ステップ420において、アダプタ220は以下のステップを実行することによって可能なキーを計算する。
【0031】
(1)記憶デバイスまたはデータベースからヒントを検索した後、アダプタ220は、ヒントに関連付けた記憶デバイスまたはデータベースから追加ビットの情報を検索する。追加ビットの情報は、ビットが追加された位置および各位置において追加されたビット数を特定することができる。次いで、アダプタ220は、ビットが追加された各位置において追加ビットを除去する。追加ビットを除去した後、ヒント内のビット数は、追加ビット数だけ減っている。
【0032】
(2)アダプタ220は、ヒントに関連付けた記憶デバイスまたはデータベースから除去ビットの情報を検索する。除去ビットの情報は、ビットが除去された位置および各位置において除去されたビット数を特定することができる。除去ビット情報における合計除去ビット数を、Nと呼ぶ。
【0033】
(3)アダプタ220は、ビットが除去された各位置に可能なビットを配置する。可能なビットは、その位置において均しい数の除去ビットを有することができる。例えば、ヒントは、0101_1100_0110_0000_11112である。最下位4ビットが追加ビットである場合、アダプタ220はヒントから最後の4ビットを除去する。ここで、ヒントは0101_1100_00002となる。最上位4ビットが除去ビットである場合、アダプタは最上位4ビットの位置で各可能な4ビットを配置する。換言すると、ヒントはここで、XXXX_0101_1100_00002となる。「XXXX」は、00002、00012、...、1110、11112等の各可能なビットを表す。この例では、合計16の可能なビットがある。一般的に言うと、アダプタ220は、ビットが除去された各位置に各可能なビットを配置する。各位置における各可能なビットは、その位置で均しい数の除去ビットを有する。このため、合計除去ビット数がNである場合、アダプタ16は、各位置に可能なビットを配置することによって、2Nの可能なビットを生成する。
【0034】
図4に戻ると、上述のように、ステップ420において、アダプタ420は2Nの可能なキーを生成する。アダプタ420は、ロック解除できなかった記憶デバイスをロック解除することを最初に試みるために、2Nの可能なキーから1つの可能なキーを選択する。2Nの可能なキーから1つの可能なキーを選択する場合、アダプタ220は可能なキーを任意に選択することができる。あるいは、アダプタ220は、2Nの可能なキーから最低値または最高値を有する可能なキーを選択する。
【0035】
ステップ430において、アダプタ220は、ロック解除できなかった記憶デバイスをロック解除するために、選択した可能なキーを適用する。アダプタ220が選択した可能なキーを用いて記憶デバイスをロック解除することができると、ステップ450において、アダプタ220は選択した可能なキーを記憶デバイス用の有効キーとして記憶する。有効キーは、記憶デバイスまたはデータベースにセキュリティ上安全に記憶することができる。
【0036】
ステップ430において、アダプタ220が選択した可能なキーを用いて記憶デバイスをロック解除することができない場合、アダプタ220は選択した可能なキーを削除するか、または選択した可能なキーを「試行済み」というキーワードで標示することができる。次いで、アダプタ220は、未選択の可能なキーから次の可能なキーを選択する。アダプタ220は、未選択の可能なキーから次の可能なキーをランダムに選択することができる。あるいは、アダプタ220は、次の可能なキーとして最低値または最高値の可能なキーを選択することができる。アダプタ200が次の可能なキーを選択できない場合、ステップ460において、アダプタ220は、全ての可能なキーが評価されたか、または未選択の可能なキーがあるかについてチェックする。全ての可能なキーが評価されたか、または未選択の可能なキーがない場合、ステップ470において、アダプタ220は、記憶デバイスをロック解除するプロセスが失敗したことを通知するか、またはそのことの指示を提供する。その他の場合、アダプタ220は、ロック解除できなかった記憶デバイスをロック解除するために、次の可能なキーを適用する。アダプタ220が記憶デバイスのロック解除に成功するか、または全ての可能なキーが評価されるまで、ステップ430から460を繰り返す。
【0037】
図5は、本発明の一実施形態におけるシステム図を示す。ヒントを発生するため、モジュール(例えばファームウェア等のシステム・ソフトウェア530)は、キー・マネージャ500からキーを受信する。キー・マネージャ500は、キーまたはSIDをセキュリティ上安全に記憶するレポジトリ、記憶デバイス、またはデータベース580を含み、このレポジトリ、記憶デバイス、またはデータベース580と関連して動作する。キー・マネージャは、キーまたはSIDを、モジュール(例えばシステム・ソフトウェア530)、認証されたユーザまたは例えばデスクトップ、ラップトップ、PDA等のコンピューティング・デバイスに配布する。一実施形態では、キーはSID(例えばSID210)である。一実施形態では、キーは、暗号化/復号化アルゴリズムを利用することによって記憶デバイス内のデータを暗号化または復号化するために用いられる1つの情報である。
【0038】
次いで、モジュールは、1つ以上の位置でキーからビットを除去する。モジュールは、除去したビットの位置(複数の位置)および各位置における除去したビット数を記憶する。一実施形態では、除去したビットの位置(複数の位置)および各位置における除去したビット数は、除去ビット・マネージャ510に関連付けたレポジトリ、記憶デバイス、またはデータベース590に記憶される。一実施形態では、除去ビット・マネージャ510は、除去したビットの位置(複数の位置)および各位置における除去したビット数をセキュリティ上安全に記憶するレポジトリ、記憶デバイス、またはデータベース590を含む。除去ビット・マネージャ510は、レポジトリ、記憶デバイス、またはデータベース590と関連して動作する。除去ビット・マネージャ510は、除去したビットの位置(複数の位置)および各位置における除去したビット数を、モジュール(例えばシステム・ソフトウェア530)、認証されたユーザまたはコンピューティング・デバイスに提供する。
【0039】
次いで、モジュールは、キーにビットを追加してヒント550を発生する。一実施形態では、モジュールは、1つ以上の位置でキーにビットを追加する。モジュールは、追加したビットの位置(複数の位置)および各位置における追加したビット数を記憶する。一実施形態では、追加したビットの位置(複数の位置)および各位置における追加したビット数は、追加ビット・マネージャ520に関連付けたレポジトリ、記憶デバイス、またはデータベース600に記憶される。一実施形態では、追加ビット・マネージャ520は、追加したビットの位置(複数の位置)および各位置における追加したビット数をセキュリティ上安全に記憶するレポジトリ、記憶デバイス、またはデータベース600を含む。追加ビット・マネージャ520は、レポジトリ、記憶デバイス、またはデータベース600と関連して動作する。追加ビット・マネージャ520は、追加したビットの位置(複数の位置)および各位置における追加したビット数を、モジュール(例えばシステム・ソフトウェア530)、認証されたユーザまたはコンピューティング・デバイスに提供する。また、モジュールは、記憶デバイス、レポジトリ、またはデータベースにおいてヒント550を記憶する。
【0040】
ユーザまたはアプリケーション(例えばデータベース管理システム(DBMS)が、キーによって暗号化された記憶デバイス(ディスク560、ディスク570、RAID等)内のデータにアクセスしたい場合、モジュールはキー・マネージャ500にアクセスして対応するキーを検索する。次いで、モジュールは検索したキーを記憶アダプタ540に送信する。記憶アダプタ540が管理するプロトコルは、記憶デバイスによって検索したキーを確認し、記憶デバイスをロック解除して、暗号化アルゴリズムによって記憶デバイスにデータを書き込むと共に復号化アルゴリズムによって記憶デバイスからデータを読み出すことを可能とするものである。
【0041】
しかしながら、キー・マネージャ500から検索したキーが破損しているかまたは欠陥があるために、記憶デバイスのロック解除またはデータの復号化を行うことができる最初のキーとは異なるキーである場合には、記憶アダプタ540は、記憶デバイスのロック解除またはデータの復号化ができない恐れがある。すると、記憶アダプタ540はモジュールに接触して、記憶デバイスのロック解除またはデータの復号化を行うための可能なキーを再構築する。
【0042】
可能なキーを再構築するために、モジュールはまず、ロック解除することができない記憶デバイスに関連付けられたヒントを検索する。一実施形態においては、記憶アダプタ540は、可能なキーを再構築することを要求する場合、ヒントをモジュールに提供する。記憶デバイス、データベース、または記憶アダプタ540からヒントを取得した後、モジュールは、追加ビット・マネージャ520から、追加したビットの位置(複数の位置)および各位置における追加したビット数を取得する。次いでモジュールは、ビットが追加された各位置においてヒントから追加ビットを除去する。
【0043】
次いで、モジュールは、除去ビット・マネージャ510から、除去したビットの位置(複数の位置)および各位置における除去したビット数を取得する。合計除去ビット数がNである場合、モジュールは、除去したビットの位置(複数の位置)においてヒント内にそれぞれ可能なNビットを配置する。例えば、除去ビットの第1の位置および除去ビットの第2の位置があると想定する。第1の位置ではmビットが除去された。第2の位置ではkビットが除去された。次いで、モジュールは、ヒントの第1の位置にそれぞれ可能なmビットを配置し、ヒントの第2の位置にそれぞれ可能なkビットを配置する。第1の位置にそれぞれ可能なmビットを配置し、第2の位置にそれぞれ可能なkビットを配置することによって、モジュールは、2(m+k)の可能なキーを生成する。従って、合計除去ビット数がN(すなわちm+k=N)である場合、モジュールは2Nの可能なキーを生成する。
【0044】
次いで、モジュールは、ロック解除できなかった記憶デバイスをロック解除するために、2Nの可能なキーの各々を適用する。
【0045】
一実施形態においては、モジュール、キー・マネージャ500、除去ビット・マネージャ510、および追加ビット・マネージャ520は、プログラマブル言語(例えばアセンブリ言語、二進コード、C、C++、Java、.NET等)を用いて、ファームウェアとして実施される。一実施形態においては、モジュール、キー・マネージャ500、除去ビット・マネージャ510、および追加ビット・マネージャ520は、プロセッサ(例えばIntel(R)Pentium(R)、IBM(R)Power PC(R)、AMD(R)Opteron(R))によって実行される命令(例えば機械言語またはアセンブリ言語)として、コンピュータ読み取り可能媒体(例えばCD(コンパクト・ディスク)、DVD(デジタル多用途ディスク)、HDD(ハード・ディスク・ドライブ)、メモリ)に記録される。
【0046】
別の実施形態においては、モジュール、キー・マネージャ500、除去ビット・マネージャ510、および追加ビット・マネージャ520は、ハードウェア記述言語(Verilog、VHDL、Handel-C、またはSystem C)を用いて、再構成可能ハードウェア(例えばFPGA(Field Programmable Gate Array)またはCPLD(ComplexProgrammable Logic Device)上でハードウェアとして実施される。更に別の実施形態では、モジュール、キー・マネージャ500、除去ビット・マネージャ510、および追加ビット・マネージャ520は、準カスタム設計方法論(すなわち標準セルおよびハードウェア記述言語を用いてチップを設計する)を用いて、半導体チップ(例えばASIC(特定用途向け集積回路)上で実施される。
【0047】
更に別の実施形態では、モジュール、キー・マネージャ500、除去ビット・マネージャ510、および追加ビット・マネージャ520は、コンピューティング・デバイス(例えばサーバ、メインフレーム、デスクトップ、ラップトップ等)において実行されることによって、コンピューティング・デバイスによってハードウェアとして実施される。コンピューティング・デバイスは、限定ではないが、プロセッサ(複数のプロセッサ)、メモリ(複数のメモリ)、ディスプレイ・デバイス(複数のディスプレイ・デバイス)、入出力デバイス(複数の入出力デバイス)、およびネットワーク・インタフェース(複数のネットワーク・インタフェース)を含む。
【0048】
一実施形態においては、記憶デバイスをロック解除するために可能な試行の数は、例えば1024回のような固定数に設定される。合計除去ビット数が2N≦固定数を満足するように設定されている場合には、全ての可能な試行を終了することで記憶デバイス内のデータが永久的にロックされ有効に永久に失われてしまう前に、本発明は、キー・マネージャ500から検索したキーによってロック解除することができない記憶デバイスをロック解除することができる。このため、本発明の一実施形態は、ヒントを生成する場合に、最初のキーからNビットを除去する。Nビットは、2Nが、例えば1024のような最大可能試行数以下であることを満足するように設定される。
【0049】
以下は、本発明を利用する使用状況である。
【0050】
SIDがそのデフォルトの製造値から更新されると、ヒントを発生して、これを記憶し、後に使用することで、SIDが入手不可能または使用不可能な場合に記憶デバイスのロック解除を試みることができる。SIDは長さ256ビットであると想定する。
【0051】
1.最初に、ヒントは、SIDと同じ値を有するように設定する。次いで、ヒントにおいてある数のビットを除去する。例えば、256ビットから9ビットを除去して、ヒントの長さを247ビットに縮小すると想定する。(しかしながら、本発明はいかなる数のビットを除去することも可能である。)
【0052】
2.除去ビット数の確定を防ぐために、247ビットのヒントに同じ数のランダム・ビットを追加して256ビットに戻す。(しかしながら、本発明はいかなる数のビットを追加することも可能である。)これらのビットを追加する位置は、ビットが除去された位置と一致する必要はない。
【0053】
3.除去されたビットの位置は、例えば限られた認証された人々に通知することによって、セキュリティ上安全に知られ、例えばパスワード保護を用いて文書内に除去ビットの位置を記憶することによって、セキュリティ上安全に記憶される。除去ビットの値は、決して明らかにされず、破棄される。また、除去ビット数は、セキュリティ上安全に知られ、セキュリティ上安全に記憶される。
【0054】
4.追加されたビットの位置は、例えば限られた認証された人々に通知することによって、セキュリティ上安全に知られ、例えばパスワード保護を用いて文書内に追加ビットの位置を記憶することによって、セキュリティ上安全に記憶される。また、追加ビット数は、セキュリティ上安全に知られ、セキュリティ上安全に記憶される。
【0055】
5.除去ビットの位置および追加ビットの位置が同一の組織または同一の人物に知られないことが重要である。除去ビット数および追加ビット数は、同一の組織または同一の人物に知られない。例えば、除去ビットの位置および除去ビット数は、機器供給業者に知らせることができる。追加ビットの位置および追加ビット数は、カスタマに知らせることができる。このため、SIDは、単一の組織または単一の人物によって再構築することができない。
【0056】
6.ヒントはセキュリティ上安全に知られ、セキュリティ上安全に記憶される。
【0057】
7.SIDが紛失したか使用不可能になると、ヒントを用いて記憶デバイスのロック解除を試みる。SIDの再構築は、除去ビットの位置、追加ビットの位置、除去ビット数、および追加ビット数に基づく。以下のステップで、SIDの再構築の一例を記載する。
【0058】
8.ヒントをセキュリティ上安全に記憶している人物または組織から、GUI(グラフィカル・ユーザ・インタフェース)またはAPI(アプリケーション・プログラミング・インタフェース)によって、ヒントを取得する。追加ビットの位置および追加ビット数をセキュリティ上安全に記憶している人物または組織から、それらを取得する。次いで、ヒントから追加ビットを除去し、256ビットを247ビットのヒントに縮小する。
【0059】
9.除去ビットの位置および除去ビット数をセキュリティ上安全に記憶している人物または組織から、それらを取得する。
【0060】
10.除去ビットの位置および除去ビット数に基づいて、除去ビットの位置にそれぞれ可能な9ビットを配置することによって、512(000000000から111111111)の可能な256ビットのSIDを発生する。
【0061】
11.次いで、可能な256ビットのSIDの各々を用いて、記憶デバイスのロック解除を試みる。これは、例えば1024のような最大可能試行数よりも少ない512回までの試行を行う場合がある。
【0062】
本発明の好適な実施形態について詳細に記載したが、添付の特許請求の範囲によって規定されるような本発明の精神および範囲から逸脱することなく、様々な変更および置換を実行可能であることは理解されよう。本発明について記載する変形は、それぞれの特定の用途に望ましいいずれかの組み合わせで実現することができる。このため、特定の利点または特定の用途を有する場合がある、本明細書中に記載した特定の限定または実施形態あるいはその両方の拡張は、全ての用途に用いる必要はない。また、本発明の1つ以上の概念を含む方法、システム、または装置あるいはそれら全てにおいて、限定の全てを実施する必要はない。
【0063】
本発明は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにおいて実現することができる。ハードウェアおよびソフトウェアの典型的な組み合わせは、コンピュータ・プログラムを有する汎用コンピュータ・システムとすることができ、このプログラムがロードされて実行されると、コンピュータ・システムを制御して、これが本明細書中に記載した方法を実行するようになっている。また、本発明は、コンピュータ・プログラムに埋め込むことができる。このコンピュータ・プログラムは、本明細書中に記載した方法の実施を可能とする全ての特徴を含み、コンピュータ・システムにロードされると、これらの方法を実行することができる。
【0064】
本文脈におけるコンピュータ・プログラム手段またはコンピュータ・プログラムは、1組の命令の、いずれかの言語、コード、または表記におけるいずれかの表現を含み、この1組の命令は、情報処理機能を有するシステムに、直接、または、別の言語、コード、もしくは表記に変換した後または異なる材料形態で再生した後あるいはその両方のいずれかで、特定の機能を実行させるように意図されている。
【0065】
このため、本発明は、上述の機能を実行するためのコンピュータ読み取り可能プログラム・コード手段が埋め込まれたコンピュータ使用可能媒体を含む製造品(article of manufacture)を含む。製造品におけるコンピュータ読み取り可能プログラム・コード手段は、本発明の方法のステップをコンピュータに実行させるためのコンピュータ読み取り可能プログラム・コード手段を含む。同様に、本発明は、上述の機能を実行するためのコンピュータ読み取り可能プログラム・コード手段が埋め込まれたコンピュータ使用可能媒体を含むコンピュータ・プログラムとして実施することができる。コンピュータ・プログラムにおけるコンピュータ読み取り可能プログラム・コード手段は、本発明の1つ以上の機能をコンピュータに実行させるためのコンピュータ読み取り可能プログラム・コード手段を含む。更に、本発明は、機械によって読み取り可能なプログラム記憶デバイスとして実施することができ、これは、機械によって実行可能な命令のプログラムをタンジブルに(tangibly)具現化して、本発明の1つ以上の機能を実行するための方法ステップを実行する。
【0066】
本発明は、本発明の1つ以上の機能をコンピュータ(例えばデスクトップ、ラップトップ、サーバ等)に実行させるためのプロセッサ(例えばIBM(R)Power PC(R)、SUN(R)Spare(R)等)によって実行されるコンピュータ・プログラム命令(例えばC++、C、Java、.Net、アセンブリ言語、二進コード等)を具現化するコンピュータ読み取り可能媒体(例えばコンパクト・ディスク、デジタル多用途ディスク、ハード・ディスク、光ディスク、固体ドライブ等)上で実施することができる。本発明は、更に、本発明の1つ以上の機能のためのコンピュータ読み取り可能媒体における命令のプログラムを含むコンピュータ・プログラムを展開する方法を含み、この命令のプログラムをプロセッサによって実行すると、コンピュータ・プログラムは本発明の1つ以上の機能を実行する。
【0067】
前述の記載は、本発明のもっと多くの関係する目的および実施形態のいくつかを概説したものであることに留意すべきである。本発明は、多くの用途に用いることができる。このため、特定の構成および方法について記載したが、本発明の意図および概念は、他の構成および用途にも適切であり適用可能である。本発明の範囲から逸脱することなく、開示した実施形態に対する変更を実施可能であることは、当業者には明らかであろう。記載した実施形態は、本発明のもっと多くの顕著な特徴および用途のいくつかを例示したに過ぎないものとして解釈されるべきである。開示した本発明を異なる方法で適用することによって、または本発明を当業者に既知の方法で変更することによって、他の有利な結果を実現することができる。

【特許請求の範囲】
【請求項1】
ロックされたかまたはロック解除することができない記憶デバイスをロック解除するためのシステムであって、
キーをセキュリティ上安全に記憶するためのキー・マネージャと、
前記キーからビットを除去するための手段と、
前記除去したビットの位置および前記除去したビット数(N)をセキュリティ上安全に記憶するための除去ビット・マネージャと、
前記キーからビットを除去した後、前記キーにビットを追加してヒントを発生するための手段と、
前記追加したビットの位置および前記追加したビット数をセキュリティ上安全に記憶するための追加ビット・マネージャと、
前記キー・マネージャにおける前記キーが紛失したか、または前記記憶デバイスをロック解除することができない場合、前記追加ビットの前記位置において前記ヒントから前記追加ビットを除去するための手段と、
前記除去ビットの前記位置において前記ヒントにそれぞれ可能なNビットを配置して2Nの可能なキーを発生するための手段と、
前記記憶デバイスがロック解除されるまで前記2Nの可能なキーの各々を適用するための手段と、
を含む、システム。
【請求項2】
前記キー・マネージャ、前記除去ビット・マネージャ、または前記追加ビット・マネージャの1つが記憶デバイスまたはデータベースを含み、前記記憶デバイスまたは前記データベースと関連付けて動作する、請求項1に記載のシステム。
【請求項3】
前記キーがSID(セキュリティ識別子)である、請求項1または2に記載のシステム。
【請求項4】
暗号化/復号化アルゴリズムを利用することによって、前記キーを用いて記憶デバイスにおけるデータを暗号化または復号化する、前出の請求項のいずれかに記載のシステム。
【請求項5】
前記暗号化/復号化アルゴリズムが、RSA(リベスト シャミア エイドルマン)、DES(データ暗号化標準)、ブローフィッシュ、IDEA(アイディア)、SEAL(ソフトウェア最適化暗号アルゴリズム)、およびRC4(Rivest Cipher 4)の1つ以上である、請求項4に記載のシステム。
【請求項6】
前記除去ビット・マネージャおよび前記追加ビット・マネージャが同一の組織または同一の人物によって管理されない、前出の請求項のいずれかに記載のシステム。
【請求項7】
前記ヒントが記憶デバイスにおいてセキュリティ上安全に記憶される、前出の請求項のいずれかに記載のシステム。
【請求項8】
ロックされたかまたはロック解除することができない記憶デバイスをロック解除するための方法であって、
キーを記憶することと、
前記キーからビットを除去することと、
前記除去したビットの位置および前記除去したビット数(N)を記憶することと、
前記キーからビットを除去した後、前記キーにビットを追加してヒントを発生することと、
前記追加したビットの位置および前記追加したビット数を記憶することと、
前記キー・マネージャにおける前記キーが紛失したか、または前記記憶デバイスをロック解除することができない場合、前記追加ビットの前記位置において前記ヒントから前記追加ビットを除去することと、
前記除去ビットの前記位置において前記ヒントにそれぞれ可能なNビットを配置して2Nの可能なキーを発生することと、
前記記憶デバイスがロック解除されるまで前記2Nの可能なキーの各々を前記記憶デバイスに適用することと、
を含む、方法。
【請求項9】
前記キー、前記除去ビットの前記位置および前記除去ビット数、または前記追加ビットの前記位置および前記追加ビット数の1つが、記憶デバイスまたはデータベースにセキュリティ上安全に記憶される、請求項8に記載の方法。
【請求項10】
前記キーがSID(セキュリティ識別子)である、請求項8または9に記載の方法。
【請求項11】
暗号化/復号化アルゴリズムを利用することによって、前記キーを用いて記憶デバイスにおけるデータを暗号化または復号化する、請求項8から10のいずれかに記載の方法。
【請求項12】
前記暗号化/復号化アルゴリズムが、RSA(リベスト シャミア エイドルマン)、DES(データ暗号化標準)、ブローフィッシュ、IDEA(アイディア)、SEAL(ソフトウェア最適化暗号アルゴリズム)、およびRC4(Rivest Cipher 4)の1つ以上である、請求項11に記載の方法。
【請求項13】
前記除去ビットの前記位置および前記追加ビットの前記位置が同一の組織または同一の人物に知られない、請求項8から12のいずれかに記載の方法。
【請求項14】
前記ヒントが記憶デバイスにおいてセキュリティ上安全に記憶される、請求項8から13のいずれかに記載の方法。
【請求項15】
コンピュータ・プログラム・コードを含むコンピュータ・プログラムであって、コンピュータ・システムにロードされて実行されると、前記コンピュータ・システムに、請求項8から14のいずれかに記載の方法の全てのステップを実行させる、コンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2012−507096(P2012−507096A)
【公表日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2011−533689(P2011−533689)
【出願日】平成21年10月22日(2009.10.22)
【国際出願番号】PCT/EP2009/063917
【国際公開番号】WO2010/049347
【国際公開日】平成22年5月6日(2010.5.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】