(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-12
(54)【発明の名称】複数の暗号システムを用いたハイブリッドセキュリティ証明書の生成
(51)【国際特許分類】
H04L 9/32 20060101AFI20240305BHJP
H04L 9/14 20060101ALI20240305BHJP
G06F 21/64 20130101ALI20240305BHJP
H04L 9/08 20060101ALI20240305BHJP
【FI】
H04L9/32 200B
H04L9/32 200E
H04L9/14
G06F21/64
H04L9/08 F
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023551161
(86)(22)【出願日】2022-02-07
(85)【翻訳文提出日】2023-08-23
(86)【国際出願番号】 EP2022052875
(87)【国際公開番号】W WO2022179838
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】エドワーズ、ジョナサン、ウィリアム
(72)【発明者】
【氏名】グラス、デビッド、ウェイン
(72)【発明者】
【氏名】エヴァンス、デビッド、ハワード
(72)【発明者】
【氏名】ハンセン、クリフォード、リー
(72)【発明者】
【氏名】クーン、ジェームズ、リチャード
(72)【発明者】
【氏名】キズレー、リチャード、ビクター
(57)【要約】
複数の暗号システムを使用してハイブリッドセキュリティ証明書を生成することによって、コンピューティング環境内の処理を促進する。生成することは、ハイブリッドセキュリティ証明書に含めるデータを取得することと、データをカバーする第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、データをカバーする第2の暗号システムに関連付けられている第2のデジタル署名を生成することと、を含む。生成することはさらに、ハイブリッドセキュリティ証明書を提供することを含み、ハイブリッドセキュリティ証明書は、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名とを含み、第1のデジタル署名は、第2の暗号システムの鍵または第2のデジタル署名に依存せず、第2のデジタル署名は、第1の暗号システムの鍵または第1のデジタル署名に依存しない。
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を促進するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
1または複数のコンピュータ可読記憶媒体と、前記1または複数のコンピュータ可読記憶媒体上に集合的に記憶され、方法を実行するプログラム命令と、を含み、前記方法は、
複数の暗号システムを用いてハイブリッドセキュリティ証明書を生成することを含み、前記生成することは、
前記ハイブリッドセキュリティ証明書に含めるデータを取得することと、
前記データをカバーする前記複数の暗号システムのうちの第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、
前記データをカバーする前記複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成することと、
前記ハイブリッドセキュリティ証明書を提供することであって、前記ハイブリッドセキュリティ証明書は、前記データと、前記第1の暗号システムに関連付けられている前記第1のデジタル署名と、前記第2の暗号システムに関連付けられている前記第2のデジタル署名とを含み、前記第1のデジタル署名は、前記第2の暗号システムの鍵または前記第2のデジタル署名に依存せず、前記第2のデジタル署名は、前記第1の暗号システムの鍵または前記第1のデジタル署名に依存しない、提供することと、
を含む、コンピュータプログラム製品。
【請求項2】
前記第1の暗号システムに関連付けられている前記第1のデジタル署名は、前記第2の暗号システムから独立した前記データをカバーし、前記第2の暗号システムに関連付けられている前記第2のデジタル署名は、前記第1の暗号システムから独立した前記データをカバーし、前記データは、前記第1の暗号システムまたは前記第2の暗号システムの属性または鍵を含まない、または依存しない、
請求項1に記載のコンピュータプログラム製品。
【請求項3】
前記第1の暗号システムは、非対称暗号システムを含み、前記第2の暗号システムは、耐量子暗号システムを含む、請求項1に記載のコンピュータプログラム製品。
【請求項4】
前記耐量子暗号システムは、格子ベース暗号化アプローチを含む、請求項3に記載のコンピュータプログラム製品。
【請求項5】
前記第1の暗号システムは、楕円曲線暗号(ECC)暗号システムを含み、前記第2の暗号システムは、ディリチウム暗号システムを含む、請求項1に記載のコンピュータプログラム製品。
【請求項6】
前記ハイブリッドセキュリティ証明書を生成することは、
第1の公開鍵を前記データに関連付けることであって、前記第1の公開鍵は前記第1の暗号システムに関連付けられる、関連付けることをさらに含み、
前記第1のデジタル署名を生成することは、前記データをカバーする前記第1の暗号システムに関連付けられている前記第1のデジタル署名の生成において第1の秘密鍵を使用し、前記第1のデジタル署名を生成することは、前記第1の公開鍵のプロパティを使用する、
請求項1に記載のコンピュータプログラム製品。
【請求項7】
前記ハイブリッドセキュリティ証明書を生成することは、
第2の公開鍵を前記データに関連付けることであって、前記第2の公開鍵は前記第2の暗号システムに関連付けられる、関連付けることをさらに含み、
前記第2のデジタル署名を生成することは、前記データをカバーする前記第2の暗号システムに関連付けられている前記第2のデジタル署名を生成するために第2の秘密鍵を使用し、前記第2のデジタル署名を生成することは、前記第2の公開鍵のプロパティを使用する、
請求項6に記載のコンピュータプログラム製品。
【請求項8】
前記ハイブリッドセキュリティ証明書を生成することは、
前記データをカバーする第3の暗号システムに関連付けられている第3のデジタル署名を生成することをさらに含み、
前記ハイブリッドセキュリティ証明書を提供することは、前記データと、前記第1の暗号システムに関連付けられている前記第1のデジタル署名と、前記第2の暗号システムに関連付けられている前記第2のデジタル署名と、前記第3の暗号システムに関連付けられている前記第3のデジタル署名とを有する前記ハイブリッドセキュリティ証明書を提供することを含み、前記第1のデジタル署名、前記第2のデジタル署名および前記第3のデジタル署名の間に依存関係は存在しない、
請求項1に記載のコンピュータプログラム製品。
【請求項9】
前記ハイブリッドセキュリティ証明書を提供することは、前記データと、前記第1のデジタル署名と、前記第2のデジタル署名とを単一の識別符号化規則(DER)シーケンスで包むことを含む、請求項1に記載のコンピュータプログラム製品。
【請求項10】
前記ハイブリッドセキュリティ証明書は、前記第1の暗号システムに関連付けられている第1の公開鍵と、前記第1のデジタル署名と、前記第2の暗号システムおよび前記第2のデジタル署名に関連付けられている第2の公開鍵と、を含むSignerInfoブロックを含む、請求項9に記載のコンピュータプログラム製品。
【請求項11】
コンピューティング環境内の処理を促進するためのコンピュータシステムであって、前記コンピュータシステムは、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを含み、前記コンピュータシステムは、方法を実行するように構成され、前記方法は、
複数の暗号システムを用いてハイブリッドセキュリティ証明書を生成することを含み、前記生成することは、
前記ハイブリッドセキュリティ証明書に含めるデータを取得することと、
前記データをカバーする前記複数の暗号システムのうちの第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、
前記データをカバーする前記複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成することと、
前記ハイブリッドセキュリティ証明書を提供することであって、前記ハイブリッドセキュリティ証明書は、前記データと、前記第1の暗号システムに関連付けられている前記第1のデジタル署名と、前記第2の暗号システムに関連付けられている前記第2のデジタル署名とを含み、前記第1のデジタル署名は、前記第2の暗号システムの鍵または前記第2のデジタル署名に依存せず、前記第2のデジタル署名は、前記第1の暗号システムの鍵または前記第1のデジタル署名に依存しない、提供することと、
を含む、コンピュータシステム。
【請求項12】
前記第1の暗号システムに関連付けられている前記第1のデジタル署名は、前記第2の暗号システムから独立した前記データをカバーし、前記第2の暗号システムに関連付けられている前記第2のデジタル署名は、前記第1の暗号システムから独立した前記データをカバーし、前記データは、前記第1の暗号システムまたは前記第2の暗号システムの属性または鍵を含まない、または依存しない、
請求項11に記載のコンピュータシステム。
【請求項13】
前記第1の暗号システムは、非対称暗号システムを含み、前記第2の暗号システムは、耐量子暗号システムを含み、前記耐量子暗号システムは、格子ベース暗号化アプローチを含む、請求項11に記載のコンピュータシステム。
【請求項14】
第1の公開鍵を前記データに関連付けることであって、前記第1の公開鍵は前記第1の暗号システムに関連付けられ、前記第1のデジタル署名を生成することは、前記データをカバーする前記第1の暗号システムに関連付けられている前記第1のデジタル署名の生成において第1の秘密鍵を使用し、前記第1のデジタル署名を前記生成することは、前記第1の公開鍵のプロパティを使用する、関連付けることと、
第2の公開鍵を前記データに関連付けることであって、前記第2の公開鍵は前記第2の暗号システムに関連付けられ、前記第2のデジタル署名を生成することは、前記データをカバーする前記第2の暗号システムに関連付けられている前記第2のデジタル署名を生成するために第2の秘密鍵を使用し、前記第2のデジタル署名を前記生成することは、前記第2の公開鍵のプロパティを使用する、関連付けることと、
をさらに含む、請求項11に記載のコンピュータシステム。
【請求項15】
前記データをカバーする第3の暗号システムに関連付けられている第3のデジタル署名を生成することをさらに含み、
前記ハイブリッドセキュリティ証明書を提供することは、前記データと、前記第1の暗号システムに関連付けられている前記第1のデジタル署名と、前記第2の暗号システムに関連付けられている前記第2のデジタル署名と、前記第3の暗号システムに関連付けられている前記第3のデジタル署名とを有する前記ハイブリッドセキュリティ証明書を提供することを含み、前記第1のデジタル署名、前記第2のデジタル署名および前記第3のデジタル署名の間に依存関係は存在しない、
請求項11に記載のコンピュータシステム。
【請求項16】
前記ハイブリッドセキュリティ証明書を提供することは、前記データと、前記第1のデジタル署名と、前記第2のデジタル署名とを単一の識別符号化規則(DER)シーケンスで包むことを含む、請求項11に記載のコンピュータシステム。
【請求項17】
コンピューティング環境内の処理を促進するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
複数の暗号システムを用いてハイブリッドセキュリティ証明書を生成することを含み、前記生成することは、
前記ハイブリッドセキュリティ証明書に含めるデータを取得することと、
前記データをカバーする前記複数の暗号システムのうちの第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、
前記データをカバーする前記複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成することと、
前記ハイブリッドセキュリティ証明書を提供することであって、前記ハイブリッドセキュリティ証明書は、前記データと、前記第1の暗号システムに関連付けられている前記第1のデジタル署名と、前記第2の暗号システムに関連付けられている前記第2のデジタル署名とを含み、前記第1のデジタル署名は、前記第2の暗号システムの鍵または前記第2のデジタル署名に依存せず、前記第2のデジタル署名は、前記第1の暗号システムの鍵または前記第1のデジタル署名に依存しない、提供することと、
を含む、コンピュータ実装方法。
【請求項18】
前記第1の暗号システムに関連付けられている前記第1のデジタル署名は、前記第2の暗号システムから独立した前記データをカバーし、前記第2の暗号システムに関連付けられている前記第2のデジタル署名は、前記第1の暗号システムから独立した前記データをカバーし、前記データは、前記第1の暗号システムまたは前記第2の暗号システムの属性または鍵を含まない、または依存しない、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記第1の暗号システムは、非対称暗号システムを含み、前記第2の暗号システムは、耐量子暗号システムを含み、前記耐量子暗号システムは、格子ベース暗号化アプローチを含む、請求項17に記載のコンピュータ実装方法。
【請求項20】
前記ハイブリッドセキュリティ証明書を生成することは、
第1の公開鍵を前記データに関連付けることであって、前記第1の公開鍵は前記第1の暗号システムに関連付けられ、前記第1のデジタル署名を生成することは、前記データをカバーする前記第1の暗号システムに関連付けられている前記第1のデジタル署名の生成において第1の秘密鍵を使用し、前記第1のデジタル署名を前記生成することは、前記第1の公開鍵のプロパティを使用する、関連付けることと、
第2の公開鍵を前記データに関連付けることであって、前記第2の公開鍵は前記第2の暗号システムに関連付けられ、前記第2のデジタル署名を生成することは、前記データをカバーする前記第2の暗号システムに関連付けられている前記第2のデジタル署名を生成するために第2の秘密鍵を使用し、前記第2のデジタル署名を前記生成することは、前記第2の公開鍵のプロパティを使用する、関連付けることと、
をさらに含む、請求項17に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
1または複数の態様は、一般に、コンピューティング環境内の処理を促進することに関し、特に、コンピューティング環境内の安全な通信を促進することに関する。暗号化システムは、環境のエンティティ間で安全に通信することを促進するために、様々なコンピューティング環境において使用され得る。
【背景技術】
【0002】
コンピューティング環境は、処理を強化するために、異なるタイプのプロセッサを含むことができる。一例として、コンピューティング環境は、メインプロセッサとみなされる1または複数の中央処理装置(CPU)と、CPUに付随するとみなされる1または複数の補助プロセッサを含むことができる。補助プロセッサは、典型的には、特定のタイプのタスクを実行する。例えば、補助プロセッサの特定の例は、暗号演算を実行するために使用される暗号(crypto)カードである。
【発明の概要】
【0003】
先行技術の特定の欠点は、1または複数の態様において、コンピューティング環境内の処理を促進するためのコンピュータプログラム製品の提供を通じて克服され、さらなる利点が提供される。コンピュータプログラム製品は、1または複数のコンピュータ可読記憶媒体と、1または複数のコンピュータ可読記憶媒体上に集合的に記憶され、方法を実行するプログラム命令とを含む。本方法は、複数の暗号システムを用いてハイブリッドセキュリティ証明書を生成することを含む。生成することは、ハイブリッドセキュリティ証明書に含めるデータを取得することと、データをカバーする複数の暗号システムのうちの第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、データをカバーする複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成することと、を含む。ハイブリッドセキュリティ証明書を生成することは、ハイブリッドセキュリティ証明書を提供することを含み、セキュリティ証明書は、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名とを含み、第1のデジタル署名は、第2の暗号システムの鍵または第2のデジタル署名に依存せず、第2のデジタル署名は、第1の暗号システムの鍵または第1のデジタル署名に依存しない。有利なことに、ハイブリッドセキュリティ証明書に第1のデジタル署名および第2のデジタル署名を含めることで、より柔軟で堅牢なセキュリティ証明書を提供することができる。さらに、ハイブリッドセキュリティ証明書を生成するために使用される複数の暗号システムは、利用可能な任意の第1および第2の暗号システムを含むことができる。さらに、本明細書に開示されるような複数の暗号システムを使用するハイブリッドセキュリティ証明書の生成は、ある暗号システム標準から別の暗号システム標準への暗号セキュリティの移行を有利に促進する。1または複数の態様に従って、ハイブリッドセキュリティ証明書の第1および第2のデジタル署名の間に依存関係はない。
【0004】
1または複数の実施形態において、第1の暗号システムに関連付けられている第1のデジタル署名を生成することは、第2の暗号システムから独立したデータをカバーし、第2の暗号システムに関連付けられている第2のデジタル署名は、第1の暗号システムから独立したデータをカバーし、データは、第1の暗号システムまたは第2の暗号システムの属性または鍵を含まない、または依存しない。有利なことに、本明細書に開示されるハイブリッドセキュリティ証明書生成では、一致する署名の属性が変更された場合、署名は更新または変更される必要はない。さらに、データに対する各署名は他から独立しているため、各署名はコードを書き、解析することが容易である。
【0005】
一実施態様において、第1の暗号システムは、非対称暗号システムを含み、第2の暗号システムは、耐量子暗号システムを含む。一実施態様において、耐量子暗号システムは、格子ベース暗号化アプローチを含む。一例として、第1の暗号システムは、楕円曲線暗号(ECC)暗号システムであり、第2の暗号システムは、ディリチウム暗号システムである。有利なことに、本明細書に開示されるハイブリッドセキュリティ証明書生成は、認定された非対称暗号システムなどの認定されたセキュリティシステムである第1の暗号システムと、まだ認定されていないが、より量子抵抗性の高いセキュリティシステムである第2の暗号システムとを含むことができる。例えば、1つの実装では、第1の暗号システムは、米国国立標準技術研究所(NIST)認定セキュリティシステムとすることができ、第2の暗号システムは、例えば、まだ認定されていない耐量子暗号システムとすることができる。
【0006】
1または複数の実施形態において、ハイブリッドセキュリティ証明書を生成することは、第1の公開鍵をデータに関連付けることを含み、第1の公開鍵は第1の暗号システムに関連付けられ、第1のデジタル署名を生成することは、データをカバーする第1の暗号システムに関連付けられている第1のデジタル署名の生成において第1の秘密鍵を使用し、第1のデジタル署名を生成することは、第1の公開鍵のプロパティを使用する。1または複数のさらなる実施形態において、ハイブリッドセキュリティ証明書を生成することは、第2の公開鍵をデータに関連付けることを含み、第2の公開鍵は第2の暗号システムに関連付けられる。さらに、第2のデジタル署名を生成することは、データをカバーする第2の暗号システムに関連付けられている第2のデジタル署名を生成するために第2の秘密鍵を使用し、第2のデジタル署名を生成することは、第2の公開鍵のプロパティを使用する。有利なことに、第1のデジタル署名の生成は、第2の公開鍵、第2のデジタル署名、または第2の暗号システムの属性に依存せず、第2のデジタル署名の生成は、第1の公開鍵、第1のデジタル署名、または第1の暗号システムの属性に依存せず、第1のデジタル署名と第2のデジタル署名はそれぞれ独立してデータをカバーする。
【0007】
1または複数の実施形態において、ハイブリッドセキュリティ証明書を生成することは、データをカバーする第3の暗号システムに関連付けられている第3のデジタル署名を生成することをさらに含み、ハイブリッドセキュリティ証明書を提供することは、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名と、第3の暗号システムに関連付けられている第3のデジタル署名とを有するハイブリッドセキュリティ証明書を提供することを含み、第1のデジタル署名、第2のデジタル署名および第3のデジタル署名の間に依存関係は存在しない。有利なことに、本明細書に開示されたハイブリッドセキュリティ証明書生成は、任意の数Nの署名形式、または暗号システム(ここでN≧2)、例えば、3つ以上の独立した署名が、署名間の依存関係なしに、データをカバーするために証明書に利用されるように、拡張可能である。このように、より堅牢なハイブリッドセキュリティ証明書が提供される。
【0008】
一実施形態では、ハイブリッドセキュリティ証明書を提供することは、データと、第1のデジタル署名と、第2のデジタル署名とを単一の識別符号化規則(DER)シーケンスで包むことをさらに含む。
【0009】
さらに、1または複数の実装では、ハイブリッドセキュリティ証明書は、第1の暗号システムに関連付けられている第1の公開鍵と、第1のデジタル署名と、第2の暗号システムおよび第2のデジタル署名に関連付けられている第2の公開鍵と、を含むSignerInfoブロックを含む。
【0010】
1または複数の態様に関連するコンピュータシステムおよびコンピュータ実装方法もまた、本明細書において説明され、請求される。さらに、1または複数の態様に関連するサービスもまた、本明細書において説明され、請求され得る。
【0011】
追加の特徴および利点は、本明細書に記載された技術によって実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明され、請求された態様の一部とみなされる。
【0012】
本発明の1または複数の態様は、明細書の結論にある特許請求の範囲において、実施例として特に指摘され、明確に主張されている。本発明の前記および他の目的、特徴、および利点は、添付の図面と併せて以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0013】
【
図1A】本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の一実施形態を示す。
【
図1B】本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の別の実施形態を示す。
【
図2】本発明の1または複数の態様による、安全な通信を備えたコンピューティング環境内のプロセスフローの一実施形態を示す。
【
図3】本発明の1または複数の態様による、例示的なハイブリッドセキュリティ証明書を示すブロック図である。
【
図4】本発明の1または複数の態様による、ハイブリッドセキュリティ証明書のより詳細な例を示すブロック図である。
【
図5A】本発明の1または複数の態様による、コンピューティング環境内の処理の促進に関連する態様の一実施形態を示す。
【
図5B】本発明の1または複数の態様による、コンピューティング環境内の処理の促進に関連する態様の一実施形態を示す。
【
図6A】本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の一例を示す。
【
図6B】本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の別の例を示す。
【
図6C】本発明の1または複数の態様による、
図6Bのメモリのさらなる詳細の一例を示す。
【
図6D】本発明の1または複数の態様による、
図6Bのメモリのさらなる詳細の別の例を示す。
【
図7A】本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の別の例を示す。
【
図7B】本発明の1または複数の態様による、
図7Aのメモリのさらなる詳細を示す。
【
図8】本発明の1または複数の態様による、クラウドコンピューティング環境の一実施形態を示す。
【
図9】本発明の1または複数の態様による、抽象化モデルレイヤの一例を示す図である。
【発明を実施するための形態】
【0014】
同様の参照数字が別々の図を通して同一または機能的に類似した要素を指し、本明細書に組み込まれ、その一部を構成する添付の図は、本発明をさらに説明し、本発明の詳細な説明と共に、本発明の態様を説明するのに役立つ。この点で、周知のシステム、装置、暗号システム、処理技術などの説明は、本発明の詳細を不必要に不明瞭にしないように省略されることに留意されたい。しかし、詳細な説明とこの具体的な実施例は、本発明の態様を示すものでありながら、例示のためだけのものであり、限定するものではないことを理解することが必要である。基礎となる発明概念の精神または範囲内で、様々な置換、修正、追加、もしくは他の配置、またはその組み合わせが、本開示から当業者に明らかになるであろう。さらに、多数の発明的態様および特徴が本明細書に開示され、矛盾しない限り、各開示された態様または特徴は、本明細書に開示された概念の特定の適用に望まれるように、任意の他の開示された態様または特徴と組み合わせ可能であることに留意されたい。
【0015】
また、例示的な実施形態は、特定のコード、設計、アーキテクチャ、暗号システム、プロトコル、レイアウト、回路図、またはツールを用いて以下に説明されるが、これは例としてのみであり、限定するものではないことに留意されたい。さらに、例示的な実施形態は、特定のソフトウェア、ツール、またはデータ処理環境を用いて、説明の明確化のための例としてのみ、特定のインスタンスで説明される。例示的な実施形態は、他の比較可能なまたは同様の目的の構造、システム、アプリケーション、またはアーキテクチャと組み合わせて使用することができる。例示的な実施形態の1または複数の態様は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装することができる。
【0016】
当業者によって理解されるように、本願で言及されるプログラムコードは、ソフトウェアとハードウェアの両方を含むことができる。例えば、本発明の特定の実施形態におけるプログラムコードは、固定機能ハードウェアを含むことができるが、他の実施形態では、説明した機能のソフトウェアベースの実装を利用することができる。特定の実施形態は、両方のタイプのプログラムコードを組み合わせている。1または複数のプログラムまたはプログラム命令とも呼ばれるプログラムコードの一例は、
図6Aにおいて、コンピュータシステム602のメモリ606に記憶されたアプリケーションプログラム616、コンピュータ可読プログラム命令620、もしくは暗号システム622、またはその組み合わせ、ならびにコンピュータシステム602によってアクセスされるデータ記憶装置634に記憶されたプログラム636およびコンピュータ可読プログラム命令638の1または複数として描かれる。
【0017】
前述のように、暗号化システムは、安全な通信を促進するために、様々なコンピューティング環境で使用することができる。1または複数の実施形態では、暗号化システム(または暗号システム)は、コンピューティングシステム内またはコンピューティングシステム間など、安全な通信を促進するために、セキュリティ証明書、またはデジタル証明書を提供する。
【0018】
特に、暗号は安全な処理に不可欠なツールである。アプリケーションが他の分散型要素と通信しなければならないとき、または処理されているデータの妥当性を主張または確認しなければならないとき、一般的に暗号が使用される。前述のように、1または複数の実施形態において、コンピューティング環境は、処理を強化するために、異なるタイプのプロセッサを含むことができる。一例として、コンピューティング環境は、メインプロセッサとみなされる1または複数の中央処理装置(CPU)と、CPUに付随するとみなされる1または複数の補助プロセッサとを含むことができる。補助プロセッサは、通常、特定のタイプのタスクを実行する。例えば、特定のタイプの補助プロセッサは、暗号処理を実行するために使用される暗号(crypto)カードである。
【0019】
International Business Machines Corporation(ニューヨーク州アーモンク(米国))が提供する暗号カードの一例には、IBM(登録商標)4769 PCIe暗号化コプロセッサがあり、それは高セキュリティ、耐タンパー性、プログラマブルなペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)ボードに実装された安全なコプロセッサを含むハードウェアセキュリティモジュール(HSM)である。(IBMは、少なくとも1つの法域におけるInternational Business Machines Corporationの登録商標である)。特殊な暗号電子機器、マイクロプロセッサ、メモリ、乱数発生器を改ざん防止環境内に収容し、データ処理と暗号化を実行することができる安全性の高いサブシステムを提供する。機密性の高い鍵は、物理的に安全な境界の外側に、明確なフォーマットで決して露出しない。
【0020】
IBM 4769 PCIe暗号化コプロセッサは、商用暗号化デバイスで利用可能な最高レベルの認証である連邦情報処理規格(FIPS)140-2レベル4を満たすように設計されている。この暗号化カードは、広範な暗号化およびエンタープライズセキュリティシステムの一部として使用することができる。
【0021】
例えば、ニューヨーク州アーモンク(米国)のInternational Business Machines Corporationが提供する暗号化カードアプリケーションの一例として、チャネル接続型のCrypto Express(商標)カード(ここでCrypto Expressは、少なくとも1つの法域におけるInternational Business Machines Corporationの商標である)が挙げられる。Crypto Expressカードは、暗号鍵を使用するコマンド、クリア鍵を使用するコマンド、ハッシュコマンド、クエリーコマンド、乱数発生器コマンドなど、複数のタイプのコマンドをサポートするように定義されている。さらに、Crypto Expressカードは、例えば、共通暗号化アーキテクチャ(CCA)モード、アクセラレータモード、エンタープライズ公開鍵暗号標準(PKCS)(別名、XCP/EP11-Enterprise PKCS #11モード)等の複数のモードをサポートするように設計されている。各モードは、特定の種類のコマンドを処理するように設定することができる。例として、アプリケーションは、金融PIN取引、銀行から決済機関への取引、集積回路(チップ)ベースのクレジットカードのクレジット取引、対称鍵アルゴリズム、ハッシュアルゴリズム、公開鍵アルゴリズムなどを使用する汎用暗号化アプリケーションを含むことができる。1または複数の実装では、運用鍵(対称または非対称の秘密鍵(RSAまたは楕円曲線))はコプロセッサで生成され、その後、例えば鍵ストアファイルまたはアプリケーションメモリに、そのコプロセッサのマスター鍵の下で暗号化して保存される。同一の一致する鍵を持つコプロセッサは、その鍵を使用することができる。1または複数の実装において、本明細書に記載されるような暗号システムもしくはカードまたはその両方は、IBM z/Architecture(登録商標)コンピューティング環境(ここで、z/Architecture(登録商標)は、少なくとも1つの法域におけるInternational Business Machines Corporationの登録商標である)等の特定のメインフレーム計算環境上でサポートすることができる。
【0022】
証明書(本明細書ではセキュリティ証明書またはデジタル証明書と呼ぶ)は、暗号鍵の所有権と真正性を証明するために使用される電子文書またはデータファイルである。現在使用されている証明書は、通常、単一の暗号システムを組み込んでいる。つまり、証明書には、1つの鍵と1つの署名が含まれており、両方とも同じ暗号システムを使用して生成されている。実際には、暗号システムは、一般に、楕円曲線暗号(ECC)暗号などの非対称暗号システムである。
【0023】
現在使われている非対称暗号システムは、量子コンピュータ上で動作するアルゴリズムによる攻撃に対して脆弱になる。そのため、従来のコンピュータと量子コンピュータの両方からの攻撃により強い暗号システムへの移行が望まれている。ディリチウム暗号は、量子コンピュータが存在する場合でも、セキュリティの堅牢性を維持することができるいくつかの格子ベースの暗号アプローチの1つであり、そのような暗号システムの候補の1つである。
【0024】
ディリチウムの鍵や署名は、現在使用されているECCの鍵や署名よりもはるかに大きい。例えば、ECC公開鍵は約160バイト、ECC署名は200バイト強、ECC秘密鍵は約250バイト(ただし、秘密鍵は72バイトの秘密データからほぼ瞬時に再現可能)である。これに対し、ディリチウム強度の鍵に対応する値は、それぞれ約2400バイト、4700バイト弱、7500バイト超えである。さらに、ディリチウムの秘密鍵は、約64バイトの秘密データから再作成することができる。
【0025】
現在、標準化・認証機関(米国国立標準技術研究所(NIST)等)は、標準的な耐量子暗号システムに到達しておらず、そのような暗号システムのみにセキュリティを依存する実装を認証することはない。解決策として、本明細書で開示するようなハイブリッドセキュリティ証明書のアプローチを採用することができる。
【0026】
本明細書で説明するように、1または複数の実装では、1または複数のプロセッサ上で実行されるプログラムコードは、2つの鍵と2つの署名を含むハイブリッドセキュリティ証明書を生成し、一方のセットは第1の暗号システムを用いて生成され、他方のセットは第2の暗号システムを用いて生成される。例えば、1つの実装においてのみ、第1の暗号システムは、NISTが認証した非対称暗号システムであり、他の暗号システムは、NISTがまだ認証していない耐量子暗号システムである。このように、ハイブリッドセキュリティ証明書生成機能は、異なる暗号システム標準間の無停止的な上方移行の幅広いサポートを提供するものである。鍵もしくは署名またはその両方の長さなど、将来の暗号システム標準の変更に伴い、本明細書に開示されたハイブリッドセキュリティ証明書生成機能を採用することができる。例えば、1つの実装では、認証を取得するために、上述のような暗号アダプタ/カードは、ECC暗号システムなどの認証済み暗号システムアプローチを引き続き使用し、さらに、まだ認証されていない、より量子抵抗性の高い暗号システムアプローチも含めることができる。したがって、1または複数の実施形態では、NISTコンプライアンスを維持するために、本明細書に開示されるハイブリッドセキュリティ証明書生成機能は、複数の暗号システムを利用し、複数の鍵と複数のデジタル署名を含むハイブリッドセキュリティ証明書を提供するが、ここで鍵と署名のペアは互いに独立である。
【0027】
本発明の実施形態は、コンピュータプログラム製品、コンピュータシステムおよび方法を含み、1または複数のプロセッサ(1または複数のコプロセッサまたは補助プロセッサなど)上で実行されるプログラムコードは、複数の暗号システムを使用してハイブリッドセキュリティ証明書を生成する。生成することは、ハイブリッドセキュリティ証明書に含めるデータを取得することと、データをカバーする複数の暗号システムのうちの第1の暗号システムに関連付けられている第1のデジタル署名を生成することと、データをカバーする複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成することとを含む。ハイブリッドセキュリティ証明書を生成することはさらに、ハイブリッドセキュリティ証明書を提供することを含み、ハイブリッドセキュリティ証明書は、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名とを含み、第1のデジタル署名は、第2の暗号システムの鍵または第2のデジタル署名に依存せず、第2のデジタル署名は、第1の暗号システムの鍵または第1のデジタル署名に依存しない。
【0028】
1または複数の実施形態では、1または複数のプロセッサ上で実行されるプログラムコードは、第2の暗号システムから独立したデータをカバーするために第1の暗号システムに関連付けられている第1のデジタル署名を生成し、第1の暗号システムから独立したデータをカバーするために第2の暗号システムに関連付けられている第2のデジタル署名を生成し、データは第1の暗号システムまたは第2の暗号システムの任意の属性または鍵を含まない、または依存しない。一実施形態では、データは、セキュリティ保護されるべきメタデータを含み、証明書の生成は、(例えば)ミニブート処理もしくは認証処理(アウトバウンド認証マネージャ処理など)またはその両方に関連することができる。さらに、一実施態様において、第1の暗号システムは非対称暗号システムであり、第2の暗号システムは、格子ベース暗号化システムなどの耐量子暗号システムである。特定の一実施態様において、第1の暗号システムは楕円曲線暗号(ECC)暗号システムであり、第2の暗号システムはディリチウム暗号システムである。
【0029】
1または複数の実装において、ハイブリッドセキュリティ証明書を生成することは、1または複数のプロセッサ上で実行されるプログラムコードをさらに含み、第1の公開鍵をデータに関連付け、第1の公開鍵は第1の暗号システムに関連付けられ、第1のデジタル署名を生成することは、データをカバーする第1の暗号システムに関連付けられている第1のデジタル署名の生成において第1の秘密鍵を使用する。第1のデジタル署名を生成することはさらに、第1の公開鍵のプロパティを使用する。1または複数のさらなる実施形態では、1または複数のプロセッサ上で実行されるプログラムコードは、第2の公開鍵をデータに関連付けることによってハイブリッドセキュリティ証明書を生成し、第2の公開鍵は第2の暗号システムに関連付けられ、第2のデジタル署名を生成することは、データをカバーする第2の暗号システムに関連付けられている第2のデジタル署名を生成するために第2の秘密鍵を使用する。また、第2のデジタル署名を生成することは、第2の公開鍵のプロパティを使用する。
【0030】
1または複数の実施形態において、1または複数のプロセッサ上で実行されるプログラムコードは、データをカバーする第3の暗号システムに関連付けられている第3のデジタル署名を生成することによってハイブリッドセキュリティ証明書を生成し、ハイブリッドセキュリティ証明書を提供することは、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名と、第3の暗号システムに関連付けられている第3のデジタル署名とを有するハイブリッドセキュリティ証明書を提供することを含み、第1のデジタル署名、第2のデジタル署名および第3のデジタル署名の間に依存関係または重複は存在しない。
【0031】
1または複数の実施形態において、ハイブリッドセキュリティ証明書を生成することは、データと、第1のデジタル署名と、第2のデジタル署名とを単一の識別符号化規則(DER)シーケンスで包むことをさらに含む。さらに、一実施形態では、生成されたハイブリッドセキュリティ証明書は、第1の暗号システムに関連付けられている第1の公開鍵と、第1のデジタル署名と、第2の暗号システムおよび第2のデジタル署名に関連付けられている第2の公開鍵と、を含むSignerInfoブロックを含む。
【0032】
本発明の実施形態は、コンピューティングと表裏一体であり、セキュリティ証明書に対する既存のアプローチよりも大幅に多くのものを提供する。例えば、本発明の実施形態は、複数の暗号システムを使用してハイブリッドセキュリティ証明書を生成するために、コンピューティング中心のデータ処理技術を利用する、1または複数のプロセッサ上で実行されるプログラムコードを提供する。有利には、1または複数のプロセッサ上で実行されるプログラムコードは、ハイブリッドセキュリティ証明書を提供し、ハイブリッド証明書は、証明書によって保護されるデータ、第1の暗号システムに関連付けられている第1のデジタル署名、および第2の暗号システムに関連付けられている第2のデジタル署名を含み、第1のデジタル署名は第2の暗号システムの属性または鍵、または第2のデジタル署名に依存せず、第2のデジタル署名は第1の暗号システムの属性または鍵、または第1のデジタル署名に依存しない。
【0033】
利用されるコンピューティング要素、システムまたはノードの相互接続性、およびプログラムコードによって利用されるコンピュータ排他的なデータ処理技術の両方が、本発明の様々な態様を可能にする。さらに、本発明の実施形態は、一致する署名セクションまたはサブセクションの属性が変更された場合に、署名セクションまたはサブセクションが更新または変更される必要がないハイブリッドセキュリティ証明書を提供することによって、セキュリティ証明書を生成する既存のアプローチよりも大幅に多くを提供する。さらに、ハイブリッド証明書の各署名は、データをカバーする各署名が他から独立しているため、コードを書くのが容易であり、解析するのも容易である。さらに、各証明書のフィールドまたはサブセクションは、ハイブリッドセキュリティ証明書の所定の署名が決定される前に、ゼロにされること、または特定の値を有することが要求されない。さらに、本明細書で開示されるハイブリッドセキュリティ証明書生成機能は、保護すべきデータをカバーするために利用される3つ以上の独立した署名など、任意の数Nの署名フォーマットまたは暗号システムに拡張可能である。
【0034】
有利なことに、第1のデジタル署名と第2のデジタル署名とを含むことによって、特に量子コンピュータの存在下で、より堅牢なセキュリティ証明書が提供される。1または複数の実装において、第1の暗号システムは、NIST認定セキュリティシステムであってよく、第2の暗号システムは、例えば、まだ認定されていない耐量子暗号システムであってよい。
【0035】
例としてのみ、本発明の1または複数の態様を組み込んで使用するコンピューティング環境の一実施形態が、
図1Aを参照して説明される。一例として、コンピューティング環境100は、少なくとも1つの中央処理ユニット102と少なくとも1つの補助プロセッサ(AP)104を含み、これらの各々は、システムメモリ106と呼ばれるメモリの少なくとも一部に結合される。一例として、システムメモリ106は、ハードウェアシステム領域を含み、これは、中央処理ユニット上で実行されるプログラムに対して間接的にアクセス可能であり、見えない。(間接的にアクセス可能とは、本明細書では、ハードウェアシステム領域またはそこに記憶された補助プロセッサキュー(後述)が、特定の限定された命令によってのみアクセス可能で、それ以外ではアクセスできない(例えば、そこにロードできない、プログラムはアドレスを知らない、など)、という意味で使用される)。システムメモリ内に位置するのは、1または複数の補助プロセッサキュー108である。これらのキューは、ユーザプログラムから直接見えるものではなく、代わりに、マシン(すなわち、中央処理ユニット、システムメモリおよび補助プロセッサを含むマシン)の一部とみなされる。中央処理ユニットは、例えば、リクエストをキューに入れる命令、もしくは返信をキューから削除する命令、またはその両方を発行することにより、システムメモリ内のキューにアクセスすることができる。しかし、補助プロセッサは、例えば、トランスポートレイヤ110を介してキューに直接アクセスし、キューからリクエストを取り出し、リクエストを処理し、リクエストに対する返信をキューに配置する責任を持つ。
【0036】
本発明の1または複数の態様を組み込んで使用するコンピューティング環境の別の実施形態が、
図1Bを参照しながら説明される。本実施形態では、マシンは仮想サポートを含み、複数のゲスト152(例えば、ゲストオペレーティングシステムもしくはゲストプログラムまたはその両方)を含む少なくとも1つのホスト中央処理ユニット150が存在する。ホスト中央処理ユニットは、システムメモリ154と呼ばれるメモリの少なくとも一部と結合されている。さらに、少なくとも1つの補助プロセッサ156があり、これも、例えばトランスポートレイヤ160を介して、システムメモリ154に結合されている。一例として、システムメモリ154は、ハードウェアシステム領域を含み、システムメモリ内に位置するのは、1または複数の補助プロセッサキュー158である。
【0037】
示したように、暗号カードやアダプタを含むがこれに限定されない、さまざまなタイプの補助プロセッサが存在する。暗号カードの具体例には、ニューヨーク州アーモンクのInternational Business Machines Corporationによって提供されるCrypto Express cardがある。暗号カードの例が提供されているが、International Business Machines Corporationもしくは他の企業またはその両方によって提供される他の暗号カードは、本発明の1または複数の態様を組み込むもしくは使用するまたはその両方を行うことができる。さらに、他のタイプのプロセッサは、本発明の1または複数の態様を組み込むもしくは使用するまたはその両方を行うことができる。
【0038】
一実施形態では、暗号カード(例えば、Crypto Expressカード)などの補助プロセッサは、例として、コプロセッサモード、アクセラレータモード、およびエンタープライズ公開鍵暗号標準(PKCS)モード(例えば、XCP/EP11-Enterprise PKCS#11)を含むがこれらに限定されない複数のモードをサポートできる。他の例では、追加の、より少ない、もしくは他の、またはその組み合わせのモードがサポートされ得る。各モードは、それ自身のAPメッセージ構造およびフォーマットを持つことができる。
【0039】
一例として、補助プロセッサメッセージは複数のデータセグメントで構成され、データセグメントは互いに隣接していない場合があり、代わりに1または複数がインターリーブされている場合がある。これらのデータセグメントは、スキャッタギャザーデータセグメントと呼ばれる。一例として、暗号カードは、エンキューされたAPメッセージに直接アクセスできず、メッセージの一部(例えばAPメッセージの下部)には、例えば暗号カードがAPコマンドを実行するために使用するデータが含まれている。そこで、APコマンドトランスポートレイヤ(例えば、トランスポートレイヤ110、160)は、APコマンド要求メッセージから関連データをコピーし、暗号カードが理解できるフォーマット(例えば、暗号カードのコマンド要求メッセージ)にパッケージして、暗号カードに送信する。同様に、APコマンドが暗号カードによって実行された後、APコマンドトランスポートレイヤは、APコマンド要求メッセージと暗号カードのコマンド返信メッセージの様々な部分を使用してAPコマンド返信メッセージを生成し、プログラムによって後でデキューされるようにAPキューに送信する。
【0040】
ハイブリッドセキュリティ証明書機能の態様は、ニューヨーク州アーモンクのInternational Business Machines Corporationによって提供されるz/Architecture(登録商標)ハードウェアアーキテクチャなどの特定のアーキテクチャに関して本明細書に記載されている。z/Architecture(登録商標)ハードウェアアーキテクチャの一実施形態は、「z/Architecture Principles of Operation」、IBM 出版物番号 SA22-7832-12, 第13版,2019年9月に記載されており、その全体は参照により本明細書に組み込まれる。しかしながら、z/Architectureハードウェアアーキテクチャは、1つの例示的なアーキテクチャに過ぎない。本発明の態様はまた、Intel x86アーキテクチャ、International Business Machines Corporationの他のアーキテクチャ、もしくは他の企業のアーキテクチャ、またはその組み合わせを含むが、これらに限定されない、他のアーキテクチャに基づくことができる。
【0041】
例として、
図2は、コマンド要求/応答メッセージ(すなわち、データ)が、暗号化アダプタ/カード処理を使用して、本明細書に記載されるようなハイブリッドセキュリティ証明書を取得できる、コンピューティング環境200の一実施形態を示している。
図2の実施形態では、暗号プロセッサは、
図1Aおよび1Bの実施形態に関連して上述したような補助プロセッサであり得る。
図2を参照すると、一実施形態では、ゲスト202(例えば、ステップ210において、クラウド環境におけるゲストアプリケーションまたはゲストオペレーティングシステム)などの要求者によって、暗号化要求210が作成される。一例では、APコマンド要求メッセージを符号化し、ハイパーバイザー204に提供することができる。
【0042】
ステップ220において、暗号化リクエストは、ハイパーバイザー204によってゲスト202から取得され(例えば、受信、取得、提供など)、転送のために処理される。この処理は、例えば、要求者のコンピューティングポリシーに基づいて、要求者のために処理される許容されるコマンドタイプの考慮を含み得る。ハイパーバイザー204は、要求メッセージ210を補助プロセッサ(例えば、暗号プロセッサ208)に提供する。例えば、ハイパーバイザー204は、例えばシステムバス206を介して要求メッセージを補助プロセッサに送信または転送し、あるいは補助プロセッサは、システムバス206を介して要求メッセージを取得する(例えば、検索する)。
【0043】
ステップ230で、暗号プロセッサ208(この例では)などの補助プロセッサは、要求を処理する。要求が許可されたと仮定すると、それは処理され(例えば、コマンドの操作が実行され)、ステップ240で暗号プロセッサの返信240が生成され、これは、一実施形態では、ステップ250で、返信をAPコマンド返信メッセージに入れること、および、それを、例えば、トランスポートレイヤ(例えば、トランスポートレイヤ)を介してゲスト202に送信することを含むことができる。返信は、本明細書に記載されるような生成されたハイブリッドセキュリティ証明書などの、処理の結果を含むことができる。
【0044】
図3は、本発明の1または複数の態様による、ハイブリッドセキュリティ証明書300フォーマットの一実施形態を描写するものである。本明細書で説明するように、描かれた証明書は、異なる暗号標準間、すなわち、異なる暗号システムアプローチ間の無停止的な上方移行を広範にサポートする。したがって、鍵の長さ、および署名を含む将来の暗号標準が変化すると、開示されたハイブリッド証明書フォーマットを使用して、ある暗号標準から別の暗号標準への移行を促進することができる。描かれている実施形態では、ハイブリッドセキュリティ証明書300は、データセクション310、第1の暗号システム公開鍵およびデジタル署名セクション320、並びに第2の暗号システム公開鍵およびデジタル署名セクション330を含む複数のセクションまたはサブセクションを含む。2つの暗号システム公開鍵およびデジタル署名セクションは、例示のためにのみ提供されることに留意されたい。本明細書で説明するように、ハイブリッドセキュリティ証明書を生成することは、3つ以上の暗号システムを使用することに容易に拡張でき、その場合、各暗号システムは、
図3に描かれたハイブリッドセキュリティ証明書のフォーマット内のそれぞれのセクションまたはサブセクションを有することになる。
【0045】
図3に示されるように、データセクション310は証明書本体であり、処理される、もしくはセキュリティ保護される、またはその両方のメッセージ/データ(例えば、メタデータ)を含むことができる。第1の暗号システム公開鍵およびデジタル署名320は、データ310のみをカバーし、第2の暗号システム公開鍵およびデジタル署名330のいかなるフィールドまたはデータからも完全に独立しており、第2の暗号システム公開鍵およびデジタル署名330はデータ310をカバーし、第1の暗号システム公開鍵およびデジタル署名320のいかなるフィールドまたはデータにも依存しない。このように、一致する署名または鍵セクションの属性が変更された場合、証明書のどの署名または鍵セクションも更新する必要がない。さらに、前述のように、本明細書に開示されたハイブリッドセキュリティ証明書生成機能は、任意のN個の署名フォーマットに拡張可能であり、ここでNは、セキュリティ保護される証明書本体データに対する2以上の署名である。
【0046】
図示されるように、1つの実装では、識別符号化規則(DER)シーケンス301が、ハイブリッドセキュリティ証明書全体を包むまたは符号化するために使用され得る。あるいは、1または複数の他の実装では、各セクション310、320、330は、それぞれのDERシーケンスで包まれ得る。一実施形態では、第1の暗号システム公開鍵およびデジタル署名セクション320と第2の暗号システム公開鍵およびデジタル署名セクション330は、図示のように、データセクション310に関連するSignerInfoブロックとしてグループ化することができる。そのような実施形態では、SignerInfoブロックは、それぞれのDERシーケンスで包まれ得る。
【0047】
図4は、本発明の1または複数の態様による、ハイブリッドデジタル証明書のより詳細な表現を示す図である。
図4の実施形態では、ハイブリッドデジタル証明書400は、証明書410に含めるためのデータを含む。例えば、一実施形態では、保護されるデータは、バージョン番号411、シリアル番号412などのメタデータ、もしくはメッセージまたはその両方、または他のデータを含む。データ410は、第1の暗号システム公開鍵およびデジタル署名420、ならびに第2の暗号システム公開鍵およびデジタル署名430によってカバーまたは保護され、第1および第2の暗号システム情報は互いに完全に独立しており、第1および第2の暗号システム情報間で鍵、署名または他の属性に重複は存在しない。
【0048】
図示されるように、一実施形態では、第1の暗号システム公開鍵およびデジタル署名420は、第1の署名アルゴリズムID421、第1の公開鍵情報422、および第1の証明書署名アルゴリズム423を含むことができ、その情報、ならびにデータ410は、第1の暗号システムに関連する(例えば、それに従って提供される)第1のデジタル署名424によってデジタル署名またはセキュリティ保護されている。
【0049】
同様に、第2の暗号システム公開鍵およびデジタル署名430は、例えば、第2の署名アルゴリズムID431、第2の公開鍵情報432、および第2の証明書署名アルゴリズム433を含むことができ、これらの情報は、データ410とともに、第2の暗号システムに関連する(例えば、これに従って提供される)第2のデジタル署名434によってデジタル署名またはセキュリティ保護される。このように、第1および第2の暗号システム公開鍵およびデジタル署名は、互いに完全に独立しているが、両方ともハイブリッドデジタル証明書内のデータを依然として保護する。
【0050】
コンピューティング環境内の処理を促進することに関連する態様の一実施形態の詳細が、
図5A~5Bを参照しながら以下に要約される。
【0051】
図5Aを参照すると、一実施形態では、補助プロセッサなどのプロセッサが、複数の暗号システムを使用してハイブリッドセキュリティ証明書を生成する(500)。ハイブリッドセキュリティ証明書を生成することは、ハイブリッドセキュリティ証明書に含めるデータを取得すること(502)と、データをカバーする複数の暗号システムの第1の暗号システムに関連付けられている第1のデジタル署名を生成すること(504)と、データをカバーする複数の暗号システムのうちの第2の暗号システムに関連付けられている第2のデジタル署名を生成すること(506)とを含む。さらに、ハイブリッドセキュリティ証明書を生成することは、ハイブリッドセキュリティ証明書を提供することを含み、ハイブリッドセキュリティ証明書は、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名とを含み、第1のデジタル署名は、第2の暗号システムの鍵または第2のデジタル署名に依存せず、第2のデジタル署名は、第1の暗号システムの鍵または第1のデジタル署名に依存しない(508)。
【0052】
一実施形態では、第1の暗号システムに関連付けられている第1のデジタル署名を生成することは、第2の暗号システムから独立したデータをカバーし、第2の暗号システムに関連付けられている第2のデジタル署名を生成することは、第1の暗号システムから独立したデータをカバーし、データは第1の暗号システムまたは第2の暗号システムの属性または鍵を含まない、または依存しない(510)。
【0053】
1または複数の実施形態において、第1の暗号システムは、非対称暗号システムを含み、第2の暗号システムは、耐量子暗号システムを含む(512)。一実施形態では、耐量子暗号システムは、格子ベースの暗号化アプローチを含む。例えば、1または複数の実施形態において、第1の暗号システムは、楕円曲線暗号(ECC)暗号システムを含み、第2の暗号システムは、ディリチウム暗号システムを含む(516)。
【0054】
図5Bを参照すると、一実施形態では、ハイブリッドセキュリティ証明書を生成することは、第1の公開鍵をデータに関連付けることをさらに含み、第1の公開鍵は第1の暗号システムに関連付けられ、第1のデジタル署名を生成することは、データをカバーする第1の暗号システムに関連付けられている第1のデジタル署名の生成において第1の秘密鍵を使用し、第1のデジタル署名を生成することは第1の公開鍵のプロパティを使用する(518)。
【0055】
一実施形態において、ハイブリッドセキュリティ証明書を生成することは、第2の公開鍵をデータに関連付けることをさらに含み、第2の公開鍵は第2の暗号システムに関連付けられ、第2のデジタル署名を生成することは、データをカバーする第2の暗号システムに関連付けられている第2のデジタル署名を生成するために第2の秘密鍵を使用し、第2のデジタル署名を生成することは、第2の公開鍵のプロパティを使用する(520)。
【0056】
1または複数の実施形態において、ハイブリッドセキュリティ証明書を生成することは、データをカバーする第3の暗号システムに関連付けられている第3のデジタル署名を生成することをさらに含み、ハイブリッドセキュリティ証明書を提供することは、データと、第1の暗号システムに関連付けられている第1のデジタル署名と、第2の暗号システムに関連付けられている第2のデジタル署名と、第3の暗号システムに関連付けられている第3のデジタル署名とを有するハイブリッドセキュリティ証明書を提供することを含み、第1のデジタル署名、第2のデジタル署名および第3のデジタル署名の間に依存関係は存在しない(522)。
【0057】
一実施形態では、ハイブリッドセキュリティ証明書を提供することは、データと、第1のデジタル署名と、第2のデジタル署名とを単一の識別符号化規則(DER)シーケンスで包むことを含む(524)。1または複数の実施形態では、ハイブリッドセキュリティ証明書は、第1の暗号システムに関連付けられている第1の公開鍵と、第1のデジタル署名と、第2の暗号システムおよび第2のデジタル署名に関連付けられている第2の公開鍵と、を含むSignerInfoブロックを含む(526)。
【0058】
有利なことに、本明細書に開示されたハイブリッドセキュリティ証明書生成機能、およびハイブリッドセキュリティ証明書フォーマットは、例えば、公開鍵インフラストラクチャ環境を含む様々なコンピューティング環境において使用することができる。かかる環境では、暗号化システムを使用して、公開チャネル上で安全に通信することができる。例えば、いくつかの暗号システムは、メッセージを暗号化することによって機密性を提供し、いくつかの暗号システムは、デジタル署名によって真正性を提供する。多くの暗号システムには、暗号鍵を使用するプロトコルが含まれている。例えば、公開鍵インフラストラクチャ(PKI)では、暗号鍵は各エンティティの公開鍵と秘密鍵を含み、認証局は公開鍵を証明するセキュリティ証明書を発行することができる。1または複数の実装では、認証局は、本明細書で開示されるようなハイブリッドセキュリティ証明書を利用することができる。
【0059】
その他の変形や実施形態も可能である。
【0060】
本発明の1または複数の態様のハイブリッドセキュリティ証明書機能は、多くのコンピューティング環境に組み込まれ使用され得る。一例のコンピューティング環境について、
図6Aを参照して説明する。一例として、コンピューティング環境は、ニューヨーク州アーモンクのInternational Business Machines Corporationが提供するz/Architecture(登録商標)ハードウェアアーキテクチャに基づくものである。しかしながら、z/Architectureハードウェアアーキテクチャは、一例のアーキテクチャに過ぎない。コンピューティング環境は、Intel x86アーキテクチャ、International Business Machines Corporationの他のアーキテクチャ、もしくは他の企業のアーキテクチャ、またはその組み合わせを含むが、これらに限定されない他のアーキテクチャに基づくことも可能である。
【0061】
図6Aに示すように、コンピューティング環境600は、例えば、汎用コンピューティングデバイスの形態で示されるコンピュータシステム602を含む。コンピュータシステム602は、1または複数のバスもしくは他の接続610またはその両方を介して互いに結合された、1または複数のプロセッサまたは処理ユニット604(例えば、中央処理装置(CPU))、メモリ606(例として、システムメモリ、メインメモリ、メインストレージ、中央ストレージまたはストレージ)、および1または複数の入力/出力(I/O)インタフェース608を含むことができるが、これらに限定されない。
【0062】
バス610は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のいずれかの1または複数を表す。例として、限定ではなく、かかるアーキテクチャには、インダストリスタンダードアーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MCA)、拡張ISA(EISA)、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(PCI)がある。
【0063】
メモリ606は、例えば、プロセッサ604のローカルキャッシュ614に結合され得る、共有キャッシュなどのキャッシュ612を含むことができる。さらに、メモリ606は、1または複数のプログラムまたはアプリケーション616、少なくとも1つのオペレーティングシステム618、1または複数のコンピュータ可読プログラム命令620、および複数の暗号システム622を含むことができる。コンピュータ可読プログラム命令620および暗号システム622は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0064】
一実施形態では、メモリ606(例えば、メモリ606の少なくともハードウェアシステム領域)は、1または複数の補助プロセッサバス623を介して、および、1または複数の実施形態では、APトランスポートレイヤを介して、1または複数の補助プロセッサ621に結合される。
【0065】
コンピュータシステム602は、ユーザ端末、テープドライブ、ポインティングデバイス、ディスプレイ、および1または複数のデータ記憶装置634などの1または複数の外部デバイス630と、例えば、I/Oインターフェース608を介して通信できる。データ記憶装置634は、1または複数のプログラム636、1または複数のコンピュータ可読プログラム命令638、もしくはデータまたはその組み合わせなどを記憶することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0066】
コンピュータシステム602は、例えば、I/Oインターフェース608を介してネットワークインターフェース632と通信することもでき、これにより、コンピュータシステム602は、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、もしくはパブリックネットワーク(例えば、インターネット)またはその組み合わせなどの1または複数のネットワークと通信し、他のコンピュータデバイスまたはシステムとの通信を提供できる。
【0067】
コンピュータシステム602は、取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータシステム記憶媒体を含む、もしくはそれに結合する、またはその両方であることができる。例えば、取り外し不可能な不揮発性磁気媒体(典型的には「ハードドライブ」と呼ばれる)、取り外し可能な不揮発性磁気ディスク(例えば「フロッピーディスク」)から読み出し、それに書き込むための磁気ディスクドライブ、もしくは、CD-ROM、DVD-ROMまたは他の光学媒体など、取り外し可能な不揮発性の光学ディスクから読み出し、それに書き込むための光ディスクドライブ、またはその組み合わせを含む、もしくはこれらに結合する、またはその両方であることができる。他のハードウェアもしくはソフトウェアまたはその両方のコンポーネントが、コンピュータシステム602と組み合わせて使用され得ることを理解されたい。例としては、マイクロコード、デバイスドライバ、冗長処理装置、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイブ記憶システムなどが挙げられるが、これらに限定されるものではない。
【0068】
コンピュータシステム602は、多数の他の汎用または特別目的のコンピューティングシステム環境または構成で動作可能である。コンピュータシステム602と共に使用するのに適しているかもしれない周知のコンピューティングシステム、環境、もしくは構成、またはその組み合わせの例としては、パーソナルコンピュータ(PC)システム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、上記のシステムまたは装置のいずれかを含む分散クラウドコンピューティング環境などがあるが、それらに限定されない。
【0069】
本発明の1または複数の態様を組み込んで使用するためのコンピューティング環境の別の例が、
図6Bを参照して以下に説明される。例として、
図6Bのコンピューティング環境は、International Business Machines Corporationによって提供されるz/Architecture(登録商標)ハードウェアアーキテクチャに基づく可能性がある。しかしながら、z/Architecture
ハードウェアアーキテクチャは、1つの例示的なアーキテクチャに過ぎない。ここでも、コンピューティング環境は、Intel x86アーキテクチャ、International Business Machines Corporationの他のアーキテクチャ、もしくは他の企業のアーキテクチャ、またはその組み合わせを含むがこれらに限定されない他のアーキテクチャに基づくこともできる。
【0070】
一例では、コンピューティング環境650は、中央電子機器複合体(CEC)652を含む。CEC652は、例えば、1または複数のプロセッサ(別名、中央処理装置(CPU))656に結合されたメモリ654(別名、システムメモリ、メインメモリ、メインストレージ、中央ストレージ、ストレージ)および入力/出力(I/O)サブシステム658など、複数のコンポーネントを含む。さらに、一実施形態では、メモリ654(例えば、メモリ654の少なくともハードウェアシステム領域)は、1または複数の補助プロセッサバスを介して、および1または複数の実施形態ではAPトランスポートレイヤを介して、1または複数の補助プロセッサ657に結合される。
【0071】
I/Oサブシステム658は、中央電子機器複合体の一部であっても、それとは別個のものであってもよい。それは、メインストレージ654と、中央電子機器複合体に結合された入力/出力制御ユニット660および入力/出力(I/O)デバイス662との間の情報の流れを指示する。
【0072】
多くのタイプのI/Oデバイスを使用することができる。ある特定のタイプは、データ記憶装置664である。データ記憶装置664は、1または複数のプログラム666、1または複数のコンピュータ可読プログラム命令668、もしくはデータまたはその組み合わせなどを記憶することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0073】
中央電子機器複合体652は、取り外し可能/取り外し不可能、揮発性/不揮発性コンピュータシステム記憶媒体を含む、もしくはこれと結合する、またはその両方であることができる。例えば、取り外し不可能な不揮発性磁気媒体(典型的には「ハードドライブ」と呼ばれる)、取り外し可能な不揮発性磁気ディスク(例えば「フロッピーディスク」)から読み取り、それに書き込むための磁気ディスクドライブ、もしくはCD-ROM、DVD-ROMまたは他の光学媒体など、取り外し可能な不揮発性光学ディスクから読み取り、それに書き込むための光ディスクドライブ、またはその組み合わせを含む、もしくはこれと結合する、またはその両方であることができる。他のハードウェアもしくはソフトウェアまたはその両方のコンポーネントが、中央電子機器複合体652と組み合わせて使用され得ることを理解されたい。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイブ記憶システム等が挙げられるが、これらに限定されない。
【0074】
さらに、中央電子機器複合体652は、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で動作可能である。中央電子機器複合体652と共に使用するのに適し得る周知のコンピューティングシステム、環境、もしくは構成、またはその組み合わせの例としては、パーソナルコンピュータ(PC)システム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、上記のシステムまたは装置のいずれかを含む分散クラウドコンピューティング環境などがあるがそれらに限定されない。
【0075】
中央電子機器複合体652は、1または複数の実施形態において、論理パーティショニングもしくは仮想化サポートまたはその両方を提供する。一実施形態では、
図6Cに示すように、メモリ654は、例えば、1または複数の論理パーティション670、論理パーティションを管理するハイパーバイザー672、およびプロセッサファームウェア674を含む。ハイパーバイザー672の一例は、ニューヨーク州アーモンクのInternational Business Machines Corporationによって提供されるProcessor Resource/System Manager(PR/SM)である。本明細書で使用されるように、ファームウェアは、例えば、プロセッサのマイクロコードを含む。それは、例えば、より高いレベルのマシンコードの実装において使用されるハードウェアレベルの命令もしくはデータ構造またはその両方を含む。一実施形態では、それは、例えば、信頼できるソフトウェアまたは基礎となるハードウェアに固有のマイクロコードを含み、システムハードウェアへのオペレーティングシステムのアクセスを制御するマイクロコードとして通常配信される独自のコードを含む。
【0076】
各論理パーティション670は、別個のシステムとして機能することが可能である。すなわち、各論理パーティションは、独立してリセットすることができ、ニューヨーク州アーモンクのInternational Business Machines Corporationによって提供されるz/OS(登録商標)オペレーティングシステムなどのゲストオペレーティングシステム676、またはカップリングファシリティ制御コード(CFCC)などの制御コード678を実行することができ、異なるプログラム680で動作することができる。論理パーティションで動作するオペレーティングシステムまたはアプリケーションプログラムは、完全かつ完璧なシステムにアクセスできるように見えるが、実際には、その一部しか利用できない。z/OSは例として提供されているが、他のオペレーティングシステムを本発明の1または複数の態様に従って使用することができる。
【0077】
メモリ654は、論理パーティションに割り当てることができる物理プロセッサリソースであるCPU656(
図6B)に結合される。例えば、論理パーティション670は、1または複数の論理プロセッサを含み、その各々は、論理パーティションに動的に割り当てることができる物理プロセッサリソース656のすべてまたはシェアを表す。
【0078】
さらに別の実施形態では、中央電子機器複合体は、仮想マシンサポートを提供する(論理パーティショニングサポートを伴うか、または伴わない)。
図6Dに示すように、中央電子機器複合体652のメモリ654は、例えば、1または複数の仮想マシン690、仮想マシンを管理するハイパーバイザー692などの仮想マシンマネージャ、およびプロセッサファームウェア694を含む。ハイパーバイザー692の一例は、ニューヨーク州アーモンクのInternational Business Machines Corporationが提供するz/VM(登録商標)ハイパーバイザーである。ハイパーバイザーは、時にホストと呼ばれる。z/OSおよびz/VMは、少なくとも1つの法域におけるInternational Business Machines Corporationの商標または登録商標である。
【0079】
CPCの仮想マシンサポートは、それぞれが異なるプログラム696で動作し、Linux(登録商標)オペレーティングシステムなどのゲストオペレーティングシステム698を実行することができる、多数の仮想マシン690を操作する能力を提供する。各仮想マシン690は、別個のシステムとして機能することが可能である。すなわち、各仮想マシンは、独立してリセットすることができ、ゲストオペレーティングシステムを実行することができ、異なるプログラムで動作することができる。仮想マシン内で動作するオペレーティングシステムまたはアプリケーションプログラムは、完全かつ完璧なシステムにアクセスできるように見えるが、実際には、その一部しか利用できない。z/VMおよびLinuxは例として提供されているが、他の仮想マシンマネージャおよびオペレーティングシステムは、本発明の1または複数の態様に従って使用することができる。登録商標Linux(登録商標)は、世界的な商標権者であるLinus Torvaldsの独占的使用権者であるLinux Foundationからのサブライセンスに基づき使用されている。
【0080】
本発明の1または複数の態様を組み込んで使用するコンピューティング環境の別の実施形態が、
図7Aを参照して説明される。この例では、コンピューティング環境710は、例えば、ネイティブ中央処理ユニット(CPU)712、メモリ714、および例えば、1または複数のバス718もしくは他の接続またはその両方を介して互いに結合された1または複数の入力/出力デバイスもしくはインターフェース716またはその両方を含む。例として、コンピューティング環境710は、ニューヨーク州アーモンクのInternational Business Machines Corporationによって提供されるPowerPC(登録商標)プロセッサ、カリフォルニア州パロアルトのHewlett Packard Co.によって提供されるIntel Itanium II プロセッサ搭載HP Superdome、もしくはInternational Business Machines Corporation、Hewlett Packard、Intel Corporation、Oracleまたは他の者によって提供されるアーキテクチャに基づいた他のマシン、またはその組み合わせを含むことができる。PowerPCは、少なくとも1つの法域においてInternational Business Machines Corporationの商標または登録商標である。IntelおよびItaniumは、Intel Corporationまたはその子会社の米国およびその他の国における商標または登録商標である。
【0081】
ネイティブ中央処理ユニット712は、環境内の処理中に使用される1または複数の汎用レジスタもしくは1または複数の特殊目的レジスタまたはその両方などの1または複数のネイティブレジスタ720を含む。これらのレジスタは、任意の特定の時点における環境の状態を表す情報を含む。
【0082】
さらに、ネイティブ中央処理ユニット712は、メモリ714に記憶されている命令およびコードを実行する。ある特定の例では、中央処理ユニットは、メモリ714に記憶されているエミュレータコード722を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートすることを可能にする。例えば、エミュレータコード722は、PowerPCプロセッサ、HP Superdomeサーバなどのz/Architectureハードウェアアーキテクチャ以外のアーキテクチャに基づくマシンが、z/Architectureハードウェアアーキテクチャをエミュレートし、z/Architectureハードウェアアーキテクチャに基づき開発されたソフトウェアおよび命令を実行することを可能にする。
【0083】
エミュレータコード722に関連するさらなる詳細については、
図7Bを参照して説明する。メモリ714に記憶されたゲスト命令730は、ネイティブCPU712のアーキテクチャ以外のアーキテクチャで実行されるように開発されたソフトウェア命令(例えば、機械命令に相関する)を含む。例えば、ゲスト命令730は、z/Architectureハードウェアアーキテクチャに基づくプロセッサ上で実行するように設計されていたかもしれないが、代わりに、例えばIntel Itanium IIプロセッサであるかもしれないネイティブCPU712上でエミュレートされている。一例では、エミュレータコード722は、メモリ714から1または複数のゲスト命令730を取得し、任意選択で取得した命令に対してローカルバッファリングを提供する命令フェッチルーチン732を含む。また、取得されたゲスト命令のタイプを決定し、ゲスト命令を1または複数の対応するネイティブ命令736に翻訳する命令翻訳ルーチン734を含む。この翻訳は、例えば、ゲスト命令によって実行される機能を特定することと、その機能を実行するネイティブ命令を選択することとを含む。
【0084】
さらに、エミュレータコード722は、ネイティブ命令を実行させるエミュレーション制御ルーチン740を含む。エミュレーション制御ルーチン740は、ネイティブCPU712に、1または複数の以前に取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、かかる実行の終了時に、次のゲスト命令またはゲスト命令群の取得をエミュレートするために命令フェッチルーチンに制御を戻すことがある。ネイティブ命令736の実行は、メモリ714からレジスタにデータをロードすること、レジスタからメモリにデータを戻して記憶すること、または翻訳ルーチンによって決定されるように、あるタイプの算術演算または論理演算を実行することを含み得る。
【0085】
各ルーチンは、例えば、ソフトウェアで実装され、メモリに記憶され、ネイティブ中央処理ユニット712によって実行される。他の例では、ルーチンまたは操作の1または複数は、ファームウェア、ハードウェア、ソフトウェアまたはそれらのいくつかの組み合わせで実装される。エミュレートされたプロセッサのレジスタは、ネイティブCPUのレジスタ20を使用して、またはメモリ714内のロケーションを使用することによってエミュレートされる場合がある。実施形態では、ゲスト命令30、ネイティブ命令36およびエミュレータコード722は、同じメモリに存在してもよいし、異なるメモリデバイスの間に分散されてもよい。
【0086】
さらに、一実施形態では、コンピューティング環境710は、メモリ714に結合された1または複数の補助プロセッサ715を含む。1または複数の補助プロセッサは、あるアーキテクチャで定義され、別のアーキテクチャをエミュレートするように構成される。例えば、補助プロセッサは、エミュレートされるアーキテクチャのゲストコマンドを取得し、ゲストコマンドを一方のアーキテクチャのネイティブコマンドに翻訳し、ネイティブコマンドを実行する。
【0087】
上述したコンピューティング環境は、使用することができるコンピューティング環境の例に過ぎない。非パーティション化環境、パーティション化環境、クラウド環境、もしくはエミュレートされた環境、またはその組み合わせを含むがこれらに限定されない他の環境を使用することができ、実施形態は、任意の1つの環境に限定されるものではない。コンピューティング環境の様々な例が本明細書に記載されているが、本発明の1または複数の態様は、多くのタイプの環境と共に使用され得る。本明細書で提供されるコンピューティング環境は、例に過ぎない。
【0088】
各コンピューティング環境は、本発明の1または複数の態様を含むように構成することが可能である。例えば、各々は、本発明の1または複数の態様に従って、ハイブリッドセキュリティ証明書機能のために構成されてよい。
【0089】
本明細書では様々な実施形態が説明されているが、本発明の態様の精神から逸脱することなく、多くの変更および他の実施形態が可能である。特に矛盾しない限り、本明細書に記載された各態様または特徴、およびその変形は、他の任意の態様または特徴と組み合わせ可能であることに留意されたい。
【0090】
1または複数の態様は、クラウドコンピューティングに関連し得る。
【0091】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
【0092】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0093】
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0094】
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0095】
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0096】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0097】
図8を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示されるように、クラウドコンピューティング環境50は1または複数のクラウドコンピューティングノード52を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタント(PDA)もしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード52は互いに通信することができる。ノード52は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1または複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、
図8に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード52およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0098】
図9を参照すると、クラウドコンピューティング環境50(
図8)によって提供される機能的抽象化モデルレイヤのセットが示されている。なお、
図9に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0099】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0100】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0101】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0102】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、ハイブリッドセキュリティ証明書処理96が含まれる。
【0103】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0104】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0105】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0106】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0107】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0108】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読記憶媒体が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
【0109】
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1または複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
【0110】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1または複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0111】
上記に加えて、1または複数の態様は、顧客環境の管理を提供するサービスプロバイダによって提供(provide)、提供(offer)、配備、管理、サービスなどがなされる場合がある。例えば、サービスプロバイダは、1または複数の顧客のために1または複数の態様を実行するコンピュータコードもしくはコンピュータインフラストラクチャまたはその両方を作成、維持、サポートなどを行うことができる。その見返りとして、サービスプロバイダは、例として、サブスクリプションもしくは料金契約またはその両方に基づいて、顧客から支払いを受けることができる。加えてまたは代替的に、サービスプロバイダは、1または複数の第三者への広告コンテンツの販売から支払いを受けることができる。
【0112】
一態様では、アプリケーションは、1または複数の実施形態を実行するために配備され得る。一例として、アプリケーションの配備は、1または複数の実施形態を実行するために動作可能なコンピュータインフラストラクチャを提供することを含む。
【0113】
さらなる態様として、コンピュータ可読コードをコンピューティングシステムに統合することを含むコンピューティングインフラストラクチャが展開される場合があり、この場合、コンピューティングシステムと組み合わせたコードは、1または複数の実施形態を実行することが可能である。
【0114】
さらに別の態様として、コンピュータ可読コードをコンピュータシステムに統合することを含む、コンピューティングインフラストラクチャを統合するためのプロセスが提供され得る。コンピュータシステムは、コンピュータ可読媒体を含み、コンピュータ媒体は、1または複数の実施形態を含んでいる。コンピュータシステムと組み合わせたコードは、1または複数の実施形態を実行することが可能である。
【0115】
以上、様々な実施形態について説明したが、これらは例示に過ぎない。例えば、他のアーキテクチャのコンピューティング環境を使用して、1または複数の実施形態を組み込んで使用することができる。さらに、異なる命令、コマンド、または操作が使用されることがある。さらに、異なるタイプの表示またはタグを指定することができる。多くの変更が可能である。
【0116】
本明細書では様々な実施形態が説明されている。さらに、本発明の態様の精神から逸脱することなく、多くの変更が可能である。特に矛盾しない限り、本明細書に記載された各態様または特徴、およびその変形は、他の任意の態様または特徴と組み合わせ可能であることに留意されたい。
【0117】
さらに、他のタイプのコンピューティング環境も恩恵を受け、使用することができる。一例として、プログラムコードの記憶もしくは実行またはその両方に適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に結合された少なくとも2つのプロセッサを含むものが使用可能である。メモリ要素は、例えば、プログラムコードの実際の実行中に採用されるローカルメモリ、バルクストレージ、および実行中にバルクストレージからコードを取得しなければならない回数を減らすために、少なくとも一部のプログラムコードの一時的なストレージを提供するキャッシュメモリを含む。
【0118】
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティングデバイス、DASD、テープ、CD、DVD、サムドライブおよび他のメモリメディアなどを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを通してシステムに結合されることができる。ネットワークアダプタも、データ処理システムが、介在するプライベートまたはパブリックネットワークを介して他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されることを可能にするために、システムに結合され得る。モデム、ケーブルモデム、およびイーサネットカードは、ネットワークアダプタの利用可能なタイプのほんの一部である。
【0119】
本明細書で用いる用語は、特定の実施形態を説明するためのものに過ぎず、限定することを意図したものではない。本明細書で使用される場合、単数形「ある/1つの/一の(a)」、「ある/1つの/一の(an)」および「その/当該(the)」は、文脈からそうではないことが明らかでない限り、複数形を含むことを意図している。本明細書で使用される場合、「含む(comprises)」もしくは「含む(comprising)」またはその両方の用語は、記載された特徴、整数、工程、動作、要素もしくはコンポーネントまたはこれらの組み合わせの存在を特定するものであるが、1つ以上の他の特徴、整数、工程、動作、要素、コンポーネントもしくはそれらのグループまたはこれらの組み合わせが存在したり、追加されたりすることを排除するものではないことがさらに理解されるであろう。
【0120】
以下の特許請求の範囲におけるすべての手段またはステッププラスファンクション要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求項の要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことを意図している。1または複数の実施形態の説明は、例示および説明の目的で提示されたが、網羅的であること、または開示された形態に限定されることを意図していない。多くの修正および変形が、当業者には明らかであろう。実施形態は、様々な態様および実用化を最もよく説明するために、また、当業者が、企図される特定の用途に適するように種々の変更を伴う種々の様々な実施形態を理解できるように、選択および説明されたものである。
【国際調査報告】