説明

秘密情報分散装置及び秘密情報復元装置

【課題】シェアの改竄を防止可能な秘密分散法を提供する。
【解決手段】秘密情報分散装置は、x=1+u・vで表され、互いに素である複数の自然数x(j=1,2,...,n)の組を生成し、秘密情報Sを自然数xで割った剰余αを求め、自然数xと剰余αとを、素数を用いてゲーデル数化して、自然数tを生成し、自然数tを含むシェアを生成して分散する。秘密情報復元装置は、秘密情報分散装置により生成され・分散された各シェアに含まれているに自然数tを素因数分解し、分解した素因数に基づいて、自然数xと剰余αとを再生し、再生した自然数xと前記剰余αとに基づいて、秘密情報Sを復元する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密情報を分散する装置および復元する装置に関する。
【背景技術】
【0002】
情報は、その重要度に応じて対応する処置が異なっており、重要度の高い情報ほど、より強固なセキュリティ対策をとる必要がある。そのなかでも、組織の運営に支障をもたらすような機密レベルの情報を安全に管理するためには、情報の暗号化だけでは不完全で、その暗号鍵の管理も重要である。
【0003】
秘密分散法はこのような鍵の管理を目的とした方式であり、秘密情報をシェアに分散することによってセキュリティを高める手法である。また、復元に必要なシェアの個数(k:しきい値)をあらかじめ設定することにより、すべてのシェアを集めなくても元の秘密情報を復元することが可能であるという特性を有する。
【0004】
しかし、k個のシェアで元の秘密情報を復元できるため、シェアに改竄があった場合、復元時の情報が変化してしまうという問題がある。全ての組み合わせで復元を行えば改竄を発見できるが、実際の組み合わせは膨大な数に及ぶため、改竄の検出は困難なことが多い。また過半数以上のシェアに改竄があった場合、誤った結果を正しい結果と認識してしまうおそれもある。
【0005】
この問題を解決できる秘密分散法が非特許文献1に開示されている。
【0006】
非特許文献1には、ペル方程式を用いて、各シェアそれぞれが改竄を検知することが可能な秘密分散法が提案されている。
【0007】
この方式により,シェアの誤りを検知することで、シェアの全ての組み合わせを試すことなく、また誤った結果を正しい結果と認織することなく情報を復元することが出来る。
【0008】
非特許文献1に開示されている秘密分散法を説明する。
1. 前提
1−1. 中国の剰余定理
正の整数m,mが互いに素であるとき、任意の整数a,aに対して(1)と(2)の連立合同式には解xが存在し、その解はすべてN=m・mを法として合同である。
x≡a(mod m)...(1)
x≡a(mod m)...(2)
【0009】
2. ペル方程式
2−1. (3)式をペル方程式という。
−d・y=1 ...(3)
(d∈N,√d∈Q,N:自然数,Q有理数)
この方程式を満たす解x,yは無数に存在する。ペル方程式の解をz=x+y√dと表現したとき、全ての解で最小の解を基本解という。
【0010】
3. ペル方程式の諸定理
(4)式をペル方程式の基本解の判別式といい、(4)式を満たし、z=a+b√dがペル方程式の解となるならば、それが基本解である。
d∈N,√d∈Q,a,b∈N、
a≧[b/2] ...(4)
【0011】
4. 分散フェーズ
4−1. まず、分散対象の秘密情報Sを、ルート部分だけは、子ノードの和、それ以外のノードは子ノードの積で計算できるように秘密情報Sをグループに分解し、ツリー(木)構造とすることで、シェア一つ一つのサイズを小さくする。
【0012】
4−2. ノードグループSについて、全てのx=1+u・vが互いに素となるように、u,v(j=1,2,...n)をランダムに発生させる。
4−3. ツリーのノードを構成する情報Sを、xj(=1+u・v)で割った余りαを求める。
4−4. 自然数d=u・(u・v+2)を求める。
4−5. この時の(i,u,v,α)がシェアとなる。
4−6. 4−2〜4−5の処理をすべてのノードで行う。このとき、ノードグループ毎にnの値は異なってもよい。
【0013】
5. 復元フェーズ
5−1. シェア1つを取り出す。
5−2. 後述する改竄の有無の判定を行う。
5−3. 改竄がなければ、復元処理を行えるシェアとして利用可能なので、保持しておく。
5−4. 5−1〜5−3の処理をすべてのシェアで行う。
5−5. 保持しておいた全てのシェアから、ノードグループ固有の番号iで分類を行う。
5−6. (5)式に示すように、iで分類されたシェアから作られた合同式を連立させ、その解xで分類されたk個のシェアから作られた合同式を連立させ、その解xを求める。
≡ αij(mod l+uij・vij) ...(5)
(1≦i≦z)(1≦j≦k)z:ノードグループ数、k=ノードグループの情報復元に必要なシェア数の閾値
5−7. 全てのグループで解を求め、ツリーを作る。
5−8. ツリーの部分木に注目し、計算が合うかチェックを行う。
5−9. ツリー上の計算が合えば、ツリーのルート部分が、秘密情報Sとなる。
【0014】
6. 改竄判定の方法
改竄の判定はペル方程式を用いて行う。
改竄があれば、シェアはペル方程式や,ペル方程式の基本解の判別式を満たさないことから改竄の検知が可能となる。
6−1. x=1+u・v,y=vとして,それぞれ(3)式で示すペル
方程式に代入し,式が成立するか判定を行う。
6−2. ペル方程式が成立した場合、(4)式にa=x,b=yを当てはめ、基本解であるか否か判定する。
6−3. 基本解であれば、改竄は行われていないと判定する。
【0015】
【非特許文献1】ペル方程式を用いた改竄検知可能な秘密分散法の提案 平成20年2月4日、広島市立大学 平成19年度修士論文 情報メディア工学科 ソフトウエア工学講座 武田 雄人
【発明の開示】
【発明が解決しようとする課題】
【0016】
非特許文献1に開示された手法によれば、ペル方程式を用いてシェアの改竄の有無を容易に検出することができ、さらに、ツリーを用いて復元された情報相互の関係から改竄を検出することも可能となる。
【0017】
しかしながら、この手法によれば、uとvとを公開するので、d(=u・(u・v+2))を完全に復元できる。従って、新しい3つ組u’,v’,d’を生成して、改竄を検知できないようにして、復元を困難にすることが可能となる。
【0018】
本発明は、上記実情に鑑みてなされたものであり、シェアの改竄を防止可能な秘密分散法を提供することを目的とする。
また、本発明は、より信頼性の高いペル方程式を用いた改竄検知可能な秘密分散法を提供することを目的とする。
【課題を解決するための手段】
【0019】
上記目的を達成するため、この発明の第1の観点に係る秘密情報分散装置は、
=1+u・vで表され、互いに素である複数の自然数x(j=1,2,...,n)の組を生成するx生成手段と、
秘密情報Sを自然数xで割った剰余αを求める除算手段と、
前記自然数xと剰余αとを、素数を用いてゲーデル数化して、自然数tを生成するゲーデル数化手段と、
自然数tを含むシェアを生成して分散する分散手段と、
を備えることを特徴とする。
【0020】
秘密情報Sをz個のノードを有する木構造に分解する手段をさらに有し、
前記x生成手段は、第i(i=0,1,...,z−1)のノードグループのそれぞれについて、複数の自然数xijを生成し、
前記除算手段は、各ノードの値Sを自然数xijで割った剰余αijを求め、
前記ゲーデル数化手段は、各ノードについて、前記自然数xijと剰余αijとを、素数を用いてゲーデル数化して、自然数tijを生成し、
前記分散手段は、各ノードについて、自然数tijを含むシェアを生成して分散する、
ように構成してもよい。
【0021】
前記ゲーデル数化手段は、例えば、前記自然数xと剰余αとを、既知の変換式によりzj1とzj2とに変換し、さらに、tj=zj1・pzj2に代入することにより、自然数tを求める。なお、zj1とpは互いに素、pは素数である。
【0022】
=vとしたときに、ペル方程式x−d・y=1を満たす自然数dを求める手段と、
求めた「自然数」dを、正当権限を有する者に配布する手段と、
をさらに配置してもよい。
【0023】
=vとしたときに、ペル方程式x−d・y=1を満たす自然数dを求める手段をさらに備え、
前記ゲーデル数化手段は、前記自然数xと剰余αとを、既知の変換式によりzj1とzj2とに変換し、さらに、tj=zj1・pzj2・pdjに代入することにより、自然数tを求めるようにしてもよい。なお、zj1とpとpは互いに素、p、pは素数である。
【0024】
また、この発明の第2の観点に係る秘密情報復元装置は、
上述の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
前記記憶手段に記憶されているシェアに含まれている自然数tjを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、
再生された前記自然数xと前記剰余αとに基づいて、秘密情報Sを復元する復元手段と、
を備えることを特徴とする。
【0025】
上述の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
前記記憶手段に記憶されているシェアをノードの番号iで分類する分類手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、を備え、
復元手段は、ノードグループ毎に、再生された前記自然数xと剰余αとの連立合同式を解くことにより各ノードSの値を復元する、ように構成してもよい。
【0026】
上述の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
外部より、自然数dを受信する受信手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、を備え、
復元手段は、再生された前記自然数xと剰余αと、受信したdとを用いて、各シェアの改竄の有無を検証し、改竄が無いと判別したシェアに基づいて、秘密情報Sを復元するように構成してもよい。
【0027】
上述の秘密情報分散装置により、生成されたシェアを記憶する手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αと自然数dを再生する再生手段と、を備え、
復元手段は、再生された前記自然数xと剰余αと自然数dとを用いて各シェアの改竄の有無を検証し、改竄が無いと判別したシェアを用いて秘密情報Sを復元する、ように構成してもよい。
【0028】
コンピュータを、
=1+u・vで表され、互いに素である複数の自然数x(j=1,2,...,n)の組を生成するx生成手段、
秘密情報Sを自然数xで割った剰余αを求める除算手段、
前記自然数xと剰余αとを、素数を用いてゲーデル数化して、自然数tを生成するゲーデル数化手段、
自然数tを含むシェアを生成して分散する分散手段、
として機能させるコンピュータプログラムを生産・配布してもよい。
【発明の効果】
【0029】
本発明によれば、秘密情報をより安全に分散させることができる。
【発明を実施するための最良の形態】
【0030】
以下、本発明の実施の形態にかかる秘密分散・復元システム100について説明する。
【0031】
この秘密分散・復元システム100は、秘密情報Sを、ペル方程式を用いて改竄検知可能な形態で複数のシェアに秘密分散する一方、収集された複数のシェアから元の秘密情報Sを復元する機能を備える。
【0032】
図1に示すように、秘密分散・復元システム100は、制御部10と、記憶部20と、入力部30と、出力部40と、通信部50と、から構成される。
【0033】
制御部10は、記憶部20に記憶された動作プログラムに従って動作し、後述する秘密分散処理、改竄検知処理、復元処理などを行う。
【0034】
記憶部20は、RAM (Random Access Memory)、ROM (Read Only Memory)、ハードディスク装置、フラッシュメモリなどから構成され、制御部10の動作プログラムを記憶し、また、制御部10のワークエリアとして機能する。
【0035】
記憶部20は、RAM、ROM、ハードディスク装置、フラッシュメモリなどから構成され、記憶手段として、制御部10の動作プログラムを記憶し、任意のデータを記憶し、また、制御部10のワークエリアとして機能する。
【0036】
入力部30は、任意の入力装置から構成され、分散対象の秘密情報S、復元対象の複数のシェアなどを入力する。
【0037】
出力部40は、任意の出力装置から構成され、分散対象の秘密情報Sを秘密分散して得られた複数のシェア、複数のシェアから復元した秘密情報S等を出力する。また、出力部40は、正当権限を有する者に、秘密情報Sを復元するために必要な情報(後述する自然数d)を配布するための処理を行う。
【0038】
通信部50は、外部装置との間で通信を行い、種々のデータ、例えば、分散対象の秘密情報S、生成された複数のシェア、復元対象の複数のシェア、複数のシェアから復元した元の秘密情報S等を、送受信する。また、通信部50は、正当権限を有する者に、秘密情報Sを復元するために必要な情報(後述する自然数d)を配布するための処理を行う。
【0039】
次に、上記秘密分散・復元システム100により、秘密情報Sを複数のシェアに分散し、続いて、複数のシェアから秘密情報Sを復元する手順を図2に示すフローチャートを参照して説明する。
【0040】
まず、制御部10は、秘密情報Sを決定する(ステップS101)。秘密情報Sは、例えば、入力部30から入力されたデータ、通信部50を介し受信したデータ、或いは、これらを加工して得たデータである。
【0041】
次に、制御部10は、秘密情報Sを、z個のノードを持つ木(ツリー)構造に分解する(ステップS102)。ここで、ツリー構造の第1階層のノードは、それらの値の和が秘密情報Sの値となる数値とし、第2階層以下のノードは、上位ノードの値が下位ノードの積となるように分解する。即ち、秘密情報Sを和がSとなる素数以外の2つの数値S,Sに分割し、さらに、値SとSをそれぞれ、積がS,Sとなる2つの値に分割し、同様の分割を繰り返して、ノードの数をz個とする。
【0042】
例えば、z=6とすると、図10に例示するように、秘密情報Sを、和がSとなる素数以外の2つの数値S,Sに分割する。さらに、値SとSをそれぞれ、積がS,Sとなる2つの値SとS、SとSに分割する。従って、S=S+S、S=S・S、S=S・Sが成立する。
【0043】
次に、ノードを特定するポインタiに0をセットする(ステップS103)。さらに、ノードSに対するシェアの番号を示すポインタjに0をセットする(ステップS104)。
【0044】
次に、ポインタiで特定されるノードSについて、全ての1+u・vが互いに素となり、且つ、k個の1+u・vの積がノードの値S未満となるように、自然数uijとvijの組をランダムに発生させる(ステップS105〜S110)。
【0045】
具体的には、まず、自然数uijと自然数vijとを乱数で発生させる(ステップS105)。
【0046】
次に、xij=1+uij・vijを計算する(ステップS106)。
次に、gcd(1+uij・vij)=1(j=1,2,…k-1)が成立するか否かを判別する(ステップS107)。即ち、発生したk個のx(xi0〜xik)が、互いに素であるか否かを判別する。
【0047】
発生したxが互いに素の関係に無い場合(ステップS107;No)、ステップS105にリターンし、再度、自然数uijと自然数vijとを乱数で発生させる。
【0048】
一方、ステップS107で、gcd(xij)=gcd(1+uij・vij)=1が成立すると判別された場合、すなわち、発生された全てのxijが互いに素であると判別された場合(ステップS107;Yes)、生成したk個のxijの積が第iのノードSの値より大きいか否かを判別する(ステップS108)。積がノードSの値に等しいか小さければ(ステップS108;No)、ステップS105にリターンする。
【0049】
ステップS108で、k個のxijの積がSよりも大きいと判別された場合(ステップS108;Yes)、ノードSについて、全ての1+uij・vijが互いに素となり、且つ、k個のxijの積がSより大きくなる自然数uijとvijが揃ったことになる。
【0050】
続いて、Sをxijで割った余りαijを求める(ステップS109)。即ち、S≡αij(mod (1+uij・vij))が成立するαijを求める。
【0051】
さらに、αijをペル方程式の基本解とする値dij=uij・(uij・vij+2)を求める(ステップS110)。
【0052】
求めた値の組(i,xij,αij)をシェアの1つとして記憶部20に記憶する(ステップS111)。
【0053】
次に、値jが所定値k−1であるか否かを判別する(ステップS112)。
値jがk−1未満であると判別された場合(ステップS112;No)、ポインタjを+1して(ステップS113)、ステップS105にリターンし、同様の動作を繰り返す。
【0054】
値j=k−1であると判別された場合(ステップS112;Yes)、値iが所定値z−1であるか否かを判別する(ステップS114)。
iがz−1未満であると判別された場合(ステップS114;No)、ポインタiを+1して(ステップS115)、ステップS104にリターンし、同様の動作を繰り返す。
【0055】
一方、i=z−1であると判別された場合(ステップS114;Yes)、全てのノードSi(S〜Sz−1)についてシェアを求める処理が終了したことになる。
【0056】
ステップS111で格納したシェアは、そのままでは、背景技術の欄で説明したように、それ自体が改竄され、復元を不可能とされるおそれがある。
そこで、シェアの改竄を防止するため、ステップS116で、xijとαijを変換する。
【0057】
この変換処理の詳細を図3を参照して説明する。
まず、ノードを特定するポインタiを0に(ステップS201)、各ノードについてシェアを特定するポインタjを0にセットする(ステップS202)。
続いて、ポインタiとjで特定されるシェアについて、次式により、xijとαijとをzij1とzij2に直交変換する(ステップS203)。
【0058】
ij1=xij+αij
ij2=xij−αij
【0059】
次に、任意の素数pを発生させる(ステップS204)。
【0060】
次に、gcd(Zij1,p)=1が成立するか否か、すなわち、Zij1とpとが互いに素であるか否かを判別する(ステップS205)。
成立しなければ(ステップS205;No)、ステップS204にリターンして、素数pを発生させる。
成立すれば(ステップS205;Yes)、数式(2)に従って、生成したZij1とZji2を素数pを用いてゲーデル数化して自然数tijを生成する(ステップS206)。
【0061】
ij=Zij1・pZij2 ....(2)
ここで、gcd(Zij1,p)=1
【0062】
次に、(i,tij)を1つのシェアとする(ステップS207)。
【0063】
次に、値jが所定値k−1であるか否かを判別する(ステップS208)。
値jがk−1未満であると判別された場合(ステップS208;No)、ポインタjを+1して(ステップS209)、ステップS203にリターンし、同様の動作を繰り返す。
【0064】
j=k−1であると判別された場合(ステップS208;Yes)、値iが所定値z−1であるか否かを判別する(ステップS212)。
iがz−1未満であると判別された場合(ステップS212;No)、ポインタiを+1して(ステップS211)、ステップS202にリターンし、同様の動作を繰り返す。
【0065】
一方、i=z−1であると判別された場合(ステップS212;Yes)、全てのノードSi(S〜Sz−1)についてシェアを変換する処理が終了したことになり、図2のメインフローにリターンする。
【0066】
制御部10は、こうして生成したシェア(i,tij)を出力部40又は通信部50から出力又は送信する。
また、制御部10は、ステップS105,S110で生成した値uij、vij、dij等のデータを記憶部20に保存する。
また、制御部10は、秘密情報Sを復元する正当権限を有する者に、出力部40又は通信部50を介して、自然数dを、シェアの改竄の有無を判定するために配布するための処理を行う。
【0067】
次に、こうして分散されたシェアから元の秘密情報Sを復元する動作を説明する。
【0068】
まず、制御部10は、入力部30或いは通信部50を介し入手したシェアと自然数dijを記憶部20に格納しておく。
【0069】
制御部10は、図4に示す改竄判定処理を適宜行い、記憶部20に記憶しておいたシェアを取り出し(ステップS301)、改竄の有無を判定し(ステップS302)、改竄が無いと判別すると(ステップS302;No)、復元処理を行えるシェアとして利用可能なので、保持しておく(ステップS303)。一方、改竄があると判定すると(ステップS302;Yes)、そのシェアを廃棄する(ステップS304)。続いて、全てのシェアについて処理が終了したか否かを判別し(ステップS305)、全てのシェアについて改竄の判定が終了していれば(ステップS305;Yes)、改竄判定処理を終了し、終了していなければ(ステップS305;No)、ステップS301にリターンして、次のシェアについて同様の処理を行う。
【0070】
ステップS302で実行する改竄有無の判定は、ペル方程式を用いて行う。
改竄があれば、シェアはペル方程式や、ペル方程式の基本解の判別式を満たさないことから改竄の検知が可能となる。
このペル方程式を用いた改竄有無の判定手順について、図5を参照して説明する。
【0071】
前述のように、制御部10は、事前に、ディーラ(シェアを配布した者)より配布された自然数dijを、記録媒体或いは通信により、入力部30或いは通信部50を介して受け取り、記憶部20に格納しておく。
【0072】
制御部10は、ステップS301で選択したシェアから自然数値tijを抽出する(ステップS321)。
自然数tijを素因数分解し、Zij1・pZij2(pは素数)の形式とし、ZとZとを求める(ステップS322)。
【0073】
次に、xij=(Zij1+Zij2)/2から、xijを求める(ステップS323)。
次に、ディーラより受信しておいた、自然数dijとxijから、xij−dij・vij2=1に代入し、vijを求める(ステップS324)。
次に、vijが自然数か否か判別する(ステップS325)。自然数であれば(ステップS325;Yes)、ペル方程式が成立し、改竄検知の必要条件を満たす。
【0074】
次に、uijとvijがペル方程式の基本解の判別式を満たすか否かを判別する。すなわち、 uij≧[vij/2]を満たすか否かを判別する(ステップ326)。
【0075】
基本解の判別式を満たすと判別した場合(ステップS326;Yes)、改竄は行われていないと判別する(ステップ327)。
【0076】
一方、基本解の判別式を満たさないと判別した場合(ステップS326;No)、改竄が行われていると判別する(ステップ328)。
【0077】
このようにして、各シェアについて、ペル方程式を満たすか否か、更に、ペル方程式の基本解の判別式を満たすか否かを判別することにより、シェアの改竄の有無を迅速に判別することができる。さらに、改竄されていると判別されたシェアを破棄することにより、秘密情報Sを誤って復元する事態を防止できる。
【0078】
次に、改竄されていないと判別されたシェアを用いて秘密情報Sを復元する処理を図6のフローチャートを参照して説明する。
【0079】
制御部10は、記憶部20に保持しておいた全てのシェア(i,j,tij)を、ノード固有の番号iで分類する(ステップS401)。
i=0とおく(ステップS402)。
iで分類された全てのシェアから作られたk個の連立合同式をガウスの方法を用いて解き説き、その解S(≡αij (mod xij))を求める(ステップS403)。
【0080】
次に、i=z−1であるか否か、即ち、全てのノードについて値Sが求められたか否かを判別する(ステップS404)。
【0081】
i<z−1であれば(ステップS404;No)、未処理のノードが残っているので、i=i+1として(ステップS405)、ステップS403にリターンし、解Sを求める。
【0082】
一方、i=z−1であれば(ステップS404;Yes)、全てのノードの値Sの復元が終了したので、値Sを用いて、ツリーを再生する(ステップS406)。
【0083】
続いて、ツリーを検証する(ステップS407)。即ち、ツリーの部分木に注目し、直下の2つのノード値の積(ルートについては和)が当該ノードの値に等しいか検査を行う。全てのノードについて、直下の2つのノード値の積(ルートについては和)に等しい場合に、ツリーが正しいと判別する。
【0084】
ツリーが正しいと判別した場合(ステップS408;Yes)、ツリーのルートで合成される値を秘密情報Sとする(ステップS409)。
一方、ツリーが正しくないと判別した場合(ステップS408;No)、所定のエラー処理を行い(ステップS410)、例えば、シェアの改竄を報知する等の処理を行う。
こうして、秘密情報Sが復元される。
【0085】
この実施の形態によれば、シェアを構成する情報xとαとを素数pを用いてゲーデル数化し自然数tを生成し、これを分散する。
【0086】
このため、シェアの元の情報xとαを推定することが困難となり、シェアの改竄をより困難とすることができる。
また、シェアの改竄をペル方程式および再生されたツリー構造から検証するので、シェアの改竄の有無を迅速に判別でき、改竄されたシェアを用いて秘密情報Sを復元する事態を防止できる。
【0087】
(第2実施形態)
上記第1の実施形態においては、シェアを復元する際に、ディーラより、値dij(=uij・(uij・vij+2))を復元先に配布する必要があったが、dijをシェアに含めることも可能である。
【0088】
例えば、
=zij1・pZij2・pdij
,pは素数、zij1、p、pは互いに素、p>pとすれば、
自然数tijにdijを含めることができる。
【0089】
秘密情報Sを復元する際には、シェアに含まれている自然数tを素因数分解し、a・p・pの形式とし、p>pより、Zij1=a、Zij2=n、dij=mとし、さらに、x=(Zij1+Zij2)/2、α=(Zij1−Zij2)/2とすることにより、シェアを復元することができる。
【0090】
同様の手法により、uij、vijを自然数tijに含ませることも可能である。
【0091】
また、上記実施の形態においては、シェアを構成する自然数xとαとを、直交変換によりzij1、zij2に変換したが、変換後のzij1、zij2から自然数xとαとを再生できるならば、任意の変換式を使用可能である。
【0092】
さらに、
=αij・pxij・pdij
=xij・pαij・pdij
とする等してもよい。
また、シェアを(i,j,tij)としてもよい。このようにすれば、jの特定が容易である。
【0093】
(応用例1)
次に、上記構成を用いた秘密分散方法の応用例について説明する。
土木・建築工事において、生コンは、必須の素材である。一方、生コンの品質物を均一に維持することは困難であり、工事完了後に、生コンの品質をチェックしたい場合が発生することがある。
【0094】
しかしながら、建設現場における生コンのサンプル採取作業の徹底が不十分なため、生コン生還過程の追跡性が悪く、事故発生後に、生コンサンプル分析データを活用した原因究明等がなされていないという背景がある。
【0095】
そこで、以下、生コンサンプル採取及び分析データ管理の効率化と事故後の生コンサンプル分析データ照合作業の効率化を可能とする方法を提供する。
まず、システムの全体図を図7に示す。
【0096】
図示するように、生コンは、工場101で生産され、ミキサー車102に積載され、建設現場103に搬入される。
工場101では、生コンの生産データ101aが管理されており、生産日・時間、材料・ロット、製造記録などの情報がデータベースで記録・管理されている。
【0097】
ミキサー車102の担当者は、積載する生コンの生産データ101aを自己の携帯端末111に記録する。この携帯端末は図1に示す秘密分散・復元システム100と同様の構成を有する。なお、出力部40はRFIDのリーダライタを含む。
【0098】
ミキサー車102の担当者は、工場からの搬出時間・工事現場への搬入時間、搬入場所等のデータも自己の携帯端末111に入力部30等から入力する。
【0099】
続いて、建設現場103に着くと、ミキサー車102の担当者は、携帯端末111に、搬入時間、搬入場所等のデータ102aを入力する。
【0100】
次に、建設現場担当者は、搬入された生コンからサンプル106を取り出し、RFIDチップ107を埋め込む。
【0101】
担当者は、携帯端末111にサンプル用RFIDチップ107のIDを入力する。
【0102】
携帯端末111は、入力された情報、すなわち、生産情報、搬入記録、サンプルチップのID等から複数のシェアを生成し、これらを複数のRFID105に分散して格納する。同一のシェアを複数のRFID105に記録してもよい。
【0103】
続いて、RFIDチップ105を生コン104に埋め込む。
生コン104は、打設され、構造物の一部を構成する。
【0104】
一方、RFID107が埋め込まれた生コンサンプル106は、所定の試験機関108に搬送され、分析される。
【0105】
分析結果109は、生コンサンプル106に埋め込まれたRFID107のIDに対応付けて、DB等に格納される。
【0106】
建築物に問題が発生した場合、図1に示す構成を有するRFIDの読み取り装置により、問題箇所に埋め込まれているRFID105に格納されているシェアを読み取る。前述のように、RFID105には、生コンサンプル106に埋め込まれたRFID107のID、生産データ、輸送・搬入データがシェアの形態で格納されている。
【0107】
読み取り装置は、読み取ったシェアが改竄されているか否かを、上述したように、ペル方程式に基づいて判別し、上述した手法により、各ノードの値を復元し、さらに、秘密情報を復元する。
【0108】
この秘密情報は、サンプル用RFID107のIDを含む。
担当者は、復元した情報に含まれているサンプルIDをキーにDBを検索し、該当するIDに対応付けられている分析データを読み出す。
【0109】
これにより、問題部分のコンクリートの、生産データ、輸送・搬入データ、さらに、サンプル分析データを取得して、問題を解析することが可能となる。
なお、最終的に問題箇所に使用された生コンのサンプルが特定できるならば、RFIDチップ105に格納される情報自体は任意に変更可能である。
【0110】
(応用例2)
この例では、電子投票を行う場面で、投票結果を集計装置に集積する場面を想定する。
【0111】
例えば、図8に示すように、複数の投票所201(201〜201)に、それぞれ、複数台の投票端末202(202〜202)と投票端末202に接続された蓄積装置203が配置されているとする。
【0112】
投票端末202は、投票が行われる度に、投票番号、投票者、時刻等の情報を含む投票情報を生成し、暗号化した上で、蓄積装置203に送信する。
【0113】
蓄積装置203は、各投票端末202から送信された投票情報を受信し、二重化などの安全処理を施した上で、ハードディスク装置204等に蓄積する。
【0114】
投票時間終了後、蓄積装置203は、蓄積した情報を秘密情報Sとして、複数のノードを形成し、各ノードから複数のシェアを生成し、複数の記憶装置205に分散して記憶させる。ここで、各記憶装置205には、互いに異なる組み合わせではあるが、個々の記憶装置に格納されているシェアのみから元の秘密情報Sを復元できるシェアを選択して格納する。
【0115】
続いて、複数の記憶装置205を、例えば、別々の搬送手段で、集計所に搬送する。
【0116】
集計所206に設置された集計装置207は、複数の記憶装置205に格納されたシェアを読み取り、ペル方程式に基づいて各シェアの改竄の有無を判別する。
【0117】
改竄が無いと判別すると、シェアから各ノードを復元し、続いて ノード同士の関係から改竄の有無を検証する。さらに、ノード相互の関係も正常であれば、ルートのノードを求め、これを元の情報とする。
【0118】
複数の投票所201から提供されたシェアから復元した投票情報を元に、投票数を集計する。
【0119】
このような構成とすれば、搬送の途中で一部の情報が失われたとしても、残りの情報で元の情報を再生することができ、秘密情報の搬送及び再生を安全に行うことができる。
【0120】
(応用例3)
一般の通信に上述の技術を応用することが可能である。
【0121】
ここでは、一例として、任意の音声データや画像データを安全に有線又は無線で送信する場合を想定する。
【0122】
図9に示すように、送信装置301は、送信対象のデータをバッファ等に蓄積する。送信装置301は、バッファ等に蓄積したデータを所定量(例えば、フレーム単位)ずつ読み出し、暗号化する。
【0123】
さらに、送信装置301は、暗号化した所定量の情報を秘密情報Sとして、複数のノード、例えば、ノードS〜Sに分割する。続いて、各ノードについて、複数のシェアを生成する。
【0124】
続いて、送信装置301は、複数の伝送チャネルにシェアを割り振る。この際、送信装置301は、1つの伝送チャネルを伝送されるシェアをモニタするのみでは、元のデータを復元できないように、シェアを配分する。送信装置301は、分配された各シェアを各伝送チャネルを介して送信する。
【0125】
一方、受信装置302は、複数の伝送チャネルを介して送信されてきたシェアを受信し、受信したシェアの改竄の有無をペル方程式を用いて判別する。改竄を検出した場合には、シェアを廃棄し、改竄が無いと判別するとシェアを蓄積する。
【0126】
続いて、受信装置302は、受信したシェアからノードS〜Sを復元する。
さらに、復元したノード相互の整合性をチェックする。整合性が取れていれば、ルート部分を秘密情報Sとする。この処理を、フレーム毎に行う。
【0127】
このような構成とすれば、秘密情報を安全に送信することが可能となる。
【0128】
以上、本発明の実施形態および応用例について説明したが、これらは一例であり、種々の変形、応用、他技術との組み合わせが可能であり、これらも請求項に記載されている発明や発明の実施形態に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。
【0129】
例えば、システムの構成、処理の手順等は任意に変更可能である。
また、専用のシステムによらず、上述の分散処理および/又は復元処理を実行するためのコンピュータプログラムをコンピュータにインストールし、上述の秘密分散処理装置および/又は復元装置を形成し、秘密分散処理および/又は復元処理を実行させてもよい。
【図面の簡単な説明】
【0130】
【図1】本発明の実施の形態に係る秘密分散・復元システムのブロック図である。
【図2】分散処理のフローチャートである。
【図3】図2に示す変換処理の詳細を示すフローチャートである。
【図4】シェアの改竄の有無を検証する改竄判定処理のフローチャートである。
【図5】ペル方程式を用いた改竄判定の手順の詳細を示すフローチャートである。
【図6】復元処理のフローチャートである。
【図7】応用例1として、生コンのデータを管理するシステムの例を示す図である。
【図8】応用例2として、電子投票システムに適用した例を示す図である。
【図9】応用例3として、通信システムに適用した例を示す図である。
【図10】秘密情報を複数のノードに分割する例を示す図である。
【符号の説明】
【0131】
10…制御部
20…記憶部
30…入力部
40…出力部
50…通信部
100…秘密分散・復元システム

