(57)【要約】【課題】コストを低減し、セキュリティを確保して、署名検証の精度の低下を抑制できる署名検証装置を提供する。【解決手段】署名検証装置は、第２の公開鍵を含む第２のサーバ証明書と、第１の公開鍵と鍵ペアである秘密鍵を用いて第２のサーバ証明書から導出されたハッシュ値が暗号化されて生成された署名データと、を受信する通信部と、記憶部に記憶された第１の公開鍵を用いて署名データを復号し、第１のハッシュ値を取得する署名処理部と、第２のサーバ証明書から第２のハッシュ値を導出する一方向性関数導出部と、第１のハッシュ値と第２のハッシュ値とが一致した場合、署名データを生成した署名生成装置が正当であると判定する署名検証部と、を備える。【選択図】図５
2016116134.tif 000002
【特許請求の範囲】
【請求項１】
第１の公開鍵を含む第１のサーバ証明書を記憶する記憶部と、
第２の公開鍵を含む第２のサーバ証明書と、前記第１の公開鍵と鍵ペアである秘密鍵を用いて前記第２のサーバ証明書から導出されたハッシュ値が暗号化されて生成された署名データと、を受信する通信部と、
前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得する署名処理部と、
前記第２のサーバ証明書から第２のハッシュ値を導出する一方向性関数導出部と、
前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名データを生成した署名生成装置が正当であると判定する署名検証部と、
を備える署名検証装置。
【請求項２】
請求項１に記載の署名検証装置であって、更に、
前記通信部は、前記署名検証部により前記署名生成装置が正当であると判定された場合、前記第２の公開鍵を用いて、前記署名生成装置との間で暗号通信する、署名検証装置。
【請求項３】
請求項１または２に記載の署名検証装置であって、
前記記憶部は、前記署名検証部により前記署名生成装置が正当であると判定された場合、前記第２のサーバ証明書を記憶する、署名検証装置。
【請求項４】
第１の公開鍵及び第１の秘密鍵の鍵ペアと、第２の公開鍵及び第２の秘密鍵の鍵ペアを生成する鍵生成部と、
前記第１の公開鍵を含む第１のサーバ証明書を生成し、前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成する証明書生成部と、
前記第２のサーバ証明書からハッシュ値を導出する一方向性関数導出部と、
前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成する署名生成部と、
を備える署名生成装置。
【請求項５】
請求項４に記載の署名生成装置であって、更に、
前記第２のサーバ証明書と前記署名データとを送信する通信部を備える、署名生成装置。
【請求項６】
請求項５に記載の署名生成装置であって、更に、
前記通信部は、前記署名データを検証する署名検証装置から要求信号を受信し、前記要求信号に応じて、前記第２のサーバ証明書と前記署名データとを前記署名検証装置へ送信する、署名生成装置。
【請求項７】
署名生成装置と署名検証装置とがネットワークを介して接続された署名処理システムであって、
前記署名生成装置は、
第１の公開鍵及び第１の秘密鍵の鍵ペアと、第２の公開鍵及び第２の秘密鍵の鍵ペアを生成する鍵生成部と、
前記第１の公開鍵を含む第１のサーバ証明書を生成し、前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成する証明書生成部と、
前記第２のサーバ証明書からハッシュ値を導出する一方向性関数導出部と、
前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成する署名生成部と、
前記第２のサーバ証明書と前記署名データとを送信する第１の通信部と、
を備え、
前記署名検証装置は、
前記第１の公開鍵を含む前記第１のサーバ証明書を記憶する記憶部と、
前記第２のサーバ証明書及び前記署名データを受信する第２の通信部と、
前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得する署名処理部と、
前記第２のサーバ証明書から第２のハッシュ値を導出する一方向性関数導出部と、
前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名生成装置が正当であると判定する署名検証部と、
を備える署名処理システム。
【請求項８】
第１の公開鍵を含む第１のサーバ証明書を記憶する記憶部を備える署名検証装置における署名検証方法であって、
第２の公開鍵を含む第２のサーバ証明書と、前記第１の公開鍵と鍵ペアである秘密鍵を用いて前記第２のサーバ証明書から導出されたハッシュ値が暗号化されて生成された署名データと、を受信するステップと、
前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得するステップと、
前記第２のサーバ証明書から第２のハッシュ値を導出するステップと、
前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名データを生成した署名生成装置が正当であると判定するステップと、
を備える署名検証方法。
【請求項９】
署名生成装置における署名生成方法であって、
第１の公開鍵及び第１の秘密鍵の鍵ペアを生成するステップと、
前記第１の公開鍵を含む第１のサーバ証明書を生成するステップと、
第２の公開鍵及び第２の秘密鍵の鍵ペアを生成するステップと、
前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成するステップと、
前記第２のサーバ証明書からハッシュ値を導出するステップと、
前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成するステップと、
を備える署名生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法に関する。
【背景技術】
【０００２】
従来、サーバ装置が端末にサーバ証明書（公開鍵を含む）を送信する場合、サーバ証明書が正規のものであることを保証するために、認証局（ＣＡ（Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）局）が発行したデジタル署名（署名データ）をサーバ証明書に添付することが行われる。
【０００３】
端末は、認証局の署名データが添付されているサーバ証明書を受信すると、認証局の公開鍵で署名データを復号し、そのハッシュ値Ｈを計算する。
【０００４】
端末は、サーバ証明書のハッシュ値Ｈ´を計算し、ハッシュ値Ｈとハッシュ値Ｈ´を比較して一致している場合、サーバ証明書が不正なものでないと判断し、サーバ証明書に含まれる公開鍵を取得する。以後、サーバ装置と端末は公開鍵暗号方式で暗号通信が可能となる。
【０００５】
この種の先行技術として、非特許文献１には、デジタル署名に関する技術が記述されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】金子俊夫（編集者）、「最新の暗号技術によるセキュリティの実現」、ＯＰＥＮＤＥＳＩＧＮ、ＮＯ．１４、ＣＱ出版、１９９６年６月、ｐ１０４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に記載されたデジタル署名では、デジタル署名を取得するためのコストを要し、セキュリティが不十分となり、署名検証の精度が低下することがあった。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、コストを低減し、セキュリティを確保して、署名検証の精度の低下を抑制できる署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法を提供する。
【課題を解決するための手段】
【０００９】
本発明の署名検証装置は、第１の公開鍵を含む第１のサーバ証明書を記憶する記憶部と、第２の公開鍵を含む第２のサーバ証明書と、前記第１の公開鍵と鍵ペアである秘密鍵を用いて前記第２のサーバ証明書から導出されたハッシュ値が暗号化されて生成された署名データと、を受信する通信部と、前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得する署名処理部と、前記第２のサーバ証明書から第２のハッシュ値を導出する一方向性関数導出部と、前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名データを生成した署名生成装置が正当であると判定する署名検証部と、を備える。
【００１０】
本発明の署名生成装置は、第１の公開鍵及び第１の秘密鍵の鍵ペアと、第２の公開鍵及び第２の秘密鍵の鍵ペアを生成する鍵生成部と、前記第１の公開鍵を含む第１のサーバ証明書を生成し、前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成する証明書生成部と、前記第２のサーバ証明書からハッシュ値を導出する一方向性関数導出部と、前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成する署名生成部と、を備える。
【００１１】
本発明の署名処理システムは、署名生成装置と署名検証装置とがネットワークを介して接続された署名処理システムであって、前記署名生成装置は、第１の公開鍵及び第１の秘密鍵の鍵ペアと、第２の公開鍵及び第２の秘密鍵の鍵ペアを生成する鍵生成部と、前記第１の公開鍵を含む第１のサーバ証明書を生成し、前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成する証明書生成部と、前記第２のサーバ証明書からハッシュ値を導出する一方向性関数導出部と、前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成する署名生成部と、前記第２のサーバ証明書と前記署名データとを送信する第１の通信部と、を備え、前記署名検証装置は、前記第１の公開鍵を含む前記第１のサーバ証明書を記憶する記憶部と、前記第２のサーバ証明書及び前記署名データを受信する第２の通信部と、前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得する署名処理部と、前記第２のサーバ証明書から第２のハッシュ値を導出する一方向性関数導出部と、前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名生成装置が正当であると判定する署名検証部と、を備える。
【００１２】
本発明の署名検証方法は、第１の公開鍵を含む第１のサーバ証明書を記憶する記憶部を備える署名検証装置における署名検証方法であって、第２の公開鍵を含む第２のサーバ証明書と、前記第１の公開鍵と鍵ペアである秘密鍵を用いて前記第２のサーバ証明書から導出されたハッシュ値が暗号化されて生成された署名データと、を受信するステップと、前記第１の公開鍵を用いて前記署名データを復号し、第１のハッシュ値を取得するステップと、前記第２のサーバ証明書から第２のハッシュ値を導出するステップと、前記第１のハッシュ値と前記第２のハッシュ値とが一致した場合、前記署名データを生成した署名生成装置が正当であると判定するステップと、を備える。
【００１３】
本発明の署名生成方法は、署名生成装置が署名データを生成する署名生成方法であって、第１の公開鍵及び第１の秘密鍵の鍵ペアを生成するステップと、前記第１の公開鍵を含む第１のサーバ証明書を生成するステップと、第２の公開鍵及び第２の秘密鍵の鍵ペアを生成するステップと、前記第１のサーバ証明書を更新して前記第２の公開鍵を含む第２のサーバ証明書を生成するステップと、前記第２のサーバ証明書からハッシュ値を導出するステップと、前記第１の秘密鍵を用いて前記ハッシュ値を暗号化し、署名データを生成するステップと、を備える。
【発明の効果】
【００１４】
本発明によれば、デジタル署名を取得するためのコストを低減し、セキュリティを確保して、署名検証の精度の低下を抑制できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態における署名処理システムの構成例を示すブロック図
【図２】実施形態におけるサーバ装置の構成例を示すブロック図
【図３】実施形態における端末の構成例を示すブロック図
【図４】実施形態におけるサーバ装置によるサーバ証明書及び署名データの更新を説明するための模式図
【図５】実施形態における署名処理システムによるサーバ証明書の更新動作の一例を示すタイミングチャート
【図６】（Ａ）実施形態におけるサーバ装置によるサーバ証明書及び署名データの生成動作手順の一例を示すフローチャート、（Ｂ）実施形態におけるサーバ装置による通信動作手順の一例を示すフローチャート
【図７】実施形態における端末による署名検証動作手順の一例を示すフローチャート
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を用いて説明する。
【００１７】
（本発明の一形態を得るに至った経緯）
【００１８】
非特許文献１に記載されたデジタル署名では、サーバ装置が端末にサーバ証明書（公開鍵を含む）を送信する際、第三者である認証局が介在しなければならなかった。このため、認証局によるデジタル署名に対する費用が発生する。
【００１９】
また、認証局は、サーバ証明書を申請する申請者としてのサーバ装置が、正当なサーバ装置であることを前提として、申請者の正当性の調査が不十分な状態で、認証局による署名データが付されたサーバ証明書を発行していた。この場合、端末は、不正な申請者としてのサーバ装置から、公開鍵を含むサーバ証明書を取得する可能性がある。つまり、不正なサーバ装置が正当なサーバ装置であるとして成りすましでき、この場合には端末の通信に係るセキュリティが低下する。
【００２０】
また、セキュリティの観点からサーバ証明書が定期的に更新された場合、端末が保持するサーバ証明書とサーバ装置が保持するサーバ証明書とのバージョンがずれ、つまりサーバ証明書について同期ずれすることがある。この場合、仮に正当なサーバ装置がサーバ証明書を発行した場合でも、端末は、サーバ証明書を用いた署名検証によりサーバ装置が不当であると誤認識することになる。つまり、署名検証の精度が低下する。
【００２１】
以下、コストを低減し、セキュリティを確保して、署名検証の精度の低下を抑制できる署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法について説明する。
【００２２】
（実施形態）
図１は実施形態における署名処理システム１０の構成例を示すブロック図である。署名処理システム１０は、サーバ装置２０及び端末３０がネットワーク等に接続され、通信可能に接続された構成を有する。サーバ装置２０と端末３０とは、公開鍵暗号方式で暗号通信する。ここでは、サーバ装置２０に１台の端末３０が接続される場合を例示するが、複数台の端末３０が接続される場合も同様である。
【００２３】
図２はサーバ装置２０の構成例を示すブロック図である。サーバ装置２０は、通信部２１、ハッシュ計算部２２、サーバ証明書生成部２３、署名処理部２４、鍵生成部２５、署名データ記憶部２６、秘密鍵記憶部２７及びサーバ証明書記憶部２８を有する。
【００２４】
サーバ装置２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）又はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を有する。サーバ装置２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）又はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を有する。例えば、ＣＰＵ又はＤＳＰがＲＯＭ又はＲＡＭに保持されたプログラムを実行することで、ハッシュ計算部２２、サーバ証明書生成部２３、署名処理部２４、及び鍵生成部２５の各部の機能を実現する。
【００２５】
鍵生成部２５は、公開鍵暗号方式で用いられる公開鍵と秘密鍵からなる鍵ペアを、例えば定期的に生成する。これにより、鍵ペアが更新されない場合と比較すると、セキュリティを向上できる。なお、鍵ペアはサーバ装置２０の外で生成し、サーバ装置２０に登録するものとしても良い。
【００２６】
秘密鍵記憶部２７は、鍵生成部２５により生成された秘密鍵を記憶する。秘密鍵が更新された場合、サーバ証明書の一連の更新作業が終了するまで使用されていた秘密鍵は破棄するのがセキュリティ上好ましい。
【００２７】
サーバ証明書生成部２３は、鍵生成部２５により生成された公開鍵を用いて、サーバ証明書を例えば定期的に生成する。サーバ証明書には、例えば公開鍵及び付加情報（会社名等）が含まれる。これにより、サーバ証明書が更新されない場合と比較すると、セキュリティを向上できる。尚、サーバ証明書には、上記付加情報が含まれなくてもよい。つまり、サーバ証明書と公開鍵とが同じでもよい。またサーバ証明書も鍵ペアと同様、サーバ装置２０の外で生成し、サーバ装置２０に登録するものとしても良い。
【００２８】
サーバ証明書記憶部２８は、サーバ証明書生成部２３により生成されたサーバ証明書を記憶する。サーバ証明書が更新された場合、当該更新まで使用されていたサーバ証明書は破棄されてもよいし、サーバ証明書記憶部２８に引き続き保持されてもよい。
【００２９】
例えば、サーバ証明書は、時系列にサーバ証明書Ａ、Ｂ、Ｃの順に生成される（図４参照）。つまり、サーバ証明書Ａが最も古く、サーバ証明書Ｃが最新である。尚、公開鍵、秘密鍵、署名データ、ハッシュ値についても、サーバ証明と同様に、時系列で対応する符号が付される。
【００３０】
ハッシュ計算部２２は、一方向性関数の１つであるハッシュ関数を用いて、サーバ証明書記憶部２８に記憶されたサーバ証明書のハッシュ値を計算する。一方向性関数として、例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）１、ＳＨＡ２５６、ＳＨＡ５１２、ＰＲＦ（Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ  Ｆｕｎｃｔｉｏｎ）関数が用いられる。一方向性関数は、端末３０と同じ関数であれば、特に限定されない。
【００３１】
署名処理部２４は、ハッシュ計算部２２により計算されたハッシュ値を、秘密鍵記憶部２７に記憶された秘密鍵で暗号化し、署名データを生成する。例えば、署名処理部２４は、サーバ証明書Ｂのハッシュ値ＨＢを、前回（一世代前）の秘密鍵ＫＳＡで暗号化し、署名データＳＡを生成する（図４参照）。
【００３２】
署名データ記憶部２６は、書き込み可能な記憶媒体であり、署名処理部２４により生成された署名データを記憶する。
【００３３】
通信部２１は、各種データを通信する。通信部２１は、例えば、サーバ証明書記憶部２８に記憶されたサーバ証明書、及び署名データ記憶部２６に記憶された署名データを端末３０に送信する。例えば、サーバ証明書Ｂと署名データＳＡとは、１セットで送信されても良いし（図５参照）、別々に送信されても良い。また、署名データＳＡをサーバ証明書Ｂに組み入れても良い。
【００３４】
また、通信部２１は、例えば、端末３０との間で、公開鍵暗号方式に従って暗号通信（例えばＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）通信）を行う。通信部２１は、例えば、ネットワークを介して端末３０との間で通信する。ネットワークは、例えば、インターネット、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮを含む。通信部２１は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の近距離無線通信を用いて、端末３０と通信してもよい。
【００３５】
図３は、端末３０の構成例を示すブロック図である。端末３０は、通信部３１、受信データ記憶部３２、ハッシュ計算部３３、判定部３４、暗号復号処理部３５及び証明書記憶部３６を有する。
【００３６】
端末３０は、例えば、ＣＰＵ又はＤＳＰ、ＲＯＭ又はＲＡＭを有する。例えば、ＣＰＵ又はＤＳＰがＲＯＭ又はＲＡＭに保持されたプログラムを実行することで、ハッシュ計算部３３、判定部３４、及び暗号復号処理部３５の各部の機能を実現する。
【００３７】
通信部３１は、各種データを通信する。通信部３１は、例えば、サーバ装置２０から送信されるサーバ証明書及び署名データを受信する。例えば、サーバ証明書Ｂと署名データＳＡとは、１セットで受信される（図５参照）。
【００３８】
通信部３１は、例えば、サーバ装置２０との間で、公開鍵暗号方式に従って暗号通信（例えばＳＳＬ通信）を行う。通信部３１は、例えば、ネットワークを介してサーバ装置２０との間で通信する。ネットワークは、例えば、インターネット、有線ＬＡＮ、無線ＬＡＮを含む。通信部３１は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の近距離無線通信を用いて、サーバ装置２０と通信してもよい。
【００３９】
受信データ記憶部３２は、書き込み可能な記憶媒体であり、通信部３１により受信されたサーバ証明書及び署名データを記憶する。
【００４０】
ハッシュ計算部３３は、一方向性関数の１つであるハッシュ関数を用いて、受信データ記憶部３２に記憶されたサーバ証明書のハッシュ値を計算する。一方向性関数として、例えば、ＭＤ５、ＳＨＡ１、ＳＨＡ２５６、ＳＨＡ５１２、ＰＲＦ関数が用いられる。一方向性関数は、サーバ装置２０と同じ関数であれば、特に限定されない。
【００４１】
暗号復号処理部３５は、受信データ記憶部３２に記憶された署名データを、証明書記憶部３６に記憶されたサーバ証明書に含まれる公開鍵で復号し、サーバ証明書のハッシュ値を得る。例えば、暗号復号処理部３５は、署名データＳＡを、一世代前（前回）のサーバ証明書Ａに含まれる公開鍵ＫＰＡで復号し、サーバ証明書Ｂのハッシュ値ＨＢを得る（図４参照）。
【００４２】
暗号復号処理部３５は、サーバ装置２０との間での最新の公開鍵を用いた暗号通信時、サーバ装置２０から受信したデータを、最新の公開鍵を用いて復号する。また、暗号復号処理部３５は、サーバ装置２０との間での最新の公開鍵を用いた暗号通信時、サーバ装置２０へ送信するデータを、最新の公開鍵を用いて暗号化する。
【００４３】
判定部３４は、暗号復号処理部３５により得られたサーバ証明書のハッシュ値と、ハッシュ計算部３３により計算されたハッシュ値とを比較し、これらのハッシュ値が一致するか否かを判定する。端末３０は、双方のハッシュ値が一致する場合、署名データが正当であると判定できるので、正当なサーバ装置２０から更新後のサーバ証明書を取得したと認識できる。
【００４４】
暗号復号処理部３５は、判定部３４による判定の結果、双方のハッシュ値が一致している場合、受信データ記憶部３２に記憶された公開鍵を含むサーバ証明書を、証明書記憶部３６に記憶させる。証明書記憶部３６に既にサーバ証明書が記憶されている場合、暗号復号処理部３５は、受信データ記憶部３２に記憶された公開鍵を含むサーバ証明書で、サーバ証明書を更新する。尚、暗号復号処理部３５は、証明書記憶部３６に、サーバ証明書を記憶させずに、公開鍵を記憶させ又は更新してもよい。
【００４５】
証明書記憶部３６は、書き込み可能な記憶媒体である。例えば、端末３０の製造時に、初期の公開鍵を含むサーバ証明書（ここでは、サーバ証明書Ａ）が証明書記憶部３６に記憶される。
【００４６】
なお、判定部３４による判定の結果、不一致である場合、暗号復号処理部３５は、特に処理を行わない、又は、サーバ装置２０との間に確立された通信セッションを切断してもよい。
【００４７】
次に、署名処理システム１０の動作例について説明する。
【００４８】
図４はサーバ証明書及び署名データの更新の一例を説明するための模式図である。図中矢印ａに示すように、上方に向かう程、日時は最近となる。
【００４９】
端末３０の製造当初、サーバ装置２０では、鍵生成部２５は、初期の公開鍵ＫＰＡ及び秘密鍵ＫＳＡからなる鍵ペアを生成し、サーバ証明書生成部２３は、公開鍵ＫＰＡを含むサーバ証明書Ａを作成する。秘密鍵ＫＳＡは、秘密鍵記憶部２７に記憶される。初期の公開鍵ＫＰＡを含むサーバ証明書Ａは、サーバ装置２０から端末３０へ送られ、端末３０の証明書記憶部３６に書き込まれる。なお、サーバ証明書Ａを、サーバ装置２０から端末３０に送る方法は、ネットワーク転送に限られることに限られず、例えば、外部の記憶媒体を介して送られてもよい。
【００５０】
その後、サーバ装置２０では、鍵生成部２５は、新しい公開鍵ＫＰＢ及び秘密鍵ＫＳＢからなる鍵ペアを生成し、サーバ証明書生成部２３は、公開鍵ＫＰＢを含むサーバ証明書Ｂを作成する。秘密鍵記憶部２７には、新たな秘密鍵ＫＳＢが記憶される。ハッシュ計算部２２は、サーバ証明書Ｂのハッシュ値ＨＢを計算する。署名処理部２４は、ハッシュ値ＨＢを、一世代前（前回）の秘密鍵ＫＳＡで暗号化することで、署名データＳＡを生成する。署名処理部２４は、署名データＳＡの作成後、それまで使用されていた秘密鍵ＫＳＡを破棄して良い。
【００５１】
このように、サーバ証明書の公開鍵と鍵ペアである秘密鍵と、署名データの生成に用いられる秘密鍵とは、一世代異なる。例えば、署名データＳＡとサーバ証明書Ｂが１セットとして、サーバ装置２０から端末３０に送信される。なお、説明を簡便にするため、ここではサーバ証明書の公開鍵と鍵ペアである秘密鍵と、署名データの生成に用いられる秘密鍵とは、一世代異なるものしているが、二世代以上異なるとすることも可能である。
【００５２】
更にその後、サーバ装置２０では、鍵生成部２５は、新たな公開鍵ＫＰＣ及び秘密鍵ＫＳＣからなる鍵ペアを生成し、サーバ証明書生成部２３は、公開鍵ＫＰＣを含むサーバ証明書Ｃを作成する。秘密鍵記憶部２７には、秘密鍵ＫＳＣが記憶される。ハッシュ計算部２２は、サーバ証明書Ｃのハッシュ値ＨＣを計算する。署名処理部２４は、ハッシュ値ＨＣを秘密鍵ＫＳＢで暗号化することで、署名データＳＢを生成する。署名処理部２４は、署名データＳＢの作成後、それまで使用されていた秘密鍵ＫＳＢを捨てて良い。例えば、署名データＳＢとサーバ証明書Ｃが１セットとして、サーバ装置２０から端末３０に送信される。
【００５３】
尚、ハッシュ値は、公開鍵に付加情報が付加されたサーバ証明書から導出されてもよいし、公開鍵に付加情報が付加されていないサーバ証明書から導出されてもよい。
【００５４】
図５はサーバ証明書の更新動作例を示すタイミングチャートである。図５では、サーバ装置２０が鍵ペア及びサーバ証明書を２世代分更新した後、端末３０が同様に２世代分更新することを例示する。
【００５５】
サーバ装置２０では、鍵生成部２５は、秘密鍵ＫＳＢ及び公開鍵ＫＰＢからなる鍵ペアを生成し、サーバ証明書生成部２３は、公開鍵ＫＰＢを含むサーバ証明書Ｂを生成する。鍵生成部２５は、秘密鍵記憶部２７に記憶された公開鍵ＫＰＡを公開鍵ＫＰＢで更新し、サーバ証明書生成部２３は、サーバ証明書記憶部２８に記憶されたサーバ証明書Ａをサーバ証明書Ｂで更新する（Ｔ０）。
【００５６】
ハッシュ計算部２２は、サーバ証明書Ｂのハッシュ値ＨＢを計算する。署名処理部２４は、ハッシュ値ＨＢを、一世代前（前回）の秘密鍵ＫＳＡで暗号化することで、署名データＳＡを生成する。
【００５７】
同様に、鍵生成部２５は、秘密鍵ＫＳＣ及び公開鍵ＫＰＣからなる鍵ペアを生成し、サーバ証明書生成部２３は、公開鍵ＫＰＣを含むサーバ証明書Ｃを生成する。鍵生成部２５は、秘密鍵記憶部２７に記憶された公開鍵ＫＰＢを公開鍵ＫＰＣで更新し、サーバ証明書生成部２３は、サーバ証明書記憶部２８に記憶されたサーバ証明書Ｂをサーバ証明書Ｃで更新する（Ｔ０）。
【００５８】
ハッシュ計算部２２は、サーバ証明書Ｃのハッシュ値ＨＣを計算する。署名処理部２４は、ハッシュ値ＨＣを、一世代前（前回）の秘密鍵ＫＳＢで暗号化することで、署名データＳＢを生成する。
【００５９】
通信部２１は、端末３０に対し、サーバ証明書Ｃ及び署名データＳＢ（１セット）と、サーバ証明書Ｂ及び署名データＳＡ（１セット）とを送信する（Ｔ１）。
【００６０】
なお、説明を簡便にするため、ここでは通信部２１は、端末３０に対して、サーバ証明書Ｃ及び署名データＳＢ（１セット）と、サーバ証明書Ｂ及び署名データＳＡ（１セット）とを１度で送信するとしているが、端末３０の指示に従って送ってもよい。
【００６１】
実際の利用においては、例えば、端末３０がサーバ装置２０から受信したサーバ証明書を記憶していない場合に、端末３０がサーバ証明書をサーバ装置２０へ要求すると、転送効率が向上する。その際、端末３０は、サーバ装置２０に対して、現在記憶しているサーバ証明書を提示することが好ましい。サーバ装置２０は、端末３０が記憶しているサーバ証明書とサーバ装置２０が記憶している最新のサーバ証明書との世代の違いを認識し、その世代分のサーバ証明書及び署名データを送信することが好ましい。
【００６２】
端末３０では、通信部３１は、サーバ装置２０から、サーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡとを受信し、受信データ記憶部３２に記憶する（Ｔ２）。
【００６３】
暗号復号処理部３５は、例えば製造時に証明書記憶部３６に記憶されたサーバ証明書Ａに含まれる公開鍵ＫＰＡを用いて、署名データＳＡを復号し、サーバ証明書Ｂのハッシュ値ＨＢを得る。ハッシュ計算部３３は、受信データ記憶部３２に記憶されたサーバ証明書Ｂのハッシュ値ＨＢ´を計算する。判定部３４は、ハッシュ値ＨＢとハッシュ値ＨＢ´とを比較する（Ｔ３）。
【００６４】
この比較の結果、ハッシュ値ＨＢとハッシュ値ＨＢ´とが一致していた場合、暗号復号処理部３５は、受信データ記憶部３２に記憶されたサーバ証明書Ｂに含まれる公開鍵ＫＰＢを用いて、署名データＳＢを復号し、サーバ証明書Ｃのハッシュ値ＨＣを得る。ハッシュ計算部３３は、受信データ記憶部３２に記憶されたサーバ証明書Ｃのハッシュ値ＨＣ´を計算する。判定部３４は、ハッシュ値ＨＣとハッシュ値ＨＣ´を比較する（Ｔ４）。
【００６５】
この比較の結果、ハッシュ値ＨＣとハッシュ値ＨＣ´とが一致していた場合、判定部３４は、サーバ装置２０が正当なサーバ装置であると判定する。そして、サーバ装置２０と端末３０とは、最新の公開鍵ＫＰＣを用いて、公開鍵暗号方式で暗号通信を行う（Ｔ５）。なお、端末３０は、このサーバ証明書Ｃ、若しくは公開鍵ＫＰＣを記憶し、次回の通信から、このサーバ証明書Ｃ又は公開鍵ＫＰＣを利用するのが好ましい。
【００６６】
一方、ハッシュ値ＨＢとハッシュ値ＨＢ´とが不一致である場合、又はハッシュ値ＨＣとハッシュ値ＨＣ´とが不一致である場合、判定部３４は、サーバ装置２０が不当なサーバ装置であると判定する。この場合、サーバ装置２０と端末３０とは、Ｔ５における暗号通信は行わない。
【００６７】
尚、ここでは、サーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡとの２セット分を、古い順に更新処理する場合を示したが、３セット分以上を古い順から更新処理する場合も、同様である。
【００６８】
また、サーバ証明書が１回だけ更新された場合も同様である。この場合、サーバ装置２０では、通信部２１が、サーバ証明書Ｂと署名データＳＡとを送信する。端末３０では、暗号復号処理部３５が、例えば製造時に書き込まれた公開鍵ＫＰＡで署名データＳＡを復号し、サーバ証明書Ｂのハッシュ値ＨＢを取得する。また、ハッシュ計算部３３は、受信されたサーバ証明書Ｂのハッシュ値ＨＢ´を計算する。ハッシュ値ＨＢとハッシュ値ＨＢ´とが一致している場合、判定部３４は、サーバ証明書Ｂに含まれる公開鍵ＫＰＢを最新の公開鍵と判定する。これにより、サーバ装置２０と端末３０との双方が、公開鍵ＫＰＢを最新の公開鍵であると認識できる。
【００６９】
署名処理システム１０の動作によれば、セキュリティの観点からサーバ証明書が定期的に更新された場合でも、サーバ装置２０が保持する最新のサーバ証明書と、端末３０が保持する最新のサーバ証明書とでバージョンのずれを解消できる。従って、署名処理システム１０は、セキュリティを確保しつつ、端末３０とサーバ装置２０との間で行われるサーバ証明書の署名検証の精度の低下を抑制できる。
【００７０】
また、サーバ装置２０と端末３０との間に、第三者である認証局が必須ではないので、署名処理システム１０は、認証局によるデジタル署名に対する費用が発生せず、経費を削減できる。また、署名処理システム１０は、端末３０が不正な公開鍵を取得することを抑制でき、端末３０の接続相手として、不正なサーバ装置がなりすましとなる可能性を低減できる。
【００７１】
また、サーバ装置２０が正当であると判定された際の、最新のサーバ証明書に含まれる公開鍵を用いて暗号通信が行われるので、署名処理システム１０は、通信時のセキュリティを確保できる。
【００７２】
図６（Ａ），（Ｂ）は、サーバ装置２０の動作例を示すフローチャートである。図６（Ａ）はサーバ装置２０によるサーバ証明書及び署名データの生成動作手順の一例を示すフローチャートである。
【００７３】
まず、鍵生成部２５は、所定時間の経過等のイベント（例えば定期的なイベント）によって、鍵生成のタイミングになるまで待つ（Ｓ１）。
【００７４】
鍵生成のタイミングになると、鍵生成部２５は、公開鍵及び秘密鍵からなる鍵ペアを生成する（Ｓ２）。サーバ証明書生成部２３は、この公開鍵を含むサーバ証明書を生成する（Ｓ２）。
【００７５】
秘密鍵記憶部２７は、鍵生成部２５によって生成された鍵ペアのうち、秘密鍵を記憶する（Ｓ３）。サーバ証明書記憶部２８は、生成されたサーバ証明書を記憶する（Ｓ３）。
【００７６】
サーバ装置２０の制御部（不図示）は、今回の鍵生成が最初（１回目）であるか否かを判別する（Ｓ４）。端末３０の製造時等、１回目である場合、サーバ装置２０はＳ１の処理に戻る。一方、今回の鍵生成が２回目以降である場合、サーバ装置２０はＳ５の処理に進む。ここでＳ１に処理が戻るのは、世代を異なるデータを用いて署名データを生成するためである。
【００７７】
ハッシュ計算部２２は、Ｓ２で生成されたサーバ証明書のハッシュ値を計算する（Ｓ５）。署名処理部２４は、一世代前（前回）の鍵生成で生成された、前回の秘密鍵を用いて、Ｓ５で計算されたハッシュ値を暗号化し、署名データを生成する（Ｓ６）。署名データ記憶部２６は、Ｓ６で生成された署名データを記憶する（Ｓ７）。この後、サーバ装置２０はＳ１の処理に戻る。
【００７８】
図６（Ｂ）は、サーバ装置２０による通信動作手順の一例を示すフローチャートである。通信部２１は、端末３０に対し、例えば前述したサーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡとを送信する（Ｓ１１）。
【００７９】
端末３０により署名データＳＢが検証され、検証結果が正常である場合（例えば上記のハッシュ値ＨＢ，ＨＢ´が一致）、通信部２１は、端末３０との間で、秘密鍵記憶部２７に記憶された秘密鍵ＫＳＣを用いて、公開鍵暗号方式で暗号通信を行う（Ｓ１２）。この後、サーバ装置２０は本動作を終了する。
【００８０】
サーバ装置２０の動作によれば、セキュリティの観点からサーバ証明書が定期的に更新された場合でも、サーバ装置２０が保持する最新のサーバ証明書と、端末３０が保持する最新のサーバ証明書とでバージョンのずれを解消できる。従って、サーバ装置２０は、セキュリティを確保しつつ、端末３０とサーバ装置２０との間で行われるサーバ証明書の署名検証の精度の低下を抑制できる。
【００８１】
また、サーバ装置２０と端末３０との間に、第三者である認証局が必須ではないので、サーバ装置２０は、認証局によるデジタル署名に対する費用が発生せず、経費を削減できる。また、サーバ装置２０は、端末３０が不正な公開鍵を取得することを抑制でき、端末３０の接続相手として、不正なサーバ装置がなりすましとなる可能性を低減できる。
【００８２】
また、サーバ装置２０は、最新のサーバ証明書に含まれる公開鍵を用いて端末３０との間で暗号通信できるので、通信時のセキュリティを確保できる。
【００８３】
尚、サーバ装置２０は、鍵の更新を行う場合、端末３０に対し、最初にサーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡと、を送らず、まず、通常の公開鍵暗号方式で暗号通信を行ってもよい。
【００８４】
この場合、サーバ装置２０は、最新の証明書であるサーバ証明書Ｃを端末３０に送って公開鍵暗号方式で暗号通信を試みる。端末３０がサーバ証明書Ｃを認識できないと返信した場合、言い換えると端末３０が最新のサーバ証明書を要求するための要求信号を送信した場合、サーバ装置２０は、サーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡを送るようにしてもよい。つまり、端末３０からの要求信号を受信した場合に、サーバ装置２０が鍵更新に関する処理を行ってもよい。これにより、サーバ証明書Ｂ及び署名データＳＢ，ＳＡが不要の場合には通信処理の負荷を軽減でき、ネットワーク上のトラフィックを抑制できる。
【００８５】
また、サーバ装置２０は、端末３０からの要求信号を受信した場合に限らず、サーバ装置２０自身において通信要求が発生した場合に、サーバ装置２０が鍵更新に関する処理を行ってもよい。
【００８６】
また、端末３０は、サーバ証明書Ｃを認識不能である旨を返信する場合、端末３０が保持するサーバ証明書（例えばサーバ証明書Ｂ，Ａ）をサーバ装置２０に通知してもよい。これにより、例えば、既に、端末３０がサーバ証明書Ｂを保持しているにもかかわらず、サーバ装置２０がサーバ証明書Ｂを端末へ送るような不要な動作を可否できる。
【００８７】
図７は、端末３０による署名検証動作手順の一例を示すフローチャートである。図７では、図５と同様のケースを想定している。つまり、初期状態として、サーバ装置２０では、サーバ証明書Ｃ，Ｂ及び署名データＳＢ，ＳＡが保持され、端末３０では、公開鍵ＫＰＡを含むサーバ証明書Ａが保持されている。
【００８８】
まず、通信部３１は、サーバ装置２０からデータを受信するまで待つ（Ｓ２１）。通信部３１は、データを受信すると、受信されたデータである、サーバ証明書Ｃ及び署名データＳＢと、サーバ証明書Ｂ及び署名データＳＡと、を受信データ記憶部３２に記憶させる（Ｓ２２）。
【００８９】
暗号復号処理部３５は、証明書記憶部３６に記憶された公開鍵ＫＰＡで署名データＳＡを復号し、ハッシュ値ＨＢを取得する。ハッシュ計算部３３は、サーバ証明書Ｂのハッシュ値ＨＢ´を計算する（Ｓ２３）。
【００９０】
判定部３４は、ハッシュ値ＨＢとハッシュ値ＨＢ´とを比較し、これらが一致するか否かを判別する（Ｓ２４）。これらが一致した場合、暗号復号処理部３５は、サーバ証明書Ｂに含まれる公開鍵ＫＰＢで署名データＳＢを復号し、ハッシュ値ＨＣを取得する。ハッシュ計算部３３は、サーバ証明書Ｃのハッシュ値ＨＣ´を計算する（Ｓ２５）。
【００９１】
判定部３４は、ハッシュ値ＨＣとハッシュ値ＨＣ´とを比較し、これらが一致するか否かを判別する（Ｓ２６）。これらが一致した場合、通信部３１は、端末３０に対し、最新の公開鍵ＫＰＣを用いて、公開鍵暗号方式で暗号通信を行う（Ｓ２７）。この後、端末３０は本動作を終了する。
【００９２】
一方、Ｓ２４又はＳ２６において、判定部３４が不一致であると判別した場合、端末３０は、暗号通信を行わずに本動作を終了する。
【００９３】
端末３０の動作によれば、セキュリティの観点からサーバ証明書が定期的に更新された場合でも、サーバ装置２０が保持する最新のサーバ証明書と、端末３０が保持する最新のサーバ証明書とでバージョンのずれを解消できる。従って、端末３０は、セキュリティを確保しつつ、端末とサーバ装置との間で行われるサーバ証明書の署名検証の精度の低下を抑制できる。
【００９４】
また、サーバ装置２０と端末３０との間に、第三者である認証局が必須ではないので、認証局によるデジタル署名に対する費用が発生せず、経費が削減される。また、端末３０は、端末３０が不正な公開鍵を取得することを抑制でき、端末３０の接続相手として、不正なサーバ装置がなりすましとなる可能性を低減できる。
【００９５】
また、端末３０は、最新のサーバ証明書に含まれる公開鍵を用いてサーバ装置２０との間で暗号通信できるので、通信時のセキュリティを確保できる。
【００９６】
また、端末３０は、端末３０が組み込み機器であり、リモートメンテナンス機能を有する場合でも、リモートメンテナンスを指示する通信相手（サーバ装置、リーダー等）が正当な通信相手であるか否かを検証できる。従って、端末３０は、リモートメンテナンスに係るセキュリティを向上できる。
【００９７】
以上、図面を参照しながら実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００９８】
上記実施形態では、サーバ証明書のハッシュ値を暗号化して署名データを生成することを主に例示したが、サーバ証明書に含まれる公開鍵、若しくは公開鍵の一部データを含む何らかのデータ、のハッシュ値を暗号化して、署名データを生成してもよい。これにより、署名データを生成する際、付加情報の暗号化処理が省かれるので、暗号化処理の負荷を低減できる。また、通信時のデータ量が少なくなるので、ネットワーク上のトラフィックを低減できる。
【００９９】
上記実施形態では、サーバ装置２０は、最新の秘密鍵で暗号化されたデータを端末３０が認識できない場合、過去に生成したサーバ証明書（製造時のサーバ証明書を除く）及び署名データを端末に送信することを主に例示した。この代わりに、サーバ装置２０は、端末３０が保持する最新のサーバ証明書のバージョンの情報を受信して、そのバージョン以降のサーバ証明書及び署名データを送信してもよい。これにより、通信時のデータ量が少なくなるので、処理負荷を軽減でき、ネットワーク上のトラフィックを低減できる。
【０１００】
以上のように、端末３０は、証明書記憶部３６と、通信部３１と、暗号復号処理部３５と、ハッシュ計算部３３と、判定部３４と、を備える。証明書記憶部３６は、公開鍵ＫＰＡを含むサーバ証明書Ａを記憶する。通信部３１は、公開鍵ＫＰＢを含むサーバ証明書Ｂと、公開鍵ＫＰＡと鍵ペアである秘密鍵ＫＳＡを用いてサーバ証明書Ｂから導出されたハッシュ値ＨＢが暗号化されて生成された署名データＳＡと、を受信する。暗号復号処理部３５は、公開鍵ＫＰＡを用いて署名データＨＡを復号し、ハッシュ値ＨＢ´を取得する。ハッシュ計算部３３は、サーバ証明書Ｂからハッシュ値ＨＢを導出する。判定部３４は、ハッシュ値ＨＢ´とハッシュ値ＨＢとが一致した場合、署名データＳＡを生成したサーバ装置２０が正当であると判定する。
【０１０１】
尚、端末３０は、署名検証装置の一例である。サーバ装置２０は、署名生成装置の一例である。証明書記憶部３６は、記憶部の一例である。暗号復号処理部３５は、署名処理部の一例である。ハッシュ計算部３３は、一方向性関数導出部の一例である。判定部３４は、署名検証部の一例である。公開鍵ＫＰＡは第１の公開鍵の一例である。公開鍵ＫＰＢは第２の公開鍵の一例である。サーバ証明書Ａは、第１のサーバ証明書の一例である。サーバ証明書Ｂは、第２のサーバ証明書の一例である。ハッシュ値ＨＢ´は第１のハッシュ値の一例である。ハッシュ値ＨＢは第２のハッシュ値の一例である。
【０１０２】
これにより、ハッシュ値を用いて容易に署名検証でき、サーバ装置の成りすましを低減できる。そのため、端末３０とサーバ装置２０との間の通信に係るセキュリティを確保できる。また、端末３０とサーバ装置２０とが保持するサーバ証明書のバージョンがずれても、世代の異なる公開鍵又はサーバ証明書に基づいて生成された署名データを用いて、サーバ装置２０の正当性を適切に検証できる。従って、署名検証の精度を向上できる。
【０１０３】
また、通信部３１は、判定部３４によりサーバ装置２０が正当であると判定された場合、公開鍵ＫＰＢを用いて、サーバ装置２０との間で暗号通信してもよい。
【０１０４】
これにより、端末３０とサーバ装置２０が保持するサーバ証明書のバージョンが異なる場合でも、端末３０は更新後のサーバ証明書を安全に取得して、暗号通信に用いることができる。
【０１０５】
また、証明書記憶部３６は、判定部３４によりサーバ装置２０が正当であると判定された場合、サーバ証明書Ｂを記憶してもよい。
【０１０６】
これにより、端末３０がサーバ証明書を更新した後は、サーバ装置２０が更にサーバ証明書を更新するまで、サーバ証明書を用いてサーバ装置２０との間で安全に暗号通信できる。
【０１０７】
また、サーバ装置２０は、鍵生成部２５と、サーバ証明書生成部２３と、ハッシュ計算部２２と、署名処理部２４と、を備える。鍵生成部２５は、公開鍵ＫＰＡ及び秘密鍵ＫＳＡの鍵ペアと、公開鍵ＫＰＢ及び秘密鍵ＫＳＢの鍵ペアを生成する。サーバ証明書生成部２３は、公開鍵ＫＰＡを含むサーバ証明書Ａを生成し、サーバ証明書Ａを更新して公開鍵ＫＰＢを含むサーバ証明書Ｂを生成する。ハッシュ計算部２２は、サーバ証明書Ｂからハッシュ値ＨＢを導出する。署名処理部２４は、秘密鍵ＫＳＡを用いてハッシュ値ＨＢを暗号化し、署名データＳＡを生成する。
【０１０８】
尚、サーバ証明書生成部２３は、証明書生成部の一例である。ハッシュ計算部２２は、一方向性関数導出部の一例である。署名処理部２４は、署名生成部の一例である。秘密鍵ＫＳＡは、第１の秘密鍵の一例である。秘密鍵ＫＳＢは、第２の秘密鍵の一例である。
【０１０９】
これにより、認証局が署名データを用いる必要がないので、デジタル署名に対する費用を低減できる。また、ハッシュ値を用いて容易に署名生成でき、サーバ装置の成りすましを低減できる。そのため、端末３０とサーバ装置２０との間の通信に係るセキュリティを確保できる。また、サーバ装置２０が世代の異なる公開鍵又はサーバ証明書に基づく情報を用いて署名データを生成するので、端末３０とサーバ装置２０とが保持するサーバ証明書のバージョンがずれても、署名データを用いてサーバ装置２０の正当性を適切に検証できる。従って、署名検証の精度を向上できる。
【０１１０】
また、通信部２１は、サーバ証明書Ｂと署名データＳＡとを送信してもよい。
【０１１１】
これにより、端末３０は、サーバ証明書Ｂと署名データＳＡとを取得し、署名検証に係る処理を実施できる。
【０１１２】
また、通信部２１は、署名データＳＡを検証する端末３０から要求信号を受信し、要求信号に応じて、サーバ証明書Ｂと署名データＳＡとを端末３０へ送信してもよい。
【０１１３】
これにより、端末３０は、例えばサーバ装置２０と端末３０とが保持するサーバ証明書のバージョンが異なる場合に更新情報を要求することで、サーバ証明書Ｂと署名データＳＡとを取得し、署名検証に係る処理を実施できる。従って、サーバ装置２０及び端末３０の負荷を低減し、ネットワークトラフィックを低減できる。
【０１１４】
また、署名処理システム１０は、サーバ装置２０と端末３０とがネットワークを介して接続されたシステムである。
【０１１５】
これにより、認証局が署名データを用いる必要がないので、デジタル署名に対する費用を低減できる。また、ハッシュ値を用いて容易に署名生成及び署名検証でき、サーバ装置の成りすましを低減できる。そのため、端末３０とサーバ装置２０との間の通信に係るセキュリティを確保できる。また、サーバ装置２０及び端末３０が、世代の異なる公開鍵又はサーバ証明書に基づく情報を用いて署名生成及び署名検証するので、端末３０とサーバ装置２０とが保持するサーバ証明書のバージョンがずれても、サーバ装置２０の正当性を適切に検証できる。従って、署名検証の精度を向上できる。
【０１１６】
また、端末３０における署名検証方法は、以下の第１〜第４のステップを備える。第１のステップでは、公開鍵ＫＰＢを含むサーバ証明書Ｂと、公開鍵ＫＰＡと鍵ペアである秘密鍵ＫＳＡを用いてサーバ証明書Ｂから導出されたハッシュ値ＨＢが暗号化されて生成された署名データＳＡと、を受信する。第２のステップでは、公開鍵ＫＰＡを用いて署名データＳＡを復号し、ハッシュ値ＨＢ´を取得する。第３のステップでは、サーバ証明書Ｂからハッシュ値ＨＢを導出する。第４のステップでは、ハッシュ値ＨＢ´とハッシュ値ＨＢとが一致した場合、署名データＳＡを生成したサーバ装置２０が正当であると判定する。
【０１１７】
これにより、ハッシュ値を用いて容易に署名検証でき、サーバ装置の成りすましを低減できる。そのため、端末３０とサーバ装置２０との間の通信に係るセキュリティを確保できる。また、端末３０とサーバ装置２０とが保持するサーバ証明書のバージョンがずれても、世代の異なる公開鍵又はサーバ証明書に基づいて生成された署名データを用いて、サーバ装置２０の正当性を適切に検証できる。従って、署名検証の精度を向上できる。
【０１１８】
また、サーバ装置２０における署名生成方法は、以下の第１〜第６のステップを備える。第１のステップでは、公開鍵ＫＰＡ及び秘密鍵ＫＳＡの鍵ペアを生成する。第２のステップでは、公開鍵ＫＰＡを含むサーバ証明書Ａを生成するステップと、第３のステップでは、公開鍵ＫＰＢ及び秘密鍵ＫＳＢの鍵ペアを生成する。第４のステップでは、サーバ証明書Ａを更新して公開鍵ＫＰＢを含むサーバ証明書Ｂを生成する。第５のステップでは、サーバ証明書Ｂからハッシュ値ＨＢを導出する。第６のステップでは、秘密鍵ＫＳＡを用いてハッシュ値ＨＢを暗号化し、署名データＳＡを生成する。
【０１１９】
これにより、認証局が署名データを用いる必要がないので、デジタル署名に対する費用を低減できる。また、ハッシュ値を用いて容易に署名生成でき、サーバ装置の成りすましを低減できる。そのため、端末３０とサーバ装置２０との間の通信に係るセキュリティを確保できる。また、サーバ装置２０が世代の異なる公開鍵又はサーバ証明書に基づく情報を用いて署名データを生成するので、端末３０とサーバ装置２０とが保持するサーバ証明書のバージョンがずれても、署名データを用いてサーバ装置２０の正当性を適切に検証できる。従って、署名検証の精度を向上できる。
【産業上の利用可能性】
【０１２０】
本発明は、コストを低減し、セキュリティを確保して、署名検証の精度の低下を抑制できる署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法等に有用である。
【符号の説明】
【０１２１】
１０  署名処理システム
２０  サーバ装置
２１  通信部
２２  ハッシュ計算部
２３  サーバ証明書生成部
２４  署名処理部
２５  鍵生成部
２６  署名データ記憶部
２７  秘密鍵記憶部
２８  サーバ証明書記憶部
３０  端末
３１  通信部
３２  受信データ記憶部
３４  判定部
３３  ハッシュ計算部
３５  暗号復号処理部
３６  証明書記憶部
【図１】
2016116134.tif 000003
【図２】
2016116134.tif 000004
【図３】
2016116134.tif 000005
【図４】
2016116134.tif 000006
【図５】
2016116134.tif 000007
【図６】
2016116134.tif 000008
【図７】
2016116134.tif 000009