(57)【要約】      （修正有）【課題】署名された文書であっても前記署名を無効化せずに文書への追記及び追記を含む文書への署名を可能とし、署名対象の管理を容易とし様々な型の文書にも適用可能にする。【解決手段】署名システムはクライアント端末１２１ａと、クライアント端末１２１ａとネットワークを介して接続される署名サーバ１０１を備え、署名サーバ１０１は、クライアント端末１０１ａから署名や追記の条件設定の要求を受けてこれを実施し、追記のファイルの作成と、元の文書と追記のファイルのリレーションの定義を行い、クライアント端末１０１ａに対して署名や追記に関する通知を行う。クライアント端末１０１ａは、署名サーバ１０１からの通知を受けて、署名や追記、ユーザ情報に関する応答を行い、署名サーバ１０１は、前記応答結果に基づき署名や追記の権限有無の判断、署名の正当性の判断、前記ユーザ情報に応じた追記内容の確認、元の文書への追記や署名の実施を行う。【選択図】図１
2013192125.tif 000002
【特許請求の範囲】
【請求項１】
作成されたデータに対して署名を行うための署名システムであって、一以上の計算機と、署名サーバと、前記一以上の計算機の少なくとも一つ及び前記署名サーバに接続されるネットワークと、を備える署名システムであって、
前記署名サーバは、
前記計算機からの要求に基づき前記データに対して署名作成を行う際、以降の署名者が追記を行うための情報を生成する手段と、
生成された情報を、前記データおよび署名と対応付けて記録する手段とを有し、
前記以降の署名者が前記データについての追記および署名することを可能とする署名システム。
【請求項２】
請求項１に記載の署名システムにおいて、
前記生成する手段は、
前記データに関する署名および追記の条件情報を特定し、前記条件情報に基づき、前記情報として、前記データへの追記のファイルおよび前記データと前記追記のファイルの相関関係の定義を生成することを特徴とする署名システム。
【請求項３】
請求項２に記載の署名システムにおいて、
前記署名サーバは、前記署名作成で作成される署名を、前記追記のファイルを除いた部分に対して行うことを特徴とする署名システム。
【請求項４】
請求項２または３のいずれかに記載の署名システムにおいて、
前記追記ファイルは、空ファイルであることを特徴とする署名システム。
【請求項５】
請求項１乃至４のいずれかに記載の署名システムにおいて、
前記署名サーバは、
さらに文書への追記の内容や形式を定義した追記タイプ情報を記録する手段を有し、
前記情報を生成する手段は、前記追記タイプ情報に応じた前記追記のファイルと追記一時ファイルを作成し、前記計算機からの追記データの入力にあたっては、前記計算機から入力された追記データを前記追記一時ファイルに格納し、前記追記一時ファイルを必要に応じて前記追記ファイルの形式へと変換し、前記追記ファイルを前記追記一時ファイルの内容で置換することを特徴とする署名システム。
【請求項６】
請求項５に記載の署名システムにおいて、
前記署名サーバは、前記追記ファイル、および前記データと前記追記ファイルの相関関係の定義ファイルを前記データ内に作成することを特徴とするに記載の署名システム。
【請求項７】
請求項５に記載の署名システムにおいて、
前記署名サーバは、前記計算機からの追記データの入力のために、前記追記タイプ情報に応じた入力画面の提示、入力データの受付けを行うことを特徴とする署名システム。
【請求項８】
請求項５に記載の署名システムにおいて、
前記署名サーバは、前記計算機を利用するユーザから署名作成の要求を受け、前記条件情報を基に前記ユーザに署名作成の権限があるか、前記作成要求された署名の順序は正当かを判断し、前記ユーザに権限があり署名の順序が正当である場合は、要求された署名を作成し、正当でない場合は要求された署名の作成を禁止し、前記計算機を利用するユーザから追記作成の要求を受け、前記条件情報を基に前記ユーザに追記作成の権限があるか、追記対象は未署名の領域であるかを判断し、前記ユーザに権限があり追記対象が未署名の領域である場合は要求された追記を作成し、未署名の領域でない場合は要求された追記の作成を禁止することを特徴とする記載の署名システム。
【請求項９】
請求項５に記載の署名システムにおいて、
前記署名サーバは、署名や追記がなされたデータに含まれる追記データを判別し、前記追記データを格納する各追記ファイルの内容や作成者などの情報を、前記計算機に提示することを特徴とする署名システム。
【請求項１０】
請求項１乃至９のいずれかに記載の署名システムにおいて、
前記データは、文書データであることを特徴とする署名システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子署名を行う計算機を含む署名システムに関し、特に、署名されたデータ（文書等）に対して、もとの署名を活かしながら文書に追記および署名する技術に関する。
【背景技術】
【０００２】
近年、様々な分野で紙の電子化が進んでいる。電子文書の正当性を保証する技術として、電子署名技術がある。電子署名を用いることで、文書が改竄されてないか、誰が署名したか等を確認することができる。電子署名された文書に追記など変更を加えると、文書は署名後に改竄されたとみなされ、その署名は無効になってしまう。これに対し、電子署名に付加機能を加えた、変更可能署名方式が提案されている。
【０００３】
変更可能署名に関する従来技術として、特許文献１や特許文献２がある。これらの公知技術によれば、ユーザは例えば、署名された文書に対して、当該文書の署名を無効化することなく新たな内容を追加し署名する等が可能になる。
【０００４】
また、上記以外の従来技術として、ポータブルドキュメントフォーマット（PDF）の増分更新技術がある（非特許文献１）。本公知技術では、PDFファイル内においてファイル末尾を示す文字列（％％EOF）の後に、変更情報および新たなファイル末尾を示す文字列を付加する。もとの文書のデータはそのまま保持されるため、署名されたPDFファイルであっても、前記署名を無効化せずに情報の追加や署名等が可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開 2009-284138号公報
【特許文献２】特開 2002-40935号公報
【非特許文献】
【０００６】
【非特許文献１】"PDF電子署名入門"、［online］、Antenna House, Inc.、［平成23年10月18日検索］、インターネット＜URL：http://www.antenna.co.jp/PDF/reference/PDFSingature.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の従来技術のような、ファイル内の一部を署名対象として署名する方式では、署名対象の特定が複雑化する。例えば文書内のどの位置にあって、どこまでのデータが署名対象かといったことを把握、特定する必要があり、署名作成・検証の処理が複雑化する。また、元々の文書からどんな変更を行ったかを示す差分データの管理が必要で、その管理が煩雑である。例えば差分データ自体に更なる変更を行った場合、元々の文書ではなくその差分データに対する変更位置の特定というように処理が階層化して複雑化する。また管理すべき差分データ数が膨大化してしまう問題がある。尚、別の問題として、文書の型によっては、ファイル内の一部に署名することができないものが存在する。例えばOpenXML型の文書などは、ユーザからは単一のファイルとして見えるが、実際には内部に複数のファイルを保持する複合型文書である。このような文書の場合、文書を構成するファイル単位でしか署名を行えない。仮にファイル内の一部に署名する方式とした場合、当該文書を扱う他のアプリケーションでは文書を開けなくなる等の問題が生じる可能性がある。そのため、上記公知技術のようなファイル内の一部に署名する方式を適用することはできない。尚、非特許文献１の技術は、PDFファイルに対しては適用可能だが、その他の型のファイルには適用できない。また、増分更新のたびに文書のバージョン管理の必要が生じること、また前記公知技術と同様にファイル内のどの位置にある部分情報が署名対象か(例えば文書のうち、１〜５行目迄が署名対象など)の把握が必要となり署名処理が複雑になるという問題がある。また、上記公知技術において、もとの文書と差分データを別々に管理する方式の場合、双方を紐付ける相関関係の情報(どの元々の文書に対してどの差分データが関連するか)を厳密に定義しておかないと、元々の文書と差分データの関連付けを不正に変更されたり、差分データの一部を不正に除去される等しても気付かない可能性がある。
【０００８】
以上を踏まえ、本発明は、署名された文書に対して前記署名を無効化せずに追記、及び追記データへの署名を可能とし、様々なファイルに適用可能で、そのデータ管理や署名処理が容易な追記可能署名方式を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明では、先に行われる署名において、以降の署名者の追記を行うための情報を生成するものである。この情報としては、追記用のファイル、元のデータと追記されるデータ（ないし追記用のファイル）の関連性を示す定義および追記条件が含まれる。ここで、追記用のファイルは、いわゆる空ファイルを用いてもよい。
【００１０】
以下、より詳細な本発明の代表的な一例を示せば以下の通りである。すなわち、計算機と、前記計算機とネットワークを介して接続されて署名機能を備える計算機と、を備える署名システムであって、前記署名機能を備える計算機は、前記計算機から署名や追記の条件設定に関する要求を受けて、署名や追記の条件設定の実施、追記のファイルの作成と、元の文書と追記のファイルのリレーションの定義を行い、前記署名や追記の条件に関係する計算機に対して署名や追記に関する通知を行い、前記関係する計算機は、前記署名機能を備える計算機からの通知を受けて、署名や追記、ユーザ情報に関する応答を行い、前記署名機能を備える計算機は、前記応答結果に基づき署名や追記の権限有無の判断、署名の正当性の判断、前記ユーザ情報に応じた追記内容の確認、元の文書への追記や署名の実施を行うことを特徴とする署名システム。
【発明の効果】
【００１１】
本発明によれば、複数の署名において、先の署名を活かしながらデータへの追記及び追記を含むデータへの署名が可能になる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施例の署名システムのハードウェアおよびソフトウェア構成を示すブロック図である。
【図２】第１の実施例の認証情報112の一例を示す説明図である。
【図３】第１の実施例の署名条件情報113の一例を示す説明図である。
【図４】第１の実施例及び第２の実施例の追記条件情報114の一例を示す説明図である。
【図５】第１の実施例の追記タイプ情報114の一例を示す説明図である。
【図６】第１の実施例の文書情報の変遷、リレーションファイルの一例を示す説明図である。
【図７】第１の実施例の署名サーバ101が実行する、署名や追記についての処理の一例を示すフローチャートである。
【図８】第１の実施例の変形例のメモリ情報112の一例を示す説明図である。
【図９】第１の実施例の変形例のクライアント端末121が実行する、署名や追記についての処理の一例を示すフローチャートである。
【図１０】第２の実施例の署名サーバ101が実行する、墨塗り署名の処理の一例を示す説明図である。
【図１１】第２の実施例の文書への墨塗り署名の一例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について説明する。尚、以下に説明する実施の形態は一例であって、本発明はこれに限定されるものではない。
【００１４】
図１〜図７を用いて第１の実施例を説明する。
図１は、本発明の第１の実施例の署名システムのハードウェアおよびソフトウェア構成を示すブロック図である。署名システムは、１以上の署名サーバ101と、１以上の外部サーバ141と、１以上のクライアント端末121a及び121b（以下、これらを総称してクライアント端末121とも記載する）と、を備える。尚外部サーバとは、タイムスタンプサーバや、証明書の失効確認を行うOCSPレスポンダ等であり、これらを備えない構成であってもいい。
【００１５】
署名サーバ101、クライアント端末121は、それぞれI/F104、123を介してネットワークに接続される。署名サーバ101は、I/F104を介して、クライアント端末121等の外部機器に対して、操作要求の受付けや操作の指示を行う。
【００１６】
署名サーバ101は、CPU103、メモリ102およびI/F104を備える。CPU103は、I/F104を介してクライアント端末121等の外部機器からの操作要求の受信および当該操作の実行や、前記外部機器に対して署名や追記に関する通知や操作結果の送信などを行う。メモリ102はユーザ連携部105、署名作成部106、署名検証部107、署名、追記条件管理部108、追記管理部109、認証情報110、署名条件情報111、追記条件情報112、追記タイプ情報113、文書情報114から構成されており、CPU103、I/F104と接続されている。
【００１７】
クライアント端末121は、CPU124、メモリ122およびI/F123を備える。CPU124は、I/F123を介して署名サーバ101等への操作要求や、署名サーバ101等からの操作指示や操作結果の受信を行う。メモリ122はサーバ連携部125、ユーザ連携部126、認証情報127から構成されており、CPU124、I/F123と接続されている。つまり、上述した各部がプログラムとして構成され、各装置が有するＣＰＵがメモリに展開されたプログラムに従って後述する処理を実行するものである。
【００１８】
次に、本実施形態の署名システムのソフトウェア構成の詳細（メモリ102、メモリ122に格納される情報）について説明する。
最初にメモリ102に格納されたプログラム以外の情報（110〜114の情報)について説明し、その後、メモリ102に格納されたプログラム情報（105〜109の情報）について説明する。
【００１９】
認証情報110は、署名サーバ101への操作要求を行うユーザを認証するために使用する情報である。図２は、本発明の第１の実施例の認証情報110の一例を示す説明図である。認証情報110は、項目201、202、203、204の四つのデータ項目を含む。項目201は、ユーザを一意に識別するためのユーザIDを示す。項目202は、ユーザのパスワードを示す。項目203は、ユーザのメールアドレスの情報を示す。項目204は、ユーザの所属組織の情報を示す。所属組織とは例えば会社名や、会社内の部署情報等である。また、ここでは所属組織としたが、何らかの署名の管理単位(組織)であれば構わない。例えば図２において、userAは製薬Aに所属していることを示す。尚、後述の署名や追記の条件設定において、署名や追記を許可するユーザとして、ユーザ単位での指定以外に組織単位での指定、即ち、ある組織に属している任意ユーザに署名や追記の実行を許可する、などに本情報を利用してもいい。また、認証情報として上記以外の情報、例えばユーザの証明書情報などを含んでもいいし、後述の署名や追記の条件設定等を行う操作権限に関する情報などを含んでもいい。
【００２０】
署名条件情報111は、署名の条件を示すもので、例えば、署名可能者が含まれる情報である。本情報は、先方する（例えば最初の）署名者が設定してもいいし、署名者とは別のユーザが設定してもいい。図３は、本発明の第１の実施例の署名条件情報111の一例を示す説明図である。署名条件情報111は、項目301、302、303、304、305、306、307の七つのデータ項目を含む。項目301は、各署名条件を識別するための識別番号を示す。項目302は、各署名条件において、追記や署名対象となるもとの文書の情報を示す。各署名者は、この元の文書302に対して順次追記や署名を行う。項目303は、署名の進捗状況を示す。例えば図３において、署名条件ID301が「１０」のものは、項目303が「１／２」である。これは項目302で指定された文書に対して全部で二個の署名を行う予定だが、現在そのうちの一個目の署名を今後実施予定であることを示す。一個目の署名が行われると、項目303は「２／２」即ち、以後二個目の署名を実施予定ということになる。項目304は、署名を実施可能な署名者を示す情報である。本情報により、指定した署名者のみ署名可能にする等が可能になる。尚、予め署名者を指定するのでなく、任意のユーザからの署名を可能にする等の設定にしてもいい。項目305は、署名の順序を示す情報である。例えば図３の例では、署名者Aの署名順序が「１」で署名者Bの署名順序が「２」である。これは、まず署名者Aが署名してからでないと署名者Bは署名できないことを示す。本情報により各署名者の署名順序を設定可能だが、署名順序を設定しない、即ち任意の順序での署名を可能にする設定にしてもいい。例えば項目305に全て同じ値を設定するなどして、署名の順序制御しないようにしてもいい。項目306は、各署名者が行った署名を識別するための署名番号を示す。例えば図３で署名者Aが行った署名は署名番号「１」として識別される。本情報は後述の追記条件情報112の署名番号402と共通であり、各追記情報を誰が署名するかの結び付けを行う。項目307は、各署名が実施済みか未実施かを示す。尚、署名条件情報111はサーバで保持するため、適切なアクセス制御により情報の改竄等を防止可能だが、よりセキュアにするために本情報に署名をつけるなどしてもいい。また、署名条件情報111は、各署名条件IDの署名条件を誰が作成したかを示す、署名条件作成者の情報を含んでもいい。
【００２１】
追記条件情報112は、追記の条件（誰にどんな追記を許可するかなど）を示す情報である。図４は、本発明の第１の実施例の追記条件情報112の一例を示す説明図である。追記条件情報112は、項目401、402、403、404、405、406、の六つのデータ項目を含む。項目401は、各署名条件を識別するIDであり項目301と同様である。項目402は、もとの文書302に対してどのような追記を許可するかを示す追記タイプの情報である。尚、本項目は後述の追記タイプ情報113の項目501を参照して指定する。例えば図４で項目402が「１」の追記タイプは、項目501が「1」の追記タイプに相当する。項目403は、追記を許可するユーザの情報を示す。追記は一人のユーザにだけ許可する以外に、例えば図４のように「任意」と設定して、任意のユーザに許可してもいい。項目404は、追記データを格納するファイルを示す。尚、ファイルは絶対パスや相対パス等で指定してもいいし、後述のリレーションファイル601で定義されるファイル識別子（例えば図４の「rId1」等）で指定してもいい。また追記者に複数の追記ファイルを割当ててもいい。項目405は追記データを格納する一時ファイルを示す。ユーザからの追記データを一旦一時ファイルに保持し、全ての追記が終わったらデータを項目404の追記ファイルに格納する。例えば追記への署名を行った後に追記の修正を行う必要が生じた場合、署名された追記自体は変更できないが、この一時ファイルがあることで、追記及び追記への署名をやり直すことが容易になる。但しこのような一時ファイルを設けずに、ユーザからの追記データを直接追記ファイル404に格納する方式にしてもいい。項目406は、項目404の追記データがどの署名番号306の署名によって署名されるかを識別するための署名番号を示す。例えば図4では、署名条件IDが「１０」の署名条件では、追記タイプが「１」及び「２」の追記が可能であり、追記タイプが「２」の追記はユーザBが実施可能であり、その追記データは一時的に「r/tmp/temp2.docx」に保持され最終的に「r/test/2.dat」に格納され、署名番号が「２」の署名（図３より署名者Bの署名）によって署名される。但し追記データに必ずしも署名する必要はなく、追記のみ行うようにしてもいい。
【００２２】
追記タイプ情報113は、追記のタイプ（例えば文字列だけの追記や任意の追記など）を示す情報である。図５は、本発明の第１の実施例の追記タイプ情報113の一例を示す説明図である。追記タイプ情報113は、項目501、502、503、504、505の五つのデータ項目を含む。項目501は、追記タイプを識別するための番号を示す。本番号を用いて追記条件情報112の項目402を指定する。項目502は、追記タイプの内容を示す。例えば「文字列」は文字列のみの追記、「任意」は任意の追記が可能なことを意味する。図５において「形式A」とは、ユーザが事前に作成した形式（例えばコメント欄、画像欄等が定義されたものなど）に従った追記を許可することを意味する。尚、追記タイプはこれら以外に、ユーザが後から定義したものを登録して使用してもいい。項目503は、追記データを格納するファイルの型を示す情報である。項目504は、追記データを一時的に保持するファイルの型を示す情報である。尚、図５では、「.txt、.dat、.xlsx」等の型が用いられているが、これらは一例でありその他の型を用いてもいい。項目505は、追記タイプに関する備考情報を示す。例えば図５において追記タイプが「４」の追記は、項目505に示すファイルで表される形式に従った追記であることを示す。
文書情報116は、署名対象とする文書の情報である。署名条件の設定者や署名者、追記者等が、署名サーバ101に文書をuploadする等して登録する。尚、署名された文書や、署名途中の文書等の情報を保持してもいい。
【００２３】
次に、メモリ102に格納されたプログラム情報について説明する。ユーザ連携部105は、署名サーバ101へ操作要求を行うユーザを認証情報110に基づいて認証し、ユーザが要求する操作の実行を許可又は禁止する等の処理を実行する。署名作成部106は、文書への署名を行う。署名処理としては、例えば文書のハッシュ値を生成し、そのハッシュ値を署名者の秘密鍵で暗号化し、この暗号化した値を署名値として文書に付加する。尚、文書のハッシュ値を署名者が使用するクライアント端末に送り、署名者側で当該ハッシュ値をもとに署名値を作成し、署名者から当該署名値を貰って署名サーバで文書に付加するなど、上記以外の処理でもいい。尚、署名作成部106は、必要に応じて外部サーバ141と連携し、タイムスタンプやOCSPレスポンス等の取得を行う。また署名作成部106は、署名条件情報111を基に、署名要求を行うユーザに署名作成の権限があるか、また作成しようとしている署名は順序の面で条件に合致しているかの判断を行う。署名検証部107は、文書になされた署名が適正か否かの検証を行う。具体的には、署名値や署名順序が正しいか否か等を検証する。署名、追記条件管理部108は、署名や追記に関する条件設定者等の要求に基づき、署名条件情報111や追記条件情報112の作成、変更、削除等を行う。署名サーバ101は、署名や追記に関する条件設定が終了した後、署名や追記の依頼を関連するユーザに通知してもいいし、そのような通知を行わず、任意時にユーザから署名や追記の要求を受付けるようにしてもいい。追記管理部109は、追記条件情報112を基に追記ファイルの作成や、ユーザ追記データの追記ファイルへの格納、もとの文書と追記ファイルの相関関係の定義、追記要求を行うユーザに追記の権限があるかの判断を行う。また追記タイプ情報113の登録、削除などの管理も行う。
【００２４】
次にメモリ122に格納される情報について説明する。サーバ連携部125は、署名サーバ101など外部のサーバと連携し、ユーザからの操作要求（署名作成や追記要求など）を外部のサーバに送信、外部のサーバからの応答結果の受信等を行う。ユーザ連携部126は、クライアント端末への操作要求を行うユーザを認証情報127に基づき認証し、ユーザが要求する操作の許可、又は禁止、操作結果の表示等の処理を行う。認証情報127は、クライアント端末に対して操作要求を行うユーザを認証するための情報であり、各ユーザのID、パスワード等の情報で構成される。
【００２５】
以上が本実施例における署名システムのハードウェアおよびソフトウェア構成である。次に、前述したハードウェアおよびソフトウェア構成に基づいて本実施例における署名や追記の条件設定、署名や追記の実施までの一連の処理の詳細について説明する。
【００２６】
＜署名や追記の条件設定、署名や追記の実施の処理＞
図７は、本発明の第１の実施例の署名サーバ101が実行する、署名や追記の条件設定、署名や追記の実施についての処理の一例を示すフローチャートである。尚、以下では説明を省略するが、署名サーバ101は認証情報110をもとに正当と認められたユーザからのみ操作要求を受付けるとする。
【００２７】
ユーザ連携部105は、ユーザから署名条件、追記条件の設定要求を受付ける（701）。具体的には、どの文書に対して誰にどんな順序で署名させるか、また文書にどんな追記を許可するか等の設定情報を受信する。この設定要求にあたっては、ユーザ連携部105は例えば設定画面を表示する等して、文書や署名者、署名順序、追記タイプの情報等を選択して指定できるようにしてもいい。上記要求を受け、署名、追記条件管理部108は、要求内容に沿って、署名条件、追記条件の設定ファイルを更新する（702）。具体的には、例えば図３において、新たな署名条件IDを作成し項目301に登録し、上記ユーザから受信した署名に関する設定情報（文書、署名者、署名順序等）を基に、前記新たな署名条件IDにおける項目302、304、305に値を設定する。項目303は前記設定情報の署名者の数（文書に付される署名の数）を基に自動で設定される。例えば署名者数が二人であれば「１／２」、三人であれば「１／３」等になる。項目306は、文書に付される署名を一意に識別可能な値が自動で設定される。また追記条件の設定に関しては、具体的には例えば図４において、前記作成した新たな署名条件IDを項目401に登録し、上記ユーザから受信した追記に関する設定情報（追記タイプ、追記者、各追記にどの署名が付されるか等）を基に、前記新たな署名条件IDにおける項目402、403、406に値を設定する。項目404、405は上記設定要求で指定された追記タイプの値を基に後述のステップ704で自動で設定される。ユーザ連携部105は、上記設定の後、前記ユーザから署名の実施要求を受付ける（703）。尚、ここでは署名や追記の条件設定者がもとの文書に署名してから、以降、前記条件設定で指定したユーザに署名や追記をさせることを想定しているため、このような処理とした。但し別の処理方法として、例えば前記条件設定者は、署名や追記の条件設定を行い署名を省略し、以降、本条件設定に沿って各ユーザが署名や追記を行う処理としてもいい。その場合本ステップでの署名処理は行わなくてもいい。次に、上記要求を受け、追記管理部109は、ステップ702で更新した設定情報を基に、追記データを格納する追記ファイルを作成する。具体的には、例えば図４において、追記タイプ「１」が設定された追記条件の場合は、図５の追記タイプ情報113を基に、「.dat」型、「.txt」型のファイルが作成され、それぞれのパス情報が項目404、項目405に設定される。尚、ファイル名は一意に識別できるものが自動で設定される。尚、追記や署名の対象となるもとの文書が内部に複数のファイルを保持する複合型文書の場合は、項目404の追記ファイルは当該複合型文書内部に作成してもよく、その場合当該複合型文書自体をルートディレクトリとしてそこからのパス情報を項目404に設定してもいい。もしくは後述のリレーションファイル601で定義する識別子の値を設定してもいい。次に追記管理部109は、署名や追記対象のもとの文書の署名や追記の条件情報を図４や図５等から判別し、前記もとの文書から、上記追記条件情報に従って、指定された追記ファイル404に対してリンクをはる。リンクをはるとは、例えばもとの文書内部に、前記追記ファイルと相関（参照、もとの文書内にデータ読込み等）があることを示す識別子を埋込むことである。尚リンクがはれるか否かは例��ばファイルの拡張子などの情報をもとに判断してもいい。リンクをはれない文書については、図６に示すリレーションファイル601等に相関関係を定義する。上記処理について図６を用いて説明する。図６（ａ）は追記や署名前のもとの文書の概要を示す図である。文書は、リレーションファイル601と、文書のテキスト情報などを含むファイルや、フォントなどの各種プロパティ情報を含むファイルなどから構成される文書の主のファイル群602から構成される。但し、必ずしもファイル群でなく単一のファイルであってもいい。
【００２８】
リレーションファイル601は、文書内にある各ファイルへのルート（文書）からのパス情報や、文書内にある各ファイル間の関係などを定義する情報である。リレーションファイルは例えば図６（ｃ）のようなもので、各ファイルのパス情報とそれを識別するためのIｄ（例えばrId1等）などから構成される。尚、リレーションファイルは一つでなくてもよく、例えば文書内の主のファイル群の中でさらにリレーションファイルを定義するというように、一つの文書が複数のリレーションファイルを持ってもいい。また、このリレーション情報をサーバ側で保持してもいい。図６（ｂ）は、本ステップまでの処理によって文書に一以上の追記ファイルからなる追記のファイル群603が生成された状態を示す。この時、前述の処理によって文書のメインファイルに追記ファイルとの相関関係が埋込まれている、又は、リレーションファイル内にメインファイルと追記ファイルとの相関関係が埋込まれている。上記のような相関関係を定義することで、ある追記ファイルが本当にある文書に対する追記であること、またある追記ファイルが署名や追記の条件設定者が意図しない不正に作成されたものでないことを保証できる。以上の追記ファイルの作成、各種情報の更新の後、署名作成部106は前記ユーザの署名を実施する（704）。尚、この時署名対象は、追記ファイル群を除いた部分（即ち、文書の主のファイル群とリレーションファイルである。追記ファイル群を署名対象としないのは、追記がなされる前に署名をしてしまうと以降署名の改竄となって追記できなくなってしまうためである。尚、署名に際しては、上記リンクを張り、一旦前記条件設定者に文書を表示してもよい。これにより署名者がその内容を確認可能となる。また署名対象については、条件設定者の秘密鍵で署名するのでなく、署名サーバ固有の秘密鍵を設け、この鍵で署名するようにしてもいい。この場合、前記条件設定者はあくまで署名や追記の条件設定を行い、署名の秘密鍵を保有せずにすむことになる。尚、項目404、項目405に関する本ステップの処理は、ステップ702において行ってもよいが、その場合本ステップでの署名処理が行われる前に、もとの文書と追記のファイルの相関関係の情報や追記のファイルが改竄される可能性がある。このような可能性を極力へらすために本ステップでの処理としている。次に署名サーバ101は、上記署名条件に関して、次ユーザからの操作要求を待つ（705）。尚、他の処理として署名サーバは単に操作要求を待つのではなく、上記署名条件に関係するユーザ、例えば図４や図５の署名条件IDが「１０」の場合はユーザAとユーザB（項目304と項目403のユーザ）等、に対して署名や追記の依頼通知をしてもいい。署名サーバ101は次ユーザから操作要求を受付ける（706）。署名サーバ101はその操作要求が署名要求であるか否か判断し（707）、署名要求である場合は、前記次ユーザが署名の実行権限があるか否か判断する（708）。具体的には、前記署名要求の署名条件IDの項目304に前記次ユーザが登録されているか、もしくは署名が任意のユーザに許可されているか等で判断する。
【００２９】
前記次ユーザに署名権限がある場合は、署名サーバ101は、さらに署名順序が正当か判断し（709）、署名順序が正しければ署名を実施する（710）。具体的には、図３において前記次ユーザの署名順序よりも前の署名があるか項目305で確認し、もしある場合はその署名状況307を確認し、まだ署名が打たれてないもの、即ち「未」のものがある場合は、署名順序が正しくないと判断し署名を実施しない。上記に該当しない場合は署名を実施しステップ711に進む。尚、本署名では、本署名条件IDにおける前記次ユーザの署名の署名番号306に対応する追記ファイル404が署名対象となる。例えば図３で署名条件IDが「１０」で署名者が「B」の署名の場合、署名番号は「２」であり、それに対応する追記ファイル404「r/test/2.dat」が署名対象となる。但し、上記以外の署名対象とする、例えばもとの文書302や他ユーザの署名結果も署名対象に含める、等の処理でもいい。ステップ708で実行権限がない場合またはステップ709で署名順序が正当でない場合はステップ711に進む。ステップ707で操作要求が署名要求でない場合、署名サーバ101は操作要求が追記要求であるか否か判断し（713）、追記要求である場合は、前記次ユーザが追記の実行権限があるか否か判断する（708）。具体的には、前記追記要求の署名条件IDの項目403に前記次ユーザが登録されているか、もしくは追記が任意のユーザに許可されているか等で判断する。前記次ユーザに追記権限がある場合は、署名サーバ101は、さらに追記対象が未署名領域であるか判断し（716）、未署名であれば前記次ユーザからの追記を受付ける（717）。具体的には、前記追記要求された署名条件IDにおける、前記次ユーザが行おうとしている追記（項目404）に対応する署名番号406を判別し、図３を基に当該署名番号406における署名状況307を確認する。署名状況が「済」の場合は前記要求にて追記を行おうとしている部分は既に署名済みとして判断し追記を行わず、署名状況が「未」であれば未署名と判断して追記を受付ける。ステップ717での追記の受付けにあたっては、前記次ユーザに許可されている追記タイプ402に応じた処理にしてもいい。例えばタイプが「１」で文字列の追記が許可されている場合は、文字列入力を促すような画面をユーザに提示して受付けてもいいし、形式Aの追記ならその形式に沿った入力画面を提示して受付けてもいいし、任意の追記ならユーザに対して任意の追記が可能な旨を提示し、例えばユーザから追記内容を記述した任意のファイルを受信するようにしてもいい。前記次ユーザからの追記を受付けた後、署名サーバ101の追記管理部109は、文書への追記を実施する（718）。具体的には、例えば図３の署名条件IDが「１０」で追記者が「B」の追記の場合、当該追記者から追記内容を記述したファイル（例えば項目405のtemp2.docx）を受信し、それを項目404で指定されているファイルへと変換する。当該ファイルを、ステップ704で作成した前記項目404の追記ファイルと置換することで、追記データが入れ込まれる。尚、前記変換にあたっては必要があれば例えばバイナリ変換などの変換を行う。またファイルの置換にあたっては、項目404のファイルの名称は変更せず中身を置換する。これは、項目404のファイルはリレーションファイル601に定義されており、リレーションファイル601が署名���れている場合、ファイル名を変更すると署名の改竄となるためである。上記処理によって、例えばもとの文書に加えて追記内容が表示されることとなる。また、ユーザからは単一のファイルとして見えるようにする等が可能になる。上記は一例だが、それ以外のファイルタイプでもいい。また、上記以外の処理方法として、例えばサーバ上で追記用のファイルを開き、そこにユーザから任意の書込みを受付けて、当該ファイルをもとの文書に対する追記データとしてもよい。
【００３０】
また、次のユーザが行うべき署名や追記の対象を項目303の情報をもとに署名サーバ101が判断して処理してもいいし、項目404の各ファイル内容をユーザに提示する等してその中から各ユーザに選択させて処理するようにしてもいい。ステップ713において、要求された操作が追記要求でない場合、署名サーバ101は前記次ユーザに要求されたその他の操作を実施し、ステップ711に進む。ステップ715において追記権限がない場合、またステップ716において未署名領域でない場合は、ステップ711に進む。次に署名サーバ101は、前記次ユーザからその他の操作要求があるか判断し（711）、要求があればステップ707に進み、なければ本署名条件における署名のそれそれが終了したか判断する（712）。より具体的には本署名条件IDにおける進捗303や署名状況307を見て判断する。全ての署名が終了していない場合ステップ705に進み、署名のそれぞれが終了した場合、処理を終了する。
【００３１】
尚、署名サーバ101は、署名のそれぞれが終了した旨を、関連するユーザ等に通知するようにしてもいい。また、事前に各署名条件IDに対応したユーザグループを定義して、署名や追記を任意のユーザに許可する設定であっても、このユーザグループ内において任意のユーザに許可という制限をつけるようにしてもいい（例えば所属組織204内のユーザに限定など）。また、上記処理では追記については順序制御を行っていないが、署名の場合同様、順序制御を行ってもいい。また追記場所に関しても、文書末尾以外に、文書途中の場所に追記させるようにしてもいい。これは例えばステップ704において、文書の途中の場所から追記ファイルにリンクをはることで実現できる。尚、上記では署名を文書に付加しているが、作成した署名を文書とは分離して保管してもいい。また署名時に外部サーバ（OCSPレスポンダやタイムスタンプサーバ等）と連携してそれらの情報の取得、文書への付加等行ってもいい。また署名サーバ101は、図３や図４の情報をもとに、署名された文書にどのような追記データが含まれているか判別し、項目404や項目403の情報を基に、各追記ファイルの内容や作成者の情報をユーザに提示し、前記署名された文書のどの部分が追記データであるかを判別できるようにしてもいい。尚、上記では署名サーバ101が、もとの文書と追記のファイルの相関関係の情報や追記のファイルを作成しているが、例えばユーザが事前にそのような情報や追記のファイルを作成して署名サーバ101に送信し、以降、署名サーバ101は受信した情報をもとに追記や署名の処理を行うようにしてもいい。例えば、追記や署名の対象となるもとの文書が内部に複数のファイルを保持する複合型文書の場合、署名サーバ101がユーザから受信した当該複合型文書を分析し、内部に含まれる追記ファイルや前記相関関係の情報を判別し、以降の追記や署名の処理に使うようにしてもいい。追記ファイルか否かの判別は例えば空ファイルであるか否かによって行ってもいい。また上記は、文書に対する追記、署名の順序にある程度自由度を持たせた方式である、即ち、例えば、あるユーザが作業中（署名実施前で追記を編集中）であっても、追記権限があれば別のユーザでもその追記に協力（編集中の追記を校正など）できる。複数人で協力して追記や署名を行うことが可能である。これに対し、署名や追記の順序をワークフロー形式で厳密に定義し、あるユーザの処理が完了してからでないと次ユーザの処理に進めない方式にしてもよい。
【００３２】
以上が、第１の実施例の署名や追記の条件設定、署名や追記の実施の処理の説明である。次に、本発明の第１の実施例の変形例を説明する。第１の実施例では署名サーバ101が署名や追記等の処理を行ったが、本変形例では各クライアント端末121がこれらの処理を行う点が異なる。
【００３３】
クライアント端末のメモリ122は、図1の内容と異なり図８に示す要素で構成される。項目125の代わりに、新たな項目801〜806が加わっている。尚、署名サーバのメモリ102にあった情報の一部をクライアント端末のメモリ122も保持しているが、各情報の内容が異なる部分がある。署名作成部801は署名作成部106と同様、文書に署名を行う。署名検証部802は、署名検証部107と同様、文書になされた署名が適正か否かの検証を行う。署名、追記条件管理部803は、署名や追記に関する条件設定者等の要求に基づき、署名条件や追記条件に関する情報（図３や図４と同様の情報）の作成、変更、削除等を行う。第一の実施例と異なり、この署名条件や追記条件の情報はもとの文書に入込まれる、例えば図６（ａ）において、文書302内に項目601、602とは別のファイルとして配置される、又はもとの文書とは分けて保持し、次の署名者に当該情報をもとの文書とともに送るようにしてもいい。尚、署名条件や追記条件の情報がもとの文書に入込まれる場合、署名条件ID301、401及びもとの文書302の情報は各文書で一意に定まるため、これらの情報を保持しなくてもいい。但し、同じもとの文書に対して複数の異なる署名条件を設定する場合や、ユーザに対して一度に複数の文書への追記や署名を依頼する場合などは、各文書の署名条件を識別可能にするため、署名条件IDや、もとの文書の情報を保持するようにしてもいい。尚、第１の実施例では署名条件情報111は署名サーバ101が保持し、各ユーザの署名がある度に項目303や307の値を更新していた。本変形例においても、署名条件に関する情報は、署名条件情報111と同様の内容にしてもいいが、その場合、クライアント端末で署名する毎に項目303や307の値を更新する必要がある。また、クライアント端末で作成した署名条件に関する情報の信頼性を高めるために当該情報に署名を付すことが考えられるが、その場合、署名条件情報に項目303や307の情報含まれていても、これら二つの情報を更新することはできない（更新すると前記署名が無効になる）。そのため署名条件の情報に署名を付す場合は、項目303や307の情報は署名条件の情報とは別途管理するようにしてもよい。
【００３４】
もしくは、項目303や307の情報自体なくし、署名状況の判別は、文書に付された署名からその署名が誰のもので署名対象が何であるか（例えばどの追記ファイルが署名対象になっているか）等の情報をもとに当該署名の署名番号406（306）を判別して、署名済みの署名番号406（306）を判断するようにしてもいい。また、追記条件に関する情報に関しては、第１の実施例では最初に項目405で指定する追記一時ファイルを一括して作成だが、本変形例では、追記や署名の順番が回ってきた都度各ユーザが当該追記一時ファイルを作成する。但しこれに限らず第１の実施例と同様の方式にしてもいい。尚、追記一時ファイルはもとの文書内部に作成や保持する必要はなく署名や追記が終わった段階で削除してもいい。尚、複数人で協力して追記を作成するような場合は、自身が作成した追記一時ファイルをとっておいてそれを次のユーザに渡すようにしてもいい。追記管理部804は、上記の追記条件に関する情報を基に、追記管理部109と同様、追記ファイルの作成や、ユーザ追記データの追記ファイルへの格納、もとの文書と追記ファイルの相関関係の定義、追記要求を行うユーザに追記の権限があるかの判断を行う。
【００３５】
また追記タイプ情報805の登録、削除などの管理も行う。追記タイプ情報805は、追記タイプ情報113と同様、追記のタイプを示す情報である。文書情報806は、クライアント端末内にある署名対象とする文書の情報である。尚、署名された文書や、署名途中の文書等の情報を保持してもいい。
【００３６】
以下に第１の実施例の変形例での、署名や追記の条件設定、署名や追記の実施の処理を説明する。処理の流れは第１の実施例と同様である。以下では、処理の異なる部分についてのみ説明する。第１の実施例では、署名サーバ101のユーザ連携部105がユーザからの操作要求を受付けていたが本変形例では、各クライアント端末121のユーザ連携部126が操作を受付ける。また、第１の実施例では、文書や追記データは署名サーバ101側に保持されるため、署名サーバ側で適切なアクセス制御を行えば文書の改竄等を防止することが可能である。一方本変形例では、文書や追記データは各クライアント端末121間で授受されるため、その間に文書が改竄等される可能性が高まる。そのため、本変形例では第１の実施例の場合と異なり、署名や追記条件設定後の文書に対して署名や追記を行う場合、まず署名や追記対象の文書について、既に署名がなされているかの確認および当該署名が無効でないか（文書が改竄されてないか）の検証を行う。そして署名が無効でない場合は、ユーザが要求する操作（追記や署名）を実施する流れとする。図９をもとに処理の詳細を示す。
【００３７】
ユーザからの要求を受け、クライアント端末121の署名、追記条件管理部803は、ステップ701〜ステップ704までと同様の処理で、署名条件や追記条件に関する情報を設定する。尚、第１の実施例と若干処理が異なる部分があるため、その部分を中心に説明する。
【００３８】
署名条件や追記条件の設定者は署名、追記条件管理部803を用いて、クライアント端末内にあるファイルなどから署名する文書を指定する。そして前記文書に対して誰にどんな順番で署名させるか、誰にどんな追記を許可するか設定する。これにより、署名条件情報111および追記条件情報112と同様の情報（但し前述のように署名条件ID301や401等の情報は持たなくてもいい）が作成され、もとの文書内に配置される。尚、追記タイプ情報として第１の実施例同様、独自の追記タイプを指定するようにしてもいい。その場合、ユーザは独自に定義した追記タイプの情報をもとの文書とあわせて以降のユーザに送る（901）。上記の条件設定が完了した後、前記条件の設定者は、上記の条件情報を含む文書をメール等で次のユーザに送信し、署名や追記の依頼を行う（902）。前記依頼を受けた次ユーザは、受信した文書を確認し、自身のクライアント端末のユーザ連携部126を介して、署名や追記の操作要求を出す（903）。上記要求を受け署名検証部802は、前記受信した文書に署名があるか否か判断し、署名がある場合は当該署名が正当か検証する（904）。尚、署名があるか否かは文書に署名データが付されているか否かで判断できる。署名の検証は具体的には、文書に付された署名データから署名者と署名対象を特定し、当該署名対象のハッシュ値と、署名値を署名者の公開鍵で復号した値が一致すれば署名は正当と判断する。尚、各署名者の公開鍵は署名データとともに保持されている。例えば各追記ファイルを署名対象としているような場合、図４で署名条件IDが「１０」で署名番号が「２」の署名（署名者304が「B」の署名）は、追記ファイル「r/test/2.dat」を署名対象としている。よって上記ファイルのハッシュ値と、上記署名番号に対応する署名値を署名者の公開鍵で復号した値が一致するか否かで正当性を判断する。尚、上記は署名値の正当性の検証だが、その他署名に使用された証明書の有効性の検証などの処理を行ってもいい。次に署名順序についても正当性を検証する。署名検証部802は、前記受信した文書に含まれる署名条件情報を判別し、文書になされた署名が前記署名条件に合致するかを検証する。第１の実施例では署名の順序情報は署名サーバ101で管理していたため、その正当性検証は容易であった。本変形例の場合は、各署名者が署名時にタイムスタンプ情報を取得してそれを署名データと一緒に付加することで、後でこの時刻情報を基に順序の正当性を検証する。もしくは、各ユーザの署名は各追記データや文書のみを署名対象とするのでなく、自身よりも前のユーザによって行われた署名データ自体も署名対象とするようにし、各ユーザの署名データ内に、前ユーザ（自身よりも署名順序が前のユーザ）の署名データも署名対象として含まれているか否かで判断させてもいい。
【００３９】
上記の署名検証の結果、署名が正当だった場合は、署名検証部802は前記受信した文書に他の署名があるか判断し（906）、署名が不当であった場合は、文書に付されていた署名が不当である旨を前記次ユーザに知らせ処理を終了する（908）。署名が不当な旨を通知された前記次ユーザは、前記条件設定者等に対して再度署名や追記をやり直すよう知らせてもいい。ステップ906で他の署名があった場合は、ステップ905に進み、他に署名がなかった場合はステップ707に進み、以降第１の実施例と同様にしてユーザの署名や追記を行う（907）。処理概要としては、ステップ903で受信した前記次ユーザの操作要求が署名か追記かその他の処理であるか判断し、署名である場合は、前記文書の署名条件を判別し、前記署名条件に関する情報をもとに署名の権限があるか、前記次ユーザが行おうとしている署名の順序は正当かを判断し、追記である場合は、前記文書の追記条件を判別し、前記追記条件に関する情報をもとに追記の権限があるか未署名の領域への追記かを判断し、上記判断の結果正当な要求であれば署名や追記を実施する。尚、第１の実施例では署名サーバ101が追記一時ファイル405を作成しユーザからの追記を受付けたが、本変形例では追記を行う各クライアント端末の追記管理部804が、項目402の追記タイプに沿って追記一時ファイルを作成しユーザからの追記を受付ける。そして文書にもともとあった項目404で指定されるファイルを前記追記一時ファイルで置換する。その際、ファイル名等の情報はもともとの項目404で指定されているファイル名のままとし変更しない。尚、追記一時ファイルは上記の処理が終わり次第削除してもいい。
【００４０】
以上の処理の後、他に前記次ユーザからの操作要求がない場合は、ステップ712に進み、署名作成部801は、本署名条件において全ての署名が終了したか判断し、終了した場合は処理を終え、終了してない場合はステップ902に進む。
以上が、本発明の第１の実施例およびその変形例の説明である。
【００４１】
次に、本発明の第２の実施例を説明する。第２の実施例では、第１の実施例での署名機能に加え、さらに各署名者が文書の一部を秘匿可能な墨塗り署名を行える、追記可能署名方式を示す。本方式は、署名された文書の一部を非公開にする際、非公開部分以外の内容は正当である（改竄されてない）ことを保証したい場合などに使うことができる。例えば医療機関と製薬会社間等での文書のやりとりにおいて、医療機関の担当医が文書に追記、署名し、次に医療機関の責任者が前記追記部分のうち非公開にしたい個人のプライバシ情報等を墨塗り署名して製薬会社に送る等の場合に使うことができる。図１１は墨塗り署名の一例を示すものである。文書1101は追記や墨塗り署名を行う前のものであり、文書1102は医療機関の担当医が文書1101に自分の名前と診療に関する患者の個人情報を追記して署名したものである。文書1103は医療機関の責任医が、文書1102のうち患者の個人情報を墨塗り署名したものである。第２の実施例のシステム構成は、第１の実施例と同じである（図１参照）。このため、システム構成についての説明は省略する。尚、第１の実施例では追記条件情報112は図４(a)に示す内容であったが、第２の実施例では、図４(b)に示す内容である点が異なる。新たな追記条件項目として、各追記を墨塗り可能か否かを示す項目407、追記が可能なユーザを示す項目408、各追記に墨塗りがされているか否かを示す項目409、墨塗り前のデータのハッシュ値を格納する項目410が加わっている。尚墨塗りは追記以外の部分にも行えるようにしてもよい。
【００４２】
以下では、第２の実施例の処理のうち、第１の実施例と同じものについては説明を省略する。第１の実施例同様、署名サーバ側で追記や署名を行う場合とその変形例としてクライアント端末側で上記処理を行う場合の二つを示す。以下に第２の実施例での、署名や追記の条件設定、署名や追記の処理の詳細を説明する。
【００４３】
＜第２の実施例での署名や追記の条件設定、署名や追記の処理＞
図１０は、本発明の第２の実施例の署名サーバ101が実行する、署名や追記の条件設定、署名や追記についての処理の一例を示すフローチャートである。尚、本実施例のうち、第１の実施例での処理と同様のものについては、それを引用し差異部分についてのみ説明する。
【００４４】
署名、追記条件管理部108は、ステップ701〜ステップ706と同様にして、署名や追記に関する条件を設定する（1001、1002）。尚署名条件情報111の設定に関しては、第１の実施例の場合に加えて項目407、408も設定する。具体的には例えば図４（ｂ）において、各署名条件IDにおいて墨塗りを許可する場合は項目407を「可」とし、墨塗りを許可するユーザを項目408に設定する。項目409、410は後述の墨塗り署名がなされる段階で、署名サーバ101によって更新される。
ユーザからの操作要求を受けたユーザ連携部105は、その操作要求が墨塗り署名要求であるか否か判断し（1003）、墨塗り署名要求である場合は、前記次ユーザが墨塗り署名の実行権限があるか否か判断する（1004）。具体的には、前記署名要求された署名条件IDの項目407で墨塗り署名が許可されているか、また項目408に前記ユーザが登録されているか、もしくは墨塗り署名が任意のユーザに許可されているか等で判断する。前記ユーザに権限がある場合は墨塗り署名を実施し（1005）、ユーザから他に要求があるか確認する（1006）。具体的には署名作成部106は、墨塗り署名を実施した追記に関して項目409を「有」に更新する。また、墨塗り署名がなされる時に、墨塗り前の墨塗り署名対象のデータのハッシュ値を計算し、項目410に登録する。尚、署名検証では、署名対象のデータのハッシュ値が必要となる。仮にもとのデータ自体は墨塗りされて値が変わっていても、上記のようにもとのデータのハッシュ値さえ保持しておけば署名検証が可能となる。即ち、署名された文書のうち、墨塗り部分以外は改変されてないことを検証できる。尚、本実施例では墨塗り署名も含めた署名の順序制御は行っていないが、第１の実施例同様に順序制御を行うようにしてもよい。ステップ1006で他に要求がある場合は、ステップ1003に進み、他に要求がない場合は、本署名条件において全ての署名が終了したか否か第１の実施例同様に判断する（1007）。全ての署名が終了した場合は処理を終え、終了してない場合はステップ1002に進む。ステップ1003において墨塗り署名要求でない場合は、ステップ707に進む（1008）。尚、墨塗り対象は項目404のファイルからユーザに選択させてもいいし、予め固定の対象に墨塗りするようにしてもよい。
【００４５】
以上が本発明の第２の実施例の処理の説明である。次に、本発明の第２の実施例の変形例を説明する。本変形例では第１の実施例の変形例の場合同様、署名サーバ101ではなくクライアント端末121が署名、追記、墨塗り署名の処理を行う。以下では第１の実施例の変形例の処理を基本として、処理が同じ部分については説明を省略し差異点を中心に説明する。
【００４６】
署名や追記の条件設定者は、署名、追記条件管理部803を用いて、ステップ701〜ステップ704までと同様の処理で、署名条件や追記条件に関する情報を設定する。ここでは新たに項目407、408も第２の実施例と同様に設定する。上記の条件設定が完了した後、前記条件の設定者は、上記の条件情報を含む文書をメール等で次のユーザに送信し、署名や追記の依頼を行う。前記依頼を受けた次ユーザは、受信した文書を確認し、自身のクライアント端末で署名や追記の操作要求を行う。上記要求を受け署名検証部802は、前記受信した文書に署名があるか否か判断し、署名がある場合は当該署名が正当か検証する。尚、この時第１の実施例の変形例での処理に加えて、さらに項目409の情報をもとに、墨塗り署名があるか否かも判断し、ある場合は当該墨塗り署名については、項目410の情報を使って署名値を検証する。上記の署名検証の結果、前記受信した文書の署名が全て正当だった場合は、以降第１の実施例の変形例と同様にしてユーザの署名や追記を行う。前記受信した文書に不当な署名があった場合は、署名が不当である旨をユーザに知らせ処理を終了する。
以上が、本発明の第２の実施例およびその変形例の説明である。
【００４７】
以上の本発明の実施の形態によれば、例えば、署名サーバとクライアント端末を含んで構成される署名システムにおいて、署名サーバは認証情報と、各文書の署名条件を示す署名条件情報と追記条件を示す追記条件情報と、追記のタイプを示す追記タイプ情報と、署名対象の文書を格納する文書情報とを備える。署名サーバは署名や追記の条件設定者からの指示に基づき、上記の署名条件情報や追記条件情報を設定し、適宜追記のファイルの作成、もとの文書と追記のファイルのリレーションの定義、上記条件情報等への署名を行う。署名サーバはさらに、上記の認証情報と署名条件情報、追記条件情報をもとに、文書への署名や追記要求を行うユーザを識別し、当該ユーザが署名や追記の権限があるユーザか否か判別する。また署名の順序の正当性や、既に文書に付されている署名の正当性の検証も行う。署名サーバは前記ユーザに署名や追記の権限がある場合、また署名の順序等が正当である場合は、上記の署名や追記の条件情報に応じて前記ユーザの署名や追記を受付け、文書に対して署名や追記を実施する。
【００４８】
これらによって、本発明の一実施形態によれば、署名された文書であっても前記署名を無効化せずに文書への追記及び追記を含む文書への署名が可能であり、署名対象の管理が容易であり様々な型の文書にも適用することができる、追記可能署名システムを提供することができる。さらに、署名や追記の処理をクライアント端末で実施させることや、文書への墨塗り署名が可能な、追記可能署名システムを提供することができる。
【００４９】
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
【符号の説明】
【００５０】
101…署名サーバ、102,122…メモリ、103,124…CPU、104,123…I/F、105…ユーザ連携部、106,801…署名生成部、107,802…署名検証部、108,803…署名、追記条件管理部、109,804…追記管理部、110,127…認証情報、111…署名条件情報、112…追記条件情報、113,805…追記タイプ情報、114,806…文書情報、121…クライアント端末、125…サーバ連携部、126…ユーザ連携部、141…外部サーバ、201…ID、202…パスワード、203…メールアドレス、204…所属組織、301…署名条件ID、302…もとの文書、303…進捗、304…署名者、305…署名順序、306…署名番号、307…署名状況、
401…署名条件ID、402…追記タイプ、403…追記者、404…追記ファイル、405…追記一時ファイル、406…署名番号、407…墨塗り可否、408…墨塗り者、409…墨塗り有無、410…ハッシュ値、501…追記タイプ、502…内容、503…ファイル型、504…一時ファイル型、505…備考、601…リレーションファイル、602…文書の主のファイル群、603…追記のファイル群、1101,1102,1103…文書
【図１】
2013192125.tif 000003
【図２】
2013192125.tif 000004
【図３】
2013192125.tif 000005
【図４】
2013192125.tif 000006
【図５】
2013192125.tif 000007
【図６】
2013192125.tif 000008
【図７】
2013192125.tif 000009
【図８】
2013192125.tif 000010
【図９】
2013192125.tif 000011
【図１０】
2013192125.tif 000012
【図１１】
2013192125.tif 000013