(57)【特許請求の範囲】
【請求項１】
ハッシュ木ベースのデータ署名を処理する方法(30)であって、前記方法(30)は第一の機器(13,13a)において実行され、
- 第二の機器(12、12a、12b)からデータ署名生成要求を受信すること(31)であって、当該要求は生成されたデータ署名のストレージのタイプについての指示を含むことと、
- 前記データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を用いてデータ署名Bを生成すること(32)と、
- 前記第二の機器(12、12a、12b)に、ストレージのタイプについての前記指示に基づいて、生成された前記データ署名Bへの参照Cを提供すること(33)であって、生成された前記データ署名Bは前記参照Cを用いて取得可能であることと、を含む方法(30)。
【請求項２】
請求項１に記載の方法(30)であって、
ストレージのタイプについての前記指示は、前記第一の機器(13,13a)によりストレージを指示するためにセットされ、前記方法(30)は生成された前記データ署名Bを格納すること、を含む方法(30)。
【請求項３】
請求項１または２に記載の方法(30)であって、
- 前記第二の機器(12、12a、12b)から、データ署名確認要求を受信することであって、当該要求はデータ資産のハッシュAと、生成された前記データ署名への前記参照Cとを含むことと、
- 前記参照Cを格納されたデータ署名Bと関連づけることと、
- 前記参照Cと格納された前記データ署名Bとの成功した関連づけに基づいて前記データ資産の完全性を確認することと、
を含む方法(30)。
【請求項４】
請求項３に記載の方法(30)であって、前記関連づけることは、
- 前記データ資産の、受信された前記ハッシュAと、生成された前記データ署名への前記参照Cとのハッシュ値D'を計算することと、
- 受信された前記参照Cを使用してデータストレージから前記データ資産のハッシュ値Aおよび前記参照Cのハッシュ値Dを取り出すことと、
- 計算されたハッシュ値D'を取り出されたハッシュ値Dと比較し、前記データ資産の、受信された前記ハッシュ値Aを、前記データ資産の、取り出されたハッシュ値Aと比較することと、を含む方法(30)。
【請求項５】
請求項１または２に記載の方法(30)であって、前記提供すること(33)は、
- 生成された前記データ署名Bへの前記参照Cのハッシュ値Eを計算することと、 
- 前記参照Cの、計算された前記ハッシュ値Eと、生成された前記データ署名Bとを格納することと、
- 前記第二の機器(12、12a、12b)に、生成された前記データ署名Bへの前記参照Cの前記ハッシュ値Eを提供することと、
を含む方法(30)。
【請求項６】
請求項５に記載の方法(30)であって、
- 前記第二の機器(12、12a、12b)から、データ署名確認要求を受信することであって、当該要求はデータ資産のハッシュAと、生成された前記データ署名Bへの前記参照Cの前記ハッシュ値Eとを含むことと、
- 前記参照Cの、受信された前記ハッシュ値Eを、生成された前記データ署名への前記参照の、格納されたハッシュ値E'と関連づけ、
- 前記参照Cの、受信された前記ハッシュ値Eと、生成された前記データ署名への前記参照の、格納された前記ハッシュ値E'との成功した関連付けに基づいて前記データ資産の完全性を確認することと、を含む方法(30)。
【請求項７】
請求項１乃至６のいずれか一項に記載の方法(30)であって、生成されたデータ署名Bを、データ資産のための前記データ署名Bが生成されたそのデータ資産と共に格納すること、を含む方法(30)。
【請求項８】
請求項１乃至７のいずれか一項に記載の方法(30)であって、前記第一の機器(13、13a)は、キーレス署名インフラストラクチャ(KSI)(10)の機器を含み、前記ハッシュ木ベースのデータ署名はKSI署名を含む方法(30)。
【請求項９】
ハッシュ木ベースのデータ署名を処理するための第一の機器(13、13a)のためのコンピュータプログラム(42)であって、前記コンピュータプログラム(42)は、前記第一の機器(13、13a)の少なくとも一つのプロセッサにおいて実行されるときに、前記第一の機器(13、13a)に、請求項１乃至８のいずれか一項に記載の方法(30)を実行させるコンピュータプログラムコードを含む、コンピュータプログラム(42)。
【請求項１０】
コンピュータプログラム製品(41)であって、請求項９に記載のコンピュータプログラム(42)と、前記コンピュータプログラム(42)が格納されたコンピュータ可読手段とを含むコンピュータプログラム製品(41)。
【請求項１１】
ハッシュ木ベースのデータ署名を処理するための第一の機器(13、13a)であって、
- 第二の機器(12、12a、12b)からデータ署名生成要求を受信し、当該要求は生成されたデータ署名のストレージのタイプについての指示を含み、
- 前記データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を用いて、データ署名Bを生成し、
- 前記第二の機器(12、12a、12b)に、ストレージのタイプについての前記指示に基づいて、生成された前記データ署名Bへの参照Cを提供し、生成された前記データ署名Bは前記参照Cを用いて取得可能である、ように構成された第一の機器(13、13a)。
【請求項１２】
請求項１１に記載の第一の機器(13、13a)であって、ストレージのタイプについての前記指示は、前記第一の機器(13、13a)によりストレージを指示するためにセットされ、前記第一の機器(13、13a)は生成された前記データ署名を格納する、ように構成された第一の機器(13、13a)。
【請求項１３】
請求項１１または１２に記載の第一の機器(13、13a)であって、
- 前記第二の機器(12、12a、12b)からデータ署名確認要求を受信し、当該要求は、データ資産のハッシュAと、生成された前記データ署名への前記参照Cとを含み、
- 前記参照Cを格納されたデータ署名Bと関連づけ、
- 前記参照Cと格納された前記データ署名Bとの成功した関連づけに基づいて前記データ資産の完全性を確認する、ように構成された第一の機器(13、13a)。
【請求項１４】
請求項１３に記載の第一の機器(13、13a)であって、
- 前記データ資産の、受信された前記ハッシュAと、生成された前記データ署名への前記参照Cとのハッシュ値D'を計算し、
- 受信された前記参照Cを使用してデータストレージから前記データ資産のハッシュ値Aおよび前記参照Cのハッシュ値Dを取り出し、
- 計算されたハッシュ値D'を取り出されたハッシュ値Dと比較し、前記データ資産の、受信された前記ハッシュ値Aを、前記データ資産の、取り出されたハッシュ値Aと比較する、ことにより関連づけを行うよう構成された第一の機器(13、13a)。
【請求項１５】
請求項１１または１２に記載の第一の機器(13、13a)であって、
- 生成された前記データ署名Bへの前記参照Cのハッシュ値Eを計算し、
- 前記参照Cの、計算された前記ハッシュ値Eと、生成された前記データ署名Bとを格納し、
- 前記第二の機器(12、12a、12b)に、生成された前記データ署名Bへの前記参照Cの前記ハッシュ値Eを提供することにより提供を行う、ように構成された第一の機器(13、13a)。
【請求項１６】
請求項１５に記載の第一の機器(13、13a)であって、
- 前記第二の機器(12、12a、12b)から、データ署名確認要求を受信し、当該要求はデータ資産のハッシュAと、生成された前記データ署名Bへの前記参照Cの前記ハッシュ値Eとを含み、
- 前記参照Cの、受信されたハッシュ値Eを、生成された前記データ署名への前記参照の、格納されたハッシュ値E'と関連づけ、
- 前記参照Cの、受信された前記ハッシュ値Eと、生成された前記データ署名への前記参照の、格納された前記ハッシュ値E'との成功した関連づけに基づいて前記データ資産の完全性を確認する、ように構成された第一の機器(13,13a)。
【請求項１７】
請求項１１乃至１６のいずれか一項に記載の第一の機器(13、13a)であって、生成された前記データ署名Bを、データ資産のための前記データ署名Bが生成されたそのデータ資産と共に格納する、ように構成された第一の機器(13、13a)。
【請求項１８】
請求項１１乃至１７のいずれか一項に記載の第一の機器(13、13a)であって、キーレス署名インフラストラクチャ(KSI)(10)の機器を含み、前記ハッシュ木ベースのデータ署名はKSI署名を含む第一の機器(13、13a)。
【請求項１９】
ハッシュ木ベースのデータ署名を処理する方法(50)であって、前記方法(50)は第二の機器(12、12a、12b)において実行され、
- 第一の機器(13、13a)へデータ署名生成要求を送信すること(51)であって、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含み、データ署名への参照の要求を示していることと、
- 当該要求に応じて、前記第一の機器(13、13a)から生成されたデータ署名への参照を受信すること(52)であって、生成された前記データ署名は前記参照を用いて取得可能であることと、を含む方法(50)。
【請求項２０】
請求項１９に記載の方法(50)であって、
- 前記第一の機器(13、13a)に、データ署名確認要求を送信することであって、当該要求はデータ資産のハッシュと、前記データ署名への前記参照とを含むことと、
- 当該要求に応じて、データ署名の確認を受信することと、を含む方法(50)。
【請求項２１】
請求項１９又は２０に記載の方法(50)であって、前記第一の機器(13、13a)から、計算されたハッシュ値を、生成された前記データ署名への前記参照として受信すること、を含む方法(50)。
【請求項２２】
ハッシュ木ベースのデータ署名を処理するための第二の機器(12、12a、12b)のためのコンピュータプログラム(62)であって、前記コンピュータプログラム(62)は、前記第二の機器(12、12a、12b)の少なくとも一つのプロセッサにおいて実行されるときに、前記第二の機器(12、12a、12b)に、請求項１９乃至２１のいずれか一項に記載の方法(50)を実行させるコンピュータプログラムコードを含む、コンピュータプログラム(62)。
【請求項２３】
コンピュータプログラム製品(61)であって、請求項２２に記載のコンピュータプログラム(62)と、前記コンピュータプログラム(62)が格納されたコンピュータ可読手段とを含むコンピュータプログラム製品(61)。
【請求項２４】
ハッシュ木ベースのデータ署名を処理するための第二の機器(12、12a、12b)であって、
- 第一の機器(13、13a)へデータ署名生成要求を送信し、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含み、データ署名への参照の要求を示しており、
- 当該要求に応じて、前記第一の機器(13、13a)から、生成されたデータ署名への参照を受信し、生成された前記データ署名は前記参照を用いて取得可能である、ように構成された第二の機器(12、12a、12b)。
【請求項２５】
請求項２４に記載の第二の機器(12、12a、12b)であって、
- 前記第一の機器(13、13a)に、データ署名確認要求を送信し、当該要求はデータ資産のハッシュと前記データ署名への前記参照とを含み、
- 当該要求に応じて前記データ署名の確認を受信する、ように構成された第二の機器(12、12a、12b)。
【請求項２６】
請求項２４又は２５に記載の第二の機器(12、12a、12b)であって、前記第一の機器(13、13a)から、計算されたハッシュ値を、生成された前記データ署名への前記参照として受信する、ように構成された第二の機器(12、12a、12b)。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示された技術は、一般に、データの完全性保護の分野と、そして特に、ハッシュ木ベースのデータ署名を処理するための方法および機器と関連する。
【背景技術】
【０００２】
伝統的なデータの完全性保護は、クライアントにインストールされるか、アプリケーションに統合されることを特定のツールに要求する。例えば、データの完全性のための一つのそのようなツールは、一定のタイプのファイル変化などの疑わしいイベントのユーザを監視して警告するソフトウェアを含み、それによってデータ資産を保護している。安全でない通信システムの上のデータの完全性保護のための選択肢は、プライベートキーが秘密にされるパブリックキー−プレイベートキーペアを利用しているパブリックキーインフラストラクチャー(PKI)ベースのデータ署名技術を使うことである。PKIにおいては、メッセージを認証し、それによってメッセージが経路中で変更されることを防止するためにデジタル署名が使われる。デジタル署名は、送信側のプライベート（署名）キーによってメッセージを暗号化し、署名が送信側の関連したパブリック（確認）キーによって解読できるならば、それにより送信者のアイデンティティを確立し、メッセージが署名されて以来、変更されていないことを確認する。
【０００３】
キーレス署名インフラストラクチャ(KSI)は、データの完全性、タイムスタンプ及び署名者識別サービスを提供している、最近のハッシュ木ベースのデータ署名技術である。KSIベースの署名技術は、継続的なキーの秘匿を仮定することなしに信頼できる完全性の保証によってデータの完全性保護において、PKIへの代替ソリューションを提供する。KSI技術は、完全性の保護対象のデータのための署名トークンを生成するためにデータハッシュとハッシュ木とを利用する。KSIは、大量のデータの完全性を保護する必要があるときはいつでも、および／または長期間のデータの完全性保護が必要とされている場合に、従来のデータ完全性保護技術と比較していくつかの利点を持っている。例えば、とても大きいので伝統的なデータ処理アプリケーションは不十分であるデータセット、いわゆるビッグデータのために、PKI技術よりKSI技術がふさわしい。
【０００４】
KSI技術は例えば、マシン−マシン環境（例えばスマートメータリング）と物のインターネット(IoT)における完全性保護のための優れた選択肢である。KSIサービスを使うことを望む機器は、データ署名要求と確認要求とを送信するためのKSIサービスに対するインターフェイスを持つ必要がある。機器は、保護対象のデータとKSI署名とを結合し、その結果KSI署名を格納する必要があり、それゆえ、これにより機器が十分に大きな記憶容量を持っていること必要がある。KSI署名の標準的なサイズは3キロバイトより大きく、KSI署名の最大サイズは最高５キロバイト(kB)まであり得る。特に、機器が、KSIサービスを使って完全性が保護される必要のあるたくさんのデータを生成する場合、記憶容量が問題になる。例えば、２４時間あたり生成された平均１０００のKSI署名は、KSI署名のみのために3メガバイト(MB)を超えるデータストレージを必要とするであろう。
【０００５】
しかし、そのような機器は一般に制限されたデータ記憶容量を持ち、その記憶容量を単に拡張することは、たとえばコストの理由や単にスペースの不足により必ずしも実現可能であるとは限らない。別の問題は、機器の中のデータ記憶容量を増大させるならば、そこからの署名の取り出しであり、例えばデジタル捜査の取り調べのために必要な場合、大量の機器から大量の署名を取り出さなければならないだろうから、それが負担となるであろう。
【０００６】
さらに、通信リンクの帯域幅は、機器への（及び機器からの）他のトラフィックの転送を危険にさらすことなく、署名転送に必要なデータ量を運ぶことが可能である必要がある。例えば、スマート機器は、無線インターフェイス（例えばGlobal System for Mobile Communications(GSM)または広帯域符号分割多重接続(WCMDA)）経由でネットワークにアクセスできるかもしれない。スマート機器のそのような無線インターフェイスは、データを送信する間にも署名転送のために必要とされているサイズのパケットを送信するために合わせて作られていないかもしれない。
【０００７】
接続された機器の数は指数的に増加していて、そのようなマシンで生成された増大するデータ量のために、改ざんおよび改変のない動作の証明を提供することができるスケーラブルなソリューションの必要性がある。
【発明の概要】
【０００８】
本開示の目的は、上述した問題の少なくとも一つを解決するか、少なくとも緩和することである。
【０００９】
前記目的は、ハッシュ木ベースのデータ署名を処理する方法によって達成される一態様に従う。前記方法は、第一の機器において実行され、第二の機器からデータ署名生成要求を受信することであって、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含むことと、前記データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を使ってデータ署名を生成することと、前記第二の機器に、生成された前記データ署名への参照を提供することであって、生成された前記データ署名は前記参照によって取得可能であることとを含む。
【００１０】
前記方法は、KSIサービスプロバイダーが改善されたサービスをそのユーザに提供することを可能にする。例えば、署名（それは、利用されるより多くの通信リソースを必要とする）の代わりに、署名への参照を提供することによって、より効率的な無線通信がKSIサービスの利用者に提供される。さらに、機器のために前記署名を記憶することによって、前記機器は、機器オーナーのための費用効率の高い解決策である大記憶容量の必要性を緩和する。従って、例えばスマート機器の要求をよりよく満たすために、この方法は既存のKSI技術に改良を提供する。
【００１１】
また、機器が故障したり或いは機能低下したりすると、機器に代えてKSIネットワークに署名を記憶することで、署名が失われるリスクが除去される。
【００１２】
第一の機器が一部であってもよいKSIネットワークの容量は、KSIインフラストラクチャ利用をより効率的にしている「中心的」署名ストレージの実施において使われうる。
前記目的は、ハッシュ木ベースのデータ署名を処理するための第一の機器のためにコンピュータプログラムによって達成された一態様に従う。前記コンピュータプログラムは、前記第一の機器の少なくとも一つのプロセッサにおいて実行されるときに、前記第一の機器に上記方法を実行させるコンピュータプログラムコードを含む。
【００１３】
前記目的は、上のようなコンピュータプログラムと前記コンピュータプログラムが記憶されるコンピュータ可読手段とを含むコンピュータプログラム製品によって達成された一態様に従う。
【００１４】
前記目的は、ハッシュ木ベースのデータ署名を処理するための第一の機器によって達成された一態様に従う。前記第一の機器は、第二の機器からデータ署名生成要求を受信し、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含み、前記データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を使ってデータ署名を生成し、前記第二の機器に、生成された前記データ署名への参照を提供し、生成された前記データ署名は前記参照によって取得可能であるように構成される。
【００１５】
前記目的は、ハッシュ木ベースのデータ署名を処理する方法によって達成される一態様に従う。前記方法は第二の機器において実行され、第一の機器に:データ署名生成要求を送信することであって、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含むことと、当該要求に応じて前記第一の機器から、生成されたデータ署名への参照を受信することであって、生成された前記データ署名は前記参照によって取得可能であることとを含む。
【００１６】
前記機器は、従来かなり大きなKSI署名の送信を含むであろうKSI技術を使うけれども、前記方法は不十分な無線インターフェイス資源の効率的な使用を可能にする。特に、署名への参照が、署名（従来技術の中でそうであるような）の代わりに送られるので、より少ない無線インターフェイス資源が必要とされ、使用されてよい。さらに、前記署名が、前記第二の機器（例えばスマート機器）中に記憶される必要がないので、違法なアクセスに対して、より脆弱でない。KSIネットワークの署名ストレージが一般に保安ゾーンにある一方、スマート機器は一般に非保安エリアにある。
【００１７】
前記目的は、ハッシュ木ベースのデータ署名を処理するために第二の機器のためのコンピュータプログラムによって達成された一態様に従う。前記コンピュータプログラムは、前記第二の機器の少なくとも一つのプロセッサにおいて実行されるときに、前記第二の機器に上記方法を実行させるコンピュータプログラムコードを含む。
【００１８】
前記目的は、上のようなコンピュータプログラムと前記コンピュータプログラムが記憶されるコンピュータ可読手段とを含むコンピュータプログラム製品によって達成された一態様に従う。
【００１９】
前記目的は、ハッシュ木ベースのデータ署名を処理するための第二の機器によって達成された一態様に従う。前記第二の機器は、第一の機器に:データ署名生成要求を送信し、当該要求は、生成されたデータ署名のストレージのタイプについての指示を含み、当該要求に応じて前記第一の機器から、生成されたデータ署名への参照を受信し、生成された前記データ署名は前記参照によって取得可能であるように構成される。
本教示の実施形態のさらなる機能と利点は、以下の説明と添付図面を読んだときに明りょうになるであろう。
【図面の簡単な説明】
【００２０】
【図１】図１は、キーレス署名インフラストラクチャシステムを説明する図である。
【図２】図２は、確認処理におけるハッシュチェーンを説明する図である。
【図３】図３は、本教示の実施形態に従う要素間のシグナリングフローを説明する図である。
【図４】図４は、本教示に従う実施形態を実施できる環境を説明する図である。
【図５】図５は、本教示に従って第一の機器における方法の実施形態のステップにわたるフローチャートを説明する図である。
【図６】図６は、本教示に従って方法の実施形態を実施するための第一の機器および手段を概略的に説明する図である。
【図７】図７は、本教示の実施形態を実施するための機能モジュール／ソフトウェアモジュールを含む第一の機器を説明する図である。
【図８】図８は、本教示に従って第二の機器における方法の実施形態のステップにわたるフローチャートを説明する図である。
【図９】図９は、本教示に従って方法の実施形態を実施するための第二の機器および手段を概略的に説明する図である。
【図１０】図１０は、本教示の実施形態を実施するための機能モジュール／ソフトウェアモジュールを含む第二の機器を説明する図である。
【発明を実施するための形態】
【００２１】
以下の説明では、説明の目的のため且つ限定されることなしに、十分な理解を提供するために、特定のアーキテクチャ、インターフェイス、テクニックなどを含む具体的な詳細が記述される。他の例では、周知の機器、回路、および方法の詳細な説明は、不要な詳細のせいで説明が不明りょうにならないよう割愛される。説明を通して、同一または同様の要素を同じ参照番号で参照する。
【００２２】
完全さのために、および本教示の十分な理解を提供するために、キーレス署名インフラストラクチャ(KSI)技術のいくつかの基礎についての説明が最初に与えられる。
【００２３】
図１はKSIアーキテクチャの構成要素を説明し、また本教示の一形態を実施できる環境である。KSIネットワークは4つの主なレイヤを含む。
【００２４】
第一のレイヤは、KSI適合アプリケーションのためのKSIユーザアプリケーションレイヤである。KSI適合アプリケーション100（以下ではKSIアプリケーションまたはKSIクライアントとも記す）は、KSIネットワーク１の使用により署名されるデータのソースである。KSIアプリケーション100は、KSIゲートウェイレイヤ200の署名サービスおよび拡張／確認サービスと通信するために、キーレス署名インフラストラクチャソフトウェア開発キット(KSI SDK)101のアプリケーションプログラミングインターフェイス(API)を統合する。KSIにおいて、署名対象のデータはKSIアプリケーション100によってハッシュ値が計算され、そのための署名を獲得するためにハッシュ値はKSIネットワーク1に送信される。署名要求の文脈において、データそれ自身はKSIアプリケーション100から送出されず、そのハッシュ値のみであることに注意すべきである。
【００２５】
KSIアプリケーション100は、データハッシュを生成するために任意のタイプのクリプトライブラリを使用してよく、あるいは、KSI SDIのハッシュ機能サポートを使用してもよい。背景の部分で述べたとおり、データの完全性の確認を提供することができるように、KSIアプリケーションは、従来技術によると、署名トークンを記憶し、何らかの形で、例えばメタデータにより、またはデータアイテムとともに署名トークンを記憶することによって、それをそれぞれのデータアイテムとリンクしなければならない。代わりにKSIネットワーク1中に署名を記憶し、署名への参照と共にKSIアプリケーション100を提供することによって、本教示はこの要件を取り除く。
【００２６】
第二のレイヤはゲートウェイレイヤ200である。KSIゲートウェイ(GW)は、KSIアプリケーション100とKSIネットワーク1との間のインターフェイスを提供し、KSIアプリケーション100からのデータ署名および確認／拡張要求を処理する。KSI GWは、KSIアプリケーション100から送信されたデータハッシュを統合するグローバルアグリゲーションハッシュ木の第一レベルを実施する。KSI GWから署名要求が、たとえばユーザデータグラムプロトコル(UDP)ベースのプロトコルを用いて、アグリゲーションネットワークレイヤ300に進む。署名要求は、特定のKSI GWにサービスするクラスタ内の全ての親アグリゲータ301、302、303に送信される。
【００２７】
第三のレイヤはアグリゲーションネットワークレイヤ300である。KSIにおいて、アグリゲータと呼ばれる要素ハッシュ木が用いられ、各アグリゲータは非同期に動作する。図１において、そのような一つのアグリゲータが参照番号310で示されている。アグリゲータ310は入力としてハッシュ値をとり、ルートハッシュ値を生成し、そのルートハッシュ値を一つ以上の親アグリゲータに送信する。
【００２８】
ゲートウェイレベルアグリゲーションとも呼ばれるグローバルアグリゲーションの第一レベルからのルートハッシュは、アグリゲーションネットワーク300に送信される。アグリゲーションネットワーク300はアグリゲータと呼ばれる分散型アグリゲーションサーバを含み、それはグローバルな分散型アグリゲーションネットワークを含む。弾力性の理由から、アグリゲータはサーバクラスタとして展開されてもよい。各クラスタメンバは子アグリゲータから同じ入力要求を受信し、それらは非同期の方法で独立して実行される。アグリゲーションネットワークレイヤ300はアグリゲーションの第二レベルである。
【００２９】
第四のレイヤはコアクラスタレイヤである。コアクラスタ400は、相異なるデータセンタに置かれた地理的に分散したサーバを含み、トップレベルアグリゲーションハッシュ木、カレンダハッシュ木、カレンダデータベース401、および公開機能402を実行する。アグリゲーションネットワーク300によって生成されるトップルートハッシュ値は、カレンダデータベース401に、例えば毎秒一回格納される。カレンダハッシュ木403は、葉ノード（毎秒一つの葉）としてトップアグリゲーションハッシュ木（図１において説明された一つのみ）のトップルートハッシュ値を使って築かれた特殊なタイプのハッシュ木である。公開機能402は、印刷物および電子メディア（例えばインターネット）で定期的に公開される公開コードと公開チェックタイムとを含む値の集合であり、公開ファイルの中に格納される。公開コードは、署名を確認するために使われる文字列である。
【００３０】
図２は、確認処理におけるハッシュチェーンを説明し、ハッシュチェーンの構造化の原則の簡単な説明も提供する。
【００３１】
KSI機器は、データ資産、例えば文書のハッシュをKSIサービスに送り、データ署名トークンを受け取る（それは、データが所与の時間において一定の形で存在していたこと、及び、要求が具体的なアクセスポイントを通して受け取られたという証拠である）。すべての受け取られた要求は大きなハッシュ木の中に一緒に統合される。署名トークンは、署名されたハッシュ値（葉、例えば図２のX3）から始まりトップハッシュ値（図２のX18）へのハッシュ木を通るパスを再構成するためのデータを含んでいる。例えば、X3にオリジナルデータハッシュを表示させ、ｙを完全性が確認される同じデータの新しいハッシュ値とする。そして、図２の右側のハッシュチェーンによって説明されるように、ノードX4、X12、およびX58は、y4の生成のための連結順序情報のために必要である。すなわち、yは初めにX4と連結され、ハッシュ値y2=h(y|X4)が計算される（それは次のハッシュステップへの入力としてX12ともに使用され、y4などを与える）。y4=X18であるなら、yはX3に等しくなければならず、従ってX3は、データ上でX3が生成されたそのデータが変更されていないことを証明するオリジナルのハッシュ木の一部であったにちがいない。それゆえ、y4=X18であるなら、y4はオリジナルのハッシュ木（図２の左側）中のにあったと仮定することは安全である。
【００３２】
再び図１を参照し、アグリゲーションネットワーク構造を高レベルで説明する。アグリゲーションネットワーク300の最低レベルのアグリゲーションハッシュ木は、多くのゲートウェイからルートハッシュを受け取り、そのハッシュ木の葉としてそれらを設定し、これらを、図２を参照して上述した原則に従って新しいルートハッシュ値に統合する。それから、新しいルートハッシュはそれぞれ、次のルートハッシュ（第三のレベルのアグリゲーション）を生成する次の上位レベルアグリゲーションハッシュ木（親アグリゲータ）に送られる。それから、このアグリゲーションレベルによって生成されたトップルートハッシュは、最終的なトップレベルアグリゲーションが実行されるコアクラスタ400に送られる。
【００３３】
冗長性の理由で、子アグリゲータからのルートハッシュはアグリゲータクラスタの中のいくつかの親アグリゲータに送られる。子アグリゲータによって上位レベルアグリゲータからの最初の応答は受け付けられ、その後の応答は破棄される。
【００３４】
簡単に述べたとおり、本教示は、データを所有し、それを保護するためにＫＳＩネットワークを利用する機器へと実際のKSI署名を返す代わりに、署名自体はKSIネットワークに格納する一方、その署名への参照のみが返される。
【００３５】
追加のオプションとして、本教示に応じて、特にそれらのデータを格納するために十分な記憶容量を持っていない機器のために、KSIネットワークの中に、たとえば署名データベース中にデータ自体も一緒に格納できる。記憶容量を持っている機器についても、例えばセキュリティ上の理由から、データ自体をKSIネットワークの中に格納してもよい。
【００３６】
データの完全性が確認される必要がある場合、KSIを利用することにも適合されたKSI対応機器、および／またはそのデータの受信側は、KSIネットワークストレージから署名を得るために署名への参照を使用してよい。
【００３７】
図３は本教示の様々な態様を説明する。KSI署名要求および確認要求を受信し、処理する第一の機器13、例えばゲートウェイを含むKSIネットワーク10が説明される。KSIゲートウェイ14により以下に例示される第一の機器13は、KSIクライアント12と通信するよう構成される。
【００３８】
KSIネットワーク10は１以上のデータストレージ14を含んでもよい。そのようなデータストレージ14は、KSIネットワーク10のオペレータが、説明したように、KSIクライアントのためにデータ資産を格納することなどのサービスの提供を可能にするために利用されてよい。
【００３９】
例えば、例えば図１および図２を参照して説明したように、KSIネットワーク10は、ハッシュベースのデータ署名技術を提供するために、多くのサーバ、仮想マシン、および他の処理機器、ゲートウェイなども含んでよい。KSIネットワーク10は、それゆえ、コアクラスタ、アグリゲーションネットワーク、および確認者ネットワーク（図３におけるカレンダデータベースによって例示される）を含んでよい。アグリゲーションサーバのレイヤの数などのKSIネットワーク10の詳細は、本教示のために重要ではなく、図１及び図２を参照して説明したような従来のKSIネットワークに従ってよい。KSIネットワーク10は例えば公表機能など、説明されていない、よりさらなる従来の要素を含んでよい。
【００４０】
第二の機器12も図３の中で説明され、それは一般的にはKSIネットワーク10の一部ではない。第二の機器12はKSIネットワーク10により提供されるサービスを探すKSIクライアントである。KSI適合クライアントまたはKSIアプリケーションとも呼ばれるKSIクライアント12はKSIソフトウェア開発キット(SDK)11（アプリケーションプログラミングインターフェイス(API)）を統合する。KSI SDK11は、KSIネットワーク10により提供されるKSIサービスに対して必要とされるインターフェイスを提供する。データ署名要求はKSIクライアント12からKSI SDK11を介して送られ、それはまたデータ確認ロジックと、KSIインターフェイス10に対する必要な確認インターフェイスとを提供する。KSI SDK11は、データとKSI署名とを結合すること、及び、KSI署名を格納すること、あるいは、本教示の実施形態に従い署名への参照を格納することについて実行能力がある。
【００４１】
KSIクライアント12はたとえば、任意のタイプの物のインターネット(IoT)機器、すなわち、インターネットへの接続性、一般的には無線接続性を持つ任意のタイプの機器であってよい。KSIクライアント12はたとえば、インターネット及び／又は移動ネットワークへ接続された任意の機器またはアプリケーションを参照するいわゆるスマート機器を含んでよい。KSIクライアント12は、スマートグリッドすなわち情報を集める（そしてそのうえで動作する）ための通信技術を用いる電子的グリッドの機器を含んでよい。KSIクライアント12の他の例は、心臓モニタリングインプラント、センサネットワークのセンサ機器などを含む。
【００４２】
KSIクライアント12がインターネット接続性を持つ必要はなく、それはKSIネットワーク10、例えばそのKSIゲートウェイ13と通信することができる必要があることに注意すべきである。例えばKSIクライアント12は、例えばGSM、WCDMA、長期発展(LTE)、3G、4G、5G、または、IEEE802.11（無線ローカルエリアネットワーク、WLAN）または802.16(WiMAX)ファミリのものなどのアクセス技術、またはさらに他の無線通信システムなどの無線インターフェイスを使って、移動通信ネットワークの上でKSIゲートウェイ13と通信することができる。KSIクライアント12は、一つ以上の仲介機器（図4を参照して例示されるような）経由で間接的にKSIゲートウェイ13と通信することができる。例えば、KSIクライアント12がセンサネットワークのセンサ機器であるならば、それは例えばWLAN上でセンサネットワークのゲートウェイと通信してよい。センサネットワークのゲートウェイはそのときKSIネットワーク10と通信し（直接または他の機器経由で間接的に）、第一レベルのアグリゲーションを提供してよい。
【００４３】
次に、本教示の様々な態様を、図３を参照して説明する。
【００４４】
KSIクライアント12例えばセンサ機器は、保護対象のデータ資産を持ち、これを遂行するためにKSIネットワーク10を利用する。データ資産は任意の情報の断片、たとえば測定値、文書または他のデータを含んでよい。
【００４５】
A1で示す矢印において、KSIクライアント12のKSI SDI11はその結果署名生成を要求するための署名要求を送信する。生成されるべき署名はKSIクライアント12により、データ資産を保護するために利用されてよい。署名要求はKSIゲートウェイ13に送信される。
【００４６】
署名要求はまた、本教示に従い、KSI機器12がネットワークベースの署名ストレージを欲することについての指示を含む。それはすなわち、KSIネットワーク10がKSI機器12のために生成する署名を格納すべきことの指示である。一例として、インジケータINW_Storageを定義でき、それはKSI機器12がネットワークベースの署名ストレージを持つことを望むか否かを示す。もし例えばインジケータINW_Storageがセットされるなら、そのときはKSI機器12が署名をKSIネットワーク10により格納することを欲し、もしセットされないなら、そのときは、KSI機器12は、KSIネットワーク10が生成した署名をそれ自身で格納する。それゆえ署名要求はしかるべく設定されたインジケータINW_Storageを含む。インジケータINW_Storageは、「ネットワークベースの署名ストレージが要求された」を明示する。
【００４７】
A2により示された矢印において、KSIネットワーク10は、例えば図１および図２を参照して説明した従来の方法で（すなわち既存のKSI技術に従って）、上流および下流の要求を処理する。
【００４８】
A3により示された矢印において、新しいインジケータINW_Storageがセットされるため、KSIゲートウェイ13は、完全なKSIデータ署名を返す代わりに、生成されたKSIデータ署名への参照のみをKSI機器12（具体的にはそのKSI SDK11）に返す。この参照は、署名のハッシュ値、ハッシュ値と統合時間を示すタイムスタンプとの組、またはハッシュ値のみを含む。
【００４９】
KSI機器12またはむしろそのうちのKSI SDK11が受信して格納する参照の完全性を保護するために、参照のハッシュが計算でき、対応するKDIデータ署名と共にKSIゲートウェイ13に格納できる。
【００５０】
A4においてKSI機器12（そのKSI SDK11）はオリジナルデータを受信した参照と結合しその情報を格納する。
【００５１】
矢印A5において、署名はKSIネットワーク10例えばデータストレージ14に格納される。KSIゲートウェイ13は、新しいパラメータ「KSI署名のためのネットワークストレージアドレス」が事前に設定されてよい。この情報は署名の格納場所を決定するために利用してよい。KSIゲートウェイ13は、提案されたパラメータ「KSI署名のためのネットワークストレージアドレス」を用いて、参照に対応する署名を見つけてよい。
【００５２】
A6a，A6bにより示される矢印において署名確認が実行される。署名確認において、KSI機器12は、オリジナルデータのハッシュとKSIゲートウェイ13への格納された参照とを送信する（矢印A6a)。KSIゲートウェイ13は、完全な署名と関連付けるために、データストレージ14に格納されている参照を使用して(矢印A6b)、確認要求を始動させる。ある実施形態では、確認要求は、KSIゲートウェイ13に対してそれが署名を取り出すべきであることを指示するために、署名が中央に格納されていることの指示を含んでよい。他の実施形態においては、KSI SDKは、KSIゲートウェイ13が、確認要求中の失われたKSI署名を処理する方法、たとえば署名のネットワークベースのストレージの場合かどうかをチェックする方法を理解するよう適合されてもよい。
【００５３】
KSIゲートウェイ13はまた、受信した参照のハッシュをとり、それを参照についての格納されたハッシュと比較することで参照の完全性を確認してもよいし、或いは、ハッシュのみが参照として使用されるなら、そのときにはKSI GWが、KSI機器12から受信したハッシュ値が署名の内部に格納されたものと一致するかチェックする。
【００５４】
矢印A7において、確認要求の結果はKSI機器12に返される。
【００５５】
背景部において述べたように、スマートメータの無線インターフェイスは、大きなパケットサイズを送信するために合わせて作られていなくともよい。かなり大きなサイズのKSIデータ署名を、スマートメータの読み取り処理の間に無線インターフェイス上で前後に送信することによる無線資源の消費を避けるために、KSIデータ署名は、スマートメータの読み取り処理の間はネットワークベースの署名ストレージ（例えば中央メータリングデータベース）に保持できる。
【００５６】
図４は、スマートメータの文脈において実施される本教示の態様を説明する。二つのスマートメータ12a，12bが説明され、それらはそれらのデータ例えば測定値を無線通信ネットワーク上で通信するよう構成されてよい。図４において無線通信ネットワークはLTEネットワークにより例示される。その結果スマートメータ12a，12bは、無線通信ネットワークのネットワークノード15a，15b例えばeノードBと通信するためのインターフェイス及び他の手段を含んでよい。他の例においては、センサネットワークのスマートメータ12a，12bは、例えばWLAN上でセンサネットワークのゲートウェイと通信し、同様に例えばLTEネットワーク上でKSIネットワーク10、特にそのうちのKSIゲートウェイ13aと通信する。
【００５７】
矢印A10において、スマートメータ読み出しが開始される。読み出しは、スマートメータのアプリケーションを提供するシステムによって自動的に開始されて、例えばサービスアクセスゲートウェイ（参照番号22で示される）によって開始されてよい。読み出しは、代わりに、管理者（参照番号21で示される）によって手動で開始されてもよい（矢印A10b）。
【００５８】
矢印A11で、スマートメータ12a（それのスマートメータアプリケーション）は署名要求をKSIゲートウェイ13aに送る。署名要求は、KSIゲートウェイ13aに到着する前に多くのノード、例えば無線通信ネットワークのノードを通り抜けてよい。そのようなノードの例は、eNodeB 15a、無線ネットワークコントローラ(RNC)18、在圏GPRSサポートノード(SGSN)19、ゲートウェイGPRSサポートノード(GGSN)20などを含む。
【００５９】
署名要求は、本教示に従って、新しい情報「ネットワークベースの署名ストレージが要求された」を含む。この新しい情報INW_Storageも、図３を参照して説明され、その説明は本実施形態のためにも有効であり、そのためここでは繰り返さない。
矢印A12において、KSIネットワーク10は、既存の技術においてそうであるように上流と下流における署名要求を処理する（例えばKSIゲートウェイ13aが得るKSIデータ署名を生成する）。
【００６０】
矢印A13において、受信されたKSIデータ署名は、要求通りに、ネットワークベース署名ストレージの中に格納されてよい。説明されたケースでは、生成されたKSIデータ署名は中央メータリングデータベース14aの中に格納される。
【００６１】
矢印A14において、新しいインジケータINW_Storageがセットされるため、KSIゲートウェイ13aは、完全なKSIデータ署名を返す代わりに、署名への参照のみスをマートメータ12aに返す。従って、制限された無線インターフェイス資源の消費は、完全なKSIデータ署名を送ることに比べて減らされる。
【００６２】
矢印A15において、スマートメータ12a（特にそれのKSIアプリケーション）は、現在の読み出し（保護対象のデータ資産である）を受信された参照と結合し、サービスアクセスゲートウェイ22に例えばハッシュ値としてそれらを送る。
【００６３】
矢印A16において、KSIゲートウェイ13aは署名ストレージ14aからKSIデータ署名を読み、受信されたハッシュを読み出されたKSIデータ署名と比較する。
【００６４】
矢印A17において、スマートメータ12aから受信したハッシュとKSIデータ署名が一致したなら、メータ読み出しの結果とKSIデータ署名とが中央メータリングデータベース14aに格納される。
【００６５】
最低のスマートメータ12bは、その資産を保護するためにまた上記のスキームを使ってもよい。最上のスマートメータ12aが、サービスアクセスゲートウェイ22と通信するために汎用パケット無線サービス(GPRS)コアネットワークのノードを使う一方、最低のスマートメータ12bは、パケットデータネットワーク(PDN)への終端ゲートウェイとしてPDN GW17を使ってサービスアクセスゲートウェイ22と通信する。
【００６６】
以下において、署名要求と確認要求とが要約される。
【００６７】
署名要求
データの所有者たとえばスマートメータ12a，12bは、保護対象となるデータ資産（例えば測定値）を所有する。機器12，12a，12bはデータのハッシュを計算する：
A=hash(データ)
値Aは、KSIゲートウェイ13，13aへと、署名要求の中で送られ、その要求には、本教示に従うインジケータすなわちネットワークに格納された署名が要求されることを示すインジケータを含む。KSIゲートウェイ13，13aはAに関連する署名Bを生成する：
B=signing(A)
次に、KSIゲートウェイ13，13aは署名Bへの参照Cを生成する。
C=ref(B)
説明したように、Cはデータ資産のハッシュであってよく（C=A）、Cは署名のハッシュまたはデータのハッシュ+タイムスタンプなどであってよい。
KSIゲートウェイ13、13aはそれから参照C:のハッシュを計算してよい。
D=hash(C)
KSIゲートウェイ13、13aはA、B、CおよびDを格納する。
KSIゲートウェイ13、13aは参照Cを機器12、12a、12bに返す。
機器12、12a、12bはデータ資産と受信した参照Cとを格納する。
【００６８】
確認要求
機器12，12a，12bは、確認対象のデータのハッシュを計算する：
A=hash(データ)
機器12、12a、12bはそれから値Aと値Cとを確認要求の中でKSIゲートウェイ13、13aに送る。
KSIゲートウェイ13、13aは、受信した参照C及びハッシュA:のハッシュD'を計算する
D=hash(A,C)
次にKSIゲートウェイ13、13aは、ストレージの中のA、B、C及びDを見つけるために参照Cを使用し、計算した値D'が格納した値D一致すること、および確認要求中のAがストレージ中のAと一致することをチェックする。
最後に、KSIゲートウェイ13、13aは、格納された署名Bに対して受信したハッシュAを照合する。
【００６９】
これまでに説明された様々な実施形態と特徴は、さまざまな方法で結合でき、その例が図５を最初に参照して以下に与えられる。
【００７０】
図５は、本教示に従う第一の機器における方法の実施形態のステップにわたるフローチャートを説明する図である。ハッシュ木ベースのデータ署名を処理する方法30は、例えばキーレス署名インフラストラクチャーネットワーク10のゲートウェイなどの第一の機器13、13aにおいて実行されてよい。
【００７１】
方法30は、第二の機器12、12a、12b（例えばセンサネットワークの機器）からデータ署名生成要求を受信すること31を含む。その要求は生成されたデータ署名のストレージのタイプについての指示を含む。
【００７２】
方法30は、データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を用いてデータ署名Bを生成すること32を含む。
【００７３】
方法30は、第二の機器12、12a、12bに、生成されたデータ署名Bへの参照C,C=ref(B)を提供すること33を含み、ここで生成されたデータ署名Bは参照Cを用いて取得可能である。
【００７４】
一実施形態において、ストレージのタイプについての指示は、第一の機器13、13aによるストレージを指示するためにセットされ、方法30は、生成されたデータ署名Bを格納することを含む。生成されたデータ署名を格納することは、第一の機器13、13aがデータ署名を、第一の機器13、13aの中で利用可能なデータストレージに格納することか、或いは第一の機器13、13aにアクセス可能な第一の機器13、13aの外部のデータストレージにデータ署名を格納することを含んでよい。
【００７５】
一実施形態では、方法30は以下を含む：
- 第二の機器12、12a、12bから、データ署名確認要求を受信することであって、当該要求はデータ資産のハッシュA（A=hash(データ資産)）と、生成されたデータ署名Bへの参照C（C=ref(B)）とを含み、
- 参照Cを格納されたデータ署名Bと関連づけること、および
- 参照Cと格納されたデータ署名Bとの成功した関連づけに基づいてデータ資産の完全性を確認すること。
上記実施形態の変形例において、関連付けることは以下を含む：
- 受信されたデータ資産のハッシュA（A=hash(データ資産)と生成されたデータ署名Bへの参照C（C=ref(B)）のハッシュ値D'（D'=hash(A，C)）を計算することと、
- 受信された参照Cを使用してデータストレージからデータ資産のハッシュ値Aおよび参照Cのハッシュ値Dを取り出すことと、
- 計算されたハッシュ値D'を、取り出されたハッシュ値Dと比較し、データ資産の、受信されたハッシュ値Aを、データ資産の、取り出されたハッシュ値Aと比較すること。
【００７６】
一実施形態では、提供すること33は以下を含む：
- 生成されたデータ署名Bへの参照Cのハッシュ値E（E=hash(C)，C=ref(B)）を計算することと、
- 参照Cの、計算されたハッシュ値E（E=hash(C)）を格納し、さらに生成されたデータ署名Bを格納することと、
- 第二の機器12、12a、12bに生成されたデータ署名Bへの参照Cのハッシュ値Eを提供すること。
【００７７】
参照Cを提供する代わりに、参照Cのハッシュ値Eを提供することによって、さらにいっそう改善されたセキュリティが提供される。第一の機器13、13aは、対応する参照Cおよび対応するデータ署名Bと同様にハッシュ値Eを格納するため、データ署名Bは第一の機器13、13aによって容易に確認できる。
【００７８】
上記実施形態の変形例において、方法は以下を含む：
- 第二の機器12、12a、12bから、データ署名確認要求を受信することであって、当該要求はデータ資産のハッシュA（A=hash(データ資産))と、生成されたデータ署名Bへの参照Cのハッシュ値E（E=hash(C)，C=ref(B)）とを含み、
- 参照Cの、受信されたハッシュ値E（E=hash(C)）を、生成されたデータ署名Bへの参照Cの、格納されたハッシュ値E'と関連づけることと、
- 参照Cの、受信されたハッシュ値Eと、生成されたデータ署名への参照の、格納されたハッシュ値E'との成功した関連付けに基づいてデータ資産の完全性を確認すること。すなわち、第一の機器13、13aが受信するE（E=hash(C)）が、以前に（特に計算されたときに）格納されたE'（E'=hash(C)）と等しいなら、データ資産の完全性は確認される。
【００７９】
様々な実施形態において、方法30は、生成されたデータ署名Bを、データ資産のための前記データ署名Bが生成されたそのデータ資産と共に格納することを含む。
【００８０】
様々な機器のうち、第一の機器13、13aは、キーレス署名インフラストラクチャ10(KSI)の機器を含み、ハッシュ木ベースのデータ署名はKSI署名を含む。
【００８１】
図６は、本教示に従う方法の実施形態を実施するための第一の機器および手段を概略的に説明する図である。
【００８２】
第一の機器13、13aは、メモリ41に格納されたソフトウェア命令を実行することが可能な、中央演算処理装置(CPU)、マルチプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路などのうちの一つ以上の任意の組合せを含むプロセッサ40を含み、その結果メモリ41はコンピュータプログラム製品41であり得る。プロセッサ40は、例えば図５に関連して説明したように、方法の様々な実施形態のどれでも実行するよう構成できる。
【００８３】
メモリ41は、読み出し書き込みメモリ(RAM)と読み出し専用メモリ(ROM)、フラッシュメモリ、磁気テープ、コンパクトディスク(CD)-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスクなどの任意の組み合わせであってよい。メモリ41はまた、例えば、磁気メモリ、光メモリ、固体メモリ、または離れて設置されたメモリの任意の一つまたは組み合わせでであってよい持続的なストレージを含む。 
第一の機器13、13aはまた、他のエンティティ、例えば、生成されたか、或いは確認された署名を持つことを望んでいる様々なクライアントと通信するための入出力デバイス43（図６においてI/Oにより示されている）を含む。第一の機器13、13aがKSIネットワーク10の一部であるなら、その場合、入出力デバイス43は、KSIネットワークの中で他のエンティティと通信するために使用されてよい。第一の機器13、13aはまた、入出力デバイス43を用いて第二の機器12、12a、12bと通信してもよい。第一の機器13、13aのそのような入出力デバイス43は、無線通信インターフェイス（例えば無線インターフェイス）、および／または有線通信インターフェイスを含んでよい。
【００８４】
第一の機器13、13aはまた、本教示に従う様々な実施形態を実施するために、参照番号44で図式的に示された追加の処理回路を含んでよい。
【００８５】
本教示は、第一の機器13、13aのためのコンピュータプログラム42を提供する。コンピュータプログラム42は、第一の機器13、13aの少なくとも一つのプロセッサ40において実行されるときに、それについて説明した任意の実施形態に従って第一の機器13、13aに方法30を実行させるコンピュータプログラムコードを含む。
【００８６】
本開示はまた、説明したような方法の実施形態を実施するためのコンピュータプログラム42と、コンピュータプログラム42を格納するコンピュータ読み出し可能媒体とを含んでいるコンピュータプログラム製品41を包含する。コンピュータプログラム製品41は、先に述べたように、ランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)、フラッシュメモリ、磁気テープ、コンパクトディスク(CD)-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスクなどの任意の組み合わせであってよい。
【００８７】
ハッシュ木ベースのデータ署名を処理するための第一の機器13、13aが提供される。第一の機器13、13aは以下のように構成される：
- 第二の機器12、12a、12bからデータ署名生成要求を受信し、当該要求は生成されたデータ署名のストレージのタイプについての指示を含み、
- 前記データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を用いてデータ署名Bを生成し、
- 前記第二の機器12、12a、12bに、生成された前記データ署名への参照C,を提供し、生成された前記データ署名は前記参照Cを用いて取得可能である。
【００８８】
前記第一の機器13、13aは、例えば、一つ以上のプロセッサ40とメモリ41を含むことによって上記のステップを実行するよう構成されてよく、メモリ41はプロセッサ40によって実行可能な命令を含んでおり、それにより前記第一の機器13、13aは前記ステップを実行するために働く。いくつかのプロセッサ40（不図示）の場合には、それらは、前記方法30のすべてのステップまたは前記ステップの一部のみを実行するよう構成されてよい。
【００８９】
一実施形態において、ストレージのタイプについての前記指示は、前記第一の機器13、13aによりストレージを指示するためにセットされ、前記第一の機器13、13aは、生成された前記データ署名を格納するよう構成される。
【００９０】
一実施形態において、前記第一の機器13、13aは以下のように構成される：
- 前記第二の機器12、12a、12bから、データ署名確認要求を受信し、当該要求はデータ資産のハッシュAと、生成された前記データ署名への前記参照Cとを含み、
- 前記参照Cを格納されたデータ署名Bと関連づけ、
- 前記参照Cと格納された前記データ署名Bとの成功した関連づけに基づいて前記データ資産の完全性を確認する。
【００９１】
上記実施形態の一変形例において、前記第一の機器13、13aは、以下により関連付けるように構成される：
- 前記データ資産の、受信された前記ハッシュAと、生成された前記データ署名への前記参照Cとのハッシュ値D'を計算し、
- 受信された参照Cを使用してデータストレージから前記データ資産のハッシュ値Aおよび前記参照Cのハッシュ値Dを取り出し、
- 計算されたハッシュ値D'を取り出されたハッシュ値Dと比較し、前記データ資産の、受信された前記ハッシュ値Aを、前記データ資産の、取り出されたハッシュ値Aとを比較する。
【００９２】
様々な実施形態において、前記第一の機器13、13aは以下によって提供されるよう構成される：
- 生成された前記データ署名Bへの前記参照Cのハッシュ値Eを計算し、
- 前記参照Cの、計算された前記ハッシュ値Eと、生成された前記データ署名Bとを格納し、
- 前記第二の機器12、12a、12bに生成された前記データ署名Bへの前記参照Cのハッシュ値Eを提供する。
【００９３】
上記実施形態の一変形例において、前記第一の機器13、13aは、以下のように構成される：
- 前記第二の機器12、12a、12bから、データ署名確認要求を受信し、当該要求はデータ資産のハッシュAと、生成された前記データ署名Bへの前記参照Cのハッシュ値Eとを含み、
- 前記参照Cの、受信されたハッシュ値Eを、生成された前記データ署名への前記参照の、格納されたハッシュ値E'と関連づけ、
- 前記参照Cの、受信された前記ハッシュ値Eと、生成された前記データ署名への前記参照の、格納された前記ハッシュ値E'との成功した関連づけに基づいて前記データ資産の完全性を確認する。
【００９４】
様々な実施形態において、前記第一の機器13、13aは、生成された前記データ署名Bを、データ資産のための前記データ署名Bが生成されたそのデータ資産と共に格納するよう構成される。
【００９５】
様々な実施形態において、前記第一の機器13、13aは、キーレス署名インフラストラクチャ10(KSI)の機器を含み、ハッシュ木ベースのデータ署名は、KSI署名を含む。
【００９６】
図７は、本教示の実施形態を実施するための機能モジュール／ソフトウェアモジュールを含む第一の機器を説明する図である。
【００９７】
一態様において、手段、例えば、プロセッサで実行されるコンピュータプログラムなどのソフトウェア命令を用いて、かつ／または、特定用途向け集積回路、プログラム可能ゲートアレイ、離散論理コンポーネントなどのハードウェア、またはそれの任意の組み合わせを用いて実装できる機能モジュールまたはユニットが提供される。
【００９８】
ハッシュ木ベースのデータ署名を処理するための第一の機器が提供される。前記第一の機器は、第二の機器からデータ署名生成要求を受信するための第一のユニット51を有し、当該要求は生成されたデータ署名のストレージのタイプについての指示を含む。そのような第一のユニット51は、例えば、そのような要求を受け取るための処理回路、および／または通信インターフェイス（例えば図６を参照して説明されたユニット44および／または43）を含んでよい。
【００９９】
前記第一の機器は、データ署名生成要求に応じて、ハッシュ木ベースのデータ署名方法を用いてデータ署名を生成するための第二のユニット52を含む。そのような第二のユニット52は、例えば、ハッシュ木ベースのデータ署名方法を用いてデータ署名を生成するように適合された処理回路（例えば図６のユニット44）を含む。
【０１００】
前記第一の機器は、生成されたデータ署名への参照を前記第二の機器に提供するための第三のユニット53を含み、生成された前記データ署名は、前記参照を用いて取得可能である。そのような第三のユニット53は、例えば、送信のための処理回路、および／または通信インターフェイス（例えば図６を参照して説明されたユニット44および／または43）を含む。
【０１０１】
図８は、本教示に従って第二の機器における方法の実施形態のステップにわたるフローチャートを説明する図である。
【０１０２】
ハッシュ木ベースのデータ署名を処理する方法50は、第二の機器12、12a、12b（例えばスマート機器など）において実行されてよい。前記方法50は、前記第一の機器13、13aへデータ署名生成要求を送信すること51を含み、当該要求は生成されたデータ署名のストレージのタイプについての指示を含む。
【０１０３】
方法50は、前記要求に応じて、前記第一の機器13、13aから生成されたデータ署名Bへの参照Cを受信すること52を含み、生成された前記データ署名Bは前記参照C(C=ref(B))を用いて取得可能である。
【０１０４】
たとえKSI技術が前記第一の機器13、13aにより使われたとしても、例えば、モバイルのネットワーク（例えば3G、4G）または、IEEE802.11（ワイヤレスローカルエリアネットワーク(WLAN)）または802.16(WiMAX)ファミリなどのアクセス技術または他の無線通信システムに接続されていれば、方法50は不十分な無線インターフェイス資源の効率的な使用を可能にする。さらに、署名が第二の機器（たとえばスマート機器である）の外に格納されるので、署名は違法なアクセスに対して強い。署名ストレージが一般に保安ゾーンの中にある一方、スマート機器は一般に非保安エリアにある。さらに、署名がスマート機器の外に格納される場合、データ受信の終了により行われるデータ完全性確認がより簡単になる。特に、データの受信側が確認をするなら、署名はデータの受信側に送信される必要がないが、代わりに（中央の）ネットワークベースのストレージから直接それにアクセスすることができる。
【０１０５】
一実施形態では、方法50は以下を含む：
- 前記第一の機器13、13aに、データ署名確認要求を送信することであって、当該要求はデータ資産のハッシュと、データ署名への参照とを含むことと、
- 当該要求に応じて、データ署名の確認を受信すること。
一実施形態において、方法50は、前記第一の機器13、13aから、計算されたハッシュ値を、生成されたデータ署名への参照として受信することを含む。
【０１０６】
図９は、本教示に従って方法の実施形態を実施するための第二の機器12、12a、12bおよび手段を概略的に説明する図である。
【０１０７】
第二の機器12、12a、12bは、メモリ61に格納されたソフトウェア命令を実行することが可能な、中央演算処理装置(CPU)、マルチプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路などのうちの一つ以上の任意の組合せを含むプロセッサ60を含み、その結果メモリ61はコンピュータプログラム製品61であり得る。プロセッサ60は、例えば図８に関連して説明したように、方法の様々な実施形態のどれでも実行するよう構成できる。
【０１０８】
メモリ61は、読み出し書き込みメモリ(RAM)と読み出し専用メモリ(ROM)、フラッシュメモリ、磁気テープ、コンパクトディスク(CD)-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスクなどの任意の組み合わせであってよい。メモリ61はまた、例えば、磁気メモリ、光メモリ、固体メモリ、または離れて設置されたメモリの任意の一つまたは組み合わせでであってよい持続的なストレージを含む。
【０１０９】
第二の機器12、12a、12bはまた、他のエンティティと通信するための入出力デバイス63（図９においてI/Oにより示される）を含む。例えば、第二の機器12、12a、12bがセンサデバイスかつセンサネットワークの一部である場合、第二の機器12、12a、12bはセンサネットワークの中で他のエンティティと通信してよい。第二の機器12、12a、12bはまた、入出力デバイス63を用いて第一の機器13、13aと通信してもよい。第二の機器12、12a、12bのそのような入出力デバイス63は、無線通信インターフェイス（例えば無線インターフェイス）、および／または有線通信インターフェイスを含んでよい。
【０１１０】
第二の機器12、12a、12bはまた、本教示に従う様々な実施形態を実施するために、参照番号64で図式的に示された追加の処理回路を含んでよい。
【０１１１】
本教示は、第二の機器12、12a、12bのためのコンピュータプログラム62を提供する。コンピュータプログラム62は、第二の機器12、12a、12bの少なくとも一つのプロセッサ60において実行されるときに、それについて説明した任意の実施形態に従って第二の機器12、12a、12bに方法50を実行させるコンピュータプログラムコードを含む。
【０１１２】
本開示はまた、説明したような方法の実施形態を実施するためのコンピュータプログラム62と、コンピュータプログラム62を格納するコンピュータ読み出し可能媒体とを含んでいるコンピュータプログラム製品61を包含する。コンピュータプログラム製品61は、先に述べたように、ランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)、フラッシュメモリ、磁気テープ、コンパクトディスク(CD)-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスクなどの任意の組み合わせであってよい。
【０１１３】
ハッシュ木ベースのデータ署名を処理するための第二の機器12、12a、12bが提供される。前記第二の機器12、12a、12bは以下のように構成される：
- 第一の機器13、13aへデータ署名生成要求を送信し、当該要求は生成されたデータ署名のストレージのタイプについての指示を含み、
- 当該要求に応じて、前記第一の機器13、13aから生成されたデータ署名への参照を受信し、生成された前記データ署名は前記参照を用いて入手可能である。
【０１１４】
前記第二の機器12、12a、12bは、例えば、一つ以上のプロセッサ60とメモリ61を含むことによって上記のステップを実行するよう構成されてよく、前記メモリ61は前記プロセッサ60によって実行可能な命令を含んでおり、それにより前記第二の機器12、12a、12bは前記ステップを実行するために働く。いくつかのプロセッサ60（不図示）の場合には、それらは、前記方法50のすべてのステップまたは前記ステップの一部のみを実行するよう構成されてよい。
【０１１５】
一実施形態において、前記第二の機器12、12a、12bは以下のように構成される：
- 前記第一の機器13、13aに、データ署名確認要求を送信し、当該要求はデータ資産のハッシュと、前記データ署名への前記参照とを含み、
- 当該要求に応じて、前記データ署名の確認を受信する。
【０１１６】
一実施形態において、第二の機器12、12a、12bは、前記第一の機器13、13aから、計算されたハッシュ値を、生成された前記データ署名への参照として受信する。前記データ署名への参照のハッシュを計算することにより、前記参照も完全性が保護され、さらに増強したデータ完全性を提供する。
【０１１７】
図１０は、本教示の実施形態を実施するための機能モジュール／ソフトウェアモジュールを含む第二の機器を説明する図である。
【０１１８】
一態様において、手段、例えば、プロセッサで実行されるコンピュータプログラムなどのソフトウェア命令を用いて、かつ／または、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、離散論理コンポーネントなどのハードウェア、またはそれの任意の組み合わせを用いて実装できる機能モジュールまたはユニットが提供される。
【０１１９】
ハッシュ木ベースのデータ署名を処理するための第二の機器が提供される。前記第二の機器は、第一の機器へデータ署名生成要求を送信するための第一のユニット71を有し、当該要求は生成されたデータ署名のストレージのタイプについての指示を含む。そのような第一のユニット71は、例えば、そのような要求を送信するための処理回路、および／または通信インターフェイス（例えば図９を参照して説明されたユニット64および／または63）を含んでよい。
【０１２０】
前記第二の機器は、生成されたデータ署名への参照を前記第一の機器から受信するための第二のユニット72を含み、生成された前記データ署名は、前記参照を用いて取得可能である。そのような第二のユニット72は、例えば、そのような参照を受け取るための処理回路、および／または通信インターフェイス（例えば図９を参照して説明されたユニット64および／または63）を含んでよい。
【０１２１】
本発明は少数の実施形態を参照してここで説明した。しかしながら、当業者には理解されるように、ここで開示した特定の実施形態以外の他の実施形態が、添付の特許クレームにより定義されたように、本発明の範囲内で同様にあり得る。
【図１】
0006517952.tif 000002
【図２】
0006517952.tif 000003
【図３】
0006517952.tif 000004
【図４】
0006517952.tif 000005
【図５】
0006517952.tif 000006
【図６】
0006517952.tif 000007
【図７】
0006517952.tif 000008
【図８】
0006517952.tif 000009
【図９】
0006517952.tif 000010
【図１０】
0006517952.tif 000011