(57)【特許請求の範囲】
【請求項１】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、ユーザ固有情報を記憶する第４の記憶手段を有し、
上記第３の記憶装置に記憶される上記証明用補助情報は、上記証明データの生成を行うための制御情報と、上記認証の特徴情報と、上記ユーザ固有情報とに所定の演算を施して生成され、
上記証明データ生成手段は、少なくとも上記ユーザ固有情報と、上記証明データの生成を行うための制御情報と、上記認証用補助情報と、上記第１の認証用データとを用いて証明データを生成することを特徴とする条件付き認証装置。
【請求項２】
上記証明データ生成手段の上記演算手段が、第１の演算手段と、第２の演算手段とから構成され、
上記第１の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報と、上記第４の記憶手段に記憶されているユーザ固有情報とに所定の計算を施し、
上記第２の演算手段が、上記第１の演算手段による計算結果と、上記第１の記憶手段に記憶されている認証用データと、上記第３の記憶手段に記憶されている証明用補助情報とに所定の計算を施し、その結果として上記証明データを生成することを特徴とする請求項１に記載の条件付き認証装置。
【請求項３】
第２の認証用データを記憶する第５の記憶手段を有し、
上記第２の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データと、上記第５の記憶手段に記憶されている第２の認証用データとに対して特定の演算を施した結果が、認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証することを特徴とする、請求項１または２に記載の条件付き認証装置。
【請求項４】
上記アクセス資格認証の特徴情報が、Ｇの元ａのもとで、
Ｇが乗法群であればＹ＝ａＸ、
Ｇが加法群であればＹ＝Ｘａ
を満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを適当な乱数ｚを使って、
Ｇが乗法群であればｚ乗（ｕ＝ａｚ）、
Ｇが加法群であればｚ倍（ｕ＝ｚａ）、
したものであり、
Ｃが、データＫを、上記Ｙを上記乱数ｚを使って
Ｇが乗法群であればｚ乗、
Ｇが加法群であればｚ倍、
したもので所定のマスク演算した結果であるとき、
上記第１の記憶手段に認証用データとしてｕが記憶され、上記第５の記憶手段にはＣが記憶され、
上記証明データ検証手段は、上記第５の記憶手段に記憶されているＣから、上記証明データ生成手段によって生成された証明データＲによるマスクを取り除いたものと、上記Ｋとが法ｐのもとで合同であることを検証することを特徴とする請求項３に記載の条件付き認証装置。
【請求項５】
乱数生成手段と、生成した乱数を記憶する第６の記憶手段とをさらに有し、
上記第１の認証データには、上記乱数生成手段が生成した乱数による効果が付与され、
上記証明データ検証手段が、上記証明データ生成手段によって生成された証明データから、上記乱数による効果を除去することを特徴とする請求項３または４に記載の条件付き認証装置。
【請求項６】
上記証明データ生成手段は、上記証明補助情報ｔと、上記ユーザ固有情報ｅと、上記第１の記憶手段に書き込まれた認証用データｕあるいはそれに乱数効果のかかったｕ’とを用いて、Ｇが乗法群であればｕあるいはｕ’のＸ乗、Ｇが加法群であればｕあるいはｕ’のＸ倍を計算することを特徴とする請求項３から５のいずれか一項に記載の条件付き認証装置。
【請求項７】
第２の認証用データを記憶する第５の記憶手段を有し、
上記第２の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証することを特徴とする請求項１または２に記載の条件付き認証装置。
【請求項８】
有限群Ｇが乗法群であり、上記アクセス資格認証の特徴情報が、Ｇの元ａのもとで
Ｇが乗法群であればＹ＝ａＸ、
Ｇが加法群であればＹ＝Ｘａ
を満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで適当な乱数ｚを使って、
Ｇが乗法群であればｚ乗（ｕ＝ａｚ）、
Ｇが加法群であればｚ倍（ｕ＝ｚａ）、
したものであり、
Ｃが、データＫを、上記Ｙを上記乱数ｚを使って、
Ｇが乗法群であればｚ乗、
Ｇが加法群であればｚ倍、
したもので所定のマスク演算した結果であるとき、
上記第１の記憶手段に認証用データとしてｕが記憶され、上記第５の記憶手段にはＣが記憶され、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データが、上記Ｋとが法ｐのもとで合同であることを検証することを特徴とする請求項７に記載の条件付き認証装置。
【請求項９】
乱数生成手段と、
生成した乱数を記憶する第６の記憶手段とをさらに有し、上記第１の認証データおよび上記第２の認証データには、上記乱数生成手段が生成した乱数による効果が付与され、
上記証明データ検証手段が、上記証明データ生成手段によって生成された証明データから、上記乱数による効果を除去することを特徴とする請求項７または８に記載の条件付き認証装置。
【請求項１０】
上記証明データ生成手段は、上記証明補助情報ｔと、上記ユーザ固有情報ｅと、第１の記憶手段に書き込まれた認証用データｕ、Ｃあるいはそれに乱数効果のかかったｕ’、Ｃ’を用いて、ＣあるいはＣ’から、Ｇが乗法群であればｕあるいはｕ’のＸ乗、Ｇが加法群であればｕあるいはｕ’のＸ倍、によるマスクを取り除いたもの計算することを特徴とする請求項７から９のいずれか一項に記載の条件付き認証装置。
【請求項１１】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘと、群Ｇを規定する情報と、制御情報Ｌとに所定の演算を施して得られるデータであることを特徴とする請求項１から１０のいずれか一項に記載の条件付き認証装置。
【請求項１２】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、群Ｇを規定する情報と制御情報Ｌとに依存する非衝突性関数値Ｆを減じて得られるデータであることを特徴とする請求項１１に記載の条件付き認証装置。
【請求項１３】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘと、暗号化鍵Ｙと、制御情報Ｌとに所定の演算を施して得られるデータであることを特徴とする請求項１から１０のいずれか一項に記載の条件付き認証装置。
【請求項１４】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、暗号化鍵Ｙと制御情報Ｌとに依存する非衝突性関数値Ｆを減じて得られるデータであることを特徴とする請求項１３に記載の条件付き認証装置。
【請求項１５】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段とからなり、
第１の演算手段は、上記ｕのあるいはｕ’を、乗法群であれば上記非衝突性関数値で乗じたもの、加法群であれば上記非衝突性関数値で倍したものを計算し、
第２の演算手段は、上記ｕのあるいはｕ’を、乗法群であればｔ乗、加法群であればｔ倍したものと、第１の演算手段の計算結果とに対して、乗法群であれば積をとり、加法群であれば和をとることによって、証明データＲを生成することを特徴とする請求項１２または１４に記載の条件付き認証装置。
【請求項１６】
上記第２の演算手段が、上記ｕのあるいはｕ’を、乗法群であればｔ乗、加法群であればｔ倍したものと、第１の演算手段の計算結果とを、乗法群であれば積をとり、加法群であれば和をとって、上記ＣあるいはＣ’から、上記積あるいは和の結果によるマスクを取り除くことを特徴とする請求項１５に記載の条件付き認証装置。
【請求項１７】
少なくとも、上記第２の記憶手段と、
上記証明データ生成手段とが、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持されていることを特徴とする請求項１から１６のいずれか一項に記載の条件付き認証装置。
【請求項１８】
少なくとも、上記第２の記憶手段と、
上記第１の演算手段とが、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持されていることを特徴とする請求項１５または１６に記載の条件付き認証装置。
【請求項１９】
証明データ生成装置が、少なくとも上記第１の記憶手段と、上記第２の記憶手段と、上記第３の記憶手段と、上記証明データ生成手段とを有し、
証明データ検証装置が、少なくとも上記証明データ検証手段を有し、さらに認証用データを記憶する第７の記憶手段と、証明データを記憶する第８の記憶手段とを有し、
上記証明データ生成装置と上記証明データ検証装置とが互いに通信することによりユーザのアクセス資格を認証する条件付き認証装置において、
上記証明データ検証装置は、上記第７の記憶手段に記憶されている認証用データを上記証明データ生成装置の上記第１の記憶手段に書き出し、
上記証明データ生成装置は、上記証明データ生成手段によって上記第１の記憶手段に書き込まれた上記認証用データをもとに生成した証明データを、上記証明データ検証装置の上記第８の記憶手段に書き出し、
上記証明データ検証装置は上記第８の記憶手段に書き込まれた上記証明データを用いてユーザのアクセス資格を認証することを特徴する請求項１〜１８のいずれか一項に記載の条件付き認証装置。
【請求項２０】
上記証明データ検証手段は、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データを記憶する第８の記憶手段と、
比較手段とを有し、上記比較手段は、上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値と、上記第８の記憶手段に記憶されている平文データとを比較し、両者が一致した場合に限り、上記証明データが正当であると判断することを特徴とする請求項３から１０のいずれか一項に記載の条件付き認証装置。
【請求項２１】
上記証明データ検証手段は、さらに、何らかのデータを暗号を用いて暗号化したデータを記憶する第９の記憶手段を有し、上記第２の認証用データは、上記データを暗号化するために用いた暗号の鍵を暗号化したものであり、上記証明データ検証手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を、上記データを暗号化するために用いた暗号の復号鍵として用いることにより、上記暗号化されたデータが復号できることによって、上記証明データが正当であると判断することを特徴とする請求項３から１０のいずれか一項に記載の条件付き認証装置。
【請求項２２】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
上記証明データ検証手段は、さらに、データの冗長性を検証する冗長性検証手段を有し、上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値が、上記冗長性検証手段によって特定の冗長性をもつことが確認されることによって、上記証明データが正当であると判断することを特徴とする条件付き認証装置。
【請求項２３】
上記証明データ検証手段は、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データに、所定の一方向関数を施した結果を記憶する第１０の記憶手段と、上記一方向関数を実行する第４の演算手段と、比較手段とを有し、上記第４の演算手段は、上記証明データ生成手段が生成した上記証明データの値もしくは上記証明データを用いて演算を行った結果得られた値に一方向関数を施し、上記比較手段は、上記第４の演算手段による計算結果と、上記第１０の記憶手段に記憶されているデータとを比較し、両者が一致した場合に限り、上記証明データが正当であると判断することを特徴とする請求項３から１０のいずれか一項に記載の条件付き認証装置。
【請求項２４】
上記証明データ検証手段は、さらに、プログラム実行手段を含み、
上記第２の認証用データは、プログラムを暗号化して得られるデータであり、上記証明データ検証手段が、証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて特定の演算を行った値をプログラムの一部もしくは全部としてプログラム実行手段に引き渡すことにより、上記証明データ生成手段が暗号化されたプログラムである上記第２の認証用データを正しく復号した場合、即ち、暗号化されたプログラムが正しく復号された場合に限り、上記プログラム実行手段が正しい動作を行うことを特徴とする請求項３から１０のいずれか一項に記載の条件付き認証装置。
【請求項２５】
上記証明データ検証手段は、さらに、プログラム実行手段と、プログラム記憶手段と、プログラム復号手段とを含み、上記プログラム記憶手段に記憶されているプログラムは、その一部あるいは全部が暗号化されたものであり、上記第２の認証用データは、上記暗号化されたプログラムを復号するための復号鍵を別途暗号化して得られるデータであり、上記証明データ検証手段は、上記証明データ生成手段が生成した上記証明データを上記プログラム復号手段に引き渡し、上記プログラム復号手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を復号鍵として、上記プログラム記憶手段に記憶されたプログラムの一部もしくは全部を復号し、上記プログラム実行手段が復号されたプログラムを実行することにより、上記証明データ生成手段が上記第２の認証用データを正しく復号された場合、即ち、暗号化されたプログラムを復号するために復号鍵が正しく復号された場合に限り、上記プログラム実行手段が正しい動作を行うことを特徴とする請求項３から１０のいずれか一項に記載の条件付き認証装置。
【請求項２６】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに時刻を示す時計を備え、上記証明データの生成を行うための制御情報は、認証を行うことができる有効期間であり、認証を行う時の時刻が有効期間内にある時のみ証明データを生成することを特徴とした条件付き認証装置。
【請求項２７】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、今までに認証を行った回数を記録する第１１の記憶手段を備え、上記証明データの生成を行うための制御情報は、認証を行う回数の有効範囲であり、上記第１１の記憶手段の値が上記有効範囲内にある時のみ証明データを生成することを特徴とした条件付き認証装置
【請求項２８】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、時刻を示す時計と、
認証を行った結果に従いサービスを開始した時間およびサービスを終了した時間からユーザがサービスを享受した時間を計算する第５の演算手段と、
今までにユーザがサービスを享受した時間の合計値を記録する第１２の記憶手段とを備え、
上記証明データの生成を行うための制御情報は、総利用時間の値の有効範囲であり、
第１２の記憶手段の値が上記有効範囲内にある時のみ認証明用データを生成することを特徴とした条件付き認証装置。
【請求項２９】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、今までに認証を行った回数および認証を行った結果から計算されたサービスを享受した時間等から計算される金額またはスコアを記録する第１３の記憶手段を備え、上記証明データの生成を行うための制御情報は、金額またはスコアの値の有効範囲であり、上記第１３の記憶手段の値が上記有効範囲内にある時のみ証明データを生成することを特徴とした条件付き認証装置。
【請求項３０】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、外部に認証を行った結果または認証を行った結果享受されるサービスに関する履歴を出力する機能を備え、上記証明データの生成を行うための制御情報は、履歴を出力するかどうかのフラグであり、上記履歴を出力することが指定されている場合には認証の履歴を出力し、上記証明データを生成することを特徴とした条件付き認証装置。
【請求項３１】
ユーザの権限を証明するために生成された証明データの正当性を検証するとともに、上記ユーザの権限に付加された条件が満たされるかどうかを判断することにより、上記ユーザの権限を認証する条件付き認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
上記証明データの生成を行うための制御情報を記憶する第２の記憶手段と、
認証の特徴情報と、上記第２の記憶手段に記憶されている証明データの生成を行うための制御情報とに所定の演算を施して生成される認証用補助情報を保持する第３の記憶手段と、
上記証明データの生成を行うための制御情報に従い所定の処理あるいは条件判断を行う証明データ生成装置制御手段と少なくとも上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報を用いて証明データを生成する演算手段とを具備する証明データ生成手段と、
上記証明データ生成手段により生成された証明データが上記認証の特徴情報に基づき生成されたものであるかどうかを検証する証明データ検証手段とを有し、
上記証明データ生成手段は、正当な上記第１の認証用データ、上記証明データの生成を行うための制御情報および上記認証用補助情報が与えられた時のみ正当な証明データを生成し、
上記認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵Ｘであり、
さらに、プログラムを実行するための第２のプログラム実行手段を備え、上記証明データの生成を行うための制御情報は上記第２のプログラム実行手段にて実行されるプログラムであり、上記プログラムが実行された結果、特定の状態にあるまたは特定の状態で終了した場合に証明データを生成することを特徴とした条件付き認証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、利用期限等の制約に関連してサービス対象を利用する権限をユーザが有しているかどうかを認証する技術に関し、制約に関する情報が改竄されている場合には認証が失敗するようにしたものである。またこの発明は、暗号化されたメッセージを復号する復号技術に関し、特に利用期限情報や制御情報などのメッセージに付随する情報が、改竄されていないことを検証し、改竄されていない時にのみ正しくメッセージが復号されるようにしたものである。
【０００２】
【従来の技術】
従来、サービス対象を利用する権限をユーザが有しているかどうかを認証する方法として、一般的には予め物理的なチケットやメンバーズカードを発行してもらい、サービスを享受する時点でチケットやメンバーズガードを提示する方法が取られてきた。この方法の場合、チケット等に記載された有効期限やサービスの種類等の情報をサービス提供者がその場で確認することで、条件の確認と認証を行ってきた。しかし、チケットそのものが物理的存在であるためにチケットの配送にコストがかかったり、チケットの偽造を困難にするためにチケットの製造自体にコストがかかってしまう欠点があった。この点についてはチケットを電子化することで配送や製造にかかわるコストを低減させることが可能である。このための技術として、特開昭６２−１７１０７１号公報の「予約取引用ＩＣカード」、特公平６−２２０３２号公報の「電子カードによる公共サービスの支払システム」がある。しかし、これらの技術ではサービスを享受した時点でチケットに相当する電子情報が無効化されるだけで、回数券型のチケットや利用期日制限と利用量制限の組み合わせといったより柔軟なチケットの実現に寄与するものではなかった。また、これらの技術は、チケットを電子的に取り寄せる場合にカードとホストとの間の通信の盗聴やリプレイ攻撃によるチケットの不正利用に対する防御策を持ち合わせていなかった。
【０００３】
また従来、暗号化されたデジタル情報について利用制限の機能を付加したものとして、特開平７−１３１４５２号公報の「デジタル情報保護方法及びその処理装置」に記載されている技術がある。特開平７−１３１４５２号公報の発明では、デジタル情報を情報識別番号と、情報本体と、利用条件情報及び認証子の組で表し、更に計算機内にデジタル情報を取り込んだ時に、情報識別番号および利用条件情報に関する第２の識別子を生成し、デジタル情報を利用する際は、２つの識別子による検証を行い、利用条件情報に記載されている利用条件を満たすかどうかの検証を行い、すべての検証が正常に終了した時のみデジタル情報を復号化して、利用できる形へ変換することを行っている。しかし、特開平７−１３１４５２号公報に記載されている方法では情報本体と利用条件の正当な組合せを保証するために両者を同一の暗号化鍵で暗号化するため、例えば利用者ごとに利用条件を変えようとすると、通信の度に暗号化を行うあるいは通信ごとに暗号化されたものを予め用意する必要があり、ＣＤ−ＲＯＭ等によるデジタル情報の多量の配布や、衛星放送などを利用したブロードキャストなどには向いていなかった。
【０００４】
【発明が解決しようとする課題】
本発明では上記の問題点を鑑み、サービス対象を利用する権限をユーザが有しているかどうかを認証する場合に於いて、従来のチケットに相当するものを電子化して、その電子情報の正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることを目的とする。
【０００５】
また更に暗号化されたデジタル情報を条件付きで復号する場合に於いては、デジタル情報を復号して利用する際に復号を行うための条件等を設定でき、しかも復号を行うための条件等は暗号化されたデジタル情報自身とは独立であり、したがってユーザ毎に異なる条件等を割り当てることが容易で、しかも復号を行うための条件等が改竄された場合には正しくデジタル情報の復号が行われないようにすることを目的とする。
【０００６】
【課題を解決するための手段】
本発明は上記の目的を達成するために、まず認証装置を、ユーザの権限を認証するために生成される証明用データの生成装置と、生成された証明用データの正当性を検証する検証装置とを含んで構成し；証明用データ生成装置を、検証装置により生成される認証用データを記憶する第１の記憶手段と、証明用データの生成を行うための制御情報を記憶する第２の記憶手段と、認証の特徴情報および証明用データの生成を行うための制御情報などから算出される認証用補助情報を記憶する第３の記憶手段と、上記の記憶手段に記憶されている情報から証明用データを生成する証明用データ生成手段とを含んで構成し；検証装置を、証明用データ生成手段により生成された証明用データが認証の特徴情報に基づき生成されていることを検証する検証手段を含んで構成し；認証の特徴情報が、有限群Ｇ上の離散対数問題を利用した非対称暗号系における、復号鍵とするようにしている。
【０００７】
この構成においては、第１に、電子化されたチケットの正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることができる。第２に、暗号化されたデジタル情報を条件付きで復号する場合に於いては、デジタル情報を復号して利用する際に復号を行うための条件等を設定でき、しかも復号を行うための条件等は暗号化されたデジタル情報自身とは独立であり、したがってユーザ毎に異なる条件等を割り当てることが容易で、しかも復号を行うための条件等が改竄された場合には正しくデジタル情報の復号が行われないようにすることができる。
【０００８】
また、認証の特徴情報に、有限体上での楕円曲線上で定義された、非対称鍵暗号系を用いることにより、ＲＳＡ公開鍵暗号等を用いる場合に比べて、鍵の長さを短くしても同等の安全性が得られ、かつ処理を高速に行うことができる。
【０００９】
なお、本発明は、方法やコンピュータ・プログラム製品として実現できる。
【００１０】
【発明の実施の態様】
【００１１】
［全体の構成］
具体的な個別の実施例を述べる前に、本発明の実施形態の全体像を以下に述べる。
【００１２】
まず、本発明を、ユーザのＰＣ（パーソナルコンピュータ）あるいはワークステーション上で動作するアプリケーションプログラムの実行制御に用いる場合について述べる。
【００１３】
図１および図２にこの実施形態における装置の構成を示す。なお、図２は図１の証明データ検証装置１００が、証明データ生成制御情報生成装置４００を兼ねており、その他の構成は図１と同様であるので、以下では、主に、図１の構成を説明する。
【００１４】
図１において、認証装置は、証明データ検証装置１００（単に、検証装置とも呼ぶ）、証明データ生成装置２００（単に、証明装置とも呼ぶ）、アクセスチケット生成装置３００および証明データ生成制御情報生成装置４００を含んで構成されている。証明データ検証装置１００は、認証用データ記憶部１０１、検証手段１０２および実行手段１０３を含んでいる。証明データ生成装置２００は、ユーザ固有情報記憶部２０１、証明データ生成手段２０２、アクセスチケット記憶部２０３および証明データ生成制御情報記憶部２０４を含んでいる。アクセスチケット記憶部２０３は、証明補助情報（アクセスチケットと呼ぶ）を保持する。証明データ生成制御情報記憶部２０４は、証明データの生成を制御する情報（証明データ生成制御情報と呼ぶ）を保持している。アクセスチケット生成装置３００はアクセスチケットを生成して証明データ生成装置２００に転送する。また、証明データ生成制御情報生成装置４００は、証明データ生成制御情報を生成して同じく証明データデータ生成装置２００に転送する。
【００１５】
図１の実施形態では、証明データ生成装置２００はユーザが用いる計算機上の証明用プログラムとして実現することができる。この際、ユーザを識別するための固有情報（ユーザ固有情報）を、ユーザがコピーして配布することができると、正当な利用権をもたないユーザにもアプリケーションプログラムの使用を許すこととなる。そこで、ユーザ識別情報はその正当な保持者であるユーザであってもこれを窃取することができないように、その計算機に装着され、耐タンパー特性を有する証明用ハードウェア（ＩＣカード、ボードなど）を併用することが可能である。この際、ＩＣカードのような携帯性のあるハードウェアを用いれば、ユーザが複数のＰＣあるいはワークステーション上で作業をする場合に便利である。
【００１６】
証明データ検証装置１００はユーザが利用するアプリケーションプログラムの一部として構成される。即ち、ユーザがアプリケーションプログラムをＰＣあるいはワークステーション上で起動すると、アプリケーションプログラム中にプログラムとして記述された証明データ検証装置１００が起動され、証明データ生成装置２００と通信してユーザ認証を行い、通信が正しく終了した場合に限ってアプリケーションプログラムの実行を可能とする。
【００１７】
ユーザが、証明データ検証装置１００が埋めこまれた上記アプリケーションプログラムを利用するためには、ユーザ本人宛に発行され、上記アプリケーションプログラムに対応する証明用補助情報（アクセスチケット）、および証明用データの生成を行うための制御情報（証明用データ生成制御情報）が必要となる。証明用データ生成制御情報は、証明データ生成装置２００が証明用データを生成する際に、アプリケーションプログラムの利用がユーザに科せられた使用条件に合致するかどうかを判定するのに使用される。証明用データ生成制御情報は、図１に示すように証明用データ生成制御情報生成装置４００によって生成されたものをユーザが取得するか、または図２に示すように証明データ検証装置１００から認証用データと共に送付されることによって、証明データ生成装置２００に登録される。以降の実施例では図１に従って説明を行うが、図２の構成についても同様な実施が可能である。ユーザは、上記ＰＣあるいはワークステーション上にインストールされた証明データ生成プログラムに、取得したアクセスチケット、および証明用データの生成を行うための制御情報を登録するとともに、例えば、ユーザ固有情報がＩＣカードに封入されている場合には、ＩＣカードを上記ＰＣあるいはワークステーションに装着する。アクセスチケットは、上記ＰＣあるいはワークステーション上に置く構成にしてもよいし、ＩＣカード中に置いてもよい。
【００１８】
証明データ生成装置２００（ＰＣあるいはワークステーション上のプログラムとＩＣカードによって構成される）は、ユーザ固有情報とアクセスチケット、および証明用データの生成を行うための制御情報に基づいて計算を行い、その計算に基づいて証明データ検証装置１００と通信を行う。この計算の過程でユーザ識別情報が用いられるが、ユーザ識別情報が外部に漏洩すると問題があるため、上記プログラムの少なくとも一部はＩＣカード等の防御手段によって保護される必要がある。
【００１９】
通信の結果、証明データ検証装置１００による認証が成功するのは、ユーザ固有情報と、アクセスチケット、および証明用データ生成制御情報と、証明データ検証装置１００が検証するアクセス資格認証の特徴情報の４つが正しく対応している場合に限られる。ユーザ固有情報、アクセスチケット、あるいは証明用データ生成制御情報のどれか一つでも欠けている場合には、認証は成功しない。
【００２０】
アクセスチケットは特定のユーザ宛に、そのユーザに許されるアプリケーションプログラムの使用条件を考慮して発行される。即ち、アクセスチケットの生成に際して、特定のユーザのユーザ固有情報、および証明用データ生成制御情報が用いられる。アクセスチケット生成時に使用されるユーザ固有情報と、証明データ生成装置２００によって使用される上記ユーザ固有情報とが一致していない場合、あるいはアプリケーションプログラムの利用が証明用データ生成制御情報に基づくユーザに科せられた使用条件に合致しない場合、やはり認証は成功しない。
【００２１】
また、アクセスチケットは、特定のアクセス資格認証の特徴情報に基づいて生成され、証明データ検証装置１００は、このアクセス資格認証の特徴情報を認証するように構成される。従って、アクセスチケットの生成のもととなった特徴情報と、アプリケーションプログラムに埋めこまれている証明データ検証装置１００が認証しようとする特徴情報とが互いに対応していなかった場合にも、認証は成功しない。
【００２２】
また、アプリケーションプログラムがネットワークによって結合された別の計算機上で実行され、実行結果がネットワークを介してユーザが用いる計算機に通信されるものとしてもよい。この場合、いわゆるサーバ・クライアントモデルに基づく構成となる。先に述べた、ユーザのＰＣあるいはワークステーション上で実行されるアプリケーションプログラムの実行制御の場合では、証明データ生成装置２００と証明データ検証装置１００との通信がいわゆるプロセス間通信として実行されるのに対し、サーバ・クライアント・モデルに従った場合、証明データ生成装置２００と証明データ検証装置１００との通信はＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのネットワークプロトコルに従った通信として実行される。
【００２３】
また、アプリケーションプログラムが専用装置上に構成されている場合にも、本発明を適用することが可能である。例えば、証明データ生成装置２００全体をＩＣカード内に実装し、取得したアクセスチケット、および証明データ生成制御情報もＩＣカードに登録するものとする。証明データ検証装置１００は上記専用装置上に実装されるが、その専用装置はＩＣカードを挿入するためのスロットを備え、ユーザはそのスロットに所有するＩＣカードを挿入することで認証を行う。
【００２４】
このような専用装置による構成は、銀行のＡＴＭ機や、ゲームセンターにおけるゲーム機などに適用することができる。
【００２５】
ユーザによるアクセスチケット、および証明データ生成制御情報の取得に関しては、これらを発行する共通のセンターが、ユーザからの発行依頼に応じて生成して配布する方法と、アプリケーションプログラムの作成者が、アクセスチケット発行プログラムやアクセスチケット生成装置３００、証明データ生成制御情報発行プログラムや証明データ生成制御情報生成装置４００の助けを借りて個別に生成する方法がある。
【００２６】
このような場合、これらの生成装置は、チケット発行者によって管理され、アクセスチケットなどはこれら正当な権利者等によって、ユーザの環境とは別個に作成され、配布される。
【００２７】
生成されたアクセスチケット、および証明データ生成制御情報は、フロッピーディスク等の可搬型記憶媒体を介してユーザに配送されるものとしてもよい。アクセスチケットが十分な安全性を備えていることから、電子メールなどを用いてネットワークを介して配送されるように構成してもよい。
【００２８】
アクセスチケットの安全性とは、以下の二つの性質である。
【００２９】
１）アクセスチケットは記名式である。即ち、アクセスチケットが発行されたユーザ本人（正確には、アクセスチケット生成時に用いられたユーザ固有情報の保持者）だけがそのアクセスチケットを用いて証明データ生成装置２００を正しく作動させることができる。従って、悪意の第三者が、他のユーザのアクセスチケットを不正に手に入れたとしても、この第三者がアクセスチケットの発行先である正規のユーザのユーザ固有情報を手に入れないかぎり、このアクセスチケットを利用することは不可能である。
【００３０】
２）アクセスチケットはさらに厳密な安全性を保持している。即ち、悪意の第三者が任意個数のアクセスチケットを集めて、いかなる解析を行ったとしても、得られた情報をもとに別のアクセスチケットを偽造したり、証明データ生成装置２００の動作を模倣して認証を成立させるような装置を構成することは不可能である。
【００３１】
【実施例】
以下では、より具体的な構成について実施例に即して説明する。なお、各実施例の証明データ検証装置１００および証明データ生成装置２００の構成を示す図および動作を説明する図は以下のとおりである。
【００３２】
【表１】
0003867388.tif 000002
【００３３】
［実施例１］
（図３、図４、図８）
本実施例は乱数効果を用いず、また、証明データ検証装置１００側で復号を行なうものである。
【００３４】
本実施例では、証明データ生成制御情報により利用期間限定を行う場合を考える。
【００３５】
ｐ個の元を持つ有限体Ｆp（ｐは３より大きい素数をべき乗した値）上の楕円曲線Ｅ：ｙ2＝ｘ3＋ａｘ＋ｂ（ただし、４ａ3＋２７ｂ2≠０）をえらび、Ｅ上の一点をＰとする。
【００３６】
ここで、アクセス資格認証の特徴情報をＸとし、点Ｙを式（１−１）のようにして生成する。
【００３７】
【数１】
（１−１）      Ｙ＝ＸＰ
次に、ユーザを識別するために、ユーザ毎に異なる数であるユーザ固有情報ｅを定め、アクセス資格認証の条件を定めた証明データ生成制御情報をＬとする。アクセスチケットｔは次の式（１−２）に基づいて生成される。
【００３８】
【数２】
（１−２）      ｔ＝Ｘ−Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
Ｘをアクセスチケット秘密鍵、Ｙをアクセスチケット公開鍵と呼ぶ。
【００３９】
関数Ｆは関数値が衝突しにくい関数であり、例えば、一方向ハッシュ関数ｈを利用して、式（１−３）あるいは式（１−４）のように定めることができる。
【００４０】
【数３】
（１−３）      Ｆ（ｘ，ｙ）＝ｈ（ｘ｜ｙ）
（１−４）      Ｆ（ｘ，ｙ，ｚ，ｗ）＝ｈ（ｘ｜ｙ｜ｚ｜ｗ）
ここで、「ｘ｜ｙ」はｘとｙとのビットの連結であることを表す。
【００４１】
一方向ハッシュ関数とは、ｈ（ｘ）＝ｈ（ｙ）を満たす相異なるｘ、ｙを算出することが著しく困難であるという性質をもつ関数である。一方向ハッシュ関数の例として、ＲＳＡ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃ．によるＭＤ２、ＭＤ４、ＭＤ５、米国連邦政府による規格ＳＨＳ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ｓｔａｎｄａｒｄ）が知られている。
【００４２】
また、Ｅ上の点ｕと点Ｃを以下のように定める。
点ｕは、上記点Ｐを適当な乱数ｚ倍した数であり、即ち、式（１−５）を満たす。
【００４３】
【数４】
（１−５）      ｕ＝ｚＰ
また、以下では暗号化されるデータＫを検証用データ、証明データ生成装置２００が証明のために生成するデータＲを証明用データとよぶ。また、証明データ生成装置２００が証明データを生成するために、証明データ検証装置１００から受け取るデータ、及び、証明データ検証装置１００が復号された値を検証するために用いるデータを認証用データとよぶ。
【００４４】
検証用データＫをＥ上の点Ｍに対応させる。点Ｃはアクセスチケット公開鍵Ｙを、上記乱数ｚ倍した数と、点Ｍとの和であり、式（１−６）を満たす。
【００４５】
【数５】
（１−６）      Ｃ＝Ｍ＋ｚＹ
データＫを点Ｍに対応させる方法としては、例えば、「暗号・ゼロ知識証明・数論」（情報処理学会監修／岡本・大田編）共立出版のｐｐ．２３１に述べられているような方法を用いることができる。
【００４６】
検証用データＫを証明データ検証装置１００に保持せず、代わりに、その暗号化の結果であるＣのみを保持するように証明データ検証装置１００を構成すれば、証明データ検証装置１００から検証用データＫが漏洩する危険を回避することができる。
【００４７】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図４に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図８に示す。
【００４８】
図３において、証明データ生成装置２００は、証明データ生成手段２０２、第１の記憶手段２０５、第２の記憶手段２０６、第３の記憶手段２０７、第４の記憶手段２０８および時計２０９を含んで構成されている。第１の記憶手段２０５は、認証用データを記憶するものであり、第２の記憶手段２０６は証明データ生成制御情報を記憶するものである（図１の証明データ生成制御情報記憶部２０４に対応）。第３の記憶手段２０７はアクセスチケットを記憶するものである（図１のアクセスチケット記憶部２０３に対応）。そして第４の記憶手段２０８は、ユーザ固有情報を記憶するものである（図１のユーザ固有情報記憶部２０１に対応）。
【００４９】
また、図４において、証明データ検証装置１００は、実行手段１０３、アクセスチケット公開鍵記憶部１０４、認証用素データ記憶部１０５、認証用データ記憶部１０６、受信データ記憶部１０７および検証用演算部１０８を含んで構成されている。
【００５０】
以下に本実施例の動作を示す。
【００５１】
１．ユーザが、アクセス資格認証装置による認証を必要とするデジタルコンテンツにアクセスすることによって、証明データ検証装置１００が起動される。
【００５２】
証明データ検証装置１００がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムの一部として構成されている場合、ユーザがキーボードあるいはマウスなどの指示装置を用いた通常の方法で、アプリケーションプログラムを起動する。アプリケーションプログラムの実行が証明データ検証装置１００を構成しているプログラムに到達することによりことにより、証明データ検証装置１００が起動される。
【００５３】
証明データ検証装置１００がネットワークで結ばれた他のＰＣあるいはワークステーション（サーバと呼ぶ）上に構成されている場合、ユーザは自分のＰＣあるいはワークステーション上の通信プログラムを起動し、その通信プログラムが所定の手続きに従って上記サーバに通信の開設要求を行うことにより、上記サーバ上の証明データ検証装置１００が起動される。例えば、ユーザの通信プログラムがサーバと通信する際にＴＣＰ／ＩＰと呼ばれる手続きに従うとすると、証明データ検証装置１００をサーバの特定のポートに予め対応づけておき、更に、ユーザの通信プログラムがそのポートを指定してＴＣＰ接続要求をサーバに要求するように設定しておくことにより、サーバ上のデーモン（ｉｎｅｔｄ）がＴＣＰ接続要求に応じて証明データ検証装置１００を起動することが可能となる。このような実現方法は、インターネットなどのネットワークにおいて広く利用されているものである。
【００５４】
証明データ検証装置１００を専用目的の装置とすることも可能である。例えば、証明データ検証装置１００をＩＣカード・リーダ・ライター内のＲＯＭに焼きつけられたプログラムとして構成し、証明データ生成装置２００をＩＣカードのマイクロコントローラーに実装されたプログラムとすることができる。この場合、ユーザがＩＣカードをリーダ・ライターに挿入することにより、証明データ検証装置１００が起動される。
【００５５】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【００５６】
本実施例では、認証用データｕ’は認証用素データｕである。
【００５７】
【数６】
（１−７）      ｕ’＝ｕ
【００５８】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【００５９】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶手段）に記憶されているアクセスチケットｔを取得し、式（１−８）を実行してＳを得る。
【００６０】
【数７】
（１−８）      Ｓ＝ｔｕ’
【００６１】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶手段）に記憶されているユーザの固有情報ｅを取得し、式（１−９）の計算を実行する。
【００６２】
【数８】
（１−９）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【００６３】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（１−１０）の計算を実行しＳ’を得る。
【００６４】
【数９】
（１−１０）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【００６５】
７．続いて証明データ生成手段２０２は、第一および第二演算部からＳ’およびＳを得て、式（１−１１）の計算を行いＲを得る。
【００６６】
【数１０】
（１−１１）      Ｒ＝Ｓ＋Ｓ’
【００６７】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【００６８】
９．証明データ検証装置１００の検証用演算部１０８（図１の検証手段１０２）は、認証用データ記憶部１０６から認証用データＣを取り出し、式（１−１２）の計算を行う。
【００６９】
【数１１】
（１−１２）      Ｍ’＝Ｃ−Ｒ
【００７０】
１０．検証用演算部１０８は点Ｍ’に対応するデータＫ’を計算する。
点Ｍ’をデータＫ’に対応させる方法としては、例えば前述した、「暗号・ゼロ知識証明・数論」（情報処理学会監修／岡本・大田編）共立出版のｐｐ．２３１に述べられているような方法を用いることができる。
【００７１】
証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【００７２】
以下、証明データ検証装置１００において、ＫとＫ’が同一であることを検証する方法について、いくつかの例を記す。
【００７３】
［１］検証用データと復号結果を直接比較する構成例
図１４に示す構成例では、検証手段１０２（検証用演算部１０８）は予め検証用データＫを記憶しておく。検証手段１０２中の比較部は、この検証用データＫと、認証用データを復号したデータＫ’とを直接比較し、Ｋ’＝Ｋが成立する場合に限り正規の処理を実行し、成立しない場合には処理を中止するなどのエラー処理を実行する。
【００７４】
この構成例では、検証すべき検証用データＫそのものが装置中に現れるという安全上の弱点がある。例えば、証明データ検証装置１００がユーザのＰＣあるいはワークステーション上で動作するプログラムとして構成されている場合、プログラムを解析してＫを窃取することは、困難であっても、必ずしも不可能ではない。Ｋの値がユーザの知るところとなると、証明データ生成装置２００の動作を模倣する装置を構成することが可能となり、なりすましによる不正アクセスが可能となる。
【００７５】
［２］一方向性関数を用いた構成例
上記の欠点を改善するため、図１５に示す構成例では、検証手段１０２が記憶している検証のためのデータを、検証用データＫそのものではなく、Ｋに前述の一方向ハッシュ関数ｈを施して得られるデータｈ（Ｋ）とする。一方向ハッシュ関数の性質から、証明データ記憶手段１１０に記憶されるデータｙから、ｙ＝ｈ（ｘ）を満たすｘを算出することは著しく困難である。
【００７６】
検証手段１０２は、入力データに対し一方向ハッシュ関数を施した結果を返す変換部を有する。比較部は、認証用データを復号したデータＫ’をハッシュ関数の入力として得られる出力ｈ（Ｋ’）と、記憶されているデータ（＝ｈ（Ｋ））とを比較する。
【００７７】
この方法例では、検証用データＫがプログラム中に現れることがなく、また、証明データ記憶手段１１０に記憶されたｈ（Ｋ）からＫを計算することも著しく困難であることから、上記［１］の例よりは安全であるといえる。
【００７８】
しかしながら、比較部はプログラム中では条件文として構成されており、証明データ検証装置１００がプログラムで、分析・改竄が容易であるような構成の場合には、その条件文をスキップするようにプログラムを改竄することが可能である点で、なお弱点を有している。
【００７９】
［３］復号された値が、特定のデータを復号するための復号鍵である構成例
図１６に示す構成例では、検証のために記憶されているデータが、暗号化されたデータであり、認証用データを復号したデータＫ’は、この暗号化されたデータを復号するための鍵である。
【００８０】
１０２検証手段は、データＫ’の値を、検証のために記憶されているデータを暗号化するのに用いた暗号の復号鍵として用いて復号し、その結果、暗号化されたデータが復号できた場合のみ、プログラムの実行を可能とする。
【００８１】
この構成でも、証明データ検証装置１００中に復号鍵そのものは現れないため、安全度は高くなっている。
【００８２】
［４］復号された値が特定の冗長性を満たすことを確認する構成例
図１７に示す構成例では、証明データ検証装置１００が冗長性検証手段をもち、検証手段１０２は、認証用データを復号したデータＫ’の値を、冗長性検証手段に送る。冗長性検証手段が、そのデータが特定の冗長性を満たすことを確認した場合のみ、プログラムの実行を可能とする。
【００８３】
冗長性の例としては、復号されたデータがある特定のパターンを繰り返していることや、特定の位置のデータが特定の条件を満たすこと、あるいは、データが特定の言語として意味があること、等があげられる。
【００８４】
［５］プログラムコード自体を暗号化する構成例
図１８に示す構成例では、証明データ検証装置１００が保持するプログラムのコードの一部或は全部を暗号化したデータを認証用データとして、認証用データ記憶部１０６に保持する。即ち、認証用データを復号したデータＫ’はプログラムのコードの一部或は全部となる。
【００８５】
実行手段１０３はデータＫ’を、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明データ生成装置２００が正しいデータを返信した場合、即ち、Ｋ’がコードを正しく復号したものである場合に限ってプログラムは実行可能となる。
【００８６】
実行手段１０３は復号されたコードを本来のプログラムに埋め込んだファイルを生成した後、そのファイルを起動してもよいが、プログラムがメモリ上に展開されている状態で、復号したコードをメモリ上のプログラムに埋め込んだのち起動する方法が、安全上は望ましい。
【００８７】
この構成例では、プログラムの実行に不可欠なコードの一部或は全部が暗号化されているため、実行手段１０３がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムとして構成されているような比較的安全性の低い場合でも、不正実行を防止することができる。
【００８８】
［６］復号された値がプログラムの復号鍵である構成例
図１９に示す構成例は、証明データ検証装置１００がプログラムのコードの一部或は全部を暗号化したデータを保持しており、認証用データを復号したデータＫ’が、暗号化したプログラムコードを復号するために必要な復号鍵となっているものである。この構成によると、暗号化するコードのサイズに関わらず、データＫ’のサイズを一定の小さい値に抑えることが可能となり、通信のオーバヘッドを減少させることができる。
【００８９】
検証手段１０２はデータＫ’を用いて、記憶している暗号化されたプログラムコードを復号する。実行手段１０３は、復号されたコードを、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明データ生成装置２００が正しいデータを返信していた場合、即ち、Ｋ’によってコードが正しく復号されていた場合に限ってプログラムは実行可能となる。
【００９０】
なお、本実施例では、楕円曲線Ｅをｙ2＝ｘ3＋ａｘ＋ｂとしたがそれ以外にも以下のような構成とすることも可能である。
【００９１】
標数２の有限体上の楕円曲線Ｅをｙ2＋ｃｙ≡ｘ3＋ａｘ＋ｂ  ｍｏｄ  ｐ（ただし、ｂ≠０）とし、楕円曲線を定義するパラメータとして、本実施例で示したものに加えてｃを証明データ生成装置２００に送付し、証明データ生成装置２００はユーザ固有情報、および証明データ生成制御情報を用いてＦ（ｐ，ｅ，ａ，ｂ，ｃ，Ｌ）を計算する。
【００９２】
標数２の有限体上の楕円曲線Ｅをｙ2＋ｘｙ≡ｘ3＋ａｘ＋ｂ  ｍｏｄ  ｐ（ただし、ａ≠０）とする。
【００９３】
標数３の有限体上の楕円曲線Ｅをｙ2≡ｘ3＋ａｘ2＋ｂｘ＋ｃ  ｍｏｄ  ｐとし、楕円曲線を定義するパラメータとして、本実施例で示したものに加えてｃを証明データ生成装置２００に送付し、証明データ生成装置２００はユーザ固有情報、および証明データ生成制御情報を用いてＦ（ｐ，ｅ，ａ，ｂ，ｃ，Ｌ）を計算し、これを元にＳ’を計算する。
【００９４】
これらの構成は、以下のすべての実施例に対して、同様に適用可能である。
【００９５】
［実施例２］
（図３、図５、図９）
本実施例は、乱数効果を付よせずに、また復号を証明データ生成装置２００側で行なうものである。
本発明の実施例２は、復号を証明データ生成装置２００側で行なう点で、実施例１と異なっている。
【００９６】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、認証用素データｕ，認証用データＣの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。また、楕円曲線上の点とデータを対応させる方法についても、実施例１と同様の方法を用いることができる。
【００９７】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図５に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図９に示す。なお、図５において、図４と対応する箇所には対応する符号を付した。この構成では、認証用データｕに加えてもう１つの認証用データＣも証明データ検証装置１００から証明データ生成装置２００に送られている。
【００９８】
以下、本実施例の動作について説明する。
【００９９】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０１００】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。証明データ検証装置１００は、証明データ検証装置１００は、認証用データｕ，Ｃと、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０１０１】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０１０２】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（図１のアクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（２−１）を実行してＳを得る。
【０１０３】
【数１２】
（２−１）      Ｓ＝ｔｕ
【０１０４】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（図１のユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（２−２）の計算を実行する。
【０１０５】
【数１３】
（２−２）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０１０６】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（２−３）の計算を実行しＳ’を得る。
【０１０７】
【数１４】
（２−３）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ
【０１０８】
７．続いて証明データ生成手段２０２は、第一および第二の演算部からＳ’およびＳを得て、式２−４の計算を行いＲを得る。
【０１０９】
【数１５】
（２−４）      Ｒ＝Ｃ−Ｓ−Ｓ’
【０１１０】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０１１１】
９．検証用演算部１０８（図１の検証手段１０２）は点Ｒに対応するデータＫ’を計算する。証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１１２】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０１１３】
［実施例３］
（図３、図７、図１０）
本発明の実施例３も、実施例１の構成を変更したものである。本実施例では、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号を用い、復号を証明データ検証装置１００側で行なっている。
【０１１４】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。また、楕円曲線上の点とデータを対応させる方法についても、実施例１と同様の方法を用いることができる。
【０１１５】
なお、本実施例では、点Ｐの位数をｑとする。
【０１１６】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図１０に示す。
【０１１７】
証明データ生成装置２００は実施例１および実施例２と同様である。
【０１１８】
図７において、証明データ検証装置１００は、実行手段１０３、アクセスチケット公開鍵記憶部１０４、認証用素データ記憶部１０５、認証用データ記憶部１０６、受信データ記憶部１０７、検証用演算部１０８、乱数生成部１１１、乱数効果付与部１１２、乱数記憶部１１３および乱数効果除去部１１４を含んで構成されている。
【０１１９】
以下、本実施例の動作について説明する。
【０１２０】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０１２１】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。
【０１２２】
証明データ検証装置１００は、証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０１２３】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒをアクセスチケット公開鍵記憶部１０４に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１１３に記録する。
【０１２４】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（３−１）の計算を行う。
【０１２５】
【数１６】
（３−１）      ｕ’＝ｒｕ
このように、認証用データに乱数効果を加え、証明データ生成装置２００が返す証明データを検証する際に乱数効果を除去するように構成することにより、いわゆるリプレイアタックを防止することができる。これは、以下の実施例においても、同様である。
【０１２６】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０１２７】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（図１のアクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（３−２）を実行してＳを得る。
【０１２８】
【数１７】
（３−２）      Ｓ＝ｔｕ’
【０１２９】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（図１のユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（３−３）の計算を実行する。
【０１３０】
【数１８】
（３−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０１３１】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（３−４）の計算を実行しＳ’を得る。
【０１３２】
【数１９】
（３−４）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０１３３】
７．続いて証明データ生成手段２０２は、第一および第二の演算部からＳ’およびＳを得て、式（３−５）の計算を行いＲを得る。
【０１３４】
【数２０】
（３−５）      Ｒ＝Ｓ＋Ｓ’
【０１３５】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０１３６】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出して、まず式（３−６）の計算を行う。
【０１３７】
【数２１】
（３−６）      ｖ＝（ｒ-1  ｍｏｄ  ｑ）Ｒ
次いで、計算の結果得られたｖと、認証用データ記憶部１０６に記憶されているＣを用いて、式（３−７）の計算を行う。
【０１３８】
【数２２】
（３−７）      Ｍ’＝Ｃ−ｖ
【０１３９】
１０．検証用演算部１０８（検証手段１０２）は点Ｍ’に対応するデータＫ’を計算する。証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１４０】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０１４１】
［実施例４］
（図３、図６、図１１）
本発明の実施例４は、実施例２の構成を変更したものである。本実施例では、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号を用い、復号を証明データ生成装置２００側で行なっている。
【０１４２】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。
【０１４３】
また、楕円曲線上の点とデータを対応させる方法についても、実施例１と同様の方法を用いることができる。
【０１４４】
なお、本実施例では、点Ｐの位数をｑとする。
【０１４５】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図６に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図１１に示す。
【０１４６】
以下、本実施例の動作について説明する。
【０１４７】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０１４８】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。
【０１４９】
証明データ検証装置１００は、証明データ検証装置１００は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０１５０】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒをアクセスチケット公開鍵記憶部１０４に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１１３に記録する。
【０１５１】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（４−１）の計算を行う。
【０１５２】
【数２３】
（４−１）      ｕ’＝ｒｕ
また、認証用データＣ’は、次のように生成される。すなわち、認証用データ記憶部１０６に記憶されているデータＣを取得して、式（４−２）の計算を行う。
【０１５３】
【数２４】
（４−２）      Ｃ’＝ｒＣ
【０１５４】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０１５５】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（４−３）を実行してＳを得る。
【０１５６】
【数２５】
（４−３）      Ｓ＝ｔｕ’
【０１５７】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（４−４）の計算を実行する。
【０１５８】
【数２６】
（４−４）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０１５９】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（４−５）の計算を実行しＳ’を得る。
【０１６０】
【数２７】
（４−５）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０１６１】
７．続いて証明データ生成手段２０２は、第一および第二の演算部からＳ’およびＳを得て、式（４−６）の計算を行いＲを得る。
【０１６２】
【数２８】
（４−６）      Ｒ＝Ｃ’−Ｓ−Ｓ’
【０１６３】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０１６４】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０４から点Ｐの位数ｑを取り出して、式（４−７）の計算を行う。
【０１６５】
【数２９】
（４−７）      Ｍ’＝（ｒ-1  ｍｏｄ  ｑ）Ｒ
【０１６６】
１０．検証手段は点Ｍ’に対応するデータＫ’を計算する。証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
Ｋ’と検証用データとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０１６７】
［実施例５］
（図３、図７、図１２）
本発明の実施例５は、実施例１の構成を変更したものである。本実施例では、ＥｌＧａｍａｌ暗号を用い、証明データ検証装置１００側で復号を行なう。
【０１６８】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。
また、楕円曲線上の点とデータを対応させる方法についても、実施例１と同様の方法を用いることができる。
【０１６９】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図１２に示す。
【０１７０】
以下、本実施例の動作について説明する。
【０１７１】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０１７２】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。
【０１７３】
証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０１７４】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒを生成し、乱数記憶部１１３に記録する。
【０１７５】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（５−１）の計算を行う。
【０１７６】
【数３０】
（５−１）      ｕ’＝ｕ＋ｒＰ
【０１７７】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０１７８】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（５−２）を実行しＳを得る。
【０１７９】
【数３１】
（５−２）      Ｓ＝ｔｕ’
【０１８０】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（５−３）の計算を実行する。
【０１８１】
【数３２】
（５−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０１８２】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（５−４）の計算を実行しＳ’を得る。
【０１８３】
【数３３】
（５−４）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０１８４】
７．続いて証明データ生成手段２０２は、第一および第二演算部からＳ’およびＳを得て、式（５−５）の計算を行いＲを得る。
【０１８５】
【数３４】
（５−５）      Ｒ＝Ｓ＋Ｓ’
【０１８６】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０１８７】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、まず式（５−６）の計算を行う。
【０１８８】
【数３５】
（５−６）      ｖ＝Ｒ−ｒＹ
次に認証用データ記憶部１０６からＣを取り出して、上記ｖの値を用いて式（５−７）の計算を行う。
【０１８９】
【数３６】
（５−７）      Ｍ’＝Ｃ−ｖ
【０１９０】
１０．検証用演算部１０８（検証手段３）は点Ｍ’に対応するデータＫ’を計算する。証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１９１】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０１９２】
［実施例６］
（図３、図６、図１３）
本発明の実施例６は、実施例２の構成を変更したものでる。本実施例では、ＥｌＧａｍａｌ暗号を用い、証明データ生成装置２００側で復号を行なう。
【０１９３】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。
【０１９４】
また、楕円曲線上の点とデータを対応させる方法についても、実施例１と同様の方法を用いることができる。
【０１９５】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図６に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図１３に示す。
【０１９６】
以下、本実施例の動作について説明する。
【０１９７】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０１９８】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０６には、認証用データとしてＥ上の点Ｃが記憶されている。
【０１９９】
証明データ検証装置１００は、証明データ検証装置１００は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。ただし、Ｃ’＝Ｃである。
【０２００】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒを生成し、乱数記憶部１１３に記録する。
【０２０１】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（６−１）の計算を行う。
【０２０２】
【数３７】
（６−１）      ｕ’＝ｕ＋ｒａ
【０２０３】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０２０４】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（６−２）を実行してＳを得る。
【０２０５】
【数３８】
（６−２）      Ｓ＝ｔｕ’
【０２０６】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（６−３）の計算を実行する。
【０２０７】
【数３９】
（６−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０２０８】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（６−４）の計算を実行しＳ’を得る。
【０２０９】
【数４０】
（６−４）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０２１０】
７．続いて証明データ生成手段２０２は、第一および第二の演算部からＳ’およびＳを得て、式（６−５）の計算を行いＲを得る。
【０２１１】
【数４１】
（６−５）      Ｒ＝Ｃ’−Ｓ−Ｓ’
【０２１２】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０２１３】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０４からＹを取り出して、式（６−６）の計算を行う。
【０２１４】
【数４２】
（６−６）      Ｍ’＝Ｒ＋ｒＹ
【０２１５】
１０．検証手段は点Ｍ’に対応するデータＫ’を計算する。証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２１６】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０２１７】
［実施例７］
（図３、図４、図２０）
本発明の実施例７は、実施例１の構成を変更したものである。この実施例では、検証用のデータＫに所定のマスク演算を行ない認証用データとして用い、また、復号を証明データ検証装置１００側で行なう。
【０２１８】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、認証用素データｕの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例１と同様である。
【０２１９】
本実施例では、証明データをＫとする。そして、式（７−１）により、アクセスチケット公開鍵Ｙを、上記適当な乱数ｚ倍したＥ上の点Ｃ（ｃx，ｃy）を生成する。
【０２２０】
【数４３】
（７−１）      Ｃ（ｃx，ｃy）＝ｚＹ
さらに、上記証明データＫと点Ｃのｘ座標の値ｃxとの排他的論理和をとったものを、認証用データｃとする。
【０２２１】
【数４４】
（７−２）      ｃ＝Ｋ［＋］ｃx
［＋］は排他的論理和を表す。
【０２２２】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図４に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図２０に示す。
【０２２３】
以下に本実施例の動作を示す。
ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０２２４】
２．認証用データ記憶部１０６には、認証用データとしてｃが記憶されている。証明データ検証装置１００は、認証用データｕ’（＝ｕ）と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０２２５】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０２２６】
４．続いて証明データ生成手段２０２は、アクセスチケット記憶手段に記憶されているアクセスチケットｔを取得し、式（７−３）を実行してＳを得る。
【０２２７】
【数４５】
（７−３）      Ｓ＝ｔｕ’
【０２２８】
５．続いて証明データ生成手段２０２は、ユーザ固有情報記憶手段に記憶されているユーザの固有情報ｅを取得し、式７−４の計算を実行する。
【０２２９】
【数４６】
（７−４）      Ｆ（ｐ，ｅ，ａ，ｂ．Ｌ）
【０２３０】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（７−５）の計算を実行しＳ’を得る。
【０２３１】
【数４７】
（７−５）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０２３２】
７．続いて証明データ生成手段２０２は、第一および第二演算部からＲ’およびＳを得て、式（７−６）の計算を行いＲを得る。
【０２３３】
【数４８】
（７−６）      Ｒ＝Ｓ＋Ｓ’
【０２３４】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０２３５】
９．証明データ検証装置１００の検証手段１０２は、認証データ記憶手段から認証用データｃを取り出し、証明データＲのｘ座標ｖxとの排他的論理和Ｋ’を計算する。
【０２３６】
【数４９】
（７−７）      Ｋ’＝ｖx［＋］ｃ（ただし点Ｒの座標を（ｖx，ｖy）とする）
【０２３７】
１０．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２３８】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０２３９】
［実施例８］
（図３、図５、図２１）
本発明の実施例８は、実施例７の構成を変更したものである。本実施例では、所定のマスク演算を実行し、また復号を証明データ生成装置２００側で行なう。
【０２４０】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、認証用素データｕ、認証用データｃの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例７と同様である。
【０２４１】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図５に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図２１に示す。
【０２４２】
以下、本実施例の動作について説明する。
【０２４３】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０２４４】
２．証明データ検証装置１００は、認証用データｕ’（＝ｕ）およびＣ’（＝ｃ）と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するためのパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０２４５】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０２４６】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（８−１）を実行してＳを得る。
【０２４７】
【数５０】
（８−１）      Ｓ＝ｔｕ’
【０２４８】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（８−２）の計算を実行する。
【０２４９】
【数５１】
（８−２）      Ｆ（ｐ，ｅ，ａ，ｂ）
【０２５０】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（８−３）の計算を実行しＳ’を得る。
【０２５１】
【数５２】
（８−３）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
【０２５２】
６．証明データ生成装置２００の証明データ生成手段は、第一および第二の演算部からＳ’およびＳを得て、式（８−４）の計算を行いＭを得る。
【０２５３】
【数５３】
（８−４）      Ｍ＝Ｓ＋Ｓ’
次に、証明用データｃと、点Ｍのｘ座標ｖxを用いて、式（８−５）の計算を行い、Ｒを得る。
【０２５４】
【数５４】
（８−５）      Ｒ＝ｖx［＋］Ｃ’（ただし点Ｌの座標を（ｖx，ｖy）とする）
【０２５５】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０２５６】
８．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、受信したＲと検証用データＫが一致し、正しく検証が行われる。
【０２５７】
Ｒと検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０２５８】
［実施例９］
（図３、図７、図２２）
本発明の実施例９は、実施例７の構成を変更したものである。本実施例では、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号を用い、所定のマスク演算を行ない、復号を証明データ検証装置１００側で行う。
【０２５９】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、認証用素データｕ，認証用データｃの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例７と同様である。なお、本実施例では、点Ｐの位数をｑであるとする。
【０２６０】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図２２に示す。
【０２６１】
以下、本実施例の動作について説明する。
【０２６２】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０２６３】
２．認証用データ記憶部１０６には、認証用データとしてｃが記憶されている。証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒをアクセスチケット公開鍵記憶部１０４に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１１３に記録する。
【０２６４】
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（９−１）の計算を行う。
【０２６５】
【数５５】
（９−１）  ｕ’＝ｒｕ
証明データ検証装置１００は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０２６６】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０２６７】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（９−２）を実行してＳを得る。
【０２６８】
【数５６】
（９−２）      Ｓ＝ｔｕ’
【０２６９】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（９−３）の計算を実行する。
【０２７０】
【数５７】
（９−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０２７１】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（９−４）の計算を実行しＳ’を得る。
【０２７２】
【数５８】
（９−４）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０２７３】
７．続いて証明データ生成手段２０２は、第一および第二の演算部からＳ’およびＳを得て、式（９−５）の計算を行いＲを得る。
【０２７４】
【数５９】
（９−５）      Ｒ＝Ｓ＋Ｓ’
【０２７５】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０２７６】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０４から点Ｐの位数ｑを取り出して、式（９−６）の計算を行う。
【０２７７】
【数６０】
（９−６）      ｖ＝（ｒ-1  ｍｏｄ  ｑ）Ｒ
【０２７８】
１０．証明データ検証装置１００の検証用演算部１０８（検証手段１０２）は、認証用データ記憶部１０６から認証用データｃを取り出し、ｃとｖのｘ座標ｖxとの排他的論理和Ｋ’を計算する。
【０２７９】
【数６１】
（９−７）      Ｋ’＝ｖx［＋］ｃ（ただし点ｖの座標を（ｖx，ｖy）とする）
【０２８０】
１１．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２８１】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０２８２】
［実施例１０］
（図３、図７、図２３）
本発明の実施例１０は、実施例７の構成を変更したものである。本実施例では、ＥｌＧａｍａｌ暗号を用い、所定のマスク演算を行ない、復号を証明データ検証装置１００側で行なう。
【０２８３】
本実施例において、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成、アクセスチケットｔ、認証用素データｕ，認証用データｃの生成方法、および証明データ生成制御情報の利用方法と、それぞれの満たすべき性質は、実施例７と同様である。
【０２８４】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図２３に示す。
【０２８５】
以下、本実施例の動作について説明する。
【０２８６】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０２８７】
２．認証用データ記憶部１０６には、認証用データとしてｃが記憶されている。証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒを生成し、乱数記憶部１１３に記録する。
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（１０−１）の計算を行う。
【０２８８】
【数６２】
（１０−１）  ｕ’＝ｕ＋ｒＰ
証明データ検証装置１００は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０２８９】
３．証明データ生成手段２０２は、証明データ生成制御情報内の利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎていないかを確かめる。このとき、もし利用期限時刻が証明データ生成装置２００の時計２０９が示す時刻を過ぎている場合は証明データ検証装置１００にエラーコードを返す。
【０２９０】
４．続いて証明データ生成手段２０２は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、式（１０−２）を実行しＳを得る。
【０２９１】
【数６３】
（１０−２）      Ｓ＝ｔｕ’
【０２９２】
５．続いて証明データ生成手段２０２は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（１０−３）の計算を実行する。
【０２９３】
【数６４】
（１０−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）
【０２９４】
６．続いて証明データ生成手段２０２は、指数生成手段で生成されたデータを用いて、式（１０−４）の計算を実行しＳ’を得る。
【０２９５】
【数６５】
（１０−４）      Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｌ）ｕ’
【０２９６】
７．続いて証明データ生成手段２０２は、第一および第二演算部からＳ’およびＳを得て、式（１０−５）の計算を行いＲを得る。
【０２９７】
【数６６】
（１０−５）      Ｒ＝Ｓ＋Ｓ’
【０２９８】
８．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０２９９】
９．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、まず式（１０−６）の計算を行う。
【０３００】
【数６７】
（１０−６）      ｖ＝Ｒ−ｒＹ
【０３０１】
１０．証明データ検証装置１００の検証手段は、認証用データ記憶部１０６から認証用データｃを取り出し、ｃとｖのｘ座標ｖxとの排他的論理和Ｋ’を計算する。
【０３０２】
【数６８】
（１０−７）      Ｋ’＝ｖx［＋］ｃ（ただし点Ｒの座標を（ｖx，ｖy）とする）
【０３０３】
１１．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３０４】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０３０５】
［実施例１１］
（図２４、図２５）
次に証明用データ生成制御情報のバリエーションとしていくつかの実施例を示す。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。本実施例では証明用データ生成制御情報が利用回数制限情報であり、予め定められた回数だけ認証やデータの復号を行うことができる場合について説明する。
【０３０６】
図２４は証明データ生成装置２００の構成の一例である。証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。本実施例の証明データ生成装置２００では時計２０９の代わりに、今までにアクセスチケットを用いて何回認証あるいは復号を行ったかを各アクセスチケット毎に記憶する第１１の記憶手段２１０を備える。証明用データ生成制御情報は対応するアクセスチケットを最大何回利用できるかという回数情報を示しており、証明用データ生成手段２０２内の証明用データ生成手段制御手段は証明用データ生成制御情報に記載されている回数情報と、第１１の記憶手段２１０に記憶されている対応するアクセスチケットの使用回数とを比較し、アクセスチケットの使用回数が証明用データ生成制御情報に記載されている回数情報以下である場合のみ、証明用データを生成し、その後第１１の記憶手段２１０に記憶されている対応するアクセスチケットの使用回数の値をインクリメントする。
【０３０７】
図２５は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることで回数券型の電子チケットを実現することができる。なお、図２５に示される内容は、図から容易に理解できるので、とくに説明を行なわない。
【０３０８】
［実施例１２］
（図２６、図２７）
本実施例では証明用データ生成制御情報が利用可能総時間情報であり、予め定められた時間だけ認証やデータの復号を行うことができる場合について説明する。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。
【０３０９】
図２６は証明データ生成装置２００の構成の一例である。本実施例においても証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２６に示すように本実施例では証明データ生成装置２００内に今までにアクセスチケットを用いて認証あるいは復号を行うことにより何時間サービスを享受したかを示す総利用時間を各アクセスチケット毎に記憶する第１２の記憶手段２１０および各回ごとのサービスを享受した時間を計測するサービス時間計測手段２１２を備える。サービス時間計測手段２１２は例えばサービスの開始時と終了時に必ず認証を行うようにしておけば証明用データを作成した時間の差を計算することによりサービス時間を計測するというように実現できるし、別の通信手段でサービスの開始時と終了時に信号を受け取りそこからサービス時間を計測するというように実現してもよい。また、さらにサービス時間計測手段２１２は証明データ生成装置２００内に存在する必然性はなく、サービス時間計測手段２１２から証明データ生成装置２００内に安全にサービス時間を知らせる方法があれば証明データ生成装置２００の外部にあってもよい。
【０３１０】
証明用データ生成制御情報は対応するアクセスチケットを最大何時間利用できるかという利用可能総時間情報を示しており、証明用データ生成手段２０２内の証明用データ生成手段制御手段は証明用データ生成制御情報に記載されている利用可能総時間情報と、第１２の記憶手段２１０に記憶されている対応するアクセスチケットの現時点での総利用時間とを比較し、アクセスチケットの総利用時間が証明用データ生成制御情報に記載されている利用可能総時間以下である場合のみ、証明用データを生成する。その後サービスが終了した段階で第１２の記憶手段２１０に記憶されている対応するアクセスチケットの利用可能総時間の値をサービス時間計測手段２１２により計測された時間だけ足す。またさらにサービスを享受している間にアクセスチケットの総利用時間とサービス時間計測手段２１２により計測された今回の利用時間との合計が第１２の記憶手段２１０に記憶されている利用可能総時間を超えた場合サービスを停止するよう促してもよい。
【０３１１】
図２７は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることで時間制限型の電子チケットを実現することができる。なお、図２７に示される内容も、図から容易に理解できるので、とくに説明を行なわない。
【０３１２】
［実施例１３］
（図２８、図２９）
本実施例では証明用データ生成制御情報が一回の利用に必要なポイントまたは料金情報であり、予め定められたポイントあるいは金額だけ認証やデータの復号を行うことができる場合について説明する。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。
【０３１３】
図２８は証明データ生成装置２００の構成の一例である。本実施例においても証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２８に示すように本実施例では証明データ生成装置２００内に認証または復号を行うに必要なポイント残数または残高情報を記憶する第１３の記憶手段２１３を備える。証明用データ生成制御情報は対応するアクセスチケットを用いた一回の認証または復号に必要なポイント数または金額情報を示しており、証明用データ生成手段２０２内の証明用データ生成手段制御手段は証明用データ生成制御情報に記載されている一回の認証または復号に必要なポイント数または金額情報と、第１３の記憶手段２１３に記憶されているポイント残数または残高情報とを比較し、ポイント残数または残高情報が一回の認証または復号に必要なポイント数または金額情報以上の場合にのみ、証明用データを生成する。その後、上記一回の認証または復号に必要なポイント数または金額分だけ第１３の記憶手段２１３に記憶されている値を減じる。なお、第１３の記憶手段２１３に記憶されている値は別手段により、書き換えることができる（ポイント数または金額の再充填）ようにしてもよい。
【０３１４】
図２９は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることでプリペイド型の電子チケットを実現することができる。なお、図２９に示される内容も、図から容易に理解できるので、とくに説明を行なわない。
【０３１５】
［実施例１４］
（図３０、図３１）
本実施例では証明用データ生成制御情報が処理記録（以下ログ）を出力するかしないかを定めた情報であり、認証または復号を行う際にログを記録する必要がある場合には必ずログを記録するようにする方法について説明する。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。
【０３１６】
現在、サービスを受けた時点でサービスに関するログを記録しておき、後でログに記載されているサービスに対して対価を払うポストペイド方式の支払い方式が存在する。この方式を実現するためにはサービスを提供する時に必ずログを残す必要があるが、さまざまな支払方式が混在する場面ですべての方式においてログを残すようにしておくと、プライバシーの侵害を招く恐れがある。そのためポストペイドサービスのようにログを残す必要がある場合にのみログを残すというように、ログを残すかどうかを制御する方法が必要である。
【０３１７】
図３０は証明データ生成装置２００の構成の一例である。本実施例においても証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図３０に示すように本実施例ではログ記録手段２１４を備える。証明用データ生成制御情報は認証あるいは復号の際にログを記録するかどうかを表わす情報であり、ログを記録するように記載されている場合には認証あるいは復号の際に証明用データ生成手段２０２内の証明用データ生成手段制御手段がログ記録手段に対し必要な情報を受け渡し、ログ記録手段２１４はその情報を記録する。
【０３１８】
図３１は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることで必要な場合にのみログを記録する方式を実現することができる。なお、図３１に示される内容も、図から容易に理解できるので、とくに説明を行なわない。
【０３１９】
［実施例１５］
（図３２、図３３）
本実施例では証明用データ生成制御情報がパスワードのように特定の個人しか知らない情報に関連するデータ、または声紋情報、指紋情報、アイリスパターン情報、網膜パターン情報などの個体識別情報に関するデータなどの個人認証情報に関する情報であり、これらのデータの照合が正しく行われた場合のみ認証やデータの復号を行うことができる方法について説明する。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。
【０３２０】
図３２は証明データ生成装置２００の構成の一例である。本実施例においても証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図３２に示すように本実施例では個人認証情報抽出手段２１４を備える。個人認証情報抽出手段２１４は証明データ生成装置２００内にあってもよいし外部にあってもよい。証明用データ生成制御情報は対応するアクセスチケットを用いて認証または復号を行うことができる個人の個人認証情報または個人認証情報が取りうる範囲の情報を示しており、証明用データ生成手段２０２内の証明用データ生成手段制御手段は証明用データ生成制御情報に記載されている個人認証情報または個人認証情報が取りうる範囲の情報と、個人認証情報抽出手段２１４により与えられた情報とを比較して、同一あるいは有効範囲内であれば証明用データを生成する。
【０３２１】
図３３は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることで予め個人認証のためのデータベースを持たない状況でも認証や復号を行う際に個人認証を行うことができる。なお、図３３に示される内容も、図から容易に理解できるので、とくに説明を行なわない。
【０３２２】
［実施例１６］
（図３４、図３５）
本実施例では証明用データ生成制御情報がさまざまな処理を行うためのプログラムであり、そのプログラムの処理結果に基づいて認証または復号を行うかどうかを制御する場合について説明する。本実施例は実施例１から１０において利用期間限定に用いられた証明用データ生成制御情報の利用例に代わるものである。ここでの処理は上記の利用期間、利用回数、個人認証、ログの記録などさまざまな制御情報の組み合わせによる判断であったり、更には外部の構成要素２１５（図３４）と通信を行うことにより例えばサービスの提供者またはソフトウエアプログラムやデータの著者のエージェントと通信を行い、サービスの享受の許可を得、所定の金額をサービスの提供者またはソフトウエアプログラムやデータの著者の口座に振り込んだことを確認するというものでもよい。
【０３２３】
図３４は証明データ生成装置２００の構成の一例である。本実施例においても証明データ検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図３４に示すように本実施例では証明用データ生成制御情報に記載されたプログラムを実行する第２のプログラム実行手段２１６を備える。証明用データ生成手段２０２内の証明用データ生成手段制御手段は証明用データ生成制御情報に記載されているプログラムを第２のプログラム実行手段２１６において実行し、プログラムが特定の状態にて終了するまたは特定の状態にある場合にのみ、証明用データを生成する。
【０３２４】
図３５は証明用データ生成手段２０２の動作を示すフローチャートである。このようにすることで上記のさまざまな制御方法を復号した制御を実現することができ、また他の構成要素と通信を行うことによりより高度な条件や動作制御を前提とした認証や復号を実現することができる。なお、図３５に示される内容も、図から容易に理解できるので、とくに説明を行なわない。
【０３２５】
［実施例１７］
（図３、図４、図３６）
本実施例では、乱数を用いず、また復号を証明データ検証装置１００側で行なう。
【０３２６】
本発明における実施例１７では、アクセス資格認証の特徴情報Ｘは、法数ｐ（ｐは十分大きな素数）のもとでのＥｌＧａｍａｌ暗号の秘密鍵であり、Ｙが対応する公開鍵である。即ち、式（１７−１）を満たす。
【０３２７】
【数６９】
（１７−１）      Ｙ＝ａX  ｍｏｄ  ｐ
ここで、ａは位数ｐの有限体の乗法群の生成元、即ち、式（１７−２）及び（１７−３）を満たす。
【０３２８】
【数７０】
（１７−２）      ａ≠０
（１７−３）      ｍｉｎ｛ｘ＞０｜ａx＝１  ｍｏｄ  ｐ｝＝ｐ−１
次に、ユーザを識別するために、ユーザ毎に異なる数であるユーザ固有情報ｅを定め、アクセス資格認証の条件を定めた証明データ生成制御情報をＬとする。アクセスチケットｔは次の式（１７−４）に基づいて生成される。
【０３２９】
【数７１】
（１７−４）      ｔ＝Ｘ−Ｆ（ｐ，ｅ，Ｌ）
Ｘがアクセスチケット秘密鍵、Ｙがアクセスチケット公開鍵である。
【０３３０】
次に本実施例の動作を示す。
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図４に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図３６に示す。
【０３３１】
１．ユーザが、アクセス資格認証装置による認証を必要とするデジタルコンテンツにアクセスすることによって、証明データ検証装置１００が起動される。
【０３３２】
証明データ検証装置１００の実現方法として、ユーザのＰＣやワークステーション上で動作するアプリケーションプログラム、ユーザのＰＣやワークステーションとネットワークを介して接続されたサーバ上のサーバプログラム、あるいは、ＩＣカード・リーダ・ライターのような専用の装置のいずれも可能であることは、実施例１の場合と変わらない。これは、以降の実施例においても同様である。
【０３３３】
２．証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている法数ｐ、及び生成条件Ｌを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。認証用素データ記憶部１０５には、認証用素データとしてｕが、また、認証用データ記憶部１０６には、認証用データとしてＣが記憶されているが、それらは次の性質を満たす。
【０３３４】
ｕは、上記ａを法ｐのもとで適当な乱数ｚを指数としてべき乗した数であり、即ち、式（１７−５）を満たす。
【０３３５】
【数７２】
（１７−５）      ｕ＝ａz  ｍｏｄ  ｐ
ここで、検証用データを適当なデータＫとする時、Ｃは、アクセスチケット公開鍵Ｙを、法ｐのもとで、上記乱数ｚを指数としてべき乗した数と、検証用データＫとの積であり、式（１７−６）を満たす。
【０３３６】
【数７３】
（１７−６）      Ｃ＝ＹzＫ  ｍｏｄ  ｐ
検証用データＫを証明データ検証装置１００に保持せず、代わりに、その暗号化の結果であるＣのみを保持するように証明データ検証装置１００を構成すれば、証明データ検証装置１００から検証用データが漏洩する危険を回避することができる。
【０３３７】
また、本実施例では、認証用データｕ’は認証用素データｕと同一である。
【０３３８】
【数７４】
（１７−７）      ｕ’＝ｕ
【０３３９】
３．証明データ生成装置２００の第一演算部は、アクセスチケット記憶部に記憶されているアクセスチケットｔを取得し、受信データ記憶部１０７に書き込まれた法数ｐのもとで式（１７−８）を実行しＳを得る。
【０３４０】
【数７５】
（１７−８）      Ｓ＝ｕt  ｍｏｄ  ｐ
【０３４１】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（１７−９）の計算を実行する。
【０３４２】
【数７６】
（１７−９）      Ｆ（ｅ，ｐ，Ｌ）
【０３４３】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（１７−１０）の計算を実行しＳ’を得る。
【０３４４】
【数７７】
（１７−１０）      Ｓ’＝ｕF(e,p,L)  ｍｏｄ  ｐ
【０３４５】
６．証明データ生成装置２００の証明データ生成手段２０２は、第一および第二演算部からＳ’およびＳを得て、式（１７−１１）の計算を行いＲを得る。
【０３４６】
【数７８】
（１７−１１）      Ｒ＝Ｓ・Ｓ’  ｍｏｄ  ｐ
【０３４７】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０３４８】
８．証明データ検証装置１００の検証用演算部１０８（検証手段１０２）は、認証データ記憶部１０６から認証用データＣを取り出し、式（１７−１２）の計算を行う。
【０３４９】
【数７９】
（１７−１２）      Ｋ’＝Ｃ・Ｒ-1  ｍｏｄ  ｐ
【０３５０】
９．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３５１】
１０．計算されたＫ’は、証明データ検証装置１００の実行手段に引き渡されるが、実行手段はＫ’＝Ｋが成立する場合に限り正規の処理を実行する。
【０３５２】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０３５３】
［実施例１８］
（図３、図７、図３７）
本発明の実施例１８は、実施例１７の構成を変更したものである。復号は証明データ検証装置１００側で行なう。
【０３５４】
本実施例において、ＥｌＧａｍａｌ公開鍵暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、実施例１７と同様である。
【０３５５】
以下の実施例では、認証用データ及び証明データに乱数効果を付与することにより、通信路上でこれらのデータを盗まれた場合に、再使用を不可能とするような構成例を示す。
【０３５６】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図３７に示す。
【０３５７】
以下、本実施例の動作について説明する。
【０３５８】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０３５９】
２．証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている法数ｐ、及び生成条件Ｌを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０３６０】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０６には認証用データＣが記憶されている。
【０３６１】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒをアクセスチケット公開鍵記憶部１０４に保持されている法数ｐより１引いた値（ｐ−１）と互いに素になるように生成し、乱数記憶部１１３に記録する。
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（１８−１）により認証用データｕ’を計算する。
【０３６２】
【数８０】
（１８−１）      ｕ’＝ｕr  ｍｏｄ  ｐ
【０３６３】
３．証明データ生成装置２００の第一演算部は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、受信データ記憶部１０７に書き込まれた法数ｐのもとで式（１８−２）を実行しＳを得る。
【０３６４】
【数８１】
（１８−２）      Ｓ＝ｕ’t  ｍｏｄ  ｐ
【０３６５】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（１８−３）の計算を実行する。
【０３６６】
【数８２】
（１８−３）      Ｆ（ｐ，ｅ，Ｌ）
【０３６７】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（１８−４）の計算を実行しＳ’を得る。
【０３６８】
【数８３】
（１８−４）      Ｓ’＝ｕ’F(p,e,L)  ｍｏｄ  ｐ
【０３６９】
６．証明データ生成装置２００の証明データ生成手段は、第一および第二
の演算部からＳ’およびＳを得て、式（１８−５）の計算を行いＲを得る。
【０３７０】
【数８４】
（１８−５）      Ｒ＝Ｓ’Ｓ  ｍｏｄ  ｐ
【０３７１】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０３７２】
８．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、まず式（１８−６）の計算を行う。
【０３７３】
【数８５】
0003867388.tif 000003
次いで、計算の結果得られたｖと、認証用データ記憶部１０６に記憶されているＣを用いて、式（１８−７）の計算を行う。
【０３７４】
【数８６】
（１８−７）      Ｋ’＝Ｃ・ｖ-1  ｍｏｄ  ｐ
９．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３７５】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０３７６】
［実施例１９］
（図３、図６、図３８）
本発明の実施例１９は、実施例１８の構成を変更したものである。復号を証明データ生成装置２００側で行なう。
【０３７７】
本実施例において、ＥｌＧａｍａｌ公開鍵暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、実施例１７と同様である。
【０３７８】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図６に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図３８に示す。
【０３７９】
以下、本実施例の動作について説明する。
【０３８０】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０３８１】
２．証明データ検証装置１００は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０４に記憶されている法数ｐ、及び生成条件Ｌを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０３８２】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０６には認証用データＣが記憶されている。
【０３８３】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒをアクセスチケット公開鍵記憶部１０４に保持されている法数ｐより１引いた値（ｐ−１）と互いに素になるように生成し、乱数記憶部１１３に記録する。
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（１９−１）の計算により認証用データｕ’を計算する。
【０３８４】
【数８７】
（１９−１）      ｕ’＝ｕr  ｍｏｄ  ｐ
また、認証用データＣ’は、次のように生成される。
データ記憶手段に記憶されているデータＣを取得して、式（１９−２）の計算を行う。
【０３８５】
【数８８】
（１９−２）      Ｃ’＝Ｃr  ｍｏｄ  ｐ
【０３８６】
３．証明データ生成装置２００の第一演算部は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、受信データ記憶部１０７に書き込まれた法数ｐのもとで式（１９−３）を実行しＳを得る。
【０３８７】
【数８９】
（１９−３）      Ｓ＝ｕ’t  ｍｏｄ  ｐ
【０３８８】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（１９−４）の計算を実行する。
【０３８９】
【数９０】
（１９−４）      Ｆ（ｐ，ｅ，Ｌ）
【０３９０】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（１９−５）の計算を実行しＳ’を得る。
【０３９１】
【数９１】
（１９−５）      Ｓ’＝ｕ’F(p,e,L)  ｍｏｄ  ｐ
【０３９２】
６．証明データ生成装置２００の証明データ生成手段は、第一および第二
の演算部からＳ’およびＳを得て、式（１９−６）の計算を行いＲを得る。
【０３９３】
【数９２】
（１９−６）      Ｒ＝Ｃ’（Ｓ’Ｓ）-1  ｍｏｄ  ｐ
【０３９４】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０３９５】
８．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、式（１９−７）の計算を行う。
【０３９６】
【数９３】
0003867388.tif 000004
【０３９７】
９．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と証明データＫが一致し、正しく検証が行われる。
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０３９８】
［実施例２０］
（図３、図７、図３９）
本発明の実施例２０は、実施例１８の構成を変更したものである。実施例１８とは、認証の手法が異なっている。復号は同様に証明データ検証装置１００側で行なわれる。
【０３９９】
本実施例において、ＥｌＧａｍａｌ公開鍵暗号の構成、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、実施例１９と同様である。
【０４００】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図７に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図３９に示す。
【０４０１】
以下、本実施例の動作について説明する。
【０４０２】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０４０３】
２．証明データ検証装置１００は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０４に記憶されている法数ｐ、及び生成条件Ｌを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０４０４】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０６には認証用データＣが記憶されている。
【０４０５】
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒを生成し、乱数記憶部１１３に記録する。
【０４０６】
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（２０−１）により認証用データｕ’を計算する。
【０４０７】
【数９４】
（２０−１）      ｕ’＝ｕ・ａr  ｍｏｄ  ｐ
【０４０８】
３．証明データ生成装置２００の第一演算部は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、受信データ記憶部１０７に書き込まれた法数ｐのもとで式（２０−２）を実行しＳを得る。
【０４０９】
【数９５】
（２０−２）      Ｓ＝ｕ’t  ｍｏｄ  ｐ
【０４１０】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（２０−３）の計算を実行する。
【０４１１】
【数９６】
（２０−３）      Ｆ（ｐ，ｅ，Ｌ）
【０４１２】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（２０−４）の計算を実行しＳ’を得る。
【０４１３】
【数９７】
（２０−４）      Ｓ’＝ｕ’F(p,e,L)  ｍｏｄ  ｐ
【０４１４】
６．証明データ生成装置２００の証明データ生成手段は、第一および第二演算部からＳ’およびＳを得て、式（２０−５）の計算を行いＲを得る。
【０４１５】
【数９８】
（２０−５）      Ｒ＝Ｓ’Ｓ  ｍｏｄ  ｐ
【０４１６】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０４１７】
８．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、まず式（２０−６）の計算を行う。
【０４１８】
【数９９】
（２０−６）      ｖ＝Ｙ-r・Ｒ  ｍｏｄ  ｐ
次に認証用データ記憶部１０６からＣを取り出して、式（２０−７）の計算を行う。
【０４１９】
【数１００】
（２０−７）      Ｋ’＝Ｃ・ｖ-1  ｍｏｄ  ｐ
９．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４２０】
Ｋ’とＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０４２１】
［実施例２１］
（図３、図６、図４０）
本発明の実施例２１では、実施例１８、１９の構成を変更したものである。基本的な認証手法は実施例１９と同様であり、ただ、復号を実施例１８のように証明データ生成装置２００側で行なっている。
【０４２２】
本実施例では、ＥｌＧａｍａｌ公開鍵暗号の構成、アクセスチケットｔ、及び認証用素データｕ、認証用データＣの生成方法とそれぞれの満たすべき性質は、実施例１９と同様である。
【０４２３】
本実施例の証明データ生成装置２００の構成を図３に示し、証明データ検証装置１００の構成を図６に示す。また、本実施例の証明データ生成装置２００の動作および証明データ検証装置１００の動作を図４０に示す。
【０４２４】
以下、本実施例の動作について説明する。
【０４２５】
１．ユーザがアクセスすることによって、証明データ検証装置１００が起動される。
【０４２６】
２．証明データ検証装置１００は、認証用データｕ’，Ｃと、アクセスチケット公開鍵記憶部１０４に記憶されている法数ｐ、及び生成条件Ｌを、証明データ生成装置２００の第１の記憶手段２０５に書き込む。
【０４２７】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０６には認証用データＣが記憶されている。
証明データ検証装置１００は、乱数生成部１１１によって、乱数ｒを生成し、乱数記憶部１１３に記録する。
次いで、乱数効果付与部１１２は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式（２１−１）の計算により認証用データｕ’を計算する。
【０４２８】
【数１０１】
（２１−１）      ｕ’＝ｕ・ａr  ｍｏｄ  ｐ
【０４２９】
３．証明データ生成装置２００の第一演算部は、第３の記憶手段２０７（アクセスチケット記憶部２０３）に記憶されているアクセスチケットｔを取得し、受信データ記憶部１０７に書き込まれた法数ｐのもとで式（２１−２）を実行しＳを得る。
【０４３０】
【数１０２】
（２１−２）      Ｓ＝ｕ’t  ｍｏｄ  ｐ
【０４３１】
４．証明データ生成装置２００の指数生成手段は、第４の記憶手段２０８（ユーザ固有情報記憶部２０１）に記憶されているユーザの固有情報ｅを取得し、式（２１−３）の計算を実行する。
【０４３２】
【数１０３】
（２１−３）      Ｆ（ｐ，ｅ，Ｌ）
【０４３３】
５．証明データ生成装置２００の第二演算部は、指数生成手段で生成されたデータを用いて、式（２１−４）の計算を実行しＳ’を得る。
【０４３４】
【数１０４】
（２１−４）      Ｓ’＝ｕ’F(p,e,L)  ｍｏｄ  ｐ
【０４３５】
６．証明データ生成装置２００の証明データ生成手段は、第一および第二の演算部からＳ’およびＳを得て、式（２１−５）の計算を行いＲを得る。
【０４３６】
【数１０５】
（２１−５）      Ｒ＝Ｃ’（Ｓ’Ｓ）-1  ｍｏｄ  ｐ
【０４３７】
７．証明データ生成装置２００はＲを証明データ検証装置１００の受信データ記憶部１０７に返送する。
【０４３８】
８．証明データ検証装置１００の乱数効果除去部１１４は、乱数記憶部１１３から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０４からＹを取り出して、式（２１−６）の計算を行う。
【０４３９】
【数１０６】
（２１−６）      Ｋ’＝Ｙr・Ｒ  ｍｏｄ  ｐ
９．証明データ生成装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４４０】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０４４１】
【発明の効果】
以上説明したように、本発明によれば、第１に、電子化されたチケットの正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることができる。第２に、暗号化されたデジタル情報を条件付きで復号する場合に於いては、デジタル情報を復号して利用する際に復号を行うための条件等を設定でき、しかも復号を行うための条件等は暗号化されたデジタル情報自身とは独立であり、したがってユーザ毎に異なる条件等を割り当てることが容易で、しかも復号を行うための条件等が改竄された場合には正しくデジタル情報の復号が行われないようにすることができる。
【０４４２】
また、本発明によれば、認証の特徴情報に、有限体上での楕円曲線上で定義された、非対称鍵暗号系を用いることにより、ＲＳＡ公開鍵暗号等を用いる場合に比べて、鍵の長さを短くしても同等の安全性が得られ、かつ処理を高速に行うことができる。
【図面の簡単な説明】
【図１】  本発明の全体構成を示すブロック図である。
【図２】  本発明の他の全体構成を示すブロック図である。
【図３】  証明データ生成装置の構成を示すブロック図である。
【図４】  第１の証明データ検証装置の構成を示すブロック図である。
【図５】  第２の証明データ検証装置の構成を示すブロック図である。
【図６】  第３の証明データ検証装置の構成を示すブロック図である。
【図７】  第４の証明データ検証装置の構成を示すブロック図である。
【図８】  実施例１の動作を説明するフローチャートである。
【図９】  実施例２の動作を説明するフローチャートである。
【図１０】  実施例３の動作を説明するフローチャートである。
【図１１】  実施例４の動作を説明するフローチャートである。
【図１２】  実施例５の動作を説明するフローチャートである。
【図１３】  実施例６の動作を説明するフローチャートである。
【図１４】  復号結果の検証方法（復号結果を直接比較する場合）を示す図である。
【図１５】  復号結果の検証方法（一方向性関数を用いる場合）を示す図である。
【図１６】  復号結果の検証方法（復号された値が他のデータの復号鍵である場合）を示す図である。
【図１７】  復号結果の検証方法（復号された値の冗長性を検証する場合）を示す図である。
【図１８】  証明用データ生成手段の構成例を示す図である。
【図１９】  復号結果の検証方法（復号された値がプログラムコードの場合）を示すである。
【図２０】  実施例７の動作を説明するフローチャートである。
【図２１】  実施例８の動作を説明するフローチャートである。
【図２２】  実施例９の動作を説明するフローチャートである。
【図２３】  実施例１０の動作を説明するフローチャートである。
【図２４】  実施例１１における証明データ生成装置の構成例を示すブロック図である。
【図２５】  実施例１１における証明データ生成装置の動作を示すフローチャートである。
【図２６】  実施例１２における証明データ生成装置の構成例を示すブロック図である。
【図２７】  実施例１２における証明データ生成装置の動作を示すフローチャートである。
【図２８】  実施例１３における証明データ生成装置の構成例を示すブロック図である。
【図２９】  実施例１３における証明データ生成装置の動作を示すフローチャートである。
【図３０】  実施例１４における証明データ生成装置の構成例を示すブロック図である。
【図３１】  実施例１４における証明データ生成装置の動作を示すフローチャートである。
【図３２】  実施例１５における証明データ生成装置の構成例を示すブロック図である。
【図３３】  実施例１５における証明データ生成装置の動作を示すフローチャートである。
【図３４】  実施例１６における証明データ生成装置の構成例を示すブロック図である。
【図３５】  実施例１６における証明データ生成装置の動作を示すフローチャートである。
【図３６】  実施例１７の動作を説明するフローチャートである。
【図３７】  実施例１８の動作を説明するフローチャートである。
【図３８】  実施例１９の動作を説明するフローチャートである。
【図３９】  実施例２０の動作を説明するフローチャートである。
【図４０】  実施例２１の動作を説明するフローチャートである。
【符号の説明】
１００    証明データ検証装置
１０１    認証用データ記憶部
１０２    検証手段
１０３    実行手段
１０４    アクセスチケット公開鍵記憶部
１０５    認証用素データ記憶部
１０６    認証用データ記憶部
１０７    受信データ記憶部
１０８    検証用演算部（検証手段１０２）
２００    証明データ生成装置
２０１    ユーザ固有情報記憶部
２０２    証明データ生成手段
２０３    アクセスチケット記憶部
２０４    証明データ生成制御情報記憶部
２０５    第１の記憶手段（認証用データを記憶する手段）
２０６    第２の記憶手段（証明データ生成制御情報記憶部２０４）
２０７    第３の記憶手段（アクセスチケット記憶部２０３）
２０８    第４の記憶手段２０８（ユーザ固有情報記憶部２０１）
２０９    時計
３００    アクセスチケット生成装置
４００    証明データ生成制御情報生成装置
【図１】
0003867388.tif 000005
【図２】
0003867388.tif 000006
【図３】
0003867388.tif 000007
【図４】
0003867388.tif 000008
【図５】
0003867388.tif 000009
【図６】
0003867388.tif 000010
【図７】
0003867388.tif 000011
【図８】
0003867388.tif 000012
【図９】
0003867388.tif 000013
【図１０】
0003867388.tif 000014
【図１１】
0003867388.tif 000015
【図１２】
0003867388.tif 000016
【図１３】
0003867388.tif 000017
【図１４】
0003867388.tif 000018
【図１５】
0003867388.tif 000019
【図１６】
0003867388.tif 000020
【図１７】
0003867388.tif 000021
【図１８】
0003867388.tif 000022
【図１９】
0003867388.tif 000023
【図２０】
0003867388.tif 000024
【図２１】
0003867388.tif 000025
【図２２】
0003867388.tif 000026
【図２３】
0003867388.tif 000027
【図２４】
0003867388.tif 000028
【図２５】
0003867388.tif 000029
【図２６】
0003867388.tif 000030
【図２７】
0003867388.tif 000031
【図２８】
0003867388.tif 000032
【図２９】
0003867388.tif 000033
【図３０】
0003867388.tif 000034
【図３１】
0003867388.tif 000035
【図３２】
0003867388.tif 000036
【図３３】
0003867388.tif 000037
【図３４】
0003867388.tif 000038
【図３５】
0003867388.tif 000039
【図３６】
0003867388.tif 000040
【図３７】
0003867388.tif 000041
【図３８】
0003867388.tif 000042
【図３９】
0003867388.tif 000043
【図４０】
0003867388.tif 000044