(57)【要約】【課題】検証端末がネットワークに接続することなく、電子署名の検証を行なう。【解決手段】署名鍵と検証鍵とを有する署名端末が、電子署名を生成した回数を示す署名カウンタを記憶し、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信して証明書を受信し、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成し、証明局装置が、証明書を生成した回数を示す証明書発行カウンタを記憶し、署名端末から送信された証明書取得要求を受信し、署名カウンタが示す値と証明書発行カウンタが示す値とが一致すると判定すると証明書を生成して署名端末に送信し、一致しないと判定すると証明書を生成せず、検証端末は、電子署名と検証鍵との入力を受け付け、検証鍵に基づいて電子署名の検証を行なう。【選択図】図１
2011097424.tif 000002
【特許請求の範囲】
【請求項１】
定められた署名鍵と、当該署名鍵に対応する検証鍵とが記憶されている署名端末と、前記検証鍵に対応する証明書を生成する認証局装置と、前記署名鍵に基づいて生成された電子署名の検証を行なう検証端末とを備えた電子署名システムであって、
前記署名端末は、
前記電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部と、
前記署名カウンタと前記検証鍵とが含まれる証明書取得要求を前記認証局装置に送信し、送信した当該証明書取得要求に応じて当該認証局装置から送信される証明書を受信する証明書取得部と、
定められた平文と、前記署名鍵と、前記証明書とに基づいて電子署名を生成する電子署名部と、を備え、
前記証明局装置は、
前記検証鍵に対応する前記証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部と、
前記署名端末から送信される前記証明書取得要求を受信すると、当該証明書取得要求に含まれる前記署名カウンタが示す値と、前記証明書発行カウンタ記憶部に記憶された前記証明書発行カウンタが示す値とが一致するか否かを判定するカウンタ判定部と、
前記カウンタ判定部によって、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致すると判定されると、前記検証鍵が含まれる証明書を生成して前記署名端末に送信し、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致しないと判定されると、前記証明書を生成しない証明書発行部と、を備え、
前記検証端末は、
前記電子署名と、前記検証鍵との入力を受け付ける検証情報入力部と、
前記検証情報入力部に入力された前記検証鍵に基づいて前記電子署名の検証を行なう検証部と、を備える
ことを特徴とする電子署名システム。
【請求項２】
前記署名端末の、
前記証明書取得部は、前記署名カウンタが示す第１の署名カウンタ値に基づいて第１の証明書を取得し、当該第１の証明書に基づいて前記電子署名部によって第１の電子署名が生成された後、当該第１の電子署名が生成されたことに応じて増加された前記署名カウンタが示す第２の署名カウンタ値に基づいて第２の証明書を取得し、
前記電子署名部は、前記第１の証明書に基づく第１の電子署名と、前記第２の証明書に基づく第２の電子署名とを生成し、
前記検証端末の、
前記検証情報入力部は、前記第１の電子署名と、前記第２の電子署名と、前記第１の署名カウンタ値を示す前記署名カウンタと、前記第２の署名カウンタ値を示す前記署名カウンタと、前記検証鍵との入力を受け付け、
前記検証部は、前記第２の署名カウンタ値が、前記第１の署名カウンタ値以下である場合に前記検証を失敗させる
ことを特徴とする請求項１に記載の電子署名システム。
【請求項３】
前記証明局装置の、
前記証明書発行カウンタ記憶部には、前記署名鍵を利用して署名を行なうことが可能である署名鍵の有効期限と、当該検証鍵が失効していることを示す失効フラグとが記憶され、
前記証明書発行部は、前記署名鍵の有効期限と前記失効フラグとに基づいて、前記証明書を生成するか否かを判定する
ことを特徴とする請求項１または請求項２に記載の電子署名システム。
【請求項４】
前記署名端末の、
前記署名カウンタ記憶部は、定められた耐タンパ領域に構成される
ことを特徴とする請求項１から請求項３までのいずれか１項に記載の電子署名システム。
【請求項５】
前記電子署名システムは、複数の前記署名端末を備え、
前記証明局装置の前記証明書発行カウンタ記憶部には、前記複数の前記署名端末に対応する検証鍵毎に前記証明書発行カウンタが記憶されている
ことを特徴とする請求項１から請求項４までのいずれか１項に記載の電子署名システム。
【請求項６】
定められた署名鍵と、当該署名鍵に対応する検証鍵とが記憶され、前記署名鍵に基づいて電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部を備える署名端末と、前記検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部を備える認証局装置と、前記電子署名の検証を行なう検証端末とを備えた電子署名システムの電子署名方法であって、
前記署名端末が、
前記署名カウンタと前記検証鍵とが含まれる証明書取得要求を前記認証局装置に送信し、送信した当該証明書取得要求に応じて当該認証局装置から送信される証明書を受信するステップと、
定められた平文と、前記署名鍵と、前記証明書とに基づいて電子署名を生成するステップと、
前記証明局装置が、
前記署名端末から送信される前記証明書取得要求を受信すると、当該証明書取得要求に含まれる前記署名カウンタが示す値と、前記証明書発行カウンタ記憶部に記憶された前記証明書発行カウンタが示す値とが一致するか否かを判定するステップと、
前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致すると判定すると、前記検証鍵が含まれる証明書を生成して前記署名端末に送信し、前記署名カウンタが示す値と、前記証明書発行カウンタが示す値とが一致しないと判定すると、前記証明書を生成しないステップと、
前記検証端末が、
前記電子署名と、前記検証鍵との入力を受け付けるステップと、
前記検証情報入力部に入力された前記検証鍵に基づいて前記電子署名の検証を行なうステップと、を備える
ことを特徴とする電子署名方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名鍵と検証鍵とを用いた電子署名を行なう電子署名システム及び電子署名方法に関する。
【背景技術】
【０００２】
従来のＰＫＩ（Public Key Infrastructure、非特許文献１参照）ベースによる電子署名システムは、署名鍵を使用して電子署名を生成する署名端末と、署名鍵に対応する検証鍵の証明書を発行する第三者機関である認証局（ＣＡ：Certificate Authority）の証明局装置と、電子署名の検証を行なう検証端末とのコンピュータ装置を備えている。図７は、従来のＰＫＩベースによる電子署名システムの動作例を示すシーケンス図である。まず、署名端末１１０が自身の署名鍵ｓｋと検証鍵ｖｋとの鍵のペアを生成する（ステップＳ５１）。署名端末１１０は、生成した署名鍵ｓｋを秘密に管理する一方、予め定められたユーザＩＤとパスワードとを用いて認証局装置１２０にログインし、検証鍵ｖｋを送信する。認証局装置１２０は、署名端末１１０から送信された検証鍵ｖｋを受信すると、受信した検証鍵ｖｋをユーザＩＤに対応付けて記憶し、署名端末１１０の検証鍵を登録する（ステップＳ５２）。署名端末１１０が検証鍵ｖｋを認証局装置１２０に送信すると（ステップＳ５３）、認証局装置１２０は、受信した検証鍵ｖｋが署名端末１１０の署名鍵ｓｋに対応するものであることを証明する証明書ｃｅｒｔを生成し、署名端末１１０に送信する（ステップＳ５４）。
【０００３】
署名端末１１０は、予め定められたアルゴリズムにより、平文Ｍと署名鍵ｓｋとに基づいて電子署名σを生成する（ステップＳ５５）。署名端末１１０は、平文Ｍと、電子署名σと、証明書ｃｅｒｔとを検証端末１３０に送信する（ステップＳ５６）。ここで、証明書ｃｅｒｔには、同一の鍵が無限に利用されることを防ぐために、有効期間が設定されている。検証端末１３０は、このような有効期間と検証時の日時とを比較する（ステップＳ５７）。検証端末１３０は、検証時の日時が証明書ｃｅｒｔに設定された有効期間内でない場合（ステップＳ５７：ＮＯ）、検証を失敗させる。
【０００４】
一方、検証時の日時が証明書ｃｅｒｔに設定された有効期間内である場合（ステップＳ５７：ＹＥＳ）、検証端末１３０は、ネットワークを介して認証局装置１２０に接続し、認証局装置１２０から失効リスト（ＣＲＬ：Certificate Revocation List）を取得する（ステップＳ５８）。ＣＲＬは、署名鍵ｓｋが漏洩した等の理由により、有効期間内であるが失効した証明書のリストである。検証端末１３０は、ＣＲＬと署名端末１１０の検証鍵ｖｋに対応する証明書ｃｅｒｔとを照合して、ＣＲＬに署名端末１１０に対応する証明書ｃｅｒｔが含まれているか否かを判定する（ステップＳ５９）。ＣＲＬに署名端末１１０の検証鍵ｖｋに対応する証明書ｃｅｒｔが含まれている場合（ステップＳ５９：ＮＯ）、検証端末１３０は、検証を失敗させる。一方、ＣＲＬに署名端末１１０の検証鍵ｖｋに対応する証明書ｃｅｒｔが含まれていない場合（ステップＳ５９：ＹＥＳ）、検証端末１３０は、予め定められたアルゴリズムにより、検証鍵ｖｋを用いて電子署名σの検証処理を行なう（ステップＳ６０）。検証処理は、平文Ｍ、検証鍵ｖｋ、および電子署名σに基づいて予め定められたアルゴリズムにより行なわれる。検証端末１３０は、検証鍵ｖｋを用いた電子署名σの検証が失敗すれば（ステップＳ６０：ＮＯ）、検証が失敗したこと示す検証結果を出力する。検証が成功すれば（ステップＳ６０：ＹＥＳ）、検証が成功したことを示す検証結果を出力する（ステップＳ６１）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】小松文子著、「ＰＫＩハンドブック」、ソフトリサーチセンター、２００４年１１月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のＰＫＩベースによる電子署名システムでは、上述のように、署名端末１１０による署名時には証明書の有効性の確認を行なわず、検証端末１３０による検証時に、証明書の有効性の確認を行っている。このため、検証端末１３０は、検証時にネットワークを介して認証局装置１２０に接続し、ＣＲＬを取得する必要がある。ここで、検証端末１３０が検証時にネットワークに接続せず、オフラインで電子署名の検証を行なうことの要望がある。例えば、検証端末１３０がネットワークに接続されていない環境にある場合にも、電子署名の検証を行うようにすることが望ましい。また、ＰＫＩにおける認証局は階層構造を持ち、各認証局は自身が発行した証明書に関するＣＲＬを公開する。そのため、検証端末１３０がＣＲＬの取得を行なう場合には複数階層に亘る複数のＣＲＬを取得して照合を行なうため、ネットワーク通信や照合の処理に過大な負荷がかかる場合がある。さらに、例えば、署名端末１１０によって生成された電子署名が複数の検証端末１３０によって検証される場合、複数の検証端末１３０がネットワークを介して認証局装置１２０からＣＲＬの取得を行うこととなり、認証局装置１２０や検証端末１３０、または認証局装置１２０と検証端末１３０との間のネットワークなどに過大な負荷がかかる場合がある。
【０００７】
本発明は、このような状況に鑑みてなされたもので、検証端末がネットワークに接続することなく、電子署名の検証を行なうことを可能にする電子署名システムおよび電子署名方法を提供する。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、本発明は、定められた署名鍵と、署名鍵に対応する検証鍵とが記憶されている署名端末と、検証鍵に対応する証明書を生成する認証局装置と、署名鍵に基づいて生成された電子署名の検証を行なう検証端末とを備えた電子署名システムであって、署名端末は、電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部と、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信し、送信した証明書取得要求に応じて認証局装置から送信される証明書を受信する証明書取得部と、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成する電子署名部と、を備え、証明局装置は、検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部と、署名端末から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部に記憶された証明書発行カウンタが示す値とが一致するか否かを判定するカウンタ判定部と、カウンタ判定部によって、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定されると、検証鍵が含まれる証明書を生成して署名端末に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定されると、証明書を生成しない証明書発行部と、を備え、検証端末は、電子署名と、検証鍵との入力を受け付ける検証情報入力部と、検証情報入力部に入力された検証鍵に基づいて電子署名の検証を行なう検証部と、を備えることを特徴とする。
【０００９】
また、本発明は、署名端末の証明書取得部は、署名カウンタが示す第１の署名カウンタ値に基づいて第１の証明書を取得し、第１の証明書に基づいて電子署名部によって第１の電子署名が生成された後、第１の電子署名が生成されたことに応じて増加された署名カウンタが示す第２の署名カウンタ値に基づいて第２の証明書を取得し、電子署名部は、第１の証明書に基づく第１の電子署名と、第２の証明書に基づく第２の電子署名とを生成し、検証端末の、検証情報入力部は、第１の電子署名と、第２の電子署名と、第１の署名カウンタ値を示す署名カウンタと、第２の署名カウンタ値を示す署名カウンタと、検証鍵との入力を受け付け、検証部は、第２の署名カウンタ値が、第１の署名カウンタ値以下である場合に検証を失敗させることを特徴とする。
【００１０】
また、本発明は、証明局装置の証明書発行カウンタ記憶部には、署名鍵を利用して署名を行なうことが可能である署名鍵の有効期限と、検証鍵が失効していることを示す失効フラグとが記憶され、証明書発行部は、署名鍵の有効期限と失効フラグとに基づいて、証明書を生成するか否かを判定することを特徴とする。
【００１１】
また、本発明は、署名端末の署名カウンタ記憶部は、定められた耐タンパ領域に構成されることを特徴とする請求項１から請求項３までのいずれか１項に記載の電子署名システム。
【００１２】
また、本発明の電子署名システムは、複数の署名端末を備え、証明局装置の証明書発行カウンタ記憶部には、複数の署名端末に対応する検証鍵毎に証明書発行カウンタが記憶されていることを特徴とする請求項１から請求項４までのいずれか１項に記載の電子署名システム。
【００１３】
また、本発明は、定められた署名鍵と、署名鍵に対応する検証鍵とが記憶され、署名鍵に基づいて電子署名を生成した回数を示す署名カウンタが記憶される署名カウンタ記憶部を備える署名端末と、検証鍵に対応する証明書を生成した回数を示す証明書発行カウンタが記憶される証明書発行カウンタ記憶部を備える認証局装置と、電子署名の検証を行なう検証端末とを備えた電子署名システムの電子署名方法であって、署名端末が、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信し、送信した証明書取得要求に応じて認証局装置から送信される証明書を受信するステップと、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成するステップと、証明局装置が、署名端末から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部に記憶された証明書発行カウンタが示す値とが一致するか否かを判定するステップと、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定すると、検証鍵が含まれる証明書を生成して署名端末に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定すると、証明書を生成しないステップと、検証端末が、電子署名と、検証鍵との入力を受け付けるステップと、検証情報入力部に入力された検証鍵に基づいて電子署名の検証を行なうステップと、を備えることを特徴とする。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、署名鍵と検証鍵とを有する署名端末が、電子署名を生成した回数を示す署名カウンタを記憶し、署名カウンタと検証鍵とが含まれる証明書取得要求を認証局装置に送信して証明書を受信し、定められた平文と、署名鍵と、証明書とに基づいて電子署名を生成し、証明局装置が、証明書を生成した回数を示す証明書発行カウンタを記憶し、署名端末から送信された証明書取得要求を受信し、署名カウンタが示す値と証明書発行カウンタが示す値とが一致すると判定すると証明書を生成して署名端末に送信し、一致しないと判定すると証明書を生成せず、検証端末は、電子署名と検証鍵との入力を受け付け、検証鍵に基づいて電子署名の検証を行なうようにしたので、検証端末がネットワークに接続することなく、電子署名の検証を行なうことが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態による電子署名システムの構成例を示すブロック図である。
【図２】本発明の一実施形態による暗号処理における演算、記号の定義を示す図である。
【図３】本発明の一実施形態による認証局装置の証明書発行カウンタ記憶部に記憶される情報のデータ例を示す図である。
【図４】本発明の第１の実施形態による電子署名システムの動作例を示すシーケンス図である。
【図５】本発明の第２の実施形態により電子署名を行なうタイミングの例を示す図である。
【図６】本発明の第２の実施形態による電子署名システムの動作例を示すシーケンス図である。
【図７】従来技術による電子署名システムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について、図面を参照して説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態による電子署名システム１の構成を示すブロック図である。本実施形態による電子署名システム１は、定められた署名鍵と検証鍵とが記憶されている署名端末１０と、署名端末１０の検証鍵に対応する証明書を生成する認証局装置２０と、署名端末１０の署名鍵に基づいて生成された電子署名の検証を行なう検証端末３０とを備えている。
【００１７】
まず、本実施形態の暗号処理における演算、記号を図２のように定義する。ここで、符号（１）は、認証局装置２０によって行なわれ、暗号処理に用いられる各値のセットアップ処理を示す。これにより、電子署名システム１によって用いられる各値が生成される。符号（２）は、署名端末１０による鍵生成処理を示す。これにより、署名鍵ｓｋと検証鍵ｖｋとが生成される。符号（３）は、認証局装置２０による証明書生成処理を示す。ここで、ｉは、後述する証明書発行カウンタ記憶部２１に記憶される証明書発行カウンタＣｃ１である。これにより、証明書ｃｅｒｔｉが生成される。符号（４）は、署名端末１０による電子署名生成処理を示す。ここで、ｉは、後述する署名カウンタ記憶部１１に記憶される署名カウンタＣｓ１である。これにより、平文Ｍに対応する電子署名σが生成される。符号（５）は、検証端末３０による電子署名の検証処理を示す。これにより、検証が成功したか否かを示す検証結果が出力される。ここでは、検証結果が「１」であれば検証が成功したことを示し、検証結果が「０」であれば検証が失敗したことを示す。
【００１８】
図１に戻り、署名端末１０は、上述の図２において符号（２）に示した鍵生成処理により署名鍵ｓｋと検証鍵ｖｋとを生成し、自身の記憶領域に記憶させるとともに、認証局装置２０に検証鍵を送信して認証局装置２０の鍵記憶部２４に記憶させ、生成した検証鍵を認証局に登録する。また、署名端末１０は、署名カウンタ記憶部１１と、証明書取得部１２と、電子署名部１３とを備えている。
署名カウンタ記憶部１１には、署名鍵ｓｋに基づいて電子署名を生成した回数を示す署名カウンタＣｓ１が記憶される。署名カウンタ記憶部１１には、例えば署名カウンタＣｓ１の初期値として０が記憶され、後述する電子署名部１３によって電子署名が生成されると、電子署名部１３によって１ずつインクリメントされ、更新されて記憶される。また、署名カウンタ記憶部１１は、署名端末１０が備える定められた耐タンパ領域に構成される。耐タンパ領域には、例えば、ＰＣなどのマザーボードに直付けされたセキュリティチップであるＴＰＭ（Trusted Platform Module）が適用できる。この場合、ＴＰＭが備えるカウンタの機能を、署名カウンタＣｓ１として適用するようにしても良い。ここで、署名端末１０が複数の署名鍵ｓｋを保持する場合には、署名カウンタ記憶部１１には、署名鍵ｓｋ毎に、対応する署名カウンタＣｓ１が記憶される。
【００１９】
証明書取得部１２は、署名カウンタＣｓ１と検証鍵ｖｋとが含まれる証明書取得要求を認証局装置２０に送信し、送信した証明書取得要求に応じて認証局装置２０から送信される証明書を受信する。
電子署名部１３は、上述の図２において符号（４）に示した電子署名生成処理により、定められた平文Ｍと、署名鍵ｓｋと、証明書ｃｅｒｔと、署名カウンタＣｓ１と、ユーザを識別するユーザＩＤとに基づいて電子署名σを生成する。また、電子署名部１３は、署名カウンタ記憶部１１に記憶された署名カウンタをインクリメントし、記憶させる。また、電子署名部１３は、ＩＣカードリーダライタの機能を備えており、生成した電子署名σと、ユーザＩＤと、平文Ｍと、署名カウンタＣｓ１と、検証鍵ｖｋとが含まれる検証情報を、定められたＩＣ（Integrated Circuit）カードに記憶させるようにしても良い。
【００２０】
認証局装置２０は、証明書発行カウンタ記憶部２１と、カウンタ判定部２２と、証明書発行部２３と、鍵記憶部２４とを備えている。
証明書発行カウンタ記憶部２１には、電子署名システム１による電子署名を行なう署名端末１０に対応する検証鍵毎に、検証鍵と、ユーザＩＤと、証明書発行カウンタと、署名鍵の有効期間と、失効フラグとが対応付けられて記憶される。図３は、証明書発行カウンタ記憶部２１に記憶される情報のデータ例を示す図である。検証鍵は、署名端末１０により生成され、送信されて登録された検証鍵である。ユーザＩＤは、電子署名システム１による電子署名を行なうユーザを識別する識別情報である。証明書発行カウンタは、証明書発行部２３によって証明書が生成された回数を示す情報である。証明書発行カウンタは、例えば初期値として０が記憶され、後述する証明書発行部２３によって対応する検証鍵に基づく証明書が生成されると、証明書発行部２３によって１ずつインクリメントされ、更新されて記憶される。署名鍵の有効期間は、対応する署名鍵を利用することが可能である期間を示す情報である。署名鍵の有効期間には、例えば署名鍵の有効期間の始期を示す日時と、署名鍵の有効期間の終期を示す日時との情報が含まれる。失効フラグは、有効期間内である署名鍵であっても、鍵漏洩等の理由により検証鍵が失効されている場合に、その検証鍵が失効していることを示す情報である。失効フラグは、例えば従来のＰＫＩベースの電子署名におけるＣＲＬに対応する情報である。すなわち、署名鍵の有効期間内には「有効」を示す失効フラグが対応付けられるが、署名鍵の有効期間内であっても、鍵の漏洩などにより失効した鍵に対応する検証鍵には「無効」を示す失効フラグが対応付けられる。
【００２１】
図１に戻り、カウンタ判定部２２は、署名端末１０から送信される証明書取得要求を受信すると、証明書取得要求に含まれる署名カウンタが示す値と、証明書発行カウンタ記憶部２１に記憶された証明書発行カウンタが示す値とが一致するか否かを判定する。
【００２２】
証明書発行部２３は、カウンタ判定部２２によって、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致すると判定されると、検証鍵が含まれる証明書を生成して署名端末１０に送信し、署名カウンタが示す値と、証明書発行カウンタが示す値とが一致しないと判定されると、証明書を生成しない。ここで、証明書発行部２３が証明書を生成する際には、上述の図２において符号（３）に示した証明書生成処理により、検証鍵ｖｋと、証明書発行カウンタＣｃ１と、ユーザＩＤとに基づいて、証明書ｃｅｒｔを生成する。
【００２３】
また、証明書発行部２３は、検証鍵に対応する署名鍵の有効期間と失効フラグとに基づいて、証明書を生成するか否かを判定する。ここでは、証明書発行部２３は、自身が有する計時機能により現在日時を示す情報を取得し、現在日時が署名鍵の有効期間内であるか否かを判定する。現在日時が署名鍵の有効期間内であれば証明書を生成すると判定し、現在日時が署名鍵の有効期間内でなければ証明書を生成しないと判定する。また、証明書発行部２３は、失効フラグが「有効」を示す情報であれば証明書を生成すると判定し、「無効」を示す情報であれば証明書を生成しないと判定する。また、証明書発行部２３は、証明書を生成すると判定し、上述の証明書生成処理により証明書を生成した場合には、証明書発行カウンタ記憶部２１に記憶された証明書発行カウンタをインクリメントする。
鍵記憶部２４には、署名端末１０から認証局装置２０に送信された検証鍵が記憶される。
【００２４】
検証端末３０は、検証情報入力部３１と、検証部３２とを備えている。
検証情報入力部３１は、ユーザＩＤと、平文Ｍと、電子署名σと、署名カウンタＣｓ１と、検証鍵ｖｋとが含まれる検証情報の入力を受け付ける。ここで、検証情報入力部３１は、例えばＩＣカードリーダなどの機能を備えており、ＩＣカードに記憶されている検証情報を読み込むことにより入力を受け付けるようにしても良い。
【００２５】
検証部３２は、検証情報入力部３１に入力された検証鍵に基づいて電子署名の検証を行なう。検証部３２は、署名カウンタＣｓ１と、ユーザＩＤと、平文Ｍと、電子署名σと、検証鍵ｖｋとに基づいて、上述の図２において符号（５）に示した検証処理を行い、検証結果を算出する。
【００２６】
次に、本実施形態による電子署名システム１の動作例を説明する。図４は、電子署名システム１によって電子署名が生成され、検証される動作例を示すシーケンス図である。
まず、署名端末１０は、上述の電子署名処理を動作させて、署名鍵ｓｋと検証鍵ｖｋとを生成する（ステップＳ１）。また、署名端末１０は、例えばユーザからの入力に応じて、予め定められたユーザＩＤ（例えば、「Ｕｓｅｒ１」）と、パスワードとを用いて認証局装置２０にログインし、ステップＳ１において生成した検証鍵ｖｋを認証局装置２０に送信する。認証局装置２０は、署名端末１０から送信された検証鍵を受信すると、受信した検証鍵を鍵記憶部２４に記憶させて登録する（ステップＳ２）。また、認証局装置２０の証明書発行カウンタ記憶部２１には、検証鍵に対応する初期値が記憶される。署名端末１０の証明書取得部１２は、署名カウンタ記憶部１１に記憶されている署名カウンタＣｓ１を読み出し、読み出した署名カウンタＣｓ１と、検証鍵ｖｋとが含まれる証明書取得要求を生成し、認証局装置２０に送信する（ステップＳ３）。
【００２７】
認証局装置２０が、署名端末１０から送信された証明書取得要求を受信すると、カウンタ判定部２２は、証明書発行カウンタ記憶部２１に、証明書取得要求に含まれる検証鍵ｖｋに対応付けられて記憶されている証明書発行カウンタＣｃ１を読み出し、証明書取得要求に含まれる署名カウンタＣｓ１と、読み出した証明書発行カウンタＣｃ１との値を比較する（ステップＳ４）。カウンタ判定部２２は、署名カウンタＣｓ１と証明書発行カウンタＣｃ１との値が一致しないと判定すると（ステップＳ４：ＮＯ）、証明書を発行せずにエラーとして処理を終了する。
【００２８】
一方、署名カウンタＣｓ１と証明書発行カウンタＣｃ１との値が一致すると判定すると（ステップＳ４：ＹＥＳ）、証明書発行部２３は、ユーザＩＤ（「Ｕｓｅｒ１」）に対応する署名鍵の有効期間Ｔ１を読み出す。証明書発行部２３は、自身が備える計時機能から取得する現在日時が、署名鍵の有効期間Ｔ１が示す期間内であるか否かを判定する（ステップＳ５）。証明書発行部２３は、現在日時が、署名鍵の有効期間Ｔ１によって示される期間内でないと判定すると（ステップＳ５：ＮＯ）、証明書を発行せずにエラーとして処理を終了する。一方、現在日時が、署名鍵の有効期間Ｔ１によって示される期間内であると判定すると（ステップＳ５：ＹＥＳ）、証明書発行カウンタ記憶部２１に記憶されている失効フラグを読み出す（ステップＳ６）。証明書発行部２３は、読み出した失効フラグが「無効」を示すと判定すると、（ステップＳ６：ＮＯ）、証明書を発行せずにエラーとして処理を終了する。一方、読み出した失効フラグが「有効」を示すと判定すると、（ステップＳ６：ＹＥＳ）、証明書生成処理によって証明書ｃｅｒｔを生成し、生成した証明書ｃｅｒｔを署名端末１０に送信する（ステップＳ７）。証明書発行部２３は、証明書を生成すると、証明書を生成した検証鍵に対応付けられて証明書発行カウンタ記憶部２１に記憶された証明書発行カウンタＣｃ１をインクリメントさせ、記憶させる（ステップＳ８）。
【００２９】
署名端末１０は、認証局装置２０から送信された証明書ｃｅｒｔを受信すると、電子署名生成処理によって電子署名σを生成し（ステップＳ９）、署名カウンタ記憶部１１に記憶された署名カウンタＣｓ１をインクリメントさせる（ステップＳ１０）。ここで、例えば、ユーザＩＤ、平文Ｍ、電子署名σ、署名カウンタＣｓ１、検証鍵ｖｋが含まれる検証情報が、ユーザが有するＩＣカードに記憶される。
そして、検証端末３０の検証情報入力部３１は、ユーザのＩＣカードに記憶されたユーザＩＤ、平文Ｍ、電子署名σ、署名カウンタＣｓ１、検証鍵ｖｋを読み出すことにより検証情報の入力を受け付ける（ステップＳ１１）。そして、検証部３２は、検証処理によって電子署名σを検証鍵ｖｋにより検証する（ステップＳ１２）。ここで、検証部３２が、電子署名σと検証鍵ｖｋとに基づいた検証に失敗すれば（ステップＳ１２：ＮＯ）、検証失敗として処理を終了する。一方、電子署名σと検証鍵ｖｋとに基づいた検証に成功すれば（ステップＳ１２：ＹＥＳ）、検証成功として検証結果を出力する（ステップＳ１３）。
【００３０】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。本実施形態における電子署名システム１は、第１の実施形態と同様であるので、図１を参照して特に第１の実施形態と異なる点について説明する。
本実施形態における署名端末１０の証明書取得部１２は、署名カウンタが示す第１の書名カウンタ値に基づいて第１の証明書を取得し、第１の証明書に基づいて電子署名部１３によって第１の電子署名が生成された後、第１の電子署名が生成されたことに応じて増加された署名カウンタが示す第２の署名カウンタ値に基づいて第２の証明書を取得する。
署名端末１０の電子署名部１３は、第１の証明書に基づく第１の電子署名（本署名）と、第２の証明書に基づく第２の電子署名（空署名）とを生成する。ここで、本書名とは、ユーザが本来署名を行ないたい平文に対して行なった電子署名である。これに対し、空署名とは、対応する本書名の有効性を確認する目的で用いられる電子署名である。ここで、空署名において署名を行なう対象である平文には、任意の情報を用いて良く、特に限定された情報を用いなくても良い。
【００３１】
検証端末３０の検証情報入力部３１は、第１の電子署名と、第２の電子署名と、第１の署名カウンタ値を示す署名カウンタと、第２の署名カウンタ値を示す署名カウンタと、検証鍵との入力を受け付ける。
検証端末３０の検証部３２は、第２の署名カウンタ値が、第１の署名カウンタ値以下である場合に検証を失敗させ、第２の署名カウンタ値が、第１の署名カウンタ値を超える場合に検証を成功させる。
【００３２】
これにより、例えば図５に示すように、認証局装置２０によって発行された証明書が、署名鍵の有効期間が途過した後に使用されることを防ぐことができる。例えば、署名端末１０に対する署名生成権限が与えられる署名鍵の有効期間である符号ｐ１と、署名生成権限がない期間である符号ｐ２との期間が存在する。このとき、符号ｐ１の期間内である時点ｔ１において、署名端末１０が認証局装置２０に対して証明書発行要求を送信し、第１の証明書を取得する。署名端末１０は、時点ｔ２において第１の電子署名を生成した後、時点ｔ３においてさらに認証局装置２０に証明書発行要求を送信し、第２の証明書を取得する。認証局装置２０は、時点ｔ４において第２の電子署名を生成する。検証時には、このように生成された第１の電子署名と第２の電子署名とのいずれもの検証が成功することを以て、時点ｔ２における電子署名が有効なものであると判断できる。すなわち、時点ｔ４において署名された電子署名（空署名）の検証が成功したということは、時点ｔ４における署名に利用した第２の証明書が、署名鍵の有効期間内（時点ｔ３）に発行されたことを示しており、従って、時点ｔ３以前の時点ｔ２において署名された電子署名（本署名）に用いられた第１の証明書は当然に有効であることが判断できる。一方、例えば時点ｔ１において取得された第１の証明書を用いて、期間ｐ１が途過した期間ｐ２内の時点ｔ５において第１の電子署名が生成された場合、時点ｔ６において署名端末１０が証明書取得要求を認証局装置２０に送信しても、第２の証明書を取得することができない。このようにして、署名鍵の有効期間が途過した後に証明書が使用されることを防ぐことができる。
【００３３】
次に、本実施形態による電子署名システム１の動作例を説明する。図６は、電子署名システム１によって電子署名が生成され、検証される動作例を示すシーケンス図である。
図において、ステップＳ２０からステップＳ２５までの処理は、第１の実施形態において説明したステップＳ１からステップＳ１０までの処理と同様である。ここで、図６においては、第１の実施形態におけるステップＳ４からステップＳ６までの判定処理、およびステップＳ８におけるＣｃ１のインクリメント処理を省略して示しているが、同様の処理を行う。
【００３４】
ここでは、ステップＳ２２における時点での署名カウンタＣｓ１の値（第１のカウンタ値）がステップＳ２５においてインクリメントされ、増加された値（第２のカウンタ値）を示す署名カウンタＣｓ１を、Ｃｓ１´と示す。署名端末１０の証明書取得部１２は、ステップＳ２５においてインクリメントされた署名カウンタＣｓ１´が含まれる証明書取得要求を、認証局装置２０に送信する（ステップＳ２６）。認証局装置２０は、署名カウンタＣｓ１´に基づく第２の証明書ｃｅｒｔ´を生成し、署名端末１０に送信する（ステップＳ２７）。署名端末１０は、第２の平文Ｍ´、署名鍵ｓｋ、第２の証明書ｃｅｒｔ´、署名カウンタＣｓ１´、ユーザＩＤに基づいて、第２の電子署名σ´を生成する（ステップＳ２８）。署名端末１０の電子署名部１３は、署名カウンタＣｓ１´をさらにインクリメントさせる（ステップＳ２９）。
【００３５】
検証端末３０の検証情報入力部３１は、第１の平文Ｍ、第１の電子署名σ、第１の署名カウンタＣｓ１、検証鍵ｖｋ、ユーザＩＤの入力を受け付ける（ステップＳ３０）。また、検証情報入力部３１は、第２の平文Ｍ´、第２の電子署名σ´、第２の署名カウンタＣｓ１´、検証鍵ｖｋ、ユーザＩＤの入力を受け付ける（ステップＳ３１）。そして、検証部３２は、第１の電子署名σに対して検証鍵ｖｋによる検証処理を行い、検証結果を算出する（ステップＳ３２）。検証結果が失敗を示す場合には（ステップＳ３２：ＮＯ）、処理を終了する。検証結果が成功を示す場合には（ステップＳ３２：ＹＥＳ）、第２の電子署名σ´に対して検証鍵ｖｋによる検証処理を行い、検証結果を算出する（ステップＳ３３）。検証結果が失敗を示す場合には（ステップＳ３３：ＮＯ）、処理を終了する。検証結果が成功を示す場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３０において入力された署名カウンタＣｓ１と、ステップＳ３１において入力された署名カウンタＣｓ１´とが示す値を比較する（ステップＳ３４）。検証部３２は、署名カウンタＣｓ１´が示す値が、署名カウンタＣｓ１が示す値以下である場合（ステップＳ３４：ＮＯ）、検証失敗として処理を終了する。署名カウンタＣｓ１´が、署名カウンタＣｓ１が示す値を超える場合（ステップＳ３４：ＹＥＳ）、検証成功を示す検証結果を出力する（ステップＳ３５）。
【００３６】
以上説明したように、本実施形態によれば、検証端末３０がネットワークに接続することなく、電子署名の検証を行なうことが可能となる。すなわち、認証局装置２０が証明書を発行する際に、認証局装置２０が、その時点で署名端末１０の鍵が有効であるか否かを判定して有効である場合に証明書を発行し、署名端末１０は発行された証明書に基づいて電子署名を生成するようにしたので、検証端末３０における検証時には、電子署名が作成されていることを以て鍵の有効性を推定することができる。これにより、検証端末３０は、ネットワークを介して認証局装置２０に接続し、ＣＲＬを参照する等により電子署名の鍵自体の有効性を確認する必要がなくなり、オフラインで電子署名の検証を行なうことが可能となる。
【００３７】
また、これにより、従来は鍵自体の有効性の確認の処理負荷を検証端末３０が負担していたが、この処理負荷を署名端末１０側に移行させることができる。すなわち、例えば署名端末１０によって生成された電子署名は、複数の検証端末３０によって検証される場合がある。このような場合に、従来であれば複数の検証端末３０のそれぞれが鍵の有効性を確認するための処理負荷を負担していたが、本実施形態によれば、署名端末１０による電子署名作成に先立って認証局装置２０が鍵の有効性の確認を行なえば足りる。
【００３８】
また、本発明の第１の実施形態によれば、署名端末１０の署名カウンタと認証局装置２０の証明書発行カウンタとの値が一致した場合にのみ証明書を発行することとしたので、発行された証明書は実質的に１回限りの利用が可能なものである。そのため、従来のＰＫＩにおいて単に鍵の有効期限を廃した場合と異なり、同一の署名鍵により無限に電子署名が生成されることがない。
【００３９】
また、本発明の第２の実施形態によれば、第１の電子署名（本書名）の際に用いた署名カウンタの値Ｃｓ１と、第２の電子署名（空署名）の際に用いた署名カウンタの値Ｃｓ１´とが、Ｃｓ１＜Ｃｓ１´である場合にのみ検証が成功することとしたので、署名鍵の有効期限が途過した後に、有効期限が過ぎた証明書を用いた電子署名の検証が成功することを防ぐことができる。これにより、従来のＰＫＩと同等のセキュリティレベルを確保したまま、オフラインでの署名検証を実現することができる。
【００４０】
なお、本実施形態では、署名カウンタの値と証明書発行カウンタとの値は、それぞれ１ずつ増加するようにしたが、例えばひとつの証明書によって定められた回数の電子署名の生成を許可する場合には、証明書が発行された際の証明書発行カウンタの増加値を、その定められた回数分増加させるようにしても良い。
また、本実施形態における署名端末１０の署名カウンタ記憶部１１と電子署名部１３との機能は、耐タンパ性のあるＩＣカードなどに記憶させ、動作させるようにしても良い。
【００４１】
なお、従来のＰＫＩベースの電子署名において、証明書の有効期間をＣＲＬの更新頻度と同程度（例えば、数日）に短くすることにより、検証端末３０が検証時にネットワークを介して認証局装置２０に接続する必要をなくすことも考えられる。しかしこの場合には、検証端末３０は、電子署名が生成されてから数日間の間にしか検証を行うことができなくなるため、現実的な利用は困難である。
【００４２】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより電子署名を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４３】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００４４】
１  電子署名システム
１０  署名端末
１１  署名カウンタ記憶部
１２  証明書取得部
１３  電子署名部
２０  認証局装置
２１  証明書発行カウンタ記憶部
２２  カウンタ判定部
２３  証明書発行部
２４  鍵記憶部
３０  検証端末
３１  検証情報入力部
３２  検証部
【図１】
2011097424.tif 000003
【図２】
2011097424.tif 000004
【図３】
2011097424.tif 000005
【図４】
2011097424.tif 000006
【図５】
2011097424.tif 000007
【図６】
2011097424.tif 000008
【図７】
2011097424.tif 000009