【特許請求の範囲】
【請求項1】
=1+u・vで表され、互いに素である複数の自然数x(j=1,2,...,n)の組を生成するx生成手段と、
秘密情報Sを自然数xで割った剰余αを求める除算手段と、
前記自然数xと剰余αとを、素数を用いてゲーデル数化して、自然数tを生成するゲーデル数化手段と、
自然数tを含むシェアを生成して分散する分散手段と、
を備えることを特徴とする秘密情報分散装置。
【請求項2】
秘密情報Sをz個のノードを有する木構造に分解する手段を有し、
前記x生成手段は、第i(i=0,1,...,z−1)のノードグループのそれぞれについて、複数の自然数xijを生成し、
前記除算手段は、各ノードの値Sを自然数xijで割った剰余αijを求め、
前記ゲーデル数化手段は、各ノードについて、前記自然数xijと剰余αijとを、素数を用いてゲーデル数化して、自然数tijを生成し、
前記分散手段は、各ノードについて、自然数tijを含むシェアを生成して分散する、
ことを特徴とする請求項1に記載の秘密情報分散装置。
【請求項3】
前記ゲーデル数化手段は、前記自然数xと剰余αとを、既知の変換式によりzj1とzj2とに変換し、さらに、tj=zj1・pzj2に代入することにより、自然数tを求める、なお、zj1とpは互いに素、pは素数である、
ことを特徴とする請求項1又は2に記載の秘密情報分散装置。
【請求項4】
=vとしたときに、ペル方程式x−d・y=1を満たす自然数dを求める手段と、
求めた自然数dを、正当権限を有する者に配布する手段と、
をさらに備えることを特徴とする請求項1乃至3のいずれか1項に記載の秘密情報分散装置。
【請求項5】
=vとしたときに、ペル方程式x−d・y=1を満たす自然数dを求める手段をさらに備え、
前記ゲーデル数化手段は、前記自然数xと剰余αとを、既知の変換式によりzj1とzj2とに変換し、さらに、tj=zj1・pzj2・pdjに代入することにより、自然数tを求める、なお、zj1とpとpは互いに素、p、pは素数である、
ことを特徴とする請求項1乃至3のいずれか1項に記載の秘密情報分散装置。
【請求項6】
請求項1乃至5のいずれか1項に記載の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
前記記憶手段に記憶されているシェアに含まれている自然数tjを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、
再生された前記自然数xと前記剰余αとに基づいて、秘密情報Sを復元する復元手段と、
を備えることを特徴とする秘密情報復元装置。
【請求項7】
請求項1乃至5のいずれか1項に記載の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
記憶手段に記憶されているシェアをノードグループの番号iで分類する分類手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、を備え、
復元手段は、ノードグループ毎に、再生された前記自然数xと剰余αとの連立合同式を解くことにより各ノードSの値を復元する、
ことを特徴とする秘密情報復元装置。
【請求項8】
請求項3に記載の秘密情報分散装置により、生成されたシェアを記憶する記憶手段と、
外部より、自然数dを受信する受信手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αとを再生する再生手段と、を備え、
復元手段は、再生された前記自然数xと剰余αと、受信したdとを用いて、各シェアの改竄の有無を検証し、改竄が無いと判別したシェアに基づいて、秘密情報Sを復元する、
ことを特徴とする秘密情報復元装置。
【請求項9】
請求項5に記載の秘密情報分散装置により、生成されたシェアを記憶する手段と、
各シェアに含まれている自然数tを素因数分解し、分解した素因数に基づいて、前記自然数xと剰余αと自然数dを再生する再生手段と、を備え、
復元手段は、再生された前記自然数xと剰余αと自然数dとを用いて各シェアの改竄の有無を検証し、改竄が無いと判別したシェアを用いて秘密情報Sを復元する、
ことを特徴とする秘密情報復元装置。
【請求項10】
コンピュータを、
=1+u・vで表され、互いに素である複数の自然数x(j=1,2,...,n)の組を生成するx生成手段、
秘密情報Sを自然数xで割った剰余αを求める除算手段、
前記自然数xと剰余αとを、素数を用いてゲーデル数化して、自然数tを生成するゲーデル数化手段、
自然数tを含むシェアを生成して分散する分散手段、
として機能させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−118968(P2010−118968A)
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【出願番号】特願2008−291583(P2008−291583)
【出願日】平成20年11月13日(2008.11.13)
【出願人】(596053079)
【Fターム(参考)】