JP6782758B2 - 長期署名データ生成装置および長期署名データ生成方法 - Google Patents

長期署名データ生成装置および長期署名データ生成方法 Download PDF

Info

Publication number
JP6782758B2
JP6782758B2 JP2018228656A JP2018228656A JP6782758B2 JP 6782758 B2 JP6782758 B2 JP 6782758B2 JP 2018228656 A JP2018228656 A JP 2018228656A JP 2018228656 A JP2018228656 A JP 2018228656A JP 6782758 B2 JP6782758 B2 JP 6782758B2
Authority
JP
Japan
Prior art keywords
data
long
hash value
term signature
signature data
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.)
Active
Application number
JP2018228656A
Other languages
English (en)
Other versions
JP2020092336A (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.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems 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 Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2018228656A priority Critical patent/JP6782758B2/ja
Publication of JP2020092336A publication Critical patent/JP2020092336A/ja
Application granted granted Critical
Publication of JP6782758B2 publication Critical patent/JP6782758B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、長期署名データを生成する装置および長期署名データを生成する方法に関する。
電子データの真正を証明するために、電子データを秘密鍵で暗号化することにより電子署名を行い、当該秘密鍵に対応する公開鍵で電子データを復号することにより検証する電子署名が広く利用されている。
電子署名は、署名などに用いた暗号アルゴリズムの危殆化、あるいは秘密鍵の漏洩などにより、適正でない者が電子データを利用してしまう状態を制限するため、有効期限が設定されている。
その一方で、電子データを長期に利用したい場合もあるが、電子署名の有効期限を長くすると、暗号アルゴリズムの危殆化によるリスクが高まってしまい、技術進歩により暗号が破られる危険性が増す。そこで、電子署名の有効性を継続させるために、電子署名データの有効期限を継続的に更新する長期署名という仕組みがある。
長期署名は、電子署名の有効期限が切れる前に、再度タイムスタンプを電子署名に付与することにより有効期限を延長していく仕組みである。
電子データ(以降署名対象データという)の長期署名データを取得する方法として、ユーザ自らが長期署名の手続きを実行できる長期署名サーバを導入する方法があるが、この場合、長期署名サーバを導入するコストがかかり、また機密情報等の電子データの管理をユーザが行う必要がある。
また、長期署名の仕組みでは、電子署名の有効期限が切れる前にタイムスタンプを電子署名に付与して新たな長期署名データ生成する更新を行う必要があるが、更新の都度、真正を証明する対象である電子データ(以降原本データという)を必要とする。このため、長期署名を行う場合は原本データとして署名対象データを継続的に管理することが必要となる。
これらの問題に対応する別の方法として、信頼できる第三者が運営する長期署名サーバを利用し、ユーザはこの第三者に長期署名データを提供してもらう方法がある。この方法の場合、ユーザにおけるサーバの導入コストや署名対象データの管理は不要となるが、機密情報等の署名対象データを第三者に預けなくてはならないという問題がある。
これらの課題に対応する方法として、特許文献1には、機密情報等の署名対象データを第三者に預けることなくユーザ側に保持したまま、第三者が運営するサーバを用いて長期署名データを提供する方法が開示されている。この特許文献1に開示された方法では、長期署名データを生成するする処理のうち、署名対象データが必要となる処理をユーザ側で行い、それ以外の処理を第三者のサーバで行う仕組みになっている。
特開2011−109202号公報
しかし、上記特許文献1に開示された方法は、長期署名の有効期限を延長する処理のうちユーザ側で行う処理において原本データとして署名対象データが必要であり、ユーザ側で署名対象データを継続的に管理する必要があるという課題がある。
本発明は、上述のような課題を解決するためになされたもので、機密情報等の署名対象データを第三者に預けることなく、継続的に署名対象データの管理をユーザ側で行わなくても長期署名データを生成できる長期署名データ生成装置を得ることを目的とする。
本発明に係る長期署名データ生成装置は、署名対象データに付与する秘密データと前記署名対象データとを対象とするハッシュ化処理により第1のハッシュ値を生成する第1のハッシュ値生成部と、前記サーバ100に設けられ、前記第1のハッシュ値生成部が生成した前記第1のハッシュ値を対象とするハッシュ化処理により第2のハッシュ値を生成する第2のハッシュ値生成部と、前記サーバ100に設けられ、前記第2のハッシュ値生成部で生成された前記第2のハッシュ値と、署名情報と前記署名情報の有効期限を示すタイムスタンプ情報とを有する長期署名データを生成する長期署名データ生成部とを備えたものである。
本発明に係る長期署名データ生成装置は、クライアント側で秘密データが付与された署名対象データを対象とするハッシュ化処理により第1のハッシュ値を生成し、サーバ側でこの第1のハッシュ値を原本データとして第2のハッシュ値生成部および長期署名データ生成部により長期署名データを生成するようにしたので、サーバは署名対象データがなくても署名対象データに基づく第1のハッシュ値に対する長期署名を行うことができ、サーバにおいて長期署名を行うのでユーザは署名対象データを継続的に保管しておく必要がない。また、保有している署名対象データの検証を行いたい者は、署名対象データに基づく第1のハッシュ値を対象としてサーバ側で生成された長期署名データと、保有する署名対象データをハッシュ化処理して得るハッシュ値とを用いることで、署名対象データの検証を行うことができる。
長期署名データ生成装置の構成図。 実施の形態1に係る長期署名データ生成装置を示す構成図。 実施の形態1に係る長期署名データ生成装置を示すH/W構成図。 実施の形態1に係る長期署名データ生成の動作を示すフロー図。 実施の形態1に係る長期署名データ生成の動作を示すフロー図。 ハッシュ値を求める手順を説明する説明図。 実施の形態1に係る長期署名データ生成部の詳細構成を示す構成図。 実施の形態1に係る長期署名データ生成部の動作を示すフロー図。 実施の形態1に係る長期署名データ生成装置において長期署名データの存在証明を行う動作を示すフロー図。 実施の形態1に係る長期署名データ生成装置において長期署名データの存在証明を行う動作を示すフロー図。 実施の形態1に係る長期署名データ生成装置において長期署名データの更新処理を行う動作を示すフロー図。 実施の形態2に係る長期署名データ生成装置を示す構成図。 実施の形態2に係る長期署名データ生成の動作を示すフロー図。 実施の形態2に係る長期署名データ生成の動作を示すフロー図。 実施の形態3に係る長期署名データ生成装置を示す構成図。 実施の形態3に係る長期署名データ生成の動作を示すフロー図。 実施の形態3に係る長期署名データ生成の動作を示すフロー図。 ハッシュ値を求める手順を説明する説明図。
実施の形態1.
図1は、本実施の形態に係る長期署名データ生成装置が適用されるシステムの構成を示す構成図である。
長期署名データ生成装置500は、長期署名データ生成サービスを提供する第三者のデータセンタ等に設置されるサーバ100と、長期署名データ生成サービスを利用するユーザの端末であるクライアント200とで構成され、ユーザがクライアント200から長期署名データの作成依頼をネットワーク300を介してサーバ100に送ると、サーバ100が長期署名データを生成し、生成した長期署名データをクライアント200へ送信するものである。なお、クライアント200は、サーバ100と同一筐体内で動作するように構成してもよい。
なお、サーバ100、クライアント200には、ネットワーク300を介して相互にデータ、ファイルを送受信する送受信部(図示せず)が設けられている。
図2は、長期署名データ生成装置500の詳細な構成を示す構成図であり、この図2では、図1で示したネットワーク300を省略している。
図2の長期署名データ生成装置500において、ドキュメントサイズ情報格納部15、秘密データ生成部16、秘密データ情報格納部17、第1のハッシュ値情報格納部21、第2のハッシュ値生成部22、第2のハッシュ値情報格納部23、長期署名データ生成部24、長期署名データ情報格納部25、長期署名データ更新部27はサーバ100に設けられており、また、長期署名作成指示部11、ドキュメント情報格納部12、ドキュメントサイズ計測部13、ドキュメントサイズ情報格納部14、秘密データ情報格納部18、第1のハッシュ値生成部19、第1のハッシュ値情報格納部20、長期署名データ情報格納部26はクライアント200に設けられている。
クライアント200に設けられたドキュメント情報格納部12は、長期署名の対象となる電子データ、すなわち署名対象データを格納するものである。この署名対象データは電子文書のデータに限らず、画像データであってもよい。
長期署名作成指示部11は、長期署名データの生成指示をユーザから受け付け、ドキュメントサイズ計測部13に、署名対象データのサイズの測定を指示する機能を有する。
ドキュメントサイズ計測部13は、長期署名作成指示部11からドキュメントサイズを測定する指示を受けると、ドキュメント情報格納部12から長期署名データの生成対象データを取得し、取得した署名対象データの容量、すなわちドキュメントサイズを計測し、計測したドキュメントサイズをドキュメントサイズ情報格納部14に格納する機能を有する。ドキュメントサイズ情報格納部14は格納したドキュメントサイズの情報を、送受信部を介してサーバ100に送る。送られたドキュメントサイズの情報はサーバ100の送受信部を介してドキュメントサイズ情報格納部15に格納される。
秘密データ生成部16は、ドキュメントサイズ情報格納部15にドキュメントサイズが格納されると、格納されたドキュメントサイズを使用して、長期署名対象データに付与する秘密データを生成し、生成した秘密データを秘密データ情報格納部17に格納する機能を有する。秘密データ情報格納部17は格納した秘密データを、送受信部を介してクライアント200に送る。送られた秘密データはクライアント200の送受信部を介して秘密データ情報格納部18に格納される。
第1のハッシュ値生成部19は、秘密データ情報格納部18に秘密データが格納されると、格納された秘密データとドキュメント情報格納部12に保持する長期署名対象データとを対象に第1のハッシュ値を生成し、生成した第1のハッシュ値を第1のハッシュ値情報格納部20に格納する機能を有する。第1のハッシュ値情報格納部20は第1のハッシュ値を、送受信部を介してサーバ100に送る。送られた第1のハッシュ値はサーバ100の送受信部を介して第1のハッシュ値情報格納部21に格納される。
第2のハッシュ値生成部22は、第1のハッシュ値情報格納部21に第1のハッシュ値が格納されると、格納された第1のハッシュ値を対象に第2のハッシュ値を生成し、生成した第2のハッシュ値を第2のハッシュ値情報格納部23に格納する機能を有する。
長期署名データ生成部24は、第2のハッシュ値情報格納部23に第2のハッシュ値が格納されると、格納された第2のハッシュ値と第1のハッシュ値情報格納部21に格納された原本データである第1のハッシュ値を対象に長期署名データを生成し、生成した長期署名データを長期署名データ情報格納部25に格納する機能を有する。
長期署名データ更新部27は、長期署名データの更新指示をユーザから受け付けると、長期署名データ情報格納部25に格納された長期署名データと第1のハッシュ値情報格納部21に格納された第1のハッシュ値とを対象に、新たな長期署名データを生成し、生成した長期署名データを長期署名データ情報格納部25に格納する機能を有する。
以上のような構成の長期署名データ生成装置500の各機能は、図3に示したようなハードウェアにより実現される。このハードウェアは、CPU(Central Processing Unit)等の処理装置110、210と、ROM(Read Only Memory)やハードディスク装置等の記憶装置120、220、他のハードウェアとネットワーク300によって接続される通信装置130、230、キーボードやマウスといった入力装置140、240と、スピーカーやディスプレイ等の出力装置150、250とがバス接続された構成となっている。なお、CPUは自身にメモリを備えていてもよい。
ドキュメントサイズ情報格納部15、秘密データ情報格納部17、第1のハッシュ値情報格納部21、第2のハッシュ値情報格納部23、長期署名データ情報格納部25は、記憶装置120により実現される。
秘密データ生成部16、第2のハッシュ値生成部22、長期署名データ生成部24は、記憶装置120に記憶されたプログラムが処理装置110で実行されることにより実現される。
ドキュメント情報格納部12、ドキュメントサイズ情報格納部14、秘密データ情報格納部18、第1のハッシュ値情報格納部20、長期署名データ情報格納部26は、記憶装置220に記憶される。
長期署名作成指示部11、ドキュメントサイズ計測部13は、第1のハッシュ値生成部19は、記憶装置220に記憶されたプログラムが処理装置210で実行されることにより実現される。
なお、長期署名データ生成装置500の各機能を実現する方法は、上記のような処理装置とプログラムの組み合わせに限らず、処理装置プログラムをインプリメントしたシステムLSI(Large Scale Integrated Circuit)のようなハードウェア単体で実現するようにしてもよいし、一部の機能を専用のハードウェアで実現し、一部を処理装置とプログラムの組み合わせで実現するようにしてもよい。
次に、以上のような構成の長期署名データ生成装置500において、最初の長期署名データを生成する動作について、図4と図5のフロー図を用いて説明する。
長期署名データ生成装置500が起動すると、長期署名作成指示部11は、長期署名データの生成指示をユーザから受け付ける状態になり、長期署名データの生成指示を受け付けると、ドキュメントサイズ計測部13に、署名対象データのドキュメントサイズの計測を指示する(ステップS11)。
ドキュメントサイズ計測部13は、長期署名作成指示部11から長期署名データの生成指示を受け、ドキュメント情報格納部12から長期署名データの作成対象となるドキュメントを取得し、署名対象データのドキュメントサイズを計測する(ステップS12)。計測されたドキュメントサイズは、ドキュメントサイズ情報格納部14に格納される。
次に、クライアント200の送受信部(図示せず)は、ドキュメントサイズ情報格納部14に格納されたドキュメントサイズをサーバ100へ送付する(ステップS13)。
サーバ100に送られたドキュメントサイズを、サーバ100の送受信部(図示せず)が受信し(ステップS14)、受信されたドキュメントサイズは、ドキュメントサイズ情報格納部15に格納される。
次に、秘密データ生成部16は、ドキュメントサイズ情報格納部15に格納されたドキュメントサイズを使用して、秘密データを生成し(ステップS15)、生成された秘密データは、秘密データ情報格納部17に格納される。
ここで、第1のハッシュ値と秘密データの生成方法について説明する。
図6は、第1のハッシュ値生成部19において、第1のハッシュ値を求める手順を説明する説明図であり、署名対象データに、秘密データ生成部16で生成される秘密データを付加して得る演算対象データに対してハッシュ演算を行うことで、第1のハッシュ値を求める様子を示している。
具体的には、演算対象データを決められたブロック長で分割し、分割された先頭の演算対象データをハッシュ演算する。得られた演算結果と分割された次の演算対象データとを合わせてハッシュ演算をする。このハッシュ演算を分割された演算対象データがなくなるまで順次行い、演算対象データに対するハッシュ値を求める。
ハッシュ演算とは、任意のデータから、固定長の乱数、すなわちハッシュ値を生成する演算処理である。このハッシュ演算では、決められたブロック長単位で演算を行う必要があるため、演算対象データをブロック長の整数倍にしておく必要がある。このため、署名対象データに付加する秘密データのサイズは、署名対象データと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように決める。
例えば、図6に示した例では、署名対象データのドキュメントサイズが224バイトであり、ハッシュ演算が処理するブロック長が64バイトである場合である。この場合、署名対象データと秘密データのサイズの合計がブロック長の整数倍となるのは、秘密データのサイズが(32バイト+64×n)の場合、すなわち、32バイト、96バイト、160バイト、・・・といったサイズの秘密データを付加する場合である。これらのサイズを持つデータが、秘密データ生成部16で生成する秘密データの候補となる。演算対象データのサイズが大きくなると演算量が増えるため、秘密データのサイズは候補の中からドキュメントサイズが小さいデータを秘密データとして採用する。図6には、秘密データのサイズを32バイトとした例を記載しているが、96バイトでも、160バイトでもよい。なお、秘密データの中身は任意のデータでよい。
このようにして、秘密データ生成部16において秘密データが生成されると、サーバ100の送受信部(図示せず)は、秘密データ情報格納部17に格納された秘密データをクライアント200へ送信する(ステップS16)。
クライアント200に送られた秘密データをクライアント200の送受信部(図示せず)が受信し(ステップS17)、受信された秘密データは、秘密データ情報格納部18に格納される。
次に、第1のハッシュ値生成部19は、秘密データ情報格納部18に格納された秘密データをドキュメント情報格納部12に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第1のハッシュ値を生成する(ステップS18)。第1のハッシュ値の生成は、図6に示したように、まず演算対象データの最初の64バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の64バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。図6の例では、5回のハッシュ演算でハッシュ値を求めることができる。
生成された第1のハッシュ値は、第1のハッシュ値情報格納部20に格納される。
クライアント200の送受信部(図示せず)は、第1のハッシュ値情報格納部20に格納された第1のハッシュ値をサーバ100へ送付する(ステップS19)。
サーバ100に送られた第1のハッシュ値を、サーバ100の送受信部(図示せず)が受信し(ステップS20)、受信された第1のハッシュ値は、第1のハッシュ値情報格納部21に格納される。
この長期署名データ生成装置500では、ドキュメント情報格納部12に格納された機密情報、非公開情報等であることが多い署名対象データではなく、第1のハッシュ値情報格納部21に格納された第1のハッシュ値を、原本データとして、サーバ100の第1のハッシュ値情報格納部21に継続的に保管する。これ以降、このようにサーバ100の第1のハッシュ値情報格納部21に格納された第1のハッシュ値に対して長期署名が行われ、長期署名データの更新すなわち新たな長期署名データを生成する際に利用されることになる。このため、ユーザは、機密情報等であることが多い署名対象データを第三者のサーバ100に預ける必要がなく、長期署名データの更新のために署名対象データを継続的に保管しておく必要がない。さらに、後述するように、保有している署名対象データの検証を行いたい者は、署名対象データに基づく第1のハッシュ値を対象としてサーバ100で生成された長期署名データと、保有する署名対象データをハッシュ化処理して得るハッシュ値とを用いることで、署名対象データの検証を行うことができる。
第2のハッシュ値生成部22は、第1のハッシュ値情報格納部21に格納された第1のハッシュ値を対象に、第2のハッシュ値を生成する(ステップS21)。生成された第2のハッシュ値は、第2のハッシュ値情報格納部23に格納される。
このステップS21の後、図5のステップS22に進み、長期署名データ生成部24は、第2のハッシュ値情報格納部23に格納された第2のハッシュ値および長期署名データ生成に必要となる原本データから長期署名データを生成する。
この第2のハッシュ値および長期署名データ生成に必要となる原本データから長期署名データを生成する処理については、通常の長期署名データを生成する処理と同じである。このステップS22の処理の動作を図7の構成図と図8のフロー図を用いて説明する。
図7は長期署名データ生成部24の詳細構成を示す構成図であり、署名値生成部241と署名値情報格納部242とタイムスタンプ付与部243とES−T情報格納部244と検証情報付与部245とES−XL情報格納部246とアーカイブタイムスタンプ生成部247からなる。
署名値生成部241は、第2のハッシュ値情報格納部23に格納された第2のハッシュ値を対象に、署名値を生成する(ステップS221)。生成された署名値は、署名値情報格納部242に格納される。
タイムスタンプ付与部243は、署名値情報格納部242に格納された署名値と第1のハッシュ値情報格納部21に格納された原本データであるハッシュ値を対象に、タイムスタンプを付与する(ステップS222)。付与されたタイムスタンプは、ES−T(Electronic Signatures−Timestamp)情報格納部244に格納される。
検証情報付与部245は、ES−T情報格納部244に格納されたタイムスタンプを付与された署名値を対象に、検証情報を付与する(ステップS223)。付与された検証情報は、ES−XL(ES−XLong)情報格納部246に格納される。
検証情報は、署名に用いた秘密鍵の証明書群と失効情報群で構成された情報である。
アーカイブタイムスタンプ生成部247は、ES−XL情報格納部246に格納されたタイムスタンプを付与された署名値と検証情報と第1のハッシュ値情報格納部21に格納された原本データであるハッシュ値とを対象に、アーカイブタイムスタンプを生成する(ステップS224)。生成されたアーカイブスタンプは長期署名データとして、長期署名データ情報格納部25に格納される。
サーバ100の送受信部(図示せず)は、長期署名データ情報格納部25に格納された長期署名データをクライアント200へ送信する(ステップS23)。
クライアント200の送受信部(図示せず)は、サーバ100から返送された長期署名データを受信する(ステップS24)。受信された長期署名データは、長期署名データ情報格納部26に格納される。
以上のようにして、長期署名データが生成され、ユーザはこの長期署名データを電子署名として機密文書等に添付して利用することで、長期署名データを添付した機密文書がユーザ利用者自身により作成され、改竄されていないことを証明することが可能となる。
次に、このようにして生成された長期署名データが添付された電子データのドキュメントを受取った者が、ドキュメントの真正を証明するために、長期署名データの存在証明を行う動作を図9、図10のフロー図を用いて説明する。なお、この長期署名データの存在証明を行う長期署名データ生成装置500は、図2に示したものと同様の構成である。このうち、クライアント200は、構成が同様であれば、長期署名データを生成したクライアント装置でもよいし、別のクライアント装置でもよい。
まず、長期署名データが付与されたドキュメントを受け取ったユーザは、長期署名データ生成装置500に対して、存在証明するドキュメントを指定し、存在証明を指示すると、長期署名作成指示部11は、ドキュメントサイズ計測部13に、署名対象データのドキュメントサイズの計測を指示する(ステップS41)。
図9のステップS42から図10のステップS54までの処理は、図4のステップS12から図5のステップS24までの処理と同じであるため、説明を省略する。
長期署名データ生成装置500は、ユーザからの存在証明指示により、指定されたドキュメントと秘密データを対象に、長期署名データを生成する。
サーバ100側において、ステップS52で生成された長期署名データは、ステップS54でユーザが使用するクライアント200の長期署名データ情報格納部26に格納される。そして、ステップS55において、ドキュメントに付与されていた長期署名データとステップS54で受信した長期署名データが検証部(図示せず)で比較し検証され、これらが一致することを確認することによって、長期署名データの存在証明を行うことができる。
次に、上記のようにして生成された長期署名データの更新処理について説明する。長期署名データには有効期限が設定されており、有効期限が切れる前に有効期限を更新する必要がある。長期署名データを更新するためには、有効期限を更新したい長期署名と、長期署名データを作成した際に使用した原本データが必要となる。
本実施の形態の長期署名データ生成装置500においては、長期署名データは、長期署名データ情報格納部25に格納されている。また、本実施の形態では、第1のハッシュ値情報格納部21で格納されている第1のハッシュ値を原本データとして使用する。
図11は長期署名データの更新処理の動作を示すフロー図である。まず、長期署名データ更新部27は、長期署名データの更新指示を受け付ける(ステップS31)。
この更新指示は、サーバ100の管理者、あるいはユーザが有効期限内に、適宜操作して行うようにしてもよいし、サーバ100内に、長期署名データの有効期限に基づいて動作するスケジューラ等を設けて、有効期限内に自動更新するようにしてもよい。
長期署名データ更新部27は、長期署名データ情報格納部25に格納されている更新対象の長期署名データを取得する(ステップS32)。
長期署名データの更新には原本データが必要となるため、長期署名データ更新部27は、第1のハッシュ値情報格納部21に格納されている原本データを取得する(ステップS33)。
長期署名データ更新部27は、更新対象の長期署名データと原本データを対象に新たな長期署名データを生成する(ステップS34)。この新たな長期署名データを生成する処理は、図4、図5のフロー図で説明した長期署名データを生成する処理ステップS22と同じである。このように生成された新たな長期署名データは、有効期限が更新されており、更新された長期署名データとして長期署名データ情報格納部25に格納される。
このように更新された長期署名データは、最初に生成された長期署名データと同様に存在証明を行うことができる。
長期署名データには有効期限があるが、上記方法によりユーザは長期署名データの有効期限を更新することが可能となり、ユーザは長期署名データを添付した機密文書がユーザ利用者自身により作成され、改竄されていないことを長期間に渡って証明することが可能となる。
以上のような本実施の形態1によれば、署名対象データから作られる第1のハッシュ値を原本データとし、原本データをサーバ100側で管理するため、クライアント200側では署名対象データの管理が不要となる。また、署名対象データから作られる第1のハッシュ値情報を原本データとしているため、機密情報等の署名対象データを外部へ提供することなく、長期署名を行える。
また、本実施の形態1によれば、秘密データを署名対象データに付加してハッシュ演算を行うことで長期署名の原本データであるハッシュ値を作成しているので、仮にハッシュ演算が危殆化したとしても、秘密データが漏洩しなければ偽の署名対象データから本物の長期署名データを作成することはできないため、本物の署名対象データの真正性を保証することができる。
なお、図2では秘密データ生成部16をサーバ100に設けたものを示したが、秘密データ生成部16をクライアント200に設ける構成としてもよい。また、第2のハッシュ値生成部22も、同様にクライアント200に設ける構成としてもよい。
実施の形態2.
本発明の実施の形態2の長期署名データ生成装置500について説明する。図12は実施の形態2の長期署名データ生成装置500の構成を示す構成図であり、図2に示した構成と同じものについては同一符号を付しており、重複する説明を省略する。
本実施の形態2の長期署名データ生成装置500が実施の形態1の長期署名データ生成装置500と異なる点は、実施の形態1で示した図2のサーバ100にあるドキュメントサイズ情報格納部15、およびクライアント200にあるドキュメントサイズ計測部13とドキュメントサイズ情報格納部14がない点であり、それ以外は、実施の形態1の長期署名データ生成装置500と同じである。
以上のような構成の長期署名データ生成装置500の動作について、図13と図14のフロー図を用いて説明する。実施の形態2の長期署名データ生成装置500は、署名対象データのドキュメントサイズを事前に計測しない点が実施の形態1と異なる。
長期署名データ生成装置500が起動すると、長期署名作成指示部11は、長期署名データの生成指示をユーザから受け付ける状態になり、長期署名データの生成指示を受け付けると、サーバ100の秘密データ生成部16に秘密データの作成を指示する(ステップS61)。
秘密データ生成部16は、秘密データを生成する(ステップS65)。ここで、実施の形態2における秘密データの生成方法について、図6を用いて説明する。
実施の形態1で説明したように、図6は第1のハッシュ値生成部19において、第1のハッシュ値を求める手順を説明する説明図であり、署名対象データに、秘密データ生成部16で生成される秘密データを付加して得る演算対象データに対してハッシュ演算を行うことで、第1のハッシュ値を求める様子を示している。
ハッシュ演算は、ハッシュ演算毎に決められたブロック長単位で演算処理を順次行いハッシュ値を求める演算処理である。
図6で説明した実施の形態1におけるクライアント200でのハッシュ演算に適正な秘密データのサイズは32バイト、96バイト、160バイト、・・・であるが、実施の形態2のサーバ100では、秘密データのサイズを決定する署名対象データのドキュメントサイズがわからないため、秘密データのサイズ決定は、後述するクライアント200で行うこととし、ここでは、後述する第1のハッシュ値で必要となる秘密データのサイズより大きいサイズを持つ秘密データを作成する。
秘密データのサイズは、ドキュメントサイズと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように秘密データのサイズを決める必要があるため、ブロック長のサイズを持つ秘密データを作成すれば十分である。よって、64バイトの秘密データを生成する。秘密データ生成部16で生成された秘密データは、秘密データ情報格納部17に格納される。
なお、実施の形態2における秘密データのサイズは、ブロック長以上のサイズであれば何バイトでも構わない。
このようにして、秘密データ生成部16において秘密データが生成されると、サーバ100の送受信部(図示せず)は、秘密データ情報格納部17に格納された秘密データをクライアント200へ送信する(ステップS66)。
クライアント200に送られた秘密データをクライアント200の送受信部(図示せず)が受信し(ステップS67)、受信された秘密データは、秘密データ情報格納部18に格納される。
次に、第1のハッシュ値生成部19は、秘密データ情報格納部18に格納された秘密データをドキュメント情報格納部12に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第1のハッシュ値を生成する(ステップS68)。
第1のハッシュ値の生成は、図6に示したように、まず演算対象データの最初の64バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の64バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。
ハッシュ演算は、実施の形態1で説明したように、署名対象データと秘密データのサイズの合計がブロック長の整数倍となるので、秘密データのサイズは64バイトになっているが、実際にハッシュ演算として利用するのは、秘密データの先頭32バイト分のみで、残りの32バイト分の秘密データは使用しない。生成された第1のハッシュ値は、第1のハッシュ値情報格納部20に格納される。
クライアント200の送受信部(図示せず)は、第1のハッシュ値情報格納部20に格納された第1のハッシュ値をサーバ100へ送付する(ステップS69)。
サーバ100に送られた第1のハッシュ値を、サーバ100の送受信部(図示せず)が受信し(ステップS70)、受信された第1のハッシュ値は、第1のハッシュ値情報格納部21に格納される。
この長期署名データ生成装置500では、ドキュメント情報格納部12に格納された機密情報等であることが多い署名対象データではなく、第1のハッシュ値情報格納部21に格納された第1のハッシュ値を原本データとしてサーバ100の第1のハッシュ値情報格納部21に継続的に保管し、長期署名データの更新すなわち新たな長期署名データを生成する際に利用する。
ステップS71からステップS74の処理は、実施の形態1のステップS21からステップS24と同じであるため、説明を省略する。
以上のような本実施の形態2によれば、クライアント200で署名対象データのドキュメントサイズを計測し、計測したドキュメントサイズをサーバ100に送付することなく、実施の形態1と同様の効果を得ることができる。
実施の形態3.
本発明の実施の形態3の長期署名データ生成装置500について説明する。図15は実施の形態3の長期署名データ生成装置500の構成を示す構成図であり、図2に示した構成については同一符号を付して、重複する説明を省略する。
本実施の形態3の長期署名データ生成装置500が実施の形態1の長期署名データ生成装置500と異なる点は、実施の形態1で示した図2のサーバ100の第2のハッシュ値生成部22の代わりに、第2aのハッシュ値生成部45と、第2bのハッシュ値生成部47を備え、秘密データ情報格納部17の代わりに、第1の秘密データ情報格納部41と第2の秘密データ情報格納部42を備え、さらに第3のハッシュ値情報格納部46を備える点である。
クライアント200の構成は、実施の形態1と同じである。
次に、以上のような構成の長期署名データ生成装置500の動作について、図16と図17を用いて説明する。
実施の形態3の長期署名データ生成装置500は、複数からなる秘密データを作成し、作成した秘密データは実施の形態1と同じであるが、サーバ100とクライアント200の双方のハッシュ化演算で使用する点が実施の形態1と異なる。
ステップS81からステップS84の処理は、実施の形態1のステップS21からステップS24と同じであるため、説明を省略する。
秘密データ生成部16は、ドキュメントサイズ情報格納部15に格納されたドキュメントサイズを対象に、合わせて一つの秘密データとなる第1の秘密データと第2の秘密データとを生成する(ステップS85)。
ここで、実施の形態3における秘密データの生成方法について、図18を用いて説明する。
実施の形態1、実施の形態2で説明したように、長期署名データ生成装置500では、長期署名データを生成する過程でハッシュ演算を利用する。
ハッシュ演算は、ハッシュ演算毎に決められたブロック長単位で演算処理を順次行いハッシュ値を求める演算処理である。
秘密データのサイズは、ドキュメントサイズと秘密データの合計のサイズが、ハッシュ演算で使用するブロック長の整数倍となるように秘密データのサイズを決める必要がある。
図18の例では、ドキュメントサイズが224バイトのドキュメントに対して、ハッシュ演算が処理するブロック長のサイズが64バイトとなっている。この場合、ドキュメントサイズと秘密データのサイズの合計が、ブロック長の整数倍となるのは、秘密データのサイズが32バイト、96バイト、160バイト、・・・のサイズを持つ場合であり、これらのサイズを持つデータが秘密データの候補となる。
ドキュメントサイズが大きくなると処理効率が落ちるため、秘密データは候補の中からドキュメントサイズが小さいデータを秘密データとして採用する。
図18の例では、秘密データとして96バイトとした例を記載している。実施の形態3では、この秘密データを96バイトのうち先頭32バイトを第1の秘密データとし、残りの64バイトを第2の秘密データとする。
生成された第1の秘密データは第1の秘密データ情報格納部41に、第2の秘密データは、第2の秘密データ情報格納部42に格納される。
このようにして、秘密データ生成部16において秘密データが生成されると、サーバ100の送受信部(図示せず)は、第1の秘密データ情報格納部41に格納された第1の秘密データをクライアント200へ送信する(ステップS86)。
クライアント200に送られた第1の秘密データをクライアント200の送受信部(図示せず)が受信し(ステップS87)、受信された秘密データは、第1の秘密データ情報格納部43に格納される。
次に、第1のハッシュ値生成部19は、第1の秘密データ情報格納部43に格納された第1の秘密データをドキュメント情報格納部12に格納された署名対象データに付加した演算対象データを生成し、この生成されたデータを対象としたハッシュ演算を行って第1のハッシュ値を生成する(ステップS88)。第1のハッシュ値の生成は、図18に示したように、まず演算対象データの最初の64バイトを用いてハッシュ演算し、得られたハッシュ値と演算対象データの次の64バイトとを用いてハッシュ演算し、これを演算対象データの最後まで繰り返すことで行われる。図18の例では、4回のハッシュ演算を行うことで第1のハッシュ値を求めることができる。
生成された第1のハッシュ値は、第1のハッシュ値情報格納部20に格納される。
クライアント200の送受信部(図示せず)は、第1のハッシュ値情報格納部20に格納された第1のハッシュ値をサーバ100へ送付する(ステップS89)。
サーバ100に送られた第1のハッシュ値を、サーバ100の送受信部(図示せず)が受信し(ステップS90)、受信された第1のハッシュ値は、第1のハッシュ値情報格納部44に格納される。
第2aのハッシュ値生成部45は、第1のハッシュ値情報格納部44に格納された第1のハッシュ値と第2の秘密データ情報格納部42に格納された第2の秘密データから、第3のハッシュ値を生成する(ステップS91)。生成された第3のハッシュ値は、第3のハッシュ値情報格納部46に格納される。
実施の形態3の長期署名データ生成装置500では、原本データとして、ドキュメント情報格納部12に格納された署名対象データではなく、第3のハッシュ値情報格納部46に格納された第3のハッシュ値を原本データとして継続的に管理する。
第2bのハッシュ値生成部47は、第3のハッシュ値情報格納部46に格納された第3のハッシュ値を対象に、第2のハッシュ値を生成する(ステップS92)。生成された第2のハッシュ値は、第2のハッシュ値情報格納部23に格納される。
ステップS93からステップS95の処理は、実施の形態1のステップS22からステップS24と同じであるため、説明を省略する。
以上のような本実施の形態3によれば、秘密データを署名対象データに付加してハッシュ演算を行うことで長期署名の原本データであるハッシュ値を作成しているのに加え、秘密データを分割し、分割した秘密データをサーバ100とクライアント200で分担管理することで、実施の形態1よりも安全な長期署名データ装置とすることができる。
13 ドキュメントサイズ計測部、16 秘密データ生成部、19 第1のハッシュ値生成部、22 第2のハッシュ値生成部、24 長期署名データ生成部、27 長期署名データ更新部、100 サーバ、200 クライアント、300 ネットワーク、500 長期署名データ生成装置。

Claims (6)

  1. ネットワークを介して接続されたサーバとクライアントからなる長期署名データ生成装置であって、
    前記サーバに設けられ、秘密データを生成する秘密データ生成部と、
    前記クライアントに設けられ、署名対象データに付与する前記秘密データ生成部で生成された秘密データと前記署名対象データとを対象とするハッシュ化処理により第1のハッシュ値を生成する第1のハッシュ値生成部と、
    前記サーバに設けられ、前記第1のハッシュ値生成部が生成した前記第1のハッシュ値を対象とするハッシュ化処理により第2のハッシュ値を生成する第2のハッシュ値生成部と、
    前記サーバに設けられ、前記第2のハッシュ値生成部で生成された前記第2のハッシュ値を対象に生成された署名値情報と前記第1のハッシュ値生成部で生成された前記第1のハッシュ値とのタイムスタンプ情報有する長期署名データを生成する長期署名データ生成部と
    を備える長期署名データ生成装置。
  2. 前記クライアントに設けられ、前記署名対象データのドキュメントサイズを計測するドキュメントサイズ計測部を備えることを特徴とする請求項に記載の長期署名データ生成装置。
  3. 前記秘密データ生成部は、合わせて一つの秘密データとなる第1の秘密データと第2の秘密データとを生成し、
    前記第1のハッシュ値生成部は、前記署名対象データと前記秘密データ生成部が生成した前記第1の秘密データとを対象とするハッシュ化処理により第1のハッシュ値を生成し、
    前記第2のハッシュ値生成部は、前記第1のハッシュ値生成部が生成した前記第1のハッシュ値と前記秘密データ生成部が生成した前記第2の秘密データとを対象とするハッシュ化処理により第3のハッシュ値を生成し、前記第3のハッシュ値を対象とするハッシュ化処理により前記第2のハッシュ値を生成することを特徴とする請求項またはに記載の長期署名データ生成装置。
  4. 前記サーバに設けられ、前記第1のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項1または2に記載の長期署名データ生成装置。
  5. 前記サーバに設けられ、前記第3のハッシュ値と前記長期署名データを対象に新たな長期署名データを生成する長期署名データ更新部を備える請求項に記載の長期署名データ生成装置。
  6. ネットワークを介して接続されたサーバとクライアントによって実行される長期署名データ生成方法であって、
    前記サーバが秘密データを生成する秘密データ生成工程と、
    前記クライアントが署名対象データに付与する前記秘密データ生成工程で生成された秘密データと前記署名対象データとを対象とするハッシュ化処理により第1のハッシュ値を生成する第1のハッシュ値生成工程と、
    前記サーバが前記第1のハッシュ値生成工程が生成した前記第1のハッシュ値を対象とするハッシュ化処理により第2のハッシュ値を生成する第2のハッシュ値生成工程と、
    前記サーバが前記第2のハッシュ値生成部で生成された前記第2のハッシュ値を対象に生成された署名値情報と前記第1のハッシュ値生成部で生成された前記第1のハッシュ値とのタイムスタンプ情報有する長期署名データを生成する長期署名データ生成工程と
    有する長期署名データ生成方法。
JP2018228656A 2018-12-06 2018-12-06 長期署名データ生成装置および長期署名データ生成方法 Active JP6782758B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018228656A JP6782758B2 (ja) 2018-12-06 2018-12-06 長期署名データ生成装置および長期署名データ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018228656A JP6782758B2 (ja) 2018-12-06 2018-12-06 長期署名データ生成装置および長期署名データ生成方法

Publications (2)

Publication Number Publication Date
JP2020092336A JP2020092336A (ja) 2020-06-11
JP6782758B2 true JP6782758B2 (ja) 2020-11-11

Family

ID=71013176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018228656A Active JP6782758B2 (ja) 2018-12-06 2018-12-06 長期署名データ生成装置および長期署名データ生成方法

Country Status (1)

Country Link
JP (1) JP6782758B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3998640B2 (ja) * 2004-01-16 2007-10-31 株式会社東芝 暗号化及び署名方法、装置及びプログラム
JP4624235B2 (ja) * 2004-10-28 2011-02-02 三洋電機株式会社 コンテンツ利用情報提供装置およびコンテンツ利用情報送信方法
DE102005030590B4 (de) * 2005-06-30 2011-03-24 Advanced Micro Devices, Inc., Sunnyvale Sicheres Patchsystem
JP2009194443A (ja) * 2008-02-12 2009-08-27 Ntt Data Corp 署名システム及び方法、ならびに、コンピュータプログラム
JP5105291B2 (ja) * 2009-11-13 2012-12-26 セイコーインスツル株式会社 長期署名用サーバ、長期署名用端末、長期署名用端末プログラム
JP5700422B2 (ja) * 2011-02-23 2015-04-15 セイコーインスツル株式会社 長期署名用端末、長期署名用サーバ、長期署名用端末プログラム、及び長期署名用サーバプログラム

Also Published As

Publication number Publication date
JP2020092336A (ja) 2020-06-11

Similar Documents

Publication Publication Date Title
US9800416B2 (en) Distributed validation of digitally signed electronic documents
EP3130104B1 (en) System and method for sequential data signatures
JP5147412B2 (ja) 楕円曲線乱数生成
Barsoum et al. Enabling dynamic data and indirect mutual trust for cloud computing storage systems
JP5419056B2 (ja) Cartier対形成の暗号化適用
US7047404B1 (en) Method and apparatus for self-authenticating digital records
JP5576985B2 (ja) 署名に用いる暗号アルゴリズムの決定方法、検証サーバおよびプログラム
WO2019170168A2 (en) Method for restoring public key based on sm2 signature
Bhatia et al. Towards a secure incremental proxy re‐encryption for e‐healthcare data sharing in mobile cloud computing
US20170374033A1 (en) Authentication via revocable signatures
US8468339B2 (en) Efficient security information distribution
JP4844281B2 (ja) ドキュメント管理装置及びプログラム
Lee et al. Firmware verification of embedded devices based on a blockchain
JP5458657B2 (ja) 情報処理装置、鍵更新方法、及びプログラム
WO2008080733A1 (en) A configuration mechanism for flexible messaging security protocols
US20230299975A1 (en) Time-based digital signature
TW202318833A (zh) 臨界簽章方案
KR20120091618A (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
JP4846464B2 (ja) 複数公開鍵の証明書を発行及び検証するシステム、並びに、複数公開鍵の証明書を発行及び検証する方法
CN112184441B (zh) 数据处理方法、装置、节点设备及存储介质
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
JP6782758B2 (ja) 長期署名データ生成装置および長期署名データ生成方法
JP2008506293A (ja) デジタル認証機能を提供する方法
JP2021521748A (ja) 物理的複製困難関数を使用して暗号鍵をオンボードで生成するための方法
US11552804B1 (en) Code sign white listing (CSWL)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200401

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: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201020

R150 Certificate of patent or registration of utility model

Ref document number: 6782758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250