IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許-キー管理システム、方法、プログラム 図1
  • 特許-キー管理システム、方法、プログラム 図2
  • 特許-キー管理システム、方法、プログラム 図3
  • 特許-キー管理システム、方法、プログラム 図4
  • 特許-キー管理システム、方法、プログラム 図5
  • 特許-キー管理システム、方法、プログラム 図6
  • 特許-キー管理システム、方法、プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-15
(45)【発行日】2024-08-23
(54)【発明の名称】キー管理システム、方法、プログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240816BHJP
   H04L 9/10 20060101ALI20240816BHJP
【FI】
H04L9/32 200E
H04L9/10 A
【請求項の数】 18
(21)【出願番号】P 2022554267
(86)(22)【出願日】2021-03-17
(65)【公表番号】
(43)【公表日】2023-06-23
(86)【国際出願番号】 IB2021052201
(87)【国際公開番号】W WO2021205257
(87)【国際公開日】2021-10-14
【審査請求日】2023-08-10
(31)【優先権主張番号】16/843,980
(32)【優先日】2020-04-09
(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)【参考文献】
【文献】米国特許出願公開第2019/0342079(US,A1)
【文献】米国特許出願公開第2018/0176193(US,A1)
【文献】特表2020-502896(JP,A)
【文献】特表2019-532559(JP,A)
【文献】米国特許出願公開第2018/0063100(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
H04L 9/10
(57)【特許請求の範囲】
【請求項1】
暗号キーおよび前記暗号キーと関連付けられた属性を記憶することが可能なキー管理システムであって、前記キー管理システムは、キー管理サブシステムと暗号コプロセッサを含み、
暗号キーを識別するキー識別子を前記暗号コプロセッサに送信することと、
前記キー識別子を送信することに応答して、前記暗号コプロセッサから属性の第1のセットを受信することであって、前記属性の第1のセットにある1つまたは複数の属性は前記暗号キーと関連付けられており、前記暗号コプロセッサのキー属性ストレージから生じている、前記受信することと、
前記属性の第1のセットおよび属性の第2のセットを属性の第1のシーケンスにシリアル化することであって、前記属性の第2のセットは、前記キー管理サブシステムのキー属性ストレージによって記憶される1セットにある、1つまたは複数の属性である、前記シリアル化することと、
前記属性の第1のシーケンスを属性フレーム内に記憶することであって、前記属性の第2のセットにある前記1つまたは複数の属性は、前記暗号キーと関連付けられており、前記属性の第2のセットは、前記属性の第1のセットとは異なっている、前記記憶することと、
前記属性フレームからの前記属性の第1のシーケンスを前記暗号コプロセッサに送信することと、
前記属性の第1のシーケンスを送信することに応答して、前記属性の第1のシーケンスから計算した第1のメッセージ認証コード(MAC)を前記暗号コプロセッサから受信することと、
前記第1のMACまたは前記第1のMACから得られた値を基準値と比較することによって前記属性フレームを検証することと
を実行するように構成される、キー管理システム。
【請求項2】
前記システムは、前記暗号コプロセッサに前記第1のMACを反復して計算させるために、前記属性の第1のシーケンスからの前記1つまたは複数の属性を連続コールで前記暗号コプロセッサに送信するようにさらに構成される、請求項1に記載のキー管理システム。
【請求項3】
前記システムは、前記属性フレーム内にプレースホルダMACフィールドを構築し、前記構築したプレースホルダMACフィールド内に前記暗号コプロセッサによって反復して計算され、前記暗号コプロセッサから受信した前記第1のMACを記憶するようにさらに構成される、請求項1に記載のキー管理システム。
【請求項4】
前記システムは、前記属性フレーム内にプレースホルダ暗号ソルト・フィールドを構築し、前記属性の第1のシーケンスを送信することに応答して、前記暗号コプロセッサから前記第1のMACを計算するための入力として前記暗号コプロセッサによって生成された暗号ソルトを受信し、前記プレースホルダ暗号ソルト・フィールド内に前記暗号ソルトを記憶するようにさらに構成される、請求項1に記載のキー管理システム。
【請求項5】
前記システムは、正規化スキームに従って前記属性の第1のセットおよび前記属性の第2のセットを前記属性の第1のシーケンスにシリアル化し、前記属性の第1シーケンス内のその順序に従って前記属性の第1のシーケンスからの前記1つまたは複数の属性を前記暗号コプロセッサに送信するようにさらに構成される、請求項1に記載のキー管理システム。
【請求項6】
前記正規化スキームは、シリアル化されている前記1つまたは複数の属性の特性に依存しており、前記特性は、属性値および属性タイプから成る群から選択される、請求項5に記載のキー管理システム。
【請求項7】
前記属性フレームを検証することは、
前記属性フレームからの前記属性の第1のシーケンスを前記暗号コプロセッサに再度送信することと、
前記第1のMACから第1の暗号ハッシュを計算することと、
前記属性の第1のシーケンスを再度送信することに応答して、前記基準値として第2の暗号ハッシュを前記暗号コプロセッサから受信することと、
前記属性フレームを検証するために、前記第1の暗号ハッシュを前記第2の暗号ハッシュと比較することとを含む、請求項1に記載のキー管理システム。
【請求項8】
前記属性フレームを検証することは、
前記キー識別子を前記暗号コプロセッサに再度送信することと、
前記キー識別子を送信することに応答して、前記暗号コプロセッサから属性の第3のセットを受信することであって、前記属性の第3のセットにある1つまたは複数の属性は前記暗号キーと関連付けられており、前記暗号コプロセッサの前記キー属性ストレージから生じている、前記受信することと、
前記属性の第1のシーケンスからの属性のサブセットが前記属性の第3のセットに一致することを確認し、前記サブセットの確認が成功しなかった場合、前記属性フレームの検証を停止することとをさらに含む、請求項7に記載のキー管理システム。
【請求項9】
キー管理システムを作動させるための方法であって、前記キー管理システムはキー管理サブシステムと暗号コプロセッサを含み、前記方法が、
暗号キーを識別するキー識別子を前記暗号コプロセッサに送信することと、
前記キー識別子を送信することに応答して、前記暗号コプロセッサから属性の第1のセットを受信することであって、前記属性の第1のセットにある1つまたは複数の属性は、前記暗号キーと関連付けられており、前記暗号コプロセッサのキー属性ストレージから生じている、前記受信することと、
前記属性の第1のセットおよび属性の第2のセットを属性の第1のシーケンスにシリアル化することであって、前記属性の第2のセットは、前記キー管理サブシステムのキー属性ストレージによって記憶される1セットにある、1つまたは複数の属性である、前記シリアル化することと、
属性フレーム内に前記属性の第1のシーケンスを記憶することであって、前記属性の第2のセットからの1つまたは複数の属性は、前記暗号キーと関連付けられており、前記属性の第2のセットは、前記属性の第1のセットとは異なる、前記記憶することと、
前記属性フレームからの前記属性の第1のシーケンスを前記暗号コプロセッサに送信することと、
前記属性の第1のシーケンスを送信することに応答して、前記属性の第1のシーケンスから計算した第1のMACを前記暗号コプロセッサから受信することと、
前記第1のMACまたは前記第1のMACから得られた値を基準値と比較することによって前記属性フレームを検証することと
を含む、方法。
【請求項10】
前記暗号コプロセッサに前記第1のMACを反復して計算させるために、前記属性の第1のシーケンスからの前記1つまたは複数の属性を連続コールで前記暗号コプロセッサに送信するようにさらに構成される、請求項に記載の方法。
【請求項11】
前記属性フレーム内にプレースホルダMACフィールドを構築し、前記構築したプレースホルダMACフィールド内に前記暗号コプロセッサによって反復して計算され、前記暗号コプロセッサから受信した前記第1のMACを記憶するようにさらに構成される、請求項に記載の方法。
【請求項12】
前記属性フレーム内にプレースホルダ暗号ソルト・フィールドを構築し、前記属性の第1のシーケンスを送信することに応答して、前記暗号コプロセッサから前記第1のMACを計算するための入力として前記暗号コプロセッサによって生成された暗号ソルトを受信し、前記プレースホルダ暗号ソルト・フィールド内に前記暗号ソルトを記憶するようにさらに構成される、請求項に記載の方法。
【請求項13】
正規化スキームに従って前記属性の第1のセットおよび前記属性の第2のセットを前記属性の第1のシーケンスにシリアル化し、前記属性のシーケンス内のその順序に従って前記属性の第1のシーケンスからの前記1つまたは複数の属性を前記暗号コプロセッサに送信するようにさらに構成される、請求項に記載の方法。
【請求項14】
前記正規化スキームは、シリアル化されている前記1つまたは複数の属性の特性に依存しており、前記特性は、属性値および属性タイプから成る群から選択される、請求項13に記載の方法。
【請求項15】
前記属性フレームを検証することは、
前記属性フレームからの前記属性の第1のシーケンスを前記暗号コプロセッサに再度送信することと、
前記第1のMACから第1の暗号ハッシュを計算することと、
前記属性の第1のシーケンスを再度送信することに応答して、前記基準値として第2の暗号ハッシュを前記暗号コプロセッサから受信することと、
前記属性フレームを検証するために、前記第1の暗号ハッシュを前記第2の暗号ハッシュと比較することとを含む、請求項に記載の方法。
【請求項16】
前記属性フレームを検証することは、
前記キー識別子を前記暗号コプロセッサに再度送信することと、
前記キー識別子を送信することに応答して、前記暗号コプロセッサから属性の第3のセットを受信することであって、前記属性の第3のセットにある1つまたは複数の属性は前記暗号キーと関連付けられており、前記暗号コプロセッサの前記キー属性ストレージから生じている、前記受信することと、
前記属性の第1のシーケンスからの属性のサブセットが前記属性の第3のセットに一致することを確認し、前記サブセットの確認が成功しなかった場合、前記属性フレームの検証を停止することとをさらに含む、請求項15に記載の方法。
【請求項17】
請求項9~16の何れか1項に記載の方法をコンピュータに実行させる、コンピュータ・プログラム
【請求項18】
請求項17に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記憶した、記憶媒体
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に暗号キーに関し、より詳細には、暗号キーおよび暗号キーと関連付けられた属性を記憶することが可能な暗号コプロセッサを利用するキー管理システムに関する。
【背景技術】
【0002】
サーバセントリック暗号サービスは、ハードウェア保護された安全なストレージにキーを記憶するために暗号コプロセッサに依拠している。暗号コプロセッサは典型的には、データを暗号によって暗号化し、データに署名するなど種々の暗号化機能を実行することが可能である。暗号コプロセッサは、高い安全性を提供するが、様々な制約があり、例えば、データ記憶に関して容量が制限される、特殊化されるが機能の範囲が限定されるなどである。
【0003】
キー管理システムは、暗号キーの記憶および管理を提供する。例えば、キー管理システムは、暗号キーの生成、交換、記憶、使用、破壊および取り替えを可能にする。キー管理システムは、多数の暗号キーを記憶し得る。各暗号キーと共に、キー管理システムはまた、暗号キーに関連する種々の属性も記憶し得る。例えば、これらの属性は、いつキーが作成されたか、どの暗号操作に対してそれが使用されるか、およびいつキーの期限が切れるかを特定し得る。
【発明の概要】
【0004】
本発明の実施形態は、キー管理システムおよび暗号キーと関連付けられた属性を提供するための手法を含む。一実施形態において、暗号キーを識別するキー識別子が、暗号コプロセッサに送信される。属性の第1のセットが、暗号コプロセッサから受信される。属性の第1のセットにある1つまたは複数の属性は、暗号キーと関連付けられており、暗号コプロセッサにおけるキー属性ストレージから生じる。属性の第1のセットおよび属性の第2のセットは、属性の第1のシーケンスにシリアル化(serialized)される。属性の第1のシーケンスは、属性フレームに記憶される。属性の第2のセットにある1つまたは複数の属性は、暗号キーと関連付けられており、キー管理システムのキー属性ストレージから生じる。属性の第2のセットは、属性の第1のセットとは異なる。属性の第1のシーケンスは、暗号コプロセッサに送信される。属性の第1のシーケンスから計算された第1のメッセージ認証コード(MAC)が暗号コプロセッサから受信される。属性フレームは、第1のMACまたは第1のMACから得られた値を基準値と比較することによって検証される。
【0005】
以下で、実施形態を、単なる一例として、図面を参照してより詳細に説明する。
【図面の簡単な説明】
【0006】
図1】本発明の一実施形態による、キー管理システムおよび暗号コプロセッサのブロック図である。
図2】本発明の一実施形態による、キー管理システムの動作を詳細に記載するフローチャートである。
図3】本発明の一実施形態による、キー管理システムが検証のためにパブリック・ホワイトリスト・サービス(public whitelist service)を例示的に使用する、キー管理システムの動作を詳細に記載するフローチャートである。
図4】本発明の一実施形態による、キー管理システムが検証のために暗号コプロセッサを使用する、キー管理システムの動作を詳細に記載するフローチャートである。
図5】本発明の一実施形態による、暗号コプロセッサの動作を詳細に記載するフローチャートである。
図6】本発明の一実施形態による、検証中の暗号コプロセッサの動作を詳細に記載するフローチャートである。
図7】本発明の一実施形態による、図1のコンピューティング環境の構成要素のブロック図である。
【発明を実施するための形態】
【0007】
本発明の種々の実施形態の記載は、例示の目的で提示されているが、包括的である、または開示される実施形態に限定されることは意図されない。多くの修正および変形が、記載される実施形態の思想および範囲から逸脱することなく、当業者には明白であろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途または市場で見られる技術に対する技術的な改善を最適に説明するように、または他の当業者が本明細書に開示される実施形態を理解することを可能にするために選択された。
【0008】
キー管理システムは、暗号キーおよび暗号キーと関連付けられた属性を記憶することが可能である。暗号キーと関連付けられた一セットの属性は、変更する、または拡張する必要がある場合がある。1つの暗号キーが、異なるセットの属性と関連して使用されてもよい。一例として、多数の公開キー証明書が、ばらばらな証明書チェーンおよび完全に無関係の属性を有する同じ非対称のキーに対して合法的に発行されてもよい。別の例として、暗号キーと関連付けられた一セットの属性は、経時的に属性寿命の進展を経験する場合がある。例えば、証明書の移行および取り消しは、暗号キーと関連付けられたメタデータを拡張してもよい。したがって、暗号キーと関連付けられた一セットの属性は、多数のデバイスにわたって一貫していることを確実にする必要があり得る。そうでなければ、暗号キーは、予測しない、または望ましくない方法で使用される可能性がり、これは安全性の問題を引き起こす可能性がある。
【0009】
暗号コプロセッサは、暗号キーと関連付けられた少数の属性を安全に記憶することができる。これらの属性の完全性は、暗号コプロセッサによって保護される。キー管理システムは、多くの属性を記憶することができるが、暗号コプロセッサは、大きな属性セットを記憶することはできない。暗号キーと関連付けられた全ての属性の完全性を保証するために、キー管理システムはそれ故、暗号コプロセッサ内に全ての属性を記憶することができない。加えて、暗号コプロセッサには通常、広い範囲の属性を解釈するためのコンテキストがなく、それ故、多くの属性を実際に使用することができない。
【0010】
本発明によるキー管理システムは、暗号キーを識別するキー識別子を暗号コプロセッサに送信する。実施形態によれば、キー識別子は、キーおよび暗号キーと関連付けられた属性の特定のセットを識別するのに使用される。暗号コプロセッサにキー識別子を送信するのに応答して、キー管理システムは、暗号コプロセッサから属性の第1のセットを受信し、属性の第1のセットにある属性は、暗号キーと関連付けられている。実施形態によれば、属性の第1のセットからの属性は、暗号コプロセッサにとって既知の属性である、または暗号コプロセッサが内部に記憶する属性である、あるいはその両方である。
【0011】
一実施形態では、キー管理システムは、属性の第1のセットおよび属性の第2のセットを、属性のシーケンスにシリアル化し、属性フレーム内に属性のシーケンスを記憶する。実施形態によれば、属性フレームは、多数の属性をその後の参照のために保持し、その後の時点で属性セットを検証することを可能にする。属性の第2のセットは、キー管理システムのキー属性ストレージによって記憶される一セットの属性である。実施形態によれば、キー属性ストレージは、キー管理システムのシステム・メモリまたはデータベースであってよい。一実施形態によれば、属性の第1のセットは、属性の第2のセットより少ない数の属性を含む。別の実施形態によれば、属性の第1のセットは、属性の第2のセットのサブセットである。これは、暗号コプロセッサがキー管理システムほど多くの属性を記憶することができないという事実に起因し得る。実施形態によれば、属性のシーケンスからの属性は、好適なフォーマットで属性フレーム内に記憶され得る。実施形態によれば、属性のシーケンスは、ブール、ビットマスク、整数、アレイおよび可変長コンテナなどのデータ・フィールドを含んでよい。
【0012】
属性のシーケンスは、属性の第1のセットおよび属性の第2のセットをシリアル化することによって獲得される。属性のシリアライゼーションは、属性の第1のセットからの属性および属性の第2のセットからの属性が特定の順序にされることを要求し得る。実施形態によれば、属性の第1のセットおよび属性の第2のセットの両方に含まれる属性は、属性のシーケンスが構築されるとき、一度だけ属性のシーケンスに挿入される。属性のシーケンスは、キー管理システムからの属性およびキー識別子と関連付けられた暗号コプロセッサからの属性を含む。
【0013】
キー管理システムは、属性のシーケンスを暗号コプロセッサに送信する。属性のシーケンスを暗号コプロセッサに送信するのに応答して、キー管理システムは、属性のシーケンスから計算した第1のメッセージ認証コード(MAC)を受信する。第1のMACは、暗号コプロセッサによって計算されている。MACは、データの完全性の検証を可能にする。属性のシーケンスの完全性を検証するために、キー管理システムは、第1のMACまたは第1のMACから得られた値を基準値と比較する。第1のMACまたは第1のMACから得られた値が基準値と等しい場合、属性のシーケンスの完全性の検証は成功している。
【0014】
本発明の実施形態によれば、基準値は、外部データベース内に記憶され、キー管理システムは、外部データベースから基準値にアクセスするように構成される。一実施形態によれば、外部データベースは、インターネット接続を介してアクセスすることができるパブリック・ホワイトリスト・サービス内に位置する。別の実施形態によれば、基準値は、キー管理システム自体に記憶されてもよい。別の実施形態によれば、キー管理システムは、基準値を暗号コプロセッサによって計算させてもよい。
【0015】
キー管理システムは、暗号コプロセッサ内に安全に記憶することができない属性の大きなセットの完全性を検証するために暗号コプロセッサを利用することができるという利点を有し得る。一実施形態において、一セットの属性の正確なバージョンが使用されているかどうかの判定がなされる。キー管理システムおよび暗号コプロセッサ内に含まれる属性を独自に識別する第1のMACが取得される。その後の参照のために使用することができる、暗号キーに関するデータを含む属性フレームが構築される。したがって、暗号キーと関連して使用されている属性が、多数のエンティティにわたって一貫していることを確立することができる。実施形態によれば、キー管理システムは、その後の参照のために属性フレームを記憶してもよい。
【0016】
一実施形態によれば、キー管理システムは、暗号コプロセッサに第1のMACを反復して計算させるために、属性のシーケンスからの属性を連続コールで暗号コプロセッサに送信するようにさらに構成される。これは、暗号コプロセッサが、コプロセッサの制約に一致する限られたサイズの別個のコールによってアクセスされることを可能にする。属性のシーケンスからの属性は、それらが暗号コプロセッサによって処理することができるように連続して送信される。暗号コプロセッサは、それが属性を受信すると、第1のMACを段階的に計算する。全ての属性が受信された後、計算は完了し、暗号コプロセッサは、第1のMACをキー管理システムに送信し、キー管理システムは、第1のMACを受信する。
【0017】
一実施形態によれば、キー管理システムは、属性フレーム内にプレースホルダMACフィールドを構築し、プレースホルダ内に暗号コプロセッサから受信した第1のMACを記憶するようにさらに構成される。このような方式でMACを記憶することは、属性のシーケンスからの属性の完全性が第1のMACを利用して検証されるように、属性フレームをその後の時点で参照のために使用することができるという利点を有する。別の実施形態によれば、キー管理システムはまた、属性フレーム内に属性キーも記憶する。属性キーを記憶することは、属性フレーム内に記憶される属性のシーケンスおよび第1のMACがどの属性キーと関連付けられるかを迅速に判定することができるという利点を有する。
【0018】
別の実施形態によれば、キー管理システムは、属性フレーム内にプレースホルダ暗号ソルト・フィールドを構築し、属性のシーケンスを送信することに応答して暗号コプロセッサから暗号ソルトを受信し、プレースホルダ内に暗号ソルトを記憶するようにさらに構成される。実施形態によれば、暗号ソルトは、第1のMACを生成するために使用されており、キー管理システムによって受信され、属性フレーム内のプレースホルダ・フィールドに記憶される。暗号ソルトは、属性のシーケンスの内容が第1のMACから容易に推論することができないことを確実にする。追加として、ソルトを使用することは、属性のシーケンスを知る悪意のあるエンティティが、属性のその既知のシーケンスから直接計算したMACを取得するのを阻止し、これは、システムを危険に曝すのを阻止し得る。
【0019】
実施形態によれば、暗号ソルトは、第1のMACを計算し、第1のMACの結果を変更するために暗号コプロセッサによって使用される。暗号ソルトが使用されない場合、アタッカーは、属性の種々のシーケンスおよび対応するMACを含むテーブルを生成する可能性がある。MACが与えられると、アタッカーはこの場合、テーブルを使用して属性の対応するシーケンスを探し出す可能性がある。暗号ソルトが第1のMACの計算に使用される場合、このタイプのアタックは、おそらくより少なくなる。一実施形態によれば、暗号ソルトは、暗号コプロセッサによってランダムに生成される。暗号ソルトが第1のMACを計算するのに使用される実施形態では、ソルトはまた、属性の所与のシーケンスが第1のMACに対応するかどうかを検証するためにも必要とされる。実施形態によれば、暗号ソルトはしたがって、その後の参照のために属性フレームに記憶される。
【0020】
別の実施形態によれば、キー管理システムは、正規化スキームに従って属性の第1のセットおよび属性の第2のセットをシリアル化し、属性のシーケンス内のその順序に従って属性のシーケンスからの属性を暗号コプロセッサに送信するようにさらに構成される。正規化スキームは、属性の第1のセットおよび属性の第2のセットがシリアライゼーション中に一貫した方式で順序付けされることを確実にするという利点を有する。始めに、属性の第1のセットおよび属性の第2のセットにある属性は必ずしも、異なるデバイスにわたって同じであることを保証することができる固有の順序付けを有する必要はない。例えば、属性の第1のセットからの属性は、属性が暗号コプロセッサのキー属性ストレージ内に記憶される順序で、暗号コプロセッサによってキー管理システムに送信されてもよい。同様に、属性の第2のセットからの属性は、任意の順序でキー管理システムに記憶され得る。しかしながら同じMACが常に、属性の第1のセットおよび属性の第2のセットから生じる属性から生成されることを確実にするために、属性は、一貫した順序で暗号コプロセッサに提供される必要がある。属性の順序を変えることは、異なる第1のMACが生成されることになる。
【0021】
正規化スキームを使用することは、それが常に、属性の第1のセットおよび属性の第2のセットからの属性を同じ順序にするという利点を有する。一実施形態によれば、属性のシーケンス内の属性の順序は、変えることはできない。一貫した順序付けが実施されることから、異なるキー管理システムは、同じ正規化スキームを採用するという条件で、属性の同一のシーケンスを生成することになる。これは、同じ第1のMACが属性のセットを合致させるために常に計算されることを確実にする。
【0022】
一実施形態によれば、正規化スキームは、シリアル化されている属性の特性に依存しており、特性は、属性値および属性タイプから成る群から選択される。属性値は、属性の内容を示す。一例では、ゼロのみを含む属性は、属性のシーケンスの始まりまたは終わりに配置され得る。属性タイプは、属性内に記憶される属性データのタイプを示す。例えば、可能な属性タイプは、キーを独自に識別することを可能にするキー識別タイプ、キーが割り当てられるエンティティを識別するキー・エンティティ・タイプ、シークレット・キー、プライベート・キーまたはパブリック・キーなどの暗号キー・タイプ、およびキーをどの暗号アルゴリズムに使用することができるかを明言するキー利用タイプを含んでよい。属性は、その属性タイプに従って所定の順序付けにされ得る。この実施形態は、属性を順序付けするための基準が提供されるという利点を有する。一実施形態によれば、属性は、そのタイプとその値の両方に従って所定の順序にされる。別の実施形態によれば、属性はまた、他の基準に従って順序付けされてもよい。
【0023】
一実施形態によれば、キー管理システムによって属性フレームを検証することは、属性フレームからの属性のシーケンスを暗号コプロセッサに再度送信することと、第1のMACから第1の暗号ハッシュを計算することと、暗号コプロセッサから基準値として第2の暗号ハッシュを受信することと、属性フレームを検証するために第1の暗号ハッシュと第2の暗号ハッシュと比較することとを含む。この実施形態によれば、第1の暗号ハッシュを計算することによって第1のMACから値が得られる。第2の暗号ハッシュは、キー管理システムが暗号コプロセッサから受信しており、基準値として使用される。第1の暗号ハッシュおよび第2の暗号ハッシュが合致する場合、検証が成功である。この実施形態は、基準値が暗号コプロセッサによって計算され、外部データベースまたは別の外部ソースから取得する必要がないという利点を有する。2つのMACの代わりに、第1の暗号ハッシュおよび第2の暗号ハッシュが互いに比較されるという事実は、安全性の利点を有してよく、すなわち暗号コプロセッサが第2の暗号ハッシュの代わりにMACを返した場合、暗号コプロセッサは、署名オラクル(signing oracle)として使用することができる。
【0024】
一実施形態によれば、キー管理システムは、検証が失敗した場合、暗号コプロセッサから失敗通知を受信するように構成される。別の実施形態によれば、キー管理システムは、キー管理システムが属性フレームからの属性のシーケンスを暗号コプロセッサに再度送信するのに応答して第2の暗号ハッシュを受け取らなかった場合、検証は失敗したと評価するように構成される。これは、キー管理システムがその通信プロトコルのコンテキストにおける検証を必要とする場合、すなわちその通信パートナーからの有効な肯定応答を必要とする場合であってもよい。この場合、成功通知がない場合でも失敗とみなす。
【0025】
一実施形態によれば、キー管理システムによって属性フレームを検証することは、キー識別子を暗号コプロセッサに再度送信することと、暗号コプロセッサから属性の第3のセットを受信することであって、属性の第3のセットにある属性は暗号キーと関連付けられていることと、属性のシーケンスからの属性のサブセットが属性の第3のセットに一致することを確認し、サブセットの確認が成功しなかった場合、属性フレームの検証を停止することとをさらに含む。これは、検証プロセスが、属性の第3のセットが属性のシーケンスからの属性のサブセットに一致しないことが確立された場合、検証プロセスを途中で中止することができるという利点を有する。事実上、これは、キー管理システムが、暗号コプロセッサとは異なる、暗号キーに関連した属性を記憶することを意味する。
【0026】
一実施形態によれば、検証は、属性フレームからの属性のシーケンスを暗号コプロセッサに再度送信する前に行われる。属性の第3のセットは、暗号コプロセッサが暗号キーに関連して記憶する一セットの属性である。別の実施形態によれば、属性のシーケンスからの属性のサブセットは、暗号コプロセッサからキー管理システムによってあらかじめ受信された属性の第1のセットと同一である。別の実施形態によれば、属性のシーケンスからの属性のサブセットは、属性の第1のセットからの属性の少なくとも一部を含む。
【0027】
一実施形態によれば、キー管理システムは、属性のサブセットからの属性が、属性の第3のセットからの属性と等しいかどうかをチェックすることによって検証を行う。別の実施形態によれば、キー管理システムは、その属性タイプに関して属性のシーケンスからの属性と合致する属性の第3のセットからの属性が、その値に関してもこれらの属性と合致するかどうかをチェックすることによって検証を行う。一実施形態によれば、暗号キーが作成された日付を指定する属性(属性タイプ)が、属性のサブセットと属性の第3のセットの両方において同一の日付(属性値)を含むかどうかが判定され得る。
【0028】
一実施形態によれば、属性値または属性タイプあるいはその両方に関して他の属性と等しい場合、属性は別の属性と一致する。本発明の実施形態によれば、属性の第3のセットからの属性は、これらの属性の間で安全性のポリシー、予測される値の範囲、または他の特性に関して違いがない場合、属性のサブセットからの属性と一致し得る。
【0029】
本発明はまた、キー管理システムを作動させるためのコンピュータ・プログラム製品にも関する。実施形態によれば、コンピュータ・プログラム製品は、上記に記載したようにキー管理システムのプロセッサに作動させるプログラム命令を有する。上記に記載したようなキー管理システムの動作の全ては、任意の組み合わせにおいてコンピュータ・プログラム製品の実施形態によって影響を受ける可能性がある。
【0030】
本発明はまた、キー管理システムを作動させるための方法にも関する。実施形態によれば、方法は、上記に記載したようなキー管理システムの動作を含む。方法の実施形態によれば、上記に記載したようなキー管理システムの動作の全ては、任意の組み合わせで行うことができる。
【0031】
本発明による暗号コプロセッサは、属性フレームを識別する、または検証する、あるいはその両方のためにキー管理システムを支援するように構成される。詳細には、暗号コプロセッサは、暗号キーを識別するキー管理システムからキー識別子を受信するように構成される。暗号コプロセッサはその後、属性の第1のセットをキー管理システムに送信し、属性の第1のセットにある属性は、暗号キーと関連付けられており、暗号コプロセッサのキー属性ストレージから生じている。属性の第1のセットからの属性は、暗号コプロセッサによって記憶される暗号キーと関連付けられた属性である。リソースの制約のために、暗号コプロセッサは、少数のキー属性しか内部に記憶しない。実施形態によれば、暗号コプロセッサは、そのキー属性ストレージからキー識別子と関連付けられた一セットの属性を選択することによって属性の第1のセットを取得する。
【0032】
属性の第1のセットを送信することに応答して、暗号コプロセッサは、キー管理システムから属性のシーケンスを受信し、属性のシーケンスは、属性の第1のセットおよび属性の第2のセットを含む。一実施形態において、属性の第2のセットからの属性は、暗号キーと関連付けられており、属性の第2のセットは、属性の第1のセットとは異なる。実施形態によれば、属性の第2のセットからの属性は、暗号コプロセッサの内部に記憶されない属性である。代わりに、これらの属性は、キー管理システムの内部ストレージから生じてよい。暗号コプロセッサは、属性のシーケンスから第1のMACを計算し、第1のMACをキー管理システムに送信する。暗号コプロセッサは、キー管理システムが第1のMACを取得することを可能にし、キー管理システムは、その後、これを識別する、または検証する、あるいはその両方の目的で使用することができるという利点を有する。加えて、考察した通信フローは、それが、属性の第1のセットをキー管理システムに送信し、これは、暗号コプロセッサにとって既知の属性に関する情報をキー管理システムに与えるという点において有利である。
【0033】
一実施形態によれば、暗号コプロセッサは、連続コールでキー管理システムから属性のシーケンスを受信することによって、第1のMACを繰り返し生成するようにさらに構成される。この実施形態によれば、属性のシーケンスからの属性は、暗号コプロセッサによって次々に受信される。この実施形態は、暗号コプロセッサが作動する方法、すなわち、全体として比較的少量のデータを含むコールを受信することによって作動する方法に準拠している。暗号サービス・プロバイダの一部のアプリケーション・プログラミング・インターフェース(API)は、関連する機能を提供してよく、これは、このコンテキストにおいて使用され得る。実施形態によれば、暗号コプロセッサは、段階的に属性から第1のMACを計算する。属性は、その正確な順序で受け取られることが極めて重要である場合があり、これは、属性のシーケンス内の属性の順序は、暗号コプロセッサによって受信される前、または受信されている間変更されなくてよいことを意味する。そうでなければ、属性のシーケンスから生成される第1のMACは不正確になる。
【0034】
一実施形態によれば、暗号コプロセッサは、連続コールの間、第1のMACを繰り返し生成するために必要とされるデータを記憶するように構成される。これは、暗号コプロセッサ内の最小限のメモリ要件のみで第1のMACを繰り返し生成することができるという利点を有する。一実施形態によれば、暗号コプロセッサは、属性のシーケンスから第1の属性を受信し、第1のMACを生成するための第1の計算ステップを実行する。第1の計算ステップは、第1のMACを計算するための第1の中間結果をもたらす。暗号コプロセッサはその後、第1の中間結果を記憶し、属性のシーケンスから第2の属性を受信するように進む。暗号コプロセッサはその後、第1の中間結果および第2の属性を入力として使用して、第2の計算ステップを実行し、第2の中間結果をもたらす。第2の中間結果はその後、第1の中間結果の代わりに記憶される。このプロセスは、属性のシーケンスからの最後の属性が受信されるまで継続する。暗号コプロセッサはその後、これによって第1のMACが取得される最後の計算ステップを実行する。別の実施形態によれば、暗号コプロセッサは、連続コールを介して属性のシーケンスから属性を受信し、暗号コプロセッサ内に属性の完全なシーケンスを記憶する。この実施形態によれば、暗号コプロセッサは、属性の完全なシーケンスが受信された後、属性のシーケンスから第1のMACを計算する。
【0035】
別の実施形態によれば、暗号コプロセッサは、暗号ソルトを生成し、第1のMACを計算するための入力として前記暗号ソルトを使用し、暗号ソルトをキー管理システムに送信するように構成される。上記で考察したように、MACを計算する際に暗号ソルトを使用することは安全性のレベルを高める。したがってこの実施形態は、改善されたレベルの安全性を提供するという利点を有する。暗号ソルトは、キー管理システムに送信されるが、これは、属性のシーケンスの完全性を検証するには、第1のMACのみではなく暗号ソルトも必要になるためである。一実施形態によれば、暗号ソルトは、第1のMACを計算する際、属性のシーケンスに加えられる。本発明の実施形態によれば、暗号ソルトは、別の方式でMAC計算のプロセスにおいて使用されてもよい。別の実施形態によれば、暗号ソルトはランダムに生成される。
【0036】
別の実施形態によれば、暗号コプロセッサは、属性のシーケンスからの属性のサブセットが属性の第1のセットに一致することを確認し、前記確認が失敗した場合にキー管理システムに通知するように構成される。この実施形態は、無効な入力データの場合に第1のMACを計算するプロセスを停止することができるという利点を有する。詳細には、実施形態によれば、確認は、キー管理システムおよび暗号コプロセッサが、暗号キーに関連して異なる属性で作動する場合に停止され得る。
【0037】
一実施形態によれば、属性のサブセットを確認することは、属性のシーケンスからの属性の特性を、属性の第1のセットにある属性の特性と比較することであって、属性の特性は、属性値および属性タイプから成る群から選択されることを含む。別の実施形態によれば、暗号コプロセッサは、その属性タイプに関して属性のシーケンスからの属性と合致する、属性の第1のセットからの属性が、その値に関してもこれらの属性と合致するかどうかをチェックすることによって確認を実行する。例えば、一実施形態によれば、暗号キーが作成された日付を指定する属性(属性タイプ)が、属性のサブセットと属性の第1のセットの両方において同じ日付(属性値)を記憶するかどうかが判定され得る。別の実施形態によれば、暗号コプロセッサは、属性の第1のセットからの全ての属性が属性のシーケンス内に含まれ、属性のサブセットを形成するかどうかを判定することによって確認を実行する。別の実施形態によれば、確認は、属性のシーケンスと属性の第1のセットとの間に暗号ポリシーのミスマッチがあるかどうか、または他のタイプの差異があるかどうかを判定することによって実行される。
【0038】
別の実施形態によれば、暗号コプロセッサは、属性フレームを検証するためにさらに構成され、属性フレームを検証することは、キー管理システムから属性のシーケンスを再度受信することと、属性のシーケンスから第2のMACを計算することと、第2のMACから第2の暗号ハッシュを計算することと、基準値として使用するために第2の暗号ハッシュをキー管理システムに送信することとを含む。この実施形態は、暗号コプロセッサは、基準値を提供することによって、属性フレームの検証をサポートするという利点を有する。キー管理システムは、第2の暗号ハッシュを取得するために、いかなる外部データベースにも問い合わせる必要がない。第2のMACは、属性のシーケンスから計算され、第2の暗号ハッシュは、第2のMACから計算される。第2のMACの代わりに第2の暗号ハッシュをキー管理システムに送信することは、暗号コプロセッサが署名オラクルとして使用される際の暗号コプロセッサに対する攻撃を阻止する。
【0039】
別の実施形態によれば、暗号コプロセッサは、属性フレームを検証することは、キー管理システムからキー識別子を再度受信することと、キー管理システムに属性の第3のセットを送信することであって、属性の第3のセットにある属性は、暗号キーと関連付けられており、暗号コプロセッサのキー属性ストレージから生じていることとをさらに含むように構成される。一実施形態によれば、暗号コプロセッサは、そのキー属性ストレージからキー識別子と関連付けられた一セットの属性を選択することによって属性の第3のセットを取得する。これは、キー管理システムが属性の第3のセットを取得することを可能にする。この実施形態は、暗号コプロセッサがキー管理システムに属性の第3のセットを提供するという利点を有する。キー管理システムは、属性の第3のセットを確認し、第3の属性セットに関して不一致があった場合、早めに検証プロセスを停止することができる。
【0040】
別の実施形態によれば、暗号コプロセッサは、検証中、属性のシーケンスからの属性のサブセットが属性の第3のセットと一致することを確認し、前記検証が失敗した場合にキー管理システムに通知するように構成される。検証中、暗号コプロセッサは、属性のシーケンスを受信する。一実施形態によれば、暗号コプロセッサは、その属性タイプに関して属性のシーケンスからの属性と合致する、属性の第3のセットからの属性が、その値に関してもこれらの属性と合致するかどうかを判定することによって検証を実行する。一実施形態において、暗号キーが作成された日付を指定する属性(属性タイプ)が、属性のサブセットと属性の第3のセットの両方において同じ日付(属性値)を記憶するかどうかが判定され得る。別の実施形態によれば、暗号コプロセッサは、属性の第3のセットからの全ての属性が属性のシーケンス内に含まれ、属性のサブセットを形成するかどうかを判定することによって検証を実行する。別の実施形態によれば、暗号コプロセッサは、属性の第3のセットからの属性と、属性のサブセットからの属性との間に任意の他の種類のミスマッチがあるかどうかを判定する。
【0041】
本発明はまた、暗号コプロセッサを作動させるためのコンピュータ・プログラム製品にも関する。一実施形態において、コンピュータ・プログラム製品は、上記に記載されるように暗号コプロセッサに作動させるプログラム命令を含む。実施形態によれば、上記に記載される暗号コプロセッサの全ての動作は、任意の組み合わせにおいてコンピュータ・プログラム製品によって影響を受ける可能性がある。
【0042】
本発明はまた、暗号コプロセッサを作動させるための方法にも関する。方法の実施形態は、上記に記載されるような暗号コプロセッサの動作を含む。方法の実施形態によれば、上記に記載される暗号コプロセッサの全ての動作は、任意の組み合わせで実行することができる。
【0043】
実施形態によれば、キー管理システムおよび暗号コプロセッサは、コンピュータ・システム内に位置する。実施形態によれば、キー管理システムはコンピュータ・プロセッサ上で動作してよく、コンピュータ・プロセッサは、暗号コプロセッサに接続されている。コンピュータ・プロセッサは、システム・バスを介して暗号コプロセッサに接続されてもよい。他の実施形態によれば、暗号コプロセッサは、キー管理システムからリモートで作動されてもよい。
【0044】
一実施形態において、本発明は、統合の任意の可能な技術的詳細レベルでのシステム、方法またはコンピュータ・プログラム製品あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためにコンピュータ可読プログラム命令をそこに有するコンピュータ可読記憶媒体(複数)(または1つの媒体)を含んでもよい。
【0045】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し記憶することができる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、但し限定されるものではないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイスまたは上述のものの任意の好適な組み合わせであってよい。コンピュータ可読記憶媒体のより特有の例の非網羅的なリストは、以下のポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリ・メモリ(ROM)、消去可能プログラマブル・リードオンリ・メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)ディスク、パンチカードまたはそこに記憶された命令を有する溝内の隆起した構造物などの機械的にエンコードされたデバイスならびに上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は本明細書で使用される際、電波、または他の自由に伝播する電磁波、導波路または他の伝送媒体を通って伝播する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通って伝送される電気信号など、一時的な信号それ自体であるように解釈されるべきではない。
【0046】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワークを介して、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワークあるいはその組み合わせを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組み合わせを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタカードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0047】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクトコード指向のプログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続きプログラミング言語を含めた、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的に、およびリモート・コンピュータ上で部分的に、あるいはリモート・コンピュータまたはサーバ上で全体的に実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含めた任意のタイプのネットワークを通してユーザのコンピュータに接続され得る、または(例えばインターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに対して接続が行われてもよい。一部の実施形態では、例えば、プログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含めた電子回路は、本発明の態様を実行するために、電子回路を個人専用にするためにコンピュータ・プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行してもよい。
【0048】
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書に記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実行することができることを理解されたい。
【0049】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実行するための手段を生み出すように、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実行する命令を含む製品を有するように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置または他のデバイスあるいはその組み合わせに特定の方式で機能するように命令することができるものであってもよい。
【0050】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/構造を実行するように、コンピュータ実行プロセスを生成させるべく、コンピュータ、他のプログラマブル・データ処理装置または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置または他のデバイス上で一連の動作ステップを実行させるものであってもよい実行。
【0051】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態の機構、機能および動作を例示する。この点において、フローチャートまたはブロック図における各ブロックは、モジュール、セグメントまたは命令の一部を表してよく、命令の一部は、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む。一部の代替の実装形態では、ブロックにおいて指摘される機能は、図面において指摘される順序以外で生じる場合がある。例えば、連続して示される2つのブロックは、実際には、同時に、ほぼ同時に、部分的に、または全体が一時的に重なる方式で実行される1つのステップとして達成される場合がある、あるいは、ブロックは関与する機能性に応じて時には反対の順序で実行される場合もある。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能または動作を実行する、あるいは専用のハードウェアおよびコンピュータ命令の組み合わせを実行する専用のハードウェアベース・システムによって実行することができることに留意されたい。
【0052】
本明細書に記載されるプログラムは、それらが発明の固有の実施形態において実施される用途に基づいて特定される。しかしながら、本明細書における任意の特定のプログラムの用語法は、単に簡便化のために使用され、よって発明は、そのような用語法によって特定される、または示唆される、あるいはその両方の任意の固有の用途においてのみ使用されるように限定されるべきではないことを理解されたい。
【0053】
図1は、キー管理システム150の、全体が100で示されるコンピューティング・システムのブロック図を示す。キー管理システム150は、キー管理サブシステム101および暗号コプロセッサ102を含む。
【0054】
一例として、キー管理サブシステム101は、ポリシー実施ユニット103と、ドライバ・ユニット104と、キー属性ストレージ110とを含む。ポリシー実施ユニット103は、暗号ポリシー設定を読み取る、書き込む、およびログ記録することに関与している。ドライバ・ユニット104は、暗号コプロセッサ102へのアクセスを可能にする。例示的に示されるように、ドライバ・ユニット104は、キー識別子106と、属性のシーケンス107と、プレースホルダ・メッセージ認証コード(MAC)フィールド108と、プレースホルダ暗号ソルト・フィールド109とを有する組み立て後の属性フレーム105を有する。プレースホルダMACフィールド108およびプレースホルダ暗号ソルト・フィールド109は、MACおよび暗号ソルトをそれぞれ記憶することができる。属性のシーケンス107は、暗号識別子106によって識別される暗号キーと関連付けられる多数の属性を含んでよい。例えば、属性は、ブールのシーケンスとして、ビットマスクとして、整数として、アレイで、または可変長フィールドで属性のシーケンス107内に記憶され得る。属性は、暗号キーの種々の特性を記載する。キー属性ストレージ110は、複数のキーおよびそれらの関連付けられた属性を記憶する。他の属性セットの中でも、キー属性ストレージ110は、属性の第2のセット111を記憶する。属性の第2のセット111は、キー識別子106が参照する暗号キーと関連付けられることができる。
【0055】
暗号コプロセッサ102は、暗号ユニット112と、キー属性ストレージ130と、パブリック・ホワイトリスト・サービス115とを含む。キー属性ストレージ113は、データを暗号化する、およびデータに署名するなど、種々の暗号機能を実行することが可能である。暗号コプロセッサ102内に含まれるキー属性ストレージ113は、種々の暗号キーおよびそれらの関連付けられた属性を記憶する。他の属性セットの中でも、キー属性ストレージ113は、暗号キーと関連付けられた属性の第1のセット114を記憶する。暗号コプロセッサ102の記憶容量のため、属性の第1のセット114は、たとえ属性の第2のセット111と属性の第1のセット114の両方が同じ暗号キーと関連付けられているとしても、キー属性ストレージ110内のキー管理サブシステム101によって記憶される属性の第2のセット111より少ない属性を含む。
【0056】
代替形態として、パブリック・ホワイトリスト・サービス115は、暗号コプロセッサ102およびキー管理システム150から独立したサーバ上で動作されてもよく、これはインターネットを介してアクセスすることができる。パブリック・ホワイトリスト・サービス115は、多数の暗号ハッシュを記憶することができ、その中で、暗号ハッシュ116は、キー識別子106によって識別される暗号キーと関連付けられている。
【0057】
図2は、キー管理システム150などのキー管理システムの動作を詳細に記載するワークフロー200のフローチャートである。キー管理システムは、暗号キーを識別するキー識別子を暗号コプロセッサに送信し得る(ステップ201)。キー識別子を送信することに応答して、キー管理システムは、暗号コプロセッサから属性の第1のセットを受信し得る(ステップ202)。キー管理システムはそのとき、暗号コプロセッサが暗号キーに関連してどの属性を記憶するかを知っている。属性の第1のセットおよび属性の第2のセットを正規化されたフォームにする必要がある。この目的のために、キー管理システムは、属性の第1のセットおよび属性の第2のセットを属性のシーケンスにシリアル化し、属性のシーケンスを属性フレーム内に記憶する(ステップ203)。シリアル化は、承認済みの正規化スキームを用いて実行することができる。これは、同じ属性をシリアル化することは、属性が同じ順序を有する属性のシーケンスを常にもたらすことになることを意味する。
【0058】
キー管理システムは、属性のシーケンスを暗号コプロセッサに送信し得る(ステップ204)。例えば、属性は、属性のシーケンス内のその順序に従って暗号コプロセッサに送信することができる。属性のシーケンスを送信することに応答して、キー管理システムは、暗号コプロセッサから第1のMACおよび暗号ソルトを受信し得る(ステップ205)。この例では、第1のMACは、暗号コプロセッサによって属性のシーケンスから計算されている。キー管理システムは、第1のMACを属性フレームのプレースホルダMACフィールドに記憶する。暗号ソルトは、第1のMACを計算するために暗号コプロセッサによって使用されている。暗号ソルトは、第1のMACを検証する際、検証の目的で必要とされる。キー管理システムはしたがって、属性フレームのプレースホルダ暗号ソルト・フィールドに暗号ソルトを記憶する。キー管理システムは、第1のMACを利用して属性フレームをその後検証し得る(ステップ206)。引き続き記載するように、属性フレームがどのように検証されるかについては異なる方法が存在する。
【0059】
図3は、キー管理システムの動作を詳細に記載するワークフロー300のフローチャートであり、キー管理システムは、検証のためにパブリック・ホワイトリスト・サービスを例示的に使用する。第1のMACは、属性フレームに記憶される属性の完全性の検証、または正確なバージョニングを可能にする。キー管理システムは、第1の暗号ハッシュを計算する(ステップ301)。この例では、キー管理システムは、パブリック・ホワイトリスト・サービスにキー識別子を送信する(ステップ302)。パブリック・ホワイトリスト・サービスは、インターネットに接続されるサーバ上で動作するインターネット・サービスによって実装され得る。パブリック・ホワイトリスト・サービスにキー識別子を送信することに応答して、キー管理システムは、パブリック・ホワイトリスト・サービスから第2の暗号ハッシュを受信する(ステップ303)。この例によると、キー管理システムはその後、第1の暗号ハッシュを第2の暗号ハッシュと比較する(ステップ304)。第1の暗号ハッシュと第2の暗号ハッシュが等しい場合、検証は成功である(ステップ305)。よって、キー管理システムによって記憶されるような、属性フレームからの属性のシーケンスは、パブリック・ホワイトリスト・サービスがキー識別子と関連付けられる属性のシーケンスと同じであることが確証された。第1の暗号ハッシュが第2の暗号ハッシュと等しくない場合、検証は成功していない(ステップ306)。
【0060】
ホワイトリスト・サービスによって送信されるような第2の暗号ハッシュは、一部の実施形態によれば部分暗号ハッシュであってもよい。これは、ホワイトリスト・サービスは完全なハッシュを送信しないが、第2の暗号ハッシュのまさに選択されたビットを送信することを意味する。キー管理システムはこのとき、これらの送信されたビットを、第1の暗号ハッシュの対応する位置でのビットと比較し得る。この方式において、キー管理システムは、第2の暗号ハッシュを全部は受信せずに検証を行うことができる。第2の暗号ハッシュは、キー管理システム、またはホワイトリスト・サービスの他のユーザに対して全部は開示されない。これは、第2の暗号ハッシュの悪用を阻止し得るプライバシー保護機能である。
【0061】
図4は、キー管理システムの動作を詳細に記載するワークフロー400のフローチャートであり、キー管理システムは、検証のために暗号コプロセッサを使用する。一例として、キー管理システムは、暗号コプロセッサにキー識別子を送信する(ステップ401)。キー識別子を送信することに応答して、キー管理システムは、暗号コプロセッサから属性の第3のセットを受信する(ステップ402)。属性の第3のセットは、暗号コプロセッサがキー識別子と関連付ける属性を含んでよい。キー管理システムは、属性のシーケンスからの属性のサブセットが属性の第3のセットと一致するかどうかをチェックする(ステップ403)。この例によると、キー管理システムは、その属性タイプに関して属性のシーケンスからの属性に合致する属性の第3のセットからの属性は、その値に関してもこれらの属性と合致することを確立する。そのようなケースではない場合、これは、暗号コプロセッサは、予測したものではない、キー識別子と関連する異なる属性を記憶し、検証は失敗であることを意味する(ステップ410)。
【0062】
属性の第3のセットからの属性が、属性のシーケンスからの属性と一致した場合、検証プロセスは継続する。キー管理システムは、属性フレームからの属性のシーケンスを暗号コプロセッサに送信する(ステップ405)。属性のシーケンスと共に、キー管理システムはまた、暗号ソルトも暗号コプロセッサに送信し得る。属性のシーケンスを送信することに応答して、キー管理システムは、暗号コプロセッサから第2の暗号ハッシュを受信する(ステップ406)。キー管理システムは、第1のMACから第1の暗号ハッシュを計算する(ステップ407)。キー管理システムはその後、第1の暗号ハッシュを第2の暗号ハッシュと比較する(ステップ408)。現行の例によると、第1の暗号ハッシュと第2の暗号ハッシュが等しい場合、検証は成功である(ステップ409)。比較の成功は、属性フレーム内の属性の完全性を確証する。第1の暗号ハッシュが第2の暗号ハッシュと等しくない場合、検証は成功していない(ステップ410)。
【0063】
図5は、暗号コプロセッサ102などの暗号コプロセッサの動作を詳細に記載するワークフロー500のフローチャートである。一例として、暗号コプロセッサは、キー管理システムからキー識別子を受信することができる(ステップ501)。キー管理システムからキー識別子を受信することに応答して、暗号コプロセッサは、キー管理システムに属性の第1のセットを送信し得る(ステップ502)。例示として、属性の第1のセットは、暗号コプロセッサのキー属性ストレージ内に記憶される。暗号コプロセッサは、キー属性ストレージから属性の第1のセットをロードし得る。キー管理システムに属性の第1のセットを送信することに応答して、暗号コプロセッサは、キー管理システムから属性のシーケンスを受信する(ステップ503)。
【0064】
現行の例によると、暗号コプロセッサは、属性のシーケンスからの属性のサブセットが、属性の第1のセットと一致するかどうかを確認する(ステップ504)。確認は、その属性タイプに関して属性のシーケンスからの属性に合致する、属性の第1のセットからの属性は、その値に関してもこれらの属性と合致することをチェックすることによって実行され得る。そのようなケースではない場合、キー管理システムは、キー識別子およびその関連付けられたキーに関連して、暗号コプロセッサと同じ属性を使用していないと結論付けることができる。確認は失敗し、暗号コプロセッサが、キー管理システムに通知する(ステップ505)。確認が成功した場合、暗号コプロセッサは、属性のシーケンスから第1のMACを計算する(ステップ506)。第1のMACを計算するために、暗号コプロセッサは、暗号ソルトをランダムに生成し得る。暗号コプロセッサは、第1のMACを生成するための暗号ソルトを使用することができる。これは、第1のMACの逆引きが行われる攻撃に対して保護するのを助けることができる。第1のMACを生成した後、暗号コプロセッサは、キー管理システムに第1のMACを送信し得る(ステップ507)。
【0065】
図6は、検証中の、暗号コプロセッサの動作を詳細に記載するワークフロー600のフローチャートである。暗号コプロセッサは、キー管理システムからキー識別子を例示的に再度受信する(ステップ601)。このとき、キー識別子は、確認の目的で受信される。一例として、暗号コプロセッサは、その内部ストレージからキー識別子に従って属性の第3のセットを取り出すことができる。属性の第3のセットは、暗号コプロセッサのキー属性ストレージ内のデータに変更がなければ、属性の第1のセットと同じ属性を含むことが予測される。暗号コプロセッサは、キー管理システムに属性の第3のセットを送信し得る(ステップ602)。キー管理システムはその後、属性の第3のセットの完全性を確認することができる。キー管理システムに属性の第3のセットを送信することに応答して、暗号コプロセッサは、キー管理システムから属性のシーケンスを再度受信する(ステップ603)。暗号コプロセッサは、属性のシーケンスからの属性のサブセットが属性の第3のセットと一致するかどうかを確認する(ステップ604)。現行の例によると、確認は、その属性タイプに関して属性のシーケンスからの属性に合致する属性の第3のセットからの属性は、その値に関してもこれらの属性と合致することをチェックすることによって実行される。そのようなケースではない場合、キー管理システムは、暗号キーに関連して、暗号コプロセッサと同じ属性を使用していないと結論付けることができる。確認は失敗し、暗号コプロセッサは、キー管理システムに確認が失敗したことを通知する(ステップ605)。これはまた、属性フレームの検証が失敗したことも意味する。確認が成功した場合、暗号コプロセッサは、属性のシーケンスから第2のMACを計算し得る(ステップ606)。続いて暗号コプロセッサは、第2のMACから第2の暗号ハッシュを計算し得る(ステップ607)。暗号コプロセッサはその後、キー管理システムに第2の暗号ハッシュを送信する(ステップ608)。この例によると、キー管理システムはその後、検証プロセスを結論付けるために、第1の暗号ハッシュを第2の暗号ハッシュと比較することができる。
【0066】
図7は、キー管理システム150と実質的に同様のシステムの一例である、コンピュータ・システム700を示す。コンピュータ・システム700は、プロセッサ701、キャッシュ703、メモリ702、永続的ストレージ705、通信ユニット707、入/出力(I/O)インターフェース706および通信ファブリック704を含む。通信ファブリック704は、キャッシュ703、メモリ702、永続的ストレージ705、通信ユニット707および入/出力(I/O)インターフェース706間の通信を提供する。通信ファブリック704は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイスおよびシステム内の任意の他のハードウェア構成要素間でデータまたは制御情報あるいはその両方を伝えるように設計された任意のアーキテクチャで実装することができる。例えば通信ファブリック704は、1つまたは複数のバスあるいはクロスバー・スイッチで実装することができる。
【0067】
メモリ702および永続的ストレージ705は、コンピュータ可読記憶媒体である。この実施形態では、メモリ720は、ランダム・アクセス・メモリ(RAM)を含む。一般に、メモリ702は、任意の好適な揮発性または不揮発性コンピュータ可読記憶媒体を含むことができる。キャッシュ703は、メモリ702から最近アクセスしたデータ、およびちょうど最近アクセスしたデータを保持することによって、プロセッサ701の性能を高める高速メモリである。
【0068】
本発明の実施形態を実施するために使用されるプログラム命令およびデータは、キャッシュ703を介するそれぞれのプロセッサ701のうちの1つまたは複数による実行のために永続的ストレージ705およびメモリ702に記憶され得る。一実施形態において、永続的ストレージ705は、磁気ハード・ディスク・ドライブを含む。磁気ハード・ディスク・ドライブの代替として、またはそれに追加して、永続的ストレージ705は、ソリッドステート・ハード・ドライブ、半導体記憶デバイス、リードオンリ・メモリ(ROM)、消去可能リードオンリ・メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令またはデジタル情報を記憶することが可能である任意の他のコンピュータ可読記憶媒体を含むことができる。
【0069】
永続的ストレージ705によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブが、永続的ストレージ705のために使用されてもよい。他の例は、光学ディスクおよび磁気ディスク、サム・ドライブ、および同様に永続的ストレージ705の一部である別のコンピュータ可読記憶媒体に転送するためにドライブに挿入されるスマート・カードを含む。
【0070】
これらの例における通信ユニット707は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット707は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット707は、物理的通信リンクおよび無線通信リンクのいずれか、またはその両方の使用を通して通信を提供してもよい。本発明の実施形態を実施するために使用されるプログラム命令およびデータは、通信ユニット707を通して永続的ストレージ705にダウンロードされ得る。
【0071】
I/Oインターフェース706は、各コンピュータ・システムに接続される他のデバイスとのデータの入出力を可能にする。例えば、I/Oインターフェース706は、キーボード、キーパッド、タッチ・スクリーンまたは任意の他の好適な入力デバイスあるいはその組み合わせなどの外部デバイス708への接続を提供し得る。外部デバイス708はまた、サム・ドライブ、ポータブル光学ディスクまたは磁気ディスクおよびメモリ・カードなどのポータブル・コンピュータ可読記憶媒体を含むこともできる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、そのようなポータブル・コンピュータ可読記憶媒体に記憶することができ、I/Oインターフェース706を介して永続的ストレージ705にロードすることができる。I/Oインターフェース706はまた、ディスプレイ709にも接続する。
【0072】
ディスプレイ709は、ユーザにデータを表示するための機構を提供し、例えばコンピュータ・モニタであってもよい。
図1
図2
図3
図4
図5
図6
図7