(57)【要約】【課題】秘密情報復元可能値分散システムを提供する。【解決手段】コンピュータによって実行される方法であって、所定の情報の処理に使用する秘密情報に基づいて、ｎ個の秘密情報復元可能値を生成するステップであって、秘密情報は、生成したｎ個のシェアのうちの少なくともｋ個の秘密情報復元可能値を使用して復元可能であり、ｎ＞＝ｋ＞＝２である、ステップと、生成したｎ個の秘密情報復元可能値を、対応するｎ個の物理的記憶装置に記憶するステップと、生成した秘密情報を削除するステップとを備える。【選択図】図６
2019050480.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
交換される情報の処理に使用する秘密情報に基づいて、ｎ個の秘密情報復元可能値を生成するステップであって、前記秘密情報は、前記生成したｎ個のシェアのうちの少なくともｋ個の秘密情報復元可能値を使用して復元可能であり、ｎ＞＝ｋ＞＝２である、ステップと、
前記生成したｎ個の秘密情報復元可能値を、対応するｎ個の物理的記憶装置に記憶するステップと、
前記生成した秘密情報を削除するステップと
を備えたことを特徴とする方法。
【請求項２】
前記ｎ個の物理的記憶装置のうちのｋ個の物理的記憶装置から、対応するｋ個の秘密情報復元可能値を読み出すステップと、
前記読み出したｋ個の秘密情報復元可能値を使用して、前記秘密情報を復元するステップと、
前記ｋ個の秘密情報復元可能値を削除するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記ｎ個の物理的記憶装置のうちの少なくともｎ−（ｋ−１）個は、取外可能記憶装置であり、
前記方法は、前記取外可能記憶装置が前記コンピュータに接続されているか否かを判定するステップをさらに備えたことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記ｎ個の物理的記憶装置のうちの少なくとも１つは、第１の取外可能記憶装置であり、
前記ｎ個の物理的記憶装置のうちの少なくとももう１つは、第２の取外可能記憶装置であり、前記第１の取外可能記憶装置および前記第２の取外可能記憶装置は、同一の種別の取外可能記憶装置であり、
前記生成したｎ個の秘密情報復元可能値を、前記対応するｎ個の物理的記憶装置に記憶するステップは、
前記生成したｎ個の秘密情報復元可能値のうちの第１の秘密情報復元可能値を前記第１の取外可能記憶装置に記憶するステップと、
前記第２の取外可能記憶装置が前記コンピュータに接続されているか否かを判定するステップと、
前記第２の取外可能記憶装置が前記第１の取外可能記憶装置と物理的に異なる取外可能記憶装置であるかを判定するステップと、
前記第２の取外可能記憶装置が前記第１の取外可能記憶装置と物理的に異なる取外可能記憶装置であると判定したことに応答して、前記生成したｎ個の秘密情報復元可能値のうちの第２の秘密情報復元可能値を前記第２の取外可能記憶装置に記憶するステップと
を含むことを特徴とする請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記秘密情報を生成し、または前記秘密情報を受信するステップをさらに備えたことを特徴とする請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
複数のアプリケーションプログラムを実行することによって、前記秘密情報を生成するステップをさらに備え、
前記ｎ個の物理的記憶装置のうちの少なくとも１つは、前記コンピュータに内蔵された記憶装置であり、前記記憶装置は、前記複数のアプリケーションプログラムのそれぞれに対して独立した複数の論理的記憶領域を含み、
前記生成したｎ個の秘密情報復元可能値を、前記対応するｎ個の物理的記憶装置に記憶するステップは、前記生成したｎ個の秘密情報復元可能値のうちの１つを、前記複数の論理的記憶領域うちのいずれか１つに記憶するステップを含むことを特徴とする請求項１乃至４のいずれか一項に記載の方法。
【請求項７】
前記ｎ個の秘密情報復元可能値を生成するステップは、（ｋ，ｎ）閾値法を使用して実行されることを特徴とする請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記秘密情報は、秘密鍵であることを特徴とする請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記処理は、署名であることを特徴とする請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記交換される情報は、仮想通貨のトランザクション履歴情報であることを特徴とする請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
コンピュータデバイスであって、
制御装置と、
前記制御装置に結合され、コンピュータ実行可能命令を記憶したメモリと
を備え、
前記コンピュータ実行可能命令は、前記制御装置によって実行されると、前記コンピュータデバイスに、請求項１乃至１０のいずれか一項に記載の方法を実行させることを特徴とするコンピュータデバイス。
【請求項１２】
コンピュータ実行可能命令を含むコンピュータプログラムであって、前記コンピュータ実行可能命令は、コンピュータによって実行されると、前記コンピュータに請求項１乃至１０のいずれか一項に記載の方法を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報復元可能値分散システムおよび方法に関し、特に、秘密情報を復元するための秘密情報復元可能値（シェア）を物理的な記憶媒体に分散して記憶することによって、セキュリティを確保する秘密情報復元可能値分散システムおよび方法に関する。
【背景技術】
【０００２】
インターネットなどの公衆ネットワークを通じてオンライン上で取引を行うコンピュータシステムが利用されている。上記コンピュータシステムの例は、ピアツーピア（Ｐ２Ｐ）型の決済網であるビットコイン（Bitcoin）と称される仮想通貨管理システムなどを含む。ビットコインにおいては、対になる２つの鍵を利用してデータの暗号化および復号を行う公開鍵暗号方式が利用される。
【０００３】
以下では、ビットコインでの仮想通貨の送金処理の流れを簡単に説明する。（１）まず、仮想通貨を支払う側（送金元）が公開鍵および秘密鍵のペアを生成する。（２）送金元が公開鍵からアドレス（口座番号）を生成する（このアドレスの集合が「ウォレット（財布）となる」）。（３）送金元が送金情報（送信するビットコイン、アドレス等のトランザクション履歴情報）に自身の秘密鍵を使用して署名する。（４）送金元がＰ２Ｐネットワークに送金情報をブロードキャストする（５）仮想通貨を受け取る側（送金先）が取引内に含まれる公開鍵および署名済みの送金情報を照合して取引が正しいことを検証する。
【０００４】
ビットコインでは、送金元のみが知り得る秘密鍵を使用して送金情報が署名されるので、その秘密鍵は高度なレベルで秘密に管理される必要がある。このことから、ビットコインの仕組みでは、秘密鍵をどのように管理するかという課題が存在する。秘密鍵は、セキュリティ面を考慮し一般的にはランダムな英数字による６４桁の秘密鍵が使われているので、その秘密鍵が分からなくなってしまうと、そのアドレスにあるビットコインは二度と使用できなくなる。よって、様々なデバイスやサービスを使用して秘密鍵の管理を行う利用者が存在する。例えば、ビットコインの使用用途に合わせて複数の口座を所持し、利便性やセキュリティ性などを考慮してそれぞれ異なる方法で管理している利用者が存在する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】土井 洋、「秘密分散法とその応用について」、情報セキュリティ総合科学、第4巻、［online］、2012年11月、情報セキュリティ大学院大学、［平成29年8月30日検索］、インターネット〈URL：https://www.iisec.ac.jp/proc/vol0004/doi.pdf〉
【非特許文献２】G. R. Blakley, Safeguarding cryptographic keys, Proc. of the National Computer Conference, Vol.48, pp.313-317, 1979, 〈URL：https://www.computer.org/csdl/proceedings/afips/1979/5087/00/50870313.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ビットコインを利用する上で、利用者は、Ｐ２Ｐネットワークに接続されたコンピュータ端末（スマートフォン、タブレットコンピュータおよびパーソナルコンピュータなど）を使用する必要がある。それらの端末がネットワークに接続される以上、悪意のある第三者がコンピュータ端末に不正アクセスすることなどによって、秘密鍵が第三者に漏洩する危険性を完全に排除することはできない。
【０００７】
非特許文献１は、Ｓｈａｍｉｒの閾値法を開示している。Ｓｈａｍｉｒの閾値法では、秘密情報に基づいてｎ個の一意なシェアが生成され、それらの一意なシェアがｎ人の共有者に渡される。そして、ｎ個のうちｋ個（ｋ＜ｎ）のシェアを使用することによって、元の秘密情報を復元することができる。つまり、ｎ−ｋの数だけ一意なシェアが失われても、残りのｋ個の一意なシェアを使用して秘密情報を復元することができる。このことは、ｋ−１のシェアを使用しても情報を復元することができないことを意味する。この技術を使用することによって、秘密情報を復元するためのシェアを分散させることができる。
【０００８】
しかしながら、シェアを分散させても、例えば、それらのシェアをネットワークに接続された記憶装置に記憶した場合、第三者が当該記憶装置に不正アクセスすることによってｋ個のシェアが漏洩する危険性がある。このことから、非特許文献１に開示された技術を使用しても、秘密情報を適切に保護することはできない場合がある。特に、ｋ個のシェアを同一のＬＡＮに位置する記憶装置に記憶した場合、第三者がそのＬＡＮの入口となるＧａｔｅｗａｙ（Ｆｉｒｅｗａｌｌ）を通過することによって、ｋ個の全てのシェアが容易に当該第三者に漏洩する可能性がある。
【０００９】
秘密情報を適切に保護するための究極的な方法として、例えば、特許文献１に開示された技術を使用して、少なくともｋ個のシェアの値を紙などに書き留め、その紙を金庫などに保管する方法が考えられる。紙の媒体を使用してシェアを保存することになるので、シェアの情報がネットワークを通じてアクセスされることがなくなり、ｋ個のシェアが第三者に漏洩する可能性を低減させることができる。しかしながら、この方法は、利用者の情報の管理負荷を増大させることになる。
【００１０】
本発明は、このような問題に鑑みてなされたものであり、利用者の情報の管理負荷を軽減しつつ、秘密情報を適切に保護する秘密情報復元可能値分散システムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明に係る秘密情報復元可能値分散システムは、コンピュータによって実行される方法であって、所定の情報の処理に使用する秘密情報に基づいて、ｎ個の秘密情報復元可能値を生成するステップであって、前記秘密情報は、前記生成したｎ個のシェアのうちの少なくともｋ個の秘密情報復元可能値を使用して復元可能であり、ｎ＞＝ｋ＞＝２である、ステップと、前記生成したｎ個の秘密情報復元可能値を、対応するｎ個の物理的記憶装置に記憶するステップと、前記生成した秘密情報を削除するステップとを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明に係る秘密情報復元可能値分散システムによれば、利用者は甚大な負荷がかかる情報管理の必要性なしに、適切に秘密情報を保護することができる。特に、複数の物理的記憶装置に分散してシェアを記憶するので、仮に、分散して記憶したシェアのうちの１つが漏洩しても、ｋ個のシェアの全てが漏洩しない限り秘密情報を保護することができる。
【図面の簡単な説明】
【００１３】
【図１】従来技術に従った（ｋ，ｎ）閾値法に従って算出した秘密鍵の値に対応する座標を通るグラフを示す。
【図２】従来技術に従った（ｋ，ｎ）閾値法に従って算出した秘密鍵の値に対応する座標を通るグラフを示す。
【図３】従来技術に従った（ｋ，ｎ）閾値法に従って算出した秘密鍵の値に対応する座標を通るグラフを示す。
【図４】本発明の実施形態に係る秘密情報復元可能値分散システムを構成するコンピュータシステム全体の構成の例を示す図である。
【図５】本発明の実施形態に係る秘密情報復元可能値分散システムを構成するコンピュータ端末の詳細な構成の例を示す図である。
【図６】本発明の実施形態に係るが秘密情報復元可能値分散システム実行するシェア生成処理の例を示す図である。
【図７】本発明の実施形態に係るが秘密情報復元可能値分散システム実行する秘密情報復元処理の例を示す図である。
【００１４】
以下、添付図面を参照して、本発明の実施形態に係る秘密情報復元可能値分散システムを詳細に説明する。本発明に係る秘密情報復元可能値分散システムは、従来技術に従ったＳｈａｍｉｒの閾値法（秘密分散法）を利用することによって、秘密情報復元可能値（シェア）を分散している。ここで、Ｓｈａｍｉｒの閾値法は、秘密情報を復元することができるシェアの数であるｋ（閾値）、およびそのシェアを分散する数であるｎ（シェア数）を定めている。上記に加え、本発明に係る秘密情報復元可能値分散システムは、情報を復元することができる／できない集合を任意に定めることができる、いずれかの他の秘密分散法を利用してもよい（非特許文献２を参照）。
【００１５】
まず、従来技術に従ったＳｈａｍｉｒの閾値法の概要を、図１乃至図３を参照して説明する。Ｓｈａｍｉｒの閾値法（以下、「（ｋ，ｎ）閾値法」と称する）では、秘密情報であるＳに対し、その秘密情報Ｓをｎ人で共有することを前提とする。そのｎ人のそれぞれには、所定の多項式を使用して生成されたｎ個のシェアがそれぞれ渡され、そのうちｋ個のシェアによって秘密情報Ｓを復元することができる。つまり、生成されたｎ個のシェアをｎ人の間で共有し、そのうちｋ人が有するｋ個のシェアを使用することによって秘密情報Ｓを復元することができる。本明細書では、このｎの数をシェア数と称し、ｋの数を閾値と称する。
【００１６】
シェアを生成する際は、定数項をＳとする任意のｋ−１次多項式を使用する。ここで、ｋを３とし、ｎを４とし（つまり、４個のシェアを生成し、そのうち３個のシェアを使用することによって、秘密情報Ｓを復元することができる）、秘密情報を９とする。よって、ｋ−１次多項式、つまり定数項を９とする任意の２次多項式を使用することになる。例えば、第１の項の係数に２、第２の項に係数７を使用して、式（１）
ｆ（ｘ）＝２ｘ2−７ｘ＋９                                          式（１）
とする。
【００１７】
ｎ＝４個のシェアを生成する際に、シェア番号として｛１，２，３，４｝を割り当て、ｆ（１）、ｆ（２）、ｆ（３）およびｆ（４）として式（１）に当てはめると、ｎ個のシェアの値の集合、ｎ＝｛（１，４），（２，３），（３，６），（４，１３）｝が算出される。
【００１８】
図１は、上述したように算出されたシェアの値を座標とし、各座標を通る曲線を描いたグラフを示している。図１に示す曲線は、４個のシェアの値に対応する４箇所の座標を通っている。この曲線が、式（１）の２次多項式を表わしている。（ｋ，ｎ）閾値法では、ｎ＝４個のうちｋ＝３個のシェアを使用することによって秘密情報を復元することができる。つまり、図１に示す４箇所の座標のうち、任意の３箇所の座標を通ることによっても、同様の曲線を描くことができる。一方で、ｋ−１個のシェアを使用することによっては、秘密情報を復元することができない。つまり、図１に示す４箇所の座標のうち、任意の２箇所の座標を通ることによっては、同様の曲線を描くことができない。
【００１９】
図２は、ｋ＝３個のシェアの値を座標とし、各座標を通る曲線を描いたグラフを示している。図２から理解できるように、閾値であるｋ＝３箇所の座標が分かれば、図１に示す曲線と同一の曲線を描くことができる。図３は、ｋ−１＝２個のシェアの値を座標とし、各座標を通る曲線を描いたグラフを示している。図２から理解できるように、閾値ｋ−１＝２の箇所の座標のみでは、破線で示す曲線なども描くことができ、必ずしも、図１に示す曲線と同一の曲線を描くことができない。つまり、ｋ−１（２）個のシェアを使用することによっては、式（１）に示した２次多項式を導出することができず、ひいては、秘密情報Ｓを復元することができない。
【００２０】
ｋ個のシェアの値からは、多項式補間を使用することによって秘密情報を復元することができるが、その具体的な算出式を以下に示す。まず、閾値ｋ＝３であることから、シェアを生成する多項式がｙ＝ｘ2＋ｘ＋定数項である２次多項式であることが分かる。そして、各項の係数をａ、ｂおよびｃに置換え、ｙ＝ａ2＋ｂ＋ｃとし、ｋ＝３個のシェアの値の集合、ｋ＝｛（１，４），（２，３），（３，６）｝を代入し、それぞれ、以下のように式（２）乃至式（４）を導出することができる。
ｃ＝−ａ−ｂ＋４                                                    式（２）
ｃ＝−４ａ−２ｂ＋３                                                式（３）
ｃ＝−９ａ−３ｂ＋６                                                式（４）
【００２１】
次に、式（２）を式（３）および式（４）にそれぞれ代入すると、以下のように式（５）および式（６）を介してａ（つまり、式（１）に示した２次多項式の第１の項の係数）を導出することができる。
３ａ＝−ｂ−１                                                      式（５）
８ａ＝−２ｂ＋２                                                    式（６）
ａ＝２
【００２２】
上記式から係数ａの値を導出することができたので、導出したａの値を式（２）および式（３）に代入すると、以下のように式（７）および式（８）を介してｂ（つまり、式（１）に示した２次多項式の第２の項の係数）を導出することができる。
ｃ＝−ｂ＋２                                                        式（７）
ｃ＝−２ｂ−５                                                      式（８）
ｂ＝−７
【００２３】
最後に、導出した係数ａの値および係数ｂの値を式（２）に代入することによって、ｃ＝９（つまり、式（１）に示した２次多項式の定数項の値）を導出することができる。
【００２４】
以上のようにして導出した係数の値を２次多項式に代入すると、式（１）に示した２次多項式、つまり、秘密情報Ｓを復元することができることが分かる。この秘密情報Ｓを復元する具体的な式は、例えば、非特許文献１に開示されているように公知であるので、本明細書では具体的な説明は行わない。
【００２５】
本発明に係る秘密情報復元可能値分散システムは、上述した（ｋ，ｎ）閾値法を含むいずれかの秘密分散法を使用してｎ個のシェアを生成し、ｋ個のシェアを使用して、秘密情報を復元する。（ｋ，ｎ）閾値法では、ｎ＞ｋであるが、使用する秘密分散法によっては、ｎ＝ｋの場合もあり、そのような場合も本発明に係る秘密情報復元可能値分散システムが適用することができることに留意されたい。
【００２６】
以下、本明細書では、秘密分散法を使用してｎ個のシェアを生成する際に使用する算出式を、秘密情報復元可能値（シェア）生成式と称する。また、生成したｎ個のシェアのうちｋ個のシェアを使用して秘密情報を復元する際に使用する算出式を秘密情報復元式と称する。本発明に係る秘密情報復元可能値分散システムが（ｋ，ｎ）閾値法を利用する場合、シェア生成式および秘密情報復元式はそれぞれ、非特許文献１に示す算出式が使用される。（ｋ，ｎ）閾値法に加え、本発明に係る秘密情報復元可能値分散システムが他の秘密分散法を利用する場合、その秘密分散法に対応する、シェア生成式および秘密情報復元式がそれぞれ使用される。
【００２７】
次に、図４を参照して、本発明の実施形態に係る秘密情報復元可能値分散システムを構成するコンピュータシステム全体の構成の例を示している。本実施形態に係る秘密情報復元可能値分散システムは、単独で使用されず、秘密情報復元可能値分散システムを利用するサービス（コンピュータシステム）が存在することが前提となる。しかしながら、上述したコンピュータシステムにおいて、本実施形態に係る秘密情報復元可能値分散システムを実装する方式であってもよい。
【００２８】
以下の実施形態では、本発明に係る秘密情報復元可能値分散システムが、ビットコインなどの仮想通貨を使用した決済サービスを提供するコンピュータシステム（以下、決済システム）と連動する例を説明する。この例では、仮想通貨を使用して決済（送金）を行う場合、利用者（送金元）が秘密鍵を生成し、生成した秘密鍵を使用して仮想通貨のトランザクション履歴情報の署名を行なう。このことから、決済システムにおいて生成された秘密鍵に基づいて、本発明に係る秘密情報復元可能値分散システムがｎ個のシェアを生成し、ｋ個のシェアに基づいて秘密鍵を復元する。
【００２９】
図４に示すように、本実施形態に係る秘密情報復元可能値分散システムは、コンピュータ端末１およびサーバコンピュータ２を含み、それらがネットワーク３（インターネットなどの公衆ネットワーク、本実施形態ではＰ２Ｐネットワーク）を介して接続されている。
【００３０】
コンピュータ端末１は、本発明に係る秘密情報復元可能値分散システムを実装するコンピュータデバイスであり、例えば、スマートフォン、タブレットコンピュータおよびパーソナルコンピュータなどで実装される。利用者は、コンピュータ端末１を使用して所定の情報を入力することによって、ｎ個のシェアを生成し、そのうちｋ個のシェアを使用して秘密情報を復元する。
【００３１】
サーバコンピュータ２は、本発明に係る秘密情報復元可能値分散方法を利用して決済サービスなどを提供する機能を実行するコンピュータデバイスである。本実施形態では、コンピュータ端末１が単独でｎ個のシェアを生成し、秘密情報を復元する処理を実行しているが、コンピュータ端末１とサーバコンピュータ２とが連動して、秘密情報復元可能値分散システムを実装してもよい。この場合、コンピュータ端末１からの要求に応じて、サーバコンピュータ２がｎ個のシェアを生成する。
【００３２】
次に図５を参照して、本発明の実施形態に係る秘密情報復元可能値分散システムを構成するコンピュータ端末１の詳細な構成の例を説明する。コンピュータ端末１は、制御装置１１、メモリ１２、記憶装置１３、入力ドライバ１４、入力デバイス１５、出力ドライバ１６、および出力デバイス１７を含む。
【００３３】
制御装置１１は、プロセッサなどで実装され、中央処理装置（ＣＰＵ）、グラフィックプロセシングユニット（ＧＰＵ）、および１つもしくは複数の制御装置コアを含んでもよい。制御装置１１は、所定のプログラム（ＯＳおよびアプリケーションプログラム）を実行する。メモリ１２は、揮発性または不揮発性メモリ、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ、またはキャッシュメモリを含んでもよい。メモリ１２は、制御装置１１が実行するプログラムデータを一時的に記憶する。
【００３４】
記憶装置１３は、コンピュータ端末１に内蔵された記憶装置であり、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、およびフラッシュドライブを含んでもよい。記憶装置１３は、生成されたｎ個のうちの１つのシェアを記憶する。通信装置１４は、ネットワークインタフェースカード（例えば、ＬＡＮカード）などで実装され、ネットワーク３を介してデータを送受信する。
【００３５】
入力デバイス１５は、キーボード、キーパッド、タッチスクリーン、タッチパッド、マイクロフォン、加速度計、ジャイロスコープ、および生体スキャナなどを含んでもよい。入力デバイス１５は、入力ドライバ１６を介して、利用者による入力を受信し、それを制御装置１１と通信する。
【００３６】
出力デバイス１７は、ディスプレイ、スピーカ、およびプリンタなどを含んでもよい。出力デバイス１７は、出力ドライバ１８を介して制御装置１１からの出力を受信し、それを出力する（ディスプレイを介した視覚的出力、スピーカを介した音声出力など）。
【００３７】
コンピュータデバイス１には、取外可能記憶装置１９が接続される。取外可能記憶装置１９が接続されると、入力ドライバ１６を介して取外可能記憶装置１９からの情報が制御装置１１と通信される。また、制御装置１１からの出力が出力ドライバ１８を介して取外可能記憶装置１９に出力（記憶）される。取外可能記憶装置１９は、例えば、ＵＳＢメモリおよびＳＤカードなどのフラッシュメモリ、ＣＤ−ＲＯＭおよびＤＶＤなどの光学記憶媒体、フロッピーディスクなどの磁気記憶媒体など、いずれかの着脱可能、かつ不揮発性の記憶装置を含む。
【００３８】
本実施形態に係る秘密情報復元可能値分散システムは、所定のコンピュータシステムと連動することは上述した通りである。つまり、コンピュータ端末１上で、当該所定のコンピュータシステムが提供するアプリケーションプログラムが実行される。本実施形態に係る秘密情報復元可能値分散システムは、コンピュータ端末１上で実行されるアプリケーションプログラムに対応するサービスごとに独立して実行されることが望ましい。
【００３９】
例えば、コンピュータ端末１がＡｐｐｌｅ（登録商標）社製のオペレーティングシステム「ｉＯＳ（登録商標）」を実行する場合（ｉＰｈｏｎｅ（登録商標）など）、記憶装置１３が、サービスごとに論理的に独立した記憶領域を構成することになる。この場合、例えば、コンピュータ端末１が複数のアプリケーションプログラムを実行し、各アプリケーションプログラムが秘密情報復元可能値分散システムと連動する場合、アプリケーションプログラムに対応するサービスごとに論理的に独立した記憶領域を使用することができる。このことは、後述するシェアを記憶装置１３に記憶する際に、実行するアプリケーションプログラムごとに論理的に独立した領域に記憶することができることを意味し、セキュリティがより高まることになる。
【００４０】
コンピュータ端末１がｉＯＳ以外のオペレーティングシステムを実行する場合（Ｗｉｎｄｏｗｓ（登録商標）およびＡｎｄｒｏｉｄ（登録商標）など）、例えば、コンテナ型仮想化技術を使用することによって、サービスごと、またはユーザごとに記憶領域を独立させることができる。このように、複数のアプリケーションプログラムを実行し、各アプリケーションプログラムが秘密情報復元可能値分散システムと連動する場合、独立した記憶領域を実装することによって、さらなるセキュリティを確保することができる。
【００４１】
次に、図６を参照して、本発明の実施形態に係る秘密情報復元可能値分散システムが実行する秘密情報復元可能値（シェア）生成処理を説明する。本実施形態では、上述した決済サービスにおいて使用される秘密鍵を秘密情報とし、その秘密鍵に基づいてシェアを生成し、シェアを分散して記憶する例を説明する。この場合、当該決済サービスを提供するアプリケーションプログラムと秘密情報復元可能値分散システムとが連動し、以下では、決済サービスを提供するアプリケーションプログラムを決済アプリケーションと称する。決済サービスは、コンピュータ端末１とサーバコンピュータ２との間で情報を交換することによって行われる。
【００４２】
図６に示すように、コンピュータ端末１の制御装置１１が、所定のプログラムを実行することによって、ステップ６１乃至ステップ６４を含むシェア生成処理を実行する。ステップ６１では、制御装置１１が、決済アプリケーションを実行することによって、秘密鍵を生成する。この処理は、従来技術に従って、決済サービスにおいて仮想通貨の送金を行う際に使用する秘密鍵の生成処理を含み、生成された秘密鍵は、メモリ１２および／または記憶装置１３に記憶される。
【００４３】
ステップ６２では、制御装置１１が、ステップ６１で生成した秘密鍵に基づいて、上述したシェア生成式を使用して、シェア数（ｎ）個のシェアを生成する。本実施形態では、ｎ＝３であるものとし、それぞれのシェアを識別するために、シェア１〜シェア３と表わす。また、閾値ｋ＝２であるものとする。
【００４４】
ここで、ステップ６２で生成されるシェアは、例えば、「．ｔｘｔ」の拡張子を有するファイルであり、ファイルの中に、秘密分散法に基づいて算出された値が書き込まれる。また、ファイル名は、例えば、「ＵＵＩＤ＿シェア番号．ｔｘｔ」としてもよい。ＵＵＩＤは、任意のバージョンに従ってアプリケーションプログラムごとに一意に生成される。つまり、本実施形態では、秘密情報復元可能値分散システムと連動するアプリケーションごとに一意なＵＵＩＤが生成される。ＵＵＩＤは、生成するごとに一意な番号となるので、シェアのファイル名が、アプリケーションプログラムごと、および生成するごとに一意なファイル名となる。このようにファイル名を割り当てることによって、アプリケーションプログラムの独立性がさらに高まる。
【００４５】
なお、ファイル名にＵＵＩＤを使用することは例示的なものにすぎず、このような形式に限定されない。本実施形態に係る秘密情報復元可能値分散システムと連動するサービスごとに一意となる任意の数値を生成し、その数値をファイル名に使用してもよい。また、後述するが、生成したシェアは、秘密情報を復元する都度、削除される。ファイル名に使用するＵＵＩＤなどの一意な数値は、秘密情報を復元する都度、新たな数値を割り当ててもよく、またはシェアを紛失したときなどのみに新たな数値を割り当ててもよい。
【００４６】
なお、本実施形態では、ステップ６１およびステップ６２の処理をコンピュータ端末１で実行しているが、そのような形式に限定されない。ステップ６１および／またはステップ６２の処理がサーバコンピュータ２で実行されてもよい。この場合、例えば、コンピュータ端末１からの要求に応じて、サーバコンピュータ２が秘密鍵および／またはシェアを生成し、それらをコンピュータ端末１に送信することになる。サーバコンピュータ１で秘密鍵および／またはシェアを生成した場合、コンピュータ端末１に送信した後、それらがサーバコンピュータ１の記憶領域から削除される。
【００４７】
ステップ６３では、制御部１１がステップ６２で生成した３個のシェアを、所定の記憶領域にそれぞれ記憶する。ここで、所定の記憶領域とは、コンピュータ端末１の記憶装置１３の所定の領域に加え、上述した着脱可能記憶媒体１９を含む。つまり、ｎ個のシェアは、複数の独立した物理的記憶装置（媒体）にそれぞれ別個に記憶される。着脱可能記憶媒体１９は、例えば、ＵＳＢメモリおよびＳＤカードを含むものとする。
【００４８】
シェアが分散して記憶される複数の物理的記憶装置の組み合わせは、上述した組み合わせに限定されない。例えば、以下に示す表１乃至表３に示す組み合わせが考えられる。
【００４９】
【表１】
2019050480.tif 000003
【００５０】
表１に示す組み合わせは、シェア１が記憶装置１３に記憶され、シェア２がＵＳＢメモリに記憶され、シェア３がＳＤカードに記憶されることを示している。記憶装置１３は、ネットワークに接続されるコンピュータ端末１に内蔵された記憶装置であるので、コンピュータ端末１を介してネットワーク３に接続されることになる。一方で、ＵＳＢメモリおよびＳＤカードは、それらを取り外すことによって、ネットワーク３から遮断されることになる。このことから、ＵＳＢメモリなどの取外可能記憶装置１９にシェアを記憶したほうがよりセキュリティが高まる。
【００５１】
上述したように、本実施形態に係る秘密情報復元可能値分散システムでは、ｋ−１個のシェアを使用しても、秘密情報を復元することができない。つまり、ｎ−（ｋ−１）個のシェアの漏洩などを防止することによって、秘密情報の漏洩を防止することができる。表１に示す組み合わせでは、ｎ−（ｋ−１）（つまり、２）個のシェアをそれぞれ、ネットワーク３から遮断可能な取外可能記憶装置１９に記憶しているので、セキュリティを確保する上で好ましい組合せとなる。
【００５２】
本実施形態では、ｎ個のシェアを複数の独立した物理的記憶装置に記憶することを保証するために、ステップ６１またはステップ６２を実行する前に、取外可能記憶装置１９がコンピュータ端末１に接続されているかを判定してもよい。この処理は、制御装置１１が、例えば、Ａｎｄｒｏｉｄオペレーティングシステムにおいて標準で提供されているＵｓｂＤｅｖｉｃｅなどのデバイス制御ＡＰＩを実行することによって、取外可能記憶装置１９が接続されているかを認識することができる。この処理によって、制御装置１１が、コンピュータ端末１に取外可能記憶装置１９が接続されていないと判定した場合、エラーメッセージを利用者に通知してもよい（出力デバイス１７を介して）。一方で、制御装置１１が、コンピュータ端末１に取外可能記憶装置１９が接続されていると判定した場合、その旨のメッセージを利用者に通知し、後続のステップ６４の処理に遷移する。
【００５３】
また、デバイス制御ＡＰＩを実行することによって、コンピュータ端末１に接続されているデバイスの種別を判定することができる。よって、ｎ−（ｋ−１）個のシェアを取外可能記憶装置１９に記憶することを保証するべく、ｎ−（ｋ−１）個の取外可能記憶装置１９がコンピュータ端末１に接続されているかを判定してもよい。表１に示す組み合わせでは、ＳＤカードおよびＵＳＢメモリがそれぞれ接続されているかを判定する。
【００５４】
表１に示す組み合わせに加え、以下のような組み合わせも同様のセキュリティを確保することができる。
【００５５】
【表２】
2019050480.tif 000004
【００５６】
表２に示す組合せは、シェア２およびシェア３がそれぞれ、独立した２個のＵＳＢメモリに記憶されることを示している。このように、複数の独立した物理的記憶装置が同一の種別の取外可能記憶装置１９である場合、利用者は、１つ目の物理的記憶装置にシェアを記憶した後、その物理的記憶装置を取り外し、２つ目の物理的記憶装置を新たに接続する必要がある。
【００５７】
このように、同一種別の独立した別個の物理的記憶装置にシェアを記憶することを保証するために、２つ目の物理的記憶装置が接続されるときに、１つ目の物理的記憶装置と異なる物理的記憶装置であるかを判定してもよい。この処理は、上述したデバイス制御ＡＰＩを実行することによって、物理的記憶装置のそれぞれを識別する（接続される装置のシリアル番号などによって）ことによって行われる。この処理によって、制御装置１１が、２つ目の物理的記憶装置が１つ目の物理的記憶装置と同一の物理的記憶装置であると判定した場合、エラーメッセージを利用者に通知してもよい（出力デバイス１７を介して）。一方で、制御装置１１が、２つ目の物理的記憶装置が１つ目の物理的記憶装置と異なる物理的記憶装置であると判定した場合、その旨のメッセージを利用者に通知し、後続のステップ６４の処理に遷移する。
【００５８】
さらに、以下のような組み合わせも可能である。
【００５９】
【表３】
2019050480.tif 000005
【００６０】
表３に示す組み合わせは、シェア１が記憶装置１３に記憶され、シェア２がＮＡＳまたはＳＡＮなどのネットワーク接続される外部記憶装置に記憶され、シェア３がＵＳＢメモリに記憶されることを示している。この組み合わせは、ｋ個の数のシェアが、通常では、ネットワークから遮断されない記憶装置に記憶されることになるので、表１および表２に示した組合せと比較して、セキュリティ性が劣ることになる。
【００６１】
上述したシェアが分散して記憶される記憶装置の組み合わせは、秘密情報復元可能値分散システムにおいて予め定義されてもよく、または利用者が任意のタイミングでその組み合わせを設定してもよい。また、シェア数および閾値数も同様に、秘密情報復元可能値分散システムにおいて予め定義されてもよく、または利用者が任意のタイミングでその数を設定してもよい。
【００６２】
ステップ６４では、ステップ６１で生成し、メモリ１２および／または記憶装置１３に記憶した秘密情報を削除する。この処理によって、コンピュータ端末１には、秘密情報が存在しなくなり、かつｎ個のシェアが分散して記憶されることになる。なお、シェアを記憶してから一定期間が経過しても取外可能記憶装置１９が取り外されない場合に、その旨のメッセージを利用者に通知してもよい。これによって、取外可能記憶装置１９がコンピュータ端末１から取り外されること、つまり、記憶されたシェアがネットワークから遮断されることを保証することができる。
【００６３】
次に、図７を参照して、本発明に係る秘密情報復元可能値分散システムが実行する秘密情報復元処理を説明する。本実施形態で説明する秘密情報復元処理は、図６で説明したシェア生成処理において生成された秘密情報を、通常の利用において復元する処理である。つまり、シェアを１つも漏洩または損失することなく、上述した決済サービスにおける仮想通貨の送金の際の仮想通貨のトランザクション履歴情報の署名に使用する秘密鍵などを復元する例である。
【００６４】
秘密情報復元処理は２つのタイプが存在し、１つ目が上述した通常利用における復元処理であり、２つ目がシェアの漏洩、コンピュータ端末の紛失もしくは交換などのときにおける復元処理である。この２つのタイプの復元処理は、コンピュータ端末１の出力デバイス１７（ディスプレイなど）に表示されるメニュー画面（図示せず）において選択することができる（前者のタイプを「通常復元モード」、後者のタイプを「リカバリモード」とする）。リカバリモードでは、秘密情報を復元することを目的とするのではなく、シェアを再度生成することを目的としたモードである。
【００６５】
図７に示すように、コンピュータ端末１の制御装置１１が、所定のプログラムを実行することによって、ステップ７１乃至ステップ７３を含む秘密情報復元処理を実行する。ステップ７１では、制御装置１１が、複数の物理的記憶装置のいずれかから、閾値（ｋ）個のシェアを読み出す。本実施形態では、ｋ＝２であるものとし、シェア１が記憶装置１３から読み出され、シェア２がＵＳＢメモリから読み出される。
【００６６】
ステップ７１の処理において、図６で説明したシェア生成処理におけるステップ６３でシェアを記憶したときと同一の物理的記憶装置からシェアを読み出しているかを判定してもよい。上述したように、デバイス制御ＡＰＩを実行することによって、物理的記憶装置を識別することができるので、制御装置１１がｎ個シェアを記憶した時点でそれぞれの物理的記憶装置の識別子を記憶しておくことで、この判定を行うことができる。この処理によって、記憶したときと異なる物理的記憶装置からシェアを取得していると判定した場合、エラーメッセージを利用者に通知してもよい（出力デバイス１７を介して）。これによって、シェアが漏洩した場合にも、秘密情報が第三者に復元される可能性をさらに低減させることができる。
【００６７】
ステップ７２では、制御装置１１が、ステップ７１で取得したｋ個のシェアに基づいて、上述した秘密情報復元式を使用して、秘密情報を復元する。復元した秘密情報は、アプリケーション１と連携して、決済サービスにおける仮想通貨のトランザクション履歴情報の署名に使用される。
【００６８】
ステップ７３では、制御装置１１が、各物理的記憶装置に記憶したシェアを削除する。ここで、上述したリカバリモードを選択した場合、少なくともステップ７１で取得したｋ個のシェアが記憶されたｋ個の物理的記憶装置から、対応するシェアを削除する。一方で、通常復元モードを選択した場合、ｎ個のシェアが記憶されたｎ個の物理的記憶装置から、対応するシェアを削除する。この削除処理を実行する際に、利用者が選択したモードに応じて、所定の数のシェアを削除したかを判定してもよい。
【００６９】
また、ステップ７３では、制御装置１１は、ステップ７２で復元した秘密鍵を削除する。この削除処理は、秘密鍵を復元したタイミングでタイマを設定し、タイマが所定の期間を経過したことに応答して、秘密鍵を削除するようにしてもよい。この処理によって、所定の期間を経過したことによって、復元した秘密鍵をコンピュータ端末１から削除するので、秘密情報が第三者に漏洩する可能性をさらに低減させることができる。
【００７０】
このようにして、生成および復元を行う都度、シェアを削除しているので、秘密情報のセキュリティをさらに確保することができる。なお、上述したリカバリモードを選択した場合、制御装置１１は、ステップ７３の後に、図６で説明したシェア生成処理を実行するよう制御し、ステップ３で復元した秘密情報に基づいてシェアを生成する。例えば、式（１）に示した２次多項式における第１の項の係数および第２の項の係数を変更することによって、異なるシェアを生成することができる。この処理によって、シェアのうちの１つを紛失した場合などでも、新たなシェアを再度生成することができる。
【００７１】
以上のように、本発明に係る秘密情報を説明した。本発明に係る秘密情報復元可能値分散システムによれば、生成したシェアを物理的記憶装置に記憶するので、例えば、決済サービスで使用される秘密鍵を管理する負荷が低減される。また、本発明に係る秘密情報復元可能値分散システムを、例えば、ＩＤおよびパスワードを使用した認証システムに適用し、パスワードを秘密情報とする場合、あらゆるサービスにおいて同一または類似したパスワードを使い回すことによって、当該パスワードが漏洩すること危険性を回避することができる。
【００７２】
一方で、シェアを記憶した記憶装置を取外可能記憶装置で実装し、それをコンピュータ端末から取り外すことによって、シェアがネットワークから遮断することができる。本発明に係る秘密情報復元可能値分散システムでは、ｋ個のシェアが集まらない限り、秘密情報を復元することができないので、少なくとも、ｎ−（ｋ−１）個のシェアを取外可能記憶装置に記憶し、それらをコンピュータ端末から取り外して保管することによって、非常に高いセキュリティを確保することができる。
【００７３】
上記実施形態で説明した式およびハードウェアの構成要素は例示的なものにすぎず、その他の構成も可能であることに留意されたい。また、上記実施形態で説明した処理の順序は、必ずしも説明した順序で実行される必要がなく、任意の順序で実行されてもよい。さらに、本発明の基本的な概念から逸脱することなく、追加のステップが新たに加えられてもよい。
【図１】
2019050480.tif 000006
【図２】
2019050480.tif 000007
【図３】
2019050480.tif 000008
【図４】
2019050480.tif 000009
【図５】
2019050480.tif 000010
【図６】
2019050480.tif 000011
【図７】
2019050480.tif 000012