(57)【要約】【課題】秘密情報通信の安全性を向上させる。【解決手段】セキュリティ装置１０において、λ、μ、νを、λ＝μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列を算出し、このＲ行列によって特定されるＴ行列を共有情報ａに順次作用させ、セキュリティ装置２０に送る。また、セキュリティ装置２０において、α、β、γをα＝β−γを満たすビット列とした場合におけるヤン・バクスター方程式の解であるＲ行列を算出し、このＲ行列によって特定されるＴ行列を共有情報ａに順次作用させ、セキュリティ装置１０に送る。そして、セキュリティ装置１０、２０は、それぞれ送られた演算結果に自己のＴ行列を順次作用させ、共通鍵Ｋを生成する。【選択図】        図１
2004356720.tif 000002
【特許請求の範囲】
【請求項１】
秘密情報通信を行うセキュリティ装置において、
λ、μ、νを、λ＝μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列を算出するＲ行列生成手段と、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記Ｒ行列生成手段において生成されたＲ行列の成分をＲｂ０ｂ１ｂ２ｂ３とした場合における、Ｂ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λ）ＢＢ’が、
【数１】
2004356720.tif 000017
で表されるｎＮ×ｎＮ行列Ｔ（λ）を所定の要素ａに作用させる行列演算手段と、
を有することを特徴とするセキュリティ装置。
【請求項２】
上記所定の要素ａは、ｎＮ次元のベクトルａであり、
上記行列演算手段は、
上記ベクトルａに上記ｎＮ×ｎＮ行列Ｔ（λ）を作用させた結果であるｎＮ次元のベクトルｄのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数２】
2004356720.tif 000018
によって演算する手段であること、
を特徴とする請求項１記載のセキュリティ装置。
【請求項３】
上記Ｒ行列生成手段は、
ｑを可換環の可逆な元とし、Ｌ（λ）を可換環の上記元λに対応する元とし、ｎを２とした場合における、成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（λ）、Ｒ１００１＝１−ｑＬ（λ）、Ｒ０１１０＝１−ｑ−１Ｌ（λ）となる上記Ｒ行列を算出する手段であること、
を特徴とする請求項１又は２の何れかに記載のセキュリティ装置。
【請求項４】
共通鍵の配送を行うセキュリティ装置において、
共通鍵の配信相手と共有される共有情報ａを抽出する共有情報抽出手段と、
秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（以下、「Ｒ行列」という。）を算出するＲ行列生成手段と、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記元λｐ  に対して上記Ｒ行列生成手段で生成された上記Ｒ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、上記元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数３】
2004356720.tif 000019
とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を、上記共有情報抽出手段において抽出された上記共有情報ａに順次作用させる第１の行列演算手段と、
上記第１の行列演算手段による演算結果である第１の交換情報を出力する交換情報出力手段と、
第２の交換情報ｅの入力を受け付ける交換情報入力手段と、
上記交換情報入力手段によって入力された上記第２の交換情報ｅに、上記ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる第２の行列演算手段と、
を有することを特徴とするセキュリティ装置。
【請求項５】
上記共有情報ａは、ｎＮ次元のベクトルであり、
上記第１の行列演算手段は、
上記共有情報ａに上記ｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数４】
2004356720.tif 000020
によって演算する手段であり、
上記第２の行列演算手段は、
上記第２の交換情報ｅに上記ｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数５】
2004356720.tif 000021
によって演算する手段であること、
を特徴とする請求項４記載のセキュリティ装置。
【請求項６】
上記Ｒ行列生成手段は、
ｑを可換環の可逆な元とし、Ｌ（λｐ）を可換環の上記元λｐに対応する元とし、ｎを２とした場合における、成分がＲｐ００００＝Ｒｐ１１１１＝１、Ｒｐ１０１０＝Ｒｐ０１０１＝Ｌ（λｐ）、Ｒｐ１００１＝１−ｑＬ（λｐ）、Ｒｐ０１１０＝１−ｑ−１Ｌ（λｐ）となる上記Ｒ行列を算出する手段であること、
を特徴とする請求項４或いは５の何れかに記載のセキュリティ装置。
【請求項７】
公開鍵暗号方式による秘密通信を行うセキュリティ装置において、
通信相手と共有される共有情報ａを抽出する共有情報抽出手段と、
秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（以下、「Ｒ行列」という。）を算出するＲ行列生成手段と、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記元λｐ  に対して上記Ｒ行列生成手段で生成された上記Ｒ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、上記元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数６】
2004356720.tif 000022
とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を、上記共有情報抽出手段において抽出された上記共有情報ａに順次作用させる第１の行列演算手段と、
上記第１の行列演算手段による演算結果である第１の交換情報を出力する交換情報出力手段と、
第２の交換情報ｅと暗号化情報との入力を受け付ける暗号情報入力手段と、
上記暗号情報入力手段によって入力された上記第２の交換情報ｅに、上記ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる第２の行列演算手段と、
上記暗号情報入力手段によって入力された上記暗号化情報と上記第２の行列演算手段による演算結果との排他的論理和を演算する排他的論理和演算手段と、
を有することを特徴とするセキュリティ装置。
【請求項８】
上記共有情報ａは、ｎＮ次元のベクトルであり、
上記第１の行列演算手段は、
上記共有情報ａに上記ｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数７】
2004356720.tif 000023
によって演算する手段であり、
上記第２の行列演算手段は、
上記第２の交換情報ｅに上記ｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数８】
2004356720.tif 000024
によって演算する手段であること、
を特徴とする請求項７記載のセキュリティ装置。
【請求項９】
上記Ｒ行列生成手段は、
ｑを可換環の可逆な元とし、Ｌ（λｐ）を可換環の上記元λｐに対応する元とし、ｎを２とした場合における、成分がＲｐ００００＝Ｒｐ１１１１＝１、Ｒｐ１０１０＝Ｒｐ０１０１＝Ｌ（λｐ）、Ｒｐ１００１＝１−ｑＬ（λｐ）、Ｒｐ０１１０＝１−ｑ−１Ｌ（λｐ）となる上記Ｒ行列を算出する手段であること、
を特徴とする請求項７或いは８の何れかに記載のセキュリティ装置。
【請求項１０】
公開鍵暗号方式による秘密通信を行うセキュリティ装置において、
通信相手と共有される共有情報ａを抽出する共有情報抽出手段と、
秘密情報である自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元αｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（以下、「Ｒ行列」という。）を算出するＲ行列生成手段と、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記元αｒ  に対して上記Ｒ行列生成手段で生成された上記Ｒ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、上記元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を、
【数９】
2004356720.tif 000025
とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、上記共有情報抽出手段において抽出された上記共有情報ａに順次作用させる第１の行列演算手段と、
第１の交換情報ｄの入力を受け付ける交換情報入力手段と、
上記交換情報入力手段において入力された上記第１の交換情報ｄに、上記ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させる第２の行列演算手段と、
上記第２の行列演算手段による演算結果と平文との排他的論理和を暗号化情報として生成する排他的論理和演算手段と、
上記第１の行列演算手段による演算結果である第２の交換情報と、上記排他的論理和演算手段により生成された上記暗号化情報と、を出力する暗号情報出力手段と、
を有することを特徴とするセキュリティ装置。
【請求項１１】
上記共有情報ａは、ｎＮ次元のベクトルであり、
上記第１の行列演算手段は、
上記共有情報ａに上記ｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数１０】
2004356720.tif 000026
によって演算する手段であり、
上記第２の行列演算手段は、
上記第１の交換情報ｄに上記ｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数１１】
2004356720.tif 000027
によって演算する手段であること、
を特徴とする請求項１０記載のセキュリティ装置。
【請求項１２】
上記Ｒ行列生成手段は、
ｑを可換環の可逆な元とし、Ｌ（αｒ）を可換環の上記元αｒに対応する元とし、ｎを２とした場合における、成分がＲｒ００００＝Ｒｒ１１１１＝１、Ｒｒ１０１０＝Ｒｒ０１０１＝Ｌ（αｒ）、Ｒｒ１００１＝１−ｑＬ（αｒ）、Ｒｒ０１１０＝１−ｑ−１Ｌ（αｒ）となる上記Ｒ行列を算出する手段であること、
を特徴とする請求項１０或いは１１の何れかに記載のセキュリティ装置。
【請求項１３】
共通鍵の配送を行うセキュリティ方法において、
第１のセキュリティ装置において行われる、
第２のセキュリティ装置と共有される共有情報を抽出する第１の共有情報抽出ステップと、
秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝と、を生成する第１の秘密情報生成ステップと、
上記第１の秘密情報生成ステップにおいて生成された上記元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（以下、「第１のＲ行列」という。）を算出する第１のＲ行列生成ステップと、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記元λｐ  に対して上記第１のＲ行列生成ステップで生成された上記第１のＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、上記元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数１２】
2004356720.tif 000028
とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を、上記第１の共有情報抽出ステップにおいて抽出された上記共有情報に順次作用させる第１の行列演算ステップと、
上記第１の行列演算ステップによる演算結果である第１の交換情報を出力する第１の交換情報出力ステップと、
第２の交換情報の入力を受け付ける第１の交換情報入力ステップと、
上記第１の交換情報入力ステップによって入力された上記第２の交換情報に、上記ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる第２の行列演算ステップと、
上記第２のセキュリティ装置において行われる、
上記第１のセキュリティ装置と共有される上記共有情報を抽出する第２の共有情報抽出ステップと、
秘密情報である自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝と、を生成する第２の秘密情報生成ステップと、
上記第２の秘密情報生成ステップにおいて生成された上記元αｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（以下、「第２のＲ行列」という。）を算出する第２のＲ行列生成ステップと、
上記元αｒに対して上記第２のＲ行列生成ステップで生成された上記第２のＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、上記元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を、
【数１３】
2004356720.tif 000029
とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、上記第２の共有情報抽出ステップにおいて抽出された上記共有情報に順次作用させる第３の行列演算ステップと、
上記第３の行列演算ステップによる演算結果である第２の交換情報を出力する第２の交換情報出力ステップと、
上記第１の交換情報の入力を受け付ける第２の交換情報入力ステップと、
上記第２の交換情報入力ステップによって入力された上記第１の交換情報に、上記ｎＮ×ｎＮ行列Ｔ（α１），  Ｔ（α２），…，  Ｔ（αｕ）を順次作用させる第４の行列演算ステップと
を有することを特徴とするセキュリティ方法。
【請求項１４】
公開鍵暗号方式による秘密通信を行うセキュリティ方法において、
第１のセキュリティ装置において行われる、
第２のセキュリティ装置と共有される共有情報を抽出する第１の共有情報抽出ステップと、
秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝と、を生成する第１の秘密情報生成ステップと、
上記第１の秘密情報生成ステップにおいて生成された上記元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（以下、「第１のＲ行列」という。）を算出する第１のＲ行列生成ステップと、
ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上記元λｐ  に対して上記第１のＲ行列生成ステップで生成された上記第１のＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、上記元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数１４】
2004356720.tif 000030
とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を、上記第１の共有情報抽出ステップにおいて抽出された上記共有情報に順次作用させる第１の行列演算ステップと、
上記第１の行列演算ステップによる演算結果である第１の交換情報を出力する第１の交換情報出力ステップと、
上記第２のセキュリティ装置において行われる、
上記第１のセキュリティ装置と共有される共有情報を抽出する第２の共有情報抽出ステップと、
秘密情報である自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝と、を生成する第２の秘密情報生成ステップと、
上記第２の秘密情報生成ステップにおいて生成された上記元αｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（以下、「第２のＲ行列」という。）を算出する第２のＲ行列生成ステップと、
上記元αｒ  に対して上記第２のＲ行列生成ステップで生成された上記第２のＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、上記元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を、
【数１５】
2004356720.tif 000031
とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、上記第２の共有情報抽出ステップにおいて抽出された上記共有情報に順次作用させる第２の行列演算ステップと、
上記第１の交換情報の入力を受け付ける交換情報入力ステップと、
上記交換情報入力ステップにおいて入力された上記第１の交換情報に、上記ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させる第３の行列演算ステップと、
上記第３の行列演算ステップによる演算結果と平文との排他的論理和を暗号化情報として生成する排他的論理和演算ステップと、
上記第２の行列演算ステップによる演算結果である第２の交換情報と、上記排他的論理和演算ステップにより生成された上記暗号化情報と、を出力する暗号情報出力ステップと、
上記第１のセキュリティ装置において行われる、
上記第２の交換情報と上記暗号化情報との入力を受け付ける暗号情報入力ステップと、
上記暗号情報入力ステップによって入力された上記第２の交換情報に、上記ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる第４の行列演算ステップと、
上記暗号情報入力ステップによって入力された上記暗号化情報と上記第４の行列演算ステップによる演算結果との排他的論理和を演算する排他的論理和演算ステップと、
を有することを特徴とするセキュリティ方法。
【請求項１５】
請求項１から１２の何れかに記載されたセキュリティ装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、秘密情報を安全に送信するセキュリティ装置、セキュリティ方法、及びその機能をコンピュータに実行させるためのプログラムに関し、特に、安全性の向上を図ったセキュリティ装置、セキュリティ方法、及びプログラムに関する。
【０００２】
【従来の技術】
従来より、離散対数問題を応用したＤｉｆｆｉｌｅ−Ｈｅｌｌｍａｎ鍵配送方式及びその応用としての公開鍵暗号方式が提案されている（例えば、非特許文献１参照。）。
まず、この従来のＤｉｆｆｉｌｅ−Ｈｅｌｌｍａｎ鍵配送方式による鍵配送手順について説明する。なお、甲乙間は、安全でない通信回線によって結ばれているものとする。
鍵の配送を行う場合、甲は、まず、擬似乱数生成装置を用いてあるＮ以下の整数ａを定め、このａを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数ｓを定めた後、整数演算装置を用いてｂ＝ａｓｍｏｄＮを計算し、整数ｓを秘密に保ったまま、計算したｂを乙に送信する。
【０００３】
これに対し、乙は、擬似乱数生成装置を用いてある整数ｔを定めた後、整数演算装置を用いてｃ＝ａｔｍｏｄＮを計算し、整数ｓを秘密に保ったまま、計算したｃを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたｂから、鍵ｋ＝ｂｔｍｏｄＮを求める。
一方、甲は、整数演算装置を用い、乙から送信されたｃから、鍵ｋ＝ｃｓｍｏｄＮを求める。  ここで、乙が求めた鍵ｋは、ｋ＝ｂｔｍｏｄＮ＝ａｓｔｍｏｄＮとなり、甲が求めた鍵ｋ＝ｃｓｍｏｄＮ＝ａｓｔｍｏｄＮと一致することになる。これにより、甲乙間で、共通鍵ｋの配送が行われたことになる。
【０００４】
つぎに、この従来のＤｉｆｆｉｌｅ−Ｈｅｌｌｍａｎ鍵配送方式を応用した公開鍵暗号方式について説明する。以下では、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号するものとする。
この場合、甲は、まず、擬似乱数生成装置を用いてあるＮ以下の整数ａを定め、このａを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数ｓを定めた後、整数演算装置を用いてｂ＝ａｓｍｏｄＮを計算し、整数ｓを秘密に保ったまま、計算したｂを乙に送信する。この整数ｓが秘密鍵として機能し、ｂが公開鍵として機能することになる。
【０００５】
これに対し、乙は、擬似乱数生成装置を用いてある整数ｔを定めた後、整数演算装置を用いてｃ＝ａｔｍｏｄＮを計算し、整数ｓを秘密に保ったまま、計算したｃを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたｂからｋ＝ｂｔｍｏｄＮを求め、このｋで平文Ｍを暗号化した後、この暗号文と計算したｃとを、甲に送信する。
これを受け取った甲は、整数演算装置を用い、送られたｃからｋ＝ｃｓｍｏｄＮを計算し、このｋを用い、送られた暗号文を復号する。
【０００６】
【非特許文献１】
岡本龍明、山本博資、「現代暗号」、第３版、産業図書株式会社、２０００年１月２５日、Ｐ２００〜２０２。
【０００７】
【発明が解決しようとする課題】
しかし、従来のＤｉｆｆｉｌｅ−Ｈｅｌｌｍａｎ鍵配送方式及びその応用としての公開鍵暗号方式では、安全性が十分でない場合があるという問題点がある。
すなわち、これらの鍵配送方式や公開鍵暗号方式は、離散対数問題の求解困難性をその安全性の根拠としているが、既にこの離散対数問題を、量子コンピュータを用いて効率的に解くアルゴリズムが知られている。従って、将来量子コンピュータが実用化された場合、これらの鍵配送方式や公開鍵暗号方式の安全性が確保できなくなる。
【０００８】
この発明はこのような点に鑑みてなされたものであり、秘密情報通信の安全性を向上させることが可能なセキュリティ装置を提供することを目的とする。
また、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能なセキュリティ方法を提供することである。
さらに、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能な機能をコンピュータに実行させるためのプログラムを提供することである。
【０００９】
【課題を解決するための手段】
この発明では上記課題を解決するために、まず、λ、μ、νを、λ＝μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列を算出する。そして、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上述のＲ行列の成分をＲｂ０ｂ１ｂ２ｂ３とした場合における、Ｂ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λ）ＢＢ’が、
【数１６】
2004356720.tif 000003
で表されるｎＮ×ｎＮ行列Ｔ（λ）を所定の要素ａに作用させる。
【００１０】
ここで、このように特定されるｎＮ×ｎＮ行列Ｔ（λ）は可換である。すなわち、例えば、α、β、γをα＝β−γを満たすビット列とした場合におけるヤン・バクスター方程式Ｒ（α）１２Ｒ（β）１３Ｒ（γ）２３＝Ｒ（γ）２３Ｒ（β）１３Ｒ（α）１２の解であるＲ行列を用いて同様に生成したｎＮ×ｎＮ行列Ｔ（α）が存在する場合、Ｔ（λ）・Ｔ（α）＝Ｔ（α）・Ｔ（λ）が成立する（詳細は後述）。したがって、このｎＮ×ｎＮ行列Ｔ（λ）を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる（詳細は後述）。
【００１１】
また、このｎＮ×ｎＮ行列Ｔ（λ）を利用した秘密通信の安全性は、「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、所定の要素ａと、さらにｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【００１２】
【発明の実施の形態】
以下、この発明の実施の形態を、図面を参照して説明する。
本形態の原理：
まず、この形態における原理について説明する。
この形態の秘密通信は、従来のＤｉｆｆｉｌｅ−Ｈｅｌｌｍａｎ鍵配送方式及びその応用としての公開鍵暗号方式等における安全性の根拠となる離散対数問題のかわりに、「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、所定の要素（例えば、ベクトル）ａと、さらにｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の求解困難性を安全性の根拠とするものである。
【００１３】
すなわち、この形態の例の秘密通信に利用するセキュリティ装置は、λ、μ、νを、λ＝μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列を算出するＲ行列生成手段と、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、Ｒ行列生成手段において生成されたＲ行列の成分をＲｂ０ｂ１ｂ２ｂ３とした場合における、Ｂ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λ）ＢＢ’が上述の式（１）で表されるｎＮ×ｎＮ行列Ｔ（λ）を所定の要素ａに作用させる行列演算手段とを有する。なお、「Ｒｂ０ｂ１ｂ２ｂ３」は４階テンソルを意味し、Ｒｂ０ｂ１ｂ２ｂ３の添え字「ｂ０ｂ１ｂ２ｂ３」は「ｂ０ｂ１ｂ２ｂ３」を意味する（以下、同様）。
【００１４】
このようなセキュリティ装置において生成されたｎＮ×ｎＮ行列Ｔ（λ）（以下「Ｔ行列」という。）は可換であり、このような性質を利用して共通鍵の配送や公開鍵暗号方式等を実現することができる（詳細は後述）。
また、「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、所定の要素（例えば、ベクトル）ａと、さらにベクトルｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【００１５】
なお、「ヤン・バクスター（Ｙａｎｇ−Ｂａｘｔｅｒ）方程式」は、数学や物理学において一般的に知られている関数方程式であり、その数学的背景を示す文献としては、「Ｒ．Ｊ．  Ｂａｘｔｅｒ，  ”Ｅｘａｃｔｌｙ  Ｓｏｌｖｅｄ  Ｍｏｄｅｌｓ  ｉｎ  Ｓｔａｔｉｓｔｉｃａｌ  Ｍｅｃｈａｎｉｃｓ，”  Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ，１９８２」「Ｖ．  Ｃｈａｒｉ，  Ａ．Ｐｒｅｓｓｌｙ，  ”Ａ  Ｇｕｉｄｅ  ｔｏ  Ｑｕａｎｔｕｍ  Ｇｒｏｕｐｓ，”Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  １９９４．」「神保道夫，”量子群とヤン・バクスター方程式”，シュプリンガー・フェアラーク東京，１９９０」等がある。また、一般に、ヤン・バクスター方程式の解を与えるごとに、統計力学に関する可解格子模型と呼ばれる模型を設定することができ、この可解格子模型の一般論においてｔｒａｎｓｆｅｒ  ｍａｔｒｉｘと呼ばれるものが、上述のＴ行列に相当する。そして、このＴ行列が可換であることは、上述の式（１）によって定まるＴ行列の生成に用いたＲ行列がヤン・バクスター方程式を満たすことの理論的帰結である（詳細は後述）。
【００１６】
また、好ましくは、所定の要素ａは、ｎＮ次元のベクトルａであり、行列演算手段は、ベクトルａにｎＮ×ｎＮ行列Ｔ（λ）を作用させた結果であるｎＮ次元のベクトルｄのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数１７】
2004356720.tif 000004
によって演算する手段である。
【００１７】
この場合、ベクトルａにＴ行列を作用させた結果Ｔ（λ）ａは、その成分ごとに求められることになるが、この際、一旦Ｔ行列全体を生成し、このＴ行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するＴ行列を用いた場合であっても、そのＴ行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の秘密通信を実現することができる。
【００１８】
また、Ｒ行列生成手段が算出するＲ行列の一例としては、例えば、ｑを可換環の可逆な元（例えば、有限体上の０でない元）とし、Ｌ（λ）を可換環の元λに対応する元とし、ｎを２とした場合における、成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（λ）、Ｒ１００１＝１−ｑＬ（λ）、Ｒ０１１０＝１−ｑ−１Ｌ（λ）となるＲ行列を挙げることができる。
【００１９】
次に、この形態の詳細について説明を行っていく。
第１の実施の形態：
第１の実施の形態は、この発明を共通鍵の配信に利用する形態である。以下、この第１の実施の形態について説明を行う。
図１は、この形態における共通鍵の配信処理を説明するためのシーケンス図の例示であり、図２は、この形態におけるセキュリティシステム１の全体構成を説明するための概念図の例示である。また、図３は、セキュリティ装置１０のハードウェア構成を説明するためのブロック図の例示であり、図４は、図３に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置１０の機能構成を説明するためブロック図の例示であり、図５は、セキュリティ装置２０の機能構成を説明するためのブロック図の例示である。さらに図６は、セキュリティ装置１０の処理を説明するためのフローチャートの例示であり、図７は、セキュリティ装置２０の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム１の構成及びその処理動作の説明を行っていく。
【００２０】
〔システムの全体構成〕
図２に例示するように、この形態のセキュリティシステム１は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置１０、２０が、インターネット等の安全でないネットワーク３０によって通信可能に接続されることによって構成される。
【００２１】
〔ハードウェア構成〕
図３に例示するように、この形態におけるセキュリティ装置１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）１１、主記憶装置１２、ハードディスク装置等の外部記憶装置１３、キーボード、マウス等の入力装置１４、ＣＤ−ＲＯＭドライブ等の記録媒体読書き装置１５、液晶ディスプレイ等の出力装置１６、通信制御装置１７、及びそれらのデータのやり取りを可能とするバス１８を有しており、これらは、通信制御装置１７を介し、ネットワーク３０と通信可能なように接続され、或いは接続可能なように構成されている。なお、ここでは説明を省略するが、セキュリティ装置２０も、例えば、セキュリティ装置１０と同様なハードウェア構成をとるものとする。
【００２２】
〔処理手順の全体〕
この形態のセキュリティシステム１では、セキュリティ装置１０とセキュリティ装置２０とで共通鍵の配信を行う。この例の場合、この共通鍵の配信はセキュリティ装置１０からセキュリティ装置２０に共有情報ａ（後述）を送信する共有情報送信処理、セキュリティ装置１０からセキュリティ装置２０に交換情報ｄ（後述）を送信する交換情報送信処理１、セキュリティ装置２０からセキュリティ装置１０に交換情報ｅ（後述）を送信する交換情報送信処理２、セキュリティ装置１０において共通鍵Ｋを算出する共通鍵演算処理１、及びセキュリティ装置２０において共通鍵Ｋを算出する共通鍵演算処理２を経て、この共通鍵の配信が行われる（図１）。
【００２３】
〔共有情報送信処理〕
まず、セキュリティ装置１０の擬似乱数生成部１０ａ（共有情報抽出手段に相当）において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてｎＮ次元（ｎ，Ｎは自然数）のベクトルである共有情報ａを生成する。生成した共有情報ａは擬似乱数生成部１０ａから記憶部１０ｂに送られ、そこで格納される（ステップＳ１）。なお、擬似乱数生成部１０ａにおける擬似乱数の生成は、例えば、ＳＨＡ−１等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【００２４】
また、生成された共有情報ａは擬似乱数生成部１０ａから通信部１０ｃに送られ、そこからネットワーク３０を通じてセキュリティ装置２０に送られる（ステップＳ２）。送信された共有情報ａは、セキュリティ装置２０の通信部２０ｃにおいて受信（共有情報抽出手段に相当）され、記憶部２０ｂに送られた後、そこに格納される（ステップＳ２０）。
【００２５】
〔交換情報送信処理１〕
まず、セキュリティ装置１０の擬似乱数生成部１０ｄ（秘密情報生成手段に相当）において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝とを生成する。生成した自然数ｓ及び集合Λ＝｛λ１，λ２，…，λｓ｝は、擬似乱数生成部１０ｄから記憶部１０ｂに送られ、そこで安全に格納される（ステップＳ３）。なお、擬似乱数生成部１０ｄにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部１０ａの場合と同様な方法によって行う。
【００２６】
次に、Ｒ行列生成部１０ｅにおいて、記憶部１０ｂから集合Λ＝｛λ１，λ２，…，λｓ｝を抽出し、このλｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（以下、「Ｒ行列」という。）を算出する（ステップＳ４）。ここで算出されるＲ行列としては、例えば、その成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（λｐ）、Ｒ１００１＝１−ｑＬ（λｐ）、Ｒ０１１０＝１−ｑ−１Ｌ（λｐ）となるものを例示することができる。なお、この例の解は、ｑを可換環の可逆な元とし、Ｌ（λｐ）を可換環の元λｐに対応する元とし、ｎを２としている。そして、このように算出されたＲ行列は、例えば、このＲ行列生成部１０ｅが有する図示しないメモリに格納されるとともに、行列演算部１０ｆに送られる。
このＲ行列が送られた行列演算部１０ｆは、記憶部１０ｂから共有情報ａ及び自然数ｓを抽出し、これらを用いてＴ行列演算を行って交換情報ｄを生成する（ステップＳ５）。
【００２７】
すなわち、この例の行列演算部１０ｆでは、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元λｐ  に対してＲ行列生成部１０ｅで生成されたＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数１８】
2004356720.tif 000005
とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），  Ｔ（λ２），…，  Ｔ（λｓ）を、擬似乱数生成部１０ａにおいて抽出され、記憶部１０ｂから読みこまれた共有情報ａに順次作用させる（ｄ＝Ｔ（λ１）  Ｔ（λ２）  …Ｔ（λｓ）ａ）。
【００２８】
また、より具体的には、この例の行列演算部１０ｆは、例えば、共有情報ａにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数１９】
2004356720.tif 000006
によって演算する。
【００２９】
このように生成された交換情報ｄは、通信部１０ｃに送られ、通信部１０ｃ（交換情報出力手段に相当）は、この交換情報ｄを、ネットワーク３０を通じてセキュリティ装置２０に送信する（ステップＳ６）。送信された交換情報ｄは、セキュリティ装置２０の通信部２０ｃ（交換情報入力手段に相当）において受信され（入力を受け付けられ）（ステップＳ２１）、行列演算部２０ｈに送られる。
【００３０】
〔交換情報送信処理２〕
まず、セキュリティ装置２０の擬似乱数生成部２０ｄ（秘密情報生成手段に相当）において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝とを生成する。生成した自然数ｓ及び集合δ＝｛α１，α２，…，αｕ｝は、擬似乱数生成部２０ｄから記憶部２０ｂに送られ、そこで安全に格納される（ステップＳ２２）。なお、擬似乱数生成部２０ｄにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部１０ａの場合と同様な方法によって行う。
【００３１】
次に、Ｒ行列生成部２０ｅにおいて、記憶部２０ｂから集合δ＝｛α１，α２，…，αｕ｝を抽出し、このαｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（Ｒ行列）を算出する（ステップＳ２３）。ここで算出されるＲ行列としては、例えば、その成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（αｒ）、Ｒ１００１＝１−ｑＬ（αｒ）、Ｒ０１１０＝１−ｑ−１Ｌ（αｒ）となるものを例示することができる。なお、この例の解は、ｑを可換環の可逆な元とし、Ｌ（αｒ）を可換環の元αｒに対応する元とし、ｎを２としている。そして、このように算出されたＲ行列は、例えば、このＲ行列生成部２０ｅが有する図示しないメモリに格納されるとともに、行列演算部２０ｆに送られる。
このＲ行列が送られた行列演算部２０ｆは、記憶部２０ｂから共有情報ａ及び自然数ｕを抽出し、これらを用いてＴ行列演算を行って交換情報ｅを生成する（ステップＳ２４）。
【００３２】
すなわち、この例の行列演算部２０ｆでは、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元αｒに対してＲ行列生成部２０ｅで生成されたＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、
【数２０】
2004356720.tif 000007
とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、通信部２０ｃにおいて抽出され、記憶部２０ｂから読みこまれた共有情報ａに順次作用させる（ｅ＝Ｔ（α１）  Ｔ（α２）  …Ｔ（αｕ）ａ）。
【００３３】
また、より具体的には、この例の行列演算部２０ｆは、例えば、共有情報ａにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数２１】
2004356720.tif 000008
によって演算する。
【００３４】
このように生成された交換情報ｅは、通信部２０ｃに送られ、通信部２０ｃ（交換情報出力手段に相当）は、この交換情報ｅを、ネットワーク３０を通じてセキュリティ装置１０に送信する（ステップＳ２５）。送信された交換情報ｅは、セキュリティ装置１０の通信部１０ｃ（交換情報入力手段に相当）において受信され（入力を受け付けられ）（ステップＳ７）、行列演算部１０ｈに送られる。
【００３５】
〔共通鍵演算処理１〕
まず、セキュリティ装置１０の行列演算部１０ｈにおいて、Ｒ行列生成部１０ｅから、ここで生成され記憶されているＲ行列を抽出し（ステップＳ８）、さらに、記憶部１０ｂから自然数ｓを抽出する。そして、この行列演算部１０ｈにおいて、元λｐ  に対してＲ行列生成部１０ｅで生成されたＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を上述の式（２）とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を、通信部１０ｃから行列演算部１０ｈに送られた交換情報ｅに順次作用させる（Ｋ＝Ｔ（λ１）  Ｔ（λ２）  …Ｔ（λｓ）ｅ）（Ｔ行列演算／ステップＳ９）。
【００３６】
より具体的には、この例の行列演算部１０ｈは、交換情報ｅにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数２２】
2004356720.tif 000009
によって演算する。
このような演算結果Ｋは鍵出力部１０ｉに送られ、そこから共通鍵Ｋとして出力される（ステップＳ１０）。
【００３７】
〔共通鍵演算処理２〕
まず、セキュリティ装置２０の行列演算部２０ｈにおいて、Ｒ行列生成部２０ｅから、ここで生成され記憶されているＲ行列を抽出し（ステップＳ２６）、さらに、記憶部２０ｂから自然数ｕを抽出する。そして、この行列演算部２０ｈにおいて、元αｒに対してＲ行列生成部２０ｅで生成されたＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を上述の式（４）とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，  Ｔ（αｕ）を、通信部２０ｃから行列演算部２０ｈに送られた交換情報ｄに順次作用させる（Ｋ＝Ｔ（α１）  Ｔ（α２）  …Ｔ（αｕ）ｄ）（Ｔ行列演算／ステップＳ２７）。
【００３８】
より具体的には、この例の行列演算部２０ｈは、交換情報ｄにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、
【数２３】
2004356720.tif 000010
によって演算する。
このような演算結果Ｋは鍵出力部２０ｉに送られ、そこから共通鍵Ｋとして出力される（ステップＳ２８）。
【００３９】
〔Ｔ行列の可換性〕
上述のようにセキュリティ装置１０において演算された共通鍵は、共有情報ａにＴ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果ｅに対し、さらに、Ｔ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）  を順次作用させた結果である（Ｋ＝Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ、ｅ＝Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ａ）。
【００４０】
一方、セキュリティ装置２０において演算された共通鍵は、共有情報ａにＴ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させた結果ｄに対し、さらに、Ｔ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果である（Ｋ＝Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ、ｄ＝Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ａ）。
従って、セキュリティ装置１０において演算された共通鍵とセキュリティ装置２０において演算された共通鍵とが一致するためには、これらのＴ行列が可換であることが必要である。以下に、このＴ行列の可換性について説明する。
【００４１】
＜定義＞
この説明の表記を以下のように定義する。
（ａ）Ｒｓ，ｔ：Ｖ（×）Ｖ（×）Ｖ→Ｖ（×）Ｖ（ｓ，ｔ＝１，２，３の場合）
＜ｅｉ（×）ｅｊ（×）ｅｋ＞
Ｖ：基底ｅ１，…，ｅｎのベクトル空間
Ｖ（×）Ｖ：ＶとＶのテンソル積
具体的には、
Ｒ１，２（ｅｉ（×）ｅｊ（×）ｅｋ）＝Σｘ，ｙ  Ｒｉ，ｊ，ｘ，ｙ  ｅｘ（×）ｅｙ（×）ｅｋ
Ｒ１，３（ｅｉ（×）ｅｊ（×）ｅｋ）＝Σｘ，ｙ  Ｒｉ，ｋ，ｘ，ｙ  ｅｘ（×）ｅｊ（×）ｅｙ
Ｒ２，３（ｅｉ（×）ｅｊ（×）ｅｋ）＝Σｘ，ｙ  Ｒｊ，ｋ，ｘ，ｙ  ｅｉ（×）ｅｘ（×）ｅｙ
となる。すなわち、Ｒｓ，ｔは、Ｒの上付き添え字ｓ番目の基底（Ｒ１，２（ｅｉ（×）ｅｊ（×）ｅｋ）の場合、１番目の基底ｅｉ）と、Ｒの上付き添え字ｔ番目の基底（Ｒ１，２（ｅｉ（×）ｅｊ（×）ｅｋ）の場合、２番目の基底ｅｊ）に関して全ての値をとりつつ、Ｒの和を求めた結果を指す。なお、この和を求めるに当たり、Ｒの上付き添え字ｓ，ｔに該当しない場所の基底（Ｒ１，２（ｅｉ（×）ｅｊ（×）ｅｋ）の場合、３番目の基底ｅｋ）は固定である。
【００４２】
（ｂ）Ｔ￣（λ）
【数２４】
2004356720.tif 000011
【００４３】
（ｃ）トレース
【数２５】
2004356720.tif 000012
＜導出＞
次に、以上の定義を用いてＴ行列の可換性について説明する。
まず、以上の定義より、ヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列に対して、
【数２６】
2004356720.tif 000013
【００４４】
なお、ここで、１つ目の変形は上述の定義（ｂ）によるものであり、２つ目の変形は、上述の定義（ａ）より、共通する上付き添え字を有しないＲの演算は互いに独立であることから、その順序を入れ替えても演算結果は変わらないことによるものである。
【００４５】
さらに上述の式（９）の
【数２７】
2004356720.tif 000014
となり、上述の式（８）が成立していることが分かる。これはその他のＮについても同様である。
【００４６】
次に、このように成立する上述の式（１０）の両辺に、逆行列
【数２８】
2004356720.tif 000015
ベクトル空間上での線形変換としての逆行列を意味する。
【００４７】
次にこの式（１１）のトレース（定義（ｃ））をとると、
【数２９】
2004356720.tif 000016
を満たすため、この式（１３）は、Ｔ（μ）Ｔ（ν）＝Ｔ（ν）Ｔ（μ）と変形でき、このＴ行列が可換であることが分かる。なおＴ行列を前述の式（１）として一般化できることの数学的背景は、前述した「Ｒ．Ｊ．  Ｂａｘｔｅｒ，  ”Ｅｘａｃｔｌｙ  Ｓｏｌｖｅｄ  Ｍｏｄｅｌｓ  ｉｎ  Ｓｔａｔｉｓｔｉｃａｌ  Ｍｅｃｈａｎｉｃｓ，”  Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ，１９８２」「Ｖ．  Ｃｈａｒｉ，  Ａ．Ｐｒｅｓｓｌｙ，  ”Ａ  Ｇｕｉｄｅ  ｔｏ  Ｑｕａｎｔｕｍ  Ｇｒｏｕｐｓ，”Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  １９９４．」「神保道夫，”量子群とヤン・バクスター方程式”，シュプリンガー・フェアラーク東京，１９９０」等の文献によって明らかである。
【００４８】
このように、この形態では、セキュリティ装置１０の擬似乱数生成部１０ａにおいて、セキュリティ装置２０と共有される共有情報ａを抽出し、擬似乱数生成部１０ｄにおいて、秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝とを生成する。次に、Ｒ行列生成部１０ｅにおいて、元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（第１のＲ行列）を算出する。そして、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元λｐ  に対してＲ行列生成部１０ｅで生成された第１のＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を上述の式（２）とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を共有情報ａに順次作用させ、その演算結果である交換情報ｄを通信部１０ｃからセキュリティ装置２０に出力する。
【００４９】
また、通信部１０ｃにおいて、セキュリティ装置２０から送信された交換情報ｅの入力を受け付け、行列演算部１０ｈにおいて、この交換情報ｅに、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させ、共通鍵Ｋを求める。
一方、セキュリティ装置２０の通信部２０ｃにおいて、セキュリティ装置１０と共有される共有情報ａが抽出し、擬似乱数生成部２０ｄにおいて、秘密情報である自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝とを生成する。次に、Ｒ行列生成部２０ｅにおいて、この元αｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（第２のＲ行列）を算出する。そして、行列演算部２０ｆにおいて、元αｒに対して、Ｒ行列生成部２０ｅで生成された第２のＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を、上述の式（４）とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を共有情報ａに順次作用させ、その演算結果である交換情報ｅを通信部２０ｃからセキュリティ装置１０に出力する。
【００５０】
また、通信部２０ｃにおいて、交換情報ｄの入力を受け付け、行列演算部２０ｈにおいて、この交換情報ｄに、ｎＮ×ｎＮ行列Ｔ（α１），  Ｔ（α２），…，  Ｔ（αｕ）を順次作用させ、共通鍵Ｋを求める。
ここで、セキュリティ装置１０において演算された共通鍵は、共有情報ａにＴ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果ｅに対し、さらに、Ｔ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）  を順次作用させた結果である（Ｋ＝Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ、ｅ＝Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ａ）。一方、セキュリティ装置２０において演算された共通鍵は、共有情報ａにＴ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させた結果ｄに対し、さらに、Ｔ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果である（Ｋ＝Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ、ｄ＝Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ａ）。そして、上述のようにＴ行列は可換である。従って、セキュリティ装置１０において演算された共通鍵とセキュリティ装置２０において演算された共通鍵とは一致する。
【００５１】
また、この形態では「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、ベクトルａと、さらにベクトルｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【００５２】
さらに、ヤン・バクスター方程式Ｒ（α）１２Ｒ（β）１３Ｒ（γ）２３＝Ｒ（γ）２３Ｒ（β）１３Ｒ（α）１２の解であるＲ行列を用い、上述の式（１）で表されるｎＮ×ｎＮ行列Ｔ（λ）は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるｄ、ｅは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、ベクトルａと、さらにベクトルｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【００５３】
また、この形態の例では、共有情報ａをｎＮ次元のベクトルとし、セキュリティ装置１０の行列演算部１０ｆは、共有情報ａにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を上述の式（３）によって演算し、行列演算部１０ｈは、交換情報ｅにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、上述の式（６）によって演算することとした。
【００５４】
同様に、セキュリティ装置２０の行列演算部２０ｆは、共有情報ａにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を上述の式（５）によって演算し、行列演算部２０ｈは、交換情報ｄにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、上述の式（７）によって演算することとした。
【００５５】
そのため、ベクトルにＴ行列を作用させる演算を行うにあたり、一旦Ｔ行列全体を生成し、このＴ行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するＴ行列を用いた場合であっても、そのＴ行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の共通鍵配送を実現することができる。
【００５６】
第２の実施の形態：
第２の実施の形態は、この発明を利用した公開鍵暗号方式に関するものである。以下、この第２の実施の形態について説明を行う。
図８は、この形態における公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示であり、図９は、この形態におけるセキュリティシステム１００の全体構成を説明するための概念図の例示である。図１０は、図３に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置１１０の機能構成を説明するためブロック図の例示であり、図１１は、セキュリティ装置１２０の機能構成を説明するためのブロック図の例示である。また図１２は、セキュリティ装置１１０の処理を説明するためのフローチャートの例示であり、図１３は、セキュリティ装置１２０の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム１００の構成及びその処理動作の説明を行っていく。なお、セキュリティ装置１１０、１２０のハードウェア構成については、第１の実施の形態と同様であるため、ここではその説明を省略する。
【００５７】
〔システムの全体構成〕
図９に例示するように、この形態のセキュリティシステム１００は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置１１０、１２０が、インターネット等の安全でないネットワーク１３０によって通信可能に接続されることによって構成される。
【００５８】
〔処理手順の全体〕
この形態のセキュリティシステム１００では、セキュリティ装置１１０において公開鍵を公開し、この公開鍵を用いてセキュリティ装置１２０で暗号化を行い、その暗号文をセキュリティ装置１１０で復号する。この例の暗号処理は、セキュリティ装置１１０からセキュリティ装置１２０に共有情報ａを送信する共有情報送信処理、セキュリティ装置１１０からセキュリティ装置１２０に交換情報ｄを送信する交換情報送信処理、セキュリティ装置１２０からセキュリティ装置１１０に暗号文Ｅを送信する暗号文送信処理、及びセキュリティ装置１１０においてこの暗号文を復号して平文Ｍを算出する復号処理によって構成される（図８）。
【００５９】
〔共有情報送信処理〕
まず、セキュリティ装置１１０の擬似乱数生成部１１０ａ（共有情報抽出手段に相当）において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてｎＮ次元（ｎ，Ｎは自然数）の共有情報ａを生成する。生成した共有情報ａは擬似乱数生成部１１０ａから記憶部１１０ｂに送られ、そこで格納される（ステップＳ３０）。なお、擬似乱数生成部１１０ａにおける擬似乱数の生成は、例えば、ＳＨＡ−１等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【００６０】
また、生成された共有情報ａは擬似乱数生成部１１０ａから通信部１１０ｃに送られ、そこからネットワーク１３０を通じてセキュリティ装置１２０に送られる（ステップＳ３１）。送信された共有情報ａは、セキュリティ装置１２０の通信部１２０ｃにおいて受信（共有情報抽出手段に相当）され、記憶部１２０ｂに送られた後、そこに格納される（ステップＳ５１）。
【００６１】
〔交換情報送信処理〕
まず、セキュリティ装置１１０の擬似乱数生成部１１０ｄ（秘密情報生成手段に相当）において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝とを生成する。生成した自然数ｓ及び集合Λ＝｛λ１，λ２，…，λｓ｝は、擬似乱数生成部１１０ｄから記憶部１１０ｂに送られ、そこで安全に格納される（ステップＳ３２）。なお、擬似乱数生成部１１０ｄにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部１１０ａの場合と同様な方法によって行う。
【００６２】
次に、Ｒ行列生成部１１０ｅにおいて、記憶部１１０ｂから集合Λ＝｛λ１，λ２，…，λｓ｝を抽出し、このλｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（Ｒ行列）を算出する（ステップＳ３３）。ここで算出されるＲ行列としては、例えば、その成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（λｐ）、Ｒ１００１＝１−ｑＬ（λｐ）、Ｒ０１１０＝１−ｑ−１Ｌ（λｐ）となるものを例示することができる。なお、この例の解は、ｑを可換環の可逆な元とし、Ｌ（λｐ）を可換環の元λｐに対応する元とし、ｎを２としている。そして、このように算出されたＲ行列は、例えば、このＲ行列生成部１１０ｅが有する図示しないメモリに格納されるとともに、行列演算部１１０ｆに送られる。
このＲ行列が送られた行列演算部１１０ｆは、記憶部１１０ｂから共有情報ａ及び自然数ｓを抽出し、これらを用いてＴ行列演算を行って交換情報ｄを生成する（ステップＳ３４）。
【００６３】
すなわち、この例の行列演算部１１０ｆでは、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元λｐ  に対してＲ行列生成部１０ｅで生成されたＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を、前述の式（２）とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），  Ｔ（λ２），…，  Ｔ（λｓ）を、擬似乱数生成部１１０ａにおいて抽出され、記憶部１１０ｂから読みこまれた共有情報ａに順次作用させる（ｄ＝Ｔ（λ１）  Ｔ（λ２）  …Ｔ（λｓ）ａ）。
また、より具体的には、この例の行列演算部１１０ｆは、例えば、共有情報ａにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を前述の式（３）によって演算する。
【００６４】
このように生成された交換情報ｄは、通信部１１０ｃに送られ、通信部１１０ｃ（交換情報出力手段に相当）は、この交換情報ｄを、ネットワーク１３０を通じてセキュリティ装置１２０に送信する（ステップＳ３５）。送信された交換情報ｄは、セキュリティ装置１２０の通信部１２０ｃ（交換情報入力手段に相当）において受信され（入力を受け付けられ）（ステップＳ５２）、行列演算部１２０ｈに送られる。
なお、この例では、共有情報ａ及び交換情報ｄが公開鍵に相当し、自然数ｓ及びの集合Λが秘密鍵に相当する。
【００６５】
〔暗号文送信処理〕
まず、セキュリティ装置１２０の擬似乱数生成部１２０ｄ（秘密情報生成手段に相当）において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝とを生成する。生成した自然数ｓ及び集合δ＝｛α１，α２，…，αｕ｝は、擬似乱数生成部１２０ｄから記憶部１２０ｂに送られ、そこで安全に格納される（ステップＳ５３）。なお、擬似乱数生成部１２０ｄにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部１１０ａの場合と同様な方法によって行う。
【００６６】
次に、Ｒ行列生成部１２０ｅにおいて、記憶部１２０ｂから集合δ＝｛α１，α２，…，αｕ｝を抽出し、このαｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（Ｒ行列）を算出する（ステップＳ５４）。ここで算出されるＲ行列としては、例えば、その成分がＲ００００＝Ｒ１１１１＝１、Ｒ１０１０＝Ｒ０１０１＝Ｌ（αｒ）、Ｒ１００１＝１−ｑＬ（αｒ）、Ｒ０１１０＝１−ｑ−１Ｌ（αｒ）となるものを例示することができる。なお、この例の解は、ｑを可換環の可逆な元とし、Ｌ（αｒ）を可換環の元αｒに対応する元とし、ｎを２としている。そして、このように算出されたＲ行列は、例えば、このＲ行列生成部１２０ｅが有する図示しないメモリに格納されるとともに、行列演算部１２０ｆに送られる。
このＲ行列が送られた行列演算部１２０ｆは、１記憶部２０ｂから共有情報ａ及び自然数ｕを抽出し、これらを用いてＴ行列演算を行って交換情報ｅを生成する（ステップＳ５５）。
【００６７】
すなわち、この例の行列演算部１２０ｆでは、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元αｒに対してＲ行列生成部１２０ｅで生成されたＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を前述の式（４）とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、通信部１２０ｃにおいて抽出され、記憶部１２０ｂから読みこまれた共有情報ａに順次作用させる（ｅ＝Ｔ（α１）  Ｔ（α２）  …Ｔ（αｕ）ａ）。
【００６８】
また、より具体的には、この例の行列演算部１２０ｆは、例えば、共有情報ａにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、前述の式（５）によって演算する。
そして、このように生成された交換情報ｅは、通信部１２０ｃに送られ、通信部１２０ｃの図示しないメモリに記憶される。
次に、行列演算部１２０ｈにおいて、Ｒ行列生成部１２０ｅから、ここで生成され記憶されているＲ行列を抽出し（ステップＳ５６）、さらに、記憶部１２０ｂから自然数ｕを抽出する。そして、この行列演算部１２０ｈにおいて、前述のｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を、通信部１２０ｃから行列演算部１２０ｈに送られた交換情報ｄに順次作用させる（Ｔ（α１）  Ｔ（α２）…Ｔ（αｕ）ｄ）（Ｔ行列演算／ステップＳ５７）。
【００６９】
また、より具体的には、この例の行列演算部１２０ｈは、例えば、交換情報ｄにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を前述の式（７）によって演算する。
このように求められたベクトルＴ（α１）Ｔ（α２）…Ｔ（αｕ）ｄは、ハッシュ演算部１２０ｉに送られ、このベクトルＴ（α１）Ｔ（α２）…Ｔ（αｕ）ｄが送られたハッシュ演算部１２０ｉは、セキュリティ装置１１０と共用されるハッシュ関数Ｈを用い、このベクトルＴ（α１）Ｔ（α２）…Ｔ（αｕ）ｄのハッシュ値（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ））を演算する（ステップＳ５８）。そして、このように求められたハッシュ値（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ））は、排他的論理和演算部１２０ｋに送られる。
【００７０】
一方、メッセージ入力部１２０ｊからは平文であるメッセージ（Ｍ）の入力が受け付けられ（ステップＳ５９）、入力されたメッセージ（Ｍ）は、排他的論理和演算部１２０ｋに送られる。
排他的論理和演算部１２０ｋでは、ハッシュ演算部１２０ｉから送られたハッシュ値（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ））（第２の行列演算ステップによる演算結果に相当）と、メッセージ入力部１２０ｊから送られたメッセージ（Ｍ）との排他的論理和を暗号化情報として生成する（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ）（ステップＳ６０）。なお、「Ａ（＋）Ｂ」は、ＡとＢとの排他的論理和を意味するものとする。
【００７１】
この排他的論理和の演算結果（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ）は、通信部１２０ｃに送られ、通信部１２０ｃ（暗号情報出力手段に相当）は、行列演算部１２０ｈによる演算結果である交換情報ｅと、排他的論理和演算部１２０ｋにより生成された演算結果（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ）（暗号化情報に相当）とを、暗号文Ｅとして、ネットワーク１３０を通じ、セキュリティ装置１１０に送信（出力）する（ステップＳ６１）。
【００７２】
〔復号処理〕
セキュリティ装置１２０から送信された暗号文Ｅ（ｅ，Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ）は、セキュリティ装置１１０の通信部１１０ｃ（暗号情報入力手段に相当）において受信され（入力を受け付けられ）（ステップＳ３６）、この暗号情報Ｅを構成する交換情報ｅは行列演算部１１０ｈに、暗号化情報Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍは排他的論理和演算部１１０ｊに送られる。
【００７３】
交換情報ｅを受け取った行列演算部１１０ｈは、Ｒ行列生成部１１０ｅから、ここで生成され記憶されているＲ行列を抽出し（ステップＳ３７）、さらに、記憶部１１０ｂから自然数ｓを抽出する。そして、この行列演算部１１０ｈにおいて、通信部１１０ｃから行列演算部１１０ｈに送られた交換情報ｅに、前述したｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ）（Ｔ行列演算／ステップＳ３８）。
【００７４】
また、より具体的には、この例の行列演算部１１０ｈは、例えば、交換情報ｅにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を前述の式（６）によって演算する。
このように求められたＴ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅは、ハッシュ演算部１１０ｉに送られ、ハッシュ演算部１１０ｉは、セキュリティ装置１２０と共用されるハッシュ関数Ｈを用い、このＴ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅのハッシュ値（Ｈ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ））を演算する（ステップＳ３９）。
【００７５】
このように求められたハッシュ値（Ｈ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ））は排他的論理和演算部１１０ｊに送られ、排他的論理和演算部１１０ｊは、通信部入力された暗号化情報Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍとハッシュ値（Ｈ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ））（第２の行列演算ステップによる演算結果に相当）との排他的論理和（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ（＋）Ｈ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ））を演算する（ステップＳ４０）。
【００７６】
ここで、前述のようにＴ行列は可換であり、第１の実施の形態で説明したようにＴ（α１）Ｔ（α２）…Ｔ（αｕ）ｄとＴ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅは等しい。よって、Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）とＨ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ）も等しくなり、この排他的論理和（Ｈ（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ）（＋）Ｍ（＋）Ｈ（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ））の演算結果は平文であるメッセージＭとなる。このように復号されたメッセージ（Ｍ）は、メッセージ出力部１１０ｋに送られ、メッセージ出力部１１０ｋは、このメッセージ（Ｍ）を出力する（ステップＳ４１）。
【００７７】
このように、この形態では、まず、セキュリティ装置１１０の擬似乱数生成部１１０ａにおいて、セキュリティ装置１２０と共有される共有情報を抽出し、擬似乱数生成部１１０ｄにおいて、秘密情報である自然数ｓと、ビット列で表現される可換環の元λｐ（ｐ＝｛１，２，…，ｓ｝）の集合Λ＝｛λ１，λ２，…，λｓ｝とを生成する。次に、Ｒ行列生成部１１０ｅにおいて、元λｐのそれぞれに対し、μｐ、νｐを、λｐ＝μｐ−νｐを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λｐ）１２Ｒ（μｐ）１３Ｒ（νｐ）２３＝Ｒ（νｐ）２３Ｒ（μｐ）１３Ｒ（λｐ）１２の解（第１のＲ行列）を算出し、行列演算部１１０ｆにおいて、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、元λｐ  に対してＲ行列生成部１１０ｅで生成された第１のＲ行列の成分をＲｐｂ０ｂ１ｂ２ｂ３とし、元λｐに対応するｎＮ×ｎＮ行列Ｔ（λｐ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λｐ）ＢＢ’を前述の式（２）とした場合における、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を共有情報ａに順次作用させ、通信部１１０ｃにおいて、この演算結果である交換情報ｄをセキュリティ装置１２０出力する。
【００７８】
一方、セキュリティ装置１２０では、その通信部１２０ｃにおいて、セキュリティ装置１０と共有される共有情報ａを抽出し、擬似乱数生成部１２０ｄにおいて、秘密情報である自然数ｕと、ビット列で表現される可換環の元αｒ（ｒ＝｛１，２，…，ｕ｝）の集合δ＝｛α１，α２，…，αｕ｝とを生成する。次に、Ｒ行列生成部１２０ｅにおいて、元αｒのそれぞれに対し、βｒ、γｒを、αｒ＝βｒ−γｒを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（αｒ）１２Ｒ（βｒ）１３Ｒ（γｒ）２３＝Ｒ（γｒ）２３Ｒ（βｒ）１３Ｒ（αｒ）１２の解（第２のＲ行列）を算出する。そして、元αｒ  に対して第２のＲ行列生成部１２０ｅで生成された第２のＲ行列の成分をＲｒｂ０ｂ１ｂ２ｂ３とし、元αｒに対応するｎＮ×ｎＮ行列Ｔ（αｒ）のＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（αｒ）ＢＢ’を、前述の式（４）とした場合における、ｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を共有情報ａに順次作用させる。
【００７９】
また、通信部１２０ｃにおいて、交換情報ｄの入力を受け付け、行列演算部１２０ｈにおいて、この交換情報ｄにｎＮ×ｎＮ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させる。そして、排他的論理和演算部１２０ｋにおいて、行列演算部１２０ｈによる演算結果（この例では、さらにハッシュ演算部１２０ｉにおいてそのハッシュ値をとったもの（Ｈ（Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）ｄ）））と平文（Ｍ）との排他的論理和を暗号化情報（Ｈ（Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）ｄ）（＋）Ｍ）として生成し、行列演算部１２０ｆによる演算結果である交換情報ｅと、排他的論理和演算部１２０ｋにより生成された暗号化情報とをセキュリティ装置１１０に出力する。
【００８０】
そして、セキュリティ装置１１０では、その通信部１１０ｃにおいて、交換情報ｅと暗号化情報（Ｈ（Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）ｄ）（＋）Ｍ）との入力を受け付け、行列演算部１１０ｈにおいて、交換情報ｅに、ｎＮ×ｎＮ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させる。その後、排他的論理和演算部１１０ｊにおいて、この暗号化情報（Ｈ（Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）ｄ）（＋）Ｍ）と行列演算部１１０ｈによる演算結果（この例では、さらにハッシュ演算部１１０ｉにおいて、そのハッシュ値を取ったもの（Ｈ（Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）ｅ）））との排他的論理和を演算し、平文Ｍを復号する。
【００８１】
ここで、上述のようにＴ行列は可換である。従って、共有情報ａにＴ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果ｅに対し、さらに、Ｔ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させた結果（Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ｅ、ｅ＝Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ａ）と、共有情報ａにＴ行列Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）を順次作用させた結果ｄに対し、さらに、Ｔ行列Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）を順次作用させた結果（Ｔ（α１）Ｔ（α２）…Ｔ（αｕ）ｄ、ｄ＝Ｔ（λ１）Ｔ（λ２）…Ｔ（λｓ）ａ）とは等しく、これらに同じハッシュ関数を作用させた結果も等しい。よって、暗号化情報（Ｈ（Ｔ（α１），Ｔ（α２），…，Ｔ（αｕ）ｄ）（＋）Ｍ）と演算結果（Ｈ（Ｔ（λ１），Ｔ（λ２），…，Ｔ（λｓ）ｅ））との排他的論理和はＭとなり、この平文Ｍが復号されることになる。
【００８２】
また、この形態では「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、ベクトルａと、さらにベクトルｄ＝  Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝  Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【００８３】
さらに、ヤン・バクスター方程式Ｒ（α）１２Ｒ（β）１３Ｒ（γ）２３＝Ｒ（γ）２３Ｒ（β）１３Ｒ（α）１２の解であるＲ行列を用い、上述の式（１）で表されるｎＮ×ｎＮ行列Ｔ（λ）は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるｄ、ｅは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、ベクトルａと、さらにベクトルｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【００８４】
また、この形態の例では、共有情報ａをｎＮ次元のベクトルとし、セキュリティ装置１１０の行列演算部１１０ｆは、共有情報ａにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を上述の式（３）によって演算し、行列演算部１１０ｈは、交換情報ｅにｎＮ×ｎＮ行列Ｔ（λｐ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、上述の式（６）によって演算することとした。
【００８５】
同様に、セキュリティ装置１２０の行列演算部１２０ｆは、共有情報ａにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を上述の式（５）によって演算し、行列演算部１２０ｈは、交換情報ｄにｎＮ×ｎＮ行列Ｔ（αｒ）を１回作用させた結果であるｎＮ次元のベクトルのＢ＝（Ｂ０，Ｂ１，…，ＢＮ−１）成分を、上述の式（７）によって演算することとした。
そのため、ベクトルにＴ行列を作用させる演算を行うにあたり、一旦Ｔ行列全体を生成し、このＴ行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するＴ行列を用いた場合であっても、そのＴ行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の公開鍵暗号方式を実現することができる。
【００８６】
なお、この発明は、上述の第１の実施の形態或いは第２の実施の形態に限定されるものではない。例えば、集合Λ＝｛λ１，λ２，…，λｓ｝に属する元λｐの少なくとも一部が相互に同じ元であってもよく、集合δ＝｛α１，α２，…，αｕ｝に属する元αｒの少なくとも一部が相互に同じ元であってもよい。そして、共通する元に関する演算（Ｒ行列演算、Ｔ行列演算）を重複して行わず、それらについて演算済みの結果をそのまま利用する構成としてもよい。
【００８７】
また、これらの形態では、コンピュータ上で所定のプログラムを実行させることにより、セキュリティ装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
さらに、上述のように、この形態における処理機能は、コンピュータによって実現することができる。この場合、セキュリティ装置が有すべき機能の処理内容はプログラムによって記述され、このプログラムをコンピュータで実行することにより、処理機能をコンピュータ上で実現することができる。
【００８８】
なお、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等を、光磁気記録媒体として、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）等を、半導体メモリとしてＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等を用いることができる。
【００８９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００９０】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、コンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【００９１】
【発明の効果】
以上説明したようにこの発明では、まず、λ、μ、νを、λ＝μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式Ｒ（λ）１２Ｒ（μ）１３Ｒ（ν）２３＝Ｒ（ν）２３Ｒ（μ）１３Ｒ（λ）１２の解であるＲ行列を算出する。そして、ｎ，Ｎを自然数とし、ｂｉ（ｉ＝｛０，１，２，３｝）、Ｂｊ（ｊ＝｛０，１，…，Ｎ−１｝）及びＢｋ（ｋ＝｛０，１，…，Ｎ−１｝）を０以上ｎ−１以下の整数とし、上述のＲ行列の成分をＲｂ０ｂ１ｂ２ｂ３とした場合における、Ｂ＝（Ｂ０，Ｂ１，…，ＢＮ−１），Ｂ’＝（Ｂ’０，Ｂ’１，…，Ｂ’Ｎ−１）成分Ｔ（λ）ＢＢ’が、前述した式（１）で表されるｎＮ×ｎＮ行列Ｔ（λ）を所定の要素ａに作用させる。
【００９２】
ここで、このように特定されるｎＮ×ｎＮ行列Ｔ（λ）は可換である。すなわち、例えば、α、β、γをα＝β−γを満たすビット列とした場合におけるヤン・バクスター方程式Ｒ（α）１２Ｒ（β）１３Ｒ（γ）２３＝Ｒ（γ）２３Ｒ（β）１３Ｒ（α）１２の解であるＲ行列を用いて同様に生成したｎＮ×ｎＮ行列Ｔ（α）が存在する場合、Ｔ（λ）・Ｔ（α）＝Ｔ（α）・Ｔ（λ）が成立する。したがって、このｎＮ×ｎＮ行列Ｔ（λ）を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる。
【００９３】
また、このｎＮ×ｎＮ行列Ｔ（λ）を利用した秘密通信の安全性は、「可換環の元の有限集合Λ＝｛λ１，λ２，…，λｓ｝を秘密情報として、可換環の元λからｎＮ×ｎＮ行列Ｔ（λ）を構成する方法と、所定の要素ａと、さらにｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａが与えられたとき、可換環の元の有限集合Λ’＝｛λ’１，λ’２，…，λ’ｓ｝でｄ＝Ｔ（λ１）  Ｔ（λ２）…Ｔ（λｓ）ａとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【図面の簡単な説明】
【図１】第１の実施の形態の共通鍵の配信処理を説明するためのシーケンス図の例示。
【図２】セキュリティシステムの全体構成を説明するための概念図の例示。
【図３】セキュリティ装置のハードウェア構成を説明するためのブロック図の例示。
【図４】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図５】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図６】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図７】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図８】第２の実施の形態の公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示。
【図９】セキュリティシステムの全体構成を説明するための概念図の例示。
【図１０】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図１１】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図１２】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図１３】セキュリティ装置の処理を説明するためのフローチャートの例示。
【符号の説明】
１、１００  セキュリティシステム
１０、２０、１１０、１２０  セキュリティ装置
【図１】
2004356720.tif 000032
【図２】
2004356720.tif 000033
【図３】
2004356720.tif 000034
【図４】
2004356720.tif 000035
【図５】
2004356720.tif 000036
【図６】
2004356720.tif 000037
【図７】
2004356720.tif 000038
【図８】
2004356720.tif 000039
【図９】
2004356720.tif 000040
【図１０】
2004356720.tif 000041
【図１１】
2004356720.tif 000042
【図１２】
2004356720.tif 000043
【図１３】
2004356720.tif 000044