(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105143
(43)【公開日】2024-08-06
(54)【発明の名称】情報処理プログラム、情報処理方法及び情報処理装置
(51)【国際特許分類】
G06F 21/64 20130101AFI20240730BHJP
H04L 9/32 20060101ALI20240730BHJP
【FI】
G06F21/64
H04L9/32 200B
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023009727
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】田中 昌弘
(72)【発明者】
【氏名】鳥山 陽平
(72)【発明者】
【氏名】角田 忠信
(72)【発明者】
【氏名】野村 佳秀
(57)【要約】
【課題】デジタル署名処理を効率化する情報処理プログラム、情報処理方法及び情報処理装置を提供する。
【解決手段】デジタル署名の署名依頼を端末装置から受信して、端末装置を待機させ、署名対象のファイルに対する署名処理の総処理時間が第1所定時間を超えるか否かを判定し、第1所定時間を超えない場合、端末装置を待機させた状態で第1署名処理を実行して処理結果を通知し、第1所定時間を超える場合、署名処理の識別情報を発行して端末装置に通知して待機を解除させ、識別情報に対応付けて第2署名処理を実行し、第2署名処理の完了後、識別情報を端末装置から受信して、処理結果を端末装置に通知する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
デジタル署名の署名依頼を端末装置から受信して、前記端末装置を待機させ、
署名対象のファイルに対する署名処理の総処理時間が第1所定時間を超えるか否かを判定し、
前記総処理時間が前記第1所定時間を超えない場合、前記端末装置を待機させた状態で第1署名処理を実行して処理結果を通知し、
前記総処理時間が前記第1所定時間を超える場合、前記署名処理の識別情報を発行して前記端末装置に前記識別情報を通知して待機を解除させ、前記識別情報に対応付けて第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記第1署名処理の実行による経過時間が第2所定時間を超えた場合、前記第1署名処理を中断し、前記識別情報を発行して前記端末装置に前記識別情報を通知して待機を解除させ、前記識別情報に対応付けて前記第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記第1署名処理の進捗状況を監視し、前記進捗状況を基に前記第1署名処理の総処理時間が第2所定時間を超えるか否かを判定し、
第2所定時間を超える場合、前記第1署名処理を中断し、前記識別情報を発行して前記端末装置に前記識別情報を通知して待機を解除させ、前記識別情報に対応付けて前記第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項4】
複数のデジタル署名を前記ファイルに付加する署名依頼を受信し、
前記デジタル署名毎に、署名処理の総処理時間が第1所定時間を超えるか否かを判定し、前記総処理時間が前記第1所定時間を超えない場合、前記端末装置を待機させた状態で第1署名処理を実行して処理結果を通知し、前記総処理時間が前記第1所定時間を超える場合、前記署名処理の識別情報を発行して前記端末装置に前記識別情報を通知して待機を解除させ、前記識別情報に対応付けて第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知することで、前記複数のデジタル署名を合成して前記ファイルに付加する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
情報処理装置が、
デジタル署名の署名依頼を端末装置から受信して、前記端末装置を待機させ、
署名対象のファイルに対する署名処理の総処理時間が第1所定時間を超えるか否かを判定し、
前記総処理時間が前記第1所定時間を超えない場合、前記端末装置を待機させた状態で第1署名処理を実行して処理結果を通知し、
前記総処理時間が前記第1所定時間を超える場合、前記署名処理の識別情報を発行して前記端末装置に通知して待機を解除させ、前記識別情報に対応付けて第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する
処理を実行することを特徴とする情報処理方法。
【請求項6】
デジタル署名の署名依頼を端末装置から受信して、前記端末装置を待機させる文書取得部と、
署名対象のファイルに対する署名処理の総処理時間が第1所定時間を超えるか否かを判定する判定部と、
前記総処理時間が前記第1所定時間を超えない場合、前記端末装置を待機させ第1署名処理の完了後に処理結果を通知し、前記総処理時間が前記第1所定時間を超える場合、前記署名処理の識別情報を発行して前記端末装置に通知して待機を解除させ、第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する応答部と、
前記総処理時間が前記第1所定時間を超えない場合、前記第1署名処理を実行する署名同期処理部と、
前記総処理時間が前記第1所定時間を超える場合、前記識別情報に対応付けて前記第2署名処理を実行する署名非同期処理部と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法及び情報処理装置に関する。
【背景技術】
【0002】
従来、文書ファイルの改ざん防止のため、文書ファイルに対してデジタル署名が付与されることがある。デジタル署名は、文書ファイルの属性情報部分や圧縮ファイルのマニフェスト情報部分等の文書ファイルの見えない部分に書き込まれることが一般的である。文書ファイルに対するデジタル署名は1つとは限らず、複数の署名がなされる場合もある。
【0003】
例えば、デジタル署名Webサーバが、利用者から署名依頼とともに文書ファイルを受信して、承認者や決裁者などからの署名を受け付けて、文書ファイルに受け付けた署名を付与して利用者に返送することで、文書ファイルに対する署名の付与が行われる。このようなデジタル署名Webサーバを用いて文書ファイルに対して署名を付与する署名処理には、同期処理と非同期処理という2つの処理方法が存在する。
【0004】
例えば、文書ファイルのファイルサイズが大きい場合、文書ファイルの取得や読み出しに時間がかかる等、署名処理全体として時間がかかるため、利用者の接続がタイムアウトする等して、1回の通信では処理が終わらない可能性がある。そこで、このような場合には、利用者が、デジタル署名Webサーバに対して署名処理を受け付ける通信を1度行った後で、時間差をおいてデジタル署名Webサーバに対して再度通信を行って結果を取得する非同期処理が有効である。
【0005】
一方で、文書ファイルが小規模の場合、デジタル署名Webサーバは、通常は数秒以内で署名が可能である。そのため、このような場合には、通信を2回に分ける非同期処理は非効率であり、デジタル署名Webサーバが1回の通信の署名依頼に対するレスポンスで利用者に対して署名結果を返す同期処理が有効である。
【0006】
ここで、署名依頼に対する応答までの一連の処理の中で署名処理を行う場合、すなわち署名依頼の処理と署名処理とを同期させて行う場合が同期処理である。また、署名依頼の処理とは別に署名処理を行う場合、すなわち署名依頼の処理と署名処理とを非同期で行う場合が非同期処理である。
【0007】
このようなデジタル署名に関する技術として、例えば、外部からダウンロードしたファイルの一部を読み出して、読み出した部分に付加された署名を確認して署名確認の時間を短縮する技術が提案されている。他にも、複数の検証タイプの中から、検証対象のデータモデル、データサイズ、CPU負荷及び通信時間が同一の場合に検証時間が1番小さい検証タイプを最適な検証方法として選択する技術が提案されている。また、楕円曲線デジタル署名を行うコンピューティングエンジンを使用してメッセージハッシュを受信する前にデジタル署名の一部を事前計算し、メッセージハッシュの受信後にデジタル署名を完了させる技術が提案されている。さらに、電子署名装置が、入力データを複数のブロックに分割して、ブロックのそれぞれに対応する電子署名を生成し、電子署名のいくつかをランダムに選択して検証に用いる技術が提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008-305035号公報
【特許文献2】特開2007-281770号公報
【特許文献3】米国特許出願公開第2015/0188713号明細書
【特許文献4】米国特許出願公開第2009/0204818号明細書
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、利用者が、文書ファイルの大きさやデジタル署名Webサーバのスペックを把握し、把握した情報を基に処理時間を予測して、同期処理を行うか非同期処理を行うかを使い分けることは困難である。このように、利用者に判断を任せた場合、文書ファイルへの署名を求める場合に同期処理又は非同期処理を適切に選択させることは難しく、デジタル署名処理を効率化することは困難であった。
【0010】
また、上述したデジタル署名に関する技術のいずれも、同期処理及び非同期処理の使い分けについては考慮しておらず、デジタル署名処理を効率化することは困難であった。
【0011】
開示の技術は、上記に鑑みてなされたものであって、デジタル署名処理を効率化する情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の一つの態様において、コンピュータに、デジタル署名の署名依頼を端末装置から受信して、前記端末装置を待機させ、署名対象のファイルに対する署名処理の総処理時間が第1所定時間を超えるか否かを判定し、前記総処理時間が前記第1所定時間を超えない場合、前記端末装置を待機させた状態で第1署名処理を実行して処理結果を通知し、前記総処理時間が前記第1所定時間を超える場合、前記署名処理の識別情報を発行して前記端末装置に通知して待機を解除させ、前記識別情報に対応付けて第2署名処理を実行し、前記第2署名処理の完了後、前記識別情報を前記端末装置から受信して、処理結果を前記端末装置に通知する処理を実行させる。
【発明の効果】
【0013】
1つの側面では、本発明は、デジタル署名処理を効率化することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、実施例1に係るデジタル署名Webサーバのブロック図である。
【
図2】
図2は、署名処理の情報の一例を示す図である。
【
図3】
図3は、非同期処理で署名処理が実行される場合の概要を示す図である。
【
図4】
図4は、デジタル署名Webサーバを用いる際に利用者端末に表示される情報の一例を示す図である。
【
図5】
図5は、デジタル署名Webサーバによる文書ファイルへ署名を付加する処理のフローチャートである。
【
図6】
図6は、非同期処理の署名処理における結果確認要求に対する応答処理のフローチャートである。
【
図7】
図7は、実施例1に係るデジタル署名Webサーバによる署名処理のフローチャートである。
【
図8】
図8は、集約署名サービスの一例の流れを示す図である。
【
図9】
図9は、実施例2に係るデジタル署名Webサーバによる署名処理のフローチャートである。
【
図10】
図10は、デジタル署名Webサーバのハードウェア構成図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理プログラム、情報処理方法及び情報処理装置が限定されるものではない。
【実施例0016】
図1は、実施例1に係るデジタル署名Webサーバのブロック図である。デジタル署名システム1は、利用者端末20及びデジタル署名Webサーバ10を有する。
【0017】
利用者端末20は、利用者Aが文書ファイルに対するデジタル署名を依頼する際に利用する端末装置である。利用者端末20は、デジタル署名Webサーバ10にネットワークで接続される。
【0018】
デジタル署名Webサーバ10は、利用者Aから提供された文書ファイルにデジタル署名を付与する装置である。デジタル署名Webサーバ10は、
図1に示すように、アカウント登録部11、記憶部12、文書取得部13、判定部14、応答部15、署名同期処理部16、署名非同期処理部17及び切替部18を有する。
【0019】
アカウント登録部11は、利用者Aによるアカウントの登録要求を利用者端末20から受信する。アカウントの登録要求には、利用者AのID(Identifier)、パスワード及び署名鍵が含まれる。次に、アカウント登録部11は、ID及びパスワードを関連付けて利用者Aのアカウントとして記憶部12に格納してアカウントの登録を行う。さらに、アカウント登録部11は、利用者Aのアカウントに関連付けて署名鍵を記憶部12に格納して署名鍵の登録を行う。その後、アカウント登録部11は、アカウント及び署名鍵の登録の完了通知を利用者端末20へ送信して、利用者Aにアカウント及び署名鍵の登録の完了を通知する。
【0020】
記憶部12は、利用者Aを含む複数の利用者のアカウント及びそれぞれのアカウントに対応付けられた署名鍵を記憶して保持する。
【0021】
文書取得部13は、利用者Aからの署名依頼を利用者端末20から受信する。書名依頼には、依頼人である利用者AのID及びパスワード、並びに、署名を付与する対象となる文書ファイル又はその格納場所の情報が含まれる。以下の説明では、利用者Aから文書ファイルが送られてきた場合で説明する。次に、文書取得部13は、取得した利用者AのID及びパスワード、並びに、文書ファイルを判定部14へ出力する。
【0022】
判定部14は、利用者AのID及びパスワード、並びに、文書ファイルを文書取得部13から受信する。ここで、利用者Aから文書ファイルの格納場所が指定されている場合、判定部14は、指定された格納場所から文書ファイルを取得する。例えば、文書ファイルの格納場所としてクラウドストレージ2が指定されている場合、判定部4は、クラウドストレージ2から文書ファイルを取得する。
【0023】
判定部14は、過去に行った署名処理について、各署名処理にかかった処理時間をその署名処理の対象とした文書ファイルのサイズを示す情報と共に署名処理の情報として保持する。そして、判定部14は、過去の署名処理の情報を基に、過去の署名処理の特徴量から取得した文書ファイルの署名処理にかかる時間を線形予測する。
【0024】
図2は、署名処理の情報の一例を示す図である。例えば、判定部14は、
図2に示す各項目の情報を過去の署名処理について保持する。具体的には、判定部14は、過去の署名処理における、対象の文書ファイルのファイルサイズ及びファイル個数、署名者数、並びに、総処理時間を署名処理の情報として保持する。ここで、ファイル個数は、文書ファイルが圧縮ファイルの場合に複数となる。ファイルサイズは、ファイル個数分の文書ファイル全体のサイズである。
図2の紙面に向かって最下段のファイルサイズ及び署名者数は、今回の署名の対象とする文書ファイルの情報を表す。
【0025】
この場合に、判定部14は、例えば、過去の署名処理の情報に対して重回帰モデルを適用して総処理時間の線形予測式を、Y=65+10×X1+173×X2+10×X3+εとして表すことができる。ここで、ファイルサイズがX1であり、ファイル個数がX2であり、署名者数がX3であり、εは残差であり、総処理時間がYである。そして、判定部14は、今回の署名の対象とする文書ファイルの情報を総処理時間の線形予測式に用いて、欄110にあたる総処理時間を約5825秒と予測する。以下では、この判定部14により予測された処理対象の署名処理の総処理時間を、「第1予測時間」と呼ぶ。
【0026】
また、判定部14は、署名処理の処理時間が長くかかると予測されるため、署名処理を非同期処理で行うと判定するための判定閾値時間を予め保持する。第1予測時間の予測後、判定部14は、第1予測時間が判定閾値時間未満か否かを判定する。
【0027】
第1予測時間が判定閾値時間未満であれば、判定部14は、同期処理により署名処理を実行することを決定する。そして、判定部14は、署名処理の実行を署名同期処理部16に指示する。
【0028】
これに対して、第1予測時間が判定閾値時間以上であれば、判定部14は、非同期処理により署名処理を実行することを決定する。そして、判定部14は、処理対象の署名処理に対する署名処理IDを発行する。その後、判定部14は、発行した署名処理IDに処理対象の署名処理を紐づけて、その署名処理の実行を署名非同期処理部17に指示する。さらに、判定部14は、署名依頼の受理及び署名処理IDの通知を応答部15に指示する。
【0029】
署名同期処理部16は、判定部14及び応答部15を動作させるプログラムと同じプログラムにより動作することが可能である。署名同期処理部16は、第1予測時間が判定閾値時間未満の場合に、署名処理の実行の指示を判定部14から受ける。この際、署名同期処理部16は、利用者AのID及びパスワード、並びに、文書ファイルを判定部14から取得する。ここで、利用者Aから文書ファイルの格納場所が指定されている場合、署名同期処理部16は、指定された格納場所から文書ファイルを取得する。例えば、文書ファイルの格納場所としてクラウドストレージ2が指定されている場合、署名同期処理部16は、クラウドストレージ2から文書ファイルを取得する。そして、署名同期処理部16は、文書ファイルに対して署名処理を実行して、文書ファイルに署名を付加する。以下に、署名処理の詳細について説明する。
【0030】
署名同期処理部16は、文書ファイルが圧縮ファイルか否かを判定する。文書ファイルが圧縮ファイルの場合、署名同期処理部16は、圧縮ファイルを展開する。また、署名同期処理部16は、署名依頼で指定された署名対象の文書ファイルのファイルリストを取得する。ここで、署名依頼にファイルリストが含まれていない場合、署名同期処理部16は、取得した文書ファイルからファイルリストを生成してもよい。さらに、署名同期処理部16は、利用者IDとパスワードとから認証されるアカウントに対応付けられた署名鍵を記憶部12から取得する。
【0031】
署名同期処理部16は、ファイルリストに登録された文書ファイルの中から未選択のファイルを1つ選択する。次に、署名同期処理部16は、選択した文書ファイルのハッシュ値を計算する。次に、署名同期処理部16は、計算したハッシュ値を署名鍵で暗号化してデジタル署名値を算出する。そして、署名同期処理部16は、算出したデジタル署名値を文書ファイルに格納して署名を付加した署名済み文書ファイルを作成する。署名同期処理部16は、ファイルリストの中から1つずつ文書ファイルを選択して以上の署名処理をファイルリストに登録された全ての文書ファイルに対して実行する。
【0032】
ファイルリストに登録された全ての文書ファイルに対する署名処理が完了すると、署名同期処理部16は、署名済み文書ファイルとともに署名依頼に対する応答指示を応答部15へ出力する。ここで、文書ファイルが圧縮ファイルであった場合、署名同期処理部16は、署名済み文書ファイルを圧縮する。そして、署名同期処理部16は、圧縮後の署名済み文書ファイルを応答部15へ出力する。
【0033】
また、文書ファイルの格納場所が指定されている場合、署名同期処理部16は、署名済み文書ファイルを指定された格納場所に格納する。この場合、署名同期処理部16は、署名済み文書ファイルの格納場所の情報とともに署名依頼に対する応答指示を応答部15へ出力する。例えば、格納場所としてクラウドストレージ2が指定されている場合、署名同期処理部16は、クラウドストレージ2における署名済み文書ファイルの格納場所のリンクとともに署名依頼に対する応答指示を応答部15へ出力する。
【0034】
署名非同期処理部17は、判定部14及び応答部15を動作させるプログラムとは異なるプログラムにより動作することが可能である。署名非同期処理部17は、署名処理の第1予測時間が判定閾値時間以上の場合に、署名処理の実行の指示を判定部14から受ける。また、切替部18により署名処理の同期処理から非同期処理への切り替えが決定された場合に、署名非同期処理部17は、署名処理の実行の指示を切替部18から受ける。
【0035】
この際、署名非同期処理部17は、利用者AのID及びパスワード、並びに、文書ファイルを判定部14から取得する。ここで、利用者Aから文書ファイルの格納場所が指定されている場合、署名非同期処理部17は、指定された格納場所から文書ファイルを取得する。例えば、文書ファイルの格納場所としてクラウドストレージ2が指定されている場合、署名非同期処理部17は、クラウドストレージ2から文書ファイルを取得する。そして、署名非同期処理部17は、文書ファイルに対して署名処理を実行して、文書ファイルに署名を付加する。署名非同期処理部17は、署名同期処理部16と同様の署名処理を実行する。
【0036】
署名処理完了後、署名非同期処理部17は、処理対象の署名処理に紐づけられた署名処理IDを取得する。そして、署名非同期処理部17は、署名済み文書ファイル及び署名IDを応答部15へ出力する。また、文書ファイルの格納場所が指定されている場合であれば、署名非同期処理部17は、署名済み文書ファイルの格納場所の情報及び署名IDを応答部15へ出力する。
【0037】
切替部18は、署名同期処理部16による署名処理の進捗状況を監視する。そして、切替部18は、予め決められた一定時間毎に署名処理が終了したか否かを確認する。署名処理が終了した場合、切替部18は、署名同期処理部16による署名処理の監視を終了する。
【0038】
一方、署名処理が終了していない場合、切替部18は、署名同期処理部16が実行中の署名処理のその時点までの経過時間が切替閾値時間を超えているか否かを確認する。その時点までの経過時間が切替閾値時間を超えている場合、切替部18は、署名処理の非同期処理への切り替えを決定する。
【0039】
また、その時点までの経過時間が切替閾値時間以下の場合、切替部18は、署名同期処理部16が実行中の署名処理のうち完了した署名処理の進捗状況から、署名同期処理部16が実行中の署名処理にかかる総処理時間を予測する。例えば、文書ファイルのファイル数に比例して処理時間がかかるとの仮定から、切替部18は、その時点までの経過時間を署名処理が完了したファイル数で除算した結果に全ファイル数を乗算して、署名同期処理部16が実行中の署名処理にかかる総処理時間の予測時間を算出する。すなわち、「署名処理にかかる総処理時間=(その時点までの経過時間/署名処理が完了したファイル数)×全ファイル数」である。
【0040】
例えば、ファイルリストに登録されたファイル数が200個であり、その時点までの経過時間が120秒であり、署名処理が完了したファイル数が100個の場合を例に説明する。この場合、切替部18は、署名処理にかかる総処理時間を約240秒(=(120/100)×200)と予測する。以下では、切替部18により算出された署名処理の総処理時間の予測時間を「第2予測時間」と呼ぶ。
【0041】
切替部18は、署名処理の処理時間が長くかかるため非同期で署名処理を実行した方が良いと判定して、署名処理を同期処理から非同期処理に切り替えるための切替閾値時間を予め保持する。本実施例では、切替閾値時間は判定閾値時間と同一である。ただし、切替閾値時間と判定閾値時間とは異なってもよい。切替部18は、第2予測時間が切替閾値時間を超えるか否かを確認する。第2予測時間が切替閾値時間を超える場合、切替部18は、署名処理の非同期処理への切り替えを決定する。これに対して、第2予測時間が切替閾値時間以下の場合、切替部18は、署名処理を署名同期処理部16に継続させる。
【0042】
署名処理の非同期処理への切り替えを決定すると、切替部18は、署名同期処理部16による署名処理を中断させる。そして、切替部18は、処理対象の署名処理に対する署名処理IDを発行する。その後、切替部18は、発行した署名処理IDに処理対象の署名処理を紐づけて、その署名処理の実行を署名非同期処理部17に指示する。この際、署名同期処理部16により途中まで実行された署名処理において、渡すことが可能な処理済みのデータがあれば、切替部18は、その処理済みのデータを渡して署名非同期処理部17に途中から署名処理を開始させてもよい。さらに、切替部18は、署名依頼の受理及び署名処理IDの通知を応答部15に指示する。
【0043】
応答部15は、第1予測時間が判定閾値時間未満の場合、署名済み文書ファイル又はその格納場所の情報とともに署名依頼に対する応答指示の通知を署名同期処理部16から受ける。そして、応答部15は、署名依頼に対する応答として、署名済み文書ファイル又はその格納場所の情報を利用者端末20へ送信する。
【0044】
また、応答部15は、第1予測時間が判定閾値時間以上の場合、署名依頼の受理及び署名処理IDの通知を判定部14から受ける。また、応答部15は、第2予測時間が切替閾値時間を超えている場合に、署名依頼の受理及び署名処理IDの通知を切替部18から受ける。署名依頼の受理及び署名処理IDの通知受けて、応答部15は、署名依頼に対する応答として、署名依頼の受理及び署名処理IDを利用者端末20へ送信して、利用者Aに通知する。その後、応答部15は、署名済み文書ファイル又はその格納場所の情報、及び、署名処理IDの入力を署名非同期処理部17から受けて、それらを保持する。
【0045】
その後、応答部15は、利用者からの結果確認要求を確認対象の署名処理を指定する署名処理IDとともに利用者端末20から受信する。そして、応答部15は、受信した署名処理IDに対応する署名済み文書ファイル又はその格納場所の情報を保持するか否かを確認する。
【0046】
署名処理IDに対応するデータを保持していない場合、応答部15は、指定された署名処理が完了していないと判定して、未完エラーを利用者端末20へ送信する。これに対して、署名処理IDに対応するデータを保持している場合、応答部15は、結果確認依頼に対する応答として、署名処理IDに対応する署名済み文書ファイル又はその格納場所の情報を利用者端末20へ送信する。
【0047】
図3は、非同期処理で署名処理が実行される場合の概要を示す図である。次に、
図3を参照して、非同期処理で署名処理が実行される場合の概要をまとめて説明する。
【0048】
利用者Aは、利用者端末20を用いて署名依頼をデジタル署名Webサーバ10へ送信する(ステップS1)。
【0049】
判定部14は、署名依頼を受けて、対象の文書ファイルのサイズを基に、文書ファイルに対する署名処理を同期処理で行うか非同期処理で行うかを判定する(ステップS2)。
【0050】
署名処理を非同期処理で行うと決定した場合、判定部14は、署名処理IDを発行するとともに、署名処理を署名非同期処理部17に実行させる(ステップS3)。
【0051】
これに対して、署名処理を同期処理で行うと決定した場合、判定部14は、署名処理を署名同期処理部16に実行させる(ステップS4)。その場合、切替部18は、署名同期処理部16による署名処理の進捗状況を監視して、署名処理を非同期処理に切り替えるか否かを判定する(ステップS5)。そして、署名処理を切り替えると判定した場合、切替部18は、署名同期処理部16による署名処理を中断させて、署名処理IDを発行するとともに、署名処理を署名非同期処理部17に実行させる(ステップS6)。
【0052】
応答部15は、署名非同期処理部17による署名処理が開始されると、署名処理IDを利用者端末20へ送信する(ステップS7)。
【0053】
一定期間経過後に、利用者Aは、利用者端末20を用いて確認結果要求をデジタル署名Webサーバ10へ送信する(ステップS8)。
【0054】
応答部15は、確認結果要求を受けて、署名処理が完了してれば、署名済み文書ファイル又はその格納場所の情報を利用者端末20へ送信する(ステップS9)。利用者Aは、利用者端末20に送られてきた署名済み文書ファイルを取得する又は送られてきた格納場所の情報を用いて格納場所にアクセスして署名済み文書ファイルを取得する。
【0055】
図4は、デジタル署名Webサーバを用いる際に利用者端末に表示される情報の一例を示す図である。次に、
図4を参照して、署名処理に係る利用者端末20を用いた利用者の一連の操作を説明する。
【0056】
デジタル署名Webサーバ10を利用するに際して、利用者端末20は、デジタル署名サービスの利用開始ウィンドウ101を表示装置(不図示)に表示させる。アカウント登録の場合、利用者Aは、利用者端末20の入力装置(不図示)を用いて利用開始ウィンドウ101におけるアカウント登録を選択する。
【0057】
利用開始ウィンドウ101におけるアカウント登録が選択されると、利用者端末20は、登録ウィンドウ102を表示装置に表示させる。利用者Aは、入力装置を用いて利用者ID、パスワード及び署名鍵を入力したうえで、アカウント登録ボタンを押下して、署名鍵及びアカウントの登録を行う。
【0058】
登録が完了すると、利用者端末20は、登録完了ウィンドウ103を表示装置に表示させる。利用者Aは、表示装置に表示された登録完了ウィンドウ103を参照して登録が完了したことを確認する。
【0059】
登録完了後、利用者端末20は、デジタル署名サービスの利用開始ウィンドウ101を表示装置に再び表示させる。文書ファイルにデジタル署名を付加する場合、利用者Aは、入力装置を用いて利用開始ウィンドウ101におけるログインを選択する。
【0060】
利用開始ウィンドウ101におけるログインが選択されると、利用者端末20は、ログインウィンドウ104を表示装置に表示させる。利用者Aは、入力装置を用いて利用者ID及びパスワードを入力したうえで、送信ボタンを押下してデジタル署名Webサーバ10にログインする。
【0061】
利用者Aのログインが成功すると、利用者端末20は、文書ファイル指定ウィンドウ105を表示装置に表示させる。利用者Aは、入力装置を用いて文書ファイル又はその格納場所の情報を入力したうえで、送信ボタンを押下してデジタル署名Webサーバ10に文書ファイル又はその格納場所の情報を送信する。
【0062】
デジタル署名Webサーバ10は、文書ファイル又はその格納場所の情報を受信して、文書ファイルを取得する。そして、デジタル署名Webサーバ10は、同期処理又は非同期処理で署名処理を実行する。
【0063】
同期処理により署名処理が実行されて完了した場合、利用者端末20は、署名処理完了通知ウィンドウ106を表示装置に表示させる。これにより、利用者Aは、署名処理の完了を確認できる。利用者Aは、署名処理完了通知ウィンドウ106のダウンロードをクリックすることで署名済みの文書ファイルを取得できる。
【0064】
また、非同期処理により署名処理が実行された場合、利用者端末20は、署名処理通知ウィンドウ107を表示装置に表示させる。例えば、署名処理通知ウィンドウ107に示すように、利用者Aは、結果確認要求のための次のアクセスまでの待機時間の通知を受ける。そして、通知された待機時間の待機の後、利用者Aは、署名処理通知ウィンドウ107のデジタル署名結果確認をクリックして、利用者端末20を用いてデジタル署名Webサーバ10に結果確認要求を送信する。既に署名処理が完了しており、デジタル署名Webサーバ10から結果を取得した場合、利用者端末20は、署名処理完了通知ウィンドウ106を表示装置に表示させる。これにより、利用者Aは、署名処理の完了を確認できる。利用者Aは、署名処理完了通知ウィンドウ106のダウンロードをクリックすることで署名済みの文書ファイルを取得できる。
【0065】
図5は、デジタル署名Webサーバによる文書ファイルへ署名を付加する処理のフローチャートである。次に、
図5を参照して、デジタル署名Webサーバ10による文書ファイルへ署名を付加する処理の全体の流れを説明する。ここでは、利用者端末20から、署名対象の文書ファイルが送られてきた場合で説明する。
【0066】
文書取得部13は、利用者AのID及びパスワード、並びに、文書ファイルとともに利用者Aからの署名依頼を利用者端末20から受信する(ステップS101)。
【0067】
そして、文書取得部13は、署名依頼に付加された文書ファイルを読み込む(ステップS102)。
【0068】
判定部14は、利用者AのID及びパスワード、並びに、文書ファイルを文書取得部13から受信する。そして、判定部14は、過去の署名処理の情報を基に、過去の署名処理の特徴量から取得した文書ファイルの署名処理の総処理時間である第1予測時間を線形予測する(ステップS103)。
【0069】
そして、判定部14は、予測時間が切替閾値時間未満か否かを判定する(ステップS104)。
【0070】
予測時間が切替閾値時間未満の場合(ステップS104:肯定)、判定部14は、署名処理の開始を署名同期処理部16に指示する。署名同期処理部16は、指示を受けて、同期処理での署名処理を開始する(ステップS105)。
【0071】
切替部18は、署名同期処理部16による署名処理の進捗状況を取得する(ステップS106)。
【0072】
そして、切替部18は、署名処理が完了したか否かを判定する(ステップS107)。
【0073】
署名処理が完了した場合(ステップS107:肯定)、署名同期処理部16は、署名依頼への応答として、署名済みの文書ファイルを含む処理結果を利用者端末20へ送信する(ステップS108)。
【0074】
これに対して、署名処理が完了していない場合(ステップS107:否定)、切替部18は、既に署名が完了した文書ファイルの数及びそれまでの経過時間を基に、署名処理の総処理時間である第2予測時間を予測する(ステップS109)。
【0075】
次に、切替部18は、経過時間が切替閾値時間を超える又は第2予測時間が切替閾値時間を超えるか否かを判定する(ステップS110)。
【0076】
経過時間が切替閾値時間以下であり且つ第2予測時間が切替閾値時間以下の場合(ステップS110:否定)、切替部18は、署名同期処理部16による署名処理を継続させる。そして、切替部18は、一定時間待機する(ステップS111)。その後、文書ファイルへ署名を付加する処理は、ステップS106へ戻る。
【0077】
これに対して、経過時間が切替閾値時間を超えた又は第2予測時間が切替閾値時間を超えた場合(ステップS110:肯定)、切替部18は、署名同期処理部16による署名処理を中断させる(ステップS112)。そして、切替部18は、署名処理の実行を署名非同期処理部17に指示する。
【0078】
第1予測時間が切替閾値時間未満の場合(ステップS104:否定)又は署名同期処理部16による署名処理中断(ステップS112)の後、切替部18は、署名処理IDを発行する(ステップS113)。
【0079】
署名非同期処理部17は、署名処理の実行の指示を受けて、署名処理IDに紐づけて非同期により非同期処理での署名処理を開始する(ステップS114)。
【0080】
応答部15は、署名依頼の応答として、署名依頼の受理の通知とともに署名処理IDを利用者端末20へ送信する(ステップS115)。
【0081】
図6は、非同期処理の署名処理における結果確認要求に対する応答処理のフローチャートである。次に、
図6を参照して、デジタル署名Webサーバ10による非同期処理の署名処理における結果確認要求に対する応答処理の流れを説明する。
図6のフローに記載した各処理は、
図5のフローにおけるステップS115の後に利用者Aが利用者端末20を用いて結果確認を行った際に、デジタル署名Webサーバ10が実行する処理である。
【0082】
応答部15は、結果確認要求を利用者端末20から受信する(ステップS201)。
【0083】
次に、応答部15は、結果確認要求に含まれる署名処理IDを読み込む(ステップS202)。
【0084】
次に、応答部15は、署名非同期処理部17による署名処理の進捗状況を取得する(ステップS203)。例えば、応答部15は、読み込んだ署名処理IDに対応する署名済み文書ファイルを自己が保持するか否かを確認することで、署名非同期処理部17による署名処理の進捗状況を取得することができる。
【0085】
そして、応答部15は、取得した署名非同期処理部17による署名処理の進捗状況から、署名非同期処理部17による署名処理が完了したか否かを判定する(ステップS204)。
【0086】
署名非同期処理部17による署名処理が完了した場合(ステップS204:肯定)、応答部15は、読み込んだ署名処理IDに対応する署名済み文書ファイルを処理結果として利用者端末20へ送信する(ステップS205)。
【0087】
これに対して、署名非同期処理部17による署名処理が完了していない場合(ステップS204:否定)、応答部15は、署名非同期処理部17による署名処理が完了していないことを示す未完エラーを利用者端末20へ送信する(ステップS206)。
【0088】
図7は、実施例1に係るデジタル署名Webサーバによる署名処理のフローチャートである。
図7のフローで示した各処理は、
図5のフローにおけるステップS105からステップS107の間に署名同期処理部16が実行する処理及びステップS115の後に署名非同期処理部17が実行する処理の一例にあたる。ここでは、署名同期処理部16による署名処理を例に説明する。
【0089】
署名同期処理部16は、署名依頼に含まれる署名対象の文書ファイルのファイルリストを取得する(ステップS301)。さらに、署名同期処理部16は、署名依頼に含まれる利用者IDとパスワードとから認証されるアカウントに対応付けられた署名鍵を記憶部12から取得する。
【0090】
次に、署名同期処理部16は、文書ファイルが圧縮ファイルか否かを判定する(ステップS302)。文書ファイルが圧縮ファイルでない場合(ステップS302:否定)、署名同期処理部16は、ステップS304へ進む。
【0091】
これに対して、文書ファイルが圧縮ファイルの場合(ステップS302:肯定)、署名同期処理部16は、圧縮ファイルを展開する(ステップS303)。
【0092】
次に、署名同期処理部16は、ファイルリストに登録された文書ファイルの中から未選択のファイルを1つ選択する(ステップS304)。
【0093】
次に、署名同期処理部16は、選択した文書ファイルのハッシュ値を計算する(ステップS305)。
【0094】
次に、署名同期処理部16は、計算したハッシュ値を署名鍵で暗号化してデジタル署名値を算出する(ステップS306)。
【0095】
次に、署名同期処理部16は、算出したデジタル署名値を文書ファイルに格納して署名を付加した署名済み文書ファイルを作成する(ステップS307)。
【0096】
その後、署名同期処理部16は、ファイルリストに登録された全ての文書ファイルに対する署名処理が完了したか否かを判定する(ステップS308)。署名処理が未完了の文書ファイルが残っている場合(ステップS308:否定)、署名同期処理部16は、ステップS304へ戻る。
【0097】
これに対して、全ての文書ファイルに対する署名処理が完了した場合(ステップS308:肯定)、署名同期処理部16は、元の文書ファイルが圧縮ファイルか否かを判定する(ステップS309)。元の文書ファイルが圧縮ファイルでない場合(ステップS309:否定)、署名同期処理部16は、ステップS311へ進む。
【0098】
これに対して、元の文書ファイルが圧縮ファイルの場合(ステップS309:肯定)、署名同期処理部16は、署名済みの文書ファイルの圧縮を実行する(ステップS310)。
【0099】
その後、署名同期処理部16は、署名済み文書ファイルを含む処理結果を応答部15へ出力する(ステップS311)。応答部15は、署名依頼に対する応答として署名済み文書ファイルを含む処理結果を利用者端末20へ送信する。
【0100】
以上に説明したように、本実施例に係るデジタル署名Webサーバは、署名対象の文書ファイルの情報を基にその文書ファイルに対する署名処理の総処理時間を予測し、予測時間が判定閾値時間以上であれば、非同期処理により署名処理を実行する。また、デジタル署名Webサーバは、予測時間が判定閾値時間未満の場合、同期処理により署名処理を開始するが、署名処理の進捗状況から署名処理の総処理時間を予測し、予測時間が切替閾値時間以上であれば、非同期処理により署名処理を切り替える。
【0101】
これにより、利用者の選択に依らずに、同期処理と非同期処理とのいずれで署名処理を行うかを自動的に管理することができ、効果的に同期処理と非同期処理とを使い分けることができる。したがって、文書ファイルに対するデジタル署名の処理を効率化することが可能となる。
本実施例に係る、署名同期処理部16及び署名非同期処理部17は、複数の利用者の署名を1つの文書ファイルに付加する場合に集約署名を実施する。例えば、利用者A~Cの3つの署名を文書ファイルに付加する場合について、署名同期処理部16による署名処理を例に説明する。
署名同期処理部16は、文書ファイルのハッシュ値を算出し、算出したハッシュ値に対して利用者Aの署名鍵を用いて暗号化してデジタル署名値を算出する。次に、署名同期処理部16は、文書ファイルに算出したデジタル署名値を格納して利用者Aの署名済みの文書ファイルを生成する。
次に、署名同期処理部16は、利用者Aの署名済みの文書ファイルのハッシュ値を算出し、算出したハッシュ値に対して利用者Bの署名鍵を用いて暗号化してデジタル署名値を算出する。次に、署名同期処理部16は、利用者Aの署名済みの文書ファイルに算出したデジタル署名値を格納して利用者A及びBの集約署名済みの文書ファイルを生成する。
次に、署名同期処理部16は、利用者A及びBの集約署名済みの文書ファイルのハッシュ値を算出し、算出したハッシュ値に対して利用者Cの署名鍵を用いて暗号化してデジタル署名値を算出する。次に、署名同期処理部16は、利用者A及びBの集約署名済みの文書ファイルに算出したデジタル署名値を格納して利用者A、B及びCの集約署名済みの文書ファイルを生成する。
判定部14、署名同期処理部16、署名非同期処理部17及び切替部18は、署名処理を実行する(ステップS22)。署名処理の中で、判定部14は、処理対象の文書ファイルに対する署名処理の総処理時間を予測して、署名処理を同期処理で行うか非同期処理で行うかを判定する(ステップS23)。ここでは、判定部14は同期処理で署名処理を行うことを決定して、署名同期処理部16が署名処理を実行する。
判定部14、署名同期処理部16、署名非同期処理部17及び切替部18は、集約署名技術を用いて利用者A及びBの署名を合成して署名処理を実行する(ステップS27)。署名処理の中で、判定部14は、処理対象の文書ファイルに対する署名処理の総処理時間を予測して、署名処理を同期処理で行うか非同期処理で行うかを判定する(ステップS28)。ここでは、判定部14は同期処理で署名処理を行うことを決定して、署名同期処理部16が署名処理を実行する。
次に、文書取得部13は、利用者Cの利用者端末23から署名対象である利用者A及びBの集約署名済みの文書ファイル及び大規模な追加ファイルを署名依頼ととともに受信する(ステップS31)。
判定部14、署名同期処理部16、署名非同期処理部17及び切替部18は、集約署名技術を用いて利用者A、B及びCの署名を合成して署名処理を実行する(ステップS32)。署名処理の中で、判定部14は、処理対象の文書ファイルに対する署名処理の総処理時間を予測して、署名処理を同期処理で行うか非同期処理で行うかを判定する(ステップS33)。ここでは、大規模な追加ファイルが追加されたため判定部14は非同期処理で署名処理を行うことを決定して、署名非同期処理部17が署名処理を実行する。この際、判定部14は、署名処理の署名処理IDを発行する。
応答部15は、利用者Cからの結果確認要求を受信して、署名非同期処理部17による署名処理の進捗状況を確認する(ステップS36)。そして、署名非同期処理部17による署名処理が完了している場合、応答部15は、利用者A、B及びCの集約署名済みの文書ファイルを利用者Cの利用者端末23へ送信する(ステップS37)。
署名同期処理部16は、署名依頼に含まれる署名対象の文書ファイルのファイルリスト及び署名鍵リストを取得する(ステップS401)。さらに、署名同期処理部16は、署名依頼に含まれる各利用者の利用者IDとパスワードとから認証されるアカウントに対応付けられたそれぞれの署名鍵を記憶部12から取得する。
次に、署名同期処理部16は、文書ファイルが圧縮ファイルか否かを判定する(ステップS402)。文書ファイルが圧縮ファイルでない場合(ステップS402:否定)、署名同期処理部16は、ステップS404へ進む。
デジタル署名値を算出していない署名鍵が残っている場合(ステップS408:否定)、署名同期処理部16は、計算したデジタル署名値をその時点での文書ファイルに格納して、格納した文書ファイルのハッシュ値を計算する(ステップS409)。その後、署名同期処理部16は、ステップS406へ戻る。
これに対して、全ての署名鍵のデジタル署名値を算出した場合(ステップS408:肯定)、署名同期処理部16は、算出したデジタル署名値を文書ファイルに格納して署名を付加した集約署名済み文書ファイルを作成する(ステップS410)。
その後、署名同期処理部16は、ファイルリストに登録された全ての文書ファイルに対する署名処理が完了したか否かを判定する(ステップS411)。署名処理が未完了の文書ファイルが残っている場合(ステップS411:否定)、署名同期処理部16は、ステップS404へ戻る。
これに対して、全ての文書ファイルに対する署名処理が完了した場合(ステップS411:肯定)、署名同期処理部16は、元の文書ファイルが圧縮ファイルか否かを判定する(ステップS412)。元の文書ファイルが圧縮ファイルでない場合(ステップS412:否定)、署名同期処理部16は、ステップS414へ進む。
これに対して、元の文書ファイルが圧縮ファイルの場合(ステップS412:肯定)、署名同期処理部16は、集約署名済みの文書ファイルの圧縮を実行する(ステップS413)。
その後、署名同期処理部16は、集約署名済み文書ファイルを含む処理結果を応答部15へ出力する(ステップS414)。応答部15は、署名依頼に対する応答として集約署名済み文書ファイルを含む処理結果を利用者端末20へ送信する。
以上に説明したように、本実施例に係るデジタル署名Webサーバは、集約署名を実行する。そして、デジタル署名Webサーバは、集約署名を実行する場合にも、署名対象の文書ファイルの情報を基にその文書ファイルに対する署名処理の総処理時間を予測し、予測時間が判定閾値時間以上であれば、非同期処理により署名処理を実行する。また、デジタル署名Webサーバは、予測時間が判定閾値時間未満の場合、同期処理により署名処理を開始するが、署名処理の進捗状況から署名処理の総処理時間を予測し、予測時間が切替閾値時間以上であれば、非同期処理により署名処理を切り替える。
これにより、集約署名を行う場合においても、利用者の選択に依らずに、同期処理と非同期処理とのいずれで署名処理を行うかを自動的に管理することができ、効果的に同期処理と非同期処理とを使い分けることができる。したがって、文書ファイルに対するデジタル署名の処理を効率化することが可能となる。
通信装置94は、デジタル署名Webサーバ10と外部装置との通信インタフェースである。例えば、通信装置94は、プロセッサ91と利用者端末20との間の通信を中継する。
プロセッサ91は、ハードディスク93に格納された各種プログラムを読み出してメモリ92に展開して実行する。これにより、プロセッサ91は、アカウント登録部11、文書取得部13、判定部14、応答部15、署名同期処理部16、署名非同期処理部17及び切替部18の機能を実現する。
また、デジタル署名Webサーバ10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、ここでいうプログラムは、特定のデジタル署名Webサーバ10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。