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

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

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特表2022-534461キー管理方法、クライアントおよびプログラム
<>
  • 特表-キー管理方法、クライアントおよびプログラム 図1
  • 特表-キー管理方法、クライアントおよびプログラム 図2
  • 特表-キー管理方法、クライアントおよびプログラム 図3
  • 特表-キー管理方法、クライアントおよびプログラム 図4
  • 特表-キー管理方法、クライアントおよびプログラム 図5
  • 特表-キー管理方法、クライアントおよびプログラム 図6
  • 特表-キー管理方法、クライアントおよびプログラム 図7
  • 特表-キー管理方法、クライアントおよびプログラム 図8
  • 特表-キー管理方法、クライアントおよびプログラム 図9
  • 特表-キー管理方法、クライアントおよびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-01
(54)【発明の名称】キー管理方法、クライアントおよびプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20220725BHJP
   H04L 9/16 20060101ALI20220725BHJP
   G06F 21/60 20130101ALI20220725BHJP
【FI】
H04L9/08 C
H04L9/08 E
H04L9/16
G06F21/60 320
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021532878
(86)(22)【出願日】2020-05-19
(85)【翻訳文提出日】2021-06-29
(86)【国際出願番号】 CN2020091002
(87)【国際公開番号】W WO2020238694
(87)【国際公開日】2020-12-03
(31)【優先権主張番号】201910445155.9
(32)【優先日】2019-05-27
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】コン,チンレイ
(57)【要約】
本発明の実施例は、キー管理方法および関連装置を提供する。当該キー管理方法は、クライアントはユーザが入力した操作指令に基づいて1つの乱数および1つのキーを選択するステップと、前記乱数、前記キー、第1の公開キー、および第2の公開キーに基づいて前記キーの第1の暗号文を生成するステップであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものである、ステップと、前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得るステップと、前記第1の暗号文および前記データ暗号文をクラウドサーバに送信するステップと、を含む。
【特許請求の範囲】
【請求項1】
クライアントが実行するキー管理方法であって、
クライアントが、ユーザの入力した操作指令に基づいて、1つの乱数および1つのキーを選択するステップと、
前記クライアントが、前記乱数、前記キー、第1の公開キーおよび第2の公開キーに基づいて、前記キーの第1の暗号文を生成するステップであり、
前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、
前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものである、
ステップと、
前記クライアントが、前記キーおよび予め選択されたハッシュ関数に基づいて、対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化して、データ暗号文を得るステップと、
前記クライアントが、前記第1の暗号文および前記データ暗号文をクラウドサーバに送信するステップと、を含む、
ことを特徴とする、方法。
【請求項2】
前記クライアントが前記第1の暗号文および前記データ暗号文をクラウドサーバに送信する前記ステップの後に、
前記クライアントが、前記クラウドサーバに復号化要求を送信するステップであり、
前記復号化要求は、前記クラウドサーバが前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するように指示するためのものであり、
前記第1の暗号文は、前記ハードウェアセキュリティモジュールが、前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点、および前記乱数に基づいて復号化して、第2の暗号文を得るためのものである、
ステップと、
前記クライアントが、前記ハードウェアセキュリティモジュールから送信された前記第2の暗号文を受信するとともに、前記クラウドサーバから送信された前記データ暗号文を受信するステップと、
前記クライアントが、前記第2の暗号文に基づいて、前記データ暗号文を復号化して、前記クラウドストレージデータを得るステップと、
をさらに含む、
ことを特徴とする、請求項1に記載の方法。
【請求項3】
前記クライアントが、前記第2の暗号文に基づいて、前記データ暗号文を復号化して、前記クラウドストレージデータを得る前記ステップは、
前記クライアントが、前記クライアントの秘密キー、前記乱数および前記楕円曲線上の点に基づいて、前記第2の暗号文を復号化して前記キーを得るステップと、
前記クライアントが、前記キーおよび前記ハッシュ関数に基づいて、前記対称キーシーケンスを生成するステップと、
前記クライアントが、前記対称キーシーケンスに基づいて、前記データ暗号文を復号化して前記クラウドストレージデータを得るステップと、
を含む、
ことを特徴とする、請求項2に記載の方法。
【請求項4】
前記乱数および前記キーは、nよりも小さく、
前記nは、前記楕円曲線上の点のオーダーである、
ことを特徴とする、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記ハードウェアセキュリティモジュールの秘密キーは、前記ハードウェアセキュリティモジュールが1からn-1までの区間から選択した1つの整数であり、
前記クライアントの秘密キーは、前記クライアントが1からn-1までの区間から選択した1つの整数であり、かつ、
前記nは、前記楕円曲線上の点のオーダーである、
ことを特徴とする、請求項1乃至3のいずれか一項に記載の方法。
【請求項6】
クラウドサーバが実行するキー管理方法であって、
クラウドサーバがクライアントから送信された第1の暗号文およびデータ暗号文を受信するステップであり、
前記第1の暗号文は、乱数、キー、第1の公開キー、および第2の公開キーに基づいて生成されるものであり、
前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、
前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものであり、
前記データ暗号文は、対称キーシーケンスに基づいてクラウドストレージデータを暗号化して得られたものであり、
前記対称キーシーケンスは、前記キーおよび予め選択されたハッシュ関数に基づいて生成されるものである、
ステップと、
前記クラウドサーバが、前記第1の暗号文および前記データ暗号文を記憶するステップと、
を含む、ことを特徴とする、方法。
【請求項7】
前記クラウドサーバがクライアントから送信された第1の暗号文およびデータ暗号文を受信する前記ステップの後に、
前記クラウドサーバが前記クライアントから送信された復号化要求を受信するステップと、
前記クラウドサーバが前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するステップであって、前記第1の暗号文は、前記ハードウェアセキュリティモジュールが前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点および前記乱数に基づいて復号化して第2の暗号文を得るためのものである、ステップと、
前記クラウドサーバが前記クライアントに前記データ暗号文を送信するステップであって、前記データ暗号文は、前記クライアントが前記第2の暗号文に基づいて復号化して前記クラウドストレージデータを得るためのものである、ステップと、をさらに含む、
ことを特徴とする請求項6に記載の方法。
【請求項8】
ユーザが入力した操作指令に基づいて、1つの乱数および1つのキーを選択するための選択モジュールと、
前記乱数、前記キー、第1の公開キーおよび第2の公開キーに基づいて、前記キーの第1の暗号文を生成するための処理モジュールであり、
前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、
前記第2の公開キーは、前記楕円曲線上の点およびクライアントの秘密キーに基づいて決定されるものである、
処理モジュールと、
クラウドサーバに前記第1の暗号文およびデータ暗号文を送信するための送信モジュールと、を備えるクライアントであって、
前記処理モジュールは、さらに、
前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、かつ、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化して、
前記データ暗号文を得る、ためのものである、
ことを特徴とする、クライアント。
【請求項9】
前記送信モジュールは、さらに、前記クラウドサーバに復号化要求を送信するためのものであり、
前記復号化要求は、前記クラウドサーバが前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するように指示するためのものであり、
前記第1の暗号文は、前記ハードウェアセキュリティモジュールが前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点および前記乱数に基づいて、復号化して第2の暗号文を得るためのものであり、
前記クライアントは、さらに、
前記ハードウェアセキュリティモジュールから送信された前記第2の暗号文を受信するとともに、前記クラウドサーバから送信された前記データ暗号文を受信するための受信モジュールを備え、
前記処理モジュールは、さらに、前記第2の暗号文に基づいて、前記データ暗号文を復号化して前記クラウドストレージデータを得るためのものである、
ことを特徴とする、請求項8に記載のクライアント。
【請求項10】
前記処理モジュールは、さらに、
前記クライアントの秘密キー、前記乱数および前記楕円曲線上の点に基づいて、前記第2の暗号文を復号化して前記キーを取得し、かつ、前記キーおよび前記ハッシュ関数に基づいて、前記対称キーシーケンスを生成し、前記対称キーシーケンスに基づいて、前記データ暗号文を復号化して前記クラウドストレージデータを得るためのものである、
ことを特徴とする、請求項9に記載のクライアント。
【請求項11】
複数の命令を含むコンピュータプログラムであって、
前記命令がプロセッサによって実行されると、
請求項1乃至7のいずれか一項に記載の方法を前記プロセッサに実施させる、
ことを特徴とする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ技術分野に関し、特には、キー管理方法および関連装置に関する。
【0002】
本出願は、2019年5月27日に提出された出願番号が201910445155.9であり、発明名称が「キー管理方法および関連装置」である中国特許出願に基づく優先権を主張するものであり、その全ての内容が、参照により本出願に組み込まれている。
【背景技術】
【0003】
キー管理サービス(Key Management Service、KMS)は、キークラウドホスティングサービスであり、データの暗号化に必要な暗号化キーを作成および制御し、他のクラウドサーバと統合することにより、クラウドサーバが当該暗号化キーを使用して暗号化データを管理可能となることを目的とする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施例は、クラウドストレージキーの生成および記憶の効率を向上させることができるとともに、クラウドストレージデータの安全性を保証することができる、キー管理方法および関連装置を提供する。
【課題を解決するための手段】
【0005】
本発明の実施例の第1の態様によれば、
クライアントが実行するキー管理方法であって、
クライアントが、ユーザの入力した操作指令に基づいて1つの乱数および1つのキーを選択するステップと、
前記クライアントが前記乱数、前記キー、第1の公開キーおよび第2の公開キーに基づいて、前記キーの第1の暗号文を生成するステップであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものである、ステップと、
前記クライアントが前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得るステップと、
前記クライアントが前記第1の暗号文および前記データ暗号文をクラウドサーバに送信するステップと、を含む方法を提供する。
【0006】
本発明の実施例の第2の態様によれば、
クラウドサーバが実行するキー管理方法であって、
クラウドサーバがクライアントから送信された第1の暗号文およびデータ暗号文を受信するステップであり、前記第1の暗号文は、乱数、キー、第1の公開キー、および第2の公開キーに基づいて生成されるものであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものであり、前記データ暗号文は、対称キーシーケンスに基づいてクラウドストレージデータを暗号化して得られたものであり、前記対称キーシーケンスは、前記キーおよび予め選択されたハッシュ関数に基づいて生成されるものである、ステップと、
前記クラウドサーバが、前記第1の暗号文および前記データ暗号文を記憶するステップと、を含む方法を提供する。
【0007】
本発明の実施例の第3の態様によれば、
ユーザが入力した操作指令に基づいて、1つの乱数および1つのキーを選択するための選択モジュールと、
前記乱数、前記キー、第1の公開キーおよび第2の公開キーに基づいて、前記キーの第1の暗号文を生成するための処理モジュールであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものである、処理モジュールと、
クラウドサーバに前記第1の暗号文および前記データ暗号文を送信するための送信モジュールと、を備えるクライアントであって、
前記処理モジュールは、さらに、前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化して、データ暗号文を得るためのものである、クライアントを提供する。
【0008】
本発明の実施例の第4の態様によれば、
クライアントから送信された第1の暗号文およびデータ暗号文を受信するための受信モジュールであり、前記第1の暗号文は、乱数、キー、第1の公開キーおよび第2の公開キーに基づいて生成されるものであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定されるものであり、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定されるものであり、前記データ暗号文は、対称キーシーケンスに基づいてクラウドストレージデータを暗号化して得られたものであり、前記対称キーシーケンスは前記キーおよび予め選択されたハッシュ関数に基づいて生成されるものである、受信モジュールを備える、クラウドサーバを提供する。
【0009】
本発明の実施例の第5の態様によれば、プロセッサと、メモリと、通信バスとを含む別のクライアントであり、通信バスは、プロセッサとメモリとの接続通信を実現するためのものであり、プロセッサは、メモリに記憶されるプログラムを実行することによって前記の第1の方面が提供するキー管理方法のステップを実現するためのものである、別のクライアントを提供する。
【0010】
1つの可能な設計では、本発明が提供するクライアントは、前記の方法の設計におけるクライアントの行為を実行するための対応するモジュールを含み得る。なお、モジュールは、ソフトウェアまたはハードウェアのうちのいずれか1つであってよい。
【0011】
本発明の実施例の第6の態様によれば、プロセッサと、メモリと、通信バスとを含む別のクラウドサーバであり、通信バスは、プロセッサとメモリとの接続通信を実現するためのものであり、プロセッサは、メモリに記憶されるプログラムを実行することによって前記の第2の方面が提供するキー管理方法のステップを実現するためのものである、別のクラウドサーバを提供する。
【0012】
1つの可能な設計では、本発明が提供するクラウドサーバは、前記の方法の設計におけるクラウドサーバの行為を実行するための対応するモジュールを含み得る。なお、モジュールは、ソフトウェアまたはハードウェアのうちのいずれか1つであってよい。
【0013】
本発明の実施例の第7の態様によれば、命令が記憶され、コンピュータが前記命令を実行する場合、前記態様のうちいずれか一つの方法をコンピュータに実行させる、コンピュータで読取可能な記憶媒体を提供する。
【0014】
本発明の実施例の第8の態様によれば、命令を含み、コンピュータが前記命令を実行する場合、前記態様のうちいずれか一つの方法をコンピュータに実行させる、コンピュータプログラム製品を提供する。
【図面の簡単な説明】
【0015】
以下に、本発明の実施例の技術方案をより明瞭に説明するために、実施例の説明に必要な図面を簡単に説明するが、以下に説明する図面は、本発明のいくつかの実施例に関するものであり、当業者であれば、創作的な労力をかけることなく、これらの図面から他の図面を得られることが明らかである。
図1】従来技術が提供する、キー管理方法を示す図である。
図2】本発明の実施例が提供する、キー管理システムのアーキテクチャを示す図である。
図3】本発明の実施例が提供する、キー管理方法を示すフローチャートである。
図4】本発明の実施例が提供する、暗号文およびデータ暗号文の記憶フォーマットを示す図である。
図5】本発明の実施例が提供する、別のキー管理方法を示すフローチャートである。
図6】本発明の実施例が提供する、記憶負荷対比を示す図である。
図7】本発明の実施例が提供する、クライアントの構造を示す図である。
図8】本発明の実施例が提供する、クラウドサーバの構造を示す図である。
図9】本発明の実施例が提供する、別のクライアントの構造を示す図である。
図10】本発明の実施例が提供する、別のクラウドサーバの構造を示す図である。
【発明を実施するための形態】
【0016】
以下に、本発明の実施例の技術方案について、図面を参照しながら明瞭にし、完全に説明するが、以下に説明する実施例は、本発明の全ての実施例ではなく、その一部の実施例に過ぎないことが明らかである。また、当業者によって本発明の実施例に基づいて、創作的な労力をかけることなく得られる他の実施例も、全てが本発明の保護範囲内に含まれる。
【0017】
なお、以下に、理解を容易にするために、用語を説明する。
【0018】
1.キー管理サービス(Key Management Service、KMS):安全で使用しやすいキーの生成および管理に関するサービスである。最終的な目的としては、ユーザによるデータの静的記憶データの安全性、すなわちユーザデータの機密性、完全性、および利用可能性を保護することである。クラウドサーバにキー管理サービスを配置することにより、ユーザは、データの保護およびデータの暗号化や復号化のためのキーを安全で便利に使用および管理することが可能となり、クラウドサーバの静的データの暗号化や復号化の場面に専念することができる。
【0019】
2.ハードウェアセキュリティモジュール(Hardware Security Module、HSM):強力認証システムに使用されるデジタルキーを保証および管理するとともに、暗号学に関連する動作のコンピュータハードウェア装置を提供するためものである。そして、拡張カードおよび周辺装置を介して、コンピュータおよびネットワークサーバ-に対して直接的に接続されている。また、HSMは、アプリケーションプログラムに対して暗号化キーの保護や、暗号化、復号化、身元認証およびデジタル署名の配置サービスを提供することができるため、クラウドサーバのハードウェアセキュリティモジュールが、データルートキーの記憶に対して保護を提供することができる。また、HSMは、改ざん証拠保全および改ざん抵抗機能の2種類の改ざん防止機能を提供する。
【0020】
3.ハッシュ関数(Hash Function):要約関数とも呼ばれ、任意の長さの入力をハッシュアルゴリズムによって固定の長さの出力に変換するためのものである。
【0021】
基本的な性質:
(1)プレイメージ(Pre-image)は、その動作方向の一方向性を指す。ハッシュ値hが与えられると、対応する情報m(h=hash(m))を見つけることができない。すなわち、出力から入力を算出することができず、入力から出力を導出することのみができる。
【0022】
(2)セカンドプレイメージ(Secondary pre-image):その出力結果が1つの既知の出力結果と等しいような1つの入力を見つけることができない。すなわち、入力m1が与えられると、ハッシュ値hash(m1)=hash(m2)となるような別の入力m2を見つけることができない。
【0023】
(3)衝突制約:その出力結果hash(m1)とhash(m2)が完全に一致する(hash(m1)=hash(m2))2つの異なる入力m1およびm2を同時に見つけることができない。
【0024】
4.楕円曲線暗号化アルゴリズム(Elliptic Curve Cryptography、ECC):楕円曲線数学に基づく公開キーの暗号化アルゴリズムである。数学的基礎は、楕円曲線上の有理点を利用してアーベル加法群における楕円離散対数の計算困難性を構成することであり、その主な利点として、ある場合に他の方法(例えばRSA暗号化アルゴリズム)よりも小さいキーを使用し、同等またはそれより高いレベルの安全を提供できることである。
【0025】
5.対称暗号化(Symmetric Key Encryption、SKE):暗号化および復号化に対して同じようなキーの暗号化アルゴリズムを使用する必要がある。また、対称暗号化は、その速度が速いため、一般的にメッセージ送信側が大量のデータを暗号化する必要がある場合に用いられる。そのうち、高級暗号化標準(Advanced Encryption Standard、AES)は、対称キーの暗号化において最も流行するアルゴリズムの1つとして、SPN(Substitution Permutation Network)を利用するブロック暗号化標準である。
【0026】
KMSは、主に、(1)KMSに記憶されたマスターキーを利用して、KMSのアプリケーションプログラムインタフェース(Application Program Interface、API)を呼び出すことによりデータの暗号化や復号化を行う場面と、(2)クラウドサーバにおけるデータキーを用いてデータの暗号化や復号化を行い、KMSにおけるマスターキーを利用してデータキーを保護する場面との2つの場面に使用される。また、KMSにおいて、マスターキーは、ハードウェアセキュリティモジュール(Hardware Security Module、HSM)によって保護され、キーの利用可能性、安全性、および持久性を保証できるようにHSMのみに使用することができる。また、KMSは、ユーザが自分でマスターキーを作成してHSMに導入することを支持することができる。
【0027】
図1に示すように、図1は、従来技術が提供するキー管理方法を示す図である。データ暗号化キー(Data Encryption Key、DEK)は、データ暗号化キー(HSM Backing Key)によって保護され、HBKは、ドメインキー(Domain Key、DK)によって保護され、そして、ドメインキーは、永久的に記憶されたHSMマスターキー(Domain Key Encryption Key、DKEK)によって保護され、DKEKは、HSMに記憶される。表1に示すように、表1は、1種のKMSキー管理構造である。DKEKは、最外層の暗号化キーであり、DKは、最外層より一つ内側の層の暗号化キーであり、HBKは、内層の暗号化キーであり、DEKは、最内層の暗号化キーである。DK、HBK、およびDEKは、共にHSMによって生成される。
【表1】
【0028】
従来のKMSキー管理方案に対して、以下のような技術的問題が存在している。すなわち、(1)現段階におけるデータのプライバシー保護に対するユーザの敏感度に鑑みて、データキーおよび暗号化データは共にクラウドサーバによって管理されている。クラウドサービス事業者が装置のメンテナンス管理者を厳密に制御および監督しても、内部者による秘密の漏洩やデータの盗難がよく発生する。(2)暗号化されたデータキーが暗号化されたデータと共にクラウドストレージサーバに記憶されるため、クラウドサーバによるキーの管理および暗号化キーの記憶のコストを増加させた。(3)キーが層毎にカバーされるという構造を採用しているため、HSMのキーの復号化および記憶のコストも向上させた。また、HSMの計算および記憶能力に限界があるため、クラウドサーバの装置コストを増加させた。
【0029】
図2に示すように、図2は、本発明の実施例が提供するキー管理システムのアーキテクチャを示す図である。本発明の実施例におけるキー管理システムは、クラウドサーバ1、ハードウェアセキュリティモジュール2、および、クライアント3を含む。そのうち、クラウドサーバ1は、クラウドコンピューティングサービスの重要な構成部分であり、各種のインターネットユーザに向けて総合的なサービス能力を提供するサービスプラットフォームである。当該サービスプラットフォームは、従来のインターネット応用の3つのコア要素である計算、記憶、およびネットワークを統合して、ユーザに向けて公共化したインターネットインフラストラクチャサービスを提供する。クラウドサーバにおける各クラスタノードは、インターネットのバックボーンデータセンタに配置され、計算、記憶、オンラインバックアップ、ホスティング、帯域幅、などのインターネットインフラストラクチャサービスを独立して提供することができる。ハードウェアセキュリティモジュール2は、クラウドサーバのハードウェアセキュリティモジュールであり、強力認証システムに使用されるデジタルキーを保障および管理するとともに、暗号学に関連する動作のコンピュータハードウェア装置を提供するためのものであり、そして、拡張カードおよび周辺装置を介して、コンピュータおよびネットワークサーバに直接に接続される。ハードウェアセキュリティモジュール2は、アプリケーションプログラムに対して暗号化キーの保護や、暗号化、復号化、身元認証、およびデジタル署名の配置サービスを提供することができるため、データルートキーの記憶に対して保護を提供することができる。また、ハードウェアセキュリティモジュール2は、改ざん証拠保全と改ざん抵抗との2種類の改ざん防止機能を提供する。クライアント3は、スマートフォン、携帯型コンピュータ、ハンドヘルド通信装置、ハンドヘルド計算装置、衛星ラジオ装置、全地球測位システム、パームトップコンピュータ(personal digital assistant、PDA)、および/または、無線通信システムで通信するための任意の他の適切な装置、などとすることができる。クラウドサーバ1、ハードウェアセキュリティモジュール2、およびクライアント3同士は、ネットワーク接続を確立して、確立したネットワーク接続を介して通信することができる。
【0030】
本発明の実施例は、クラウドストレージデータのプライバシー保護およびクラウドストレージキーの生成などの場面に応用することができる。本発明の実施例では、HSMの公開キーおよびクライアントの公開キーを用いてデータ暗号化キーを保護することにより、クライアントのクラウドストレージデータは、HSMおよびクライアントが共同で復号化する場合のみに復号化される。
【0031】
図3に示すように、図3は、本発明の実施例が提供するキー管理方法を示すフローチャートである。当該フローは、キーの生成およびデータの暗号化を含む。本発明の実施例は、少なくとも以下のステップを含む。
【0032】
S301において、クライアントは、ユーザの入力した操作指令に基づいて、1つの乱数および1つのキーを選択する。そのうち、前記乱数および前記キーは、共にnよりも小さく、前記nは、楕円曲線上の点のオーダーである。
【0033】
具体的な実現に当たって、例えば、ユーザは、クライアントを介してクラウドサーバにおけるキーを作成するためのウェブページにアクセスすることができる。クライアントは、ユーザが前記キーを作成するためのウェブページを介して入力した操作指令(例えば、ユーザが前記ウェブページにおけるキーを生成するためのボタンをクリックする)を受信して、前記ウェブページにおけるコードを実行することによって、1からn-1までの区間内からいずれか1つの整数を乱数として選択し、1からn-1までの区間内から1つの整数をキーとして選択することができ、前記nは、楕円曲線上の点のオーダーである。例えば、楕円曲線E:y=x+ax+bに対して、楕円曲線上の点Pについて、数乗算nP=O∞となるような最小の正の整数nが存在すると、nをPのオーダーと称し、nが存在しないと、Pは無限次である。そのうち、O∞は、当該楕円曲線上の無限遠点である。
【0034】
オプションとして、クライアントが1つの乱数および1つのキーを選択する前に、ハードウェアセキュリティモジュールHSMは、キー管理システムを初期化することができる。例えば、HSMは、ユーザがクラウドサーバにユーザアカウントを作成する場合、キー管理システムに対して前記初期化を行う。具体的に、HSMは、複数の素数から1つの素数qを選択し、その後、4a+27b=0modqが成立しないように、複数の整数からqより小さい2つの非負整数a、bを選択する。したがって、方程式E:y=x+ax+bを満たす全ての点(x,y)および無限遠点O∞は、1つの楕円曲線を構成し、ここで、x、yは、0~p-1の範囲内の整数である。その後、HSMは、楕円曲線に対して離散化処理を行い、例えばy=x+ax+bmodqによって全解(x,y)∈Zおよび1つの無限遠点O∞を得る。最後に、HSMは、全解から1つの点Pを楕円曲線上の任意の点として選択し、点Pのオーダーはnである。また、HSMは、複数のハッシュ関数から条件H:{0,1}*->{0,1}1024を満足する1つのハッシュ関数を選択することができる。そのうち、当該ハッシュ関数は、任意の文字列を固定長さの文字列にマッピングすることができる。
【0035】
その後、HSMは、[1,n-1]から1つの整数sをHSMの秘密キーとして選択した後、HSMの秘密キーおよび楕円曲線上の点PからHSMの第1の公開キーを算出し、第1の公開キーS=sgPは、(S,P)と表すことができる。
【0036】
キー管理システムの初期化において、クライアントは、HSMから送信された楕円曲線上の点Pおよびn(点Pのオーダー)を受信し、その後、ユーザから入力された選択指令(例えば、前記選択指令は、クラウドサーバまたはHSMによって提供されたウェブページを介して入力される)に基づいて、[1,n-1]から1つの整数sをクライアントの秘密キーとして選択した後、クライアントの秘密キーおよび楕円曲線上の点Pからクライアントの第2の公開キーを算出することができ、第2の公開キーS=sgPは、(S,P)と表すことができる。ユーザは、クライアントを介してクライアントの秘密キーをダウンロードして、クライアントの内部メモリに記憶することができる。そのうち、前記クライアントの公開キー、秘密キーは、ユーザの公開キー、秘密キーとも呼ばれる。
【0037】
S302において、クライアントは、前記乱数、前記キー、第1の公開キー、および第2の公開キーに基づいて、前記キーの第1の暗号文を生成し、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定される。
【0038】
具体的な実現に当たって、クライアントは、楕円曲線暗号化アルゴリズムを利用して、HSMの第1の公開キー(S,P)およびクライアントの第2の公開キー(S,P)の両者に基づいてキーKの暗号文Ek(すなわち、前記第1の暗号文)を生成することができ、Ekは、例えば、下記の式1で表すことができる。
【0039】
Ek=(r・P,(S+S)・r+k),(式1)
ここで、rは乱数であり、kはキーであり、Sは第1の公開キーであり、Sは第2の公開キーである。式1から分かるように、暗号文Ekは、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーで共同して決定される。r・Pは、乱数rおよび楕円曲線上の点Pから楕円曲線上にマッピングされる点を算出することを表す。そのうち、前記ハードウェアセキュリティモジュールの秘密キーは、前記ハードウェアセキュリティモジュールが1からn-1までの区間から選択した1つの整数であり、前記クライアントの秘密キーは、前記クライアントが1からn-1までの区間から選択した1つの整数であり、前記nは、前記楕円曲線上の点のオーダーである。
【0040】
S303において、クライアントは、前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得る。
【0041】
具体的な実現に当たって、クライアントは、暗号化APIを呼び出して、前記キーおよび予め選択されたハッシュ関数に基づいてクラウドストレージデータを暗号化するための対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))を生成することができ、ここで、kはキーであり、Hはハッシュ関数である。そして、対称キーアルゴリズムを利用して、対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))に基づいて、クラウドストレージデータ(m1、m2、…、mk)を暗号化することによって、データ暗号文(Enc(m1)、…、Enc(mk))を得ることができる。
【0042】
S304において、クライアントは、前記第1の暗号文および前記データ暗号文をクラウドサーバに送信する。クラウドサーバは、前記第1の暗号文および前記データ暗号文を記憶する。例えば、図4に示すように、図4は、本発明の実施例が提供する第1の暗号文およびデータ暗号文の記憶フォーマットを示す図である。前の部分は第1の暗号文であり、後の部分はデータ暗号文である。第1の暗号文によってデータ暗号文を復号化することができる。また、第1の暗号文は、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーに基づいて生成されるため、ハードウェアセキュリティモジュールおよびクライアントが共同で第1の暗号文を復号化しなければキーを得ることができない。
【0043】
本発明の実施例では、クライアントにおいてHSMの公開キーおよびクライアントの公開キーに基づいて暗号化キーを生成することにより、クラウドサーバがKMSにおいてデータ暗号化キーを処理する必要がなく、クライアントがデータを同時に記憶する必要もなく、さらに、KMSの演算負荷およびクラウドのデータ記憶負荷を低減させた。HSMに対して、本方案では、層ごとにカバーされるようなキー構造を採用しないため、HSMによる層ごとのキーの生成、暗号化、および復号化の演算動作コストを大幅に低減させた。
【0044】
図5に示すように、図5は、本発明の実施例が提供する別のキー管理方法を示すフローチャートである。本発明の実施例は、少なくとも以下のステップを含む。
【0045】
S501において、クライアントは、ユーザの入力した操作指令に基づいて、1つの乱数および1つのキーを選択する。そのうち、前記乱数および前記キーは、共にnよりも小さく、前記nは、楕円曲線上の点のオーダーである。
【0046】
具体的な実現に当たって、例えば、ユーザは、クライアントを介してクラウドサーバにおけるキーを作成するためのウェブページにアクセスすることができる。クライアントは、ユーザが前記キーを作成するためのウェブページを介して入力した操作指令(例えば、ユーザが前記ウェブページにおけるキーを生成するためのボタンをクリックする)を受信して、前記ウェブページにおけるコードを実行することによって、1からn-1までの区間内からいずれか1つの整数を乱数として選択し、1からn-1までの区間内から1つの整数をキーとして選択することができ、前記nは、楕円曲線上の点のオーダーである。例えば、楕円曲線E:y=x+ax+bに対して、楕円曲線上の点Pについて、数乗算nP=O∞となるような最小の正の整数nが存在すると、nをPのオーダーと称し、nが存在しないと、Pは無限次である。そのうち、O∞は、当該楕円曲線上の無限遠点である。
【0047】
オプションとして、クライアントが1つの乱数および1つのキーを選択する前に、ハードウェアセキュリティモジュールHSMは、キー管理システムを初期化することができる。例えば、HSMは、ユーザがクラウドサーバにユーザアカウントを作成する場合、キー管理システムに対して前記初期化を行う。具体的には、HSMが、ユーザの入力した選択指令に基づいて複数の素数から1つの素数qを選択し、その後、4a+27b=0modqが成立しないように、複数の整数からqよりも小さい2つの非負整数a、bを選択することができる。したがって、方程式E:y=x+ax+bを満たす全ての点(x,y)および無限遠点O∞は、1つの楕円曲線を構成し、ここで、x、yは、0~p-1の範囲内の整数である。その後、HSMは、楕円曲線に対して離散化処理を行い、例えばy=x+ax+bmodqによって全解(x,y)∈Zおよび1つの無限遠点O∞を得る。最後に、HSMは、全解から1つの点Pを楕円曲線上の任意の点として選択し、点Pのオーダーはnである。また、HSMが、ユーザの入力した選択指令を受信して、複数のハッシュ関数から条件H:{0,1}*->{0,1}1024を満足する1つのハッシュ関数を選択することができる。そのうち、当該ハッシュ関数は、任意の文字列を固定長さの文字列にマッピングすることができる。
【0048】
その後、HSMは、[1,n-1]から1つの整数sをHSMの秘密キーとして選択した後、HSMの秘密キーおよび楕円曲線上の点PからHSMの第1の公開キーを算出することができ、第1の公開キーS=sgPは、(S,P)と表すことができる。
【0049】
キー管理システムの初期化において、クライアントが、HSMから送信された楕円曲線上の点Pおよびn(点Pのオーダー)を受信し、その後、ユーザの入力した選択指令(例えば、前記選択指令は、クラウドサーバまたはHSMによって提供されたウェブページを介して入力される)に基づいて、[1,n-1]から1つの整数sをクライアントの秘密キーとして選択した後、クライアントの秘密キーおよび楕円曲線上の点Pからクライアントの第2の公開キーを算出することができ、第2の公開キーS=sgPは、(S,P)と表すことができる。ユーザは、クライアントを介してクライアントの秘密キーをダウンロードして、クライアントの内部メモリに記憶することができる。そのうち、前記クライアントの公開キーや秘密キーは、ユーザの公開キーや秘密キーとも呼ばれる。
【0050】
S502において、クライアントは、前記乱数、前記キー、第1の公開キー、および第2の公開キーに基づいて前記キーの第1の暗号文を生成し、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定される。
【0051】
具体的な実現に当たって、クライアントは、楕円曲線暗号化アルゴリズムを利用して、HSMの第1の公開キー(S,P)およびクライアントの第2の公開キー(S,P)の両者からキーKの暗号文Ek(すなわち、前記第1の暗号文)を生成することができ、Ek=(r・P,(S+S)・r+k(前記の式1)となり、ここで、rは乱数であり、kはキーであり、Sは第1の公開キーであり、Sは第2の公開キーである。式1から分かるように、暗号文Ekは、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーで共同して決定される。r・Pは、乱数rおよび楕円曲線上の点Pから楕円曲線上にマッピングされる点を算出することを表す。そのうち、前記ハードウェアセキュリティモジュールの秘密キーは、前記ハードウェアセキュリティモジュールが1からn-1までの区間から選択した1つの整数であり、前記クライアントの秘密キーは、前記クライアントが1からn-1までの区間から選択した1つの整数であり、前記nは、前記楕円曲線上の点のオーダーである。
【0052】
S503において、クライアントは、前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得る。
【0053】
具体的な実現に当たって、クライアントは、暗号化APIを呼び出して、前記キーおよび予め選択されたハッシュ関数に基づいて、クラウドストレージデータを暗号化するための対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))を生成することができ、ここで、kはキーであり、Hはハッシュ関数である。そして、対称キーアルゴリズムを利用して、対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))に基づいて、クラウドストレージデータ(m1、m2、…、mk)を暗号化することによって、データ暗号文(Enc(m1)、…、Enc(mk))を得ることができる。
【0054】
S504において、クライアントは、前記第1の暗号文および前記データ暗号文をクラウドサーバに送信する。クラウドサーバは、前記第1の暗号文および前記データ暗号文を記憶する。例えば、図4に示すように、図4は、本発明の実施例が提供する第1の暗号文およびデータ暗号文の記憶フォーマットを示す図である。前の部分は第1の暗号文であり、後の部分はデータ暗号文である。第1の暗号文によってデータ暗号文を復号化することができる。また、第1の暗号文は、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーに基づいて生成されるため、ハードウェアセキュリティモジュールおよびクライアントが共同で第1の暗号文を復号化しなければキーを得ることができない。
【0055】
S505において、クライアントは、クラウドサーバに復号化要求を送信する。
【0056】
例えば、クライアントは、ユーザがクラウドサーバにおけるウェブページを介してクラウドサーバに記憶されたクラウドストレージデータにアクセスした場合、クラウドサーバに復号化要求を送信する。前記復号要求は、例えばクラウドストレージデータのファイル名、ユーザのアカウント情報、などを含むことができる。
【0057】
S506において、クラウドサーバは、ハードウェアセキュリティモジュールに前記第1の暗号文および復号化要求を送信する。
【0058】
クラウドサーバは、例えば、ユーザのアカウント情報に基づいて前記第1の暗号文を得て、前記第1の暗号文を復号化要求と共にハードウェアセキュリティモジュールに送信することができる。
【0059】
S507において、ハードウェアセキュリティモジュールは、ハードウェアセキュリティモジュールの秘密キー、楕円曲線上の点、および前記乱数に基づいて、前記第1の暗号文を復号化して、第2の暗号文を得る。
【0060】
具体的な実現に当たって、ハードウェアセキュリティモジュールは、復号化要求を受信すると、ハードウェアセキュリティモジュールの秘密キーsを用いて前記第1の暗号文を復号化して、第2の暗号文
【数1】

