(57)【特許請求の範囲】
【請求項１】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はYt・Ba∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2はTy・Ab∈Gである、
ことを特徴とする情報共有方法。
【請求項２】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はBt・Ya∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2はAy・Tb∈Gである、
ことを特徴とする情報共有方法。
【請求項３】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1はYa・Bt∈Gであり、前記演算式V2はYt・Ba∈Gであり、前記演算式W1はTb・Ay∈Gであり、前記演算式W2はTy・Ab∈Gである、
ことを特徴とする情報共有方法。
【請求項４】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・B-1)(t-a)∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2は(T・A-1)(y-b)∈Gである、
ことを特徴とする情報共有方法。
【請求項５】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t-a)∈Gであり、前記演算式V2は(Y・B-1)(t+a)∈Gであり、前記演算式W1は(T・A-1)(y+b)∈Gであり、前記演算式W2は(T・A)(y-b)∈Gである、
ことを特徴とする情報共有方法。
【請求項６】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・Bd)(t+c・a)∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2は(T・Ac)(y+d・b)∈Gであり、c及びdは整数定数（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）である、
ことを特徴とする情報共有方法。
【請求項７】
第１情報共有装置と第２情報共有装置とが情報を共有する情報共有方法であって、
前記第１情報共有装置が、整数の任意値tを生成するステップと、
前記第１情報共有装置が、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第１情報共有装置が、前記出力情報Tを出力するステップと、
前記第２情報共有装置が、整数の任意値yを生成するステップと、
前記第２情報共有装置が、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第２情報共有装置が、前記出力情報Yを出力するステップと、
前記第１情報共有装置が、前記出力情報Yの入力を受け付けるステップと、
前記第１情報共有装置が、整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成するステップと、
前記第２情報共有装置が、前記出力情報Tの入力を受け付けるステップと、
前記第２情報共有装置が、前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成するステップと、を有し、
前記演算式V1は(Y・B)(t+c・a)∈Gであり、前記演算式V2は(Y・Bd)(t+a)∈Gであり、前記演算式W1は(T・Ac)(y+b)∈Gであり、前記演算式W2は(T・A)(y+d・b)∈Gであり、c及びdは整数定数（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）である、
ことを特徴とする情報共有方法。
【請求項８】
請求項１から７の何れかの情報共有方法であって、
前記第１情報共有装置が、前記共有情報Uj（j=1,2）を含む情報を関数Hに入力して得られる鍵Kを生成するステップと、
前記第２情報共有装置が、前記共有情報Uj（j=1,2）を含む情報を前記関数Hに入力して得られる前記鍵Kを生成するステップと、
を有する情報共有方法。
【請求項９】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はYt・Ba∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2はTy・Ab∈Gである、
ことを特徴とする情報共有システム。
【請求項１０】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はBt・Ya∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2はAy・Tb∈Gである、
ことを特徴とする情報共有システム。
【請求項１１】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1はYa・Bt∈Gであり、前記演算式V2はYt・Ba∈Gであり、前記演算式W1はTb・Ay∈Gであり、前記演算式W2はTy・Ab∈Gである、
ことを特徴とする情報共有システム。
【請求項１２】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・B-1)(t-a)∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2は(T・A-1)(y-b)∈Gである、
ことを特徴とする情報共有システム。
【請求項１３】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t-a)∈Gであり、前記演算式V2は(Y・B-1)(t+a)∈Gであり、前記演算式W1は(T・A-1)(y+b)∈Gであり、前記演算式W2は(T・A)(y-b)∈Gである、
ことを特徴とする情報共有システム。
【請求項１４】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・Bd)(t+c・a)∈Gであり、前記演算式W1は(T・A)(y+b)∈Gであり、前記演算式W2は(T・Ac)(y+d・b)∈Gであり、c及びdは整数定数（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）である、
ことを特徴とする情報共有システム。
【請求項１５】
第１情報共有装置と第２情報共有装置とを有し、
前記第１情報共有装置は、
整数の任意値tを生成する第１任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第１出力情報生成部と、
前記出力情報Tを出力する第１出力部と、を有し、
前記第２情報共有装置は、
整数の任意値yを生成する第２任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第２出力情報生成部と、
前記出力情報Yを出力する第２出力部と、を有し、
前記第１情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第１入力部と、
整数である前記第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である前記第１情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する第１共有情報生成部と、を有し、
前記第２情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第２入力部と、
前記第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第２情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj（j=1,2）にそれぞれ従って前記共有情報Uj（j=1,2）をそれぞれ生成する第２共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+c・a)∈Gであり、前記演算式V2は(Y・Bd)(t+a)∈Gであり、前記演算式W1は(T・Ac)(y+b)∈Gであり、前記演算式W2は(T・A)(y+d・b)∈Gであり、c及びdは整数定数（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）である、
ことを特徴とする情報共有システム。
【請求項１６】
請求項９から１５の何れかの情報共有システムであって、
前記第１情報共有装置は、さらに、前記共有情報Uj（j=1,...,J）を含む情報を関数Hに入力して得られる鍵Kを生成する第１鍵生成部を有し、
前記第２情報共有装置は、さらに、前記共有情報Uj（j=1,...,J）を含む情報を前記関数Hに入力して得られる前記鍵Kを生成する第２鍵生成部を有する、
ことを特徴とする情報共有システム。
【請求項１７】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はYt・Ba∈Gである、
ことを特徴とする情報共有装置。
【請求項１８】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2はBt・Ya∈Gである、
ことを特徴とする情報共有装置。
【請求項１９】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1はYa・Bt∈Gであり、前記演算式V2はYt・Ba∈Gである、
ことを特徴とする情報共有装置。
【請求項２０】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・B-1)(t-a)∈Gである、
ことを特徴とする情報共有装置。
【請求項２１】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t-a)∈Gであり、前記演算式V2は(Y・B-1)(t+a)∈Gである、
ことを特徴とする情報共有装置。
【請求項２２】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+a)∈Gであり、前記演算式V2は(Y・Bd)(t+c・a)∈Gであり、c及びdは整数定数である（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）、
ことを特徴とする情報共有装置。
【請求項２３】
他の装置と情報を共有する情報共有装置であって、
整数の任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
整数である前記他の装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、整数である当該情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj（j=1,2）にそれぞれ従って共有情報Uj（j=1,2）をそれぞれ生成する共有情報生成部と、を有し、
前記演算式V1は(Y・B)(t+c・a)∈Gであり、前記演算式V2は(Y・Bd)(t+a)∈Gであり、c及びdは整数定数である（c=0かつd=0である場合、及びc=1かつd=1である場合を除く）、
ことを特徴とする情報共有装置。
【請求項２４】
請求項１７から２３の何れかの情報共有装置であって、
さらに、前記共有情報Uj（j=1,2）を含む情報を関数Hに入力して得られる鍵Kを生成する鍵生成部を有する、
ことを特徴とする情報共有装置。
【請求項２５】
請求項１７から２４の何れかの情報共有装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術の応用技術に関し、特に、装置間で認証された情報を共有する情報共有技術に関する。
【背景技術】
【０００２】
従来の鍵交換方式の一つにDiffie-Hellman鍵交換方式がある。まず、従来のDiffie-Hellman鍵交換方式を用い、第１情報共有装置と第２情報共有装置との間で鍵交換を行う方法を説明する。
【０００３】
＜基本方式＞
基本的なDiffie-Hellman鍵交換方式では、以下のように鍵交換が行われる。
［公開パラメータ］
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第１情報共有装置と第２情報共有装置とに公開される。
［鍵交換］
第１情報共有装置は、乱数などの任意値t∈Zqを生成し、T=gt∈Gを第２情報共有装置に送り、第２情報共有装置は、乱数などの任意値y∈Zqを生成し、Y=gy∈Gを第１情報共有装置に送る。なお、Zqはqを法とする剰余類の完全代表系を要素とする剰余環を表す。第１情報共有装置は鍵K=Yt∈Gを計算し、第２情報共有装置は鍵K=Ty∈Gを計算する。ここで、巡回群Gは可換群であるからYt=gy・t=gt・y=Tyとなり、第１情報共有装置と第２情報共有装置とで同一の鍵Kが共有される。
【０００４】
しかしながら、上記の基本方式は中間者攻撃（man-in-the-middle attack）に弱いという問題がある。すなわち、攻撃者の装置ADVが第２情報共有装置に成りすまし、第１情報共有装置との間で上述した第２情報共有装置と同じ処理を実行した場合、攻撃者の装置ADVは第１情報共有装置との間で同一の鍵K'を共有できてしまう。同様に、攻撃者の装置ADVが第１情報共有装置に成りすまし、第２情報共有装置との間で上述した第１情報共有装置と同じ処理を実行した場合、攻撃者の装置ADVは第２情報共有装置との間で同一の鍵K''を共有できてしまう（中間者攻撃１）。
【０００５】
＜改良方式１＞
これに対し、以下のようにすれば中間者攻撃１の問題を解決できる。
［公開パラメータ］
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第１情報共有装置と第２情報共有装置とに公開される。
［鍵交換］
第１情報共有装置は、自らの秘密鍵a∈Zqを用い、A=ga∈Gを第２情報共有装置に送る。第２情報共有装置は、自らの秘密鍵b∈Zqを用い、B=gb∈Gを第１情報共有装置に送る。第１情報共有装置は鍵K=Ba∈Gを計算し、第２情報共有装置は鍵K=Ab∈Gを計算する。ここで、巡回群Gは可換群であるからBa=gb・a=ga・b=Abとなり、第１情報共有装置と第２情報共有装置とで同一の鍵Kが共有される。また、攻撃者の装置ADVは、第１情報共有装置の秘密鍵aも第２情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃１を行うことができない。
【０００６】
しかしながら、改良方式１では、秘密鍵を変更しない限り、第１情報共有装置と第２情報共有装置との間で上記の処理を行って共有される鍵が毎回同一となってしまい、高い安全性を確保できない。
【０００７】
＜改良方式２＞
これに対し、以下のような方式が想定できる。
［公開パラメータ］
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第１情報共有装置と第２情報共有装置とに公開される。
［鍵交換］
第１情報共有装置は、乱数などの任意値t∈Zqを生成し、T=gt∈Gを第２情報共有装置に送り、第２情報共有装置は、乱数などの任意値y∈Zqを生成し、Y=gy∈Gを第１情報共有装置に送る。第１情報共有装置は、自らの秘密鍵a∈Zqを用い、鍵K=(Y・B)(t+a)∈Gを計算し、第２情報共有装置は、自らの秘密鍵b∈Zqを用い、鍵K=(T・A)(y+b)∈Gを計算する。ここで、巡回群Gは可換群であるから(Y・B)(t+a)=g(y+b)・(t+a)=g(t+a)・(y+b)=(T・A)(y+b)となり、第１情報共有装置と第２情報共有装置とで同一の鍵Kが共有される。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置と第２情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。さらに、攻撃者の装置ADVは、第１情報共有装置の秘密鍵aも第２情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃１を行うことができない。
【０００８】
しかしながら、改良方式２は、以下のような中間者攻撃（中間者攻撃２）に弱いという問題がある。
第１情報共有装置に成りすます攻撃者の装置ADVは、まず、乱数などの任意値t'∈Zqを生成し、T'=gt'/A∈Gを計算し、T'を第１情報共有装置が出力したTとして偽って第２情報共有装置に送る。第２情報共有装置は、乱数などの任意値y∈Zqを生成し、Y=gy∈Gを攻撃者の装置ADVに送る。攻撃者の装置ADVは鍵K=(Y・B)t'∈Gを計算し、第２情報共有装置は、自らの秘密鍵b∈Zqを用い、鍵K=(T'・A)(y+b)∈Gを計算する。ここで、攻撃者の装置ADVが計算する鍵KはK=(Y・B)t'=g(y+b)・t'∈Gを満たす。一方、第２情報共有装置が計算する鍵KはK=(T'・A)(y+b)=((gt'/A)・A)(y+b)=gt'・(y+b)∈G満たす。巡回群Gは可換群であるから、攻撃者の装置ADVが計算する鍵Kと第２情報共有装置が計算する鍵Kとが一致する。すなわち、攻撃者の装置ADVは、第１情報共有装置の秘密鍵aを持たないにもかかわらず、第２情報共有装置と同一の鍵Kを共有でき、中間者攻撃が成立する。これは、攻撃者の装置ADVがT'=gt'/A∈Gを第２情報共有装置に送ることで、第２情報共有装置が鍵Kを計算する際に第１情報共有装置の公開鍵Aの成分が打ち消されることになることに基づく。同様に、攻撃者の装置ADVが第２情報共有装置に成りすまし、第１情報共有装置と同一の鍵Kを共有することも可能である。
【０００９】
＜改良方式３＞
これに対し、以下のような方式が存在する（非特許文献１参照）。
［公開パラメータ］
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gの任意の元を0以上q1/2以下の整数に写すハッシュ関数をF:G→[0, q1/2]とする。任意の値をLビットのビット列に写すハッシュ関数をHとする。Lは正整数であり、qをビット表現した場合のビット長をLとする。第１情報共有装置の識別子をIDAとし、第２情報共有装置の識別子をIDBとする。巡回群Gと生成元gとハッシュ関数F, Hと識別子IDA, IDBとは、第１情報共有装置と第２情報共有装置とに公開される。
［鍵交換］
第１情報共有装置は、乱数などの任意値t∈Zqを生成し、T=gt∈Gを第２情報共有装置に送り、第２情報共有装置は、乱数などの任意値y∈Zqを生成し、Y=gy∈Gを第１情報共有装置に送る。
第１情報共有装置は、d=F(T)とe=F(Y)とを計算し、自らの秘密鍵a∈Zqを用いて共有情報U1=(Y・Be)(t+a)∈Gと共有情報U2=(Y・B)(t+a・d)∈Gとを計算し、鍵K=H(U1, U2, IDA, IDB, T, Y)を計算する。第２情報共有装置は、d=F(T)とe=F(Y)とを計算し、自らの秘密鍵b∈Zqを用いて共有情報U1=(T・A)(y+b・e)∈Gと共有情報U2=(T・Ad)(y+b)∈Gとを計算し、鍵K=H(U1, U2, IDA, IDB, T, Y)を計算する。
【００１０】
ここで、巡回群Gは可換群であるから、(Y・Be)(t+a)=g(y+b・e)・(t+a)=g(t+a)・(y+b・e)=(T・A)(y+b・e)tとなり、(Y・B)(t+a・d)=g(y+b)・(t+a・d)=g(t+a・d)・(y+b)=(T・Ad)(y+b)となり、第１情報共有装置と第２情報共有装置とで同一の鍵Kが共有される。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置と第２情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。さらに、攻撃者の装置ADVは、第１情報共有装置の秘密鍵aも第２情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃１を行うことができない。さらに、第１情報共有装置の秘密鍵aを知らない攻撃者の装置ADVは、第１情報共有装置に成りすましたとしても、第２情報共有装置が共有情報U1=(T・A)(y+b・e)∈Gと共有情報U2=(T・Ad)(y+b)∈Gとを計算する際に、これら両方について第１情報共有装置の公開鍵Aの成分を打ち消すことになるT'をTとして生成することができない。同様に、第２情報共有装置の秘密鍵bを知らない攻撃者の装置ADVは、第２情報共有装置に成りすましたとしても、第１情報共有装置が共有情報U1=(Y・Be)(t+a)∈Gと共有情報U2=(Y・B)(t+a・d)∈Gとを計算する際に、これら両方について第２情報共有装置の公開鍵Bの成分を打ち消すことになるY'をYとして生成することができない。よって、攻撃者の装置ADVは、上述の中間者攻撃２を行うことができない。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Berkant Ustaoglu, "Comparing SessionStateReveal and EphemeralKeyReveal for Diffie-Hellman protocols", Pieprzyk, J, P., Zhang, F. (eds.) ProvSec 2009, LNCS, vol. 5848, pp. 183-197, Springer, Heidelberg (2009)
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、非特許文献１の方式は、共有情報U1及びU2を計算するために、ハッシュ関数Fを用いてd=F(T)とe=F(Y)とを計算する必要がある。
本発明はこのような点に鑑みてなされたものであり、高い安全性を確保しつつ、第１情報共有装置と第２情報共有装置とがハッシュ関数Fを用いることなく共有情報Uj（j=1,...,J）を共有することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では、第１情報共有装置が、整数の任意値tを生成し、任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成し、出力情報Tを出力する。第２情報共有装置が、整数の任意値yを生成し、任意値yと生成元gとを用い、出力情報Y=gy∈Gを生成し、出力情報Yを出力する。第１情報共有装置は、出力情報Yの入力を受け付け、整数である第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、出力情報Yと、整数である第１情報共有装置の秘密情報aと、任意値tとを用い、各演算式Vj（j=1,...,J、Jは２以上の整数）にそれぞれ従って共有情報Uj（j=1,...,J）をそれぞれ生成する。第２情報共有装置は、出力情報Tの入力を受け付け、第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、出力情報Tと、第２情報共有装置の秘密情報bと、任意値yとを用い、各演算式Wj（j=1,...,J）にそれぞれ従って共有情報Uj（j=1,...,J）をそれぞれ生成する。なお、演算式Vj（j=1,...,J）及び演算式Wj（j=1,...,J）は、それぞれ、巡回群Gでの演算のみを表し、演算式VmとVn（m,n∈{1,...,J},m≠n）とは互いに相違し、演算式WmとWn（m,n∈{1,...,J},m≠n）とは互いに相違し、共有情報Uj（j=1,...,J）は、それぞれ、整数の定数r(j,0),...,r(j,6)に対してg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))を満たし、少なくとも一部のm,n∈{1,...,J}(m≠n）の組について、ベクトル(r(m,6), r(m,5), r(m,4), r(m,3), r(m,2))とベクトル(r(n,6), r(n,5), r(n,4), r(n,3), r(n,2))とが一次独立である。
【発明の効果】
【００１４】
本発明では、高い安全性を確保しつつ、第１情報共有装置と第２情報共有装置とがハッシュ関数Fを用いることなく共有情報Uj（j=1,...,J）を共有することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１実施形態の機能構成を説明するための図である。
【図２】図２Ａ及び図２Ｂは、第１実施形態の情報共有方法を説明するための図である。
【図３】図３は、第２実施形態の機能構成を説明するための図である。
【図４】図４Ａ及び図４Ｂは、第２実施形態の情報共有方法を説明するための図である。
【図５】図５は、第３実施形態の機能構成を説明するための図である。
【図６】図６Ａ及び図６Ｂは、第３実施形態の情報共有方法を説明するための図である。
【図７】図７は、第４実施形態の機能構成を説明するための図である。
【図８】図８Ａ及び図８Ｂは、第４実施形態の情報共有方法を説明するための図である。
【図９】図９は、第５実施形態の機能構成を説明するための図である。
【図１０】図１０Ａ及び図１０Ｂは、第５実施形態の情報共有方法を説明するための図である。
【図１１】図１１は、第６実施形態の機能構成を説明するための図である。
【図１２】図１２Ａ及び図１２Ｂは、第６実施形態の情報共有方法を説明するための図である。
【図１３】図１３は、第７実施形態の機能構成を説明するための図である。
【図１４】図１４Ａ及び図１４Ｂは、第７実施形態の情報共有方法を説明するための図である。
【図１５】図１５は、第８実施形態の機能構成を説明するための図である。
【図１６】図１６Ａ及び図１６Ｂは、第８実施形態の情報共有方法を説明するための図である。
【図１７】図１７は、第９実施形態の機能構成を説明するための図である。
【図１８】図１８Ａ及び図１８Ｂは、第９実施形態の情報共有方法を説明するための図である。
【図１９】図１９は、第１０実施形態の機能構成を説明するための図である。
【図２０】図２０Ａ及び図２０Ｂは、第１０実施形態の情報共有方法を説明するための図である。
【発明を実施するための形態】
【００１６】
図面を参照して本発明の実施形態を説明する。
〔定義〕
まず、本形態で使用する用語及び記号を定義する。
Zq：Zqはqを法とする剰余環を表す。Zqの要素の一例は、qを法とする剰余類の完全代表系である。qを法とする剰余類の完全代表系の一例は{0,...,q-1}である。なお、qは正整数であり、qをビット表現した場合のビット長をL（Lは正整数）とする。安全性の面から位数qは素数であることが望ましい。また、位数qが素数でない場合には、位数qの最大因数のビット長がL以上であることが望ましい。素数であるか否かが不明な正整数をqとして用いてもよい。
Zq×：Zq×はqを法とする剰余類からなる乗法群を表す。乗法群Zq×を構成する集合の一例は{1,...,q-1}である。
【００１７】
G：Gは巡回群を表す。本形態の巡回群Gは、例えば、位数qの巡回群である。なお、巡回群Gとしては、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などを用いることができる。また、楕円曲線上の有理点のなす群をコンピュータ上で実現するための具体的方法には様々なものが存在し、実際、楕円曲線上の有理点のなす群で構成され、コンピュータ上で実装可能な様々な暗号方式が存在する。
【００１８】
g：gは巡回群Gの生成元を表す。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、生成元gは楕円曲線上の点g=(g1, g2)であり、巡回群Gが有限体の乗法群である場合、生成元gは２以上の整数である。
【００１９】
巡回群Gで定義された演算：巡回群Gの元は「巡回群Gで定義された演算」について群をなす。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、巡回群Gで定義された演算は楕円曲線上での楕円加算などである。また、例えば、巡回群Gが有限体の乗法群である場合、「巡回群Gでの演算」は、qを法とした剰余乗算などである。なお、本形態では、巡回群Gで定義された演算を乗法的に表現する。すなわち、α∈Zq及びβ∈Gに対するβα∈Gは、β∈Gに対して巡回群Gで定義された演算をα回施すことを意味し、β1, β2∈Gに対するβ1・β2∈Gは、β1, β2∈G1とを被演算子として巡回群Gで定義された演算を行うことを意味する。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、βα∈Gは、楕円曲線上の点βを楕円曲線上でα倍する楕円スカラー倍演算を表し、β1・β2∈Gは、楕円曲線上の点β1と点β2とを楕円曲線上で加算する楕円加算演算を表す。また、例えば、巡回群Gが有限体の乗法群である場合、βα∈Gは、βを整数とみなした場合のβα mod qの演算を表し、β1・β2∈Gは、β1及びβ2を整数とみなした場合のβ1・β2 mod qの演算を表す。
【００２０】
巡回群Gでの演算：「巡回群Gでの演算」は「巡回群Gで定義された演算」を用いて巡回群G上で実行可能な演算を表す。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、「巡回群Gでの演算」は、楕円曲線上での楕円加算、楕円スカラー倍算、逆元演算、又は、それらの少なくとも一部の組み合わせた演算を表す。また、例えば、巡回群Gが有限体の乗法群である場合、「巡回群Gでの演算」は、qを法とした剰余乗算、べき乗剰余、逆元演算、又は、それらの少なくとも一部の組み合わせた演算を表す。
【００２１】
H：Hは任意の値をLビットのビット列に写すハッシュ関数を表す。また、H(α1,...,αn)は、α1,...,αnに対して定まるハッシュ値を表す。例えば、α1,...,αnのそれぞれがすべてビット列なのであれば、α1,...,αnのビット結合α1|...|αnをSHA-1などの公知のハッシュ関数に入力して得られる値をH(α1,...,αn)とする。また、例えば、α1,...,αnの少なくとも一部がビット列以外の値（例えば巡回群Gの元）なのであれば、α1,...,αnの各要素をビット列に写像した値β1,...,βnのビット結合β1|...|βnのビット結合を、SHA-1などの公知のハッシュ関数に入力して得られる値をH(α1,...,αn)とする。このようなハッシュ関数Hは、SHA-1などの公知のハッシュ関数を用いて容易に構成できる。
【００２２】
a：a∈Zqは第１情報共有装置の秘密鍵（秘密情報）である。
A：A∈Gは第１情報共有装置の公開鍵（公開情報）であり、A=ga∈Gを満たす。
b：b∈Zqは第２情報共有装置の秘密鍵（秘密情報）である。
B：B∈Gは第２情報共有装置の公開鍵（公開情報）であり、B=gb∈Gを満たす。
【００２３】
〔原理〕
次に、本発明の実施形態の原理を説明する。
本形態では、第１情報共有装置が、整数の任意値tを生成し、任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成し、出力情報Tを出力する。第２情報共有装置が、整数の任意値yを生成し、任意値yと生成元gとを用い、出力情報Y=gy∈Gを生成し、出力情報Yを出力する。第１情報共有装置は、出力情報Yの入力を受け付け、整数である第２情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、出力情報Yと、整数である第１情報共有装置の秘密情報aと、任意値tとを用い、各演算式Vj（j=1,...,J、Jは２以上の整数）にそれぞれ従って共有情報Uj（j=1,...,J）をそれぞれ生成する。第２情報共有装置は、出力情報Tの入力を受け付け、第１情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、出力情報Tと、第２情報共有装置の秘密情報bと、任意値yとを用い、各演算式Wj（j=1,...,J）にそれぞれ従って共有情報Uj（j=1,...,J）をそれぞれ生成する。
【００２４】
なお、演算式Vj（j=1,...,J）及び演算式Wj（j=1,...,J）は、それぞれ、巡回群Gでの演算のみを表し、演算式VmとVn（m,n∈{1,...,J},m≠n）とは互いに相違し、演算式WmとWn（m,n∈{1,...,J},m≠n）とは互いに相違し、共有情報Uj（j=1,...,J）は、それぞれ、整数の定数r(j,0),...,r(j,6)に対してg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))を満たし、少なくとも一部のm,n∈{1,...,J}(m≠n）の組について、ベクトル(r(m,6), r(m,5), r(m,4), r(m,3), r(m,2))とベクトル(r(n,6), r(n,5), r(n,4), r(n,3), r(n,2))とが一次独立である。すなわち、δm・(r(m,6), r(m,5), r(m,4), r(m,3), r(m,2))+δn・(r(n,6), r(n,5), r(n,4), r(n,3), r(n,2))=(0, 0, 0, 0, 0)を満たすのはδm=δn=0である場合に限られる。
【００２５】
ここで、少なくとも一部のm,n∈{1,...,J}(m≠n）の組について、ベクトル(r(m,6), r(m,5), r(m,4), r(m,3), r(m,2))とベクトル(r(n,6), r(n,5), r(n,4), r(n,3), r(n,2))とが一次独立である場合、攻撃者の装置ADVは、第２情報共有装置が共有情報Uj（j=1,...,J）を計算する際に、それらのすべてについて第１情報共有装置の公開情報A=ga∈Gの成分を打ち消すことになるT'をTとして生成するとともに、第１情報共有装置が共有情報Uj（j=1,...,J）を計算する際に、それらのすべてについて第２情報共有装置の公開情報B=gb∈Gの成分を打ち消すことになるY'をYとして生成することができない。すなわち、攻撃者の装置ADVは、第１情報共有装置と第２情報共有装置との両方に成りすまして中間者攻撃を行うことができない。また、本形態では、共有情報Uj（j=1,...,J）の計算のためにハッシュ関数Fを用いる必要はない。これにより、本形態では、高い安全性を確保しつつ、第１情報共有装置と第２情報共有装置とがハッシュ関数Fを用いることなく共有情報を共有することができる。
【００２６】
また、少なくとも一部のm,n∈{1,...,J}(m≠n）の組について、ベクトル(r(m,6), r(m,5), r(m,3))とベクトル(r(n,6), r(n,5), r(n,3))とが一次独立であり、かつ、ベクトル(r(m,6), r(m,4), r(m,2))とベクトル(r(n,6), r(n,4), r(n,2))とが一次独立であることが望ましい。この場合、攻撃者の装置ADVは、第２情報共有装置が共有情報Uj（j=1,...,J）を計算する際に、それらのすべてについて第１情報共有装置の公開情報A=ga∈Gの成分を打ち消すことになるT'をTとして生成することができず、なおかつ、第１情報共有装置が共有情報Uj（j=1,...,J）を計算する際に、それらのすべてについて第２情報共有装置の公開情報B=gb∈Gの成分を打ち消すことになるY'をYとして生成することもできない。すなわち、攻撃者の装置ADVは、第１情報共有装置及び第２情報共有装置のいずれにも成りすますことができず、中間者攻撃を行うことができない。この場合、より高い安全性を確保できる。
【００２７】
また、第１情報共有装置が、共有情報Uj（j=1,...,J）を含む情報を関数Hに入力して得られる鍵Kを生成し、第２情報共有装置が、共有情報Uj（j=1,...,J）を含む情報を関数Hに入力して得られる鍵Kを生成することで、第１情報共有装置と第２情報共有装置とで同一の鍵Kを共有できる。ここで、本形態では、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置と第２情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００２８】
〔第１実施形態〕
次に、本発明の第１実施形態を説明する。第１実施形態では、J=2であり、演算式V1が(Y・B)(t+a)∈Gであり、演算式V2がYt・Ba∈Gであり、演算式W1が(T・A)(y+b)∈Gであり、演算式W2がTy・Ab∈Gである。
【００２９】
＜構成＞
図１に例示するように、第１実施形態の情報共有システム１は、情報共有装置１１０と情報共有装置１２０とを有する。
情報共有装置１１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部１１７と鍵生成部１１８とを有する。また、情報共有装置１２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部１２７と鍵生成部１２８とを有する。
【００３０】
情報共有装置１１０，１２０は、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)などからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置１１０，１２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置１１０，１２０が構築されてもよい。
記憶部１１１，１２１は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスク装置等の補助記憶装置、又は、それらの少なくとも一部を結合した記憶領域などである。入力部１１２，１２２及び出力部１１３，１２３は、例えば、特別なプログラムが読み込まれたCPUの制御のもと駆動する通信装置や入出力インタフェースなどである。制御部１１４，１２４、任意値生成部１１５，１２５、出力情報生成部１１６，１２６、共有情報生成部１１７，１２７、及び鍵生成部１１８，１２８は、例えば、特別なプログラムが読み込まれたCPUである。なお、制御部１１４，１２４、任意値生成部１１５，１２５、出力情報生成部１１６，１２６、共有情報生成部１１７，１２７、及び鍵生成部１１８，１２８の少なくとも一部が集積回路などのハードウェアのみから構成されていてもよい。
なお、情報共有装置１１０，１２０は、それぞれ、制御部１１４，１２４の制御のもと各処理を実行する。また、各演算過程で得られるデータは記憶部１１１，１２１に格納され、必要に応じて他の演算に用いられる。
【００３１】
＜処理＞
次に、第１実施形態の処理を説明する。
［前処理］
位数q、剰余環Zq、巡回群G、生成元g、ハッシュ関数H、第１情報共有装置１１０の識別子IDA、第２情報共有装置１２０の識別子IDB、第１情報共有装置１１０の秘密鍵（秘密情報）a及び公開鍵（公開情報）A=ga∈G、第２情報共有装置の秘密鍵（秘密情報）及び公開鍵（公開情報）B=gb∈Gが定められる。識別子IDA，IDB、秘密鍵a及び公開鍵Bは第１情報共有装置１１０の記憶部１１１に格納され、識別子IDA，IDB、秘密鍵b及び公開鍵Aは第２情報共有装置１２０の記憶部１２１に格納される。また、任意値生成部１１５，１２５は、剰余環Zqの元を生成するように構成され、出力情報生成部１１６，１２６は、生成元gを用いて巡回群G上の演算が可能なように構成され、共有情報生成部１１７，２１７は、巡回群G上の演算が可能なように構成され、鍵生成部１１８，１２８は、ハッシュ関数Hを用いたハッシュ演算が可能なように構成される。
【００３２】
［鍵交換］
次に、図２Ａ及び図２Ｂを用い、第１実施形態の鍵交換処理を説明する。
第１情報共有装置１１０の任意値生成部１１５が乱数などの任意値
t∈Zq  …(1)
を生成し、生成した任意値tを記憶部１１１に格納する（ステップＳ１１１）。例えば、任意値生成部１１５は、ＳＨＡ-１等の公知のハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて発生させた擬似乱数を用いて任意値t∈Zqを生成する。
【００３３】
第１情報共有装置１１０の出力情報生成部１１６は、記憶部１１１から任意値tを読み出し、任意値tと巡回群Gの生成元gとを用い、出力情報
T=gt∈G  …(2)
を生成し、生成した出力情報Tを記憶部１１１に格納する（ステップＳ１１２）。
記憶部１１１に格納された出力情報Tは出力部１１２に送られ、出力部１１２は出力情報Tを出力する（ステップＳ１１３）。出力された出力情報Tは、ネットワークや可搬型記録媒体などを介して第２情報共有装置１２０に送られる。
【００３４】
第２情報共有装置１２０の任意値生成部１２５が乱数などの任意値
y∈Zq  …(3)
を生成し、生成した任意値yを記憶部１２１に格納する（ステップＳ１２１）。例えば、任意値生成部１２５は、ＳＨＡ-１等の公知のハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて発生させた擬似乱数を用いて任意値t∈Zqを生成する。
【００３５】
第２情報共有装置１２０の出力情報生成部１２６は、記憶部１２１から任意値yを読み出し、任意値yと巡回群Gの生成元gとを用い、出力情報
Y=gy∈G  …(4)
を生成し、生成した出力情報Yを記憶部１２１に格納する（ステップＳ１２２）。
記憶部１２１に格納された出力情報Yは出力部１２３に送られ、出力部１２３は出力情報Yを出力する（ステップＳ１２３）。出力された出力情報Yは、ネットワークや可搬型記録媒体などを介して第１情報共有装置１１０に送られる。
【００３６】
第１情報共有装置１１０の入力部１１３は、出力情報Yの入力を受け付け、入力部１１３に入力された出力情報Yは記憶部１１１に格納される（ステップＳ１１４）。第１情報共有装置１１０の共有情報生成部１１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+a)∈G  …(5)
V2：Yt・Ba∈G  …(6)
にそれぞれ従って共有情報
U1=(Y・B)(t+a)∈G  …(7)
U2=Yt・Ba∈G  …(8)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ１１５）。
【００３７】
次に、第１情報共有装置１１０の鍵生成部１１８が、記憶部１１１から共有情報U1,U2と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1, U2, IDA, IDB, T, Y)  …(9)
を生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００３８】
第２情報共有装置１２０の入力部１２２は、出力情報Tの入力を受け付け、入力部１２２に入力された出力情報Tは記憶部１２１に格納される（ステップＳ１２４）。第２情報共有装置１２０の共有情報生成部１２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A)(y+b)∈G  …(10)
W2：Ty・Ab∈G  …(11)
にそれぞれ従って共有情報
U1=(T・A)(y+b)∈G  …(12)
U2=Ty・Ab∈G  …(13)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ１２５）。
【００３９】
次に、第２情報共有装置１２０の鍵生成部１２８が、記憶部１２１から共有情報U1,U2と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1, U2, IDA, IDB, T, Y)  …(14)
を生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００４０】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(7),(12)はいずれも
U1=(Y・B)(t+a)=(T・A)(y+b)=g(y+b)・(t+a)=g(t・y+ t・b + y・a + a・b)
=g(1・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(15)
を満たし、式(8),(13)はいずれも
U2=Yt・Ba=Ty・Ab=g(t・y+ a・b)
=g(1・a・b + 0・a・t + 0・b・t + 0・a・y + 0・b・y+ 1・t・y + 0)∈G  …(16)
を満たす。そのため、第１情報共有装置１１０と第２情報共有装置１２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置１１０と第２情報共有装置１２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００４１】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(1, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(1, 0, 0, 0, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(1, 0, 1)
(r(2,6), r(2,5), r(2,3))=(1, 0, 0)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(1, 0, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置１１０及び第２情報共有装置１２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００４２】
〔第２実施形態〕
次に、本発明のおける第２実施形態を説明する。第２実施形態では、J=2であり、演算式V1は(Y・B)(t+a)∈Gであり、演算式V2はBt・Ya∈Gであり、演算式W1は(T・A)(y+b)∈Gであり、演算式W2はAy・Tb∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００４３】
＜構成＞
図３に例示するように、第２実施形態の情報共有システム２は、情報共有装置２１０と情報共有装置２２０とを有する。
情報共有装置２１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部２１７と鍵生成部１１８とを有する。また、情報共有装置２２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部２２７と鍵生成部１２８とを有する。
情報共有装置２１０，２２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置２１０，２２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置２１０，２２０が構築されてもよい。
【００４４】
＜処理＞
次に、第２実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図４Ａ及び図４Ｂを用い、第２実施形態の鍵交換処理を説明する。
まず、第１情報共有装置２１０及び第２情報共有装置２２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００４５】
第１情報共有装置２１０の共有情報生成部２１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+a)∈G  …(17)
V2：Bt・Ya∈G  …(18)
にそれぞれ従って共有情報
U1=(Y・B)(t+a)∈G  …(19)
U2=Bt・Ya∈G  …(20)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ２１５）。次に、第１情報共有装置２１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００４６】
第２情報共有装置２２０の共有情報生成部２２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A)(y+b)∈G  …(21)
W2：Ay・Tb∈G  …(22)
にそれぞれ従って共有情報
U1=(T・A)(y+b)∈G  …(23)
U2=Ay・Tb∈G  …(24)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ２２５）。次に、第２情報共有装置２２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００４７】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(19),(23)はいずれも
U1=(Y・B)(t+a)=(T・A)(y+b)=g(y+b)・(t+a)=g(t・y+ t・b + y・a + a・b)
=g(1・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(25)
を満たし、式(20),(24)はいずれも
U2=Bt・Ya=Ay・Tb=g(t・b+ a・y)
=g(0・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 0・t・y + 0)∈G  …(26)
を満たす。そのため、第１情報共有装置２１０と第２情報共有装置２２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置２１０と第２情報共有装置２２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００４８】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(1, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(0, 0, 1, 1, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(1, 0, 1)
(r(2,6), r(2,5), r(2,3))=(0, 0, 1)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(0, 1, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置２１０及び第２情報共有装置２２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００４９】
〔第３実施形態〕
次に、本発明のおける第３実施形態を説明する。第３実施形態では、J=2であり、演算式V1はYa・Bt∈Gであり、演算式V2はYt・Ba∈Gであり、演算式W1はTb・Ay∈Gであり、演算式W2はTy・Ab∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００５０】
＜構成＞
図５に例示するように、第３実施形態の情報共有システム３は、情報共有装置３１０と情報共有装置３２０とを有する。
情報共有装置３１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部３１７と鍵生成部１１８とを有する。また、情報共有装置３２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部３２７と鍵生成部１２８とを有する。
情報共有装置３１０，３２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置３１０，３２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置３１０，３２０が構築されてもよい。
【００５１】
＜処理＞
次に、第３実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図６Ａ及び図６Ｂを用い、第３実施形態の鍵交換処理を説明する。
まず、第１情報共有装置３１０及び第２情報共有装置３２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００５２】
第１情報共有装置３１０の共有情報生成部３１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：Ya・Bt∈G  …(27)
V2：Yt・Ba∈G  …(28)
にそれぞれ従って共有情報
U1=Ya・Bt∈G  …(29)
U2=Yt・Ba∈G  …(30)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ３１５）。次に、第１情報共有装置３１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００５３】
第２情報共有装置３２０の共有情報生成部３２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：Tb・Ay∈G  …(31)
W2：Ty・Ab∈G  …(32)
にそれぞれ従って共有情報
U1=Tb・Ay∈G  …(33)
U2=Ty・Ab∈G  …(34)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ３２５）。次に、第２情報共有装置３２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００５４】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(29),(33)はいずれも
U1=Ya・Bt= Tb・Ay
=g(t・b + y・a)
=g(0・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 0・t・y + 0)∈G  …(35)
を満たし、式(30),(34)はいずれも
U2=Yt・Ba=Ty・Ab=g(t・y+ a・b)
=g(1・a・b + 0・a・t + 0・b・t + 0・a・y + 0・b・y+ 1・t・y + 0)∈G  …(36)
を満たす。そのため、第１情報共有装置３１０と第２情報共有装置３２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置３１０と第２情報共有装置３２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００５５】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(0, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(1, 0, 0, 0, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(0, 0, 1)
(r(2,6), r(2,5), r(2,3))=(1, 0, 0)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(0, 1, 0)
(r(2,6), r(2,4), r(2,2))=(1, 0, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置３１０及び第２情報共有装置３２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００５６】
〔第４実施形態〕
次に、本発明のおける第４実施形態を説明する。第４実施形態では、J=2であり、演算式V1は(Y・B)(t+a)∈Gであり、演算式V2は(Y・B-1)(t-a)∈Gであり、演算式W1は(T・A)(y+b)∈Gであり、演算式W2は(T・A-1)(y-b)∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００５７】
＜構成＞
図７に例示するように、第４実施形態の情報共有システム４は、情報共有装置４１０と情報共有装置４２０とを有する。
情報共有装置４１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部４１７と鍵生成部１１８とを有する。また、情報共有装置４２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部４２７と鍵生成部１２８とを有する。
情報共有装置４１０，４２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置４１０，４２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置４１０，４２０が構築されてもよい。
【００５８】
＜処理＞
次に、第４実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図８Ａ及び図８Ｂを用い、第４実施形態の鍵交換処理を説明する。
まず、第１情報共有装置４１０及び第２情報共有装置４２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００５９】
第１情報共有装置４１０の共有情報生成部４１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+a)∈G  …(37)
V2：(Y・B-1)(t-a)∈G  …(38)
にそれぞれ従って共有情報
U1=(Y・B)(t+a)∈G  …(39)
U2=(Y・B-1)(t-a)∈G  …(40)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ４１５）。次に、第１情報共有装置４１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００６０】
第２情報共有装置４２０の共有情報生成部４２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A)(y+b)∈G  …(41)
W2：(T・A-1)(y-b)∈G  …(42)
にそれぞれ従って共有情報
U1=(T・A)(y+b)∈G  …(43)
U2=(T・A-1)(y-b)∈G  …(44)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ４２５）。次に、第２情報共有装置４２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００６１】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(39),(43)はいずれも
U1=(Y・B)(t+a)=(T・A)(y+b)=g(y+b)・(t+a)=g(t・y + t・b + y・a + a・b)
=g(1・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(45)
を満たし、式(40),(44)はいずれも
U2=(Y・B-1)(t-a)=(T・A-1)(y-b)=g(y-b)・(t-a) )=g(t・y - t・b - y・a + a・b)
=g(1・a・b + 0・a・t - 1・b・t - 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(46)
を満たす。そのため、第１情報共有装置４１０と第２情報共有装置４２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置４１０と第２情報共有装置４２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００６２】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(1, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(1, 0, -1, -1, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(1, 0, 1)
(r(2,6), r(2,5), r(2,3))=(1, 0, -1)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(1, -1, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置４１０及び第２情報共有装置４２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００６３】
〔第５実施形態〕
次に、本発明のおける第５実施形態を説明する。第５実施形態では、J=2であり、演算式V1は(Y・B)(t-a)∈Gであり、演算式V2は(Y・B-1)(t+a)∈Gであり、演算式W1は(T・A-1)(y+b)∈Gであり、演算式W2は(T・A)(y-b)∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００６４】
＜構成＞
図９に例示するように、第５実施形態の情報共有システム５は、情報共有装置５１０と情報共有装置５２０とを有する。
情報共有装置５１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部５１７と鍵生成部１１８とを有する。また、情報共有装置５２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部５２７と鍵生成部１２８とを有する。
情報共有装置５１０，５２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置５１０，５２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置５１０，５２０が構築されてもよい。
【００６５】
＜処理＞
次に、第５実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図１０Ａ及び図１０Ｂを用い、第５実施形態の鍵交換処理を説明する。
まず、第１情報共有装置５１０及び第２情報共有装置５２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００６６】
第１情報共有装置５１０の共有情報生成部５１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t-a)∈G  …(47)
V2：(Y・B-1)(t+a)∈G  …(48)
にそれぞれ従って共有情報
U1=(Y・B)(t-a)∈G  …(49)
U2=(Y・B-1)(t+a)∈G  …(50)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ５１５）。次に、第１情報共有装置５１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００６７】
第２情報共有装置５２０の共有情報生成部５２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A-1)(y+b)∈G  …(51)
W2：(T・A)(y-b)∈G  …(52)
にそれぞれ従って共有情報
U1=(T・A-1)(y+b)∈G  …(53)
U2=(T・A)(y-b)∈G  …(54)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ５２５）。次に、第２情報共有装置５２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００６８】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(49),(53)はいずれも
U1=(Y・B)(t-a)=(T・A-1)(y+b)=g(y+b)・(t-a)=g(t・y + t・b - y・a - a・b)
=g(-1・a・b + 0・a・t + 1・b・t - 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(55)
を満たし、式(50),(54)はいずれも
U2=(Y・B-1)(t+a)=(T・A)(y-b)=g(y-b)・(t+a)=g(t・y - t・b + y・a - a・b)
=g(-1・a・b + 0・a・t - 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(56)
を満たす。そのため、第１情報共有装置５１０と第２情報共有装置５２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置５１０と第２情報共有装置５２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００６９】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(-1, 0, 1, -1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(-1, 0, -1, 1, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(-1, 0, -1)
(r(2,6), r(2,5), r(2,3))=(-1, 0, 1)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(-1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(-1, -1, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置５１０及び第２情報共有装置５２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００７０】
〔第６実施形態〕
次に、本発明のおける第６実施形態を説明する。第６実施形態では、J=４であり、演算式V1はBt∈Gであり、演算式V2はYa∈Gであり、演算式V3はBa∈Gであり、演算式V4はYt∈Gであり、演算式W1はTb∈Gであり、演算式W2はAy∈Gであり、演算式W3はAb∈Gであり、演算式W4はTy∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００７１】
＜構成＞
図１１に例示するように、第６実施形態の情報共有システム６は、情報共有装置６１０と情報共有装置６２０とを有する。
情報共有装置６１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部６１７と鍵生成部６１８とを有する。また、情報共有装置６２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部６２７と鍵生成部６２８とを有する。
情報共有装置６１０，６２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置６１０，６２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置６１０，６２０が構築されてもよい。
【００７２】
＜処理＞
次に、第６実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図１２Ａ及び図１２Ｂを用い、第６実施形態の鍵交換処理を説明する。
まず、第１情報共有装置６１０及び第２情報共有装置６２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００７３】
第１情報共有装置６１０の共有情報生成部６１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：Bt∈G  …(57)
V2：Ya∈G  …(58)
V3：Ba∈G  …(59)
V4：Yt∈G  …(60)
にそれぞれ従って共有情報
U1=Bt∈G  …(61)
U2=Ya∈G  …(62)
U3=Ba∈G  …(63)
U4=Yt∈G  …(64)
をそれぞれ生成し、共有情報U1,U2,U3,U4を記憶部１１１に格納する（ステップＳ６１５）。
【００７４】
次に、第１情報共有装置６１０の鍵生成部６１８が記憶部１１１から共有情報U1,U2,U3,U4と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1, U2, U3, U4, IDA, IDB, T, Y)  …(65)
を生成し、生成した鍵Kを出力する（ステップＳ６１６）。
【００７５】
第２情報共有装置６２０の共有情報生成部６２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：Tb∈G  …(66)
W2：Ay∈G  …(67)
W3：Ab∈G  …(68)
W4：Ty∈G  …(69)
にそれぞれ従って共有情報
U1=Tb∈G  …(70)
U2=Ay∈G  …(71)
U3=Ab∈G  …(72)
U4=Ty∈G  …(73)
をそれぞれ生成し、共有情報U1,U2,U3,U4を記憶部１２１に格納する（ステップＳ６２５）。
【００７６】
次に、第２情報共有装置６２０の鍵生成部６２８が記憶部１２１から共有情報U1,U2,U3,U4と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1, U2, U3, U4, IDA, IDB, T, Y)  …(74)
を生成し、生成した鍵Kを出力する（ステップＳ６２６）。
【００７７】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(61),(70)はいずれも
U1=Bt=Tb=gt・b
=g(0・a・b + 0・a・t + 1・b・t + 0・a・y + 0・b・y+ 0・t・y + 0)∈G  …(75)
を満たし、式(62),(71)はいずれも
U2=Ya=Ay=gy・a
=g(0・a・b + 0・a・t + 0・b・t + 1・a・y + 0・b・y+ 0・t・y + 0)∈G  …(76)
を満たし、式(63),(72)はいずれも
U3=Ba=Ab=ga・b
=g(1・a・b + 0・a・t + 0・b・t + 0・a・y + 0・b・y+ 0・t・y + 0)∈G  …(77)
を満たし、式(64),(73)はいずれも
U2=Yt=Ty=gt・y
=g(0・a・b + 0・a・t + 0・b・t + 0・a・y + 0・b・y+ 1・t・y + 0)∈G  …(78)
を満たす。そのため、第１情報共有装置６１０と第２情報共有装置６２０との間で共有情報U1,U2,U3,U4を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置６１０と第２情報共有装置６２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００７８】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(0, 0, 1, 0, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(0, 0, 0, 1, 0)
(r(3,6), r(3,5), r(3,4), r(3,3), r(3,2))=(1, 0, 0, 0, 0)
(r(4,6), r(4,5), r(4,4), r(4,3), r(4,2))=(0, 0, 0, 0, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(2,6), r(2,5), r(2,3))=(0, 0, 1)
(r(3,6), r(3,5), r(3,3))=(1, 0, 0)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(0, 1, 0)
(r(3,6), r(3,4), r(3,2))=(1, 0, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置６１０及び第２情報共有装置６２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2,U3,U4を生成するためにハッシュ関数を使用する必要はない。
【００７９】
〔第７実施形態〕
次に、本発明のおける第７実施形態を説明する。第７実施形態では、J=2であり、演算式V1は(Y・B)(t+a)∈Gであり、演算式V2は(Y・B2)(t+2・a)∈Gであり、演算式W1は(T・A)(y+b)∈Gであり、演算式W2は(T・A2)(y+2・b)∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００８０】
＜構成＞
図１３に例示するように、第７実施形態の情報共有システム７は、情報共有装置７１０と情報共有装置７２０とを有する。
情報共有装置７１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部７１７と鍵生成部１１８とを有する。また、情報共有装置７２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部７２７と鍵生成部１２８とを有する。
情報共有装置７１０，７２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置７１０，７２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置７１０，７２０が構築されてもよい。
【００８１】
＜処理＞
次に、第７実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図１３Ａ及び図１３Ｂを用い、第７実施形態の鍵交換処理を説明する。
まず、第１情報共有装置７１０及び第２情報共有装置７２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００８２】
第１情報共有装置７１０の共有情報生成部７１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+a)∈G  …(79)
V2：(Y・B2)(t+2・a)∈G  …(80)
にそれぞれ従って共有情報
U1=(Y・B)(t+a)∈G  …(81)
U2=(Y・B2)(t+2・a)∈G  …(82)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ７１５）。次に、第１情報共有装置７１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００８３】
第２情報共有装置７２０の共有情報生成部７２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A)(y+b)∈G  …(83)
W2：(T・A2)(y+2・b)∈G  …(84)
にそれぞれ従って共有情報
U1=(T・A)(y+b)∈G  …(85)
U2=(T・A2)(y+2・b)∈G  …(86)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ７２５）。次に、第２情報共有装置７２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００８４】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(81),(85)はいずれも
U1=(Y・B)(t+a)=(T・A)(y+b)=g(y+b)・(t+a)=g(t・y + t・b + y・a + a・b)
=g(1・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(87)
を満たし、式(82),(86)はいずれも
U2=(Y・B2)(t+2・a)=(T・A2)(y+2・b)=g(y+2・b)・(t+2・a)=g(t・y + 2・t・b + 2・y・a + 4・a・b)
=g(4・a・b + 0・a・t + 2・b・t + 2・a・y + 0・b・y+ 1・t・y + 0)∈G  …(88)
を満たす。そのため、第１情報共有装置７１０と第２情報共有装置７２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置７１０と第２情報共有装置７２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００８５】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(1, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(4, 0, 2, 2, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(1, 0, 1)
(r(2,6), r(2,5), r(2,3))=(4, 0, 2)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(4, 2, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置７１０及び第２情報共有装置７２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００８６】
〔第８実施形態〕
次に、本発明のおける第８実施形態を説明する。第８実施形態では、J=2であり、演算式V1は(Y・B)(t+2・a)∈Gであり、演算式V2は(Y・B2)(t+a)∈Gであり、演算式W1は(T・A2)(y+b)∈Gであり、演算式W2は(T・A)(y+2・b)∈Gである。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００８７】
＜構成＞
図１５に例示するように、第８実施形態の情報共有システム８は、情報共有装置８１０と情報共有装置８２０とを有する。
情報共有装置８１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部８１７と鍵生成部１１８とを有する。また、情報共有装置８２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部８２７と鍵生成部１２８とを有する。
情報共有装置８１０，８２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置８１０，８２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置８１０，８２０が構築されてもよい。
【００８８】
＜処理＞
次に、第８実施形態の処理を説明する。
［前処理］
第１実施形態と同じである。
［鍵交換］
次に、図１５Ａ及び図１５Ｂを用い、第８実施形態の鍵交換処理を説明する。
まず、第１情報共有装置８１０及び第２情報共有装置８２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００８９】
第１情報共有装置８１０の共有情報生成部８１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+2・a)∈G  …(89)
V2：(Y・B2)(t+a)∈G  …(90)
にそれぞれ従って共有情報
U1=(Y・B)(t+2・a)∈G  …(91)
U2=(Y・B2)(t+a)∈G  …(92)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ８１５）。次に、第１情報共有装置８１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００９０】
第２情報共有装置８２０の共有情報生成部８２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A2)(y+b)∈G  …(93)
W2：(T・A)(y+2・b)∈G  …(94)
にそれぞれ従って共有情報
U1=(T・A2)(y+b)∈G  …(95)
U2=(T・A)(y+2・b)∈G  …(96)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ８２５）。次に、第２情報共有装置８２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００９１】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(91),(95)はいずれも
U1=(Y・B)(t+2・a)=(T・A2)(y+b)=g(y+b)・(t+2・a)=g(t・y + t・b + 2・y・a + 2・a・b)
=g(2・a・b + 0・a・t + 1・b・t + 2・a・y + 0・b・y+ 1・t・y + 0)∈G  …(97)
を満たし、式(92),(96)はいずれも
U2=(Y・B2)(t+a)=(T・A)(y+2・b)=g(y+2・b)・(t+a)=g(t・y + 2・t・b + y・a + 2・a・b)
=g(2・a・b + 0・a・t + 2・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(98)
を満たす。そのため、第１情報共有装置８１０と第２情報共有装置８２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置８１０と第２情報共有装置８２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００９２】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(2, 0, 1, 2, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(2, 0, 2, 1, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(2, 0, 2)
(r(2,6), r(2,5), r(2,3))=(2, 0, 1)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(2, 1, 0)
(r(2,6), r(2,4), r(2,2))=(2, 2, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置８１０及び第２情報共有装置８２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【００９３】
〔第９実施形態〕
次に、本発明のおける第９実施形態を説明する。第９実施形態では、J=2であり、演算式V1は(Y・B)(t+a)∈Gであり、演算式V2は(Y・Bd)(t+c・a)∈Gであり、演算式W1は(T・A)(y+b)∈Gであり、演算式W2は(T・Ac)(y+d・b)∈Gであり、c, d∈Zq×は定数である。ただし、c=1∈Zq×かつd=1∈Zq×ではない。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【００９４】
＜構成＞
図１７に例示するように、第９実施形態の情報共有システム９は、情報共有装置９１０と情報共有装置９２０とを有する。
情報共有装置９１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部９１７と鍵生成部１１８とを有する。また、情報共有装置９２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部９２７と鍵生成部１２８とを有する。
情報共有装置９１０，９２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置９１０，９２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置９１０，９２０が構築されてもよい。
【００９５】
＜処理＞
次に、第９実施形態の処理を説明する。
［前処理］
第１情報共有装置９１０，９２０の共有情報生成部９１７，９２７が予め定められた整数定数c及びdを使用可能に構成される。例えば、共有情報生成部９１７，９２７を構成するための特別なプログラム中に整数定数c及びdが組み込まれていてもよいし、共有情報生成部９１７，９２７が読み取り可能な記憶部１１１，１２１に整数定数c及びdが格納されてもよい。その他は第１実施形態と同じである。
［鍵交換］
次に、図１７Ａ及び図１７Ｂを用い、第９実施形態の鍵交換処理を説明する。
まず、第１情報共有装置９１０及び第２情報共有装置９２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【００９６】
第１情報共有装置９１０の共有情報生成部９１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+a)∈G  …(99)
V2：(Y・Bd)(t+c・a)∈G  …(100)
にそれぞれ従って共有情報
U1=(Y・B)(t+a)∈G  …(101)
U2=(Y・Bd)(t+c・a)∈G  …(102)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ９１５）。次に、第１情報共有装置９１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【００９７】
第２情報共有装置９２０の共有情報生成部９２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・A)(y+b)∈G  …(103)
W2：(T・Ac)(y+d・b)∈G  …(104)
にそれぞれ従って共有情報
U1=(T・A)(y+b)∈G  …(105)
U2=(T・Ac)(y+d・b)∈G  …(106)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ９２５）。次に、第２情報共有装置９２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【００９８】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(101),(105)はいずれも
U1=(Y・B)(t+a)=(T・A)(y+b)=g(y+b)・(t+a)=g(t・y + t・b + y・a + a・b)
=g(1・a・b + 0・a・t + 1・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(107)
を満たし、式(102),(106)はいずれも
U2=(Y・Bd)(t+c・a)=(T・Ac)(y+d・b)=g(y+d・b)・(t+c・a)=g(t・y + d・t・b + c・y・a + c・d・a・b)
=g(c・d・a・b + 0・a・t + d・b・t + c・a・y + 0・b・y+ 1・t・y + 0)∈G  
…(108)
を満たす。そのため、第１情報共有装置９１０と第２情報共有装置９２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置９１０と第２情報共有装置９２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【００９９】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(1, 0, 1, 1, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(c・d, 0, d, c, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(1, 0, 1)
(r(2,6), r(2,5), r(2,3))=(c・d, 0, c)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(1, 1, 0)
(r(2,6), r(2,4), r(2,2))=(c・d, d, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置９１０及び第２情報共有装置９２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【０１００】
〔第１０実施形態〕
次に、本発明のおける第１０実施形態を説明する。第１０実施形態では、J=2であり、演算式V1は(Y・B)(t+c・a)∈Gであり、演算式V2は(Y・Bd)(t+a)∈Gであり、演算式W1は(T・Ac)(y+b)∈Gであり、演算式W2は(T・A)(y+d・b)∈Gであり、c, d∈Zq×は定数である。ただし、c=1∈Zq×かつd=1∈Zq×ではない。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する事項については第１実施形態と同じ参照番号を用い、説明を省略する。
【０１０１】
＜構成＞
図１９に例示するように、第１０実施形態の情報共有システム１０は、情報共有装置１０１０と情報共有装置１０２０とを有する。
情報共有装置１０１０は、記憶部１１１と入力部１１２と出力部１１３と制御部１１４と任意値生成部１１５と出力情報生成部１１６と共有情報生成部１０１７と鍵生成部１１８とを有する。また、情報共有装置１０２０は、記憶部１２１と入力部１２２と出力部１２３と制御部１２４と任意値生成部１２５と出力情報生成部１２６と共有情報生成部１０２７と鍵生成部１２８とを有する。
情報共有装置１０１０，１０２０は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置１０１０，１０２０が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置１０１０，１０２０が構築されてもよい。
【０１０２】
＜処理＞
次に、第１０実施形態の処理を説明する。
［前処理］
第９実施形態と同じである。
［鍵交換］
次に、図２０Ａ及び図２０Ｂを用い、第１０実施形態の鍵交換処理を説明する。
まず、第１情報共有装置１０１０及び第２情報共有装置１０２０が、第１実施形態で説明したステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２４の処理を実行する。
【０１０３】
第１情報共有装置１０１０の共有情報生成部１０１７は、記憶部１１１から出力情報Yと公開鍵Bと秘密鍵aと任意値tとを読み込み、これらを用い、演算式
V1：(Y・B)(t+c・a)∈G  …(109)
V2：(Y・Bd)(t+a)∈G  …(110)
にそれぞれ従って共有情報
U1=(Y・B)(t+c・a)∈G  …(111)
U2=(Y・Bd)(t+a)∈G  …(112)
をそれぞれ生成し、共有情報U1,U2を記憶部１１１に格納する（ステップＳ１０１５）。次に、第１情報共有装置１０１０の鍵生成部１１８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１１６）。
【０１０４】
第２情報共有装置１０２０の共有情報生成部１０２７は、記憶部１２１から出力情報Tと公開鍵Aと秘密鍵bと任意値yとを読み込み、これらを用い、演算式
W1：(T・Ac)(y+b)∈G  …(113)
W2：(T・A)(y+d・b)∈G  …(114)
にそれぞれ従って共有情報
U1=(T・Ac)(y+b)∈G  …(115)
U2=(T・A)(y+d・b)∈G  …(116)
をそれぞれ生成し、共有情報U1,U2を記憶部１２１に格納する（ステップＳ１０２５）。次に、第２情報共有装置１０２０の鍵生成部１２８が、第１実施形態と同様に鍵Kを生成し、生成した鍵Kを出力する（ステップＳ１２６）。
【０１０５】
＜本形態の特徴＞
巡回群Gは可換群であるから、式(111),(115)はいずれも
U1=(Y・B)(t+c・a)=(T・Ac)(y+b)=g(y+b)・(t+c・a)=g(t・y + t・b + c・y・a + c・a・b)
=g(c・a・b + 0・a・t + 1・b・t + c・a・y + 0・b・y+ 1・t・y + 0)∈G  …(117)
を満たし、式(112),(116)はいずれも
U2=(Y・Bd)(t+a)=(T・A)(y+d・b)=g(y+d・b)・(t+a)=g(t・y + d・t・b + y・a + d・a・b)
=g(d・a・b + 0・a・t + d・b・t + 1・a・y + 0・b・y+ 1・t・y + 0)∈G  …(118)
を満たす。そのため、第１情報共有装置１０１０と第２情報共有装置１０２０との間で共有情報U1及びU2を共有でき、鍵Kも共有できる。また、任意値t,yに応じて鍵Kの値が異なるため、第１情報共有装置１０１０と第２情報共有装置１０２０との間で上記の処理を行うたびに共有される鍵Kが変化する。
【０１０６】
また、共有情報Ujをg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))と表現する場合、ベクトル
(r(1,6), r(1,5), r(1,4), r(1,3), r(1,2))=(c, 0, 1, c, 0)
(r(2,6), r(2,5), r(2,4), r(2,3), r(2,2))=(d, 0, d, 1, 0)
が互いに一次独立になる。また、その部分ベクトル
(r(1,6), r(1,5), r(1,3))=(c, 0, c)
(r(2,6), r(2,5), r(2,3))=(d, 0, 1)
が互いに一次独立となり、部分ベクトル
(r(1,6), r(1,4), r(1,2))=(c, 1, 0)
(r(2,6), r(2,4), r(2,2))=(d, d, 0)
が互いに一次独立になる。この場合、攻撃者の装置ADVは、第１情報共有装置１０１０及び第２情報共有装置１０２０のいずれにも成りすますことができず、中間者攻撃を行うことができない。また、共有情報U1,U2を生成するためにハッシュ関数を使用する必要はない。
【０１０７】
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第１〜５，７〜１０実施形態では、K=H(U1, U2, IDA, IDB, T, Y)の計算によって鍵を生成し、第６実施形態では、K=H(U1, U2, U3, U4, IDA, IDB, T, Y)の計算によって鍵を生成することとした。しかし、すべての共有情報Uj(j=1,...,J)を含む情報γとし、K=H(γ)の計算によって鍵を生成するのであれば、その他の情報をγとしてもよい。例えば、情報γがIDA, IDB, T, Yの少なくとも一部を含まなくてもよいし、情報γがセッションＩＤやアルゴリズムＩＤなどの他の情報を含んでもよい。ただし、第１情報共有装置と第２情報共有装置とでのγは同一の構成とする。
【０１０８】
また、各実施形態では、U1, U2, IDA, IDB, T, Yをビット列に写像した値β1,...,β6のビット結合β1|...|β6のハッシュ値をH(U1, U2, IDA, IDB, T, Y)とし、U1, U2, U3, U4, IDA, IDB, T, Yをビット列に写像した値β1,...,β8のビット結合β1|...|β8のハッシュ値をK=H(U1, U2, U3, U4, IDA, IDB, T, Y)としたが、ビット結合の順序はこれに限定されない。第１情報共有装置と第２情報共有装置とでのビット結合の順序は同一とする。
【０１０９】
また、各実施形態では、ハッシュ関数の出力ビット数をLとしたが、ハッシュ関数の出力ビット数がL以外であってもよい。さらに、各実施形態ではHがハッシュ関数である場合を例示したが、Hが共通鍵暗号関数、入力値をビット列に変換してからビット結合する関数など、どの他の関数をHとして用いてもかまわない。
【０１１０】
また、各実施形態では、共有情報Uj(j=1,...,J)を用いて鍵Kを生成することとしたが、鍵Kを生成することなく、共有情報Uj(j=1,...,J)そのものが暗号化処理その他の処理に利用されてもよい。
【０１１１】
また、上記の各実施形態では、秘密情報aが第１情報共有装置の秘密鍵そのものであり、秘密情報bが第２情報共有装置の秘密鍵そのものであるとした。しかし、秘密情報a, bが秘密鍵そのものでなく、第１情報共有装置の秘密鍵の関数値をaとし、第２情報共有装置の秘密鍵の関数値をbとしてもよい。秘密鍵の関数値の例は、秘密鍵と定数又は変数との加算値、秘密鍵のべき乗値、秘密鍵のべき乗値と定数又は変数との加算値、秘密鍵の逆元値、秘密鍵の逆元値と定数又は変数との加算値、秘密鍵のハッシュ値などである。なお、定数や変数は、正であってもよいし負であってもよい。
【０１１２】
また、各実施形態において剰余環Zqの要素として説明した値が整数であってもよい。また、乗法群Zq×の要素として説明したc, dが整数であってもよい。ただし、「c=0かつd=0」ではなく、「c=1かつd=1」でもない。さらに、安全性の観点からはc≠0かつd≠0であることが望ましい。
【０１１３】
また、共有情報Uj（j=1,...,J）が、それぞれ、整数の定数r(j,0),...,r(j,6)に対してg(r(j,6)・a・b + r(j,5)・a・t + r(j,4)・b・t + r(j,3)・a・y + r(j,2)・b・y+ r(j,1)・t・y + r(j,0))を満たし、少なくとも一部のm,n∈{1,...,J}(m≠n）の組について、ベクトル(r(m,6), r(m,5), r(m,4), r(m,3), r(m,2), r(m,1))とベクトル(r(n,6), r(n,5), r(n,4), r(n,3), r(n,2), r(n,1))とが一次独立であるものとしてもよい。
【０１１４】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【０１１５】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。なお、当該プログラムは、上述した特別なプログラムであってもよいし、特別なプログラムと汎用プログラムとの結合であってもよい。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
また、各形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【０１１６】
１〜１０  情報共有システム
１１０〜１１１０  第１情報共有装置
１２０〜１１２０  第２情報共有装置
【図１】
0005491260.tif 000002
【図２】
0005491260.tif 000003
【図３】
0005491260.tif 000004
【図４】
0005491260.tif 000005
【図５】
0005491260.tif 000006
【図６】
0005491260.tif 000007
【図７】
0005491260.tif 000008
【図８】
0005491260.tif 000009
【図９】
0005491260.tif 000010
【図１０】
0005491260.tif 000011
【図１１】
0005491260.tif 000012
【図１２】
0005491260.tif 000013
【図１３】
0005491260.tif 000014
【図１４】
0005491260.tif 000015
【図１５】
0005491260.tif 000016
【図１６】
0005491260.tif 000017
【図１７】
0005491260.tif 000018
【図１８】
0005491260.tif 000019
【図１９】
0005491260.tif 000020
【図２０】
0005491260.tif 000021