(57)【特許請求の範囲】
【請求項１】
暗号化されたバイオメトリック・データを検索するための方法であって、
少なくとも１つのコンピュータ・デバイスを有するコンピュータ・システムが、
バイオメトリック測定値を取得するステップと、
キャンセル可能なテクニカル・コンポーネントである所定のノイズを前記バイオメトリック測定値に加えることにより、スクランブルされたバイオメトリックを得るステップと、
不可逆的暗号化関数を用いて前記スクランブルされたバイオメトリックを暗号化することにより、スクランブルされ且つ暗号化されたバイオメトリックを得るステップと、
前記不可逆的暗号化関数を用いて暗号化された複数の暗号化されたバイオメトリック・エントリを有するデータ・ストレージにアクセスするステップと、
前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、
前記算出されたノイズと前記所定のノイズとを比較して、一致するものの存否を判断するステップと、
一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を受け取るステップと、
を実行する方法。
【請求項２】
前記コンピュータ・システムが、
バイオメトリック部分と関連する情報とを有するレコードデータを取得するステップと、
前記不可逆的暗号化関数を用いて前記レコードデータの前記バイオメトリック部分を暗号化することにより、暗号化されたバイオメトリック・エントリを得るステップと、
前記アクセスの前に、前記暗号化されたバイオメトリック・エントリを、前記データ・ストレージに格納するステップと、
を更に実行する、請求項１に記載の方法。
【請求項３】
暗号化されたバイオメトリック・データを管理するための方法であって、
少なくとも１つのコンピュータ・デバイスを有するコンピュータ・システムが、
複数のバイオメトリック・エントリを取得するステップと、
不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得るステップと、
スクランブルされ且つ暗号化されたバイオメトリックを取得するステップであって、前記スクランブルされ且つ暗号化されたバイオメトリックは、所定のノイズが加えられたバイオメトリック測定値を、前記不可逆的暗号化関数を用いて暗号化したものである、前記取得するステップと、
前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、
前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断するステップと、
一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送るステップと、
を実行する方法。
【請求項４】
前記取得するステップにおいて、前記コンピュータ・システムが、
バイオメトリック測定値を取得するステップと、
前記所定のノイズを前記バイオメトリック測定値に加えることにより、スクランブルされたバイオメトリックを得るステップと、
前記不可逆的暗号化関数を用いて前記スクランブルされたバイオメトリックを暗号化することにより、前記スクランブルされ且つ暗号化されたバイオメトリックを得るステップと、を更に実行する、請求項３に記載の方法。
【請求項５】
前記比較するステップにおいて、前記コンピュータ・システムは公差を用いることによって、前記一致するものの存否を判断する、請求項１または４に記載の方法。
【請求項６】
前記複数の暗号化されたバイオメトリック・エントリはそれぞれが医学的データを含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記コンピュータ・システムが、前記暗号化されたバイオメトリック・エントリと関連する前記情報を分析するステップを更に実行する、請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記分析するステップにおいて、前記コンピュータ・システムは前記バイオメトリック測定値によって示される医学的状態を分析する、請求項７に記載の方法。
【請求項９】
前記コンピュータ・システムはハッシュ関数を用いて前記所定のノイズを加える、請求項１ないし８のいずれかに記載の方法。
【請求項１０】
少なくとも１つのコンピュータ・デバイスを有するコンピュータ・システムを備える、暗号化されたバイオメトリック・データを管理するためのシステムであって、
複数のバイオメトリック・エントリを取得するための取得モジュールと、
不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得るための暗号化モジュールと、を備えており、
前記取得モジュールは、更に、スクランブルされ且つ暗号化されたバイオメトリックを取得するように動作可能であり、前記スクランブルされ且つ暗号化されたバイオメトリックは、所定のノイズが加えられたバイオメトリック測定値を前記不可逆的暗号化関数を用いて暗号化したものであり、前記システムは、更に、
前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するための減算モジュールと、
前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断するためのコンパレータ・モジュールと、
一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送出するための送出モジュールと、
を備えるシステム。
【請求項１１】
コンピュータ可読媒体に記憶されており、前記コンピューティング・デバイスの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムが前記コンピューティング・デバイス上で動作されるときには前記コンピュータ・システムに請求項１ないし９のいずれかに記載の方法を実行させるソフトウェア・コード部分を備えている、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の主題は、一般的には、コンピュータ・データへのアクセスに関する。更に詳しくは、本発明の態様は、医療記録環境などにおいて、暗号化されたデータを管理および検索するためのシステムおよび方法を提供する。
【背景技術】
【０００２】
今日の情報技術環境においては、バイオメトリック・データ（biometric data）の使用が、ますます広範囲に拡大している。バイオメトリック・データには、所有者に固有の特徴に基づく情報が含まれる。バイオメトリック・データのいくつかの例には、ＤＮＡ、指紋、手の特徴、顔の特徴、目の特徴、動きの特徴、匂いの特徴または声の特徴、もしくはこれらすべてが含まれる。このようなデータの使用が優先される理由は、バイオメトリック・データとそのバイオメトリックの所有者との間に、絶対的な相関を達成することが可能であるからである。
【０００３】
しかし、バイオメトリック・データの使用におけるこの長所は、深刻な懸念につながる可能性も存在する。情報技術環境では、バイオメトリック・データは、バイオメトリック・データのデジタル表現などのように、コンピュータ装置が解釈することができる形式に変換されることがあり得る。この表現は、適切に保護されていない場合には、承認されていない個人によって検索されることが可能である。そのような場合には、バイオメトリック・データとそれに関連する個人との間の相関性のために、その個人に関する他のデータが、危険にさらされるおそれがある。
【０００４】
このような懸念は、サーチを実行するためにバイオメトリック・データが必要とされるときに、特に問題となり得る。そのような環境では、通信回線を経由してデータを伝送する間のバイオメトリック・データのセキュリティに、注意しなければならない。更に、サーチが必要とされるデータを含む場所におけるセキュリティのレベルを確認することは、多くの場合、困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、上述の問題に対応する必要性が、この技術分野に存在している。
【課題を解決するための手段】
【０００６】
概して、本発明の態様は、暗号化されたバイオメトリック・データを管理し、検索するためのソリューションを提供する。複数のバイオメトリック・エントリを取得し、それぞれを一意的で不可逆的な暗号化関数を用いて暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得る。バイオメトリック・エントリと比較されるバイオメトリック測定値を取得し、所定のノイズをバイオメトリック測定値に加え、次いで不可逆的暗号化関数を用いて該バイオメトリック測定値を暗号化することにより、スクランブルされ且つ暗号化されたバイオメトリックを生じさせる。各比較に際して、暗号化されたバイオメトリック・エントリの１つを、スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出する。次に、この算出されたノイズを所定のノイズと比較して、一致するものの存否を判断する。一致するものが存在するという判断に基づいて、暗号化されたバイオメトリック・エントリと関連する任意の情報を要求者に対して送る。
【０００７】
第１の態様から見ると、本発明は、暗号化されたバイオメトリック・データを検索するための方法であって、バイオメトリック測定値を取得するステップと、キャンセル可能なテクニカル・コンポーネントである所定のノイズを前記バイオメトリック測定値に加えることにより、スクランブルされたバイオメトリックを得るステップと、不可逆的暗号化関数を用いて前記スクランブルされたバイオメトリックを暗号化することにより、スクランブルされ且つ暗号化されたバイオメトリックを得るステップと、前記不可逆的暗号化関数を用いて暗号化された複数の暗号化されたバイオメトリック・エントリを有するデータ・ストレージにアクセスするステップと、前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、前記計算されたノイズと前記所定のノイズとを比較して、一致するものの存否を判断するステップと、一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を受け取るステップと、を含む方法を提供する。
【０００８】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを管理するための方法であって、複数のバイオメトリック・エントリを取得するステップと、不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得るステップと、スクランブルされ且つ暗号化されたバイオメトリックを取得するステップであって、前記スクランブルされ且つ暗号化されたバイオメトリックは、所定のノイズが加えられたバイオメトリック測定値を、前記不可逆的暗号化関数を用いて暗号化したものである、前記取得するステップと、前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断するステップと、一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送るステップと、を含む方法を提供する。
【０００９】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを管理するためのシステムであって、少なくとも１つのコンピュータ・デバイスを有するコンピュータ・システムを備えるシステムにおいて、複数のバイオメトリック・エントリを取得するための取得モジュールと、不可逆的暗号化関数を用いて複数のバイオメトリック・エントリのそれぞれを暗号化し、複数の暗号化されたバイオメトリック・エントリを得るための暗号化モジュールと、を備えており、取得モジュールは、更に、スクランブルされ且つ暗号化されたバイオメトリックを取得するように動作可能であり、スクランブルされ且つ暗号化されたバイオメトリックとは、所定のノイズが適用され不可逆的暗号化関数を用いて暗号化されたバイオメトリック測定値であり、このシステムは、更に、複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、スクランブルされ且つ暗号化されたバイオメトリックから減算し、ノイズを算出するための減算モジュールと、計算されたノイズと所定のノイズとを比較し、一致するものの存否を判断するためのコンパレータ・モジュールと、一致するものが存在するという判断に基づき、暗号化されたバイオメトリック・エントリと関連する情報を送出するための送出モジュールと、を備えるシステムを提供する。
【００１０】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを管理するためのシステムであって、複数のバイオメトリック・エントリを取得するステップと、不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得るステップと、スクランブルされ且つ暗号化されたバイオメトリックを取得するステップであって、前記スクランブルされ且つ暗号化されたバイオメトリックは、所定のノイズが加えられたバイオメトリック測定値を、前記不可逆的暗号化関数を用いて暗号化したものである、前記取得するステップと、前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断するステップと、一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送るステップと、を含む方法を実行する少なくとも１つのコンピュータ・デバイスを有するコンピュータ・システムを備えたシステムを提供する。
【００１１】
別の態様から見ると、本発明は、コンピュータ可読記憶媒体において具体化されているコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、実行されると、暗号化されたバイオメトリック・データを管理するための方法であって、複数のバイオメトリック・エントリを取得するステップと、不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得るステップと、スクランブルされ且つ暗号化されたバイオメトリックを取得するステップであって、前記スクランブルされ且つ暗号化されたバイオメトリックは、所定のノイズが加えられたバイオメトリック測定値を、前記不可逆的暗号化関数を用いて暗号化したものである、前記取得するステップと、前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出するステップと、前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断するステップと、一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送るステップと、を含む方法を実行する。
【００１２】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを管理し検索するためのアプリケーションを配備する方法を提供するのであるが、この方法は、複数のバイオメトリック・エントリを取得すること、不可逆的暗号化関数を用いて前記複数のバイオメトリック・エントリのそれぞれを暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得ること、スクランブルされ且つ暗号化されたバイオメトリックを取得すること、ここで、前記スクランブルされ且つ暗号化されたバイオメトリックとは、所定のノイズが加えられたバイオメトリック測定値を、前記不可逆的暗号化関数を用いて暗号化したものであり、更に、前記複数の暗号化されたバイオメトリック・エントリのうちの１つの暗号化されたバイオメトリック・エントリを、前記スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出すること、前記算出されたノイズと前記所定のノイズとを比較し、一致するものの存否を判断すること、および、一致するものが存在するという判断に基づき、前記暗号化されたバイオメトリック・エントリと関連する情報を送ること、という動作が可能なコンピュータ・システムを提供することを含む。
【００１３】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを検索するためのコンピュータ・プログラム製品であって、本発明のステップを実行するための方法を実行するための処理回路によって読み出し可能であり、処理回路によって実行されるための命令を記憶しているコンピュータ可読記憶媒体を備えたコンピュータ・プログラム製品を提供する。
【００１４】
別の態様から見ると、本発明は、暗号化されたバイオメトリック・データを管理するためのコンピュータ・プログラム製品であって、処理回路によって読み出し可能であり、処理回路によって実行されるための命令を記憶しており、本発明のステップを実行するための方法を実行するためのコンピュータ可読記憶媒体を備えたコンピュータ・プログラム製品を提供する。
【００１５】
別の態様から見ると、本発明は、コンピュータ可読媒体に記憶されており、デジタル・コンピュータの内部メモリにロードすることが可能なコンピュータ・プログラムであって、ソフトウェア・コード部分を備えていて、このプログラムがコンピュータ上で動作されると、本発明のステップを実行するコンピュータ・プログラムを提供する。
【００１６】
更にまた、本発明のコンポーネントの任意のものは、１つもしくは複数の暗号化されたバイオメトリックの管理または検索もしくはその両方を行うことを提供するサービス・プロバイダによって、例えば配備され、管理され、サービスされ得るものである。
【００１７】
本発明の実施形態は、また、関係するシステム、方法、またはプログラム製品を、もしくはこれらすべてを提供する。
【００１８】
次に、本発明が、単なる例を用い、以下の図において図解されている好適な実施形態を参照することにより、説明される。
【図面の簡単な説明】
【００１９】
【図１】本発明の好適な実施形態に従って、本発明の実施形態を実装するために適したデータ処理システムを示す図である。
【図２】本発明の好適な実施形態によるデータ設定モジュールに含まれる１組のモジュールを示す図である。
【図３】本発明の好適な実施形態によるデータ設定モジュールの機能を図解する図である。
【図４】本発明の好適な実施形態によるバイオメトリック・スクランブラ・モジュールに含まれ得る１組のモジュールを示す図である。
【図５】本発明の好適な実施形態によるバイオメトリック・スクランブラ・モジュールの機能を図解する図である。
【図６】本発明の好適な実施形態によるデータ設定モジュールに含まれ得る１組のモジュールを示す図である。
【図７】本発明の好適な実施形態によるコンパレータ・モジュールの機能を図解する図である。
【発明を実施するための形態】
【００２０】
図面は、必ずしも寸法通りではない。図面は、単に概略的な図解であって、本発明の特定のパラメータを描写することを意図していない。図面は、本発明の単に典型的な実施形態を示す意図を有しており、従って、本発明の範囲を限定するものと見なすべきではない。なお、図面においては、類似の参照番号は、類似の要素を表現している。
【００２１】
上述したように、本発明の態様は、暗号化されたバイオメトリック・データを管理および検索するためのソリューションを提供する。複数のバイオメトリック・エントリを取得し、それぞれを一意的で不可逆的な暗号化関数を用いて暗号化することにより、複数の暗号化されたバイオメトリック・エントリを得る。バイオメトリック・エントリと比較されるバイオメトリック測定値を取得し、所定のノイズをバイオメトリック測定値に加え、次いで不可逆的暗号化関数を用いて該バイオメトリック測定値を暗号化することにより、スクランブルされ且つ暗号化されたバイオメトリックを生じさせる。各比較に際して、暗号化されたバイオメトリック・エントリの１つを、スクランブルされ且つ暗号化されたバイオメトリックから減算することにより、ノイズを算出する。次に、この算出されたノイズを所定のノイズと比較して、一致するものの存否を判断する。一致するものが存在するという判断に基づいて、暗号化されたバイオメトリック・エントリと関連する任意の情報を要求者に対して送る。
【００２２】
図面を参照すると、図１は、暗号化されたバイオメトリック・データを管理および検索するための例示的な環境１００を示す。このように、環境１００は、暗号化されたバイオメトリック・データを管理および検索するために、本明細書で説明されるプロセスを実行することができるコンピュータ・システム１０２を含む。特に、コンピュータ・システム１０２は、暗号化されたデータの管理プログラム１４０を含むコンピューティング・デバイス１０４を含むように示されている。暗号化されたデータの管理プログラム１４０により、コンピューティング・デバイス１０４が、本明細書で説明されるプロセスを実行することによって、暗号化されたバイオメトリック・データを管理および検索するように動作することが可能になる。
【００２３】
コンピューティング・デバイス１０４は、処理ユニット１０６（例えば、１つまたは複数のプロセッサ）と、メモリ１１０と、ストレージ・システム１１８（例えば、ストレージ階層）と、入力／出力（Ｉ／Ｏ）インターフェース・コンポーネント１１４（例えば、１つもしくは複数のＩ／ＯインターフェースまたはＩ／Ｏデバイスもしくはその両方）と、通信経路１１２とを含むように、示されている。概して、処理ユニット１０６は、暗号化されたデータの管理プログラム１４０などのプログラム・コードを実行する。なお、暗号化されたデータの管理プログラム１４０は、少なくとも部分的には、メモリ１１０において固定されている。メモリ１１０は、また、プログラム・コードが実際に実行される間に用いられるローカル・メモリと、バルク・ストレージ（ストレージ１１８）と、キャッシュ・メモリ（図示せず）とを含み得る。なお、キャッシュ・メモリは、実行の間、プログラム・コードをストレージ・システム１１８から検索されなければならない回数を減らすために、少なくとも一部のプログラム・コードを一時的に記憶する。プログラム・コードが実行される間、処理ユニット１０６はデータを処理することができるのであるが、その結果として、更なる処理のために、メモリ１１０との間またはＩ／Ｏインターフェース・コンポーネント１１４との間もしくはその両方で、変換されるデータの読み出しまたは書き込みもしくはその両方が生じ得る。経路１１２は、コンピュータ・システム１０２におけるそれぞれのコンポーネントの間に、直接的または間接的な通信リンクを提供する。Ｉ／Ｏインターフェース・コンポーネント１１４は、１つまたは複数の人間とのＩ／Ｏデバイスを含み得る。それによって、人間であるユーザ１２０が、コンピュータ・システム１０２と対話することが可能になり、または、１つもしくは複数の通信デバイスが、システム・ユーザ１２０とコンピュータ・システム１０２とが任意のタイプの通信リンクを用いて通信することが可能になり、もしくはその両方が可能になる。
【００２４】
このように、暗号化されたデータの管理プログラム１４０は、（例えば、グラフィカル・ユーザ・インターフェース、アプリケーション・プログラム・インターフェース、または同様のもの、もしくはこれらすべてなどの）１組のインターフェースを管理することができる。この１組のインターフェースにより、人間またはシステム・ユーザ１２０もしくはその両方が、暗号化されたデータの管理プログラム１４０と対話することが可能になる。更に、暗号化されたデータの管理プログラム１４０は、任意のソリューションを用いて、データ１５２を管理（例えば、記憶、検索、生成、操作、編成、提供など）することができる。
【００２５】
いずれにしても、コンピュータ・システム１０２は、そこにインストールされている暗号化されたデータの管理プログラム１４０などのプログラム・コードを実行することができる、１つまたは複数の汎用計算製品１０４（例えば、コンピューティング・デバイス）を含み得る。本明細書において用いられる「プログラム・コード」とは、任意の言語、コードまたは概念で書かれた命令の任意の集合であると理解される。なお、この命令の任意の集合が、情報処理能力を有するコンピューティング・デバイスに、特定の作用を直接的に、あるいは、（ａ）別の言語、コードまたは表記への変換、（ｂ）異なるデータ形式での再生、および／または（ｃ）解凍、の任意の組み合わせの後に、実行させるのである。このように、暗号化されたデータの管理プログラム１４０は、システム・ソフトウェアまたはアプリケーション・ソフトウェアもしくはその両方の任意の組み合わせとして、具体化することが可能である。いずれにしても、コンピュータ・システム１０２の技術的効果は、暗号化されたバイオメトリック・データを管理および検索するために、処理命令をコンピューティング・デバイス１０４に提供することである。
【００２６】
更に、暗号化されたデータの管理プログラム１４０は、１組のモジュール１４２〜１４８を用いて、具現化することが可能である。この場合、モジュール１４２〜１４８によって、暗号化されたデータの管理プログラム１４０が使用する１組のタスクをコンピュータ・システム１０２に実行させることが可能であり、更にはモジュール１４２〜１４８を、暗号化されたデータの管理プログラム１４０の他の部分とは独立して、別個に開発し、または実装し、もしくはその両方を行うことが可能である。本明細書において用いられている「コンポーネント」という用語は、ソフトウェアを伴う場合も伴わない場合もあるが、ハードウェアの任意の構成を意味し、それと共に記述した機能を、任意のソリューションを用いて具現化するものである。他方で、「モジュール」という用語は、それと共に記述した機能を、コンピュータ・システム１０２により任意のソリューションを用いて具現化することを可能にするプログラム・コードを意味している。処理ユニット１０６を含むコンピュータ・システム１０２のメモリ１１０に固定されているときには、モジュールは、作用を具現化するコンポーネントの実質的な部分である。いずれにしても、２つ以上のコンポーネント、モジュール、および／またはシステム、が、それぞれの対応するハードウェアおよび／またはソフトウェアの一部／全部を共有する場合があることが、理解されるべきである。更に、本明細書において論じられる機能の一部が具現化されない場合があること、または、追加的な機能がコンピュータ・システム１０２の一部として含まれることがあることも、理解されるべきである。
【００２７】
コンピュータ・システム１０２が複数のコンピューティング・デバイス１０４を含むときには、それぞれのコンピューティング・デバイス１０４が、そこに固定されている暗号化されたデータの管理プログラム１４０の一部だけ（例えば、モジュール１４２〜１４８のうちの１つまたは複数）を有することがあり得る。しかし、コンピュータ・システム１０２と暗号化されたデータの管理プログラム１４０とは、本明細書で説明されているプロセスを実行可能な様々なあり得るコンピュータ・システムを均等に表しているに過ぎないことが、理解されよう。このように、他の実施形態では、コンピュータ・システム１０２と暗号化されたデータの管理プログラム１４０とによって提供される機能は、プログラム・コードを含む場合も含まない場合もあるが、汎用または専用もしくはその両方のハードウェアの任意の組み合わせを含む１つまたは複数のコンピューティング・デバイスによって、少なくとも部分的に具現化され得る。それぞれの実施形態において、ハードウェアと、含まれている場合にはプログラム・コードとは、それぞれが、標準的な工学とプログラミング技術とを用いて、作成することが可能である。
【００２８】
いずれにしても、コンピュータ・システム１０２が複数のコンピューティング・デバイス１０４を含むときには、これらのコンピューティング・デバイスは、任意のタイプの通信リンクを経由して通信することができる。更に、本明細書において説明されているプロセスを実行している間には、コンピュータ・システム１０２は、任意のタイプの通信リンクを用いて、１つまたは複数の他のコンピュータ・システムと通信することができる。いずれの場合であっても、通信リンクは、様々なタイプの有線リンクおよび／または無線リンクの任意の組み合わせを含むものであってよく、１つまたは複数のタイプのネットワークの任意の組み合わせを含むか、あるいは様々なタイプの伝送技術およびプロトコルの任意の組み合わせを使用できるものである。
【００２９】
本明細書において論じられているように、暗号化されたデータの管理プログラム１４０によって、コンピュータ・システム１０２が、暗号化されたバイオメトリック・データを管理および検索することが可能になる。このように、暗号化されたデータの管理プログラム１４０は、暗号化されたデータ設定モジュール１４２と、バイオメトリック・スクランブラ・モジュール１４４と、コンパレータ・モジュール１４６と、バイオメトリック情報関連付けモジュール１４８とを含むように、示されている。
【００３０】
次に、図１と共に図２を参照すると、本発明の実施形態によるデータ設定モジュール１４２に含まれ得る１組のモジュール１５２〜１５６が示されている。暗号化されたデータ設定モジュール１４２は、これらのモジュール１５２〜１５６の１つまたは複数を用いて、暗号化されたデータの管理プログラム１４０によって用いられる暗号化されたデータのデータベースを設定することができる。このように、暗号化されたデータ設定モジュール１４２は、バイオメトリック・エントリ取得モジュール１５２と、バイオメトリック・エントリ暗号化モジュール１５４と、バイオメトリック・エントリ記憶モジュール１５６とを含み得る。
【００３１】
次に、図２と共に図３を参照すると、本発明の実施形態による暗号化されたデータ設定モジュール１４２の機能を図解する図２００が示されている。このように、暗号化されたデータ設定モジュール１４２は、本発明のためのデータ収集と、ユーザの母集団の不可逆的な暗号化のデータベース２２０への収容とを容易にすることができる。それを行うために、バイオメトリック・エントリ取得モジュール１５２は、データベース２２０において用いるために、複数のバイオメトリック・エントリ（登録されている被験者）２０２ａ〜ｎを取得することができる。バイオメトリック・エントリ２０２ａ〜ｎのそれぞれが、バイオメトリック２０４ａ〜ｎを含むことがあり得る。バイオメトリック２０４ａ〜ｎは、これらに限定されることはないが、デオキシリボ核酸（ＤＮＡ）、指紋、手の特徴、顔の特徴、目の特徴、動きの特徴、匂いの特徴または声の特徴、もしくはこれらすべてを含む、バイオメトリック・データの任意のソースであり得る。医学的な応用例では、バイオメトリック２０４ａは、血液試料、組織試料、医用画像などのものを含み得る。このように、バイオメトリック・エントリ取得モジュール１５２は、バイオメトリック・データまたは任意の他の類似するタイプのデータを取得するために現時点で知られているまたは将来開発される任意のソリューションを用いることができる。これには、限定を意味しないが、医用撮像装置、指のまたは手のもしくはその両方のスキャナ、非医用撮像装置、血液のまたは組織のもしくはその両方のサンプリング装置、ＤＮＡスキャナなどが含まれる。バイオメトリック２０４ａ〜ｎに対しては、次に、他のバイオメトリックと共通の態様でアライメント処理を実行し、デジタル化することができる。
【００３２】
バイオメトリック２０４ａ〜ｎに加えて、バイオメトリック・エントリ２０２ａ〜ｎは、更に、関連情報２０６ａ〜ｎを含み得る。関連情報２０６ａ〜ｎには、バイオメトリック２０４ａ〜ｎの所有者との関係を有するどのような情報でも含まれ得る。このように、関連情報２０６ａ〜ｎは、バイオメトリック２０４ａ〜ｎの使用を通じてのみ取得することが可能な情報を含み得る。いずれの場合でも、関連情報２０６ａ〜ｎは、バイオメトリック２０４ａ〜ｎの所有者に関係のある財務情報や医学的情報など、扱いに注意を要する情報を含み得る。
【００３３】
関連情報２０６ａ〜ｎが医学的情報を含む場合には、関連情報２０６ａ〜ｎは、バイオメトリック・データまたは医学的データもしくはその両方である２０４ａ〜ｎの所有者の特性を、所有者を実際に識別しながらまたは識別することなく、提供する情報を含み得る。これには、限定を意味しないが、身長、体重、年齢、ボディマス指数（ＢＭＩ）、血圧、血液検査情報などが含まれる。更に、または代替として、関連情報２０６ａ〜ｎは、関連するバイオメトリック２０４ａ〜ｎの特性に直接的に関係するまたはそれを説明する、もしくはその両方である情報を含み得る。例えば、特定のバイオメトリック２０４ａが組織試料を含む場合には、関連情報２０６ａは、その細胞がどこから得られたのか、その細胞に腫瘍などの異常があると判断されたかどうか、またはその細胞が癌性の要素を有することが示されたかどうか、もしくはこれらすべてに関する情報を提供することがあり得る。このように、関連情報２０６ａ〜ｎは、測定値、観察記録、分析、記述、診断、または、バイオメトリック２０４ａ〜ｎに関する情報を提供するように機能し得る任意のそれ以外の情報、もしくはこれらすべてを含み得る。
【００３４】
図２と共に、引き続き図３を参照すると、どのような場合であっても、バイオメトリック・エントリ取得モジュール１５２がエントリ１０２ａ〜ｎを取得すると、バイオメトリック・エントリ暗号化モジュール１５４が、不可逆的暗号化関数２１０を用いて、複数のバイオメトリック・エントリ１５２ａ〜ｎのそれぞれを暗号化する。同じ時間間隔の間にバイオメトリック・エントリ２０２ａ〜ｎのすべてを暗号化しなければならない訳ではない、ということを理解すべきである。そうではなく、それぞれ個別のバイオメトリック・エントリ２０２ｉを、エントリ取得モジュール１５２によって取得するときに、暗号化してもよい。いずれの場合にも、不可逆的暗号化関数２１０をバイオメトリック・エントリ２０２ａ〜ｎに適用することにより、暗号化されたレコード２２２ａ〜ｎを生じさせる。更に、暗号化されたレコード２２２ａ〜ｎはバイオメトリック・データ２２４ａと関連情報２２６ａとを含み得るから、暗号化されたレコード２２２ａ〜ｎを、確率的（stochastic）暗号化と称することができる。
【００３５】
いずれの場合でも、バイオメトリック・エントリ暗号化モジュール１５４が暗号化されたレコード２２２ａ〜ｎを生成するのに用いる不可逆的暗号化関数２１０は、現時点で知られているか、または今後開発される任意の不可逆的暗号化関数であってかまわない。このタイプの関数は、キャンセル可能であり匿名のバイオメトリックまたは暗号化としてこの技術分野で知られている関数を含み得る。例えば、バイオメトリック・センサのデジタル化された出力を表すバイオメトリック２０４ａ〜ｎに対して、ランダム性を生じさせるように構成されている１つまたは複数のトークン２１２を適用することが可能である。同じトークン２１２または異なるトークン２１２を関連情報２２６ａに適用してマスクすることも可能である。不可逆的暗号化関数２１０によって用いられるトークン２１２は、それぞれの暗号化されたレコード２２２ａ〜ｎが他のどの暗号化されたレコード２２２ａ〜ｎからも一意的であるように、理想的には一意の結果を生じさせるものである。いずれの場合でも、それぞれの暗号化されたバイオメトリック／確率的データに対して、トークン２１２のうちの別個で一意的なトークンを用いることができる。このトークンを用いて、不可逆的暗号化関数２１０により不可逆的変換を生成する。新たなデータが入ってくるときには、同一のトークンを用いて、追加的なデータを別個に暗号化してもよいし、データ・ファイル全体を再度暗号化してもよい。データの容量が大きくなるにつれて、この暗号化を破る（break）ことがより困難になるので、複数のトークン２１２がしばしば用いられる。
【００３６】
バイオメトリック・エントリ暗号化モジュール１５４が暗号化されたレコード２２２ａ〜ｎを生成すると、バイオメトリック・エントリ記憶モジュール１５６は、暗号化されたレコード２２２ａ〜ｎをデータベース２２０に記憶する。バイオメトリック・エントリ記憶モジュール１５６は、暗号化されたレコード２２２ａ〜ｎをデータベース２２０に記憶するのに、現時点で知られているか、または今後開発される任意のソリューションを用いることができる、ということを理解するべきである。例えば、バイオメトリック・データ２２４ａ〜ｎと関連情報２２６ａ〜ｎとは、単一の複合エンティティとして記憶してよい。または、他の例では、関連情報２２６ａ〜ｎは、検索のためにバイオメトリック・データ２２４ａ〜ｎを依然として必要とするものの、バイオメトリック・データ２２４ａ〜ｎとは別個に記憶してもよい。図１〜３には、これまでに発明されたものと今後発明されるものとを含み、何らかの一般的な不可逆的（キャンセル可能で匿名の）暗号化を用いてデータを暗号化するための一般的なアーキテクチャが記載されていることに注意すべきである。図４〜５には、ランダム性を追加することによって不可逆性を達成する暗号化が記載されている。
【００３７】
次に、図１と共に図４を参照すると、本発明の実施形態によるバイオメトリック・スクランブラ・モジュール１４４に含まれ得る１組のモジュール１６２〜１６６が示されている。バイオメトリック・スクランブラ・モジュール１４４は、これらのモジュール１６２〜１６６の１つまたは複数を用いて、データベース２２０（図３）と比較するための、スクランブルされ且つ暗号化されたバイオメトリックを生成する。このように、バイオメトリック・スクランブラ・モジュール１４４は、バイオメトリック測定値取得モジュール１６２と、ノイズ適用モジュール１６４と、バイオメトリック測定値暗号化モジュール１６６とを含み得る。
【００３８】
次に図４と共に図５を参照すると、本発明のある実施形態によるバイオメトリック・スクランブラ・モジュール１４４の機能を図解する図が示されている。バイオメトリック測定値取得モジュール１６２は、データベース２２０（図３）中の暗号化されたレコード２２２ａ〜ｎと比較するために、バイオメトリック測定値３０２を取得する。バイオメトリック測定値３０２は、バイオメトリック・エントリ２０２ａ〜ｎとは独立して取得されるのであって、バイオメトリック測定値３０２の所有者が、データベース２２０中にバイオメトリック・エントリ２０２ａ〜ｎを有していないことがあり得る。しかし、バイオメトリック・エントリ２０２ａ〜ｎの場合のように、バイオメトリック測定値３０２は、これらに限定されないが、ＤＮＡ、指紋、手の特徴、顔の特徴、目の特徴、動きの特徴、匂いの特徴または声の特徴、もしくはこれらすべてを含むバイオメトリック・データの任意のソースであり得る。医学的な用途では、バイオメトリック３０２は、血液試料、組織試料、医用画像などを含み得る。このように、バイオメトリック測定値取得モジュール１６２は、これらに限定されないが、医用撮像装置、指のまたは手のもしくはその両方のスキャナ、非医用撮像装置、血液のまたは組織のもしくはその両方のサンプリング装置、ＤＮＡスキャナなどを含む、バイオメトリック・データを取得するための現時点で知られているか、または今後開発される任意のソリューションを用いることができる。しかしながら、バイオメトリック・エントリ２０２ａ〜ｎとは異なり、バイオメトリック測定値３０２は、関連情報２０４ａ〜ｎ（図３）を有していない場合がある。
【００３９】
いずれの場合でも、バイオメトリック測定値取得モジュール１６２がバイオメトリック測定値３０２を取得すると、ノイズ適用モジュール１６４が、所定のノイズ３０４をバイオメトリック測定値３０２に加える。所定のノイズ３０４は、バイオメトリック測定値３０２やバイオメトリック２０４ａ〜ｎなどのような、バイオメトリック測定値の中にしばしば存在する背景ノイズと混同されるべきでない。そのような背景ノイズは、多くの場合、バイオメトリック測定値を取得する際に用いたスキャナの不正確さの結果である。この不正確さは、異なるスキャナを用いたこと、または、同一のスキャナで異なる測定をしたことに起因する。更に、背景ノイズは、バイオメトリック自体、またはバイオメトリックの周囲の環境、もしくはその両方の状態が変化することの結果であり得る。更に、バイオメトリックをデジタル・データに変換する際に生じる損失が、背景ノイズに寄与する場合があり得る。対照的に、所定のノイズ３０４は、承認されていないユーザによってバイオメトリック測定値３０２が容易に解釈されることを防止するため、バイオメトリック測定値３０２の中にランダム性を生じさせるように構成されていることを理解すべきである。この点、所定のノイズ３０４は、ハッシュ関数を用いて決定することができる。もしくは、所定のノイズは、現時点で知られているか、または今後開発される任意のソリューションを用いて決定することができる。本発明の目的のために、ノイズが加えられたバイオメトリック測定値３０２を、スクランブルされたバイオメトリックと称する。
【００４０】
ノイズ適用モジュール１６４がノイズ３０４を用いてバイオメトリック測定値３０２をスクランブルすると、バイオメトリック測定値暗号化モジュール１６６が、不可逆的暗号化関数２１０を用いて、スクランブルされたバイオメトリック測定値３０４を暗号化する。スクランブルされたバイオメトリック測定値３０２を暗号化するのに用いる不可逆的暗号化関数２１０は、バイオメトリック・エントリ２０２ａ〜ｎを暗号化するのに用いられる不可逆的暗号化関数２１０（図３）と同じであることを認識すべきである。そのようなものとして、バイオメトリック測定値暗号化モジュール１６６がスクランブルされ且つ暗号化されたバイオメトリック３０６を生成するのに用いる不可逆的暗号化関数２１０は、現時点で知られているか、または今後開発される任意の不可逆的な関数であってよい。例えば、バイオメトリック・エントリ２０２ａ〜ｎに適用したものとは異なるトークン２１２を、スクランブルされたバイオメトリック測定値３０２に適用してよい。いずれにしても、不可逆的暗号化関数２１０をバイオメトリック測定値に適用することによって、スクランブルされ且つ暗号化されたバイオメトリック３０６を生じさせる。
【００４１】
次に、図１と共に図６を参照すると、本発明の実施形態によるコンパレータ・モジュール１４６に含まれ得る１組のモジュール１７２〜１７６が示されている。コンパレータ・モジュール１４２は、これらのモジュール１７２〜１７６の１つまたは複数を用いて、スクランブルされ且つ暗号化されたバイオメトリック３０６（図５）と、データベース２２０（図３）中の暗号化されたレコード２２２ａ〜２２２ｎ（図３）とを比較することができる。このように、コンパレータ・モジュール１４６は、データ・ストレージ・アクセス・モジュール１７２と、バイオメトリック・エントリ減算モジュール１７４と、ノイズ・コンパレータ・モジュール１７６とを含み得る。暗号化されたバイオメトリック２２２ａ〜ｎの表現はノイズと称し得るが、その理由は、識別可能なデータではなく、ノイズのように見えるからである。しかしながら、バイオメトリックに関する関連情報２２６ａ〜ｎはこの表現形態で存在することを、理解すべきである。
【００４２】
次に、図６と共に図７を参照すると、本発明の実施形態によるコンパレータ・モジュール１４６の機能を図解する図が示されている。このように、コンパレータ・モジュール１４６は、本発明のマッチング機能を実行することができる。これを達成するため、データ・ストレージ・アクセス・モジュール１７２は、暗号化されたレコード２２２ａ〜２２２ｎを有するデータ・ストレージ（例えば、データベース２２０）にアクセスすることができる。データ・アクセスのための、現時点で知られているか、または今後開発される任意の通信ソリューションまたはネットワーク・ソリューションもしくはその両方を用いることが可能であることを、理解すべきである。
【００４３】
データベース２２０にアクセスした後、バイオメトリック・エントリ減算モジュール１７４は、暗号化されたバイオメトリック・エントリ２２２ａ〜ｎを、スクランブルされ且つ暗号化されたバイオメトリック３０６から減算する。上述したように、スクランブルされ且つ暗号化されたバイオメトリック３０６は、所定のノイズ３０４（図５）を用いてスクランブルされ、次いで一意的なトークン２１２（図５）を経由する不可逆的暗号化関数２１０（図５）を用いて暗号化されている。同様に、暗号化されたレコード２２２ａ〜ｎにおけるバイオメトリック・データ２２４ａ〜ｎの各インスタンスは、異なるか、または同一であり得るトークン２１２（図３）を経由し、同じ不可逆的暗号化関数２１０（図３）を用いて暗号化されている。しかし、バイオメトリック・データ２２４ａ〜ｎのこれらのインスタンスは、スクランブルされ且つ暗号化されたバイオメトリック３０６のように所定のノイズ３０４（図５）にさらされてはいない。従って、バイオメトリック・データ２２４ａ〜ｎのそれぞれをスクランブルされ且つ暗号化されたバイオメトリック３０６から減算すると、一意的なノイズ４０２ａ〜ｎが残る。
【００４４】
１回または複数回の減算を行った後、ノイズ・コンパレータ・モジュール１７６は、算出されたノイズ４０２ａ〜ｎと所定のノイズ３０４（図５）とを比較して、一致するものが存在するか否かを判断する。具体的には、バイオメトリック２０４ａ〜ｎ（図３）とバイオメトリック測定値３０２（図５）との両方がトークン２１２を用いる不可逆的暗号化関数２１０によって暗号化されているため、それぞれの元の値が実質的に等しいならば、ノイズ４０２ａ〜ｎは所定のノイズ３０４とほぼ等しくなる。その理由は、所定のノイズは元のバイオメトリック測定値３０２に元々組み込まれていたが、バイオメトリック・エントリ２０２ａ〜ｎはそうではないからである。
【００４５】
例えば、図７に示すように、バイオメトリック・データ２２４ｂを、スクランブルされ且つ暗号化されたバイオメトリック３０６から減算した結果、所定のノイズ３０４に一致するノイズ４０２ｂが生じている。従って、暗号化されたレコード２２２ｂは、バイオメトリック測定値３０２と一致するものとして分類できる。対照的に、他のバイオメトリック・データ２２４ａおよび２２４ｎを、スクランブルされ且つ暗号化されたバイオメトリック３０６から減算した結果、所定のノイズ３０４と一致しないノイズ４０２ａおよび４０２ｎが生じている。従って、暗号化されたレコード２２２ａおよび暗号化されたレコード２２２ｎは、バイオメトリック測定値３０２と一致するものとして分類することができない。
【００４６】
上述の例は、計算されたノイズ４０２ｂと所定のノイズ３０４との間の一対一の一致を意味しているように考えられるかもしれないが、そのように一致する蓋然性がない、またはそのような一致が望ましい訳でもない場合があることを認識すべきである。具体的には、上述したように、元のバイオメトリックまたは元のバイオメトリックの周囲の状態のいずれか一方または両方が変化すると、バイオメトリック測定値には、何らかのノイズが付随する蓋然性がある。従って、厳密な一致が求められている場合であっても、何らかの公差を比較ステップに導入しなければならない。更に、医学的用途のサーチのように、バイオメトリックの所有者にかかわりなく、共有特性を有するバイオメトリックを求めるものである場合には、厳密な一致を求める場合よりも広い公差を用いなければならない。
【００４７】
そのような広い公差を用いると、何らかのバイオメトリック測定値３０２を導入し、類似の特性を有するバイオメトリック・データ２２４ａ〜ｎについてデータベース２２０をサーチするようなアプリケーションの開発が可能となる。例えば、医学の分野では、医用画像を用いて、その医用画像に含まれている何らかの特性について、類似の医用画像を含むデータベース２２０をサーチすることがある。しかし、バイオメトリック測定値３０２とバイオメトリック・エントリ２０２ａ〜ｎの両方が暗号化されているために、いずれかの所有者に関する個人情報を危険にさらすリスクを低下させた態様で、完全なサーチを行うことが可能である。
【００４８】
次に、図１と共に図７を参照するに、一致が確立されると、バイオメトリック・データ関連付けモジュール１４８は、一致したバイオメトリック・データ２２４ｂに関連する関連情報２２６ｂを、データベース２２０から検索することができる。次いで、この関連情報２２６ａを、要求者に対して出力４０４として送ることができる。関連情報２２６ｂは、暗号化された形式で送って要求者が解読するようにしてもよいし、あるいは平文形式で送ってもよい。更に、出力の送信には、現時点で知られているか、または今後開発される任意のソリューションを用いることが可能である。出力４０４を受け取ると、関連情報２２６ｂに対する分析を行うことができる。この分析は、手動による分析という形式をとることがあるし、または、自動化された分析装置を用いて実行することも可能である。例えば、診断を目的として医用データベースにおいてサーチが実行された場合には、返された出力４０４は、元のバイオメトリック測定値３０２に示されていたものと類似の医学的状態にある患者の分析結果を有する１つまたは複数のレコードを含むことがあり得る。
【００４９】
本明細書では、暗号化されたバイオメトリック・データを管理および検索するための方法およびシステムとして、示され説明されているが、本発明の態様は、更に、様々な代替的な実施形態を提供するということが、理解される。例えば、ある実施形態では、本発明は、少なくとも１つのコンピュータ可読媒体において固定されたコンピュータ・プログラムであって、実行されると、コンピュータ・システムが暗号化されたバイオメトリック・データを管理および検索することを可能にするコンピュータ・プログラムを提供する。このように、コンピュータ可読媒体は、暗号化されたデータの管理プログラム１４０（図１）などのプログラム・コードであって、本明細書で説明されているプロセスの一部または全部を実装するプログラム・コードを含む。「コンピュータ可読媒体」という用語は、現時点で知られているか、または今後開発される、任意のタイプの有形の表現媒体の１つまたは複数を含み、この媒体から、プログラム・コードのコピーを、コンピューティング・デバイスによって、認知する、再生する、またはそれ以外の態様で通信することが可能であることが理解されよう。例えば、コンピュータ可読媒体は、１つまたは複数のポータブルな記憶製造品、コンピューティング・デバイスの１つまたは複数のメモリ／ストレージ・コンポーネント、紙、または類似のもの、もしくはこれらすべてを含み得る。
【００５０】
別の実施形態では、本発明は、暗号化されたデータの管理プログラム１４０（図１）などの、本明細書で説明されているプロセスの一部または全部を具現化するプログラム・コードのコピーを提供する方法を提供する。この場合、コンピュータ・システムは、本明細書において説明されているプロセスの一部または全部を具現化するプログラム・コードのコピーを処理して、１組のデータ信号の形態でプログラム・コードのコピーを符号化する態様で、特性の１つもしくは複数が設定されまたは変更され、もしくはその両方である１組のデータ信号を生成して送信し、第２の別個の位置において受信させることができる。同様にして、本発明のある実施形態は、本明細書で説明されているプロセスの一部または全部を具現化するプログラム・コードのコピーを取得する方法を提供するものであって、本明細書において説明されている１組のデータ信号を受け取り、その１組のデータ信号を少なくとも１つのコンピュータ可読媒体に固定されるコンピュータ・プログラムのコピーに変換するコンピュータ・システムを含むものである。いずれの場合にも、この１組のデータ信号は、任意のタイプの通信リンクを用いて、送信／受信することが可能である。
【００５１】
更に別の実施形態では、本発明は、暗号化されたバイオメトリック・データを管理および検索するためのシステムを生成する方法を提供する。この場合には、コンピュータ・システム１０２（図２）などのコンピュータ・システムを取得する（例えば、作成する、維持する、利用可能にする、など）ことが可能であり、本明細書において説明されているプロセスを実行するための１つまたは複数のコンポーネントを取得し（例えば、作成する、購入する、用いる、修正する、など）、コンピュータ・システムに配備することが可能である。このように、配備には、（１）コンピューティング・デバイス上にプログラム・コードをインストールするか、（２）１つまたは複数のコンピューティングまたは入力／出力（Ｉ／Ｏ）デバイスをコンピュータ・システムに追加するか、（３）コンピュータ・システムを組み入れるか、または変更するか、もしくはその両方を行うことにより、該コンピュータ・システムが本明細書で説明されたプロセスまたは類似のことを実行可能にすること、の１つもしくは複数を含み得る。
【００５２】
本明細書における「第１」、「第２」などの用語は、いかなる順序、数量、または重要性を示すものではなく、むしろ、ある要素を別の要素から区別するために用いられており、また、本明細書における「ａ」および「ａｎ」という用語は、数量的な制限を示すものではなく、むしろ、参照されている項目が少なくとも１つは存在することを示す。「およそ、近似的には（approximately）」という修飾語がある数量との関係で用いられる場合には、言及されている値を含み、文脈によって指示される意味を有する（例えば、特定の数量の測定と関連する誤差の程度を含む）。
【００５３】
本発明の様々な態様に関する以上の記載は、例示および説明の目的で提示されたものである。網羅的であること、または、開示されているそのままの形態に本発明を限定することは意図されておらず、もちろん、多くの変更および改変が可能である。当業者に明らかであろう変更および改変は、添付の特許請求の範囲によって定められる本発明の範囲に含まれる。
【００５４】
当業者により認識されるように、本発明の諸態様は、システム、方法、コンピュータ・プログラム製品またはコンピュータ・プログラムとして、具体化することができる。
【００５５】
従って、本発明の諸態様は、全体としてハードウェアである実施形態、全体としてソフトウェアである実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）またはソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態という形態をとることができ、これらは、すべてが本明細書において一般的に「回路」、「モジュール」または「システム」と称され得る。更に、本発明の諸態様は、その上にコンピュータ可読プログラム・コードが具体化されている１つまたは複数のコンピュータ可読媒体として具体化された、コンピュータ・プログラム製品という形態をとることもあり得る。
【００５６】
１つまたは複数のコンピュータ可読媒体のどのような組み合わせでも、用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、または、コンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されることはないが、電子的、磁気的、光学的、電磁気的、赤外線もしくは半導体のシステム、装置またはデバイス、もしくは以上の任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）には、１つまたは複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク式の読み取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または以上の任意の適切な組み合わせが含まれ得る。本文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって用いられるプログラムまたはそれらと共に用いられるプログラムを収容または格納することができる、任意の有形の媒体であり得る。
【００５７】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが例えばベースバンドにおいてまたは搬送波の一部として具体化されている伝搬データ信号を含み得る。そのような伝搬信号は、これらに限定されることはないが、電磁的、光学的またはこれらの任意の適切な組み合わせを含め、様々な形態の中のどのような形態でもとることが可能である。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置もしくはデバイスによって用いられるプログラムまたはそれらに関連して用いられるプログラムを伝達、伝搬または転送することができる、任意のコンピュータ可読媒体であり得る。
【００５８】
コンピュータ可読媒体において具体化されたプログラム・コードは、これらに限定されることはないが、無線、有線、光ファイバケーブル、ＲＦなど、またはこれらの任意の適切な組み合わせを含む、任意の適切な媒体を用いて送信することができる。
【００５９】
本発明の諸態様のために動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続き型プログラミング言語とを含む、１つまたは複数のプログラミング言語の任意の組み合わせとして記述することが可能である。プログラム・コードは、全体がユーザのコンピュータにおいて実行される場合、スタンドアロン型のソフトウェア・パッケージとして一部がユーザのコンピュータにおいて実行される場合、一部がユーザのコンピュータにおいて、一部が遠隔コンピュータにおいて実行される場合、または全体が遠隔コンピュータもしくはサーバ上で実行される場合がある。最後のシナリオの場合には、遠隔コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを経由して、ユーザのコンピュータに接続することが可能である。または、（例えば、インターネット・サービス・プロバイダを用いて、インターネットを経由して）外部コンピュータに、接続がなされることもある。なお、Ｊａｖａ（Ｒ）およびすべてのＪａｖａ（Ｒ）ベースの商標とロゴとは、オラクル（Oracle）もしくはその関係会社またはこれらすべての商標もしくは登録商標である。
【００６０】
本発明の諸態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品に関するフローチャートによる図解またはブロック図もしくはその両方を参照しながら、以下に記載されている。フローチャートによる図解またはブロック図もしくはその両方のそれぞれのブロック、およびフローチャートによる図解またはブロック図もしくはその両方における複数のブロックの組み合わせは、コンピュータ・プログラム命令によって具現化することができることが、理解されるであろう。このコンピュータ・プログラム命令を汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供することにより、製品を作出する。それにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックにおいて指定されている機能／作用を具現化するための手段を作出する。
【００６１】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置または他のデバイスに、特定の方式で機能するように命じることができるコンピュータ可読媒体に記憶させることも可能である。それにより、コンピュータ可読媒体に記憶されている命令が、フローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックにおいて指定されている機能／作用を実装する命令を作出する。
【００６２】
また、コンピュータ・プログラム命令をコンピュータ、他のプログラム可能データ処理装置または他のデバイスにロードし、一連の動作ステップを、コンピュータ、他のプログラム可能データ処理装置または他のデバイスにおいて実行させることにより、コンピュータが実行するプロセスを生成させることができる。それにより、コンピュータまたは他のプログラム可能データ処理装置において実行される命令が、フローチャートもしくはブロック図またはその両方の１つもしくは複数のブロックにおいて指定された機能／作用を具現化するためのプロセスを提供する。
【００６３】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装例のアーキテクチャ、機能および動作を図解している。この点に関し、フローチャートまたはブロック図におけるブロックは、それぞれが、指定された（１つまたは複数の）論理機能を実装するための１つまたは複数の実行可能な命令を含むモジュール、セグメントまたはコードの一部を表すものであってよい。いくつかの代替的な実装例では、ブロック内に記されている機能が、図面に記されている順序とは異なる順序で行われることもあることにも注意すべきである。例えば、連続して示されている２つのブロックが実際には実質的に同時に実行されることがあるし、または、これら２つのブロックが、関与する機能に応じて、ときには逆の順序で実行されることがある。ブロック図またはフローチャートの図解もしくはその両方におけるそれぞれのブロック、およびブロック図またはフローチャートの図解もしくはその両方における複数のブロックの組み合わせは、指定された機能または動作を実行する専用ハードウェアベースのシステム、または、専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも注意すべきである。
【００６４】
疑わしさを回避するため、「含む、備える（comprising）」という文言は、明細書および特許請求の範囲を通じて本明細書で用いる場合、「だけからなる（consisting only of）」という意味であると解釈されるべきではない。
【図１】
0005754719.tif 000002
【図２】
0005754719.tif 000003
【図３】
0005754719.tif 000004
【図４】
0005754719.tif 000005
【図５】
0005754719.tif 000006
【図６】
0005754719.tif 000007
【図７】
0005754719.tif 000008