JP3972858B2 - 署名装置および方法 - Google Patents

署名装置および方法 Download PDF

Info

Publication number
JP3972858B2
JP3972858B2 JP2003122688A JP2003122688A JP3972858B2 JP 3972858 B2 JP3972858 B2 JP 3972858B2 JP 2003122688 A JP2003122688 A JP 2003122688A JP 2003122688 A JP2003122688 A JP 2003122688A JP 3972858 B2 JP3972858 B2 JP 3972858B2
Authority
JP
Japan
Prior art keywords
signature
information
authentication
data
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003122688A
Other languages
English (en)
Other versions
JP2003333033A (ja
Inventor
幸史 竹田
和雄 齊藤
太郎 寺尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2003122688A priority Critical patent/JP3972858B2/ja
Publication of JP2003333033A publication Critical patent/JP2003333033A/ja
Application granted granted Critical
Publication of JP3972858B2 publication Critical patent/JP3972858B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は利用期限等の制約に関連して条件付きでデジタル署名を行う条件付きデジタル署名技術に関し、とくに、制約に関する情報が改竄されている場合には真正なデジタル署名を行わないようにしたものである。
【0002】
【従来の技術】
従来、サービス対象を利用する権限をユーザが有しているかどうかを認証する方法として、一般的には予め物理的なチケットやメンバーズカードを発行してもらい、サービスを享受する時点でチケットやメンバーズガードを提示する方法が取られてきた。この方法の場合、チケット等に記載された有効期限やサービスの種類等の情報をサービス提供者がその場で確認することで、条件の確認と認証を行ってきた。しかし、チケットそのものが物理的存在であるためにチケットの配送にコストがかかったり、チケットの偽造を困難にするためにチケットの製造自体にコストがかかってしまう欠点があった。この点についてはチケットを電子化することで配送や製造にかかわるコストを低減させることが可能である。このための技術として、特開昭62−171071号公報の「予約取引用ICカード」、特公平6−22032号公報の「電子カードによる公共サービスの支払システム」がある。しかし、これらの技術ではサービスを享受した時点でチケットに相当する電子情報が無効化されるだけで、回数券型のチケットや利用期日制限と利用量制限の組み合わせといったより柔軟なチケットの実現に寄与するものではなかった。また、これらの技術はチケットを電子的に取り寄せる場合にカードとホストの間の通信の盗聴とリプレイ攻撃によるチケットの不正利用に対する防御策を持ち合わせていなかった。このような問題は、利用期限等の制約を付けてデジタル署名のサービスを提供する場合も同様に起こる。
【0003】
また従来、暗号化されたデジタル情報について利用制限の機能を付加したものとして、特開平7−131452号公報の「デジタル情報保護方法及びその処理装置」に記載されている技術がある。特開平7−131452号公報の発明では、デジタル情報を情報識別番号と、情報本体と、利用条件情報及び認証子の組で表し、更に計算機内にデジタル情報を取り込んだ時に、情報識別番号および利用条件情報に関する第2の識別子を生成し、デジタル情報を利用する際は、2つの識別子による検証を行い、利用条件情報に記載されている利用条件を満たすかどうかの検証を行い、すべての検証が正常に終了した時のみデジタル情報を復号化して、利用できる形へ変換することを行っている。しかし、特開平7−131452号公報に記載されている方法では情報本体と利用条件の正当な組合せを保証するために両者を同一の暗号化鍵で暗号化するため、例えば利用者ごとに利用条件を変えようとすると、通信の度に暗号化を行うあるいは通信ごとに暗号化されたものを予め用意する必要があり、CD−ROM等によるデジタル情報の多量の配布や、衛星放送などを利用したブロードキャストなどには向いていなかった。
【0004】
【発明が解決しようとする課題】
本発明では上記の問題点を鑑み、デジタル署名のサービスを利用する権限をユーザが有しているかどうかを認証する場合に於いて、従来のチケットに相当するものを電子化して、その電子情報の正当性を判断する際に、安全性を確保したままで、有効期限や利用回数制限やそれらの組み合わせといったように柔軟な条件を設定でき、しかもそれらの条件が改竄された場合には正しくデジタル署名が行われないようにすることを目的とする。
【0005】
【課題を解決するための手段】
以下、本発明を詳細に説明する。
【0006】
本発明の第1の側面によれば、特定の条件が満たされた場合にのみ、あるメッセージに対するデジタル署名を生成する条件付きデジタル署名装置に、上記メッセージ(C)を記憶する第1の記憶手段と、署名の生成を行うための条件(L)を記憶する第2の記憶手段と、少なくとも上記条件(L)および署名鍵情報(D)に対して所定の演算を行うことにより得られる署名用補助情報(t)を記憶する第3の記憶手段と、上記条件(L)が特定の条件を満たす場合にのみ、少なくとも上記条件および上記署名用補助情報(t)から署名を生成する署名生成手段とを設けるようにしている。
【0007】
この構成においては、期間などの条件が真正な場合のみ真正な電子署名が生成されるようにすることができる。
【0008】
本発明の第2の側面によれば、署名(R)を生成するために用いられる署名用補助情報(t)を生成する署名用補助情報生成装置に、認証の特徴情報または署名鍵情報を受け取る手段と、上記署名の生成を行うための条件(L)を受け取る手段と、上記署名鍵情報、および上記署名の生成を行うための条件(L)から証明用補助情報(t)または署名用補助情報(t)を算出する手段とを設けるようにしている。
【0009】
この構成においては、安全性を確保したままで、署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、署名用補助情報を生成できる。
【0010】
本発明の第3の側面によれば、署名(R)を生成するために用いられる署名用補助情報(t)を生成する署名用補助情報生成装置に、署名鍵情報を受け取る手段と、上記署名の生成を行うための条件(L)を受け取る手段と、ユーザ固有情報(du)を受け取る手段と、上記ユーザ固有情報(du)、上記署名鍵情報、および上記署名の生成を行うための条件(L)から署名用補助情報(t)を算出する手段とを設けるようにしている。
【0011】
この構成においても、安全性を確保したままで、署名に関して、有効期限、利用回数制限、その他の条件の設定を可能にする、署名用補助情報を生成できる。また、ユーザ固有情報により一層プロテクトを確実なものにできる。
【0012】
なお、本発明は、方法として実現することも可能であるし、少なくとも一部をプログラム製品の態様で実現することもできる。
【0013】
本発明の上述の側面はおよび本発明の他の側面は特許請求の範囲に記載され、以下、実施例を用いて詳細に説明する。
【0014】
【発明の実施の形態】
本発明は、条件付き署名技術に関するものであるが、その特徴は認証技術にも関連するものであり、以下では、かかる関連する認証技術の実現例も実施例として合わせて説明する。
個々の実施例の説明に入る前に、上述の認証技術の利用形態について簡単に説明する。かかる認証技術は広くサービスを享受する権利の認証に関するものであり、特に認証を行うための条件や手続きを指定する技術に関するものである。そしてかかる認証技術を構成する要素は大きく、権利を証明するための証明装置と、証明装置により生成されたデータをもとに正当な権利を保持しているかどうかを判断する検証装置からなる。証明装置は利用者が保持しており、検証装置はサービスを提供する場所に有り、利用者がサービスを享受しようとした場合サービスを享受する権利を検証装置に対し証明することで、サービスを享受できるようになる。
【0015】
図35は認証技術の利用形態の一例である。例えばコンサート会場の入り口に検証装置が設置して有り、利用者は予め証明装置、コンサートのチケットに相当する認証用補助情報(t)およびチケットの日付、席番等が記述された証明用データの生成を行うための制御情報(L)を用意し、検証装置に対し証明装置、認証用補助情報(t)および証明用データの生成を行うための制御情報(L)が正当なものであることを証明することによりゲートが開き入場できるようになっている。このような利用形態はなにもゲートの開閉を伴うものにとどまらず、例えばさまざまな交通機関において、乗務員に対し正当な有効期限付き切符を保持していること示すためのものであってもよい。
【0016】
図36は認証技術のまた別の利用形態の例である。この例では検証装置は汎用コンピュータであり、証明装置は上記コンピュータのスロットに挿入して利用する、あるいは上記コンピュータと赤外線などを用いて通信をおこなうものである。利用者が例えばあるアプリケーションソフトウエアを利用しようとする時、上記コンピュータは利用者の証明装置に対し上記アプリケーションソフトウエアを利用する権利を証明するように求め、利用者は証明装置、認証用補助情報(t)および証明用データの生成を行うための制御情報(L)を用いて証明を行い、正当な証明が行われた場合のみアプリケーションが利用できるというものである。
【0017】
以下、個々の実施例について説明する。
【0018】
[実施例1]
実施例1は認証用データ(C)として乱数を用いて、証明用データ(R)は法nにおけるRSA暗号方式による暗号化に基づいて生成され、証明用データが認証の特徴情報(D)に基づいて暗号化されているかを検証することにより、認証を行う場合の例である。このとき認証の特徴情報(D)はRSA公開鍵暗号方式の秘密鍵に相当し、φ(n)と認証の特徴情報(D)は互いに素の関係に有り、後述の公開鍵EとはDE=1 mod φ(n)の関係にある(φ(n)はオイラー数で、この例ではφ(n)=(p−1)(q−1)となる)。なお、証明用データの生成を行うための制御情報(L)の具体例としては利用期限制限の場合について説明する。このようにすることにより例えば一定の期間のみ特定のサービスを受けることができるような定期券を実現することができる。
【0019】
図1は実施例1における原理構成図である。実施例1においては本発明に係る認証装置1000は検証装置100と証明装置200からなる。
【0020】
図1に示す制御装置300は認証を行った結果に基づいて行う動作を制御するための装置であり、例えば入室管理に本発明を適用させる場合には、認証が成功したときにドアの施錠をはずしたり、逆に認証が失敗した時にドアを閉めたり、また単に認証の結果をランプやディスプレイを通して提示したりするためのものである。
【0021】
検証装置100は認証用データ(C)として乱数を生成するための第1の乱数生成装置61と、第1の乱数生成装置61で生成された乱数を証明装置200へ送るために一時的に記憶する第11の記憶手段11と、証明装置200により生成された証明用データ(R)を記憶する第12の記憶手段12と、RSA暗号方式の法n(nは十分に大きな素数p,qの積)を記憶する第8の記憶手段8と、RSAの公開鍵E(上記認証の特徴情報(D)の逆数:ED=1 modφ(n))を記憶する第9の記憶手段9と、証明用データ(R)は認証用データ(C)を正しく暗号化したものであるかを検証する検証手段51を備える。
【0022】
証明装置200は、検証装置100が生成した認証用データ(C)を受け取る第1の記憶手段1と、証明用データの生成を行うための制御情報(L)を記憶する第2の記憶手段2と、認証の特徴情報(D)および証明用データの生成を行うための制御情報(L)から算出される証明用補助情報(t)を記憶する第3の記憶手段3と、時刻を得るために用いる時計81と、証明用データの生成を行うための制御情報(L)に記載されている有効期間内に時計81から得られる時刻が含まれている場合にのみ、認証用データ(C)、証明用データの生成を行うための制御情報(L)および証明用補助情報(t)から証明用データ(C)を認証の特徴データ(D)で暗号化した証明用データ(R=CD mod n)を計算する証明用データ生成手段52を備える。
【0023】
図2および図3はそれぞれ証明用データ生成手段52の内部構成の一例であり、ともに大きく分けて証明用データ生成手段制御手段91および第1の演算装置31から構成される。図2に示すものは、一旦認証の特徴情報(D)を算出した後、証明用データ(C)を認証の特徴データ(D)で暗号化するためものである。図2の証明用データ生成装置制御手段91は、利用期限制限情報である証明用データの生成を行うための制御情報(L)が特定の条件を満たすかどうかを判定し、満たされている場合には第1の演算手段を用いて証明用データ(C)を認証の特徴データ(D)で暗号化してその値を、満たされていない場合には何らかのエラーコードを返す。図2における第1の演算手段31は、証明用データの生成を行うための制御情報(L)を引数にして所定の関数の値f(L)を計算し、その結果と認証用補助情報(t)の値から認証の特徴データ(D)の値を計算する第2の演算装置32と、認証用データ(C)を法nのもとで認証の特徴データ(D)の値だけべき乗する第3の演算装置33とを備える。
【0024】
なお、所定の関数fは一方向性と非衝突性の性格を持つ関数であることが望ましい。
【0025】
また、図3に示す証明用データ生成手段52は第1の演算手段を第4、5、6の3つの演算手段(34、35、36)にて構成している。第4の演算装置34は証明用データの生成を行うための制御情報(L)を引数にして所定の関数の値を算出し、証明用データ(C)の値を上記算出結果の値だけべき乗して、第5の演算装置35は証明用データ(C)の値を証明用補助情報(t)の値だけべき乗して、第6の演算装置36は第4の演算装置34および54の演算装置35の演算結果から認証用データ(C)を法nのもとで認証の特徴データ(D)の値だけべき乗した値を算出する。具体的には認証用補助情報(t)が認証の特徴情報(D)、証明用データの生成を行うための制御情報(L)を引数に取る所定の関数の値およびφ(n)の値の倍数の和として算出される場合(t=D+f(L)+ωφ(n))には法nのもとでCtにCf(L)の逆数を掛けることによりCDを求めることができる。また認証用補助情報(t)が認証の特徴情報(D)から証明用データの生成を行うための制御情報(L)を引数に取る所定の関数の値を引いた後におφ(n)の値の倍数を加えて算出される場合(t=D−f(L)+ωφ(n))には法nのもとでCtにCf(L)を掛けることによりCDを求めることができる。この例では所定の関数fの引数として証明用データの生成を行うための制御情報(L)のみを想定したが、証明用データの生成を行うための制御情報(L)および法数nを引数として取るようにすると同様に認証用補助情報(t)がt=D±f(L,n)の場合にも対応できる(図4、5)。
【0026】
なお、証明装置200にて証明用データを算出するのに法数nが必要となるが本実施例では法数nは認証用データ(C)と共に証明装置200に渡されるものとする。
【0027】
次に図6のフローチャートを用いて認証装置1000の動作を説明する。
【0028】
まず認証を行うための準備としてユーザは予め認証用補助情報(t)および認証用補助情報の有効期限を示している証明用データの生成を行うための制御情報(L)を入手する(Step101)。認証を行うにあたり検証装置100は第1の乱数生成装置61により乱数を生成し(Step102)、それを認証用データとして第11の記憶手段11に記憶し、証明装置200に渡す(Step103)。証明装置200ではまず、時計81により示されている時刻が証明用データの生成を行うための制御情報(L)に記載されている有効期限内に含まれているかどうかを判定し(Step104)、有効期限内に含まれていれば認証用データ(C)を認証の特徴情報(D)で暗号化した値を計算し(Step105)、その値を証明用情報(R)として検証装置に渡す(Step106)。検証装置100は証明用データを認証の特徴情報(D)に対応する公開鍵Eにて復号し(Step107)、その結果が元の認証用データ(C)と等しいかどうかを判定する(Step108)。もし、認証用補助情報(t)および認証用補助情報の有効期限を示している証明用データの生成を行うための制御情報(L)が正当なものであれば、証明用情報(R)は、
【0029】
【数1】
R=CD mod n
となり、これをE乗することで、
【0030】
【数2】
E≡CDE mod n
≡CS φ (n)+1 mod n (∵ED≡1 modφ(n),SはEDをφ(n)で割った時の商)
≡C mod n (∵オイラーの定理より)
法nのもとで認証用データ(C)と合同になる。
【0031】
判定した結果、認証用データ(C)と証明用データ(R)を復号したものが等しいときには、認証が成功した場合の処理(Step109)を行う。Step104にて時計81により示されている時刻が証明用データの生成を行うための制御情報(L)に記載されている有効期限内に含まれていない場合には検証装置100にエラーを返し(Step110)、検証装置側でエラー処理を行う(Step111)。また、Step107で認証用データ(C)と証明用データ(R)を復号したものが等しくない場合には、同様にStep111にてエラー処理を行う。
【0032】
図7、図8はSpep105にて証明用データを計算する方法の詳細を示したものである。図7は図2および図4にて示した構成に基づく動作について説明しており、図8は図3および図5で示した構成に基づく動作について説明している。
【0033】
図7ではまず第2の演算手段32により認証の特徴情報(D)を算出し(Step112)、認証用データを認証の特徴情報(D)を鍵としてRSA暗号方式で暗号化している(Step113)。Step112において認証の特徴情報(D)を算出する方法は認証用補助情報(t)がどのようにして算出されているかにより異なる。t=D+f(L)+ωφ(n)の場合にはD=t−f(L)、t=D−f(L)+ωφ(n)の場合にはD=t+f(L)、t=D+f(L,n)の場合にはD=t−f(L,n)、t=D−f(L,n)の場合にはD=t+f(L,n)として算出できる。なお、Dを算出する際にωφ(n)の項が残るものがあるが、次のStep113にて法nのもとでべき乗されるのでωφ(n)の項は無視することができる。
【0034】
図8では直接に認証の特徴情報(D)を算出することなしに認証用データ(C)を暗号化する方法について説明している。まず、法nのもとで認証用データ(C)を所定の関数f(L)またはf(L,n)の値だけべき乗した値と、認証用補助情報の値だけべき乗した値を計算する(Step114,115)。Step114および115での演算結果をもとにCD mod nを計算する(Step116)。Step116でCD mod nを計算する方法はStep112と同様に認証用補助情報(t)がどのようにして算出されているかにより異なる。t=D+f(L)+ωφ(n)およびt=D+f(L,n)の場合には法nのものでStep114の結果の逆数とStep115の結果を掛け合わすことで、t=D−f(L)+ωφ(n)およびt=D−f(L,n)の場合にはStep114の結果とStep115の結果を掛け合わすことで算出できる。
【0035】
上記の動作により、電子的なチケットに相当する認証用補助情報(t)を保持していない場合には認証は行われないし、証明用データの生成を行うための制御情報(L)に示されている認証用補助情報(t)の有効期限内でなければ認証は行われない。また、証明用データの生成を行うための制御情報(L)を改竄した場合には算出される認証の特徴情報(D)が本来のもとの異なり、正しく暗号化できないために検証装置で復号した際に改竄が行われたことが発覚する仕組みになっている。
【0036】
本実施例では証明用データの生成を行うための制御情報(L)に記載されている情報を認証用補助情報(t)の有効期限としたが、当然、認証用補助情報(t)を無効とする期間の情報としても構わない。
【0037】
本実施例ではリプレイアタックを防ぐために、認証用データ(C)として乱数を用いたが、検証装置100と証明装置200間の通信の安全性が保証されている場合には認証用データ(C)として一定の値を用いても構わない。認証用データ(C)として乱数を用いるのと同等の効果を持つ方法として、一定の値に乱数効果を施したものを認証用データ(C)として用いる方法も考えられるが、認証用データ(C)として乱数を用いる場合に比べ、装置の構成が複雑になるという欠点を持つ。
【0038】
本実施例にて述べた認証方式を安全に保つために、証明用データ生成手段52、あるいは第5の演算手段35および証明用データ生成手段制御手段91を外部から内部状態を観察することが困難にするためのタンパープルーフ容器内に封じ込めることが望ましい。
【0039】
また、利用者の利便性を保つために証明用データ生成手段52、あるいは第5の演算手段35および証明用データ生成手段制御手段91を携帯可能な例えばICカードの様なものとして実現してもよい。
【0040】
[実施例2]
2つ目の実施例として一部あるいは全部が暗号化されたプログラム(X)を条件付きで復号し実行する例について説明する。プログラム(M)は鍵Kにて暗号および復号をおこなう対称鍵暗号方式にて暗号化されているとする(X=EK(M))。認証用素データ(B)として上記鍵KをRSA公開鍵暗号方式の公開鍵Eにて暗号化したもの(B=KE mod n)、認証用データ(C)として第2の乱数生成手段62で生成された乱数rを法nのもとで上記公開鍵Eだけべき乗したものと認証用素データ(B)を掛け合わせたものを用いる(C=rEB mod n)。本実施例に於いても、認証の特徴情報(D)はRSA公開鍵暗号方式の秘密鍵に相当し、φ(n)と認証の特徴情報(D)は互いに素の関係に有り、公開鍵EとはDE=1 modφ(n)の関係にある(φ(n)はオイラー数で、この例ではφ(n)=(p−1)(q−1)となる)。また、証明用データの生成を行うための制御情報(L)も実施例1と同様に利用制限の場合について説明する。
【0041】
本実施例ではチケットにあたる認証用補助情報(t)をユーザ毎に異なるものにするためユーザ固有情報(du)を導入する。
【0042】
図9は実施例2における原理構成図を示している。以下、実施例1の構成と対比しつつ実施例2の構成について説明する。1つ目の実施例1との違いは、検証装置100において第1の乱数生成手段61の代わりに認証用素データ(B)を記憶する第5の記憶手段5、第2の乱数生成手段62および上記認証用素データ(B)に乱数効果を施して認証用データ(C)を生成する第7の演算手段37を備えていることである。実施例1ではデータを証明装置に暗号化させ、正しく暗号化されているか検証装置で確かめることで認証を行っていたので、暗号化させるデータには特に制限がなく、リプレイアタックを防ぐ目的で乱数を証明用データ(C)として用いていた。本実施例では暗号化された意味のあるデータを証明装置により復号させることにより認証を行うので、上記の構成が必要となる。暗号化された意味のあるデータとは本実施例の場合認証用素データ(B)を指し、これに乱数効果を付与するために第2の乱数生成手段62および第7の演算手段37を用いる。具体的には第2の乱数生成手段62にて乱数rを生成し、乱数rを法nのもとで上記公開鍵Eだけべき乗したものと認証用素データ(B)を掛け合わせる。証明装置と検証装置の間の通信の安全性が保証されている場合には乱数効果を付与することなく、直接、認証用素データ(B)を認証用データ(C)としてもよい。認証用素データ(B)は暗号化されたプログラムデータ(X)を復号する鍵KをRSA公開鍵暗号方式の公開鍵Eで暗号化したもので、これを証明装置200で復号することによりプログラムデータ(X)を復号する鍵Kを得ることができる。
【0043】
2つ目の違いは、検証装置100において検証手段51の代わりに乱数効果を除去する第9の演算手段39、暗号化されたプログラムデータ(X)を記憶する第10の記憶手段、暗号化されたプログラムデータ(X)の復号を行う第10の演算手段40および復号されたプログラムデータ(M)を実行する第1のプログラム実行手段71を備えることである。第9の演算手段39の追加は上記1つ目の違いに対応するものであり、それ以外は本実施例が暗号化されたプログラムを条件付きで復号して実行するためのものであることに由来する。もし、実施例1と同様に証明装置200にて生成されたデータと元のデータとの比較を行うことにより認証を行うことを目的とするならば、代わりに暗号化される前のデータを記憶する記憶手段とデータの比較を行う比較手段を検証装置100内に設ければよい。
【0044】
正常に証明用データ(R)が証明装置200により生成された場合、証明用データ(R)は上記乱数rと鍵Kの積になる。第9の演算手段39では証明用データ(R)に上記乱数rの逆数を掛けることにより鍵Kを取り出し、上記鍵Kをもとに第10の記憶手段に記憶されている暗号化されたプログラムデータ(X)を第10の演算手段40により復号し、復号されたプログラムデータ(M)を第1のプログラム実行手段71にて実行する。なお、復号が正しく行われていない場合に、復号されたプログラムデータ(M)を直接実行すると、動作が保証できない。そこで、予め鍵Kやプログラム(M)に冗長性を持たせておき、復号された鍵Kやプログラム(M)が必要な冗長性を持っているかどうかを確認した後、プログラムを実行してもよい。また、プログラムデータ(M)の暗号化方式についてはここでは特に限定しない。
【0045】
3つ目の違いは、証明装置200においてユーザ固有の情報(du)を記憶する第4の記憶手段4を設け、証明用データ(C)の生成にユーザ固有の情報(du)を用いる点である。この違いは前記2つの違いとは独立である。ユーザ固有の情報(du)を用いることにより、認証用補助情報(t)がユーザ毎に異なる値になり、他人の認証用補助情報(t)を盗用することでサービスを不正に受けることを防ぐことができる。図10および図11は証明用データ生成手段52の構成の一例である。実施例1のものに所定の関数fの引数としてduが加わっている。実施例1と同様に第1の演算装置31および第5の演算装置35の動作は認証用補助情報(t)がどのように生成されたかにより異なる。
【0046】
次に実施例2の動作について図12のフローチャートを用いて説明する。なお実施例1と同じ部分については説明を割愛する。まず、準備として証明装置200は認証用補助情報(t)および認証用補情報(t)に対応した証明用データの生成を行うための制御情報(L)を用意する(Step201)。暗号化されたデジタル情報(EK(M))の復号を行う場合には第2の乱数生成手段62により乱数rを生成し(Step202)、乱数r、RSA公開鍵Eおよび法数nから認証用素データ(B)に対して乱数効果を掛け(Step203)、それを認証用データ(C)として証明装置200へ送る(Step204)。証明装置200では証明用データの生成を行うための制御情報(L)が特定の条件を満たすかどうか、この場合には時計81により得られる時刻が証明用データの生成を行うための制御情報(L)に記述されている有効期限内にあるかどうかを判定し、有効期限内にある場合には認証用データ(C)を法nのもとで認証の特徴情報(D)の値だけべき乗することにより、認証用データ(C)を復号して、その値を検証装置100へ返す。(Step205−207)。もし、時計81により得られる時刻が有効期限内にない場合には、エラーを返して(Step211)、検証装置でエラーに応じたエラー処理を行う(Step212)。正しく証明用データ(R)が得られた場合には、第11の演算手段41により、証明用データ(R)と上記乱数rの逆数を掛けることでデジタル情報を復号するための鍵Kを算出し(Step208)、その鍵Kを用いて第10の記憶手段10に記憶されている暗号化されたプログラムデータ(X)を復号し(Step209)、プログラムデータ(M)を得る。第1のプログラム実行手段は復号されたプログラムデータ(M)を得、プログラムを実行する(Step210)。
【0047】
上記のような動作を行うことで、ユーザ毎に特化された認証用補助情報(t)、あるユーザであることを証明するユーザ固有情報(du)および認証用補助情報(t)に対応し、証明データの生成を行うための条件が記載された証明用データの生成を行うための制御情報(L)をそろえた場合のみ暗号化されたプログラムを実行できるようになる。
【0048】
なお、本実施例にて述べた認証方式を安全に保つために、第4の記憶手段4および証明用データ生成手段52、あるいは第4の記憶手段4、第5の演算手段35および証明用データ生成手段制御手段91を外部から内部状態を観察することが困難にするためのタンパープルーフ容器内に封じ込めることが望ましい。
【0049】
また、利用者の利便性を保つために第4の記憶手段4および証明用データ生成手段52、あるいは第4の記憶手段4、第5の演算手段35および証明用データ生成手段制御手段91を携帯可能な例えばICカードの様なものとして実現してもよい。
【0050】
[実施例3]
次に第3の実施例として署名を検証することで、認証を行う場合についての実施例について説明する。暗号方式としてRSA公開鍵暗号を用いた場合、実施例1は認証の特徴情報(D)を署名鍵、公開鍵Eを検証鍵と見るとそのまま署名を検証することで、認証を行う場合についての実施例になっているが、本実施例では認証用データに対して直接署名を行うのではなく、認証用データにハッシュを施したものに対して署名を行う例について説明する。認証用データにハッシュを施して署名を行い、証明用データ(R)を生成する部分と証明用データ(R)を検証する部分以外は実施例1と同等なので、ここでの説明は割愛する。
【0051】
図13は本実施例における証明用データ生成手段52の構成例の一つを示している。証明用データ生成手段52は実施例1での構成の他にハッシュ値を算出する第12の演算手段42を備えている。まず、検証装置100より認証用データ(C)が入力され、この認証用データ(C)に基づいて第12の演算手段42がそのハッシュ値(HC)を算出し、以後このハッシュ値を法nのもとで認証の特徴情報(D)の値だけべき乗し、それを証明用データ(R)として検証装置100に返す。
【0052】
図14は検証手段51の本実施例における構成例の一例である。検証手段51は第12の演算手段42と同様にハッシュ値を算出する第13の演算手段43、入力に対し法nのもとで検証鍵Eの値だけべき乗を行う第14の演算手段44および第13の演算手段43、第14の演算手段44の出力を比較して同等であれば認証成功の出力を、同等でなければ認証失敗の出力を行う比較手段44aからなり、証明用データ(R)が認証用データ(C)に対する正しい署名かどうかを判断することにより、認証の成功/失敗を判断するよう構成されている。
【0053】
[実施例4]
第4の実施例としてPohlig−Hellman暗号を用いた場合について説明する。Pohlig−Hellman暗号は法数として素数の積nではなく、素数pそのものを取る点が異なっている。また、認証の特徴情報(D)とそれに対応する鍵(E)の関係は
【0054】
【数3】
ED≡1 mod p−1
となる。RSA公開鍵暗号方式を採用した場合には公開情報n,Eから秘密情報Dを計算するのが困難であったため、一方の鍵Eを秘密にする必要はなかったが、Pohlig−Hellman暗号の場合はEとpから容易にDが算出されるので、一方の鍵Eも秘密にしておく必要がある。
【0055】
発明の構成や構成要素の動作はRSA公開鍵暗号方式の場合のnをpに置き換えた場合と同等で(ただしφ(p)=p−1)、検証装置100が認証用データ(C)を生成し、証明装置200は、認証用補助情報(t)、ユーザ固有情報(du)などから認証用データ(C)を法pのもとで認証の特徴情報(D)の値だけべき乗した値を算出し、その結果を証明用データ(R)として検証装置100に渡し、検証装置100は証明用データ(R)が正しく認証用データ(C)を法pのもとで認証の特徴情報(D)の値だけべき乗した値であるかどうかを検証することで、認証を行う。
【0056】
実施例の詳細は実施例1および2のnをpに置き換えたものと同等であるため割愛する。
【0057】
[実施例5]
第5の実施例として対称鍵暗号を用いた場合について説明する。本実施例では秘匿を要するデータ(M)を暗号化したもの(X)を、認証用補助情報(t)を持ったものが特定の状況下で復号する場合について説明するが、この場合でも実施例2のように秘匿を要するデータ(M)をプログラムとしてプログラムの実行制御を行ったり、実施例1のように乱数を正しく暗号化できるかあるいは暗号化された乱数を正しく復号化できるかを検証することにより権利の認証を行うこともできる。
【0058】
図15は本実施例の原理構成図を示している。図中の第10の記憶手段10には秘匿を要する情報(M)が鍵Kにて復号されるように暗号化されている。秘匿を要する情報(M)の暗号化方式については特に限定をしない。第11の記憶手段11には認証用データとして、上記鍵Kを後述の値Dを鍵として対称鍵暗号方式にて暗号化した値(C=ED(K))が記憶されている。値Dは認証用補助情報(t)、証明用データの生成を行うための制御情報(L)およびユーザ固有の情報(du)を引数に取る非衝突性、一方向性の性質を持った関数の値であり、証明データ生成手段52の内部で算出可能なものである。証明装置200内には第11の記憶手段11から認証用データ(C)を受け取る第1の記憶手段1を有し、さらに証明用データの生成を行うための制御情報(L)、認証用補助情報(t)およびユーザ固有の情報(du)を保持する第2、3、4の記憶手段2、3、4を有し、時刻を得るための時計81および証明用データ生成手段52を有する。証明用データ生成手段52は時計81により得られる時刻が証明用データの生成を行うための制御情報(L)に記述されている範囲内であれば、第2、3、4の記憶手段2、3、4に記憶されているデータから関数値Dの値を算出し、そのDを鍵として認証用データ(C)を復号して、それを証明用データ(R)として検証装置100へ送る。検証装置100では証明用データ(R)を鍵として、第10の記憶手段10に記憶されている暗号化された秘匿を要するデータを復号して出力する。このとき、実施例2と同様に鍵Kあるいは秘匿を必要とするデータ(M)に予め冗長性を持たせておき、復号した結果が正しい冗長性を持つかどうか確認してもよい。
【0059】
本実施例ではこれまでの実施例に示したように認証用データ(C)や証明用データ(R)に乱数効果を施すことができない。そのため、検証装置100と証明装置200の間の通信の安全性が保証されていない場合には予めDiffie−Hellman鍵交換などの方式を用いて、鍵を交換しておいて、その鍵に基づいて通信の暗号化を行うことで通信路の安全性を確保しておく必要がある。
【0060】
図16は証明用データ生成手段52の内部構成の一例を示したものである。証明用データ生成手段52は証明用データ生成手段制御手段91および第1の演算手段31から構成され、さらに第1の演算手段31は第2の演算手段32および第3の演算手段33から構成される。証明用データ生成手段制御手段91の動作は今までの実施例と同様で、証明用データの生成を行うための制御情報(L)と時刻を比較し、制限期間以内であれば証明用データ(R)を計算して検証装置100に返し、そうでなければエラーメッセージを返すことを行う。第2の演算手段32は証明用データの生成を行うための制御情報(L)、証明用補助情報(t)およびユーザ固有情報(du)から鍵Kを暗号化している鍵の値Dを算出し、第3の演算手段33は上記鍵の値Dをもとに、認証用データ(C)を復号して鍵Kを得る。
【0061】
Dの値の算出方法にはさまざまなものを考えることができる。例えば証明用データの生成を行うための制御情報(L)、証明用補助情報(t)およびユーザ固有情報(du)を連結したデータを引数に取る一方向性でかつ非衝突性の性質を持つ関数の値としてもよい。この場合には、一旦証明用データの生成を行うための制御情報(L)、証明用補助情報(t)およびユーザ固有情報(du)からDを作ったら、同じDを生成する別の証明用データの生成を行うための制御情報(L)、証明用補助情報(t)およびユーザ固有情報(du)の組み合わせを生成することが困難であるという欠点がある。
【0062】
この欠点を解決する一つの方法として、鍵Kを暗号化する鍵Dを適当に定め、鍵Dを更に証明用データの生成を行うための制御情報(L)およびユーザ固有情報(du)を引数に取る関数の値を鍵として復号できるように暗号化したものを認証用補助情報(t)とする方法がある(D=Df(L,du)(t))。この方法によると任意の証明用データの生成を行うための制御情報(L)およびユーザ固有情報(du)に対して、予め定められたDを算出する認証用補助情報(t)を生成することができるので上記の問題は解決する。この場合の鍵Dの暗号化方法は特に限定しない。図17はこの場合の証明用データ生成手段52の構成例を示している。証明用データ生成手段制御手段91の動作は前述のものと同じである。この場合は鍵Dは証明用補助情報(t)を復号することにより得られるので、まず復号のための鍵であるf(L,du)の値を第15の演算手段45にて算出し、次に第16の演算手段46により認証用補助情報(t)をf(L,du)を用いて復号することにより鍵Dを得、さらに第3の演算手段33において認証用データ(C)を鍵Dを用いて復号することにより秘匿を必要とするデータ(M)を復号するための鍵Kを得ることができる。この場合でも証明用データの生成を行うための制御情報(L)により、証明用データ(R)を生成するかどうかの制御を行うことができ、しかも認証用補助情報(t)や証明用データの生成を行うための制御情報(L)等を改竄した場合には正しいKを得ることができなくなる。
【0063】
更に鍵Dだけでなく証明用データの生成を行うための制御情報(L)も証明用データの生成を行うための制御情報(L)およびユーザ固有情報(du)を引数に取る関数の値を鍵として復号できるように暗号化したものを認証用補助情報(t)とし(D|L=Df(L,du)(t)(|は連結を表わす))、証明用データ生成手段52に入力として与えられた証明用データの生成を行うための制御情報(L)と、認証用補助情報(t)を復号して得られる証明用データの生成を行うための制御情報(L’)を比較して両者が一致する場合のみ証明用データ生成手段制御手段91が証明用データ(R)を返すようにすると、証明用データ(R)を生成することなく証明用データの生成を行うための制御情報(L)を確認することができる。図18はこの場合の認証データ生成手段52の構成例を示している。
【0064】
上記方式と同等の効果を持つ方法として、認証用補助情報(t)を前述の認証用補助情報に相当するt1ならびに鍵Dの値および証明用データの生成を行うための制御情報(L)を引数に取る非衝突性、一方向性の特徴を持つ関数の値t2の2つから構成されるようにして、t1から算出される鍵Dの値および入力された証明用データの生成を行うための制御情報(L)を引数に取る非衝突性、一方向性の特徴を持つ関数hの値を算出してその値とt2とを比較することにより入力された証明用データの生成を行うための制御情報(L)の正当性を確認する事もできる。この場合の証明用データ生成手段52の構成例を図19に示す。
【0065】
[実施例6]
次に証明用データの生成を行うための制御情報(L)のバリエーションとしていくつかの実施例を示す。本実施例では証明用データの生成を行うための制御情報(L)が利用回数制限情報であり、予め定められた回数だけ認証やデータの復号を行うことができる場合について説明する。図20は証明装置200の構成の一例である。図21は証明用データ生成手段52の動作を示すフローチャートである。検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図20および図21において、本実施例の証明装置では時計81の代わりに、今までに認証用補助情報(t)を用いて何回認証あるいは復号を行ったかを各認証用補助情報(t)毎に記憶する第13の記憶手段13を備える。証明用データの生成を行うための制御情報(L)は対応する認証用補助情報(t)を最大何回利用できるかという回数情報を示しており、証明用データ生成手段52内の証明用データ生成手段制御手段91は証明用データの生成を行うための制御情報(L)に記載されている回数情報と、第13の記憶手段13に記憶されている対応する認証用補助情報(t)の使用回数とを比較し(Step601)、認証用補助情報(t)の使用回数が証明用データの生成を行うための制御情報(L)に記載されている回数情報以下である場合のみ、証明用データ(R)を生成し、検証装置100に送出する(Step601、602)、その後第13の記憶手段13に記憶されている対応する認証用補助情報(t)の使用回数の値をインクリメントする(Step604)。認証用補助情報(t)の使用回数が証明用データの生成を行うための制御情報(L)に記載されている回数情報を上回っている場合にはエラーコードを検証装置100に返して、処理を終了する(Step605)。
【0066】
このようにすることで回数券型の電子チケットを実現することができる。
【0067】
[実施例7]
本実施例では証明用データの生成を行うための制御情報(L)が利用可能総時間情報であり、予め定められた時間だけ認証やデータの復号を行うことができる場合について説明する。図22は証明装置200の構成の一例である。また図23は証明用データ生成手段52の動作を示すフローチャートである。本実施例においても検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図22および図23において、本実施例では証明装置200内に今までに認証用補助情報(t)を用いて認証あるいは復号を行うことにより何時間サービスを享受したかを示す総利用時間を各認証用補助情報(t)毎に記憶する第14の記憶手段14および各回ごとのサービスを享受した時間を計測するサービス時間計測手段82を備える。サービス時間計測手段82は例えばサービスの開始時と終了時に必ず認証を行うようにしておけば証明用データ(R)を作成した時間の差を計算することによりサービス時間を計測するというように実現できるし、別の通信手段でサービスの開始時と終了時に信号を受取りそこからサービス時間を計測するというように実現してもよい。またさらにはサービス時間計測手段82は証明装置200内に存在する必然性はなく、サービス時間計測手段82から証明装置200内に安全にサービス時間を知らせる方法があれば証明装置200の外部にあってもよい。
【0068】
証明用データの生成を行うための制御情報(L)は対応する認証用補助情報(t)を最大何時間利用できるかという利用可能総時間情報を示しており、証明用データ生成手段52内の証明用データ生成手段制御手段91は証明用データの生成を行うための制御情報(L)に記載されている利用可能総時間情報と、第14の記憶手段14に記憶されている対応する認証用補助情報(t)の現時点での総利用時間とを比較し(Step701)、認証用補助情報(t)の総利用時間が証明用データの生成を行うための制御情報(L)に記載されている利用可能総時間以下である場合のみ、証明用データ(R)を生成して検証装置100に渡す(Step702、703)。その後サービスが終了した段階で第14の記憶手段14に記憶されている対応する認証用補助情報(t)の利用可能総時間の値をサービス時間計測手段82により計測された時間だけ足す(Step704)。またさらにサービスを享受している間に、認証用補助情報(t)の総利用時間とサービス時間計測手段82により計測された今回の利用時間との合計が第14の記憶手段14に記憶されている利用可能総時間を超えた場合サービスを停止するよう促してもよい。当初から、認証用補助情報(t)の総利用時間が証明用データの生成を行うための制御情報(L)に記載されている利用可能総時間を超えている場合にはエラーコードを検証装置100に返して処理を終了する(S705)。
【0069】
このようにすることで時間制限型の電子チケットを実現することができる。
【0070】
[実施例8]
本実施例では証明用データの生成を行うための制御情報(L)が一回の利用に必要なポイントまたは料金情報であり、予め定められたポイントあるいは金額だけ認証やデータの復号を行うことができる場合について説明する。図24は証明装置200の構成の一例である。また、図25は証明用データ生成手段52の動作を示すフローチャートである。本実施例においても検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図24および図25において、本実施例では証明装置200内に認証または復号を行うに必要なポイント残数または残高情報を記憶する第15の記憶手段15を備える。証明用データの生成を行うための制御情報(L)は対応する認証用補助情報(t)を用いた一回の認証または復号に必要なポイント数または金額情報を示しており、証明用データ生成手段52内の証明用データ生成手段制御手段91は証明用データの生成を行うための制御情報(L)に記載されている一回の認証または復号に必要なポイント数または金額情報と、第15の記憶手段15に記憶されているポイント残数または残高情報とを比較し(Step801)、ポイント残数または残高情報が一回の認証または復号に必要なポイント数または金額情報以上の場合にのみ、証明用データ(R)を生成して検証装置100に渡す(Step802、803)。その後、上記一回の認証または復号に必要なポイント数または金額分だけ第15の記憶手段15に記憶されている値を減じる(Step804)。なお、第15の記憶手段15に記憶されている値は別手段により、書き換えることができる(ポイント数または金額の再充填)ようにしてもよい。ポイント残数または残高情報が一回の認証または復号に必要なポイント数または金額情報を下回る場合にはエラーコードを検証装置100に返して処理を終了する(Step805)。
【0071】
このようにすることでプリペイド型の電子チケットを実現することができる。
【0072】
[実施例9]
本実施例では証明用データの生成を行うための制御情報(L)が処理記録(以下ログ)を出力するかしないかを定めた情報であり、認証または復号を行う際にログを記録する必要がある場合には必ずログを記録するようにする方法について説明する。
【0073】
現在、サービスを受けた時点でサービスに関するログを記録しておき、後でログに記載されているサービスに対して対価を払うポストペイド方式の支払い方式が存在する。この方式を実現するためにはサービスを提供する時に必ずログを残す必要があるが、さまざまな支払い方式が混在する場面ですべての方式においてログを残すようにしておくと、プライバシーの侵害を招く恐れがある。そのためポストペイドサービスのようにログを残す必要がある場合にのみログを残すというように、ログを残すかどうかを制御する方法が必要である。
【0074】
図26は証明装置200の構成の一例である。図27は証明用データ生成手段52の動作を示すフローチャートである。本実施例においても検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図26および図27において、本実施例ではログ記録手段83を備える。証明用データの生成を行うための制御情報(L)は認証あるいは復号の際にログを記録するかどうかを表わす情報を含んでいる。まず、証明用データ(R)を計算する(Step901)。この後、制御情報(L)にログを記録するように記載されている場合には認証あるいは復号の際に証明用データ生成手段52内の証明用データ生成手段制御手段91がログ記録手段83に対し必要な情報を受け渡し、ログ記録手段83はその情報を記録する(Step902、903)。こののち、先に計算した証明用データ(R)を検証装置に渡す(Step904)。制御情報(L)に、ログを記録するように指示されたいない場合には、ログをとることなく、そのまま証明用データ(R)を検証装置100に渡す(Step902、904)。
【0075】
このようにすることで必要な場合にのみログを記録する方式を実現することができる。
【0076】
[実施例10]
本実施例では証明用データの生成を行うための制御情報(L)がパスワードのように特定の個人しか知らない情報に関連するデータ、または声紋情報、指紋情報、アイリスパターン情報、網膜パターン情報などの個体識別情報に関するデータなどの個人認証情報に関する情報であり、これらのデータの照合が正しく行われた場合のみ認証やデータの復号を行うことができる方法について説明する。図28は証明装置200の構成の一例である。また、図25は証明用データ生成手段52の動作を示すフローチャートである。本実施例においても検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図28および図29において、本実施例では個人認証情報抽出手段84を備える。個人認証情報抽出手段84は証明装置200内にあってもよいし外部にあってもよい。証明用データの生成を行うための制御情報(L)は対応する認証用補助情報(t)を用いて認証または復号を行うことができる個人の個人認証情報または個人認証情報が取りうる範囲の情報を示しており、証明用データ生成手段52内の証明用データ生成手段制御手段91は証明用データの生成を行うための制御情報(L)に記載されている個人認証情報または個人認証情報が取りうる範囲の情報と、個人認証情報抽出手段84により与えられた情報とを比較して、同一あるいは有効範囲内であれば証明用データ(R)を生成して検証装置100に渡す(Step1001、1002、1003)。制御情報(L)に記載されている個人認証情報または個人認証情報が取りうる範囲に、個人認証情報抽出手段84からの情報が含まれない場合には、エラーコードを検証装置100に渡して処理を終了する(Step1004)。
【0077】
このようにすることで予め個人認証のためのデータベースを持たない状況でも認証や復号を行う際に個人認証を行うことができる。
【0078】
[実施例11]
本実施例では証明用データの生成を行うための制御情報(L)がさまざまな処理を行うためのプログラムであり、そのプログラムの処理結果に基づいて認証または復号を行うかどうかを制御する場合について説明する。ここでの処理は上記の利用期間、利用回数、個人認証、ログの記録などさまざまな制御情報の組み合わせによる判断であったり、更には外部の構成要素と通信を行うことにより例えばサービスの提供者またはソフトウエアプログラムやデータの著者のエージェントと通信を行い、サービスの享受の許可を得、所定の金額をサービスの提供者またはソフトウエアプログラムやデータの著者の口座に振り込んだことを確認するというものでもよい。図30は証明装置200の構成の一例である。また、図31は証明用データ生成手段52の動作を示すフローチャートである。本実施例においても検証装置100の構成は前述のようなさまざまな構成をとることができ、その構成については特に限定しない。図30および図31において、本実施例では証明用データの生成を行うための制御情報(L)に記載されたプログラムを実行する第2のプログラム実行手段72を備える。まず、証明用データ生成手段52内の証明用データ生成手段制御手段91は証明用データの生成を行うための制御情報(L)に記載されているプログラムを第2のプログラム実行手段72において実行し(Step1101)、プログラムが特定の状態にて終了するかまたは特定の状態にある場合にのみ、証明用データ(R)を生成して検証装置100に渡す(Step1102、1103、1104)。そうでない場合には、エラーコードを検証装置100に渡して処理を終了する(Step1105)。
【0079】
このようにすることで上記のさまざまな制御方法を復号した制御を実現することができ、また他の構成要素と通信を行うことによりより高度な条件や動作制御を前提とした認証や復号を実現することができる。
【0080】
[実施例12]
以上、条件付き認証の方法、または復号の方法について述べてきたが、実施例3で述べたように本発明の構成を用いて条件付きで電子署名の生成を行うことができる。これを利用すると条件付き電子署名装置を実現することができる。
【0081】
例えば従来は一定期間だけ代理人に自分の署名付きのメッセージを作成してもらいたい時にも、代理人に自分の秘密情報である署名鍵を開示する必要があり、しかも一旦署名鍵を開示してしまえば、以降代理人にも自分の電子署名が生成されてしまう恐れがあった。また、一般に署名鍵のような秘密情報は汎用コンピュータの記憶手段上に記憶しておくのではなく、例えばICカードのような汎用コンピュータとは独立のタンパープルーフな媒体上に記憶しておくのが望ましい。さらにICカードのような可搬の媒体は盗難の恐れもあり、持ち主を確認する上でも一定期間で利用できないようにして更新を促せるようなことも必要である。
【0082】
上記のような状況下では、秘密情報を洩らすことなく一定の条件下で署名の生成を可能にする条件付き署名装置が有効である。図32は条件付き署名装置400の構成の一例を示している。また、図33は署名生成装置の動作を説明するフローチャートである。この装置の構成は実施例3における証明装置200とほぼ同等である。本実施例では実際の目的に合わせるため、上記認証用補助情報(t)を署名生成用補助情報(t)、証明用データの生成を行うための制御情報(L)を署名を生成するための制御情報(L)、証明用データ生成手段52を署名生成手段と呼ぶこととする(図では符号52’を用いる)。予め署名を行うに必要な署名生成用補助情報(t)および署名生成用補助情報(t)に対応した署名を生成するための制御情報(L)を得て、それぞれ第3、第2の記憶手段に記憶しておく。第4の記憶手段に記憶されているユーザ固有情報(du)は署名装置400が作られた段階で埋め込まれているものとする。メッセージを入力として受け取ると(Step1201)、署名生成手段52’は署名を生成するための制御情報(L)に記述されている条件等を比較検討し(Step1202)、署名を生成するための条件が満たされている場合のみ、ユーザ固有情報(du)、署名生成用補助情報(t)および署名を生成するための制御情報(L)からメッセージMに対する署名(R)を生成し、出力する(Step1203、1204)。署名を生成するための条件が満たされない場合には、エラーコードを出力して処理を終了する(Step1205)。
【0083】
なお、この場合のメッセージは通常のメッセージそのものでもよいし、メッセージのダイジェストでもよい。このような構成および動作により条件付き署名装置を実現することができる。
【0084】
[実施例13]
本実施例では前述の認証用生成用補助情報(t)(署名用補助情報(t)についても同様)を生成する認証用補助情報生成装置2000について説明する。前述の実施例では認証や復号に用いる暗号の方式の違いにより、さまざまな形の認証用補助情報(署名用補助情報(t))を示してきたが、本実施例ではその中のRSA公開鍵暗号方式を用いた場合、しかもユーザ固有情報(du)を用いる場合の認証用補助情報(t)の生成手段について説明する。図34は認証用補助情報生成装置2000の原理構成図を示している。本実施例における認証用補助情報生成装置2000は、ユーザ情報DB(データベース)101、制御情報DB102、認証の特徴情報DB103の3つのデータベースを備え、それぞれユーザの個人情報およびユーザ固有情報du、証明用データの生成を行うための制御情報(L)を生成するためのテンプレート、各サービスの認証の特徴情報または秘匿を必要とするデータの復号鍵およびその情報に対応する法数nを管理保有している。利用者は入力手段107及び表示手段106を利用して、どのユーザ固有情報の、どのサービスに対する、そのような条件を持った認証用補助情報(t)を得たいかを認証補助情報生成手段制御手段104へ伝達し、認証補助情報生成手段制御手段104は各データベースから対応する情報を取り出し、ユーザ固有情報(du)、証明用データの生成を行うための制御情報(L)、認証の特徴情報(D)(署名の場合には署名鍵)および法数nをそれぞれ第16から第18の記憶手段16、17、18へ記憶させる。各情報が選び出された後はそれらの情報を用いて認証用補助情報計算手段105にて認証用補助情報(t)の値が計算される。認証用補助情報(t)は例えば次の式のように計算される。
【0085】
【数4】
t=D−f(du,L,n)
このときの関数fは一方向性、非衝突性の性質を持つことが望ましい。このようにして計算された認証用補助情報(t)は認証用補助情報出力手段108にて利用者へ渡される。
【0086】
【発明の効果】
以上説明したように、本発明によれば、期間などの条件が満たされている場合のみ電子署名を生成することが可能な条件付き電子署名生成技術を実現することができる。
【図面の簡単な説明】
【図1】 実施例1の原理構成図である。
【図2】 証明用データ生成手段の構成例を示す図である。
【図3】 証明用データ生成手段の構成例を示す図である。
【図4】 証明用データ生成手段の構成例を示す図である。
【図5】 証明用データ生成手段の構成例を示す図である。
【図6】 実施例1のフローチャートである。
【図7】 第1の演算手段の動作の一例を示す図である。
【図8】 第1の演算手段の動作の一例を示す図である。
【図9】 実施例2の原理構成図である。
【図10】 証明用データ生成手段の構成例を示す図である。
【図11】 証明用データ生成手段の構成例を示す図である。
【図12】 実施例2のフローチャートを示す図である。
【図13】 証明用データ生成手段の構成例を示す図である。
【図14】 証明用データ生成手段の構成例を示す図である。
【図15】 実施例5の原理構成図である。
【図16】 証明用データ生成手段の構成例を示す図である。
【図17】 証明用データ生成手段の構成例を示す図である。
【図18】 証明用データ生成手段の構成例を示す図である。
【図19】 証明用データ生成手段の構成例を示す図である。
【図20】 証明装置の構成例を示す図である。
【図21】 証明装置の動作を示すフローチャートを示す図である。
【図22】 証明装置の構成例を示す図である。
【図23】 証明装置の動作を示すフローチャートを示す図である。
【図24】 証明装置の構成例を示す図である。
【図25】 証明装置の動作を示すフローチャートを示す図である。
【図26】 証明装置の構成例を示す図である。
【図27】 証明装置の動作を示すフローチャートを示す図である。
【図28】 証明装置の構成例を示す図である。
【図29】 証明装置の動作を示すフローチャートを示す図である。
【図30】 証明装置の構成例を示す図である。
【図31】 証明装置の動作を示すフローチャートを示す図である。
【図32】 本発明の署名装置の構成例を示す図である。
【図33】 本発明の署名装置の動作を示すフローチャートを示す図である。
【図34】 認証用補助情報生成装置の原理構成図である。
【図35】 利用形態の例を示す図である。
【図36】 利用形態の例を示す図である。
【符号の説明】
1000…認証装置
2000…認証用補助情報生成装置
100…検証装置
200…証明装置
300…制御装置
400…署名装置
1…認証用データ(C)を記憶する第1の記憶手段
2…証明用データの生成を行うための制御情報(L)を記憶する第2の記憶手段
3…認証用補助情報(t)を記憶する第3の記憶手段
4…ユーザ固有情報(du)を記憶する第4の記憶手段
5…認証用素データ(B)を記憶する第5の記憶手段
6…特定データ(K)を記憶する第6の記憶手段
7…特定データのハッシュ値(HK)を記憶する第7の記憶手段
8…法数(n)を記憶する第8の記憶手段
9…公開鍵(E)を記憶する第9の記憶手段
10…暗号化されたデータ(X)を記憶する第10の記憶手段
11…認証用データ(C)を記憶する第11の記憶手段
12…証明用データ(R)を記憶する第12の記憶手段
13…利用回数(i)を記憶する第13の記憶手段
14…利用総時間(T)を記憶する第14の記憶手段
15…利用金額またはスコア(P)を記憶する第15の記憶手段
16…ユーザ固有情報(du)(補助情報生成装置)を記憶する第16の記憶手段
17…証明用データの生成を行うための制御情報(L)(補助情報生成装置)を記憶する第17の記憶手段
18…認証の特徴情報(D)(補助情報生成装置)を記憶する第18の記憶手段
31…証明用データ(R)を計算する第1の演算手段
32…D=t−f(n,L,du)を計算する第2の演算手段
33…CDを計算する第3の演算手段
34…Ctを計算する第4の演算手段
35…Cfを計算する第5の演算手段
36…CDを計算する第6の演算手段
37…乱数効果を付与する第7の演算手段
38…ハッシュ値を計算する第8の演算手段
39…乱数効果を除去する第9の演算手段
40…データを復号する第10の演算手段
41…サービス時間を計算する第11の演算手段
42…署名用ハッシュを計算する第12の演算手段
43…署名用ハッシュを計算する(検証装置側)第13の演算手段
44…署名を検証する(検証装置側)第14の演算手段
45…fを計算する第15の演算手段
46…tを復号する第16の演算手段
47…hを計算する第17の演算手段
51…証明用データの正当性を検証する検証手段
52…証明用データ生成手段
52’ …署名生成手段
61…C用の乱数を生成する第1の乱数生成手段
62…乱数効果用の乱数を生成する第2の乱数生成手段
71…暗号化されたプログラムを実行する第1のプログラム実行手段
72…Lを実行する第2のプログラム実行手段
81…時刻を得る時計
82…サービスを享受している時間を計測するサービス時間計測手段
83…利用履歴を記録ログ記録手段
91…証明用データを生成するかどうかを判断する証明用データ生成手段制御手段
101…ユーザとユーザ固有情報を管理保持するユーザ情報DB
102…証明用データの生成を行うための制御情報(L)のテンプレートを管理保持する制御情報DB
103…認証の特徴情報を管理保持する認証の特徴情報情報DB
104…認証用補助情報を生成するための管理を行う認証用補助情報生成手段制御手段
105…認証用補助情報を算出する認証用補助情報計算手段
106…認証用補助情報のおいて必要な情報を入力するよう促す表示手段
107…認証用補助情報において必要な情報を入力する入力手段
108…認証用補助情報を出力する認証用補助情報出力手段

Claims (3)

  1. 署名対象のメッセージ(C)を記憶する第1の記憶手段と、
    件(L)を記憶する第2の記憶手段と、
    少なくともデジタル署名が許容される真正な件および署名鍵情報(D)に対して所定の署名用補助情報生成用計算を行うことにより得られる署名用補助情報(t)を記憶する第3の記憶手段と、
    上記条件(L)が満たされるかどうか判別し、満たされる場合にのみ、少なくとも上記第1の記憶手段に記憶されている上記メッセージ(C)、上記第2の記憶手段に記憶されている上記条件(L)および上記第3の記憶手段に記憶されている上記署名用補助情報(t)に対して所定の署名生成用計算を実行する計算手段とを有し、
    上記第2の記憶手段に記憶されている上記条件(L)が上記真正な条件と同一なときに、上記計算手段の実行結果が上記メッセージ(C)に対する署名鍵情報(D)を用いた署名となるように、上記所定の署名用補助情報生成用計算および上記所定の署名生成用計算を選定したことを特徴とする条件付き署名装置。
  2. 請求項1記載の条件付き署名装置で用いられる署名用補助情報(t)を生成する署名用補助情報生成装置において、
    上記署名鍵情報を記憶する記憶手段と、
    上記真正な件を記憶する記憶手段と、
    上記署名鍵情報、および上記真正な条件に対して上記所定の署名用補助情報生成用計算を実行して上記署名用補助情報(t)を算出する手段とを有することを特徴とする署名用補助情報生成装置。
  3. 第1の記憶手段、第2の記憶手段、少なくともデジタル署名が許容される真正な件および署名鍵情報(D)に対して所定の署名用補助情報生成用計算を行うことにより得られる署名用補助情報(t)を記憶する第3の記憶手段、および所定の署名生成用計算を実行する計算手段を用いてあるメッセージ(C)に対するデジタル署名を生成する条件付きデジタル署名方法において、
    上記第1の記憶手段が、上記メッセージ(C)を記憶するステップと、
    上記第2の記憶手段が、条件(L)を記憶するステップと、
    上記第3の記憶手段が、上記署名用補助情報(t)を記憶するステップと、
    上記計算手段が、上記条件(L)が満たされるかどうか判別し、満たされる場合にのみ、少なくとも上記第1の記憶手段に記憶されている上記メッセージ(C)、上記第2の記憶手段に記憶されている上記条件(L)および上記第3の記憶手段に記憶されている上記署名用補助情報(t)に対して上記所定の署名生成用計算を実行するステップとを有し、
    上記第2の記憶手段に記憶されている上記条件(L)が上記真正な条件と同一なときに、上記計算手段の実行結果が上記メッセージ(C)に対する署名鍵情報(D)を用いた署名となるように、上記所定の署名用補助情報生成用計算および上記所定の署名生成用計算を選定したことを特徴とする条件付き署名方法。
JP2003122688A 1996-07-22 2003-04-25 署名装置および方法 Expired - Fee Related JP3972858B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003122688A JP3972858B2 (ja) 1996-07-22 2003-04-25 署名装置および方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP19175696 1996-07-22
JP8-191756 1996-07-22
JP2003122688A JP3972858B2 (ja) 1996-07-22 2003-04-25 署名装置および方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP17984297A Division JP3954692B2 (ja) 1996-07-22 1997-07-04 認証装置および方法

Publications (2)

Publication Number Publication Date
JP2003333033A JP2003333033A (ja) 2003-11-21
JP3972858B2 true JP3972858B2 (ja) 2007-09-05

Family

ID=29713559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003122688A Expired - Fee Related JP3972858B2 (ja) 1996-07-22 2003-04-25 署名装置および方法

Country Status (1)

Country Link
JP (1) JP3972858B2 (ja)

Also Published As

Publication number Publication date
JP2003333033A (ja) 2003-11-21

Similar Documents

Publication Publication Date Title
US9716698B2 (en) Methods for secure enrollment and backup of personal identity credentials into electronic devices
JP3867388B2 (ja) 条件付き認証装置および方法
JPH1131204A (ja) 電子チケットシステム
EP1886204A1 (en) Transaction method and verification method
JPH1131130A (ja) サービス提供装置
JP3815022B2 (ja) 利用資格検証装置および方法、ならびに、利用資格検証システム
JP3954692B2 (ja) 認証装置および方法
JP2003134108A (ja) 電子署名システム、電子署名検証装置、電子署名検証方法、プログラム、及び記録媒体
JP3972858B2 (ja) 署名装置および方法
JPH11205306A (ja) 認証装置および認証方法
JP3804249B2 (ja) 電子チケットシステム
JP4270589B2 (ja) 電子度数による支払方法および装置
KR100649858B1 (ko) 공중전화 스마트 카드 발급/인증 시스템 및 그 방법
JPH10255005A (ja) 利用者認証方式
JPH1013402A (ja) 公開鍵暗号の秘密鍵管理方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070522

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070604

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130622

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130622

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140622

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees