(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】再ランダム化された事前署名を有するデジタル署名
(51)【国際特許分類】
H04L 9/32 20060101AFI20240927BHJP
H04L 9/14 20060101ALI20240927BHJP
【FI】
H04L9/32 200B
H04L9/32 200E
H04L9/14
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519515
(86)(22)【出願日】2022-09-30
(85)【翻訳文提出日】2024-05-22
(86)【国際出願番号】 EP2022077318
(87)【国際公開番号】W WO2023052603
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521435190
【氏名又は名称】デフィニティ スティフトゥング
【氏名又は名称原語表記】DFINITY STIFTUNG
【住所又は居所原語表記】Genferstrasse 11, 8002 Zuerich Switzerland
(74)【代理人】
【識別番号】110002664
【氏名又は名称】弁理士法人相原国際知財事務所
(72)【発明者】
【氏名】グロート, イェンス
(72)【発明者】
【氏名】シャウプ, ヴィクター
(57)【要約】
本発明の実施形態は、デジタル署名を実行するコンピュータ実装方法に関する。実施される方法は、事前署名を計算するステップと、メッセージに対してデジタル署名を実行するための署名要求を受信するステップと、事前署名を再ランダム化するステップと、再ランダム化された事前署名を用いてメッセージに対してデジタル署名を実行するステップとを含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
公開鍵署名方式にしたがってデジタル署名を実行するコンピュータ実装方法であって、
事前署名を計算するステップと、
メッセージに対して前記デジタル署名を実行するための署名要求を受信するステップと、
前記事前署名を再ランダム化するステップと、
前記再ランダム化された事前署名を用いて前記メッセージに対して前記デジタル署名を実行するステップと、を備えるコンピュータ実装方法。
【請求項2】
前記事前署名を計算するステップは、ランダムナンスを計算するステップを含み、
前記事前署名を再ランダム化するステップは、前記ランダムナンスを再ランダム化するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記事前署名を再ランダム化するステップは、前記事前署名に対して代数演算を実行するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記事前署名を再ランダム化するステップは、前記事前署名に対して線形演算を実行するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記デジタル署名は、しきい値署名である、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記事前署名を再ランダム化するステップは、予測不可能な公開再ランダム化値を計算するステップと、前記再ランダム化のために前記公開再ランダム化値を利用するステップと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記予測不可能な公開再ランダム化値は、前記署名要求を受信するステップの後に生成される、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記公開再ランダム化値の擬似乱数発生を実行するステップをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項9】
少なくとも前記メッセージまたは前記メッセージのハッシュにハッシュ関数を適用することにより、前記公開再ランダム化値を導出するステップをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項10】
前記ハッシュ関数を前記デジタル署名の前記公開鍵および/または他の入力に適用することにより、前記公開再ランダム化値を導出するステップをさらに含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
ランダムビーコンから前記公開再ランダム化値を導出するステップをさらに含む、請求項6から10までのいずれか一項に記載のコンピュータ実装方法。
【請求項12】
前記デジタル署名は、離散対数に基づいた署名アルゴリズムによるデジタル署名である、請求項1に記載のコンピュータ実装方法。
【請求項13】
前記デジタル署名は、楕円曲線に基づいた署名アルゴリズムによるデジタル署名である、請求項1に記載のコンピュータ実装方法。
【請求項14】
前記デジタル署名は、楕円曲線デジタル署名アルゴリズム(ECDSA)によるデジタル署名である、請求項1に記載のコンピュータ実装方法。
【請求項15】
前記デジタル署名アルゴリズムは、位数 qの、特に素数位数 qの、点 G により生成される楕円曲線 E 上で動作し、
前記事前署名を計算するステップは、
および
を計算することにより、
ランダム要素 r' を生成することを含む、請求項13または14に記載のコンピュータ実装方法。
【請求項16】
前記事前署名を再ランダム化するステップは、前記予測不可能な公開値 δ を用いて、
r: = r' + δ および
R := R'+ δG
を計算するステップを含む、請求項15に記載のコンピュータ実装方法。
【請求項17】
第1マスター秘密鍵と第2マスター秘密鍵とを含むマスター秘密鍵ペアを提供するステップと、
第1マスター公開鍵と第2マスター公開鍵とを含むマスター公開鍵ペアを提供するステップと、
前記マスター秘密鍵ペアから副秘密鍵を導出するステップと、
前記マスター公開鍵ペアから副公開鍵を導出するステップと、をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項18】
前記マスター秘密鍵ペアから前記副秘密鍵を導出するステップは、前記マスター秘密鍵ペアに対して第1代数演算を実行するステップを含み、
前記マスター公開鍵ペアから前記副公開鍵を導出するステップは、前記マスター公開鍵ペアに対して第2代数演算を実行するステップを含む、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記第1代数演算と前記第2代数演算とは同一である、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記第1代数演算および前記第2代数演算は線形演算である、請求項18に記載のコンピュータ実装方法。
【請求項21】
前記マスター秘密鍵ペアから前記副秘密鍵を導出するステップは、前記副秘密鍵が前記第1マスター秘密鍵と前記第2マスター秘密鍵との両方に依存し、前記副公開鍵が前記第1マスター公開鍵と前記第2マスター公開鍵との両方に依存するように、混合鍵導出を実行するステップを含む、請求項17に記載のコンピュータ実装方法。
【請求項22】
前記デジタル署名アルゴリズムは、
上で定義され位数 qの、特に素数位数 qの、点 G により生成される楕円曲線 E 上で動作し、
D が前記第1マスター公開鍵であり、
D' が前記第2マスター公開鍵であり、
D が前記第1マスター秘密鍵であり、
d' が前記第2マスター秘密鍵であるとき、
(D, D'):= (dG, d'G) を満たす、請求項17に記載のコンピュータ実装方法。
【請求項23】
判別子 eを、特に
を満たす判別子 e を、提供するステップと、
D が前記第1マスター公開鍵であり、
D' が前記第2マスター公開鍵であり、
d が前記第1マスター秘密鍵であり、
d' が前記第2マスター秘密鍵であり、
d'' が前記副秘密鍵であり、
D'' が前記副公開鍵であるとき、
d'':= d +ed' を計算することにより、前記マスター秘密鍵ペアから前記副秘密鍵を導出するステップと、
D'':= D +eD' を計算することにより、前記マスター公開鍵ペアから前記副公開鍵D'' を導出するステップと、をさらに備える請求項17から22までのいずれか1項に記載のコンピュータ実装方法。
【請求項24】
前記判別子 e をハッシュ関数により導出するステップをさらに備える、請求項23に記載のコンピュータ実装方法。
【請求項25】
複数のハッシュ入力データ一式に対して前記ハッシュ関数を適用することにより前記判別子 e を導出するステップであって、前記ハッシュ入力データは、任意の識別子、前記マスター公開鍵ペア、および/または追加入力データを含む、ステップをさらに備える、請求項24に記載のコンピュータ実装方法。
【請求項26】
前記任意の識別子は、前記副公開鍵または前記副秘密鍵の所有権および/またはコンテキストを一意に識別する、請求項25に記載のコンピュータ実装方法。
【請求項27】
マスター公開鍵とマスター秘密鍵とを備えるマスター鍵ペアを提供するステップと、
前記マスター鍵ペアに加算シフト演算を適用することにより、前記マスター鍵ペアから、副公開鍵と副秘密鍵とを備える副鍵ペアを導出するステップと、をさらに備える、請求項1から10までのいずれか一項に記載のコンピュータ実装方法。
【請求項28】
判別子 e を、特に
を満たす判別子 e を、提供するステップと、
d'':= d +ed' により前記副秘密鍵を計算するステップと、
D'':= D +eD' により前記副公開鍵を計算するステップと、を含む、請求項27に記載のコンピュータ実装方法。
【請求項29】
公開鍵署名方式にしたがってデジタル署名を実行し、コンピュータ実装方法を実行するように構成された計算システムであって、
事前署名を計算するステップと、
メッセージに対して前記デジタル署名を実行するための署名要求を受信するステップと、
前記事前署名を再ランダム化するステップと、
前記再ランダム化された事前署名を用いて前記メッセージに対して前記デジタル署名を実行するステップと、を備える計算システム。
【請求項30】
公開鍵署名方式にしたがってデジタル署名を実行するコンピュータプログラム製品であって、前記コンピュータプログラム製品は、その中に具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令は、前記計算システムに1つの方法を実行させるために前記計算システムにより実行可能であり、前記方法は、
事前署名を計算するステップと、
メッセージに対して前記デジタル署名を実行するための署名要求を受信するステップと、
前記事前署名を再ランダム化するステップと、
前記再ランダム化された事前署名を用いて前記メッセージに対して前記デジタル署名を実行するステップと、を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵署名方式にしたがってデジタル署名を実行するコンピュータ実装方法に関する。さらなる態様は、対応する計算システムおよび対応するコンピュータプログラム製品に関する。
【背景技術】
【0002】
デジタル署名は、デジタルメッセージの署名に使用され、非対称暗号化を含む。デジタル署名は、デジタルメッセージまたは文書の真正性の検証に使用され得る。
【0003】
楕円曲線デジタル署名アルゴリズム(ECDSA)は、楕円曲線暗号に基づくデジタル署名アルゴリズム(DSA)の一種である。DSAと比較して、ECDSAはより短い公開鍵およびデジタル署名で同一レベルのセキュリティを達成し得るとの利点を提供する。
【0004】
ECDSAの署名アルゴリズムにおいて計算される値のいくつかは、署名されるメッセージとは無関係であるので、メッセージの実際の署名を簡略化して高速化するために、それらは予め計算され得る。そのような値を事前計算することは、事前に署名することを意味しており、計算された値は事前署名(presignatures)と称され得る。
【0005】
しかし、そのような事前署名は潜在的なセキュリティの弱点を有する虞がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
このようなことを鑑みて、本発明の一態様の1つの目的は、特に事前署名の計算と組み合わることで、セキュリティが強化されたデジタル署名を実行するコンピュータ実装方法を提供するところにある。
【課題を解決するための手段】
【0007】
本発明の第1態様の実施形態は、デジタル署名を実行するコンピュータ実装方法が提供する。実施する方法は、事前署名を計算するステップと、メッセージに対してデジタル署名を実行するための署名要求を受信するステップと、事前署名を再ランダム化するステップと、再ランダム化された事前署名を用いてメッセージに対してデジタル署名を実行するステップと、を含む。
【0008】
このような事前署名の再ランダム化は、単純な事前署名よりもセキュリティが強化される。特に、4サム攻撃の阻止が可能である。さらに、そのような再ランダム化が必要する待ち時間および計算に関する追加コストは、僅少である。
【0009】
いくつかの実施形態では、事前署名はランダム要素/ランダム部分を含み、事前署名を再ランダム化するステップは、秘密ランダム要素/ランダム部分を再ランダム化するステップを含む。ランダム要素/ランダム部分は、特に、秘密ランダム要素/ランダム部分であり得る。
【0010】
一実施形態では、事前署名を計算するステップは、ランダムナンスを計算するステップを含む。このようなランダムナンスは、事前署名のランダム部分を確立する。そのような実施形態では、事前署名を再ランダム化するステップは、ナンスを再ランダム化するステップを含む。
【0011】
一実施形態では、事前署名を再ランダム化するステップは、事前署名に対して代数演算を実行するステップを含む。いくつかの実施形態では、代数演算は線形演算であり得る。代数演算、特に線形演算は、特にしきい値署名に対して効率的な方法で実装可能である。
【0012】
いくつかの実施形態では、デジタル署名は、しきい値署名であり得る。そのようなしきい値署名は、特に、複数の署名当事者を含む分散設定において使用され得る。
【0013】
事前署名は、そのような分散設定において特に有利である。特に、事前署名は、ナンスなどの何らかの秘密ランダム値の計算が含まれるので、そのような秘密の値の計算および共有には、当時者間の通信オーバーヘッドの点で多大なコストがかさむ。それゆえ、ランダム値を事前に計算しておくことで、実際の署名が大幅に高速化され得る。
【0014】
いくつかの実施形態では、事前署名を再ランダム化するステップは、予測不可能な公開再ランダム化値を計算するステップと、事前署名の再ランダム化するために公開再ランダム化値を利用するステップと、を含む。
【0015】
この点において、予測不可能とは、署名要求が決定される前および/または受信される前には予測できないと理解されるものである。決定は、それぞれの署名エンティティが署名条件を受信する前に行われ得る。
【0016】
そのような実施形態では、再ランダム化は、事前署名を再ランダム化する公開再ランダム化値を、例えば代数演算における係数として利用する。
【0017】
公開再ランダム化値は、秘密にしておく必要がない値として理解されるものである。特に、いくつかの実施形態では、公開再ランダム化値は、署名要求の出力として敵対者に与えられると仮定され得る。
【0018】
このような方式では、再ランダム化は公開される。このことは、しきい値署名に特別な利点を提供する。より具体的には、特に、計算および通信のオーバーヘッドのような再ランダム化の実行に必要なコストが、秘密ランダム化と比較して大幅に少ない。
【0019】
一実施形態では、予測不可能な公開再ランダム化値は、署名要求を受信した後に発生される。
【0020】
一実施形態では、本方法は、公開再ランダム化値の擬似乱数発生を実行するステップをさらに含む。
【0021】
一実施形態では、本方法は、ランダムビーコンから公開再ランダム化値を導出するステップをさらに含む。
【0022】
そのようなランダムビーコンは、特に、本方法が実行される計算システムまたは分散ネットワークにより提供されるランダム性のような、公的に利用可能な任意のランダム性として通常定義され得る。いくつかの実施形態では、そのようなランダムビーコンは、例えば米国特許出願公開第2018/146035号明細書に記載されているようなしきい値BLS署名方式を使用して実装され得る。
【0023】
一実施形態では、本方法は、少なくともメッセージまたはメッセージのハッシュにハッシュ関数を適用することにより、公開再ランダム化値を導出するステップをさらに含む。
【0024】
一実施形態では、ハッシュ関数は、任意選択で、デジタル署名の公開鍵に、および/またはランダムビーコンなどの他の入力にも適用され得る。
【0025】
一実施形態では、デジタル署名は、離散対数に基づいた署名アルゴリズムによるデジタル署名である。一実施形態では、デジタル署名は、楕円曲線に基づいた署名アルゴリズムによるデジタル署名である。一実施形態では、デジタル署名は、楕円曲線デジタル署名アルゴリズム(ECDSA)によるデジタル署名である。
【0026】
一実施形態では、本方法は、第1マスター秘密鍵および第2マスター秘密鍵を含むマスター秘密鍵ペアを提供するステップと、第1マスター公開鍵および第2マスター公開鍵を含むマスター公開鍵ペアを提供するステップと、を含む。本方法は、マスター秘密鍵ペアから副秘密鍵を導出するステップと、マスター公開鍵ペアから副公開鍵を導出するステップと、をさらに含む。
【0027】
一方では、マスター公開鍵ペアおよびそれに対応するマスター秘密鍵ペアからのそのような鍵の導出は、むしろ、特に、しきい値署名に対して計算コストおよび通信コストが大幅に抑制される効率的な方法で実行され得る。
【0028】
他方では、そのような導出スキームは、そのような導出スキーム行わない対応するスキームと、本質的に同等なセキュリティレベルを提供する。
【0029】
そのように実施する方法では、単一のマスター秘密鍵ペアを保持するだけで、マスター鍵ペアから複数の異なる副公開鍵/副秘密鍵を導出することが可能になる。
【0030】
一実施形態では、マスター秘密鍵ペアから副秘密鍵を導出するステップは、マスター秘密鍵ペアに対して第1代数演算を実行するステップを含み、マスター公開鍵ペアから副公開鍵を導出するステップは、マスター秘密鍵ペアに対して第2代数演算を実行するステップを含む。
【0031】
いくつかの実施形態では、第1代数演算と第2代数演算とは同一であり得る。
【0032】
いくつかの実施形態では、マスター秘密鍵ペアから副秘密鍵を導出するステップは、副秘密鍵が第1マスター秘密鍵と第2マスター秘密鍵との両方に依存し、副公開鍵が第1マスター公開鍵と第2マスター公開鍵との両方に依存するように鍵導出を実行するステップを含み得る。
【0033】
このような鍵導出技術は、混合鍵導出と称され得る。
【0034】
いくつかの実施形態では、第1代数演算および第2代数演算は線形演算である。
【0035】
一実施形態では、電子署名アルゴリズムは、デジタル署名アルゴリズムが
上で定義され、位数q、特に素数位数 q の点 G により生成される楕円曲線 E 上で動作する。D が第1マスター公開鍵、D' が第2マスター公開鍵、d が第1マスター秘密鍵、d' が第2マスター秘密鍵であると仮定すると、第1マスター公開鍵および第2マスター公開鍵は、第1マスター秘密鍵および第2マスター秘密鍵から次式で導出され得る。
【0036】
【0037】
これらのマスター鍵のペアから、副秘密鍵および副公開鍵が次式で計算され得る。副秘密鍵 d'' は、次式によりスター秘密鍵ペアから計算され得る。
【0038】
【0039】
さらに、副公開鍵 D'' は、次式によりマスター公開鍵ペアから計算され得る。
【0040】
【0041】
いくつかの実施形態では、判別子e は、判別式
を満たし得る。ここで、
は、q を法として実行される演算を有する整数 0-, …, q-1 の集合である。
【0042】
本発明のいくつかの実施形態による判別子は、一般に、物、人、またはクラスを互いに区別することを可能にするエージェントまたは特徴として定義され得る。同様に、本発明のいくつかの実施形態の文脈において、判別子は、マスター秘密鍵ペアおよびマスター公開鍵ペアからそれぞれ副秘密鍵および副公開鍵を導出することを可能にする。
【0043】
一実施形態では、判別子は、ハッシュ関数により導出され得る。ハッシュ関数は、衝突耐性として具現化され得る。
【0044】
一実施形態では、判別子は、複数のハッシュ入力データ一式にハッシュ関数を適用することにより導出され得る。ハッシュ入力データは、任意の識別子、マスター公開鍵ペア、および/または追加入力データを含み得る。
【0045】
いくつかの実施形態では、任意の識別子は、副公開鍵または副秘密鍵の所有権および/またはコンテキストを一意に識別する。
【0046】
いくつかの実施形態では、加法的鍵生成も事前署名の再ランダム化と組み合わせ得る。
【0047】
別の態様の実施形態では、本発明の方法態様のステップを実行するように構成された公開鍵署名方式にしたがってデジタル署名を実行する計算システムが提供される。
【0048】
本発明の別の態様の実施形態では、公開鍵署名方式にしたがってデジタル署名を実行するコンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、そのプログラム命令は、計算システムが実行可能であり、計算システムに本発明の方法態様のステップを実行させる。
【0049】
本発明の一態様の特徴および利点は、本発明の他の態様に適宜適用され得る。本発明の方法の態様のそれぞれのステップは、いくつかの実施形態にしたがって異なる順序で実行され得る。
【0050】
他の有利な実施形態は、従属請求項および以下の説明に記載されている。
【0051】
本発明は、以下の詳細な説明からより良く理解され、前述以外の目的が明らかになるであろう。そのような説明では、添付の図面を参照する。
【図面の簡単な説明】
【0052】
【
図1】
図1は、本発明の一実施形態による分散ネットワークの例示的な図である。
【
図2】
図2は、例示的な複製システム計算クラスタを示す図である。
【
図3】
図3は、本発明の一実施形態によるコンピュータ実装方法の概略フローチャートである。
【
図4】
図4は、本発明の一実施形態によるコンピュータ実装方法の概略フローチャートである。
【
図5】
図5は、分散しきい値鍵生成プロトコルにより生成され得る鍵の一実施形態を示す図である。
【
図6】
図6は、本発明の一実施形態によるノードの例示的実施形態を示す図である。
【
図7】
図7は、本発明の一実施形態によるコンピュータ実装方法の概略フローチャートである。
【発明を実施するための形態】
【0053】
最初に、本発明の実施形態のいくつかの一般的な態様および用語を紹介する。
【0054】
いくつかの実施形態では、分散型ネットワークは、分散形式で配置された複数のノードを備える。このような分散ネットワーク計算では、ソフトウェアおよびデータが複数のノードにわたって分散される。ノードは、計算リソースを確立して、分散ネットワークは、特に、分散計算技術を使用し得る。
【0055】
いくつかの実施形態では、分散ネットワークは、ブロックチェーンネットワークとして具現化され得る。「ブロックチェーン」という用語は、電子的な、コンピュータベースの分散台帳の、全ての形態を含むものとする。いくつかの実施形態では、ブロックチェーンネットワークは、プルーフオブワークブロックチェーンネットワークとして具現化され得る。他のいくつかの実施形態では、ブロックチェーンネットワークは、プルーフオブステークブロックチェーンネットワークとして具現化され得る。
【0056】
検証鍵/公開鍵:広く公開されることを意図された公開鍵署名方式のビット列である。検証鍵は、公開鍵とも称され得、例えば、公開鍵署名方式のデジタル署名の検証に使用される。
【0057】
本発明のいくつかの実施形態による公開鍵署名方式は、例えば、RSAなどの公開鍵署名および暗号化方式の鍵、またはシュノア署名(Schnorr)もしくはDSAなどの公開鍵署名方式の鍵を備え得る。
【0058】
秘密鍵(sk):特に、検証鍵である公開鍵に関連するビット列であり、何らかの暗号操作、特に、メッセージにデジタル署名することを可能にする。秘密鍵は、プライベート鍵とも称され得る。
【0059】
分散鍵生成(DKG):一組のディーラーが、特に、検証鍵である公開鍵を作成して、一組の受信者に対応する秘密鍵の共有秘密鍵を提供することを可能にするプロトコルである。
【0060】
(n,t)-しきい値鍵/しきい値秘密鍵:このようなしきい値鍵は、任意のt個の共有秘密鍵が秘密鍵の再構築を可能として、一方、t-1個の共有では秘密鍵の決定をできないような、しきい値tおよびいくつかの共有秘密鍵 s1, s2, …., sn を有する。しきい値公開鍵署名方式では、任意のt個の共有秘密鍵がしきい値公開鍵/検証鍵の下で有効な署名の実行を可能にするが、t-1個の共有では有効な署名の実行には不十分である。
【0061】
いくつかの実施形態では、フェルドマンプロトコル[Fel87]、ジョイントフェルドマンプロトコル[Ped91]、およびGJKRプロトコル[GJKR99]が、分散鍵生成プロトコルとして使用され得る。これらのプロトコルは、例えば、以下の文献に公開されており、それらの対応する開示を参照して本明細書に組み込まれている。
【0062】
[Fel87] Paul Feldman. A practical scheme for non-interactive verifiable secret sharing.
【0063】
In 28th Annual Symposium on Foundations of Computer Science, pages 427-437, Los Angeles, California, October 12-14, 1987. IEEE Computer Society Press.
【0064】
[Ped91] Torben P. Pedersen. A threshold cryptosystem without a trusted party (extended abstract) (rump session). In Donald W. Davies, editor, Advances in Cryptology - EUROCRYPT’91, volume 547 of Lecture Notes in Computer Science, pages 522-526, Brighton, UK, April 8-11, 1991. Springer, Heidelberg, Germany.
【0065】
[GJKR99] Rosario Gennaro, Stanislaw Jarecki, Hugo Krawczyk, and Tal Rabin. Secure distributed key generation for discrete-log based cryptosystems. In Jacques Stern, editor, Advances in Cryptology - EUROCRYPT’99, volume 1592 of Lecture Notes in Computer Science, pages 295-310, Prague, Czech Republic, May 2-6, 1999. Springer, Heidelberg, Germany.
【0066】
楕円曲線デジタル署名アルゴリズム(ECDSA)とは、デジタル署名アルゴリズム(DSA)の変形であり、楕円曲線暗号を使用する。より具体的には、ECDSA署名は、楕円曲線上または楕円曲線の部分群上で動作する。
【0067】
しきい値楕円曲線デジタル署名アルゴリズムとは、楕円曲線暗号に基づくしきい値署名アルゴリズムである。このアルゴリズムでは、任意のt個の共有秘密鍵により、しきい値ECDSA公開鍵/検証鍵の下で有効なECDSA署名の実行が可能になり、その一方で、t-1個の共有では、有効なECDSA署名の実行には不十分である。
【0068】
このようなしきい値楕円曲線電子署名アルゴリズム(ECDSA)は、例えば、Jean-Philippe Aumasson, Adrian Hamelink, Omer Shlomovitsによる文献、A Survey of ECDSA Threshold Signing. IACR Cryptol. ePrint Arch. 2020: 1390 (2020) に記載されている。
【0069】
セキュアマルチパーティ計算とは、一般に、複数の当事者が、複数の当事者が提供する入力データに対して関数を共同で計算する方法を指し、複数の当事者は、それぞれの入力データを秘密に保つ。セキュアマルチパーティ計算は、単にマルチパーティ計算(MPC)またはプライバシー保護計算とも称され得る。
【0070】
楕円曲線に基づく署名アルゴリズムには、楕円曲線デジタル署名アルゴリズム(ECDSA)が含まれるが、エドワーズ曲線デジタル署名アルゴリズム(EdDSA)など、楕円曲線を使用するいくつかの他の署名アルゴリズムも含む。エドワーズ曲線デジタル署名アルゴリズムは、the document RFC 8032, Internet Research Task Force (IRTF), Request for Comments: 8032, ISSN: 2070-1721, January 2017 に指定されているように、ねじれエドワーズ曲線に基づくシュノア署名の一種を使用する署名アルゴリズムである。
【0071】
いくつかの実施形態では、マルチパーティ計算という用語は、例えば、n個の当事者 p1, p2, …., pN のような複数の当事者がそれぞれ、例えば、s1, s2, …., sN のような秘密/秘密データを有する方法を参照し得る。さらに、複数の当事者は、自分自身の入力データを秘密に保ちながら、つまり、安全な関数評価を行いながら、その秘密/秘密データ上の公開関数F(s1, s2, …., sN)の値を計算することを望んでいる。
【0072】
いくつかの実施形態では、マルチパーティ計算は、特に、(n,t)-しきい値鍵/しきい値秘密鍵を秘密/秘密データとして利用し得る。
【0073】
いくつかの実施形態では、マルチパーティ計算は、特に、しきい値署名の計算を含み得る。
【0074】
事前署名は、署名されるべきそれぞれのメッセージが受信される前に計算され得る署名を計算する際に、使用される任意の値/中間値として定義され得る。事前署名は、特に、メッセージと無関係であり、特に、署名されるメッセージの内容と無関係であり得る。
【0075】
事前署名は、特に、ナンスなどのランダム値を含み得る。
【0076】
事前署名を再ランダム化するステップは、特に追加ランダム性、例えば追加ランダム値を事前署名に追加するステップとして理解されるものである。
【0077】
4サム攻撃とは、例えば、David A Wagnerによる「A Generalized Birthday Problem.」,CRYPTO(2002)に記載されている攻撃である。
【0078】
「生の」署名オラクルは、メッセージm というよりは、目的としたハッシュh を入力として受け取る署名オラクルである。
【0079】
いくつかの実施形態では、特に、しきい値署名のようなデジタル署名を実行する方法のオフラインフェイズは、署名されるメッセージがまだ必要ではない方法のステップを包含する。オフラインフェイズは、事前処理フェイズとも称される。オフラインフェイズは、特に、事前署名を計算するために使用され得る。オフラインフェイズの計算は、あらかじめ実行され得、事前署名などの結果は、その後の使用のために保持され得る。
【0080】
いくつかの実施形態では、特に、しきい値署名のようなデジタル署名を実行する方法のオンラインフェイズは、署名されるメッセージが必要である方法のステップを包含する。オンラインフェイズは、署名が要求されると署名されるメッセージが利用可能になって開始される。署名プロトコルを完全に実行しなくても、当事者は保持されている事前署名を使用し得るので、実際の署名は、はるかに効率的である。署名の再ランダム化も、いくつかの実施形態によりオンラインフェイズ中に実行される。
【0081】
汎用の群モデルは、論文 "Lower Bounds for Discrete Logarithms and Related Problems", Victor Shoup, EUROCRYPT 1997. に紹介されているような理想化された暗号モデルである。汎用の群モデルでは、敵対者には、実際に使用される有限体または楕円曲線群などの具体的な符号化ではなく、無作為に選択された群の符号化へのアクセスのみが与えられる。
【0082】
図1に、本発明の一実施形態による分散型ネットワーク100の例示的なブロック図を示す。
【0083】
分散ネットワーク100は、ネットワークノード10としても示され得る複数のノード10を含む。複数のノード10は、複数の複製された計算クラスタ11に割り当てられる。複製された計算クラスタ11は、サブネットワーク11を確立し、以下ではサブネットワーク11と称され得る。
図1の例では、SNA、SNB、SNC、SNDで示される4つのサブネットワーク11が設けられている。
【0084】
複数のサブネットワーク11の各々は、それぞれのサブネットワーク11の各ノード10で一組の計算ユニットを実行するように構成される。いくつかの実施形態では、計算ユニットは、ソフトウェアの一部として、特に、それ自体のユニット状態である実行状態を含むか、それを有するソフトウェアの一部として理解されるものである。
【0085】
いくつかの実施形態では、ユニット状態は、特に、計算ユニットが変数に格納するデータのような、計算ユニットの決定論的サブユニットにより使用される全ての決定論的データまたは情報だけでなく、計算ユニットがリモートコールから取得するデータとしても理解されるものである。ユニット状態は、特に、それぞれのノードのそれぞれのメモリ位置における格納位置を表し得る。いくつかの実施形態では、計算ユニットの実行中の任意の時点でのこれらのメモリ位置の内容は、ユニット状態と称される。計算ユニットは、特に、ステートフル計算ユニットとして具現化され得、すなわち、計算ユニットは、いくつかの実施形態では、先行するイベントまたはユーザ対話を記憶するように設計される。
【0086】
ネットワーク100は、特に、同一のサブネットワークに割り当てられた計算ユニット間で交換されるサブネットワーク内ユニット間メッセージのような、それぞれのサブネットワーク11内のサブネットワーク内通信のための通信リンク12を備える。
【0087】
さらに、ネットワーク100は、特に、異なるサブネットワークに割り当てられた計算ユニット間で交換されるサブネットワーク間ユニット間メッセージのような、異なるサブネットワーク11間のサブネットワーク間通信のための通信リンク13を備える。
【0088】
したがって、通信リンク12は、サブネットワーク内またはピアツーピア(P2P)通信リンクとして示され得、通信リンク13は、サブネットワーク間またはサブネットワーク間(SN2SN)通信リンクとして示され得る。
【0089】
本発明のいくつかの実施形態では、サブネットワーク11は、それぞれのサブネットワーク11にわたって一組の計算ユニットを複製するように構成される。より具体的には、サブネットワーク11は、それぞれのサブネットワーク11にわたって計算ユニットのユニット状態を複製するように構成される。
【0090】
ネットワーク100は、特に、プルーフオブステークブロックチェーンネットワークであり得る。
【0091】
ネットワーク100は、メッセージングプロトコルおよびコンセンサスプロトコルを介してサブネットワークSNA、SNB、SNC、およびSND間でサブネットワーク間メッセージ16を交換するように構成される。コンセンサスプロトコルは、それぞれの受信サブネットワークにおけるサブネットワーク間メッセージ16の処理順序に関するコンセンサスに得るように構成される。
【0092】
いくつかの実施形態では、ネットワーク100は、各サブネットワーク上でコンセンサスプロトコルを別々に実行するように構成され得る。換言すれば、サブネットワークSNA、SNB、SNC、およびSNDのそれぞれは、それ自身のコンセンサスプロトコルを他のサブネットワークとは別個にかつ独立して実行する。
【0093】
分散ネットワーク100は、中央制御ユニットCCU20を備え得る。中央制御ユニット20は、ネットワークのノードにネットワーク制御情報を提供する中央レジストリ21を備え得る。
【0094】
いくつかの実施形態では、サブネットワークSNA、SNB、SNC、またはSNDのうちの少なくとも1つは、複製されたシステム計算クラスタとして具現化される。そのような複製されたシステム計算クラスタのノードのそれぞれは、システム計算ユニットを備える。そのようなシステム計算クラスタは、しきい値署名などのマルチパーティ計算を実行し得る。
【0095】
分散ネットワーク100は、分散ネットワーク100のユーザにユーザインターフェース101を提供し得る。
【0096】
ユーザは、デジタル署名により、例えばメッセージm に署名するための署名要求を送信し得る。特に、しきい値署名のようなデジタル署名は、例えば、しきい値ECDSA署名であり得る。署名要求は、システムコールにより実行され得る。分散ネットワーク100は、複製されたシステム計算クラスタのシステム計算ユニットから要求された署名を実行し得、ユーザインターフェース101を介して、実行された署名を有するメッセージ m を備える署名応答を提供し得る。
【0097】
図2は、複数のノードN1、N2、およびN3を備える例示的な複製された計算クラスタ/サブネットワークSNA200を、より詳細に図示している。複製された計算クラスタ200は、システム計算クラスタとして具現化される。複製されたシステム計算クラスタ200の複数のノードN1、N2、およびN3のそれぞれは、システム計算ユニットを実行するように構成される。より具体的には、システム計算ユニットは、ノードN1上で実行されるシステム計算ユニット21a、SCU
N1、ノードN2上で実行されるシステム計算ユニット21b、SCU
N2、およびノードN3上で実行されるシステム計算ユニット21c、SCU
N3を包含する。システム計算ユニット21a、21b、21cを総称して、システム計算ユニット21として参照し得る。複製システム計算クラスタ200のシステム計算ユニット21a、21b、および21cは、複製システム計算クラスタ200、SNAにわたって決定論的で複製された計算を実行して、それによりユニット状態の同一のチェーンをトラバースするように構成された決定論的サブユニット22、SNA_detを備える。複製されたシステム計算クラスタ200のシステム計算ユニット21a、21b、および21cは、非決定論的計算を実行する非決定論的サブユニットをさらに備える。より具体的には、システム計算ユニット21a、SCU
N1は、非決定論的サブユニット23a、N1_nondetを備える。非決定論的サブユニット23aは、ノードN1に固有/個別の非決定論的データを格納して計算し得る。同様に、システム計算ユニット21b、SCU
N2は、ノードN2に固有/個別の非決定論的データを格納して計算し得る非決定論的サブユニット23b、N2_nondetを備える。そして、システム計算ユニット21c、SCU
N3は、ノードN3に固有/個別の非決定論的データを格納して計算し得る非決定論的サブユニット23c、N3_nondetを備える。加えて、ノードN1、N2、およびN3のそれぞれは、分散ネットワークのユーザにアプリケーションサービスを提供する1つ以上のアプリケーション計算ユニットを実行するように構成される。より具体的には、ノードN1、N2、およびN3のそれぞれは、5つのアプリケーション計算ユニット31一式、より具体的にはアプリケーション計算ユニットCU
A1、CU
A2、CU
A3、CU
A4、およびCU
A5を実行するように構成される。これらのアプリケーション計算ユニットCU
A1、CU
A2、CU
A3、CU
A4、およびCU
A5は、システム計算クラスタ200にわたって決定論的な複製された計算を実行するようにも構成される。システム計算クラスタ200は、アプリケーション計算ユニットとシステム計算ユニットの両方を備えるので、混合計算クラスタと称され得る。
【0098】
システム計算ユニット21a、21b、21cのそれぞれは、決定論的サブユニット22からそれぞれの非決定論的サブユニット23a、23b、23cへの単方向通信機構40を有する。
【0099】
さらに、システム計算ユニット21a、21b、および21cのそれぞれは、非決定論的サブユニット23a、23b、および23cから決定論的サブユニット22への単方向通信機構50を確立し得る。通信機構50は、コンセンサス機構51を備える。コンセンサス機構51は、決定論的サブユニット22のそれぞれに提供されるメッセージに関するコンセンサスを得るために使用され得、その結果、決定論的サブユニット22はすべて、それぞれの非決定論的サブユニット23a、23b、23cのうちの1つにより提供される非決定論的データの同一のビュー/状態を有する。
【0100】
いくつかの実施形態では、アプリケーション計算ユニットCU
A1、CU
A2、CU
A3、CU
A4、またはCU
A5のそれぞれは、マルチパーティ計算を実行するために、システム計算ユニット21a、21b、および21cにシステムコールを発動し得る。システムコールは、特に、例えば、それぞれのアプリケーション計算ユニットにより提供されるメッセージ m に対して署名を実行する署名要求であり得る。
図2には、アプリケーション計算ユニットCU
A2により発行される署名要求 Sreq が示されている。システム計算ユニット21a、21b、および21cにより実行されるマルチパーティ計算の結果として、アプリケーション計算ユニットCU
A2は、署名応答 Sresp を受信する。
【0101】
図3に、公開鍵署名方式にしたがってデジタル署名を実行するコンピュータ実装方法の方法ステップのフローチャートを示す。
【0102】
ステップ310で、署名エンティティは、事前署名を計算する。
【0103】
ステップ320において、署名エンティティは、署名要求を受信してメッセージに対するデジタル署名を実行する。
【0104】
ステップ330において、署名エンティティは、署名を再ランダム化する。
【0105】
ステップ340において、署名エンティティは、再ランダム化された事前署名を用いてメッセージにデジタル署名を実行する。
【0106】
以下では、本方法は、楕円曲線デジタル署名アルゴリズム(ECDSA)にしたがったデジタル署名として実施されると仮定し、前述のステップについて、ECDSAを参照してより詳細に説明される。
【0107】
ECDSAは、次の署名方式に基づき得る。E は、Z
p上で定義されて素数位数 q の点 G により生成される楕円曲線とする。非縮小変換関数
は、点P をそのx座標にマッピングする。縮小変換関数
は、点P を縮小 mod q のC(P)(すなわち、区間[0,p) の整数)のカノニカル表現にマッピングする。
【0108】
ECDSAの秘密鍵はランダムな
であり、公開鍵は D = dG ∈ E である。ECDSAによる署名方式では、ハッシュ関数
が使用される。メッセージ m を署名するためには、署名スキームは、次のように進められ得る。
【0109】
【0110】
検証者は、メッセージm の署名
の検証を次式のように進め得る。
【0111】
【0112】
ECDSA署名アルゴリズムでは、値r および R:= rG は、署名されるメッセージとは無関係である。ゆえに、それらは、実際の署名要求の前に事前計算され得る。あらかじめ事前計算することが可能であり、そして実際に事前計算される署名アルゴリズムのそのような要素は、本発明のいくつかの実施形態にしたがって事前署名を確立する。値 r は、ランダムナンスを確立する。換言すれば、事前署名のランダム値を形成する。
【0113】
いくつかの実施形態では、値r だけが事前計算され得、他のいくつかの実施形態では、r および R の両方が事前計算され得る。後者の実施形態は、しきい値署名、特にECDSAしきい値署名を含む分散設定において特に有利である。そのしきい値設定では、各当事者は、r の共有を事前計算し得る。さらに、R 自体も事前計算され得る。このような実施形態は、プロトコルのオンライン署名フェイズを大幅に簡略化し得る。
【0114】
いくつかの実施形態では、ナンスを含む事前署名は、再ランダム化され得る。上述のECDSA実施形態を参照すると、r' ∈ Zq および R':= r'G ∈ E 形式の事前署名は、前述のとおり計算され得る。
【0115】
ただし、署名要求が行われると、元の事前署名は予測不可能な公開再ランダム化値 δ により再ランダム化される。前述のECDSA実施形態では、使用される実際の事前署名は次式のとおりである。
【0116】
【0117】
ここで δ は公開値であり、特にδ ∈ Zq を満たす。
【0118】
再ランダム化値 δ、したがって事前署名は、メッセージを有する署名要求が受信または決定されるまでは予測が不可能である。
【0119】
そのような再ランダム化により、より高いセキュリティレベルが証明され得る。具体的には、セキュリティレベルについて、加法的鍵導出を行なわずに再ランダム化された事前署名のセキュリティレベルが、単純なECDSAのセキュリティレベルと本質的に同等であることが証明され得る。さらに、敵対者がメッセージ(生の署名)ではなく、メッセージダイジェストに対して直接署名を取得可能であっても安全である。加法的鍵導出では、具体的なセキュリティは、|E| の係数で低下するが、結果として得られる方式は4サム攻撃に対して脆弱ではなくなる。ここで、E は、有効な一組の判別子/トゥイークである。加法的鍵導出の有無にかかわらず、生の署名についてもセキュリティが証明され得る。
【0120】
前述したように、再ランダム化された事前署名の使用は、しきい値の設定において特に有利である。いくつかの実施形態では、再ランダム化は、特に、線形演算のような代数演算であるので、共有の取り扱いに関する再ランダム化のコストは、中程度または無視できる。
【0121】
ただし、予測不可能な公開再ランダム化値δ の実際の生成には、関連するコストが発生する。そのコストは、デジタル署名を実行する計算システムの他の態様に依存し得る。
【0122】
一実施形態では、予測不可能な公開再ランダム化値δ は、署名要求を受信した後に、例えば、擬似乱数発生器により、公開再ランダム化値 δ の擬似乱数発生を実行することで発生し得る。
【0123】
一実施形態では、公開再ランダム化値δ は、少なくともメッセージまたはメッセージのハッシュにハッシュ関数を適用することにより計算され得る。いくつかの実施形態では、ハッシュ関数は、デジタル署名の公開鍵などのさらなる入力に適用され得る。加法的鍵導出の際、ハッシュは判別子にも適用され得る。
【0124】
事前署名を再ランダム化するそのような実施形態は、計算または待ち時間のいずれの点でも、本質的にコスト不要である。それにもかかわらず、ヒューリスティックには単純な事前署名よりも高いセキュリティを提供するように見え、特に4サム攻撃を阻止する。
【0125】
さらなるいくつかの実施形態では、公開再ランダム化値δ は、ランダムビーコンから導出され得る。このようなランダムビーコンは、一般に、公的に利用可能な任意のランダム性として定義し得る。いくつかの実施形態では、そのようなランダムビーコンは、しきい値BLS署名方式を使用して実装され得る。
【0126】
図4に、公開鍵署名方式にしたがってデジタル署名を実行するコンピュータ実装方法の方法ステップの別のフローチャートを示す。
【0127】
ステップ410で、署名エンティティは第1マスター公開鍵と第2マスター公開鍵とを備えるマスター公開鍵ペアを提供、保持、格納、および/または使用する。
【0128】
ステップ420で、署名エンティティはマスター公開鍵ペアから副公開鍵を導出する。
【0129】
ステップ430で、署名エンティティはマスター秘密鍵ペアを提供、保持、格納、および/または使用する。マスター秘密鍵ペアは、第1マスター秘密鍵と第2マスター秘密鍵とを備える。
【0130】
ステップ440で、署名エンティティはマスター秘密鍵ペアから副秘密鍵を導出する。
【0131】
ステップ410および430は、準備ステップとして考慮し得る。また、共通ステップとしても考慮し得る。マスター公開/秘密鍵ペアは、ランダムに選択され得る。
【0132】
マスター鍵ペアからの副鍵のそのような導出は、一般に、秘密鍵の保持コストを抑制する利点を有する。より具体的には、単一の秘密鍵ペアを保持するだけで、使用する複数の異なる副公開鍵の導出が可能になる。
【0133】
この秘密鍵保持コストは、しきい値設定と非しきい値設定の両方で発生する。非しきい値設定では、ある種の安全な格納装置に秘密鍵を保持するコストがある。しきい値設定では、ある種の安全な格納装置に共有秘密を保持するコスト、および積極的なセキュリティの維持が必要なときのこれらの共有を定期的に動的に更新するコストがある。それにもかかわらず、そのような方式は、しきい値署名方式として効率的に実装され得る。
【0134】
以下では、本発明のいくつかの実施形態による鍵導出技術を、ECDSA署名に関して例示的に説明する。
【0135】
このような実施形態では、マスター秘密鍵はランダムなマスター秘密鍵ペア (d,d') ∈ Zq × Zq であり、対応するマスター公開鍵は、マスター公開鍵ペアである。
【0136】
【0137】
所与の判別子は「トウィーク」e ∈ Zq とも称され得、対応する導出副秘密鍵d'' は d + ed' ∈ Zqであり、対応する導出副公開鍵 D'' は D + eD' である。
【0138】
ゆえに、マスター秘密鍵ペアから副秘密鍵を導出するステップは、マスター秘密鍵ペアに対して第1代数演算を実行することを備え、これは、前述の例では線形演算である。マスター公開鍵ペアから副公開鍵を導出するステップは、マスター秘密鍵ペアに対して第2代数演算を実行することを備え、これは、前述の例では線形演算である。さらに、前述の例では、代数演算および線形演算は同一である。
【0139】
判別子/トウィーク e は、一般に、物、人々、またはクラス相互の区別を可能にするエージェントまたは特性として、実施形態により定義され得る。判別子 e は、特にハッシュ関数、特に耐衝突性ハッシュ関数により導出され得る。
【0140】
マスター秘密鍵ペアとマスター公開鍵ペアとを備えるマスター鍵ペアを使用することで、加法的鍵導出を使用するよりも高いセキュリティレベルが証明され得る。
【0141】
特に、いくつかの実施形態では、判別子/トウィークが、何らかの事前決定された集合 E ⊆ Zq からくると仮定する必要はない。このように、判別子/トウィーク e ∈ Zq は、ハッシュ関数 Hash から次式で導出され得る。
【0142】
【0143】
ここで、id は任意の識別子である。
【0144】
任意の識別子 id は、副公開鍵または副秘密鍵の所有権および/またはコンテキストを一意に識別し得る。
【0145】
いくつかの実施形態では、判別子e は、複数のハッシュ入力データ一式に、ハッシュ関数 Hash を適用することにより導出され得る。そのような実施形態では、ハッシュ入力データは、任意の識別子 id、マスター公開鍵ペア、および/またはさらなる入力データを含み得る。
【0146】
いくつかの実施形態では、Hash は、ECDSA署名アルゴリズムにおいて h を生成するために以前使用したものと同一のハッシュ関数であり得る。他のいくつかの実施形態では、異なるハッシュ関数が適用され得る。いくつかの実施形態では、唯一の要件は、このハッシュ関数が Zq にマッピングして、耐衝突性があることである。
【0147】
いくつかの実施形態では、署名アルゴリズムは、入力として、メッセージ m および任意の識別子 id を取得し得る。
【0148】
前述したような鍵導出技術は、いくつかの実施形態にしたがって、再ランダム化された事前署名と組み合わされ得る。
【0149】
別の実施形態では、加法的鍵導出技術は、いくつかの実施形態にしたがって再ランダム化された事前署名と組み合わされ得る。
【0150】
このような加法的鍵導出技術は、
図7を参照して以下でより詳細に説明する。
【0151】
図7に、公開鍵署名方式にしたがってデジタル署名を実行するコンピュータ実装方法の方法ステップの別のフローチャートを示す。
【0152】
ステップ710で、マスター公開鍵D とマスター秘密鍵d とを備えるマスター鍵ペアが提供される。
【0153】
ステップ720で、1つ以上の副鍵ペアがマスター鍵ペアから導出される。副鍵ペアは、副公開鍵 D' と副秘密鍵 d' とを備える。副鍵ペアは、マスター鍵ペアに加算シフト演算を適用して、マスター鍵ペアから導出される。
【0154】
いくつかの実施形態では、そのような加法的鍵導出は、判別子
を使用してマスター鍵ペア (d, D) から副秘密鍵を導出し得る。判別子 e は、「トウィーク」とも称され得る。
【0155】
より具体的には、副秘密鍵はd':= d + e で計算され得、副公開鍵は D':= D + eG で計算され得る。
【0156】
前述の混合鍵導出と同様に、加法的鍵導出も単一の秘密鍵を保持するだけで、複数の異なる公開鍵を使用可能であるので、鍵の安全な保持するコストの削減にも有用である。
【0157】
図5に、分散しきい値鍵生成プロトコルにより生成され得る鍵510の実施形態を示す。鍵510は、複製されたシステム計算クラスタのシステム計算ユニットにより、ユーザまたはアプリケーション計算ユニットの要求に応じてメッセージに署名するために使用され得る。この例では、N個のシステム計算ユニットが分散鍵生成プロトコルに参加すると仮定する。N個のシステム計算ユニットのそれぞれに共有秘密鍵sk
iがあり、ここで、i = 1, … , N である。N個のシステム計算ユニットは、共通の公開検証鍵pkを生成しており、事前に定義されたしきい値、例えばシステム計算ユニットの少なくとも3分の2または3分の1は、それらの共有秘密鍵を使用して共同署名σpkを作成する必要がある。そして、公開検証鍵pkを使用して共同署名の検証が可能になる。
【0158】
前述のように、事前署名を計算して、事前署名を再ランダム化する本発明のいくつかの実施形態による技術は、そのようなしきい値署名と共に有利に使用され得る。
【0159】
ここで
図6を参照すると、例えば
図1のネットワーク100の、本発明のいくつかの実施形態によるネットワークノード10の、より詳細なブロック図が示されている。ネットワークノード10は、計算機能を実行し得るとともに、一般に計算システムまたはコンピュータとして具現化し得る計算ノードを確立する。ネットワークノード10は、例えば、サーバコンピュータであり得る。ネットワークノード10は、分散型ネットワークを動作させるコンピュータ実装方法を実行するように構成され得る。ネットワークノード10は、他の多くの汎用または専用の計算システム環境または構成で動作し得る。
【0160】
ネットワークノード10は、コンピュータシステムにより実行されるプログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明し得る。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。ネットワークノード10は、汎用計算デバイスの形態で示されている。ネットワークノード10のコンポーネントは、1つ以上のプロセッサまたは処理ユニット615、システムメモリ620、およびシステムメモリ620を含むさまざまなシステムコンポーネントをプロセッサ615に結合するバス616を含み得る。ただし、これらに限定されるものではない。
【0161】
バス616は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含んでいる、いくつかの形式のバス構造のいずれかの1つ以上を表す。
【0162】
ネットワークノード10は、通常、さまざまなコンピュータシステム可読媒体を含む。
【0163】
システムメモリ620は、ランダムアクセスメモリ(RAM)621および/またはキャッシュメモリ622などの揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。ネットワークノード610は、他の取り外し可能/取り外し不可の、揮発性/不揮発性のコンピュータシステム記憶媒体をさらに含み得る。ほんの一例として、ストレージシステム623は、取り外し不可の不揮発性磁気媒体(図示せず、通常「ハードドライブ」と称される)からの読み取りまたはそれに書き込むために提供され得る。図示していないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー(登録商標)ディスク」)から読み取りまたはそれに書き込むための磁気ディスクドライブ、および、CD-ROM、DVD-ROM、または他の光メディアなどの取り外し可能な不揮発性光ディスクから読み取りまたはそれに書き込むための光ディスクドライブを提供可能である。そのような場合、それぞれは、1つ以上のデータメディアインターフェースによりバス616に接続され得る。以下にさらに図示して説明されるように、メモリ620は、本発明のいくつかの実施形態の機能を実行するように構成された1組のプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのコンピュータプログラム製品を含み得る。
【0164】
プログラムモジュール631一式(少なくとも1つ)を有するプログラム/ユーティリティ630は、限定するものではなく一例として、メモリ620に記憶され得、同様にオペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも記憶され得る。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータのそれぞれ、またはそれらのいずれかの組合せは、ネットワーキング環境の実装を含み得る。プログラムモジュール631は一般に、本明細書に記載されている本発明のいくつかの実施形態の機能および/または方法を実行する。プログラムモジュール631は、特に、分散ネットワークを動作させるコンピュータ実装方法の1つ以上のステップ、例えば、前述の方法の1つ以上のステップを実行し得る。
【0165】
ネットワークノード10は、キーボードまたはポインティングデバイス、ならびにディスプレイ618などの1つ以上の外部デバイス617と通信し得る。そのような通信は、入力/出力(I/O)インターフェース619を介して行われ得る。さらに、ネットワークノード10は、ネットワークアダプタ641を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、および/またはパブリックネットワーク(例えば、インターネット)などの1つ以上のネットワーク40と通信可能である。いくつかの実施形態では、ネットワーク640は、例えば、
図1に示したネットワーク100のような複数のネットワークノード10を含む分散型ネットワークであり得る。図示したように、ネットワークアダプタ641は、バス616を介してネットワークノード10の他の構成要素と通信する。図示していないが、他のハードウェアおよび/またはソフトウェア構成要素がネットワークノード10とともに使用可能であることを理解されたい。
【0166】
本発明のいくつかの態様は、システム、特に複数のサブネットワークを含む分散ネットワーク、方法、および/またはコンピュータプログラム製品として具現化され得る。コンピュータプログラム製品は、プロセッサに本発明のいくつかの態様を実行させるコンピュータ可読プログラム命令を有する1つのコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0167】
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および記憶可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組み合わせであり得る。ただし、これらに限定されるものではない。本明細書で使用されるコンピュータ可読記憶媒体は、電波やその他の自由に伝播する電磁波、導波管やその他の伝送媒体を伝播する電磁波(例えば、光ファイバーケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などのような、それ自体が一時的信号であるもの、と解釈されるべきではない。
【0168】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれの計算/処理デバイスにダウンロード可能であり、また、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくは無線ネットワークのようなネットワークを介して外部コンピュータもしくは外部記憶デバイスに、ダウンロード可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。各計算/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの計算/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0169】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、ソースコードもしくはオブジェクトコードのいずれかであり得る。ソースコードもしくはオブジェクトコードは、Samalltalks、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組合せで記述されたものである。
【0170】
本発明の態様は、本発明のいくつかの実施形態による方法、ネットワーク、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して本明細書に記載されている。
【0171】
本発明のいくつかの実施形態によるコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供される。そして、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図の1つ以上のブロックで指定された機能/動作を実施する手段を作成するように、機械を生成し得る。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスが、特定の方法で機能するように指示可能なコンピュータ可読記憶媒体に格納され得る。その結果、命令を格納したコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つ以上のブロックで指定された機能/動作の態様を実施する命令を含む製品を有する。
【0172】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされる。そして、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令がフローチャートおよび/またはブロック図の1つ以上のブロックで指定された機能/動作を実施するように、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させるコンピュータ実装プロセスを生成し得る。
【0173】
図面のフローチャートおよびブロック図は、本発明のさまざまな実施形態によるネットワーク、システム、方法、およびコンピュータプログラム製品において、可能な実装のアーキテクチャ、機能、および動作を示す。この点について、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を備えているモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的な実装では、ブロックに記載されている機能は、図面に記載された順序とは異なる順序で実行され得る。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行され得る。また、関係する機能に応じて、ブロックが逆の順序でも実行され得る。
【0174】
前述の添付書類および以下の添付書類には、本発明の現時点でのいくつかの好ましい実施形態を示して説明しているが、本発明はそれらに限定されるものではなく、特許請求の範囲内で他の方法でさまざまに具現化され、実施され得ることが明確に理解されるべきである。
【0175】
以下では、さらなるいくつかの実施形態およびECDSA署名アルゴリズムの詳細なセキュリティ分析が提供される。出願人は、予期せずに、事前署名を使用したECDSA署名方式の具体的なセキュリティが、単純なECDSAよりも実質的に劣ることを発見した。そして、出願人は、次式に示すように事前署名を使用したECDSAに対する攻撃の可能性を発見した。
【0176】
【0177】
表1は、具体的なセキュリティ定理をまとめたものである。この表において、「導出なし」は、鍵導出技術が使用されていないことを示している。「加法的」は、加法的鍵導出技術が使用されたことを示しており、「同種」は、マスター秘密鍵ペアおよびマスター公開鍵ペアを提供するステップと、マスター秘密鍵ペアから副秘密鍵を導出してマスター公開鍵ペアから副公開鍵を導出するステップと、を備える本発明のいくつかの実施形態による新しい鍵導出技術を参照している。さらに、「事前署名なし」は事前署名を用いない方法を参照しており、「事前署名あり」は事前署名を用いる方法を参照しており、そして「再ランダム化事前署名」は、再ランダム化事前署名を用いるいくつかの実施形態を参照している。
【0178】
【0179】
テーブルの各エントリは、敵対者による偽造の静甲の上限を示す(小さい定数を無視する)。この解析は、ハッシュ関数 Hash に対する具体的な仮定の下で、一般的な群モデルに対して行われる。上限は次式で示される。
【0180】
【0181】
加法的鍵導出では、すべての有効なトウィークの一集合体はそれほど大きくなく、事前に決定されていると仮定される。実際には(BIP32などで)、トウィークは、ハッシュを介して識別子(おそらく「ルート」公開鍵と組み合わされる)から導出される。トウィークの一集合体に対するこの仮定は、一組の有効識別子、特に偽造が懸念される一組の識別子が実際に小さい場合に正当化され得る。また、トウィークを導出するために使用されるハッシュ関数を、ランダムオラクルとしてモデル化することによりさらに正当化され得る。とはいえ、この分析はこの仮定がなくても機能する。
【国際調査報告】