(57)【特許請求の範囲】
【請求項１】
署名対象のメッセージ（Ｃ）を記憶する第１の記憶手段と、
条件（Ｌ）を記憶する第２の記憶手段と、
少なくともデジタル署名が許容される真正な条件および署名鍵情報（Ｄ）に対して所定の署名用補助情報生成用計算を行うことにより得られる署名用補助情報（ｔ）を記憶する第３の記憶手段と、
上記条件（Ｌ）が満たされるかどうか判別し、満たされる場合にのみ、少なくとも上記第１の記憶手段に記憶されている上記メッセージ（Ｃ）、上記第２の記憶手段に記憶されている上記条件（Ｌ）および上記第３の記憶手段に記憶されている上記署名用補助情報（ｔ）に対して所定の署名生成用計算を実行する計算手段とを有し、
上記第２の記憶手段に記憶されている上記条件（Ｌ）が上記真正な条件と同一なときに、上記計算手段の実行結果が上記メッセージ（Ｃ）に対する署名鍵情報（Ｄ）を用いた署名となるように、上記所定の署名用補助情報生成用計算および上記所定の署名生成用計算を選定したことを特徴とする条件付き署名装置。
【請求項２】
請求項１記載の条件付き署名装置で用いられる署名用補助情報（ｔ）を生成する署名用補助情報生成装置において、
上記署名鍵情報を記憶する記憶手段Ａと、
上記真正な条件を記憶する記憶手段Ｂと、
上記署名鍵情報、および上記真正な条件に対して上記所定の署名用補助情報生成用計算を実行して上記署名用補助情報（ｔ）を算出する手段とを有することを特徴とする署名用補助情報生成装置。
【請求項３】
第１の記憶手段、第２の記憶手段、少なくともデジタル署名が許容される真正な条件および署名鍵情報（Ｄ）に対して所定の署名用補助情報生成用計算を行うことにより得られる署名用補助情報（ｔ）を記憶する第３の記憶手段、および所定の署名生成用計算を実行する計算手段を用いてあるメッセージ（Ｃ）に対するデジタル署名を生成する条件付きデジタル署名方法において、
上記第１の記憶手段が、上記メッセージ（Ｃ）を記憶するステップと、
上記第２の記憶手段が、条件（Ｌ）を記憶するステップと、
上記第３の記憶手段が、上記署名用補助情報（ｔ）を記憶するステップと、
上記計算手段が、上記条件（Ｌ）が満たされるかどうか判別し、満たされる場合にのみ、少なくとも上記第１の記憶手段に記憶されている上記メッセージ（Ｃ）、上記第２の記憶手段に記憶されている上記条件（Ｌ）および上記第３の記憶手段に記憶されている上記署名用補助情報（ｔ）に対して上記所定の署名生成用計算を実行するステップとを有し、
上記第２の記憶手段に記憶されている上記条件（Ｌ）が上記真正な条件と同一なときに、上記計算手段の実行結果が上記メッセージ（Ｃ）に対する署名鍵情報（Ｄ）を用いた署名となるように、上記所定の署名用補助情報生成用計算および上記所定の署名生成用計算を選定したことを特徴とする条件付き署名方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は利用期限等の制約に関連して条件付きでデジタル署名を行う条件付きデジタル署名技術に関し、とくに、制約に関する情報が改竄されている場合には真正なデジタル署名を行わないようにしたものである。
【０００２】
【従来の技術】
従来、サービス対象を利用する権限をユーザが有しているかどうかを認証する方法として、一般的には予め物理的なチケットやメンバーズカードを発行してもらい、サービスを享受する時点でチケットやメンバーズガードを提示する方法が取られてきた。この方法の場合、チケット等に記載された有効期限やサービスの種類等の情報をサービス提供者がその場で確認することで、条件の確認と認証を行ってきた。しかし、チケットそのものが物理的存在であるためにチケットの配送にコストがかかったり、チケットの偽造を困難にするためにチケットの製造自体にコストがかかってしまう欠点があった。この点についてはチケットを電子化することで配送や製造にかかわるコストを低減させることが可能である。このための技術として、特開昭６２−１７１０７１号公報の「予約取引用ＩＣカード」、特公平６−２２０３２号公報の「電子カードによる公共サービスの支払システム」がある。しかし、これらの技術ではサービスを享受した時点でチケットに相当する電子情報が無効化されるだけで、回数券型のチケットや利用期日制限と利用量制限の組み合わせといったより柔軟なチケットの実現に寄与するものではなかった。また、これらの技術はチケットを電子的に取り寄せる場合にカードとホストの間の通信の盗聴とリプレイ攻撃によるチケットの不正利用に対する防御策を持ち合わせていなかった。このような問題は、利用期限等の制約を付けてデジタル署名のサービスを提供する場合も同様に起こる。
【０００３】
また従来、暗号化されたデジタル情報について利用制限の機能を付加したものとして、特開平７−１３１４５２号公報の「デジタル情報保護方法及びその処理装置」に記載されている技術がある。特開平７−１３１４５２号公報の発明では、デジタル情報を情報識別番号と、情報本体と、利用条件情報及び認証子の組で表し、更に計算機内にデジタル情報を取り込んだ時に、情報識別番号および利用条件情報に関する第２の識別子を生成し、デジタル情報を利用する際は、２つの識別子による検証を行い、利用条件情報に記載されている利用条件を満たすかどうかの検証を行い、すべての検証が正常に終了した時のみデジタル情報を復号化して、利用できる形へ変換することを行っている。しかし、特開平７−１３１４５２号公報に記載されている方法では情報本体と利用条件の正当な組合せを保証するために両者を同一の暗号化鍵で暗号化するため、例えば利用者ごとに利用条件を変えようとすると、通信の度に暗号化を行うあるいは通信ごとに暗号化されたものを予め用意する必要があり、ＣＤ−ＲＯＭ等によるデジタル情報の多量の配布や、衛星放送などを利用したブロードキャストなどには向いていなかった。
【０００４】
【発明が解決しようとする課題】
本発明では上記の問題点を鑑み、デジタル署名のサービスを利用する権限をユーザが有しているかどうかを認証する場合に於いて、従来のチケットに相当するものを電子化して、その電子情報の正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しくデジタル署名が行われないようにすることを目的とする。
【０００５】
【課題を解決するための手段】
以下、本発明を詳細に説明する。
【０００６】
本発明の第１の側面によれば、特定の条件が満たされた場合にのみ、あるメッセージに対するデジタル署名を生成する条件付きデジタル署名装置に、上記メッセージ（Ｃ）を記憶する第１の記憶手段と、署名の生成を行うための条件（Ｌ）を記憶する第２の記憶手段と、少なくとも上記条件（Ｌ）および署名鍵情報（Ｄ）に対して所定の演算を行うことにより得られる署名用補助情報（ｔ）を記憶する第３の記憶手段と、上記条件（Ｌ）が特定の条件を満たす場合にのみ、少なくとも上記条件および上記署名用補助情報（ｔ）から署名を生成する署名生成手段とを設けるようにしている。
【０００７】
この構成においては、期間などの条件が真正な場合のみ真正な電子署名が生成されるようにすることができる。
【０００８】
本発明の第２の側面によれば、署名（Ｒ）を生成するために用いられる署名用補助情報（ｔ）を生成する署名用補助情報生成装置に、認証の特徴情報または署名鍵情報を受け取る手段と、上記署名の生成を行うための条件（Ｌ）を受け取る手段と、上記署名鍵情報、および上記署名の生成を行うための条件（Ｌ）から証明用補助情報（ｔ）または署名用補助情報（ｔ）を算出する手段とを設けるようにしている。
【０００９】
この構成においては、安全性を確保したままで、署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、署名用補助情報を生成できる。
【００１０】
本発明の第３の側面によれば、署名（Ｒ）を生成するために用いられる署名用補助情報（ｔ）を生成する署名用補助情報生成装置に、署名鍵情報を受け取る手段と、上記署名の生成を行うための条件（Ｌ）を受け取る手段と、ユーザ固有情報（ｄｕ）を受け取る手段と、上記ユーザ固有情報（ｄｕ）、上記署名鍵情報、および上記署名の生成を行うための条件（Ｌ）から署名用補助情報（ｔ）を算出する手段とを設けるようにしている。
【００１１】
この構成においても、安全性を確保したままで、署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、署名用補助情報を生成できる。また、ユーザ固有情報により一層プロテクトを確実なものにできる。
【００１２】
なお、本発明は、方法として実現することも可能であるし、少なくとも一部をプログラム製品の態様で実現することもできる。
【００１３】
本発明の上述の側面はおよび本発明の他の側面は特許請求の範囲に記載され、以下、実施例を用いて詳細に説明する。
【００１４】
【発明の実施の形態】
本発明は、条件付き署名技術に関するものであるが、その特徴は認証技術にも関連するものであり、以下では、かかる関連する認証技術の実現例も実施例として合わせて説明する。
個々の実施例の説明に入る前に、上述の認証技術の利用形態について簡単に説明する。かかる認証技術は広くサービスを享受する権利の認証に関するものであり、特に認証を行うための条件や手続きを指定する技術に関するものである。そしてかかる認証技術を構成する要素は大きく、権利を証明するための証明装置と、証明装置により生成されたデータをもとに正当な権利を保持しているかどうかを判断する検証装置からなる。証明装置は利用者が保持しており、検証装置はサービスを提供する場所に有り、利用者がサービスを享受しようとした場合サービスを享受する権利を検証装置に対し証明することで、サービスを享受できるようになる。
【００１５】
図３５は認証技術の利用形態の一例である。例えばコンサート会場の入り口に検証装置が設置して有り、利用者は予め証明装置、コンサートのチケットに相当する認証用補助情報（ｔ）およびチケットの日付、席番等が記述された証明用データの生成を行うための制御情報（Ｌ）を用意し、検証装置に対し証明装置、認証用補助情報（ｔ）および証明用データの生成を行うための制御情報（Ｌ）が正当なものであることを証明することによりゲートが開き入場できるようになっている。このような利用形態はなにもゲートの開閉を伴うものにとどまらず、例えばさまざまな交通機関において、乗務員に対し正当な有効期限付き切符を保持していること示すためのものであってもよい。
【００１６】
図３６は認証技術のまた別の利用形態の例である。この例では検証装置は汎用コンピュータであり、証明装置は上記コンピュータのスロットに挿入して利用する、あるいは上記コンピュータと赤外線などを用いて通信をおこなうものである。利用者が例えばあるアプリケーションソフトウエアを利用しようとする時、上記コンピュータは利用者の証明装置に対し上記アプリケーションソフトウエアを利用する権利を証明するように求め、利用者は証明装置、認証用補助情報（ｔ）および証明用データの生成を行うための制御情報（Ｌ）を用いて証明を行い、正当な証明が行われた場合のみアプリケーションが利用できるというものである。
【００１７】
以下、個々の実施例について説明する。
【００１８】
［実施例１］
実施例１は認証用データ（Ｃ）として乱数を用いて、証明用データ（Ｒ）は法ｎにおけるＲＳＡ暗号方式による暗号化に基づいて生成され、証明用データが認証の特徴情報（Ｄ）に基づいて暗号化されているかを検証することにより、認証を行う場合の例である。このとき認証の特徴情報（Ｄ）はＲＳＡ公開鍵暗号方式の秘密鍵に相当し、φ（ｎ）と認証の特徴情報（Ｄ）は互いに素の関係に有り、後述の公開鍵ＥとはＤＥ＝１  ｍｏｄ  φ（ｎ）の関係にある（φ（ｎ）はオイラー数で、この例ではφ（ｎ）＝（ｐ−１）（ｑ−１）となる）。なお、証明用データの生成を行うための制御情報（Ｌ）の具体例としては利用期限制限の場合について説明する。このようにすることにより例えば一定の期間のみ特定のサービスを受けることができるような定期券を実現することができる。
【００１９】
図１は実施例１における原理構成図である。実施例１においては本発明に係る認証装置１０００は検証装置１００と証明装置２００からなる。
【００２０】
図１に示す制御装置３００は認証を行った結果に基づいて行う動作を制御するための装置であり、例えば入室管理に本発明を適用させる場合には、認証が成功したときにドアの施錠をはずしたり、逆に認証が失敗した時にドアを閉めたり、また単に認証の結果をランプやディスプレイを通して提示したりするためのものである。
【００２１】
検証装置１００は認証用データ（Ｃ）として乱数を生成するための第１の乱数生成装置６１と、第１の乱数生成装置６１で生成された乱数を証明装置２００へ送るために一時的に記憶する第１１の記憶手段１１と、証明装置２００により生成された証明用データ（Ｒ）を記憶する第１２の記憶手段１２と、ＲＳＡ暗号方式の法ｎ（ｎは十分に大きな素数ｐ，ｑの積）を記憶する第８の記憶手段８と、ＲＳＡの公開鍵Ｅ（上記認証の特徴情報（Ｄ）の逆数：ＥＤ＝１  ｍｏｄφ（ｎ））を記憶する第９の記憶手段９と、証明用データ（Ｒ）は認証用データ（Ｃ）を正しく暗号化したものであるかを検証する検証手段５１を備える。
【００２２】
証明装置２００は、検証装置１００が生成した認証用データ（Ｃ）を受け取る第１の記憶手段１と、証明用データの生成を行うための制御情報（Ｌ）を記憶する第２の記憶手段２と、認証の特徴情報（Ｄ）および証明用データの生成を行うための制御情報（Ｌ）から算出される証明用補助情報（ｔ）を記憶する第３の記憶手段３と、時刻を得るために用いる時計８１と、証明用データの生成を行うための制御情報（Ｌ）に記載されている有効期間内に時計８１から得られる時刻が含まれている場合にのみ、認証用データ（Ｃ）、証明用データの生成を行うための制御情報（Ｌ）および証明用補助情報（ｔ）から証明用データ（Ｃ）を認証の特徴データ（Ｄ）で暗号化した証明用データ（Ｒ＝Ｃ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を計算する第６の演算手段
３７…乱数効果を付与する第７の演算手段
３８…ハッシュ値を計算する第８の演算手段
３９…乱数効果を除去する第９の演算手段
４０…データを復号する第１０の演算手段
４１…サービス時間を計算する第１１の演算手段
４２…署名用ハッシュを計算する第１２の演算手段
４３…署名用ハッシュを計算する（検証装置側）第１３の演算手段
４４…署名を検証する（検証装置側）第１４の演算手段
４５…ｆを計算する第１５の演算手段
４６…ｔを復号する第１６の演算手段
４７…ｈを計算する第１７の演算手段
５１…証明用データの正当性を検証する検証手段
５２…証明用データ生成手段
５２’ …署名生成手段
６１…Ｃ用の乱数を生成する第１の乱数生成手段
６２…乱数効果用の乱数を生成する第２の乱数生成手段
７１…暗号化されたプログラムを実行する第１のプログラム実行手段
７２…Ｌを実行する第２のプログラム実行手段
８１…時刻を得る時計
８２…サービスを享受している時間を計測するサービス時間計測手段
８３…利用履歴を記録ログ記録手段
９１…証明用データを生成するかどうかを判断する証明用データ生成手段制御手段
１０１…ユーザとユーザ固有情報を管理保持するユーザ情報ＤＢ
１０２…証明用データの生成を行うための制御情報（Ｌ）のテンプレートを管理保持する制御情報ＤＢ
１０３…認証の特徴情報を管理保持する認証の特徴情報情報ＤＢ
１０４…認証用補助情報を生成するための管理を行う認証用補助情報生成手段制御手段
１０５…認証用補助情報を算出する認証用補助情報計算手段
１０６…認証用補助情報のおいて必要な情報を入力するよう促す表示手段
１０７…認証用補助情報において必要な情報を入力する入力手段
１０８…認証用補助情報を出力する認証用補助情報出力手段
【図１】
0003972858.tif 000002
【図２】
0003972858.tif 000003
【図３】
0003972858.tif 000004
【図４】
0003972858.tif 000005
【図５】
0003972858.tif 000006
【図６】
0003972858.tif 000007
【図７】
0003972858.tif 000008
【図８】
0003972858.tif 000009
【図９】
0003972858.tif 000010
【図１０】
0003972858.tif 000011
【図１１】
0003972858.tif 000012
【図１２】
0003972858.tif 000013
【図１３】
0003972858.tif 000014
【図１４】
0003972858.tif 000015
【図１５】
0003972858.tif 000016
【図１６】
0003972858.tif 000017
【図１７】
0003972858.tif 000018
【図１８】
0003972858.tif 000019
【図１９】
0003972858.tif 000020
【図２０】
0003972858.tif 000021
【図２１】
0003972858.tif 000022
【図２２】
0003972858.tif 000023
【図２３】
0003972858.tif 000024
【図２４】
0003972858.tif 000025
【図２５】
0003972858.tif 000026
【図２６】
0003972858.tif 000027
【図２７】
0003972858.tif 000028
【図２８】
0003972858.tif 000029
【図２９】
0003972858.tif 000030
【図３０】
0003972858.tif 000031
【図３１】
0003972858.tif 000032
【図３２】
0003972858.tif 000033
【図３３】
0003972858.tif 000034
【図３４】
0003972858.tif 000035
【図３５】
0003972858.tif 000036
【図３６】
0003972858.tif 000037