を、算出する。
【数2】

は、例えば下記の式2で表すことができる。
【数3】
(式2)
【0061】
式2から分かるように、第2の暗号文
【数4】

は、クライアントの第2の公開キーのみによって決定される。
【0062】
オプションとして、ハードウェアセキュリティモジュールは、クラウドサーバから送信されたデータ暗号文(Enc(m1)、…、Enc(mk))を受信して、データ暗号文(Enc(m1)、…、Enc(mk))および第2の暗号文
【数5】

をクライアントに送信することができる。
【0063】
S508において、クラウドサーバは、クライアントにデータ暗号文を送信する。好ましくは、S508は、S506の後、かつ、S507の前に実行することができる。
【0064】
S509において、ハードウェアセキュリティモジュールは、クライアントに第2の暗号文を送信する。
【0065】
S510において、クライアントは、前記第2の暗号文に基づいて前記データ暗号文を復号化して、前記クラウドストレージデータを得る。
【0066】
具体的な実現に当たって、クライアントは、前記クライアントの秘密キー、前記乱数、および前記楕円曲線上の点に基づいて、前記第2の暗号文r・P,S・r+kを復号化して、キーS・r+k-s・r・P=kを得る。その後、復号化APIを呼び出して、前記キーkおよび前記ハッシュ関数に基づいて、前記対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))を生成する。ここで、kはキーであり、Hはハッシュ関数である。最後に、前記対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))に基づいて、前記データ暗号文(Enc(m1)、…、Enc(mk))を復号化して、クラウドストレージデータ(m1、m2、…、mk)を得る。
【0067】
図6に示すように、図6は、本発明の実施例が提供する記憶負荷対比を示す図である。本発明の実施例では、AESのデータ暗号文の長さが256bitsであり、ECCの暗号文の長さが384bitsであるとする。従来では、層ごとにカバーされるような構造を採用しており、記憶エントリが同様である場合、本方案の記憶負荷は従来技術の負荷よりも小さいので、本発明の実施例を採用することにより、クラウドストレージデータの記憶効率を大幅に向上させることができる。
【0068】
本発明の実施例では、ハードウェアセキュリティモジュールがハードウェアセキュリティモジュールの秘密キー、楕円曲線上の点、および前記乱数に基づいて復号化して第2の暗号文を得た後、クライアントがクライアントの秘密キー、前記乱数、および前記楕円曲線上の点に基づいて前記第2の暗号文を復号化してキーを得るようになっている。したがって、クライアントとハードウェアセキュリティモジュールとが共にキーを提供する場面のみでは、クライアントがクラウドサーバに記憶した暗号文を復号化することができ、さらにクラウドストレージデータのプライバシー性および完全性を保証することができる。
【0069】
図7に示すように、図7は、本発明の実施例が提供するクライアントの構造を示す図である。本発明の実施例におけるクライアントは、少なくとも、選択モジュール701、処理モジュール702、および、送信モジュール703、を含む。
【0070】
選択モジュール701は、ユーザの入力した操作指令に基づいて、1つの乱数および1つのキーを選択するためのものである。そのうち、前記乱数および前記キーは、共にnよりも小さく、前記nは、楕円曲線上の点のオーダーである。
【0071】
具体的な実現に当たって、例えば、ユーザは、クライアントを介してクラウドサーバにおけるキーを作成するためのウェブページにアクセスすることができる。クライアントは、ユーザが前記キーを作成するためのウェブページを介して入力した操作指令(例えば、ユーザが前記ウェブページにおけるキーを生成するためのボタンをクリックする)を受信して、前記ウェブページにおけるコードを実行することによって、1からn-1までの区間内からいずれか1つの整数を乱数として選択し、かつ、1からn-1までの区間内から1つの整数をキーとして選択することができ、前記nは、楕円曲線上の点のオーダーである。例えば、楕円曲線E:y=x+ax+bに対して、楕円曲線上の点Pについて、数乗算nP=O∞となるような最小の正の整数nが存在すると、nをPのオーダーと称し、nが存在しないと、Pは無限次である。そのうち、O∞は、当該楕円曲線上の無限遠点である。
【0072】
オプションとして、クライアントが1つの乱数および1つのキーを選択する前に、ハードウェアセキュリティモジュールHSMは、キー管理システムを初期化することができる。例えば、HSMは、ユーザがクラウドサーバにユーザアカウントを作成する場合、キー管理システムに対して前記初期化を行う。具体的には、HSMが、ユーザの入力した選択指令に基づいて複数の素数から1つの素数qを選択し、その後、4a+27b=0modqが成立しないように、複数の整数からqよりも小さいことを満足する2つの非負整数a、bを選択することができる。したがって、方程式E:y=x+ax+bを満たす全ての点(x,y)および無限遠点O∞は、1つの楕円曲線を構成し、ここで、x、yは、0~p-1の範囲内の整数である。その後、HSMは、楕円曲線に対して離散化処理を行い、例えば、y=x+ax+bmodqによって全解(x,y)∈Zおよび1つの無限遠点O∞を得る。最後に、HSMは、全解から1つの点Pを楕円曲線上の任意の点として選択し、点Pのオーダーはnである。また、HSMが、ユーザの入力した選択指令を受信して、複数のハッシュ関数から条件H:{0,1}*->{0,1}1024を満足する1つのハッシュ関数を選択することができる。そのうち、当該ハッシュ関数は、任意の文字列を固定長さの文字列にマッピングすることができる。
【0073】
その後、HSMは、[1,n-1]から1つの整数sをHSMの秘密キーとして選択した後、HSMの秘密キーおよび楕円曲線上の点PからHSMの第1の公開キーを算出する。第1の公開キーS=sgPは、(S,P)と表す。
【0074】
キー管理システムの初期化において、クライアントが、HSMから送信された楕円曲線上の点Pおよびn(点Pのオーダー)を受信し、その後、ユーザの入力した選択指令(例えば、前記選択指令は、クラウドサーバまたはHSMによって提供されたウェブページを介して入力される)に基づいて、[1,n-1]から1つの整数sをクライアントの秘密キーとして選択した後、クライアントの秘密キーおよび楕円曲線上の点Pからクライアントの第2の公開キーを算出することができる。第2の公開キーS=sgPは、(S,P)と表す。ユーザは、クライアントを介してクライアントの秘密キーをダウンロードして、クライアントの内部メモリに記憶することができる。そのうち、前記クライアントの公開キーや秘密キーは、ユーザの公開キーや秘密キーとも呼ばれる。
【0075】
処理モジュール702は、前記乱数、前記キー、第1の公開キー、および第2の公開キーに基づいて、前記キーの第1の暗号文を生成するためのものであり、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定される。
【0076】
具体的な実現に当たって、楕円曲線暗号化アルゴリズムを利用して、HSMの第1の公開キー(S,P)およびクライアントの第2の公開キー(S,P)の両者からキーKの暗号文Ek(すなわち、前記第1の暗号文)を生成することができ、Ek=(r・P,(S+S)・r+k)となり、ここで、rは乱数であり、kはキーであり、Sは第1の公開キーであり、Sは第2の公開キーである。前記の式から分かるように、暗号文Ekは、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーで共同して決定される。r・Pは、乱数rおよび楕円曲線上の点Pから楕円曲線上にマッピングされる点を算出することを表す。そのうち、前記ハードウェアセキュリティモジュールの秘密キーは、前記ハードウェアセキュリティモジュールが1からn-1までの区間から選択した1つの整数であり、前記クライアントの秘密キーは、前記クライアントが1からn-1までの区間から選択した1つの整数であり、前記nは、前記楕円曲線上の点のオーダーである。
【0077】
処理モジュール702は、さらに、前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得るためのものである。
【0078】
具体的な実現に当たって、処理モジュール702は、暗号化APIを呼び出して、前記キーおよび予め選択されたハッシュ関数に基づいてクラウドストレージデータを暗号化するための対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))を生成することができ、ここで、kはキーであり、Hはハッシュ関数である。そして、対称キーアルゴリズムを利用して、対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))に基づいてクラウドストレージデータ(m1、m2、…、mk)を暗号化することによって、データ暗号文(Enc(m1)、…、Enc(mk))を得ることができる。
【0079】
送信モジュール703は、さらに、前記第1の暗号文および前記データ暗号文をクラウドサーバに送信するためのものである。クラウドサーバは、前記第1の暗号文および前記データ暗号文を記憶する。図4に示すように、図4は、本発明の実施例が提供する第1の暗号文およびデータ暗号文の記憶フォーマットを示す図である。前の部分は第1の暗号文であり、後の部分はデータ暗号文である。第1の暗号文によってデータ暗号文を復号化することができる。また、第1の暗号文は、ハードウェアセキュリティモジュールの第1の公開キーおよびクライアントの第2の公開キーに基づいて生成されるため、ハードウェアセキュリティモジュールおよびクライアントが共同で第1の暗号文を復号化しなければキーを得ることができない。
【0080】
オプションとして、送信モジュール703は、さらに、前記クラウドサーバに復号化要求を送信するためのものであり、前記復号化要求は、前記クラウドサーバが前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するように指示するためのものであり、前記第1の暗号文は、前記ハードウェアセキュリティモジュールが前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点、および前記乱数に基づいて前記第1の暗号文を復号化して、第2の暗号文を得るためのものである。
【0081】
オプションとして、前記クライアントは、受信モジュール704をさらに含む。
【0082】
受信モジュール704は、前記ハードウェアセキュリティモジュールから送信された前記第2の暗号文を受信するとともに、前記クラウドサーバから送信された前記データ暗号文を受信するためのものである。そのうち、ハードウェアセキュリティモジュールは、復号化要求を受信した後、ハードウェアセキュリティモジュールの秘密キーを用いて第2の暗号文
【数6】

を、算出し、
【数7】
となる。式から分かるように、第2の暗号文
【数8】

は、クライアントの第2の公開キーのみによって決定される。
【0083】
処理モジュール702は、さらに、前記第2の暗号文に基づいて前記データ暗号文を復号化して、前記クラウドストレージデータを得るためのものである。
【0084】
処理モジュール702は、さらに、前記クライアントの秘密キー、前記乱数、および前記楕円曲線上の点に基づいて前記第2の暗号文を復号化して前記キーを獲得し、前記キーおよび前記ハッシュ関数に基づいて前記対称キーシーケンスを生成し、前記対称キーシーケンスに基づいて前記データ暗号文を復号化して前記クラウドストレージデータを得るためのものである。
【0085】
具体的な実現に当たって、クライアントは、前記クライアントの秘密キー、前記乱数、および前記楕円曲線上の点に基づいて、前記第2の暗号文r・P,S・r+kを復号化して、キーS・r+k-s・r・P=kを得る。その後、復号化APIを呼び出して、前記キーkおよび前記ハッシュ関数に基づいて、前記対称キーシーケンス(H(1||k)、H(2||k)、…、H(m||k))を生成し、ここで、kはキーであり、Hはハッシュ関数である。最後に、前記対称キーシーケンスに基づいて、前記データ暗号文(Enc(m1)、…、Enc(mk))を復号化して、クラウドストレージデータ(m1、m2、…、mk)を得る。
【0086】
さらに、本発明の実施例におけるクライアントの具体的な実現方式は、前記方法の実施例におけるクライアントの動作ステップを参照することができる。
【0087】
図8に示すように、図8は、本発明の実施例が提供するクラウドサーバの構造を示す図である。本発明の実施例におけるクラウドサーバは、少なくとも受信モジュール801と、送信モジュール802とを含む。
【0088】
受信モジュール801は、クライアントから送信された第1の暗号文およびデータ暗号文を受信するためのものであり、前記第1の暗号文は、乱数、キー、第1の公開キー、および第2の公開キーに基づいて生成され、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定され、前記データ暗号文は、対称キーシーケンスに基づいてクラウドストレージデータを暗号化して得られたものであり、前記対称キーシーケンスは、前記キーおよび予め選択されたハッシュ関数に基づいて生成される。
【0089】
オプションとして、受信モジュール801は、前記クライアントから送信された復号化要求を受信するためのものである。
【0090】
送信モジュール802は、前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するためのものであり、前記第1の暗号文は、前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点、および前記乱数に基づいて、前記第1の暗号文を復号化して第2の暗号文を得るように、前記ハードウェアセキュリティモジュールに指示するためのものである。
【0091】
送信モジュール802は、前記クライアントに前記データ暗号文を送信するためのものであり、前記データ暗号文は、前記クライアントが前記第2の暗号文に基づいて復号化して前記クラウドストレージデータを得るためのものである。
【0092】
さらに、本発明の実施例におけるクラウドサーバの具体的な実現方式は、前記の方法の実施例におけるクラウドサーバの動作ステップを参照することができる。
【0093】
引き続き図9を参照すると、図9は、本発明の実施例が提供する別のクライアントの構造を示す図である。図9に示すように、当該クライアントは、少なくとも1つのプロセッサ901、少なくとも1つの通信インタフェース902、少なくとも1つのメモリ903、および、少なくとも1つの通信バス904を含む。
【0094】
そのうち、プロセッサ901は、中央処理装置ユニット、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、または他のプログラマブル論理デバイス、トランジスタ論理デバイス、ハードウェア部品、または、それらの任意の組み合わせであってよい。プロセッサ901は、本発明の開示内容に記載される様々な例示的な論理ブロック、モジュールおよび回路を実現するか、または実行することができる。前記プロセッサは、例えば1つまたは複数のマイクロプロセッサを含む組み合わせ、デジタルシグナルプロセッサとマイクロプロセッサとの組み合わせ、などのような計算機能を実現する組み合わせであってもよい。通信バス904は、PCIバスやEISAバスなどであってよい。前記バスは、アドレスバス、データバス、コントロールバスなどに分けることができる。なお、図9において、表示を容易にするために、1本の太線のみで示しているが、1本のバスまたは1種類のバスのみが存在することを示すものではない。通信バス904は、これらの構成要素の間の接続通信を実現するためのものである。そのうち、本発明の実施例における装置の通信インタフェース902は、他のノード装置とシグナリングまたはデータの通信を行うためのものである。メモリ903は、例えば、不揮発性ダイナミックランダムアクセスメモリ(nonvolatile random access memory、NVRAM)、相変化ランダムアクセスメモリ(phasechange RAM、PRAM)、磁気抵抗式ランダムアクセスメモリ(magetoresistive RAM、MRAM)、などの揮発性メモリを含むことができ、さらに、例えば、少なくとも1つの磁気ディスク記憶装置、電気的消去可能プログラマブルリードオンリーメモリ(electrically erasable programmable read-only memory、EEPROM)、例えば、NOR型フラッシュメモリ(NOR flash memory)またはNAND型フラッシュメモリ(NAND flash memory)、などのフラッシュメモリ、例えば、ソリッドステートドライブ(solid state disk、SSD)、などの半導体デバイス、などのような不揮発性メモリを含むことができる。好ましくは、メモリ903は、前記のプロセッサ901から離れた位置にある少なくとも1つの記憶装置であってもよい。好ましくは、メモリ903には、1組のプログラムコードが記憶されてもよく、そして、プロセッサ901は、メモリ903に記憶されたプログラムを実行してもよい。
【0095】
ユーザが入力した操作指令に基づいて、1つの乱数および1つのキーを選択する。
【0096】
前記乱数、前記キー、第1の公開キー、および第2の公開キーに基づいて、前記キーの第1の暗号文を生成し、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定される。
【0097】
前記キーおよび予め選択されたハッシュ関数に基づいて対称キーシーケンスを生成して、前記対称キーシーケンスに基づいてクラウドストレージデータを暗号化してデータ暗号文を得る。
【0098】
前記第1の暗号文および前記データ暗号文をクラウドサーバに送信する。
【0099】
オプションとして、プロセッサ901は、さらに、以下の動作ステップを実行してもよい。
【0100】
すなわち、前記クラウドサーバに復号化要求を送信し、前記復号化要求は、前記クラウドサーバが前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信するように指示するためのものであり、前記第1の暗号文は、前記ハードウェアセキュリティモジュールが前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点および前記乱数に基づいて前記第1の暗号文を復号化して、第2の暗号文を得るためのものである。
【0101】
前記ハードウェアセキュリティモジュールから送信された前記第2の暗号文を受信するとともに、前記クラウドサーバから送信された前記データ暗号文を受信する。
【0102】
前記第2の暗号文に基づいて前記データ暗号文を復号化して、前記クラウドストレージデータを得る。
【0103】
オプションとして、プロセッサ901は、さらに以下の動作ステップを実行してもよい。
【0104】
すなわち、前記クライアントの秘密キー、前記乱数、および前記楕円曲線上の点に基づいて、前記第2の暗号文を復号化して前記キーを得る。
【0105】
前記キーおよび前記ハッシュ関数に基づいて、前記対称キーシーケンスを生成する。
【0106】
前記対称キーシーケンスに基づいて、前記データ暗号文を復号化して前記クラウドストレージデータを得る。
【0107】
そのうち、前記乱数および前記キーは、共にnよりも小さく、前記nは、前記楕円曲線上の点のオーダーである。
【0108】
そのうち、前記ハードウェアセキュリティモジュールの秘密キーは、前記ハードウェアセキュリティモジュールが1からn-1までの区間から選択した1つの整数であり、前記クライアントの秘密キーは、前記クライアントが1からn-1までの区間から選択した1つの整数であり、前記nは、前記楕円曲線上の点のオーダーである。
【0109】
さらに、プロセッサは、メモリおよび通信インタフェースと協働して、前記の実施例におけるクライアントの動作を実行してもよい。
【0110】
引き続き図10を参照すると、図10は、本発明の実施例が提供する別のクラウドサーバの構造を示す図である。図示するように、当該クラウドサーバは、少なくとも1つのプロセッサ1001、少なくとも1つの通信インタフェース1002、少なくとも1つのメモリ1003、および、少なくとも1つの通信バス1004、を含む。
【0111】
そのうち、プロセッサ1001は、上述した各種のプロセッサであってよい。通信バス1004は、PCIバスやEISAバス、などであってよい。前記バスは、アドレスバス、データバス、コントロールバス、などに分けることができる。なお、図10において、表示を容易にするために、1本の太線のみで示しているが、1本のバスまたは1種類のバスのみが存在することを示すものではない。通信バス1004は、これらの構成要素の間の接続通信を実現するためのものである。そのうち、本発明の実施例における装置の通信インタフェース1002は、他のノード装置とシグナリングまたはデータの通信を行うためのものである。メモリ1003は、上述した各種のメモリであってよい。好ましくは、メモリ1003は、前記のプロセッサ1001から離れた位置にある少なくとも1つの記憶装置であってもよい。メモリ1003には、1組のプログラムコードが記憶され、そして、プロセッサ1001は、メモリ1003に記憶されたプログラムを実行する。
【0112】
すなわち、クライアントから送信された第1の暗号文およびデータ暗号文を受信し、前記第1の暗号文は、乱数、キー、第1の公開キー、および第2の公開キーに基づいて生成され、前記第1の公開キーは、楕円曲線上の点およびハードウェアセキュリティモジュールの秘密キーに基づいて決定され、前記第2の公開キーは、前記楕円曲線上の点および前記クライアントの秘密キーに基づいて決定され、前記データ暗号文は、対称キーシーケンスに基づいてクラウドストレージデータを暗号化して得られたものであり、前記対称キーシーケンスは、前記キーおよび予め選択されたハッシュ関数に基づいて生成される。
【0113】
第1の暗号文およびデータ暗号文を記憶する。
【0114】
オプションとして、プロセッサ1001は、さらに、以下の動作ステップを実行してもよい。
【0115】
すなわち、前記クライアントから送信された復号化要求を受信する。
【0116】
前記ハードウェアセキュリティモジュールに前記第1の暗号文を送信する。前記第1の暗号文は、前記ハードウェアセキュリティモジュールの秘密キー、前記楕円曲線上の点、および前記乱数に基づいて復号化して第2の暗号文を得るように前記ハードウェアセキュリティモジュールに指示するためのものである。
【0117】
前記クライアントに前記データ暗号文を送信する。前記データ暗号文は、前記クライアントが前記第2の暗号文に基づいて復号化して前記クラウドストレージデータを得るためのものである。
【0118】
さらに、プロセッサは、メモリおよび通信インタフェースと協働して、前記の実施例におけるクラウドサーバの動作を実行してもよい。
【0119】
前記実施例では、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせによって、全部または部分的に実現することができる。ソフトウェアによって実現する場合、コンピュータプログラム製品として全部または部分的に実現することができる。前記コンピュータプログラム製品は、1つまたは複数のコンピュータ命令を含む。前記コンピュータプログラム命令をコンピュータにロードして実行する場合、本発明の実施例に記載されるフローまたは機能を全部または部分的に生成する。前記コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置とすることができる。前記コンピュータ命令は、コンピュータ読取可能な記憶媒体に記憶され、または、1つのコンピュータ読取可能な記憶媒体から別のコンピュータ読取可能な記憶媒体に伝送されてもよく、例えば、前記コンピュータ命令は、1つのウェブサイト、コンピュータ、サーバまたはデータセンターから有線(例えば、同軸ケーブル、光ファイバ、デジタル加入者線(DSL))または無線(例えば、赤外線、無線、マイクロ波等)で別のウェブサイト、コンピュータ、サーバ、またはデータセンターに伝送されてもよい。前記コンピュータ読取可能な記憶媒体は、コンピュータがアクセス可能な任意の利用可能な媒体、または、1つまたは複数の利用可能な媒体を含んで構成されるサーバ、データセンター、などのデータ記憶装置であってもよい。前記利用可能な媒体は、磁性媒体(例えば、フロッピー(登録商標)ディスク、ハードディスク、磁気テープ)、光媒体(例えば、DVD)、または半導体媒体(例えば、ソリッドステートドライブ(SSD))などであってもよい。
【0120】
前記のような具体的な実施形態は、本発明の目的、技術方案、および有益な効果をさらに詳細に説明している。本発明の主旨と原則の範囲内で行われるいかなる修正、均等置換、改善、なども、共に本発明の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】