説明

電子署名システム及び電子署名方法

【課題】検証端末がネットワークに接続することなく、電子署名の検証を行なう。
【解決手段】署名鍵と検証鍵とを有する署名端末が、電子署名を生成した回数を示す署名カウンタを記憶し、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信して証明書を受信し、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成し、証明局装置が、証明書を生成した回数を示す証明書発行カウンタを記憶し、署名端末から送信された証明書取得要求を受信し、署名カウンタが示す値と証明書発行カウンタが示す値とが一致すると判定すると証明書を生成して署名端末に送信し、一致しないと判定すると証明書を生成せず、検証端末は、電子署名と検証鍵との入力を受け付け、検証鍵に基づいて電子署名の検証を行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、署名鍵と検証鍵とを用いた電子署名を行なう電子署名システム及び電子署名方法に関する。
【背景技術】
【0002】
従来のPKI(Public Key Infrastructure、非特許文献1参照)ベースによる電子署名システムは、署名鍵を使用して電子署名を生成する署名端末と、署名鍵に対応する検証鍵の証明書を発行する第三者機関である認証局(CA:Certificate Authority)の証明局装置と、電子署名の検証を行なう検証端末とのコンピュータ装置を備えている。図7は、従来のPKIベースによる電子署名システムの動作例を示すシーケンス図である。まず、署名端末110が自身の署名鍵skと検証鍵vkとの鍵のペアを生成する(ステップS51)。署名端末110は、生成した署名鍵skを秘密に管理する一方、予め定められたユーザIDとパスワードとを用いて認証局装置120にログインし、検証鍵vkを送信する。認証局装置120は、署名端末110から送信された検証鍵vkを受信すると、受信した検証鍵vkをユーザIDに対応付けて記憶し、署名端末110の検証鍵を登録する(ステップS52)。署名端末110が検証鍵vkを認証局装置120に送信すると(ステップS53)、認証局装置120は、受信した検証鍵vkが署名端末110の署名鍵skに対応するものであることを証明する証明書certを生成し、署名端末110に送信する(ステップS54)。
【0003】
署名端末110は、予め定められたアルゴリズムにより、平文Mと署名鍵skとに基づいて電子署名σを生成する(ステップS55)。署名端末110は、平文Mと、電子署名σと、証明書certとを検証端末130に送信する(ステップS56)。ここで、証明書certには、同一の鍵が無限に利用されることを防ぐために、有効期間が設定されている。検証端末130は、このような有効期間と検証時の日時とを比較する(ステップS57)。検証端末130は、検証時の日時が証明書certに設定された有効期間内でない場合(ステップS57:NO)、検証を失敗させる。
【0004】
一方、検証時の日時が証明書certに設定された有効期間内である場合(ステップS57:YES)、検証端末130は、ネットワークを介して認証局装置120に接続し、認証局装置120から失効リスト(CRL:Certificate Revocation List)を取得する(ステップS58)。CRLは、署名鍵skが漏洩した等の理由により、有効期間内であるが失効した証明書のリストである。検証端末130は、CRLと署名端末110の検証鍵vkに対応する証明書certとを照合して、CRLに署名端末110に対応する証明書certが含まれているか否かを判定する(ステップS59)。CRLに署名端末110の検証鍵vkに対応する証明書certが含まれている場合(ステップS59:NO)、検証端末130は、検証を失敗させる。一方、CRLに署名端末110の検証鍵vkに対応する証明書certが含まれていない場合(ステップS59:YES)、検証端末130は、予め定められたアルゴリズムにより、検証鍵vkを用いて電子署名σの検証処理を行なう(ステップS60)。検証処理は、平文M、検証鍵vk、および電子署名σに基づいて予め定められたアルゴリズムにより行なわれる。検証端末130は、検証鍵vkを用いた電子署名σの検証が失敗すれば(ステップS60:NO)、検証が失敗したこと示す検証結果を出力する。検証が成功すれば(ステップS60:YES)、検証が成功したことを示す検証結果を出力する(ステップS61)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】小松文子著、「PKIハンドブック」、ソフトリサーチセンター、2004年11月
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来のPKIベースによる電子署名システムでは、上述のように、署名端末110による署名時には証明書の有効性の確認を行なわず、検証端末130による検証時に、証明書の有効性の確認を行っている。このため、検証端末130は、検証時にネットワークを介して認証局装置120に接続し、CRLを取得する必要がある。ここで、検証端末130が検証時にネットワークに接続せず、オフラインで電子署名の検証を行なうことの要望がある。例えば、検証端末130がネットワークに接続されていない環境にある場合にも、電子署名の検証を行うようにすることが望ましい。また、PKIにおける認証局は階層構造を持ち、各認証局は自身が発行した証明書に関するCRLを公開する。そのため、検証端末130がCRLの取得を行なう場合には複数階層に亘る複数のCRLを取得して照合を行なうため、ネットワーク通信や照合の処理に過大な負荷がかかる場合がある。さらに、例えば、署名端末110によって生成された電子署名が複数の検証端末130によって検証される場合、複数の検証端末130がネットワークを介して認証局装置120からCRLの取得を行うこととなり、認証局装置120や検証端末130、または認証局装置120と検証端末130との間のネットワークなどに過大な負荷がかかる場合がある。
【0007】
本発明は、このような状況に鑑みてなされたもので、検証端末がネットワークに接続することなく、電子署名の検証を行なうことを可能にする電子署名システムおよび電子署名方法を提供する。
【課題を解決するための手段】
【0008】
上述した課題を解決するために、本発明は、定められた署名鍵と、署名鍵に対応する検証鍵とが記憶されている署名端末と、検証鍵に対応する証明書を生成する認証局装置と、署名鍵に基づいて生成された電子署名の検証を行なう検証端末とを備えた電子署名システムであって、署名端末は、電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部と、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信し、送信した証明書取得要求に応じて認証局装置から送信される証明書を受信する証明書取得部と、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成する電子署名部と、を備え、証明局装置は、検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部と、署名端末から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部に記憶された証明書発行カウンタが示す値とが一致するか否かを判定するカウンタ判定部と、カウンタ判定部によって、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定されると、検証鍵が含まれる証明書を生成して署名端末に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定されると、証明書を生成しない証明書発行部と、を備え、検証端末は、電子署名と、検証鍵との入力を受け付ける検証情報入力部と、検証情報入力部に入力された検証鍵に基づいて電子署名の検証を行なう検証部と、を備えることを特徴とする。
【0009】
また、本発明は、署名端末の証明書取得部は、署名カウンタが示す第1の署名カウンタ値に基づいて第1の証明書を取得し、第1の証明書に基づいて電子署名部によって第1の電子署名が生成された後、第1の電子署名が生成されたことに応じて増加された署名カウンタが示す第2の署名カウンタ値に基づいて第2の証明書を取得し、電子署名部は、第1の証明書に基づく第1の電子署名と、第2の証明書に基づく第2の電子署名とを生成し、検証端末の、検証情報入力部は、第1の電子署名と、第2の電子署名と、第1の署名カウンタ値を示す署名カウンタと、第2の署名カウンタ値を示す署名カウンタと、検証鍵との入力を受け付け、検証部は、第2の署名カウンタ値が、第1の署名カウンタ値以下である場合に検証を失敗させることを特徴とする。
【0010】
また、本発明は、証明局装置の証明書発行カウンタ記憶部には、署名鍵を利用して署名を行なうことが可能である署名鍵の有効期限と、検証鍵が失効していることを示す失効フラグとが記憶され、証明書発行部は、署名鍵の有効期限と失効フラグとに基づいて、証明書を生成するか否かを判定することを特徴とする。
【0011】
また、本発明は、署名端末の署名カウンタ記憶部は、定められた耐タンパ領域に構成されることを特徴とする請求項1から請求項3までのいずれか1項に記載の電子署名システム。
【0012】
また、本発明の電子署名システムは、複数の署名端末を備え、証明局装置の証明書発行カウンタ記憶部には、複数の署名端末に対応する検証鍵毎に証明書発行カウンタが記憶されていることを特徴とする請求項1から請求項4までのいずれか1項に記載の電子署名システム。
【0013】
また、本発明は、定められた署名鍵と、署名鍵に対応する検証鍵とが記憶され、署名鍵に基づいて電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部を備える署名端末と、検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部を備える認証局装置と、電子署名の検証を行なう検証端末とを備えた電子署名システムの電子署名方法であって、署名端末が、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信し、送信した証明書取得要求に応じて認証局装置から送信される証明書を受信するステップと、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成するステップと、証明局装置が、署名端末から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部に記憶された証明書発行カウンタが示す値とが一致するか否かを判定するステップと、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定すると、検証鍵が含まれる証明書を生成して署名端末に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定すると、証明書を生成しないステップと、検証端末が、電子署名と、検証鍵との入力を受け付けるステップと、検証情報入力部に入力された検証鍵に基づいて電子署名の検証を行なうステップと、を備えることを特徴とする。
【発明の効果】
【0014】
以上説明したように、本発明によれば、署名鍵と検証鍵とを有する署名端末が、電子署名を生成した回数を示す署名カウンタを記憶し、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信して証明書を受信し、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成し、証明局装置が、証明書を生成した回数を示す証明書発行カウンタを記憶し、署名端末から送信された証明書取得要求を受信し、署名カウンタが示す値と証明書発行カウンタが示す値とが一致すると判定すると証明書を生成して署名端末に送信し、一致しないと判定すると証明書を生成せず、検証端末は、電子署名と検証鍵との入力を受け付け、検証鍵に基づいて電子署名の検証を行なうようにしたので、検証端末がネットワークに接続することなく、電子署名の検証を行なうことが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態による電子署名システムの構成例を示すブロック図である。
【図2】本発明の一実施形態による暗号処理における演算、記号の定義を示す図である。
【図3】本発明の一実施形態による認証局装置の証明書発行カウンタ記憶部に記憶される情報のデータ例を示す図である。
【図4】本発明の第1の実施形態による電子署名システムの動作例を示すシーケンス図である。
【図5】本発明の第2の実施形態により電子署名を行なうタイミングの例を示す図である。
【図6】本発明の第2の実施形態による電子署名システムの動作例を示すシーケンス図である。
【図7】従来技術による電子署名システムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態による電子署名システム1の構成を示すブロック図である。本実施形態による電子署名システム1は、定められた署名鍵と検証鍵とが記憶されている署名端末10と、署名端末10の検証鍵に対応する証明書を生成する認証局装置20と、署名端末10の署名鍵に基づいて生成された電子署名の検証を行なう検証端末30とを備えている。
【0017】
まず、本実施形態の暗号処理における演算、記号を図2のように定義する。ここで、符号(1)は、認証局装置20によって行なわれ、暗号処理に用いられる各値のセットアップ処理を示す。これにより、電子署名システム1によって用いられる各値が生成される。符号(2)は、署名端末10による鍵生成処理を示す。これにより、署名鍵skと検証鍵vkとが生成される。符号(3)は、認証局装置20による証明書生成処理を示す。ここで、iは、後述する証明書発行カウンタ記憶部21に記憶される証明書発行カウンタCc1である。これにより、証明書certが生成される。符号(4)は、署名端末10による電子署名生成処理を示す。ここで、iは、後述する署名カウンタ記憶部11に記憶される署名カウンタCs1である。これにより、平文Mに対応する電子署名σが生成される。符号(5)は、検証端末30による電子署名の検証処理を示す。これにより、検証が成功したか否かを示す検証結果が出力される。ここでは、検証結果が「1」であれば検証が成功したことを示し、検証結果が「0」であれば検証が失敗したことを示す。
【0018】
図1に戻り、署名端末10は、上述の図2において符号(2)に示した鍵生成処理により署名鍵skと検証鍵vkとを生成し、自身の記憶領域に記憶させるとともに、認証局装置20に検証鍵を送信して認証局装置20の鍵記憶部24に記憶させ、生成した検証鍵を認証局に登録する。また、署名端末10は、署名カウンタ記憶部11と、証明書取得部12と、電子署名部13とを備えている。
署名カウンタ記憶部11には、署名鍵skに基づいて電子署名を生成した回数を示す署名カウンタCs1が記憶される。署名カウンタ記憶部11には、例えば署名カウンタCs1の初期値として0が記憶され、後述する電子署名部13によって電子署名が生成されると、電子署名部13によって1ずつインクリメントされ、更新されて記憶される。また、署名カウンタ記憶部11は、署名端末10が備える定められた耐タンパ領域に構成される。耐タンパ領域には、例えば、PCなどのマザーボードに直付けされたセキュリティチップであるTPM(Trusted Platform Module)が適用できる。この場合、TPMが備えるカウンタの機能を、署名カウンタCs1として適用するようにしても良い。ここで、署名端末10が複数の署名鍵skを保持する場合には、署名カウンタ記憶部11には、署名鍵sk毎に、対応する署名カウンタCs1が記憶される。
【0019】
証明書取得部12は、署名カウンタCs1と検証鍵vkとが含まれる証明書取得要求を認証局装置20に送信し、送信した証明書取得要求に応じて認証局装置20から送信される証明書を受信する。
電子署名部13は、上述の図2において符号(4)に示した電子署名生成処理により、定められた平文Mと、署名鍵skと、証明書certと、署名カウンタCs1と、ユーザを識別するユーザIDとに基づいて電子署名σを生成する。また、電子署名部13は、署名カウンタ記憶部11に記憶された署名カウンタをインクリメントし、記憶させる。また、電子署名部13は、ICカードリーダライタの機能を備えており、生成した電子署名σと、ユーザIDと、平文Mと、署名カウンタCs1と、検証鍵vkとが含まれる検証情報を、定められたIC(Integrated Circuit)カードに記憶させるようにしても良い。
【0020】
認証局装置20は、証明書発行カウンタ記憶部21と、カウンタ判定部22と、証明書発行部23と、鍵記憶部24とを備えている。
証明書発行カウンタ記憶部21には、電子署名システム1による電子署名を行なう署名端末10に対応する検証鍵毎に、検証鍵と、ユーザIDと、証明書発行カウンタと、署名鍵の有効期間と、失効フラグとが対応付けられて記憶される。図3は、証明書発行カウンタ記憶部21に記憶される情報のデータ例を示す図である。検証鍵は、署名端末10により生成され、送信されて登録された検証鍵である。ユーザIDは、電子署名システム1による電子署名を行なうユーザを識別する識別情報である。証明書発行カウンタは、証明書発行部23によって証明書が生成された回数を示す情報である。証明書発行カウンタは、例えば初期値として0が記憶され、後述する証明書発行部23によって対応する検証鍵に基づく証明書が生成されると、証明書発行部23によって1ずつインクリメントされ、更新されて記憶される。署名鍵の有効期間は、対応する署名鍵を利用することが可能である期間を示す情報である。署名鍵の有効期間には、例えば署名鍵の有効期間の始期を示す日時と、署名鍵の有効期間の終期を示す日時との情報が含まれる。失効フラグは、有効期間内である署名鍵であっても、鍵漏洩等の理由により検証鍵が失効されている場合に、その検証鍵が失効していることを示す情報である。失効フラグは、例えば従来のPKIベースの電子署名におけるCRLに対応する情報である。すなわち、署名鍵の有効期間内には「有効」を示す失効フラグが対応付けられるが、署名鍵の有効期間内であっても、鍵の漏洩などにより失効した鍵に対応する検証鍵には「無効」を示す失効フラグが対応付けられる。
【0021】
図1に戻り、カウンタ判定部22は、署名端末10から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部21に記憶された証明書発行カウンタが示す値とが一致するか否かを判定する。
【0022】
証明書発行部23は、カウンタ判定部22によって、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定されると、検証鍵が含まれる証明書を生成して署名端末10に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定されると、証明書を生成しない。ここで、証明書発行部23が証明書を生成する際には、上述の図2において符号(3)に示した証明書生成処理により、検証鍵vkと、証明書発行カウンタCc1と、ユーザIDとに基づいて、証明書certを生成する。
【0023】
また、証明書発行部23は、検証鍵に対応する署名鍵の有効期間と失効フラグとに基づいて、証明書を生成するか否かを判定する。ここでは、証明書発行部23は、自身が有する計時機能により現在日時を示す情報を取得し、現在日時が署名鍵の有効期間内であるか否かを判定する。現在日時が署名鍵の有効期間内であれば証明書を生成すると判定し、現在日時が署名鍵の有効期間内でなければ証明書を生成しないと判定する。また、証明書発行部23は、失効フラグが「有効」を示す情報であれば証明書を生成すると判定し、「無効」を示す情報であれば証明書を生成しないと判定する。また、証明書発行部23は、証明書を生成すると判定し、上述の証明書生成処理により証明書を生成した場合には、証明書発行カウンタ記憶部21に記憶された証明書発行カウンタをインクリメントする。
鍵記憶部24には、署名端末10から認証局装置20に送信された検証鍵が記憶される。
【0024】
検証端末30は、検証情報入力部31と、検証部32とを備えている。
検証情報入力部31は、ユーザIDと、平文Mと、電子署名σと、署名カウンタCs1と、検証鍵vkとが含まれる検証情報の入力を受け付ける。ここで、検証情報入力部31は、例えばICカードリーダなどの機能を備えており、ICカードに記憶されている検証情報を読み込むことにより入力を受け付けるようにしても良い。
【0025】
検証部32は、検証情報入力部31に入力された検証鍵に基づいて電子署名の検証を行なう。検証部32は、署名カウンタCs1と、ユーザIDと、平文Mと、電子署名σと、検証鍵vkとに基づいて、上述の図2において符号(5)に示した検証処理を行い、検証結果を算出する。
【0026】
次に、本実施形態による電子署名システム1の動作例を説明する。図4は、電子署名システム1によって電子署名が生成され、検証される動作例を示すシーケンス図である。
まず、署名端末10は、上述の電子署名処理を動作させて、署名鍵skと検証鍵vkとを生成する(ステップS1)。また、署名端末10は、例えばユーザからの入力に応じて、予め定められたユーザID(例えば、「User1」)と、パスワードとを用いて認証局装置20にログインし、ステップS1において生成した検証鍵vkを認証局装置20に送信する。認証局装置20は、署名端末10から送信された検証鍵を受信すると、受信した検証鍵を鍵記憶部24に記憶させて登録する(ステップS2)。また、認証局装置20の証明書発行カウンタ記憶部21には、検証鍵に対応する初期値が記憶される。署名端末10の証明書取得部12は、署名カウンタ記憶部11に記憶されている署名カウンタCs1を読み出し、読み出した署名カウンタCs1と、検証鍵vkとが含まれる証明書取得要求を生成し、認証局装置20に送信する(ステップS3)。
【0027】
認証局装置20が、署名端末10から送信された証明書取得要求を受信すると、カウンタ判定部22は、証明書発行カウンタ記憶部21に、証明書取得要求に含まれる検証鍵vkに対応付けられて記憶されている証明書発行カウンタCc1を読み出し、証明書取得要求に含まれる署名カウンタCs1と、読み出した証明書発行カウンタCc1との値を比較する(ステップS4)。カウンタ判定部22は、署名カウンタCs1と証明書発行カウンタCc1との値が一致しないと判定すると(ステップS4:NO)、証明書を発行せずにエラーとして処理を終了する。
【0028】
一方、署名カウンタCs1と証明書発行カウンタCc1との値が一致すると判定すると(ステップS4:YES)、証明書発行部23は、ユーザID(「User1」)に対応する署名鍵の有効期間T1を読み出す。証明書発行部23は、自身が備える計時機能から取得する現在日時が、署名鍵の有効期間T1が示す期間内であるか否かを判定する(ステップS5)。証明書発行部23は、現在日時が、署名鍵の有効期間T1によって示される期間内でないと判定すると(ステップS5:NO)、証明書を発行せずにエラーとして処理を終了する。一方、現在日時が、署名鍵の有効期間T1によって示される期間内であると判定すると(ステップS5:YES)、証明書発行カウンタ記憶部21に記憶されている失効フラグを読み出す(ステップS6)。証明書発行部23は、読み出した失効フラグが「無効」を示すと判定すると、(ステップS6:NO)、証明書を発行せずにエラーとして処理を終了する。一方、読み出した失効フラグが「有効」を示すと判定すると、(ステップS6:YES)、証明書生成処理によって証明書certを生成し、生成した証明書certを署名端末10に送信する(ステップS7)。証明書発行部23は、証明書を生成すると、証明書を生成した検証鍵に対応付けられて証明書発行カウンタ記憶部21に記憶された証明書発行カウンタCc1をインクリメントさせ、記憶させる(ステップS8)。
【0029】
署名端末10は、認証局装置20から送信された証明書certを受信すると、電子署名生成処理によって電子署名σを生成し(ステップS9)、署名カウンタ記憶部11に記憶された署名カウンタCs1をインクリメントさせる(ステップS10)。ここで、例えば、ユーザID、平文M、電子署名σ、署名カウンタCs1、検証鍵vkが含まれる検証情報が、ユーザが有するICカードに記憶される。
そして、検証端末30の検証情報入力部31は、ユーザのICカードに記憶されたユーザID、平文M、電子署名σ、署名カウンタCs1、検証鍵vkを読み出すことにより検証情報の入力を受け付ける(ステップS11)。そして、検証部32は、検証処理によって電子署名σを検証鍵vkにより検証する(ステップS12)。ここで、検証部32が、電子署名σと検証鍵vkとに基づいた検証に失敗すれば(ステップS12:NO)、検証失敗として処理を終了する。一方、電子署名σと検証鍵vkとに基づいた検証に成功すれば(ステップS12:YES)、検証成功として検証結果を出力する(ステップS13)。
【0030】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本実施形態における電子署名システム1は、第1の実施形態と同様であるので、図1を参照して特に第1の実施形態と異なる点について説明する。
本実施形態における署名端末10の証明書取得部12は、署名カウンタが示す第1の書名カウンタ値に基づいて第1の証明書を取得し、第1の証明書に基づいて電子署名部13によって第1の電子署名が生成された後、第1の電子署名が生成されたことに応じて増加された署名カウンタが示す第2の署名カウンタ値に基づいて第2の証明書を取得する。
署名端末10の電子署名部13は、第1の証明書に基づく第1の電子署名(本署名)と、第2の証明書に基づく第2の電子署名(空署名)とを生成する。ここで、本書名とは、ユーザが本来署名を行ないたい平文に対して行なった電子署名である。これに対し、空署名とは、対応する本書名の有効性を確認する目的で用いられる電子署名である。ここで、空署名において署名を行なう対象である平文には、任意の情報を用いて良く、特に限定された情報を用いなくても良い。
【0031】
検証端末30の検証情報入力部31は、第1の電子署名と、第2の電子署名と、第1の署名カウンタ値を示す署名カウンタと、第2の署名カウンタ値を示す署名カウンタと、検証鍵との入力を受け付ける。
検証端末30の検証部32は、第2の署名カウンタ値が、第1の署名カウンタ値以下である場合に検証を失敗させ、第2の署名カウンタ値が、第1の署名カウンタ値を超える場合に検証を成功させる。
【0032】
これにより、例えば図5に示すように、認証局装置20によって発行された証明書が、署名鍵の有効期間が途過した後に使用されることを防ぐことができる。例えば、署名端末10に対する署名生成権限が与えられる署名鍵の有効期間である符号p1と、署名生成権限がない期間である符号p2との期間が存在する。このとき、符号p1の期間内である時点t1において、署名端末10が認証局装置20に対して証明書発行要求を送信し、第1の証明書を取得する。署名端末10は、時点t2において第1の電子署名を生成した後、時点t3においてさらに認証局装置20に証明書発行要求を送信し、第2の証明書を取得する。認証局装置20は、時点t4において第2の電子署名を生成する。検証時には、このように生成された第1の電子署名と第2の電子署名とのいずれもの検証が成功することを以て、時点t2における電子署名が有効なものであると判断できる。すなわち、時点t4において署名された電子署名(空署名)の検証が成功したということは、時点t4における署名に利用した第2の証明書が、署名鍵の有効期間内(時点t3)に発行されたことを示しており、従って、時点t3以前の時点t2において署名された電子署名(本署名)に用いられた第1の証明書は当然に有効であることが判断できる。一方、例えば時点t1において取得された第1の証明書を用いて、期間p1が途過した期間p2内の時点t5において第1の電子署名が生成された場合、時点t6において署名端末10が証明書取得要求を認証局装置20に送信しても、第2の証明書を取得することができない。このようにして、署名鍵の有効期間が途過した後に証明書が使用されることを防ぐことができる。
【0033】
次に、本実施形態による電子署名システム1の動作例を説明する。図6は、電子署名システム1によって電子署名が生成され、検証される動作例を示すシーケンス図である。
図において、ステップS20からステップS25までの処理は、第1の実施形態において説明したステップS1からステップS10までの処理と同様である。ここで、図6においては、第1の実施形態におけるステップS4からステップS6までの判定処理、およびステップS8におけるCc1のインクリメント処理を省略して示しているが、同様の処理を行う。
【0034】
ここでは、ステップS22における時点での署名カウンタCs1の値(第1のカウンタ値)がステップS25においてインクリメントされ、増加された値(第2のカウンタ値)を示す署名カウンタCs1を、Cs1´と示す。署名端末10の証明書取得部12は、ステップS25においてインクリメントされた署名カウンタCs1´が含まれる証明書取得要求を、認証局装置20に送信する(ステップS26)。認証局装置20は、署名カウンタCs1´に基づく第2の証明書cert´を生成し、署名端末10に送信する(ステップS27)。署名端末10は、第2の平文M´、署名鍵sk、第2の証明書cert´、署名カウンタCs1´、ユーザIDに基づいて、第2の電子署名σ´を生成する(ステップS28)。署名端末10の電子署名部13は、署名カウンタCs1´をさらにインクリメントさせる(ステップS29)。
【0035】
検証端末30の検証情報入力部31は、第1の平文M、第1の電子署名σ、第1の署名カウンタCs1、検証鍵vk、ユーザIDの入力を受け付ける(ステップS30)。また、検証情報入力部31は、第2の平文M´、第2の電子署名σ´、第2の署名カウンタCs1´、検証鍵vk、ユーザIDの入力を受け付ける(ステップS31)。そして、検証部32は、第1の電子署名σに対して検証鍵vkによる検証処理を行い、検証結果を算出する(ステップS32)。検証結果が失敗を示す場合には(ステップS32:NO)、処理を終了する。検証結果が成功を示す場合には(ステップS32:YES)、第2の電子署名σ´に対して検証鍵vkによる検証処理を行い、検証結果を算出する(ステップS33)。検証結果が失敗を示す場合には(ステップS33:NO)、処理を終了する。検証結果が成功を示す場合には(ステップS33:YES)、ステップS30において入力された署名カウンタCs1と、ステップS31において入力された署名カウンタCs1´とが示す値を比較する(ステップS34)。検証部32は、署名カウンタCs1´が示す値が、署名カウンタCs1が示す値以下である場合(ステップS34:NO)、検証失敗として処理を終了する。署名カウンタCs1´が、署名カウンタCs1が示す値を超える場合(ステップS34:YES)、検証成功を示す検証結果を出力する(ステップS35)。
【0036】
以上説明したように、本実施形態によれば、検証端末30がネットワークに接続することなく、電子署名の検証を行なうことが可能となる。すなわち、認証局装置20が証明書を発行する際に、認証局装置20が、その時点で署名端末10の鍵が有効であるか否かを判定して有効である場合に証明書を発行し、署名端末10は発行された証明書に基づいて電子署名を生成するようにしたので、検証端末30における検証時には、電子署名が作成されていることを以て鍵の有効性を推定することができる。これにより、検証端末30は、ネットワークを介して認証局装置20に接続し、CRLを参照する等により電子署名の鍵自体の有効性を確認する必要がなくなり、オフラインで電子署名の検証を行なうことが可能となる。
【0037】
また、これにより、従来は鍵自体の有効性の確認の処理負荷を検証端末30が負担していたが、この処理負荷を署名端末10側に移行させることができる。すなわち、例えば署名端末10によって生成された電子署名は、複数の検証端末30によって検証される場合がある。このような場合に、従来であれば複数の検証端末30のそれぞれが鍵の有効性を確認するための処理負荷を負担していたが、本実施形態によれば、署名端末10による電子署名作成に先立って認証局装置20が鍵の有効性の確認を行なえば足りる。
【0038】
また、本発明の第1の実施形態によれば、署名端末10の署名カウンタと認証局装置20の証明書発行カウンタとの値が一致した場合にのみ証明書を発行することとしたので、発行された証明書は実質的に1回限りの利用が可能なものである。そのため、従来のPKIにおいて単に鍵の有効期限を廃した場合と異なり、同一の署名鍵により無限に電子署名が生成されることがない。
【0039】
また、本発明の第2の実施形態によれば、第1の電子署名(本書名)の際に用いた署名カウンタの値Cs1と、第2の電子署名(空署名)の際に用いた署名カウンタの値Cs1´とが、Cs1<Cs1´である場合にのみ検証が成功することとしたので、署名鍵の有効期限が途過した後に、有効期限が過ぎた証明書を用いた電子署名の検証が成功することを防ぐことができる。これにより、従来のPKIと同等のセキュリティレベルを確保したまま、オフラインでの署名検証を実現することができる。
【0040】
なお、本実施形態では、署名カウンタの値と証明書発行カウンタとの値は、それぞれ1ずつ増加するようにしたが、例えばひとつの証明書によって定められた回数の電子署名の生成を許可する場合には、証明書が発行された際の証明書発行カウンタの増加値を、その定められた回数分増加させるようにしても良い。
また、本実施形態における署名端末10の署名カウンタ記憶部11と電子署名部13との機能は、耐タンパ性のあるICカードなどに記憶させ、動作させるようにしても良い。
【0041】
なお、従来のPKIベースの電子署名において、証明書の有効期間をCRLの更新頻度と同程度(例えば、数日)に短くすることにより、検証端末30が検証時にネットワークを介して認証局装置20に接続する必要をなくすことも考えられる。しかしこの場合には、検証端末30は、電子署名が生成されてから数日間の間にしか検証を行うことができなくなるため、現実的な利用は困難である。
【0042】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより電子署名を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0043】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0044】
1 電子署名システム
10 署名端末
11 署名カウンタ記憶部
12 証明書取得部
13 電子署名部
20 認証局装置
21 証明書発行カウンタ記憶部
22 カウンタ判定部
23 証明書発行部
24 鍵記憶部
30 検証端末
31 検証情報入力部
32 検証部

