(57)【要約】【課題】（ｋ，ｎ）閾値秘密分散法において、ｋ＝２の時でも、分散データの総データ量を圧縮できる方法を提供する。 【解決手段】ｎ個に分散するデータをｋの倍数となる数に分割し、分割したデータをｋ個ずつにまとめてｋ−１次の多項式の係数および定数とし、ｎ個のＸ座標点のそれぞれに対するＹ座標点をｋ個結合したｎ個の分散データを生成する分散部と、ｎ個の分散データを複数の格納装置に配置する制御部と、を備える。【選択図】図５
2019028391.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個に分散するデータをｋの倍数となる数に分割し、前記分割したデータをｋ個ずつにまとめてｋ−１次の多項式の係数および定数とし、前記ｎ個のＸ座標点のそれぞれに対するＹ座標点をｋ個結合したｎ個の分散データを生成する分散部と、
前記ｎ個の分散データを複数の格納装置に配置する制御部と、
を備えることを特徴とする秘密分散システム。
【請求項２】
請求項１に記載の秘密分散システムにおいて、
前記分散部は、乱数を付加した前記データを前記ｋの倍数となる数に分割し、前記分割したデータを乱数として処理する、
ことを特徴とする秘密分散システム。
【請求項３】
請求項１に記載の秘密分散システムにおいて、
前記ｎ個の分散データのうちの前記ｋ個の分散データのそれぞれにおける前記結合されたＹ座標点を前記ｋ個に分割し、前記分割した各分散データから前記ｋ−１次の多項式を復元し、前記復元したｋ−１次の多項式の係数および定数から前記データを復元する復元部、
を備えることを特徴とする秘密分散システム。
【請求項４】
ｎ個に分散するデータをｋの倍数となる数に分割し、
前記分割したデータをｋ個ずつにまとめてｋ−１次の多項式の係数および定数とし、
前記ｎ個のＸ座標点のそれぞれに対するＹ座標点をｋ個結合したｎ個の分散データを生成し、
前記ｎ個の分散データを複数の格納装置に配置する、
ことを特徴とする秘密分散方法。
【請求項５】
請求項４に記載の秘密分散方法において、
乱数を付加した前記データを前記ｋの倍数となる数に分割し、前記分割したデータを乱数として処理する、
ことを特徴とする秘密分散方法。
【請求項６】
請求項４に記載の秘密分散方法において、
前記ｎ個の分散データのうちの前記ｋ個の分散データのそれぞれにおける前記結合されたＹ座標点を前記ｋ個に分割し、
前記分割した各分散データから前記ｋ−１次の多項式を復元し、
前記復元したｋ−１次の多項式の係数および定数から前記データを復元する、
ことを特徴とする秘密分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密分散システム及びその方法に関する。
【背景技術】
【０００２】
秘密分散法の代表例として、Ｓｈａｍｉｒが考案した（ｋ，ｎ）閾値秘密分散法がある。Ｓｈａｍｉｒの（ｋ，ｎ）閾値秘密分散法では元データを、意味を成さないｎ個の分散データに分散し、その内、ｋ個以上の分散データを集めると元データを復元することができる手法である。しかし、この手法では、元データのデータ量がｗ  ｂｙｔｅの場合、各分散データのデータ量もｗ  ｂｙｔｅとなり、Ｓｈａｍｉｒの（ｋ，ｎ）秘密分散法を用いてｗ  ｂｙｔｅの元データをｎ分割すると、分散データの総データ量はｎ・ｗ  ｂｙｔｅまで肥大化してしまう。
【０００３】
そこで、Ｓｈａｍｉｒの（ｋ，ｎ）秘密分散法の欠点である分散データの肥大化を克服する為に、（ｋ，Ｌ，ｎ）ランプ型秘密分散法が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３３６５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら従来技術においては、分散データの総データ量を１／Ｌまで圧縮することが可能であるが、圧縮率に関係するパラメータＬには、０＜Ｌ＜ｋの条件が付くので、ｋ＝２の場合、Ｌ＝１となり、分散データの総データ量を減らすことができない。つまり、（２，ｎ）閾値秘密分散法に従来技術の手法を適用しても分散データのデータ量を圧縮することができなかった。
【０００６】
本発明は、ｋの値によらず、ｎ個に分けた分散データの総データ量を、元データのデータ量のｎ倍よりも小さくして圧縮することが可能な秘密分散システムおよびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかる秘密分散システムは、ｎ個に分散するデータをｋの倍数となる数に分割し、前記分割したデータをｋ個ずつにまとめてｋ−１次の多項式の係数および定数とし、前記ｎ個のＸ座標点のそれぞれに対するＹ座標点をｋ個結合したｎ個の分散データを生成する分散部と、前記ｎ個の分散データを複数の格納装置に配置する制御部と、を備えることを特徴とする秘密分散システムとして構成される。  
また、本発明は、上記秘密分散システムで行われる秘密分散方法としても把握される。
【発明の効果】
【０００８】
本発明によれば、ｋの値によらず、ｎ個に分けた分散データの総データ量を、元データのデータ量のｎ倍よりも小さくして圧縮することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のシステム構成例を示す図である。
【図２】本実施形態における分散ＤＢ及びクライアント端末のハードウェア構成例を示す図である。
【図３】本実施形態における分散化処理手順及び復元化処理手順を示すシーケンス図である。
【図４】本実施形態における分散化関数の処理を示すフロー図である。
【図５】本実施形態における分散化処理のデータの状態を表す図である。
【図６】本実施形態における復元化関数の処理を示すフロー図である。
【図７】本実施形態における復元化処理のデータの状態を表す図である。
【発明を実施するための形態】
【００１０】
−−−システム構成−−−
以下に本実施形態について図面を用いて詳細に説明する。図１は、本実施形態における秘密分散システム１の全体構成例を示す図である。この図では、全体構成と共に、秘密分散システム１を構成する各コンピュータの機能構成例についても示している。
【００１１】
図１に示す秘密分散システム１では、クライアント端末５０の秘密分散部５０１は、元データ５０３を複数の分散データに分散する。クライアント端末５０の制御部５０２は、各分散データを各分散ＤＢ（ＤＡＴＡＢＡＳＥ）１０、２０、３０にネットワーク４０を介して配置する。また、制御部５０２は、元データを復元する際、分散ＤＢ１０、２０、３０から復元に必要な分だけ分散データを、ネットワーク４０を介して取得する。そして、秘密分散部５０１は、集められた分散データから元データ５０３を復元する。
【００１２】
本実施形態に係る秘密分散システム１は、分散ＤＢ１０、２０、３０とクライアント端末５０が、インターネット等の一般的なネットワーク４０を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。尚、分散ＤＢは３個とは限らず、本実施例による（ｋ，ｎ）閾値分散法において、分散ＤＢの数はｎ個存在する。ここではｋ＝２、ｎ＝３の（２，３）閾値分散法の場合を例にして説明する。
【００１３】
図１に示すように、各分散ＤＢ１０、２０、３０は夫々、分散データ（１）１０１、分散データ（２）２０１、分散データ（３）３０１を管理している。これらのＤＢは、ハードウェアとしては一般的なサーバ等のコンピュータに記憶されている。
【００１４】
また、図１に示すように、クライアント端末５０は、秘密分散部５０１と制御部５０２から構成でき、ＨＤＤ（Ｈａｒｄ  Ｄｉｄｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の、ハードウェアとしては一般的な記憶装置に、元データ５０３と鍵Ｋ５０４を記憶し、管理している。この内、秘密分散部５０１は、元データ５０３を分散データ（１）１０１、分散データ（２）２０１、分散データ（３）３０１に変換する分散化関数５０６と、２つの分散データから元データ５０３を復元する復元化関数５０６と、データを暗復号化する暗号関数５０７と、乱数を生成する乱数生成器５０８から成る。また制御部５０２は、各分散データを分散ＤＢ１０、２０、３０に配置したり、分散ＤＢ１０、２０、３０から必要に応じて分散データを取得したりする。
【００１５】
このような機能を有する各分散ＤＢ１０、２０、３０及びクライアント端末５０は、図２に例示するように、ハードウェアとしては一般的な情報処理装置６０により実現できる。例えば、クライアント端末５０の秘密分散部５０１や制御部５０２は、ＣＰＵ（ＣＥＮＴＲＡＬ ＰＲＯＣＥＳＳＩＮＧ ＵＮＩＴ）等のＣＰＵ６０５により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスク等の記憶装置６０４に予め格納・保持するか、或いはネットワーク４０から配布を受け、メモリー６０３上に展開して実行することができる。また、本秘密分散システム１を利用する利用者からの指示は、入力を受け付けるキーボードやマウス等の入力装置６０１にて入力され、また、その指示による処理結果は、液晶表示装置や有機ＥＬ（ＥＬＥＣＴＲＯ  ＬＵＭＩＮＥＳＣＥＮＣＥ）ディスプレイ等の出力装置６０６にて表示される。
【００１６】
この他、各分散ＤＢ１０、２０、３０及びクライアント端末５０は、ネットワーク４０を介して他装置と通信する通信装置６０２を備え、バス等の内部通信線（以下、バスという）６０６で連結された情報処理装置６０上に構成することができる。
【００１７】
−−−処理手順例−−−
以下、本実施形態における手順について図に基づき説明する。以下で説明する秘密分散処理に対応する各種動作は、秘密分散システム１を構成する各装置、すなわち各分散ＤＢ１０、２０、３０及びクライアント端末５０が、それぞれメモリー等に読み出して実行するプログラムによって実現される。
【００１８】
図３は、本実施形態における分散化処理手順及び復元化処理手順を示すシーケンス図である。  
まず、分散化処理手順について説明する。クライアント端末５０が元データ５０３を本実施例の秘密分散方式で分散させる際、まず、クライアント端末５０は元データ５０３を秘密分散部５０１に入力し、秘密分散部５０１が、元データを複数の分散データに変換する（ステップＳ１０）。次にクライアント端末５０では、制御部５０２が、各分散データ（分散データ（１）１０１、分散データ（２）２０２、分散データ（３）３０３）を各分散ＤＢ１０、２０、３０に夫々配布する（ステップＳ２０）。各分散ＤＢ１０、２０、３０では、受け取った該当分散データを記憶装置６０４内に格納して管理される（ステップＳ３０）。
【００１９】
次に復元化処理手順について説明する。クライアント端末５０が各分散ＤＢ１０、２０、３０に格納してある分散データから元データ５０３を本実施例の秘密分散方式で復元させる際、まず、クライアント端末５０の制御部５０２は、分散ＤＢ１０、２０、３０の内、任意の２つの分散ＤＢを選択する（ステップＳ４０）。選ばれた分散ＤＢを記憶するサーバは、自身で管理している分散データをクライアント端末５０に送信する（ステップＳ５０）。２つの分散データを取得したクライアント端末５０の制御部５０２は、２つの分散データを秘密分散部５０１に入力し（ステップＳ６０）、秘密分散部５０１は、元データ５０３を復元する（ステップＳ７０）。  
以上が本実施形態における分散化処理手順及び復元化処理手順の概要である。
【００２０】
ここで図３の分散化処理手順の内、中心的な処理であるデータ分散化（ステップＳ１０）の処理について図４、図５を用いて詳しく説明する。
【００２１】
まず、ステップＳ１０で制御部５０２が元データ５０３（以後、元データｍとも記す）を入力すると、秘密分散部５０１は、乱数生成器５０８を用いて固定長の乱数ｒを生成する（ステップＳ１０２）。そして、秘密分散部５０１は、前記乱数ｒをステップＳ１０で入力された元データｍの前に結合する（ステップＳ１０３）。そして、秘密分散部５０１は、前記連結データｒ｜｜ｍを、鍵Ｋ５０４を用いて暗号化関数５０７にて暗号化し、暗号値ｅ＝ＡＥＳＫ（ｒ｜｜ｍ）を計算する（ステップＳ１０４）。尚、ここでは暗号化関数としてＡＥＳ暗号のＣＢＣモードを例とし、鍵Ｋによる暗号化を“ＡＥＳＫ（）”と記し、鍵Ｋによる復号化を“ＡＥＳ−１Ｋ（）”と記す。尚、“｜｜”はデータの連結を示す。
【００２２】
次に秘密分散部５０１は、前記暗号値ｅをｋの倍数である２ｌ個に分割する（ステップＳ１０５）。ここでは、２ｌ個に分割された各値をｅｉ（１≦ｉ≦２ｌ）とし、ｅ＝ｅ１｜｜ｅ２｜｜…｜｜ｅ２ｌと記す。そして、秘密分散部５０１は分散化関数５０５を用いて、ｋ−１次多項式であるｙ＝ｆｓ（ｘ）＝ｅ２ｓ−１ｘ＋ｅ２ｓなる直線を１≦ｓ≦ｌまで生成する（ステップＳ１０６）。言い換えれば、秘密分散部５０１は、分割した２ｌ個の前記暗号値ｅを２個ずつまとめてグループ化して１つのブロックとしたｌ個のブロックを生成し、それぞれのブロックを構成する前記暗号値ｅを傾きおよび切片とする１次の前記分散化関数５０５をｌ個生成する。
【００２３】
例えば、Ｓｈａｍｉｒの（ｋ，ｎ）秘密分散法でｋ＝２、ｎ＝３の場合、元データのサイズが２ｌバイトであると仮定すると、２ｌ個に分割された各値ｅが１つのブロックとなるため、分散データの容量は、２ｌ×３バイトとなる。一方、本実施例でｋ＝２、ｎ＝３の場合、同様に元データのサイズが２ｌバイトであると仮定すると、２ｌ個に分割された各値ｅの２つをまとめて１つのブロックとしているため、分散データの容量は、ｌ×３バイトとなる。したがって、Ｓｈａｍｉｒの（ｋ，ｎ）秘密分散法を用いた場合に比べ、分散データの容量を半分にすることができる。尚、本実施例での各四則演算は、各係数及び定数より大きな固定の素数Ｐを法とした演算とする。
【００２４】
そして、秘密分散部５０１は、ステップＳ１０６で生成されたｌ個の直線ｙ＝ｆｓ（ｘ）対して、Ｘ座標が夫々、Ｘ＝ｘ１、Ｘ＝ｘ２、Ｘ＝ｘ３なる直線ｙ＝ｆｓ（ｘ）の点を選ぶ（ステップＳ１０７）。ここでは、直線ｙ＝ｆｓ（ｘ）上の前記３点の座標を夫々、（ｘ１、ｆｓ（ｘ１））、（ｘ２、ｆｓ（ｘ２））、（ｘ３、ｆｓ（ｘ３））と記す。
【００２５】
そして、秘密分散部５０１は、ｌ個の直線ｙ＝ｆｓ（ｘ）毎に選ばれた座標点の内、Ｘ座標の値が同じ点のＹ座標を１≦ｓ≦ｌまで順に結合し（ステップＳ１０８）、Ｘ＝ｘ１、Ｘ＝ｘ２、Ｘ＝ｘ３毎に以下の３つの分散データを生成する（ステップＳ１０９）。  
分散データ(１)＝（ｘ１、ｆ１（ｘ１）｜｜ｆ２（ｘ１）｜｜…｜｜ｆｌ（ｘ１））
分散データ(２)＝（ｘ２、ｆ１（ｘ２）｜｜ｆ２（ｘ２）｜｜…｜｜ｆｌ（ｘ２））
分散データ(３)＝（ｘ３、ｆ１（ｘ３）｜｜ｆ２（ｘ３）｜｜…｜｜ｆｌ（ｘ３））
以上がデータ分散化（ステップＳ１０）の詳細処理である。
【００２６】
次に図３の復元化処理手順の内、中心的な処理であるデータ復元化（ステップＳ７０）について図６、図７を用いて詳しく説明する。  
まず、ステップＳ７０で制御部５０２が任意の２つの分散データを取得すると（ステップＳ７０２）、秘密分散部５０１は、復元化関数５０６を用いて各々の分散データの結合されたＹ座標部分をｌ個に分割し、各分散データに対してｌ個の座標点を復元する（ステップＳ７０３）。ここでは、分散データ（ｉ）、分散データ（ｊ）に対して、ステップＳ７０３で復元された座標点を以下と記す。
【００２７】
（（ｘｉ、ｆ１（ｘｉ））、（ｘｉ、ｆ２（ｘｉ））…（ｘｉ、ｆｌ（ｘｉ）））
（（ｘｊ、ｆ１（ｘｊ））、（ｘｊ、ｆ２（ｘｊ））…（ｘｊ、ｆｌ（ｘｊ）））
【００２８】
そして、秘密分散部５０１は、復元化関数５０６を用いて、２点（ｘｉ、ｆｓ（ｘｉ））、（ｘｊ、ｆｓ（ｘｊ））を通る直線を１≦ｓ≦ｌまでｌ個計算する（ステップＳ７０４）。尚、ここでは、２点（ｘｉ、ｆｓ（ｘｉ））、（ｘｊ、ｆｓ（ｘｊ））を通る直線をｙ＝ｆｓ（ｘ）＝ｅ２ｓ−１ｘ＋ｅ２ｓとする。
【００２９】
そして、秘密分散部５０１は、ステップＳ７０４で計算した式ｆｓ（ｘ）の係数ｅ２ｓ−１と定数ｅ２ｓを１つのブロックとして結合する（ステップＳ７０５）。尚、ここでは、ｆｓ（ｘ）の係数ｅ２ｓ−１と定数ｅ２ｓを結合した値をＥｓ＝ｅ２ｓ−１｜｜ｅ２ｓと記す。
【００３０】
そして、秘密分散部５０１は、復元化関数５０６の各Ｅｓを１≦ｓ≦ｌまで結合し、
ｅ＝Ｅ１｜｜Ｅ２｜｜…｜｜Ｅｌ
＝ｅ１｜｜ｅ２｜｜ｅ３｜｜ｅ４｜｜…｜｜ｅ２ｌ−１｜｜ｅ２ｌ
を復元する（ステップＳ７０６）。
【００３１】
そして秘密分散機能５０１は、ステップＳ７０６に復元した値ｅを、鍵Ｋ５０４を用いて暗号化関数５０７にて復号化し、ＡＥＳ−１Ｋ（ｅ）＝ｒ｜｜ｍを計算する（ステップＳ７０７）。そして秘密分散機能５０１は、ｒ｜｜ｍから固定長の乱数ｒを除去し（ステップＳ７０８）、元データｍを取得する（ステップＳ７０９）。
【００３２】
このように、本システムでは、元データをｎ個の分散データに分散し、ｎ個に分散されたデータの内、ｋ個以上の分散データを集めると元データを復元することができるが、集めた分散データがｋ−１個以下の場合では元データを復元することができないという性質を持つＳｈａｍｉｒの秘密分散手法において、元データに乱数を付与して分散対象とするデータ自身が乱数となるように処理し、そのデータをｋ分割する。そしてＳｈａｍｉｒの（ｋ，ｎ）閾値秘密分散法で用いたｋ−１次多項式の代わりに、前記ｋ分割したデータをｋ−１次多項式の全係数及び定数に用いて、そのｋ−１次多項式上の任意のｎ個の座標点を分散データとする。そして、分散データから元データを復元する際、ｎ個中ｋ個の分散データから各座標を通るｋ−１次多項式を計算し、前記ｋ−１次多項式の全係数及び定数を順に結合し、前記結合したデータから乱数部分を削除することで元データを復元する。
【００３３】
したがって、一つのｋ−１次多項式に対して、ｋ個分の情報を各係数及び定数部分に埋め込んである為、分散データからｋ−１次多項式を復元した場合、そのｋ−１次多項式からｋ個分の元データに関する情報を取得することが可能となる。それ故、ｗ  ｂｙｔｅの元データをｎ分割する場合、各分散データは（ｗ／ｋ）  ｂｙｔｅ程度にすることができ、分散データの総データ量は（ｎ・ｗ／ｋ）  ｂｙｔｅ程度となり、分散データの総データ量を１／ｋまで圧縮することが可能になる。本実施例では、ｋ＝２の場合でも適用することができ、その場合、従来技術に比べて分散データの総データ量を１／２にまで圧縮することが可能となる。
【符号の説明】
【００３４】
１      秘密分散システム
１０    分散ＤＢ
２０    分散ＤＢ
３０    分散ＤＢ
４０    ネットワーク
５０    クライアント端末
６０    情報処理装置
１０１  分散データ（１）
２０１  分散データ（２）
３０１  分散データ（３）
５０１  秘密分散機能
５０２  制御機能
５０３  元データ
５０４  鍵Ｋ
５０５  分散化関数
５０６  復元化関数
５０７  暗号関数
５０８  乱数生成器
６０１  入力装置
６０２  通信装置
６０３  メモリー
６０４  記憶装置
６０５  ＣＰＵ（ＣＥＮＴＲＡＬ ＰＲＯＣＥＳＳＩＮＧ ＵＮＩＴ）
６０６  出力装置
【図１】
2019028391.tif 000003
【図２】
2019028391.tif 000004
【図３】
2019028391.tif 000005
【図４】
2019028391.tif 000006
【図５】
2019028391.tif 000007
【図６】
2019028391.tif 000008
【図７】
2019028391.tif 000009