(57)【特許請求の範囲】
【請求項１】
整数n (n≧2)に対するガロア有限体GF(n)に属する2以上n未満の公開鍵X∈GF(n)と、整数a (a≧2)に対して
S(a,cosθ)=cos(aθ)
により定義されるチェビチェフ多項式S(・,・)に対してGF(n)上で
T(a,x) ≡ S(a,x) mod n
により定義される多項式T(・,・)を用いて、第１および第２の鍵共有装置において鍵を共有する鍵共有システムであって、
（ａ）前記第１の鍵共有装置は、
2以上n未満の整数pを取得する整数取得部と、
前記取得された整数pから
Y=T(p,X)
により送付鍵Y∈GF(n)を計算する送付鍵計算部と、
前記計算された送付鍵Yを前記第２の鍵共有装置に送付する送付鍵送付部と、
を備え、
（ｂ）前記第２の鍵共有装置は、
2以上n未満の整数qを取得する整数取得部と、
前記取得された整数qから
W=T(q,X)
により送付鍵W∈GF(n)を計算する送付鍵計算部と、
前記計算された送付鍵Wを前記第１の鍵共有装置に送付する送付鍵送付部と、
を備え、
（ｃ）前記第１の鍵共有装置は、
前記第２の鍵共有装置から送付される送付鍵Wを受け付ける送付鍵受付部と、
前記受け付けられた送付鍵Wから
Z=T(p,W)
により共有鍵Z∈GF(n)を計算する共有鍵計算部と、
をさらに備え、
（ｄ）前記第２の鍵共有装置は、
前記第１の鍵共有装置から送付される送付鍵Yを受け付ける送付鍵受付部と、
前記受け付けられた送付鍵Yから
Z'=T(q,Y)
により共有鍵Z'∈GF(n)を計算する共有鍵計算部と、
をさらに備える
ことを特徴とする鍵共有システム。
【請求項２】
請求項１に記載の鍵共有システムにおいて、
（ｅ）前記第１の鍵共有装置は、
伝送すべきメッセージを、前記計算された共有鍵Zにより暗号化して暗号化メッセージを得る暗号化部と、
前記暗号化メッセージを前記第２の鍵共有装置に送付する暗号化メッセージ送信部と、
をさらに備え、
（ｆ）前記第２の鍵共有装置は、
前記第１の鍵共有装置から送信された暗号化メッセージを受信する暗号化メッセージ受信部と、
前記受信された暗号化メッセージを、前記計算された共有鍵Z'により復号化して、伝送すべきメッセージを得る復号化部と、
をさらに備える
ことを特徴とする鍵共有システム。
【請求項３】
整数n (n≧2)に対するガロア有限体GF(n)に属する2以上n未満の公開鍵X∈GF(n)と、整数a (a≧2)に対して
S(a,cosθ)=cos(aθ)
により定義されるチェビチェフ多項式S(・,・)に対してGF(n)上で
T(a,x) ≡ S(a,x) mod n
により定義される多項式T(・,・)を用いて、N (N≧2)個の鍵共有装置M0，M1，…，MN-1において鍵を共有する鍵共有システムであって、
前記鍵共有装置Mi (0≦i≦N-1)は、
2以上n未満の整数piを取得する整数取得部と、
前記取得された整数piから、
Yi=T(pi,X)
により送付鍵Yiを計算する初期送付鍵計算部と、
前記計算された送付鍵Yiと、当該送付鍵Yiは当該鍵共有装置Miのみが多項式を適用した旨を示す多項式適用情報と、を、前記複数の鍵共有装置のうち他の鍵共有装置に、送付する初期送付鍵送付部と、
前記複数の鍵共有装置のうち、いずれか他の鍵共有装置から、送付鍵Wi∈GF(n)と、当該送付鍵Wi∈GF(n)の多項式適用情報と、を受け付ける送付鍵受付部と、
前記受け付けられた多項式適用情報が、前記複数の鍵共有装置のうち、当該鍵共有装置Mi以外のすべての鍵共有装置が多項式を適用した旨を示す場合、前記取得された整数piと、前記受け付けられた送付鍵Wiと、から
Zi=T(pi,Wi)
により共有鍵Ziを計算する共有鍵計算部と、
そうでない場合、前記取得された整数piと、前記受け付けられた送付鍵Wiと、から
Vi=T(pi,Wi)
により送付鍵Viを計算する中途送付鍵計算部と、
前記計算された送付鍵Viと、前記受け付けられた多項式適用情報に当該鍵共有装置Miが多項式を適用した旨を追加した多項式適用情報と、を、前記複数の鍵共有装置のうちいずれか他の鍵共有装置に送付する中途送付鍵送付部と、
を備える
ことを特徴とする鍵共有システム。
【請求項４】
前記鍵共有装置Miの初期送付鍵送付部と、中途送付鍵送付部と、は、送付鍵と、多項式適用情報と、を鍵共有装置M(i+1) mod Nに送付し、
前記鍵共有装置Miの送付鍵受付部は、送付鍵と、多項式適用情報と、を、鍵共有装置M(i-1) mod Nから受け付ける
ことを特徴とする請求項３に記載の鍵共有システム。
【請求項５】
請求項３または４に記載の鍵共有システムにおいて、前記複数の鍵共有装置のうち、鍵共有装置Ms (0≦s≦N-1)と、鍵共有装置Mt (0≦t≦N-1，t≠s)と、において、
（ｅ）前記鍵共有装置Msは、
伝送すべきメッセージを、前記計算された共有鍵Zsにより暗号化して暗号化メッセージを得る暗号化部と、
前記暗号化された暗号化メッセージを前記鍵共有装置Mtに送信する暗号化メッセージ送信部と、
をさらに備え、
（ｆ）前記鍵共有装置Mtは、
前記鍵共有装置Msから送信されたメッセージを受信する暗号化メッセージ受信部と、
前記受信された暗号化メッセージを、前記計算された共有鍵Ztにより復号化して、伝送すべきメッセージを得る復号化部と、
をさらに備える
ことを特徴とする鍵共有システム。
【請求項６】
前記整数nは、素数cと2以上の整数mに対して
n=cm
と定義される
ことを特徴とする請求項１から５のいずれか１項に記載の鍵共有システム。
【請求項７】
請求項１または２に記載の鍵共有システムの第１の鍵共有装置。
【請求項８】
請求項１または２に記載の鍵共有システムの第２の鍵共有装置。
【請求項９】
請求項３から５のいずれか１項に記載の鍵共有システムの鍵共有装置Mi (0≦i≦N-1)。
【請求項１０】
整数n (n≧2)に対するガロア有限体GF(n)に属する2以上n未満の公開鍵X∈GF(n)と、整数a (a≧2)に対して
S(a,cosθ)=cos(aθ)
により定義されるチェビチェフ多項式S(・,・)に対してGF(n)上で
T(a,x) ≡ S(a,x) mod n
により定義される多項式T(・,・)を用いる鍵共有方法であって、
2以上n未満の整数pを取得する整数取得工程と、
前記取得された整数pから
Y=T(p,X)
により送付鍵Y∈GF(n)を計算する送付鍵計算工程と、
前記計算された送付鍵Yを他の鍵共有装置に送付する送付工程と、
前記他の鍵共有装置から送付される送付鍵Wを受け付ける送付鍵受付工程と、
前記受け付けられた送付鍵Wから
Z=T(p,W)
により共有鍵Z∈GF(n)を計算する共有鍵計算工程と、
を備えることを特徴とする鍵共有方法。
【請求項１１】
整数n (n≧2)に対するガロア有限体GF(n)に属する2以上n未満の公開鍵X∈GF(n)と、整数a (a≧2)に対して
S(a,cosθ)=cos(aθ)
により定義されるチェビチェフ多項式S(・,・)に対してGF(n)上で
T(a,x) ≡ S(a,x) mod n
により定義される多項式T(・,・)を用いる鍵共有方法であって、
2以上n未満の整数qを取得する整数取得工程と、
前記取得された整数qから
W=T(q,X)
により送付鍵W∈GF(n)を計算する送付鍵計算工程と、
前記計算された送付鍵Wを他の鍵共有装置に送付する送付鍵送付工程と、
前記他の鍵共有装置から送付される送付鍵Yを受け付ける送付鍵受付工程と、
前記受け付けられた送付鍵Yから
Z'=T(q,Y)
により共有鍵Z'∈GF(n)を計算する共有鍵計算工程と、
を備えることを特徴とする鍵共有方法。
【請求項１２】
伝送すべきメッセージを、前記計算された共有鍵Zにより暗号化して暗号化メッセージを得る暗号化工程と、
前記暗号化メッセージを前記他の鍵共有装置に送付する暗号化メッセージ送信工程と、
をさらに備えることを特徴とする請求項１０または１１に記載の鍵共有方法。
【請求項１３】
前記他の鍵共有装置から送信された暗号化メッセージを受信する暗号化メッセージ受信工程と、
前記受信された暗号化メッセージを、前記計算された共有鍵Z'により復号化して、伝送すべきメッセージを得る復号化工程と、
をさらに備えることを特徴とする請求項１０または１１に記載の鍵共有方法。
【請求項１４】
整数n (n≧2)に対するガロア有限体GF(n)に属する2以上n未満の公開鍵X∈GF(n)と、整数a (a≧2)に対して
S(a,cosθ)=cos(aθ)
により定義されるチェビチェフ多項式S(・,・)に対してGF(n)上で
T(a,x) ≡ S(a,x) mod n
により定義される多項式T(・,・)を用いて、N (N≧2)個の鍵共有装置M0，M1，…，MN-1において鍵を共有する際に、前記鍵共有装置Mi (0≦i≦N-1)において使用される鍵共有方法であって、
2以上n未満の整数piを取得する整数取得工程と、
前記取得された整数piから、
Yi=T(pi,X)
により送付鍵Yiを計算する初期送付鍵計算工程と、
前記計算された送付鍵Yiと、当該送付鍵Yiは当該鍵共有装置Miのみが多項式を適用した旨を示す多項式適用情報と、を、前記複数の鍵共有装置のうち他の鍵共有装置に、送付する初期送付鍵送付工程と、
前記複数の鍵共有装置のうち、いずれか他の鍵共有装置から、送付鍵Wi∈GF(n)と、当該送付鍵Wi∈GF(n)の多項式適用情報と、を受け付ける送付鍵受付工程と、
前記受け付けられた多項式適用情報が、前記複数の鍵共有装置のうち、当該鍵共有装置Mi以外のすべての鍵共有装置が多項式を適用した旨を示す場合、前記取得された整数piと、前記受け付けられた送付鍵Wiと、から
Zi=T(pi,Wi)
により共有鍵Ziを計算する共有鍵計算工程と、
そうでない場合、前記取得された整数piと、前記受け付けられた送付鍵Wiと、から
Vi=T(pi,Wi)
により送付鍵Viを計算する中途送付鍵計算工程と、
前記計算された送付鍵Viと、前記受け付けられた多項式適用情報に当該鍵共有装置Miが多項式を適用した旨を追加した多項式適用情報と、を、前記複数の鍵共有装置のうちいずれか他の鍵共有装置に送付する中途送付鍵送付工程と、
を備える
ことを特徴とする鍵共有方法。
【請求項１５】
前記初期送付鍵送付工程と、前記中途送付鍵送付工程と、では、送付鍵と、多項式適用情報と、を鍵共有装置M(i+1) mod Nに送付し、
前記送付鍵受付工程では、送付鍵と、多項式適用情報と、を、鍵共有装置M(i-1) mod Nから受け付ける
ことを特徴とする請求項１４に記載の鍵共有方法。
【請求項１６】
請求項１４または１５に記載の鍵共有方法であって、前記複数の鍵共有装置のうち、鍵共有装置Ms (0≦s≦N-1)から鍵共有装置Mt (0≦t≦N-1，t≠s)へ暗号化メッセージを送る際に、前記鍵共有装置Msにて使用される鍵共有方法であって、
伝送すべきメッセージを、前記計算された共有鍵Zsにより暗号化して暗号化メッセージを得る暗号化工程と、
前記暗号化された暗号化メッセージを前記鍵共有装置Mtに送信する暗号化メッセージ送信工程と、
をさらに備えることを特徴とする鍵共有方法。
【請求項１７】
請求項１４または１５に記載の鍵共有方法であって、前記複数の鍵共有装置のうち、鍵共有装置Ms (0≦s≦N-1)から鍵共有装置Mt (0≦t≦N-1，t≠s)へ暗号化メッセージを送る際に、前記鍵共有装置Mtにて使用される鍵共有方法であって、
前記鍵共有装置Msから送信されたメッセージを受信する暗号化メッセージ受信工程と、
前記受信された暗号化メッセージを、前記計算された共有鍵Ztにより復号化して、伝送すべきメッセージを得る復号化工程と、
をさらに備える
ことを特徴とする鍵共有方法。
【請求項１８】
前記整数nは、素数cと2以上の整数mに対して
n=cm
と定義される
ことを特徴とする請求項１０から１７のいずれか１項に記載の鍵共有方法。
【請求項１９】
コンピュータを、
請求項１または２に記載の鍵共有システムの第１の鍵共有装置、
請求項１または２に記載の鍵共有システムの第２の鍵共有装置、
請求項３から５のいずれか１項に記載の鍵共有システムの鍵共有装置Mi (0≦i≦N-1)、
のいずれか少なくとも１つとして機能させることを特徴とするプログラム。
【請求項２０】
コンピュータに、
請求項１０から１８のいずれか１項に記載の鍵共有方法
を実行させることを特徴とするプログラム。
【請求項２１】
請求項１９または２０に記載のプログラムを記録したことを特徴とするコンピュータ読取可能な情報記録媒体（コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリを含む。）。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鍵共有システム、公開鍵暗号システム、署名システム、鍵共有装置、暗号化装置、復号化装置、署名装置、認証装置、鍵共有方法、暗号化方法、復号化方法、署名方法、認証方法、コンピュータをこれら装置として機能させ、もしくは、コンピュータにこれら方法を実行させるプログラム、ならびに、当該プログラムを記録したコンピュータ読取可能な情報記録媒体に関する。
【０００２】
【従来の技術】
従来から、公開鍵と秘密鍵を用いる鍵暗号システムが利用されている。このような公開鍵暗号システムは、通信セキュリティの必要性が高まっている今日、ますます注目を浴びる分野となっている。また、公開鍵暗号システムを用いて、送信されるメッセージに署名を付ける署名システムも普及しつつある。
【０００３】
このほか、公開鍵による暗号化や秘密鍵による復号化自体の計算量が大きいために、メッセージを共有鍵で暗号化し、この共有鍵を公開鍵で暗号化して、両者を伝送し、受け取った側では暗号化された共有鍵を秘密鍵で復号し、復号された共有鍵を用いてメッセージを復号する手法も広く使われている。
【０００４】
【発明が解決しようとする課題】
今日のセキュリティ意識の高まりにともない、鍵共有システム、公開鍵暗号システム、署名システムにおいては、暗号化や復号化に要する計算量が少なく、かつ、セキュリティが高いシステムがますます求められるようになっている。
【０００５】
本発明は、以上の課題を解決するためになされたもので、鍵共有システム、公開鍵暗号システム、鍵共有装置、暗号化装置、復号化装置、署名装置、認証装置、鍵共有方法、暗号化方法、復号化方法、署名方法、認証方法、コンピュータをこれら装置として機能させ、もしくは、コンピュータにこれら方法を実行させるプログラム、ならびに、当該プログラムを記録したコンピュータ読取可能な情報記録媒体を提供することを目的とする。
【０００６】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００７】
本発明の観点に係る鍵共有システムは、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いて、第１および第２の鍵共有装置において鍵を共有する鍵共有システムであって、以下のように構成する。
【０００８】
ここで、第１の鍵共有装置は、整数取得部と、送付鍵計算部と、送付鍵送付部と、送付鍵受付部と、共有鍵計算部と、を備える。
【０００９】
一方、第２の鍵共有装置は、整数取得部と、送付鍵計算部と、送付鍵送付部と、送付鍵受付部と、共有鍵計算部と、を備える。
【００１０】
さらに、第１の鍵共有装置において、整数取得部は、２以上ｎ未満の整数ｐを取得し、送付鍵計算部は、取得された整数ｐから
Ｙ＝Ｔ（ｐ，Ｘ）
により送付鍵Ｙ∈ＧＦ（ｎ）を計算し、送付鍵送付部は、計算された送付鍵Ｙを第２の鍵共有装置に送付する。
【００１１】
そして、第２の鍵共有装置において、整数取得部は、２以上ｎ未満の整数ｑを取得し、送付鍵計算部は、取得された整数ｑから
Ｗ＝Ｔ（ｑ，Ｘ）
により送付鍵Ｗ∈ＧＦ（ｎ）を計算し、送付鍵送付部は、計算された送付鍵Ｗを第１の鍵共有装置に送付する。
【００１２】
一方、第１の鍵共有装置において、送付鍵受付部は、第２の鍵共有装置から送付される送付鍵Ｗを受け付け、共有鍵計算部は、受け付けられた送付鍵Ｗから
Ｚ＝Ｔ（ｐ，Ｗ）
により共有鍵Ｚ∈ＧＦ（ｎ）を計算する。
【００１３】
さらに、第２の鍵共有装置において、送付鍵受付部は、第１の鍵共有装置から送付される送付鍵Ｙを受け付け、共有鍵計算部は、受け付けられた送付鍵Ｙから
Ｚ’＝Ｔ（ｑ，Ｙ）
により共有鍵Ｚ’∈ＧＦ（ｎ）を計算する。
【００１４】
また、本発明の鍵共有システムは、以下のように構成することができる。
【００１５】
すなわち、第１の鍵共有装置は、暗号化部と、暗号化メッセージ送信部と、をさらに備える。
【００１６】
一方、第２の鍵共有装置は、暗号化メッセージ受信部と、復号化部と、をさらに備える。
【００１７】
そして、第１の鍵共有装置において、暗号化部は、伝送すべきメッセージを、計算された共有鍵Ｚにより暗号化して暗号化メッセージを得て、暗号化メッセージ送信部は、暗号化メッセージを第２の鍵共有装置に送付する。
【００１８】
さらに、  第２の鍵共有装置において、暗号化メッセージ受信部は、第１の鍵共有装置から送信された暗号化メッセージを受信し、復号化部は、受信された暗号化メッセージを、計算された共有鍵Ｚ’により復号化して、伝送すべきメッセージを得る。
【００１９】
本発明の他の観点に係る鍵共有システムは、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いて、Ｎ  （Ｎ≧２）個の鍵共有装置Ｍ０，Ｍ１，…，ＭＮ−１において鍵を共有し、以下のように構成する。
【００２０】
すなわち、鍵共有装置Ｍｉ  （０≦ｉ≦Ｎ−１）は、整数取得部と、初期送付鍵計算部と、初期送付鍵送付部と、送付鍵受付部と、共有鍵計算部と、中途送付鍵計算部と、中途送付鍵送付部と、を備える。
【００２１】
ここで、整数取得部は、２以上ｎ未満の整数ｐｉを取得する。
【００２２】
一方、初期送付鍵計算部は、取得された整数ｐｉから、
Ｙｉ＝Ｔ（ｐｉ，Ｘ）
により送付鍵Ｙｉを計算する。
【００２３】
さらに、初期送付鍵送付部は、計算された送付鍵Ｙｉと、当該送付鍵Ｙｉは当該鍵共有装置Ｍｉのみが多項式を適用した旨を示す多項式適用情報と、を、複数の鍵共有装置のうち他の鍵共有装置に、送付する。
【００２４】
そして、送付鍵受付部は、複数の鍵共有装置のうち、いずれか他の鍵共有装置から、送付鍵Ｗｉ∈ＧＦ（ｎ）と、当該送付鍵Ｗｉ∈ＧＦ（ｎ）の多項式適用情報と、を受け付ける。
【００２５】
一方、共有鍵計算部は、受け付けられた多項式適用情報が、複数の鍵共有装置のうち、当該鍵共有装置Ｍｉ以外のすべての鍵共有装置が多項式を適用した旨を示す場合、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｚｉ＝Ｔ（ｐｉ，Ｗｉ）
により共有鍵Ｚｉを計算する。
【００２６】
さらに、中途送付鍵計算部は、そうでない場合、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｖｉ＝Ｔ（ｐｉ，Ｗｉ）
により送付鍵Ｖｉを計算する。
【００２７】
そして、中途送付鍵送付部は、計算された送付鍵Ｖｉと、受け付けられた多項式適用情報に当該鍵共有装置Ｍｉが多項式を適用した旨を追加した多項式適用情報と、を、複数の鍵共有装置のうちいずれか他の鍵共有装置に送付する。
【００２８】
また、本発明の鍵共有システムは、以下のように構成することができる。
【００２９】
すなわち、鍵共有装置Ｍｉの初期送付鍵送付部と、中途送付鍵送付部と、は、送付鍵と、多項式適用情報と、を鍵共有装置Ｍ（ｉ＋１）  ｍｏｄ  Ｎに送付する。
【００３０】
一方、鍵共有装置Ｍｉの送付鍵受付部は、送付鍵と、多項式適用情報と、を、鍵共有装置Ｍ（ｉ−１）  ｍｏｄ  Ｎから受け付ける。
【００３１】
また、本発明の鍵共有システムは、複数の鍵共有装置のうち、鍵共有装置Ｍｓ  （０≦ｓ≦Ｎ−１）と、鍵共有装置Ｍｔ  （０≦ｔ≦Ｎ−１，ｔ≠ｓ）と、において、以下のように構成することができる。
【００３２】
すなわち、鍵共有装置Ｍｓは、暗号化部と、暗号化メッセージ送信部と、をさらに備える。
【００３３】
一方、鍵共有装置Ｍｔは、暗号化メッセージ受信部と、復号化部と、をさらに備える。
【００３４】
ここで、鍵共有装置Ｍｓにおいて、暗号化部は、伝送すべきメッセージを、計算された共有鍵Ｚｓにより暗号化して暗号化メッセージを得て、暗号化メッセージ送信部は、暗号化された暗号化メッセージを鍵共有装置Ｍｔに送信する。
【００３５】
一方、鍵共有装置Ｍｔにおいて、暗号化メッセージ受信部は、鍵共有装置Ｍｓから送信されたメッセージを受信し、復号化部は、受信された暗号化メッセージを、計算された共有鍵Ｚｔにより復号化して、伝送すべきメッセージを得る。
【００３６】
また、本発明の鍵共有システムにおいて、整数ｎは、素数ｃと２以上の整数ｍに対して
ｎ＝ｃｍ
と定義されるように構成することができる。
【００３７】
本発明の他の観点に係る公開鍵暗号システムは、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、を用いて、暗号化装置から復号化装置へメッセージを送信する公開鍵暗号システムであって、以下のように構成する。
【００３８】
すなわち、復号化装置は、秘密鍵取得部と、自然数取得部と、公開鍵計算部と、公開鍵公開部と、暗号化メッセージ受信部と、復号化部と、を備える。
【００３９】
一方、暗号化装置は、公開鍵受付部と、暗号化部と、暗号化メッセージ送信部と、を備える。
【００４０】
ここで、復号化装置において、秘密鍵取得部は、２以上の整数である秘密鍵ｐを取得し、自然数取得部は、秘密鍵ｐに対して、ｐ−１と素な２以上の自然数ｋを取得し、公開鍵計算部は、秘密鍵ｐと、公開鍵Ｘと、から
Ｙ＝Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算し、公開鍵公開部は、自然数ｋと、公開鍵Ｙと、を暗号化装置に公開する。
【００４１】
一方、暗号化装置において、公開鍵受付部は、復号化装置により公開された自然数ｋと、公開鍵Ｙと、を受け付け、暗号化部は、メッセージｍ∈ＧＦ（ｎ）から、暗号化メッセージ（ａ，ｂ）を、
ａ  ＝  Ｔ（ｋ，Ｘ）
ｂ  ＝  ｍＴ（ｋ，Ｙ）  ｍｏｄ  ｎ
により計算し、暗号化メッセージ送信部は、暗号化メッセージ（ａ，ｂ）を復号化装置へ送信する。
【００４２】
さらに、復号化装置において、暗号化メッセージ受信部は、暗号化装置から送信された暗号化メッセージ（ａ，ｂ）を受信し、復号化部は、秘密鍵ｐと、受信された暗号化メッセージ（ａ，ｂ）と、から、
ｍ’  ＝  ｂ／Ｔ（ｐ，ａ）  ｍｏｄ  ｎ
により、メッセージｍ’∈ＧＦ（ｎ）を計算する。
【００４３】
また、本発明の公開鍵暗号システムは、以下のように構成することができる。
【００４４】
すなわち、暗号化装置は、メッセージ受付部と、ハッシュ計算部と、をさらに備える。
【００４５】
一方、復号化装置は、メッセージ取得部と、をさらに備える。
【００４６】
ここで、暗号化装置において、メッセージ受付部は、伝送すべきメッセージＭを受け付け、ハッシュ計算部は、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【００４７】
一方、復号化装置において、メッセージ取得部は、得られたメッセージｍ’と、ハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ’  ＝  Ｈ−１（ｍ’）
により、伝送すべきメッセージＭ’を得る。
【００４８】
本発明の他の観点に係る署名システムは、
整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）と、
整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、
任意の正整数ｂと、任意の整数Ｕ∈ＧＦ（ｎ）と、に対して
Ｔ（ｂ＋ｎ＊，Ｕ）  ＝  Ｔ（ｂ，Ｕ）
を満たす最小の正整数ｎ＊と、
を用いて、署名装置から認証装置へメッセージを送信し、以下のように構成する。
【００４９】
すなわち、署名装置は、整数選択部と、公開鍵計算部と、公開鍵公開部と、署名部と、署名付メッセージ送信部と、を備える。
【００５０】
一方、認証装置は、公開鍵受付部と、署名付メッセージ受信部と、パラメータ計算部と、認証部と、を備える。
【００５１】
ここで、署名装置において、整数選択部は、整数ｐ  （２≦ｐ＜ｍｉｎ（ｎ＊，ｎ−１））と、整数ｋ  （２≦ｋ＜ｍｉｎ（ｎ＊，ｎ−１），ｋ≠ｐ）と、を選択し、公開鍵計算部は、整数ｐから、
Ｙ  ＝  Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算し、公開鍵公開部は、公開鍵Ｙを、認証装置へ公開し、署名部は、メッセージｍ∈ＧＦ（ｎ）から、署名付メッセージ（ｒ，ｓ，ｍ）を、
ｒ  ＝  Ｔ（ｋ，Ｘ）
ｓ  ＝  （ｍ＋ｐｒ）／ｋ  ｍｏｄ  ｎ
により計算し、署名付メッセージ送信部は、署名付メッセージ（ｒ，ｓ，ｍ）を認証装置へ送信する。
【００５２】
一方、認証装置において、公開鍵受付部は、署名装置により公開された公開鍵Ｙを受け付け、署名付メッセージ受信部は、署名装置から送信された署名付メッセージ（ｒ，ｓ，ｍ）を受信し、パラメータ計算部は、受け付けられた公開鍵Ｙと、受信された署名付メッセージ（ｒ，ｓ，ｍ）と、から、パラメータ
ｗ  ＝  １／ｓ  ｍｏｄ  ｎ＊
ｕ１  ＝  ｍｗ  ｍｏｄ  ｎ＊
ｕ２  ＝  ｒｗ  ｍｏｄ  ｎ＊
ｖ  ＝  Ｔ（ｕ１＋ｕ２，Ｙ）
を計算し、認証部は、パラメータｖと、署名付メッセージ（ｒ，ｓ，ｍ）と、について、ｒ  ＝  ｖである場合、署名付メッセージ（ｒ，ｓ，ｍ）を認証する。
【００５３】
また、本発明の署名システムは、署名装置において、署名部により計算されたｓが０に等しい場合、整数選択部は整数ｋとして他の整数を選択し直すように構成することができる。
【００５４】
また、本発明の署名システムは、以下のように構成することができる。
【００５５】
すなわち、署名装置は、メッセージ受付部と、ハッシュ計算部と、をさらに備える。
【００５６】
一方、認証装置は、メッセージ取得部と、をさらに備える。
【００５７】
ここで、署名装置において、メッセージ受付部は、伝送すべきメッセージＭを受け付け、ハッシュ計算部は、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【００５８】
一方、認証装置において、メッセージ取得部は、署名付メッセージ（ｒ，ｓ，ｍ）と、ハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ  ＝  Ｈ−１（ｍ）
により、伝送すべきメッセージＭを得る。
【００５９】
本発明の他の観点に係る鍵共有装置は、上記の鍵共有システムの第１の鍵共有装置、第２の鍵共有装置、もしくは、鍵共有装置Ｍｉ  （０≦ｉ≦Ｎ−１）である。
【００６０】
本発明の他の観点に係る暗号化装置は、上記の公開鍵暗号システムの暗号化装置である。
【００６１】
本発明の他の観点に係る復号化装置は、上記の公開鍵暗号システムの復号化装置である。
【００６２】
本発明の他の観点に係る署名装置は、上記の署名システムの署名装置である。
【００６３】
本発明の他の観点に係る認証装置は、上記の署名システムの認証装置である。
【００６４】
本発明の他の観点に係る鍵共有方法は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いる鍵共有方法であって、整数取得工程と、送付鍵計算工程と、送付工程と、送付鍵受付工程と、共有鍵計算工程と、を備え、以下のように構成する。
【００６５】
すなわち、整数取得工程では、２以上ｎ未満の整数ｐを取得する。
【００６６】
一方、送付鍵計算工程では、取得された整数ｐから
Ｙ＝Ｔ（ｐ，Ｘ）
により送付鍵Ｙ∈ＧＦ（ｎ）を計算する。
【００６７】
さらに、送付工程では、計算された送付鍵Ｙを他の鍵共有装置に送付する。
【００６８】
そして、送付鍵受付工程では、他の鍵共有装置から送付される送付鍵Ｗを受け付ける。
【００６９】
一方、共有鍵計算工程では、受け付けられた送付鍵Ｗから
Ｚ＝Ｔ（ｐ，Ｗ）
により共有鍵Ｚ∈ＧＦ（ｎ）を計算する。
【００７０】
本発明の他の観点に係る鍵共有方法は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いる鍵共有方法であって、整数取得工程と、送付鍵計算工程と、送付鍵送付工程と、送付鍵受付工程と、共有鍵計算工程と、を備え、以下のように構成する。
【００７１】
すなわち、整数取得工程では、２以上ｎ未満の整数ｑを取得する。
【００７２】
一方、送付鍵計算工程では、取得された整数ｑから
Ｗ＝Ｔ（ｑ，Ｘ）
により送付鍵Ｗ∈ＧＦ（ｎ）を計算する。
【００７３】
さらに、送付鍵送付工程では、計算された送付鍵Ｗを他の鍵共有装置に送付する。
【００７４】
そして、送付鍵受付工程では、他の鍵共有装置から送付される送付鍵Ｙを受け付ける。
【００７５】
一方、共有鍵計算工程では、受け付けられた送付鍵Ｙから
Ｚ’＝Ｔ（ｑ，Ｙ）
により共有鍵Ｚ’∈ＧＦ（ｎ）を計算する。
【００７６】
また、本発明の鍵共有方法は、暗号化工程と、暗号化メッセージ送信工程と、をさらに備え、以下のように構成することができる。
【００７７】
すなわち、暗号化工程では、伝送すべきメッセージを、計算された共有鍵Ｚにより暗号化して暗号化メッセージを得る。
【００７８】
一方、暗号化メッセージ送信工程では、暗号化メッセージを他の鍵共有装置に送付する。
【００７９】
また、本発明の鍵共有方法は、暗号化メッセージ受信工程と、復号化工程と、をさらに備え、以下のように構成することができる。
【００８０】
すなわち、暗号化メッセージ受信工程では、他の鍵共有装置から送信された暗号化メッセージを受信する。
【００８１】
一方、復号化工程では、受信された暗号化メッセージを、計算された共有鍵Ｚ’により復号化して、伝送すべきメッセージを得る。
【００８２】
本発明の他の観点に係る鍵共有方法は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いて、Ｎ  （Ｎ≧２）個の鍵共有装置Ｍ０，Ｍ１，…，ＭＮ−１において鍵を共有する際に、鍵共有装置Ｍｉ  （０≦ｉ≦Ｎ−１）において使用される鍵共有方法であって、整数取得工程と、初期送付鍵計算工程と、初期送付鍵送付工程と、送付鍵受付工程と、共有鍵計算工程と、中途送付鍵計算工程と、中途送付鍵送付工程と、を備え、以下のように構成する。
【００８３】
すなわち、整数取得工程では、２以上ｎ未満の整数ｐｉを取得する。
【００８４】
一方、初期送付鍵計算工程では、取得された整数ｐｉから、
Ｙｉ＝Ｔ（ｐｉ，Ｘ）
により送付鍵Ｙｉを計算する。
【００８５】
さらに、初期送付鍵送付工程では、計算された送付鍵Ｙｉと、当該送付鍵Ｙｉは当該鍵共有装置Ｍｉのみが多項式を適用した旨を示す多項式適用情報と、を、複数の鍵共有装置のうち他の鍵共有装置に、送付する。
【００８６】
そして、送付鍵受付工程では、複数の鍵共有装置のうち、いずれか他の鍵共有装置から、送付鍵Ｗｉ∈ＧＦ（ｎ）と、当該送付鍵Ｗｉ∈ＧＦ（ｎ）の多項式適用情報と、を受け付ける。
【００８７】
一方、共有鍵計算工程では、受け付けられた多項式適用情報が、複数の鍵共有装置のうち、当該鍵共有装置Ｍｉ以外のすべての鍵共有装置が多項式を適用した旨を示す場合、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｚｉ＝Ｔ（ｐｉ，Ｗｉ）
により共有鍵Ｚｉを計算する。
【００８８】
さらに、中途送付鍵計算工程では、そうでない場合、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｖｉ＝Ｔ（ｐｉ，Ｗｉ）
により送付鍵Ｖｉを計算する。
【００８９】
そして、中途送付鍵送付工程では、計算された送付鍵Ｖｉと、受け付けられた多項式適用情報に当該鍵共有装置Ｍｉが多項式を適用した旨を追加した多項式適用情報と、を、複数の鍵共有装置のうちいずれか他の鍵共有装置に送付する。
【００９０】
また、本発明の鍵共有方法は、以下のように構成することができる。
【００９１】
すなわち、初期送付鍵送付工程と、中途送付鍵送付工程と、では、送付鍵と、多項式適用情報と、を鍵共有装置Ｍ（ｉ＋１）  ｍｏｄ  Ｎに送付する。
【００９２】
一方、送付鍵受付工程では、送付鍵と、多項式適用情報と、を、鍵共有装置Ｍ（ｉ−１）  ｍｏｄ  Ｎから受け付ける。
【００９３】
また、本発明の鍵共有方法であって、複数の鍵共有装置のうち、鍵共有装置Ｍｓ  （０≦ｓ≦Ｎ−１）から鍵共有装置Ｍｔ  （０≦ｔ≦Ｎ−１，ｔ≠ｓ）へ暗号化メッセージを送る際に、鍵共有装置Ｍｓにて使用される鍵共有方法は、暗号化工程と、暗号化メッセージ送信工程と、をさらに備え、以下のように構成することができる。
【００９４】
すなわち、暗号化工程では、伝送すべきメッセージを、計算された共有鍵Ｚｓにより暗号化して暗号化メッセージを得る。
【００９５】
一方、暗号化メッセージ送信工程では、暗号化された暗号化メッセージを鍵共有装置Ｍｔに送信する。
【００９６】
また、本発明の鍵共有方法であって、複数の鍵共有装置のうち、鍵共有装置Ｍｓ  （０≦ｓ≦Ｎ−１）から鍵共有装置Ｍｔ  （０≦ｔ≦Ｎ−１，ｔ≠ｓ）へ暗号化メッセージを送る際に、鍵共有装置Ｍｔにて使用される鍵共有方法は、暗号化メッセージ受信工程と、復号化工程と、をさらに備え、以下のように構成することができる。
【００９７】
すなわち、暗号化メッセージ受信工程では、鍵共有装置Ｍｓから送信されたメッセージを受信する。
【００９８】
一方、復号化工程では、受信された暗号化メッセージを、計算された共有鍵Ｚｔにより復号化して、伝送すべきメッセージを得る。
【００９９】
また、本発明の鍵共有方法は、整数ｎは、素数ｃと２以上の整数ｍに対して
ｎ＝ｃｍ
と定義されるように構成することができる。
【０１００】
本発明の他の観点に係る暗号化方法は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、を用いる暗号化方法であって、公開鍵受付工程と、暗号化工程と、暗号化メッセージ送信工程と、を備え、以下のように構成する。
【０１０１】
すなわち、公開鍵受付工程では、復号化装置により公開された自然数ｋと、公開鍵Ｙと、を受け付ける。
【０１０２】
一方、暗号化工程では、メッセージｍ∈ＧＦ（ｎ）から、暗号化メッセージ（ａ，ｂ）を、
ａ  ＝  Ｔ（ｋ，Ｘ）
ｂ  ＝  ｍＴ（ｋ，Ｙ）  ｍｏｄ  ｎ
により計算する。
【０１０３】
さらに、暗号化メッセージ送信工程では、暗号化メッセージ（ａ，ｂ）を復号化装置へ送信する。
【０１０４】
また、本発明の暗号化方法は、メッセージ受付工程と、ハッシュ計算工程と、をさらに備え、以下のように構成することができる。
【０１０５】
すなわち、メッセージ受付工程では、伝送すべきメッセージＭを受け付ける。
【０１０６】
一方、ハッシュ計算工程では、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【０１０７】
本発明の他の観点に係る暗号化方法は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、を用いる復号化方法であって、秘密鍵取得工程と、自然数取得工程と、公開鍵計算工程と、公開鍵公開工程と、暗号化メッセージ受信工程と、復号化工程と、を備え、以下のように構成する。
【０１０８】
すなわち、秘密鍵取得工程では、２以上の整数である秘密鍵ｐを取得する。
【０１０９】
一方、自然数取得工程では、秘密鍵ｐに対して、ｐ−１と素な２以上の自然数ｋを取得する。
【０１１０】
さらに、公開鍵計算工程では、秘密鍵ｐと、公開鍵Ｘと、から
Ｙ＝Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算する。
【０１１１】
そして、公開鍵公開工程では、自然数ｋと、公開鍵Ｙと、を暗号化装置に公開する。
【０１１２】
一方、暗号化メッセージ受信工程では、暗号化装置から送信された暗号化メッセージ（ａ，ｂ）を受信する。
【０１１３】
さらに、復号化工程では、秘密鍵ｐと、受信された暗号化メッセージ（ａ，ｂ）と、から、
ｍ’  ＝  ｂ／Ｔ（ｐ，ａ）  ｍｏｄ  ｎ
により、メッセージｍ’∈ＧＦ（ｎ）を計算する。
【０１１４】
また、本発明の復号化方法は、メッセージ取得工程をさらに備え、以下のように構成することができる。
【０１１５】
すなわち、メッセージ取得工程では、得られたメッセージｍ’と、暗号化装置が用いたハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ’  ＝  Ｈ−１（ｍ’）
により、伝送すべきメッセージＭ’を得る。
【０１１６】
本発明の他の観点に係る署名方法は、
整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、
任意の正整数ｂと、
任意の整数Ｕ∈ＧＦ（ｎ）と、に対して
Ｔ（ｂ＋ｎ＊，Ｕ）  ＝  Ｔ（ｂ，Ｕ）
を満たす最小の正整数ｎ＊と、
を用いる署名方法であって、整数選択工程と、公開鍵計算工程と、公開鍵公開工程と、署名工程と、署名付メッセージ送信工程と、を備え、以下のように構成する。
【０１１７】
すなわち、整数選択工程では、整数ｐ  （２≦ｐ＜ｍｉｎ（ｎ＊，ｎ−１））と、整数ｋ  （２≦ｋ＜ｍｉｎ（ｎ＊，ｎ−１），ｋ≠ｐ）と、を選択する。
【０１１８】
一方、公開鍵計算工程では、整数ｐから、
Ｙ  ＝  Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算する。
【０１１９】
さらに、公開鍵公開工程では、公開鍵Ｙを、認証装置へ公開する。
【０１２０】
そして、署名工程では、メッセージｍ∈ＧＦ（ｎ）から、署名付メッセージ（ｒ，ｓ，ｍ）を、
ｒ  ＝  Ｔ（ｋ，Ｘ）
ｓ  ＝  （ｍ＋ｐｒ）／ｋ  ｍｏｄ  ｎ
により計算する。
【０１２１】
一方、署名付メッセージ送信工程では、署名付メッセージ（ｒ，ｓ，ｍ）を認証装置へ送信する。
【０１２２】
また、本発明の署名方法は、署名工程にて計算されたｓが０に等しい場合、整数選択工程では整数ｋとして他の整数を選択し直すように構成することができる。
【０１２３】
また、本発明の署名方法は、メッセージ受付工程と、ハッシュ計算工程と、をさらに備え、以下のように構成することができる。
【０１２４】
すなわち、メッセージ受付工程では、伝送すべきメッセージＭを受け付ける。
【０１２５】
一方、ハッシュ計算工程では、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【０１２６】
本発明の他の観点に係る認証方法は、
整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）と、
任意の正整数ｂと、任意の整数Ｕ∈ＧＦ（ｎ）と、に対して
Ｔ（ｂ＋ｎ＊，Ｕ）  ＝  Ｔ（ｂ，Ｕ）
を満たす最小の正整数ｎ＊と、
を用いる認証方法であって、公開鍵受付工程と、署名付メッセージ受信工程と、パラメータ計算工程と、認証工程と、を備え、以下のように構成する。
【０１２７】
すなわち、公開鍵受付工程では、署名装置により公開された公開鍵Ｙを受け付ける。
【０１２８】
一方、署名付メッセージ受信工程では、署名装置から送信された署名付メッセージ（ｒ，ｓ，ｍ）を受信する。
【０１２９】
さらに、パラメータ計算工程では、受け付けられた公開鍵Ｙと、受信された署名付メッセージ（ｒ，ｓ，ｍ）と、から、パラメータ
ｗ  ＝  １／ｓ  ｍｏｄ  ｎ＊
ｕ１  ＝  ｍｗ  ｍｏｄ  ｎ＊
ｕ２  ＝  ｒｗ  ｍｏｄ  ｎ＊
ｖ  ＝  Ｔ（ｕ１＋ｕ２，Ｙ）
を計算する。
【０１３０】
そして、認証工程では、パラメータｖと、署名付メッセージ（ｒ，ｓ，ｍ）と、について、ｒ  ＝  ｖである場合、署名付メッセージ（ｒ，ｓ，ｍ）を認証する。
【０１３１】
また、本発明の認証方法は、メッセージ取得工程をさらに備え、以下のように構成することができる。
【０１３２】
すなわち、メッセージ取得工程では、署名付メッセージ（ｒ，ｓ，ｍ）と、署名装置が用いたハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ  ＝  Ｈ−１（ｍ）
により、伝送すべきメッセージＭを得る。
【０１３３】
本発明の他の観点に係るプログラムは、コンピュータを、上記の鍵共有装置、上記の暗号化装置、上記の復号化装置、上記の署名装置、もしくは上記の認証装置のいずれか少なくとも１つとして機能させ、または、コンピュータに、上記の鍵共有方法、上記の暗号化方法、上記の復号化方法、上記の署名方法、もしくは上記の認証方法のいずれか少なくとも１つを実行させるように構成する。
【０１３４】
本発明の他の観点に係るコンピュータ読取可能な情報記録媒体（コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリを含む。）は、上記プログラムを記録するように構成する。
【０１３５】
上記の情報記録媒体は、コンピュータとは独立して配布・販売することができる。また、上記のプログラムは、コンピュータとは独立して、インターネットなどのコンピュータ通信網を介して配布・販売することができる。
【０１３６】
【発明の実施の形態】
以下に本発明の一実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本願発明の範囲に含まれる。
【０１３７】
（第１の実施の形態）
図１は、本発明の第１の実施形態に係る鍵共有システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【０１３８】
鍵共有システム１０１では、第１の鍵共有装置１０２と、第２の鍵共有装置１０２と、が、後のメッセージの送受における暗号化に用いる鍵を共有する。
【０１３９】
各鍵共有装置１０２は、それぞれ、整数取得部１０３と、送付鍵計算部１０４と、送付鍵送付部１０５と、送付鍵受付部１０６と、共有鍵計算部１０７と、を備える。なお、これ以外の図示した要素については、後述する。
【０１４０】
鍵共有システム１０１は、整数ｎ  （ｎ≧２）に対するガロア有限体ＧＦ（ｎ）に属する２以上ｎ未満の公開鍵Ｘ∈ＧＦ（ｎ）と、整数ａ  （ａ≧２）に対して
Ｓ（ａ，ｃｏｓθ）＝ｃｏｓ（ａθ）
により定義されるチェビチェフ多項式Ｓ（・，・）に対してＧＦ（ｎ）上で
Ｔ（ａ，ｘ）  ≡  Ｓ（ａ，ｘ）  ｍｏｄ  ｎ
により定義される多項式Ｔ（・，・）を用いる。
【０１４１】
図２は、チェビシェフ多項式Ｓ（・，・）を関数として用いた場合の値とその計算値との対応関係を示すグラフである。チェビシェフ多項式は、具体的には、以下のような数式で表すことができる。
Ｓ（１，ｘ）  ＝  ｘ；
Ｓ（２，ｘ）  ＝  ２ｘ２−１；
Ｓ（３，ｘ）  ＝  ４ｘ３−３ｘ；
Ｓ（４，ｘ）  ＝  ８ｘ４−８ｘ２−１；…
【０１４２】
ここでは、このＳ（・，・）をＧＦ（ｎ）上で計算することとし、この計算結果をＴ（・，・）として扱っている。ｍｏｄを用いた計算は、計算の過程でオーバーフローやアンダーフローが生じても、それを無視することに相当するが、これはちょうど一般的なコンピュータにおいて四則演算を行う場合に該当する。
【０１４３】
このように、本実施形態では、一般的なコンピュータや、加算器・乗算器等を備えた専用の計算回路等により、必要な計算を実現することができる。
【０１４４】
図３は、第１の鍵共有装置において実施される鍵共有方法の処理の流れを示すフローチャートである。鍵共有装置１０２のそれぞれにおける処理は同様であるが、ここでは理論の背景を理解しやすくするため、それぞれの処理を順に説明する。
【０１４５】
前提として、両鍵共有装置１０２は、ＧＦ（ｎ）に属する公開鍵Ｘを共有している。この鍵Ｘは、他者に知られても構わない。
【０１４６】
ここで、理解を容易にするため、具体的な数値をあげて説明する。たとえば、ｎ  ＝  ２２００  ＝  １６０６９３８０４４２５８９９０２７５５４１９６２０９２３４１１６２６０２５２２２０２９９３７８２７９２８３５３０１３７６，Ｘ  ＝  １２３とする。
【０１４７】
まず、第１の鍵共有装置１０２において、整数取得部１０３は、２以上ｎ未満の整数ｐを取得する（ステップＳ３０１）。たとえば、ｐ  ＝  ２５１を選択したものとする。
【０１４８】
さらに、送付鍵計算部１０４は、取得された整数ｐから
Ｙ＝Ｔ（ｐ，Ｘ）
により送付鍵Ｙ∈ＧＦ（ｎ）を計算する（ステップＳ３０２）。上記の数値を用いると、Ｙ  ＝  １０５１９３７２６３７５８３７１９９００９７５８６３８４１４６０３７３８１０５９２４１１３７３３５３４３４３８７４８３７９となる。
【０１４９】
そして、送付鍵送付部１０５は、計算された送付鍵Ｙを第２の鍵共有装置１０２に送付する（ステップＳ３０３）。
【０１５０】
一方、第２の鍵共有装置１０２においても同様に、整数取得部１０３は、２以上ｎ未満の整数ｑを取得する（ステップＳ３０１と同様）。たとえば、ｑ  ＝  １２７とする。
【０１５１】
さらに、送付鍵計算部１０４は、取得された整数ｑから
Ｗ＝Ｔ（ｑ，Ｘ）
により送付鍵Ｗ∈ＧＦ（ｎ）を計算する（ステップＳ３０２と同様）。上記の数値を用いると、Ｗ  ＝  ３８９８０５７０４４３６０６６９００３５６２２１１０７０８２１９０６５２１２８４５２５８９９９９６２５９２６８０２５５５となる。
【０１５２】
そして、送付鍵送付部１０５は、計算された送付鍵Ｗを第１の鍵共有装置１０２に送付する（ステップＳ３０３と同様）。
【０１５３】
このようにして、鍵共有装置は、それぞれ、整数ｐ，ｑを取得して値Ｙ，Ｗを計算し、これを相手方に送信することになる。
【０１５４】
一方、第１の鍵共有装置１０２において、送付鍵受付部１０６は、第２の鍵共有装置１０２から送付される送付鍵Ｗを受け付ける（ステップＳ３０４）。
【０１５５】
さらに、共有鍵計算部１０７は、受け付けられた送付鍵Ｗから
Ｚ＝Ｔ（ｐ，Ｗ）
により共有鍵Ｚ∈ＧＦ（ｎ）を計算する（ステップＳ３０５）。上記の例では、Ｚ  ＝  １２０９２１９１９５２１０４１７８７３７７８６２１４２３７００１５８８４２１４２８４８２５１８４９２３０５１６１５６となる。
【０１５６】
一方、第２の鍵共有装置１０２において、送付鍵受付部１０６は、第１の鍵共有装置１０２から送付される送付鍵Ｙを受け付ける（ステップＳ３０４と同様）。
【０１５７】
共有鍵計算部１０７は、受け付けられた送付鍵Ｙから
Ｚ’＝Ｔ（ｑ，Ｙ）
により共有鍵Ｚ’∈ＧＦ（ｎ）を計算する（ステップＳ３０５と同様）。上記の例では、Ｚ’  ＝  １２０９２１９１９５２１０４１７８７３７７８６２１４２３７００１５８８４２１４２８４８２５１８４９２３０５１６１５６となる。すなわち、Ｚ  ＝  Ｚ’である。
【０１５８】
さてここで、チェビシェフ多項式には、以下のような性質がある。
Ｓ（ｐ，Ｓ（ｑ，ｘ））  ＝  Ｓ（ｑ，Ｓ（ｐ，ｘ））  ＝  Ｓ（ｐｑ，ｘ）
【０１５９】
したがって、これをＧＦ（ｎ）上に移行したＴ（・，・）についても、同様の性質が成立する。
Ｔ（ｐ，Ｔ（ｑ，ｘ））  ＝  Ｔ（ｑ，Ｔ（ｐ，ｘ））  ＝  Ｔ（ｐｑ，ｘ）
【０１６０】
さてここで、
Ｚ  ＝  Ｔ（ｐ，Ｗ）；  Ｙ  ＝  Ｔ（ｑ，Ｘ）；
Ｚ’  ＝  Ｔ（ｑ，Ｙ）；  Ｗ  ＝  Ｔ（ｑ，Ｘ）
が成立するから、
Ｚ  ＝  Ｔ（ｐ，Ｗ）  ＝  Ｔ（ｐ，Ｔ（ｑ，Ｘ））  ＝  Ｔ（ｐｑ，Ｘ）；
Ｚ’  ＝  Ｔ（ｑ，Ｙ）  ＝  Ｔ（ｑ，Ｔ（ｐ，Ｘ））  ＝  Ｔ（ｐｑ，Ｘ）
であり、したがって、
Ｚ  ＝  Ｚ’
が成立する。このようにして、２つの鍵共有装置１０２は、ＧＦ（ｎ）上の鍵Ｚ  ＝  Ｚ’を共有するのである。
【０１６１】
このようにして、鍵が共有できたら、続いて、この鍵を用いてメッセージを暗号化して送受することとなる。以下では、第１の鍵共有装置１０２から第２の鍵共有装置１０２へ暗号化メッセージを送信する場合を考える。
【０１６２】
図１に示すように、第１の鍵共有装置１０２は、暗号化部１１１と、暗号化メッセージ送信部１１２と、をさらに備える。
【０１６３】
一方、第２の鍵共有装置１０２は、暗号化メッセージ受信部１２１と、復号化部１２２と、をさらに備える。
【０１６４】
図４は、第１の鍵共有装置１０２にて実施される暗号化方法の処理の流れを示すフローチャートである。図５は、第２の鍵共有装置１０２にて実施される復号化方法の流れを示すフローチャートである。これらの処理は、いずれも、その前に上記鍵共有化方法が行われており、両鍵共有装置にて鍵が共有されていることを前提とする。
【０１６５】
まず、第１の鍵共有装置１０２において、暗号化部１１１は、伝送すべきメッセージを、計算された共有鍵Ｚにより暗号化して暗号化メッセージを得る（ステップＳ４０１）。
【０１６６】
ついで、暗号化メッセージ送信部１１２は、暗号化メッセージを第２の鍵共有装置１０２に送付する（ステップＳ４０２）。
【０１６７】
一方、第２の鍵共有装置１０２において、暗号化メッセージ受信部１２１は、第１の鍵共有装置１０２から送信された暗号化メッセージを受信する（ステップＳ５０１）。
【０１６８】
さらに、復号化部１２２は、受信された暗号化メッセージを、計算された共有鍵Ｚ’により復号化して、伝送すべきメッセージを得る（ステップＳ５０２）。
【０１６９】
共有鍵Ｚ  ＝  Ｚ’を用いて行う暗号化ならびに復号化の処理については、公知の種々の技法を適宜適用することができる。
【０１７０】
ＧＦ（ｎ）上のチェビシェフ多項式Ｔ（・，・）がとる値はカオス的な振舞いを見せるため、両鍵共有装置１０２の間でやりとりされるメッセージを見ても、共有された鍵Ｚ  ＝  Ｚ’を推測するのは極めて困難である。したがって、上記のような鍵の共有ならびにメッセージの送受は安全であり、メッセージが解読される可能性は極めて低い。このようにして、安全な鍵の共有ならびにメッセージの送受を実現することができる。
【０１７１】
（第２の実施形態）
上記実施形態によれば、２つの鍵共有装置１０２において秘密鍵を共有することが可能であった。本実施形態は、これをさらに拡張したものであり、Ｎ  （Ｎ≧２）個の鍵共有装置Ｍ０，Ｍ１，…，ＭＮ−１において鍵を共有する鍵共有システムの一つである。
【０１７２】
図６は、本実施形態に係るそれぞれの鍵共有装置Ｍｉ  （０≦ｉ≦Ｎ−１）の概要構成を示す模式図である。図７は、それぞれの鍵共有装置Ｍｉ  （０≦ｉ≦Ｎ−１）にて実施される鍵共有方法の処理の流れを示すフローチャートである。以下、これら図を参照して説明する。
【０１７３】
鍵共有装置Ｍｉ  ６０１は、整数取得部６０２と、初期送付鍵計算部６０３と、初期送付鍵送付部６０４と、送付鍵受付部６０５と、共有鍵計算部６０６と、中途送付鍵計算部６０７と、中途送付鍵送付部６０８と、を備える。
【０１７４】
また、鍵共有装置Ｍｉ  ６０１は、上記実施形態同様、いずれも、公開鍵Ｘを知得していることを前提とする。
【０１７５】
まず、整数取得部６０２は、２以上ｎ未満の整数ｐｉを取得する（ステップＳ７０１）。
【０１７６】
一方、初期送付鍵計算部６０３は、取得された整数ｐｉから、
Ｙｉ＝Ｔ（ｐｉ，Ｘ）
により送付鍵Ｙｉを計算する（ステップＳ７０２）。
【０１７７】
さらに、初期送付鍵送付部６０４は、計算された送付鍵Ｙｉと、当該送付鍵Ｙｉは当該鍵共有装置Ｍｉ  ６０１のみが多項式を適用した旨を示す多項式適用情報と、を、複数の鍵共有装置６０１のうち他の鍵共有装置６０１に、送付する（ステップＳ７０３）。
【０１７８】
たとえば、多項式適用情報を集合で表現することとすると、ここで送信する情報は、（Ｙｉ，｛ｉ｝）と記述することができる。
【０１７９】
そして、送付鍵受付部６０５は、複数の鍵共有装置６０１のうち、いずれか他の鍵共有装置６０１から、送付鍵Ｗｉ∈ＧＦ（ｎ）と、当該送付鍵Ｗｉ∈ＧＦ（ｎ）の多項式適用情報Ｉと、を受け付ける（ステップＳ７０４）。すなわち、受信した情報は、（Ｗｉ，Ｉ）である。
【０１８０】
一方、受け付けられた多項式適用情報が、複数の鍵共有装置６０１のうち、当該鍵共有装置Ｍｉ  ６０１以外のすべての鍵共有装置６０１が多項式を適用した旨を示すか否かを判定する（ステップＳ７０５）。すなわち、Ｉ  ＝  ｛０，１，２，…，ｉ−１，ｉ＋１，ｉ＋２，…，Ｎ−２，Ｎ−１｝であるか否かを判定する。
【０１８１】
そうである場合（ステップＳ７０５；Ｙｅｓ）、共有鍵計算部６０６は、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｚｉ＝Ｔ（ｐｉ，Ｗｉ）
により共有鍵Ｚｉを計算する（ステップＳ７０６）。
【０１８２】
一方、そうでない場合（ステップＳ７０５；Ｎｏ）、さらに、自分が適用済みであるか否かを判定する（ステップＳ７０７）。すなわち、ｉがＩに含まれないか、否かを判定する。
【０１８３】
含まれない場合（ステップＳ７０７；Ｙｅｓ）、中途送付鍵計算部６０７は、取得された整数ｐｉと、受け付けられた送付鍵Ｗｉと、から
Ｖｉ＝Ｔ（ｐｉ，Ｗｉ）
により送付鍵Ｖｉを計算する（ステップＳ７０８）。
【０１８４】
そして、中途送付鍵送付部６０８は、計算された送付鍵Ｖｉと、受け付けられた多項式適用情報に当該鍵共有装置Ｍｉ  ６０１が多項式を適用した旨を追加した多項式適用情報と、を、複数の鍵共有装置６０１のうちいずれか他の鍵共有装置６０１に送付して（ステップＳ７０９）、ステップＳ７０４に戻る。
【０１８５】
このようにして、各鍵共有装置６０１は、Ｚｉを本方法の結果として得ることとなる。これは、公開鍵Ｘに、関数Ｔ（ｐ０，・），Ｔ（ｐ１，・），…，Ｔ（ｐＮ−１，・）をさまざまな順序で適用したものであるが、Ｔ（・，・）は上記のような性質を有するため、上記実施例と同様に、
Ｚ０  ＝  Ｚ１  ＝  …  ＝  ＺＮ−１  ＝  Ｔ（ｐ０ｐ１…ｐＮ−１，Ｘ）
となる。したがって、各鍵共有装置６０１の結果は等しく、秘密鍵を共有することができるようになる。
【０１８６】
なお、本実施形態においては、以下に説明するように、送付鍵と多項式適用情報とを、常に隣に送信するように構成することができる。図８は、送付鍵等の送受の様子を説明する説明図である。
【０１８７】
すなわち、鍵共有装置Ｍｉ  ６０１の初期送付鍵送付部６０４と、中途送付鍵送付部６０８と、は、送付鍵と、多項式適用情報と、を鍵共有装置Ｍ（ｉ＋１）  ｍｏｄ  Ｎ  ６０１に送付する。
【０１８８】
一方、鍵共有装置Ｍｉ  ６０１の送付鍵受付部６０５は、送付鍵と、多項式適用情報と、を、鍵共有装置Ｍ（ｉ−１）  ｍｏｄ  Ｎ  ６０１から受け付ける。
【０１８９】
本図に示すように、送付鍵等は、環状に送受されることになる。この送受を同期して行うこととすれば、送受がＮ−１回行われると、各鍵共有装置６０１で共有鍵が得られることになる。この場合、多項式適用情報としては、「隣との送付鍵の送受を何回行ったか」を用いることができる。
【０１９０】
このようにして、鍵が共有できた後は、上記実施形態と同様に、この鍵を用いて安全にメッセージをやりとりすることができる。この処理は、図３、図４におけるものと同様である。
【０１９１】
たとえば、鍵共有装置Ｍｓ  （０≦ｓ≦Ｎ−１）６０１から鍵共有装置Ｍｔ  （０≦ｔ≦Ｎ−１，ｔ≠ｓ）６０１へメッセージを暗号化送信する場合を考える。
【０１９２】
鍵共有装置Ｍｓ  ６０１は、暗号化部と、暗号化メッセージ送信部と、をさらに備える（図１と同様であるため図示せず）。
【０１９３】
一方、鍵共有装置Ｍｔ  ６０１は、暗号化メッセージ受信部と、復号化部と、をさらに備える（図１と同様であるため図示せず）。
【０１９４】
ここで、鍵共有装置Ｍｓ  ６０１において、暗号化部は、伝送すべきメッセージを、計算された共有鍵Ｚｓにより暗号化して暗号化メッセージを得て（ステップＳ３０１に相当）、暗号化メッセージ送信部は、暗号化された暗号化メッセージを鍵共有装置Ｍｔに送信する（ステップＳ３０２に相当）。
【０１９５】
一方、鍵共有装置Ｍｔ  ６０１において、暗号化メッセージ受信部は、鍵共有装置Ｍｓ  ６０１から送信されたメッセージを受信し（ステップＳ４０１に相当）、復号化部は、受信された暗号化メッセージを、計算された共有鍵Ｚｔにより復号化して、伝送すべきメッセージを得る（ステップＳ４０２に相当）。
【０１９６】
このようにして、２個以上の任意の数の鍵共有装置においても、上記実施形態同様に、安全に鍵を共有し、メッセージを送受することができる。
【０１９７】
なお、上記の鍵共有システムにおいては、いずれも、整数ｎは、素数ｃと２以上の整数ｍに対して
ｎ＝ｃｍ
と定義されるように構成することができる。このようにＧＦ（ｎ）を選択することによりｎ個の要素からなる有限体が得られ、当該有限体はｎに対してユニークに（重複なく）決まる、という効果が得られる。
【０１９８】
（第３の実施形態）
本実施形態に係る公開鍵暗号システムにおいても、上記実施形態と同様に、ＧＦ（ｎ）ならびにＴ（・，・）を用いて、暗号化装置から送られたメッセージを復号化装置にて解読する。また、本実施形態の公開鍵暗号システムにおいては、公開鍵を復号化装置が生成する。
【０１９９】
図９は、本発明の実施形態に係る公開鍵暗号システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【０２００】
公開鍵暗号システム９０１は、復号化装置９３１と、暗号化装置９５１と、を備える。
【０２０１】
ここで、復号化装置９３１は、秘密鍵取得部９３２と、自然数取得部９３３と、公開鍵計算部９３４と、公開鍵公開部９３５と、暗号化メッセージ受信部９３６と、復号化部９３７と、を備える。
【０２０２】
一方、暗号化装置９５１は、公開鍵受付部９５２と、暗号化部９５３と、暗号化メッセージ送信部９５４と、を備える。
【０２０３】
図１０は、復号化装置９３１にて実施される復号化方法の処理の流れを示すフローチャートである。図１１は、暗号化装置９５１にて実施される暗号化方法の処理の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【０２０４】
まず、復号化装置９３１において、秘密鍵取得部９３２は、２以上の整数である秘密鍵ｐを取得する（ステップＳ１００１）。
【０２０５】
ついで、自然数取得部９３３は、秘密鍵ｐに対して、ｐ−１と素な２以上の自然数ｋを取得する（ステップＳ１００２）。
【０２０６】
さらに、公開鍵計算部９３４は、秘密鍵ｐと、公開鍵Ｘと、から
Ｙ＝Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算する（ステップＳ１００３）。
【０２０７】
そして、公開鍵公開部９３５は、自然数ｋと、公開鍵Ｙと、を暗号化装置９５１に公開する（ステップＳ１００４）。
【０２０８】
一方、暗号化装置９５１において、公開鍵受付部９５２は、復号化装置９３１により公開された自然数ｋと、公開鍵Ｙと、を受け付ける（ステップＳ１１０１）。
【０２０９】
ついで、暗号化部９５３は、メッセージｍ∈ＧＦ（ｎ）から、暗号化メッセージ（ａ，ｂ）を、
ａ  ＝  Ｔ（ｋ，Ｘ）
ｂ  ＝  ｍＴ（ｋ，Ｙ）  ｍｏｄ  ｎ
により計算する（ステップＳ１１０２）。
【０２１０】
さらに、暗号化メッセージ送信部９５４は、暗号化メッセージ（ａ，ｂ）を復号化装置９３１へ送信する（ステップＳ１１０３）。
【０２１１】
一方、復号化装置９３１において、暗号化メッセージ受信部９３６は、暗号化装置９５１から送信された暗号化メッセージ（ａ，ｂ）を受信する（ステップＳ１００５）。復号化部９３７は、秘密鍵ｐと、受信された暗号化メッセージ（ａ，ｂ）と、から、
ｍ’  ＝  ｂ／Ｔ（ｐ，ａ）  ｍｏｄ  ｎ
により、メッセージｍ’∈ＧＦ（ｎ）を計算する（ステップＳ１００６）。
【０２１２】
上記実施形態と同様、関数Ｔ（・，・）の性質から、ｍ  ＝  ｍ’であることが証明できる。
【０２１３】
なお、本実施形態において、暗号化装置９５１と復号化装置９３１とは、メッセージを暗号化／復号化する際に所定のハッシュ関数Ｈ（・）とその逆関数を用いることができる。ハッシュ関数Ｈ（・）等を用いた場合について、以下に説明する。
【０２１４】
すなわち、暗号化装置９５１は、メッセージ受付部（図示せず）と、ハッシュ計算部（図示せず）と、をさらに備える。
【０２１５】
一方、復号化装置９３１は、メッセージ取得部（図示せず）と、をさらに備える。
【０２１６】
ここで、暗号化装置９５１において、メッセージ受付部は、伝送すべきメッセージＭを受け付け、ハッシュ計算部は、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【０２１７】
一方、復号化装置９３１において、メッセージ取得部は、得られたメッセージｍ’と、ハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ’  ＝  Ｈ−１（ｍ’）
により、伝送すべきメッセージＭ’を得る。
【０２１８】
このようなハッシュ関数Ｈ（・）としては、逆関数の計算が困難な一方向性関数であって、入力メッセージを固定長ビット数の擬似ランダムビット列に変換する関数を適用することができ、ＭＤ５（１２８ビットハッシュ）、ＳＨＡ（１６０ビットハッシュ）などの公知のハッシュ関数を用いることができる。
【０２１９】
（第４の実施形態）
本実施形態は、上記の鍵共有システム、公開鍵暗号システムの基本的な考え方を、署名システムに適用するものである。本実施形態においても、ＧＦ（ｎ）ならびにＴ（・，・）を用いる。
【０２２０】
図１２は、本実施形態の署名システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【０２２１】
署名システム１２０１は、署名装置１２３１と、認証装置１２５１と、を備え、メッセージに含まれる署名が署名装置１２３１によってされたものか否か、を、認証装置がチェックするものである。
【０２２２】
なお、署名装置１２３１と、認証装置１２５１と、は、いずれも、任意の正整数ｂと、任意の整数Ｕ∈ＧＦ（ｎ）と、に対して
Ｔ（ｂ＋ｎ＊，Ｕ）  ＝  Ｔ（ｂ，Ｕ）
を満たす最小の正整数ｎ＊と、を知得していることを前提とする。
【０２２３】
ここで、署名装置１２３１は、整数選択部１２３２と、公開鍵計算部１２３３と、公開鍵公開部１２３４と、署名部１２３５と、署名付メッセージ送信部１２３６と、を備える。
【０２２４】
一方、認証装置１２５１は、公開鍵受付部１２５２と、署名付メッセージ受信部１２５３と、パラメータ計算部１２５４と、認証部１２５５と、を備える。
【０２２５】
図１３は、署名装置１２３１にて実施される署名方法の処理の流れを示すフローチャートである。図１４は、認証装置１２５１にて実施される署名方法の処理の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【０２２６】
まず、署名装置１２３１において、整数選択部１２３２は、整数ｐ  （２≦ｐ＜ｍｉｎ（ｎ＊，ｎ−１））と、整数ｋ  （２≦ｋ＜ｍｉｎ（ｎ＊，ｎ−１），ｋ≠ｐ）と、を選択する（ステップＳ１３０１）。
【０２２７】
ついで、公開鍵計算部１２３３は、整数ｐから、
Ｙ  ＝  Ｔ（ｐ，Ｘ）
により公開鍵Ｙ∈ＧＦ（ｎ）を計算する（ステップＳ１３０２）。
【０２２８】
さらに、公開鍵公開部１２３４は、公開鍵Ｙを、認証装置１２５１へ公開する（ステップＳ１３０３）。
【０２２９】
そして、署名部１２３５は、メッセージｍ∈ＧＦ（ｎ）から、署名付メッセージ（ｒ，ｓ，ｍ）を、
ｒ  ＝  Ｔ（ｋ，Ｘ）
ｓ  ＝  （ｍ＋ｐｒ）／ｋ  ｍｏｄ  ｎ
により計算する（ステップＳ１３０４）。
【０２３０】
さらに、ｓ  ＝  ０であるか否かを調べ（ステップＳ１３０５）、そうである場合（ステップＳ１３０５；Ｙｅｓ）、ステップＳ１３０１に戻って、整数ｐ，ｋのいずれか一方もしくは双方を選択し直す。あらかじめ選択したｐを用いて公開鍵Ｙを計算し、すでに公開している場合は、ｋのみを選択し直すことが望ましい。認証装置１２５１が、すでに公開鍵Ｙを取得している場合には、あらたな通信を行うことなく、それを用いることができるからである。
【０２３１】
ｓ≠０である場合は、署名付メッセージ送信部１２３６は、署名付メッセージ（ｒ，ｓ，ｍ）を認証装置へ送信する（ステップＳ１３０６）。
【０２３２】
一方、認証装置１２５１において、公開鍵受付部１２５２は、署名装置により公開された公開鍵Ｙを受け付ける（ステップＳ１４０１）。
【０２３３】
ついで、署名付メッセージ受信部１２５３は、署名装置から送信された署名付メッセージ（ｒ，ｓ，ｍ）を受信する（ステップＳ１４０２）。
【０２３４】
さらに、パラメータ計算部１２５４は、受け付けられた公開鍵Ｙと、受信された署名付メッセージ（ｒ，ｓ，ｍ）と、から、パラメータ
ｗ  ＝  １／ｓ  ｍｏｄ  ｎ＊
ｕ１  ＝  ｍｗ  ｍｏｄ  ｎ＊
ｕ２  ＝  ｒｗ  ｍｏｄ  ｎ＊
ｖ  ＝  Ｔ（ｕ１＋ｕ２，Ｙ）
を計算する（ステップＳ１４０３）。
【０２３５】
そして、認証部１２５５は、パラメータｖと、署名付メッセージ（ｒ，ｓ，ｍ）と、について、ｒ  ＝  ｖであるか否かを判定し（ステップＳ１４０４）、ｒ  ＝  ｖである場合、署名付メッセージ（ｒ，ｓ，ｍ）を認証する（ステップＳ１４０５）。そうでない場合は、認証しない（ステップＳ１４０６）。
【０２３６】
なお、上記実施形態と同様に、署名装置１２３１と認証装置１２５１とでハッシュ関数Ｈ（・）とその逆関数を用いて、メッセージをハッシュしてもよい。
【０２３７】
この場合、署名装置１２３１は、メッセージ受付部と、ハッシュ計算部と、をさらに備え、認証装置は、メッセージ取得部と、をさらに備えるように構成する（それぞれ図示せず。）。
【０２３８】
署名装置１２３１において、メッセージ受付部は、伝送すべきメッセージＭを受け付け、ハッシュ計算部は、受け付けられたメッセージＭと、メッセージをＧＦ（ｎ）上に写像するハッシュ関数Ｈ（・）と、から、
ｍ  ＝  Ｈ（Ｍ）
により、メッセージｍを得る。
【０２３９】
一方、認証装置１２５１において、メッセージ取得部は、署名付メッセージ（ｒ，ｓ，ｍ）と、ハッシュ関数Ｈ（・）の逆関数Ｈ−１（・）と、から、
Ｍ  ＝  Ｈ−１（ｍ）
により、伝送すべきメッセージＭを得る。
【０２４０】
このようにして、ハッシュされたメッセージに添付された署名を認証することができ、メッセージを本当は誰が送信したのかを確認することができる。
【０２４１】
【発明の効果】
以上説明したように、本発明によれば、鍵共有システム、公開鍵暗号システム、署名システム、鍵共有装置、暗号化装置、復号化装置、署名装置、認証装置、鍵共有方法、暗号化方法、復号化方法、署名方法、認証方法、コンピュータをこれら装置として機能させ、もしくは、コンピュータにこれら方法を実行させるプログラム、ならびに、当該プログラムを記録したコンピュータ読取可能な情報記録媒体を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る鍵共有システムの概要構成を示す模式図である。
【図２】チェビシェフ多項式Ｓ（・，・）を関数として用いた場合の値とその計算値との対応関係を示すグラフである。
【図３】第１の鍵共有装置において実施される鍵共有方法の処理の流れを示すフローチャートである。
【図４】第１の鍵共有装置にて実施される暗号化方法の処理の流れを示すフローチャートである。
【図５】第２の鍵共有装置にて実施される復号化方法の流れを示すフローチャートである。
【図６】第２の実施形態に係る鍵共有装置Ｍｉの概要構成を示す模式図である。
【図７】第２の実施形態に係る鍵共有装置Ｍｉにて実施される鍵共有方法の処理の流れを示すフローチャートである。
【図８】第２の実施形態における送付鍵等の送受の様子を説明する説明図である。
【図９】第３の実施形態に係る公開鍵暗号システムの概要構成を示す模式図である。
【図１０】復号化装置にて実施される復号化方法の処理の流れを示すフローチャートである。
【図１１】暗号化装置にて実施される暗号化方法の処理の流れを示すフローチャートである。
【図１２】第４の実施形態に係る署名システムの概要構成を示す模式図である。
【図１３】署名装置にて実施される署名方法の処理の流れを示すフローチャートである。
【図１４】認証装置にて実施される署名方法の処理の流れを示すフローチャートである。
【符号の説明】
１０１    鍵共有システム
１０２    鍵共有装置
１０３    整数取得部
１０４    送付鍵計算部
１０５    送付鍵送付部
１０６    送付鍵受付部
１０７    共有鍵計算部
１１１    暗号化部
１１２    暗号化メッセージ送信部
１２１    暗号化メッセージ受信部
１２２    復号化部
６０１    鍵共有装置
６０２    整数取得部
６０３    初期送付鍵計算部
６０４    初期送付鍵送付部
６０５    送付鍵受付部
６０６    共有鍵計算部
６０７    中途送付鍵計算部
６０８    中途送付鍵送付部
９０１    公開鍵暗号システム
９３１    復号化装置
９３２    秘密鍵取得部
９３３    自然数取得部
９３４    公開鍵計算部
９３５    公開鍵公開部
９３６    暗号化メッセージ受信部
９３７    復号化部
９５１    暗号化装置
９５２    公開鍵受付部
９５３    暗号化部
９５４    暗号化メッセージ送信部
１２０１  署名システム
１２３１  署名装置
１２３２  整数選択部
１２３３  公開鍵計算部
１２３４  公開鍵公開部
１２３５  署名部
１２３６  署名付メッセージ送信部
１２５１  認証装置
１２５２  公開鍵受付部
１２５３  署名付メッセージ受信部
１２５４  パラメータ計算部
１２５５  認証部
【図１】
0003633886.tif 000002
【図２】
0003633886.tif 000003
【図３】
0003633886.tif 000004
【図４】
0003633886.tif 000005
【図５】
0003633886.tif 000006
【図６】
0003633886.tif 000007
【図７】
0003633886.tif 000008
【図８】
0003633886.tif 000009
【図９】
0003633886.tif 000010
【図１０】
0003633886.tif 000011
【図１１】
0003633886.tif 000012
【図１２】
0003633886.tif 000013
【図１３】
0003633886.tif 000014
【図１４】
0003633886.tif 000015