(57)【要約】【課題】署名サーバ３００と検証サーバ４００を用い、２段階で署名を行う構成とし、各署名の間で、署名対象文書の確認を入れることで、意図した文書に安全に署名を行うことを課題とする。【解決手段】個別署名システム１は、ネットワーク５００を介して接続される署名サーバ３００と検証サーバ４００と署名クライアント端末１００とからなる。署名サーバ３００は、所定のファイルのハッシュ値を生成する。署名クライアント端末１００はハッシュ値から第１の署名値を作成する。署名サーバ３００は、第１の署名値から仮の署名値を作成し、所定のファイルに添付する。検証サーバ４００は、所定のファイルに添付された仮の署名値を第２の署名値に置換する。【選択図】図１
2019176470.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、
所定のファイルのハッシュ値を生成するハッシュ値生成部と、
前記ハッシュ値をもとに前記署名クライアント端末によって作成された第１の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部と
を備え、
前記署名クライアント端末は、
前記ハッシュ値から前記第１の署名値を作成する署名／暗号化部と、
前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部と
を備え、
前記検証サーバは、
前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第２の署名値に置換する署名値置換部
を備えることを特徴とする個別署名システム。
【請求項２】
前記署名値添付部は、前記所定のファイルが複数ある場合には、前記所定のファイルに対応する前記第１の署名値を分割し、
分割された複数の前記第１の署名値から複数の前記仮の署名値を作成し、
作成された前記仮の署名値を前記所定のファイルのいずれかに添付することを特徴とする
請求項１に記載の個別署名システム。
【請求項３】
前記署名サーバは、前記所定のファイルおよび前記第１の署名値を前記署名クライアント端末から取得し、
前記署名値添付部は、前記所定のファイルと前記第１の署名値の個数が一致していることを検証した後、前記所定のファイルに前記第１の署名値から作成された前記仮の署名値を添付することを特徴とする
請求項１又は２のいずれか１項に記載の個別署名システム。
【請求項４】
前記検証サーバは、前記所定のファイルおよび前記署名サーバが作成した仮の署名値を前記署名クライアント端末経由で取得し、
前記署名値置換部は、前記仮の署名値から作成した前記第２の署名値が前記第１の署名値と一致することを確認し、前記所定のファイルに添付された前記仮の署名値を前記第２の署名値に置換することを特徴とする
請求項１から３までのいずれか１項に記載の個別署名システム。
【請求項５】
前記署名値添付部は、前記仮の署名値を前記所定のファイルに添付するとき、仮の署名値を鍵２で暗号化し、
前記署名値置換部は、前記署名値添付部により暗号化された仮の署名値を鍵２で復号することを特徴とする
請求項１から４までのいずれか１項に記載の個別署名システム。
【請求項６】
前記署名値確認置換部は、前記仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたとき、前記検証サーバに対して前記所定のファイルに添付された前記仮の署名値を前記第２の署名値に置換することを指示することを特徴とする
請求項１に記載の個別署名システム。
【請求項７】
さらに、前記署名クライアント端末は、前記所定のファイルへの前記仮の署名値の添付を前記署名サーバに指示する署名値添付指示部を備え、
前記署名値添付指示部から前記署名サーバへの指示経路と、前記署名値確認置換部から前記検証サーバへの指示経路とは、別経路として実現されることを特徴とする
請求項１から６までのいずれか１項に記載の個別署名システム。
【請求項８】
さらに、前記署名クライアント端末は、
前記第２の署名値を添付する前記所定のファイルを選択するファイル選択部
を備えることを特徴とする
請求項１から７までのいずれか１項に記載の個別署名システム。
【請求項９】
前記署名／暗号化部は、前記第１の署名値を鍵１で暗号化して前記署名サーバに送付し、
前記署名値添付部は、前記署名／暗号化部により暗号化された前記第１の署名値を復号することを特徴とする
請求項１から８までのいずれか１項に記載の個別署名システム。
【請求項１０】
前記署名サーバと前記検証サーバは、同一装置で動作することを特徴とする
請求項１から９までのいずれか１項に記載の個別署名システム。
【請求項１１】
ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、
所定のファイルのハッシュ値を生成するハッシュ値生成部と、
前記ハッシュ値から第１の署名値を作成する署名／暗号化部と、
前記署名／暗号化部よって作成された前記第１の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部と
を備え、
前記署名クライアント端末は、
前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部
を備え、
前記検証サーバは、
前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第２の署名値に置換する署名値置換部
を備えることを特徴とする個別署名システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数文書を同時に安全に個別署名する技術に関する。
【背景技術】
【０００２】
サーバ上で管理している複数の文書に対して、安全に署名が行えるようにすることがこれまで検討されてきた。
特許文献１には、複数のメッセージに対して１回の署名で済ませる発明が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２８０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１では、複数ファイルを一度に署名する方法については開示されているが、署名サーバと署名生成端末との間にＭａｎ  ｉｎ  ｔｈｅ  Ｍｉｄｄｌｅ  Ａｔｔａｃｋや悪意のサイトへの誘導が行われた場合、意図しないデータに署名を行ってしまうリスクがある。
【０００５】
本発明は、署名サーバと検証サーバを用い、２段階で署名を行う構成とし、各署名の間で、署名対象文書の確認を入れることで、意図した文書に安全に署名を行うことを課題とする。
【課題を解決するための手段】
【０００６】
この発明に係る個別署名システムは、ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、所定のファイルのハッシュ値を生成するハッシュ値生成部と、前記ハッシュ値をもとに前記署名クライアント端末によって作成された第１の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部とを備え、
前記署名クライアント端末は、前記ハッシュ値から前記第１の署名値を作成する署名／暗号化部と、前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部とを備え、
前記検証サーバは、前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第２の署名値に置換する署名値置換部を備える。
【０００７】
前記署名値添付部は、前記所定のファイルが複数ある場合には、前記所定のファイルに対応する前記第１の署名値を分割し、分割された複数の前記第１の署名値から複数の前記仮の署名値を作成し、作成された前記仮の署名値を前記所定のファイルのいずれかに添付する。
【０００８】
前記署名サーバは、前記所定のファイルおよび前記第１の署名値を前記署名クライアント端末から取得し、前記署名値添付部は、前記所定のファイルと前記第１の署名値の個数が一致していることを検証した後、前記所定のファイルに前記第１の署名値から作成された前記仮の署名値を添付する。
【０００９】
前記検証サーバは、前記所定のファイルおよび前記署名サーバが作成した仮の署名値を前記署名クライアント端末経由で取得し、前記署名値置換部は、前記仮の署名値から作成した前記第２の署名値が前記第１の署名値と一致することを確認し、前記所定のファイルに添付された前記仮の署名値を前記第２の署名値に置換する。
【００１０】
前記署名値添付部は、前記仮の署名値を前記所定のファイルに添付するとき、仮の署名値を鍵２で暗号化し、前記署名値置換部は、前記署名値添付部により暗号化された仮の署名値を鍵２で復号する。
【００１１】
前記署名値確認置換部は、前記仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたとき、前記検証サーバに対して前記所定のファイルに添付された前記仮の署名値を前記第２の署名値に置換することを指示する。
【００１２】
さらに、前記署名クライアント端末は、前記所定のファイルへの前記仮の署名値の添付を前記署名サーバに指示する署名値添付指示部を備え、前記署名値添付指示部から前記署名サーバへの指示経路と、前記署名値確認置換部から前記検証サーバへの指示経路とは、別経路として実現される。
【００１３】
さらに、前記署名クライアント端末は、前記第２の署名値を添付する前記所定のファイルを選択するファイル選択部を備える。
【００１４】
前記署名／暗号化部は、前記第１の署名値を鍵１で暗号化して前記署名サーバに送付し、前記署名値添付部は、前記署名／暗号化部により暗号化された前記第１の署名値を復号する。
【００１５】
前記署名サーバと前記検証サーバは、同一装置で動作する。
【００１６】
この発明に係る個別署名システムは、ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、所定のファイルのハッシュ値を生成するハッシュ値生成部と、前記ハッシュ値から第１の署名値を作成する署名／暗号化部と、前記ハッシュ値をもとに前記署名クライアント端末によって作成された前記第１の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部とを備え、
前記検証サーバは、前記所定のファイルに添付された前記仮の署名値を第２の署名値に置換する署名値置換部を備え、
前記署名クライアント端末は、前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部を備える。
【発明の効果】
【００１７】
この発明では、悪意の第三者からの攻撃で意図しない文書に署名を行うことを防ぐことができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１に係る個別署名システム１の構成図。
【図２】実施の形態１に係る署名クライアント端末１００の構成図。
【図３】実施の形態１に係る署名サーバ３００の構成図。
【図４】実施の形態１に係る検証サーバ４００の構成図。
【図５】実施の形態１に係るハッシュ値作成処理のフロー図。
【図６】実施の形態１に係る第１の署名値作成処理のフロー図。
【図７】実施の形態１に係る仮の署名値による利用者への確認処理のフロー図。
【図８】実施の形態１に係る第２の署名値作成処理のフロー図。
【図９】実施の形態１に係るファイル管理テーブル１５１の説明図。
【図１０】実施の形態１に係るファイル管理テーブル３５２の説明図。
【図１１】実施の形態１に係るファイル管理テーブル３５２の説明図。
【図１２】実施の形態１に係る署名値作成テーブル１５２の説明図。
【図１３】実施の形態１に係る署名値作成テーブル１５２の説明図。
【図１４】実施の形態１に係る署名値管理テーブル３５３の説明図。
【図１５】実施の形態１に係る署名値管理テーブル３５３の説明図。
【図１６】実施の形態１に係る署名値管理テーブル３５３の説明図。
【図１７】実施の形態１に係る署名値確認テーブル１５３の説明図。
【図１８】実施の形態１に係る署名値添付テーブル４５２の説明図。
【図１９】実施の形態１に係る署名値添付テーブル４５２の説明図。
【図２０】実施の形態１に係る署名値付きファイル保管テーブル１５４の説明図。
【図２１】実施の形態１変形例２に係る署名サーバ３００の構成図。
【図２２】実施の形態１変形例２に係る検証サーバ４００の構成図。
【図２３】実施の形態２に係る個別署名システム１の構成図。
【図２４】実施の形態２に係る署名クライアント端末１００の構成図。
【図２５】実施の形態２に係る署名サーバ３００の構成図。
【図２６】実施の形態２に係るハッシュ値作成処理のフロー図。
【図２７】実施の形態２に係る第１の署名値作成処理のフロー図。
【図２８】実施の形態２に係る仮の署名値による利用者への確認処理のフロー図。
【図２９】実施の形態２に係る第２の署名値作成処理のフロー図。
【発明を実施するための形態】
【００１９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係る個別署名システム１の構成を説明する。
個別署名システム１は、署名クライアント端末１００と、署名サーバ３００と、検証サーバ４００とを備える。ＩＣカード２００は、署名クライアント端末１００に接続されている。署名クライアント端末１００と署名サーバ３００と検証サーバ４００は、ネットワーク５００を介して接続されている。
【００２０】
署名クライアント端末１００は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）といった利用者が使用するコンピュータである。
ＩＣカード２００は、集積回路が組み込まれたカードである。利用者の秘密鍵が記録されており、署名クライアント端末１００とは、所定のインタフェースでの通信が可能である。
署名サーバ３００と検証サーバ４００とは、個別署名サービスを提供するコンピュータである。サービスを提供する会社、または、サービスを提供する会社が利用するデータセンターといった場所に通常は設置されるが、署名クライアント端末１００と同じＬＡＮ内に設置されても構わない。
【００２１】
図２を参照して、実施の形態１に係る署名クライアント端末１００の構成を説明する。
署名クライアント端末１００は、プロセッサ１１０を備えるとともに、メモリ１２２、補助記憶装置１２１からなる記憶装置１２０、および入出力インタフェース１３０といった他のハードウェアを備える。プロセッサ１１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２２】
署名クライアント端末１００は、機能要素として、ファイル選択部１１１と、ファイル送受信部１１２と、署名値添付指示部１１３と署名値確認置換部１１４とを備える。以下の説明では、ファイル選択部１１１と、ファイル送受信部１１２と、署名値添付指示部１１３と署名値確認置換部１１４との機能を、署名クライアント端末１００の「部」の機能という。
ファイル選択部１１１と、ファイル送受信部１１２と、署名値添付指示部１１３と署名値確認置換部１１４の機能は、ソフトウェアにより実現される。
記憶部１５０は、記憶装置１２０で実現される。記憶部１５０には、ファイル管理テーブル１５１と署名値作成テーブル１５２と署名値確認テーブル１５３と署名値付きファイル保管テーブル１５４が記憶される。
【００２３】
ＩＣカード２００の構成を説明する。
ＩＣカード２００は、プロセッサ２１０を備えるとともに、メモリ２２２、補助記憶装置２２１からなる記憶装置２２０、および入出力インタフェース２３０といった他のハードウェアを備える。プロセッサ２１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２４】
ＩＣカード２００は、機能要素として、署名／暗号化部２１１を備える。以下の説明では、署名／暗号化部２１１の機能を、ＩＣカード２００の「部」の機能という。署名／暗号化部２１１の機能は、ソフトウェアにより実現される。
記憶部２５０は、記憶装置２２０で実現される。記憶部２５０には、秘密鍵管理テーブル２５１が記憶される。
【００２５】
図３を参照して、実施の形態１に係る署名サーバ３００の構成を説明する。
署名サーバ３００は、プロセッサ３１０を備えるとともに、メモリ３２２、補助記憶装置３２１からなる記憶装置３２０、および入出力インタフェース３３０といった他のハードウェアを備える。プロセッサ３１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２６】
署名サーバ３００は、機能要素として、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３とを備える。以下の説明では、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３との機能を、署名サーバ３００の「部」の機能という。ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３との機能は、ソフトウェアにより実現される。
記憶部３５０は、記憶装置３２０で実現される。記憶部３５０には、公開鍵管理テーブル３５１とファイル管理テーブル３５２と署名値管理テーブル３５３が記憶される。
【００２７】
図４を参照して、実施の形態１に係る検証サーバ４００の構成を説明する。
検証サーバ４００は、プロセッサ４１０を備えるとともに、メモリ４２２、補助記憶装置４２１からなる記憶装置４２０、および入出力インタフェース４３０といった他のハードウェアを備える。プロセッサ４１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２８】
検証サーバ４００は、機能要素として、ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３とを備える。以下の説明では、ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能を、検証サーバ４００の「部」の機能という。
ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能は、ソフトウェアにより実現される。
記憶部４５０は、記憶装置４２０で実現される。記憶部４５０には、公開鍵管理テーブル４５１と署名値添付テーブル４５２が記憶される。
【００２９】
プロセッサ１１０，２１０，３１０，４１０は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１０，２１０，３１０，４１０は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ
Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００３０】
記憶装置１２０は、補助記憶装置１２１及びメモリ１２２を含む。記憶部１５０は、メモリ１２２により実現される。なお、記憶部１５０は、補助記憶装置１２１により実現されていてもよいし、補助記憶装置１２１とメモリ１２２の両方により実現されてもよい。
記憶装置２２０は、補助記憶装置２２１及びメモリ２２２を含む。記憶部２５０は、メモリ２２２により実現される。なお、記憶部２５０は、補助記憶装置２２１により実現されていてもよいし、補助記憶装置２２１とメモリ２２２の両方により実現されてもよい。
記憶装置３２０は、補助記憶装置３２１及びメモリ３２２を含む。記憶部３５０は、メモリ３２２により実現される。なお、記憶部３５０は、補助記憶装置３２１により実現されていてもよいし、補助記憶装置１２１とメモリ１２２の両方により実現されてもよい。
記憶装置４２０は、補助記憶装置４２１及びメモリ４２２を含む。記憶部４５０は、メモリ４２２により実現される。なお、記憶部４５０は、補助記憶装置４２１により実現されていてもよいし、補助記憶装置４２１とメモリ４２２の両方により実現されてもよい。
【００３１】
メモリ１２２，２２２，３２２，４２２は、データを一時的に記憶する記憶装置である。メモリ１２２，２２２，３２２，４２２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ
Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００３２】
補助記憶装置１２１，３２１，４２１は、データを保管する記憶装置である。補助記憶装置１２１，３２１，４２１は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、補助記憶装置１２１，３２１，４２１は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（登録商標，ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
補助記憶装置２２１は、データを保管する記憶装置である。メモリ２２２で代替可能である。
【００３３】
補助記憶装置１２１，２２１，３２１，４２１は、「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ１２２，２２２，３２２，４２２にロードされ、プロセッサ１１０，２１０，３１０，４１０に読み込まれ、プロセッサ１１０，２１０，３１０，４１０によって実行される。補助記憶装置１２１，２２１，３２１，４２１には、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がメモリ１２２，２２２，３２２，４２２にロードされ、プロセッサ１１０，２１０，３１０，４１０はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
【００３４】
入出力インタフェース１３０，２３０，３３０，４３０は、外部の装置と通信するためのインタフェースである。入出力インタフェース１３０，２３０，３３０，４３０は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００３５】
図２の署名クライアント端末１００では、プロセッサ１１０は、１つだけ示されている。しかし、署名クライアント端末１００は、プロセッサ１１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル選択部１１１と、ファイル送受信部１１２と、署名値添付指示部１１３と署名値確認置換部１１４との機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１１０と同じように、プロセッシングを行うＩＣである。
【００３６】
同様に、図３ではプロセッサ３１０は、１つだけ示されている。しかし、署名サーバ３００は、プロセッサ３１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３との機能を実現するプログラムの実行を分担する。
【００３７】
図４についても同様に、プロセッサ４１０は、１つだけ示されている。しかし、検証サーバ４００は、プロセッサ４１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能を実現するプログラムの実行を分担する。
【００３８】
＊＊＊動作の説明＊＊＊
図５から図８を参照して、実施の形態１に係る個別署名システム１の動作を説明する。
実施の形態１に係る個別署名システム１の動作は、実施の形態１に係る個別署名方法に相当する。また、実施の形態１に係る個別署名システム１の動作は、実施の形態１に係る個別署名プログラムの処理に相当する。
【００３９】
まず、図５を参照して、実施の形態１に係るハッシュ値作成処理について説明する。
個別署名を行う利用者は、まず署名する所定のファイルを選択する（ステップＳ１）。
ファイル選択部１１１は、利用者が選択した所定のファイル名をファイル管理テーブル１５１に保管する。所定のファイルの実体は、ディスク内に保管される。
図９の例では、利用者によって「ｃｃｃ．ｐｄｆ」、「ｄｄｄ．ｐｄｆ」、「ｅｅｅ．ｐｄｆ」の３ファイルが所定のファイルとして選択され、ファイル管理テーブル１５１に、保存されたことを示している。
【００４０】
個別署名システム１では、所定のファイルへの署名を２段階で行う。
通常の署名システムでは、署名は１度で行われる。しかし、通信経路で妨害が発生した場合、署名を１度で行う署名システムでは、意図しない文書に署名されても気付くことができない。そこで、利用者によって作成される署名値を所定のファイルにいきなり添付するのではなく、利用者によって作成される署名値を検証可能なレベルで別の署名値にいったん変換し、変換した署名値を利用者に返送し、利用者によって、意図した文書に署名されているかの確認を行う構成とした。
これらの説明のため、最初に利用者によって作成される署名値を第１の署名値と呼ぶ。次に、第１の署名値から作成され、所定のファイルに添付され、利用者に所定のファイルの署名値であることを確認するための署名値を仮の署名値と呼ぶ。最後に、仮の署名値から復元され、所定のファイルに添付され、最終的に利用者に返送される署名値を第２の署名値と呼ぶこととする。通信経路上で妨害が発生しない場合は、第１の署名値と第２の署名値は同内容である。
個別署名システム１は、第２の署名値を添付するために、所定のファイルを選択するファイル選択部１１１を備えることを特徴とする。
【００４１】
ファイル送受信部１１２は、利用者により選択された所定のファイルを署名サーバ３００に送信する（ステップＳ２）。
【００４２】
署名サーバ３００のファイル送受信部３１１は、所定のファイルを受信する（ステップＳ３）。
受信した所定のファイル名は、図１０に示すように、トランザクションＩＤと利用者ＩＤと共にファイル管理テーブル３５２に保管される。
トランザクションＩＤは、署名処理単位を識別するためのＩＤである。また、利用者ＩＤは、利用者を特定するためのＩＤである。
【００４３】
ハッシュ値生成部３１２は、ハッシュ関数を用いて、受信した所定のファイルのハッシュ値を求める（ステップＳ４）。
個別署名システム１は、所定のファイルのハッシュ値を署名サーバ３００のハッシュ値生成部３１２で生成することを特徴とする。作成されたハッシュ値は、図１１に示すように、ファイル管理テーブル３５２に保管される。
【００４４】
ファイル送受信部３１１は、所定のファイル名とハッシュ値とトランザクションＩＤとを署名クライアント端末１００に送信する（ステップＳ５）。
【００４５】
署名クライアント端末のファイル送受信部１１２は、ハッシュ値を受信する（ステップＳ６）。受信したハッシュ値は、図１２に示すように、ファイル名、トランザクションＩＤと共に、署名値作成テーブル１５２に保管される。
【００４６】
次に、図６を使用して、実施の形態１に係る第１の署名値作成処理を説明する。
利用者は、署名回数とＰＩＮ（パスワード）を入力する（ステップＳ１１）。署名回数は、所定のファイルの数である。ＰＩＮは、ＩＣカード内に保管された秘密鍵で署名をするためのパスワードである。
【００４７】
署名値添付指示部１１３は、所定のファイル数と署名回数が同じか判定する（ステップＳ１２）。異なっている場合は、再度、署名回数とＰＩＮ（パスワード）を入力する必要がある。所定のファイル数と署名回数が一致している場合は、次の処理に進む。
【００４８】
署名値添付指示部１１３は、ハッシュ値の一つとＰＩＮをＩＣカード２００に渡す（ステップＳ１３）。
【００４９】
署名／暗号化部２１１は、ＰＩＮが正しいどうか、予めＩＣカード内の秘密鍵管理テーブル２５１に保管されている情報を元に判定する（ステップＳ１４）。
ＰＩＮが正しくない場合は、再度ステップＳ１１に戻り、署名回数とＰＩＮ（パスワード）を入力する必要がある。ＰＩＮが正しい場合は、次の処理に進む。
【００５０】
署名／暗号化部２１１は、ハッシュ値から第１の署名値を作成する（ステップＳ１５）。
なお、署名／暗号化部２１１は、ＩＣカード２００ではなく、署名クライアント端末１００内にあってもよい。
【００５１】
署名値添付指示部１１３は、署名値が未作成のハッシュ値はあるか判定する（ステップＳ１６）。未作成のハッシュ値があれば、未だ署名値が作成されていないハッシュ値とＰＩＮをＩＣカード２００に渡す（ステップＳ１３）。
署名値添付指示部１１３は、全てのハッシュ値に対して、第１の署名値の作成が完了した場合は、図１３に示すように、第１の署名値を署名値作成テーブル１５２に保管する。
【００５２】
署名値添付指示部１１３は、第１の署名値を鍵１で暗号化する（ステップＳ１７）。
鍵１は署名クライアント端末１００と署名サーバ３００の間で事前に交換された鍵であれば、秘密鍵でも共通鍵でも構わない。
第１の署名値のみ暗号化してもよいし、所定のファイルとトランザクションＩＤも併せて暗号化してもよい。
【００５３】
ファイル送受信部１１２は、所定のファイルと第１の署名値とトランザクションＩＤを署名サーバ３００に送付する（ステップＳ１８）。
【００５４】
署名サーバ３００のファイル送受信部３１１は、所定のファイルと暗号化された第１の署名値とトランザクションＩＤとを受信する（ステップＳ１９）。
【００５５】
次に、図７を参照して、実施の形態１に係る仮の署名値による利用者への確認処理を説明する。
署名値添付部３１３は、署名／暗号化部２１１により暗号化された第１の署名値を公開鍵管理テーブル３５１内に管理されている鍵１で復号する（ステップＳ２１）。
復号した第１の署名値は、図１４に示すように署名値管理テーブル３５３に保管される。図１４では、「ｃ１ｃ２ｃ３」、「ｄ１ｄ２ｄ３」、「ｅ１ｅ２ｅ３」が第１の署名値である。
【００５６】
署名値添付部３１３は、所定のファイルと第１の署名値の個数が、一致しているか判定する（ステップＳ２２）。
所定のファイルと第１の署名値の個数が異なっている場合は、本処理はエラーとして終了となる。所定のファイルと第１の署名値の個数が一致している場合は、次の処理に進む。
【００５７】
署名値添付部３１３は、第１の署名値を公開鍵管理テーブル３５１に管理されている鍵２で暗号化し、所定のファイルが複数ある場合には、所定のファイルに対応する第１の署名値を分割（ストライピング）し、分割された複数の第１の署名値から複数の仮の署名値を作成する。（ステップＳ２３）。
【００５８】
図１５を使用してストライピングの方法を説明する。
図１５では、「ｃ１ｃ２ｃ３」、「ｄ１ｄ２ｄ３」、「ｅ１ｅ２ｅ３」が第１の署名値である。ストライピングとは、「ｃ１ｃ２ｃ３」、「ｄ１ｄ２ｄ３」、「ｅ１ｅ２ｅ３」を所定のファイル数である３等分し、３等分したそれぞれのファイルの一つ目、二つ目、三つ目を組みとして、新たな署名値を仮の署名値として作成することである。具体的には、「ｃ１ｄ１ｅ１」、「ｃ２ｄ２ｅ２」、「ｃ３ｄ３ｅ３」が仮の署名値となる。作成された仮の署名値は、署名値管理テーブル３５３の仮の署名値欄に保存される。
なお、ストライピングの方法については、これ以外の方法でも構わない。
【００５９】
鍵２は、鍵１とは異なる鍵とすることを特徴とする。鍵２は署名サーバ３００と検証サーバ４００の間で事前に交換された鍵であれば、秘密鍵でも共通鍵でも構わない。
また、ステップＳ２３の処理では、第１の署名値を鍵２で暗号化した後、分割（ストライピング）したが、第１の署名値を分割（ストライピング）した後、鍵２で暗号化するようにしてもよい。
【００６０】
署名値添付部３１３は、作成された仮の署名値を、所定のファイルのいずれかに添付する（ステップＳ２４）。
作成された仮の署名値付きファイルは、図１６に示すように署名値管理テーブル３５３に保管される。
【００６１】
ファイル送受信部３１１は、仮の署名値付きファイルとトランザクションＩＤを署名クライアント端末１００に送信する（ステップＳ２５）。
個別署名システム１は、署名クライアント端末１００に仮の署名値付きファイルを送信した後は、所定のファイルを署名サーバ３００に残さないことを特徴とする。
【００６２】
署名クライアント端末１００のファイル送受信部１１２は、仮の署名値付きファイルとトランザクションＩＤを受信する（ステップＳ２６）。
受信した仮の署名値付きファイルは、図１７に示すように、所定のファイル名とトランザクションＩＤとともに署名値確認テーブル１５３に保管される。
【００６３】
署名サーバ３００の署名値添付部３１３は、鍵２とトランザクションＩＤを検証サーバ４００に連携する（ステップＳ２７）。検証サーバ４００は、署名サーバ３００とは異なる装置で動作することを特徴とする。
【００６４】
検証サーバ４００の署名値置換部４１２は、鍵２とトランザクションＩＤを受信する（ステップＳ２８）。鍵２とトランザクションＩＤは、公開鍵管理テーブル４５１内に保管される。
【００６５】
次に、図８を参照して、実施の形態１に係る第２の署名値作成処理を説明する。
署名クライアント端末１００のファイル送受信部１１２は、仮の署名値付きファイルとトランザクションＩＤとを署名値確認置換部１１４に連携する（ステップＳ３１）。
署名値確認置換部１１４は、署名値添付指示部１１３とは異なるセッションのブラウザで動作する。もしくは、署名値確認置換部１１４は、署名値添付指示部１１３とは異なるアプリケーションで起動するようにしてもよい。
署名値添付指示部１１３から署名サーバ３００への指示経路と、署名値確認置換部１１４から検証サーバ４００への指示経路とは、別経路として実現されることを特徴とする。
署名値添付指示部１１３から直接検証サーバ４００へ指示するのではなく、署名値添付指示部１１３から署名値確認置換部１１４を経由して検証サーバ４００に置換指示する構成としている。
【００６６】
利用者は、仮の署名値付きファイルが、利用者自身が選択した所定のファイルに仮の署名値が添付されていることを確認する（ステップＳ３２）。
署名値確認置換部１１４は、仮の署名値を添付する所定のファイルの内容を画面表示させることで利用者に確認させる機能を提供する。
【００６７】
署名値確認置換部１１４は、所定のファイルであるか判定する（ステップＳ３３）。
仮の署名値が添付された所定のファイルが変更されているか否かを利用者に確認させる。所定のファイルが、利用者が選択したファイルと異なっている場合は、本処理はエラーとして終了となる。仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたときは、次の処理に進む。
【００６８】
ファイル送受信部１１２は、利用者による所定のファイルの確認後、仮の署名値付きファイルとトランザクションＩＤを検証サーバ４００へ送付する（ステップＳ３４）。
【００６９】
検証サーバ４００のファイル送受信部４１１は、仮の署名値付きファイルとトランザクションＩＤとを受信する（ステップＳ３５）。
受信した仮の署名値付きファイルは、図１８に示すように、ファイル名とトランザクションＩＤとともに、署名値添付テーブル４５２に保管される。
【００７０】
署名値置換部４１２は、仮の署名付きファイルのストライピングを解いて公開鍵管理テーブル４５１内に管理されている鍵２で復号する（ステップＳ３６）。
【００７１】
署名値置換部４１２は、復号した第２の署名値を所定のファイルに添付する（ステップＳ３７）。
第２の署名値付きファイルは、図１９に示すように、署名値添付テーブル４５２に保管される。
【００７２】
検証部４１３は、所定のファイルに添付された第２の署名値は正しいかどうか判定する（ステップＳ３８）。
所定のファイルに添付された第２の署名値が、利用者が選択したファイルと異なっている場合は、本処理はエラーとして終了となる。所定のファイルが、利用者が選択したファイルと一致している場合は、次の処理に進む。
ステップＳ３５で受信したトランザクションＩＤをキーとして、署名サーバ３００に保管されている署名値管理テーブル３５３から第１の署名値を取得する。
仮の署名値から作成した第２の署名値が第１の署名値と一致することを確認し、所定のファイルに添付された仮の署名値を第２の署名値に置換する
【００７３】
ファイル送受信部４１１は、第２の署名値を添付したファイルを署名クライアント端末１００に送信する（ステップＳ３９）。
【００７４】
署名クライアント端末１００のファイル送受信部１１２は、第２の署名値が添付されたファイルを受信する（ステップＳ４０）。
受信した第２の署名値付きファイルは、図２０に示すように署名値付きファイル保管テーブル１５４に保管される。
【００７５】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係る個別署名システム１は、署名対象の文書を確認後に検証サーバ４００にて検証時に正式な署名データに変換することで、意図した文書に署名を安全に行うことができるようになる。
【００７６】
また、実施の形態１に係る個別署名システム１は、１段階目の署名と２段階目の署名の間で、利用者の目視による確認を入れることにより、Ｍａｎ  ｉｎ  ｔｈｅ  ｍｉｄｄｌｅによるリスクを軽減することができる。
【００７７】
また、実施の形態１に係る個別署名システム１は、クライアント側で動作するアプリケーションまたはセッションを別にすることで、Ｍａｎ  ｉｎ  ｔｈｅ  ｂｒｏｗｓｅｒによるリスクを軽減することができる。
【００７８】
また、実施の形態１に係る個別署名システム１は、複数鍵を利用することにより、なりすましによるリスクを軽減することができる。
【００７９】
また、実施の形態１に係る個別署名システム１は、ストライピングによる仮の署名値添付を利用し、複数文書を同時に検証しないと正しく検証できないようにすることで、Ｍａｎ  ｉｎ  ｔｈｅ  ｍｉｄｄｌｅやＭａｎ  ｉｎ  ｔｈｅ  ｂｒｏｗｓｅｒのリスクを軽減することができる。
【００８０】
また、実施の形態１に係る個別署名システム１は、複数文書を同時に署名する際、所定のファイルの数と、署名回数と、署名値の数とを確認することで、署名ファイルの改ざんによる検出を可能としている。
【００８１】
また、複数文書を１回のＰＩＮ入力で連続処理しても安全に署名処理を行うことができる。
【００８２】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、個別署名システム１は、署名サーバ３００と検証サーバ４００は、異なる装置で動作する構成としたが、同一装置で動作するように構成してもよい。
【００８３】
＜変形例２＞
実施の形態１では、署名サーバ３００はファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３の機能、及び検証サーバ４００はファイル送受信部４１１と、署名値置換部４１２と、検証部４１３とがソフトウェアで実現された。しかし、変形例２として、署名サーバ３００のファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３の機能、及び検証サーバ４００のファイル送受信部４１１と、署名値置換部４１２と、検証部４１３はハードウェアで実現されてもよい。この変形例２について、実施の形態１と異なる点を説明する。
【００８４】
図２１と図２２を参照して、変形例２に係る個別署名システム１の構成を説明する。
署名サーバ３００のファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３との機能がハードウェアで実現される場合、署名サーバ３００は、プロセッサ１１０と記憶装置１２０とに代えて、処理回路３６０を備える。
検証サーバ４００のファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能がハードウェアで実現される場合、検証サーバ４００は、プロセッサ４１０と記憶装置４２０とに代えて、処理回路４６０を備える。
署名サーバ３００の処理回路３６０は、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３の「部」の機能及び記憶装置３２０を実現する専用の電子回路である。
検証サーバ４００の処理回路４６０は、ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３の「部」の機能及び記憶装置４２０を実現する専用の電子回路である。
【００８５】
処理回路３６０及び処理回路４６０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
署名サーバ３００のファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３の機能との機能を１つの処理回路３６０で実現してもよいし、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３との機能を複数の処理回路３６０に分散させて実現してもよい。
同様に、処理回路４６０のファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能を１つの処理回路４６０で実現してもよいし、ファイル送受信部４１１と、署名値置換部４１２と、検証部４１３との機能を複数の処理回路４６０に分散させて実現してもよい。
【００８６】
＜変形例３＞
変形例３として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
つまり、署名サーバ３００のファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３の機能のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
同様に、検証サーバ４００のファイル送受信部４１１と、署名値置換部４１２と、検証部４１３の機能のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００８７】
署名サーバ３００のプロセッサ３１０と記憶装置３２０と処理回路３６０、及び検証サーバ４００のプロセッサ４１０と記憶装置４２０と処理回路４６０とを、総称して「プロセッシングサーキットリー」という。
つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
【００８８】
実施の形態２．
実施の形態２は、第１の署名値の作成を署名クライアント端末１００ではなく、署名サーバ３００で行う点が実施の形態１と異なる。実施の形態２では、この異なる点を説明し、同一の点については説明を省略する。
＊＊＊構成の説明＊＊＊
実施の形態２
＊＊＊構成の説明＊＊＊
図２３を参照して、実施の形態２に係る個別署名システム１の構成を説明する。
個別署名システム１は、署名クライアント端末１００と、署名サーバ３００と、検証サーバ４００とを備える。実施の形態１にあったＩＣカード２００の機能は、署名サーバで実施するため、実施の形態２ではＩＣカード２００が不要である点が実施の形態１と異なっている。
【００８９】
図２４を参照して、実施の形態２に係る署名クライアント端末１００の構成を説明する。
署名クライアント端末１００は、機能要素として、ファイル選択部１１１と、ファイル送受信部１１２と、署名値確認置換部１１４とを備える。実施の形態１にあった署名値添付指示部１１３が実施の形態２では不要となる。
記憶部１５０には、ファイル管理テーブル１５１と署名値付きファイル保管テーブル１５４とが記憶される。実施の形態１にあった署名値作成テーブル１５２と署名値確認テーブル１５３が実施の形態２では不要となる。
実施の形態２に係る署名クライアント端末１００はＩＣカード２００が不要となる。
【００９０】
図２５を参照して、実施の形態２に係る署名サーバ３００の構成を説明する。
署名サーバ３００は、ファイル送受信部３１１と、ハッシュ値生成部３１２と、署名値添付部３１３と、署名値添付指示部３１４と、署名／暗号化部３１５とを備える。署名値添付指示部３１４と署名／暗号化部３１５がある点が実施の形態１と異なる。
記憶部３５０には、公開鍵管理テーブル３５１とファイル管理テーブル３５２と署名値管理テーブル３５３と秘密鍵管理テーブル３５４とが記憶される。秘密鍵管理テーブル３５４がある点が実施の形態１と異なる。
【００９１】
実施の形態２に係る検証サーバ４００の構成は、実施の形態１と同じであるため、説明を省略する。
【００９２】
＊＊＊動作の説明＊＊＊
図２６から図２９を参照して、実施の形態２に係る個別署名システム１の動作を説明する。
【００９３】
ステップＳ５１からステップＳ５４の処理は、図５のステップＳ１からステップＳ４の処理同じである。
【００９４】
次に、図２７を使用して、実施の形態２に係る第１の署名値作成処理を説明する。
署名／暗号化部３１５は、ハッシュ値から第１の署名値を作成する（ステップＳ６５）。署名値を作成するための秘密鍵は、実施の形態１では、ＩＣカード２００内に保管されていたが、実施の形態２では利用者によって予め登録され、署名サーバ３００内に保管されているものを利用する。
【００９５】
署名値添付指示部３１４は、署名値が未作成のハッシュ値はあるか判定する（ステップＳ６６）。未作成のハッシュ値があれば、第１の署名値の作成（ステップＳ６５）を繰り返す。
【００９６】
次に、図２８を参照して、実施の形態２に係る仮の署名値による利用者への確認処理を説明する。
作成された第１の署名値は、図１４に示すように署名値管理テーブル３５３に保管される。図１４では、「ｃ１ｃ２ｃ３」、「ｄ１ｄ２ｄ３」、「ｅ１ｅ２ｅ３」が第１の署名値である。
【００９７】
図２８のステップＳ７３から図２９のステップＳ９０の処理は、ステップＳ２３からステップＳ４０までの処理と同じであるため、説明を省略する。
【００９８】
＊＊＊実施の形態２の効果＊＊＊
以上のように、実施の形態２に係る個別署名システム１は、利用者の秘密鍵の管理を署名サーバ３００で行うことで、利用者が秘密鍵の管理を行う必要がなくなる。また、利用者が、第１の署名値を作成する作業も不要となる。
【符号の説明】
【００９９】
１  個別署名システム、１００  署名クライアント端末、２００  ＩＣカード、３００  署名サーバ、４００  検証サーバ、５００  ネットワーク、１１１  ファイル選択部、１１２  ファイル送受信部、１１３，３１４  署名値添付指示部、１１４  署名値確認置換部、２１１  署名／暗号化部、３１１  ファイル送受信部、３１２  ハッシュ値生成部、３１３  署名値添付部、４１１  ファイル送受信部、４１２  署名値置換部、４１３  検証部。
【図１】
2019176470.tif 000003
【図２】
2019176470.tif 000004
【図３】
2019176470.tif 000005
【図４】
2019176470.tif 000006
【図５】
2019176470.tif 000007
【図６】
2019176470.tif 000008
【図７】
2019176470.tif 000009
【図８】
2019176470.tif 000010
【図９】
2019176470.tif 000011
【図１０】
2019176470.tif 000012
【図１１】
2019176470.tif 000013
【図１２】
2019176470.tif 000014
【図１３】
2019176470.tif 000015
【図１４】
2019176470.tif 000016
【図１５】
2019176470.tif 000017
【図１６】
2019176470.tif 000018
【図１７】
2019176470.tif 000019
【図１８】
2019176470.tif 000020
【図１９】
2019176470.tif 000021
【図２０】
2019176470.tif 000022
【図２１】
2019176470.tif 000023
【図２２】
2019176470.tif 000024
【図２３】
2019176470.tif 000025
【図２４】
2019176470.tif 000026
【図２５】
2019176470.tif 000027
【図２６】
2019176470.tif 000028
【図２７】
2019176470.tif 000029
【図２８】
2019176470.tif 000030
【図２９】
2019176470.tif 000031