(57)【要約】  デジタルアセット(2)の制御を移転する方法が開示される。当該方法は、複数の第1参加者(4)の間で、楕円曲線暗号(ECC)システムの第1秘密鍵dAのシェアdAiを分配するステップを含む。第1秘密鍵は、第1秘密鍵の第1閾数(6)のシェアを用いてアクセス可能であり、第1閾数のシェアが無い場合にアクセス不可能であり、デジタルアセット(2)へのアクセスは、第1秘密鍵による第1暗号化メッセージのデジタル署名により提供される。暗号化システムの決定性鍵Dkのシェアは、第1参加者または複数の第2参加者の間で分配され、決定性鍵は、決定性鍵の第2閾数のシェアを用いてアクセス可能であり、第2閾数のシェアが無い場合にアクセス不可能である。第2暗号化メッセージが提供され、デジタルアセット(2)へのアクセスは、暗号化システムの第2秘密鍵dA+Dkによる第2暗号化メッセージのデジタル署名により提供され、第2秘密鍵は、決定性鍵Dkにより第1秘密鍵に関連付けられる。第2秘密鍵により署名された第2暗号化メッセージのシェアが生成され、第2暗号化メッセージは署名されたメッセージの第3閾数(12)のシェアを用いて第2秘密鍵により署名でき、第3閾数のシェアが無い場合に署名できない。
2021515270.tif 000002
【特許請求の範囲】
【請求項１】
デジタルアセットの制御を移転する方法であって、前記方法は、
複数の第1参加者の間で、少なくとも1つの第1シークレット値のシェアを分配するステップであって、少なくとも1つの前記第1シークレット値は、準同型特性を有する暗号化システムの第1秘密−公開鍵ペアの第1秘密鍵であり、前記第1シークレット値は、前記第1シークレット値の第1閾数の前記シェアによりアクセス可能であり、前記第1シークレット値の前記第1閾数のシェアが無い場合にアクセス可能ではなく、前記デジタルアセットへのアクセスは、前記第1秘密鍵による第1暗号化メッセージへのデジタル署名により提供される、ステップと、
前記複数の第1参加者の間で、少なくとも1つの第2シークレット値のシェアを分配するステップであって、少なくとも1つの前記第2シークレット値は、前記暗号化システムの決定性鍵であり、前記第2シークレット値は、前記第2シークレット値の第2閾数の前記シェアによりアクセス可能であり、前記第2シークレット値の前記第2閾数のシェアが無い場合にアクセス可能ではない、ステップと、
第2暗号化メッセージを提供するステップであって、前記デジタルアセットへのアクセスは、前記暗号化システムの第2秘密−公開鍵ペアの第2秘密鍵による前記第2暗号化メッセージへのデジタル署名により提供され、前記第2秘密鍵は前記決定性鍵により前記第1秘密鍵に関連付けられる、ステップと、
少なくとも1つの第3シークレット値のシェアを生成するステップであって、少なくとも1つの前記第3シークレット値は、前記第2秘密鍵により署名された前記第2暗号化メッセージであり、前記第2暗号化メッセージは、前記第3シークレット値の第3閾数の前記シェアを用いて前記第2秘密鍵により署名でき、前記第3シークレット値の前記第3閾数のシェアが無い場合に署名できない、ステップと、
を含む方法。
【請求項２】
前記暗号化システムを用いて暗号化された、前記決定性鍵のバージョンを、複数の第2参加者に分配するステップであって、前記準同型特性は、前記第1公開鍵および前記決定性鍵の前記バージョンからの、前記第2公開鍵の導出を可能にする、ステップ、を更に含む請求項1に記載の方法。
【請求項３】
前記第1および／または第2参加者に通信された前記シェアは、前記第1および／または第2参加者により互いにアクセス不可能である、請求項1または2に記載の方法。
【請求項４】
前記第1および／または第2参加者に前記シェアを通信する前記ステップは、前記第1および／または第2参加者にそれぞれの暗号化通信チャネルを提供するステップを含む、請求項1乃至3のいずれか一項に記載の方法。
【請求項５】
少なくとも1つの前記第1シークレット値のシェアを分配する前記ステップは、
複数の第4参加者に、第3参加者に知られている第4シークレット値のそれぞれの第1シェアを分配するステップであって、前記第1シェアは、前記暗号化システムの少なくとも1つの第3秘密−公開鍵ペアを用いて暗号化され、前記第4参加者が前記第4シークレット値を決定するために、第4閾数の第1シェアが必要である、ステップと、
複数の前記第4参加者の各々から、前記第4参加者に知られているそれぞれの第5シークレット値の少なくとも1つの第2シェアを受信するステップであって、前記第2シェアは、前記暗号化システムの少なくとも1つの第4秘密−公開鍵ペアを用いて暗号化され、前記第4参加者以外の参加者が前記第5シークレット値を決定するために、第5閾数の第2シェアが必要である、ステップと、
複数の前記第2シェアから、前記第1シークレット値の第3シェアを形成するステップであって、前記第1シークレット値を決定できるために、前記第1閾数の第3シェアが必要である、ステップと、
を含む、請求項1乃至4のいずれか一項に記載の方法。
【請求項６】
前記第4および第5シークレット値の前記第1および第2シェアは、それぞれのShamir秘密共有方式を用いて生成される、請求項5に記載の方法。
【請求項７】
前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンを、複数の前記第4参加者の各々に通信するステップ、を更に含む請求項5または6に記載の方法。
【請求項８】
前記暗号化システムを用いて暗号化された、少なくとも1つの第1シークレット値のバージョンを決定するステップ、を更に含む請求項5乃至7のいずれか一項に記載の方法。
【請求項９】
複数の前記第1シェアは、それぞれ、第1多項式関数の値であり、前記第1シークレット値は、前記第1閾数の前記シェアから前記多項式関数を導出することにより、決定される、請求項5乃至8のいずれか一項に記載の方法。
【請求項１０】
複数の前記第1シェアは、それぞれ、第2多項式関数の値であり、前記方法は、
前記暗号化システムを用いて暗号化された、前記第2多項式関数の係数のバージョンを、複数の前記第4参加者の各々に通信するステップ、
を更に含む請求項5乃至9のいずれか一項に記載の方法。
【請求項１１】
前記第3参加者から直接受信した前記第1シェアと、複数の前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、の整合性を検証するステップ、を更に含む請求項5乃至10のいずれか一項に記載の方法。
【請求項１２】
前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、別の前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、の整合性を検証するステップ、を更に含む請求項5乃至11のいずれか一項に記載の方法。
【請求項１３】
値0を有する、第6シークレット値のそれぞれの第4シェアを、複数の第4参加者に分配するステップであって、前記第4シェアは、前記暗号化システムの少なくとも1つの第5秘密−公開鍵ペアを用いて暗号化される、ステップ、を更に含む請求項5乃至12のいずれか一項に記載の方法。
【請求項１４】
前記第4参加者から、少なくとも1つの前記第4シェアを受信し、前記第3シェアおよび第4シェアから、前記第1シークレット値の第5シェアを形成するステップであって、前記第1シークレット値を決定するために、第6閾数の第5シェアが必要である、ステップ、を更に含む請求項5乃至13のいずれか1つに記載の方法。
【請求項１５】
前記少なくとも1つの第1シークレット値は、複数の前記第1参加者の間でJRSS(joint  random  secret  sharing)を用いて共有される、請求項5乃至14のいずれか一項に記載の方法。
【請求項１６】
少なくとも1つの前記第1シークレット値を共有するステップは、JZSS(joint  zero  secret  sharing)により生成されたシェアをマスクするステップを含む、請求項15に記載の方法。
【請求項１７】
前記暗号化システムは楕円曲線暗号化システムであり、各々の前記公開−秘密鍵ペアの前記公開鍵は、前記秘密鍵による楕円曲線基準点の乗算により、対応する秘密鍵に関連付けられ、前記第2秘密鍵は、前記決定性鍵の前記第1秘密鍵への加算により、前記第1秘密鍵に関連付けられる、請求項1乃至16のいずれか一項に記載の方法。
【請求項１８】
コンピュータにより実装されるシステムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに請求項1乃至17のいずれか一項に記載のコンピュータにより実施される方法の任意の実施形態を実行させる実行可能命令を含むメモリと、
を含むシステム。
【請求項１９】
実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、請求項1乃至17のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【発明の概要】
【０００１】
本発明は、概して、データのセキュリティ及びコンピュータに基づくリソースに関する。より具体的には、本発明は、暗号通貨及び暗号法に関し、楕円曲線暗号法、楕円曲線デジタル署名アルゴリズム(Elliptic  Curve  Digital  Signature  Algorithm：ECDSA)、及び閾値暗号法にも関する。本発明は、ブロックチェーンにより実装される暗号通貨に関連して利益をもたらすために使用できるが、これに関して限定されず、より広範な適用可能性を有し得る。本発明は、一実施形態では、閾値署名方式を提供するとして記載され得る。
【０００２】
本願明細書では、私たちは、全ての形式の電子的、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本発明はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本発明の範囲に包含されることに留意すべきである。
【０００３】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。
【０００４】
非集中化の概念は、Bitcoin方法にとって基本的である。非集中化システムは、分散型又は集中型システムと異なり、単一の障害点が存在しないという利点を提供する。したがって、非集中化システムは、拡張されたレベルのセキュリティ及び信頼性を提供する。このセキュリティは、楕円曲線暗号法及びＥＣＤＳＡのような知られている暗号化技術の使用により更に拡張される。
【０００５】
しかしながら、Bitcoinプロトコル自体は、本願の出願時において任意の有意な攻撃に対して強靱であることが証明されているが、Bitcoinネットワークを補うまたはそれに基づき構築された交換およびウォレットに対する攻撃が存在する。Bitcoinの価値が増大するにつれ、Mt  Gox及びBitfinexに関連するような、より多くの出来事が標準的な集中型システムにおいて生じる可能性がある。
【発明が解決しようとする課題】
【０００６】
したがって、このようなシステムのセキュリティを更に向上するソリューションの必要がある。本発明は、特にこのような利点を提供する。
【課題を解決するための手段】
【０００７】
本発明は、添付の請求の範囲に定められた方法及びシステムを提供する。
【０００８】
本発明によると、デジタルアセットの制御を移転する方法が提供され得る。前記方法は、
複数の第1参加者の間で、少なくとも1つの第1シークレット値のシェアを分配するステップであって、少なくとも1つの前記第1シークレット値は、準同型特性を有する暗号化システムの第1秘密−公開鍵ペアの第1秘密鍵であり、前記第1シークレット値は、前記第1シークレット値の第1閾数の前記シェアによりアクセス可能であり、前記第1シークレット値の前記第1閾数のシェアが無い場合にアクセス可能ではなく、前記デジタルアセットへのアクセスは、前記第1秘密鍵による第1暗号化メッセージへのデジタル署名により提供される、ステップと、
前記複数の第1参加者の間で、少なくとも1つの第2シークレット値のシェアを分配するステップであって、少なくとも1つの前記第2シークレット値は、前記暗号化システムの決定性鍵であり、前記第2シークレット値は、前記第2シークレット値の第2閾数の前記シェアによりアクセス可能であり、前記第2シークレット値の前記第2閾数のシェアが無い場合にアクセス可能ではない、ステップと、
第2暗号化メッセージを提供するステップであって、前記デジタルアセットへのアクセスは、前記暗号化システムの第2秘密−公開鍵ペアの第2秘密鍵による前記第2暗号化メッセージへのデジタル署名により提供され、前記第2秘密鍵は前記決定性鍵により前記第1秘密鍵に関連付けられる、ステップと、
少なくとも1つの第3シークレット値のシェアを生成するステップであって、少なくとも1つの前記第3シークレット値は、前記第2秘密鍵により署名された前記第2暗号化メッセージであり、前記第2暗号化メッセージは、前記第3シークレット値の第3閾数の前記シェアを用いて前記第2秘密鍵により署名でき、前記第3シークレット値の前記第3閾数のシェアが無い場合に署名できない、ステップと、
を含む。
【０００９】
第2暗号化メッセージを提供するステップであって、前記デジタルアセットへのアクセスは、前記暗号化システムの第2秘密−公開鍵ペアの第2秘密鍵による前記第2暗号化メッセージのデジタル署名により提供され、前記第2秘密鍵は、前記決定性鍵により前記第1秘密鍵に関連付けられる、ステップと、少なくとも1つの第3シークレット値のシェアを生成するステップであって、少なくとも1つの前記第3シークレットは、前記第2秘密鍵により署名された前記第2暗号化メッセージであり、前記第2暗号化メッセージは、前記第3シークレット値の第2閾数の前記シェアを用いて前記第2秘密鍵により署名でき、前記第3シークレット値の前記第3閾数のシェアが無い場合に署名できない、ステップと、により、これは、デジタルアセットの制御が第1秘密鍵の閾数のシェアから、第2秘密鍵の閾数のシェアへと、セキュア且つ簡易な方法で決定性鍵を使用することにより移転されることを可能にするという利点を提供する。また、決定性鍵のシェアを分配するステップによると、これは、署名方式における参加者の人数を容易に変更できるという利点を提供する。その結果、例えば、参加者のうちの1人以上のセキュリティが傷付けられた場合に、運用の更なる信頼性およびセキュリティが達成できる。これは、署名方式において参加者の人数を容易に増大することを可能にするという更なる利点も提供する。
【００１０】
前記方法は、前記暗号化システムを用いて暗号化された、前記決定性鍵のバージョンを、複数の第2参加者に分配するステップであって、前記準同型特性は、前記第1公開鍵および前記決定性鍵の前記バージョンからの、前記第2公開鍵の導出を可能にする、ステップ、を更に含んでよい。
【００１１】
各々の前記第1および／または第2参加者に通信された前記シェアは、前記第1および／または第2参加者により互いにアクセス不可能であってよい。
【００１２】
これは、セキュリティ、および秘密鍵の認可されない使用の防止を提供するという利点を提供する。
【００１３】
前記第1および／または第2参加者に前記シェアを通信する前記ステップは、前記第1および／または第2参加者にそれぞれの暗号化通信チャネルを提供するステップを含んでよい。
【００１４】
少なくとも1つの前記第1シークレット値のシェアを分配する前記ステップは、
複数の第4参加者に、第3参加者に知られている第4シークレット値のそれぞれの第1シェアを分配するステップであって、前記第1シェアは、前記暗号化システムの少なくとも1つの第3秘密−公開鍵ペアを用いて暗号化され、前記第4参加者が前記第4シークレット値を決定するために、第4閾数の第1シェアが必要である、ステップと、
複数の前記第4参加者の各々から、前記第4参加者に知られているそれぞれの第5シークレット値の少なくとも1つの第2シェアを受信するステップであって、前記第2シェアは、前記暗号化システムの少なくとも1つの第4秘密−公開鍵ペアを用いて暗号化され、前記第4参加者以外の参加者が前記第5シークレット値を決定するために、第5閾数の第2シェアが必要である、ステップと、
複数の前記第2シェアから、前記第1シークレット値の第3シェアを形成するステップであって、前記第1シークレット値を決定できるために、前記第1閾数の第3シェアが必要である、ステップと、
を含んでよい。
【００１５】
複数の前記第2シェアから、前記第1シークレット値の第3シェアを形成するステップであって、前記第1シークレット値を決定可能にするために、前記第1閾数の第3シェアが必要である、ステップにより、前記第4および第5シークレット値に対応する秘密鍵を開示するまたはメモリに格納する必要がなくなるので、方法のセキュリティを向上するという利点を提供する。
【００１６】
前記第4および第5シークレット値の前記第1および第2シェアは、それぞれのShamir秘密共有方式を用いて生成されてよい。
【００１７】
前記方法は、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンを、複数の前記第4参加者の各々に通信するステップ、を更に含んでよい。
【００１８】
これは、異なる第4参加者から受信したシェアの整合性をチェックできるという利点を提供し、それにより、方法のセキュリティを傷つけることなく、疑わしく信頼できない参加者を無視できるという利点を提供する。
【００１９】
前記方法は、前記暗号化システムを用いて暗号化された、少なくとも1つの第1シークレット値のバージョンを決定するステップ、を更に含んでよい。
【００２０】
複数の前記第1シェアは、それぞれ、第1多項式関数の値であり、前記第1シークレット値は、前記第1閾数の前記シェアから前記多項式関数を導出することにより、決定されてよい。
【００２１】
複数の前記第1シェアは、それぞれ、第2多項式関数の値であってよく、前記方法は、前記暗号化システムを用いて暗号化された、前記第2多項式関数の係数のバージョンを、複数の前記第4参加者の各々に通信するステップ、を更に含んでよい。
【００２２】
これは、前記第3参加者から直接受信した前記第1シェアと、前記第4参加者から受信した、前記暗号化システムを用いて暗号化された前記第1シェアと、の整合性を、方法のセキュリティを傷つけることなく、前記第2多項式関数を再構成することにより、検証できるという利点を提供する。
【００２３】
前記方法は、前記第3参加者から直接受信した前記第1シェアのバージョンと、複数の前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、の整合性を検証するステップ、を更に含んでよい。
【００２４】
これは、方法のセキュリティを傷つけることなく、信頼できない可能性のある参加者を識別できるという利点を提供する。
【００２５】
前記方法は、前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、別の前記第4参加者から受信した、前記暗号化システムを用いて暗号化された、前記第1シェアのバージョンと、の整合性を検証するステップ、を更に含んでよい。
【００２６】
これも、方法のセキュリティを傷つけることなく、信頼できない可能性のある参加者を識別できるという利点を提供する。
【００２７】
前記方法は、値0を有する、第6シークレット値のそれぞれの第4シェアを、複数の第4参加者に分配するステップであって、前記第4シェアは、前記暗号化システムの少なくとも1つの第5秘密−公開鍵ペアを用いて暗号化される、ステップ、を更に含んでよい。
【００２８】
これは、シェアおよび／または秘密鍵を更新することを可能にするという利点を提供し、それにより、セキュアではないまたは違反した参加者を参加から除去できる。
【００２９】
前記方法は、前記第4参加者から、少なくとも1つの前記第4シェアを受信し、前記第3シェアおよび第4シェアから、前記第1シークレット値の第5シェアを形成するステップであって、前記第1シークレット値を決定するために、第6閾数の第5シェアが必要である、ステップ、を更に含んでよい。
【００３０】
少なくとも1つの前記第1シークレット値は、複数の前記第1参加者の間でJRSS(joint  random  secret  sharing)を用いて共有されてよい。
【００３１】
これは、任意の単一の第1参加者が第1シークレット値へのアクセスを有することを防ぐことにより、セキュリティを向上するという利点を提供する。
【００３２】
少なくとも1つの前記第1シークレット値を共有するステップは、JZSS(joint  zero  secret  sharing)により生成されたシェアをマスクするステップを含んでよい。
【００３３】
これは、システムのセキュリティを傷つけることなく、デジタル署名を容易に生成させるという利点を提供する。
【００３４】
前記暗号化システムは楕円曲線暗号化システムであってよく、各々の前記公開−秘密鍵ペアの前記公開鍵は、前記秘密鍵による楕円曲線基準点の乗算により、対応する秘密鍵に関連付けられてよく、前記第2秘密鍵は、前記決定性鍵の前記第1秘密鍵への加算により、前記第1秘密鍵に関連付けられてよい。
【００３５】
本発明は、
プロセッサと、プロセッサによる実行の結果として、システムに本願明細書に記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、
を含むシステムも提供する。
【００３６】
本発明は、実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、本願明細書に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体も提供する。
【図面の簡単な説明】
【００３７】
本発明の上述の及び他の態様は、本願明細書に記載の実施形態から明らかであり、及びそれを参照して教示される。本発明の実施形態は、単なる例を用いて及び添付の図面を参照して以下に説明される。
【図１】暗号通過の形式のデジタルアセットの制御を移転するための、本発明を実施するシステムの概略図である。
【図２】種々の実施形態が実装できるコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【００３８】
＜先行研究＞
シャミア秘密共有方式(Shamir  Secret  Sharing  Scheme：SSSS)
シャミア(1979)は、最初に、鍵の分散型管理を可能にするディーラーに基づくシークレット共有方式を導入した。この方式に関連する問題は、検証できないディーラーを信用する必要から生じる。この形式の方式は、本願に開示するシステムと完全に互換性があり、ここに示す処理を通じて生成される個別鍵スライスのグループ配信のために使用できる。
【００３９】
共同ランダム秘密共有(Joint  Random  Secret  Sharing：JRSS、Pedersen,1992)
この手順の明記された目的は、任意の参加者がシークレットを知ること無く、参加者グループが共同でシークレットを共有する方法を生成することである。各参加者は、ランダム値を彼らのローカルシークレットとして選択し、グループによりＳＳＳＳを用いて導出された値を配信する。各参加者は、次に、自身のものを含む参加者からの全てのシェアを加算する。この和は、共同ランダムシークレットシェアである。単一の誠実な参加者により提供されるランダム性は、結合されたシークレット値の信頼性を維持するのに十分である。この状態は、(n−1)人の他の参加者全員が意図的に非ランダムシークレット値を選択した場合でも、真である。
【００４０】
共同ゼロ秘密共有(Joint  Zero  Secret  Sharing：JZSS、Ben−Or,1988)
JZSSはJRSSと同様であるが、各参加者がランダム値の代わりに0を共有することが異なる。この技術を使用して生成されたシェアは、JRSSアルゴリズムの中で任意の可能性のある弱点(weak  point)を除去するのを支援する。
【００４１】
Desmedt[1987]は、グループ指向型暗号法の概念を導入した。この処理は、参加者のうちの選択された一部のみがメッセージを解読することを許可される方法で、参加者が人々のグループへメッセージを送信することを可能にした。このシステムでは、メンバは、送信者が公開鍵を用いてメンバを知る必要があるかどうかを知らされていて、メンバから独立に保たれるグループの単一の公開鍵が存在する場合、グループは匿名である。本願に開示するシステムは、両方の方法を統合し、知られている匿名の送信者及び署名者が、グループ内で同時に存在することを可能にする。
【００４２】
＜方法及び実装＞
最初に、セキュア通信チャネルが、国際特許出願WO2017/145016に詳細に記載された方法で、参加者間に確立される。その結果、データは、他の参加者に利用可能にされることなく、参加者間で交換できる。
【００４３】
セキュア通信チャネルが参加者間に確立されると、第1秘密鍵dAのシェアdA(i)は、以下に記載する方法を用いて第1参加者のグループの間に分配される。
【００４４】
アルゴリズム1：鍵生成
ドメインパラメータ(CURVE,  Cardinality  n,  Generator  G)
インプット：  N/A
アウトプット：  鍵シェアdA1、dA2、．．．、dAN
アルゴリズム1の方法は以下の通りである。
【００４５】
1)  (N)のうちの各参加者p(i)は、ECC公開鍵(または本実装ではBitcoinアドレス)を全ての他の参加者と交換し、ここで1≦i≦Nである。このアドレスは、グループアイデンティティアドレスであり、任意の他の目的で使用される必要がない。
【００４６】
留意すべきことに、これは、例えば国際特許出願WO2017/145016に開示されるように導出されたアドレス、および該出願に開示された処理から参加者の各々の間の共有された値に基づく鍵である。
【００４７】
2)  各参加者p(i)は、全ての他のパーティから秘密である方法で、ランダムな係数を有する次数(k−1)の多項式fi(x)を選択する。
【００４８】
この関数は、多項式の自由項として選択された参加者のシークレットa0(i)の影響を受ける。この値は共有されない。この値は、導出された秘密鍵を用いて計算される。
【００４９】
fi(h)は、参加者p(i)により選択された関数f(x)の点(x=h)における値の結果として定められ、参加者p(i)の基本式は、以下の関数として定められる：
i(h)は、参加者p(i)により選択された関数f(x)の点(x=h)における値の結果として定められ、参加者p(i)の基本式は、以下の関数として定められる：
f(x)＝Σp=0(k−1)  apxp  mod  n
この式で、a0は各参加者p(i)のシークレットであり、共有されない。
【００５０】
したがって、各参加者p(i)は、該参加者のシークレットとして定義される自由項a0(i)を有する次数(k−1)の多項式として表される秘密に保たれた以下の関数fi(x)を有する：
fi(x)＝Σγ=0(k−1)  aγxγ  mod  n
【００５１】
3)  各参加者p(i)は、上述のようにP(h)の公開鍵を用いて参加者P(h)∀h={1,...,(i−1),(i+1),...,N}へのfi(h)を暗号化し、復号するためにP(h)の値を交換する。
【００５２】
Znがフィールド(field)であり、ECC秘密鍵として選択された値に対してnを法としてラグランジュ補間を有効に実行できる場合、シャミアのシークレット共有方式SSSS(Shamir’s  Secret  Sharing  Scheme)[5]がZnに対して実施できるという結論に至る条件が存在する。
【００５３】
4)  各参加者P(i)は、全ての参加者に以下の値をブロードキャストする。
a)  ak(i)G∀k={0,...,(k−1)}
b)  fi(h)G∀h={1,...,N}
【００５４】
上式の変数hに関連付けられた値は、参加者P(h)の位置であり得る。その結果、参加者P(h)が方式の中で第3参加者を表す場合、h=3、または等価に、参加者により使用されるECC公開鍵の値を整数として表してよい。いずれの実装についても使用例およびシナリオが存在する。後者の実装では、値h={1,…,N}は、個々の参加者の利用した公開鍵にマッピングされた値の配列により置き換えられ得る。
【００５５】
5)  各参加者P(h≠i)は、各他の参加者から受信したシェアとの、受信したシェアの一貫性を検証する。つまり：
Σk=o(k−1)hk  ak(i)  G  =  fi(h)G
そして、fi(h)Gは、参加者のシェアと一致する。
【００５６】
6)  各参加者P(h≠i)は、該参加者(P(h≠i))により所有され且つ受信されたシェアが他の受信されたシェアと一致するかを検証する：
a0(i)G=Σh∈Bβjfi(h)G  ∀P(h≠i)
【００５７】
実際に、これは、参加者が、受信したシェアから共有シークレットを復元し得るが、代わりに、Gにより乗算されたシェアから、基準点Gにより乗算された共有シークレットを復元する処理を実行することを意味する。これが一致しない場合、参加者はプロトコルを拒否し、再び開始する。
【００５８】
7)  参加者p(i)は彼らのシェアdA(i)を次のように計算する：
SHARE(p(i))=dA(i)=Σh=1jfh(i)  mod  n
ここで、SHARE(p(i))∈Zn
及び
ここで、
【数１】
2021515270.tif 000003
【００５９】
ここで、演算「Exp−Interpolate(f1,...,fN)」は、シェアf1,...,fNから共有シークレットdAを復元するために通常使用される方法で、例えばシャミア秘密共有方式の場合にはラグランジュ係数を用いる補間により、シェアf1×G,...,fN×Gから共有シークレット値G×dAを復元する演算を実行することを意味する。
【００６０】
戻り値：  (dA(i),QA)
参加者p(i)は、署名を計算する際にシェアを使用する。この役割は、任意の参加者により、または署名を集める処理において調整者(coordinator)として機能するパーティp(c)により、行うことができる。参加者p(c)は、変化し、トランザクションに署名するために十分なシェアを集めようとする度に同じパーティである必要はない。
【００６１】
したがって、秘密鍵シェアdA(i)∈Zn*は、他の参加者のシェアを知らずに、生成される。
【００６２】
アルゴリズム2：秘密鍵を更新する
インプット：  秘密鍵dAの参加者Piのシェアを示すdA(i)
アウトプット：  参加者Piの、新しい秘密鍵シェアdA(i)‘
アルゴリズム2は、秘密鍵を更新するため、およびプロトコルにランダム性を追加するために使用できる。
【００６３】
1)  各参加者は、ゼロ(0)を自由項とする次数(k−1)のランダム多項式を選択する。これは、アルゴリズム1と類似するが、参加者は全ての他の参加者の選択されたシークレットがゼロであることを検証しなければならない。
【００６４】
以下に留意すべきである。
【数２】
2021515270.tif 000004
ここで、0は楕円曲線上の無限遠における点である。
【００６５】
この式を用いて、全てのアクティブな参加者は以下の関数を検証する：
【数３】
2021515270.tif 000005
ゼロシェアを生成する：  zi∈Zn*
【００６６】
2)  dA(i)’=dA(i)+zi
【００６７】
3)  戻り値：  dA(i)’
【００６８】
参加者の集合は、アルゴリズム1に従い秘密鍵シェアdA1,dA2,...,dANを構成する。新しい鍵シェアDk1,Dk2,...,DkNは、集合の中の各参加者に導入される。これらのシェアは、上述のアルゴリズム1を用いて構成されてよい。アルゴリズム1では、参加者の閾シェアが、予め知られていない共有シークレットDkを構成可能であってよい。代替として、Dkは予め知られていてよく(例えば決定性鍵)、シェアは、アルゴリズムと同様の方法で構成されてよいが、予め知られているDkは多項式の中の自由項として選択される。いずれの場合にも、集合の中の各参加者にはスライスDk1,Dk2,...,DkNだけが知られているが、以下は全員に知られている：
【数４】
2021515270.tif 000006
【００６９】
全ての参加者は以下の第1公開鍵を知っているので：
【数５】
2021515270.tif 000007
【００７０】
彼らは以下を計算できる：
【数６】
2021515270.tif 000008
【００７１】
ここで、第1V1Sおよび第2V2S秘密鍵はV2S=V1S+Dkにより関連付けられるので、彼らはdAの彼らのスライスまたはDkをブロードキャストしない。個々のシェアdA1,...,dAN、およびDk1,...,DkNは、各々の個々の参加者にだけに知られたままである。
【００７２】
新しいアドレスP2Sが生成され、誰が主な資金を制御するかを変更するトランザクションtxがこれに署名する。つまり、P1SからP2Sへの支払いは、アドレスP1Sを用いて署名できる。
【００７３】
Dk集合は、P1S集合からのグループとして(または閾数または全メンバのいずれかとして)、または新しいグループ、のいずれかとして設定できる。Dkの各閾スライスは、別個に割り当てることができるが、P1SおよびDkが別個に制御される場合、これは二重署名構造を作り出し、P1SおよびDkの両方がトランザクションtxに署名するためにそれぞれの閾レートで要求されることに留意すべきである。更に、P1SおよびDkは同じメンバまたは同じ割合を必要としないことに留意すべきである。
【００７４】
アルゴリズム3：署名生成
インプット：
署名されるべきメッセージ：  e=H(m)
秘密鍵シェア：  dA1,...,dAN、ここで、dA(i)∈Zn*
決定性鍵：  Dk1,...,DkN、ここで、Dki∈Zn*
秘密鍵シェアdA1,dA2,...,dANは、アルゴリズム1を用いて生成される。決定性鍵シェアDk1,Dk2,...,DkNは、アルゴリズム1を用いて、多項式の中の自由項としてランダムな定数を用いて、または、自由項として予め知られている決定性鍵Dkを用いて、生成される。
【００７５】
アウトプット：
署名：  (r,s)  ここで、r,s∈Zn*
署名は、秘密鍵のシェアdAおよび決定性鍵のシェアDkの両方を署名に組み込む方法を用いて生成される。これは以下のように詳細に説明される。
【００７６】
先ず、各参加者は、アルゴリズム1を用いて一次的な(emphemeral)鍵シェアを生成する：
ki∈Zn*
【００７７】
新しいマスクシェアが上述のアルゴリズム1を用いて生成される：
αi∈Zn*
【００７８】
ゼロマスクシェアが上述のアルゴリズム2を用いて生成される：
βi∈Zn、  ci∈Zn
【００７９】
各参加者はαi、βi、  ciを知っており、それらは他のだれにも知られていない。
【００８０】
1)  e=H(m)メッセージ(署名されるべきトランザクション)を分配する。
【００８１】
以下をブロードキャストする：
【数７】
2021515270.tif 000009
【００８２】
2)  以下を計算する：
【数８】
2021515270.tif 000010
【００８３】
ここで、αはマスクシェアαiに対応する秘密鍵であり、演算「Interpolate(ν1,...,νN)」は、例えばラグランジュ補間係数を用いて、シェアν1,...,νNから共有シークレットμを取得することを意味する。
【００８４】
3)  以下を計算する：
【数９】
2021515270.tif 000011
【００８５】
4)  (Rx,Ry)を計算する。ここで、
【数１０】
2021515270.tif 000012
【００８６】
5)  r:=rx=Rx  mod  nを定める。
【００８７】
r=0ならば、やり直す。
【００８８】
6)  以下をブロードキャストする：
Si:=ki(e+[dAi+Dki]r)+ci  mod  n
dAiおよびDkiが参加者の異なる集合を表す場合、各集合からの2人の参加者は各々の個々のSiをブロードキャストするために通信しなければならないことに留意する。
【００８９】
7)
【数１１】
2021515270.tif 000013
【００９０】
S=0ならば、やり直す。
【００９１】
8)  戻り値：  (r,s)
【００９２】
9)  次式に由来するトランザクションを構成する：
【数１２】
2021515270.tif 000014
【００９３】
これは、(r,s)署名を有する標準的なBitcoinトランザクションである。どの点もdAを有しない、または、(Dkが既存の知られている値と分離されてない限り)Dkが再構成される。
【００９４】
図1を参照すると、Bitcoinのような暗号通貨額のようなデジタルアセット2の制御を移転する本発明を実施する方法が記載される。最初に、複数の第1参加者4の間で、上述のアルゴリズム1を用いて、第1秘密鍵dAのシェアdAiが分配される。アセット2を第3パーティ14に移転するために、第1秘密鍵dAは、第1秘密鍵dAの第1閾数6のシェアdAiを用いてアクセス可能であり、第1秘密鍵dAの第1閾数6のシェアdAiが存在しない場合にアクセス不可能である。決定性鍵DkのシェアDkiは、複数の第2参加者4の間で分配される。その結果、決定性鍵Dkは、決定性鍵Dkの第2閾数10のシェアDkiを用いてアクセス可能であり、第2閾数10のシェアDkiが存在しない場合にアクセス不可能である。上述のアルゴリズム3の処理に従い署名シェアSiを生成した後に、デジタルアセット2へのアクセスは、第3閾数12の署名シェアSiに基づく第2秘密鍵dA+Dkによるデジタル署名により提供される。
図2を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置として使用するために構成されてよい。図2に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(ＤＲＡＭ)2618及び読み出し専用メモリ(ＲＯＭ)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
【００９５】
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
【００９６】
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
【００９７】
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
【００９８】
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
【００９９】
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、または音声出力装置のような非視覚的ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
【０１００】
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、ＣＤ−ＲＯＭ、又はＤＶＤ、又はＢｌｕｅ−Ｒａｙ)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
【０１０１】
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図2に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図2に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
【０１０２】
上述の実施形態は、本発明を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本発明の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本発明は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。
＜参考文献＞
1)  Ben−Or,  M.,  Goldwasser,  S.,  Wigderson,  A.:  “Completeness  theorems  for  noncryptographic  fault−tolerant  distributed  computation”.  In:  Proceedings  of  the  Twentieth  Annual  ACM  Symposium  on  Theory  of  Computing.  pp.  1−10.  STOC  ’88,  ACM,  New  York,  NY,  USA  (1988)
2)  Chaum,  David  (1983).  "Blind  signatures  for  untraceable  payments"  (PDF).  Advances  in  Cryptology  Proceedings  of  Crypto.  82  (3):  199−203.
3)  Desmedt.  Yuo  (1987).  “Society  and  Group  Oriented  Cryptography:  A  New  Concept”.  In  A  Conference  on  the  Theory  and  Applications  of  Cryptographic  Techniques  on  Advances  in  Cryptology  (CRYPTO  '87),  Carl  Pomerance  (Ed.).  Springer−Verlag,  London,  UK,  UK,  120−127.
4)  Feldman.  P.  “A  practical  scheme  for  non−interactive  verifiable  secret  sharing”.  In  Proceedings  of  the  28th  IEEE  Annual  Symposium  on  Foundations  of  Computer  Science,  pages  427−437,  1987.
5)  Gennaro,  R.,  Jarecki,  S.,  Krawczyk,  H.,  Rabin,  T.:  “Robust  threshold  DSS  signatures”.  In:  Proceedings  of  the  15th  Annual  International  Conference  on  Theory  and  Application  of  Cryptographic  Techniques.  pp.  354−371.  EUROCRYPT’96,  SpringerVerlag,  Berlin,  Heidelberg  (1996)
6)  Ibrahim,  M.,  Ali,  I.,  Ibrahim,  I.,  El−sawi,  A.:  “A  robust  threshold  elliptic  curve  digital  signature  providing  a  new  verifiable  secret  sharing  scheme”.  In:  Circuits  and  Systems,  2003  IEEE  46th  Midwest  Symposium  on.  vol.  1,  pp.  276−280  (2003)
7)  Pedersen,  T.:  “Non−interactive  and  information−theoretic  secure  verifiable  secret  sharing”.  In:  Feigenbaum,  J.  (ed.)  Advances  in  Cryptology  −  CRYPTO  ’91,  LNCS,  vol.  576,  pp.  129−140.  Springer  (1992)
8)  Shamir,  Adi  (1979),  "How  to  share  a  secret",  Communications  of  the  ACM,  22  (11):  Pp.  612−613
【図１】
2021515270.tif 000015
【図２】
2021515270.tif 000016
【国際調査報告】
2021515270.tif 000017
2021515270.tif 000018