(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】暗号キーの保護
(51)【国際特許分類】
G06F 21/60 20130101AFI20241224BHJP
【FI】
G06F21/60
(21)【出願番号】P 2022547865
(86)(22)【出願日】2021-02-09
(86)【国際出願番号】 IB2021051022
(87)【国際公開番号】W WO2021165784
(87)【国際公開日】2021-08-26
【審査請求日】2023-07-21
(32)【優先日】2020-02-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】パワーズ、エイシャ、シリン
(72)【発明者】
【氏名】ロッシ、デービッド
(72)【発明者】
【氏名】ペティ、ロバート
(72)【発明者】
【氏名】ケル、ケネス
【審査官】石坂 知樹
(56)【参考文献】
【文献】特開2008-103988(JP,A)
【文献】特開平05-224604(JP,A)
【文献】特開2010-288123(JP,A)
【文献】特開2019-118135(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
H04L 9/00
(57)【特許請求の範囲】
【請求項1】
プロセッサを用いて、キー・トークンによって定義される、リソースへのアクセスを制限するための暗号キーを生成することと、
前記プロセッサを用いて、前記キー・トークンのメタデータ内、前記キー・トークンを含む暗号キー・データ・セット・レコードのメタデータ内、又は、前記暗号キーの使用を制御するリソース・アクセス制御データベース内に、前記暗号キーを削除又は変更することができるか又はできないかの標識を含めるためのストレージ・フィールドを指定することと、
前記プロセッサを用いて、前記暗号キーを削除又は変更することができるかどうかを示す前記標識を、前記指定ストレージ・フィールド内に設定することと、
を含
み、
前記リソース・アクセス制御データベースは、2つ又はそれ以上の前記暗号キーにそれぞれ対応する2つ又はそれ以上のプロファイルを含み、前記2つ又はそれ以上のプロファイルの各々は、前記指定ストレージ・フィールドを有し、前記指定ストレージ・フィールド内に前記標識を設定することは、前記2つ又はそれ以上のプロファイルの各々の前記指定ストレージ・フィールド内に、同時に前記標識を設定することを含む、
コンピュータ実施の方法。
【請求項2】
前記暗号キー・データ・セット・レコードを暗号キー・データ・セットに格納することをさらに含む、請求項1に記載のコンピュータ実施の方法。
【請求項3】
前記ストレージ・フィールドを指定することは、前記ストレージ・フィールドが、前記暗号キー・データ・セット・レコードの一部である前記キー・トークンの前記メタデータ内にあることを含む、請求項2に記載のコンピュータ実施の方法。
【請求項4】
前記標識を設定することは、前記暗号キーを削除又は変更することができるかどうかを示す、0又は1の値を有するフラグを設定することを含む、請求項1に記載のコンピュータ実施の方法。
【請求項5】
前記リソースへのアクセスを制限するための前記暗号キーを生成することは、プログラム又はデータへのアクセスを制限するための前記暗号キーを生成することを含む、請求項1に記載のコンピュータ実施の方法。
【請求項6】
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための1つ又は複数のプロセッサと、
を備え、
前記コンピュータ可読命令は、前記1つ又は複数のプロセッサを制御して、
キー・トークンによって定義される、リソースへのアクセスを制限するための暗号キーを生成することと、
前記キー・トークンのメタデータ内、前記キー・トークンを含む暗号キー・データ・セット・レコードのメタデータ内、又は、前記暗号キーの使用を制御するリソース・アクセス制御データベース内に、前記暗号キーを削除又は変更することができるか又はできないかの標識を含めるためのストレージ・フィールドを指定することと、
前記暗号キーを削除又は変更することができるかどうかを示す前記標識を、前記指定ストレージ・フィールド内に設定することと、
を含む動作を行わせ、
前記リソース・アクセス制御データベースは、2つ又はそれ以上の前記暗号キーにそれぞれ対応する2つ又はそれ以上のプロファイルを含み、前記2つ又はそれ以上のプロファイルの各々は、前記指定ストレージ・フィールドを有し、前記指定ストレージ・フィールド内に前記標識を設定することは、前記2つ又はそれ以上のプロファイルの各々の前記指定ストレージ・フィールド内に、同時に前記標識を設定することを含む、
システム。
【請求項7】
前記暗号キー・データ・セット・レコードを暗号キー・データ・セットに格納することをさらに含む、請求項
6に記載のシステム。
【請求項8】
前記ストレージ・フィールドを指定することは、前記ストレージ・フィールドが、前記暗号キー・データ・セット・レコードの一部である前記キー・トークンの前記メタデータ内にあることを含む、請求項
7に記載のシステム。
【請求項9】
前記標識を設定することは、前記暗号キーを削除又は変更することができるかどうかを示す、0又は1の値を有するフラグを設定することを含む、請求項
6に記載のシステム。
【請求項10】
前記リソースへのアクセスを制限するための前記暗号キーを生成することは、プログラム又はデータへのアクセスを制限するための前記暗号キーを生成することを含む、請求項
6に記載のシステム。
【請求項11】
請求項1から請求項
5までのいずれか1項に記載の方法をコンピュータに実行させるプログラム命令を含むコンピュータ・プログラム。
【請求項12】
請求項
11に記載のコンピュータ・プログラムを格納したコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に暗号キーに関し、より具体的には暗号キーを変更又は削除から保護することに関する。
【背景技術】
【0002】
暗号キーは、データを暗号化して侵害を阻止し、業界の規制に適合するように用いられる。データ暗号化キー(即ち、暗号キー)は、キーに従って暗号化アルゴリズムにより変更されたデータである暗号化データを読み書きするために用いられる。キーは、アルゴリズムの機能的な出力を定めるデータ列である。同じ暗号キー又は異なる暗号キーを用いて、データを読み書きすることができる。暗号キーは、シングル・ユース・キー又は長期間キーとして設計することができる。
【発明の概要】
【0003】
本発明の実施形態は、暗号キーを変更又は削除から保護することに向けられる。本発明の一態様によれば、リソースへのアクセスを制限するための暗号キーを生成することを含むコンピュータ実施の方法が提供される。暗号キーは、キー・トークンによって定義される。本方法はさらに、キー・トークンのメタデータ内、キー・トークンを含む暗号キー・データ・セット・レコード内、又は、暗号キーの使用を制御するリソース・アクセス制御データベース内に、暗号キーを削除又は変更することができるか又はできないかの標識を含めるための指定ストレージ・フィールドを指定することを含む。指定ストレージ・フィールド内の標識は、暗号キーを削除又は変更することができるかどうかを示すために設定される。
【0004】
本発明の他の実施形態は、上記の方法の機能をコンピュータ・システム及びコンピュータ・プログラム製品で実施する。
【0005】
付加的な技術的機能及び利点が、本発明の技術を通じて実現される。本発明の実施形態及び態様は、本明細書において詳細に説明され、特許請求される主題の一部分であると考えられる。より良い理解のために、詳細な説明及び図面を参照されたい。
【図面の簡単な説明】
【0006】
本明細書で説明される排他的権利の具体的な内容は、本明細書の結論部分にある特許請求の範囲において具体的に指摘され、明確に主張されている。本発明の実施形態の前述及び他の機能及び利点は、添付の図面に関連して説明される以下の詳細な説明から明らかである。
【0007】
【
図1】本発明の1つ又は複数の実施形態による、暗号キーを変更又は削除から保護するための例示的な指定ストレージ・フィールドを有する例示的な固定長キー・トークンを示す。
【0008】
【
図2】本発明の1つ又は複数の実施形態による、暗号キーを変更又は削除から保護するための指定ストレージ・フィールドを有するキー・レコードを格納する例示的な暗号キー・データ・セット(CKDS)を示す。
【0009】
【
図3】本発明の1つ又は複数の実施形態による、変更又は削除に対して保護するための各々の暗号キーに関連付けられる指定ストレージ・フィールドを有する、例示的なリソース・アクセス制御データベースを示す。
【0010】
【
図4】本明細書で説明される指定ストレージ・フィールドを格納及び処理するための処理システムのブロック図を示す。
【0011】
本明細書で示されるダイアグラムは例示的なものである。ここで説明されるダイアグラム又はオペレーションには、本発明の範囲から逸脱しない多くの変化形が存在し得る。例えば、行為は、異なる順序で実行することができ、又は、行為は追加、削除又は修正することができる。さらに、用語「結合される」及びその変化は、従って、二つの要素の間に通信パスを有することを記述しており、それらの間に介在する要素/接続がない要素の間の直接的な接続を意味しない。全てのこれら変化形は、本明細書の一部とみなされる。
【発明を実施するための形態】
【0012】
前述したように、暗号キーは、入力データから暗号化データを生成することを容易にする。暗号化データから入力データを復元するために、暗号キーが必要である。正しい暗号キーが無ければ、暗号化データは判読できない。特定のアプリケーションのための暗号キーは、シングル・ユース・キーとすることができるが、他は、長期間キーである。長期間キーは、数十年間にわたって保持されることが必要な場合がある。暗号キーが保持される必要がある期間によっては、不注意又は悪意による暗号キーの削除又は変更に関する懸念が生じる。
【0013】
1つの従来の手法は、キーが依然として使用されているかどうかを判断するために、管理者が暗号キーの使用状況の追跡を可能にすることを含む。しかし、所与の暗号キーは、追跡が可能となる前に暗号化されたデータ、又は、使用されていないように見える、現在保管されてオフラインであるデータを保護している可能性がある。この場合には、使用状況を追跡することは、暗号キーの保持を適切に保証することにはならない。別の手法は、暗号キーを保護するために、パブリック・キー又はプライベート・キーのペア(即ち、キーを暗号化するキー)の生成を含む。暗号キーは、このキー暗号化キーが持続されている間、保持される。しかし、この手法は、追跡されなければならない別のキーを追加するものである。
【0014】
本発明の1つ又は複数の実施形態は、暗号キーを変更又は削除から保護することに関する。具体的には、保持されなければならない暗号キーに直接関連するストレージ・フィールドが確立される。本明細書においてさらに詳述されるように、ストレージ・フィールドは、暗号キー自体のメタデータであるキー・トークンの一部とすることができる。本発明の別の実施形態によれば、ストレージ・フィールドは、キー・トークンを含むキー格納エントリのメタデータの一部とすることができる。本発明のさらに別の代替的実施形態によれば、ストレージ・フィールドは、暗号キーをどのように使用できるかを制御するリソース・アクセス制御データベースの一部とすることができる。本発明の例示的な実施形態の1つに従って、あるキーが永久的であること又は保護されていることを指定するストレージ・フィールドが確立されると、暗号キーへのアクセスを提供するプログラム又はアプリケーション・プログラム・インターフェース(API)は、暗号キーを変更又は削除する要求に対して失敗を発行することになる。
【0015】
図1は、本発明の1つ又は複数の実施形態による、暗号キー100を変更又は削除から保護するための例示的な指定ストレージ・フィールド120を有する例示的な固定長キー・トークン110を示す。前述のように、暗号キー100を用いて、リソース(例えば、プログラム、データ)へのアクセスを制御することができる。暗号キー100によって暗号化されたリソースにアクセスする試みは、正しい暗号キー100が使用されない場合には失敗することになる。暗号キー100を定義するキー・トークン110を生成して、例えば、
図4に示される処理システム400のメモリ19に格納することができる。例示的なキー・トークン110は、64バイトの固定長を有し、128個の16進数文字によって表されるように示されている。キー・トークン110について、他の長さも可能である。キー・トークン110は、API又はプログラムにより、所望の暗号キー100の仕様に基づいて生成され、暗号キー100自体のメタデータとなる。64バイトの例示的な説明が、テーブル130に与えられている。
図1において、オフセット5におけるバイトは、暗号キー100を削除又は変更できないことを示す例示的な指定ストレージ・フィールド120として示されている。本発明の別の実施形態において、指定ストレージ・フィールド120のために他のバイト(例えば、バイト1~3)を用いることができる。
【0016】
暗号キー100、すなわち暗号キー100を定義するキー・トークンが生成される時、暗号キー100がインポートされる時、又は他の任意の時に、暗号キー100を削除も変更もできないことの標識を指定ストレージ・フィールド120に追加することができる。暗号キー100を削除又は上書きする試みが行われる場合、その標識を含むことについて、指定ストレージ・フィールド120がチェックされる。その標識が、実際に指定ストレージ・フィールド120に作成されている場合、暗号キー100を削除又は上書きする試みは失敗することになる。その標識は、例えば、フラグ(0=削除又は変更できる、1=削除又は変更できない)とすることができる。オプションとして、キー・トークン110は、
図2を参照して説明されるように、データ・セット(例えば、暗号キー・データ・セット(CKDS)210)内のキー・レコード230の一部として格納することができる。
【0017】
図2は、本発明の1つ又は複数の実施形態による、暗号キー100(
図1)を変更又は削除から保護するための指定ストレージ・フィールド240を有するキー・レコード230を格納する例示的なCKDS210を示す。CKDS210は、例えば、処理システム400(
図4)のメモリ19の中に格納することができる。
図2において、例示的なCKDS210は、キー・ラベル220a、220b(全体として220と称される)を格納するように示されている。各々のキー・ラベル220a、220bは、対応するキー・レコード230a、230b(全体として230と称される)についてのインデックスである。各々のキー・レコード230は、キー・トークン110(
図1)及びメタデータを含む。テーブル235は、キー・レコード230を構成するフィールドを詳述する。
図2に示されるように、メタデータは、対応するキー・ラベル220によって識別される暗号キー100が削除又は変更できないという標識を追加することができる指定ストレージ・フィールドを含むことができる。
【0018】
暗号キー100が削除も変更もできないという標識は、特定のキー・レコード230が作成される時、暗号キー100を定義するキー・トークン110を取得した後にキー・レコード230が配置される時、又は他の任意の時に、指定ストレージ・フィールドに追加することができる。
図1を参照して説明された指定ストレージ・フィールド120について言及されたように、暗号キー100を削除又は上書きする試みがなされる場合、(対応する暗号キーを削除も変更もできないという)標識を含むことについて、指定ストレージ・フィールド240がチェックされる。その標識が、実際に指定ストレージ・フィールド240に作成されている場合、暗号キー100を削除又は上書きする試みは、失敗することになる。その標識は、例えば、フラグ(0=削除又は変更できる、1=削除又は変更できない)とすることができる。
【0019】
前述されたように、キー・レコード230の一部としてキー・トークン110を格納することは、任意である。従って、本発明の例示的な実施形態によれば、キー・トークン110は、指定ストレージ・フィールド120をともなうそれ自体によって、格納されることができる。代替的に、指定ストレージ・フィールド120をともなうキー・トークン110を、キー・レコード230に格納することができる。本発明のさらに別の代替的実施形態によれば、指定ストレージ・フィールド240を含むキー・レコード230に、キー・トークン110を格納することができる。
【0020】
図3は、本発明の1つ又は複数の実施形態による、変更又は削除に対して保護するための各々の暗号キー100に関連付けられる指定ストレージ・フィールドを有する、例示的なリソース・アクセス制御データベース305を示す。リソース・アクセス制御データベース305は、暗号キー100a~100n(全体として100と称される)にそれぞれ対応するプロファイル315a~315n(全体として315と称される)を含む。前述したように、各々の暗号キー100は、例えば、キー・トークン110(
図1)によって定義することができる。さらに
図2に関して言及したように、CKDS210は、キー100a~100nに対応するキー・レコード230a~230n(全体として230)を格納することができる。
【0021】
図1に関して説明したように、暗号キー100を定義するキー・トークン110のメタデータは、指定ストレージ・フィールド120を含むことができる。
図2に関して説明したように、キー・レコード230のメタデータは、指定ストレージ・フィールド240を含むことができる。代替的に、キー・レコード230の一部であるキー・トークン110のメタデータは、指定ストレージ・フィールド120を含むことができる。
図3が示すように、各々の暗号キー100に対応するリソース・アクセス制御データベース305内のプロファイル315は、指定ストレージ・フィールド310を含むことができる。対応する暗号キー100の使用を指示するリソース・アクセス制御データベース305のプロファイル315に格納されたセキュリティ制御は、例えば、処理システム400(
図4)のプロセッサ21によって実施することができる。各々が指定ストレージ・フィールド310を含むプロファイル315は、処理システム400のメモリ19に格納することができる。
【0022】
リソース・アクセス制御データベース305内にプロファイル315のフィールドを設定するために用いられるコマンドは、リソース・アクセス制御データベース305と関連付けられる任意の数の暗号キー100に対応する指定ストレージ・フィールド310に標識を設定するために用いることができる。即ち、プロファイル315の1つ、1組、又は全ての指定ストレージ・フィールド310内の標識は、単一のコマンドで設定することができる。この標識は、いつでも指定ストレージ・フィールド310内に追加することができる。この標識は、例えば、フラグ(0=削除又は変更できる、1=削除又は変更できない)とすることができる。プロファイル315に関連付けられる暗号キー100を削除又は上書きする試みがなされる場合、暗号キー100が削除又は変更できないことの標識を含むことについて、プロファイル315の指定ストレージ・フィールド310がチェックされる。標識が、実際に指定ストレージ・フィールド310内に作成されている場合、暗号キーを削除又は上書きする試みは失敗することになる。
【0023】
図4は、本明細書において説明される指定ストレージ・フィールド120、240、310を格納及び処理するための処理システム400のブロック図を示す。
図4に示される実施形態において、処理システム400は、1つ又は複数の中央処理ユニット(プロセッサ)21a、21b、21cなど(集合的に又は全体として、プロセッサ(単数又は複数)21若しくは処理デバイス(単数又は複数)又はそれらの両方と称される)を有する。本発明の1つ又は複数の実施形態によれば、各々のプロセッサ21は、縮小命令セット・コンピュータ(RISC)マイクロプロセッサを含むことができる。プロセッサ21は、システム・バス33を介して、システム・メモリ(例えば、ランダム・アクセス・メモリ(RAM)24)及び種々の他の構成要素に結合される。読み出し専用メモリ(ROM)22は、システム・バス33に結合され、処理システム400の特定の基本的な機能を制御する基本入出力システム(BIOS)を含むことができる。
【0024】
さらに、システム・バス33に結合された入出力(I/O)アダプタ27及び通信アダプタ26が図示されている。I/Oアダプタ27は、ハードディスク23若しくはテープ・ストレージ・ドライブ25又はそれらの両方、或いは任意の他の類似の構成要素と通信する小型コンピュータ・システム・インタフェース(SCSI)アダプタとすることができる。I/Oアダプタ27、ハードディスク23、及びテープ・ストレージ・ドライブ25は、本明細書では、集合的に、マス・ストレージ34と呼ばれる。処理システム400上での実行のためのオペレーティング・システム40は、マス・ストレージ34に格納することができる。RAM22、ROM24、及びマス・ストレージ34は、処理システム400のメモリ19の例である。ネットワーク・アダプタ26は、システム・バス33と外部ネットワーク36とを相互接続して、処理システム400が他のそのようなシステムと通信できるようにする。
【0025】
ディスプレイ(例えば、ディスプレイ・モニタ)35は、ディスプレイ・アダプタ32によってシステム・バス33に接続され、ディスプレイ・アダプタ32は、グラフィックス集約型アプリケーションの性能を向上させるためのグラフィックス・アダプタ及びビデオ・コントローラを含むことができる。本発明の1つ又は複数の実施形態によれば、アダプタ26、27若しくは32又はこれらのすべては、中間バス・ブリッジ(図示せず)を介してシステム・バス33に接続された1つ又は複数のI/Oバスに接続することができる。ハード・ディスク・コントローラ、ネットワーク・アダプタ、及びグラフィックス・アダプタなどの周辺デバイスを接続するための適切なI/Oバスは、典型的には、ペリフェラル・コンポーネント・インターコネクト(PCI)のような共通プロトコルを含む。付加的な入出力デバイスが、ユーザ・インタフェース・アダプタ28及びディスプレイ・アダプタ32を介してシステム・バス33に接続されるように示されている。キーボード29、マウス30、及びスピーカ31は、例えば、複数のデバイス・アダプタを単一の集積回路内に統合するスーパーI/Oチップを含むことができるユーザ・インタフェース・アダプタ28を介して、システム・バス33に相互接続することができる。
【0026】
本発明の1つ又は複数の実施形態によれば、処理システム400は、グラフィックス処理ユニット37を含む。グラフィックス処理ユニット37は、ディスプレイへの出力を意図したフレーム・バッファ内の画像の作成を加速するためにメモリを操作及び変更するように設計された特殊な電子回路である。一般に、グラフィックス処理ユニット37は、コンピュータ・グラフィックスの操作及び画像処理において非常に効率的であり、データの大きなブロックの処理が並列に行われるアルゴリズムについて、汎用CPUよりも効率的な高度な並列構造を有する。
【0027】
従って、本明細書で構成されるように、処理システム400は、プロセッサ21の形態での処理能力、システム・メモリ(例えば、RAM24)及びマス・ストレージ34を含むストレージ能力、キーボード29及びマウス30のような入力手段、並びに、スピーカ31及びディスプレイ35を含む出力能力を含む。本発明の1つ又は複数の実施形態によれば、システム・メモリ(例えば、RAM24)の一部分及びマス・ストレージ34は、集合的に、処理システム400に示される種々の構成要素の機能を調和させる、IBM社によるAIX(登録商標)オペレーティング・システムのようなオペレーティング・システムを格納する。
【0028】
本発明の種々の実施形態が、関連する図面を参照しながら、本明細書において説明される。本発明の代替的実施形態を、本発明の範囲から逸脱せずに考案することができる。以下の説明及び図面において、要素の間の種々の接続及び位置関係(例えば、上に、下に、隣接してなど)が明らかにされる。これらの接続若しくは位置関係又は両方は、別に明記されない限り、直接的又は間接的とすることができ、本発明は、この点で限定することを意図するものではない。従って、エンティティの結合は直接的又は間接的結合のいずれをも指すことができ、エンティティの間の位置関係は、直接的又は間接的位置関係とすることができる。さらに、本明細書で説明される種々のタスク及びプロセス・ステップは、本明細書で詳細には説明されない付加的なステップ又は機能性を有する、より包括的な手続き又はプロセスに組み入れることができる。
【0029】
本明細書で説明される1つ又は複数の方法は、各々、当技術分野で周知の以下の技術、即ち、データ信号に対して論理機能を実施するための論理ゲートを有する分離した論理回路(単数又は複数)、適切な組み合わせ論理ゲートを有するアプリケーション特化型集積回路(ASIC)、プログラム可能ゲート・アレイ(単数又は複数)(PGA)、フィールド・プログラム可能ゲート・アレイ(FPGA)など、のいずれか又は組み合わせを用いて実施することができる。
【0030】
簡略化のために、本発明の態様の作成又は使用に関する従来技術は、本明細書において詳細に説明されるか又は説明されない可能性がある。具体的には、本明細書で説明される種々の技術的特徴を実施するためのコンピューティング・システム及び特定のコンピュータ・プログラムの種々の態様は周知されている。従って、簡潔にするために、多くの従来の実施の詳細は、本明細書においては、周知のシステム若しくはプロセスまたは両方の詳細を提供せずに、簡単に言及されているのみか、全く省略されている。
【0031】
幾つかの実施形態において、種々の機能又は行為は、1つ若しくは複数の装置又はシステムの場所において、若しくはそれらの動作に関連して又は両方で、行うことができる。幾つかの実施形態において、所与の機能又は行為の一部分は、第1のデバイス又は場所で行うことができ、その機能又は行為の残り部分は1つ又は複数の付加的なデバイスまたは場所で行うことができる。
【0032】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的とし、限定することを意図したものではない。本明細書で用いられる場合、単数形「1つの(a)」、「1つの(an)」及び「その(the)」は、文脈がそうでないことを明確に示していない限り、複数形も含むことを意図している。さらに、用語「含む(comprise)」もしくは「含んでいる(comprising)」又はその両方は、本明細書で用いられる場合、記載される特徴、整数、ステップ、動作、要素もしくはコンポーネント又はそれらの組み合わせの存在を明示するが、1つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネントもしくはグループ又はそれらの組み合わせの存在も又は追加も排除しないことが理解されるであろう。
【0033】
以下の特許請求の範囲における「全ての手段又はステップと機能との組み合わせ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、動作及び均等物は、明確に特許請求された他の請求された要素と共に機能を実行するための任意の構造、材料、又は行為を含むことを意図したものである。本開示は、例証及び説明のためだけに提示されたものであり、網羅的であること又は開示された形態に限定することを意図したものではない。当業者には、本開示の範囲から逸脱しない多くの修正及び変形が明らかとなるであろう。実施形態は、本開示の原理及び実際の用途を最もよく説明するため、及び、当業者が、企図した特定の用途に適するように種々の修正を有する種々の実施形態に関して本開示を理解することができるように、選択され記述された。
【0034】
本明細書に示される図は例証である。本開示の範囲から逸脱することなく、内部で説明される図又はステップ(又はオペレーション)に対する多くの変形があり得る。例えば、例えば、アクションは、異なる順序で実施されてもよく、又はアクションを追加、削除、又は修正してもよい。また、「結合される(coupled)」という用語は、2つの要素間に単一の経路を有することを記載するものであり、それらの間に介在する要素/接続のない要素間の直接接続を意味するものではない。これらの変形の全ては、本開示の一部とみなされる。
【0035】
以下の定義及び略語が、特許請求の範囲及び明細書の解釈に用いられる。本明細書で用いられる場合、「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有している(having)」、「包含する(contains)」もしくは「包含している(containing)」という用語、又はそれらの任意の他の変形は、非排他的な包含をカバーすることが意図されている。例えば、要素のリストを含む組成物、混合物、プロセス、方法、物品、又は装置は、必ずしもそれらの要素のみに限定されるものではなく、明示的に列挙されていない他の要素、又は、そのような組成物、混合物、プロセス、方法、物品、もしくは装置に内在する他の要素を含むことができる。
【0036】
さらに、「例示的」という用語は、本明細書では「例、実例、又は例証として機能する」ことを意味するように用いられる。「例示的」であるとして本明細書に記載されるいずれの実施形態又は設計も、他の実施形態又は設計と比較して、必ずしも、好適である又は有利であると解釈されるべきではない。「少なくとも1つ」及び「1つ又は複数」という用語は、1よりも大きい又は1に等しい任意の整数、すなわち1、2、3、4などを含むように理解することができる。「複数の」という用語は、2よりも大きい又は2に等しい任意の整数、すなわち2、3、4、5などを含むように理解することができる。「接続」という用語は、間接的「接続」及び直接的「接続」の両方を含むことができる。
【0037】
「約(about)」、「実質的に(substantially)」、「およそ(approximately)」という用語及びそれらの変形は、本出願時に利用可能な機器に基づいて、特定の量の測定と関連した誤差の程度を含むように意図される。例えば、「約」は、所与の値の±8%又は5%、又は2%の範囲を含むことができる。
【0038】
本発明は、システム、方法もしくはコンピュータ・プログラム製品又はそれらの組み合わせを、いずれかの可能な技術的詳細レベルで統合したものとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【0039】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0040】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク又はその組み合わせなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジサーバ又はその組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
【0041】
本発明のオペレーションを行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語、又は類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個別化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【0042】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることが理解されるであろう。
【0043】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組合せを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0044】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連のオペレーション動作をコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
【0045】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実施できることにも留意されたい。
【0046】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、市場で見出される技術よりも優れた実施形態の原理、実際的な応用、又は技術的改善を最も良く説明するために、又は、当業者である他の者が、本明細書に開示される実施形態を理解することを可能にするために、選択されたものである。