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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-538027単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名
<>
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図1
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図2
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図3
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図4
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図5
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図6
  • 特表-単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-18
(54)【発明の名称】単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名
(51)【国際特許分類】
   H04L 9/32 20060101AFI20241010BHJP
   H04L 9/08 20060101ALI20241010BHJP
   G09C 1/00 20060101ALI20241010BHJP
【FI】
H04L9/32 200A
H04L9/08 B
G09C1/00 650Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024521146
(86)(22)【出願日】2021-10-15
(85)【翻訳文提出日】2024-05-16
(86)【国際出願番号】 US2021055170
(87)【国際公開番号】W WO2023063957
(87)【国際公開日】2023-04-20
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】スホムリノフ,バディム
(72)【発明者】
【氏名】プロニン,アンドレイ・バディモビチ
(72)【発明者】
【氏名】リンク,ジェット
(72)【発明者】
【氏名】ケルブル,シュテファン
(57)【要約】
本文書は、単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名に向けられた技術および装置を説明する。レイトン-ミカリシグネチャ(LMS)ランダム化パラメータを取得すること(502)のすぐ後に、プロビジョニングサーバが、複数個のサイナの間で、LMSランダム化パラメータを共有すること(504)を行うことがある。次に、プロビジョニングサーバは、各サイナに、一意的な開始リーフインデックス番号を関連付けること(506)を行い、サイナの各々に通知すること(508)を行うことがある。サイナは、次いで、レイトン-ミカリワンタイムシグネチャ(LM-OTS)シグネチャのためのランダムシードを創出し、ローカルLM-OTSおよびLMS公開鍵を生成することがある。ローカル公開鍵を生成した後に、サイナは、ローカルLMS公開鍵をプロビジョニングサーバと共有することがある。ローカルLMS公開鍵の受信(510)のすぐ後に、プロビジョニングサーバは、次いで、ローカルLMS公開鍵を順序付けすること(512)を行い、共通LMS公開鍵を生成すること(514)を行うことがある。プロビジョニングサーバは、次いで、順序付きリスト、共通LMS公開鍵、およびマークルツリーパスを、サイナの各々に対してプロビジョニングすること(516)を行い得る。
【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
レイトン-ミカリシグネチャ(LMS)ランダム化パラメータを取得することと、
1つまたは複数のサイナの間で、前記LMSランダム化パラメータを共有することと、
前記サイナの各々に、一意的な開始リーフインデックス番号を関連付けることと、
前記サイナの各々に通知することとを含み、前記通知することは、前記サイナの各々に、各サイナが関連付けられる前記一意的な開始リーフインデックス番号、リーフインデックスの範囲、および、マークルツリーの目標高さを送信することを含み、
前記コンピュータが実行する方法は、
前記サイナの各々から、ローカルLMS公開鍵を受信することと、
受信された前記ローカルLMS公開鍵を順序付けすることとをさらに含み、前記順序付けすることは、受信されたローカルLMS公開鍵の順序付きリストを結果的に生じさせ、
前記コンピュータが実行する方法は、
共通LMS公開鍵を生成することと、
前記サイナの各々に対してプロビジョニングすることとをさらに含み、前記プロビジョニングすることは、前記順序付きリスト、前記共通LMS公開鍵、およびマークルツリーパスを、前記サイナの各々に送信することを含み、
前記コンピュータが実行する方法は、
前記サイナの各々を検証することをさらに含み、前記検証することは、前記共通LMS公開鍵を取得することである、コンピュータが実行する方法。
【請求項2】
前記LMSランダム化パラメータは、LMS鍵ペア識別子である、請求項1に記載のコンピュータが実行する方法。
【請求項3】
前記サイナは、ホストに動作可能に結合されているポータブル署名デバイスであり、前記ポータブル署名デバイスは、セキュリティハードニングされた集積回路網を有する、請求項1に記載のコンピュータが実行する方法。
【請求項4】
前記コンピュータが実行する方法は、プロビジョニングサーバ上で実行される、請求項1に記載のコンピュータが実行する方法。
【請求項5】
前記LMSランダム化パラメータを取得することは、前記LMSランダム化パラメータを、前記プロビジョニングサーバにおいて、前記サイナのうちの1つから受信することを含む、請求項4に記載のコンピュータが実行する方法。
【請求項6】
前記LMSランダム化パラメータを取得することは、前記プロビジョニングサーバにおいて、前記LMSランダム化パラメータを生成することを含む、請求項4に記載のコンピュータが実行する方法。
【請求項7】
前記プロビジョニングサーバの暗号モジュールにおいて、ワンタイムシグネチャ(OTS)スキームをマークルツリー構造と組み合わせる、ステートフルなハッシュベースのシグネチャ(HBS)スキームを実行することをさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項8】
前記ステートフルなHBSスキームは、SHA-256を実行するように構成されたLMSスキームである、請求項7に記載のコンピュータが実行する方法。
【請求項9】
前記順序付きリストを前記サイナに提供することは、前記サイナの各々がマークルツリーの一部を生成することを可能にし、前記マークルツリーは、各それぞれのサイナと関連付けられる、請求項4に記載のコンピュータが実行する方法。
【請求項10】
マークルツリーを計算し、前記サイナの各々に、低性能のハードウェア上での署名を加速するために前記マークルツリーの一部をキャッシュすることを行わせることをさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項11】
ローカルLMS公開鍵を前記サイナの各々に対してプロビジョニングすることを、前記サイナの各々に、前記プロビジョニングすることの後に独立して動作することを行わせるのに効果的に行うことをさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項12】
レイトン-ミカリワンタイムシグネチャ(LM-OTS)公開鍵を、前記プロビジョニングサーバにおいて計算することをさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項13】
共通LMS公開鍵によって前記サイナの各々が独立して署名するということを検証することをさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項14】
完全なマークルツリーを、セキュアにされた、およびアクセス可能な前記プロビジョニングサーバにおいて生成し、オフラインチャネルを使用して前記サイナの各々に対して、使用されるシード、および、前記マークルツリーの少なくとも一部分をプロビジョニングして戻すこと
をさらに含む、請求項4に記載のコンピュータが実行する方法。
【請求項15】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、前記プロセッサにいずれかの先行する請求項に記載の方法を遂行することを行わせる命令を含む、少なくとも1つのコンピュータ可読記憶媒体と
を含む、プロビジョニングサーバ。
【発明の詳細な説明】
【背景技術】
【0001】
背景
モノのインターネット(IoT)デバイスは、安全、輸送、通信、および製造の領域においてなどで、現代社会への有意の寄与をなす。IoTデバイスをそれほど有用にすることの一態様は、定期的に更新され、以て、とあるソフトウェア特徴を修正または拡張することの、それらのIoTデバイスの能力である。しかしながら、悪人が、ファームウェア更新と偽装された、IoTデバイスにマルウェアを送り届けることをやり遂げたならば、デバイスは、機能不全になり、機微データを暴露し、または、安全でなく動作し得る。そのようなサイバー攻撃を挫折させるために、数多くのセキュリティ対策が、無許可の、デバイスデータおよび通信へのアクセス、ならびに、デバイスデータおよび通信の操作を防止するために、コンピューティングデバイス上で実行される。これらのセキュリティ対策は、リベスト-シャミア-エーデルマン(RSA)および楕円曲線デジタルシグネチャアルゴリズム(ECDSA)を含む非対称暗号化アルゴリズムに基づくデジタルシグネチャスキーム(digital signature scheme)を利用することを含むことがある。そのようなデジタルシグネチャスキームは、メッセージ、ソフトウェア、またはデジタル文書の真正性および完全性の妥当性を確認するために用いられる数学的スキームである。これらのデジタルシグネチャスキームは、メッセージの受信者に、メッセージが、知られている送信者によって生成されたということ、および、そのメッセージが、いつか送信中に操作されなかったということを自覚するための確信を与える。
【0002】
これらの非対称暗号化アルゴリズムのうちの多くのセキュリティは、古典的なコンピューティング技術を使用して、整数因数分解(integer factorization)問題、一般的な離散対数問題、および楕円曲線離散対数問題を解くことの困難度に左右される。この想定、具体的には、古典的なコンピューティング技術のみの利用は、量子コンピューティングにおける発展に起因して、もはや当てになり得ない。例えば、ショアのアルゴリズムなどの量子コンピューティングアルゴリズムが、整数因数分解問題、一般的な離散対数問題、および楕円曲線離散対数問題を解くことの背後のセキュリティを弱体化させる、力まかせ探索(brute-force search)のための二次加速(quadratic speedup)をもたらすことがある。結果として、量子コンピュータの助力を伴う悪人は、メッセージを解読する、または、任意のメッセージ上のデジタルシグネチャを偽造さえする、および潜在的には、IoTデバイス内へとマルウェアを注入することができることがある。
【0003】
応じて、量子コンピュータによって遂行されるサイバー攻撃に対してセキュアであると考えられている、ハッシュベースのシグネチャスキームが標準化されている。実例として、米国国立標準技術研究所(NIST)特別刊行物(SP)800-208は、量子コンピュータサイバー攻撃に対して抵抗性が高いように理論化された、ステートフルなハッシュベースのシグネチャスキームのための推奨(Recommendation for Stateful Hash-Based Signature Schemes)を提供している。これらのステートフルなハッシュベースのシグネチャスキームのセキュリティは、土台となる暗号ハッシュ関数のセキュリティに依存する。
【0004】
現在の技術は、すべての私有鍵を所有する現代のサーバなどの、シングル署名サービス(single signing service)上でのハッシュベースのシグネチャスキームの効率的な実行形態を可能にする。そのような実行形態において、署名サービスは、鍵生成および鍵署名を実行するために要される計算容量を保有することがある。それでも、そのような実行形態は、ファイアウォールが存在するときなど、署名サービスにアクセスすることが、困難である、または信頼できないことが判明するときに、無力であることがある。例えば、様々な国における開発チームが、ファイアウォールに起因して、サーバにアクセスする能力をもたないことがあり、結果として、ファームウェア更新に署名することができないことがある。
【発明の概要】
【0005】
概要
本文書は、単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名に向けられた技術および装置を説明する。レイトン-ミカリシグネチャ(Leighton-Micali signature)(LMS)ランダム化パラメータ(randomized parameter)を取得することのすぐ後に、プロビジョニングサーバが、複数個のサイナの間で、LMSランダム化パラメータを共有することを行うことがある。次に、プロビジョニングサーバは、各サイナに、一意的な開始リーフインデックス番号を関連付けることを行い、サイナの各々に通知することを行うことがある。サイナは、次いで、レイトン-ミカリワンタイムシグネチャ(Leighton-Micali one-time signature)(LM-OTS)シグネチャのためのランダムシードを創出し、ローカルLM-OTSおよびLMS公開鍵を生成することがある。ローカル公開鍵を生成した後に、サイナは、ローカルLMS公開鍵をプロビジョニングサーバと共有することがある。ローカルLMS公開鍵の受信のすぐ後に、プロビジョニングサーバは、次いで、ローカルLMS公開鍵を順序付けすることを行い、共通LMS公開鍵を生成することを行うことがある。プロビジョニングサーバは、次いで、順序付きリスト、共通LMS公開鍵、およびマークルツリーパスを、サイナの各々に対してプロビジョニングすることを行い得る。
【0006】
本概要は、詳細な説明において下記でさらに説明される、および、図面において例解される、単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名についての簡略化された概念を紹介するために提供されるものである。本概要は、請求される主題事項の本質的な特徴を識別することを意図されず、本概要は、請求される主題事項の範囲を決定することにおける使用もまた意図されない。
【0007】
単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名についての1つまたは複数の態様の詳細が、後に続く図面を参照して、本文書において説明される。
【図面の簡単な説明】
【0008】
図1】一例のコンピューティングデバイスを含む、一例の動作環境を例解する図である。
図2】本明細書において説明される暗号技術および他のセキュリティ機能を実行する能力をもつ、一例のポータブル署名デバイスを含む、一例の動作環境を例解する図である。
図3】一例のプロビジョニングサーバを含む、一例の動作環境を例解する図である。
図4】複数個の署名デバイスに動作可能に結合されている、および、プロビジョニングサーバにリンクされていることが行われている、コンピューティングデバイスを含む、一例の動作環境を例解する図である。
図5】鍵生成のための、一例の技術を例解する図である。
図6】一例のコンピューティングデバイスに動作可能に結合されている、一例のポータブル署名デバイスを含む、一例の動作環境を例解する図である。
図7】鍵署名のための、一例の技術を例解する図である。
【0009】
異なる実例における同じ番号の使用は、同様の特徴または構成要素を指示することがある。
【発明を実施するための形態】
【0010】
詳細な説明
概観
暗号解析および量子コンピューティングの分野における進歩が、多くのデジタルシグネチャスキームのセキュリティを弱体化させることがある。大規模量子コンピュータが開発されると、例えば、これらのコンピュータは、現在用いられている公開鍵暗号システムの大部分に打ち勝つための、ショアのアルゴリズムなどのアルゴリズムに基づく攻撃を遂行する能力をもつことがあるということが予想される。ポスト量子暗号の目標は、量子コンピュータが実在することがある将来の暗号動作コンテキストを予想すること、および、これらの量子コンピュータからの潜在的な将来の攻撃に対して抵抗性が高い暗号システムを開発することである。結果として、ポスト量子暗号システム(例えば、多くのキュービットを有する量子コンピュータに対してセキュアなシステム)が標準化されている。標準化された、およびやがて規定されるポスト量子暗号システムについて、多くの技術が、すべての私有鍵を所有し、ステートフルなハッシュベースのシグネチャスキームを実行する、シングル署名サービスの想定において概説されている。ポスト量子暗号システムの多くのそのような実行形態は、いくつかの実例において望ましくないことがある。例えば、ファイアウォールが存在するときなど、すべての私有鍵を有する署名サービスにアクセスすることが、困難である、またはいくつかの実例において不可能であることがあるときである。
【0011】
対照的に、本文書は、単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名に向けられた技術および装置を説明する。これらの技術によって、複数個のオフラインサイナが、ステートフルなハッシュベースのシグネチャスキームを、セキュアな、ただし低性能の回路網において実行し得るものであり、そのスキームは、それらのサイナが、単一レベルマークルツリーに、独立して署名することを可能にする。
【0012】
ハッシュベースのシグネチャスキーム
ハッシュベースのシグネチャ(HBS)スキームは、ワンタイムシグネチャ(OTS)スキームをマークルツリー構造と組み合わせる。OTSスキームは、鍵ペアごとに1つのメッセージにセキュアに署名するために、一方向関数(例えば、計算結果を逆関数で処理する、または、計算結果を逆方向に処理することが事実上実現不可能である関数)を用いるデジタルシグネチャスキームである。OTSスキームは、単一のメッセージに署名するために使用されるのみであるべきであり、なぜならば、システムは、2つ以上のメッセージが、同じ公開および私有鍵ペアを使用して署名されるならば、よりセキュアでなくなることがあるからである。2つ以上のメッセージが、同じ公開および私有鍵ペアを使用して署名されるならば、デジタルシグネチャを偽造することが、攻撃者にとって数学的に実現可能になる。OTSスキーム鍵は、単一のメッセージにセキュアに署名するのみであるべきであるので、多くのそのような鍵を、単一の、より大きい構造(例えば、マークルツリー)の中で組み合わせることが実用的である。
【0013】
OTS鍵の再使用を回避するために、私有鍵のステートが、シグネチャが生成される各回に更新されることがある。OTS鍵を実行し、私有鍵を更新するHBSスキームは、それゆえにステートフルと説明され得る(例えば、以前のトランザクションのコンテキストによって遂行されるプロセス)。例えば、私有鍵が不揮発性メモリ内に記憶されているならば、鍵のステートは、OTS鍵を使用して生成された対応するシグネチャがエクスポートされる前に、OTS鍵を利用不可能とマーキングするように、不揮発性メモリ内で更新されることがある。
【0014】
ステートフルなHBSスキームは、単に、OTSスキームの、土台となる一方向関数によって与えられるセキュリティのレベルと同じほどセキュアである。例えば、ステートフルなOTSスキームは、一方向関数によって計算されたダイジェストの原像または第2原像を見いだすことが実現不可能である限りにおいてセキュアである。例示的な一方向関数は、ハッシュ関数を含む。ワンタイムシグネチャを計算するためにハッシュ関数を使用するOTSスキームは、大規模量子コンピュータを受け付けないと考えられている。ハッシュ関数は、実例として、セキュアハッシングアルゴリズム(SHA)(例えば、SHA-256、SHA-256/192、SHAKE256/256、SHAKE256/192)を含むことがある。これらのハッシュ関数は、種々のコンピュータ解釈可能オブジェクトのうちの任意のものを入力し、固定されたサイズの文字列(例えば、16進数)を出力し得る。ハッシュ関数は、一般的には、原像計算困難性(例えば、不可逆性)および衝突困難性などの、有用な暗号特性を有する。
【0015】
レイトン-ミカリシグネチャ(LMS)スキームは、ハッシュ関数およびOTSスキームを実行することがある、一例のステートフルなHBSスキームである。例えば、LMSスキームは、レイトン-ミカリワンタイムシグネチャ(LM-OTS)スキームを、そのLMSスキームのOTSスキームとして実行することがある。LM-OTSシグネチャは、秘密私有鍵を、共有されている公開鍵と関連付けることによって、メッセージの真正性の妥当性を確認するために使用されることがある。LMSスキームにおいて、私有鍵は、LM-OTS私有鍵の大きいセット(例えば、アレイ)を含むことがある。LMSインスタンスのために鍵ペアを生成するとき、システムにおける各LM-OTS鍵は、NIST SP800-208の第4節において概説されているのと同じパラメータセットを使用することがある。LM-OTS公開鍵は、繰り返しハッシング関数を適用し、次いで、結果的に生じる値をハッシュすることによって、私有鍵から生成されることがある。LMSスキームのために使用されるハッシュ関数は、LM-OTS鍵において使用される関数と同じであることがある。LM-OTS私有鍵のフォーマットは、システムの実行形態によって規定される任意の構成のものであることがある。例えば、私有鍵は、個別のLM-OTSアルゴリズムを指示するタイプコードと、nバイト文字列を内包するアレイ(例えば、nの値は、LM-OTSアルゴリズムの一部としての使用のために選択されたハッシュ関数によって決定される)と、パラメータ(例えば、LM-OTSがどのマークルツリーとともに使用されるかを指示する16バイト文字列パラメータ)と、4バイトパラメータ(例えば、OTS公開鍵が出現するマークルツリーのリーフを指示する32ビット整数パラメータ)とを含むことがある。
【0016】
LMSスキームは、LM-OTSスキームをマークルツリー構造と組み合わせることがある。例えば、各LMS公開および私有鍵ペアは、完全バイナリマークルツリーと関連付けられることがある。マークルツリーは、リーフノードと、中間ノードの群と、ルートノードとを有する非線形バイナリデータ構造である。リーフノードは、データ要素のハッシュ値を含むことがある。マークルツリーの各中間ノードは、ハッシュ関数を、その各中間ノードの2つの対応する子ノードの値の連結に適用することによって計算されることがある。ルートノードは、マークルツリーの単数の最終ノードであることがある。マークルツリーの利用は、システムが、全部のデータセットにアクセスする必要なしに、個別のデータ要素を識別および/または検証することを可能にすることがある。
【0017】
さらに、マークルツリーは、単一の公開鍵のもとで、大きい数のOTSインスタンスを一体に結び付けることを、それによって行うための効率的な方法をもたらし得る。例えば、マークルツリーは、2個のOTSインスタンスを利用することがあり、それらのOTSインスタンスの公開鍵は、単一の公開鍵を生成するために、バイナリマークルツリーによって一体でハッシュされる。そのようにすることにおいて、単一の公開鍵は、OTSインスタンスのすべてを一体に結び付けることがあり、そのことが、単一の公開鍵からの2個のシグネチャの生成を可能にする。マークルツリーの各リーフは、LM-OTS公開および私有鍵ペアの公開鍵の値を内包し得る。マークルツリーのルートによって内包される値は、LMS公開鍵(例えば、OTS公開鍵の再帰的ハッシュ)であることがある。マークルツリーの私有鍵は、次のメッセージにそれによって署名するための次のOTS私有鍵のインデックスと一体での、すべてのOTS私有鍵のコレクションであることがある。
【0018】
階層シグネチャスキーム(HSS)が、LMSスキームの上部上に構築されることがあり、そのことが、より大きい数のシグネチャへの効率的なスケーリングを可能とする。マークルツリーのシーケンスが、HSSシステムに含まれることがある。例えば、マークルツリーは、いくつもの、より小さいツリーへと細分割され得る。最も下部のマークルツリーのみが、メッセージに署名するために使用されることがあり、一方で、上方の、マークルツリー、または、より大きいマークルツリーの一部が、それらの子の公開鍵に署名するために使用されることがある。
【0019】
本文書において、1層HSSシステムと共存可能であり、一方で、鍵生成および維持についてのNIST標準を満たす実行形態である技術が説明される。各サイナは、マークルツリーの、その各サイナ自体の一部を独立して生成し得る。後に続く論考は、動作環境、動作環境において用いられることがある技術、および例方法を説明する。本開示の文脈において、単に例として、動作環境を参照する。
【0020】
動作環境
後に続く論考は、動作環境、動作環境において用いられることがある技術、および、動作環境の構成要素が具現され得る様々なデバイスまたはシステムを説明する。本開示の文脈において、単に例として、動作環境を参照する。
【0021】
図1は、一例のコンピューティングデバイス102を含む、一例の動作環境100を例解する。図1において例解されるように、コンピューティングデバイス102は、デスクトップコンピュータである。他の実行形態において、コンピューティングデバイス102は、ラップトップ、タブレット、または類するものであることがある。コンピューティングデバイス102は、他の機能を提供する、または、明確さもしくは視覚的簡潔さのために図1から省略された構成要素もしくはインターフェースを含むことがある。
【0022】
コンピューティングデバイス102は、プリント回路板アセンブリ104(PCBA104)を含み、そのPCBA104上で、コンピューティングデバイスの構成要素およびインターコネクトが具現される。代わりに、または加えて、コンピューティングデバイス102の構成要素は、フレキシブル回路材料または他の絶縁材料などの、他の基板上で具現され得る。示されないが、コンピューティングデバイス102は、さらには、収容部、様々なヒューマン入力デバイス、ディスプレイ、バッテリパック、アンテナ、および類するものを含むことがある。一般的には、コンピューティングデバイス102の電気構成要素および電気機械構成要素は、PCBA104を形成するために、プリント回路板(PCB)上へと取り合わせられる。PCBA104の様々な構成要素(例えば、プロセッサおよびメモリ)は、次いで、PCBA104の正しい機能を検証するためにプログラムおよび試験される。PCBA104は、収容部内へと、コンピューティングデバイス102の他の部分に接続され、または、それらの部分と取り合わせられる。
【0023】
例解されるように、PCBA104は、1つまたは複数のプロセッサ106と、コンピュータ可読媒体108とを含む。プロセッサ106は、任意の適したシングルコアまたはマルチコアプロセッサ(例えば、アプリケーションプロセッサ(AP)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU))であることがある。プロセッサ106は、コンピュータ可読記憶媒体110の中に記憶されているオペレーティングシステム112およびソフトウェア開発環境モジュール114を実行するために、コンピュータ可読媒体110の中に記憶されている命令またはコマンドを実行するように構成されていることがある。コンピュータ可読記憶媒体110は、各々がコンピュータシステムバスと結合された、ランダムアクセスメモリ(RAM、ダイナミックRAM(DRAM)、不揮発性RAM(NVRAM)、もしくはスタティックRAM(SRAM))、読み出し専用メモリ(ROM)、もしくはフラッシュメモリ)、ハードドライブ、SSD、または、電子命令を記憶するのに適した任意のタイプの媒体などの、1つまたは複数の非一時的記憶デバイスを含むことがある。用語「結合される」は、(物理的に、電気的に、磁気的に、光学的に、その他で)直接接触している2つ以上の要素を、または、互いと直接接触していないが、それでも、互いと協働および/もしくは相互作用する2つ以上の要素を指すことがある。
【0024】
PCBA104は、さらには、I/Oポート116と、通信システム118とを含むことがある。I/Oポート116は、コンピューティングデバイス102が、周辺デバイスを通して他のデバイスまたはユーザと相互作用することを可能とする。I/Oポート116は、ユニバーサルシリアルバス(USB)ポート、オーディオポート、シリアルATA(SATA)ポート、PCI-expressベースのポートもしくはカードスロット、セキュアデジタル入出力(SDIO)スロット、および/または他のレガシーポートなどの、ローカルまたは外部ポートの任意の組み合わせを含むことがある。ヒューマン入力デバイス(HID)、外部コンピュータ可読記憶媒体、または他の周辺機器などの、様々な周辺機器が、I/Oポート116と動作可能に結合されていることがある。
【0025】
通信システム118は、受信されるデータ、送信されるデータ、または、本明細書において説明されるような他の情報などのデバイスデータの伝達を可能にし、1つまたは複数のネットワーク、および、それらのネットワークと接続されている他のデバイスへの接続性をもたらすことがある。例通信システムは、NFCトランシーバ、様々なIEEE802.15(Bluetooth(登録商標))標準に準拠するWPAN無線、様々なIEEE802.11(WiFi(登録商標))標準のうちの任意のものに準拠するWLAN無線、セルラ電話通信のためのWWAN(3GPP(登録商標)準拠)無線、様々なIEEE802.16(WiMAX(登録商標))標準に準拠するワイヤレスメトロポリタンエリアネットワーク(WMAN)無線、赤外線データ協会(IrDA)プロトコルに準拠する赤外線(IR)トランシーバ、および有線ローカルエリアネットワーク(LAN)Ethernetトランシーバを含む。通信システム118によって伝達されるデバイスデータは、コンピューティングデバイス102がそれによって通信している通信プロトコルまたは標準に依存して、パケット化またはフレーム化されることがある。通信システム118は、ローカルネットワーク、プライベートネットワーク、イントラネット、またはインターネット越しの通信のための、Ethernetまたは光ファイバインターフェースなどの有線インターフェースを含むことがある。代わりに、または加えて、通信システム118は、ワイヤレスLAN、セルラネットワーク、またはWPANなどの、ワイヤレスネットワーク越しの通信を助けるワイヤレスインターフェースを含むことがある。
【0026】
示されないが、コンピューティングデバイス102は、さらには、デバイスの中の様々な構成要素を結合している、システムバス、インターコネクト、クロスバー、またはデータ転送システムを含み得る。システムバスまたはインターコネクトは、種々のバスアーキテクチャのうちの任意のものを利用する、メモリバスもしくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、および/または、プロセッサもしくはローカルバスなどの、異なるバス構造の任意の1つまたは組み合わせを含み得る。
【0027】
図2は、暗号技術および他のセキュリティ機能を実行する能力をもつ、一例のポータブル署名デバイス202を含む、一例の動作環境200を例解する。図2において例解されるように、ポータブル署名デバイス202は、USBフラッシュドライブである。他の実行形態において、ポータブル署名デバイス202は、外部ドライブ、または、他の外部ハードウェアセキュリティデバイスであることがある。ポータブル署名デバイス202は、他の機能を提供する、または、明確さもしくは視覚的簡潔さのために図2から省略された構成要素もしくはインターフェースを含むことがある。
【0028】
ポータブル署名デバイス202は、セキュリティハードニングされた集積回路204を含むことがあり、その集積回路上で、ポータブル署名デバイスの構成要素およびインターコネクトが具現され、その集積回路に、入出力(I/O)ポート206が結合されている。I/Oポート206は、ホスト(例えば、コンピューティングデバイス102)との物理的接続を形成する標準USBプラグであることがある。ポータブル署名デバイス202がホストに結合されているとき、ポータブル署名デバイス202は、電力を受け取り、本明細書において説明される暗号技術を実行することがある。このステートにおいて、具体的には、ホストに動作可能に結合されていて、ポータブル署名デバイス202が、電力を受け取り、暗号技術を実行するとき、ポータブル署名デバイス202は、本明細書においてサイナと呼称される。
【0029】
ポータブル署名デバイス202は、1つまたは複数のマイクロコントローラ208と、コンピュータ可読媒体214とを含む。マイクロコントローラ208は、コンピューティングデバイス102とポータブル署名デバイス202との間のファイル転送を可能にすることがある。マイクロコントローラ208は、サイナモジュール218を実行するために、コンピュータ可読記憶媒体216の中に記憶されている命令またはコマンドを実行するように構成されたプロセッサ210を含むことがある。コンピュータ可読記憶媒体210は、私有鍵220をさらに記憶することがある。コンピュータ可読記憶媒体216は、各々がコンピュータシステムバスと結合された、RAM、ROM、もしくはフラッシュメモリ、ハードドライブ、SSD、または、電子命令を記憶するのに適した任意のタイプの媒体などの、1つまたは複数の非一時的記憶デバイスを含むことがある。
【0030】
マイクロコントローラ208は、暗号エンジン212をさらに含むことがある。様々な実行形態において、暗号エンジン212は、暗号コプロセッサまたはプロセッサを含む、セキュアな信頼のルート(root of trust)(RoT)構成要素である。暗号エンジン212は、鍵生成および鍵署名のステップを実行するために要される算出を遂行するための計算容量を保有する。暗号エンジン212は、プライベートインターフェースによって、セキュアな不揮発性コンピュータ可読記憶媒体216に通信可能に結合されていることがある。
【0031】
図3は、一例のプロビジョニングサーバ302を含む、一例の動作環境300を例解する。プロビジョニングサーバ302は、プロセッサ304と、コンピュータ可読媒体306と、I/Oポート314と、通信システム316とを含むことがある。とりわけ、コンピュータ可読記憶媒体308は、暗号モジュール310と、鍵プロビジョナ312とを含むことがある。暗号モジュール310は、LM-OTS公開鍵を計算するためのハッシュ演算を遂行するように構成されていることがある。
【0032】
図4は、複数個のポータブル署名デバイス202(例えば、ポータブル署名デバイス202-1、ポータブル署名デバイス202-2、ポータブル署名デバイス202-3、ポータブル署名デバイス202-4、ポータブル署名デバイス202-5)に動作可能に結合されている、および、プロビジョニングサーバ302にリンクされていること402が行われている、コンピューティングデバイス102-1を含む、一例の動作環境400を例解する。動作環境400は、本明細書において開示されるすべての先の動作環境(例えば、動作環境100、動作環境200、動作環境300)を含むことがある。動作環境400は、セキュアなシステムを規定する、エアギャップされた(air-gapped)ネットワーク(例えば、セキュアなコンピュータネットワークが、セキュアにされていないネットワークから物理的に隔離されるということを確実にするために、1つまたは複数のコンピューティングデバイス上で用いられるネットワーク)であることがある。例解されるように、コンピューティングデバイス102-1は、USBハブ404を介して、2つ以上のポータブル署名デバイス202に動作可能に結合されている。この例において、5つのポータブル署名デバイス202が、給電され、暗号技術を実行して、5つのサイナとみなされる。他の実行形態において、はるかに多くのサイナが、コンピューティングデバイス102-1に動作可能に結合されていることがある(例えば、32個のサイナ)。
【0033】
コンピューティングデバイス102-1は、プロビジョニングサーバ302にリンクされていること402が行われていることがある。リンク402は、両方のデバイスの通信システムによって、ワイヤレスで実行されることがある。リンク402は、プロビジョニングサーバ302とサイナとの間のデータ転送を可能にする。いくつかの実行形態において、サイナは、USBハブ404を介して、プロビジョニングサーバ302に直接的に、動作可能に結合されている。
【0034】
鍵生成の技術
本節は、鍵生成の技術を説明する。後に続く論考の一部分において、例として、図4の動作環境400を参照することになる。そのような参照は、説明される態様を動作環境400に制限するとではなく、むしろ、種々の例のうちの1つについて例解的であると解されるべきである。加えて、本明細書において説明される技術の態様は、再順序付けされる、外される、および/または、互いに並行して動作することがある。
【0035】
図5は、鍵生成のための、一例の技術500を例解する。態様において、鍵生成のための、本明細書において説明される技術および装置は、NIST SP800-208、鍵およびシグネチャのための乱数生成(Random Number Generation for Keys and Signatures)に忠実なものである。第1の態様において、LMSスキームのLMSランダム化パラメータが、承認されたランダムビット生成器を使用して生成され、ランダムビット生成器のインスタンス化は、少なくとも128ビットのセキュリティ強度をサポートする。サイナ(例えば、コンピューティングデバイス102-1に動作可能に結合されているポータブル署名デバイス202-1)またはプロビジョニングサーバ(例えば、プロビジョニングサーバ302)が、LMSランダム化パラメータを生成することがある。第2の態様において、プロビジョニングサーバは、LMSランダム化パラメータを取得すること502を行う。プロビジョニングサーバは、次いで、サイナの各々(例えば、ポータブル署名デバイス202-1、ポータブル署名デバイス202-2、ポータブル署名デバイス202-3、ポータブル署名デバイス202-4、ポータブル署名デバイス202-5)の間で、LMSランダム化パラメータを共有すること504を行い得る。サイナは、マークルツリーを「ウォークアップする(walk up)」ために、LMSランダム化パラメータを利用することがある。実行形態において、マークルツリーの一部が、サイナの各々によって独立して計算されることがある。
【0036】
第3の態様において、プロビジョニングサーバは、各サイナに、0から(2)-1の一意的な開始リーフインデックス番号を関連付けること506を行う。いくつかの実行形態において、プロビジョニングサーバは、リーフインデックスの一意的な範囲を関連付ける。
【0037】
第4の態様において、プロビジョニングサーバは、サイナの各々に通知すること508を行うことがある。サイナの各々に通知すること508は、サイナの各々に、各サイナが関連付けられる一意的な開始リーフインデックス番号、リーフインデックスの範囲、および、マークルツリーの目標高さを送信することを含むことがある。リーフインデックスの範囲を送信することによって、サイナの各々に通知すること508を行うことがあるプロビジョニングサーバは、サイナの各々を、あらかじめ決定された高さを有するマークルツリーの一部を計算するように構成していることがある。サイナ通知中に送信されるデータは、マークルツリーの計算中のリーフインデックスの適正な維持を助けることがある。
【0038】
次に、各サイナは、LM-OTSシグネチャのための、その各サイナ自体のランダムシードを創出し、ローカルLM-OTSおよびLMS公開鍵を生成することがある。ランダムシードは、承認されたランダムビット生成器を使用して生成されるバイト文字列値であることがあり、ランダムビット生成器のインスタンス化は、あらかじめ決定されたセキュリティ強度をサポートする。シードは、各それぞれのポータブル署名デバイスの外側で開示されていない、擬似ランダム鍵生成のために使用される秘密ランダム値であることがある。同じシード値が、単一のLMSインスタンスにおいて、あらゆる内密要素を生成するために使用されることがある。いくつかの実行形態において、各サイナは、マークルツリーの、その各サイナ自体の一部(例えば、セクタ、パーティション)のために、その各サイナ自体のランダムシードを使用する。
【0039】
ローカルLM-OTSおよびLMS鍵は、結果的に生じるマークルツリーが、低減されたマークルツリーであることになるかのように生成されることがある。例えば、220サイズのHBSスキームは、32個のサイナについて、単に215のサイズであることがある。一実行形態において、鍵生成は、サイナによって完全に独立して遂行されることがある。例えば、各サイナは、共通LMSランダム化パラメータおよび秘密ランダムシードを使用して、ローカルLM-OTSおよびLMS鍵を生成して、マークルツリー(例えば、HBSスキームのためのマークルツリー)の一部を独立して構築することがある。鍵生成は、ポータブル署名デバイスの低性能の能力に起因して、実行するのに数時間かかることがある。
【0040】
いくつかの実行形態において、セキュリティハードニングされたポータブル署名デバイスは、LM-OTS鍵生成に良好に適するものでないことがある。結果として、サイナは、各ローカルLM-OTS私有鍵の第1のハッシュをプロビジョニングサーバと共有することがあり、プロビジョニングサーバは、LM-OTS公開鍵を計算するためにハッシュ演算を継続し得る。そのような実行形態において、プロビジョニングサーバは、暗号モジュール(例えば、暗号モジュール310)を含み、計算の後にシードを破棄することがある。他の実行形態において、プロビジョニングサーバは、完全なマークルツリーを生成し、セキュアなリンク(例えば、リンク402)を経て各サイナに対して、使用されるシード、および、マークルツリーの少なくとも一部分をプロビジョニングして戻し得る。
【0041】
サイナがそのサイナのローカル公開鍵を生成すると、サイナは、そのサイナのローカルLMS公開鍵(例えば、ルート鍵)をプロビジョニングサーバと共有することがある。第5の態様において、プロビジョニングサーバは、セキュアなリンク越しにサイナの各々から、ローカルLMS公開鍵を受信すること510を行うことがある。サイナの各々から、ローカルLMS公開鍵を受信すること510のすぐ後に、または、受信と並行して、プロビジョニングサーバは、鍵プロビジョナ(例えば、鍵プロビジョナ312)のステップを実行することがある。第6の態様において、鍵プロビジョナは、受信されたローカルLMS公開鍵を順序付けすること512を行うことがある。ローカルLMS公開鍵の順序付けすること512は、鍵プロビジョナが、順序付きリストを生成することを含むことがある。
【0042】
第7の態様において、プロビジョニングサーバは、共通LMS公開鍵を生成すること514を行うことがある。例えば、プロビジョニングサーバは、単一の共通LMS公開鍵を生成するために、マークルツリーによってローカルLMS公開鍵をハッシュし得る。第8の態様において、鍵プロビジョナは、順序付きリスト、共通LMS公開鍵、および/またはマークルツリーパスを、サイナの各々に対してプロビジョニングすること516を行うことがある。プロビジョニングサーバの鍵プロビジョナがマークルツリーパスを各サイナに対してプロビジョニングすることは、サイナが、他のサイナのデータまたはパスを明らかにすることなく、マークルツリーのトップまでのパスを記憶することを可能にする。例えば、サイナは、共通LMS公開鍵(例えば、ルート)までの、そのサイナのローカルLMS公開鍵(例えば、リーフ)のパスを含む、一意的なマークルツリーパスを受信する。
【0043】
サイナが、同じ共通LMS公開鍵を取得すること516を行うと、ポータブル署名デバイス(例えば、ポータブル署名デバイス202-1、ポータブル署名デバイス202-2、ポータブル署名デバイス202-3、ポータブル署名デバイス202-4、ポータブル署名デバイス202-5)は、物理的に配られ得る。例えば、ポータブル署名デバイス202-1は、開発チームに配られ得る。
【0044】
図6は、一例のコンピューティングデバイス102-2に動作可能に結合されている、一例のポータブル署名デバイス202-1を含む、一例の動作環境600を例解する。コンピューティングデバイス102-2は、ソフトウェア開発環境モジュール114を含むことがある。ソフトウェア開発環境モジュール114は、ファームウェア更新のソフトウェアを開発するための環境を提供するように構成されたモジュールであることがある。コンピューティングデバイス102-2上で開発されるソフトウェアは、より大であるファームウェア更新の一部分のみであることがある。
【0045】
鍵署名の技術
本節は、鍵生成の技術を説明する。後に続く論考の一部分において、例として、図6の動作環境600を参照することになる。そのような参照は、説明される態様を動作環境600に制限するとではなく、むしろ、種々の例のうちの1つについて例解的であると解されるべきである。
【0046】
図7は、鍵署名のための、一例の技術700を例解する。一態様において、サイナ(例えば、コンピューティングデバイス102-2に動作可能に結合されているポータブル署名デバイス202-1)は、署名するためのメッセージを受信すること702を行うことがある。サイナは、次いで、サイナモジュール218のステップを実行することがある。サイナモジュール218は、ポータブル署名デバイスのセキュリティハードニングされた集積回路(例えば、セキュリティハードニングされた集積回路204)上で完全に独立して動作することがある。第1のステップにおいて、サイナモジュール218は、単調リーフカウンタをチェックすること704によって、使用されているマークルツリーが使い果たされていないということを検証することがある。リーフカウンタは、プロビジョニングされた範囲の中で0から2-1まで計数し、各OTSが生成される後にインクリメントすることがある。リーフカウンタ計数は、ハッシュベースのシグネチャのステートと呼称され得るものであり、そのリーフカウンタ計数の管理は、セキュリティを確実にすることのために決定的に重要である。
【0047】
第2のステップにおいて、サイナモジュール218は、低減された高さの、そのサイナモジュール自体のマークルツリーを使用して、または、より大きいマークルツリーの、そのサイナモジュール自体の一部を使用してのいずれかで、メッセージに署名すること706を行うことがある。サイナモジュール218は、共通LMS公開鍵まで、他のサイナのローカルLMS公開鍵を有する、プロビジョニングされた順序付きリストを使用して、シグネチャを継続すること708を行う。各サイナは、その各サイナのそれぞれのマークルツリーパスを、その各サイナのシグネチャにアペンドすることを、シグネチャが共通LMS公開鍵によって検証可能であるように行うことがある。サイナモジュール218は、次いで、シグネチャを共有すること710を行うことがある。例えば、サイナモジュール218は、コンピューティングデバイス102-2と、シグネチャを共有すること710を行うことがある。そのような様式において、サイナは、鍵署名を独立して遂行し、そのサイナ自体のステートを維持し得る。加えて、サイナは、そのサイナのルート鍵になる、そのサイナ自体のシードを使用してメッセージに署名し、シグネチャ検証のために必要とされる、マークルツリーのトップまでのパスをアペンドし得る。そのようにすることにおいて、結果的に生じるシグネチャのサイズは、比較可能なHSSスキームのシグネチャのサイズよりも小さいことがある。さらに、署名プロセスは、各サイナが、より小さいツリー上で動作し得るので、従来の技術よりも迅速に計算され得る。加えて、単一レベルマークルツリーが生出され、小さいシグネチャが達成され得るので、ポータブル署名デバイス上で占められる記憶空間の量は、最小限に抑えられ得る。
【0048】
署名プロセスをいっそうさらに加速するために、サイナは、ローカルLM-OTS公開鍵を計算することの、計算的に高価な演算を回避するように、ローカルLM-OTS公開鍵、または、マークルツリーの少なくとも一部分のキャッシュを記憶することがある。記憶されているキャッシュは、ポータブル署名デバイスのコンピュータ可読媒体(例えば、コンピュータ可読媒体214)の中に完全に存することがある。ポータブル署名デバイスにおいて利用可能な記憶空間、および、性能対空間トレードオフに依存して、マークルツリーのすべてまたはいくつかの一部分が記憶されていることがある。
【0049】
本明細書において説明される技術は、HBSスキームのステートを維持する中央集権型サイナについての必要性を軽減する。その代わりに、各サイナが、署名サービスにアクセスする必要なしに、独立して署名し得る。シグネチャを生成することのすぐ後に、サイナは、共通公開鍵によって、計算されたシグネチャの妥当性を確認することがある。他の実行形態において、プロビジョニングサーバが、セキュアにされ、サイナによってアクセス可能であるならば、プロビジョニングサーバは、完全なマークルツリーを生成し、オフラインチャネルを使用してサイナの各々に対して、使用されるシードをプロビジョニングして戻し、および/または、マークルツリーの少なくとも一部分をプロビジョニングし得る。上記の説明に付言すると、サイナの各々は、その各々のセキュリティハードニングされた集積回路網の中でステートを維持し得る。加えて、本明細書において説明される技術は、NIST SP800-208において概説されている標準と十分に共存可能である。
【0050】

