JP3610106B2 - Authentication method in a communication system having a plurality of devices - Google Patents

Authentication method in a communication system having a plurality of devices Download PDF

Info

Publication number
JP3610106B2
JP3610106B2 JP00818495A JP818495A JP3610106B2 JP 3610106 B2 JP3610106 B2 JP 3610106B2 JP 00818495 A JP00818495 A JP 00818495A JP 818495 A JP818495 A JP 818495A JP 3610106 B2 JP3610106 B2 JP 3610106B2
Authority
JP
Japan
Prior art keywords
secret
authenticator
authentication
distributed
side device
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
JP00818495A
Other languages
Japanese (ja)
Other versions
JPH08204696A (en
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
Priority to JP17848394A priority Critical patent/JP3604737B2/en
Priority to JP00818495A priority patent/JP3610106B2/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to US08/507,524 priority patent/US5708714A/en
Priority to AT95305211T priority patent/ATE295644T1/en
Priority to DE69534192T priority patent/DE69534192T2/en
Priority to EP95305211A priority patent/EP0695056B1/en
Priority to AU27198/95A priority patent/AU702563B2/en
Priority to CN 95115810 priority patent/CN1092434C/en
Priority to CA002154970A priority patent/CA2154970C/en
Priority to KR1019950023701A priority patent/KR0148300B1/en
Publication of JPH08204696A publication Critical patent/JPH08204696A/en
Priority to HK98112822A priority patent/HK1011809A1/en
Application granted granted Critical
Publication of JP3610106B2 publication Critical patent/JP3610106B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、通信路によって複数の装置が接続された通信システムに関し、特に、認証を複数の装置で分散して行う通信システムにおける認証方法に関するものである。
【0002】
【従来の技術】
従来、多くの通信システムでは、情報をパケットと呼ばれるデータブロック単位で伝達する。パケットは、指定した宛先に伝達した場合でも、通信システムを構成する全ての装置(のユーザ)がそのパケットを受信することができる。また、複数の装置が同じ通信路を介して接続されているために、パケットの送信元を特定することは困難である。このため、このような通信システムでは、別の宛先に対するパケットを不正に入手する「盗聴」と、ある装置を別の装置に見せかける「なりすまし」という攻撃にさらされやすい。
【0003】
この盗聴となりすましの脅威を和らげるために、公開鍵暗号方式(池野、小山: ”現代暗号理論” 、電子通信学会、1986 参照)と呼ばれる暗号技術を用いた手法が知られている。公開鍵暗号方式の中には、RSA暗号のように、暗号化機能の他に「ディジタル署名」と呼ばれる認証機能を持つものがあり、これを用いて署名付きで暗号通信を行うことで、盗聴やなりすましを防止することができる。
【0004】
また、盗聴となりすましの脅威を和らげる他の対策として、計算量の少ない共通鍵暗号方式によるケルベロス(kerberos:S.Garfinkel and G.Spafford共著/山口英 監訳: ”UNIXセキュリティ” 、アスキー、pp.349−357,pp.535−542, 1993 参照)と呼ばれるネットワークにおける認証方式がよく知られている。
【0005】
以下に、Needham とSchroeder の認証プロトコル(R.N.Needham and M.D.Schroeder: ”Using Encryption for Authentication in Large Network of Computers”,CACM 21, 12, pp.993−999. Dec. 1978 参照)とBirrell のSecure RPC(Remote Procedure Call) プロトコル(A.D.Birrell: ”Secure Comunications Using Remote Procedure Calls”, ACM Trans.on Computer Systems, Vol.3. No.1, pp.1−14,Feb. 1985 参照)に基づく具体的なケルベロスの認証プロトコルを説明する。
【0006】
通常、ケルベロスには、その通信システムの全装置の秘密情報(秘密鍵に相当する)を管理する認証サーバが存在する。まず、認証サーバは、図16の(a) に示すように、各装置iと秘密鍵pkiを共有する。以下、証明を求めるものを証明者、証明者を認証するものを認証者と呼ぶものとする。
【0007】
図16の(b) に示すように、証明者Aが認証者Bに証明を求める場合、Aは{A,B,R}のような形式のデータ161を認証サーバに送る。但し、AとBは装置またはユーザネームのような証明者Aと認証者Bを特定するための公開識別情報であり、 Rはランダムに選ばれた数である。
【0008】
これに対し、認証サーバは、{認証子,R,B,CK}^pkAというデータ162をAに返す。但し、{M}^kは、メッセージMを鍵kで暗号化したデータであることを示し、認証子は、タイムスタンプTを用いて{T,A,CK}^pkBのように構成されているデータ163であり、CKは、以降のA、B間の共通鍵暗号通信に用いる認証サーバによって生成された共通鍵である。
【0009】
以後、証明者と認証者の間で共通鍵暗号通信を行う時の秘密の共通鍵を会話鍵と呼ぶことにする。従って、認証サーバは、会話鍵の配送サーバとしての役割も果たす。最後に、証明者Aは前述した認証子163を認証者Bに送り、Bは認証子を自分の秘密のマスター鍵pkBで複合することにより、Aを認証し、その後の後、共通の会話鍵CKを用いて暗号通信を行う。
【0010】
以上のようにして、ケルベロスを用いた認証プロトコルにより盗聴やなりすましの脅威を和らげることができる。
【0011】
【発明が解決しようとしている課題】
しかしながら、公開鍵暗号方式では、512ビット以上の大きな整数のべき乗剰余演算を行う必要があり、計算量が膨大になるという問題点がある。
【0012】
また、共通鍵方式におけるケルベロスのようなプロトコルでは、認証サーバが通信システムを構成する全ての装置の秘密情報を管理するために、物理的な意味も含めて、完全に信頼できる認証サーバを必要とするという問題がある(同様に、公開鍵暗号方式の場合も、全ての公開鍵を管理する集中管理センタが必要であり、同じ問題点を持つ)。よって、セキュリティを万全のものとするためには、認証サーバを許可のない人間が勝手に入り込めない施錠された部屋などで厳重に管理する必要があった。また、その認証サーバが故障や犯罪などによって信頼できなくなった場合には、そのシステム全体の安全性が崩壊するといったフォールトトレランスが弱いという問題点があった。
【0013】
そこで、このような認証サーバの信頼性の問題を解決するために、本発明では、複数の装置によって、秘密情報を分散管理する分散認証サーバを提案する。
【0014】
この分散認証サーバに対する要求は、以下のようなものである。
(1) 証明者や認証者に対して、分散認証プロトコルは、従来の集中管理による認証プロトコルと同一の認証機能を実現する。
(2) 証明者や認証者に対して、分散認証プロトコルは、従来の集中管理による認証プロトコルと同じインターフェース(データ形式)を保証する。
(3) 証明者や認証者に対して、分散認証プロトコルは、従来の集中管理による認証プロトコルと同じ計算量で実現される。
(4) 分散認証サーバを構成する装置の過半数が信頼できない場合を除いて、上記の要求が満足される。
【0015】
【課題を解決するための手段】
上述の課題を解決するために、本発明の認証方法によれば、分散認証サーバを構成する装置群を含む複数の装置を有する通信システムにおいて、
認証者側装置に認証されることを求める証明者側装置が、分散認証サーバを構成する各装置に、証明者及び認証者の識別子を含む認証要求メッセージを送信し、
前記分散認証サーバを構成する各装置が共同して、前記認証要求メッセージに基づいて、認証者に関する秘密鍵で暗号化された認証子を生成し、該認証子を証明者に関する秘密鍵で暗号化して認証メッセージを生成し、
前記分散認証サーバを構成する各装置が、前記認証メッセージを前記証明者側装置に送信し、
前記認証メッセージを受信した前記証明者側装置が、当該認証メッセージを復号し、得られた認証子を前記認証者側装置に送信し、
前記認証子を受信した前記認証者側装置が、該認証子を復号して証明者を認証する。
【0016】
【実施例】
以下、図面を参照して本発明の実施例を詳細に説明する。
【0017】
[実施例1]
図1は、本発明の1実施例である、分散した情報処理装置を有する情報処理システムを示す図である。
【0018】
同図において、14は、分散認証サーバを構成する装置(以後、メンバと呼ぶ)AS(1),…, AS(k) である。11は、各装置間で(他の通信路からアクセスできない様に設計されているなど)物理的に安全に秘密の通信を行うことができる秘密通信路であり、12は、全てのメンバを情報を公開することができるように相互接続する放送型通信路である。ここで、メンバの数は、効率の面から20以下程度の比較的少ない数であるとする。
【0019】
通信システムを構成する全装置の数は、メンバに比べてかなり多くてもよく、メンバと秘密通信路11を介して接続される。また、各装置間は、通常の(安全でない)通信路13によって通信する。以後、1つの装置が他の装置にあるサービス(例えば、ファイル転送、リモートプロシージャーコール等)の要求を送った場合、要求した装置を「クライアント」、この要求を受けサービスを提供する装置を「サーバ」と呼ぶこととする。図1において、15は、このようなクライアントやサーバとなる装置C/S(1),…, C/S(n) を示している。但し、メンバがクライアントやサーバとなる場合もある。
【0020】
本実施例では、このようなクライアントやサーバに、互いの認証や通信内容の認証を実現する。また、クライアントとサーバの間に秘密通信を行うための秘密鍵の共有も実現する。更に、秘密情報をメンバ間で分散して管理・計算するために、従来の印象サーバに比べて安全であるという利点も得られる。以下では、クライアントがサーバにサービスを要求するために、自分を識別する認証を求めた時に、認証を求めるクライアントを「証明者」、認証を与えるサーバを「認証者」と呼ぶ。
【0021】
図2は、メンバとなる装置のブロック構成を示す図である。同図において、21は、秘密通信路12または放送型通信路13により、他の装置と通信を行なうための通信部である。22は、演算処理部であり、記憶部24のプログラムに従って、後述する一方向性ハッシュ関数などの各種演算や判定の処理を行なうとともに、装置各部を制御する。23は、例えば疑似乱数発生器のような乱数発生部であり、ランダムな値を生成するために利用される。24は、演算処理部22が実行すべきプログラムや、処理の過程で生成される演算結果等の情報や、他の装置から受信した情報、各種パラメータなどを記憶するための記憶部である。また、通信システムのメンバ以外の装置も、メンバと同様のハードウェア構成をとるものとする。
【0022】
分散認証プロトコルの基本部分は、以下に説明するVSS(verifiable Secret Sharing:確認可能な秘密分散) プロトコルである。VSSによれば、1つの秘密情報を、その過半数未満では元の秘密情報を推測できず、過半数の情報が正しければ元の秘密情報を復元できるような複数の秘密部分に分散する技術である。
【0023】
[VSSプロトコル]
与えられた有限体F上の秘密を確認可能に分散する手順を以下に説明する。
【0024】
図3は、秘密s と部分行列S との関係を示す図である。
【0025】
本実施例において、ある秘密の元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個の異なる値il,...,in に対する値fi(il),...,fi(in) となり、各列ベクトルS_c(j)=[s(1,j),...,s(n,j)](j=1,...,n)が、ある秘密s_c(j)を定数項とするt次の多項式giのn個の異なる値il,...,in に対する値gi(il),...,gi(in) になり、更に、ベクトル[s_r(1),...,s_r(n)] 及び[s_c(1),...,s_c(n)] の両方は、元の秘密s を定数項とするt次の多項式f 及びg の値f(il,...,in)及びg(il,...,in)になっているものである。
話型確認可能な秘密分散方式に用いられている部分行列に、以下に説明するように、更に条件が付けられた秘密部分のn ×n 行列S=[s(i,j)](i,j=1,...,n)である。
【0026】
まず、各行ベクトル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)に対する秘密部分ベクトルになる。
【0027】
ただし、前述の秘密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 に送信することによって、秘密復元処理のときに、部分情報を配った加入者が不正をしなければ、各加入者によって放送された部分情報が正しいかどうかを非常に高い確率で確認できる。
【0028】
また、本実施例では、元の秘密情報を持ち、秘密部分情報を配った加入者が不正をした場合でも秘密復元処理のとき放送される部分情報が正しいかどうかを確認するために、秘密部分情報を配る上で各加入者i (i=1,...,n )に対応する秘密s_r(i)の認証子のような役割を果たす値を一方向性ハッシュ関数(池野、小山:”現代暗号理論”、pp.224−225、電子情報通信学会、1986、参照)によって生成する。
【0029】
次に、この一方向性ハッシュ関数について説明する。
【0030】
一方向性ハッシュ関数とは、データ圧縮型スクランブルを行う関数であり、入力値から出力値を求める演算は容易であるが、出力値から入力値を求める逆演算は困難である関数である。ただし、本実施例では、従来の非対話型確認可能な秘密分散方式に用いられる一方向性関数に比べると、特殊な代数学的な性質を持たなくてもよく、計算処理の高速な一方向性ハッシュ関数を利用できる。
【0031】
一方向性ハッシュ関数の具体例として、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)のようなブロック暗号を用いた一方向性ハッシュ関数を提案されている。
【0032】
図8は、一方向性ハッシュ関数の具体的な構成を説明する図である。
【0033】
同図において、(a) は、DES によるブロック暗号化を示しており、81は、64ビットの入力及び56ビットの鍵から64ビットの出力が得られる暗号化回路(図8では、DES をE で表している)である。
【0034】
(b) は、このDES を部分処理として利用し、入力の長さが119 ビットで出力の長さが112 ビットとなる関数F の処理を示しており、82は、関数演算回路である。この処理は、次のように定義される。
【0035】
まず、入力を二つの部分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 関数の出力となる。
【0036】
(c) は、与えられたメッセージを入力として、一方向性ハッシュ関数のハッシュ値を出力とする処理を示しており、83は、ハッシュ関数処理部である。この処理は、次のように実行される。
【0037】
まず、与えられたメッセージの最初の119 ビットを上述の関数F の入力として、最初の112 ビットの出力を得る。次に、その出力を再び入力の112 ビット分とし、以後メッセージから残りの7 ビット分を連続して繰り返し関数F に入力する。最後に、全メッセージを入力したときに(メッセージの最後の7 ビットを入力するために足りないビットがあれば適当に’0’ を加える)得られた112 ビットの出力をメッセージに対するハッシュ値とする。
【0038】
前述のように計算されたハッシュ関数の一方向性(1つのハッシュ値が与えられたとき、同じハッシュ値が得られるような異なる入力のメッセージを求めることが極めて困難であること)は、用いられるDES のようなブロック暗号の安全性(入力が与えられたとき出力は鍵によるランダムな変数になり、出力が与えられたとき入力は鍵によるランダムな変数になる)によって与えられることが、R. Merkle より示されている(前述の論文参照)。
【0039】
更に、同じ論文では前述のハッシュ関数より効率のよい一方向性ハッシュ関数も提案されており、ブロック暗号を利用しない効率的な一方向性ハッシュ関数が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)によって提案されている。
【0040】
次に、本実施例におけるCut and Choose処理を説明する。
【0041】
従来の対話型確認可能な秘密分散方式で行われる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 より多ければ、秘密分散処理が正しくないと判断される。
【0042】
以上によって、従来の確認可能な秘密分散方式の条件(c),(d) の代わりに、次の条件(c’),(d’) を満たす秘密分散方式が実現でき、それを用いて安全に分散計算を実行する方式及び通信システムが実現できる。
【0043】
(c’)不正な部分情報が正しい部分情報と混在したとき、t+1 個の正しい部分情報があっても元の秘密情報を復元できない場合が存在するが、不正をした加入者の識別は可能である。
【0044】
(d’)全ての加入者がその秘密の部分情報を受け取ったとき、その部分情報がある秘密情報x を復元するための正しい情報でなければ、復元処理のときに不正をした加入者の識別が可能である。
【0045】
これらの条件は、従来方式のように不正な加入者があっても秘密を復元、すなわち誤り訂正は行えないが、不正な加入者は識別、すなわち誤り検出は可能にするものである。条件(c),(d) があれば不正な加入者がいても正しく分散演算が実行できる(正当性に対するフォールトトレランスを実現できる)が、条件(c’),(d’) に変更しても不正な加入者は検出できるので警告などを行い再実行することによって正しい出力を得ることができ、正当性に対するフォールトトレランスを実現することができる。
【0046】
よって、本実施例では、分散された秘密を復元するとき不正な加入者があった場合には、復元できないこともありえるが不正を行った加入者の識別は可能であるような確認可能な秘密分散方式を提案する。これによって、前述の対話的な方式(1) 及び暗号的な方式(2) の中間に位置する必要な計算量と通信量の両方が実用的なオーダーになる確認可能な秘密分散方式が実現できる。
【0047】
以下、与えられた有限体F 上の秘密の確認可能な分散を実現する方法を、具体的に説明する。
【0048】
まず、秘密s に対する部分行列S を、具体的に説明する。
【0049】
ある与えられた有限体上の秘密の元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)になっているものである。
【0050】
次に、本実施例の処理を、与えられた有限体上の秘密を全ての加入者間で秘密に分散保持されるように秘密部分を分配する秘密分散処理と、全ての加入者に分散された秘密または(不正があった場合に)不正をした加入者を明らかにする秘密復元処理の二つの処理に分けて説明する。
【0051】
(1) 秘密分散処理
秘密分散処理とは、秘密の元s を持っている加入者d がs に対する秘密部分を分配する処理である。図5に、その処理手順を示す。同図において、処理Rj,i は、ラウンドjにおける加入者iの実行する処理である。
【0052】
以下において、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” 参照)。
【0053】
(ラウンド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*を、演算処理部22により計算する。
【0054】
加入者d は、各加入者i (i=1,...,n 、但し自分は除く)に対して、生成した各部分行列の各列ベクトルS_c(i),L1_c(i),...,Lk_c(i)及び秘密s_r(i),l1_r(i),...,lk_r(i)(情報B1.i)を、秘密通信路11を用いて送信し、全加入者間でハッシュ値s*(情報B1.d)を、放送通信路12を用いて放送する(処理R1.d)。
【0055】
(ラウンド2)各加入者i (i=1,...,n )は乱数発生部23を用いて、k’個のランダムに選択されたビット(情報B2.i)を放送する(処理R2.i)。それらのランダムに選ばれたk’個のビットをBi_1,..,Bi_k’ 、n 人の全ての加入者に対する全ビットをB1,...,Bk と呼ぶ。
【0056】
(ラウンド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と表わされている。
【0057】
(ラウンド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)。
【0058】
(ラウンド5)加入者d は、ラウンド4で判定メッセージ(情報B4.i)が放送された場合に、判定メッセージを放送した各加入者j に関するラウンド1で加入者d が秘密に送信した情報B1.j(ここでは、情報B5.d)を放送する(処理R5.d)。
【0059】
(後処理)各加入者i (i=1,...,n )は、ラウンド5で放送された情報が正しくなければ、あるいはラウンド4に放送された判定メッセージの数がしきい値t より多ければ、加入者d が不正をしたと判断する(処理Pi)。
【0060】
以上のラウンド1から5までで各加入者i が受信した全ての情報を、s_i とする。
【0061】
(2) 秘密復元処理
秘密復元処理とは、上述の秘密分散処理により各加入者が持っている情報s_i から、全ての加入者によって元の秘密s を計算するための処理である。図6にその手順を示す。
【0062】
(ラウンド1)各加入者i (i=1,...,n )は、部分情報s_i 含まれている秘密値s_c(i)及びs_r(i)(情報B1.i)を放送する(処理R1.i)。
【0063】
(ラウンド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)。
【0064】
(ラウンド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)に対応する同じ多項式の正しい値になるかどうかを確認する。
【0065】
このように確認された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)。
【0066】
(後処理)各加入者i (i=1,...,n )は、ラウンド3で放送された情報s_j (j=1,...,n )を用いて、ラウンド4で計算した正しい部分行列S_1,...,S_T (ただし、T<t+1 )に対して、上述の秘密分散処理と同一の一方向性ハッシュ関数を計算し、全ての放送された情報が正しく、分散処理のラウンド1で放送された値s*に対応するかどうかを確認する。これらの確認に対して正しい(最大一つしかありえない)部分行列に対応する秘密s’は元の秘密s と等しいと判断する。それに対して前述の確認に対して正しい部分行列がなかったならば、秘密を分散加入者d が不正したと判断する(処理Pi)。
【0067】
[分散された秘密の線形結合処理]
上述の確認可能な秘密分散処理によって、与えられた有限体上の元{1,...,p−1} の内にある2つの秘密の元x とy が分散されたとき(このとき、各加入者i が秘密の元x とy に対応する秘密部分x_i 及びy_i を持つ)、通信を行わずに、与えられた有限体上の和x+y に対応する秘密部分(x+y)_i を、次のように計算する。
【0068】
まず、各加入者が持っている部分行列の列ベクトルX_c(i)及びY_c(i)かつ秘密値x_r(i)及びy_r(i)を要素毎に加算すると、その加算結果X_c(i)+Y_c(i) 及びx_r(i)+y_r(i) が、x+y に対する部分行列の列ベクトル及び秘密値になることは、部分行列の定義(行と列の要素が多項式の値となる)から明らかである。
【0069】
また、秘密復元処理において部分情報を確認するために用いられる一方向性ハッシュ関数の値x*及びy*は、両方を記憶し、加算の結果x+y を復元処理のときに、必要であれば両方を用いることによって、秘密x+y に対応する部分行列X+Y を確認する。
【0070】
また、分散された1つの秘密の元xと公開の元aとの乗算を分散して計算するために、各加入者が持っている部分行列の各要素とaとの乗算を行った結果がx*aに対する部分行列の要素となる。よって、上述の処理により、図7に示すように、分散された2つの秘密の元xとy、及び公開の元a、bを用いた線形結合a*x+b*y は、そのグループに参加する各加入者間で、対話せずに分散して計算できる。
【0071】
以上のようにして、確認可能な方法で、秘密をメンバ間で分散することができる。
【0072】
次に、メンバ間で疑似乱数を分散して生成する分散疑似乱数生成(Shared pseudo−random Secret Generation) プロトコルについて説明する。
【0073】
[分散疑似乱数生成プロトコル]
分散認証サーバを構成するメンバAS(1),…, AS(k) は、分散疑似乱数rを制せするために、メンバAS(i) に対してrの秘密部分r(i)(i=1, …,k) を出力する。このプロトコルは、図8に示すようにして実現される。
【0074】
各メンバAS(i) は、有限体上の元として表現される秘密の疑似乱数riを生成する(処理81)。
【0075】
各メンバAS(i) は、前述した確認可能な秘密分散処理を用いて秘密の疑似乱数riを秘密に分散する。これを各メンバが行うことにより、各メンバAS(j)(j=1,…,k) は、各メンバの秘密部分r1(j),…,rm(j)を持つことになる。但し、m(≦k)は、正しく秘密分散を行ったことが確認されたメンバの数である(処理82)。
【0076】
各メンバAS(j) は、上述の秘密部分を加え合わせ、秘密の疑似乱数r のAS(j) に対する秘密部分となるr(j)=r1(j)+ …+rm(j)を生成する(処理83)。
【0077】
この秘密の疑似乱数r は、メンバの過半数が共謀しない限り、誰も知ることができない数である。以上の様にして、疑似乱数を分散して生成し、この疑似乱数を証明者と認証者間の会話鍵とすることができる。
【0078】
次に、メンバ間で秘密鍵暗号処理を分散して実行するプロトコルを示す。これは、秘密鍵暗号化されるデータが、分散された秘密データである場合と、公開されたデータである場合とで、処理は異なる。
【0079】
[分散秘密データの分散秘密鍵暗号化/復号]
図9の(a)は、このプロトコルを説明する図である。長さLのN個のブロックm1, …,mN で構成されるメッセージをmとする。但しVSSプロトコルは、有限体GF(2)上で実行される。メンバAS(i) には、各々の秘密部分m1(i),…,mN(i)が秘密に分散されているものとする。また、メッセージmと同じ長さを持つ秘密鍵pkもまた長さLのN個のブロックpk1,…,pkNに分割され、同じメンバ間で秘密に分散され、メンバAS(i) は、各々の秘密部分pk1(i),…,pkN(i) を持つ。
【0080】
秘密鍵pkを用いたメッセージmの秘密鍵暗号処理を行うために、各メンバAS(i) は与えられた有限体上での加算をブロック毎に以下のように行なう。
【0081】
c1(i)=m1(i)+pk1(i), …, cN(i)=mN(i)+pkN(i)
VSSプロトコルは、準同形であるので、c1(i),…,cN(i)は、暗号文cを長さL毎にN個のブロックに分割したc1, …,cN の秘密部分をに相当する。従って、前述の秘密復元処理を実行することによって、暗号文cが復元され、公開される。
【0082】
これにより、秘密鍵pkを持つ通信システム内の装置は、公開された暗号文cから元のメッセージmを復号することができる。但し、秘密鍵pkは使い捨てであり、再度使用されることはない。
【0083】
[公開データの分散秘密鍵暗号化/復号]
メッセージmが公開されている場合には、上述の暗号プロトコルでは、公開された暗号cからメッセージmを引くことにより、秘密鍵pkが知られてしますという問題が生じる。そこで、公開データについては、図9の(b) に示すようなプロトコルを用いる。
【0084】
前記の場合と同様、メッセージmは、長さLのN個のブロックm1, …,mN で構成されているものとする。但し、その内容は、メンバには既知の公開データであるとする。また、秘密鍵pkはメッセージmの2倍の長さを持ち、長さLの2N個のブロックpk1 1,pk1 2,…pkN 1,pkN 2 に分割される。このpkは各メンバ間で秘密に分散され、メンバAS(i) は、各々の秘密部分pk1 1(i),pk1 2(i),…pkN 1(i),pkN 2(i) を持つ。
【0085】
秘密鍵pkpkを用いたメッセージmの秘密鍵pk暗号処理を実現するために、各メンバAS(i) は、与えられた 有限体上の次の演算をブロック毎に行う。但し、下記の式では、・は乗算、+は加算を表している。
【0086】
c1(i)=m1・pk1 1(i)+pk1 2(i), …, cN(i)=mN・pkN 1(i)+pkN 2(i)VSSプロトコルは、線形結合に対しても、準同形であるので、c1(i),…,cN(i)は、暗号文cを長さL毎にN個のブロックに分割したc1, …,cN の秘密部分をに相当する。従って、前述の秘密復元処理を実行することによって、暗号文cが復元され、公開される。
【0087】
以上の様に、本プロトコルは、pkj 1 とpkj 2 (j=1, …,N) の2種類の鍵を用いるので、メッセージmが公開のデータであっても、秘密鍵pkは知られる個とがない。ここで、長さLは短い方が暗号化の演算が簡単となるが、改竄者が暗号文cを偽の暗号文c’に変更して、偽のメッセージm’を得させることができる確率は、2−L であるので、安全面からはLを余り小さくすることはできない。よって、Lは、32程度が適当である。
【0088】
復号に関しては、秘密鍵pkを共有する通信システム内の装置は、秘密鍵pkと暗号文cを長さL毎に分解して、pkj 1 ,pkj 2 とcj(cj−pkj 2)/pkj 1の演算を実行することにより、mjを得ることができる。これにより、元のメッセージmを復号することができる。但し、この場合も、秘密鍵pkは使い捨てであり、再度使用されることはない。
【0089】
[認証プロトコル]
以上のプロトコルを用いて、共通鍵を用いた認証が従来の集中認証サーバに代わり、分散認証サーバにより、以下のようにして実現される。
【0090】
認証プロトコルは、証明者が分散認証サーバから認証メッセージを受け取るための通信と、証明者が認証社に認証データを示すための通信とを含む。これを「オンライン処理」と呼ぶ。
ところで、このオンライン処理を行う前提として、分散認証サーバと証明者や認証者となる装置との間の秘密鍵の共有処理や、分散認証サーバによる会話鍵の生成処理を必要とする。これを「オフライン処理」と呼ぶ。このオフライン処理は、オンライン処理中に秘密鍵や会話鍵が必要となる度に実行してもよいが、それではオンライン処理の処理時間や通信時間が長くなってしまう。
【0091】
そこで、オフライン処理をオンライン処理に先立って実行しておくことで、オンライン処理を効率よく行うことができる。以下に、図10の(a) につき「オフライン処理」を、(b) につき「オンライン処理」を説明する。
【0092】
[オフライン処理]
分散認証サーバを構成するメンバ間であらかじめ共有される必要のある情報は、全装置の秘密鍵に関する情報である。しかしながら、分散秘密鍵暗号化/復号プロトコルにつき説明したように、証明者と分散認証サーバ間で用いられる秘密鍵はメッセージ後とに使い捨てであるので、非常に多くの鍵を生成する必要がある。この処理は、以下の秘密鍵配送処理により実行される。また、証明者と認証者との間の会話鍵として用いられる分散疑似乱数の生成処理も、以下のようにオフラインで実行される。
【0093】
[秘密鍵配送処理]
通信システム内で、認証を受けたい装置jは、予め、前述の秘密分散処理によって任意に選んだ十分大きな個数Mの疑似乱数pkj 1,…,pkj M を各メンバに分散する。これにより、メンバAS(i) はその疑似乱数の秘密部分pkj 1(i), …,pkj M(i) を受け取る。但し、jが正しく秘密を分散していなければ、jは自分の秘密鍵pkjを用いて認証サービスを受けられなくなるだけなので、分散された情報が正しいかどうかを確認する後処理は、この場合は省略してもよい。また、jとメンバ間に、jが嘘をついていないことを全員で確認するための放送型通信路がなくても構わない。
【0094】
この処理では、jは十分大きな数の秘密鍵pkj i (i=1, …,M) を、各メンバh(h=1, …,k) は、その秘密部分であるpkj i(h)(i=1, …,M) を、リストとして保持する。前述したように、秘密鍵は使い捨てであるので、jと各メンバhとは、それぞれ、次に利用する鍵のリスト上の位置を示すインデックスpkj 、pkj(h)を保持しておく。そして、jは処理に余裕がある時に秘密鍵を生成し、通信システムが空いている時にこの秘密を分散するようにして、更新を続ける。
【0095】
[疑似乱数生成処理]
図11に示すように、秘密鍵配送処理と同様に、証明者と認証者との間で用いられる会話鍵である分散疑似乱数r1, …,rQ も、オフライン処理によって生成あれ、リストとして保持される。分散疑似乱数の生成は、前述の分散疑似乱数生成プロトコルで述べたように、全てのメンバが疑似乱数の分散処理を行う必要があるが、全てのメンバが同時に実行する必要はないので、各メンバは処理と通信システムに余裕がある場合に、この処理を実行し、他のメンバに分散しておけば良い。これにより、各メンバは分散された疑似乱数r1(j),…,rQ(j)をリストとして、その使用位置を示すインデックスと共に保持する。
【0096】
[オンライン処理]
通信システム内のクライアントP(証明者)がサーバV(認証者)に送るための認証子を分散認証サーバから得るためのオンライン認証プロトコルは、以下のステップS1〜4により行われる。
【0097】
(ステップS1)クライアントPは、通常の通信路を用いてAUTH REQUESTとして示される情報{id P,id V,s}を含む要求メッセージ101を分散認証サーバを構成するメンバに送る。但し、id PはクライアントPを、id VはサーバVを特定するデータであり、s は任意に選ばれた乱数である。
【0098】
(ステップS2)AUTH REQUESTを受け取ったメンバは、次の処理ステップS21〜26を行う。
【0099】
(ステップS21)現在の時刻を示すタイムスタンプを放送し、共通の時刻を確認する。
【0100】
(ステップS22)分散秘密データの分散秘密鍵暗号化プロトコルを利用して、証明者と認証者との間の会話鍵ck1,…,ckaとして用いる分散疑似乱数rz, …,rz+a−1 をpkV x,…,pkV x+a−1を秘密の暗号鍵として暗号化する。但し、a は疑似乱数の数を表し、z とx は、それぞれ疑似乱数リスト及び秘密鍵pkリストの始まりを表すインデックスである。このとき、z とx は、それぞれz=z+a,x=x+a と更新される。このようにして暗号化された結果をCT 1, …, CT aとする。
【0101】
(ステップS23)公開データの分散秘密鍵暗号化プロトコルを利用して、公開のタイムスタンプと証明者の識別子であるid PをステップS22と同じ秘密鍵pkリストから2b個の秘密鍵pkV x,…,pkV x+2b によって暗号化する。そしてx=x+2b+1と更新する。この暗号化の結果をCT a+1, …, CT a+bとし、ステップS22の結果と併せてCT 1, …, CT a+bとし、ステップS22で更新前のインデックスxと併せて認証子とする。
【0102】
(ステップS24)分散秘密データの分散秘密鍵暗号化プロトコルを利用して、ステップS23で得られた認証者用の暗号文CT 1, …, CT a+bと、ステップS22で用いた共通鍵ck1,…,ckaを2a+b個の秘密鍵pkP y,…,pkP y+2a+b を暗号鍵として暗号化する。但し、y は証明者との秘密鍵リストの始まりを示すインデックスであり、y=y+2a+b+1と更新される。このようにして暗号化された結果をCCT 1, …, CCT 2a+b とする。
【0103】
(ステップS25)公開データの分散秘密鍵暗号化プロトコルを利用して、ステップS1で公開された疑似乱数s と認証者の識別子であるid VをステップS24と同じ秘密鍵リストから2c個の秘密鍵pkP y,…,pkP y+2c によって暗号化する。そして、y=y+2c+1と更新される。このようにして暗号化された結果をCCT 2a+b+1,…, CCT 2a+b+c とし、ステップS24の結果と併せてCCT 1, …, CCT 2a+b+c とする。
【0104】
(ステップS26)秘密復元処理を用いて、秘密に分散されたCCT 1, …, CCT 2a+b+c が復元され、証明者であるクライアントPに、ステップS24で更新される前のインデックスy と併せて、認証メッセージ102として、通常の通信路を用いて送信する。
【0105】
(ステップS3)証明者Pは、受け取ったインデックスy と、自分の秘密鍵リストからの秘密鍵pkP y,…,pkP y+2a+b+2cによって、受け取ったデータCCT 1, …, CCT 2a+b+c から、公開データの分散秘密鍵復号プロトコルを利用して、疑似乱数ckを復号する。そして、復号されたsとid Vが正しいことを確認する。正しいことが確認されれば、復号された疑似乱数ckを認証者との共通鍵として記憶し、復号された認証子103を認証者Vに送信する。
【0106】
(ステップS4)認証者Vは、認証子に含まれ得るインデックスxと自分の秘密鍵リストからのpkV x,…,pkV x+a+2b とによって、受け取った認証子から、公開データの分散秘密鍵復号プロトコルを利用して、タイムスタンプと証明者の識別子id Pとを復号し、分散秘密データの分散秘密鍵復号プロトコルを利用して、疑似乱数ckを復号する。そして、復号されたタイムスタンプと識別子id Pとが正しいことを確認する。正しいことが確認されれば、証明者Pを認証し、復号された疑似乱数ckを認証者との共通鍵として記憶する。
【0107】
[実施例2]
上述の実施例1では、証明者が認証者に送る認証子を攻撃者が盗聴し、記憶しておけば、攻撃者は、その認証子を認証者に示すことによって、証明者が意図しないサービスを認証者に要求することができ、証明者を混乱させることができる。この攻撃は、リプレイ攻撃と呼ばれている。
【0108】
そこで、本実施例では、このリプレイ攻撃を和らげるために、実施例1のオンライン処理のステップS3において証明者が認証者に送る認証子に、交信された時間情報を更に付加する。この手順を図15に示す。本実施例は、実施例1とオンライン処理のステップS3と4に加えて、ステップS3’と4’を行う点でだけ異なり、他は同じであるので、このステップS3’と4’についてだけ説明する。
【0109】
(ステップS3’)証明者は、実施例1のステップS3を実行した後で、得られた会話鍵ckを用いて新しいタイムスタンプT2と証明者の識別子id Pを暗号化した{T2,id P}^ckを認証子とあわせて認証者に送る。
【0110】
(ステップS4’)認証者は、実施例1のステップS4を実行して認証子を複合した後で、得られた会話鍵ckを用いて付属メッセージ{T2,id P}^ckを復号し、タイムスタンプT2と証明者の識別子id Pを確かめ、T2が古ければ、サービス要求を受けつけない。
【0111】
【発明の効果】
以上説明したように、本発明によれば、従来の集中管理型の認証サーバに比して、サーバの信頼性、安全性に優れ、分散認証サーバを構成する過半数の装置が信頼できれば、以下のような効果を得ることができる。
【0112】
分散認証プロトコルによって、証明者や認証者に対して従来の集中管理による認証プロトコルと同一の認証機能を果たし、かつ、高いフォールトトレランスを実現する。
【0113】
証明者や認証者に対して、分散認証プロトコルのオンライン処理は、従来の認証プロトコルと同一のインタフェース(データ形式)を保証するので、従来の認証サーバと簡単に置き換えることができる。
【0114】
証明者や認証者に対して、分散認証プロトコルのオンライン処理は、従来の認証プロトコルと同一の計算量で実現される。
【図面の簡単な説明】
【図1】本発明の1実施例における通信システムのブロック構成を示す図である。
【図2】システムの各装置のブロック構成を示す図である。
【図3】秘密と部分行列との関係を示す図である。
【図4】一方向性ハッシュ関数による処理を示す図である。
【図5】秘密分散処理の手順を示す図である。
【図6】秘密復元処理の手順を示す図である。
【図7】分散された秘密の線形結合処理を説明する図である。
【図8】疑似乱数の分散生成処理の手順を示す図である。
【図9】分散秘密鍵暗号処理の手順を示す図である。
【図10】分散認証プロトコルの手順を示す図である。
【図11】オフラインの疑似乱数生成処理の手順を示す図である。
【図12】オフラインの秘密鍵配送処理の手順を示す図である。
【図13】分散認証プロトコルの手順を示す図である。
【図14】分散認証プロトコルの手順を示す図である。
【図15】実施例2の分散認証プロトコルの手順を示す図である。
【図16】従来の認証プロトコルの手順を示す図である。
【符号の説明】
11 秘密通信路
12 放送通信路
13 通常の通信路
14 分散認証サーバを構成する装置
15 クライアントやサーバとなる装置
21 通信部
22 演算処理部
23 乱数発生部
24 記憶部
101 要求メッセージ
102 認証メッセージ
103 認証子
161 証明者
162 認証者
163 認証センタ
164、165、166 データ
[0001]
[Industrial application fields]
The present invention relates to a communication system in which a plurality of devices are connected through a communication path, and more particularly to an authentication method in a communication system in which authentication is performed by a plurality of devices being distributed.
[0002]
[Prior art]
Conventionally, in many communication systems, information is transmitted in units of data blocks called packets. Even when a packet is transmitted to a designated destination, all devices (users) constituting the communication system can receive the packet. In addition, since a plurality of devices are connected via the same communication path, it is difficult to specify the packet transmission source. For this reason, in such a communication system, it is easy to be exposed to an attack of “sniffing” that illegally obtains a packet for another destination and “spoofing” that makes a device appear to another device.
[0003]
In order to mitigate the threat of eavesdropping and spoofing, a technique using a cryptographic technique called a public key cryptosystem (Ikeno, Koyama: “Contemporary Cryptography”, The Institute of Electronic Communication, 1986) is known. Some public key cryptosystems have an authentication function called “digital signature” in addition to the encryption function, such as RSA cryptography. Spoofing can be prevented.
[0004]
As another countermeasure for mitigating the threat of eavesdropping and spoofing, Kerberos (shared by kerberos: S. Garfinkel and G. Spafford / Hide Yamaguchi) translated by "UNIX Security", ASCII, pp.349 -357, pp. 535-542, 1993) is well known.
[0005]
The following is the authentication protocol of Needham and Schroeder (RN Needham and MD Schroeder: “Using Encryption for Authentication in Large Network of Computers”, 3). And Birrell's Secure RPC (Remote Procedure Call) protocol (AD Birrell: “Secure Communications Using Remote Calls 1”, ACM Trans. On Computer. P. 3). 1985 A specific Kerberos authentication protocol based on the above) will be described.
[0006]
Normally, Kerberos has an authentication server that manages secret information (corresponding to a secret key) of all devices of the communication system. First, as shown in FIG. 16A, the authentication server shares the secret key pki with each device i. In the following, a certificate requester is called a prover, and a certificate authenticating the prover is called a certifier.
[0007]
As shown in FIG. 16B, when the prover A asks the certifier B for proof, A sends data 161 in a format such as {A, B, R} to the authentication server. However, A and B are public identification information for specifying the prover A and the certifier B such as a device or a user name, and R is a number selected at random.
[0008]
On the other hand, the authentication server returns data 162 of {authenticator, R, B, CK} ^ pkA to A. However, {M} ^ k indicates data obtained by encrypting the message M with the key k, and the authenticator is configured as {T, A, CK} ^ pkB using the time stamp T. CK is a common key generated by an authentication server used for subsequent common key encryption communication between A and B.
[0009]
Hereinafter, the secret common key when the common key encryption communication is performed between the prover and the authenticator will be referred to as a conversation key. Therefore, the authentication server also serves as a conversation key distribution server. Finally, the prover A sends the above-described authenticator 163 to the authenticator B, and B authenticates A by decrypting the authenticator with his secret master key pkB. Cryptographic communication is performed using CK.
[0010]
As described above, the threat of eavesdropping or impersonation can be mitigated by the authentication protocol using Kerberos.
[0011]
[Problems to be solved by the invention]
However, in the public key cryptosystem, it is necessary to perform a power residue calculation of a large integer of 512 bits or more, and there is a problem that the calculation amount becomes enormous.
[0012]
In addition, a protocol such as Kerberos in the common key method requires an authentication server that can be completely trusted, including physical meaning, in order for the authentication server to manage the secret information of all devices constituting the communication system. (Similarly, in the case of the public key cryptosystem, a centralized management center that manages all public keys is necessary and has the same problem). Therefore, in order to ensure security, it is necessary to strictly manage the authentication server in a locked room where an unauthorized person cannot enter without permission. In addition, when the authentication server becomes unreliable due to failure or crime, there is a problem that the fault tolerance is weak such that the safety of the entire system is collapsed.
[0013]
Therefore, in order to solve such a problem of authentication server reliability, the present invention proposes a distributed authentication server that distributes and manages secret information by a plurality of devices.
[0014]
The request for this distributed authentication server is as follows.
(1) For the certifier and the authenticator, the distributed authentication protocol realizes the same authentication function as the authentication protocol by the conventional centralized management.
(2) For the prover and the authenticator, the distributed authentication protocol guarantees the same interface (data format) as the authentication protocol by the conventional centralized management.
(3) For the prover and the authenticator, the distributed authentication protocol is realized with the same amount of computation as the authentication protocol by the conventional centralized management.
(4) The above requirement is satisfied unless a majority of the devices constituting the distributed authentication server are unreliable.
[0015]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, according to the authentication method of the present invention, in a communication system having a plurality of devices including a device group constituting a distributed authentication server,
The certifier side device that is requested to be authenticated by the certifier side device transmits an authentication request message including the identifiers of the certifier and the certifier to each device constituting the distributed authentication server,
The devices constituting the distributed authentication server jointly generate an authenticator encrypted with a secret key related to the authenticator based on the authentication request message, and encrypt the authenticator with a secret key related to the prover. Generate an authentication message
Each device constituting the distributed authentication server transmits the authentication message to the prover side device,
The certifier side device that has received the authentication message decrypts the authentication message, and transmits the obtained authenticator to the certifier side device.
The certifier-side device that has received the authenticator decrypts the authenticator and authenticates the prover.
[0016]
【Example】
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0017]
[Example 1]
FIG. 1 is a diagram showing an information processing system having distributed information processing apparatuses according to an embodiment of the present invention.
[0018]
In the figure, reference numeral 14 denotes a device (hereinafter referred to as a member) AS (1),..., AS (k) constituting the distributed authentication server. Reference numeral 11 denotes a secret communication path capable of physically and securely performing secret communication between devices (designed so that it cannot be accessed from other communication paths). Reference numeral 12 denotes information about all members. Are broadcast-type communication channels that are interconnected so as to be open to the public. Here, the number of members is a relatively small number of about 20 or less from the viewpoint of efficiency.
[0019]
The total number of devices constituting the communication system may be considerably larger than that of the members, and the members are connected to the members via the secret communication path 11. In addition, the apparatuses communicate with each other through a normal (unsafe) communication path 13. Thereafter, when one device sends a request for a service (eg, file transfer, remote procedure call, etc.) in another device, the requested device is called “client”, and the device that provides the service in response to this request is called “server” ". In FIG. 1, reference numeral 15 denotes a device C / S (1),..., C / S (n) which is such a client or server. However, the member may be a client or a server.
[0020]
In the present embodiment, mutual authentication and authentication of communication contents are realized in such a client or server. It also realizes sharing of a secret key for performing secret communication between the client and the server. Further, since secret information is distributed and managed and distributed among members, there is an advantage that it is safer than a conventional impression server. In the following, when a client requests authentication for identifying a server in order to request a service, a client that requests authentication is referred to as a “certifier”, and a server that provides authentication is referred to as a “certifier”.
[0021]
FIG. 2 is a diagram illustrating a block configuration of a member device. In the figure, reference numeral 21 denotes a communication unit for communicating with other devices via the secret communication path 12 or the broadcast communication path 13. Reference numeral 22 denotes an arithmetic processing unit that performs various operations such as a one-way hash function, which will be described later, and determination processing according to a program stored in the storage unit 24, and controls each unit of the apparatus. Reference numeral 23 denotes a random number generator such as a pseudo-random number generator, which is used to generate a random value. Reference numeral 24 denotes a storage unit for storing programs to be executed by the arithmetic processing unit 22, information such as arithmetic results generated in the course of processing, information received from other devices, various parameters, and the like. Also, devices other than the members of the communication system have the same hardware configuration as the members.
[0022]
A basic part of the distributed authentication protocol is a VSS (Verifiable Secret Sharing) protocol described below. According to VSS, this is a technique for distributing one piece of secret information to a plurality of secret parts such that the original secret information cannot be estimated if the majority is less than the majority, and the original secret information can be restored if the majority is correct.
[0023]
[VSS protocol]
A procedure for distributing the secrets on a given finite field F in a verifiable manner will be described below.
[0024]
FIG. 3 is a diagram showing the relationship between the secret s and the partial matrix S.
[0025]
In the present embodiment, the submatrix S = [s (i, j)] (i, j = 1,..., N) for a certain secret element s 1 means that each row vector S_r (i) = [s (i , 1),. . . , S (i, n)] (i = 1,..., N) are n different values of the t-th order polynomial fi with constant s_r (i) as a constant term. . . , In values fi (il),. . . , Fi (in) and each column vector S_c (j) = [s (1, j),. . . , S (n, j)] (j = 1,..., N) is a number n different values of the t-th order polynomial gi with a certain secret s_c (j) as a constant term. . . , In for values gi (il),. . . , Gi (in) and the vector [s_r (1),. . . , S_r (n)] and [s_c (1),. . . , S_c (n)] to the values f (il,..., In) and g (il,..., In) of the t-order polynomials f and g with the original secret s as a constant term. It is what has become.
The sub-matrix used in the secret sharing scheme capable of confirming the speech type, as will be described below, is an n × n matrix S = [s (i, j)] (i, j = 1,..., n).
[0026]
First, each row vector S_r (i) = [s (i, 1),. . . , S (i, n)] (i = 1,..., N) is a secret part vector for a secret s_r (i) (the secret part of subscriber j in the secret sharing scheme with element j of the vector) Vector), and each column vector S_c (j) = [s (1, j),. . . , S (n, j)] (j = 1,..., N) becomes a secret subvector for a certain secret s_c (j).
[0027]
However, the vector [s_r (1),... Consisting of the secrets s_r (i) and s_c (j) described above. . . , S_r (n)] and [s_c (1),. . . , S_c (n)] are both secret subvectors for the original secret s 1. In the secret sharing process, the column vector i (i = 1,..., N) and the secret s_r (i) of the submatrix thus configured are used as the secret partial information of the subscriber i 1 for each subscriber i. By transmitting to, it is possible to check with high probability whether the partial information broadcast by each subscriber is correct or not if the subscriber who distributed the partial information does not cheat during the secret restoration process.
[0028]
Also, in this embodiment, in order to confirm whether the partial information broadcast at the time of the secret restoration process is correct even when the subscriber who has the original secret information and distributes the secret partial information is fraudulent, A one-way hash function (Ikeno, Koyama: ”that serves as an authenticator of the secret s_r (i) corresponding to each subscriber i (i = 1,..., N) in distributing information. ("Modern cryptography", pp. 224-225, IEICE, 1986).
[0029]
Next, this one-way hash function will be described.
[0030]
The one-way hash function is a function that performs data compression scrambling, and is a function that is easy to calculate an output value from an input value but difficult to perform an inverse operation to determine an input value from the output value. However, in this embodiment, compared with the one-way function used in the conventional secret sharing scheme that can be confirmed non-interactively, it does not have to have a special algebraic property, and the calculation processing is one-way faster. Sex hash function can be used.
[0031]
As a specific example of the one-way hash function, R.I. Merkle ("One Way Hash Functions and DES", Advanced in Cryptology-Crypto '89, Lecture Notes in Computer Science, Vol. 435, Spring-Verlag, S A one-way hash function has been proposed.
[0032]
FIG. 8 is a diagram illustrating a specific configuration of the one-way hash function.
[0033]
In the same figure, (a) shows block encryption by DES, 81 is an encryption circuit (64 in FIG. 8, DES is represented by E in which 64-bit output is obtained from a 64-bit input and a 56-bit key). It is expressed by
[0034]
(B) shows the processing of the function F 1 using the DES as a partial processing and having an input length of 119 bits and an output length of 112 bits, and 82 is a function arithmetic circuit. This process is defined as follows.
[0035]
First, the input is divided into two parts k and x (however, the length of one part k is 55 bits and the length of the remaining part x is 64 bits). Next, the result of calculating the XOR of the output obtained by using the part x as the input of DES, the remaining part k and '0' as a continuous value '0', and k as a 56-bit key and x. The left 64 bits in the output of the function F. Similarly, 48 bits from the result (64 bits) of the XOR of the output obtained with the same part x as the input and the remaining part k and '1' as the key and the obtained value '1', k as the key and x Is the remaining part of the function F (48 bits on the right). The result of continuous two outputs thus obtained becomes the output of the 112-bit F function.
[0036]
(C) shows a process in which a given message is input and a hash value of a one-way hash function is output, and 83 is a hash function processing unit. This process is executed as follows.
[0037]
First, the first 119 bits of a given message are used as the input of the above function F 1 to obtain the first 112 bits of output. Next, the output is again set to the input 112 bits, and the remaining 7 bits from the message are continuously input to the function F 1 repeatedly. Finally, the 112-bit output obtained when all the messages are input (appropriately add '0' if there are insufficient bits to input the last 7 bits of the message) is used as a hash value for the message. .
[0038]
The one-way nature of the hash function calculated as described above (being given a single hash value, it is extremely difficult to find messages with different inputs that yield the same hash value) is used It is given by the security of block ciphers such as DES (the output becomes a random variable with a key when an input is given, and the input becomes a random variable with a key when an output is given). Shown by Mercle (see previous paper).
[0039]
Furthermore, the same paper also proposes a one-way hash function that is more efficient than the above-described hash function. Rivest ( "The MD4 message digest algorithm", Advances in Cryptology over 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).
[0040]
Next, the Cut and Choose process in the present embodiment will be described.
[0041]
Whether the secret partial information received by all subscribers during the secret sharing process becomes secret partial information distributed in a verifiable manner, as in the case of Cut and Choose performed in the conventional secret sharing method capable of interactive confirmation. In order to check whether or not k randomly chosen secrets l1,. . . , Lk distribute the submatrix and hash value and broadcast all secret information about k / 2 secrets (li (1), ..., li (k / 2)) randomly determined by all subscribers And lj (1) + s,... For the remaining k / 2 secrets (lj (1),..., Lj (k / 2)). . . , Lj (k / 2) + s is broadcast, and if the number of parts having errors is larger than t in all the broadcast information, it is determined that the secret sharing process is not correct.
[0042]
As described above, a secret sharing scheme that satisfies the following conditions (c ′) and (d ′) can be realized in place of the conditions (c) and (d) of the conventional secret sharing scheme that can be confirmed. In addition, a method and a communication system for executing distributed calculation can be realized.
[0043]
(C ′) When illegal partial information is mixed with correct partial information, there are cases where the original secret information cannot be restored even if there are t + 1 correct partial information. However, it is possible to identify an unauthorized subscriber. is there.
[0044]
(D ′) When all the subscribers receive the secret partial information, if the partial information is not the correct information for restoring the secret information x 1, the identity of the subscriber who made the fraud during the restoration process Is possible.
[0045]
Under these conditions, even if there is an unauthorized subscriber as in the conventional system, the secret is restored, that is, error correction cannot be performed, but the unauthorized subscriber can be identified, that is, error detection can be performed. If conditions (c) and (d) exist, distributed computation can be executed correctly even if there are unauthorized subscribers (fault tolerance for correctness can be realized), but the conditions (c ′) and (d ′) can be changed to However, since an unauthorized subscriber can be detected, a correct output can be obtained by performing a warning and re-execution, and fault tolerance can be realized.
[0046]
Therefore, in this embodiment, if there is an unauthorized subscriber when restoring the distributed secret, it may be impossible to restore the secret, but it is possible to identify the subscriber who performed the illegal secret. A distributed method is proposed. As a result, it is possible to realize a secret sharing scheme that can be confirmed so that both the necessary calculation amount and the communication amount located in the middle of the interactive method (1) and the cryptographic method (2) are practical orders. .
[0047]
In the following, a method for realizing a identifiable dispersion of secrets on a given finite field F 1 will be specifically described.
[0048]
First, the submatrix S 1 for the secret s 1 will be specifically described.
[0049]
A submatrix S = [s (i, j)] (i, j = 1,..., N) for a secret element s 1 on a given finite field is defined as each row vector S_r (i) = [s (I, 1),. . . , S (i, n)] (i = 1,..., N) have n different values i1,. . . , In values fi (i1),. . . , Fi (in) and each column vector S_c (j) = [s (1, j),. . . , S (n, j)] (j = 1,..., N) are n different values j1,. . . , Jn values gj (j1),. . . , Gj (jn) and the vector of values [s_r (1),. . . , S_r (n)] and [s_c (1),. . . , S_c (n)] to the values f (i1,..., In) and g (j1,..., Jn) of the t-order polynomials f 1 and g 2 with the original secret s 1 as a constant term. It is what has become.
[0050]
Next, the process of the present embodiment is divided into a secret sharing process for distributing a secret part so that a secret on a given finite field is secretly distributed among all subscribers, and distributed to all subscribers. This is divided into two processes, namely, a secret restoration process for clarifying a secret subscriber or an unauthorized subscriber (when there is a fraud).
[0051]
(1) Secret sharing process
The secret sharing process is a process in which a subscriber d having a secret element s distributes a secret part for s. FIG. 5 shows the processing procedure. In the figure, processing Rj, i is processing performed by subscriber i in round j.
[0052]
In the following, h represents an efficient one-way hash function (with a fast calculation scheme). For example, a hash function (see “Modern Cryptography” above) configured by a high-speed block encryption function is used. The safety parameter k 1 satisfies k = nk ′ for a certain constant k ′. In this case, the probability of erroneous confirmation of the secret sharing process is 2 ^ (− k ′ (t + 1)) due to the Cut and Choose process (T. Rabin, M. Ben-Or “Variable Secret Sharing and Multiple Protocols Whistle. See “Majority”).
[0053]
(Round 1) The subscriber d 1 uses the random number generator 23 to generate the original secret s 1 and the randomly selected secret elements l 1,. . . , Lk with partial matrices S, L1,. . . , Lk. Then, as shown in FIG. 4, the secret values s_r (1),. . . , S_r (n), l1_r (1),. . . , L1_r (n),. . . , Lk_r (1),. . . , Lk_r (n), a one-way hash function value s * is calculated by the arithmetic processing unit 22.
[0054]
Subscriber d is associated with each subscriber i (i = 1,..., N, excluding itself), but each column vector S_c (i), L1_c (i),. . . , Lk_c (i) and secrets s_r (i), l1_r (i),. . . , Lk_r (i) (information B1.i) is transmitted using the secret communication path 11, and the hash value s * (information B1.d) is broadcast using the broadcast communication path 12 among all subscribers ( Process R1.d).
[0055]
(Round 2) Each subscriber i (i = 1,..., N) broadcasts k ′ randomly selected bits (information B2.i) using the random number generator 23 (processing R2). I). These randomly chosen k 'bits are denoted as Bi_1,. . , Bi_k ', all bits for all n subscribers are denoted by B1,. . . , Bk.
[0056]
(Round 3) For subscriber d 1, for each bit Bj (j = 1,..., K 1) broadcast in round 2, if Bj is 1, the submatrix generated by subscriber d 1 in round 1 Lj is broadcast, and if Bj is 0, the addition result (written as S + Lj) on the finite field for each element of the submatrix S and Lj generated by the subscriber d in round 1 is broadcast (process R3.d). Information broadcast by the subscriber d is shown in FIG. d.
[0057]
(Round 4) Each subscriber i (i = 1,..., N) receives information B1. For each value j (j = 1,..., k) in i, column vectors Lj_c (i) and lj_r (i) (when bit Bj broadcast in round 2 is 1) or Lj_c Check if (i) + S_c (i) and lj_r (i) + s_r (i) (when Bj is 0) are equal to the column vector and secret value corresponding to the submatrix broadcast in round 3; If it is not equal to the value j, the determination message (information B4.i) of the subscriber d 1 is broadcast (process R4.i).
[0058]
(Round 5) When the determination message (information B4.i) is broadcast in round 4, the subscriber d 1 transmits information B1 secretly transmitted by the subscriber d 1 in round 1 for each subscriber j that broadcasts the determination message. . j (here, information B5.d) is broadcast (process R5.d).
[0059]
(Post-processing) Each subscriber i (i = 1,..., N) indicates that the information broadcast in round 5 is not correct or the number of determination messages broadcast in round 4 is If so, it is determined that the subscriber d 1 has made an unauthorized act (process Pi).
[0060]
All the information received by each subscriber i in rounds 1 to 5 is s_i.
[0061]
(2) Secret restoration processing
The secret restoration process is a process for calculating the original secret s by all the subscribers from the information s_i possessed by each subscriber by the secret sharing process described above. FIG. 6 shows the procedure.
[0062]
(Round 1) Each subscriber i (i = 1,..., N) broadcasts secret values s_c (i) and s_r (i) (information B1.i) included in the partial information s_i (processing B1). R1.i).
[0063]
(Round 2) Each subscriber i (i = 1,..., N) has t + 1 values s_c (i, 1),. . . , S_c (i, t + 1) and s_r (i, 1),. . . , S_r (i, t + 1) and determine the results of polynomial interpolation s (c) and s (r), both are equal and the remaining broadcast value is the value s (c) = s (r ) Check whether the same polynomial corresponding to is the correct value. If all values are correct, it is determined that the original secret s is equal to s (c) = s (r), and the restoration process ends. On the other hand, when a value that does not correspond to the same polynomial is broadcast, the column vector S_c (i) (information B2.i) included in the partial information s_i is broadcast (the process R2.i).
[0064]
(Round 3) Each subscriber i (i = 1,..., N) obtains a submatrix S ′ from the column vector S_c (j) (j = 1,..., N) broadcast in Round 2. Generate 1,. . . , N to all sets t1,. . . , Tm (total m =nCt + 1= N! / ((T + 1)! (Nt-1)!) Column vector set T1,. . . , Tm and the result of polynomial interpolation for each row and column s'_r (1),. . . , S'_r (n) and s'_c (1),. . . , S′_c (n) and the results of polynomial interpolation of these values, s ′ (r) and s ′ (c), are both equal, and all elements of their column vectors are respectively Values s′_c (1),. . . , S'_c (n) and s'_r (1),. . , S′_r (n), whether or not the same value of the same polynomial is obtained.
[0065]
The set T1,... Including t + 1 column vectors confirmed in this way. . , Tm, the number of sets corresponding to different correct sub-matrices is t + 1 at maximum, and these sub-matrices are denoted by S_1,. . . , S_T (where T <t + 1). If there is only one correct submatrix (T = 1), it is determined that the secret s for that matrix is equal to the original secret, and the uncorresponding column vector represents the fraudulent subscriber. If there are two or more correct sub-matrices, each subscriber i (i = 1,..., N) broadcasts all the partial information s_i (information B3.i) they have (the processing R3. i).
[0066]
(Post-processing) Each subscriber i (i = 1,..., N) uses the information s_j (j = 1,..., N) broadcast in round 3 to calculate the correct value in round 4 Submatrices S_1,. . . , S_T (where T <t + 1), the same one-way hash function as in the secret sharing process described above is calculated, and all the broadcast information is correct and the value s broadcast in round 1 of the distributed process Check if it corresponds to *. It is determined that the secret s' corresponding to the sub-matrix correct for these confirmations (which can be at most one) is equal to the original secret s. On the other hand, if there is no correct submatrix for the above-mentioned confirmation, it is determined that the secret is illegal for the distributed subscriber d 1 (process Pi).
[0067]
[Distributed secret linear combination processing]
By the above-described verifiable secret sharing process, the elements {1,. . . , P-1} when two secret elements x 1 and y 2 are distributed (where each subscriber i has a secret part x_i and y_i corresponding to the secret elements x 1 and y 2) Without performing the above, the secret part (x + y) _i corresponding to the sum x + y on the given finite field is calculated as follows.
[0068]
First, when the column vectors X_c (i) and Y_c (i) and the secret values x_r (i) and y_r (i) of the submatrix possessed by each subscriber are added for each element, the addition result X_c (i) + Y_c It is clear from the definition of the submatrix (row and column elements are polynomial values) that (i) and x_r (i) + y_r (i) are column vectors and secret values of the submatrix for x + y .
[0069]
Further, the values x * and y * of the one-way hash function used for confirming the partial information in the secret restoration process are stored, and both the x + y as a result of the addition are necessary when the restoration process is performed. Is used to check the submatrix X + Y corresponding to the secret x + y.
[0070]
In addition, in order to calculate the distributed multiplication of one secret element x and the public element a in a distributed manner, the result of multiplying each element of the submatrix each subscriber has with a It is an element of the submatrix for x * a. Therefore, the linear combination a * x + b * y using the two distributed secret elements x and y and the public elements a and b joins the group as shown in FIG. Calculations can be made in a distributed manner without interaction between each subscriber.
[0071]
As described above, the secret can be distributed among the members in a confirmable manner.
[0072]
Next, a distributed pseudo-random generation (Shared pseudo-random generation) protocol for generating pseudo random numbers among members will be described.
[0073]
[Distributed pseudorandom number generation protocol]
The member AS (1),..., AS (k) that constitutes the distributed authentication server controls the secret part r (i) (i = i = r) of the member AS (i) to control the distributed pseudorandom number r. 1, ..., k) is output. This protocol is implemented as shown in FIG.
[0074]
Each member AS (i) generates a secret pseudorandom number ri expressed as an element on a finite field (process 81).
[0075]
Each member AS (i) secretly distributes the secret pseudorandom number ri using the secret sharing process that can be confirmed. When each member performs this, each member AS (j) (j = 1,..., K) has a secret part r1 (j),. However, m (≦ k) is the number of members confirmed to have performed secret sharing correctly (process 82).
[0076]
Each member AS (j) adds the above-mentioned secret part and generates r (j) = r1 (j) +... + Rm (j) which is a secret part for AS (j) of the secret pseudorandom number r 1 ( Process 83).
[0077]
This secret pseudo-random number r is a number that no one can know unless a majority of the members are involved. As described above, pseudo-random numbers are generated in a distributed manner, and the pseudo-random numbers can be used as a conversation key between the prover and the authenticator.
[0078]
Next, a protocol for executing secret key encryption processing among members in a distributed manner will be shown. In this case, the process differs depending on whether the secret key-encrypted data is distributed secret data or public data.
[0079]
[Distributed secret key encryption / decryption of distributed secret data]
FIG. 9A is a diagram for explaining this protocol. Let m be a message composed of N blocks m1,..., MN of length L. However, the VSS protocol is a finite field GF (2L) Run on. Assume that each secret part m1 (i),..., MN (i) is secretly distributed to the member AS (i). A secret key pk having the same length as the message m is also divided into N blocks pk1,..., PkN having a length L, and secretly distributed among the same members. It has a secret part pk1 (i), ..., pkN (i).
[0080]
In order to perform the secret key encryption processing of the message m using the secret key pk, each member AS (i) performs addition on a given finite field for each block as follows.
[0081]
c1 (i) = m1 (i) + pk1 (i),..., cN (i) = mN (i) + pkN (i)
Since the VSS protocol is homomorphic, c1 (i),..., CN (i) corresponds to the secret part of c1,..., CN obtained by dividing the ciphertext c into N blocks for each length L. To do. Therefore, the ciphertext c is restored and released by executing the above-described secret restoration process.
[0082]
Thereby, the device in the communication system having the secret key pk can decrypt the original message m from the disclosed ciphertext c. However, the secret key pk is disposable and will not be used again.
[0083]
[Distributed private key encryption / decryption of public data]
When the message m is made public, the above-described encryption protocol has a problem that the secret key pk is known by subtracting the message m from the published cipher c. Therefore, a protocol as shown in FIG. 9B is used for the public data.
[0084]
As in the above case, it is assumed that the message m is composed of N blocks m1,..., MN having a length L. However, the contents are assumed to be public data known to the members. The secret key pk has a length twice that of the message m and is 2N blocks pk1 of length L. 1, pk1 2, pkN 1, pkN Divided into two. This pk is secretly distributed among the members, and the member AS (i) is assigned to each secret part pk1. 1 (i), pk1 2 (i), ... pkN 1 (i), pkN 2 (i).
[0085]
In order to realize the secret key pk encryption processing of the message m using the secret key pkpk, each member AS (i) performs the next operation on the given finite field for each block. However, in the following formula, • represents multiplication and + represents addition.
[0086]
c1 (i) = m1 · pk1 1 (i) + pk1 2 (i), ..., cN (i) = mN · pkN 1 (i) + pkN Since the 2 (i) VSS protocol is homomorphic even for linear combinations, c1 (i),..., CN (i) divides the ciphertext c into N blocks for each length L. This corresponds to the secret part of c1,..., cN. Therefore, the ciphertext c is restored and released by executing the above-described secret restoration process.
[0087]
As described above, this protocol is pkj 1 and pkj 2 (j = 1,..., N) are used, so that even if the message m is public data, the secret key pk is not known. Here, the shorter the length L, the easier the encryption operation, but the probability that a tamper can change the ciphertext c to a fake ciphertext c ′ and obtain a fake message m ′. Is 2-L  Therefore, L cannot be made too small from the viewpoint of safety. Therefore, about 32 is appropriate for L.
[0088]
As for decryption, a device in the communication system sharing the secret key pk decomposes the secret key pk and the ciphertext c for each length L, and generates pkj 1, pkj 2 and cj (cj-pkj 2) / pkj By performing the operation of 1, mj can be obtained. Thereby, the original message m can be decrypted. However, also in this case, the secret key pk is disposable and will not be used again.
[0089]
[Authentication Protocol]
Using the above protocol, authentication using a common key is realized by a distributed authentication server instead of a conventional centralized authentication server as follows.
[0090]
The authentication protocol includes communication for the prover to receive an authentication message from the distributed authentication server, and communication for the prover to show authentication data to the authentication company. This is called “online processing”.
By the way, as a premise for performing this online processing, it is necessary to share a secret key between the distributed authentication server and a device serving as a prover or an authenticator, or generate a conversation key by the distributed authentication server. This is called “offline processing”. This offline processing may be executed every time a secret key or conversation key is required during online processing, but this increases processing time and communication time of online processing.
[0091]
Therefore, online processing can be performed efficiently by executing offline processing prior to online processing. In the following, “offline processing” will be described with reference to FIG. 10A and “online processing” will be described with reference to FIG.
[0092]
[Offline processing]
The information that needs to be shared in advance between the members constituting the distributed authentication server is information related to the secret keys of all devices. However, as described with respect to the distributed secret key encryption / decryption protocol, since the secret key used between the prover and the distributed authentication server is disposable after the message, it is necessary to generate a large number of keys. This process is executed by the following secret key distribution process. In addition, the process of generating a distributed pseudo random number used as a conversation key between the prover and the authenticator is also executed offline as follows.
[0093]
[Secret key distribution processing]
In the communication system, an apparatus j that wishes to receive authentication has a sufficiently large number M of pseudo-random numbers pkj arbitrarily selected in advance by the secret sharing process described above. 1, ..., pkj Distribute M to each member. As a result, the member AS (i) becomes a secret part pkj of the pseudo random number. 1 (i), ..., pkj M (i) is received. However, if j does not correctly distribute the secret, j can no longer receive the authentication service using its own secret key pkj, so the post-processing to check whether the distributed information is correct is in this case It may be omitted. Also, there may be no broadcast communication channel for confirming that j is not lying between j and the member.
[0094]
In this process, j is a sufficiently large number of secret keys pkj i (i = 1,..., M) and each member h (h = 1,..., k) is a secret part pkj i (h) (i = 1,..., M) is held as a list. As described above, since the secret key is disposable, j and each member h hold indexes pkj and pkj (h) indicating positions on the list of keys to be used next. Then, j generates a secret key when there is a margin for processing, and distributes this secret when the communication system is free, and continues updating.
[0095]
[Pseudo-random number generation processing]
As shown in FIG. 11, similarly to the secret key distribution process, distributed pseudorandom numbers r1,..., RQ that are conversation keys used between the prover and the authenticator are also generated by the offline process and held as a list. The As described in the above distributed pseudorandom number generation protocol, all members need to perform distributed processing of pseudorandom numbers, but all members do not have to be executed at the same time. If there is room in the processing and communication system, this processing may be executed and distributed to other members. Thereby, each member holds the distributed pseudo random numbers r1 (j),..., RQ (j) as a list together with an index indicating the use position.
[0096]
[Online processing]
The online authentication protocol for obtaining an authenticator from the distributed authentication server for the client P (certifier) in the communication system to send to the server V (certifier) is performed by the following steps S1 to S4.
[0097]
(Step S1) The client P uses the normal communication path to AUTH. Information indicated as REQUEST {id P, id A request message 101 including V, s} is sent to the members constituting the distributed authentication server. However, id P is the client P, id V is data specifying the server V, and s is a random number selected arbitrarily.
[0098]
(Step S2) AUTH The member that has received REQUEST performs the following processing steps S21 to S26.
[0099]
(Step S21) A time stamp indicating the current time is broadcast, and the common time is confirmed.
[0100]
(Step S22) Using the distributed secret key encryption protocol of the distributed secret data, distributed pseudo random numbers rz,..., Rz + a-1 used as conversation keys ck1,. x, ..., pkV x + a-1 is encrypted as a secret encryption key. Here, a represents the number of pseudo-random numbers, and z and x are indices representing the start of the pseudo-random number list and the secret key pk list, respectively. At this time, z 1 and x 2 are updated as z = z + a and x = x + a, respectively. The result encrypted in this way 1, ..., CT a.
[0101]
(Step S23) Using a distributed secret key encryption protocol of public data, a public time stamp and an identifier that is an identifier of a prover P is 2b private keys pkV from the same private key pk list as step S22. x, ..., pkV Encrypt by x + 2b. And it updates with x = x + 2b + 1. The result of this encryption is CT a + 1, ..., CT a + b and CT together with the result of step S22 1, ..., CT It is set as a + b, and it is set as an authenticator together with the index x before update in step S22.
[0102]
(Step S24) Using the distributed secret key encryption protocol for the distributed secret data, the ciphertext CT for the authenticator obtained in step S23 1, ..., CT a + b and the common keys ck1,..., cka used in step S22 are 2a + b secret keys pkP y, ..., pkP Encrypt y + 2a + b as an encryption key. However, y is an index indicating the beginning of the secret key list with the prover, and is updated as y = y + 2a + b + 1. The result encrypted in this way is represented by CCT. 1, ..., CCT Let 2a + b.
[0103]
(Step S25) Using the distributed secret key encryption protocol of the public data, the pseudo random number s disclosed in Step S1 and the identifier of the authenticator V is 2c private keys pkP from the same private key list as in step S24. y, ..., pkP Encrypt by y + 2c. Then, y = y + 2c + 1 is updated. The result encrypted in this way is represented by CCT. 2a + b + 1, ..., CCT 2a + b + c and CCT together with the result of step S24 1, ..., CCT Let 2a + b + c.
[0104]
(Step S26) CCT distributed secretly using secret restoration processing 1, ..., CCT 2a + b + c is restored and transmitted to the client P, who is the prover, together with the index y before being updated in step S24 as the authentication message 102 using a normal communication path.
[0105]
(Step S3) The prover P receives the received index y and the private key pkP from his private key list. y, ..., pkP The received data CCT by y + 2a + b + 2c 1, ..., CCT The pseudorandom number ck is decrypted from 2a + b + c using the distributed secret key decryption protocol of public data. And the decrypted s and id Check that V is correct. If it is confirmed that it is correct, the decrypted pseudorandom number ck is stored as a common key with the authenticator, and the decrypted authenticator 103 is transmitted to the authenticator V.
[0106]
(Step S4) The certifier V has an index x that can be included in the authenticator and a pkV from its own private key list. x, ..., pkV By using the distributed secret key decryption protocol of public data, the time stamp and the identifier id of the prover are obtained from the received authenticator by x + a + 2b. P is decrypted, and the pseudorandom number ck is decrypted using the distributed secret key decryption protocol of the distributed secret data. And the decrypted timestamp and identifier id Check that P is correct. If it is confirmed that it is correct, the prover P is authenticated, and the decrypted pseudorandom number ck is stored as a common key with the authenticator.
[0107]
[Example 2]
In the above-described first embodiment, if the attacker wiretap and memorizes the authenticator sent by the prover to the authenticator, the attacker shows the authenticator to the authenticator, and the attacker does not intend to use the service. Can be requested from the certifier, and the prover can be confused. This attack is called a replay attack.
[0108]
Therefore, in this embodiment, in order to mitigate this replay attack, the communicated time information is further added to the authenticator sent by the prover to the authenticator in step S3 of the online processing of the first embodiment. This procedure is shown in FIG. The present embodiment differs from the first embodiment only in the steps S3 and 4 ′ of the online processing, but differs only in that the steps S3 ′ and 4 ′ are performed. To do.
[0109]
(Step S <b> 3 ′) After executing step S <b> 3 of the first embodiment, the prover uses the obtained conversation key ck and the new time stamp T <b> 2 and the prover identifier id. P is encrypted {T2, id P} ^ ck is sent to the authenticator together with the authenticator.
[0110]
(Step S4 ') After authenticating the authenticator by executing step S4 of the first embodiment, the authenticator uses the obtained conversation key ck to attach the attached message {T2, id. P} ^ ck is decrypted, and the time stamp T2 and the prover identifier id If P is confirmed and T2 is old, the service request is not accepted.
[0111]
【The invention's effect】
As described above, according to the present invention, if the majority of the devices constituting the distributed authentication server can be trusted, the reliability and safety of the server are superior to those of the conventional centralized management type authentication server. Such effects can be obtained.
[0112]
The distributed authentication protocol performs the same authentication function as the authentication protocol by the conventional centralized management for the prover and the authenticator, and realizes high fault tolerance.
[0113]
For the prover and the authenticator, the online processing of the distributed authentication protocol guarantees the same interface (data format) as that of the conventional authentication protocol, so that it can be easily replaced with the conventional authentication server.
[0114]
For the prover and the authenticator, the online processing of the distributed authentication protocol is realized with the same calculation amount as that of the conventional authentication protocol.
[Brief description of the drawings]
FIG. 1 is a diagram showing a block configuration of a communication system in an embodiment of the present invention.
FIG. 2 is a diagram showing a block configuration of each device of the system.
FIG. 3 is a diagram illustrating a relationship between a secret and a submatrix.
FIG. 4 is a diagram illustrating processing by a one-way hash function.
FIG. 5 is a diagram showing a procedure of secret sharing processing;
FIG. 6 is a diagram illustrating a procedure of secret restoration processing.
FIG. 7 is a diagram illustrating distributed secret linear combination processing;
FIG. 8 is a diagram illustrating a procedure of pseudo random number distributed generation processing;
FIG. 9 is a diagram showing a procedure of distributed secret key encryption processing;
FIG. 10 is a diagram showing a procedure of a distributed authentication protocol.
FIG. 11 is a diagram showing a procedure for offline pseudo-random number generation processing;
FIG. 12 is a diagram showing a procedure for offline secret key distribution processing;
FIG. 13 is a diagram showing a procedure of a distributed authentication protocol.
FIG. 14 is a diagram showing a procedure of a distributed authentication protocol.
FIG. 15 is a diagram illustrating a procedure of a distributed authentication protocol according to the second embodiment.
FIG. 16 is a diagram showing a procedure of a conventional authentication protocol.
[Explanation of symbols]
11 Secret channel
12 Broadcast communication channels
13 Normal communication path
14 Devices constituting a distributed authentication server
15 Client and server devices
21 Communication Department
22 Arithmetic processing part
23 Random number generator
24 storage unit
101 Request message
102 Authentication message
103 authenticator
161 prover
162 Certifier
163 Authentication Center
164, 165, 166 data

Claims (9)

分散認証サーバを構成する装置群を含む複数の装置を有する通信システムにおいて、
認証者側装置に認証されることを求める証明者側装置が、分散認証サーバを構成する各装置に、証明者及び認証者の識別子を含む認証要求メッセージを送信し、
前記分散認証サーバを構成する各装置が共同して、前記認証要求メッセージに基づいて、認証者に関する秘密鍵で暗号化された認証子を生成し、該認証子を証明者に関する秘密鍵で暗号化して認証メッセージを生成し、
前記分散認証サーバを構成する各装置が、前記認証メッセージを前記証明者側装置に送信し、
前記認証メッセージを受信した前記証明者側装置が、当該認証メッセージを復号し、得られた認証子を前記認証者側装置に送信し、
前記認証子を受信した前記認証者側装置が、該認証子を復号して証明者を認証することを特徴とする認証方法。
In a communication system having a plurality of devices including a device group constituting a distributed authentication server,
The certifier side device that is requested to be authenticated by the certifier side device transmits an authentication request message including the identifiers of the certifier and the certifier to each device constituting the distributed authentication server,
The devices constituting the distributed authentication server jointly generate, based on the authentication request message, an authenticator encrypted with a secret key related to the authenticator, and encrypt the authenticator with a secret key related to the prover. Generate an authentication message
Each device constituting the distributed authentication server transmits the authentication message to the prover side device,
The certifier side device that has received the authentication message decrypts the authentication message, and transmits the obtained authenticator to the certifier side device.
The authentication method, wherein the authenticator side device that has received the authenticator decrypts the authenticator and authenticates the prover.
前記分散認証サーバを構成する各装置が共同して、前記証明者側装置及び前記認証者側装置に、当該両装置間の暗号通信に利用する共通鍵を送信することを特徴とする請求項1に記載の認証方法。2. The devices constituting the distributed authentication server jointly transmit a common key used for encrypted communication between the two devices to the certifier side device and the certifier side device. Authentication method described in. 前記分散認証サーバを構成する各装置が、前記証明者側装置に、前記共通鍵を前記認証メッセージに含めて送信することを特徴とする請求項2に記載の認証方法。3. The authentication method according to claim 2, wherein each device configuring the distributed authentication server transmits the common key to the prover-side device by including the common key in the authentication message. 前記分散認証サーバを構成する各装置が、前記認証者側装置に、前記共通鍵を前記認証子に含めて送信することを特徴とする請求項2に記載の認証方法。3. The authentication method according to claim 2, wherein each device configuring the distributed authentication server transmits the certifier including the common key to the authenticator side device. 前記証明者側装置及び前記認証者側装置間の暗号通信に利用する共通鍵を、確認可能な秘密分散処理を利用して、分散された疑似乱数として、分散認証サーバを構成する各装置が共同して生成することを特徴とする請求項1に記載の認証方法。A common key used for cryptographic communication between the prover-side device and the authenticator-side device is shared as a pseudo-random number using a secret sharing process that can be confirmed. The authentication method according to claim 1, wherein the authentication method is generated as follows. 前記分散認証サーバを構成する各装置において、秘密鍵による暗号化を、暗号化すべきデータを複数のブロックに分割し、分割された各ブロックに、それぞれ異なる秘密鍵を所定の有限体上で加算することで実行することを特徴とする請求項1に記載の認証方法。In each device constituting the distributed authentication server, encryption with a secret key is performed by dividing data to be encrypted into a plurality of blocks, and adding a different secret key to each of the divided blocks on a predetermined finite field. The authentication method according to claim 1, wherein the authentication method is executed. 前記分散認証サーバを構成する各装置において、秘密鍵による暗号化を、暗号化すべきデータを複数のブロックに分割し、分割された各ブロックに、それぞれ異なる秘密鍵を所定の有限体上で乗じ、各乗算結果に更にそれぞれ異なる秘密鍵を加算することで実行することを特徴とする請求項1に記載の認証方法。In each device constituting the distributed authentication server, encryption with a secret key is performed by dividing data to be encrypted into a plurality of blocks, and multiplying each divided block by a different secret key on a predetermined finite field, The authentication method according to claim 1, wherein the authentication method is executed by further adding a different secret key to each multiplication result. 通信システムを構成する各装置が、当該装置に関する秘密鍵を、前記分散認証サーバを構成する各装置に、秘密分散処理により分散配布することを特徴とする請求項1に記載の認証方法。The authentication method according to claim 1, wherein each device constituting the communication system distributes and distributes a secret key related to the device to each device constituting the distributed authentication server by secret sharing processing. 前記証明者側装置が、前記認証子を前記認証者側装置に送信する際に、当該認証子をタイムスタンプと共に、当該証明者側装置と認証者側装置とで共通する共通鍵を用いて暗号化して送信し、
前記認証者側装置が、前記証明者側装置からの受信情報を前記共通鍵を用いて復号してタイムスタンプを確認することを特徴とする請求項1に記載の認証方法。
When the prover-side device transmits the authenticator to the authenticator-side device, the authenticator is encrypted using a common key common to the prover-side device and the authenticator-side device together with a time stamp. Send
The authentication method according to claim 1, wherein the authenticator side device decrypts the received information from the prover side device using the common key and confirms a time stamp.
JP00818495A 1994-07-29 1995-01-23 Authentication method in a communication system having a plurality of devices Expired - Fee Related JP3610106B2 (en)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP17848394A JP3604737B2 (en) 1994-07-29 1994-07-29 Secret information processing method in communication system having a plurality of information processing devices and communication system thereof
JP00818495A JP3610106B2 (en) 1995-01-23 1995-01-23 Authentication method in a communication system having a plurality of devices
AT95305211T ATE295644T1 (en) 1994-07-29 1995-07-26 METHOD FOR SHARING SECRET INFORMATION, GENERATING A DIGITAL SIGNATURE AND EXECUTING A CERTIFICATION IN A COMMUNICATIONS SYSTEM WITH MULTIPLE INFORMATION PROCESSING DEVICES AND COMMUNICATIONS SYSTEM FOR APPLYING THIS METHOD
DE69534192T DE69534192T2 (en) 1994-07-29 1995-07-26 A method for sharing secret information, generating a digital signature, and performing authentication in a communication system having a plurality of information processing devices and communication system for applying this method
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
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
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 (en) 1994-07-29 1995-07-28 Method for sharing secret information, generating digital signature, and performing certification in communication system that has plurality of information processing apparatus and communication......
KR1019950023701A KR0148300B1 (en) 1994-07-29 1995-07-29 Method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatus and a communication system that employs such a method
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 (1)

Application Number Priority Date Filing Date Title
JP00818495A JP3610106B2 (en) 1995-01-23 1995-01-23 Authentication method in a communication system having a plurality of devices

Publications (2)

Publication Number Publication Date
JPH08204696A JPH08204696A (en) 1996-08-09
JP3610106B2 true JP3610106B2 (en) 2005-01-12

Family

ID=33156404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00818495A Expired - Fee Related JP3610106B2 (en) 1994-07-29 1995-01-23 Authentication method in a communication system having a plurality of devices

Country Status (1)

Country Link
JP (1) JP3610106B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000072381A (en) * 2000-08-11 2000-12-05 이원영 Anti-snooping authentication system
JP2002099856A (en) * 2000-09-25 2002-04-05 Nec Software Hokuriku Ltd Card information handling system on network
JP4748774B2 (en) 2004-06-02 2011-08-17 キヤノン株式会社 Encrypted communication system and system
WO2008050544A1 (en) * 2006-10-24 2008-05-02 Nec Corporation Distributed information generation device and decoding device

Also Published As

Publication number Publication date
JPH08204696A (en) 1996-08-09

Similar Documents

Publication Publication Date Title
KR0148300B1 (en) Method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatus and a communication system that employs such a method
CN111740828B (en) Key generation method, device and equipment and encryption and decryption method
JP3560439B2 (en) Device for performing encryption key recovery
US5907618A (en) Method and apparatus for verifiably providing key recovery information in a cryptographic system
US6298153B1 (en) Digital signature method and information communication system and apparatus using such method
EP0916209B1 (en) Cryptographic key recovery system
CN111342976B (en) Verifiable ideal on-grid threshold proxy re-encryption method and system
US11870891B2 (en) Certificateless public key encryption using pairings
US20120087495A1 (en) Method for generating an encryption/decryption key
US20210152370A1 (en) Digital signature method, device, and system
US20080294905A1 (en) Secure approach to send data from one system to another
JP6041864B2 (en) Method, computer program, and apparatus for data encryption
US20220038267A1 (en) Methods and devices for secured identity-based encryption systems with two trusted centers
JP3610106B2 (en) Authentication method in a communication system having a plurality of devices
CN114679262A (en) Quantum key distribution system and method fusing asymmetric system
JPH0846607A (en) Security information processing mthod in communication system having plural information processing units and its communication system
RU2819174C1 (en) Method of determining source of data packets in telecommunication networks
CN111200602B (en) Rights-sharing management method, encryption card, administrator lock and cipher machine
AU702563B2 (en) 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
Barker et al. Sp 800-56b. recommendation for pair-wise key establishment schemes using integer factorization cryptography
JP4000900B2 (en) Cryptographic method with authentication, decryption method with authentication, verification method and device, program, and computer-readable recording medium
JP3862397B2 (en) Information communication system
CN118555133A (en) Quantum-resistant security enhancement method of transport layer security protocol
CN118540164A (en) Quantum security enhancement method for Internet key exchange protocol
Singh et al. Encryption algorithms with emphasis on probabilistic Encryption & time stamp in network security

Legal Events

Date Code Title Description
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: 20041012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041018

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071022

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081022

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111022

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111022

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121022

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees