(57)【特許請求の範囲】
【請求項１】
ユーザの権限を証明するために証明部において生成された証明用データ（Ｒ）の正当性を検証部において検証することにより、上記ユーザの権限を認証する認証装置において、
上記証明部は、
認証用データ（Ｃ）を記憶する第１の記憶手段と、
上記証明用データの生成を行うための条件に関する制御情報（Ｌ）または上記証明用データの生成に際して処理記録を行うかどうかの指示に関する制御情報（Ｌ）を記憶する第２の記憶手段と、
第２の記憶手段に記憶されている上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に所定の認証用補助情報生成用の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、
証明用データ（Ｒ）を生成する証明用データ生成手段とを有し、
上記検証部は、
上記証明用データ生成手段により生成された上記証明用データが上記認証の特徴情報（Ｄ）に基づき生成されたものであるかどうかに依存する処理を行う検証手段を有し、
上記証明部の上記証明用データ生成手段は、
上記条件に関する制御情報（Ｌ）の条件判断を行ない、または上記指示に関する制御情報（Ｌ）に従い処理記録を行う証明用データ生成装置制御手段と、
上記制御情報（Ｌ）が上記証明用データの生成を行うための条件に関するものである場合には、上記証明用データ生成装置制御手段の上記条件判断に従い当該条件が満たされるときに少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）に対して証明用データ生成用の演算を実行して上記証明用データ（Ｒ）を生成し、当該条件が満たされないときには上記証明用データ（Ｒ）を生成せず、また、上記制御情報（Ｌ）が上記記録処理の指示に関するものである場合に、少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）に対して上記証明用データ生成用の演算を実行して上記証明用データ（Ｒ）を生成する第１の演算手段とを具備し、
上記第１の演算手段が、正当な認証用データ（Ｃ）、制御情報（Ｌ）および認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するように、上記認証用補助情報生成用の演算および上記証明用データ生成用の演算が選定されていることを特徴とする認証装置。
【請求項２】
請求項１記載の認証装置において、
さらに各ユーザ固有の情報（ｄｕ）を記憶する第４の記憶手段を具備し、
上記第３の記憶手段に記憶される上記証明用補助情報（ｔ）は、上記制御情報（Ｌ）および上記認証の特徴情報（Ｄ）、上記ユーザ固有情報（ｄｕ）に所定の演算を施して生成され、
上記証明用データ生成手段は、少なくとも上記ユーザ固有情報（ｄｕ）および上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、上記認証用データ（Ｃ）を用いて上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３】
請求項１または２記載の認証装置において、
上記第１の演算手段は、第２の演算手段と、第３の演算手段とから構成され、
上記第２の演算手段は、上記第２の記憶手段に記憶されている上記制御情報（Ｌ）および上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）、または上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記第４の記憶手段に記憶されている上記ユーザ固有情報（ｄｕ）に対し、所定の演算を施して上記認証の特徴情報（Ｄ）を算出し、
上記第３の演算手段は、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）および上記第２の演算手段によって算出された上記認証の特徴情報に対し、所定の演算を施して上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項４】
請求項１または２記載の認証装置において、
上記第１の演算手段は、第４の演算手段、第５の演算手段、および第６の演算手段とから構成され、
上記第４の演算手段は、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）および上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）に対して所定の演算を施し、
上記第５の演算手段は、上記認証用データ（Ｃ）および上記第２の記憶手段に記憶されている上記制御情報（Ｌ）、または上記認証用データ（Ｃ）、上記制御情報（Ｌ）、および上記第４の記憶手段に記憶されている上記ユーザ固有情報（ｄｕ）に対し、所定の演算を施し、
上記第６の演算手段は、上記第４の演算手段および上記第５の演算手段の計算結果に対し、所定の演算を施して上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項５】
請求項１〜４のいずれかに記載の認証装置において、
上記認証の特徴情報（Ｄ）は、上記認証用データ（Ｃ）の暗号化を行う暗号化鍵であり、
上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および該認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている上記証用データ（Ｃ）を暗号化することにより上記証明用データ（Ｒ）を生成し、
上記検証手段は上記認証用データが正しく暗号化されているかどうかを確認することにより検証を行うことを特徴とする認証装置。
【請求項６】
請求項５記載の認証装置において、
第１の乱数生成手段を備え、上記認証用データ（Ｃ）は上記第１の乱数生成手段により生成された乱数であることを特徴とする認証装置。
【請求項７】
請求項５記載の認証装置において、
第２の乱数生成手段と、
認証用素データ（Ｂ）を記憶する第５の記憶手段と、
上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段とを備え、
上記認証用データ（Ｃ）は上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果を施したものであることを特徴とする認証装置。
【請求項８】
請求項１〜４のいずれかに記載の認証装置において、
上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）は、特定データ（Ｋ）を暗号化鍵（Ｅ）で暗号化したものであり、
上記認証の特徴情報（Ｄ）は、上記特定データ（Ｋ）を暗号化した暗号化鍵（Ｅ）に対応する復号鍵であり、
上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、
上記検証手段は上記認証用データ（Ｃ）が正しく復号されているかどうかを確認することにより検証を行うことを特徴とする認証装置。
【請求項９】
請求項８記載の認証装置において、
上記特定データ（Ｋ）を記憶する第６の記憶手段を備え、
さらに上記検証手段内に２つのデータを比較し同じかどうかを判定する比較手段を備え、
上記検証手段は上記特定データ（Ｋ）と、上記証明用データ生成手段により生成された上記証明用データ（Ｒ）とを上記比較手段により比較することにより、検証を行うことを特徴とする認証装置。
【請求項１０】
請求項９記載の認証装置において、
上記第６の記憶手段に代わり上記特定データ（Ｋ）に対し非衝突一方向性関数を施した値（ＨＫ）を記憶する第７の記憶手段を備え、
さらに上記検証手段内にデータに対して非衝突一方向性関数を施した値を算出する第８の演算手段を備え、
上記検証手段は上記特定データ（Ｋ）と、上記証明用データ生成手段により生成された上記証明用データ（Ｒ）とに、それぞれに非衝突一方向性関数を施した値を比較することにより、検証を行うことを特徴とする認証装置。
【請求項１１】
請求項８記載の認証装置において、
上記特定データ（Ｋ）が、特定の桁の値が一定である、あるいは所定回数同じデータが繰り返されているなどの特徴を持ち、
該検証手段内に上記特徴を持つかどうかを判定する判定手段を具備し、
上記検証手段は該証明用データ生成手段により生成された証明用データ（Ｒ）が上記特定データ（Ｋ）と同様の特徴を持つかどうかを判断することにより検証を行うことを特徴とする認証装置。
【請求項１２】
請求項８記載の認証装置において、
入力を必要とする情報処理手段を備え、
上記特定データ（Ｋ）は上記情報処理手段の正しい入力であることを特徴とし、
上記検証手段は上記証明用データ生成手段により生成された上記証明用データ（Ｒ）を上記情報処理手段の入力として与え、上記情報処理手段が正常に動作することを確認することにより検証を行うことを特徴とする認証装置。
【請求項１３】
請求項８〜１０のいずれかに記載の認証装置において、
第１の乱数生成手段を備え、
上記特定データ（Ｋ）は上記第１の乱数生成手段により生成された乱数であることを特徴とする認証装置。
【請求項１４】
請求項８〜１２のいずれかに記載の認証装置において、
第２の乱数生成手段と、
上記特定データ（Ｋ）を暗号化したものである認証用素データ（Ｂ）を記憶する第５の記憶手段と、
上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段と、
上記証明用データ（Ｒ）に対し、乱数効果を除去する第９の演算手段とを備え、上記認証用データ（Ｃ）は、上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果をかけたものであり、
上記第９の演算装置にて上記証明用データ（Ｒ）の乱数効果を除去した結果に対し検証を行うことを特徴とする認証装置。
【請求項１５】
請求項１〜４のいずれかに記載の認証装置において、
上記該認証の特徴情報（Ｄ）は、デジタル署名関数における署名鍵であり、
上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）を用いて、上記第１の記憶装置に記憶されている上記認証用データ（Ｃ）に対して署名を行うことにより上記証明用データ（Ｒ）を生成し、
上記検証手段は上記証明用データ（Ｒ）が認証用データ（Ｃ）に対する正しい署名かどうかを確認することにより検証を行うことを特徴とする認証装置。
【請求項１６】
請求項１５記載の認証装置において、
第１の乱数生成手段を備え、
上記認証用データ（Ｃ）は上記第１の乱数生成手段により生成された乱数であることを特徴とする認証装置。
【請求項１７】
請求項１５記載の認証装置において、
第２の乱数生成手段と、
認証用素データ（Ｂ）を記憶する第５の記憶手段と、
上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段とを備え、
上記認証用データ（Ｃ）は上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果をかけたものであることを特徴とする認証装置。
【請求項１８】
請求項５〜１７のいずれかに記載の認証装置において、
上記第３の記憶手段に記憶されている認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）を第２の暗号化方法にて暗号化したものであり、
上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）を得て、それをもとに上記証明用データを生成することを特徴とする認証装置。
【請求項１９】
請求項５〜１７のいずれかに記載の認証装置において、
上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を第２の暗号化方法にて暗号化したものであり、
上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を得て、上記制御情報（Ｌ）と上記所定関数ｆの値の計算に用いた上記制御情報（Ｌ）とが同一であった場合のみ、上記認証の特徴情報（Ｄ）をもとに上記証明用データを生成することを特徴とする認証装置。
【請求項２０】
請求項５〜１７のいずれかに記載の認証装置において、
上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）を第２の暗号化方法にて暗号化したもの（ｔ１）と、
上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を引数に取る非衝突性一方向性関数の値（ｔ２＝ｇ（Ｄ，Ｌ））とからなり、
上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）を得て、上記認証の特徴情報（Ｄ）および上記所定の関数ｆの値の計算に用いた上記制御情報（Ｌ）とから非衝突性一方向性関数の値を算出した結果が、先に算出した非衝突性一方向関数の値（ｔ２）と同一であった場合のみ、上記認証の特徴情報（Ｄ）をもとに上記証明用データを生成することを特徴とする認証装置。
【請求項２１】
請求項１２記載の認証装置において、
上記特定データ（Ｋ）は保護を必要とするデジタルデータであり、
上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）とし、
上記証明用データ生成手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、
正しく認証された場合に結果として復号された保護を必要とするデジタルデータ（Ｋ）を得ることができることを特徴とする認証装置。
【請求項２２】
請求項１２記載の認証装置において、
上記特定データ（Ｋ）を鍵として復号されるように暗号化されたデータ（Ｘ）を保持する第１０の記憶手段を備え、
上記情報処理手段は、上記証明用データ（Ｒ）を鍵として上記第１０の記憶手段に格納されたデータ（Ｘ）を復号する第１０の演算手段であり、
上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）または上記認証用素データ（Ｂ）とし、
上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、
上記検証手段は、上記情報処理手段により上記証明用データ（Ｒ）または上記証明用データ（Ｒ）から乱数効果を除去したものを鍵として上記第８の記憶手段に記憶されている上記データ（Ｘ）を上記第１０の演算手段にて正常に復号できるかどうかを検証することを特徴とする認証装置。
【請求項２３】
請求項２１記載の認証装置において、
上記情報処理手段は、ソフトウエアプログラムを実行する第１のプログラム実行手段であり、
上記保護を必要とするデジタルデータがソフトウエアプログラムであり、上記証明用データを生成することにより上記ソフトウエアプログラムを復号して、上記第１のプログラム実行手段により上記ソフトウエアプログラムを実行することを特徴とする認証装置。
【請求項２４】
請求項２２記載の認証装置において、
上記特定データ（Ｋ）を鍵として復号されるように一部または全部を暗号化されたプログラム（Ｘ）を保持する第１０の記憶手段を備え、
上記情報処理手段は、上記証明用データ（Ｒ）を鍵として上記第１０の記憶手段に格納された上記プログラム（Ｘ）を復号する上記第１０の演算手段と、復号されたプログラムを実行する上記第１のプログラム実行手段とを含み、
上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）または上記認証用素データ（Ｂ）とし、
上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、
上記検証手段は、上記情報処理手段により上記証明用データ（Ｒ）または上記証明用データ（Ｒ）から乱数効果を除去したものを鍵として上記第１０の記憶手段に記憶されている上記プログラム（Ｘ）を復号して実行し、正常に動作するかどうかを検証することを特徴とする認証装置。
【請求項２５】
請求項５〜１７のいずれかに記載の認証装置において、
予め用意された、またはその場で生成された認証用データ（Ｃ）を記憶する第１１の記憶手段と、
上記証明用データ生成手段にて生成された証明用データ（Ｒ）を記憶する第１２の記憶手段と、
第１２の記憶手段に記憶された証明用データの正当性（Ｒ）を確認する検証手段とを具備した検証装置と、
上記認証用データ（Ｃ）を記憶する上記第１の記憶手段、上記制御情報（Ｌ）を記憶する上記第２の記憶手段、上記認証用補助情報（ｔ）を記憶する上記第３の記憶手段、および上記証明用データ生成手段を具備した証明装置とから構成され、
上記検証装置は上記第９の記憶手段に記憶されている認証用データ（Ｃ）を上記第１の記憶手段に書き出し、
上記証明装置は上記第１の記憶手段に書き込まれた認証用データ（Ｃ）をもとに証明用データ（Ｒ）を生成し、上記第９の記憶手段に書き込み、
上記検証装置は、上記第９の記憶手段に書き込まれた証明用データ（Ｒ）を用いて認証を行うことを特徴とする認証装置。
【請求項２６】
請求項５〜２５のいずれかに記載の認証装置において、
少なくとも上記第４の記憶手段または上記証明用データ生成手段の一部が、内部のデータを不正に外部から観測することを困難ならしめる防御手段中に保持されていることを特徴とする認証装置。
【請求項２７】
請求項５〜２６のいずれかに記載の認証装置において、
少なくとも上記第４の記憶手段または上記証明用データ生成手段の一部が、ＩＣカードを含む携帯可能な装置により実現されていることを特徴とする認証装置。
【請求項２８】
請求項５〜２７のいずれかに記載の認証装置において、
時刻を示す時計を備え、
上記制御情報（Ｌ）は、認証を行うことができる有効期間であり、
認証を行う時の時刻が上記有効期間内にある時のみ上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項２９】
請求項５〜２７のいずれかに記載の認証装置において、
今までに認証を行った回数を記録する第１３の記憶手段を備え、
上記制御情報（Ｌ）は、認証を行う回数有効範囲であり、
上記第１３の記憶手段の値が上記有効範囲内にある時のみ上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３０】
請求項５〜２７のいずれかに記載の認証装置において、
時刻を示す時計と、
認証を行った結果に従いサービスを開始した時間およびサービスを終了した時間からユーザがサービスを享受した時間を計算する第１１の演算手段と、
今までにユーザがサービスを享受した時間の合計値を記録する第１４の記憶手段を備え、
上記制御情報（Ｌ）は、総利用時間の値の有効範囲であり、
上記第１４の記憶手段の値が上記有効範囲内にある時のみ上記認証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３１】
請求項５〜２７のいずれかに記載の認証装置において、
認証を行うのに必要なポイント残数または残高情報を記憶する第１５の記憶手段を備え、
上記制御情報（Ｌ）は、一回の認証に必要なポイント数または金額情報であり、
上記第１５の記憶手段の値が上記一回の認証に必要なポイント数または金額情報以上の場合のみ上記証明用データ（Ｒ）を生成し、上記第１５の記憶手段に記憶されている値を上記制御情報（Ｌ）に対応する値だけ減ずることを特徴とする認証装置。
【請求項３２】
請求項５〜２７のいずれかに記載の認証装置において、
外部に認証を行った結果または認証を行った結果享受されるサービスに関する履歴を出力する機能を備え、
上記制御情報（Ｌ）は、履歴を出力するかどうかのフラグであり、
履歴を出力することが指定されている場合には認証の履歴を出力し、上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３３】
請求項５〜２７のいずれかに記載の認証装置において、
指紋、声紋、アイリスパターン、網膜パターンなどの個人を識別する特徴情報を抽出するための個体識別情報抽出手段を備え、
上記制御情報（Ｌ）は、個人を識別するための特徴情報または上記特徴情報が取り得る範囲であり、
上記個体識別情報抽出手段により抽出された特徴情報と上記証明用データの生成を行うための制御情報（Ｌ）の間に一定の関係がある場合にのみ上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３４】
請求項５〜２７のいずれかに記載の認証装置において、
パスワードを入力するための入力手段を備え、
上記制御情報（Ｌ）は上記入力手段からの入力であり、
上記パスワードが入力された場合に上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３５】
請求項５〜２７のいずれかに記載の認証装置において、
プログラムを実行するための第２のプログラム実行手段を備え、
上記制御情報（Ｌ）は上記第２のプログラム実行手段にて実行されるプログラムであり、
上記プログラムが実行された結果、特定の状態にあるまたは特定の状態で終了した場合に上記証明用データ（Ｒ）を生成することを特徴とする認証装置。
【請求項３６】
認証用データ（Ｃ）を記憶する第１の記憶手段、上記証明用データを生成するための条件に関する制御情報（Ｌ）を記憶する第２の記憶手段、少なくとも上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に予め所定の認証用補助情報生成用の演算を施して生成される認証用補助情報（ｔ）を記憶する第３の記憶手段、証明用データ生成装置制御手段、および第１の演算手段を具備する証明部と、検証手段を具備する検証部とを用いて、ユーザの権限を証明するために上記証明部において生成された証明用データ（Ｒ）の正当性を上記検証部において検証することにより、上記ユーザの権限を認証する方法において、
上記証明部において、上記第１の記憶手段に記憶されている認証用データ（Ｃ）を上記第１の演算手段に入力するステップと、
上記証明部において、上記第２の記憶手段に記憶されている上記証明用データの生成を行うための上記条件に関する制御情報（Ｌ）を上記証明用データ生成装置制御手段および上記第１の演算手段に入力するステップと、
上記証明部において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）を上記第１の演算手段に入力するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしているかどうかを上記証明用データ生成装置制御手段により判断するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしていると上記証明用データ生成装置制御手段により判断された場合には、上記第１の演算手段を用いて少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）に対して証明用データ生成用の演算を実行して証明用データ（Ｒ）を算出し、上記検証部側に送出するステップと、
上記検証部において、上記検証手段により、上記証明部側から受け取った上記証明用データが認証の特徴情報（Ｄ）に基づいて生成されていることを検証するステップとを有し、
上記第１の演算手段が、正当な認証用データ（Ｃ）、制御情報（Ｌ）および認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するように、上記認証用補助情報生成用の演算および上記証明用データ生成用の演算が選定されていることを特徴とする認証方法。
【請求項３７】
認証用データ（Ｃ）を記憶する第１の記憶手段、上記証明用データを生成するための条件に関する制御情報（Ｌ）を記憶する第２の記憶手段、少なくとも上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に予め所定の認証用補助情報生成用の演算を施して生成される認証用補助情報（ｔ）を記憶する第３の記憶手段、証明用データ生成装置制御手段、および第１の演算手段を具備する証明部と、検証手段を具備する検証部とを用いて、ユーザの権限を証明するために上記証明部において生成された証明用データ（Ｒ）の正当性を上記検証部において検証することにより、上記ユーザの権限を認証する、コンピュータで用いられる認証用プログラムをコンピュータで読み出し可能に記録する記録媒体において、
上記証明部において、上記第１の記憶手段に記憶されている認証用データ（Ｃ）を上記第１の演算手段に入力するステップと、
上記証明部において、上記第２の記憶手段に記憶されている上記証明用データの生成を行うための上記条件に関する制御情報（Ｌ）を上記証明用データ生成装置制御手段および上記第１の演算手段に入力するステップと、
上記証明部において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）を上記第１の演算手段に入力するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしているかどうかを上記証明用データ生成装置制御手段により判断するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしていると上記証明用データ生成装置制御手段により判断された場合には、上記第１の演算手段を用いて少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）に対して証明用データ生成用の演算を実行して上記証明用データ（Ｒ）を算出し、上記検証部側に送出するステップと、
上記検証部において、上記検証手段により、上記証明部側から受け取った上記証明用データが上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証するステップとを上記コンピュータに実行させるのに用いられ、
上記第１の演算手段が、正当な認証用データ（Ｃ）、制御情報（Ｌ）および認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するように、上記認証用補助情報生成用の演算および上記証明用データ生成用の演算が選定されていることを特徴とする上記記録媒体。
【請求項３８】
認証用データ（Ｃ）を記憶する第１の記憶手段、上記証明用データを生成するための条件に関する制御情報（Ｌ）を記憶する第２の記憶手段、少なくとも上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に予め所定の認証用補助情報生成用の演算を施して生成される認証用補助情報（ｔ）を記憶する第３の記憶手段、証明用データ生成装置制御手段および第１の演算手段を具備する証明部と、検証手段を具備する検証部とを用いて、ユーザの権限を証明するために上記証明部において生成された証明用データ（Ｒ）の正当性を上記検証部において検証することにより、上記ユーザの権限を認証する認証装置の上記証明部をなすコンピュータで用いられる証明用プログラムを当該コンピュータで読み出し可能に記録する記録媒体において、
上記証明部において、上記第１の記憶手段に記憶されている認証用データ（Ｃ）を入力するステップと、
上記証明部において、上記第２の記憶手段に記憶されている上記証明用データの生成を行うための上記条件に関する制御情報（Ｌ）を上記証明用データ生成装置制御手段および上記第１の演算手段に入力するステップと、
上記証明部において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）を上記第１の演算手段に入力するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしているかどうかを上記証明用データ生成装置制御手段により判断するステップと、
上記証明部において、入力された上記制御情報（Ｌ）が特定の条件を満たしていると上記証明用データ生成装置制御手段により判断された場合には、上記第１の演算手段を用いて少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）に対して証明用データ生成用の演算を実行して証明用データ（Ｒ）を算出し、上記検証部側に送出するステップとを上記コンピュータに実行させるのに用いられ、
上記第１の演算手段が、正当な認証用データ（Ｃ）、制御情報（Ｌ）および認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するように、上記認証用補助情報生成用の演算および上記証明用データ生成用の演算が選定されていることを特徴とする上記記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は利用期限等の制約に関連してサービス対象を利用する権限をユーザが有しているかどうかを認証する技術に関し、制約に関する情報が改竄されている場合には認証が失敗するようにしたものである。またこの発明は、暗号化されたメッセージを復号する復号技術に関し、特に利用期限情報や制御情報などの復号に関する権利に付随する情報が、改竄されていないことを検証し、改竄されていない時にのみ正しくメッセージが復号されるようにしたものである。
【０００２】
【従来の技術】
従来、サービス対象を利用する権限をユーザが有しているかどうかを認証する方法として、一般的には予め物理的なチケットやメンバーズカードを発行してもらい、サービスを享受する時点でチケットやメンバーズガードを提示する方法が取られてきた。この方法の場合、チケット等に記載された有効期限やサービスの種類等の情報をサービス提供者がその場で確認することで、条件の確認と認証を行ってきた。しかし、チケットそのものが物理的存在であるためにチケットの配送にコストがかかったり、チケットの偽造を困難にするためにチケットの製造自体にコストがかかってしまう欠点があった。この点についてはチケットを電子化することで配送や製造にかかわるコストを低減させることが可能である。このための技術として、特開昭６２−１７１０７１号公報の「予約取引用ＩＣカード」、特公平６−２２０３２号公報の「電子カードによる公共サービスの支払システム」がある。しかし、これらの技術ではサービスを享受した時点でチケットに相当する電子情報が無効化されるだけで、回数券型のチケットや利用期日制限と利用量制限の組み合わせといったより柔軟なチケットの実現に寄与するものではなかった。また、これらの技術はチケットを電子的に取り寄せる場合にカードとホストの間の通信の盗聴とリプレイ攻撃によるチケットの不正利用に対する防御策を持ち合わせていなかった。
【０００３】
また従来、暗号化されたデジタル情報について利用制限の機能を付加したものとして、特開平７−１３１４５２号公報の「デジタル情報保護方法及びその処理装置」に記載されている技術がある。特開平７−１３１４５２号公報の発明では、デジタル情報を情報識別番号と、情報本体と、利用条件情報及び認証子の組で表し、更に計算機内にデジタル情報を取り込んだ時に、情報識別番号および利用条件情報に関する第２の識別子を生成し、デジタル情報を利用する際は、２つの識別子による検証を行い、利用条件情報に記載されている利用条件を満たすかどうかの検証を行い、すべての検証が正常に終了した時のみデジタル情報を復号化して、利用できる形へ変換することを行っている。しかし、特開平７−１３１４５２号公報に記載されている方法では情報本体と利用条件の正当な組合せを保証するために両者を同一の暗号化鍵で暗号化するため、例えば利用者ごとに利用条件を変えようとすると、通信の度に暗号化を行うあるいは通信ごとに暗号化されたものを予め用意する必要があり、ＣＤ−ＲＯＭ等によるデジタル情報の多量の配布や、衛星放送などを利用したブロードキャストなどには向いていなかった。
【０００４】
【発明が解決しようとする課題】
本発明では上記の問題点を鑑み、サービス対象を利用する権限をユーザが有しているかどうかを認証する場合に於いて、従来のチケットに相当するものを電子化して、その電子情報の正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることを目的とする。
【０００５】
また更に暗号化されたデジタル情報を条件付きで復号する場合に於いては、デジタル情報を復号して利用する際に復号を行うための条件等を設定でき、しかも復号を行うための条件等は暗号化されたデジタル情報自身とは独立であり、したがってユーザ毎に異なる条件等を割り当てることが容易で、しかも復号を行うための条件等が改竄された場合には正しくデジタル情報の復号が行われないようにすることを目的とする。
【０００６】
【課題を解決するための手段】
以下、本発明を詳細に説明する。
【０００７】
［第１の側面］本発明の第１の側面によれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザの権限を認証する認証装置に：認証用データ（Ｃ）を記憶する第１の記憶手段と、上記証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段と；第２の記憶手段に記憶されている上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に所定の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と；上記制御情報（Ｌ）に従い所定の処理あるいは条件判断を行う証明用データ生成装置制御手段および上記証明用データ生成装置制御手段に従い少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）を用いて上記証明用データ（Ｒ）を生成する第１の演算手段を具備する証明用データ生成手段と；上記証明用データ生成手段により生成された上記証明用データが上記認証の特徴情報（Ｄ）に基づき生成されたものであるかどうかに依存する処理を行う検証手段とを設け、上記証明用データ生成手段は、それぞれ正当な認証用データ（Ｃ）、制御情報（Ｌ）および認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するようにしている。
【０００８】
この構成においては、制御情報と認証の特徴情報とから認証用補助情報を生成し、これを利用することにより、安全性を確保したままで、有効期限や利用回数制限、その他の条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることができる。
【０００９】
［第２の側面］また、上述の第１の側面において、さらに各ユーザ固有の情報（ｄｕ）を記憶する第４の記憶手段を設け、上記第３の記憶手段に記憶される上記証明用補助情報（ｔ）は、上記制御情報（Ｌ）および上記認証の特徴情報（Ｄ）、上記ユーザ固有情報（ｄｕ）に所定の演算を施して生成されるようにし、上記証明用データ生成手段は、少なくとも上記ユーザ固有情報（ｄｕ）および上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、上記認証用データ（Ｃ）を用いて上記証明用データ（Ｒ）を生成するようにしてもよい。
【００１０】
［第３の側面］また、第１または第２の側面において、上記第１の演算手段は、第２の演算手段と、第３の演算手段とから構成され、上記第２の演算手段は、上記第２の記憶手段に記憶されている上記制御情報（Ｌ）および上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）、または上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記第４の記憶手段に記憶されている上記ユーザ固有情報（ｄｕ）に対し、所定の演算を施して上記認証の特徴情報（Ｄ）を算出し、上記第３の演算手段は、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）および上記第２の演算手段によって算出された上記認証の特徴情報に対し、所定の演算を施して上記証明用データ（Ｒ）を生成するようにしてもよい。
【００１１】
［第４の側面］また第１の側面または第２の側面において、上記第１の演算手段は、第４の演算手段、第５の演算手段、および第６の演算手段とから構成され、上記第４の演算手段は、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）および上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）に対して所定の演算を施し、上記第５の演算手段は、上記認証用データ（Ｃ）および上記第２の記憶手段に記憶されている上記制御情報（Ｌ）、または上記認証用データ（Ｃ）、上記制御情報（Ｌ）、および上記第４の記憶手段に記憶されている上記ユーザ固有情報（ｄｕ）に対し、所定の演算を施し、上記第６の演算手段は、上記第４の演算手段および上記第５の演算手段の計算結果に対し、所定の演算を施して上記証明用データ（Ｒ）を生成するようにしてもよい。
【００１２】
［第５の側面］第１〜第４の側面において、上記認証の特徴情報（Ｄ）は、上記認証用データ（Ｃ）の暗号化を行う暗号化鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および該認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている上記証用データ（Ｃ）を暗号化することにより上記証明用データ（Ｒ）を生成し、上記検証手段は上記認証用データが正しく暗号化されているかどうかを確認することにより検証を行うようにしてもよい。
【００１３】
［第６の側面］第５の側面において、第１の乱数生成手段を備え、上記認証用データ（Ｃ）は上記第１の乱数生成手段により生成された乱数としてもよい。
【００１４】
［第７の側面］第５の側面において、第２の乱数生成手段と、認証用素データ（Ｂ）を記憶する第５の記憶手段と、上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段とを設け、上記認証用データ（Ｃ）は上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果を施したものであるようにしてもよい。
【００１５】
［第８の側面］第１〜第４の側面において、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）は、特定データ（Ｋ）を暗号化鍵（Ｅ）で暗号化したものであり、上記認証の特徴情報（Ｄ）は、上記特定データ（Ｋ）を暗号化した暗号化鍵（Ｅ）に対応する復号鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、上記検証手段は上記認証用データ（Ｃ）が正しく復号されているかどうかを確認することにより検証を行うようにしてもよい。
【００１６】
［第９の側面］第８の側面において、上記特定データ（Ｋ）を記憶する第６の記憶手段を設け、さらに上記検証手段内に２つのデータを比較し同じかどうかを判定する比較手段を設け、上記検証手段は上記特定データ（Ｋ）と、上記証明用データ生成手段により生成された上記証明用データ（Ｒ）とを上記比較手段により比較することにより、検証を行うようにしてもよい。
【００１７】
［第１０の側面］第９の側面において、上記第６の記憶手段に代わり上記特定データ（Ｋ）に対し非衝突一方向性関数を施した値（ＨＫ）を記憶する第７の記憶手段を設け、さらに上記検証手段内にデータに対して非衝突一方向性関数を施した値を算出する第８の演算手段を設け、上記検証手段は上記特定データ（Ｋ）と、上記証明用データ生成手段により生成された上記証明用データ（Ｒ）とに、それぞれに非衝突一方向性関数を施した値を比較することにより、検証を行うようにしてもよい。
【００１８】
［第１１の側面］第８の側面において、上記特定データ（Ｋ）が、特定の桁の値が一定である、あるいは所定回数同じデータが繰り返されているなどの特徴を持ち、該検証手段内に上記特徴を持つかどうかを判定する判定手段を設け、上記検証手段は該証明用データ生成手段により生成された証明用データ（Ｒ）が上記特定データ（Ｋ）と同様の特徴を持つかどうかを判断することにより検証を行うようにしてもよい。
【００１９】
［第１２の側面］第８の側面において、入力を必要とする情報処理手段を設け、上記特定データ（Ｋ）は上記情報処理手段の正しい入力であることを特徴とし、上記検証手段は上記証明用データ生成手段により生成された上記証明用データ（Ｒ）を上記情報処理手段の入力として与え、上記情報処理手段が正常に動作することを確認することにより検証を行うようにしてもよい。
【００２０】
［第１３の側面］第８〜１０の側面において、第１の乱数生成手段を設け、上記特定データ（Ｋ）を上記第１の乱数生成手段により生成された乱数としてもよい。
【００２１】
［第１４の側面］第８〜１２の側面において、第２の乱数生成手段と、上記特定データ（Ｋ）を暗号化したものである認証用素データ（Ｂ）を記憶する第５の記憶手段と、上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段と、上記証明用データ（Ｒ）に対し、乱数効果を除去する第９の演算手段とを設け、上記認証用データ（Ｃ）は、上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果をかけたものであり、上記第９の演算装置にて上記証明用データ（Ｒ）の乱数効果を除去した結果に対し検証を行うようにしてもよい。
【００２２】
［第１５の側面］第５〜１４の側面において、上記認証用データ（Ｃ）または上記特定データ（Ｋ）を暗号化する暗号化方式が非対称鍵暗号方式としてもよい。
【００２３】
［第１６の側面］第１５の側面において、上記非対称鍵暗号方式を公開鍵暗号方式としてもよい。
【００２４】
［第１７の側面］第５〜１４の側面において、上記該認証用データ（Ｃ）または上記特定データ（Ｋ）を暗号化する暗号化方式を対称鍵暗号方式としてもよい。
【００２５】
［第１８の側面］第１〜４の側面において、上記該認証の特徴情報（Ｄ）は、デジタル署名関数における署名鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）を用いて、上記第１の記憶装置に記憶されている上記認証用データ（Ｃ）に対して署名を行うことにより上記証明用データ（Ｒ）を生成し、上記検証手段は上記証明用データ（Ｒ）が認証用データ（Ｃ）に対する正しい署名かどうかを確認することにより検証を行うようにしてもよい。
【００２６】
［第１９の側面］第１８の側面において、第１の乱数生成手段を設け、上記認証用データ（Ｃ）を上記第１の乱数生成手段により生成された乱数としてもよい。
【００２７】
［第２０の側面］第１８の側面において、第２の乱数生成手段と、認証用素データ（Ｂ）を記憶する第５の記憶手段と、上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段にて生成された乱数にて乱数効果を付与する第７の演算手段とを設け、上記認証用データ（Ｃ）は上記認証用素データ（Ｂ）に対し、上記第２の乱数生成手段により生成された乱数で乱数効果をかけたものとしてもよい。
【００２８】
［第２１の側面］第１６の側面において、上記暗号化方式が法ｎ（ｎは十分大きな素数ｐ，ｑの積）のもとでのＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｅｌｍａｎ）公開鍵暗号方式であり、上記法数ｎを記憶する第８の記憶手段と、公開鍵Ｅを記憶する第９の記憶手段とを設け、認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式における上記公開鍵Ｅに対応する秘密鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および法数ｎ、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、法数ｎ、および該ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている認証用データ（Ｃ）を暗号化した証明用データ（Ｒ）を生成し、上記検証手段は、上記公開鍵Ｅの値だけべき乗し、その結果と上記認証用データ（Ｃ）とが上記法ｎのもとで合同であるかどうかを確認することにより検証を行うようにしてもよい。
【００２９】
［第２２の側面］第１６の側面において、上記暗号化方式が法ｎ（ｎは十分大きな素数ｐ，ｑの積）のもとでのＲＳＡ公開鍵暗号方式であり、上記法数ｎを記憶する第８の記憶手段と、公開鍵Ｅを記憶する第９の記憶手段を設け、上記認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式における上記公開鍵Ｅに対応する秘密鍵であり、上記第１の記憶手段に記憶されている認証用データ（Ｃ）は特定のデータ（Ｋ）を上記法ｎのもとで上記公開鍵Ｅの値だけべき乗したものであり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および法数ｎ、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、法数ｎ、および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号した証明用データ（Ｒ）を生成し、上記検証手段は、上記証明用データ（Ｒ）が正しく復号されたものであるかどうかを確認することにより検証を行うようにしてもよい。
【００３０】
［第２３の側面］第１８の側面において、上記暗号化方式が法ｎ（ｎは十分大きな素数ｐ，ｑの積）のもとでのＲＳＡ公開鍵暗号方式であり、上記法数ｎを記憶する第８の記憶手段と、検証鍵Ｅを記憶する第９の記憶手段を備え、上記認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式における検証鍵Ｅに対応する署名鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および法数ｎ、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、上記ユーザ固有情報（ｄｕ）、および法数ｎを用いて、上記第１の記憶手段に記憶されている認証用データ（Ｃ）に対して署名をした証明用データ（Ｒ）を生成し、上記検証手段は、上記証明用データ（Ｒ）を上記検証鍵Ｅの値だけべき乗し、署名が正規のものであるかどうかを確認することにより検証を行うようにしてもよい。
【００３１】
［第２４の側面］第２１〜２３の側面において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）を引数に取る所定の関数ｆの値を加えるかまたは減じ、さらに上記法ｎおよび上記制御情報（Ｌ）に依存する非衝突性関数値ω（＝Ｇ（ｎ，Ｌ））と法ｎのオイラー数Φ（ｎ）（ただしΦ（ｎ）＝（ｐ−１）（ｑ−１））の積を加えて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ）＋ωΦ（ｎ）またはｔ＝Ｄ−ｆ（Ｌ）＋ωΦ（ｎ））であり、上記第１の演算手段は、上記制御情報（Ｌ）、上記法ｎの値および認証用データ（Ｃ）から、上記認証用データを上記法ｎのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣD  ｍｏｄ  ｎ）を計算するようにしてもよい。
【００３２】
［第２５の側面］第２１〜２３の側面において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を加えるかまたは減じ、さらに上記法ｎ、上記制御情報（Ｌ）、および上記ユーザ固有情報（ｄｕ）に依存する非衝突性関数値ω（＝Ｇ（ｎ，Ｌ，ｄｕ））と法ｎのオイラー数Φ（ｎ）との積を加えて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ，ｄｕ）＋ωΦ（ｎ）またはｔ＝Ｄ−ｆ（Ｌ，ｄｕ）＋ωΦ（ｎ））であり、上記第１の演算手段は、上記制御情報（Ｌ）、上記法ｎの値、上記ユーザ固有情報（ｄｕ）および上記認証用データ（Ｃ）から、上記認証用データを上記法ｎのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣD  ｍｏｄ  ｎ）を計算するようにしてもよい。
【００３３】
［第２６の側面］第２１〜２３の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）および上記法ｎを引数に取る所定の関数ｆの値を加えるかまたは減じて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ，ｎ）またはｔ＝Ｄ−ｆ（Ｌ，ｎ））であり、上記第１の演算手段は、上記証明用データの生成を行うための制御情報（Ｌ）、上記法ｎの値、および上記認証用データ（Ｃ）から、上記認証用データを上記法ｎのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣD  ｍｏｄ  ｎ）を計算するようにしてもよい。
【００３４】
［第２７の側面］第２１〜２３の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）、上記法ｎ、および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を加えるかまたは減じて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ，ｎ，ｄｕ）またはｔ＝Ｄ−ｆ（Ｌ，ｎ，ｄｕ））であり、上記第１の演算手段は、上記制御情報（Ｌ）、上記法ｎの値、上記ユーザ固有情報（ｄｕ）および上記認証用データ（Ｃ）から、上記認証用データを上記法ｎのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣD  ｍｏｄ  ｎ）を計算するようにしてもよい。
【００３５】
［第２８の側面］第２１〜２７の側面において、上記第４の演算手段は、上記法ｎのもとで上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）を上記第３の記憶手段に記憶されている認証用補助情報（ｔ）の値だけべき乗し、上記第５の演算手段は、上記制御情報（Ｌ）および上記法ｎ、または上記制御情報（Ｌ）、上記法ｎおよび上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を計算し、上記法ｎのもとで上記認証用データ（Ｃ）を上記所定の関数ｆの値だけべき乗し、上記第６の演算手段は、上記認証用補助情報（ｔ）がΦ（ｎ）を法として上記認証の特徴情報（Ｄ）と所定の関数ｆの値との差に等しい場合には、上記第３の演算手段の演算結果および上記第４の演算手段の演算結果の積を計算し、上記認証用補助情報（ｔ）がΦ（ｎ）を法として上記認証の特徴情報（Ｄ）と所定の関数ｆの値との和に等しい場合には、上記第５の演算手段の演算結果の逆数および上記第４の演算手段の演算結果の積を計算することで、上記証明用データを生成するようにしてもよい。
【００３６】
［第２９の側面］第２１〜２８の側面において、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）は、上記第７の演算手段にて、上記第５の記憶手段に記憶されている認証用素データ（Ｂ）と上記第２の乱数生成手段により生成された乱数（ｒ）を上記第９の記憶手段に記憶されている公開鍵Ｅの値だけべき乗した値（ｒE）とを法ｎのもとで掛けた値（ｒEＢ  ｍｏｄ  ｎ）であり、上記第９の演算手段は、上記証明用データ生成手段により生成された上記証明用データ（Ｒ）に対し、上記乱数（ｒ）の逆数を掛けることにより乱数効果を除去し、
上記検証手段は、上記乱数効果を除去したデータに対し検証を行うようにしてもよい。
【００３７】
［第３０の側面］第１５の側面において、上記暗号化方式が法ｐ（ｐは十分大きな素数）のもとでのＰｏｈｌｉｇ−Ｈｅｌｌｍａｎ非対称暗号方式であり、上記法数ｐを記憶する第８の記憶手段と、一方の鍵Ｅを記憶する第９の記憶手段を備え、上記認証の特徴情報（Ｄ）はＰｏｈｌｉｇ−Ｈｅｌｌｍａｎ非対称暗号方式における一方の鍵Ｅに対応するもう一方の鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および該認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および上記ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）を暗号化した証明用データ（Ｒ）を生成し、上記検証手段は、上記証明用データ（Ｒ）を上記一方の鍵（Ｅ）の値だけべき乗し、その結果と上記認証用データ（Ｃ）とが上記法ｐのもとで合同であるかどうかを確認することにより検証を行うようにしてもよい。
【００３８】
［第３１の側面］第１５の側面において、上記暗号化方式が法ｐ（ｐは十分大きな素数）のもとでのＰｏｈｌｉｇ−Ｈｅｌｌｍａｎ非対称暗号方式であり、上記法数ｐを記憶する第８の記憶手段と、一方の鍵Ｅを記憶する第９の記憶手段を備え、上記認証の特徴情報（Ｄ）はＰｏｈｌｉｇ−Ｈｅｌｌｍａｎ非対称暗号方式における上記一方の鍵Ｅに対応するもう一方の鍵であり、上記該第１の記憶手段に記憶されている認証用データ（Ｃ）は特定のデータを上記法ｐのもとで上記一方の鍵（Ｅ）の値だけべき乗したものであり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および上記法数（ｐ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、上記ユーザ固有情報（ｄｕ）、および上記法数（ｐ）を用いて、上記認証用データ（Ｃ）を復号した証明用データ（Ｒ）を生成し、上記検証手段は、上記証明用データ（Ｒ）が正しく復号されたものであるかどうかを確認することにより検証を行うようにしてもよい。
【００３９】
［第３２の側面］第３０〜３１の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）および上記法ｐを引数に取る所定の関数ｆの値を加えるかまたは減じて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ，ｐ）またはｔ＝Ｄ−ｆ（Ｌ，ｐ））であり、上記第１の演算手段は、上記証明用データの生成を行うための制御情報（Ｌ）、上記法ｐの値、および上記認証用データ（Ｃ）から、認証用データを上記法ｐのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣDｍｏｄ  ｐ）を計算するようにしてもよい。
【００４０】
［第３３の側面］第３０〜３１の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、上記認証の特徴情報（Ｄ）から少なくとも上記制御情報（Ｌ）、上記法ｐ、および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を加えるかまたは減じて得られるデータ（ｔ＝Ｄ＋ｆ（Ｌ，ｐ，ｄｕ）またはｔ＝Ｄ−ｆ（Ｌ，ｐ，ｄｕ））であり、上記第１の演算手段は、上記証明用データの生成を行うための制御情報（Ｌ）、上記法ｐの値、上記ユーザ固有情報（ｄｕ）および上記認証用データ（Ｃ）から、上記認証用データを上記法ｐのもとで上記認証の特徴情報（Ｄ）の値だけべき乗した値（Ｒ＝ＣDｍｏｄ  ｐ）を計算するようにしてもよい。
【００４１】
［第３４の側面］第３０〜３３の側面において、上記第４の演算手段は、上記法ｐのもとで上記第１の記憶手段に記憶されている認証用データ（Ｃ）を上記第３の記憶手段に記憶されている認証用補助情報（ｔ）の値だけべき乗し、上記第５の演算手段は、上記制御情報（Ｌ）および上記法ｐ、または上記制御情報（Ｌ）、上記法ｐおよび上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を計算し、上記法ｐのもとで上記認証用データ（Ｃ）を上記所定の関数ｆの値だけべき乗し、上記第６の演算手段は、上記認証用補助情報（ｔ）が上記認証の特徴情報（Ｄ）と上記所定の関数ｆの値との差に等しい場合には、上記第４の演算手段の演算結果および上記第５の演算手段の演算結果の積を計算し、上記認証用補助情報（ｔ）が上記認証の特徴情報（Ｄ）と上記所定の関数ｆの値との和に等しい場合には、上記第５の演算手段の演算結果の逆数および上記第４の演算手段の演算結果の積を計算することで、上記証明用データを生成するようにしてもよい。
【００４２】
［第３５の側面］第３０〜３４の側面において、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）は、上記第７の演算手段にて、上記第５の記憶手段に記憶されている上記認証用素データ（Ｂ）と上記第２の乱数生成手段により生成された上記乱数（ｒ）を上記第９の記憶手段に記憶されている一方の鍵Ｅの値だけべき乗した値（ｒE）とを法ｐのもとで掛けた値（ｒEＢ  ｍｏｄ  ｐ）であり、上記第９の演算手段は、上記証明用データ生成手段により生成された証明用データ（Ｒ）に対し、上記乱数（ｒ）の逆数を掛けることにより乱数効果を除去し、上記検証手段は、上記乱数効果を除去したデータに対し検証を行うようにしてもよい。
【００４３】
［第３６の側面］第１７の側面において、上記暗号化方式がＤＥＳ（ＤａｔａＥｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のような対称鍵暗号方式であり、上記認証の特徴情報（Ｄ）は対称暗号方式の共通鍵であり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、および該認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および上記ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている認証用データ（Ｃ）を共通鍵Ｄで暗号化した証明用データ（Ｒ）を生成し、上記検証手段は、証明用データ（Ｒ）を共通鍵Ｄで復号し、その結果が認証用データと同一であるかどうかを確認することにより検証を行うようにしてもよい。
【００４４】
［第３７の側面］第１７の側面において、上記暗号化方式がＤＥＳのような対称鍵暗号方式であり、上記認証の特徴情報（Ｄ）は対称暗号方式の共通鍵であり、上記第１の記憶手段に記憶されている認証用データ（Ｃ）は特定のデータ（Ｋ）を上記対称鍵暗号方式にて暗号化したものであり、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）、および該認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）、および上記ユーザ固有情報（ｄｕ）を用いて、上記第１の記憶手段に記憶されている上記認証用データ（Ｃ）を共通鍵Ｄで復号した証明用データ（Ｒ）を生成し、上記検証手段は、上記証明用データ（Ｒ）が上記認証用データ（Ｃ）を正しく復号したものであるかどうかを確認することにより検証を行うようにしてもよい。
【００４５】
［第３８の側面］第５〜２０の側面において、上記第３の記憶手段に記憶されている認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）を第２の暗号化方法にて暗号化したものであり、上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）を得て、それをもとに上記証明用データを生成するようにしてもよい。
【００４６】
［第３９の側面］第５〜２０の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を第２の暗号化方法にて暗号化したものであり、上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を得て、上記制御情報（Ｌ）と上記所定関数ｆの値の計算に用いた上記制御情報（Ｌ）とが同一であった場合のみ、上記認証の特徴情報（Ｄ）をもとに上記証明用データを生成するようにしてもよい。
【００４７】
［第４０の側面］第５〜２０の側面において、上記第３の記憶手段に記憶されている上記認証用補助情報（ｔ）は、少なくとも上記制御情報（Ｌ）、または上記制御情報（Ｌ）および上記ユーザ固有情報（ｄｕ）を引数に取る所定の関数ｆの値を鍵として復号されるように上記認証の特徴情報（Ｄ）を第２の暗号化方法にて暗号化したもの（ｔ1）と、上記認証の特徴情報（Ｄ）および上記制御情報（Ｌ）を引数に取る非衝突性一方向性関数の値（ｔ2＝ｇ（Ｄ，Ｌ））とからなり、上記第１の演算手段は、上記所定関数ｆの値を計算した後、上記認証用補助情報（ｔ）を復号することにより上記認証の特徴情報（Ｄ）を得て、上記認証の特徴情報（Ｄ）および上記所定の関数ｆの値の計算に用いた上記制御情報（Ｌ）とから非衝突性一方向性関数の値を算出した結果が、先に算出した非衝突性一方向関数の値（ｔ2）と同一であった場合のみ、上記認証の特徴情報（Ｄ）をもとに上記証明用データを生成するようにしてもよい。
【００４８】
［第４１の側面］第３８〜４０の側面において、上記第２の暗号化方法を非対称鍵暗号としてもよい。
【００４９】
［第４２の側面］第４１側面において、上記第２の暗号化方法を公開鍵暗号としてもよい
［第４３の側面］第３８〜４０の側面において、上記第２の暗号化方法を対称鍵暗号としてもよい。
【００５０】
［第４４の側面］第２４〜２９の側面または第３２〜３５の側面において、上記所定の関数ｆが一方向性非衝突性関数であるようにしてもよい。
【００５１】
［第４５の側面］第１２の側面において、上記特定データ（Ｋ）は保護を必要とするデジタルデータであり、上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）とし、上記証明用データ生成手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、正しく認証された場合に結果として復号された保護を必要とするデジタルデータ（Ｋ）を得ることができるようにしてもよい。
【００５２】
［第４６の側面］第１２の側面において、上記特定データ（Ｋ）を鍵として復号されるように暗号化されたデータ（Ｘ）を保持する第１０の記憶手段を設け、上記情報処理手段は、上記証明用データ（Ｒ）を鍵として上記第１０の記憶手段に格納されたデータ（Ｘ）を復号する第１０の演算手段であり、上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）または上記認証用素データ（Ｂ）とし、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、上記検証手段は、上記情報処理手段により上記証明用データ（Ｒ）または上記証明用データ（Ｒ）から乱数効果を除去したものを鍵として上記第１０の記憶手段に記憶されている上記データ（Ｘ）を上記第１０の演算手段にて正常に復号できるかどうかを検証するようにしてもよい。
【００５３】
［第４７の側面］第４５の側面において、上記情報処理手段は、ソフトウエアプログラムを実行する第１のプログラム実行手段であり、上記保護を必要とするデジタルデータがソフトウエアプログラムであり、上記証明用データを生成することにより上記ソフトウエアプログラムを復号して、上記第１のプログラム実行手段により上記ソフトウエアプログラムを実行するようにしてもよい。
【００５４】
［第４８の側面］第４６の側面において、上記特定データ（Ｋ）を鍵として復号されるように一部または全部を暗号化されたプログラム（Ｘ）を保持する第１０の記憶手段を設け、上記情報処理手段は、上記証明用データ（Ｒ）を鍵として上記第１０の記憶手段に格納された上記プログラム（Ｘ）を復号する上記第１０の演算手段と、復号されたプログラムを実行する上記第１のプログラム実行手段とを含み、上記特定データ（Ｋ）を暗号化したものを上記認証用データ（Ｃ）または上記認証用素データ（Ｂ）とし、上記第１の演算手段は、少なくとも上記制御情報（Ｌ）および上記認証用補助情報（ｔ）、または少なくとも上記制御情報（Ｌ）、上記認証用補助情報（ｔ）および上記ユーザ固有情報（ｄｕ）を用いて、上記認証用データ（Ｃ）を復号することにより上記証明用データ（Ｒ）を生成し、上記検証手段は、上記情報処理手段により上記証明用データ（Ｒ）または上記証明用データ（Ｒ）から乱数効果を除去したものを鍵として上記第１０の記憶手段に記憶されている上記プログラム（Ｘ）を復号して実行し、正常に動作するかどうかを検証するようにしてもよい。
【００５５】
［第４９の側面］第５〜２０の側面において、予め用意された、またはその場で生成された認証用データ（Ｃ）を記憶する第１１の記憶手段と、上記証明用データ生成手段にて生成された証明用データ（Ｒ）を記憶する第１２の記憶手段と、第１２の記憶手段に記憶された証明用データの正当性（Ｒ）を確認する検証手段とを具備した検証装置と、上記認証用データ（Ｃ）を記憶する上記第１の記憶手段、上記制御情報（Ｌ）を記憶する上記第２の記憶手段、上記認証用補助情報（ｔ）を記憶する上記第３の記憶手段、および上記証明用データ生成手段を具備した証明装置とから構成され、上記検証装置は上記第９の記憶手段に記憶されている認証用データ（Ｃ）を上記第１の記憶手段に書き出し、上記証明装置は上記第１の記憶手段に書き込まれた認証用データ（Ｃ）をもとに証明用データ（Ｒ）を生成し、上記第９の記憶手段に書き込み、上記検証装置は、上記第９の記憶手段に書き込まれた証明用データ（Ｒ）を用いて認証を行うようにしてもよい。
【００５６】
［第５０の側面］第５〜４９の側面おいて、上記第４の記憶手段が、内部のデータを不正に外部から観測することを困難ならしめる防御手段中に保持されているようにしてもよい。
【００５７】
［第５１の側面］第５〜５０の側面において、上記証明用データ生成手段が、内部の処理手続きを外部から観測することを困難ならしめる防御手段中に保持されているようにしてもよい。
【００５８】
［第５２の側面］第５〜５０の側面において、上記第５の演算手段および上記証明用データ生成装置制御手段が、内部の処理手続きを外部から観測することを困難ならしめる防御手段中に保持されているようにしてもよい。
【００５９】
［第５３の側面］第５〜５２の側面において、上記第４の記憶手段がＩＣカードなどの携帯可能な記憶装置として構成されているようにしてもよい。
【００６０】
［第５４の側面］第５〜５２の側面において、上記第４の記憶手段および上記証明データ生成手段がＩＣカードなどの携帯可能な記憶演算装置として構成されているようにしてもよい。
【００６１】
［第５５の側面］第５〜５２の側面において、上記第４の記憶手段、上記第５の演算手段および上記証明用データ生成装置制御手段がＩＣカードなどの携帯可能な記憶演算装置として構成されているようにしてもよい。
【００６２】
［第５６の側面］第４９の側面において、上記証明装置および上記検証装置が、同一の筐体に含まれるようにしてもよい。
【００６３】
［第５７の側面］第５〜５６の側面において、時刻を示す時計を設け、上記制御情報（Ｌ）は、認証を行うことができる有効期間であり、認証を行う時の時刻が上記有効期間内にある時のみ上記証明用データ（Ｒ）を生成するようにしてもよい。
【００６４】
［第５８の側面］第５〜５６の側面において、今までに認証を行った回数を記録する第１３の記憶手段を設け、上記制御情報（Ｌ）は、認証を行う回数有効範囲であり、上記第１３の記憶手段の値が上記有効範囲内にある時のみ上記証明用データ（Ｒ）を生成するようにしてもよい。
【００６５】
［第５９の側面］第５〜５６の側面において、時刻を示す時計と、認証を行った結果に従いサービスを開始した時間およびサービスを終了した時間からユーザがサービスを享受した時間を計算する第１１の演算手段と、今までにユーザがサービスを享受した時間の合計値を記録する第１４の記憶手段を設け、上記制御情報（Ｌ）は、総利用時間の値の有効範囲であり、上記第１４の記憶手段の値が上記有効範囲内にある時のみ上記認証明用データ（Ｒ）を生成するようにしてもよい。
【００６６】
［第６０の側面］第５〜５６の側面において、認証を行うのに必要なポイント残数または残高情報を記憶する第１５の記憶手段を設け、上記制御情報（Ｌ）は、一回の認証に必要なポイント数または金額情報であり、上記第１５の記憶手段の値が上記一回の認証に必要なポイント数または金額情報以上の場合のみ上記証明用データ（Ｒ）を生成し、上記第１５の記憶手段に記憶されている値を上記制御情報（Ｌ）に対応する値だけ減ずるようにしてもよい。
【００６７】
［第６１の側面］第５〜５６の側面において、外部に認証を行った結果または認証を行った結果享受されるサービスに関する履歴を出力する機能を設け、上記制御情報（Ｌ）は、履歴を出力するかどうかのフラグであり、履歴を出力することが指定されている場合には認証の履歴を出力し、上記証明用データ（Ｒ）を生成するようにしてもよい。
【００６８】
［第６２の側面］第５〜５６の側面において、指紋、声紋、アイリスパターン、網膜パターンなどの個人を識別する特徴情報を抽出するための個体識別情報抽出手段を設け、上記制御情報（Ｌ）は、個人を識別するための特徴情報または上記特徴情報が取り得る範囲であり、上記個体識別情報抽出手段により抽出された特徴情報と上記証明用データの生成を行うための制御情報（Ｌ）の間に一定の関係がある場合にのみ上記証明用データ（Ｒ）を生成するようにしてもよい。
【００６９】
［第６３の側面］第５〜５６の側面において、パスワードを入力するための入力手段を設け、上記制御情報（Ｌ）は上記入力手段からの入力であり、上記パスワードが入力された場合に上記証明用データ（Ｒ）を生成するようにしてもよい。
【００７０】
［第６４の側面］第５〜５６の側面において、プログラムを実行するための第２のプログラム実行手段手段を設け、上記制御情報（Ｌ）は上記第２のプログラム実行手段にて実行されるプログラムであり、上記プログラムが実行された結果、特定の状態にあるまたは特定の状態で終了した場合に上記証明用データ（Ｒ）を生成するようにしてもよい。
【００７１】
［第６５の側面］本発明の第６５の側面によれば、認証用データに対してユーザが生成した証明用データの正当性を検証することで所定の情報処理資源へのユーザのアクセス権限を認証するアクセス制御装置に、上記認証用データ（Ｃ）を記憶する第１の記憶手段と、証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段と、少なくとも上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に対して所定の演算を行うことにより得られる認証用補助情報（ｔ）を記憶する第３の記憶手段と、上記制御情報（Ｌ）が特定の条件を満たす場合にのみ、少なくとも上記制御情報（Ｌ）および上記認証の特徴情報（Ｄ）から上記証明用データを生成する証明用データ生成手段と、上記証明用データを検証する検証手段と、上記検証結果が正しい場合にユーザに上記情報処理資源へのアクセスを認めるアクセス制御手段とを設けるようにしている。
【００７２】
この構成においては、アクセス制御に際して、安全性を確保したままで、有効期限や利用回数制限やその他の条件を設定でき、しかもそれらの条件が改竄された場合にはアクセスが行われないようにすることができる。
【００７３】
［第６６の側面］本発明の第６６の側面によれば、認証用データに対してユーザが生成した証明用データの正当性を検証することでプログラムの実行権限を認証するプログラム実行制御装置に、上記認証用データ（Ｃ）を記憶する第１の記憶手段と、上記証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段と、少なくとも上記制御情報（Ｌ）および認証の特徴情報（Ｄ）に対して所定の演算を行うことにより得られる認証用補助情報（ｔ）を記憶する第３の記憶手段と、上記制御情報（Ｌ）が特定の条件を満たす場合にのみ、少なくとも上記制御情報（Ｌ）および上記認証の特徴情報（Ｄ）から上記証明用データを生成する証明用データ生成手段と、上記証明用データを検証する検証手段と、上記検証結果が正しい場合に上記プログラムの実行を行う制御手段とを設けるようにしている。
【００７４】
この構成においては、プルグラム実行制御に際して、安全性を確保したままで、有効期限や利用回数制限やその他の条件を設定でき、しかもそれらの条件が改竄された場合にはプログラムが実行されないようにすることができる。
【００７５】
［第６７の側面］本発明の第６７の側面によれば、特定の条件が満たされた場合にのみ、あるメッセージに対するデジタル署名を生成する条件付きデジタル署名装置に、上記メッセージ（Ｃ）を記憶する第１の記憶手段と、署名の生成を行うための条件（Ｌ）を記憶する第２の記憶手段と、少なくとも上記条件（Ｌ）および署名鍵情報（Ｄ）に対して所定の演算を行うことにより得られる署名用補助情報（ｔ）を記憶する第３の記憶手段と、上記条件（Ｌ）が特定の条件を満たす場合にのみ、少なくとも上記条件および上記署名用補助情報（ｔ）から署名を生成する署名生成手段とを設けるようにしている。
【００７６】
この構成においては、期間などの条件が満たされている場合のみ電子署名が生成されるようにすることができる。
【００７７】
［第６８の側面］本発明の第６８の側面によれば、証明用データ（Ｒ）または署名（Ｒ）を生成するために用いられる認証用補助情報（ｔ）または署名用補助情報（ｔ）を生成する証明用補助情報生成装置に、認証の特徴情報または署名鍵情報を受け取る手段と、上記証明用データの生成を行うための制御情報（Ｌ）または上記署名の生成を行うための条件（Ｌ）を受け取る手段と、上記認証の特徴情報または署名鍵情報、および上記証明用データの生成を行うための制御情報（Ｌ）または署名の生成を行うための条件（Ｌ）から証明用補助情報（ｔ）または署名用補助情報（ｔ）を算出する手段とを設けるようにしている。
【００７８】
この構成においては、安全性を確保したままで、認証や署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、証明用または署名用の補助情報を生成できる。
【００７９】
［第６９の側面］本発明の第６９の側面によれば、証明用データ（Ｒ）または署名（Ｒ）を生成するために用いられる認証用補助情報（ｔ）または署名用補助情報（ｔ）を生成する証明用補助情報生成装置に、認証の特徴情報または署名鍵情報を受け取る手段と、上記証明用データの生成を行うための制御情報（Ｌ）または上記署名の生成を行うための条件（Ｌ）を受け取る手段と、ユーザ固有情報（ｄｕ）を受け取る手段と、上記ユーザ固有情報（ｄｕ）、上記認証の特徴情報または署名鍵情報、および上記証明用データの生成を行うための制御情報（Ｌ）または署名の生成を行うための条件（Ｌ）から証明用補助情報（ｔ）または署名用補助情報（ｔ）を算出する手段とを設けるようにしている。
【００８０】
この構成においても、安全性を確保したままで、認証や署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、証明用または署名用の補助情報を生成できる。また、ユーザ固有情報により一層プロテクトを確実なものにできる。
【００８１】
なお、本発明は、方法として実現することも可能であるし、少なくとも一部をプログラム製品の態様で実現することもできる。
【００８２】
【発明の実施の形態】
個々の実施例の説明に入る前に、本発明の利用形態について簡単に説明する。本発明は広くサービスを享受する権利の認証に関するものであり、特に認証を行うための条件や手続きを指定する技術に関するものである。そして発明を構成する要素は大きく、権利を証明するための証明装置と、証明装置により生成されたデータをもとに正当な権利を保持しているかどうかを判断する検証装置からなる。証明装置は利用者が保持しており、検証装置はサービスを提供する場所に有り、利用者がサービスを享受しようとした場合サービスを享受する権利を検証装置に対し証明することで、サービスを享受できるようになる。
【００８３】
図３５は本発明の利用形態の一例である。例えばコンサート会場の入り口に検証装置が設置して有り、利用者は予め証明装置、コンサートのチケットに相当する認証用補助情報（ｔ）およびチケットの日付、席番等が記述された証明用データの生成を行うための制御情報（Ｌ）を用意し、検証装置に対し証明装置、認証用補助情報（ｔ）および証明用データの生成を行うための制御情報（Ｌ）が正当なものであることを証明することによりゲートが開き入場できるようになっている。このような利用形態はなにもゲートの開閉を伴うものにとどまらず、例えばさまざまな交通機関において、乗務員に対し正当な有効期限付き切符を保持していること示すためのものであってもよい。
【００８４】
図３６は本発明のまた別の利用形態の例である。この例では検証装置は汎用コンピュータであり、証明装置は上記コンピュータのスロットに挿入して利用する、あるいは上記コンピュータと赤外線などを用いて通信をおこなうものである。利用者が例えばあるアプリケーションソフトウエアを利用しようとする時、上記コンピュータは利用者の証明装置に対し上記アプリケーションソフトウエアを利用する権利を証明するように求め、利用者は証明装置、認証用補助情報（ｔ）および証明用データの生成を行うための制御情報（Ｌ）を用いて証明を行い、正当な証明が行われた場合のみアプリケーションが利用できるというものである。
【００８５】
以下この発明の個々の実施例について説明する。
【００８６】
［実施例１］
実施例１は認証用データ（Ｃ）として乱数を用いて、証明用データ（Ｒ）は法ｎにおけるＲＳＡ暗号方式による暗号化に基づいて生成され、証明用データが認証の特徴情報（Ｄ）に基づいて暗号化されているかを検証することにより、認証を行う場合の例である。このとき認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式の秘密鍵に相当し、φ（ｎ）と認証の特徴情報（Ｄ）は互いに素の関係に有り、後述の公開鍵ＥとはＤＥ＝１  ｍｏｄ  φ（ｎ）の関係にある（φ（ｎ）はオイラー数で、この例ではφ（ｎ）＝（ｐ−１）（ｑ−１）となる）。なお、証明用データの生成を行うための制御情報（Ｌ）の具体例としては利用期限制限の場合について説明する。このようにすることにより例えば一定の期間のみ特定のサービスを受けることができるような定期券を実現することができる。
【００８７】
図１は実施例１における原理構成図である。実施例１においては本発明に係る認証装置１０００は検証装置１００と証明装置２００からなる。
【００８８】
図１に示す制御装置３００は認証を行った結果に基づいて行う動作を制御するための装置であり、例えば入室管理に本発明を適用させる場合には、認証が成功したときにドアの施錠をはずしたり、逆に認証が失敗した時にドアを閉めたり、また単に認証の結果をランプやディスプレイを通して提示したりするためのものである。
【００８９】
検証装置１００は認証用データ（Ｃ）として乱数を生成するための第１の乱数生成装置６１と、第１の乱数生成装置６１で生成された乱数を証明装置２００へ送るために一時的に記憶する第１１の記憶手段１１と、証明装置２００により生成された証明用データ（Ｒ）を記憶する第１２の記憶手段１２と、ＲＳＡ暗号方式の法ｎ（ｎは十分に大きな素数ｐ，ｑの積）を記憶する第８の記憶手段８と、ＲＳＡの公開鍵Ｅ（上記認証の特徴情報（Ｄ）の逆数：ＥＤ＝１  ｍｏｄφ（ｎ））を記憶する第９の記憶手段９と、証明用データ（Ｒ）は認証用データ（Ｃ）を正しく暗号化したものであるかを検証する検証手段５１を備える。
【００９０】
証明装置２００は、検証装置１００が生成した認証用データ（Ｃ）を受け取る第１の記憶手段１と、証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段２と、認証の特徴情報（Ｄ）および証明用データの生成を行うための制御情報（Ｌ）から算出される証明用補助情報（ｔ）を記憶する第３の記憶手段３と、時刻を得るために用いる時計８１と、証明用データの生成を行うための制御情報（Ｌ）に記載されている有効期間内に時計８１から得られる時刻が含まれている場合にのみ、認証用データ（Ｃ）、証明用データの生成を行うための制御情報（Ｌ）および証明用補助情報（ｔ）から証明用データ（Ｃ）を認証の特徴データ（Ｄ）で暗号化した証明用データ（Ｒ＝ＣD  ｍｏｄ  ｎ）を計算する証明用データ生成手段５２を備える。
【００９１】
図２および図３はそれぞれ証明用データ生成手段５２の内部構成の一例であり、ともに大きく分けて証明用データ生成手段制御手段９１および第１の演算装置３１から構成される。図２に示すものは、一旦認証の特徴情報（Ｄ）を算出した後、証明用データ（Ｃ）を認証の特徴データ（Ｄ）で暗号化するためものである。図２の証明用データ生成装置制御手段９１は、利用期限制限情報である証明用データの生成を行うための制御情報（Ｌ）が特定の条件を満たすかどうかを判定し、満たされている場合には第１の演算手段を用いて証明用データ（Ｃ）を認証の特徴データ（Ｄ）で暗号化してその値を、満たされていない場合には何らかのエラーコードを返す。図２における第１の演算手段３１は、証明用データの生成を行うための制御情報（Ｌ）を引数にして所定の関数の値ｆ（Ｌ）を計算し、その結果と認証用補助情報（ｔ）の値から認証の特徴データ（Ｄ）の値を計算する第２の演算装置３２と、認証用データ（Ｃ）を法ｎのもとで認証の特徴データ（Ｄ）の値だけべき乗する第３の演算装置３３とを備える。
【００９２】
なお、所定の関数ｆは一方向性と非衝突性の性格を持つ関数であることが望ましい。
【００９３】
また、図３に示す証明用データ生成手段５２は第１の演算手段を第４、５、６の３つの演算手段（３４、３５、３６）にて構成している。第４の演算装置３４は証明用データの生成を行うための制御情報（Ｌ）を引数にして所定の関数の値を算出し、証明用データ（Ｃ）の値を上記算出結果の値だけべき乗して、第５の演算装置３５は証明用データ（Ｃ）の値を証明用補助情報（ｔ）の値だけべき乗して、第６の演算装置３６は第４の演算装置３４および５４の演算装置３５の演算結果から認証用データ（Ｃ）を法ｎのもとで認証の特徴データ（Ｄ）の値だけべき乗した値を算出する。具体的には認証用補助情報（ｔ）が認証の特徴情報（Ｄ）、証明用データの生成を行うための制御情報（Ｌ）を引数に取る所定の関数の値およびφ（ｎ）の値の倍数の和として算出される場合（ｔ＝Ｄ＋ｆ（Ｌ）＋ωφ（ｎ））には法ｎのもとでＣtにＣf(L)の逆数を掛けることによりＣDを求めることができる。また認証用補助情報（ｔ）が認証の特徴情報（Ｄ）から証明用データの生成を行うための制御情報（Ｌ）を引数に取る所定の関数の値を引いた後におφ（ｎ）の値の倍数を加えて算出される場合（ｔ＝Ｄ−ｆ（Ｌ）＋ωφ（ｎ））には法ｎのもとでＣtにＣf(L)を掛けることによりＣDを求めることができる。この例では所定の関数ｆの引数として証明用データの生成を行うための制御情報（Ｌ）のみを想定したが、証明用データの生成を行うための制御情報（Ｌ）および法数ｎを引数として取るようにすると同様に認証用補助情報（ｔ）がｔ＝Ｄ±ｆ（Ｌ，ｎ）の場合にも対応できる（図４、５）。
【００９４】
なお、証明装置２００にて証明用データを算出するのに法数ｎが必要となるが本実施例では法数ｎは認証用データ（Ｃ）と共に証明装置２００に渡されるものとする。
【００９５】
次に図６のフローチャートを用いて認証装置１０００の動作を説明する。
【００９６】
まず認証を行うための準備としてユーザは予め認証用補助情報（ｔ）および認証用補助情報の有効期限を示している証明用データの生成を行うための制御情報（Ｌ）を入手する（Ｓｔｅｐ１０１）。認証を行うにあたり検証装置１００は第１の乱数生成装置６１により乱数を生成し（Ｓｔｅｐ１０２）、それを認証用データとして第１１の記憶手段１１に記憶し、証明装置２００に渡す（Ｓｔｅｐ１０３）。証明装置２００ではまず、時計８１により示されている時刻が証明用データの生成を行うための制御情報（Ｌ）に記載されている有効期限内に含まれているかどうかを判定し（Ｓｔｅｐ１０４）、有効期限内に含まれていれば認証用データ（Ｃ）を認証の特徴情報（Ｄ）で暗号化した値を計算し（Ｓｔｅｐ１０５）、その値を証明用情報（Ｒ）として検証装置に渡す（Ｓｔｅｐ１０６）。検証装置１００は証明用データを認証の特徴情報（Ｄ）に対応する公開鍵Ｅにて復号し（Ｓｔｅｐ１０７）、その結果が元の認証用データ（Ｃ）と等しいかどうかを判定する（Ｓｔｅｐ１０８）。もし、認証用補助情報（ｔ）および認証用補助情報の有効期限を示している証明用データの生成を行うための制御情報（Ｌ）が正当なものであれば、証明用情報（Ｒ）は、
【００９７】
【数１】
Ｒ＝ＣD  ｍｏｄ  ｎ
となり、これをＥ乗することで、
【００９８】
【数２】
ＲE≡ＣDE  ｍｏｄ  ｎ
≡ＣSφ(n)+1  ｍｏｄ  ｎ  （∵ＥＤ≡１  ｍｏｄφ（ｎ），ＳはＥＤをφ（ｎ）で割った時の商）
≡Ｃ  ｍｏｄ  ｎ  （∵オイラーの定理より）
法ｎのもとで認証用データ（Ｃ）と合同になる。
【００９９】
判定した結果、認証用データ（Ｃ）と証明用データ（Ｒ）を復号したものが等しいときには、認証が成功した場合の処理（Ｓｔｅｐ１０９）を行う。Ｓｔｅｐ１０４にて時計８１により示されている時刻が証明用データの生成を行うための制御情報（Ｌ）に記載されている有効期限内に含まれていない場合には検証装置１００にエラーを返し（Ｓｔｅｐ１１０）、検証装置側でエラー処理を行う（Ｓｔｅｐ１１１）。また、Ｓｔｅｐ１０７で認証用データ（Ｃ）と証明用データ（Ｒ）を復号したものが等しくない場合には、同様にＳｔｅｐ１１１にてエラー処理を行う。
【０１００】
図７、図８はＳｐｅｐ１０５にて証明用データを計算する方法の詳細を示したものである。図７は図２および図４にて示した構成に基づく動作について説明しており、図８は図３および図５で示した構成に基づく動作について説明している。
【０１０１】
図７ではまず第２の演算手段３２により認証の特徴情報（Ｄ）を算出し（Ｓｔｅｐ１１２）、認証用データを認証の特徴情報（Ｄ）を鍵としてＲＳＡ暗号方式で暗号化している（Ｓｔｅｐ１１３）。Ｓｔｅｐ１１２において認証の特徴情報（Ｄ）を算出する方法は認証用補助情報（ｔ）がどのようにして算出されているかにより異なる。ｔ＝Ｄ＋ｆ（Ｌ）＋ωφ（ｎ）の場合にはＤ＝ｔ−ｆ（Ｌ）、ｔ＝Ｄ−ｆ（Ｌ）＋ωφ（ｎ）の場合にはＤ＝ｔ＋ｆ（Ｌ）、ｔ＝Ｄ＋ｆ（Ｌ，ｎ）の場合にはＤ＝ｔ−ｆ（Ｌ，ｎ）、ｔ＝Ｄ−ｆ（Ｌ，ｎ）の場合にはＤ＝ｔ＋ｆ（Ｌ，ｎ）として算出できる。なお、Ｄを算出する際にωφ（ｎ）の項が残るものがあるが、次のＳｔｅｐ１１３にて法ｎのもとでべき乗されるのでωφ（ｎ）の項は無視することができる。
【０１０２】
図８では直接に認証の特徴情報（Ｄ）を算出することなしに認証用データ（Ｃ）を暗号化する方法について説明している。まず、法ｎのもとで認証用データ（Ｃ）を所定の関数ｆ（Ｌ）またはｆ（Ｌ，ｎ）の値だけべき乗した値と、認証用補助情報の値だけべき乗した値を計算する（Ｓｔｅｐ１１４，１１５）。Ｓｔｅｐ１１４および１１５での演算結果をもとにＣD  ｍｏｄ  ｎを計算する（Ｓｔｅｐ１１６）。Ｓｔｅｐ１１６でＣD  ｍｏｄ  ｎを計算する方法はＳｔｅｐ１１２と同様に認証用補助情報（ｔ）がどのようにして算出されているかにより異なる。ｔ＝Ｄ＋ｆ（Ｌ）＋ωφ（ｎ）およびｔ＝Ｄ＋ｆ（Ｌ，ｎ）の場合には法ｎのものでＳｔｅｐ１１４の結果の逆数とＳｔｅｐ１１５の結果を掛け合わすことで、ｔ＝Ｄ−ｆ（Ｌ）＋ωφ（ｎ）およびｔ＝Ｄ−ｆ（Ｌ，ｎ）の場合にはＳｔｅｐ１１４の結果とＳｔｅｐ１１５の結果を掛け合わすことで算出できる。
【０１０３】
上記の動作により、電子的なチケットに相当する認証用補助情報（ｔ）を保持していない場合には認証は行われないし、証明用データの生成を行うための制御情報（Ｌ）に示されている認証用補助情報（ｔ）の有効期限内でなければ認証は行われない。また、証明用データの生成を行うための制御情報（Ｌ）を改竄した場合には算出される認証の特徴情報（Ｄ）が本来のもとの異なり、正しく暗号化できないために検証装置で復号した際に改竄が行われたことが発覚する仕組みになっている。
【０１０４】
本実施例では証明用データの生成を行うための制御情報（Ｌ）に記載されている情報を認証用補助情報（ｔ）の有効期限としたが、当然、認証用補助情報（ｔ）を無効とする期間の情報としても構わない。
【０１０５】
本実施例ではリプレイアタックを防ぐために、認証用データ（Ｃ）として乱数を用いたが、検証装置１００と証明装置２００間の通信の安全性が保証されている場合には認証用データ（Ｃ）として一定の値を用いても構わない。認証用データ（Ｃ）として乱数を用いるのと同等の効果を持つ方法として、一定の値に乱数効果を施したものを認証用データ（Ｃ）として用いる方法も考えられるが、認証用データ（Ｃ）として乱数を用いる場合に比べ、装置の構成が複雑になるという欠点を持つ。
【０１０６】
本実施例にて述べた認証方式を安全に保つために、証明用データ生成手段５２、あるいは第５の演算手段３５および証明用データ生成手段制御手段９１を外部から内部状態を観察することが困難にするためのタンパープルーフ容器内に封じ込めることが望ましい。
【０１０７】
また、利用者の利便性を保つために証明用データ生成手段５２、あるいは第５の演算手段３５および証明用データ生成手段制御手段９１を携帯可能な例えばＩＣカードの様なものとして実現してもよい。
【０１０８】
［実施例２］
２つ目の実施例として一部あるいは全部が暗号化されたプログラム（Ｘ）を条件付きで復号し実行する例について説明する。プログラム（Ｍ）は鍵Ｋにて暗号および復号をおこなう対称鍵暗号方式にて暗号化されているとする（Ｘ＝ＥK（Ｍ））。認証用素データ（Ｂ）として上記鍵ＫをＲＳＡ公開鍵暗号方式の公開鍵Ｅにて暗号化したもの（Ｂ＝ＫE  ｍｏｄ  ｎ）、認証用データ（Ｃ）として第２の乱数生成手段６２で生成された乱数ｒを法ｎのもとで上記公開鍵Ｅだけべき乗したものと認証用素データ（Ｂ）を掛け合わせたものを用いる（Ｃ＝ｒEＢ  ｍｏｄ  ｎ）。本実施例に於いても、認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式の秘密鍵に相当し、φ（ｎ）と認証の特徴情報（Ｄ）は互いに素の関係に有り、公開鍵ＥとはＤＥ＝１  ｍｏｄφ（ｎ）の関係にある（φ（ｎ）はオイラー数で、この例ではφ（ｎ）＝（ｐ−１）（ｑ−１）となる）。また、証明用データの生成を行うための制御情報（Ｌ）も実施例１と同様に利用制限の場合について説明する。
【０１０９】
本実施例ではチケットにあたる認証用補助情報（ｔ）をユーザ毎に異なるものにするためユーザ固有情報（ｄｕ）を導入する。
【０１１０】
図９は実施例２における原理構成図を示している。以下、実施例１の構成と対比しつつ実施例２の構成について説明する。１つ目の実施例１との違いは、検証装置１００において第１の乱数生成手段６１の代わりに認証用素データ（Ｂ）を記憶する第５の記憶手段５、第２の乱数生成手段６２および上記認証用素データ（Ｂ）に乱数効果を施して認証用データ（Ｃ）を生成する第７の演算手段３７を備えていることである。実施例１ではデータを証明装置に暗号化させ、正しく暗号化されているか検証装置で確かめることで認証を行っていたので、暗号化させるデータには特に制限がなく、リプレイアタックを防ぐ目的で乱数を証明用データ（Ｃ）として用いていた。本実施例では暗号化された意味のあるデータを証明装置により復号させることにより認証を行うので、上記の構成が必要となる。暗号化された意味のあるデータとは本実施例の場合認証用素データ（Ｂ）を指し、これに乱数効果を付与するために第２の乱数生成手段６２および第７の演算手段３７を用いる。具体的には第２の乱数生成手段６２にて乱数ｒを生成し、乱数ｒを法ｎのもとで上記公開鍵Ｅだけべき乗したものと認証用素データ（Ｂ）を掛け合わせる。証明装置と検証装置の間の通信の安全性が保証されている場合には乱数効果を付与することなく、直接、認証用素データ（Ｂ）を認証用データ（Ｃ）としてもよい。認証用素データ（Ｂ）は暗号化されたプログラムデータ（Ｘ）を復号する鍵ＫをＲＳＡ公開鍵暗号方式の公開鍵Ｅで暗号化したもので、これを証明装置２００で復号することによりプログラムデータ（Ｘ）を復号する鍵Ｋを得ることができる。
【０１１１】
２つ目の違いは、検証装置１００において検証手段５１の代わりに乱数効果を除去する第９の演算手段３９、暗号化されたプログラムデータ（Ｘ）を記憶する第１０の記憶手段、暗号化されたプログラムデータ（Ｘ）の復号を行う第１０の演算手段４０および復号されたプログラムデータ（Ｍ）を実行する第１のプログラム実行手段７１を備えることである。第９の演算手段３９の追加は上記１つ目の違いに対応するものであり、それ以外は本実施例が暗号化されたプログラムを条件付きで復号して実行するためのものであることに由来する。もし、実施例１と同様に証明装置２００にて生成されたデータと元のデータとの比較を行うことにより認証を行うことを目的とするならば、代わりに暗号化される前のデータを記憶する記憶手段とデータの比較を行う比較手段を検証装置１００内に設ければよい。
【０１１２】
正常に証明用データ（Ｒ）が証明装置２００により生成された場合、証明用データ（Ｒ）は上記乱数ｒと鍵Ｋの積になる。第９の演算手段３９では証明用データ（Ｒ）に上記乱数ｒの逆数を掛けることにより鍵Ｋを取り出し、上記鍵Ｋをもとに第１０の記憶手段に記憶されている暗号化されたプログラムデータ（Ｘ）を第１０の演算手段４０により復号し、復号されたプログラムデータ（Ｍ）を第１のプログラム実行手段７１にて実行する。なお、復号が正しく行われていない場合に、復号されたプログラムデータ（Ｍ）を直接実行すると、動作が保証できない。そこで、予め鍵Ｋやプログラム（Ｍ）に冗長性を持たせておき、復号された鍵Ｋやプログラム（Ｍ）が必要な冗長性を持っているかどうかを確認した後、プログラムを実行してもよい。また、プログラムデータ（Ｍ）の暗号化方式についてはここでは特に限定しない。
【０１１３】
３つ目の違いは、証明装置２００においてユーザ固有の情報（ｄｕ）を記憶する第４の記憶手段４を設け、証明用データ（Ｃ）の生成にユーザ固有の情報（ｄｕ）を用いる点である。この違いは前記２つの違いとは独立である。ユーザ固有の情報（ｄｕ）を用いることにより、認証用補助情報（ｔ）がユーザ毎に異なる値になり、他人の認証用補助情報（ｔ）を盗用することでサービスを不正に受けることを防ぐことができる。図１０および図１１は証明用データ生成手段５２の構成の一例である。実施例１のものに所定の関数ｆの引数としてｄｕが加わっている。実施例１と同様に第１の演算装置３１および第５の演算装置３５の動作は認証用補助情報（ｔ）がどのように生成されたかにより異なる。
【０１１４】
次に実施例２の動作について図１２のフローチャートを用いて説明する。なお実施例１と同じ部分については説明を割愛する。まず、準備として証明装置２００は認証用補助情報（ｔ）および認証用補情報（ｔ）に対応した証明用データの生成を行うための制御情報（Ｌ）を用意する（Ｓｔｅｐ２０１）。暗号化されたデジタル情報（ＥK（Ｍ））の復号を行う場合には第２の乱数生成手段６２により乱数ｒを生成し（Ｓｔｅｐ２０２）、乱数ｒ、ＲＳＡ公開鍵Ｅおよび法数ｎから認証用素データ（Ｂ）に対して乱数効果を掛け（Ｓｔｅｐ２０３）、それを認証用データ（Ｃ）として証明装置２００へ送る（Ｓｔｅｐ２０４）。証明装置２００では証明用データの生成を行うための制御情報（Ｌ）が特定の条件を満たすかどうか、この場合には時計８１により得られる時刻が証明用データの生成を行うための制御情報（Ｌ）に記述されている有効期限内にあるかどうかを判定し、有効期限内にある場合には認証用データ（Ｃ）を法ｎのもとで認証の特徴情報（Ｄ）の値だけべき乗することにより、認証用データ（Ｃ）を復号して、その値を検証装置１００へ返す。（Ｓｔｅｐ２０５−２０７）。もし、時計８１により得られる時刻が有効期限内にない場合には、エラーを返して（Ｓｔｅｐ２１１）、検証装置でエラーに応じたエラー処理を行う（Ｓｔｅｐ２１２）。正しく証明用データ（Ｒ）が得られた場合には、第１１の演算手段４１により、証明用データ（Ｒ）と上記乱数ｒの逆数を掛けることでデジタル情報を復号するための鍵Ｋを算出し（Ｓｔｅｐ２０８）、その鍵Ｋを用いて第１０の記憶手段１０に記憶されている暗号化されたプログラムデータ（Ｘ）を復号し（Ｓｔｅｐ２０９）、プログラムデータ（Ｍ）を得る。第１のプログラム実行手段は復号されたプログラムデータ（Ｍ）を得、プログラムを実行する（Ｓｔｅｐ２１０）。
【０１１５】
上記のような動作を行うことで、ユーザ毎に特化された認証用補助情報（ｔ）、あるユーザであることを証明するユーザ固有情報（ｄｕ）および認証用補助情報（ｔ）に対応し、証明データの生成を行うための条件が記載された証明用データの生成を行うための制御情報（Ｌ）をそろえた場合のみ暗号化されたプログラムを実行できるようになる。
【０１１６】
なお、本実施例にて述べた認証方式を安全に保つために、第４の記憶手段４および証明用データ生成手段５２、あるいは第４の記憶手段４、第５の演算手段３５および証明用データ生成手段制御手段９１を外部から内部状態を観察することが困難にするためのタンパープルーフ容器内に封じ込めることが望ましい。
【０１１７】
また、利用者の利便性を保つために第４の記憶手段４および証明用データ生成手段５２、あるいは第４の記憶手段４、第５の演算手段３５および証明用データ生成手段制御手段９１を携帯可能な例えばＩＣカードの様なものとして実現してもよい。
【０１１８】
［実施例３］
次に第３の実施例として署名を検証することで、認証を行う場合についての実施例について説明する。暗号方式としてＲＳＡ公開鍵暗号を用いた場合、実施例１は認証の特徴情報（Ｄ）を署名鍵、公開鍵Ｅを検証鍵と見るとそのまま署名を検証することで、認証を行う場合についての実施例になっているが、本実施例では認証用データに対して直接署名を行うのではなく、認証用データにハッシュを施したものに対して署名を行う例について説明する。認証用データにハッシュを施して署名を行い、証明用データ（Ｒ）を生成する部分と証明用データ（Ｒ）を検証する部分以外は実施例１と同等なので、ここでの説明は割愛する。
【０１１９】
図１３は本実施例における証明用データ生成手段５２の構成例の一つを示している。証明用データ生成手段５２は実施例１での構成の他にハッシュ値を算出する第１２の演算手段４２を備えている。まず、検証装置１００より認証用データ（Ｃ）が入力され、この認証用データ（Ｃ）に基づいて第１２の演算手段４２がそのハッシュ値（ＨC）を算出し、以後このハッシュ値を法ｎのもとで認証の特徴情報（Ｄ）の値だけべき乗し、それを証明用データ（Ｒ）として検証装置１００に返す。
【０１２０】
図１４は検証手段５１の本実施例における構成例の一例である。検証手段５１は第１２の演算手段４２と同様にハッシュ値を算出する第１３の演算手段４３、入力に対し法ｎのもとで検証鍵Ｅの値だけべき乗を行う第１４の演算手段４４および第１３の演算手段４３、第１４の演算手段４４の出力を比較して同等であれば認証成功の出力を、同等でなければ認証失敗の出力を行う比較手段４４ａからなり、証明用データ（Ｒ）が認証用データ（Ｃ）に対する正しい署名かどうかを判断することにより、認証の成功／失敗を判断するよう構成されている。
【０１２１】
［実施例４］
第４の実施例としてＰｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号を用いた場合について説明する。Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号は法数として素数の積ｎではなく、素数ｐそのものを取る点が異なっている。また、認証の特徴情報（Ｄ）とそれに対応する鍵（Ｅ）の関係は
【０１２２】
【数３】
ＥＤ≡１  ｍｏｄ  ｐ−１
となる。ＲＳＡ公開鍵暗号方式を採用した場合には公開情報ｎ，Ｅから秘密情報Ｄを計算するのが困難であったため、一方の鍵Ｅを秘密にする必要はなかったが、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ暗号の場合はＥとｐから容易にＤが算出されるので、一方の鍵Ｅも秘密にしておく必要がある。
【０１２３】
発明の構成や構成要素の動作はＲＳＡ公開鍵暗号方式の場合のｎをｐに置き換えた場合と同等で（ただしφ（ｐ）＝ｐ−１）、検証装置１００が認証用データ（Ｃ）を生成し、証明装置２００は、認証用補助情報（ｔ）、ユーザ固有情報（ｄｕ）などから認証用データ（Ｃ）を法ｐのもとで認証の特徴情報（Ｄ）の値だけべき乗した値を算出し、その結果を証明用データ（Ｒ）として検証装置１００に渡し、検証装置１００は証明用データ（Ｒ）が正しく認証用データ（Ｃ）を法ｐのもとで認証の特徴情報（Ｄ）の値だけべき乗した値であるかどうかを検証することで、認証を行う。
【０１２４】
実施例の詳細は実施例１および２のｎをｐに置き換えたものと同等であるため割愛する。
【０１２５】
［実施例５］
第５の実施例として対称鍵暗号を用いた場合について説明する。本実施例では秘匿を要するデータ（Ｍ）を暗号化したもの（Ｘ）を、認証用補助情報（ｔ）を持ったものが特定の状況下で復号する場合について説明するが、この場合でも実施例２のように秘匿を要するデータ（Ｍ）をプログラムとしてプログラムの実行制御を行ったり、実施例１のように乱数を正しく暗号化できるかあるいは暗号化された乱数を正しく復号化できるかを検証することにより権利の認証を行うこともできる。
【０１２６】
図１５は本実施例の原理構成図を示している。図中の第１０の記憶手段１０には秘匿を要する情報（Ｍ）が鍵Ｋにて復号されるように暗号化されている。秘匿を要する情報（Ｍ）の暗号化方式については特に限定をしない。第１１の記憶手段１１には認証用データとして、上記鍵Ｋを後述の値Ｄを鍵として対称鍵暗号方式にて暗号化した値（Ｃ＝ＥD（Ｋ））が記憶されている。値Ｄは認証用補助情報（ｔ）、証明用データの生成を行うための制御情報（Ｌ）およびユーザ固有の情報（ｄｕ）を引数に取る非衝突性、一方向性の性質を持った関数の値であり、証明データ生成手段５２の内部で算出可能なものである。証明装置２００内には第１１の記憶手段１１から認証用データ（Ｃ）を受け取る第１の記憶手段１を有し、さらに証明用データの生成を行うための制御情報（Ｌ）、認証用補助情報（ｔ）およびユーザ固有の情報（ｄｕ）を保持する第２、３、４の記憶手段２、３、４を有し、時刻を得るための時計８１および証明用データ生成手段５２を有する。証明用データ生成手段５２は時計８１により得られる時刻が証明用データの生成を行うための制御情報（Ｌ）に記述されている範囲内であれば、第２、３、４の記憶手段２、３、４に記憶されているデータから関数値Ｄの値を算出し、そのＤを鍵として認証用データ（Ｃ）を復号して、それを証明用データ（Ｒ）として検証装置１００へ送る。検証装置１００では証明用データ（Ｒ）を鍵として、第１０の記憶手段１０に記憶されている暗号化された秘匿を要するデータを復号して出力する。このとき、実施例２と同様に鍵Ｋあるいは秘匿を必要とするデータ（Ｍ）に予め冗長性を持たせておき、復号した結果が正しい冗長性を持つかどうか確認してもよい。
【０１２７】
本実施例ではこれまでの実施例に示したように認証用データ（Ｃ）や証明用データ（Ｒ）に乱数効果を施すことができない。そのため、検証装置１００と証明装置２００の間の通信の安全性が保証されていない場合には予めＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換などの方式を用いて、鍵を交換しておいて、その鍵に基づいて通信の暗号化を行うことで通信路の安全性を確保しておく必要がある。
【０１２８】
図１６は証明用データ生成手段５２の内部構成の一例を示したものである。証明用データ生成手段５２は証明用データ生成手段制御手段９１および第１の演算手段３１から構成され、さらに第１の演算手段３１は第２の演算手段３２および第３の演算手段３３から構成される。証明用データ生成手段制御手段９１の動作は今までの実施例と同様で、証明用データの生成を行うための制御情報（Ｌ）と時刻を比較し、制限期間以内であれば証明用データ（Ｒ）を計算して検証装置１００に返し、そうでなければエラーメッセージを返すことを行う。第２の演算手段３２は証明用データの生成を行うための制御情報（Ｌ）、証明用補助情報（ｔ）およびユーザ固有情報（ｄｕ）から鍵Ｋを暗号化している鍵の値Ｄを算出し、第３の演算手段３３は上記鍵の値Ｄをもとに、認証用データ（Ｃ）を復号して鍵Ｋを得る。
【０１２９】
Ｄの値の算出方法にはさまざまなものを考えることができる。例えば証明用データの生成を行うための制御情報（Ｌ）、証明用補助情報（ｔ）およびユーザ固有情報（ｄｕ）を連結したデータを引数に取る一方向性でかつ非衝突性の性質を持つ関数の値としてもよい。この場合には、一旦証明用データの生成を行うための制御情報（Ｌ）、証明用補助情報（ｔ）およびユーザ固有情報（ｄｕ）からＤを作ったら、同じＤを生成する別の証明用データの生成を行うための制御情報（Ｌ）、証明用補助情報（ｔ）およびユーザ固有情報（ｄｕ）の組み合わせを生成することが困難であるという欠点がある。
【０１３０】
この欠点を解決する一つの方法として、鍵Ｋを暗号化する鍵Ｄを適当に定め、鍵Ｄを更に証明用データの生成を行うための制御情報（Ｌ）およびユーザ固有情報（ｄｕ）を引数に取る関数の値を鍵として復号できるように暗号化したものを認証用補助情報（ｔ）とする方法がある（Ｄ＝Ｄf(L,du)（ｔ））。この方法によると任意の証明用データの生成を行うための制御情報（Ｌ）およびユーザ固有情報（ｄｕ）に対して、予め定められたＤを算出する認証用補助情報（ｔ）を生成することができるので上記の問題は解決する。この場合の鍵Ｄの暗号化方法は特に限定しない。図１７はこの場合の証明用データ生成手段５２の構成例を示している。証明用データ生成手段制御手段９１の動作は前述のものと同じである。この場合は鍵Ｄは証明用補助情報（ｔ）を復号することにより得られるので、まず復号のための鍵であるｆ（Ｌ，ｄｕ）の値を第１５の演算手段４５にて算出し、次に第１６の演算手段４６により認証用補助情報（ｔ）をｆ（Ｌ，ｄｕ）を用いて復号することにより鍵Ｄを得、さらに第３の演算手段３３において認証用データ（Ｃ）を鍵Ｄを用いて復号することにより秘匿を必要とするデータ（Ｍ）を復号するための鍵Ｋを得ることができる。この場合でも証明用データの生成を行うための制御情報（Ｌ）により、証明用データ（Ｒ）を生成するかどうかの制御を行うことができ、しかも認証用補助情報（ｔ）や証明用データの生成を行うための制御情報（Ｌ）等を改竄した場合には正しいＫを得ることができなくなる。
【０１３１】
更に鍵Ｄだけでなく証明用データの生成を行うための制御情報（Ｌ）も証明用データの生成を行うための制御情報（Ｌ）およびユーザ固有情報（ｄｕ）を引数に取る関数の値を鍵として復号できるように暗号化したものを認証用補助情報（ｔ）とし（Ｄ｜Ｌ＝Ｄf(L,du)（ｔ）（｜は連結を表わす））、証明用データ生成手段５２に入力として与えられた証明用データの生成を行うための制御情報（Ｌ）と、認証用補助情報（ｔ）を復号して得られる証明用データの生成を行うための制御情報（Ｌ’）を比較して両者が一致する場合のみ証明用データ生成手段制御手段９１が証明用データ（Ｒ）を返すようにすると、証明用データ（Ｒ）を生成することなく証明用データの生成を行うための制御情報（Ｌ）を確認することができる。図１８はこの場合の認証データ生成手段５２の構成例を示している。
【０１３２】
上記方式と同等の効果を持つ方法として、認証用補助情報（ｔ）を前述の認証用補助情報に相当するｔ1ならびに鍵Ｄの値および証明用データの生成を行うための制御情報（Ｌ）を引数に取る非衝突性、一方向性の特徴を持つ関数の値ｔ2の２つから構成されるようにして、ｔ1から算出される鍵Ｄの値および入力された証明用データの生成を行うための制御情報（Ｌ）を引数に取る非衝突性、一方向性の特徴を持つ関数ｈの値を算出してその値とｔ2とを比較することにより入力された証明用データの生成を行うための制御情報（Ｌ）の正当性を確認する事もできる。この場合の証明用データ生成手段５２の構成例を図１９に示す。
【０１３３】
［実施例６］
次に証明用データの生成を行うための制御情報（Ｌ）のバリエーションとしていくつかの実施例を示す。本実施例では証明用データの生成を行うための制御情報（Ｌ）が利用回数制限情報であり、予め定められた回数だけ認証やデータの復号を行うことができる場合について説明する。図２０は証明装置２００の構成の一例である。図２１は証明用データ生成手段５２の動作を示すフローチャートである。検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２０および図２１において、本実施例の証明装置では時計８１の代わりに、今までに認証用補助情報（ｔ）を用いて何回認証あるいは復号を行ったかを各認証用補助情報（ｔ）毎に記憶する第１３の記憶手段１３を備える。証明用データの生成を行うための制御情報（Ｌ）は対応する認証用補助情報（ｔ）を最大何回利用できるかという回数情報を示しており、証明用データ生成手段５２内の証明用データ生成手段制御手段９１は証明用データの生成を行うための制御情報（Ｌ）に記載されている回数情報と、第１３の記憶手段１３に記憶されている対応する認証用補助情報（ｔ）の使用回数とを比較し（Ｓｔｅｐ６０１）、認証用補助情報（ｔ）の使用回数が証明用データの生成を行うための制御情報（Ｌ）に記載されている回数情報以下である場合のみ、証明用データ（Ｒ）を生成し、検証装置１００に送出する（Ｓｔｅｐ６０１、６０２）、その後第１３の記憶手段１３に記憶されている対応する認証用補助情報（ｔ）の使用回数の値をインクリメントする（Ｓｔｅｐ６０４）。認証用補助情報（ｔ）の使用回数が証明用データの生成を行うための制御情報（Ｌ）に記載されている回数情報を上回っている場合にはエラーコードを検証装置１００に返して、処理を終了する（Ｓｔｅｐ６０５）。
【０１３４】
このようにすることで回数券型の電子チケットを実現することができる。
【０１３５】
［実施例７］
本実施例では証明用データの生成を行うための制御情報（Ｌ）が利用可能総時間情報であり、予め定められた時間だけ認証やデータの復号を行うことができる場合について説明する。図２２は証明装置２００の構成の一例である。また図２３は証明用データ生成手段５２の動作を示すフローチャートである。本実施例においても検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２２および図２３において、本実施例では証明装置２００内に今までに認証用補助情報（ｔ）を用いて認証あるいは復号を行うことにより何時間サービスを享受したかを示す総利用時間を各認証用補助情報（ｔ）毎に記憶する第１４の記憶手段１４および各回ごとのサービスを享受した時間を計測するサービス時間計測手段８２を備える。サービス時間計測手段８２は例えばサービスの開始時と終了時に必ず認証を行うようにしておけば証明用データ（Ｒ）を作成した時間の差を計算することによりサービス時間を計測するというように実現できるし、別の通信手段でサービスの開始時と終了時に信号を受取りそこからサービス時間を計測するというように実現してもよい。またさらにはサービス時間計測手段８２は証明装置２００内に存在する必然性はなく、サービス時間計測手段８２から証明装置２００内に安全にサービス時間を知らせる方法があれば証明装置２００の外部にあってもよい。
【０１３６】
証明用データの生成を行うための制御情報（Ｌ）は対応する認証用補助情報（ｔ）を最大何時間利用できるかという利用可能総時間情報を示しており、証明用データ生成手段５２内の証明用データ生成手段制御手段９１は証明用データの生成を行うための制御情報（Ｌ）に記載されている利用可能総時間情報と、第１４の記憶手段１４に記憶されている対応する認証用補助情報（ｔ）の現時点での総利用時間とを比較し（Ｓｔｅｐ７０１）、認証用補助情報（ｔ）の総利用時間が証明用データの生成を行うための制御情報（Ｌ）に記載されている利用可能総時間以下である場合のみ、証明用データ（Ｒ）を生成して検証装置１００に渡す（Ｓｔｅｐ７０２、７０３）。その後サービスが終了した段階で第１４の記憶手段１４に記憶されている対応する認証用補助情報（ｔ）の利用可能総時間の値をサービス時間計測手段８２により計測された時間だけ足す（Ｓｔｅｐ７０４）。またさらにサービスを享受している間に、認証用補助情報（ｔ）の総利用時間とサービス時間計測手段８２により計測された今回の利用時間との合計が第１４の記憶手段１４に記憶されている利用可能総時間を超えた場合サービスを停止するよう促してもよい。当初から、認証用補助情報（ｔ）の総利用時間が証明用データの生成を行うための制御情報（Ｌ）に記載されている利用可能総時間を超えている場合にはエラーコードを検証装置１００に返して処理を終了する（Ｓ７０５）。
【０１３７】
このようにすることで時間制限型の電子チケットを実現することができる。
【０１３８】
［実施例８］
本実施例では証明用データの生成を行うための制御情報（Ｌ）が一回の利用に必要なポイントまたは料金情報であり、予め定められたポイントあるいは金額だけ認証やデータの復号を行うことができる場合について説明する。図２４は証明装置２００の構成の一例である。また、図２５は証明用データ生成手段５２の動作を示すフローチャートである。本実施例においても検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２４および図２５において、本実施例では証明装置２００内に認証または復号を行うに必要なポイント残数または残高情報を記憶する第１５の記憶手段１５を備える。証明用データの生成を行うための制御情報（Ｌ）は対応する認証用補助情報（ｔ）を用いた一回の認証または復号に必要なポイント数または金額情報を示しており、証明用データ生成手段５２内の証明用データ生成手段制御手段９１は証明用データの生成を行うための制御情報（Ｌ）に記載されている一回の認証または復号に必要なポイント数または金額情報と、第１５の記憶手段１５に記憶されているポイント残数または残高情報とを比較し（Ｓｔｅｐ８０１）、ポイント残数または残高情報が一回の認証または復号に必要なポイント数または金額情報以上の場合にのみ、証明用データ（Ｒ）を生成して検証装置１００に渡す（Ｓｔｅｐ８０２、８０３）。その後、上記一回の認証または復号に必要なポイント数または金額分だけ第１５の記憶手段１５に記憶されている値を減じる（Ｓｔｅｐ８０４）。なお、第１５の記憶手段１５に記憶されている値は別手段により、書き換えることができる（ポイント数または金額の再充填）ようにしてもよい。ポイント残数または残高情報が一回の認証または復号に必要なポイント数または金額情報を下回る場合にはエラーコードを検証装置１００に返して処理を終了する（Ｓｔｅｐ８０５）。
【０１３９】
このようにすることでプリペイド型の電子チケットを実現することができる。
【０１４０】
［実施例９］
本実施例では証明用データの生成を行うための制御情報（Ｌ）が処理記録（以下ログ）を出力するかしないかを定めた情報であり、認証または復号を行う際にログを記録する必要がある場合には必ずログを記録するようにする方法について説明する。
【０１４１】
現在、サービスを受けた時点でサービスに関するログを記録しておき、後でログに記載されているサービスに対して対価を払うポストペイド方式の支払い方式が存在する。この方式を実現するためにはサービスを提供する時に必ずログを残す必要があるが、さまざまな支払い方式が混在する場面ですべての方式においてログを残すようにしておくと、プライバシーの侵害を招く恐れがある。そのためポストペイドサービスのようにログを残す必要がある場合にのみログを残すというように、ログを残すかどうかを制御する方法が必要である。
【０１４２】
図２６は証明装置２００の構成の一例である。図２７は証明用データ生成手段５２の動作を示すフローチャートである。本実施例においても検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２６および図２７において、本実施例ではログ記録手段８３を備える。証明用データの生成を行うための制御情報（Ｌ）は認証あるいは復号の際にログを記録するかどうかを表わす情報を含んでいる。まず、証明用データ（Ｒ）を計算する（Ｓｔｅｐ９０１）。この後、制御情報（Ｌ）にログを記録するように記載されている場合には認証あるいは復号の際に証明用データ生成手段５２内の証明用データ生成手段制御手段９１がログ記録手段８３に対し必要な情報を受け渡し、ログ記録手段８３はその情報を記録する（Ｓｔｅｐ９０２、９０３）。こののち、先に計算した証明用データ（Ｒ）を検証装置に渡す（Ｓｔｅｐ９０４）。制御情報（Ｌ）に、ログを記録するように指示されたいない場合には、ログをとることなく、そのまま証明用データ（Ｒ）を検証装置１００に渡す（Ｓｔｅｐ９０２、９０４）。
【０１４３】
このようにすることで必要な場合にのみログを記録する方式を実現することができる。
【０１４４】
［実施例１０］
本実施例では証明用データの生成を行うための制御情報（Ｌ）がパスワードのように特定の個人しか知らない情報に関連するデータ、または声紋情報、指紋情報、アイリスパターン情報、網膜パターン情報などの個体識別情報に関するデータなどの個人認証情報に関する情報であり、これらのデータの照合が正しく行われた場合のみ認証やデータの復号を行うことができる方法について説明する。図２８は証明装置２００の構成の一例である。また、図２５は証明用データ生成手段５２の動作を示すフローチャートである。本実施例においても検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図２８および図２９において、本実施例では個人認証情報抽出手段８４を備える。個人認証情報抽出手段８４は証明装置２００内にあってもよいし外部にあってもよい。証明用データの生成を行うための制御情報（Ｌ）は対応する認証用補助情報（ｔ）を用いて認証または復号を行うことができる個人の個人認証情報または個人認証情報が取りうる範囲の情報を示しており、証明用データ生成手段５２内の証明用データ生成手段制御手段９１は証明用データの生成を行うための制御情報（Ｌ）に記載されている個人認証情報または個人認証情報が取りうる範囲の情報と、個人認証情報抽出手段８４により与えられた情報とを比較して、同一あるいは有効範囲内であれば証明用データ（Ｒ）を生成して検証装置１００に渡す（Ｓｔｅｐ１００１、１００２、１００３）。制御情報（Ｌ）に記載されている個人認証情報または個人認証情報が取りうる範囲に、個人認証情報抽出手段８４からの情報が含まれない場合には、エラーコードを検証装置１００に渡して処理を終了する（Ｓｔｅｐ１００４）。
【０１４５】
このようにすることで予め個人認証のためのデータベースを持たない状況でも認証や復号を行う際に個人認証を行うことができる。
【０１４６】
［実施例１１］
本実施例では証明用データの生成を行うための制御情報（Ｌ）がさまざまな処理を行うためのプログラムであり、そのプログラムの処理結果に基づいて認証または復号を行うかどうかを制御する場合について説明する。ここでの処理は上記の利用期間、利用回数、個人認証、ログの記録などさまざまな制御情報の組み合わせによる判断であったり、更には外部の構成要素と通信を行うことにより例えばサービスの提供者またはソフトウエアプログラムやデータの著者のエージェントと通信を行い、サービスの享受の許可を得、所定の金額をサービスの提供者またはソフトウエアプログラムやデータの著者の口座に振り込んだことを確認するというものでもよい。図３０は証明装置２００の構成の一例である。また、図３１は証明用データ生成手段５２の動作を示すフローチャートである。本実施例においても検証装置１００の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図３０および図３１において、本実施例では証明用データの生成を行うための制御情報（Ｌ）に記載されたプログラムを実行する第２のプログラム実行手段７２を備える。まず、証明用データ生成手段５２内の証明用データ生成手段制御手段９１は証明用データの生成を行うための制御情報（Ｌ）に記載されているプログラムを第２のプログラム実行手段７２において実行し（Ｓｔｅｐ１１０１）、プログラムが特定の状態にて終了するかまたは特定の状態にある場合にのみ、証明用データ（Ｒ）を生成して検証装置１００に渡す（Ｓｔｅｐ１１０２、１１０３、１１０４）。そうでない場合には、エラーコードを検証装置１００に渡して処理を終了する（Ｓｔｅｐ１１０５）。
【０１４７】
このようにすることで上記のさまざまな制御方法を復号した制御を実現することができ、また他の構成要素と通信を行うことによりより高度な条件や動作制御を前提とした認証や復号を実現することができる。
【０１４８】
［実施例１２］
以上、条件付き認証の方法、または復号の方法について述べてきたが、実施例３で述べたように本発明の構成を用いて条件付きで電子署名の生成を行うことができる。これを利用すると条件付き電子署名装置を実現することができる。
【０１４９】
例えば従来は一定期間だけ代理人に自分の署名付きのメッセージを作成してもらいたい時にも、代理人に自分の秘密情報である署名鍵を開示する必要があり、しかも一旦署名鍵を開示してしまえば、以降代理人にも自分の電子署名が生成されてしまう恐れがあった。また、一般に署名鍵のような秘密情報は汎用コンピュータの記憶手段上に記憶しておくのではなく、例えばＩＣカードのような汎用コンピュータとは独立のタンパープルーフな媒体上に記憶しておくのが望ましい。さらにＩＣカードのような可搬の媒体は盗難の恐れもあり、持ち主を確認する上でも一定期間で利用できないようにして更新を促せるようなことも必要である。
【０１５０】
上記のような状況下では、秘密情報を洩らすことなく一定の条件下で署名の生成を可能にする条件付き署名装置が有効である。図３２は条件付き署名装置４００の構成の一例を示している。また、図３３は署名生成装置の動作を説明するフローチャートである。この装置の構成は実施例３における証明装置２００とほぼ同等である。本実施例では実際の目的に合わせるため、上記認証用補助情報（ｔ）を署名生成用補助情報（ｔ）、証明用データの生成を行うための制御情報（Ｌ）を署名を生成するための制御情報（Ｌ）、証明用データ生成手段５２を署名生成手段と呼ぶこととする（図では符号５２‘を用いる）。予め署名を行うに必要な署名生成用補助情報（ｔ）およびな署名生成用補助情報（ｔ）に対応した署名を生成するための制御情報（Ｌ）を得て、それぞれ第３、第２の記憶手段に記憶しておく。第４の記憶手段に記憶されているユーザ固有情報（ｄｕ）は署名装置４００が作られた段階で埋め込まれているものとする。メッセージＭを入力として受け取ると（Ｓｔｅｐ１２０１）、証明用データ生成手段５２は署名を生成するための制御情報（Ｌ）に記述されている条件等を比較検討し（Ｓｔｅｐ１２０２）、署名を生成するための条件が満たされている場合のみ、ユーザ固有情報（ｄｕ）、署名生成用補助情報（ｔ）および署名を生成するための制御情報（Ｌ）からメッセージＭに対する署名（Ｒ）を生成し、出力する（Ｓｔｅｐ１２０３、１２０４）。署名を生成するための条件が満たされない場合には、エラーコードを出力して処理を終了する（Ｓｔｅｐ１２０５）。
【０１５１】
なお、この場合のメッセージＭは通常のメッセージそのものでもよいし、メッセージのダイジェストでもよい。このような構成および動作により条件付き署名装置を実現することができる。
【０１５２】
［実施例１３］
本実施例では前述の認証用補助情報（ｔ）あるは署名生成用補助情報（ｔ）を生成する認証用補助情報生成装置２０００について説明する。前述の実施例では認証や復号に用いる暗号の方式の違いにより、さまざまな形の認証用補助情報（ｔ）を示してきたが、本実施例ではその中のＲＳＡ公開鍵暗号方式を用いた場合、しかもユーザ固有情報（ｄｕ）を用いる場合の認証用補助情報（ｔ）の生成手段について説明する。図３４は認証用補助情報生成装置２０００の原理構成図を示している。本実施例における認証用補助情報生成装置２０００は、ユーザ情報ＤＢ（データベース）１０１、制御情報ＤＢ１０２、認証の特徴情報ＤＢ１０３の３つのデータベースを備え、それぞれユーザの個人情報およびユーザ固有情報ｄｕ、証明用データの生成を行うための制御情報（Ｌ）を生成するためのテンプレート、各サービスの認証の特徴情報または秘匿を必要とするデータの復号鍵およびその情報に対応する法数ｎを管理保有している。利用者は入力手段１０７及び表示手段１０６を利用して、どのユーザ固有情報の、どのサービスに対する、そのような条件を持った認証用補助情報（ｔ）を得たいかを認証補助情報生成手段制御手段１０４へ伝達し、認証補助情報生成手段制御手段１０４は各データベースから対応する情報を取り出し、ユーザ固有情報（ｄｕ）、証明用データの生成を行うための制御情報（Ｌ）、認証の特徴情報（Ｄ）および法数ｎをそれぞれ第１６から第１８の記憶手段１６、１７、１８へ記憶させる。各情報が選び出された後はそれらの情報を用いて認証用補助情報計算手段１０５にて認証用補助情報（ｔ）の値が計算される。認証用補助情報（ｔ）は例えば次の式のように計算される。
【０１５３】
【数４】
ｔ＝Ｄ−ｆ（ｄｕ，Ｌ，ｎ）
このときの関数ｆは一方向性、非衝突性の性質を持つことが望ましい。このようにして計算された認証用補助情報（ｔ）は認証用補助情報出力手段１０８にて利用者へ渡される。
【０１５４】
【発明の効果】
以上説明したように、本発明によれば、第１に、電子化されたチケットの正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しく認証が行われないようにすることができる。第２に暗号化されたデジタル情報を条件付きで復号する場合に於いては、デジタル情報を復号して利用する際に復号を行うための条件等を設定でき、しかも復号を行うための条件等は暗号化されたデジタル情報自身とは独立であり、したがってユーザ毎に異なる条件等を割り当てることが容易で、しかも復号を行うための条件等が改竄された場合には正しくデジタル情報の復号が行われないようにすることができる。また本発明の構成を用いることにより期間などの条件が満たされている場合のみ電子署名を生成することが可能な条件付き電子署名生成装置を実現することができる。
【図面の簡単な説明】
【図１】  実施例１の原理構成図である。
【図２】  証明用データ生成手段の構成例を示す図である。
【図３】  証明用データ生成手段の構成例を示す図である。
【図４】  証明用データ生成手段の構成例を示す図である。
【図５】  証明用データ生成手段の構成例を示す図である。
【図６】  実施例１のフローチャートである。
【図７】  第１の演算手段の動作の一例を示す図である。
【図８】  第１の演算手段の動作の一例を示す図である。
【図９】  実施例２の原理構成図である。
【図１０】  証明用データ生成手段の構成例を示す図である。
【図１１】  証明用データ生成手段の構成例を示す図である。
【図１２】  実施例２のフローチャートを示す図である。
【図１３】  証明用データ生成手段の構成例を示す図である。
【図１４】  証明用データ生成手段の構成例を示す図である。
【図１５】  実施例５の原理構成図である。
【図１６】  証明用データ生成手段の構成例を示す図である。
【図１７】  証明用データ生成手段の構成例を示す図である。
【図１８】  証明用データ生成手段の構成例を示す図である。
【図１９】  証明用データ生成手段の構成例を示す図である。
【図２０】  証明装置の構成例を示す図である。
【図２１】  証明装置の動作を示すフローチャートを示す図である。
【図２２】  証明装置の構成例を示す図である。
【図２３】  証明装置の動作を示すフローチャートを示す図である。
【図２４】  証明装置の構成例を示す図である。
【図２５】  証明装置の動作を示すフローチャートを示す図である。
【図２６】  証明装置の構成例を示す図である。
【図２７】  証明装置の動作を示すフローチャートを示す図である。
【図２８】  証明装置の構成例を示す図である。
【図２９】  証明装置の動作を示すフローチャートを示す図である。
【図３０】  証明装置の構成例を示す図である。
【図３１】  証明装置の動作を示すフローチャートを示す図である。
【図３２】  署名装置の構成例を示す図である。
【図３３】  署名装置の動作を示すフローチャートを示す図である。
【図３４】  認証用補助情報生成装置の原理構成図である。
【図３５】  利用形態の例を示す図である。
【図３６】  利用形態の例を示す図である。
【符号の説明】
１０００…認証装置
２０００…認証用補助情報生成装置
１００…検証装置
２００…証明装置
３００…制御装置
４００…署名装置
１…認証用データ（Ｃ）を記憶する第１の記憶手段
２…証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段
３…認証用補助情報（ｔ）を記憶する第３の記憶手段
４…ユーザ固有情報（ｄｕ）を記憶する第４の記憶手段
５…認証用素データ（Ｂ）を記憶する第５の記憶手段
６…特定データ（Ｋ）を記憶する第６の記憶手段
７…特定データのハッシュ値（ＨＫ）を記憶する第７の記憶手段
８…法数（ｎ）を記憶する第８の記憶手段
９…公開鍵（Ｅ）を記憶する第９の記憶手段
１０…暗号化されたデータ（Ｘ）を記憶する第１０の記憶手段
１１…認証用データ（Ｃ）を記憶する第１１の記憶手段
１２…証明用データ（Ｒ）を記憶する第１２の記憶手段
１３…利用回数（ｉ）を記憶する第１３の記憶手段
１４…利用総時間（Ｔ）を記憶する第１４の記憶手段
１５…利用金額またはスコア（Ｐ）を記憶する第１５の記憶手段
１６…ユーザ固有情報（ｄｕ）（補助情報生成装置）を記憶する第１６の記憶手段
１７…証明用データの生成を行うための制御情報（Ｌ）（補助情報生成装置）を記憶する第１７の記憶手段
１８…認証の特徴情報（Ｄ）（補助情報生成装置）を記憶する第１８の記憶手段
３１…証明用データ（Ｒ）を計算する第１の演算手段
３２…Ｄ＝ｔ−ｆ（ｎ，Ｌ，ｄｕ）を計算する第２の演算手段
３３…ＣDを計算する第３の演算手段
３４…Ｃtを計算する第４の演算手段
３５…Ｃfを計算する第５の演算手段
３６…ＣDを計算する第６の演算手段
３７…乱数効果を付与する第７の演算手段
３８…ハッシュ値を計算する第８の演算手段
３９…乱数効果を除去する第９の演算手段
４０…データを復号する第１０の演算手段
４１…サービス時間を計算する第１１の演算手段
４２…署名用ハッシュを計算する第１２の演算手段
４３…署名用ハッシュを計算する（検証装置側）第１３の演算手段
４４…署名を検証する（検証装置側）第１４の演算手段
４５…ｆを計算する第１５の演算手段
４６…ｔを復号する第１６の演算手段
４７…ｈを計算する第１７の演算手段
５１…証明用データの正当性を検証する検証手段
５２…証明用データ生成手段
６１…Ｃ用の乱数を生成する第１の乱数生成手段
６２…乱数効果用の乱数を生成する第２の乱数生成手段
７１…暗号化されたプログラムを実行する第１のプログラム実行手段
７２…Ｌを実行する第２のプログラム実行手段
８１…時刻を得る時計
８２…サービスを享受している時間を計測するサービス時間計測手段
８３…利用履歴を記録ログ記録手段
９１…証明用データを生成するかどうかを判断する証明用データ生成手段制御手段
１０１…ユーザとユーザ固有情報を管理保持するユーザ情報ＤＢ
１０２…証明用データの生成を行うための制御情報（Ｌ）のテンプレートを管理保持する制御情報ＤＢ
１０３…認証の特徴情報を管理保持する認証の特徴情報情報ＤＢ
１０４…認証用補助情報を生成するための管理を行う認証用補助情報生成手段制御手段
１０５…認証用補助情報を算出する認証用補助情報計算手段
１０６…認証用補助情報のおいて必要な情報を入力するよう促す表示手段
１０７…認証用補助情報において必要な情報を入力する入力手段
１０８…認証用補助情報を出力する認証用補助情報出力手段
【図１】
0003954692.tif 000002
【図２】
0003954692.tif 000003
【図３】
0003954692.tif 000004
【図４】
0003954692.tif 000005
【図５】
0003954692.tif 000006
【図６】
0003954692.tif 000007
【図７】
0003954692.tif 000008
【図８】
0003954692.tif 000009
【図９】
0003954692.tif 000010
【図１０】
0003954692.tif 000011
【図１１】
0003954692.tif 000012
【図１２】
0003954692.tif 000013
【図１３】
0003954692.tif 000014
【図１４】
0003954692.tif 000015
【図１５】
0003954692.tif 000016
【図１６】
0003954692.tif 000017
【図１７】
0003954692.tif 000018
【図１８】
0003954692.tif 000019
【図１９】
0003954692.tif 000020
【図２０】
0003954692.tif 000021
【図２１】
0003954692.tif 000022
【図２２】
0003954692.tif 000023
【図２３】
0003954692.tif 000024
【図２４】
0003954692.tif 000025
【図２５】
0003954692.tif 000026
【図２６】
0003954692.tif 000027
【図２７】
0003954692.tif 000028
【図２８】
0003954692.tif 000029
【図２９】
0003954692.tif 000030
【図３０】
0003954692.tif 000031
【図３１】
0003954692.tif 000032
【図３２】
0003954692.tif 000033
【図３３】
0003954692.tif 000034
【図３４】
0003954692.tif 000035
【図３５】
0003954692.tif 000036
【図３６】
0003954692.tif 000037