後に続く節において、例が提供される。
【0051】
例1 コンピュータが実行する方法であって、レイトン-ミカリシグネチャ(LMS)ランダム化パラメータを取得することと、1つまたは複数のサイナの間で、LMSランダム化パラメータを共有することと、サイナの各々に、一意的な開始リーフインデックス番号を関連付けることと、サイナの各々に通知することとを含む。通知することは、サイナの各々に、各サイナが関連付けられる一意的な開始リーフインデックス番号、リーフインデックスの範囲、および、マークルツリーの目標高さを送信することを含む。コンピュータが実行する方法は、サイナの各々から、ローカルLMS公開鍵を受信することと、受信されたローカルLMS公開鍵を順序付けすることとをさらに含む。順序付けすることは、受信されたローカルLMS公開鍵の順序付きリストを結果的に生じさせる。コンピュータが実行する方法は、共通LMS公開鍵を生成することと、サイナの各々に対してプロビジョニングすることとをさらに含む。プロビジョニングすることは、順序付きリスト、共通LMS公開鍵、およびマークルツリーパスを、サイナの各々に送信することを含む。コンピュータが実行する方法は、サイナの各々を検証することをさらに含む。検証することは、共通LMS公開鍵を取得することである。
【0052】
例2 例1に記載のコンピュータが実行する方法であって、LMSランダム化パラメータは、LMS鍵ペア識別子である。
【0053】
例3 例1に記載のコンピュータが実行する方法であって、サイナは、ホストに動作可能に結合されているポータブル署名デバイスであり、ポータブル署名デバイスは、セキュリティハードニングされた集積回路網を有する。
【0054】
例4 例1に記載のコンピュータが実行する方法であって、コンピュータが実行する方法は、プロビジョニングサーバ上で実行される。
【0055】
例5 例4に記載のコンピュータが実行する方法であって、LMSランダム化パラメータを取得することは、LMSランダム化パラメータを、プロビジョニングサーバにおいて、サイナのうちの1つから受信することを含む。
【0056】
例6 例4に記載のコンピュータが実行する方法であって、LMSランダム化パラメータを取得することは、プロビジョニングサーバにおいて、LMSランダム化パラメータを生成することを含む。
【0057】
例7 例4に記載のコンピュータが実行する方法であって、プロビジョニングサーバの暗号モジュールにおいて、ワンタイムシグネチャ(OTS)スキームをマークルツリー構造と組み合わせる、ステートフルなハッシュベースのシグネチャ(HBS)スキームを実行することをさらに含む。
【0058】
例8 例7に記載のコンピュータが実行する方法であって、ステートフルなHBSスキームは、SHA-256を実行するように構成されたLMSスキームである。
【0059】
例9 例4に記載のコンピュータが実行する方法であって、順序付きリストをサイナに提供することは、サイナの各々がマークルツリーの一部を生成することを可能にし、マークルツリーは、各それぞれのサイナと関連付けられる。
【0060】
例10 例4に記載のコンピュータが実行する方法であって、マークルツリーを計算し、サイナの各々に、低性能のハードウェア上での署名を加速するためにマークルツリーの一部をキャッシュすることを行わせることをさらに含む。
【0061】
例11 例4に記載のコンピュータが実行する方法であって、ローカルLMS公開鍵をサイナの各々に対してプロビジョニングすることを、サイナの各々に、プロビジョニングすることの後に独立して動作することを行わせるのに効果的に行うことをさらに含む。
【0062】
例12 例4に記載のコンピュータが実行する方法であって、ローカルレイトン-ミカリワンタイムシグネチャ(LM-OTS)公開鍵を、プロビジョニングサーバにおいて計算することをさらに含む。
【0063】
例13 例4に記載のコンピュータが実行する方法であって、共通LMS公開鍵によってサイナの各々が独立して署名するということを検証することをさらに含む。
【0064】
例14 例4に記載のコンピュータが実行する方法であって、完全なマークルツリーを、セキュアにされた、およびアクセス可能なプロビジョニングサーバにおいて生成し、オフラインチャネルを使用してサイナの各々に対して、使用されるシード、および、マークルツリーの少なくとも一部分をプロビジョニングして戻すことをさらに含む。
【0065】
例15 プロビジョニングサーバであって、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されると、プロセッサにいずれかの先行する請求項に記載の方法を遂行することを行わせる命令を含む、少なくとも1つのコンピュータ可読記憶媒体とを含む。
【0066】
結論
単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名のための技術、および、そのステートフルなハッシュベースの署名を可能にする装置の実行形態が、特徴および/または方法に特有の文言において説明されたが、添付された特許請求の範囲の主題は、説明された特定の特徴または方法に必ずしも制限されないということが理解されるべきである。むしろ、特定の特徴および方法は、単一の公開鍵と、複数個の独立したサイナとによる、ステートフルなハッシュベースの署名の実行を可能にする例実行形態として開示されるものである。
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2024-05-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
レイトン-ミカリシグネチャ(LMS)ランダム化パラメータを取得することと、
1つまたは複数のサイナの間で、前記LMSランダム化パラメータを共有することと、
前記サイナの各々に、一意的な開始リーフインデックス番号を関連付けることと、
前記サイナの各々に通知することとを含み、前記通知することは、前記サイナの各々に、各サイナが関連付けられる前記一意的な開始リーフインデックス番号、リーフインデックスの範囲、および、マークルツリーの目標高さを送信することを含み、
前記コンピュータが実行する方法は、
前記サイナの各々から、ローカルLMS公開鍵を受信することと、
受信された前記ローカルLMS公開鍵を順序付けすることとをさらに含み、前記順序付けすることは、受信されたローカルLMS公開鍵の順序付きリストを結果的に生じさせ、
前記コンピュータが実行する方法は、
共通LMS公開鍵を生成することと、
前記サイナの各々に対してプロビジョニングすることとをさらに含み、前記プロビジョニングすることは、前記順序付きリスト、前記共通LMS公開鍵、およびマークルツリーパスを、前記サイナの各々に送信することを含み、
前記コンピュータが実行する方法は、
前記サイナの各々を検証することをさらに含み、前記検証することは、前記共通LMS公開鍵を取得することである、コンピュータが実行する方法。
【請求項2】
前記LMSランダム化パラメータは、LMS鍵ペア識別子である、請求項1に記載のコンピュータが実行する方法。
【請求項3】
前記サイナは、ホストに動作可能に結合されているポータブル署名デバイスであり、前記ポータブル署名デバイスは、セキュリティハードニングされた集積回路網を有する、請求項1または2に記載のコンピュータが実行する方法。
【請求項4】
前記コンピュータが実行する方法は、プロビジョニングサーバ上で実行される、請求項1~3のいずれか1項に記載のコンピュータが実行する方法。
【請求項5】
前記LMSランダム化パラメータを取得することは、前記LMSランダム化パラメータを、前記プロビジョニングサーバにおいて、前記サイナのうちの1つから受信することを含む、請求項4に記載のコンピュータが実行する方法。
【請求項6】
前記LMSランダム化パラメータを取得することは、前記プロビジョニングサーバにおいて、前記LMSランダム化パラメータを生成することを含む、請求項4に記載のコンピュータが実行する方法。
【請求項7】
前記プロビジョニングサーバの暗号モジュールにおいて、ワンタイムシグネチャ(OTS)スキームをマークルツリー構造と組み合わせる、ステートフルなハッシュベースのシグネチャ(HBS)スキームを実行することをさらに含む、請求項4~6のいずれか1項に記載のコンピュータが実行する方法。
【請求項8】
前記ステートフルなHBSスキームは、SHA-256を実行するように構成されたLMSスキームである、請求項7に記載のコンピュータが実行する方法。
【請求項9】
前記順序付きリストを前記サイナに提供することは、前記サイナの各々がマークルツリーの一部を生成することを可能にし、前記マークルツリーは、各それぞれのサイナと関連付けられる、請求項4~8のいずれか1項に記載のコンピュータが実行する方法。
【請求項10】
マークルツリーを計算し、前記サイナの各々に、低性能のハードウェア上での署名を加速するために前記マークルツリーの一部をキャッシュすることを行わせることをさらに含む、請求項4~8のいずれか1項に記載のコンピュータが実行する方法。
【請求項11】
ローカルLMS公開鍵を前記サイナの各々に対してプロビジョニングすることを、前記サイナの各々に、前記プロビジョニングすることの後に独立して動作することを行わせるのに効果的に行うことをさらに含む、請求項4~10のいずれか1項に記載のコンピュータが実行する方法。
【請求項12】
レイトン-ミカリワンタイムシグネチャ(LM-OTS)公開鍵を、前記プロビジョニングサーバにおいて計算することをさらに含む、請求項4~11のいずれか1項に記載のコンピュータが実行する方法。
【請求項13】
共通LMS公開鍵によって前記サイナの各々が独立して署名するということを検証することをさらに含む、請求項4~12のいずれか1項に記載のコンピュータが実行する方法。
【請求項14】
完全なマークルツリーを、セキュアにされた、およびアクセス可能な前記プロビジョニングサーバにおいて生成し、オフラインチャネルを使用して前記サイナの各々に対して、使用されるシード、および、前記マークルツリーの少なくとも一部分をプロビジョニングして戻すこと
をさらに含む、請求項4~8のいずれか1項に記載のコンピュータが実行する方法。
【請求項15】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~14のいずれか1項に記載のコンピュータが実行する方法を遂行することを行わせる命令を含む、少なくとも1つのコンピュータ可読記憶媒体と
を含む、プロビジョニングサーバ。
【請求項16】
少なくとも1つのプロセッサに請求項1~14のいずれか1項に記載のコンピュータが実行する方法を実行させる、プログラム。
【国際調査報告】