【特許請求の範囲】
【請求項1】
定められた署名鍵と、当該署名鍵に対応する検証鍵とが記憶されている署名端末と、前記検証鍵に対応する証明書を生成する認証局装置と、前記署名鍵に基づいて生成された電子署名の検証を行なう検証端末とを備えた電子署名システムであって、
前記署名端末は、
前記電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部と、
前記署名カウンタと前記検証鍵とが含まれる証明書取得要求を前記認証局装置に送信し、送信した当該証明書取得要求に応じて当該認証局装置から送信される証明書を受信する証明書取得部と、
定められた平文と、前記署名鍵と、前記証明書とに基づいて電子署名を生成する電子署名部と、を備え、
前記証明局装置は、
前記検証鍵に対応する前記証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部と、
前記署名端末から送信される前記証明書取得要求を受信すると、当該証明書取得要求に含まれる前記署名カウンタが示す値と、前記証明書発行カウンタ記憶部に記憶された前記証明書発行カウンタが示す値とが一致するか否かを判定するカウンタ判定部と、
前記カウンタ判定部によって、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致すると判定されると、前記検証鍵が含まれる証明書を生成して前記署名端末に送信し、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致しないと判定されると、前記証明書を生成しない証明書発行部と、を備え、
前記検証端末は、
前記電子署名と、前記検証鍵との入力を受け付ける検証情報入力部と、
前記検証情報入力部に入力された前記検証鍵に基づいて前記電子署名の検証を行なう検証部と、を備える
ことを特徴とする電子署名システム。
【請求項2】
前記署名端末の、
前記証明書取得部は、前記署名カウンタが示す第1の署名カウンタ値に基づいて第1の証明書を取得し、当該第1の証明書に基づいて前記電子署名部によって第1の電子署名が生成された後、当該第1の電子署名が生成されたことに応じて増加された前記署名カウンタが示す第2の署名カウンタ値に基づいて第2の証明書を取得し、
前記電子署名部は、前記第1の証明書に基づく第1の電子署名と、前記第2の証明書に基づく第2の電子署名とを生成し、
前記検証端末の、
前記検証情報入力部は、前記第1の電子署名と、前記第2の電子署名と、前記第1の署名カウンタ値を示す前記署名カウンタと、前記第2の署名カウンタ値を示す前記署名カウンタと、前記検証鍵との入力を受け付け、
前記検証部は、前記第2の署名カウンタ値が、前記第1の署名カウンタ値以下である場合に前記検証を失敗させる
ことを特徴とする請求項1に記載の電子署名システム。
【請求項3】
前記証明局装置の、
前記証明書発行カウンタ記憶部には、前記署名鍵を利用して署名を行なうことが可能である署名鍵の有効期限と、当該検証鍵が失効していることを示す失効フラグとが記憶され、
前記証明書発行部は、前記署名鍵の有効期限と前記失効フラグとに基づいて、前記証明書を生成するか否かを判定する
ことを特徴とする請求項1または請求項2に記載の電子署名システム。
【請求項4】
前記署名端末の、
前記署名カウンタ記憶部は、定められた耐タンパ領域に構成される
ことを特徴とする請求項1から請求項3までのいずれか1項に記載の電子署名システム。
【請求項5】
前記電子署名システムは、複数の前記署名端末を備え、
前記証明局装置の前記証明書発行カウンタ記憶部には、前記複数の前記署名端末に対応する検証鍵毎に前記証明書発行カウンタが記憶されている
ことを特徴とする請求項1から請求項4までのいずれか1項に記載の電子署名システム。
【請求項6】
定められた署名鍵と、当該署名鍵に対応する検証鍵とが記憶され、前記署名鍵に基づいて電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部を備える署名端末と、前記検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部を備える認証局装置と、前記電子署名の検証を行なう検証端末とを備えた電子署名システムの電子署名方法であって、
前記署名端末が、
前記署名カウンタと前記検証鍵とが含まれる証明書取得要求を前記認証局装置に送信し、送信した当該証明書取得要求に応じて当該認証局装置から送信される証明書を受信するステップと、
定められた平文と、前記署名鍵と、前記証明書とに基づいて電子署名を生成するステップと、
前記証明局装置が、
前記署名端末から送信される前記証明書取得要求を受信すると、当該証明書取得要求に含まれる前記署名カウンタが示す値と、前記証明書発行カウンタ記憶部に記憶された前記証明書発行カウンタが示す値とが一致するか否かを判定するステップと、
前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致すると判定すると、前記検証鍵が含まれる証明書を生成して前記署名端末に送信し、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致しないと判定すると、前記証明書を生成しないステップと、
前記検証端末が、
前記電子署名と、前記検証鍵との入力を受け付けるステップと、
前記検証情報入力部に入力された前記検証鍵に基づいて前記電子署名の検証を行なうステップと、を備える
ことを特徴とする電子署名方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−97424(P2011−97424A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−250512(P2009−250512)
【出願日】平成21年10月30日(2009.10.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年度 独立行政法人情報通信研究機構「持続的な安全性を持つ暗号・電子署名アルゴリズム技術に関する研究開発〜安全な暗号技術を利用し続けるための暗号利用フレームワーク〜」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】