(57)【要約】【課題】  本発明は、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号や署名の実現を図る。【解決手段】  ｎ個の各機関Ｐ1〜Ｐnが、（ｎ，ｎ）型の１個の部分情報ｄi（０≦i≦ｎ）を保持し、部分情報ｄiを（ｔ，ｎ）型のｔ（ｒ＋１）個の部分乱数Ｓjとし、ｒ＋１個の部分乱数Ｓjを各機関Ｐｉの識別番号ｚのｔ進表示（ｔj桁目の値k、０≦k≦ｔ−１、０≦j≦ｒ）に基づいて、各々機関Ｐ1〜Ｐnに分散し、互いに分散された部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分情報ｄj,kを得る。次に、ユーザ装置Ｕがｔ個の機関Ｔｚを選択して暗号化データＣを送信し、ｔ個の機関Ｔｚが暗号化データＣを部分情報ｄj,kに基づき演算処理して得た部分出力Ｘｚをそれぞれユーザ装置Ｕに返信し、ユーザ装置Ｕがｔ個の部分出力Ｘｚを合成して復号結果を得る。【選択図】  図１
2004246377.tif 000002
【特許請求の範囲】
【請求項１】
素因数分解問題に基づく暗号系に用いられ、ｎ個の機関に秘密鍵の部分最終情報が分散され、且つ、いずれの機関も自己の部分最終情報だけでは前記秘密鍵を算出不可能な環境にあるとき、前記ｎ個の機関のうち、任意のｔ個の機関により、前記秘密鍵を算出せずに復号結果及び署名結果を生成可能な（ｔ，ｎ）型の秘密分散システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、素因数分解問題に基づく暗号系の秘密分散システムに係り、特に、ｎ個の機関に秘密鍵を秘密分散し、その中の任意のｔ個の機関により、秘密鍵を算出せずに分散復号及び署名を実現し得る秘密分散システムに関する。
【背景技術】
【０００２】
従来、素因数分解問題に基づく暗号系として、例えばＲＳＡ暗号系を用いた秘密分散の分野では、しきい値法と呼ばれる秘密分散方式がある。ここで、しきい値法は、秘密情報をｎ個の部分情報に分散したとき、ｎ個中のｔ個の部分情報により秘密情報を完全に復元するが、ｔ−１個の部分情報では秘密情報を全く復元できないという、しきい値ｔを境にした秘密情報の復元特性をもっている（なお、１＜ｔ＜ｎ）。
【０００３】
この種の秘密分散方式としては、ＲＳＡ暗号系に、しきい値法の概念を導入し、秘密鍵を（ｔ，ｎ）型で秘密分散させる（ｔ，ｎ）型の秘密分散方式が知られている（Y. Frankel, P. Gemmell, P. D. MacKenzie and M. Yung, “Optimal-resilience proactive public-key cryptosystems”, 38th Annual Symposium on Foundations of Computer Science, pp. 384-393, 1997.（以下、文献［ＦＧＭＹ９７］という）、及びT. Okamoto, “Threshold key-recovery systems for RSA”, Security Protocols, LNCS 1361, pp. 191-200, 1997.（以下、文献［Ｏｋａ９７］という））。
【０００４】
中でも、文献［ＦＧＭＹ９７］は、ディーラー（分配者）の存在する環境において、秘密鍵ｄを算出せずに、任意ｔ個の機関で復号や署名の可能な方式を示している。すなわち、合成数Ｎの異なる素因数を知るディーラーが、素因数を知らなくても任意のｔ個の部分情報で復号や署名の可能な秘密鍵ｄを作成可能な方式である。
【０００５】
一方、ディーラーの存在しない環境において、しきい値法ではなく、全ての機関で鍵生成を行う（ｎ，ｎ）型の秘密分散方式が知られている（D. Boneh and M. Franklin, “Efficient generation of shared RSA keys”, Advances in Cryptology-CRYPTO ’97, LNCS 1294, pp. 425-439, 1997.（以下、文献［ＢＦ９７］という））。
【０００６】
文献［ＢＦ９７］の方式では、鍵生成を実行すると、秘密鍵ｄに対して（ｎ，ｎ）型の秘密分散が同時に行われる。また、保持する部分情報を用いた全ての機関からの部分出力を合成することにより、秘密鍵ｄを算出せずに暗号文を復号可能となっている。
【０００７】
詳しくは、文献［ＢＦ９７］では、以下にアルゴリズムを示すように、（２，２）型の秘密分散から（２，ｎ）型の秘密分散（ｎ≧３を効率的に構築する方式が述べられている。
【０００８】
なお、説明の簡単のため、秘密鍵ｄを知るユーザがいて、このユーザが秘密鍵ｄを（２，ｎ）型で秘密分散すると仮定する。また、機関Ｐの総数ｎに対し、部分情報の組合せを示す秘密分散多項式の個数は、ｒ＋１であるとし、ｒ＝「ｌｏｇ  ｎ」であるとする（本明細書中、「」は、その括弧内の値以上の最小の整数を示す）。
【０００９】
まず、ユーザは、（２，２）型の秘密分散をｒ＋１回実行するため、ｒ＋１個の独立多項式ｄ＝ｄ0,0＋ｄ0,1＝ｄ1,0＋ｄ1,1＝…＝ｄr,0＋ｄr,1を個別に作成する。
【００１０】
次に、総数ｎの機関における個々の機関の識別番号をｚとし（ｚ∈［０，ｎ］）、識別番号ｚの２進表示をｚ（２）＝βr βr-1 … β0とする。ユーザは、０番目〜ｎ番目の全ての機関Ｐ0〜Ｐnを対象とし、順次、ｚ番目の機関Ｐzに、ｒ＋１個の部分情報：｛ｄr,βr，ｄr-1,βr-1，…，ｄ0,β0｝を送る。これにより、全ての機関Ｐ0〜Ｐnには、識別番号ｚの２進表示に対応する部分情報の集合が配送される。
【００１１】
配送完了後、機関の番号を唯一に設定することで、任意の２個の機関Ｐｉ，Ｐｊ（ｉ≠ｊ）は、ｒ＋１個の（２，２）型の部分情報のうち、番号ｚ（２）で互いにビットβの異なる同一桁ｉの部分情報（ｄi,0，ｄi,1）から、秘密鍵ｄを復元可能となっている（ｄi,0＋ｄi,1＝ｄ）。
【００１２】
次に、上述した（２，２）型から（２，ｎ）型の秘密分散を構築する方式のように、秘密分散の型を拡張するための関連技術について述べる。  
この種の技術としては、（ｔ，ｌ）型を用いた（ｔ，ｌｍ）型の秘密分散方式がある（S. R. Blackburm, M. Burmester, Y. Desmedt and P. R. Wild, “Efficient multiplicative sharing schemes”, Advances in Cryptology-EURO-CRYPT ’96, pp. 107-118, 1996.（以下、文献［ＢＢＤＷ９６］という））。但し、文献［ＢＢＤＷ９６］の方式は、正の整数ｍに対し、次の（１）式を満たすｌに関するものである。
【数１】
2004246377.tif 000003
【００１３】
ｔ＝２  ｂ≧１  →  ｌ≧１
ｔ＝３  ｂ≧３  →  ｌ≧３
ｔ＝４  ｂ≧６  →  ｌ≧６
となり、ｔ≧４ではｔ＜ｌとなる。すなわち、ｔ≧４では、（ｔ，ｔ）型を用いた（ｔ，ｎ）型の秘密分散方式を構築不可能となっている。
【００１４】
このため、以下では、同文献［ＢＢＤＷ９６］における（３，３）型を用いた（３，３３）型の秘密分散方式を説明する。ｍ＝２，ｌ＝３，ｔ＝３とし、（２）式に示すように、ｂを算出する。
【数２】
2004246377.tif 000004
【００１５】
まず、（３，３）型の秘密分散をｂ＋１＝４回実行し、（３）式に示すように、秘密鍵ｄに対する４つの独立多項式を構築する。
【００１６】
ｄ＝ｄ0,0＋ｄ0,1＋ｄ0,2  （１回目）
＝ｄ1,0＋ｄ1,1＋ｄ1,2  （２回目）
＝ｄ2,0＋ｄ2,1＋ｄ2,2  （３回目）
＝ｄ3,0＋ｄ3,1＋ｄ3,2  （４回目）    …（３）
また、ｆ（ｘ）＝ａ0＋ａ1Ｘ  （ｍｏｄ  ３）とする。
【００１７】
ここで、同文献［ＢＢＤＷ９６］では、最終的な機関（ここでは３2個の機関）の集合をＰ´としたとき、ｆ（Ｘ）は（４）式のように記載される（pp.113の１行目、なお、式中の“ｄ”は、本明細書中では“ｍ”と表記した）。
【数３】
2004246377.tif 000005
【００１８】
しかしながら、この（４）式は、次の（５）式の誤りと推測される。
【数４】
2004246377.tif 000006
【００１９】
但し、ａ0，ａ1∈Ｆ3であり、ｆ（∞）＝ａ1とする。
【００２０】
ｆ1（ｘ）＝０  （ｍｏｄ  ３）
ｆ2（ｘ）＝１  （ｍｏｄ  ３）
ｆ3（ｘ）＝２  （ｍｏｄ  ３）
ｆ4（ｘ）＝０＋Ｘ  （ｍｏｄ  ３）
ｆ5（ｘ）＝１＋Ｘ  （ｍｏｄ  ３）
ｆ6（ｘ）＝２＋Ｘ  （ｍｏｄ  ３）
ｆ7（ｘ）＝０＋２Ｘ  （ｍｏｄ  ３）
ｆ8（ｘ）＝１＋２Ｘ  （ｍｏｄ  ３）
ｆ9（ｘ）＝２＋２Ｘ  （ｍｏｄ  ３）
各機関ｆｊは（ｄ0,fj(∞)，ｄ1,fj(0)，ｄ2,fj(1)，ｄ3,fj(2)）を持つ。具体的に各機関に保管される部分情報の集合は図１２に示す通りであり、機関の組合せと対象の部分情報は図１３に示す通りである。
【００２１】
図１２に示すように、例えば機関ｆ1，ｆ4，ｆ8（２行目）で分散復号を行う際は、Ｘ＝∞に対応する部分情報を取り出す。それぞれ（ｄ0,0，ｄ0,1，ｄ0,2）による計算を行い、秘密鍵ｄに相当する出力を算出可能となっている。
【００２２】
また、図１３中、ａ〜ｌのいずれかのアルファベット符号の付された組合せは、各機関の同一の組合せにおいて、秘密鍵ｄに相当する出力の算出ルートが３種類あることを示している（なお、図１３中の“ｄ”は単なるアルファベット符号であり、秘密鍵ｄではない）。例えば符号ｂの付された機関の組合せ（ｆ1，ｆ2，ｆ3）では、Ｘ＝０，１，２の何れでも秘密鍵ｄを回復する３個の部分情報を揃えることが可能である。
【００２３】
また一方、上述した文献［ＢＦ９７］における（ｎ，ｎ）型の秘密分散方式に対し、しきい値法の概念を導入した方式がある（Y. Frankel, P. D. MacKenzie and M. Yung, “Robust efficient distributed RSA-key generation”, Proceedings of the thirtieth annual ACM symposium on theory of computing, pp. 663-672, 1998.（以下、文献［ＦＭＹ９８］という））。
【００２４】
文献［ＦＭＹ９８］の方式では、文献［ＢＦ９７］の（ｎ，ｎ）型の秘密分散に基づく（ｔ，ｎ）型の鍵生成・共有方式が示されている。具体的には、まず（ｎ，ｎ）型の鍵生成を行い、秘密鍵ｄに対する和の多項式を生成する。次に、各機関Ｐｉは、部分情報ｄｉのディーラーとなり、Sum-to-Poly（和から複数個へ）の変換を行う。このとき、各機関Ｐｉは、全ての機関Ｐjからの部分情報ｄｊに対する共有情報を合成し、最終的に秘密鍵ｄに対する秘密分散を行って、秘密鍵ｄの（ｔ，ｎ）型の秘密共有を実現する。
【００２５】
これにより、文献［ＦＭＹ９８］の方式では、総数ｎ個のうち、任意のｔ個の機関ＰがＲＳＡ秘密鍵ｄを算出でき、鍵回復が可能となっている。  
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら以上のような秘密分散システムでは、以下のようにそれぞれ問題がある。  
文献［ＢＢＤＷ９６］の方式では、ｔ＝３におけるｎ＞３２の場合とｔ≧４の場合には（ｔ，ｌm）型の秘密分散の構築が不可であるため、（２，ｎ）型の秘密分散の構築手法が一般化されていない。
【００２７】
また一方、文献［ＦＭＹ９８］の方式では、秘密鍵ｄを算出せずに、秘密鍵ｄを用いた署名や復号を試みる時には問題を生じる。例えば、公開鍵（ｅ，Ｎ）で暗号化された暗号文Ｃ＝Ｍe  （ｍｏｄ  Ｎ）があるとする。この暗号文Ｃを任意のｔ個の機関（この集合をΛとする）で復号するとき、各機関Ｐｊは、（６）式のようなラグランジュの補間係数λj,Λを算出し、この補間係数λj,Λからそれぞれ部分出力を得る必要がある。
【数５】
2004246377.tif 000007
【００２８】
しかしながら、いずれの機関Ｐｊも合成数Ｎ（＝ｐｑ）の素因数を知らないため、巾の位数φ（Ｎ）を法としたｌ−ｊの乗法逆元が算出不可能となり、ラグランジュの補間係数λj,Λも算出不可能となる。よって、ラグランジュの補間係数λj,Λを算出時に使う部分出力が算出不可能となり、（７）式の如き、部分出力の合成により平文を復元するための分散復号が実行不可能となってしまう。
【数６】
2004246377.tif 000008
【００２９】
本発明は上記実情を考慮してなされたもので、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号や署名を実現し得る（ｔ，ｎ）型の秘密分散システムを提供することを目的とする。
【課題を解決するための手段】
【００３０】
第１の発明は、素因数分解問題に基づく暗号系に用いられ、ｎ個の機関に秘密鍵の部分最終情報が分散され、且つ、いずれの機関も自己の部分最終情報だけでは前記秘密鍵を算出不可能な環境にあるとき、前記ｎ個の機関のうち、任意のｔ個の機関により、前記秘密鍵を算出せずに復号結果及び署名結果を生成可能な（ｔ，ｎ）型の秘密分散システムである。
【００３１】
また、第２の発明は、公開鍵及び秘密鍵ｄを用いるＲＳＡ暗号系に適用され、互いにネットワークを介して接続されたｎ個の機関及びユーザ装置を備え、ｎ個の機関に前記秘密鍵ｄの部分最終情報が分散されたとき、その中の任意のｔ個の機関により、前記秘密鍵ｄを算出せずに復号結果又は署名結果を生成可能な（ｔ，ｎ）型の秘密分散システムであって、前記ｎ個の各機関としては、前記公開鍵及び前記秘密鍵ｄを生成する手段と、この秘密鍵ｄに基づいて生成された（ｎ，ｎ）型の１個の部分情報ｄi（０≦i≦ｎ）を保持する手段と、ｔを底としたｎの対数ｌｏｇtｎ以上の最小の整数をｒとしたとき、前記部分情報ｄiを（ｔ，ｎ）型のｔ（ｒ＋１）個の部分乱数とし、そのうちのｒ＋１個の部分乱数を前記各機関の識別番号のｔ進表示（ｔj桁目の値k、０≦k≦ｔ−１、０≦j≦ｒ）に基づいて、それぞれ各機関に分散する手段と、前記各機関から分散されたｎ（ｒ＋１）個の部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分最終情報ｄj,kを得る手段と、前記ユーザ装置から受けた処理対象データを前記部分最終情報ｄj,kに基づいて演算処理し、得られた部分出力を前記ユーザ装置に返信する手段とを有し、前記ユーザ装置としては、前記ｔ個の機関を選択し、この選択したｔ個の各機関に処理対象データを送信する手段と、前記ｔ個の各機関から受信した部分出力を合成して前記復号結果又は署名結果を得る手段とを備えた秘密分散システムである。
【００３２】
また、第３の発明は、第１の公開鍵（e，Ｎ）及び秘密鍵ｄと、第２の公開鍵（Ｌ2，Ｎ）とを用いるＲＳＡ暗号系（eとＬ2とは最大公約数が１であり、法Ｎは共通）に適用され、互いにネットワークを介して接続されたｎ個の機関及びユーザ装置を備え、ｎ個の機関に前記秘密鍵ｄの部分情報ｓjが分散されたとき、その中の任意のｔ個の機関により、前記秘密鍵ｄを算出せずに復号結果を生成可能な（ｔ，ｎ）型の秘密分散システムであって、前記ｎ個の各機関としては、前記ユーザ装置から受けた復号対象データＣ２（＝Ｍe  （ｍｏｄ  Ｎ））を演算処理して得られた部分出力Ｚjを前記ユーザ装置に返信する手段とを有し、前記ユーザ装置としては、前記ｎ個の機関のうちのｔ個の機関を選択し、この選択したｔ個の各機関に前記復号対象データＣ２を送信する手段と、前記ｔ個の各機関から受信した部分出力Ｚjを合成して前記復号結果Ｃ１（＝ＭＬ^2  （ｍｏｄ  Ｎ）、^はべき乗を示す記号）を得る手段と、前記復号結果Ｃ１、前記処理対象データＣ２及び下記式に基づいて、演算処理を実行し、最終復号結果Ｍを求める手段とを備えた秘密分散システムである。
【００３３】
a1＝（Ｌ2）-1  （ｍｏｄ  e）
a2＝（a1Ｌ2−１）／e
Ｍ＝Ｃ1a1（Ｃ2a2）-1  （ｍｏｄ  Ｎ）
さらに、第４の発明は、第３の発明において、前記復号対象データＣ２に代えて、署名対象データＳ２（＝Ｍ）を用い、前記復号結果Ｃ１に代えて、署名結果Ｓ１（＝ＭdＬ^2（ｍｏｄ  Ｎ）、^はべき乗を示す記号）を用い、前記最終復号結果Ｍを求める手段に代えて、前記署名結果Ｓ１（＝(Ｍd)e）、前記署名対象データＳ２（＝(Ｍd)Ｌ^2）及び下記式に基づいて、演算処理を実行し、最終署名結果Ｍｄを求める手段とを備えた秘密分散システムである。
【００３４】
a1＝（Ｌ2）-1  （ｍｏｄ  e）
a2＝（a1Ｌ2−１）／e
Ｍｄ＝Ｓ1a1（Ｓ2a2）-1  （ｍｏｄ  Ｎ）
また、第５の発明は、公開鍵及び秘密鍵ｄを用いるＲＳＡ暗号系に適用され、互いにネットワークを介して接続されたｎ個の機関及びユーザ装置を備え、ｎ個の機関に前記秘密鍵ｄの部分最終情報が分散されたとき、その中の任意のｔ個の機関により、前記秘密鍵ｄを算出せずに復号結果又は署名結果を生成可能な（ｔ，ｎ）型の秘密分散システムに使用されるコンピュータ読み取り可能な記憶媒体であって、前記ｎ個の各機関内のコンピュータに、前記公開鍵及び前記秘密鍵ｄを生成する手段と、この秘密鍵ｄに基づいて生成された（ｎ，ｎ）型の１個の部分情報ｄi（０≦i≦ｎ）を保持する手段と、ｔを底としたｎの対数ｌｏｇtｎ以上の最小の整数をｒとしたとき、前記部分情報ｄiを（ｔ，ｎ）型のｔ（ｒ＋１）個の部分乱数とし、そのうちのｒ＋１個の部分乱数を前記各機関の識別番号のｔ進表示（ｔj桁目の値k、０≦k≦ｔ−１、０≦j≦ｒ）に基づいて、それぞれ各機関に分散する手段と、前記各機関から分散されたｎ（ｒ＋１）個の部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分最終情報ｄj,kを得る手段、前記ユーザ装置から受けた処理対象データを前記部分最終情報ｄj,kに基づいて演算処理し、得られた部分出力を前記ユーザ装置に返信する手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３５】
さらに、第６の発明は、第１の公開鍵（e，Ｎ）及び秘密鍵ｄと、第２の公開鍵（Ｌ2，Ｎ）とを用いるＲＳＡ暗号系（eとＬ2とは最大公約数が１であり、法Ｎは共通）に適用され、互いにネットワークを介して接続されたｎ個の機関及びユーザ装置を備え、ｎ個の機関に前記秘密鍵ｄの部分情報ｓjが分散されたとき、その中の任意のｔ個の機関により、前記秘密鍵ｄを算出せずに復号結果を生成可能な（ｔ，ｎ）型の秘密分散システムに使用される記憶媒体であって、前記ｎ個の各機関内のコンピュータに、前記ユーザ装置から受けた復号対象データＣ２（＝Ｍe  （ｍｏｄ  Ｎ））を演算処理して得られた部分出力Ｚjを前記ユーザ装置に返信する手段、を実現させるためのプログラムを記憶し、前記ユーザ装置内のコンピュータに、前記ｎ個の機関のうちのｔ個の機関を選択し、この選択したｔ個の各機関に前記復号対象データＣ２を送信する手段、前記ｔ個の各機関から受信した部分出力Ｚjを合成して前記復号結果Ｃ１（＝ＭＬ^2  （ｍｏｄ  Ｎ）、^はべき乗を示す記号）を得る手段、前記復号結果Ｃ１、前記処理対象データＣ２及び下記式に基づいて、演算処理を実行し、最終復号結果Ｍを求める手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３６】
a1＝（Ｌ2）-1  （ｍｏｄ  e）
a2＝（a1Ｌ2−１）／e
Ｍ＝Ｃ1a1（Ｃ2a2）-1  （ｍｏｄ  Ｎ）
また、第７の発明は、第６の発明において、前記復号対象データＣ２に代えて、署名対象データＳ２（＝Ｍ）を用い、前記復号結果Ｃ１に代えて、署名結果Ｓ１（＝ＭdＬ^2（ｍｏｄ  Ｎ）、^はべき乗を示す記号）を用い、前記最終復号結果Ｍを求める手段に代えて、前記署名結果Ｓ１（＝(Ｍd)e）、前記署名対象データＳ２（＝(Ｍd)Ｌ^2）及び下記式に基づいて、演算処理を実行し、最終署名結果Ｍｄを求める手段とを実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００３７】
a1＝（Ｌ2）-1  （ｍｏｄ  e）
a2＝（a1Ｌ2−１）／e
Ｍｄ＝Ｓ1a1（Ｓ2a2）-1  （ｍｏｄ  Ｎ）
（作用）
従って、第１，２，５の発明は以上のような手段を講じたことにより、ｎ個の各機関が、公開鍵及び秘密鍵ｄを生成し、この秘密鍵ｄに基づいて生成された（ｎ，ｎ）型の１個の部分情報ｄi（０≦i≦ｎ）を保持し、ｔを底としたｎの対数ｌｏｇtｎ以上の最小の整数をｒとしたとき、この部分情報ｄiを（ｔ，ｎ）型のｔ（ｒ＋１）個の部分乱数とし、そのうちのｒ＋１個の部分乱数を各機関の識別番号のｔ進表示（ｔj桁目の値k、０≦k≦ｔ−１、０≦j≦ｒ）に基づいて、それぞれ各機関に分散し、各機関から分散されたｎ（ｒ＋１）個の部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分最終情報ｄj,kを得る。
【００３８】
続いて、ユーザ装置が、ｔ個の機関を選択し、この選択したｔ個の各機関に処理対象データを送信し、ｔ個の機関が、ユーザ装置から受けた処理対象データを部分最終情報ｄj,kに基づいて演算処理し、得られた部分出力をユーザ装置に返信し、ユーザ装置が、ｔ個の各機関から受信した部分出力を合成して復号結果又は署名結果を得る。
【００３９】
このように、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号や署名を実現することができ、また、ラグランジュ補間法を用いず、高い処理効率を実現することができる。
【００４０】
また、第３，６の発明は、第１の公開鍵（e，Ｎ）及び秘密鍵ｄと、第２の公開鍵（Ｌ2，Ｎ）とを用いるＲＳＡ暗号系（eとＬ2とは最大公約数が１であり、法Ｎは共通）において、ｎ個の機関に秘密鍵ｄの部分情報ｓjが分散されたとき、ユーザ装置が、ｎ個の機関のうちのｔ個の機関を選択し、この選択したｔ個の各機関に復号対象データＣ２を送信し、ｔ個の各機関が、ユーザ装置から受けた復号対象データＣ２（＝Ｍe  （ｍｏｄ  Ｎ））を演算処理して得られた部分出力Ｚjをユーザ装置に返信し、ユーザ装置が、ｔ個の各機関から受信した部分出力Ｚjを合成して復号結果Ｃ１（＝ＭＬ^2  （ｍｏｄ  Ｎ））を得ると共に、復号結果Ｃ１、処理対象データＣ２及び所定の式（a1＝（Ｌ2）-1  （ｍｏｄ  e）、a2＝（a1Ｌ2−１）／e、Ｍ＝Ｃ1a1（Ｃ2a2）-1  （ｍｏｄ  Ｎ））に基づいて、演算処理を実行し、最終復号結果Ｍを求める。
【００４１】
これにより、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号を実現することができ、また、所定条件の公開鍵を用いたラグランジュ補間法に基づき、高い確実性を実現することができる。
【００４２】
さらに、第４，７の発明は、前記復号対象データＣ２に代えて、署名対象データＳ２（＝Ｍ）を用い、復号結果Ｃ１に代えて、署名結果Ｓ１（＝ＭdＬ^2（ｍｏｄ  Ｎ）、^はべき乗を示す記号）を用い、最終復号結果Ｍを求める手段に代えて、署名結果Ｓ１（＝(Ｍd)e）、署名対象データＳ２（＝(Ｍd)Ｌ^2）及び所定の式（a1＝（Ｌ2）-1  （ｍｏｄ  e）、a2＝（a1Ｌ2−１）／e、Ｍｄ＝Ｓ1a1（Ｓ2a2）-1  （ｍｏｄ  Ｎ））に基づいて、演算処理を実行し、最終署名結果Ｍｄを求める。
【００４３】
これにより、第３，６の発明に対応する作用と同様の作用を署名処理において実現することができる。
【発明の効果】
【００４４】
以上説明したように本発明によれば、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号や署名を実現できる（ｔ，ｎ）型の秘密分散システムを提供できる。
【発明を実施するための最良の形態】
【００４５】
次に、本発明の各実施形態について図面を参照して説明する。なお、第１の実施形態は、ラグランジュ補間法を用いず、高い処理効率を実現したものであり、第２の実施形態は、所定条件の公開鍵を用いたラグランジュ補間法に基づき、高い確実性を実現したものであって、両者ともノンディーラーモデルのしきい値法による分散復号及び署名の可能な（ｔ，ｎ）型の秘密分散システムとなっている。以下、順次説明する。
【００４６】
（第１の実施形態）
本実施形態は、文献［ＢＦ９７］における（２，２）型から（２，ｎ）型の秘密分散を構築する方式を一般化した（ｔ，ｎ）型の秘密分散システムである。  
具体的には、文献［ＢＦ９７］の方式を用いて各機関Ｐiが秘密鍵ｄの（ｎ，ｎ）型の部分情報ｄiを保持すると、全ての機関Ｐ1〜Ｐnがそれぞれ部分情報ｄiを（ｔ，ｎ）型の部分乱数情報として分配し、各機関Ｐ1〜Ｐnが部分乱数情報を桁毎にまとめて複数の部分情報ｄj,kを得る（ｔ，ｎ）型の秘密分散システムとなっている。
【００４７】
図１は本発明の第１の実施形態に係る秘密分散システムの構成を示す模式図である。この秘密分散システムは、各々計算機システムとしてのｎ個の機関Ｐ1〜Ｐn及びユーザ装置Ｕが互いにネットワークを介して接続されている。
【００４８】
なお、各機関Ｐ1〜Ｐnは、互いに同一構成を有するので、ここでは任意の機関Ｐi（但し、1≦i≦n）を代表例として説明する。
【００４９】
機関Ｐiは、公開鍵（e，Ｎ）及び秘密鍵ｄを生成する機能と、［ＢＦ９７］の方式に基づいて、秘密鍵ｄを（２，ｎ）型の部分情報とし、そのうちのｒ＋１個の部分情報をそれぞれ各機関Ｐ1〜Ｐnに分散する機能と、分散されたｒ＋１個の部分情報に基づいて、（ｎ，ｎ）型の１個の部分情報ｄiを保持する機能と、この部分情報ｄiを（ｔ，ｎ）型の部分乱数とし、そのうちのｒ＋１個の部分乱数を機関の識別番号のｔ進表示に基づいて、それぞれ各機関Ｐ1〜Ｐnに分散する機能と、各機関Ｐ1〜Ｐnから分散されたｎ（ｒ＋１）個の部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分情報ｄj,kを得る機能と、ユーザ装置Ｕから受けた暗号文Ｃを復号処理して得られた部分出力Ｘzをユーザ装置Ｕに返信する機能とをもっている。
【００５０】
また、各機関Ｐiは、任意のｔ個が選択された場合、図示しないが、“Ｐ”に代えて“Ｔ”の表記を用いる。例えば“機関Ｐz”は選択されているとき、“機関Ｔz”と表記される。
【００５１】
ユーザ装置Ｕは、ｎ個の機関Ｐ1〜Ｐnのうちのｔ個の機関Ｔzを選択する機能と、公開鍵（e，Ｎ）で暗号化された暗号文Ｃをｔ個の各機関Ｔzに送信する機能と、各機関Ｔzから受信した部分出力Ｘzを合成して平文Ｍを得る機能とをもっている。
【００５２】
次に、各機関Ｐ1〜Ｐn及びユーザ装置Ｕの具体的なハードウェア構成について述べる。具体的には、機関Ｐi及びユーザ装置Ｕは、ハードウェア的には図２に示すように、ＣＰＵ１１、コントローラ１２、メモリ１３、通信デバイス１４、ディスプレイ１５、キーボード１６及びプリンタ１７が互いにバス１８を介して接続された計算機システムである。
【００５３】
これらの構成のうち、メモリ１３は、いわゆる主記憶（ＲＡＭ等）と二次記憶装置（ハードディスク等）の双方を含むものである。この主記憶上に読み込まれたプログラムと、このプログラムに従うＣＰＵ１１の制御とにより、機関Ｐiが行うべき機能が実現される。すなわち、各機関Ｐ1〜Ｐn及びユーザ装置Ｕは、ソフトウェア的には、上述したそれぞれの機能を行うように、互いに異なる構成を有するものである。これらハードウェア及びソフトウェアの結合からなるそれぞれの機能の詳細な内容は、以下の動作説明において詳細に述べる。
【００５４】
但し、各機関Ｐ1〜Ｐnは、ユーザ装置Ｕから受信したデータを演算処理し、結果をユーザ装置Ｕに返信するためのハードウェアがあればよいので、例えばディスプレイ１５、キーボード１６及びプリンタ１７などを適宜、省略してもよい。同様に、ユーザ装置Ｕにおいても、例えばプリンタ１７を省略してもよい。
【００５５】
次に、以上のように構成された秘密分散システムの動作を説明する。  
（（ｔ，ｎ）型の秘密分散）
各機関Ｐ1〜Ｐnは、公開鍵（e，Ｎ）及び秘密鍵ｄを生成すると、文献［ＢＦ９７］の方式に基づいて、秘密鍵ｄを（２，ｎ）型の部分情報とし、そのうちのｒ＋１個の部分情報をそれぞれ各機関Ｐ1〜Ｐnに分散する。
【００５６】
各機関Ｐ1〜Ｐnは、［ＢＦ９７］の方式によるｒ＋１個の部分情報に基づき、合成数Ｎにおける互いに異なる２つの素因数ｐ，ｑと、秘密鍵ｄとを（ｎ，ｎ）型で秘密共有している。
【００５７】
すなわち、各機関Ｐi（１≦ｉ≦ｎ）は、図３に示すように、次の（８）式を満たす部分情報ｄiをそれぞれ保管している（ＳＴ１）。
【００５８】
ｄ＝ｄ1＋ｄ2＋…＋ｄn    …（８）
次に、全ての各機関Ｐiは、自己の部分情報ｄiのディーラーとして機能する。すなわち、全ての各機関Ｐiは、（９）式に示すように、自己の部分情報ｄiを示す（ｔ，ｎ）型の部分乱数情報Ｓj,ｌ（０≦j≦ｒ，０≦ｌ≦ｔ−２）を生成する（ＳＴ２）。但し、ｒ＝「ｌｏｇt ｎ」である。
【数７】
2004246377.tif 000009
【００５９】
なお、この部分乱数情報Ｓj,ｌの生成処理は、全ての各機関Ｐiが、それぞれ次に示す如き、自己の部分情報ｄiを示すｒ＋１個の独立多項式を作成することと等価である。
【００６０】
ｄi＝Ｓ0,0＋Ｓ0,1＋…＋Ｓ0,t-2＋Ｓ0,t-1
＝Ｓ1,0＋Ｓ1,1＋…＋Ｓ1,t-2＋Ｓ1,t-1
＝               …
＝Ｓj,0＋Ｓj,1＋…＋Ｓj,t-2＋Ｓj,t-1
＝               …
＝Ｓr,0＋Ｓr,1＋…＋Ｓr,t-2＋Ｓr,t-1
次に、全ての各機関Ｐiは、識別番号をｚとしたとき、以下のステップＳＴ３〜ＳＴ４に示すように、各機関Ｐz（１≦ｚ≦ｎ）と互いに部分乱数情報Ｓj,lを分散しあう。  
すなわち、機関Ｐｚの識別番号ｚを（１０）式に示すように、ｔ進数に変換する（ＳＴ３）。  
ｚ＝βr,zｔr＋βr-1,zｔr-1＋…+βj,zｔj＋…＋β0,z      …（１０）
簡単のため、（１０）式を（１１）式のように表記する。  
ｚ（ｔ）＝βr,z  βr-1,z  …  βj,z  …  β0,z      …（１１）
但し、ｔ進値βr,z∈｛0，…，t-1｝
また、各機関Ｐiは、ｚ（ｔ）における各桁ｔj毎のｔ進値βに基づいて、次に示すｒ＋１個の部分乱数情報を含む集合Ｓを機関Ｐｚに送信する（ＳＴ４）。
【数８】
2004246377.tif 000010
【００６１】
各機関Ｐzは、自己を含む全ての各機関Ｐiから得た集合Ｓに基づいて、次の（１２）式に示すように、各桁j毎の部分乱数情報Ｓj,lの総和をとって部分情報ｄj,kを算出する（ＳＴ５）。但し、ｋ∈｛βr,z  βr-1,z  …  β0,z｝，０≦ｊ≦ｒである。
【数９】
2004246377.tif 000011
【００６２】
各機関Ｐzは、桁jの数に対応するｒ＋１個の部分情報ｄj,kを保管する（ＳＴ６）。なお、部分情報ｄj,kは、秘密鍵ｄの部分集合である。
【００６３】
秘密鍵ｄと部分秘密鍵ｄj,kとの関係は、以下の（１３）式に示す通りである。  
ｄ＝ｄ0,0＋ｄ0,1＋…＋ｄ0,t-1  （ｔ0桁目）
＝ｄ1,0＋ｄ1,1＋…＋ｄ1,t-1  （ｔ1桁目）
＝               …            （ …    ）
＝ｄr,0＋ｄr,1＋…＋ｄr,t-1  （ｔr桁目）    …（１３）
例えば、（３，２７）型の秘密分散における機関ｚ＝２０の保管情報は、以下の通りである。
【００６４】
ｒ＝「ｌｏｇ3  ２７」＝３
２０＝０×３3＋２×３2＋０×３1＋２×３0
２０（３）＝０２０２  （３進表示）
よって、機関Ｐ20は、次の（１４）式に示す全ての部分情報のうち、識別番号ｚの３進表示(0202)に対応する部分情報（ｄ3,0，ｄ2,2，ｄ1,0，ｄ0,2）を保管する。
【００６５】
ｄ＝ｄ3,0＋ｄ3,1＋ｄ3,2  （３3桁目）
＝ｄ2,0＋ｄ2,1＋ｄ2,2  （３2桁目）
＝ｄ1,0＋ｄ1,1＋ｄ1,2  （３1桁目）
＝ｄ0,0＋ｄ0,1＋ｄ0,2  （３0桁目）      （１４）
（分散復号化）
ｎ個の機関Ｐ1〜Ｐnのうち、任意のｔ個の機関Ｔz（この集合をΛとする）は、ユーザ装置Ｕからの復号依頼により、ユーザ装置Ｕの公開鍵（e，Ｎ）で暗号化されたデータＣ＝Ｍe（ｍｏｄ  Ｎ）を図４のステップＳＴ１１〜ＳＴ１６に示すように分散復号化する。
【００６６】
すなわち、ユーザ装置Ｕは、（１５）式に示すように、ｔ個の機関Ｔzの識別番号ｚをそれぞれｔ進表示に変換する（ＳＴ１１）。
【００６７】
ｚ（ｔ）＝βr,z  βr-1,z  …  β0,z      …（１５）
続いて、ユーザ装置Ｕは、ｔ個の機関Ｔａ，Ｔｂ∈Λ（ａ≠ｂ）におけるｔ進表示の各桁ｔj（０≦ｊ≦ｒ）毎に、ｔ進表示の値βが全て異なる（βj,a  ≠  βj,b）という条件を満たす桁ｔjが有るか否かを判定する（ＳＴ１２）。
【００６８】
この条件を満たす桁ｔjがないとき、この集合Λによる分散復号は不可能であるため、集合Λ内の機関Ｔｚを多少入れ換えて（ＳＴ１３）、ステップＳＴ１１から再実行する。
【００６９】
ステップＳＴ２で条件を満たす桁ｔjがあるとき、ユーザ装置Ｕは、暗号化データＣを各機関Ｔzに送信する（ＳＴ１４）。
【００７０】
各機関Ｔzは、ｔj桁に対応する部分情報ｄj,k（ｋ＝βj,z）に基づいて、暗号化データＣを復号処理し、得られた部分出力Ｘz（＝Ｃdj,k  （ｍｏｄ  Ｎ））をそれぞれユーザ装置Ｕに返信する（ＳＴ１５）。
【００７１】
ユーザ装置は、ｔ個の各機関Ｔz（ｚ∈Λ）から受信したｔ個の部分出力Ｘz（ｚ∈Λ）を（１６）式のように合成し、平文Ｍを復元することができる（ＳＴ１６）。
【数１０】
2004246377.tif 000012
【００７２】
また、以上の動作は、暗号化データＣ（＝Ｍe（ｍｏｄ  Ｎ））をｔ個の各機関Ｔｚに送ることにより、平文Ｍを分散復号した場合である。これに限らず、本実施形態は、図５に示すように、暗号化データＣに代えて、署名対象データＭをｔ個の各機関Ｔｚに送信したとき（ＳＴ１４ａ）、前述した部分出力Ｘｚの合成により、署名Ｍd（ｍｏｄ  Ｎ）を得ることもできる（ＳＴ１６ａ）。  
上述したように本実施形態によれば、ｎ個の各機関Ｐ1〜Ｐnが、公開鍵及び秘密鍵ｄを生成し、この秘密鍵ｄに基づいて生成された（ｎ，ｎ）型の１個の部分情報ｄi（０≦i≦ｎ）を保持し、ｔを底としたｎの対数ｌｏｇtｎ以上の最小の整数をｒとしたとき、この部分情報ｄiを（ｔ，ｎ）型のｔ（ｒ＋１）個の部分乱数Ｓjとし、そのうちのｒ＋１個の部分乱数Ｓjを各機関Ｐｉの識別番号ｚのｔ進表示（ｔj桁目の値k、０≦k≦ｔ−１、０≦j≦ｒ）に基づいて、それぞれ各機関Ｐ1〜Ｐnに分散し、これら分散されたｎ（ｒ＋１）個の部分乱数をｔ進表示の桁ｔj毎にまとめてｒ＋１個の部分情報ｄj,kを得る。
【００７３】
続いて、ユーザ装置Ｕが、ｔ個の機関Ｔｚを選択して暗号化データＣ（又は署名対象データ）を送信し、ｔ個の機関Ｔｚが、暗号化データＣ（又は署名対象データ）を部分情報ｄj,kに基づいて演算処理し、得られた部分出力Ｘｚをそれぞれユーザ装置Ｕに返信し、ユーザ装置Ｕが、ｔ個の部分出力Ｘｚを合成して復号結果（又は署名結果）を得る。
【００７４】
このように、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号や署名を実現することができる。また、復号分散時に、ラグランジュの補間係数を算出する手間を省略でき、高い処理効率を実現することができる。
【００７５】
また、本実施形態は、予め暗号文への入力を表として保持でき、ラグランジュの補間係数の算出が不要な分だけ、文献［ＦＭＹ９８］の方式よりも、演算の処理効率を向上させることができる。
【００７６】
さらに、本実施形態は、全ての組合せに応じたラグランジュの補間係数を表として保管する場合、文献［ＦＭＹ９８］の方式よりも、保管する情報の量を低減させることができる。
【００７７】
例えば、文献［ＦＭＹ９８］の方式は、ラグランジュの補間法に基づくしきい値法を用いた分散復号化を行う。ここでは、秘密鍵ｄが各機関Ｐ1〜Ｐnのもつ部分情報の単純和ではなく、各機関Ｐjは、前述したラグランジュの補間係数λj,Λを算出し、合成する必要がある。よって、補間係数λj,Λを予め算出して表に保管する場合、１つの部分情報と参加機関Ｔzの全ての組合せに応じたｎＣｔ個の補間係数λj,Λを算出して保管する必要がある。
【００７８】
一方、本実施形態では、「ｌｏｇtｎ」＋１個の部分情報から機関の組合せに対応する部分情報を選択すればよい。よって、保管される部分情報は、「ｌｏｇtｎ」＋１個でよく、少ない情報量となっている。
【００７９】
ところで、本実施形態の方式によれば、ｔ個の機関の組合せが悪いとき、暗号文を分散復号できない場合がある。この場合について（３，２７）型の秘密分散を例に挙げて補足的に説明する。今、秘密鍵ｄについて、以下のｒ＋１個の多項式が成立しているとする。
【００８０】
ｄ＝ｄ3,0＋ｄ3,1＋ｄ3,2  （３3桁目）
＝ｄ2,0＋ｄ2,1＋ｄ2,2  （３2桁目）
＝ｄ1,0＋ｄ1,1＋ｄ1,2  （３1桁目）
＝ｄ0,0＋ｄ0,1＋ｄ0,2  （３0桁目）
まず、分散復号が可能な場合を示す。２７個の機関のうち、機関Ｐ20，Ｐ23，Ｐ26が分散復号プロトコルに介入するとき、復号操作Ｃd＝Ｍed＝Ｍは成功する。ここで、各機関Ｐ20，Ｐ23，Ｐ26の３進表示は、Ｐ20＝０２０２，Ｐ23＝０２１２，Ｐ26＝０２２２であり、それぞれの保管情報は図６に示す通りとなっている。ここで、３1桁に注目すると、（１７）式に示すように、ｄ＝ｄ1,0＋ｄ1,1＋ｄ1,2からｄによる復号化処理が可能となる。  
Ｃｄ1,0・Ｃｄ1,1・Ｃｄ1,2＝Ｍed 
＝Ｍ  （ｍｏｄ  Ｎ）      …（１７）
ところが、Ｐ23に代えてＰ11を用いた各機関Ｐ20，Ｐ23，Ｐ11では、復号操作は失敗する。すなわち、各機関の３進表示は、Ｐ20＝０２０２，Ｐ23＝０２１２，Ｐ11＝０１０２であり、それぞれの保管情報は図７に示す通りである。
【００８１】
この場合、秘密鍵ｄを構成する３つの部分情報（ｄj,0＋ｄj,1＋ｄj,2）がどの桁jでも揃わず、いずれかの部分情報が２つ以上の機関において重複（衝突）している。このように保管する部分情報の重複により、分散復号の不可能な場合がある。
【００８２】
この場合、別のｔ個の機関を選択し直す必要がある。  
ここで、機関の総数ｎが大きく、ｔ個以上の機関を比較的自由に選択可能な場合、本実施形態の（ｔ，ｎ）型の秘密分散が適している。すなわち、機関の総数ｎが大きいときには復号不能となっても、ｔ個の機関Ｐを再編成して分散復号プロトコルをし直せばよい。
【００８３】
逆にｎの数が小さく、機関Ｐの選択の余地がない場合は、全ての組合せに応じた関係式を作成する方式が適している。例えば、エルガマル(ElGamal)暗号系では、ｎ個のうちの任意のｔ個の機関がグループの鍵で暗号化された暗号文を復号することができる技術が提案されている（T. P. Pedersen, “A threshold cryptosystem without a trusted party”, Advances in Cryptology-Eurocrypt ’91, LNCS 547, pp.522-526, 1991.（以下、文献［Ｐｅｄ９１ｂ］という））。すなわち、文献［Ｐｅｄ９１ｂ］の方式のように任意のｔ個の機関で分散復号・鍵復元を行うには、秘密鍵ｄに関するnＣt個の独立な関係式を作成すればよい。具体的には、ある組合せ（Λ）のときは（１８）式のように該当する関係式により分散復号を行う方式である。
【００８４】
ｄ＝ｄ1,Λ＋ｄ2,Λ＋…＋ｄt,Λ      …（１８）
しかしながら、文献［Ｐｅｄ９１ｂ］の方式では、衝突の可能性はないものの、機関の総数ｎに比例して関係式の数が膨大になってしまう。よって、衝突の可能性の低い範囲で、独立多項式を最小限に抑えることが好ましい。
【００８５】
各方式はそれぞれ長所・短所があるので、第１実施形態の方式（再編成する方式）、第１実施形態の方式において関係式を用いる方式、あるいは後述する第２の実施形態の方式（補間法を用いる方式）のいずれを選択するかは、機関の総数ｎや処理効率、使用される環境、復号処理不能が許されるか否かなどの条件に応じて使い分けることが好ましい。
【００８６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明するが、その前に本実施形態の前提となるＲＳＡ共通法誤用プロトコルについて述べる。
【００８７】
ＲＳＡ暗号系において、１つのメッセージＭを、互いに共通する法Ｎと、互いに異なる公開指数e1，e2とを用いる条件の下でそれぞれ暗号化し、得られた２つの異なる暗号文Ｃ1，Ｃ2があるとする。この場合、合成数Ｎの素因数が不明でも、２つの暗号文Ｃ1，Ｃ2からメッセージＭを復元できる（G. J. Simmons, “A ‘weak’ privacy protocol using the RSA cryptoalgolithm”, Cryptologia, vol. 7, pp.180-182, 1983.（以下、文献［Ｓｉｍ８３］という））。
【００８８】
この文献［Ｓｉｍ８３］の方式において、前述した２つの暗号文Ｃ1，Ｃ2は、次の（１９）式〜（２０）式に示すように得られている。
【００８９】
Ｃ1＝Ｍe1  （ｍｏｄ  Ｎ）      …（１９）
Ｃ2＝Ｍe2  （ｍｏｄ  Ｎ）      …（２０）
ここで、異なる公開指数e1,e2の最大公約数gcd（e1，e2）＝１である場合、以下のステップＳＴc1〜ＳＴc3を行うと、２つの暗号文Ｃ1，Ｃ2からメッセージＭを復元できる（D. R. Stinson, “CRYPTOGRAPHY : Theory and Practice”, CRC Press, Inc. Boca Raton, Florida, U.S.A., 1995.（以下、文献［Ｓｔｉ９５］という））。
【００９０】
（ステップＳＴc1）ａ1＝e1-1  （ｍｏｄ  e2）
（ステップＳＴc2）ａ2＝（ａ1e1−１）／e2
（ステップＳＴc3）Ｍ＝Ｃ1a1（Ｃ2a2）-1  （ｍｏｄ  Ｎ）
また、上記処理（Step c1〜c3）を次のように表記する。
【００９１】
Common（e1，e2）→Ｍ
以上のように、ＲＳＡ暗号系においては、所定の条件を満たすとき、メッセージＭを復元可能なプロトコルが存在する。このプロトコルがＲＳＡ共通法誤用プロトコルと呼ばれている。
【００９２】
さて次に、本発明の第２の実施形態に係る秘密分散システムについて説明する。本実施形態は、文献［Ｓｉｍ８３］及び［Ｓｔｉ９５］等のＲＳＡ共通法誤用プロトコルを適用可能な条件で公開鍵を作成し、文献［ＦＭＹ９８］の手法により、秘密鍵ｄの部分情報ｓjを分散する（ｔ，ｎ）型の秘密分散システムである。
【００９３】
なお、ＲＳＡ共通法誤用プロトコルを適用可能な条件とは、次の（ａ）〜（ｃ）を全て満たすことに相当する。  
（ａ）メッセージＭが同じである。  
（ｂ）法Ｎが共通する。  
（ｃ）互いに異なる公開指数（e1，e2）の最大公約数gcd（e1，e2）＝１である。  
但し、以下の説明では、公開指数（e1，e2）を（Ｌ2，e）と表記している。また、公開指数Ｌ2の元となるＬは、Ｌ＝ｎ！に代えて、Ｌ＝（ｎ−１）！としてもよい。  
また、ユーザ装置及び各機関は、ハードウェア的な構成に関しては図１及び図２に示した通りとし、機能に関しては第１実施形態とは異なるので、以下に説明する。
【００９４】
なお、各機関Ｐ1〜Ｐnは、前述同様に、任意の機関Ｐi（但し、1≦i≦n）を代表例として説明する。  
機関Ｐiは、［ＦＭＹ９８］の方式に基づいて、法Ｎの部分情報（ｐj，ｑj）を作成する機能と、これら部分情報ｐj，ｑjをそれぞれ各機関Ｐ1〜Ｐnに分散する機能と、各機関Ｐjの（ｐj，ｑj）を基に、公開鍵（e，Ｎ）を生成する機能と、秘密鍵ｄから（ｔ，ｎ）型の部分情報ｓjを得る機能と、夫々部分情報（ｐj，ｑj）及びｓjを保持する機能と、ユーザから受けた暗号文Ｃ（＝Ｃ2＝Ｍe  （ｍｏｄ  Ｎ））を復号処理して得られた部分出力Ｚjをユーザ装置Ｕに返信する機能とをもっている。
【００９５】
ユーザ装置Ｕは、ｎ個の機関のうちのｔ個の機関Ｔzを選択する機能と、公開鍵（e，Ｎ）で暗号化された暗号文Ｃ2（=Ｍe（ｍｏｄ  Ｎ））をｔ個の各機関Ｔzに送信する機能と、各機関Ｔzから受信した部分出力Ｚjを合成して暗号文Ｃ1（=ＭL2（ｍｏｄ  Ｎ））を得る機能と、２つの暗号文（ＭL2，Ｍe）から、前述したＲＳＡ共通法誤用プロトコルCommon（Ｌ2，e）→Ｍを用いて、メッセージＭを算出する機能とをもっている。
【００９６】
次に、以上のように構成された秘密分散システムの動作を説明する。  
（（ｔ，ｎ）型の秘密分散）
各機関は互いに、文献［ＦＭＹ９８］の方式に基づいて、秘密鍵ｄを（ｔ，ｎ）型の部分情報とし、対応する部分情報ｓjを個別にｎ個の機関Ｐ1〜Ｐnに分散する。
【００９７】
具体的には、各機関Ｐjは、法Ｎの構成要素（ｐj，ｑｊ）を作成し、夫々送信する。各機関Ｐjは、他の各機関Ｐjから受けた（ｐj，ｑｊ）の合成Ｎ＝（ｐ1＋ｐ2＋…＋ｐn）（ｑ1＋ｑ2＋…＋ｑn）が異なる２つの素数の積であるか否かを判定し、異なる素数の積であるとき、正当として次に進む。
【００９８】
各機関Ｐjは（ｐj，ｑｊ）を基に、公開鍵（ｅ，Ｎ）を生成し、各機関Ｐjの保持すべき秘密鍵ｄの部分情報ｄjを算出する（（ｎ，ｎ）型秘密分散完了）。
【００９９】
ｄ＝ｄ1＋ｄ2＋…＋ｄj＋…＋ｄn
次に、各機関Ｐjは、（ｎ，ｎ）型の秘密鍵ｄをSum-to-Polyの技術により、（ｔ，ｎ）型の秘密鍵ｄに変換する（（ｔ，ｎ）型秘密分散完了）。
【０１００】
このとき、ｔ−１個の乱数｛b1，…bt-1｝∈Ｚに対し、（２１）式の如き、多項式を定める。  
ｆ(x)＝ｄ＋b1ｘ＋b2ｘ2＋…＋bt-1ｘt-1      …（２１）
この式は、ｙ切片を秘密鍵ｄとしたｋ−１次の多項式であり、ラグランジュの補間法により、ｋ個の座標点（j，ｆ(j)）から一意に定まる性質をもっている。但し、ｋ−１個の座標点からは一意に定まらず、任意のｙ切片が可能となり、秘密鍵ｄを得られない性質もある。
【０１０１】
各機関Ｐjは、各機関Ｐ1〜Ｐnの自己の識別番号j（１≦j≦ｎ）を独立変数ｘとして上記多項式ｆ(x)に代入してｆ(j)を計算し、ｆ(x)上のｙ座標を示す部分情報ｓj（＝ｆ(j)）を各機関Ｐj毎に得る。
【０１０２】
各機関Ｐjは、得られた（ｔ，ｎ）型の部分情報ｓjと、予め保持する、法Ｎの素因数ｐｑの部分情報（ｐj，ｑj）とを保管する。なお、（ｎ，ｎ）型の部分情報ｄjも保持されるが、本実施形態では特に使用されない。
【０１０３】
（分散復号化）
ｎ個の機関のうち、任意のｔ個の機関Ｔz（この集合をΛとする）は、ユーザ装置Ｕからの復号依頼により、ユーザ装置Ｕの公開鍵（e，Ｎ）で暗号化されたデータＣ＝Ｍe（ｍｏｄ  Ｎ）を図８のステップＳＴ２１〜ＳＴ２４に示すように分散復号化する。ここで、Ｌ＝ｎ！かつ最大公約数gcd（e，Ｌ2）＝１とする。
【０１０４】
すなわち、ユーザ装置Ｕは、暗号文Ｃ（＝Ｍe  （ｍｏｄ  Ｎ））をｔ個の各機関Ｔｊ（∈Λ）に送信する（ＳＴ２１）。  
各機関Ｔｊは、次の（２２）式〜（２４）式の通り、それぞれ自己の部分情報ｓｊを用いて部分出力Ｚjを算出し、得られた部分出力Ｚjをユーザ装置Ｕに返信する（ＳＴ２２）。
【数１１】
2004246377.tif 000013
【０１０５】
ユーザ装置Ｕは、次の（２５）式のように、ｔ個の各機関Ｔｊから受ける部分出力Ｚjを合成し、暗号文ＭL2（ｍｏｄ  Ｎ）を算出する（ＳＴ２３）。
【数１２】
2004246377.tif 000014
【０１０６】
ユーザ装置Ｕは、元の暗号文Ｍeと、この暗号文ＭL2との互いに異なる２つの暗号文（ＭL2，Ｍe）から、前述したＲＳＡ共通法誤用プロトコルCommon（Ｌ2，e）→Ｍを用いて、メッセージＭを算出する（ＳＴ２４）。なお、本実施形態と、前述したプロトコルとの対応関係は、（ＭL2，Ｍe）＝（Ｃ1，Ｃ2）であり、（Ｌ2，e）＝（e1，e2）である。ここで、ＲＳＡ共通法誤用プロトコルは、（２６）式に示すように、健全性を有している。
【０１０７】
Ｃ1a1（Ｃ2a2）-1＝ＭＬ2a1−ea2＝Ｍ（ｍｏｄ  Ｎ）  …（２６）
（分散署名）
なお、ユーザ装置Ｕは、分散復号に限らず、ｔ個の機関Ｔｚに分散署名を行わせてもよい。  
この場合、ユーザ装置Ｕは、図９に示すように、復号対象の暗号文Ｃに代えて、署名対象データＳ１（＝Ｍ）を用い（ＳＴ２１ａ）、復号結果の暗号文ＭL2に代えて、署名結果Ｓ２（＝(Ｍd)Ｌ^2（ｍｏｄ  Ｎ）、^はべき乗を示す記号）を用いる（ＳＴ２３ａ）。
【０１０８】
そして、ユーザ装置Ｕは、（Ｃ1，Ｃ2）＝（ＭdＬ^2，Ｍ）＝（(Ｍd)Ｌ^2，(Ｍd)e）から、前述同様に、以下のＲＳＡ共通法誤用プロトコルに基づいて、署名Ｍdを算出する（ＳＴ２４ａ）。
【０１０９】
a1＝（Ｌ2）-1  （ｍｏｄ  e）
a2＝（a1Ｌ2−１）／e
Ｍ＝Ｃ1a1（Ｃ2a2）-1  （ｍｏｄ  Ｎ）
ここで、ＲＳＡ共通法誤用プロトコルは、（２７）式に示すように、健全性を有している。
【０１１０】
Ｃ1a1（Ｃ2a2）-1＝Ｍd(Ｌ2a1−ea2)
＝Ｍd（ｍｏｄ  Ｎ）    …（２７）
（分散署名の変形例）
なお、上述した分散署名は、図１０に示すように変形してもよい。すなわち、ステップＳＴ２３ａの後、ユーザ装置Ｕは、この署名対象データＳ１及び署名結果Ｓ２の組を図示しない相手先の署名検証装置に送信する（ＳＴ２５ａ）。  
署名検証装置は、署名対象データＳ１及び第１公開鍵（e，Ｎ）から第１比較データＤ１（＝Ｍe  （ｍｏｄ  Ｎ））を算出し、署名結果Ｓ２及び第２公開鍵（e，Ｎ）から第２比較データＤ２（＝ＭＬ^2  （ｍｏｄ  Ｎ））を算出する（ＳＴ２６ａ）。
【０１１１】
続いて、署名検証装置は、第１並びに第２比較データＤ１，Ｄ２及び下記（２８）式〜（３０）式のＲＳＡ共通法誤用プロトコルに基づいて、演算処理を実行し、出力Ｍを求める（ＳＴ２７ａ）。
【０１１２】
a1＝（Ｌ2）-1  （ｍｏｄ  e）            …（２８）
a2＝（a1Ｌ2−１）／e                    …（２９）
Ｍ＝Ｄ1a1（Ｄ2a2）-1  （ｍｏｄ  Ｎ）    …（３０）
ここで、出力Ｍと署名対象データＳ１とが一致するとき、署名検証装置は、ユーザ装置Ｕの署名を正当と認める（ＳＴ２８ａ）。  
上述したように本実施形態によれば、ＲＳＡ共通法誤用プロトコルを適用可能な条件のＲＳＡ暗号系において、ｎ個の機関Ｐ1〜Ｐnに秘密鍵ｄの部分情報ｓjが分散されたとき、ユーザ装置Ｕが、ｔ個の機関Ｔｚを選択して暗号化データＣ１を送信し、ｔ個の各機関Ｔｚが、暗号化データＣ１（＝Ｍe  （ｍｏｄ  Ｎ））を演算処理して得られた部分出力Ｚjをユーザ装置に返信し、ユーザ装置Ｕが、ｔ個の部分出力Ｚjを合成して復号結果Ｃ２（＝ＭＬ^2  （ｍｏｄ  Ｎ））を得ると共に、復号結果Ｃ２、処理対象データＣ１及びＲＳＡ共通法誤用プロトコルに基づいて、演算処理を実行し、最終復号結果Ｍを求める。
【０１１３】
これにより、分配者の無い環境で秘密鍵を算出せずに、ｎ個の機関のうち、任意ｔ個の機関による分散復号を実現することができ、また、所定条件の公開鍵を用いたラグランジュ補間法に基づき、高い確実性を実現することができる。
【０１１４】
さらに、復号対象データＣ２に代えて、署名対象データＳ２（＝Ｍ）を用い、復号結果Ｃ１に代えて、署名結果Ｓ１（＝ＭdＬ^2（ｍｏｄ  Ｎ）、^はべき乗を示す記号）を用いることにより、ＲＳＡ共通法誤用プロトコルを用いて、演算処理を実行し、署名Ｍｄを求める。
【０１１５】
これにより、分散復号と同様に、分散署名を行うことができる。  
すなわち、本実施形態によれば、所定の条件で公開鍵を作成することにより、ｔ個の機関の組合せとは無関係に、確実に復号処理・署名処理を実行することができる。
【０１１６】
なお、ここでノン・ディーラーモデルでの上述した機能を実現する本実施形態方式と、ディーラーモデルでの機能（（ｔ，ｎ）型での分散復号／分散署名）を実現する文献［ＦＧＭＹ９７］の方式とを比較して述べる。
【０１１７】
本実施形態方式は、文献［ＦＧＭＹ９７］の方式と同じく、α，βを係数として次の（３０）式のユークリッド公式を前提とする。
【０１１８】
eα＋Ｌ2β＝１      …（３０）
但し、gcd（e，Ｌ2）＝１
【数１３】
2004246377.tif 000015
【０１１９】
本実施形態方式では、復号時に部分出力Ｚjを合成した後に、合成出力からユークリッドアルゴリズムによりＭを算出するので、このＭの算出処理の分だけ、文献［ＦＧＭＹ９７］の方式よりも処理効率が低下している（文献［ＦＧＭＹ９７］の方式は、ディーラーが鍵分散時にユークリッド公式を作成するので、復号時に各機関の部分出力を合成し、合成出力がメッセージＭとなる）。
【０１２０】
しかしながら、文献［ＦＧＭＹ９７］の方式は、Ｎのオイラー関数φ（Ｎ）を知るディーラーが必要であり、ｄ≡Ｐ＋Ｌ2ｋ（ｍｏｄ  φ（Ｎ））を満たすＬ2ｋを複数の機関に秘密分散して共有する。ここで、ディーラーが秘密鍵ｄと素因数ｐ，ｑを紛失した場合、この複数の機関から秘密鍵ｄを回復できない。理由は、Ｌ2ｋを回復しても、法φ（Ｎ）を紛失しているので、Ｌ2ｋから秘密鍵ｄを算出できないからである。但し、法φ（Ｎ）でｄに合同なＰ＋Ｌ2ｋを算出することはできる。
【０１２１】
すなわち、文献［ＦＧＭＹ９７］の方式では、ディーラーの存在する環境において、分散署名や分散復号を行えるが、ディーラーへのｄそのものの鍵回復を行えない。文献［ＦＧＭＹ９７］の方式では、鍵回復を行う際に、ディーラーモデルの文献（T. P. Pedersen, “Distributed provers with applications to undeniable signatures”, Advances in Cryptology-Eurocrypt ’91, LNCS 547, pp.221-238, 1991. （以下、文献［Ｐｅｄ９１ａ］という））の方式又は文献［Ｏｋａ９７］の方式といった別の方式を用いる必要がある。ここで、分散ＲＳＡ暗号系における従来方式及び本発明方式の位置づけを整理すると、各方式は、図１１に示すように分類される。
【０１２２】
一方、本発明方式は、ディーラーの存在する環境では、文献［Ｐｅｄ９１ａ］との組合せにより分散署名及び分散復号を実現でき、ディーラーの存在しない環境では、前述した通り、文献［ＦＭＹ９８］等との組合せにより分散署名及び分散復号を実現することができる。
【０１２３】
なお、上述した第１及び第２の実施形態は、ディーラーの存在しない環境の場合を述べているので、以下に、ディーラーの存在する環境に適用する場合の変形例１，２について簡単に説明する。
【０１２４】
すなわち、変形例１は、第１の実施形態をディーラーモデルに適用する場合であり、ディーラーとしてのユーザ装置Ｕは、（１３）式を満たす全ての部分秘密鍵ｄj,kを作成し、各機関に振り分ける作業を行う。この変形例１によれば、前述したステップＳＴ１〜ＳＴ４までの複雑な処理を省略できる分だけ、効率を向上させることができる。
【０１２５】
また、変形例２は、第２の実施形態を文献［Ｐｅｄ９１ａ］と組合せた場合であり、文献［ＦＭＹ９８］と組合せた結果と同じ機能を果たすことができる。
【０１２６】
すなわち、本発明は、（ｔ，ｎ）型の秘密分散であれば、ディーラーの有無とは無関係に実現でき、上述した各実施形態に限らず、ｎ羽の鳥のうち、任意のｔ羽の鳥を異なる巣箱に入れるような関数群（K. Kurosawa and D. Stinson, Personal communication, June 1996 Referred in Desmedt’s paper.（Y. Desmedt, “Some recent research aspects of threshold cryptography,” Information Security, LNCS 1396, pp. 158-173, 1997.））を適宜利用して実現することができる。
【０１２７】
尚、本発明における記憶媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１２８】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０１２９】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１３０】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１３１】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１３２】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１３３】
また、本発明は、ＲＳＡ暗号系に限らず、素因数分解問題に基づく暗号系であれば、ＲＳＡ暗号系以外の暗号系に適用してもよい。  
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【図面の簡単な説明】
【０１３４】
【図１】本発明の第１の実施形態に係る秘密分散システムの構成を示す模式図
【図２】同実施形態における各機関及びユーザ装置のハードウェア構成を示すブロック図
【図３】同実施形態における秘密分散動作を説明するためのフローチャート
【図４】同実施形態における復号化動作を説明するためのフローチャート
【図５】同実施形態における署名動作を説明するためのフローチャート
【図６】同実施形態における復号可能な例を説明するための各機関の保管情報を示す模式図
【図７】同実施形態における復号不可能な例を説明するための各機関の保管情報を示す模式図
【図８】本発明の第２の実施形態における復号化動作を説明するためのフローチャート
【図９】同実施形態における署名動作を説明するためのフローチャート
【図１０】同実施形態における変形動作を説明するためのフローチャート
【図１１】従来方式と本発明方式との位置付けを示す分類図
【図１２】従来の方式における各機関に保管される部分情報の集合を示す模式図
【図１３】従来の方式における機関の組合せと対象の部分情報を示す模式図
【符号の説明】
【０１３５】
１…ネットワーク、Ｕ…ユーザ装置、Ｐ1〜Ｐn，Ｐi…機関
【図１】
2004246377.tif 000016
【図２】
2004246377.tif 000017
【図３】
2004246377.tif 000018
【図４】
2004246377.tif 000019
【図５】
2004246377.tif 000020
【図６】
2004246377.tif 000021
【図７】
2004246377.tif 000022
【図８】
2004246377.tif 000023
【図９】
2004246377.tif 000024
【図１０】
2004246377.tif 000025
【図１１】
2004246377.tif 000026
【図１２】
2004246377.tif 000027
【図１３】
2004246377.tif 000028