(57)【要約】【課題】本発明の目的は署名対象データをそのまま外部に預けることなく、かつ原本管理を内部で行うことなく、長期署名データを生成する長期署名データ生成装置を得る。【解決手段】本発明に係る長期署名データ生成装置は、署名対象データに付与する秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成部と、前記サーバ１００に設けられ、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成部と、前記サーバ１００に設けられ、前記第２のハッシュ値生成部で生成された前記第２のハッシュ値と、署名値情報と前記署名値情報の有効期限を示すタイムスタンプ情報とを有する長期署名データを生成する長期署名データ生成部とを備える。【選択図】図２
2020092336.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバに接続されたクライアントに設けられ、署名対象データに付与する秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成部と、
前記サーバに設けられ、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成部と、
前記サーバに設けられ、前記第２のハッシュ値生成部で生成された前記第２のハッシュ値と、署名値情報と前記署名値情報の有効期限を示すタイムスタンプ情報とを有する長期署名データを生成する長期署名データ生成部と
を備える長期署名データ生成装置。
【請求項２】
前記サーバに設けられ、前記秘密データを生成する秘密データ生成部を備えることを特徴とする請求項１に記載の長期署名データ生成装置。
【請求項３】
前記秘密データを生成する際に使用する前記署名対象データのドキュメントサイズを計測するドキュメントサイズ計測部を備えることを特徴とする請求項２に記載の長期署名データ生成装置。
【請求項４】
前記秘密データ生成部は、合わせて一つの秘密データとなる第１の秘密データと第２の秘密データとを生成し、
前記第１のハッシュ値生成部は、前記署名対象データと前記秘密データ生成部が生成した前記第１の秘密データとを対象とするハッシュ化処理により第１のハッシュ値を生成し、
前記第２のハッシュ値生成部は、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値と前記秘密データ生成部が生成した前記第２の秘密データとを対象とするハッシュ化処理により第３のハッシュ値を生成し、前記第３のハッシュ値を対象とするハッシュ化処理により前記第２のハッシュ値を生成することを特徴とする請求項２または３に記載の長期署名データ生成装置。
【請求項５】
前記第１のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項１から３までのいずれか１項に記載の長期署名データ生成装置。
【請求項６】
前記第３のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項４に記載の長期署名データ生成装置。
【請求項７】
ネットワークを介してサーバに接続されたクライアントに設けられ、署名対象データに付与する秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成工程と、
前記サーバに設けられ、前記第１のハッシュ値生成工程が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成工程と、
前記サーバに設けられ、前記第２のハッシュ値生成工程で生成された前記第２のハッシュ値と、署名値情報と前記署名値情報の有効期限を示すタイムスタンプ情報とを有する長期署名データを生成する長期署名データ生成工程と
を備える長期署名データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、長期署名データを生成する装置および長期署名データを生成する方法に関する。
【背景技術】
【０００２】
電子データの真正を証明するために、電子データを秘密鍵で暗号化することにより電子署名を行い、当該秘密鍵に対応する公開鍵で電子データを復号することにより検証する電子署名が広く利用されている。
電子署名は、署名などに用いた暗号アルゴリズムの危殆化、あるいは秘密鍵の漏洩などにより、適正でない者が電子データを利用してしまう状態を制限するため、有効期限が設定されている。
その一方で、電子データを長期に利用したい場合もあるが、電子署名の有効期限を長くすると、暗号アルゴリズムの危殆化によるリスクが高まってしまい、技術進歩により暗号が破られる危険性が増す。そこで、電子署名の有効性を継続させるために、電子署名データの有効期限を継続的に更新する長期署名という仕組みがある。
【０００３】
長期署名は、電子署名の有効期限が切れる前に、再度タイムスタンプを電子署名に付与することにより有効期限を延長していく仕組みである。
【０００４】
電子データ（以降署名対象データという）の長期署名データを取得する方法として、ユーザ自らが長期署名の手続きを実行できる長期署名サーバを導入する方法があるが、この場合、長期署名サーバを導入するコストがかかり、また機密情報等の電子データの管理をユーザが行う必要がある。
また、長期署名の仕組みでは、電子署名の有効期限が切れる前にタイムスタンプを電子署名に付与して新たな長期署名データ生成する更新を行う必要があるが、更新の都度、真正を証明する対象である電子データ（以降原本データという）を必要とする。このため、長期署名を行う場合は原本データとして署名対象データを継続的に管理することが必要となる。
これらの問題に対応する別の方法として、信頼できる第三者が運営する長期署名サーバを利用し、ユーザはこの第三者に長期署名データを提供してもらう方法がある。この方法の場合、ユーザにおけるサーバの導入コストや署名対象データの管理は不要となるが、機密情報等の署名対象データを第三者に預けなくてはならないという問題がある。
【０００５】
これらの課題に対応する方法として、特許文献１には、機密情報等の署名対象データを第三者に預けることなくユーザ側に保持したまま、第三者が運営するサーバを用いて長期署名データを提供する方法が開示されている。この特許文献１に開示された方法では、長期署名データを生成するする処理のうち、署名対象データが必要となる処理をユーザ側で行い、それ以外の処理を第三者のサーバで行う仕組みになっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１０９２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記特許文献１に開示された方法は、長期署名の有効期限を延長する処理のうちユーザ側で行う処理において原本データとして署名対象データが必要であり、ユーザ側で署名対象データを継続的に管理する必要があるという課題がある。
【０００８】
本発明は、上述のような課題を解決するためになされたもので、機密情報等の署名対象データを第三者に預けることなく、継続的に署名対象データの管理をユーザ側で行わなくても長期署名データを生成できる長期署名データ生成装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る長期署名データ生成装置は、署名対象データに付与する秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成部と、前記サーバ１００に設けられ、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成部と、前記サーバ１００に設けられ、前記第２のハッシュ値生成部で生成された前記第２のハッシュ値と、署名情報と前記署名情報の有効期限を示すタイムスタンプ情報とを有する長期署名データを生成する長期署名データ生成部とを備えたものである。
【発明の効果】
【００１０】
本発明に係る長期署名データ生成装置は、クライアント側で秘密データが付与された署名対象データを対象とするハッシュ化処理により第１のハッシュ値を生成し、サーバ側でこの第１のハッシュ値を原本データとして第２のハッシュ値生成部および長期署名データ生成部により長期署名データを生成するようにしたので、サーバは署名対象データがなくても署名対象データに基づく第１のハッシュ値に対する長期署名を行うことができ、サーバにおいて長期署名を行うのでユーザは署名対象データを継続的に保管しておく必要がない。また、保有している署名対象データの検証を行いたい者は、署名対象データに基づく第１のハッシュ値を対象としてサーバ側で生成された長期署名データと、保有する署名対象データをハッシュ化処理して得るハッシュ値とを用いることで、署名対象データの検証を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】長期署名データ生成装置の構成図。
【図２】実施の形態１に係る長期署名データ生成装置を示す構成図。
【図３】実施の形態１に係る長期署名データ生成装置を示すＨ／Ｗ構成図。
【図４】実施の形態１に係る長期署名データ生成の動作を示すフロー図。
【図５】実施の形態１に係る長期署名データ生成の動作を示すフロー図。
【図６】ハッシュ値を求める手順を説明する説明図。
【図７】実施の形態１に係る長期署名データ生成部の詳細構成を示す構成図。
【図８】実施の形態１に係る長期署名データ生成部の動作を示すフロー図。
【図９】実施の形態１に係る長期署名データ生成装置において長期署名データの存在証明を行う動作を示すフロー図。
【図１０】実施の形態１に係る長期署名データ生成装置において長期署名データの存在証明を行う動作を示すフロー図。
【図１１】実施の形態１に係る長期署名データ生成装置において長期署名データの更新処理を行う動作を示すフロー図。
【図１２】実施の形態２に係る長期署名データ生成装置を示す構成図。
【図１３】実施の形態２に係る長期署名データ生成の動作を示すフロー図。
【図１４】実施の形態２に係る長期署名データ生成の動作を示すフロー図。
【図１５】実施の形態３に係る長期署名データ生成装置を示す構成図。
【図１６】実施の形態３に係る長期署名データ生成の動作を示すフロー図。
【図１７】実施の形態３に係る長期署名データ生成の動作を示すフロー図。
【図１８】ハッシュ値を求める手順を説明する説明図。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本実施の形態に係る長期署名データ生成装置が適用されるシステムの構成を示す構成図である。
【００１３】
長期署名データ生成装置５００は、長期署名データ生成サービスを提供する第三者のデータセンタ等に設置されるサーバ１００と、長期署名データ生成サービスを利用するユーザの端末であるクライアント２００とで構成され、ユーザがクライアント２００から長期署名データの作成依頼をネットワーク３００を介してサーバ１００に送ると、サーバ１００が長期署名データを生成し、生成した長期署名データをクライアント２００へ送信するものである。なお、クライアント２００は、サーバ１００と同一筐体内で動作するように構成してもよい。
なお、サーバ１００、クライアント２００には、ネットワーク３００を介して相互にデータ、ファイルを送受信する送受信部（図示せず）が設けられている。
【００１４】
図２は、長期署名データ生成装置５００の詳細な構成を示す構成図であり、この図２では、図１で示したネットワーク３００を省略している。
図２の長期署名データ生成装置５００において、ドキュメントサイズ情報格納部１５、秘密データ生成部１６、秘密データ情報格納部１７、第１のハッシュ値情報格納部２１、第２のハッシュ値生成部２２、第２のハッシュ値情報格納部２３、長期署名データ生成部２４、長期署名データ情報格納部２５、長期署名データ更新部２７はサーバ１００に設けられており、また、長期署名作成指示部１１、ドキュメント情報格納部１２、ドキュメントサイズ計測部１３、ドキュメントサイズ情報格納部１４、秘密データ情報格納部１８、第１のハッシュ値生成部１９、第１のハッシュ値情報格納部２０、長期署名データ情報格納部２６はクライアント２００に設けられている。
【００１５】
クライアント２００に設けられたドキュメント情報格納部１２は、長期署名の対象となる電子データ、すなわち署名対象データを格納するものである。この署名対象データは電子文書のデータに限らず、画像データであってもよい。
【００１６】
長期署名作成指示部１１は、長期署名データの生成指示をユーザから受け付け、ドキュメントサイズ計測部１３に、署名対象データのサイズの測定を指示する機能を有する。
【００１７】
ドキュメントサイズ計測部１３は、長期署名作成指示部１１からドキュメントサイズを測定する指示を受けると、ドキュメント情報格納部１２から長期署名データの生成対象データを取得し、取得した署名対象データの容量、すなわちドキュメントサイズを計測し、計測したドキュメントサイズをドキュメントサイズ情報格納部１４に格納する機能を有する。ドキュメントサイズ情報格納部１４は格納したドキュメントサイズの情報を、送受信部を介してサーバ１００に送る。送られたドキュメントサイズの情報はサーバ１００の送受信部を介してドキュメントサイズ情報格納部１５に格納される。
【００１８】
秘密データ生成部１６は、ドキュメントサイズ情報格納部１５にドキュメントサイズが格納されると、格納されたドキュメントサイズを使用して、長期署名対象データに付与する秘密データを生成し、生成した秘密データを秘密データ情報格納部１７に格納する機能を有する。秘密データ情報格納部１７は格納した秘密データを、送受信部を介してクライアント２００に送る。送られた秘密データはクライアント２００の送受信部を介して秘密データ情報格納部１８に格納される。
【００１９】
第１のハッシュ値生成部１９は、秘密データ情報格納部１８に秘密データが格納されると、格納された秘密データとドキュメント情報格納部１２に保持する長期署名対象データとを対象に第１のハッシュ値を生成し、生成した第１のハッシュ値を第１のハッシュ値情報格納部２０に格納する機能を有する。第１のハッシュ値情報格納部２０は第１のハッシュ値を、送受信部を介してサーバ１００に送る。送られた第１のハッシュ値はサーバ１００の送受信部を介して第１のハッシュ値情報格納部２１に格納される。
【００２０】
第２のハッシュ値生成部２２は、第１のハッシュ値情報格納部２１に第１のハッシュ値が格納されると、格納された第１のハッシュ値を対象に第２のハッシュ値を生成し、生成した第２のハッシュ値を第２のハッシュ値情報格納部２３に格納する機能を有する。
【００２１】
長期署名データ生成部２４は、第２のハッシュ値情報格納部２３に第２のハッシュ値が格納されると、格納された第２のハッシュ値と第１のハッシュ値情報格納部２１に格納された原本データである第１のハッシュ値を対象に長期署名データを生成し、生成した長期署名データを長期署名データ情報格納部２５に格納する機能を有する。
【００２２】
長期署名データ更新部２７は、長期署名データの更新指示をユーザから受け付けると、長期署名データ情報格納部２５に格納された長期署名データと第１のハッシュ値情報格納部２１に格納された第１のハッシュ値とを対象に、新たな長期署名データを生成し、生成した長期署名データを長期署名データ情報格納部２５に格納する機能を有する。
【００２３】
以上のような構成の長期署名データ生成装置５００の各機能は、図３に示したようなハードウェアにより実現される。このハードウェアは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の処理装置１１０、２１０と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスク装置等の記憶装置１２０、２２０、他のハードウェアとネットワーク３００によって接続される通信装置１３０、２３０、キーボードやマウスといった入力装置１４０、２４０と、スピーカーやディスプレイ等の出力装置１５０、２５０とがバス接続された構成となっている。なお、ＣＰＵは自身にメモリを備えていてもよい。
【００２４】
ドキュメントサイズ情報格納部１５、秘密データ情報格納部１７、第１のハッシュ値情報格納部２１、第２のハッシュ値情報格納部２３、長期署名データ情報格納部２５は、記憶装置１２０により実現される。
秘密データ生成部１６、第２のハッシュ値生成部２２、長期署名データ生成部２４は、記憶装置１２０に記憶されたプログラムが処理装置１１０で実行されることにより実現される。
【００２５】
ドキュメント情報格納部１２、ドキュメントサイズ情報格納部１４、秘密データ情報格納部１８、第１のハッシュ値情報格納部２０、長期署名データ情報格納部２６は、記憶装置２２０に記憶される。
長期署名作成指示部１１、ドキュメントサイズ計測部１３は、第１のハッシュ値生成部１９は、記憶装置２２０に記憶されたプログラムが処理装置２１０で実行されることにより実現される。
なお、長期署名データ生成装置５００の各機能を実現する方法は、上記のような処理装置とプログラムの組み合わせに限らず、処理装置プログラムをインプリメントしたシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）のようなハードウェア単体で実現するようにしてもよいし、一部の機能を専用のハードウェアで実現し、一部を処理装置とプログラムの組み合わせで実現するようにしてもよい。
【００２６】
次に、以上のような構成の長期署名データ生成装置５００において、最初の長期署名データを生成する動作について、図４と図５のフロー図を用いて説明する。
【００２７】
長期署名データ生成装置５００が起動すると、長期署名作成指示部１１は、長期署名データの生成指示をユーザから受け付ける状態になり、長期署名データの生成指示を受け付けると、ドキュメントサイズ計測部１３に、署名対象データのドキュメントサイズの計測を指示する（ステップＳ１１）。
【００２８】
ドキュメントサイズ計測部１３は、長期署名作成指示部１１から長期署名データの生成指示を受け、ドキュメント情報格納部１２から長期署名データの作成対象となるドキュメントを取得し、署名対象データのドキュメントサイズを計測する（ステップＳ１２）。計測されたドキュメントサイズは、ドキュメントサイズ情報格納部１４に格納される。
【００２９】
次に、クライアント２００の送受信部（図示せず）は、ドキュメントサイズ情報格納部１４に格納されたドキュメントサイズをサーバ１００へ送付する（ステップＳ１３）。
【００３０】
サーバ１００に送られたドキュメントサイズを、サーバ１００の送受信部（図示せず）が受信し（ステップＳ１４）、受信されたドキュメントサイズは、ドキュメントサイズ情報格納部１５に格納される。
【００３１】
次に、秘密データ生成部１６は、ドキュメントサイズ情報格納部１５に格納されたドキュメントサイズを使用して、秘密データを生成し（ステップＳ１５）、生成された秘密データは、秘密データ情報格納部１７に格納される。
【００３２】
ここで、第１のハッシュ値と秘密データの生成方法について説明する。
図６は、第１のハッシュ値生成部１９において、第１のハッシュ値を求める手順を説明する説明図であり、署名対象データに、秘密データ生成部１６で生成される秘密データを付加して得る演算対象データに対してハッシュ演算を行うことで、第１のハッシュ値を求める様子を示している。
【００３３】
具体的には、演算対象データを決められたブロック長で分割し、分割された先頭の演算対象データをハッシュ演算する。得られた演算結果と分割された次の演算対象データとを合わせてハッシュ演算をする。このハッシュ演算を分割された演算対象データがなくなるまで順次行い、演算対象データに対するハッシュ値を求める。
【００３４】
ハッシュ演算とは、任意のデータから、固定長の乱数、すなわちハッシュ値を生成する演算処理である。このハッシュ演算では、決められたブロック長単位で演算を行う必要があるため、演算対象データをブロック長の整数倍にしておく必要がある。このため、署名対象データに付加する秘密データのサイズは、署名対象データと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように決める。
【００３５】
例えば、図６に示した例では、署名対象データのドキュメントサイズが２２４バイトであり、ハッシュ演算が処理するブロック長が６４バイトである場合である。この場合、署名対象データと秘密データのサイズの合計がブロック長の整数倍となるのは、秘密データのサイズが（３２バイト＋６４×ｎ）の場合、すなわち、３２バイト、９６バイト、１６０バイト、・・・といったサイズの秘密データを付加する場合である。これらのサイズを持つデータが、秘密データ生成部１６で生成する秘密データの候補となる。演算対象データのサイズが大きくなると演算量が増えるため、秘密データのサイズは候補の中からドキュメントサイズが小さいデータを秘密データとして採用する。図６には、秘密データのサイズを３２バイトとした例を記載しているが、９６バイトでも、１６０バイトでもよい。なお、秘密データの中身は任意のデータでよい。
【００３６】
このようにして、秘密データ生成部１６において秘密データが生成されると、サーバ１００の送受信部（図示せず）は、秘密データ情報格納部１７に格納された秘密データをクライアント２００へ送信する（ステップＳ１６）。
【００３７】
クライアント２００に送られた秘密データをクライアント２００の送受信部（図示せず）が受信し（ステップＳ１７）、受信された秘密データは、秘密データ情報格納部１８に格納される。
【００３８】
次に、第１のハッシュ値生成部１９は、秘密データ情報格納部１８に格納された秘密データをドキュメント情報格納部１２に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第１のハッシュ値を生成する（ステップＳ１８）。第１のハッシュ値の生成は、図６に示したように、まず演算対象データの最初の６４バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の６４バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。図６の例では、５回のハッシュ演算でハッシュ値を求めることができる。
生成された第１のハッシュ値は、第１のハッシュ値情報格納部２０に格納される。
【００３９】
クライアント２００の送受信部（図示せず）は、第１のハッシュ値情報格納部２０に格納された第１のハッシュ値をサーバ１００へ送付する（ステップＳ１９）。
【００４０】
サーバ１００に送られた第１のハッシュ値を、サーバ１００の送受信部（図示せず）が受信し（ステップＳ２０）、受信された第１のハッシュ値は、第１のハッシュ値情報格納部２１に格納される。
【００４１】
この長期署名データ生成装置５００では、ドキュメント情報格納部１２に格納された機密情報、非公開情報等であることが多い署名対象データではなく、第１のハッシュ値情報格納部２１に格納された第１のハッシュ値を、原本データとして、サーバ１００の第１のハッシュ値情報格納部２１に継続的に保管する。これ以降、このようにサーバ１００の第１のハッシュ値情報格納部２１に格納された第１のハッシュ値に対して長期署名が行われ、長期署名データの更新すなわち新たな長期署名データを生成する際に利用されることになる。このため、ユーザは、機密情報等であることが多い署名対象データを第三者のサーバ１００に預ける必要がなく、長期署名データの更新のために署名対象データを継続的に保管しておく必要がない。さらに、後述するように、保有している署名対象データの検証を行いたい者は、署名対象データに基づく第１のハッシュ値を対象としてサーバ１００で生成された長期署名データと、保有する署名対象データをハッシュ化処理して得るハッシュ値とを用いることで、署名対象データの検証を行うことができる。
【００４２】
第２のハッシュ値生成部２２は、第１のハッシュ値情報格納部２１に格納された第１のハッシュ値を対象に、第２のハッシュ値を生成する（ステップＳ２１）。生成された第２のハッシュ値は、第２のハッシュ値情報格納部２３に格納される。
【００４３】
このステップＳ２１の後、図５のステップＳ２２に進み、長期署名データ生成部２４は、第２のハッシュ値情報格納部２３に格納された第２のハッシュ値および長期署名データ生成に必要となる原本データから長期署名データを生成する。
この第２のハッシュ値および長期署名データ生成に必要となる原本データから長期署名データを生成する処理については、通常の長期署名データを生成する処理と同じである。このステップＳ２２の処理の動作を図７の構成図と図８のフロー図を用いて説明する。
【００４４】
図７は長期署名データ生成部２４の詳細構成を示す構成図であり、署名値生成部２４１と署名値情報格納部２４２とタイムスタンプ付与部２４３とＥＳ−Ｔ情報格納部２４４と検証情報付与部２４５とＥＳ−ＸＬ情報格納部２４６とアーカイブタイムスタンプ生成部２４７からなる。
署名値生成部２４１は、第２のハッシュ値情報格納部２３に格納された第２のハッシュ値を対象に、署名値を生成する（ステップＳ２２１）。生成された署名値は、署名値情報格納部２４２に格納される。
【００４５】
タイムスタンプ付与部２４３は、署名値情報格納部２４２に格納された署名値と第１のハッシュ値情報格納部２１に格納された原本データであるハッシュ値を対象に、タイムスタンプを付与する（ステップＳ２２２）。付与されたタイムスタンプは、ＥＳ−Ｔ（Ｅｌｅｃｔｒｏｎｉｃ  Ｓｉｇｎａｔｕｒｅｓ−Ｔｉｍｅｓｔａｍｐ）情報格納部２４４に格納される。
【００４６】
検証情報付与部２４５は、ＥＳ−Ｔ情報格納部２４４に格納されたタイムスタンプを付与された署名値を対象に、検証情報を付与する（ステップＳ２２３）。付与された検証情報は、ＥＳ−ＸＬ（ＥＳ−ＸＬｏｎｇ）情報格納部２４６に格納される。
検証情報は、署名に用いた秘密鍵の証明書群と失効情報群で構成された情報である。
【００４７】
アーカイブタイムスタンプ生成部２４７は、ＥＳ−ＸＬ情報格納部２４６に格納されたタイムスタンプを付与された署名値と検証情報と第１のハッシュ値情報格納部２１に格納された原本データであるハッシュ値とを対象に、アーカイブタイムスタンプを生成する（ステップＳ２２４）。生成されたアーカイブスタンプは長期署名データとして、長期署名データ情報格納部２５に格納される。
【００４８】
サーバ１００の送受信部（図示せず）は、長期署名データ情報格納部２５に格納された長期署名データをクライアント２００へ送信する（ステップＳ２３）。
【００４９】
クライアント２００の送受信部（図示せず）は、サーバ１００から返送された長期署名データを受信する（ステップＳ２４）。受信された長期署名データは、長期署名データ情報格納部２６に格納される。
以上のようにして、長期署名データが生成され、ユーザはこの長期署名データを電子署名として機密文書等に添付して利用することで、長期署名データを添付した機密文書がユーザ利用者自身により作成され、改竄されていないことを証明することが可能となる。
【００５０】
次に、このようにして生成された長期署名データが添付された電子データのドキュメントを受取った者が、ドキュメントの真正を証明するために、長期署名データの存在証明を行う動作を図９、図１０のフロー図を用いて説明する。なお、この長期署名データの存在証明を行う長期署名データ生成装置５００は、図２に示したものと同様の構成である。このうち、クライアント２００は、構成が同様であれば、長期署名データを生成したクライアント装置でもよいし、別のクライアント装置でもよい。
【００５１】
まず、長期署名データが付与されたドキュメントを受け取ったユーザは、長期署名データ生成装置５００に対して、存在証明するドキュメントを指定し、存在証明を指示すると、長期署名作成指示部１１は、ドキュメントサイズ計測部１３に、署名対象データのドキュメントサイズの計測を指示する（ステップＳ４１）。
図９のステップＳ４２から図１０のステップＳ５４までの処理は、図４のステップＳ１２から図５のステップＳ２４までの処理と同じであるため、説明を省略する。
【００５２】
長期署名データ生成装置５００は、ユーザからの存在証明指示により、指定されたドキュメントと秘密データを対象に、長期署名データを生成する。
サーバ１００側において、ステップＳ５２で生成された長期署名データは、ステップＳ５４でユーザが使用するクライアント２００の長期署名データ情報格納部２６に格納される。そして、ステップＳ５５において、ドキュメントに付与されていた長期署名データとステップＳ５４で受信した長期署名データが検証部（図示せず）で比較し検証され、これらが一致することを確認することによって、長期署名データの存在証明を行うことができる。
【００５３】
次に、上記のようにして生成された長期署名データの更新処理について説明する。長期署名データには有効期限が設定されており、有効期限が切れる前に有効期限を更新する必要がある。長期署名データを更新するためには、有効期限を更新したい長期署名と、長期署名データを作成した際に使用した原本データが必要となる。
本実施の形態の長期署名データ生成装置５００においては、長期署名データは、長期署名データ情報格納部２５に格納されている。また、本実施の形態では、第１のハッシュ値情報格納部２１で格納されている第１のハッシュ値を原本データとして使用する。
【００５４】
図１１は長期署名データの更新処理の動作を示すフロー図である。まず、長期署名データ更新部２７は、長期署名データの更新指示を受け付ける（ステップＳ３１）。
この更新指示は、サーバ１００の管理者、あるいはユーザが有効期限内に、適宜操作して行うようにしてもよいし、サーバ１００内に、長期署名データの有効期限に基づいて動作するスケジューラ等を設けて、有効期限内に自動更新するようにしてもよい。
【００５５】
長期署名データ更新部２７は、長期署名データ情報格納部２５に格納されている更新対象の長期署名データを取得する（ステップＳ３２）。
【００５６】
長期署名データの更新には原本データが必要となるため、長期署名データ更新部２７は、第１のハッシュ値情報格納部２１に格納されている原本データを取得する（ステップＳ３３）。
【００５７】
長期署名データ更新部２７は、更新対象の長期署名データと原本データを対象に新たな長期署名データを生成する（ステップＳ３４）。この新たな長期署名データを生成する処理は、図４、図５のフロー図で説明した長期署名データを生成する処理ステップＳ２２と同じである。このように生成された新たな長期署名データは、有効期限が更新されており、更新された長期署名データとして長期署名データ情報格納部２５に格納される。
このように更新された長期署名データは、最初に生成された長期署名データと同様に存在証明を行うことができる。
長期署名データには有効期限があるが、上記方法によりユーザは長期署名データの有効期限を更新することが可能となり、ユーザは長期署名データを添付した機密文書がユーザ利用者自身により作成され、改竄されていないことを長期間に渡って証明することが可能となる。
【００５８】
以上のような本実施の形態１によれば、署名対象データから作られる第１のハッシュ値を原本データとし、原本データをサーバ１００側で管理するため、クライアント２００側では署名対象データの管理が不要となる。また、署名対象データから作られる第１のハッシュ値情報を原本データとしているため、機密情報等の署名対象データを外部へ提供することなく、長期署名を行える。
【００５９】
また、本実施の形態１によれば、秘密データを署名対象データに付加してハッシュ演算を行うことで長期署名の原本データであるハッシュ値を作成しているので、仮にハッシュ演算が危殆化したとしても、秘密データが漏洩しなければ偽の署名対象データから本物の長期署名データを作成することはできないため、本物の署名対象データの真正性を保証することができる。
なお、図２では秘密データ生成部１６をサーバ１００に設けたものを示したが、秘密データ生成部１６をクライアント２００に設ける構成としてもよい。また、第２のハッシュ値生成部２２も、同様にクライアント２００に設ける構成としてもよい。
【００６０】
実施の形態２．
本発明の実施の形態２の長期署名データ生成装置５００について説明する。図１２は実施の形態２の長期署名データ生成装置５００の構成を示す構成図であり、図２に示した構成と同じものについては同一符号を付しており、重複する説明を省略する。
【００６１】
本実施の形態２の長期署名データ生成装置５００が実施の形態１の長期署名データ生成装置５００と異なる点は、実施の形態１で示した図２のサーバ１００にあるドキュメントサイズ情報格納部１５、およびクライアント２００にあるドキュメントサイズ計測部１３とドキュメントサイズ情報格納部１４がない点であり、それ以外は、実施の形態１の長期署名データ生成装置５００と同じである。
【００６２】
以上のような構成の長期署名データ生成装置５００の動作について、図１３と図１４のフロー図を用いて説明する。実施の形態２の長期署名データ生成装置５００は、署名対象データのドキュメントサイズを事前に計測しない点が実施の形態１と異なる。
【００６３】
長期署名データ生成装置５００が起動すると、長期署名作成指示部１１は、長期署名データの生成指示をユーザから受け付ける状態になり、長期署名データの生成指示を受け付けると、サーバ１００の秘密データ生成部１６に秘密データの作成を指示する（ステップＳ６１）。
【００６４】
秘密データ生成部１６は、秘密データを生成する（ステップＳ６５）。ここで、実施の形態２における秘密データの生成方法について、図６を用いて説明する。
実施の形態１で説明したように、図６は第１のハッシュ値生成部１９において、第１のハッシュ値を求める手順を説明する説明図であり、署名対象データに、秘密データ生成部１６で生成される秘密データを付加して得る演算対象データに対してハッシュ演算を行うことで、第１のハッシュ値を求める様子を示している。
【００６５】
ハッシュ演算は、ハッシュ演算毎に決められたブロック長単位で演算処理を順次行いハッシュ値を求める演算処理である。
図６で説明した実施の形態１におけるクライアント２００でのハッシュ演算に適正な秘密データのサイズは３２バイト、９６バイト、１６０バイト、・・・であるが、実施の形態２のサーバ１００では、秘密データのサイズを決定する署名対象データのドキュメントサイズがわからないため、秘密データのサイズ決定は、後述するクライアント２００で行うこととし、ここでは、後述する第１のハッシュ値で必要となる秘密データのサイズより大きいサイズを持つ秘密データを作成する。
【００６６】
秘密データのサイズは、ドキュメントサイズと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように秘密データのサイズを決める必要があるため、ブロック長のサイズを持つ秘密データを作成すれば十分である。よって、６４バイトの秘密データを生成する。秘密データ生成部１６で生成された秘密データは、秘密データ情報格納部１７に格納される。
なお、実施の形態２における秘密データのサイズは、ブロック長以上のサイズであれば何バイトでも構わない。
【００６７】
このようにして、秘密データ生成部１６において秘密データが生成されると、サーバ１００の送受信部（図示せず）は、秘密データ情報格納部１７に格納された秘密データをクライアント２００へ送信する（ステップＳ６６）。
【００６８】
クライアント２００に送られた秘密データをクライアント２００の送受信部（図示せず）が受信し（ステップＳ６７）、受信された秘密データは、秘密データ情報格納部１８に格納される。
【００６９】
次に、第１のハッシュ値生成部１９は、秘密データ情報格納部１８に格納された秘密データをドキュメント情報格納部１２に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第１のハッシュ値を生成する（ステップＳ６８）。
【００７０】
第１のハッシュ値の生成は、図６に示したように、まず演算対象データの最初の６４バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の６４バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。
ハッシュ演算は、実施の形態１で説明したように、署名対象データと秘密データのサイズの合計がブロック長の整数倍となるので、秘密データのサイズは６４バイトになっているが、実際にハッシュ演算として利用するのは、秘密データの先頭３２バイト分のみで、残りの３２バイト分の秘密データは使用しない。生成された第１のハッシュ値は、第１のハッシュ値情報格納部２０に格納される。
【００７１】
クライアント２００の送受信部（図示せず）は、第１のハッシュ値情報格納部２０に格納された第１のハッシュ値をサーバ１００へ送付する（ステップＳ６９）。
【００７２】
サーバ１００に送られた第１のハッシュ値を、サーバ１００の送受信部（図示せず）が受信し（ステップＳ７０）、受信された第１のハッシュ値は、第１のハッシュ値情報格納部２１に格納される。
【００７３】
この長期署名データ生成装置５００では、ドキュメント情報格納部１２に格納された機密情報等であることが多い署名対象データではなく、第１のハッシュ値情報格納部２１に格納された第１のハッシュ値を原本データとしてサーバ１００の第１のハッシュ値情報格納部２１に継続的に保管し、長期署名データの更新すなわち新たな長期署名データを生成する際に利用する。
【００７４】
ステップＳ７１からステップＳ７４の処理は、実施の形態１のステップＳ２１からステップＳ２４と同じであるため、説明を省略する。
【００７５】
以上のような本実施の形態２によれば、クライアント２００で署名対象データのドキュメントサイズを計測し、計測したドキュメントサイズをサーバ１００に送付することなく、実施の形態１と同様の効果を得ることができる。
【００７６】
実施の形態３．
本発明の実施の形態３の長期署名データ生成装置５００について説明する。図１５は実施の形態３の長期署名データ生成装置５００の構成を示す構成図であり、図２に示した構成については同一符号を付して、重複する説明を省略する。
【００７７】
本実施の形態３の長期署名データ生成装置５００が実施の形態１の長期署名データ生成装置５００と異なる点は、実施の形態１で示した図２のサーバ１００の第２のハッシュ値生成部２２の代わりに、第２ａのハッシュ値生成部４５と、第２ｂのハッシュ値生成部４７を備え、秘密データ情報格納部１７の代わりに、第１の秘密データ情報格納部４１と第２の秘密データ情報格納部４２を備え、さらに第３のハッシュ値情報格納部４６を備える点である。
クライアント２００の構成は、実施の形態１と同じである。
【００７８】
次に、以上のような構成の長期署名データ生成装置５００の動作について、図１６と図１７を用いて説明する。
実施の形態３の長期署名データ生成装置５００は、複数からなる秘密データを作成し、作成した秘密データは実施の形態１と同じであるが、サーバ１００とクライアント２００の双方のハッシュ化演算で使用する点が実施の形態１と異なる。
【００７９】
ステップＳ８１からステップＳ８４の処理は、実施の形態１のステップＳ２１からステップＳ２４と同じであるため、説明を省略する。
【００８０】
秘密データ生成部１６は、ドキュメントサイズ情報格納部１５に格納されたドキュメントサイズを対象に、合わせて一つの秘密データとなる第１の秘密データと第２の秘密データとを生成する（ステップＳ８５）。
【００８１】
ここで、実施の形態３における秘密データの生成方法について、図１８を用いて説明する。
実施の形態１、実施の形態２で説明したように、長期署名データ生成装置５００では、長期署名データを生成する過程でハッシュ演算を利用する。
ハッシュ演算は、ハッシュ演算毎に決められたブロック長単位で演算処理を順次行いハッシュ値を求める演算処理である。
秘密データのサイズは、ドキュメントサイズと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように秘密データのサイズを決める必要がある。
【００８２】
図１８の例では、ドキュメントサイズが２２４バイトのドキュメントに対して、ハッシュ演算が処理するブロック長のサイズが６４バイトとなっている。この場合、ドキュメントサイズと秘密データのサイズの合計が、ブロック長の整数倍となるのは、秘密データのサイズが３２バイト、９６バイト、１６０バイト、・・・のサイズを持つ場合であり、これらのサイズを持つデータが秘密データの候補となる。
ドキュメントサイズが大きくなると処理効率が落ちるため、秘密データは候補の中からドキュメントサイズが小さいデータを秘密データとして採用する。
【００８３】
図１８の例では、秘密データとして９６バイトとした例を記載している。実施の形態３では、この秘密データを９６バイトのうち先頭３２バイトを第１の秘密データとし、残りの６４バイトを第２の秘密データとする。
生成された第１の秘密データは第１の秘密データ情報格納部４１に、第２の秘密データは、第２の秘密データ情報格納部４２に格納される。
【００８４】
このようにして、秘密データ生成部１６において秘密データが生成されると、サーバ１００の送受信部（図示せず）は、第１の秘密データ情報格納部４１に格納された第１の秘密データをクライアント２００へ送信する（ステップＳ８６）。
【００８５】
クライアント２００に送られた第１の秘密データをクライアント２００の送受信部（図示せず）が受信し（ステップＳ８７）、受信された秘密データは、第１の秘密データ情報格納部４３に格納される。
【００８６】
次に、第１のハッシュ値生成部１９は、第１の秘密データ情報格納部４３に格納された第１の秘密データをドキュメント情報格納部１２に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第１のハッシュ値を生成する（ステップＳ８８）。第１のハッシュ値の生成は、図１８に示したように、まず演算対象データの最初の６４バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の６４バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。図１８の例では、４回のハッシュ演算を行うことで第１のハッシュ値を求めることができる。
生成された第１のハッシュ値は、第１のハッシュ値情報格納部２０に格納される。
【００８７】
クライアント２００の送受信部（図示せず）は、第１のハッシュ値情報格納部２０に格納された第１のハッシュ値をサーバ１００へ送付する（ステップＳ８９）。
【００８８】
サーバ１００に送られた第１のハッシュ値を、サーバ１００の送受信部（図示せず）が受信し（ステップＳ９０）、受信された第１のハッシュ値は、第１のハッシュ値情報格納部４４に格納される。
【００８９】
第２ａのハッシュ値生成部４５は、第１のハッシュ値情報格納部４４に格納された第１のハッシュ値と第２の秘密データ情報格納部４２に格納された第２の秘密データから、第３のハッシュ値を生成する（ステップＳ９１）。生成された第３のハッシュ値は、第３のハッシュ値情報格納部４６に格納される。
【００９０】
実施の形態３の長期署名データ生成装置５００では、原本データとして、ドキュメント情報格納部１２に格納された署名対象データではなく、第３のハッシュ値情報格納部４６に格納された第３のハッシュ値を原本データとして継続的に管理する。
【００９１】
第２ｂのハッシュ値生成部４７は、第３のハッシュ値情報格納部４６に格納された第３のハッシュ値を対象に、第２のハッシュ値を生成する（ステップＳ９２）。生成された第２のハッシュ値は、第２のハッシュ値情報格納部２３に格納される。
【００９２】
ステップＳ９３からステップＳ９５の処理は、実施の形態１のステップＳ２２からステップＳ２４と同じであるため、説明を省略する。
【００９３】
以上のような本実施の形態３によれば、秘密データを署名対象データに付加してハッシュ演算を行うことで長期署名の原本データであるハッシュ値を作成しているのに加え、秘密データを分割し、分割した秘密データをサーバ１００とクライアント２００で分担管理することで、実施の形態１よりも安全な長期署名データ装置とすることができる。
【符号の説明】
【００９４】
１３  ドキュメントサイズ計測部、１６  秘密データ生成部、１９  第１のハッシュ値生成部、２２  第２のハッシュ値生成部、２４  長期署名データ生成部、２７  長期署名データ更新部、１００  サーバ、２００  クライアント、３００  ネットワーク、５００  長期署名データ生成装置。
【図１】
2020092336.tif 000003
【図２】
2020092336.tif 000004
【図３】
2020092336.tif 000005
【図４】
2020092336.tif 000006
【図５】
2020092336.tif 000007
【図６】
2020092336.tif 000008
【図７】
2020092336.tif 000009
【図８】
2020092336.tif 000010
【図９】
2020092336.tif 000011
【図１０】
2020092336.tif 000012
【図１１】
2020092336.tif 000013
【図１２】
2020092336.tif 000014
【図１３】
2020092336.tif 000015
【図１４】
2020092336.tif 000016
【図１５】
2020092336.tif 000017
【図１６】
2020092336.tif 000018
【図１７】
2020092336.tif 000019
【図１８】
2020092336.tif 000020
【手続補正書】
【提出日】令和2年4月1日(2020.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されたサーバとクライアントからなる長期署名データ生成装置であって、
前記サーバに設けられ、秘密データを生成する秘密データ生成部と、
前記クライアントに設けられ、署名対象データに付与する前記秘密データ生成部で生成された秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成部と、
前記サーバに設けられ、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成部と、
前記サーバに設けられ、前記第２のハッシュ値生成部で生成された前記第２のハッシュ値を対象に生成された署名値情報と前記第１のハッシュ値生成部で生成された前記第１のハッシュ値とのタイムスタンプ情報を有する長期署名データを生成する長期署名データ生成部と
を備える長期署名データ生成装置。
【請求項２】
前記クライアントに設けられ、前記署名対象データのドキュメントサイズを計測するドキュメントサイズ計測部を備えることを特徴とする請求項１に記載の長期署名データ生成装置。
【請求項３】
前記秘密データ生成部は、合わせて一つの秘密データとなる第１の秘密データと第２の秘密データとを生成し、
前記第１のハッシュ値生成部は、前記署名対象データと前記秘密データ生成部が生成した前記第１の秘密データとを対象とするハッシュ化処理により第１のハッシュ値を生成し、
前記第２のハッシュ値生成部は、前記第１のハッシュ値生成部が生成した前記第１のハッシュ値と前記秘密データ生成部が生成した前記第２の秘密データとを対象とするハッシュ化処理により第３のハッシュ値を生成し、前記第３のハッシュ値を対象とするハッシュ化処理により前記第２のハッシュ値を生成することを特徴とする請求項１または２に記載の長期署名データ生成装置。
【請求項４】
前記サーバに設けられ、前記第１のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項１または２に記載の長期署名データ生成装置。
【請求項５】
前記サーバに設けられ、前記第３のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項３に記載の長期署名データ生成装置。
【請求項６】
ネットワークを介して接続されたサーバとクライアントによって実行される長期署名データ生成方法であって、
前記サーバが秘密データを生成する秘密データ生成工程と、
前記クライアントが署名対象データに付与する前記秘密データ生成工程で生成された秘密データと前記署名対象データとを対象とするハッシュ化処理により第１のハッシュ値を生成する第１のハッシュ値生成工程と、
前記サーバが前記第１のハッシュ値生成工程が生成した前記第１のハッシュ値を対象とするハッシュ化処理により第２のハッシュ値を生成する第２のハッシュ値生成工程と、
前記サーバが前記第２のハッシュ値生成部で生成された前記第２のハッシュ値を対象に生成された署名値情報と前記第１のハッシュ値生成部で生成された前記第１のハッシュ値とのタイムスタンプ情報を有する長期署名データを生成する長期署名データ生成工程と
を有する長期署名データ生成方法。