JP3604737B2 - 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム - Google Patents

複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム Download PDF

Info

Publication number
JP3604737B2
JP3604737B2 JP17848394A JP17848394A JP3604737B2 JP 3604737 B2 JP3604737 B2 JP 3604737B2 JP 17848394 A JP17848394 A JP 17848394A JP 17848394 A JP17848394 A JP 17848394A JP 3604737 B2 JP3604737 B2 JP 3604737B2
Authority
JP
Japan
Prior art keywords
information
secret
information processing
partial
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP17848394A
Other languages
English (en)
Other versions
JPH0846607A (ja
Inventor
マヌエル・セレセド
恵市 岩村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP17848394A priority Critical patent/JP3604737B2/ja
Priority claimed from JP00818495A external-priority patent/JP3610106B2/ja
Priority to US08/507,524 priority patent/US5708714A/en
Priority to AT95305211T priority patent/ATE295644T1/de
Priority to DE69534192T priority patent/DE69534192T2/de
Priority to EP95305211A priority patent/EP0695056B1/en
Priority to AU27198/95A priority patent/AU702563B2/en
Priority to CA002154970A priority patent/CA2154970C/en
Priority to CN 95115810 priority patent/CN1092434C/zh
Priority to KR1019950023701A priority patent/KR0148300B1/ko
Publication of JPH0846607A publication Critical patent/JPH0846607A/ja
Priority to HK98112822A priority patent/HK1011809A1/xx
Publication of JP3604737B2 publication Critical patent/JP3604737B2/ja
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、通信路によって接続された複数の加入者端末間で、ある加入者が持っている情報を秘密に分散する方法に関するものである。
【0002】
【従来の技術】
従来、情報通信システムの信頼性を高める技術の一つとして、情報の冗長度を増やす符号化技術が知られている。
【0003】
特に、通信路に誤りが生じてもその誤りを検出・訂正できる誤り訂正符号は、信頼性の高い通信システムを効率的に実現できる技術としてよく用いられている。
【0004】
更に、通信システムにおいて秘密情報を守りながら信頼性を高める手段としても、秘密情報を分散して冗長度を増やす符号化技術が有効であることが、A. Shamir(”How to Share a Secret”, Communications of the ACM, Vol. 22, 11, 1979)によって示されている。
【0005】
複数の加入者端末からなる通信システムにおいて、秘密情報を分散すること(つまり、全ての加入者間で秘密情報を分散保持すること)は、秘密情報の保持において、特定の1人の加入者の物理的な安全性のみに依存しなくて済むようになり、次の2つの意味で信頼度が高まる(フォールトトレランスを実現できる)と考えられる。
【0006】
1つは、分散しても秘密情報が漏れず安全であるという意味の信頼度であり、これは秘密性に対するフォールトトレラントと呼ばれる。もう1つは、分散された秘密情報に不正が行われても正しい出力を得ることができるという意味の信頼度であり、これは正当性に対するフォールトトレランスと呼ばれる。ただし、物理的な安全性とは、ある加入者が持っている情報がその加入者以外に漏れないこと、及びある加入者により行われている計算が、その加入者以外からは制御できないこと、を意味する。
【0007】
具体的に、ある秘密情報x が全ての加入者間で分散保持されるとは、以下の条件(a) ,(b) が満たされるように、各加入者i が秘密情報x に対応する部分情報x_i を生成し、他の加入者に分配することを意味する。
【0008】
(a) 秘密情報x を復元するためには、t+1 人の加入者の部分情報が必要である。以後、その秘密情報を復元するための必要な加入者の数t+1 を、しきい値と呼ぶ。
【0009】
(b) しきい値未満の数(t 以下)の部分情報では、その秘密情報に関するどのような情報も得ることができない。
【0010】
従来の基本的な秘密分散方式は、A. Shamir (”How to Share a Secret”, Communications of the ACM,Vol. 22, 11, 1979)によって提案され、次のように実現された。
【0011】
ある加入者の情報を、秘密に複数の加入者に分散するために、定数項が前述の秘密情報となるt次の多項式f(x)をランダムに選び、n 個の異なる値に対するその多項式の値f(i)(i=1,...,n) を各加入者に配る。この加入者i に配られる多項式の値f(i)が前述の部分情報の一部分になる。よって、秘密情報は、t+1 個の部分情報を用いた多項式補間によって復元できる(t 以下の部分情報では、秘密情報に関するどのような情報を得ることはできない)。
【0012】
以上のようにして秘密を分散する方式が、しきい値スキーム(Threshold Scheme)と呼ばれ、前述の秘密性に対するフォールトトレランスを実現できると考えられる。ただし、前述の定義だけでは秘密情報が分散されたとき、t+1 以上の加入者の部分情報が集まっても不正な部分情報があった場合には、元の秘密情報x を復元できないことがありうる。つまり、分散された秘密情報の正当性に対するフォールトトレランスが保証されないことが分かる。よって、前述の分散システムにおいて、完全に信頼度を高めるためには、秘密性と正当性に対するフォールトトレランスを同時に考える必要がある。
【0013】
どのような誤りを持つ加入者に対しても耐えられる秘密分散方式として提案された確認可能な秘密分散(Verifiable Secret Sharing )とは、前述のしきい値スキームの条件(a),(b) に次の条件(c),(d) を付加することによって定義されている。
【0014】
(c) 不正な部分情報が正しい部分情報と混在していても、t+1 個の正しい部分情報があれば元の秘密情報を復元するために十分である。
【0015】
(d) 全ての加入者がその秘密の部分情報を受け取ったとき、その部分情報が、ある秘密情報x を復元するために正しい情報であるかどうかを確認できる。
【0016】
秘密の通信路を持つ通信システムに対して、全加入者の3分の1より少ない数であれば、どのような誤りを持つ加入者にも耐えられる確認可能な秘密分散方式(しきい値tがt<n/3を満たす場合)を構成するためには、従来の誤り訂正符号技術で十分であることが、M. Ben−Or, S. Goldwasser, A. Wigderson (Completeness Theorems for Non−Cryptographic Fault−Tolerant Distributed Computation”, ACM STOC 1988) によって示されている。
【0017】
更に、全加入者の半分より少ない数であれば、どのような誤りを持つ加入者にも耐えられる確認可能な秘密分散方式を構成するためには、さらに条件を付加する必要があり、すべての加入者が同じメッセージを受信したことを確認できる放送型通信路を全ての加入者が持つとした場合、次の2通りの構成方法が知られている。
【0018】
(1) 零知識対話証明システム(辻井、笠原:“暗号と情報セキュリティ”、昭晃堂、1990 参照)で用いられている`Cut and Choose’と呼ばれる技術を利用し、前述のA.Shamirによる基本的な秘密分散方式によって元の秘密s を分散した上に、配られた部分情報s_i (i=1,...,n )を更に分散する方式。
【0019】
つまり、確認可能な分散方式によって配られた全ての部分情報は、秘密部分情報s_i に対する秘密部分になるように生成された部分行列と考えることができる。ただし、前述の`Cut and Choose’技術を用いることによって、前述の条件(d) による確認とは統計的確認になり、秘密情報を復元できる正しい分散が行われているかどうかを示す判定出力に誤り確率が生じる。ただし、その誤り確率は設定する安全性のパラメータにより無視できる程度まで小さくすることができる。具体例として、T. Rabin, M. Ben−Or (”Verifiable Secret Sharing and Multiparty Protocols with Honest Majority”, ACM STOC 1989)による方式があげられる。
【0020】
(2) 非対話型で特殊な代数学的な性質を持つ一方向性関数を利用する方法。ただし、このように構成された秘密分散方式の安全性は、その代数学的な性質を満たす一方向性関数の逆元を計算するのが困難である(実用的な逆元計算方式が存在しないこと)という暗号的な仮定をする必要が生じる。具体例は、P. Feldman (”A Practical Scheme for Non−Interactive Verifiable Secret Sharing”, IEEE FOCS, 1987)によって提案されている。
【0021】
また、上述の確認可能な秘密分散方式を利用をすることによって、ある与えられた有限体上の分散演算を安全に実現する回路を構成できることが T. Rabin, M. Ben−Or (”Verifiable Secret Sharing and Multiparty Protocols with Honest Majority”, ACM STOC, 1989)、D. Beaver (”Secure Multiparty Protocols and Zero−Knowledge Proof Systems Tolerating a Faulty Minority”, Journal of Cryptology, 1991, 4, pp. 75−122; ”Efficient Multiparty Protocols Using Circuit Randomization”, Advances in Cryptology−Crypto’91, 1992) 及び M. Franklin, S. Haber (”Joint Encryption and Message−Efficient Secure Computation”, Advances in Cryptology−Crypto’93, 1994)によって示されている。
【0022】
【発明が解決しようとしている課題】
しかしながら、上述の対話的な方式(1) においては、1 ビットを分散するために必要な通信量は、安全性のパラメータをk と表したときn 個の秘密部分に対してn^3k^2のオーダーとなることが知られており、効率的ではない。
【0023】
また、一方向性関数を用い通信量の少ない、非対話型の暗号的な方式(2) では、n 個の秘密部分に対してn 回のオーダーの特殊な一方向性関数の計算処理を行う必要があり、特に秘密分散処理を安全に分散計算を実行するための部分処理として用いる場合には、実行すべき秘密分散処理の数が多くなり(例えば、分散乗算においてはnのオーダーとなる)、全体的には非実用的な計算量になる。
【0024】
以上のように、上記従来技術において、対話的な方式(1) は通信量が非常に大きく、暗号的な方式(2) は計算量が非常に大きいという問題があった。
【0025】
そこで、本発明は、前述の対話的な方式(1) 及び暗号的な方式(2) と比して、必要な計算量と通信量の両方が実用的なオーダーになる確認可能な秘密分散方法を提供することを目的とする。
【0026】
【課題を解決するための手段】
上述の課題を解決するために、本発明の秘密情報処理方法は、複数の情報処理装置を有し、各装置が、個別の装置間で他の装置には秘密に情報の通信を行なうための秘密通信路と、各装置から他の全ての装置へ共通に情報の送信を行なうための放送通信路とを介して接続された通信システムにおいて、秘密情報を有する第1の情報処理装置が、当該秘密情報から所定の部分配列を生成し、前記第1の情報処理装置が、他の各情報処理装置に対して、前記部分配列より夫々異なる第1の部分情報を抽出して、当該各情報処理装置に前記秘密通信路を介して送信し、前記第1の情報処理装置が、前記第1の部分情報の夫々に所定の関数を作用させ、得られた出力値を前記放送通信路を介して他の全ての装置へ放送し、前記各情報処理装置が、乱数を生成し、生成された乱数を前記放送通信路を介して他の全ての装置へ放送し、前記第1の情報処理装置が、放送された前記乱数の値に応じて、前記部分配列より第2の部分情報を生成し、生成された第2の部分情報を前記放送通信路を介して他の全ての装置へ放送し、前記各情報処理装置が、前記第1の部分情報及び放送された前記乱数に応じて、第2の部分情報の当該各情報処理装置に対応する部分として前記第1の情報処理装置で生成されるべき第3の部分情報を生成し、前記各情報処理装置が、前記第3の部分情報と放送された前記第2の部分情報の当該各情報処理装置に対応する部分とを比較して、前記第1の情報処理装置による秘密の分散を確認することを特徴とする。
【0027】
また、本発明の他の態様によれば、複数の情報処理装置と、前記装置の各々が、個別の装置間で他の装置には秘密に情報の通信を行なうための秘密通信路と、前記装置の各々から他の全ての装置へ共通に情報の送信を行なうための放送通信路とを有する通信システムにおいて、秘密情報を有する第1の情報処理装置に、前記秘密情報から所定の部分配列を生成する第1の生成手段と、他の各情報処理装置に対して、前記部分配列より夫々異なる第1の部分情報を抽出して、当該各情報処理装置に前記秘密通信路を介して送信する抽出手段と、前記第1の部分情報に所定の関数を作用させ、得られた出力値を前記放送通信路を介して他の全ての装置へ放送する関数処理手段と、他の情報処理装置より放送された乱数の値に応じて、前記部分配列より第2の部分情報を生成し、生成された第2の部分情報を前記放送通信路を介して他の全ての装置へ放送する第2の生成手段とを具え、前記第1の情報処理装置以外の各情報処理装置に、乱数を生成し、生成された乱数を前記放送通信路を介して他の全ての装置へ放送する乱数生成手段と、前記第1の情報処理装置から送信された第1の部分情報及び放送された前記乱数に応じて、第2の部分情報の当該各情報処理装置に対応する部分として前記第1の情報処理装置で生成されるべき第3の部分情報を生成する第3の生成手段と、前記第3の部分情報と放送された前記第2の部分情報の当該各情報処理装置に対応する部分とを比較して、前記第1の情報処理装置による秘密の分散を確認する確認手段とを具える。
【0029】
【実施例】
以下、図面を参照して本発明の実施例を詳細に説明する。
【0030】
まず、本実施例の原理について説明する。
【0031】
図3は、秘密s と部分行列S との関係を示す図である。
【0032】
本実施例において、ある秘密s に対する部分行列S とは、従来の対話型確認可能な秘密分散方式に用いられている部分行列に、以下に説明するように、更に条件が付けられた秘密部分のn ×n 行列S=[s(i,j)](i,j=1,...,n)である。
【0033】
まず、各行ベクトルS_r(i)=[s(i,1),...,s(i,n)](i=1,...,n)が、ある秘密s_r(i)に対する秘密部分ベクトル(ベクトルの要素j がある秘密分散方式における加入者j の秘密部分であるベクトル)になり、各列ベクトルS_c(j)=[s(1,j),...,s(n,j)](j=1,...,n)が、ある秘密s_c(j)に対する秘密部分ベクトルになる。
【0034】
ただし、前述の秘密s_r(i)及びs_c(j)よりなるベクトル[s_r(1),...,s_r(n)] 及び[s_c(1),...,s_c(n)] の両方は、元の秘密s に対する秘密部分ベクトルになる。秘密分散処理のときに、このように構成された部分行列の列ベクトルi (i=1,...,n )及び秘密s_r(i)を、加入者i の秘密部分情報として各加入者i に送信することによって、秘密復元処理のときに、部分情報を配った加入者が不正をしなければ、各加入者によって放送された部分情報が正しいかどうかを非常に高い確率で確認できる。
【0035】
また、本実施例では、元の秘密情報を持ち、秘密部分情報を配った加入者が不正をした場合でも秘密復元処理のとき放送される部分情報が正しいかどうかを確認するために、秘密部分情報を配る上で各加入者i (i=1,...,n )に対応する秘密s_r(i)の認証子のような役割を果たす値を一方向性ハッシュ関数(池野、小山:“現代暗号理論”、pp.224−225、電子情報通信学会、1986、参照)によって生成する。
【0036】
次に、この一方向性ハッシュ関数について説明する。
【0037】
一方向性ハッシュ関数とは、データ圧縮型スクランブルを行う関数であり、入力値から出力値を求める演算は容易であるが、出力値から入力値を求める逆演算は困難である関数である。ただし、本実施例では、従来の非対話型確認可能な秘密分散方式に用いられる一方向性関数に比べると、特殊な代数学的な性質を持たなくてもよく、計算処理の高速な一方向性ハッシュ関数を利用できる。
【0038】
一方向性ハッシュ関数の具体例として、R. Merkle (”One Way Hash Functions and DES”,Advances in Cryptology −Crypto’89, Lecture Notes in Computer Science, Vol. 435, Springer−Verlag, 1990 )によってDES (Data Encryption Standard)のようなブロック暗号を用いた一方向性ハッシュ関数を提案されている。
【0039】
図8は、一方向性ハッシュ関数の具体的な構成を説明する図である。
【0040】
同図において、(a) は、DES によるブロック暗号化を示しており、81は、64ビットの入力及び56ビットの鍵から64ビットの出力が得られる暗号化回路(図8では、DES をE で表している)である。
【0041】
(b) は、このDES を部分処理として利用し、入力の長さが119 ビットで出力の長さが112 ビットとなる関数F の処理を示しており、82は、関数演算回路である。この処理は、次のように定義される。
【0042】
まず、入力を二つの部分k,x に分ける(ただし、その一つの部分k 長さを55ビットとし、残りの部分x の長さを64ビットとする)。次に、その部分x をDES の入力とし、残りの部分k と’0’ を連続した値’0’,k を56ビットの鍵として得られた出力とx とのXOR を計算した結果を、関数F の出力における左側の64ビットとする。同様に、同じ部分x を入力とし、残りの部分k と’1’ を連続した値’1’,k を鍵として得られた出力とx とのXOR を計算した結果(64ビット)より48ビットを関数F の残りの部分(右側の48ビット)とする。これによって得られた二つの出力を連続した結果が112 ビットのF 関数の出力となる。
【0043】
(c) は、与えられたメッセージを入力として、一方向性ハッシュ関数のハッシュ値を出力とする処理を示しており、83は、ハッシュ関数処理部である。この処理は、次のように実行される。
【0044】
まず、与えられたメッセージの最初の119 ビットを上述の関数F の入力として、最初の112 ビットの出力を得る。次に、その出力を再び入力の112 ビット分とし、以後メッセージから残りの7 ビット分を連続して繰り返し関数F に入力する。最後に、全メッセージを入力したときに(メッセージの最後の7 ビットを入力するために足りないビットがあれば適当に’0’ を加える)得られた112 ビットの出力をメッセージに対するハッシュ値とする。
【0045】
前述のように計算されたハッシュ関数の一方向性(1つのハッシュ値が与えられたとき、同じハッシュ値が得られるような異なる入力のメッセージを求めることが極めて困難であること)は、用いられるDES のようなブロック暗号の安全性(入力が与えられたとき出力は鍵によるランダムな変数になり、出力が与えられたとき入力は鍵によるランダムな変数になる)によって与えられることが、R. Merkle より示されている(前述の論文参照)。
【0046】
更に、同じ論文では前述のハッシュ関数より効率のよい一方向性ハッシュ関数も提案されており、ブロック暗号を利用しない効率的な一方向性ハッシュ関数がR.Rivest(”The MD4 message digest algorithm”, Advances in CryptologyーCrypto’90, Lecture Notes in Computer Science, Vol. 537, Springer−Verlag, 1991. NIST Federal Information Processing Standard for Secure Hash, American National Standard X9.30−199x)によって提案されている。
【0047】
次に、本実施例におけるCut and Choose処理を説明する。
【0048】
従来の対話型確認可能な秘密分散方式で行われるCut and Chooseのように、秘密分散処理のとき全ての加入者が受け取った秘密部分情報が、確認可能に分散された秘密の部分情報となるかどうかを確認するために、元の秘密s に対する部分行列及びハッシュ値を分配すると同時にk 個のランダムに選ばれた秘密l1,...,lk に対する部分行列及びハッシュ値を分配し、全加入者によってランダムに決められたk/2 の秘密(li(1),...,li(k/2) )に関する全ての秘密情報を放送し、残りのk/2 の秘密(lj(1),...,lj(k/2) )に対してlj(1)+s,...,lj(k/2)+s に関する全ての秘密情報を放送し、全ての放送された情報の中には誤りを持つ部分の数がt より多ければ、秘密分散処理が正しくないと判断される。
【0049】
以上によって、従来の確認可能な秘密分散方式の条件(c),(d) の代わりに、次の条件(c’),(d’) を満たす秘密分散方式が実現でき、それを用いて安全に分散計算を実行する方式及び通信システムが実現できる。
【0050】
(c’)不正な部分情報が正しい部分情報と混在したとき、t+1 個の正しい部分情報があっても元の秘密情報を復元できない場合が存在するが、不正をした加入者の識別は可能である。
【0051】
(d’)全ての加入者がその秘密の部分情報を受け取ったとき、その部分情報がある秘密情報x を復元するための正しい情報でなければ、復元処理のときに不正をした加入者の識別が可能である。
【0052】
これらの条件は、従来方式のように不正な加入者があっても秘密を復元、すなわち誤り訂正は行えないが、不正な加入者は識別、すなわち誤り検出は可能にするものである。条件(c),(d) があれば不正な加入者がいても正しく分散演算が実行できる(正当性に対するフォールトトレランスを実現できる)が、条件(c’),(d’) に変更しても不正な加入者は検出できるので警告などを行い再実行することによって正しい出力を得ることができ、正当性に対するフォールトトレランスを実現することができる。
【0053】
よって、本実施例では、分散された秘密を復元するとき不正な加入者があった場合には、復元できないこともありえるが不正を行った加入者の識別は可能であるような確認可能な秘密分散方式を提案する。これによって、前述の対話的な方式(1) 及び暗号的な方式(2) の中間に位置する必要な計算量と通信量の両方が実用的なオーダーになる確認可能な秘密分散方式が実現できる。
【0054】
図1は、本発明の1実施例である、分散した情報処理装置を有する情報処理システムを示す図である。
【0055】
同図において、11は、システムの各加入者の利用する情報処理装置である。以下の説明では、各装置とそれを利用する各加入者とを同一視して、加入者と呼ぶことにする。12は、全ての加入者に情報を公開することができる放送型通信路であり、13は、各加入者毎に秘密の通信を行うことができる秘密通信路である。
【0056】
図2は、情報処理装置11のブロック構成を示す図である。同図において、21は、放送型通信路12または秘密通信路13により他の装置と通信を行なうための通信部である。22は、演算処理部であり、記憶部24のプログラムに従って、上述した一方向性ハッシュ関数などの各種演算や判定の処理を行なうとともに、装置各部を制御する。23は、例えば疑似乱数発生器のような乱数発生部であり、ランダムな値を生成するために利用される。24は、演算処理部22が実行すべきプログラムや、処理の過程で生成される演算結果等の情報や、他の装置から受信した情報、各種パラメータなどを記憶するための記憶部である。
【0057】
以下、与えられた有限体F 上の秘密の確認可能な分散を実現する方法を、具体的に説明する。
【0058】
まず、秘密s に対する部分行列S を、具体的に説明する。
【0059】
ある与えられた有限体上の秘密の元s に対する部分行列S=[s(i,j)](i,j=1,...,n) とは、各行ベクトルS_r(i)=[s(i,1),...,s(i,n)](i=1,...,n)の要素が、s_r(i)を定数項とするt 次の多項式fiのn 個の異なる値i1,...,in に対する値fi(i1),...,fi(in) になり、各列ベクトルS_c(j)=[s(1,j),...,s(n,j)](j=1,...,n)の要素が、s_c(j)を定数項とするt 次の多項式gjのn 個の異なる値j1,...,jn に対する値gj(j1),...,gj(jn) になり、更に、前述の値のベクトル[s_r(1),...,s_r(n)] 及び[s_c(1),...,s_c(n)] の両方は、元の秘密s を定数項とするt 次の多項式f 及びg の値f(i1,...,in)及びg(j1,...,jn)になっているものである。
【0060】
次に、本実施例の処理を、与えられた有限体上の秘密を全ての加入者間で秘密に分散保持されるように秘密部分を分配する秘密分散処理と、全ての加入者に分散された秘密または(不正があった場合に)不正をした加入者を明らかにする秘密復元処理の二つの処理に分けて説明する。
【0061】
(1) 秘密分散処理
秘密分散処理とは、秘密の元s を持っている加入者d がs に対する秘密部分を分配する処理である。図5に、その処理手順を示す。同図において、処理Rj,i は、ラウンドjにおける加入者iの実行する処理である。
【0062】
以下において、h は効率的な(高速な計算方式のある)一方向性ハッシュ関数を表す。例えば高速なブロック暗号化関数によって構成されたハッシュ関数(前出の“現代暗号理論”参照)が用いられる。安全性パラメータk はある定数k’に対してk=nk’ を満たす。この場合、秘密分散処理の確認が誤る確率は、Cut and Choose処理によって、2^(−k’(t+1))になる(前記 T. Rabin, M. Ben−Or ”Verifiable Secret Sharing and Multiparty Protocols with Honest Majority”参照)。
【0063】
(ラウンド1)加入者d は、乱数発生部23を用いて、元の秘密s 及び与えられた有限体上のランダムに選ばれた秘密の元l1,...,lk に対する部分行列S,L1,...,Lk を生成する。そして、図4に示すように、秘密値s_r(1),...,s_r(n),l1_r(1),...,l1_r(n),...,lk_r(1),...,lk_r(n) に対する一方向性ハッシュ関数の値s*を、ハッシュ演算処理部83により計算する。
【0064】
加入者d は、各加入者i (i=1,...,n 、ただし自分は除く)に対して、秘密通信路13を利用して、生成した各部分行列の各列ベクトルS_c(i),L1_c(i),...,Lk_c(i)及び秘密s_r(i),l1_r(i),...,lk_r(i)(情報B1.i)を秘密通信路を用いて送信し、全加入者間でハッシュ値s*(情報B1.d)を、放送通信路を用いて放送する(処理R1.d)。
【0065】
(ラウンド2)各加入者i (i=1,...,n )は乱数発生部23を用いて、k’個のランダムに選択されたビット(情報B2.i)を放送する(処理R2.i)。それらのランダムに選ばれたk’個のビットをBi_1,..,Bi_k’ 、n 人の全ての加入者に対する全ビットをB1,...,Bk と呼ぶ。
【0066】
(ラウンド3)加入者d は、ラウンド2で放送された各ビットBj(j=1,...,k )に対して、Bjが1 であればラウンド1で加入者d が生成した部分行列Ljを放送し、Bjが0 であればラウンド1で加入者d が生成した部分行列S とLjの要素毎の有限体上の加算結果(S+Ljと書く)を放送する(処理R3.d)。加入者d が放送した情報は、図5でB3.dと表わされている。
【0067】
(ラウンド4)各加入者i (i=1,...,n )は、ラウンド1で秘密に受信した情報B1.iの中で、各値j (j=1,...,k )に対して、列ベクトルLj_c(i) 及びlj_r(i) (ラウンド2で放送されたビットBjが1 の場合)あるいは Lj_c(i)+S_c(i) 及びlj_r(i)+s_r(i)(Bjが0 の場合)が、ラウンド3で放送された部分行列に対応する列ベクトル及び秘密値と等しいかどうかを確認し、ある値j に対して等しくなければ、加入者d の判定メッセージ(情報B4.i)を放送する(処理R4.i)。
【0068】
(ラウンド5)加入者d は、ラウンド4で判定メッセージ(情報B4.i)が放送された場合に、判定メッセージを放送した各加入者j に関するラウンド1で加入者d が秘密に送信した情報B1.j(ここでは、情報B5.d)を放送する(処理R5.d)。
【0069】
(後処理)各加入者i (i=1,...,n )は、ラウンド5で放送された情報が正しくなければ、あるいはラウンド4に放送された判定メッセージの数がしきい値t より多ければ、加入者d が不正をしたと判断する(処理Pi)。
【0070】
以上のラウンド1から5までで各加入者i が受信した全ての情報を、s_i とする。
【0071】
(2) 秘密復元処理
秘密復元処理とは、上述の秘密分散処理により各加入者が持っている情報s_i から、全ての加入者によって元の秘密s を計算するための処理である。図6にその手順を示す。
【0072】
(ラウンド1)各加入者i (i=1,...,n )は、部分情報s_i 含まれている秘密値s_c(i)及びs_r(i)(情報B1.i)を放送する(処理R1.i)。
【0073】
(ラウンド2)各加入者i (i=1,...,n )は、ラウンド1で放送された値の内t+1 個の値s_c(i,1),...,s_c(i,t+1) 及びs_r(i,1),...,s_r(i,t+1) を選び、多項式補間処理の結果s(c)及びs(r)を求め、両方が等しくなり、かつ残りの放送された値がその値s(c)=s(r) に対応する同じ多項式の正しい値になるかどうかを確認する。全ての値が正しければ、元の秘密s はs(c)=s(r) と等しいと判断し復元処理が終わる。一方、同じ多項式に対応しない値が放送された場合には、部分情報s_i に含まれている列ベクトルS_c(i)(情報B2.i)を放送する(以上、処理R2.i)。
【0074】
(ラウンド3)各加入者i (i=1,...,n )は、ラウンド2で放送された列ベクトルS_c(j)(j=1,...,n )から部分行列S’を生成し、1,...,n から異なるt+1 個の値を含む全ての集合t1,...,tm (全部でm=t+1=n!/((t+1)!(n−t−1)!) 個の集合がある)に対する列ベクトルの集合T1,...,Tm を選び、それぞれの行と列に対する多項式補間処理の結果s’_r(1),...,s’_r(n) 及びs’_c(1),...,s’_c(n) を求め、更にこれらの値の多項式補間処理の結果s’(r) 及びs’(c) を求め、両方が等しくなり、かつそれらの列ベクトルの全ての要素がそれぞれの値s’_c(1),...,s’_c(n) 及びs’_r(1),..,s’_r(n)に対応する同じ多項式の正しい値になるかどうかを確認する。
【0075】
このように確認されたt+1 個の列ベクトルを含む集合T1,..,Tmの内に異なる正しい部分行列に対応する集合の数が最大でt+1 個になり、それらの部分行列をS_1,...,S_T (ただし、T<t+1 )と呼ぶ。正しい部分行列が一個しかなければ(T=1 )、その行列に対する秘密s が元の秘密と等しいと判断し、対応しない列ベクトルが不正をした加入者を表す。正しい部分行列が二つ以上があれば、各加入者i (i=1,...,n )は持っている全ての部分情報s_i (情報B3.i)を放送する(以上、処理R3.i)。
【0076】
(後処理)各加入者i (i=1,...,n )は、ラウンド3に放送された情報s_j (j=1,...,n )を用いて、ラウンド4で計算した正しい部分行列S_1,...,S_T (ただし、T<t+1 )に対して、上述の秘密分散処理と同一の一方向性ハッシュ関数を計算し、全ての放送された情報が正しく、分散処理のラウンド1で放送された値s*に対応するかどうかを確認する。これらの確認に対して正しい(最大一つしかありえない)部分行列に対応する秘密s’は元の秘密s と等しいと判断する。それに対して前述の確認に対して正しい部分行列がなかったならば、秘密を分散加入者d が不正したと判断する(処理Pi)。
【0077】
以上のように、本実施例によれば、前述した従来の対話型方式(1) に必要なn^3k^2のオーダーの通信量に対して、n^2kのオーダー(n は加入者の数、k は安全性のパラメータ)の通信量になる。また、従来の非対話型方式(2) に必要なn のオーダー回の特殊な一方向性関数の計算量に対して、1 回だけの一方向性ハッシュ関数の計算量になり、従来方式に対して通信量及び計算量ともに実現可能な方式が得られる。
【0078】
(実施例2)
実施例1に示された確認可能な秘密分散処理及び秘密復元処理は、従来技術による安全な分散演算方式(たとえば、D. Beaver ”Secure Multiparty Protocols and Zero−Knowledge Proof Systems Tolerating a Faulty Minority”, Journal of Cryptology, 1991、あるいは、M. Cerecedo, T. Matsumoto, H. Imai ”A Note on Multiparty Protocols to Compute Multiplicative Inverses”, SCIS ’94, Biwako, Japan, January 1994 参照)の部分処理として用いることによって、より効率的な分散演算処理システムを構成できる。
【0079】
それらの分散演算方式は、分散乗算処理と分散加算処理を基本的な部分処理として使用し、部分乗算処理は部分加算処理をその部分処理として利用する。また、与えられた有限体上の一般的な演算もまた、分散乗算処理及び分散加算処理の2つを利用する事によって構成できる。よって、全ての基本的な部分処理になる分散加算処理を、実施例1の処理を用いて具体的に構成する場合について、図7を用いて説明する。
【0080】
実施例1に示された確認可能な秘密分散処理によって、与えられた有限体上の二つの秘密の元x とy が分散されたとき(このとき、各加入者i が秘密の元x とy に対応する秘密部分x_i 及びy_i を持つ)、通信を行わずに、与えられた有限体上の和x+y に対応する秘密部分(x+y)_i を、次のように計算する。
【0081】
まず、各加入者が持っている部分行列の列ベクトルX_c(i)及びY_c(i)かつ秘密値x_r(i)及びy_r(i)(実施例1参照)の要素毎に加算すると、その加算結果X_c(i)+Y_c(i) 及びx_r(i)+y_r(i) が、x+y に対する部分行列の列ベクトル及び秘密値になることは、部分行列の定義(行と列の要素が多項式の値となる)から明らかである。
【0082】
また、秘密復元処理において部分情報を確認するために用いられる一方向性ハッシュ関数の値x*及びy*は、両方を記憶し、加算の結果x+y を復元処理のときに、必要であれば両方を用いることによって、秘密x+y に対応する部分行列X+Y を確認する。
【0083】
以上のような分散加算処理を部分処理として、一般的な分散演算システムを構成できる。
【0084】
(他の実施例)
本発明は、実施例1に示した部分行列の次元数等に限定されるものではなく、さらに多次元の部分配列でもよく、また、用いる関数は、一方向性ハッシュ関数でなくても、一方向性が保証されれば他の関数でもよい。また、Cut and Choose技術も、実施例1に具体的に示した手順でなくても、全ての秘密を漏らすことなくその正当性を確認できる手法であればよい。
【0085】
【発明の効果】
以上説明したように、本発明によれば、不正があった場合には不正をした加入者を識別できる(誤りを検出できる)秘密情報の処理方法及びそのシステムを、効率的な通信量及び計算量によって提供できるという効果がある。
【0086】
そして、従来に比べて、通信量及び計算量が削減できるので、安全な分散演算処理のように、繰り返して同時に多くの秘密分散処理を行う必要がある処理に対しては、通信量が少ないことによって通信システムのトラフィックや通信料金等が改善され、計算量が少ないことによって処理が高速化されるという効果を生じる。
【図面の簡単な説明】
【図1】本発明の1実施例における通信システムのブロック構成を示す図である。
【図2】各加入者の用いる情報処理装置のブロック構成を示す図である。
【図3】秘密と部分行列との関係を示す図である。
【図4】一方向性ハッシュ関数の処理を示す図である。
【図5】秘密分散処理の手順を示す図である。
【図6】秘密復元処理の手順を示す図である。
【図7】分散演算処理を説明する図である。
【図8】入力メッセージよりハッシュ値を得るための処理を示す図である。
【符号の説明】
11 情報処理装置
12 放送通信路
13 秘密通信路
21 通信部
22 演算処理部
23 乱数発生部
24 記憶部
81 暗号化回路
82 関数演算回路
83 ハッシュ演算処理部

Claims (14)

  1. 複数の情報処理装置を有し、各装置が、個別の装置間で他の装置には秘密に情報の通信を行なうための秘密通信路と、各装置から他の全ての装置へ共通に情報の送信を行なうための放送通信路とを介して接続された通信システムにおいて、
    秘密情報を有する第1の情報処理装置が、当該秘密情報から所定の部分配列を生成し、
    前記第1の情報処理装置が、他の各情報処理装置に対して、前記部分配列より夫々異なる第1の部分情報を抽出して、当該各情報処理装置に前記秘密通信路を介して送信し、
    前記第1の情報処理装置が、前記第1の部分情報の夫々に所定の関数を作用させ、得られた出力値を前記放送通信路を介して他の全ての装置へ放送し、
    前記各情報処理装置が、乱数を生成し、生成された乱数を前記放送通信路を介して他の全ての装置へ放送し、
    前記第1の情報処理装置が、放送された前記乱数の値に応じて、前記部分配列より第2の部分情報を生成し、生成された第2の部分情報を前記放送通信路を介して他の全ての装置へ放送し、
    前記各情報処理装置が、前記第1の部分情報及び放送された前記乱数に応じて、第2の部分情報の当該各情報処理装置に対応する部分として前記第1の情報処理装置で生成されるべき第3の部分情報を生成し、
    前記各情報処理装置が、前記第3の部分情報と放送された前記第2の部分情報の当該各情報処理装置に対応する部分とを比較して、前記第1の情報処理装置による秘密の分散を確認することを特徴とする秘密情報処理方法。
  2. 前記各情報処理装置が、前記比較の結果が不一致の場合に、前記放送通信路を介して他の全ての装置へメッセージを放送し、放送された前記メッセージの総数に基づいて、前記確認を実行することを特徴とする請求項1に記載の秘密情報処理方法。
  3. 前記各情報処理装置に送信された前記第1の部分情報に基づいて、前記各情報処理装置全体により、前記秘密情報の復元を実行することを特徴とする請求項1に記載の秘密情報処理方法。
  4. 前記各情報処理装置が夫々、送信された前記第1の部分情報に基づいて演算を実行し、該演算結果に基づいて、前記復元を行なうことで、前記秘密情報に対する演算を実行することを特徴とする請求項1に記載の秘密情報処理方法。
  5. 前記部分配列は、前記秘密情報及びランダムに選ばれた秘密の元の各々に対して定まる部分行列であって、該部分行列の行ベクトル及び列ベクトルが、対応する各秘密に対する秘密部分であり、各ベクトルの要素が、当該ベクトルの秘密部分であることを特徴とする請求項1に記載の秘密情報処理方法。
  6. 前記関数が一方向性の関数であることを特徴とする請求項1に記載の秘密情報処理方法。
  7. 前記秘密情報は有限体上の元であり、前記部分情報の生成は該有限体上の演算を利用することを特徴とする請求項1に記載の秘密情報処理方法。
  8. 複数の情報処理装置と、
    前記装置の各々が、個別の装置間で他の装置には秘密に情報の通信を行なうための秘密通信路と、
    前記装置の各々から他の全ての装置へ共通に情報の送信を行なうための放送通信路とを有する通信システムであって、
    秘密情報を有する第1の情報処理装置に、
    前記秘密情報から所定の部分配列を生成する第1の生成手段と、
    他の各情報処理装置に対して、前記部分配列より夫々異なる第1の部分情報を抽出して、当該各情報処理装置に前記秘密通信路を介して送信する抽出手段と、
    前記第1の部分情報に所定の関数を作用させ、得られた出力値を前記放送通信路を介して他の全ての装置へ放送する関数処理手段と、
    他の情報処理装置より放送された乱数の値に応じて、前記部分配列より第2の部分情報を生成し、生成された第2の部分情報を前記放送通信路を介して他の全ての装置へ放送する第2の生成手段とを具え、
    前記第1の情報処理装置以外の各情報処理装置に、
    乱数を生成し、生成された乱数を前記放送通信路を介して他の全ての装置へ放送する乱数生成手段と、
    前記第1の情報処理装置から送信された第1の部分情報及び放送された前記乱数に応じて、第2の部分情報の当該各情報処理装置に対応する部分として前記第1の情報処理装置で生成されるべき第3の部分情報を生成する第3の生成手段と、
    前記第3の部分情報と放送された前記第2の部分情報の当該各情報処理装置に対応する部分とを比較して、前記第1の情報処理装置による秘密の分散を確認する確認手段とを具えたことを特徴とする通信システム。
  9. 前記各情報処理装置が、前記比較の結果が不一致の場合に、前記放送通信路を介してメッセージを放送するメッセージ放送手段を具え、前記確認手段が、放送された前記メッセージの総数に基づいて、前記確認を実行することを特徴とする請求項8に記載の通信システム。
  10. 前記各情報処理装置に送信された前記第1の部分情報に基づいて、前記各情報処理装置全体により、前記秘密情報の復元を実行することを特徴とする請求項8に記載の通信システム。
  11. 前記各情報処理装置に、送信された前記第1の部分情報に基づいて演算を実行する演算手段を具え、該演算結果に基づいて、前記各情報処理装置全体により、前記復元を行なうことで、前記秘密情報に対する演算を実行することを特徴とする請求項8に記載の通信システム。
  12. 前記部分配列は、前記秘密情報及びランダムに選ばれた秘密の元の各々に対して定まる部分行列であって、該部分行列の行ベクトル及び列ベクトルが、対応する各秘密に対する秘密部分であり、各ベクトルの要素が、当該ベクトルの秘密部分であることを特徴とする請求項8に記載の通信システム。
  13. 前記関数が一方向性の関数であることを特徴とする請求項8に記載の通信システム。
  14. 前記秘密情報は有限体上の元であり、前記生成手段は、該有限体上の演算を利用することを特徴とする請求項8に記載の通信システム。
JP17848394A 1994-07-29 1994-07-29 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム Expired - Fee Related JP3604737B2 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP17848394A JP3604737B2 (ja) 1994-07-29 1994-07-29 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム
US08/507,524 US5708714A (en) 1994-07-29 1995-07-26 Method for sharing secret information and performing certification in a communication system that has a plurality of information processing apparatuses
AT95305211T ATE295644T1 (de) 1994-07-29 1995-07-26 Verfahren zur gemeinsamen nutzung einer geheimen information, zur erzeugung einer digitalen unterschrift und zur ausführung einer beglaubigung in einem kommunikationssystem mit mehreren informationsverarbeitungseinrichtungen und kommunikationssystem zur anwendung dieses verfahrens
DE69534192T DE69534192T2 (de) 1994-07-29 1995-07-26 Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens
EP95305211A EP0695056B1 (en) 1994-07-29 1995-07-26 A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method
AU27198/95A AU702563B2 (en) 1994-07-29 1995-07-26 A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method
CA002154970A CA2154970C (en) 1994-07-29 1995-07-28 Method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information procesing apparatuses and a communication system that employs such a method
CN 95115810 CN1092434C (zh) 1994-07-29 1995-07-28 共享保密信息,产生数据签名和执行确认的方法和通信系统
KR1019950023701A KR0148300B1 (ko) 1994-07-29 1995-07-29 복수의 정보 처리 장치를 구비하는 통신 시스템에서 비밀 정보의 분산, 디지탈 서명의 생성 및 인증의 수행 방법과 그 통신 시스템
HK98112822A HK1011809A1 (en) 1994-07-29 1998-12-04 A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17848394A JP3604737B2 (ja) 1994-07-29 1994-07-29 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム
JP00818495A JP3610106B2 (ja) 1995-01-23 1995-01-23 複数の装置を有する通信システムにおける認証方法

Publications (2)

Publication Number Publication Date
JPH0846607A JPH0846607A (ja) 1996-02-16
JP3604737B2 true JP3604737B2 (ja) 2004-12-22

Family

ID=33161301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17848394A Expired - Fee Related JP3604737B2 (ja) 1994-07-29 1994-07-29 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム

Country Status (2)

Country Link
JP (1) JP3604737B2 (ja)
CN (1) CN1092434C (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002087145A1 (en) 2001-03-16 2002-10-31 International Business Machines Corporation Method of verifiably sharing a secret in potentially asynchronous networks
JP5396352B2 (ja) * 2003-04-15 2014-01-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
WO2012011565A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
EP3021518B1 (en) * 2013-08-22 2018-04-18 Nippon Telegraph And Telephone Corporation Multi-party secure authentication system, authentication server, intermediate server, multi-party secure authentication method, and program
WO2018216512A1 (ja) * 2017-05-25 2018-11-29 日本電信電話株式会社 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
CN108155989B (zh) * 2017-12-28 2020-11-03 贵州玛迩比特通信科技有限公司 一种多用户认证方法及系统
CN115051802A (zh) * 2022-07-06 2022-09-13 国网四川省电力公司绵阳供电公司 一种五防锁管理系统及方法

Also Published As

Publication number Publication date
JPH0846607A (ja) 1996-02-16
CN1132429A (zh) 1996-10-02
CN1092434C (zh) 2002-10-09

Similar Documents

Publication Publication Date Title
KR0148300B1 (ko) 복수의 정보 처리 장치를 구비하는 통신 시스템에서 비밀 정보의 분산, 디지탈 서명의 생성 및 인증의 수행 방법과 그 통신 시스템
Gennaro et al. Simplified VSS and fast-track multiparty computations with applications to threshold cryptography
Blackburn Combinatorics and threshold cryptography
Gennaro et al. Robust threshold DSS signatures
Gennaro et al. Robust threshold DSS signatures
US7653197B2 (en) System and method of reliable forward secret key sharing with physical random functions
US7200752B2 (en) Threshold cryptography scheme for message authentication systems
Franklin et al. Verifiable signature sharing
US20040234074A1 (en) Generation of a mathematically constrained key using a one-way function
Kurosawa et al. t-cheater identifiable (k, n) threshold secret sharing schemes
JP5093513B2 (ja) 不正者失効システム、暗号化装置、暗号化方法およびプログラム
US6937728B1 (en) Verifiable anonymous channel
JP3604737B2 (ja) 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム
Luo et al. Hardware implementation of secure shamir's secret sharing scheme
Jhanwar et al. Unconditionally-secure robust secret sharing with minimum share size
Klíma et al. Further results and considerations on side channel attacks on RSA
Deryabin et al. Secure verifiable secret short sharing scheme for multi-cloud storage
JP2980320B2 (ja) 暗号文による通信方式における暗号鍵共有方式
Moldovyan et al. Symmetric encryption for error correction
Smart et al. Secure multi-party computation
Koikara et al. Publicly verifiable threshold secret sharing based on three‐dimensional‐cellular automata
Hemenway et al. Efficient robust secret sharing from expander graphs
Longo et al. Threshold multi-signature with an offline recovery party
JPH08204697A (ja) 複数の装置を有する通信システムにおける署名生成方法
Wong et al. How (Not) to Build Threshold EdDSA

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040930

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees