(57)【特許請求の範囲】
【請求項１】
秘密情報分散共有化装置に秘密情報Ｓと、２以上の整数の配布数ｎと、再構成に必要な最低数である２以上ｎ以下の整数のしきい値ｋとを入力し、
秘密情報分散共有化装置は、
配布数ｎとしきい値ｋとにより、 nＣn-k+1 を演算し、その結果を共有要素情報数Ｍとして求め、
数字、文字、記号など（以下数字で代表して示す）の０と１を用い、
左から０をｋ−１個、１をｎ−ｋ＋１個並べ、これを初期配列とするとともに配布行列の１行目とし、
前記初期配列の右からｎ−１個について、１個右循環シフトするごとにその時点での配列を前記配布行列に１行ずつ付加して、合計ｎ−２回右循環シフトし、
更に、初期配列を１個右循環シフトするごとにその時点での配列をその時点での配布行列に１行ずつ付加し、これをｋ−１回繰り返すとともに、
前記初期配列を１個右循環シフトする各回ごとに、
ａ回目には、その時点での配列を右からｎ−（ａ＋１）個について右循環シフトし、１個右循環シフトするごとにその時点での配列をその時点での配布行列に１行ずつ付加して、合計ｎ−（ａ＋２）回右循環シフトし、
最後に初期配列をｋ個右循環シフトしてその時点での配列をその時点での配布行列に付加して、その並び方が異なる全てのＭ行よりなる配布行列を作成し、
秘密情報を含む第１乃至第Ｍ番の共有要素情報を作成し、
上記配布行列の各列をｎ個の保存装置にそれぞれ割当て、各保存装置に、その割当てられた列中の数字１の全てがそれぞれ属する第ｍ行（ｍ＝１，２，…，Ｍ）に対し、第ｍ番の共有要素情報を配布情報として格納保存し、
ｋ個以上の保存装置からその配布情報をそれぞれ取り出し、
これらｋ個以上の配布情報を秘密情報再構成装置に入力し、
秘密情報再構成装置はこれらｋ個以上の配布情報から互いに異なる第ｍ番共有要素情報の全てを有意要素情報として取り出し、
これら有意要素情報から秘密情報Ｓを再構成することを特徴とする秘密情報分散共有方法。
【請求項２】
上記第１乃至第Ｍ番共有要素情報は上記秘密情報ＳをＭ個にビット分割して作成し、上記秘密情報Ｓの再構成は、上記有意要素情報をそれに与えられている番号の順にビット連結して構成することを特徴とする請求項１記載の秘密情報分散共有方法。
【請求項３】
上記第１乃至第Ｍ番共有要素情報は、第１乃至第Ｍ番中の第ｊ番を除いて各番の共有要素情報として、乱数を生成し、これらＭ−１個の乱数と秘密情報との排他的論理和演算を行い、その演算結果を第ｊ番の共有要素情報とし、
上記秘密情報の再構成は、上記有意要素情報の排他的論理和演算を行い、その結果を秘密情報とすることを特徴とする請求項１記載の秘密情報分散共有方法。
【請求項４】
秘密情報Ｓ、２以上の整数の配布数ｎ、再構成に必要な最低数である２以上ｎ以下の整数のしきい値ｋを入力する入力部と、
上記配布数ｎとしきい値ｋが入力され、数字、文字、記号など（以下数字で代表して示す）の０と１を用い、
左から０をｋ−１個、１をｎ−ｋ＋１個並べ、これを初期配列とするとともに配布行列の１行目とし、
前記初期配列の右からｎ−１個について、１個右循環シフトするごとにその時点での配列を前記配布行列に１行ずつ付加して、合計ｎ−２回右循環シフトし、
更に、初期配列を１個右循環シフトするごとにその時点での配列をその時点での配布行列に１行ずつ付加し、これをｋ−１回繰り返すとともに、
前記初期配列を１個右循環シフトする各回ごとに、
ａ回目には、その時点での配列を右からｎ−（ａ＋１）個について右循環シフトし、１個右循環シフトするごとにその時点での配列をその時点での配布行列に１行ずつ付加して、合計ｎ−（ａ＋２）回右循環シフトし、
最後に初期配列をｋ個右循環シフトしてその時点での配列をその時点での配布行列に付加して、
その並び方が異なる全てのＭ行よりなる配布行列を作成する配布行列作成部と、
上記配布行列の行数Ｍと上記秘密情報Ｓが入力され、第１乃至第Ｍ番の共有要素情報を作成する共有要素作成部と、
上記第１乃至第Ｍ番の共有要素情報が入力され、上記配布行列を参照して、配布行列の各列ごとに、その列中の数字１の全てがそれぞれ属する第ｍ行（ｍ＝１，２，…，Ｍ）に対し、第ｍ番の共有要素情報よりなる配布情報を作成する配布情報作成部と、
これらｎ個の配布情報が入力され、ｎ個の保存装置に各１個づつ格納保存させる配布部とを具備する秘密情報分散共有装置。
【請求項５】
上記共有要素作成部は上記秘密情報Ｓを、ビット分割して第１乃至第Ｍ番の共有要素情報を作成するものであることを特徴とする請求項４記載の秘密情報分散共有装置。
【請求項６】
上記共有要素作成部は、第１乃至第Ｍ番の共有要素情報のひとつ第ｊ番を除いて各番が共有要素情報としてそれぞれ乱数を生成する乱数生成部と、上記Ｍ−１個の乱数と上記秘密情報Ｓとの排他的論理和を演算して第ｊ番の共有要素情報とする演算部とを備えることを特徴とする請求項４記載の秘密情報分散共有装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はパスワード、共通鍵暗号の共通鍵、公開鍵暗号の秘密鍵などの秘密情報を複数の箇所に分散共有し、これらのうち、いくつか以上により原秘密情報を再構成可能とする（ｋ，ｎ）しきい値秘密情報分散共有方法、その装置及びプログラムに関する。
【０００２】
【従来の技術】
ネットワーク上で各種情報のセキュリティ（安全性）を保つために、暗号技術が用いられる。この際、ユーザ（利用者）の認証に用いるパスワード、共通鍵暗号に用いる共通鍵、公開鍵暗号に用いる秘密鍵といった秘密情報を保管する場合、秘密情報の紛失や破壊のおそれと、秘密情報の盗難のおそれがある。紛失や破壊に対しては、秘密情報のコピーを複数作ることにより対処できるが、コピーが増えると盗難のおそれが増加する。
これらの問題の解決手段として、秘密分散法がある。その中の一つに（ｋ，ｎ）しきい値秘密分散法がある。これは、秘密情報Ｓを定数項とする（ｋ−１）次の多項式ｆ（ｘ）を、
ｆ（ｘ）＝Ｓ＋ａ１ｘ＋ａ２ｘ２＋…ａｋ−１ｘｋ−１  mod p（ｐ：素数）とし、秘密情報Ｓを分配する秘密分配者は、分散された秘密情報（分散情報）を保存する各秘密分割保持者ｉ（ｉ＝１，２，…，ｎ）に分散情報ｗｉ＝ｆ（ｉ）を配るものである。
【０００３】
この（ｋ，ｎ）しきい値秘密分散法は、任意のｋ（ｋ≦ｎ）個の分散された秘密情報（分散情報ｗｉ）がそろえば、ｆ（ｘ）に関する連立方程式を解くことによって秘密情報Ｓを復元できる。しかし、任意のｋ−１個までの秘密情報がそろってもｆ（ｘ）に関する連立方程式を解くことができず秘密情報Ｓは復元できない。したがって、ｋ−１個までの秘密情報が他人に知られても秘密情報Ｓが漏れず、ｎ−ｋ個まで分散情報を失っても秘密情報Ｓを復元できるという特徴を持つ。（ｋ，ｎ）しきい値秘密分散法について、詳しくは、A.Shamir,“How to Share a Secret”, Commun. of ACM, Vol.22, No.11, pp.612-613, 1979に述べられている。
【０００４】
【発明が解決しようとする課題】
しかし、従来の（ｋ，ｎ）しきい値秘密分散法を用いて、情報の暗号化、復号化を行うには、以下の問題があった。（１）素数ｐを準備する必要がある。一般に大きな素数を見つける計算は、計算量が大きく時間と費用がかかる。（２）秘密情報Ｓを分割する際にも、その分割情報から再構成する際にも、算術演算が必要である。
この発明は、秘密情報を分散させるために算術演算をほとんど用いず、主としてデータの分割・結合のみで（ｋ，ｎ）しきい値秘密分散共有方法、その装置及びプログラムを実現することを目的とする。
【０００５】
【課題を解決するための手段】
この発明によれば、２以上の整数の配布数ｎと、再構成に必要な最低数である２以上ｎ以下の整数のしきい値ｋとから、 nＣn-k+1 ＝Ｍ（ｎ個のものからｎ−ｋ＋１個の組み合わせを作る数）を求め、秘密情報Ｓを含むＭ個の第１乃至第Ｍ番の共有要素情報を作り、また文字、数字、記号、図形など（以下数字で代表する）０と１の一方の数字０をｋ−１個含み、他方の数字１をｎ−ｋ＋１個含むｎ個の数字を１行とし、その数字の並び方が異なる全てのＭ行よりなる配布行列を作り、そのＭ×ｎ配布行列の各列ごとに、その数字１が属する全ての第ｍ行（ｍ＝１，２，…，Ｍ）と対応した第ｍ番の共有要素情報からなる配布情報をそれぞれ構成し、これらｎ個の配布情報をｎ個の保存装置に各１個づつ分配保存させる。
【０００６】
秘密情報を再構成する際は、ｋ個以上の保存装置から、（Ｍ−n-1Ｃk）の共有要素情報よりなる配布情報を集め、これら配布情報をそれぞれ構成する共有要素情報中の互いに異なるものの全てを各１個選出し、これら選出したＭ個の共有要素情報から秘密鍵を再構成する。
【０００７】
【発明の実施の形態】
以下この発明の実施形態を実施例により説明する。
実施例１
図１にこの発明の実施例１における秘密情報分散共有装置１０の機能構成例を示す。
この装置１０は、入力部１１、記憶部１２、配布行列作成部１３、共有要素作成部１４、配布情報作成部１５、配布部１６、及び制御部１７から構成される。
この秘密情報分散共有装置１０の処理手順の例を図２に示す。
【０００８】
秘密情報Ｓ、２以上の整数の配布数ｎ、再構成に必要な最低数である２以上の整数のしきい値ｋを入力部１１より入力すると、これらＳ，ｎ，ｋは記憶部１２に一時記憶される（Ｓ１）。
ｎとｋを配布行列作成部１３に入力して、配布行列作成部１３でｎ個のものからｎ−ｋ＋１個の組み合せの数Ｍ＝ nＣn-k+1を計算して、共有要素情報の数Ｍを求める（Ｓ２）。また文字、数字、記号、図形などの二つ（以下数字で代表して記す）０と１の一方の数字０のｋ−１個と他方の数字１のｎ−ｋ＋１個を１行に並べた時の、互いに異なる並べ方を行にもつＭ×ｎ行列を配布行列ＤＭとして作成し、その配布行列ＤＭを例えば記憶部１２の配布行列領域１２ａに保管する（Ｓ３）。
【０００９】
いまｎ＝５、ｋ＝３の場合の配布行列ＤＭの例を図３に示す。このような行列は例えば１行目に数字０をｋ−１＝２個並べ、次に数字１をｎ−ｋ＋１個並べて１行目の配列００１１１とし、次にこの１行目の配列の２番目からの４つ０１１１について右循環シフトを１つ行ったものを２行目配列０１０１１、２つ行ったものを３行目配列、３（＝ｋ）つ行ったものを４行目配列とし、その後、１行目配列を右循環シフトを１つ行ったもの１００１１を５行目配列とし、この５行目配列の３番目からの３つ０１１について右循環シフトを１つ行ったものを６行目配列１０１０１、２（＝ｋ−１）つ行ったものを７行目配列とし、その後、１行目配列を右循環シフトを２つ行ったもの１１００１を８行目配列とし、この８行目配列の４（＝ｎ−１）番目から２つ０１について右循環シフトを１（＝ｋ−２）つ行ったものを９行目配列とし、次に１行目配列を３（＝ｋ）つ右循環シフトしたものを１０行目配列とする。このようにして得られた全ての行配列の数が共有要素情報数Ｍであり、この配布行列ＤＭを作ることによりnＣn-k+1を計算しなくてもＭは自動的に求まる。
【００１０】
次に秘密情報Ｓと共有要素情報数Ｍを共有要素作成部１４に入力してＳを含む第１乃至第Ｍ番の共有要素情報Ｊｅ１，Ｊｅ２，…，ＪｅＭを作成する（Ｓ４）。この場合秘密情報Ｓは共有要素情報Ｊｅ１，…，ＪｅＭ内に全体として含まれていればよく、共有要素情報Ｊｅ１，…，ＪｅＭの一部の情報にのみＳが含まれていてもよい。この実施例１においては１，０の配列で表示された秘密情報Ｓを、例えば図４に示すように上位ビットからＭ個に分割し、分割された秘密情報ｓ１，ｓ２，…，ｓＭを上位ビット側から順次第１，第２，…，第Ｍ番共有要素情報Ｊｅ１，Ｊｅ２，…，ＪｅＭとする。分割秘密情報ｓ１，ｓ２，…，ｓＭにはそれぞれ、その順番を区別する番号情報が図に示していないが付けられて、Ｊｅ１，…，ＪｅＭとされる。なおこのビット分割は等ビット数分割でなくてもよい。
【００１１】
次に配布情報作成部１５に共有要素情報Ｊｅ１，…，ＪｅＭを入力し、記憶部１２に保存している配布行列ＤＭを参照してｎ個の配布情報ＤＳ１，…，ＤＳｎを作成する（Ｓ５）。つまり配布行列ＤＭの各列について、その列中の数字１が属する行の番号ｊの全てに対し、これと対応した第ｊ番の共有要素情報Ｊｅｊを取り出して（Ｍ−n-1Ｃk）個の共有要素情報からなる１つの配布情報を作成する。例えば図３に示す配布行列の場合、２列目についてみれば数字１は行番号（ｊ）２，３，４，８，９，１０に属している、よって第２，第３，第４，第８，第９，第１０番の共有要素情報Ｊｅ２（＝ｓ２），Ｊｅ３（＝ｓ３），Ｊｅ４（＝ｓ４），Ｊｅ８（＝ｓ８），Ｊｅ９（＝ｓ９），Ｊｅ１０（＝ｓ１０）が配布情報として作成される。図３に示した配布行列ＤＭの場合、１…５列に基づき、それぞれ図５に示す配布情報ＤＳ１，…，ＤＳ５が作成される。各配布情報ＤＳはそれぞれ（Ｍ−n-1Ｃk）個の共有要素情報、図５に示した例では各６個の共有要素情報から構成される。
【００１２】
配布部１６はこれらｎ個の配布情報ＤＳ１，…，ＤＳｎを、ｎ人の保管者の保存装置２０−１，…，２０−ｎにそれぞれ各１個づつ配布保存させる（Ｓ６）。各保存装置２０−ｉ（ｉ＝１，…，ｎ）は配布された配布情報ＤＳｉを保存処理部２１により保存部（記憶部）２２に格納保存する。５人の保管者ｘ，ｙ，ｚ，ｗ，ｖに図５に示した配布情報ＤＳ１，…，ＤＳ５をそれぞれ配布し、その保管装置２０−１，…，２０−５にＤＳ１，…，ＤＳ５が保存されることになる。なお、配布情報ＤＳｉの配布は暗号化して通信手段により送信する、あるいは可撓性磁気記録媒体やＩＣカードなどに記録して保管者へ渡すなど各種の手段により行うことが、その手段に応じて配布部１６、保存処理部２１の機能構成が異なるものとなる。また秘密情報分散共有装置１０は各部を順次動作させて装置１０としての機能を行うためのものである。
【００１３】
次に実施例１における秘密情報再構成について述べる。図６にこの場合の秘密情報再構成装置３０の機能構成例を示す。秘密情報再構成装置３０は入力部３１、記憶部３２、有意要素選出部３３、再構成部３４、出力部３５、制御部３６を備える。
この秘密情報再構成装置３０における処理手順の例を図７に示す。
ｎ人の保管者の保存装置２０−１，…，２０−ｎ中の任意のｋ（２＜ｋ＜ｎ）個以上からその保存している配布情報ＤＳを取得して入力部３１に入力し、記憶部３２に一時記憶する（Ｓ１）。そのｋ個以上の保存装置２０−ｉのそれぞれはその保存部２２から取出部２３により配布情報ＤＳｉを取出し、その配布情報ＤＳｉを入力部３１に入力する。この入力部３１と取出部２３は、配布情報ＤＳｉの配布の際の配布部１６と保存処理部２１と対応した機能をそれぞれ備える。いまｋ個の配布情報ＤＳ−１，…，ＤＳ−ｋが入力されたとする。
【００１４】
有意要素選出部３３は入力されたｋ個以上の配布情報ＤＳ−１，…，ＤＳ−ｋから、各配布情報を構成する（Ｍ−nＣn-k+1）個の共有要素情報中の互いに異なるものを全て、有意要素情報として選出する（Ｓ２）。例えば図５に示した例において、保管者ｘ，ｙ，ｚの保存装置からの配布情報ＤＳ１，ＤＳ２，ＤＳ３が入力部３１に入力されたとすると、これら配布情報ＤＳ１，ＤＳ２，ＤＳ３が構成する各１０−４＝６個の共有要素情報の全体、つまり３×６＝１８個の共有要素情報中で互いに異なるものｓ１（Ｊｅ１），ｓ２（Ｊｅ２），ｓ３（Ｊｅ３），ｓ４（Ｊｅ４），ｓ５（Ｊｅ５），ｓ６（Ｊｅ６），ｓ７（Ｊｅ７），ｓ８（Ｊｅ８），ｓ９（Ｊｅ９），ｓ１０（Ｊｅ１０）を有意要素情報として選出する。例えば共有要素情報ｓ３（Ｊｅ３）は２個あるが、その１個のみを、また共有要素情報ｓ１０（Ｊｅ１０）は３個あるが１個のみを選出し、その他も同様に、重複した選出は行なわない。このような選出により、秘密情報分散共有装置１０（図１）中の共有要素作成部１４で作成されたＭ個の共有要素情報Ｊｅ１，…，ＪｅＭが得られる。
【００１５】
再構成部３４はこれら選出されたＭ個の有意要素情報を用いて秘密情報Ｓを再構成する（Ｓ３）。この実施例１では第１乃至第Ｍ番の共有要素情報Ｊｅ１，…，ＪｅＭは秘密情報をビット分割して作成したものであるから、共有要素情報をその番号順にビット連結ｓ１‖ｓ２‖…‖ｓＭすれば秘密情報Ｓが再構成される。
このようにして再構成された秘密情報Ｓは出力部３５から必要に応じて出力される（Ｓ４）。なお制御部３６は各部を順次動作させ、装置３０の全体としての機能を行わせるものである。
【００１６】
この実施例１によれば大きな素数を見つける必要がなく、また一切の算術演算を用いず、データの分割、結合でのみ（ｋ，ｎ）しきい値秘密分散を実現することができる。
実施例２
以下にこの発明の実施例２を説明するが、実施例１と異なる部分を主として説明する。
実施例２では秘密情報分散共有装置１０内の共有要素作成部１４における第１乃至第Ｍ番の共有要素情報Ｊｅ１，…，ＪｅＭの作成方法が実施例１と異なる。この共有要素作成部１４は例えば図８に示すように、乱数生成部１４１に共有要素情報数Ｍと秘密情報Ｓのビット数ｐが入力され、ビット数ｐの（Ｍ−１）個の乱数Ｒ１，…，ＲＭ−１が生成され、これら乱数と秘密情報Ｓが排他的論理和演算部１４２に入力されて、これらのビットごとの排他的論理和演算が行われる。この演算結果ＲＭ
ＲＭ＝Ｒ１（＋）Ｒ２（＋）……（＋）ＲＭ−１（＋）Ｓ
ここでＡ（＋）ＢはＡとＢのビットごとの排他的論理和演算を表わす
を第Ｍ番の共有要素情報ＪｅＭとし、乱数Ｒ１，…，ＲＭ−１をそれぞれ第１番乃至第Ｍ−１番の共有要素情報Ｊｅ１，…，ＪｅＭ−１とする。なおＲＭを第１乃至第Ｍ番の共有要素情報Ｊｅ１，…，ＪｅＭの任意の１に割当て、その残りの共有要素情報にＲ１，…，ＲＭ−１を割当ててもよい。何れの場合も、第１乃至第Ｍ番の共有要素情報Ｊｅ１，…，ＪｅＭは互いに区別できる識別子、例えば番号が付けられる。この例では秘密情報Ｓは１つの共有要素情報にのみ含まれたものとなる。つまり秘密情報Ｓは第１乃至第Ｍ番の共有要素情報中に含まれていればよい。
【００１７】
このようにして作ったＭ個の第１乃至第Ｍ番の共有要素情報Ｊｅ１，…，ＪｅＭを用いて配布情報ＤＳ１，…，ＤＳｎを作成する手法は実施例１と同様である。
次にこのようにして作った共有要素情報に基づく配布情報から秘密情報Ｓを再構成する手法を説明する。ｋ個以上の配布情報を入力して、これらから有意要素情報を選択するまでは実施例１と同様であり、有意要素情報から秘密情報Ｓを再構成する手法が実施例１と異なる。この実施例２では再構成部３４で得られたＭ個の有意要素情報のビットごとの排他的論理和演算
Ｒ１（＋）Ｒ２（＋）…（＋）Ｒ＋１（＋）ＲＭ＝Ｓ
を求める。前記例ではＲＭ＝Ｒ１（＋）Ｒ２（＋）…（＋）ＲＭ−１（＋）Ｓであるから、Ｊｅ１，…，ＪｅＭの前記排他的論理和演算結果が再構成された秘密情報Ｓとなる。この再構成法によればＲＭをＪｅ１，…，ＪｅＭの何れに割当ててもよく、またＪｅ１，…，ＪｅＭは番号付けをしなくても互いに区別できればよく、配布情報を作成する際にＪｅ１，…，ＪｅＭを配布行列の各行に適当に割付ければよい。
【００１８】
この実施例１では各保管者へ秘密情報Ｓの一部がそのまま渡されるため、秘密情報Ｓが一部であるが漏れることになる。しかし実施例２では例えば共有要素情報Ｊｅ１，…，ＪｅＭ−１は乱数であり、共有要素情報ＪｅＭも秘密情報Ｓと乱数との排他的論理和であり、各保管者は配布された配布情報から秘密情報Ｓに関する情報を得ることができなく、より安全性が高いものとなる。
実施例１及び２の何れにおいても、ｎとｋが決っている場合はＭ＝nＣn-k+1の計算及び配布行列ＤＭを予め作成保管しておき、これを利用して、配布情報を作成すればよい。この場合は秘密情報分散共有装置１０に秘密情報Ｓのみを入力すればよい。またこの場合はＣＰＵの無い環境でも実現できる。図１に示した秘密情報分散共有装置１０、図６に示した秘密情報再構成装置３０の何れも、コンピュータによりプログラムを実行させて機能させることができる。この場合、その秘密情報分散共有プログラム、あるいは分散共有秘密情報再構成プログラムをＣＤ−ＲＯＭ、可撓性磁気ディスクなどからコンピュータにインストールし、又は通信回線を介してダウンロードして実行するようにすればよい。これらプログラムは図２又は図７に示した処理手順をコンピュータに実行させるためのプログラムである。
【００１９】
【発明の効果】
以上述べたようにこの発明によれば、素数を作成したり、累乗の計算をしたりという多くの計算をすることなく、主としてデータの分割や結合で（ｋ，ｎ）秘密分散共有を実現することができる。
【図面の簡単な説明】
【図１】この発明の秘密情報分散共有装置の実施例の機能構成を示す図。
【図２】この発明の秘密情報分散共有方法の実施例中の分散情報（配布情報）を作成する処理手順の例を示す流れ図。
【図３】配布行列の例を示す図。
【図４】実施例１における秘密情報Ｓのビット分割を説明するための図。
【図５】配布情報の例を示す図。
【図６】この発明方法の実施例中の再構成処理の手順を示す流れ図。
【図７】この発明の分散共有秘密情報再構成装置の実施例の機能構成を示す図。
【図８】この発明の実施例２における共有要素作成部１４の具体例の機能構成を示す図。
【図１】
0003943388.tif 000002
【図２】
0003943388.tif 000003
【図３】
0003943388.tif 000004
【図４】
0003943388.tif 000005
【図５】
0003943388.tif 000006
【図６】
0003943388.tif 000007
【図７】
0003943388.tif 000008
【図８】
0003943388.tif 000009