(57)【要約】【課題】  秘密情報の共有に関し、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図る。【解決手段】    まず、セキュリティ装置１０において、共有行列α∈Ｍを生成し、セキュリティ装置３０に送信する。また、セキュリティ装置１０において、秘密情報である自然数ｎＡ及びｒＡを設定し、KA=S(rA)・αnA・S(rA)-1を算出し、これをセキュリティ装置３０に送信する。なお、Ｓ（ｒ）は可逆可換行列である。  また、セキュリティ装置３０において、秘密情報である自然数ｎＢ及びｒＢを設定し、KB=S(rB)・αnB・S(rB)-1を算出し、セキュリティ装置１０に送信する。  そして、セキュリティ装置１０において、KAB=S(rA)・KBnA・S(rA)-1を算出し、セキュリティ装置３０において、KAB=S(rB)・KAnB・S(rB)-1を算出し、共有秘密情報ＫＡＢを共有する。  【選択図】        図２
2005252864.tif 000002
【特許請求の範囲】
【請求項１】
第１のセキュリティ装置と第２のセキュリティ装置の間で、共有秘密情報ＫＡＢの共有化を行うセキュリティシステムであって、
前記第１のセキュリティ装置は、
秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶する第１の秘密情報メモリと、
共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。）を、前記第２のセキュリティ装置との共有情報として記憶する第１の共有行列メモリと、
可逆可換行列特定情報（各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報）を、前記第２のセキュリティ装置との共有情報として記憶する第１の可逆可換行列特定情報メモリと、
第１の行列べき乗αｎＡ（前記共有行列αの前記第１の自然数ｎＡによる、べき乗結果）を算出する第１の行列べき演算手段と、
前記第２の秘密値ｒＡと前記可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する第１の可逆可換行列生成手段と、
前記第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する第１の逆行列生成手段と、
第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する第１の行列積演算手段と、
前記第１の配信行列ＫＡを、前記第２のセキュリティ装置に送信する第１の送信手段と、
を有し、
前記第２のセキュリティ装置は、
秘密情報である第３の自然数ｎＢ及び第４の秘密値ｒＢを記憶する第２の秘密情報メモリと、
前記共有行列α∈Ｍを、前記第１のセキュリティ装置との共有情報として記憶する第２の共有行列メモリと、
前記可逆可換行列特定情報を、前記第１のセキュリティ装置との共有情報として記憶する第２の可逆可換行列特定情報メモリと、
第２の行列べき乗αｎＢ（前記共有行列αの前記第３の自然数ｎＢによる、べき乗結果）を算出する第２の行列べき演算手段と、
前記第４の秘密値ｒＢと前記可逆可換行列特定情報を用い、第２の可逆可換行列Ｓ（ｒＢ）を生成する第２の可逆可換行列生成手段と、
前記第２の可逆可換行列Ｓ（ｒＢ）の逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する第２の逆行列生成手段と、
第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出する第２の行列積演算手段と、
前記第２の配信行列ＫＢを、前記第１のセキュリティ装置に送信する第２の送信手段と、
を有し、
前記第１のセキュリティ装置は、
前記第２の配信行列ＫＢを受信する第１の受信手段と、
第３の行列べき乗ＫＢｎＡ（前記第２の配信行列ＫＢの前記第１の自然数ｎＡによる、べき乗結果）を算出する第３の行列べき演算手段と、
共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する第３の行列積演算手段と、
をさらに有し、
前記第２のセキュリティ装置は、
前記第１の配信行列ＫＡを受信する第２の受信手段と、
第４の行列べき乗ＫＡｎＢ（前記第１の配信行列ＫＡの前記第３の自然数ｎＢによる、べき乗結果）を算出する第４の行列べき演算手段と、
共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出する第４の行列積演算手段と、
をさらに有する、
ことを特徴とするセキュリティシステム。
【請求項２】
他のセキュリティ装置の間で共有秘密情報ＫＡＢの共有化を行うセキュリティ装置であって、
秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶する第１の秘密情報メモリと、
共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。）を、他のセキュリティ装置との共有情報として記憶する第１の共有行列メモリと、
可逆可換行列特定情報（各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報）を、前記他のセキュリティ装置との共有情報として記憶する第１の可逆可換行列特定情報メモリと、
第１の行列べき乗αｎＡ（前記共有行列αの前記第１の自然数ｎＡによる、べき乗結果）を算出する第１の行列べき演算手段と、
前記第２の秘密値ｒＡと前記可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する第１の可逆可換行列生成手段と、
前記第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する第１の逆行列生成手段と、
第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する第１の行列積演算手段と、
前記第１の配信行列ＫＡを、前記他のセキュリティ装置に送信する第１の送信手段と、
前記他のセキュリティ装置から送信された第２の配信行列KB=S(rB)・αnB・S(rB)-1（ｎＢ,ｒＢは、当該他のセキュリティ装置の秘密情報）を受信する第１の受信手段と、
第３の行列べき乗ＫＢｎＡ（前記第２の配信行列ＫＢの前記第１の自然数ｎＡによる、べき乗結果）を算出する第３の行列べき演算手段と、
共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する第３の行列積演算手段と、
を有することを特徴とするセキュリティ装置。
【請求項３】
請求項２記載のセキュリティ装置であって、
前記可逆可換行列特定情報は、
所定の可逆行列β∈Ｍであり、
前記第２の秘密値ｒＡは、
自然数であり、
前記第１の可逆可換行列生成手段は、
Ｓ（ｒ）＝βｒのｒに前記第２の秘密値ｒＡを代入し、前記可逆可換行列Ｓ（ｒＡ）を生成する手段である、
ことを特徴とするセキュリティ装置。
【請求項４】
請求項２記載のセキュリティ装置であって、
前記共有秘密情報ＫＡＢは、
前記他のセキュリティ装置と共有される、共通鍵暗号方式の共通鍵である、
ことを特徴とするセキュリティ装置。
【請求項５】
第２のセキュリティ装置から第１のセキュリティ装置への暗号通信を行うセキュリティシステムであって、
前記第１のセキュリティ装置は、
秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶する第１の秘密情報メモリと、
共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。）を、前記第２のセキュリティ装置との共有情報として記憶する第１の共有行列メモリと、
可逆可換行列特定情報（各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報）を、前記第２のセキュリティ装置との共有情報として記憶する第１の可逆可換行列特定情報メモリと、
第１の行列べき乗αｎＡ（前記共有行列αの前記第１の自然数ｎＡによる、べき乗結果）を算出する第１の行列べき演算手段と、
前記第２の秘密値ｒＡと前記可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する第１の可逆可換行列生成手段と、
前記第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する第１の逆行列生成手段と、
第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する第１の行列積演算手段と、
前記第１の配信行列ＫＡを、前記第２のセキュリティ装置に送信する第１の送信手段と、
を有し、
前記第２のセキュリティ装置は、
秘密情報である第３の自然数ｎＢ及び第４の秘密値ｒＢを記憶する第２の秘密情報メモリと、
前記共有行列α∈Ｍを、前記第１のセキュリティ装置との共有情報として記憶する第２の共有行列メモリと、
前記可逆可換行列特定情報を、前記第１のセキュリティ装置との共有情報として記憶する第２の可逆可換行列特定情報メモリと、
第２の行列べき乗αｎＢ（前記共有行列αの前記第３の自然数ｎＢによる、べき乗結果）を算出する第２の行列べき演算手段と、
前記第４の秘密値ｒＢと前記可逆可換行列特定情報を用い、第２の可逆可換行列Ｓ（ｒＢ）を生成する第２の可逆可換行列生成手段と、
前記第２の可逆可換行列Ｓ（ｒＢ）の逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する第２の逆行列生成手段と、
第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出する第２の行列積演算手段と、
前記第１の配信行列ＫＡを受信する第２の受信手段と、
第４の行列べき乗ＫＡｎＢ（前記第１の配信行列ＫＡの前記第３の自然数ｎＢによる、べき乗結果）を算出する第４の行列べき演算手段と、
共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出する第４の行列積演算手段と、
前記第１のセキュリティ装置と同じハッシュ関数Ｈを用い、前記共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する第２のハッシュ演算手段と、
平文ｍの入力を受け付ける入力手段と、
前記ハッシュ値Ｈ（ＫＡＢ）と前記平文ｍの排他的論理和H(KAB)(+)mを算出する第２の排他的論理和演算手段と、
前記第２の配信行列ＫＢと、前記排他的論理和H(KAB)(+)ｍを、暗号文C=(KB,H(KAB)(+)m)として送信する第２の送信手段と、
を有し、
前記第１のセキュリティ装置は、
前記暗号文Ｃを受信する第１の受信手段と、
第３の行列べき乗ＫＢｎＡ（前記第２の配信行列ＫＢの前記第１の自然数ｎＡによる、べき乗結果）を算出する第３の行列べき演算手段と、
共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する第３の行列積演算手段と、
前記第２のセキュリティ装置と同じハッシュ関数Ｈを用い、前記共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する第１のハッシュ演算手段と、
前記暗号文Ｃの前記排他的論理和H(KAB)(+)mと、前記第１のハッシュ演算手段において算出された前記ハッシュ値Ｈ（ＫＡＢ）との排他的論理和H(KAB)(+)m(+)H(KAB)=mを算出する第１の排他的論理和演算手段と、
をさらに有する、
ことを特徴とするセキュリティシステム。
【請求項６】
暗号情報を復号するセキュリティ装置であって、
秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶する第１の秘密情報メモリと、
共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。）を、他のセキュリティ装置との共有情報として記憶する第１の共有行列メモリと、
可逆可換行列特定情報（各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報）を、前記他のセキュリティ装置との共有情報として記憶する第１の可逆可換行列特定情報メモリと、
第１の行列べき乗αｎＡ（前記共有行列αの前記第１の自然数ｎＡによる、べき乗結果）を算出する第１の行列べき演算手段と、
前記第２の秘密値ｒＡと前記可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する第１の可逆可換行列生成手段と、
前記第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する第１の逆行列生成手段と、
第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する第１の行列積演算手段と、
前記第１の配信行列ＫＡを、前記他のセキュリティ装置に送信する第１の送信手段と、
前記暗号文C=(KB,H(KAB)(+)m)（ＫＢは第２の配信行列、Ｈ（ＫＡＢ）は共有秘密情報ＫＡＢのハッシュ値、ｍは平文）を受信する第１の受信手段と、
第３の行列べき乗ＫＢｎＡ（前記第２の配信行列ＫＢの前記第１の自然数ｎＡによる、べき乗結果）を算出する第３の行列べき演算手段と、
共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する第３の行列積演算手段と、
前記他のセキュリティ装置と同じハッシュ関数Ｈを用い、前記共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する第１のハッシュ演算手段と、
前記暗号文Ｃの排他的論理和H(KAB)(+)mと、前記第１のハッシュ演算手段において算出された前記ハッシュ値Ｈ（ＫＡＢ）との排他的論理和H(KAB)(+)m(+)H(KAB)=mを算出する第１の排他的論理和演算手段と、
を有するセキュリティ装置。
【請求項７】
請求項６記載のセキュリティ装置であって、
前記可逆可換行列特定情報は、
所定の可逆行列β∈Ｍであり、
前記第２の秘密値ｒＡは、
自然数であり、
前記第１の可逆可換行列生成手段は、
Ｓ（ｒ）＝βｒのｒに前記第２の秘密値ｒＡを代入し、前記可逆可換行列Ｓ（ｒＡ）を生成する手段である、
ことを特徴とするセキュリティ装置。
【請求項８】
暗号化を行うセキュリティ装置であって、
秘密情報である第３の自然数ｎＢ及び第４の秘密値ｒＢを記憶する第２の秘密情報メモリと、
前記共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。）を、他のセキュリティ装置との共有情報として記憶する第２の共有行列メモリと、
可逆可換行列特定情報（各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報）を、前記他のセキュリティ装置との共有情報として記憶する第２の可逆可換行列特定情報メモリと、
第２の行列べき乗αｎＢ（前記共有行列αの前記第３の自然数ｎＢによる、べき乗結果）を算出する第２の行列べき演算手段と、
前記第４の秘密値ｒＢと前記可逆可換行列特定情報を用い、第２の可逆可換行列Ｓ（ｒＢ）を生成する第２の可逆可換行列生成手段と、
前記第２の可逆可換行列Ｓ（ｒＢ）の逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する第２の逆行列生成手段と、
第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出する第２の行列積演算手段と、
第１の配信行列ＫＡを受信する第２の受信手段と、
第４の行列べき乗ＫＡｎＢ（前記第１の配信行列ＫＡの前記第３の自然数ｎＢによる、べき乗結果）を算出する第４の行列べき演算手段と、
共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出する第４の行列積演算手段と、
前記他のセキュリティ装置と同じハッシュ関数Ｈを用い、前記共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する第２のハッシュ演算手段と、
平文ｍの入力を受け付ける入力手段と、
前記ハッシュ値Ｈ（ＫＡＢ）と前記平文ｍの排他的論理和H(KAB)(+)mを算出する第２の排他的論理和演算手段と、
前記第２の配信行列ＫＢと、前記排他的論理和H(KAB)(+)mを、暗号文C=(KB,H(KAB)(+)m)として送信する第２の送信手段と、
を有することを特徴とするセキュリティ装置。
【請求項９】
請求項８記載のセキュリティ装置であって、
前記可逆可換行列特定情報は、
所定の可逆行列β∈Ｍであり、
前記第２の秘密値ｒＡは、
自然数であり、
前記第２の可逆可換行列生成手段は、
Ｓ（ｒ）＝βｒのｒに前記第２の秘密値ｒＡを代入し、前記可逆可換行列Ｓ（ｒＡ）を生成する手段である、
ことを特徴とするセキュリティ装置。
【請求項１０】
請求項２から４の何れかに記載のセキュリティ装置としてコンピュータを機能させるためのプログラム。
【請求項１１】
請求項６或いは７記載のセキュリティ装置としてコンピュータを機能させるためのプログラム。
【請求項１２】
請求項８或いは９記載のセキュリティ装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号技術に関し、特に、秘密情報の共有方式或いは公開鍵暗号方式に関する。
【背景技術】
【０００２】
従来より、離散対数問題を応用したDiffile-Hellman鍵配送方式（例えば、非特許文献１参照。）及びその応用としての公開鍵暗号方式が提案されている。以下、これらの各方式について説明する。
【０００３】
＜Diffile-Hellman鍵配送方式＞
相互に通信する機能を備えた鍵配送装置甲、乙において、甲から乙に鍵を配送する。なお、甲乙間は共通の自然数Ｎを生成する装置を備え、それぞれの制御装置を用いて以下の方式によって通信する。また、甲乙間は、安全でない通信回線によって結ばれている。
・甲は、擬似乱数生成装置を用いてあるＮ以下の整数ａを定め、このａを乙に送信する。
・次に甲は、擬似乱数生成装置を用いてある自然数ｓを定め、整数演算装置を用いてb=asmodNを計算する。そして、甲は、自然数ｓを秘密に保ち、ｂを乙に送信する。
・乙は、擬似乱数生成装置により、ある自然数ｔを定め、整数演算装置によりc=atmodNを計算する。そして、乙は、整数ｔを秘密に保ち、ｃを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたｂから、鍵k=btmodNを求める。
・甲は、整数演算装置を用い、乙から送信されたｃから、鍵k=csmodNを求める。
ここで、乙が求めた鍵ｋは、k=btmodN=astmodNとなり、甲が求めた鍵k=csmodN=astmodNと一致する。
【０００４】
＜Diffile-Hellman鍵配送方式を応用した公開鍵暗号方式＞
相互に通信する機能を備えた鍵配送装置甲、乙において、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号する。
・甲は、擬似乱数生成装置を用いてあるＮ以下の整数ａを定め、このａを乙に送信する。
・次に甲は、擬似乱数生成装置を用いてある自然数ｓを定め、整数演算装置を用いてb=asmodNを計算する。そして、甲は、自然数ｓを秘密に保ち、ｂを乙に送信する。ここで、自然数ｓは秘密鍵として機能し、ｂは公開鍵として機能する。
・乙は、擬似乱数生成装置により、ある自然数ｔを定め、整数演算装置によりc=atmodNを計算する。また、乙は、整数演算装置を用い、甲から送信されたｂから、鍵k=btmodNを求める。そして、乙は、この鍵ｋで平文ｍを暗号化した後、この暗号文と計算したｃとを、甲に送信する。
・甲は、整数演算装置を用い、送られたｃから鍵k=csmodNを計算し、この鍵ｋを用い、送られた暗号文を復号する。
【非特許文献１】岡本龍明，山本博資“現代暗号，”産業図書，１９９７，Ｐ２００
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来のDiffile-Hellman鍵配送方式及びその応用としての公開鍵暗号方式では、ｂ及びｃの計算に必要な四則演算の回数が、秘密パラメータｓ、ｔの大きさに依存して増大してしまう。そのため、秘密パラメータｓ、ｔを大きくした場合、鍵配送時、暗号・復号時における計算量が増大し、実用面での利便性に問題があるという課題がある。
一方、秘密パラメータｓ、ｔの値が十分大きくない場合、高速指数計算法等の攻撃アルゴリズムを用いることにより、第三者が比較的容易に鍵ｋを計算できることが知られており、この場合、安全性に課題が残る。
【０００６】
本発明はこのような点に鑑みてなされたものであり、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティシステムを提供することを目的とする。
また、本発明の他の目的は、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることが可能なセキュリティ装置を提供することである。
【課題を解決するための手段】
【０００７】
＜第１の本発明＞
第１の本発明では、以下のように、第１のセキュリティ装置と第２のセキュリティ装置との間で共有秘密情報ＫＡＢの共有化を行う。
まず、第１のセキュリティ装置において、秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶し、さらに第２のセキュリティ装置との共有情報である共有行列α∈Ｍ及び可逆可換行列特定情報を記憶する。
また、第２のセキュリティ装置において、秘密情報である第３の自然数ｎＢ及び第４の秘密値ｒＢを記憶し、さらに第１のセキュリティ装置との共有情報である共有行列α∈Ｍ及び可逆可換行列特定情報を記憶する。
【０００８】
ここで、Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群であり、ｑは素数のべき乗であり、ｕは２以上の自然数である。また、可逆可換行列特定情報とは、各値ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報を意味する。また、可逆可換行列Ｓ（ｒ）とは、逆行列Ｓ（ｒ）−１が存在し、なおかつ、任意の値ｒ，ｒ’に対し、S(r)・S(r’)=S(r’)・S(r)を満たす行列を意味する。
次に、第１のセキュリティ装置において、第１の行列べき乗αｎＡを算出し、第２の秘密値ｒＡと可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成し、その逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する。そして、第１のセキュリティ装置は、これらを用いて第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出し、それを第２のセキュリティ装置に送信する。なお、上付き添え字の「ｎＡ」は、第１の自然数ｎＡを意味する。すなわち、第１の行列べき乗αｎＡは、共有行列αの第１の自然数ｎＡによる、べき乗結果である。
【０００９】
一方、第２のセキュリティ装置は、第２の行列べき乗αｎＢを算出し、第４の秘密値ｒＢと可逆可換行列特定情報を用い、第２の可逆可換行列Ｓ（ｒＢ）を生成し、その逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する。そして、第２のセキュリティ装置は、これらを用いて第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出し、それを第１のセキュリティ装置に送信する。なお、上付き添え字の「ｎＢ」は、第３の自然数ｎＢを意味する。すなわち、第２の行列べき乗αｎＢは、共有行列αの第３の自然数ｎＢによる、べき乗結果である。
【００１０】
第１のセキュリティ装置は、上述の第２の配信行列ＫＢを受信し、第３の行列べき乗ＫＢｎＡ（第２の配信行列ＫＢの第１の自然数ｎＡによる、べき乗結果）を算出し、共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する。
一方、第２のセキュリティ装置は、上述の第１の配信行列ＫＡを受信し、第４の行列べき乗ＫＡｎＢ（第１の配信行列ＫＡの第３の自然数ｎＢによる、べき乗結果）を算出し、共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出する。
ここで、可逆可換行列Ｓ（ｒ）の性質より、第１のセキュリティ装置及び第２のセキュリティ装置において算出された共有秘密情報ＫＡＢは、ともにＫＡＢ＝S(rA)・S(rB)・αnA・nB・S(rA)-1・S(rB)-1と変換できる（詳細は後述）。これは、第１のセキュリティ装置及び第２のセキュリティ装置において共有秘密情報ＫＡＢが共有されたことを意味する。
【００１１】
また、この方式の安全性は、「群Ｇにおいて、ｘ，ｙ∈Ｇが与えられたとき、ｗ∈Ｇでｙ＝ｗｘｗ−１となるものが存在するならばｗを出力し、存在しないならばその旨を出力せよ」という共役問題の求解困難性に基づく。
すなわち、第１のセキュリティ装置と第２のセキュリティ装置との通信が盗聴可能であり、さらに、第１の自然数ｎＡ及び第３の自然数ｎＢが攻撃者に知られた状況を想定する。この場合、攻撃者が共有秘密情報ＫＡＢを取得するためには、盗聴したＫＢｎＡ及びＫＡｎＢと、知得した第１の自然数ｎＡ及び第３の自然数ｎＢから、第１の可逆可換行列Ｓ（ｒＡ）及び第２の可逆可換行列Ｓ（ｒＢ）を求めなければならない。そして、攻撃者がこれらを求めることは、上述の共役問題を解くことに相当する（ｙ＝ＫＡＢ、ｗ＝Ｓ（ｒＡ）及びＳ（ｒＢ）、ｘ＝ＫＢｎＡ及びＫＡｎＢとおく）。
【００１２】
しかし、一般に有限群についての共役問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、秘密パラメータ値（ｎＡ，ｎＢ，ｒＡ，ｒＢ）を大きくすることなく、従来にない高い安全性を実現することができる。
＜第２の本発明＞
第２の本発明では、以下のように、第２のセキュリティ装置から第１のセキュリティ装置への暗号通信を行う。
【００１３】
まず、第１のセキュリティ装置において、秘密情報である第１の自然数ｎＡ及び第２の秘密値ｒＡを記憶し、第２のセキュリティ装置との共有情報である共有行列α∈Ｍ及び可逆可換行列特定情報を記憶する。
また、第２のセキュリティ装置において、秘密情報である第３の自然数ｎＢ及び第４の秘密値ｒＢを記憶し、第１のセキュリティ装置との共有情報である共有行列α∈Ｍ及び可逆可換行列特定情報を記憶する。
次に、第１のセキュリティ装置において、第１の行列べき乗αｎＡを算出し、第２の秘密値ｒＡと可逆可換行列特定情報を用い、第１の可逆可換行列Ｓ（ｒＡ）を生成し、その逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する。そして、第１のセキュリティ装置は、これらを用いて第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出し、それを第２のセキュリティ装置に送信する。
【００１４】
一方、第２のセキュリティ装置は、第２の行列べき乗αｎＢを算出し、第４の秘密値ｒＢと可逆可換行列特定情報を用い、第２の可逆可換行列Ｓ（ｒＢ）を生成し、その逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する。そして、第２のセキュリティ装置は、これらを用いて第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出する。
次に、第２のセキュリティ装置は、上述の第１の配信行列ＫＡを受信し、第４の行列べき乗ＫＡｎＢ（第１の配信行列ＫＡの第３の自然数ｎＢによる、べき乗結果）を算出する。そして、第２のセキュリティ装置は、共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出し、第１のセキュリティ装置と同じハッシュ関数Ｈを用い、共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する。
【００１５】
また、第２のセキュリティ装置は、平文ｍの入力を受け付け、ハッシュ値Ｈ（ＫＡＢ）と平文ｍの排他的論理和H(KAB)(+)mを算出し、暗号文C=(KB,H(KAB)(+)m)を送信する。なお、γ(+)δは、γとδとの排他的論理和
【数１】
2005252864.tif 000003
を示す。
【００１６】
第１のセキュリティ装置は、この暗号文Ｃを受信し、第３の行列べき乗ＫＢｎＡ（第２の配信行列ＫＢの第１の自然数ｎＡによる、べき乗結果）を算出し、共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する。そして、第１のセキュリティ装置は、第２のセキュリティ装置と同じハッシュ関数Ｈを用い、算出した共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出し、このハッシュ値Ｈ（ＫＡＢ）と、暗号文Ｃの排他的論理和H(KAB)(+)mを用い、排他的論理和H(KAB)(+)m(+)H(KAB)=mによって、平文ｍを復号する。
【００１７】
ここで、前述のように、第１のセキュリティ装置及び第２のセキュリティ装置において算出された共有秘密情報KABは等しい。また、第１のセキュリティ装置及び第２のセキュリティ装置において使用するハッシュ関数Ｈは等しい。よって、第１のセキュリティ装置が求めたハッシュ値Ｈ（ＫＡＢ）は、第２のセキュリティ装置において生成された暗号文Ｃのハッシュ値Ｈ（ＫＡＢ）と等しい。よって、排他的論理和H(KAB)(+)m(+)H(KAB)の値はｍとなり、平文ｍが復号される。
また、その安全性は、第１の発明と同様、共役問題の求解困難性に基づく。すなわち、第１のセキュリティ装置と第２のセキュリティ装置との通信が盗聴可能であり、さらに、ハッシュ関数Ｈ、第１の自然数ｎＡ及び第３の自然数ｎＢが攻撃者に知られた状況下において、攻撃者が暗号文Ｃを復号するためには、この攻撃者は共有秘密情報ＫＡＢを取得しなければならない。しかし、前述のように、攻撃者が共有秘密情報ＫＡＢを求めることは、共役問題の求解困難性により困難である。以上より、この方式でも、秘密パラメータ値（ｎＡ，ｎＢ，ｒＡ，ｒＢ）を大きくすることなく、従来にない高い安全性を確保できる。
【発明の効果】
【００１８】
以上説明した通り、本発明における、共有秘密情報の共有化及び暗号通信の安全性は、共役問題の求解困難性に基づく。そして、一般に有限群について共役問題を解くことは容易ではない。つまり、この共役問題を解く指数計算法等の準指数オーダーの計算量のアルゴリズムは知られておらず、量子コンピュータの使用を前提にしたとしても効率的なアルゴリズムは知られていない。そのため、本発明では、秘密パラメータ値を大きくすることなく、従来にない高い安全性を確保できる。つまり、秘密パラメータ値増大による計算量増大をいう問題を回避しつつ、高い安全性を確保できる。
【００１９】
以上より、本発明では、利用時における利便性を保ちつつ、第三者からの攻撃に対する安全性の向上を図ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、この発明の実施の形態を図面を参照して説明する。
〔第１の実施の形態〕
まず、本発明における第１の実施の形態について説明する。
本形態では、安全でない通信路を通じ、装置間で共有秘密情報（例えば、共通鍵暗号方式の共有鍵（共通鍵）等）の共有化を行う。
【００２１】
＜構成＞
図１は、本形態におけるセキュリティシステム１の構成を例示したブロック図である。
本形態のセキュリティシステム１は、セキュリティ装置１０（「第１のセキュリティ装置」に相当）と、セキュリティ装置３０（「第２のセキュリティ装置」に相当）とによって構成され、これらのセキュリティ装置１０，３０間は、インターネット等の必ずしも安全でない通信路を通じて相互に通信可能となっている。
図１に例示するように、この例のセキュリティ装置１０は、共有情報生成手段１１、共有行列メモリ１２（「第１の共有行列メモリ」に相当）、可逆可換行列特定情報メモリ１３（「第１の可逆可換行列特定情報メモリ」に相当）、擬似乱数発生手段１４、秘密情報メモリ１５（「第１の秘密情報メモリ」に相当）、行列べき演算手段１６（「第１の行列べき演算手段」に相当）、可逆可換行列生成手段１７（「第１の可逆可換行列生成手段」に相当）、逆行列生成手段１８（「第１の逆行列生成手段」に相当）、行列積演算手段１９（「第１の行列積演算手段」に相当）、送信手段２０（「第１の送信手段」に相当）、受信手段２１（「第１の受信手段」に相当）、行列べき演算手段２２（「第３の行列べき演算手段」に相当）、行列積演算手段２３（「第３の行列積演算手段」に相当）及び行列メモリ２４を有している。なお、この例のセキュリティ装置１０は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等から構成される公知のコンピュータに、所定のプログラムを実行させることにより構築されるものである。
【００２２】
また、この例のセキュリティ装置３０は、共有行列メモリ３２（「第２の共有行列メモリ」に相当）、可逆可換行列特定情報メモリ３３（「第２の可逆可換行列特定情報メモリ」に相当）、擬似乱数発生手段３４、秘密情報メモリ３５（「第２の秘密情報メモリ」に相当）、行列べき演算手段３６（「第２の行列べき演算手段」に相当）、可逆可換行列生成手段３７（「第２の可逆可換行列生成手段」に相当）、逆行列生成手段３８（「第２の逆行列生成手段」に相当）、行列積演算手段３９（「第２の行列積演算手段」に相当）、送信手段４０（「第２の送信手段」に相当）、受信手段４１（「第２の受信手段」に相当）、行列べき演算手段４２（「第４の行列べき演算手段」に相当）、行列積演算手段４３（「第４の行列積演算手段」に相当）及び行列メモリ４４を有している。なお、この例のセキュリティ装置３０も、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成される公知のコンピュータに、所定のプログラムを実行させることにより構築されるものである。
【００２３】
ここで、この例の行列積演算手段１９、２３、３９、４３は、セキュリティ装置１０、３０に共通の有限体Ｆｑを要素に持つｕ×ｕ行列の部分群Ｍ⊂Ｍａｔ（ｕ，Ｆｑ）について、２つの元の積を計算する手段である。なお、ｑは素数のべき乗であり、ｕは２以上の自然数である。
また、この例の行列べき演算手段１６、２２、３６、４２は、上述の部分群Ｍの元についてのべき乗を計算する手段である。
さらに、この例の逆行列生成手段１８、３８は、上述の部分群Ｍの一つ元について逆行列が存在すれば、その逆行列を計算して出力し、存在しなければ、エラー終了する手段である。なお、逆行列の生成は、例えば、「佐竹一郎著、“線形代数学”、裳華房、５７版、Ｐ６１」等に記載の公知な方法を用いる。
【００２４】
また、可逆可換行列生成手段１７、３７は、自然数ｒの入力に対し、部分群Ｍの可逆な元Ｓ（ｒ）であって、入力の任意の値ｒ，ｒ’について、S(r)S(r’)=S(r’)S(r)を満たすもの（可換なもの）を出力する手段である。
なお、図１では、セキュリティ装置１０、３０それぞれを制御する制御手段、及び制御手段に関する情報の流れは省略してある。
【００２５】
＜処理の全体＞
図２は、このセキュリティシステム１における処理の全体の流れを示した図である。
以下、この図を用い、セキュリティシステム１の処理の概略について説明する。
まず、セキュリティ装置１０において、共有行列α∈Ｍ（Ｍは有限体Ｆｑを要素に持つｕ×ｕ行列の部分群）を生成し、これを必ずしも安全とはいえない（通信情報が漏洩する可能性がある）通信路を通じ、セキュリティ装置３０に送信する。
次に、セキュリティ装置１０において、秘密情報である第１の自然数ｎＡ及び第２の自然数ｒＡ（「第２の秘密値」に相当）を設定し、外部に対して秘密が保たれるように記憶する。そして、このセキュリティ装置１０において、第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出し、これを必ずしも安全とはいえない通信路を通じ、セキュリティ装置３０に送信する。
【００２６】
また、セキュリティ装置３０において、秘密情報である第３の自然数ｎＢ及び第４の自然数ｒＢ（「第４の秘密値」に相当）を設定し、外部に対して秘密が保たれるように記憶する。そして、このセキュリティ装置３０において、第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出し、これを必ずしも安全とはいえない通信路を通じ、セキュリティ装置１０に送信する。
そして、セキュリティ装置１０において、KAB=S(rA)・KBnA・S(rA)-1を算出し、これを共有秘密情報（例えば、セキュリティ装置３０と共有される、共通鍵暗号方式の共通鍵（共有鍵））とする。同様に、セキュリティ装置３０において、KAB=S(rB)・KAnB・S(rB)-1を算出し、これを共有秘密情報とする。なお、セキュリティ装置１０、３０でそれぞれ算出されたKABが等しくなることの証明は後述する。
【００２７】
＜処理の詳細＞
次に、セキュリティシステム１における処理の詳細について説明する。
図３及び図４は、セキュリティ装置１０、３０の処理の詳細な流れを示した図である。なお、図３及び図４における（ａ）はセキュリティ装置１０の処理の流れを示しており、（ｂ）はセキュリティ装置３０の処理の流れを示している。
以下、図１、図３及び図４を用い、セキュリティ装置１０、３０の処理の詳細について説明する。
【００２８】
＜前処理＞
まず、セキュリティ装置１０、３０において、共通の自然数ｕとある素数のべき乗ｑ＝ｐｅ（ｅは自然数）を共有する。具体的には、行列べき演算手段１６、２２、３６、４２、可逆可換行列生成手段１７、３７、逆行列生成手段１８、３８及び行列積演算手段１９、２３、３９、４３において、共通の自然数ｕとある素数のべき乗ｑを設定しておく。すなわち、これらの手段では、共通の有限体Ｆｑを要素に持つｕ×ｕ行列の部分群Ｍの元を取り扱うが、送られたデータをこのように取り扱うためには、これらの手段がｕとｑの値を保持していなければならない。ここでは、その設定を行う。なお、ｕ，ｑは公開してもかまわない。
【００２９】
また、セキュリティ装置１０、３０において、共通の可逆可換行列特定情報（各値（例えば自然数）ｒに対し、可逆可換行列Ｓ（ｒ）∈Ｍを一義的に特定するための情報であり、セキュリティ装置１０、３０間の共有情報である。）を、可逆可換行列特定情報メモリ１３，３３にそれぞれ記憶させる。なお、この例の場合、可逆可換行列特定情報は、セキュリティ装置１０、３０に共通の所定の可逆行列β∈Ｍである。
＜セキュリティ装置１０の処理＞
まず、共有行列生成手段１１において共有行列α∈Ｍを生成し、これを共有行列メモリ１２（「第１の共有行列メモリ」に相当）に、セキュリティ装置３０との共有情報として記憶する（ステップＳ１）。そして、送信手段２０は、共有行列メモリ１２からこの共有行列αを抽出し、それをセキュリティ装置３０との共有情報とするためセキュリティ装置３０に送信する（ステップＳ２）。
【００３０】
次に、擬似乱数発生装置１４において、例えば、ＳＨＡ-１等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて擬似乱数を発生させ、それにより秘密情報である第１の自然数ｎＡ及び第２の自然数ｒＡを生成する。生成された第１の自然数ｎＡ及び第２の自然数ｒＡは秘密情報メモリ１５に送られ、そこで安全に格納（記憶）される（ステップＳ３）。
次に、行列べき演算手段１６において、秘密情報メモリ１５から第１の自然数ｎＡを抽出し、共有行列メモリ１２から共有行列αを抽出し、第１の行列べき乗αｎＡ（共有行列αの第１の自然数ｎＡによる、べき乗結果）を算出する（ステップＳ４）。算出された第１の行列べき乗αｎＡは、行列積演算手段１９に送られる。
【００３１】
次に、可逆可換行列生成手段１７において、秘密情報メモリ１５から第２の自然数ｒＡを抽出し、可逆可換行列特定情報メモリ１３から可逆可換行列特定情報を抽出し、これらを用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する。この例の場合、可逆可換行列生成手段１７は、可逆可換行列特定情報として可逆行列β∈Ｍを抽出し、Ｓ（ｒ）＝βｒのｒに自然数ｒＡを代入し、可逆可換行列Ｓ（ｒＡ）を生成する。そして、生成された第１の可逆可換行列Ｓ（ｒＡ）は、逆行列生成手段１８及び行列積演算手段１９に送られる他、行列メモリ２４に送られて記憶される（ステップＳ５）。
【００３２】
次に、逆行列生成手段１８において、送られた第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する。生成された第１の逆行列Ｓ（ｒＡ）−１は、行列積演算手段１９に送られる他、行列メモリ２４に送られて記憶される（ステップＳ６）。
次に、行列積演算手段１９において、第１の行列べき乗αｎＡ、第１の可逆可換行列Ｓ（ｒＡ）及び第１の逆行列Ｓ（ｒＡ）−１を用い、第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する（ステップＳ７）。算出された第１の配信行列ＫＡは、送信手段２０に送られ、送信手段２０は、この第１の配信行列ＫＡを、セキュリティ装置３０に送信する（ステップＳ８）。
【００３３】
また、セキュリティ装置１０は、セキュリティ装置３０から送信（後述のステップＳ２７）された第２の配信行列ＫＢ=S(rB)・αnB・S(rB)-1を、受信手段２１において受信し、これを行列べき演算手段２２に送る（ステップＳ９）。行列べき演算手段２２は、秘密情報メモリ１５から第１の自然数ｎＡを抽出し、第３の行列べき乗ＫＢｎＡ（第２の配信行列ＫＢの第１の自然数ｎＡによる、べき乗結果）を算出して行列積演算手段２３に送る（ステップＳ１０）。
行列積演算手段２３は、行列メモリ２４から第１の可逆可換行列Ｓ（ｒＡ）及び第１の逆行列Ｓ（ｒＡ）−１を抽出し、これらと、行列べき演算手段２２から送られた第３の行列べき乗ＫＢｎＡとを用い、共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出し、出力する（ステップＳ１１）。
【００３４】
＜セキュリティ装置３０の処理＞
まず、前述のステップＳ２でセキュリティ装置１０から送信された共有行列α∈Ｍを受信手段４１において受信し、これを、セキュリティ装置１０との共有情報として共有行列メモリ３２に記憶する（ステップＳ２１）。また、擬似乱数発生装置３４において、秘密情報である第３の自然数ｎＢ及び第４の自然数ｒＢを生成し、これらを秘密情報メモリ３５に送って記憶させる（ステップＳ２２）。
次に、行列べき演算手段３６において、秘密情報メモリ３５から第３の自然数ｎＢを抽出し、共有行列メモリ３２から共有行列α∈Ｍを抽出し、これらを用いて、第２の行列べき乗αｎＢ（共有行列αの第３の自然数ｎＢによる、べき乗結果）を算出する（ステップＳ２３）。そして、算出された第２の行列べき乗αｎＢは、行列積演算手段３９に送られる。
【００３５】
次に、可逆可換行列生成手段３７において、可逆可換行列特定情報メモリ３３から可逆可換行列特定情報を抽出し、秘密情報メモリ３５から第４の自然数ｒＢを抽出し、これらを用い、第２の可逆可換行列Ｓ（ｒＢ）を生成する。この例の場合、可逆可換行列特定情報として可逆行列β∈Ｍを用い、S(rB)=βrBにより、第２の可逆可換行列Ｓ（ｒＢ）を生成する。そして、生成された第２の可逆可換行列Ｓ（ｒＢ）は、逆行列生成手段３８及び行列積演算手段３９に送られる他、行列メモリ４４に送られて記憶される（ステップＳ２４）。
【００３６】
次に、逆行列生成手段３８において、送られた第２の可逆可換行列Ｓ（ｒＢ）の逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する。生成された第２の逆行列Ｓ（ｒＢ）−１は、行列積演算手段３９に送られる他、行列メモリ４４に送られて記憶される（ステップＳ２５）。
次に、行列積演算手段３９において、第２の行列べき乗αｎＢ、第２の可逆可換行列Ｓ（ｒＢ）、第２の逆行列Ｓ（ｒＢ）−１を用い、第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出する（ステップＳ２６）。算出された第２の配信行列ＫＢは、送信手段４０に送られ、送信手段４０は、この第２の配信行列ＫＢを、セキュリティ装置１０に送信する（ステップＳ２７）。
【００３７】
また、セキュリティ装置３０は、受信手段４１において、ステップＳ８においてセキュリティ装置１０から送信された第１の配信行列ＫＡを受信し、これを行列べき演算手段４２に送る（ステップＳ２８）。行列べき演算手段４２は、秘密情報メモリ３５から第３の自然数ｎＢを抽出し、第４の行列べき乗ＫＡｎＢ（第１の配信行列ＫＡの第３の自然数ｎＢによる、べき乗結果）を算出する（ステップＳ２９）。算出された第４の行列べき乗ＫＡｎＢは、行列積演算手段２３に送られる。
行列積演算手段４３は、行列メモリ４４から、第２の可逆可換行列Ｓ（ｒＢ）及び第２の逆行列Ｓ（ｒＢ）−１を抽出し、これらと、行列べき演算手段４２から送られた第４の行列べき乗ＫＡｎＢとを用い、共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出し、出力する（ステップＳ３０）。
【００３８】
＜共有秘密情報KABが一致することの証明＞
次に、セキュリティ装置１０において算出された共有秘密情報ＫＡＢと、セキュリティ装置３０において算出された共有秘密情報ＫＡＢとが等しくなる理由について説明する。
まず、第２の配信行列KB=S(rB)・αnB・S(rB)-1であることから、セキュリティ装置１０において算出されたＫＡＢは、
KAB=S(rA)・KBnA・S(rA)-1 
=S(rA)・(S(rB)・αnB・S(rB)-1)nA・S(rA)-1
=S(rA)・{(S(rB)・αnB・S(rB)-1)・(S(rB)・αnB・S(rB)-1)・(S(rB)・αnB・S(rB)-1)・...・(S(rB)・αnB・S(rB)-1)}・S(rA)-1…(1)
と変形できる。なお、前述のように、上付き添え字の「ｎＡ」は、第１の自然数ｎＡを意味するため、式（１）における{(S(rB)・αnB・S(rB)-1)・(S(rB)・αnB・S(rB)-1)・(S(rB)・αnB・S(rB)-1)・...・(S(rB)・αnB・S(rB)-1)}は、ｎＡ個の(S(rB)・αnB・S(rB)-1)の積である。
また、S(rB)-1・S(rB)=Iであることから、式（１）は、
(1)=S(rA)・S(rB)・αnB・S(rB)-1・S(rB)・αnB・S(rB)-1・S(rB)・αnB・S(rB)-1・...・S(rB)・αnB・S(rB)-1・S(rA)-1
= S(rA)・S(rB)・(αnB・αnB・αnB・...・αnB)・S(rB)-1・S(rA)-1…(2)
と変形できる。ここで、式（２）の(αnB・αnB・αnB・...・αnB)は、ｎＡ個のαnBの積となっている。従って、式（２）は、
(2)=S(rA)・S(rB)・αnA・nB・S(rB)-1・S(rA)-1…(3)
と変換できる。
【００３９】
さらに、Ｓ（ｒ）は可換であるため、式（３）は、
S(rA)・S(rB)・αnA・nB・S(rA)-1・S(rB)-1
と変形できる。すなわち、セキュリティ装置１０において算出されたＫＡＢは、
KAB=S(rA)・S(rB)・αnA・nB・S(rA)-1・S(rB)-1…(4)
と変形できる。
同様にセキュリティ装置３０において算出されたＫＡＢは、
KAB=S(rB)・KAnB・S(rB)-1
=S(rB)・KAnB・S(rB)-1
=S(rB)・(S(rA)・αnA・S(rA)-1)nB・S(rB)-1
=S(rB)・{(S(rA)・αnA・S(rA)-1)・(S(rA)・αnA・S(rA)-1)・...・(S(rA)・αnA・S(rA)-1)}・S(rB)-1
=S(rB)・S(rA)・αnA・αnA・...・αnA・S(rA)-1・S(rB)-1
=S(rB)・S(rA)・αnA・nB・S(rA)-1・S(rB)-1
= S(rA)・S(rB)・αnA・nB・S(rA)-1・S(rB)-1…(5)
と変形できる。
【００４０】
以上の式（４）（５）より、セキュリティ装置１０，３０において算出されたＫＡＢは等しいことが分かる。
＜本形態の特徴＞
以上説明した通り、上記のようにセキュリティ装置１０，３０において算出されたＫＡＢは等しい。これは、セキュリティ装置１０及びセキュリティ装置３０において共有秘密情報ＫＡＢが共有されたことを意味する。
また、前述のように、この方式の安全性は共役問題の求解困難性に基づいている。そして、この共役問題を解く準指数オーダーの計算量のアルゴリズムは知られておらず、量子コンピュータの使用を前提にしたとしても効率的なアルゴリズムは知られていない。そのため、本形態では、秘密パラメータ値（ｎＡ，ｎＢ，ｒＡ，ｒＢ）を大きくすることなく、従来にない高い安全性を確保できる。つまり、秘密パラメータ値増大による計算量増大をいう問題を回避しつつ、高い安全性を確保できる。
【００４１】
さらに、本形態では、有限体上での行列演算を行うが、この行列演算が公知の計算機上において実用的な実行速度で実装可能なことは明らかである。従って、本形態のセキュリティ装置１０，３０は明らかに実現可能な装置である。
〔第２の実施の形態〕
次に、本発明における第２の実施の形態について説明する。
本形態は、第１の実施の形態の応用例であり、安全でない通信路での暗号通信に本発明を適用したものである。以下では、第１の実施の形態との相違点を中心に説明し、第１の実施の形態と共通する事項については説明を省略する。  
【００４２】
＜構成＞
図５及び図６は、本形態におけるセキュリティシステム１００の構成を例示したブロック図である。なお、この図において、図１と共通する機能構成には、図１と同じ符号を付している。
本形態のセキュリティシステム１００は、セキュリティ装置１１０（「第１のセキュリティ装置」に相当）と、セキュリティ装置１３０（「第２のセキュリティ装置」に相当）とによって構成され、これらのセキュリティ装置１１０，１３０間は、インターネット等の必ずしも安全でない通信路を通じて相互に通信可能となっている。
【００４３】
図５に例示するように、この例のセキュリティ装置１１０は、第１の実施の形態のセキュリティ装置１０（図１）の処理機能に加え、ハッシュ演算手段１２５（「第１のハッシュ演算手段」に相当）及び排他的論理和演算手段１２６（「第１の排他的論理和演算手段」に相当）を設けたものである。なお、この例のセキュリティ装置１１０は、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成される公知のコンピュータに、所定のプログラムを実行させることにより構築されるものである。
また、図６に例示するように、この例のセキュリティ装置１３０は、第１の実施の形態のセキュリティ装置３０（図１）の処理機能に加え、ハッシュ演算手段１４４（「第２のハッシュ演算手段」に相当）、入力手段１４５及び排他的論理和演算手段１４６（「第２の排他的論理和演算手段」に相当）を設けたものである。なお、この例のセキュリティ装置１３０も、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成される公知のコンピュータに、所定のプログラムを実行させることにより構築されるものである。
【００４４】
＜処理の全体＞
図７は、このセキュリティシステム１００における処理の全体の流れを示した図である。
以下、この図を用い、セキュリティシステム１００の処理の概略について説明する。なお、本実施の形態では、セキュリティ装置１３０が平文ｍを暗号化してセキュリティ装置１１０に送り、セキュリティ装置１１０がその暗号文を復号する場合について説明する。
まず、セキュリティ装置１１０において、共有行列α∈Ｍを生成し、これを必ずしも安全とはいえない通信路を通じ、セキュリティ装置１３０に送信する。
【００４５】
次に、セキュリティ装置１１０において、秘密情報である第１の自然数ｎＡ及び第２の自然数ｒＡを設定し、外部に対して秘密が保たれるように記憶する。そして、このセキュリティ装置１１０において、第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出し、これを必ずしも安全とはいえない通信路を通じ、セキュリティ装置１３０に送信する。
また、セキュリティ装置１３０において、秘密情報である第３の自然数ｎＢ及び第４の自然数ｒＢを設定し、外部に対して秘密が保たれるように記憶する。そして、このセキュリティ装置１３０において、第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出し、さらにKAB=S(rB)・KAnB・S(rB)-1を算出する。
【００４６】
そして、セキュリティ装置１３０において、ハッシュ値Ｈ（ＫＡＢ）を求め、入力された平文ｍとの排他的論理和H(KAB)(+)mを算出し、C=(KB,H(KAB)(+)m)を暗号文として、必ずしも安全とはいえない通信路を通じ、セキュリティ装置１１０に送信する。
これを受け取ったセキュリティ装置１１０は、KAB=S(rA)・KBnA・S(rA)-1を算出し、さらにセキュリティ装置１３０と同じハッシュ関数を用い、ハッシュ値Ｈ（ＫＡＢ）を求める。そして、平文ｍを排他的論理和H(KAB)(+)m(+)H(KAB)=mによって算出する。ここで、H(KAB)(+)m(+)H(KAB)によって平文ｍが復号されるのは、第１の実施の形態で説明した通り、セキュリティ装置１１０、１３０でそれぞれ算出されたＫＡＢが等しくなることから明らかである。
【００４７】
＜処理の詳細＞
次に、セキュリティシステム１における処理の詳細について説明する。
＜前処理＞
まず、第１の実施の形態と同様、セキュリティ装置１１０、１３０において（図５及び図６）、共通の自然数ｕとある素数のべき乗ｑ＝ｐｅ（ｅは自然数）を共有する。また、ハッシュ演算手段１２５、１４４に、共通のハッシュ関数Ｈと自然数Ｌを設定し、排他的論理和演算手段１２６、１４６に上述の自然数Ｌを設定する。
【００４８】
これにより、ハッシュ演算手段１２５、１４４は、入力データＭに対し、Ｌビットのハッシュ値｛０，１｝Ｌを計算して出力し（Ｍ→｛０，１｝Ｌ）、排他的論理和演算手段１２６、１４６は、入力されたＬビットのビット列に対し、ビットごとに排他的論理和を計算することとなる。
また、第１の実施の形態と同様、セキュリティ装置１１０、１３０において、共通の可逆可換行列特定情報を、可逆可換行列特定情報メモリ１３，３３にそれぞれ記憶させる。なお、この例の場合、可逆可換行列特定情報は、セキュリティ装置１１０、１３０に共通の所定の可逆行列β∈Ｍである。
【００４９】
＜暗号化処理＞
図８、図９は、セキュリティ装置１１０、１３０における、暗号化処理の詳細な流れを示した図である。なお、図８及び図９における（ａ）はセキュリティ装置１１０の処理の流れを示しており、（ｂ）はセキュリティ装置１３０の処理の流れを示している。
以下、図５、図６、図８及び図９を用い、本形態の暗号化処理の詳細について説明する。
＜セキュリティ装置１１０の処理＞
ステップＳ４１〜Ｓ４８は、暗号化処理の前提として、セキュリティ装置１１０において行われる処理である。なお、この内容は、第１の実施の形態におけるステップＳ１〜Ｓ８と同じである。
【００５０】
すなわち、まず、共有行列生成手段１１において共有行列α∈Ｍを生成し、これを共有行列メモリ１２に記憶する（ステップＳ４１）。そして、送信手段２０は、共有行列メモリ１２からこの共有行列αを抽出し、それをセキュリティ装置１３０との共有情報とするためセキュリティ装置１３０に送信する（ステップＳ４２）。
次に、擬似乱数発生装置１４において、秘密情報である第１の自然数ｎＡ及び第２の自然数ｒＡを生成する。生成された第１の自然数ｎＡ及び第２の自然数ｒＡは秘密情報メモリ１５に送られ、そこで安全に格納（記憶）される（ステップＳ４３）。
【００５１】
次に、行列べき演算手段１６において、秘密情報メモリ１５から第１の自然数ｎＡを抽出し、共有行列メモリ１２から共有行列αを抽出し、第１の行列べき乗αｎＡを算出する（ステップＳ４４）。算出された第１の行列べき乗αｎＡは、行列積演算手段１９に送られる。
次に、可逆可換行列生成手段１７において、秘密情報メモリ１５から第２の自然数ｒＡを抽出し、可逆可換行列特定情報メモリ１３から可逆可換行列特定情報を抽出し、これらを用い、第１の可逆可換行列Ｓ（ｒＡ）を生成する。この例の場合、可逆可換行列生成手段１７は、可逆可換行列特定情報として可逆行列β∈Ｍを抽出し、Ｓ（ｒ）＝βｒのｒに自然数ｒＡを代入し、可逆可換行列Ｓ（ｒＡ）を生成する。そして、生成された第１の可逆可換行列Ｓ（ｒＡ）は、逆行列生成手段１８及び行列積演算手段１９に送られる他、行列メモリ２４に送られて記憶される（ステップＳ４５）。
【００５２】
次に、逆行列生成手段１８において、送られた第１の可逆可換行列Ｓ（ｒＡ）の逆行列である第１の逆行列Ｓ（ｒＡ）−１を生成する。生成された第１の逆行列Ｓ（ｒＡ）−１は、行列積演算手段１９に送られる他、行列メモリ２４に送られて記憶される（ステップＳ４６）。
次に、行列積演算手段１９において、第１の行列べき乗αｎＡ、第１の可逆可換行列Ｓ（ｒＡ）及び第１の逆行列Ｓ（ｒＡ）−１を用い、第１の配信行列KA=S(rA)・αnA・S(rA)-1を算出する（ステップＳ４７）。算出された第１の配信行列KAは、送信手段２０に送られ、送信手段２０は、この第１の配信行列ＫＡをセキュリティ装置１３０に送信する（ステップＳ４８）。
【００５３】
＜セキュリティ装置１３０の処理＞
ステップＳ６１〜Ｓ７３は、セキュリティ装置１３０における暗号化処理である。
まず、前述のステップＳ４２でセキュリティ装置１１０から送信された共有行列α∈Ｍを受信手段４１において受信し、これを、セキュリティ装置１１０との共有情報として共有行列メモリ３２に記憶する（ステップＳ６１）。また、擬似乱数発生装置３４において、秘密情報である第３の自然数ｎＢ及び第４の自然数ｒＢを生成し、これらを秘密情報メモリ３５に送って記憶させる（ステップＳ６２）。
【００５４】
次に、行列べき演算手段３６において、秘密情報メモリ３５から第３の自然数ｎＢを抽出し、共有行列メモリ３２から共有行列α∈Ｍを抽出し、これらを用いて、第２の行列べき乗αｎＢ（共有行列αの第３の自然数ｎＢによる、べき乗結果）を算出する（ステップＳ６３）。そして、算出された第２の行列べき乗αｎＢは、行列積演算手段３９に送られる。
次に、可逆可換行列生成手段３７において、可逆可換行列特定情報メモリ３３から可逆可換行列特定情報を抽出し、秘密情報メモリ３５から第４の自然数ｒＢを抽出し、これらを用い、第２の可逆可換行列Ｓ（ｒＢ）を生成する。この例の場合、可逆可換行列生成手段３７は、可逆可換行列特定情報として可逆行列β∈Ｍを抽出し、Ｓ（ｒ）＝βｒのｒに自然数ｒＢを代入し、可逆可換行列Ｓ（ｒＢ）を生成する。そして、生成された第２の可逆可換行列Ｓ（ｒＢ）は、逆行列生成手段３８及び行列積演算手段３９に送られる他、行列メモリ４４に送られて記憶される（ステップＳ６４）。
【００５５】
次に、逆行列生成手段３８において、送られた第２の可逆可換行列Ｓ（ｒＢ）の逆行列である第２の逆行列Ｓ（ｒＢ）−１を生成する。生成された第２の逆行列Ｓ（ｒＢ）−１は、行列積演算手段３９に送られる他、行列メモリ４４に送られて記憶される（ステップＳ６５）。
次に、行列積演算手段３９において、第２の行列べき乗αｎＢ、第２の可逆可換行列Ｓ（ｒＢ）、第２の逆行列Ｓ（ｒＢ）−１を用い、第２の配信行列KB=S(rB)・αnB・S(rB)-1を算出し（ステップＳ６６）、この第２の配信行列ＫＢを送信手段４０に送る。
【００５６】
次に、前述のステップＳ４８においてセキュリティ装置１１０から送信された第１の配信行列ＫＡを受信手段において受信し（ステップＳ６７）、行列べき演算手段４２に送る。行列べき演算手段４２は、秘密情報メモリ３５から第３の自然数ｎＢを抽出し、第４の行列べき乗ＫＡｎＢ（第１の配信行列ＫＡの第３の自然数ｎＢによる、べき乗結果）を算出する（ステップＳ６８）。
この第４の行列べき乗ＫＡｎＢは行列積演算手段４３に送られ、行列積演算手段４３は、行列メモリ４４から第２の可逆可換行列Ｓ（ｒＢ）及び第２の逆行列Ｓ（ｒＢ）−１を抽出し、共有秘密情報KAB=S(rB)・KAnB・S(rB)-1を算出する（ステップＳ６９）。
【００５７】
算出された共有秘密情報KABは、ハッシュ演算手段１４４に送られ、ハッシュ演算手段１４４は、セキュリティ装置１１０と同じハッシュ関数Ｈを用い、共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する（ステップＳ７０）。算出されたハッシュ値Ｈ（ＫＡＢ）は、排他的論理和演算手段１４６に送られる。また、入力手段１４５において平文ｍの入力を受け付け（ステップＳ７１）、これを排他的論理和演算手段１４６に送る。
排他的論理和演算手段１４６は、送られたハッシュ値Ｈ（ＫＡＢ）と平文ｍの排他的論理和H(KAB)(+)mを算出し（ステップＳ７２）、この排他的論理和H(KAB)(+)mを送信手段４０に送る。
【００５８】
送信手段４０は、行列積演算手段３９と排他的論理和演算手段１４６から送られた第２の配信行列ＫＢと排他的論理和H(KAB)(+)ｍを、暗号文C=(KB,H(KAB)(+)m)として、セキュリティ装置１１０に送信する（ステップＳ７３）。
＜復号処理＞
図１０は、セキュリティ装置１１０における、復号処理の詳細な流れを示した図である。以下、図５及び図１０を用い、本形態の復号処理の詳細について説明する。
まず、セキュリティ装置１１０の受信手段２１（「第１の受信手段」に相当）において、前述のステップＳ７３でセキュリティ装置１３０から送信された暗号文C=(KB,H(KAB)(+)m)を受信し（ステップＳ８１）、これを行列べき演算手段２２及び排他的論理和演算手段１２６に送る。
【００５９】
これを受け取った行列べき演算手段２２は、秘密情報メモリ１５から第１の自然数ｎＡを抽出し、第３の行列べき乗ＫＢｎＡ（第２の配信行列ＫＢの第１の自然数ｎＡによる、べき乗結果）を算出し（ステップＳ８２）、これを行列積演算手段２３に送る。
これを受け取った行列積演算手段２３（「第３の行列積演算手段」に相当）は、行列メモリ２４から第１の可逆可換行列Ｓ（ｒＡ）及び第１の逆行列Ｓ（ｒＡ）−１を抽出し、共有秘密情報KAB=S(rA)・KBnA・S(rA)-1を算出する（ステップＳ８３）。
算出された共有秘密情報ＫＡＢは、ハッシュ演算手段１２５に送られ、ハッシュ演算手段１２５は、セキュリティ装置１３０と同じハッシュ関数Ｈを用い、共有秘密情報ＫＡＢのハッシュ値Ｈ（ＫＡＢ）を算出する（ステップＳ８４）。算出されたハッシュ値Ｈ（ＫＡＢ）は、排他的論理和演算手段１２６に送られる。
【００６０】
排他的論理和演算手段１２６は、受信手段２１から送られた暗号文C=(KB,H(KAB)(+)m)の排他的論理和H(KAB)(+)mと、第１のハッシュ演算手段において算出されたハッシュ値Ｈ（ＫＡＢ）との排他的論理和H(KAB)(+)m(+)H(KAB)=mを算出し、平文ｍを出力する（ステップＳ８５）。
＜本形態の特徴＞
第１の実施の形態で説明した通り、上記のようにセキュリティ装置１１０，１３０において算出された共有秘密情報ＫＡＢは等しい。また、セキュリティ装置１１０のハッシュ演算手段１２５及びのセキュリティ装置１３０のハッシュ演算手段１４４において使用するハッシュ関数Ｈは等しい。
【００６１】
よって、セキュリティ装置１１０のハッシュ演算手段１２５において算出されたハッシュ値Ｈ（ＫＡＢ）は、セキュリティ装置１３０のハッシュ演算手段１４６において算出されたハッシュ値Ｈ（ＫＡＢ）、すなわち、暗号文Ｃのハッシュ値Ｈ（ＫＡＢ）と等しい。よって、セキュリティ装置１１０の排他的論理和演算手段１２６において演算される排他的論理和H(KAB)(+)m(+)H(KAB)はｍとなる。これは、平文ｍが復号されたことを意味する。
また、この暗号方式の安全性は、第１の発明と同様、共役問題の求解困難性に基づく。よって、第１の実施の形態と同様、本形態でも、秘密パラメータ値（ｎＡ，ｎＢ，ｒＡ，ｒＢ）を大きくすることなく、従来にない高い安全性を確保できる。つまり、秘密パラメータ値増大による計算量増大をいう問題を回避しつつ、高い安全性を確保できる。
【００６２】
さらに、本形態では、有限体上での行列演算を行うが、この行列演算が公知の計算機上において実用的な実行速度で実装可能なことは明らかである。従って、本形態のセキュリティ装置１１０，１３０は明らかに実現可能な装置である。
なお、上述の各実施の形態において、共有行列αと可逆可換行列Ｓ（ｒ）とは可換でないことが望ましい。つまり、これらが可換であった場合、第１の配信行列KA=S(rA)・αnA・S(rA)-1＝αnAとなり、第２の配信行列KB=S(rB)・αnB・S(rB)-1＝αnBとなる。そして、例えば、セキュリティ装置１０，３０或いはセキュリティ装置１１０，１３０の通信が盗聴可能であり、共有行列α、第１の配信行列ＫＡ及び第２の配信行列ＫＢが攻撃者に知られた場合、この攻撃者は、指数計算法等の準指数オーダーの計算量のアルゴリズムによって第１の自然数ｎＡ及び第３の自然数ｎＢを取得できる。これは、本システムの安全性低下につながる。
【００６３】
また、この発明は上述の各実施の形態に限定されるものではない。例えば、上述の例では、可逆可換行列特定情報として所定の可逆行列β∈Ｍを用いる例を示したが、可逆可換行列特定情報として、入力値ｒに対して可逆可換行列Ｓ（ｒ）を出力する関数Ｓを用いてもよい。そして、この場合、ｒＡ及びｒＢは自然数に限定されず、任意のビット列でよい。また、可逆可換行列特定情報メモリ１３、３３には、各セキュリティ装置間に共通の関数Ｓが格納される。そして、可逆可換行列生成手段１７、３７は、入力された第２の秘密値ｒＡ或いは第４の秘密値ｒＢに関数Ｓを作用させ、可逆可換行列Ｓ（ｒＡ）或いはＳ（ｒＢ）を生成して出力する。
【００６４】
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。さらに、本明細書においてシステムとは、複数の装置の論理的集合構成である。また、各構成の装置が同一筐体内にあるとは限らない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００６５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００６６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【００６７】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【００６８】
本発明の産業上の利用分野としては、例えば、電子商取引、ネットバンク、電子マネー、電子投票、電子入札、電子署名、電子認証、秘密情報通信等が挙げられる。
【図面の簡単な説明】
【００６９】
【図１】第１の実施の形態におけるセキュリティシステムの構成を例示したブロック図。
【図２】第１の実施の形態におけるセキュリティシステムの処理の全体の流れを示した図。
【図３】第１の実施の形態におけるセキュリティ装置の処理の詳細な流れを示した図。
【図４】第１の実施の形態におけるセキュリティ装置の処理の詳細な流れを示した図。
【図５】第２の実施の形態におけるセキュリティシステムの構成を例示したブロック図。
【図６】第２の実施の形態におけるセキュリティシステムの構成を例示したブロック図。
【図７】第２の実施の形態におけるセキュリティシステムの処理の全体の流れを示した図。
【図８】第２の実施の形態におけるセキュリティ装置の暗号化処理の詳細な流れを示した図。
【図９】第２の実施の形態におけるセキュリティ装置の暗号化処理の詳細な流れを示した図。
【図１０】第２の実施の形態におけるセキュリティ装置１１０の復号処理の詳細な流れを示した図。
【符号の説明】
【００７０】
１,１００  セキュリティシステム
１０,１１０  セキュリティ装置（第１のセキュリティ装置）
３０,１３０  セキュリティ装置（第２のセキュリティ装置）
１２  共有行列メモリ（第１の共有行列メモリ）
１３  可逆可換行列特定情報メモリ（第１の可逆可換行列特定情報メモリ）
１５  秘密情報メモリ（第１の秘密情報メモリ）
１６  行列べき演算手段（第１の行列べき演算手段）
１７  可逆可換行列生成手段（第１の可逆可換行列生成手段）
１８  逆行列生成手段（第１の逆行列生成手段）
１９  行列積演算手段（第１の行列積演算手段）
２０  送信手段（第１の送信手段）
２１  受信手段（第１の受信手段）
２２  行列べき演算手段（第３の行列べき演算手段）
２３  行列積演算手段（第３の行列積演算手段）
３２  共有行列メモリ（第２の共有行列メモリ）
３３  可逆可換行列特定情報メモリ（第２の可逆可換行列特定情報メモリ）
３５  秘密情報メモリ（第２の秘密情報メモリ）
３６  行列べき演算手段（第２の行列べき演算手段）
３７  可逆可換行列生成手段（第２の可逆可換行列生成手段）
３８  逆行列生成手段（第２の逆行列生成手段）
３９  行列積演算手段（第２の行列積演算手段）
４０  送信手段（第２の送信手段）
４１  受信手段（第２の受信手段）
４２  行列べき演算手段（第４の行列べき演算手段）
４３  行列積演算手段（第４の行列積演算手段）
１２１  受信手段（第１の受信手段）
１２５  ハッシュ演算手段（第１のハッシュ演算手段）
１２６  排他的論理和演算手段（第１の排他的論理和演算手段）
１４０  送信手段（第２の送信手段）
１４４  ハッシュ演算手段（第２のハッシュ演算手段）
１４５  入力手段
１４６  排他的論理和演算手段（第２の排他的論理和演算手段）
【図１】
2005252864.tif 000004
【図２】
2005252864.tif 000005
【図３】
2005252864.tif 000006
【図４】
2005252864.tif 000007
【図５】
2005252864.tif 000008
【図６】
2005252864.tif 000009
【図７】
2005252864.tif 000010
【図８】
2005252864.tif 000011
【図９】
2005252864.tif 000012
【図１０】
2005252864.tif 000013