(57)【特許請求の範囲】
【請求項１】
データ格納部に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付ける入力部と、
各前記データブロックについてハッシュ値を算出するハッシュ生成部と、
前記複数のデータブロックのうち前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部に格納する補助データ生成部と、
前記複数のデータブロックのうち前記削除すべきデータブロックを除く残存データブロックの前記ハッシュ値の積Ｈ２と、前記所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと前記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部に格納する電子署名生成部と、
前記補助データ格納部に格納されている前記補助データと、前記電子署名格納部に格納されている前記電子署名と、前記削除すべきデータブロックの位置データと、前記データ格納部に格納されているコンテンツデータのうち前記残存データブロックを含む改訂コンテンツデータと、前記データ格納部に格納されている、前記コンテンツデータの署名者の電子署名とを、指定出力先に出力する出力部と、
を有するデータ処理装置。
【請求項２】
前記データ格納部に、過去の補助データβi及び過去の削除データブロックの位置データが格納されている場合には、
前記補助データ生成部が、
前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、前記所定の値Ｎとを用いて、前記データ格納部に格納されている前記過去の補助データβiを、βiH1（mod  Ｎ）で更新し、前記補助データ格納部に格納し、
前記出力部が、前記補助データ格納部に格納されている前記過去の補助データと、前記データ格納部に格納されている前記過去の削除データブロックの位置データとをさらに出力する
請求項１記載のデータ処理装置。
【請求項３】
削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、前記削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部と、
前記削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するハッシュ生成部と、
所定の値ｇ及びＮと、前記ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、前記削除済みコンテンツデータに対応する電子署名を当該電子署名の署名者の公開鍵で復号化した結果の第１の部分と前記中間データとが一致するか否か、前記復号化した結果の第２の部分と前記削除済みデータブロックの位置データとが一致するか否かを判断することによって、前記削除済みコンテンツデータに対応する電子署名の検証を実施する検証部と、
を有し、
前記検証部は、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、
前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、前記削除前コンテンツデータについての電子署名を当該電子署名の署名者の公開鍵で復号化した結果と前記第２の中間データとが一致するか否かを判断することによって、前記削除前コンテンツデータについての電子署名の検証を実施する
データ処理装置。
【請求項４】
前記データ格納部に、さらに過去の削除者についての電子署名と、さらに過去の削除データブロックの位置データと、さらに過去の削除者についての補助データβ2とがさらに格納されている場合には、
前記検証部は、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、
前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記さらに過去の削除者についての補助データβ2とを用いて、第３の中間データα3＝β2H1（mod  Ｎ）を算出し、前記さらに過去の削除者についての電子署名を当該さらに過去の削除者の公開鍵で復号化した第２の結果の第１の部分と前記第３の中間データとが一致するか否か、前記復号化した第２の結果の第２の部分と前記さらに過去の削除データブロックの位置データとが一致するか否かを判断することによって、前記さらに過去の削除者についての電子署名の検証を実施する
請求項３記載のデータ処理装置。
【請求項５】
コンピュータに、
データ格納部に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付けるステップと、
各前記データブロックについてハッシュ値を算出するステップと、
前記複数のデータブロックのうち前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部に格納するステップと、
前記複数のデータブロックのうち前記削除すべきデータブロックを除く残存データブロックの前記ハッシュ値の積Ｈ２と、前記所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと前記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部に格納するステップと、
前記補助データ格納部に格納されている前記補助データと、前記電子署名格納部に格納されている前記電子署名と、前記削除すべきデータブロックの位置データと、前記データ格納部に格納されているコンテンツデータのうち前記残存データブロックを含む改訂コンテンツデータと、前記データ格納部に格納されている、前記コンテンツデータの署名者の電子署名とを、指定出力先に出力する出力ステップと、
を実行させるための、削除署名処理プログラム。
【請求項６】
コンピュータに、
削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、前記削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部に格納されている前記削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するステップと、
所定の値ｇ及びＮと、前記ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、前記削除済みコンテンツデータに対応する電子署名を当該電子署名の署名者の公開鍵で復号化した結果の第１の部分と前記中間データとが一致するか否か、前記復号化した結果の第２の部分と前記削除済みデータブロックの位置データとが一致するか否かを判断することによって、前記削除済みコンテンツデータに対応する電子署名の検証を実施するステップと、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、前記削除前コンテンツデータについての電子署名を当該電子署名の署名者の公開鍵で復号化した結果と前記第２の中間データとが一致するか否かを判断することによって、前記削除前コンテンツデータについての電子署名の検証を実施するステップと、
を実行させるための、検証処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、改訂者を識別可能なデータ管理技術に関する。
【背景技術】
【０００２】
従来、電子文書（文書は一例であって、必ずしも文書に限らない。）の完全性を検証する技術として、電子署名を用いた技術が提供されている。この電子署名技術は、電子文書毎に電子署名を付与することによって、電子文書の完全性（すなわち、内容が変更されていないこと）を保証するとともに、電子文書の作成者を認証する技術である。
【０００３】
このため、電子署名技術を利用した場合、不正なユーザによる改竄を防ぐという点においては非常に有用であるが、電子文書の有効活用という点においては問題があった。なぜなら、許可されていても改訂者と呼ばれるユーザが電子文書の内容を変更した場合、電子署名は無効となってしまい、変更後の電子文書の完全性が保証されないからである。
【０００４】
このため、電子文書に、公開することができない情報や不要な情報が含まれている場合であっても、電子文書からそのような情報を改訂者が削除するなどの変更を施すことができず、ユーザの利便性を著しく低下させる要因となっていた。また、公開することができない情報や不要な情報を削除した新しい電子文書を作成し、改めて電子署名を付与した場合、署名者はその度に署名を生成しなければならず、署名者にとって負担となっていた。このように、電子文書から不要な情報を削除可能で、且つ署名者が再び署名生成することなく、電子文書の完全性を保証する技術が望まれている。
【０００５】
例えば、電子文書を部分文書に分割し、部分文書毎の電子署名と、文書全体に対する電子署名を付与することで、公開すべきでない部分文書の削除が可能な電子署名技術（第１の従来例）が提供されている。この電子署名技術は削除署名技術と呼ばれており、この削除署名技術によれば、電子文書における公開部分に対する完全性と、非公開部分（すなわち削除部分）に対する秘匿性を保証することが可能となり、電子文書の利便性を高めることができる。
【０００６】
また、電子文書を部分文書に分割し、部分文書毎にハッシュ値を計算し、署名者及び改訂者がハッシュ値の集合に対して署名を付与することで、非公開にすべき部分文書の削除が可能な電子署名技術が存在している（第２の従来例）。この電子署名技術によれば、電子文書における公開部分に対する完全性と、非公開部分（すなわち削除部分）に対する秘匿性を保証することが可能となり、電子文書の利便性を高めることができる。
【０００７】
ここで第２の従来例によって非公開にすべき部分文書を削除する方法について説明する。図１は第２の従来例における署名生成処理の概要を示す。署名者は、電子文書を複数の部分文書ｍ1乃至ｍ4に分割し（又は複数の部分文書ｍ1乃至ｍ4に分割されている電子文書に対し）、各部分文書ｍ1乃至ｍ4に対するハッシュ値ｈ1乃至ｈ4を計算し、これらハッシュ値ｈ1乃至ｈ4を連接した値を求める。そして、署名者は、ハッシュ値ｈ1乃至ｈ4の連接に対する署名σsignerを生成する。署名者は、最後に、電子文書と、署名者のハッシュ値ｈ1乃至ｈ4の連接及び電子署名σsingerとを次のユーザに送り、処理を終了する。図１では、矩形内のデータが送信される。
【０００８】
図２は、第１の改訂者（例えば太郎）による処理の概要を示す。署名者から送られてきた電子文書、署名者のハッシュ値ｈ1乃至ｈ4の連接及び電子署名σsingerを受け取った第１の改訂者は、削除する部分文書（図２では部分文書ｍ2及びｍ4）を指定する。そして、該当する部分文書ｍ2及びｍ4の内容を、その部分文書ｍ2及びｍ4の識別子（図２では「２」及び「４」という文字列）に改訂する。次に第１の改訂者は、各部分文書に対するハッシュ値ｈ1、Ｈ2（「２」という文字列のハッシュ値）、ｈ3及びＨ4（「４」という文字列のハッシュ値）を計算する。そして、これらハッシュ値を連接した値を求め、このハッシュ値の連接に対する電子署名σtaroを生成する。最後に、第１の改訂者は、改訂後の電子文書ｍ1及びｍ3並びに「２」及び「４」、第１の改訂者のハッシュ値ｈ1及びｈ3並びにＨ2及びＨ4の連接及び電子署名σtaro、並びに署名者のハッシュ値ｈ1乃至ｈ4の連接及び電子署名σsignerを次のユーザに送り、処理を終了する。図２では、矩形内のデータが送信される。
【０００９】
図３は第２の改訂者（例えば花子）による処理の概要を示す。第１の改訂者から送られてきた改訂電子文書、第１の改訂者のハッシュ値の連接及び電子署名、並びに署名者のハッシュ値の連接及び電子署名を受け取った第２の改訂者は、削除する部分文書（図３ではｍ3）を定める。そして、該当する部分文書の内容を、その部分文書の識別子（図３では「３」という文字列）に改訂する。次に、第２の改訂者は、各部分文書に対するハッシュ値ｈ1並びにＨ2乃至Ｈ4を計算し、これらハッシュ値を連接した値を求め、このハッシュ値の連接に対する電子署名σhanakoを生成する。最後に第２改訂者は、改訂後の電子文書ｍ1並びに文字列「２」乃至「４」、第２の改訂者のハッシュ値ｈ1並びにＨ2乃至Ｈ4の連接及び電子署名σhanako、第１の改訂者のハッシュ値ｈ1及びｈ3並びにＨ2及びＨ4の連接及び電子署名σtaro、並びに署名者のハッシュ値ｈ1乃至ｈ4の連接及び電子署名σsignerを次のユーザに送り、処理を終了する。図３では、矩形内のデータが送信される。
【００１０】
図４は検証者による処理の概要を示す。検証者は、最後の改訂者である第２の改訂者から、改訂電子文書ｍ1並びに文字列「２」「３」及び「４」、第２の改訂者のハッシュ値ｈ1並びにＨ2乃至Ｈ4の連接及び電子署名σhanako、第１の改訂者のハッシュ値ｈ1及びｈ3並びにＨ2及びＨ4の連接及び電子署名σtaro、並びに署名者のハッシュ値ｈ1乃至ｈ4の連接及び電子署名σsignerを受け取る。そして、改訂電子文書の各部分文書のハッシュ値を計算し（ステップ（１））、第２の改訂者のハッシュ値の連接と一致することを確認した上で、当該ハッシュ値の連接に対して第２の改訂者の電子署名を検証する（ステップ（２））。次に検証者は、第１の改訂者のハッシュ値の連接に対して第１の改訂者の電子署名を検証し、ハッシュ値の連接の完全性を確認する（ステップ（３））。さらに、署名者のハッシュ値の連接に対して署名者の電子署名を検証し、ハッシュ値の連接の完全性を確認する（ステップ（４））。最後に、検証者は各改訂者及び署名者のハッシュ値の連接を比較し、誰がどの部分文書を削除したかを識別する。すなわち、署名者のハッシュ値の連接と第１の改訂者のハッシュ値の連接とを比較すれば、部分文書ｍ2及びｍ4が第１の改訂者により削除されたことが分かる。さらに、第１の改訂者のハッシュ値の連接と第２の改訂者のハッシュ値の連接とを比較することにより、部分文書ｍ3が削除されたことが分かる。
【００１１】
このように第２の従来例の署名技術は、部分文書の削除が可能であり、削除されていない部分文書の完全性を検証できると共に、誰がどの部分文書を削除したかを識別することができる。しかし、その実現のために署名者及び各改訂者は部分文書の個数に比例したハッシュ値を計算及び出力する必要がある。結果として検証者は、部分文書の個数と改訂者の人数に比例した個数（具体的に部分文書の個数ａと改訂者の人数ｎとするとａ＊（ｎ＋１）個）のハッシュ値を必要とすることになり、データ転送の効率低下を招くという新たな問題が生じている。
【００１２】
これに対して第３の従来例では、ハッシュ値の連接を送信しないようになっている。具体的には、図５に示すように、署名者は、電子文書を複数の部分文書ｍ1乃至ｍ4に分割し（又は複数の部分文書ｍ1乃至ｍ4に分割されている電子文書に対し）、各部分文書ｍ1乃至ｍ4に対するハッシュ値ｈ1乃至ｈ4を計算し、これらハッシュ値ｈ1乃至ｈ4を連接した値を求める。そして、署名者は、ハッシュ値ｈ1乃至ｈ4の連接に対する署名σsignerを生成する。署名者は、部分文書ｍ1乃至ｍ4を含む電子文書及び電子署名σsignerのみを次のユーザに送信する。
【００１３】
署名者から電子文書及び電子署名σsignerを受け取った第１の改訂者は、例えば部分文書ｍ2及びｍ4を削除するように指示する。そして、該当する部分文書ｍ2及びｍ4の内容を、その部分文書ｍ2及びｍ4の識別子（図５では「２」及び「４」という文字列）に改訂する。次に第１の改訂者は、各部分文書に対するハッシュ値ｈ1、Ｈ2（「２」という文字列のハッシュ値）、ｈ3及びＨ4（「４」という文字列のハッシュ値）を計算する。そして、これらハッシュ値を連接した値を求め、このハッシュ値の連接に対する電子署名σtaroを生成する。最後に、第１の改訂者は、削除者のＩＤと削除部分文書のＩＤと削除部分文書のハッシュ値とを含む補助データを削除部分文書毎に生成し、改訂後の電子文書と、署名者の電子署名σsignerと、補助データ（図５の例では（taro, 2, ｈ2）及び（taro, 4, ｈ4））と、第１の改訂者の電子署名σtaroを、次のユーザに送信する。
【００１４】
第１の改訂者から改訂後の電子文書と、署名者の電子署名σsignerと、補助データと、第１の改訂者の電子署名σtaroを受け取った第２の改訂者は、例えば部分文書ｍ3を削除するように指示する。そして、該当する部分文書ｍ3の内容を、その部分文書ｍ3の識別子（図５では「３」という文字列）に改訂する。次に第２の改訂者は、各部分文書に対するハッシュ値ｈ1、Ｈ2乃至Ｈ4（「２」「３」「４」という文字列のハッシュ値はＨ2、Ｈ3及びＨ4）を計算する。そして、これらハッシュ値を連接した値を求め、このハッシュ値の連接に対する電子署名σhanakoを生成する。最後に、第２の改訂者は、削除者のＩＤと削除部分文書のＩＤと削除部分文書のハッシュ値とを含む補助データを削除部分文書毎に生成し、改訂後の電子文書と、署名者の電子署名σsignerと、補助データ（図５の例では（taro, 2, ｈ2）、（taro, 4, ｈ4）、さらに（hanako, 3, ｈ3））と、第１の改訂者の電子署名σtaroと、第２の改訂者の電子署名σhanakoとを、次のユーザに送信する。
【００１５】
検証者は、最後の改訂者である第２の改訂者から、改訂後の電子文書と、署名者の電子署名σsignerと、補助データ（図５の例では（taro, 2, ｈ2）、（taro, 4, ｈ4）、さらに（hanako, 3, ｈ3））と、第１の改訂者の電子署名σtaroと、第２の改訂者の電子署名σhanakoを受け取る。そして、改訂後の電子文書の部分文書毎にハッシュ値を計算し（ステップ（１１））、当該ハッシュ値の連接に対して第２の改訂者の電子署名hanakoを検証する（ステップ（１２））。さらに、第２の改訂者の補助データ（（hanako, 3, ｈ3））によって、第２の改訂者により、いずれの部分文書が削除されたのかを把握する。
【００１６】
また、第２の改訂者の補助データに含まれているハッシュ値ｈ3で、ステップ（１１）で計算したハッシュ値のうち該当ハッシュ値Ｈ3を置換する（ステップ（１３））。そして、ハッシュ値ｈ1、Ｈ2、ｈ3及びＨ4の連接に対して、第１の改訂者の電子署名σtaroを検証する（ステップ（１４））。さらに、第１の改訂者の補助データ（（taro, 2, ｈ2）（taro, 4, ｈ4））により、第１の改訂者により、いずれの部分文書が削除されたのかを把握する。
【００１７】
そして、第１の改訂者の補助データに含まれているハッシュ値ｈ2及びｈ4で、ステップ（１３）で置換した後のハッシュ値群のうち該当ハッシュ値Ｈ2及びＨ4を置換する（ステップ（１５））。そして、ハッシュ値ｈ1、ｈ2、ｈ3及びｈ4の連接に対して、署名者の電子署名σsignerを検証する（ステップ（１６））。
【００１８】
このような形で、検証者が必要とするハッシュ値の個数の削減を実現しているが、それでもなお削除した部分文書の個数と同じ個数のハッシュ値を必要としている。このため、膨大な個数の部分文書から多数の部分文書を削除した場合には、補助データの量が膨大になり、なおもデータ転送の効率低下を招くという問題がある。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００６−６０７２２号公報
【特許文献２】ＷＯ２００６／００８８４７公報
【特許文献３】特開２００７−２１３５４９号公報
【非特許文献】
【００２０】
【非特許文献１】宮崎邦彦、花岡悟一郎、今井秀樹著「双線形写像を用いた電子文書墨塗り技術」２００５年暗号と情報セキュリティシンポジウム予稿集
【非特許文献２】吉岡孝司、武仲正彦著「電子文書の訂正・流通を考慮した部分完全性保証技術の提案」、２００４年情報科学技術フォーラム予稿集
【発明の概要】
【発明が解決しようとする課題】
【００２１】
以上述べたように、従来技術では、削除署名において、誰がどの部分文書を削除したかを識別することは可能であったが、削減したとしても、削除部分文書の個数に比例した個数のハッシュ値を必要とするため、データ転送効率の低下を招くという問題があった。
【００２２】
従って、本技術の目的は、より少ない情報量で、誰がコンテンツデータに含まれる特定のデータブロックを削除したのかを識別可能な署名技術を提供することである。
【課題を解決するための手段】
【００２３】
第１の態様に係るデータ処理装置は、（Ａ）データ格納部に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付ける入力部と、（Ｂ）各データブロックについてハッシュ値を算出するハッシュ生成部と、（Ｃ）複数のデータブロックのうち上記削除すべきデータブロックのハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部に格納する補助データ生成部と、（Ｄ）複数のデータブロックのうち上記削除すべきデータブロックを除く残存データブロックのハッシュ値の積Ｈ２と、所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと上記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部に格納する電子署名生成部と、（Ｅ）補助データ格納部に格納されている補助データと、電子署名格納部に格納されている電子署名と、上記削除すべきデータブロックの位置データと、データ格納部に格納されているコンテンツデータのうち残存データブロックを含む改訂コンテンツデータと、データ格納部に格納されている他の電子署名とを、指定出力先に出力する出力部とを有する。
【００２４】
第２の態様に係るデータ処理装置は、（Ａ）削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部と、（Ｂ）削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するハッシュ生成部と、（Ｃ）所定の値ｇ及びＮと、ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、当該中間データαとデータ格納部に格納されている上記削除済みコンテンツデータについての削除データブロックの位置データ及び削除済みコンテンツデータに対応する電子署名と当該電子署名の署名者の公開鍵とを用いて、削除済みコンテンツデータに対応する電子署名の検証を実施する検証部とを有する、そして、検証部は、（Ｄ）削除済みコンテンツデータに対応する電子署名の検証が成功すると、所定の値Ｎと、ハッシュ値の積Ｈ１と、削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、当該第２の中間データα2と削除前コンテンツデータについての電子署名の署名者の公開鍵と削除前コンテンツデータについての電子署名とを用いて、削除前コンテンツデータについての電子署名の検証を実施する。
【００２５】
第３の態様に係るデータ処理装置は、コンテンツデータ格納部に格納されている署名対象のコンテンツデータを複数のデータブロックに分割し、分割データ格納部に格納するデータ分割部と、分割データ格納部に格納されている各データブロックについてハッシュ値を算出するハッシュ生成部と、所定の値ｇ及びＮと、算出されたハッシュ値の積Ｈとを用いて、中間データα＝ｇH（mod Ｎ）を算出し、当該中間データαに対して署名者の秘密鍵により電子署名を生成し、電子署名格納部に格納する電子署名生成部とを有する。
【発明の効果】
【００２６】
より少ない情報量で、誰がコンテンツデータに含まれる特定のデータブロックを削除したのかを識別できるようになる。
【図面の簡単な説明】
【００２７】
【図１】図１は、第２の従来例の署名処理を説明するための図である。
【図２】図２は、第２の従来例の改訂処理を説明するための図である。
【図３】図３は、第２の従来例の改訂処理を説明するための図である。
【図４】図４は、第２の従来例の検証処理を説明するための図である。
【図５】図５は、第３の従来例の検証処理を説明するための図である。
【図６】図６は、本実施の形態における署名者端末から送信されるデータを示す図である。
【図７】図７は、本実施の形態における第１の改訂者端末における処理などを説明するための図である。
【図８】図８は、本実施の形態における第２の改訂者端末における処理などを説明するための図である。
【図９】図９は、本実施の形態における検証者端末における処理などを説明するための図である。
【図１０】図１０は、本実施の形態の効果を説明するための図である。
【図１１】図１１は、本実施の形態におけるシステム概要を示す図である。
【図１２】図１２は、署名者端末の機能ブロック図である。
【図１３】図１３は、署名者端末における処理フローを示す図である。
【図１４】図１４は、改訂者端末の機能ブロック図である。
【図１５】図１５は、改訂者端末における処理フローを示す図である。
【図１６】図１６は、検証者端末の機能ブロック図である。
【図１７】図１７は、検証者端末における処理フローを示す図である。
【図１８】図１８は、検証者端末における処理フローを示す図である。
【図１９】図１９は、コンピュータの機能ブロック図である。
【図２０】図２０は、第１のデータ処理装置の機能ブロック図である。
【図２１】図２１は、第２のデータ処理装置の機能ブロック図である。
【図２２】図２２は、第３のデータ処理装置の機能ブロック図である。
【発明を実施するための形態】
【００２８】
本技術の実施の形態に係る処理の概要を示す。まず、署名生成段階における処理の概要を説明する。署名者は、コンテンツデータＭを複数のデータブロックｍ1乃至ｍ4に分割する。そして、各データブロックについて、ハッシュ値ｈ1乃至ｈ4を算出する。さらに、所定のビット長の素数ｐ及びｑの合成数Ｎ（＝ｐ×ｑ）と、Ｎと互いに疎な整数ｇと、ハッシュ値ｈ1乃至ｈ4とを用いて、中間データαsigner＝ｇh1h2h3h4（mod Ｎ）を算出する。ここで、ｈ１ｈ２ｈ３ｈ４は、ハッシュ値の積を表す。そして、署名者の秘密鍵を用いて、中間データαsignerを暗号化することによって署名を行って、電子署名σsigner＝Ｓｉｇｎsigner（αsigner）を生成する。署名者は、図６に示すように、データブロックｍ1乃至ｍ4を含むコンテンツデータＭと、署名者の電子署名σsignerとを、次のユーザに送信する。
【００２９】
次に、第１の改訂者（例えば太郎）は、コンテンツデータＭと、署名者の電子署名σsignerとを受け取って、削除すべきデータブロック（例えばｍ2及びｍ4）を指定する。そうすると、図７に示すように、削除後のコンテンツデータには、データブロックｍ1及びｍ3が残っていることになって、これらの残存データブロックについてハッシュ値ｈ1及びｈ3を算出する。そして、所定値ｇ及びＮと、ハッシュ値ｈ1及びｈ3とを用いて、第１の改訂者の中間データαtaro＝ｇh1h3（mod Ｎ）を算出する。さらに、削除されるデータブロックの識別子（位置データとも呼ぶ）を含む削除インデックス集合Ｄtaro｛２，４｝を生成する。そして、削除インデックス集合Ｄtaro｛２，４｝と、第１の改訂者の中間データαtaroとの組み合わせ（例えば連接）を、第１の改訂者の秘密鍵を用いて暗号化することによって署名を行って、電子署名σtaro＝Ｓｉｇｎtaro（αtaro）を生成する。さらに、削除データブロックｍ2及びｍ4のハッシュ値の積ｈ2・ｈ4と、所定値ｇ及びＮを用いて、後に署名者の電子署名σsignerを検証するための署名者の補助データβsigner＝ｇh2h4（mod  Ｎ）を算出する。
【００３０】
以上の計算を行った後、第１の改訂者は、削除後のコンテンツデータと、第１の改訂者の電子署名σtaroと、削除インデックス集合Ｄtaro｛２，４｝と、署名者の電子署名σsignerと、署名者の補助データβsignerとを、次のユーザに送信する。図７において、矩形内に示されているデータが、次のユーザに送信される。
【００３１】
第１の改訂者から、削除後のコンテンツデータと、第１の改訂者の電子署名σtaroと、削除インデックス集合Ｄtaro｛２，４｝と、署名者の電子署名σsignerとを受け取ると、第２の改訂者（例えば花子）は、削除後のコンテンツデータのうち、削除すべきデータブロック（例えばｍ3）を指定する。そうすると、図８に示すように、削除後のコンテンツデータには、データブロックｍ1が残っていることになって、この残存データブロックについてハッシュ値ｈ1を算出する。そして、所定値ｇ及びＮと、ハッシュ値ｈ1とを用いて、第２の改訂者の中間データαhanako＝ｇh1（mod Ｎ）を算出する。さらに、削除されるデータブロックの識別子（又は位置データ）を含む削除インデックス集合Ｄhanako｛３｝を生成する。そして、削除インデックス集合Ｄhanako｛３｝と、第２の改訂者の中間データαhanakoとの組み合わせ（例えば連接）を、第２の改訂者の秘密鍵を用いて暗号化することによって署名を行って、電子署名σhanako＝Ｓｉｇｎhanako（αhanako）を生成する。さらに、削除データブロックｍ3のハッシュ値の積ｈ3と、所定値ｇ及びＮを用いて、後に第１の改訂者の電子署名σtaroを検証するための第１の改訂者の補助データβtaro＝ｇh3（mod  Ｎ）を算出する。
【００３２】
さらに、図８の星印で示すように、後に署名者の電子署名σsignerを検証するための署名者の補助データβsignerを、βsignerh3＝ｇh2h3h4（mod  Ｎ）で更新する。
【００３３】
以上の計算を行った後、第２の改訂者は、削除後のコンテンツデータと、第１の改訂者の電子署名σtaroと、第２の改訂者の電子署名σhanakoと、削除インデックス集合Ｄtaro｛２，４｝及びＤhanako｛３｝と、署名者の電子署名σsignerと、署名者の補助データβsignerと、第１の改訂者の補助データβtaroを、次のユーザに送信する。図８において、矩形内に示されるデータが、次のユーザに送信される。
【００３４】
なお、この例ではさらに削除後のコンテンツデータのうち公開すべきでないデータブロックを削除することはできない。しかし、例えば削除後のコンテンツデータにデータブロックｍ5がさらに含まれ、第３の改訂者（例えば次郎）が、このデータブロックを削除対象データブロックとして指定するとする。そうすると、削除後のコンテンツデータには、データブロックｍ1が残っていることになって、この残存データブロックについてハッシュ値ｈ1を算出する。そして、所定値ｇ及びＮと、ハッシュ値ｈ1とを用いて、第３の改訂者の中間データαjiro＝ｇh1（mod Ｎ）を算出する。さらに、削除されるデータブロックの識別子（又は位置データ）を含む削除インデックス集合Ｄjiro｛５｝を生成する。そして、削除インデックス集合Ｄjiro｛５｝と、第３の改訂者の中間データαjiroとの組み合わせ（例えば連接）を、第３の改訂者の秘密鍵を用いて暗号化することによって署名を行って、電子署名σjiro＝Ｓｉｇｎjiro（αjiro）を生成する。さらに、削除データブロックｍ5のハッシュ値の積ｈ5と、所定値ｇ及びＮを用いて、後に第２の改訂者の電子署名σhanakoを検証するための第２の改訂者の補助データβhanako＝ｇh5（mod  Ｎ）を算出する。
【００３５】
さらに、後に署名者の電子署名σsignerを検証するための署名者の補助データβsignerを、βsignerh5＝ｇh2h3h4h5（mod  Ｎ）で更新する。同様に、第１の改訂者の電子署名σtaroを検証するための第１の改訂者の補助データβtaroを、βtaroh5＝ｇh3h5（mod  Ｎ）で更新する。
【００３６】
以上の計算を行った後、第３の改訂者は、削除後のコンテンツデータと、第１の改訂者の電子署名σtaroと、第２の改訂者の電子署名σhanakoと、第３の改訂者の電子署名σjiroと、削除インデックス集合Ｄtaro｛２，４｝、Ｄhanako｛３｝及びＤjiro｛５｝と、署名者の電子署名σsignerと、署名者の補助データβsignerと、第１の改訂者の補助データβtaroと、第２の改訂者の補助データβhanakoとを、次のユーザに送信する。
【００３７】
次に、第２の改訂者からデータを受信して検証を行う際の処理について、図９を用いて説明する。まず、第１段階として、削除後のコンテンツデータに含まれる各データブロックｍ1からハッシュ値ｈ1を算出し、所定値ｇ及びＮと、ハッシュ値の積ｈ1とから、第２の改訂者の中間データαhanako＝ｇh1（mod Ｎ）をさらに算出する。また、第２の改訂者の削除インデックス集合はＤhanako｛３｝であるから、データブロックｍ3を第２の改訂者が削除したことが分かる。一方、第２の改訂者の電子署名σhanakoを、第２の改訂者の公開鍵で復号化すると、第２の改訂者の中間データ及び削除インデックス集合とが得られるはずである。このように第２の改訂者の電子署名σhanakoを復号した結果得られる第２の改訂者の中間データ及び第２の改訂者の削除インデックス集合と、削除後のコンテンツデータから算出される第２の改訂者の中間データ及び第２の改訂者の受信された削除インデックス集合とが一致すれば、第２の改訂者についての削除後のコンテンツデータの検証が成功したことになる。
【００３８】
第２の改訂者についての削除後のコンテンツデータの検証が成功すると、第２段階として、所定値Ｎと第１の改訂者の補助データβtaroとを用いて、第１の改訂者の中間データを算出する。すなわち、第１の改訂者の中間データαtaro＝βtaroh1（mod Ｎ）を算出する。第１の改訂者の補助データβtaro＝ｇh3（mod  Ｎ）であったので、αtaro＝βtaroh1（mod Ｎ）＝ｇh1h3（mod  Ｎ）が算出されたはずである。一方、第１の改訂者の電子署名σtaroを第１の改訂者の公開鍵で復号化すると、第１の改訂者の中間データ及び削除インデックス集合とが得られるはずである。このように第１の改訂者の電子署名σtaroを復号した結果得られる第１の改訂者の中間データ及び第１の改訂者の削除インデックス集合と、残存データブロックのハッシュ値の積と第１の改訂者の補助データβtaroとから算出される第１の改訂者の中間データ及び第１の改訂者の削除インデックス集合とが一致すれば、第１の改訂者についての削除後のコンテンツデータの検証が成功したことになる。
【００３９】
第１の改訂者についての削除後のコンテンツデータの検証が成功すると、第３段階として、所定値Ｎと署名者の補助データβsignerと算出ハッシュ値の積ｈ1を用いて、署名者の中間データを算出する。すなわち、第１の改訂者の中間データαsigner＝βsignerh1（mod Ｎ）を算出する。署名者の補助データβsigner＝ｇh2h3h4（mod  Ｎ）であったので、αsigner＝βsignerh1（mod Ｎ）＝ｇh1h2h3h4（mod  Ｎ）が算出されたはずである。一方、署名者の電子署名σsignerを署名者の公開鍵で復号化すると、署名者の中間データが得られるはずである。このように署名者の電子署名σsignerを復号した結果得られる署名者の中間データと、残存データブロックのハッシュ値の積と署名者の補助データβsignerとから算出される署名者の中間データとが一致すれば、署名者について元々のコンテンツデータの検証が成功したことになる。
【００４０】
このように、削除後のコンテンツデータについて検証を行うことができ、削除データブロックについては、特定のユーザの削除インデックス集合から特定される。すなわち、だれがどのデータブロックを削除したのかについて検証することができ、各段階におけるコンテンツデータの完全性について検証することができる。
【００４１】
上で述べた例のように、第１及び第２の改訂者により４つのデータブロックを含むコンテンツデータのうちの３つのデータブロックを削除し、次のユーザに送信されるデータの量について、図１０を用いて検討する。従来技術の欄で述べたように、第２及び第３の従来例については、削除しても削除データブロックの識別子で置換するので、データブロックとしては全４つのデータブロックが含まれることになる。しかし、上でも述べたように、本実施の形態における削除後のコンテンツデータは、残存データブロックｍ1のみが含まれるので、本実施の形態では１つのみとなる。電子署名については、第２及び第３の従来例も、本実施の形態も、署名者、第１の改訂者及び第２の改訂者といったように（改訂者数＋１）＝３だけ電子署名が必要となる。
【００４２】
ハッシュ値については、第２の従来例では、署名者及び改訂者のところで使用又は算出したハッシュ値がそのまま必要とされるので、４個×３人＝１２個必要となる。第３の従来例では、削除したデータブロックの数と同じ数だけハッシュ値が必要となるので、３個必要となる。但し、本実施の形態ではハッシュ値は必要ない。このため、本実施の形態では、改訂者の数だけ補助データを生成するようになっている。すなわち、補助データの値が２個生成される。
【００４３】
従って、一人の改訂者が多数のデータブロックを削除するような場合でも、補助データのサイズは変わらないので、例えばビデオデータから多数のフレームを削除するような場合であっても、検証に用いられるデータの量は増加しない。
【００４４】
以下、このような本実施の形態の概要に基づき、本実施の形態におけるシステム及び処理内容について説明する。
【００４５】
図１１に、データ管理システムの概要を示す。例えば、インターネットやＬＡＮ（Local Area Network）であるネットワーク１には、例えば秘密鍵を特定のユーザに対して発行したり当該秘密鍵に対応する公開鍵を提供する認証機関サーバ９と、１又は複数の署名者端末３と、１又は複数の改訂者端末５と、１又は複数の検証者端末７とが接続されている。署名者端末３と改訂者端末５と検証者端末７とは、例えばパーソナルコンピュータであって、以下で述べるような機能を有するプログラムを実行する。なお、便宜上、署名者端末３と改訂者端末５と検証者端末７とを別端末として説明するが、全ての端末がこれらの端末の機能を有する。すなわち、署名者は、改訂者や検証者にもなり得るし、改訂者は署名者や検証者にもなり得るし、検証者は署名者や改訂者にもなり得る。
【００４６】
図１２に、署名者端末３の機能ブロック図を示す。署名者端末３は、署名者からの指示や入力を受け付ける入力部３１と、署名の対象となるコンテンツデータなどが格納されるコンテンツデータ格納部３２と、入力部３１からの指示に応じてコンテンツデータ格納部３２に格納されている特定のコンテンツデータを複数のデータブロックに分割するデータ分割部３３と、データ分割部３３の処理結果である各データブロックのデータを格納する分割データ格納部３４と、分割データ格納部３４に格納されている各データブロックについてハッシュ値を算出するハッシュ生成部３５と、ハッシュ生成部３５によって算出されたハッシュ値を格納するハッシュデータ格納部３６と、入力部３１からの入力データとハッシュデータ格納部３６に格納されているハッシュ値とを用いて電子署名を生成する署名処理部３７と、署名処理部３７により生成された電子署名を格納する署名データ格納部３８と、入力部３１からの指示に従って、コンテンツデータ格納部３２に格納されている特定のコンテンツデータ及び署名データ格納部３８に格納されている電子署名とを指定の装置に出力する出力部３９とを有する。
【００４７】
図１３を用いて、署名者端末３の動作を説明する。まず、入力部３１は、署名者から署名対象コンテンツデータの指定及び出力先などの必要データの入力を受け付ける（ステップＳ１）。なお、必要データには署名者の秘密鍵のデータ又は予め所定のデータ格納領域に格納されている署名者の秘密鍵の指定を含むようにしても良い。入力部３１は、データ分割部３３に、指定されたコンテンツデータについて処理するように指示する。
【００４８】
次に、データ分割部３３は、入力部３１からの指示に従って、指定されたコンテンツデータを、複数のデータブロックに分割し、生成されたデータブロックを分割データ格納部３４に格納する（ステップＳ３）。均等に分割する必要はなく、システム全体で一定のルールに従って分割する。なお、既に分割されているコンテンツデータについては、ステップＳ３の処理をスキップして、そのまま分割データ格納部３４に格納するようにしても良い。そして、ハッシュ生成部３５は、分割データ格納部３４に格納されている各データブロックについてハッシュ値を算出し、ハッシュデータ格納部３６に格納する（ステップＳ５）。
【００４９】
そして、署名処理部３７は、ハッシュデータ格納部３６に格納されている、各データブロックについてのハッシュ値ｈiの積を算出し、当該ハッシュ値ｈiの積と所定値ｇ及びＮとから、中間データαsigner＝ｇΠhi（mod Ｎ）を算出し、さらに当該中間データαsignerを署名者の秘密鍵で暗号化することによって電子署名σsignerを生成し、署名データ格納部３８に格納する（ステップＳ７）。所定値ｇ及びＮは、例えば署名処理部３７が管理するデータ格納領域に保持しておくか、入力部３１を介して入力される。
【００５０】
そして、出力部３９は、コンテンツデータ格納部３２に格納されている署名対象コンテンツデータと、署名データ格納部３８に格納されている署名者の電子署名σsignerとを、指定された出力先に出力する（ステップＳ９）。例えば、第１の改訂者の改訂者端末５に送信する。
【００５１】
このような処理によって、図６に模式的に示したデータが生成される。
【００５２】
図１４に、改訂者端末５の機能ブロック図を示す。改訂者端末５は、改訂者からの指示及び入力データを受け付ける入力部５４と、他の端末から改訂すべきコンテンツデータ及びその関連データを受信するデータ受信部５１と、データ受信部５１により受信されたデータを格納する受信データ格納部５２と、受信データ格納部５２に格納されているコンテンツデータを複数のデータブロックに分割するデータ分割部５３と、データ分割部５３により生成されたデータブロックを格納する分割データ格納部５５と、改訂者によって指示されたデータブロックの削除に応じて改訂後のコンテンツデータを生成する改訂データ生成部５７と、改訂後のコンテンツデータを格納する改訂データ格納部５９と、分割データ格納部５５に格納されている各データブロックについてハッシュ値を算出するハッシュ生成部５６と、ハッシュ生成部５６によって算出されたハッシュ値を格納するハッシュデータ格納部５８と、受信データ格納部５２に格納されているデータ及びハッシュデータ格納部５８に格納されているハッシュ値などを用いて改訂者の電子署名等を生成する署名処理部６０と、署名処理部６０により生成されたデータを格納する署名データ格納部６２と、ハッシュデータ格納部５８に格納されているハッシュ値などを用いて本改訂者より前に処理に係るコンテンツデータに関与したユーザの補助データについて処理を行う補助データ処理部６１と、補助データ処理部６１の処理結果を格納する補助データ格納部６３と、署名データ格納部６２と補助データ格納部６３と改訂データ格納部５９と受信データ格納部５２とに格納されているデータを入力部５４の指示に従って指定出力先に出力する出力部６５とを有する。
【００５３】
入力部５４は、データ分割部５３、改訂データ生成部５７、ハッシュ生成部５６、署名処理部６０、補助データ処理部６１及び出力部６５に、指示及び必要なデータを出力する。
【００５４】
次に、図１５を用いて改訂者端末５の処理内容について説明する。まず、前提としてデータ受信部５１は、署名者端末３又は他の改訂者端末５からデータを受信すると、受信データ格納部５２に受信データを格納する。図６及び図７に示したように、署名者端末３から受信した場合と、他の改訂者端末５から受信した場合とでは、受信データの内容が異なる。
【００５５】
そして、改訂者は、入力部５４に、改定対象のコンテンツデータの指定を入力し、入力部５４は、この改定対象のコンテンツデータの指定をデータ分割部５３に出力する。そうすると、データ分割部５３は、受信データ格納部５２に格納されているコンテンツデータを、複数のデータブロックに分割する（ステップＳ１１）。上でも述べたがシステム全体で一定のルールに従って分割を実施して、各端末で同様のデータブロックが生成されるようにする。なお、生成された複数のデータブロックについては、改訂者に提示して、いずれのデータブロックを削除すべきかを指定できるようにしても良い。
【００５６】
次に、改訂者は、入力部５４に対して、削除すべきデータブロック（以下、削除データブロックと呼ぶ）の指定及び必要なデータ（出力先、秘密鍵など）の入力を行い、入力部５４は、削除データブロックの指定及び必要なデータの入力を受け付け、例えばメインメモリ等の記憶装置に格納する（ステップＳ１３）。なお、必要データには署名者の秘密鍵のデータ又は予め所定のデータ格納領域に格納されている署名者の秘密鍵の指定を含むようにしても良い。
【００５７】
そして、入力部５４は、削除すべきデータブロックの識別子（例えばコンテンツデータの先頭データブロックからシリアルに付与される。従ってコンテンツデータ全体における位置を表すデータとも言える。）を改訂データ生成部５７に出力して、改訂データ生成部５７に、分割データ格納部５５に格納されている、削除データブロック以外の残存データブロックで改訂コンテンツデータを生成させる（ステップＳ１５）。改訂データ生成部５７は、改訂コンテンツデータを改訂データ格納部５９に格納する。
【００５８】
また、ハッシュ生成部５６は、入力部５４からの指示に応じて、分割データ格納部５５に格納されている各データブロックについてのハッシュ値を算出し、ハッシュデータ格納部５８に格納する（ステップＳ１７）。上でも述べたが、全てのデータブロックについて算出されたハッシュ値を用いるが、その用い方については、削除データブロックのハッシュ値と、残存データブロックのハッシュ値とでは異なる。
【００５９】
そして、署名処理部６０は、入力部５４から削除データブロックの識別子を受け取り、当該削除データブロックの識別子を含む、改訂者の削除インデックス集合データＤを生成し、さらに削除データブロックについてのハッシュ値を除く残存データブロックのハッシュ値をハッシュデータ格納部５８から読み出し、それらハッシュ値ｈjの積を算出して、中間データαmodifier＝ｇΠhj（mod Ｎ）を算出する。そして、改訂者の秘密鍵で、中間データαmodifier及び削除インデックス集合データＤの組み合わせを暗号化することによって、改訂者の電子署名σmodifierを生成し、削除インデックス集合データＤと共に署名データ格納部６２に格納する（ステップＳ１９）。所定値ｇ及びＮは、例えば署名処理部６０が管理するデータ格納領域に保持しておくか、入力部３１を介して入力される。
【００６０】
なお、削除インデックス集合データＤに含まれる、削除データブロックの識別子は、どの端末においてもユニークにどのデータブロックであるかを特定できなければならない。従って、受信データ格納部５２に他の改訂者の削除インデックス集合データＤが含まれる場合には、単純に分割データ格納部５５に格納されているデータブロックの順番ではなく、当該削除インデックス集合データＤに含まれる識別子を考慮したものでなければならない。例えば、５つのデータブロックが存在する場合に、受信削除インデックス集合データＤが｛２，４｝であれば、本端末においては存在するデータブロックは｛１，２，３｝ではなく、｛１，３，５｝であると認識して、削除インデックス集合データＤに該当識別子を入れる。
【００６１】
さらに、補助データ処理部６１は、入力部５４から削除データブロックの識別子を受け取り、削除データブロックに対応するハッシュ値をハッシュデータ格納部５８から読み出して、それらハッシュ値ｈkの積を算出し、直前の改訂者又は署名者の補助データβprevious_user＝ｇΠhk（mod Ｎ）を算出し、補助データ格納部６３に格納する（ステップＳ２１）。さらに、補助データ処理部６１は、受信データ格納部５２に、他のユーザの補助データが格納されている場合には、当該補助データβreceivedを読み出して、削除データブロックについてのハッシュ値ｈkの積を用いて、補助データβreceivedΠhk（mod Ｎ）でもって補助データβreceivedを変更して、変更後の補助データβreceivedを、補助データ格納部６３に格納する（ステップＳ２３）。
【００６２】
そして、出力部６５は、署名データ格納部６２に格納されている改訂者の電子署名及び削除インデックス集合データと、補助データ格納部６３に格納されている署名者又は直前の改訂者の補助データと、受信データ格納部５２に格納されている全電子署名及び削除インデックス集合データと、補助データ格納部６３に格納されている変更後の補助データとを、入力部５４から指定されている出力先に出力する（ステップＳ２５）。
【００６３】
以上のような処理を実施することによって、図７又は図８に示すようなデータが、次のユーザに出力される。
【００６４】
次に、検証者端末７の機能ブロック図を図１６に示す。検証者端末７は、署名者端末３又は改訂者端末５からデータを受信するデータ受信部７１と、データ受信部７１が受信したデータを格納する受信データ格納部７２と、検証者からの指示を受け付ける入力部８０と、入力部８０からの指示に従って受信データ格納部７２に格納されているコンテンツデータをデータブロックに分割するデータ分割部７３と、データ分割部７３により生成されたデータブロックのデータを格納する分割データ格納部７４と、分割データ格納部７４に格納されているデータブロックについてハッシュ値を算出するハッシュ生成部７５と、ハッシュ生成部７５により算出されたハッシュ値を格納するハッシュデータ格納部７６と、例えば認証機関サーバ９から必要なユーザの公開鍵を取得する公開鍵取得部７７と、ハッシュデータ格納部７６と受信データ格納部７２とに格納されているデータ及び公開鍵取得部７７から受け取る公開鍵を用いて検証処理を実施する検証部７８と、検証部７８の検証結果を出力する出力部７９とを有する。
【００６５】
次に、検証者端末７の動作内容について図１７及び図１８を用いて説明する。データ受信部７１は、他の端末からデータを受信すると、受信データ格納部７２に格納する。そして、入力部８０が検証者から検証開始の指示を受け付けると、データ分割部７３に処理開始を指示する。なお、複数のコンテンツについてのデータが受信データ格納部７２に格納されている場合には、いずれのコンテンツのデータについて処理するのかについての指定も行われる。なお、署名者の秘密鍵のデータ又は予め所定のデータ格納領域に格納されている署名者の秘密鍵の入力がなされる。
【００６６】
そして、入力部８０から指示を受けたデータ分割部７３は、受信データ格納部７２に格納されているコンテンツデータを、データブロックに分割して、分割データ格納部７４に格納する（ステップＳ３１）。そして、ハッシュ生成部７５は、分割データ格納部７４に格納されている各データブロックについてハッシュ値を算出して、ハッシュデータ格納部７６に格納する（ステップＳ３３）。
【００６７】
その後、検証部７８は、受信データ格納部７２に格納されている電子署名及び関連データ（具体的には削除インデックス集合データ及び補助データ）を読み出して、新しい順にソートする（ステップＳ３５）。電子署名に含まれる生成時刻などを用いて判断する。そして、検証部７８は、カウンタｎを１に初期化し（ステップＳ３７）、ハッシュデータ格納部７６に格納されているハッシュ値の積Ｈから、第ｎの中間データαn＝ｇH（mod Ｎ）を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ３９）。所定値ｇ及びＮは、例えば署名処理部３７が管理するデータ格納領域に保持しておくか、入力部３１を介して入力される。
【００６８】
また、検証部７８は、公開鍵取得部７７に、ｎ番目の電子署名σnの署名者（ｎ番目の電子署名σnを生成したユーザ）の公開鍵を、例えば認証機関サーバ９から取得させ、公開鍵取得部７７から受け取り、例えばメインメモリなどの記憶装置に格納する（ステップＳ４１）。そして、検証部７８は、第ｎ中間データαnと電子署名σn及び該当削除インデックス集合データ（電子署名σnが署名者端末３の署名者の電子署名の場合には存在しない）とから検証処理を実施する（ステップＳ４３）。具体的には、電子署名σnを公開鍵で復号することによって中間データと削除インデックス集合データとの組み合わせを取得し、それらが第ｎ中間データαnと受信した該当削除インデックス集合データとの組み合わせと一致するか判断する。一致すれば検証成功で、一致しなければ検証失敗ということになる。
【００６９】
そして、検証失敗であれば（ステップＳ４５：Ｎｏルート）、検証部７８は、検証失敗を出力部７９に出力し、出力部７９は、検証失敗を表すエラー出力を、例えば表示装置に出力する（ステップＳ４７）。プリンタや音声出力のための機器が検証者端末７に備えられている場合には、それらを用いてエラーを通知するようにしても良い。そして処理を終了する。
【００７０】
一方、検証成功であれば（ステップＳ４５：Ｙｅｓルート）、処理は端子Ａを介して図１８の処理フローに移行する。なお、この際、検証できた電子署名σnの生成を行ったユーザとそのユーザの削除インデックス集合データを、表示装置に出力するようにしても良い。
【００７１】
図１８の処理の説明に移行して、検証部７８は、受信データ格納部７２に格納されている全ての電子署名について処理したか判断する（ステップＳ４９）。未処理の電子署名が存在しない場合には、検証部７８は、検証成功を出力部７９に通知して、出力部７９は、検証成功を表示装置などに出力する（ステップＳ６１）。これによって、公開部分の完全性保証と、削除部分の秘匿性保証に加え、改訂者（削除者）の識別が可能となる。
【００７２】
一方、未処理の電子署名が存在する場合には、検証部７８は、カウンタｎを１インクリメントし（ステップＳ５１）、受信データ格納部７２に格納されている補助データβnと、ハッシュ値の積Ｈとから、第ｎの中間データαn＝βnH（mod Ｎ）を算出し、メインメモリなどの記憶装置に格納する（ステップＳ５３）。
【００７３】
また、検証部７８は、公開鍵取得部７７に、ｎ番目の電子署名σnの署名者（ｎ番目の電子署名σnを生成したユーザ）の公開鍵を、例えば認証機関サーバ９から取得させ、公開鍵取得部７７から受け取り、例えばメインメモリなどの記憶装置に格納する（ステップＳ５４）。そして、検証部７８は、第ｎ中間データαnと電子署名σn及び該当削除インデックス集合データとから検証処理を実施する（ステップＳ５５）。具体的には、電子署名σnを公開鍵で復号することによって中間データと削除インデックス集合データとの組み合わせを取得し、それらが第ｎ中間データαnと受信した該当削除インデックス集合データ（電子署名σnが署名者の電子署名の場合には存在しない）との組み合わせと一致するか判断する。一致すれば検証成功で、一致しなければ検証失敗ということになる。
【００７４】
そして、検証失敗であれば（ステップＳ５７：Ｎｏルート）、検証部７８は、検証失敗を出力部７９に出力し、出力部７９は、検証失敗を表すエラー出力を、例えば表示装置に出力する（ステップＳ５９）。そして処理を終了する。
【００７５】
一方、検証成功であれば（ステップＳ５７：Ｙｅｓルート）、ステップＳ４９に戻る。なお、この際、検証できた電子署名σnの生成を行ったユーザとそのユーザの削除インデックス集合データを、表示装置に出力するようにしても良い。
【００７６】
このように、順番に新しい改訂者から古い改訂者、そして最後に署名者の電子署名について検証して、改竄などが行われていないかを判断する。
【００７７】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、署名者端末３、改訂者端末５及び検証者端末７の機能ブロック図を示しているが、このような機能ブロックの構成は必ずしも実際のプログラムモジュール構成と一致しない場合もある。
【００７８】
さらに、処理フローについても処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行することができる部分もある。
【００７９】
また、コンテンツデータは、文書データだけではなく、動画データ、音声データ、画像データその他のデータである場合もある。
【００８０】
なお、上で述べた署名者端末３、改訂者端末５及び検証者端末７は、コンピュータ装置であって、図１９に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８１】
本実施の形態をまとめると以下のように表される。
【００８２】
本実施の形態の第１の態様に係るデータ処理装置は、（Ａ）データ格納部（図２０：１００１）に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付ける入力部（図２０：１００２）と、（Ｂ）各データブロックについてハッシュ値を算出するハッシュ生成部（図２０：１００３）と、（Ｃ）複数のデータブロックのうち上記削除すべきデータブロックのハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部（図２０：１００６）に格納する補助データ生成部（図２０：１００４）と、（Ｄ）複数のデータブロックのうち上記削除すべきデータブロックを除く残存データブロックのハッシュ値の積Ｈ２と、所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと上記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部（図２０：１００７）に格納する電子署名生成部（図２０：１００５）と、（Ｅ）補助データ格納部に格納されている補助データと、電子署名格納部に格納されている電子署名と、上記削除すべきデータブロックの位置データと、データ格納部に格納されているコンテンツデータのうち残存データブロックを含む改訂コンテンツデータと、データ格納部に格納されている他の電子署名とを、指定出力先に出力する出力部（図２０：１００８）とを有する。
【００８３】
上で述べたような補助データ生成部及び電子署名生成部を用いるので、出力部では、削除すべきデータブロックの数が多い場合においても、出力されるデータの量が大幅に増加することがない。増加するのは上記削除すべきデータブロックの位置データだけであり、その増加の幅は許容できる範囲である。
【００８４】
また、上で述べたデータ格納部に、過去の補助データβi及び過去の削除データブロックの位置データが格納されている場合には、上で述べた補助データ生成部が、上記削除すべきデータブロックのハッシュ値の積Ｈ１と、所定の値Ｎとを用いて、データ格納部に格納されている過去の補助データβiを、βiH1（mod  Ｎ）で更新し、補助データ格納部に格納するようにしてもよい。そして、上で述べた出力部が、補助データ格納部に格納されている過去の補助データと、データ格納部に格納されている過去の削除データブロックの位置データとをさらに出力するようにしてもよい。このように、削除者の数が増加すると、出力されるデータの量も増加するが、削除データブロックの数に応じて大幅に増加するわけではない。
【００８５】
本実施の形態の第２の態様に係るデータ処理装置は、（Ａ）削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部（図２１：１１０１）と、（Ｂ）削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するハッシュ生成部（図２１：１１０３）と、（Ｃ）所定の値ｇ及びＮと、ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、当該中間データαとデータ格納部に格納されている上記削除済みコンテンツデータについての削除データブロックの位置データ及び削除済みコンテンツデータに対応する電子署名と当該電子署名の署名者（当該電子署名を生成したユーザ。具体的には削除者）の公開鍵とを用いて、前記削除済みコンテンツデータに対応する電子署名の検証を実施する検証部（図２１：１１０５）とを有する。そして、検証部は、（Ｄ）削除済みコンテンツデータに対応する電子署名の検証が成功すると、所定の値Ｎと、ハッシュ値の積Ｈ１と、削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、当該第２の中間データα2と削除前コンテンツデータについての電子署名の署名者の公開鍵と削除前コンテンツデータについての電子署名とを用いて、削除前コンテンツデータについての電子署名の検証を実施する。
【００８６】
検証する場合においても、削除済みコンテンツデータに含まれる各データブロックについてのハッシュ値の積Ｈ１及び補助データを用いて、削除者の手元に送られてきたコンテンツデータに関する特徴的な値である第２の中間データα2が算出されることになる。従って、削除前コンテンツデータについての電子署名の検証が容易に実施される。
【００８７】
なお、上で述べたデータ格納部に、さらに過去の削除者についての電子署名と、さらに過去の削除データブロックの位置データと、さらに過去の削除者についての補助データβ2とがさらに格納されている場合もある。そのような場合、上で述べた検証部は、削除済みコンテンツデータに対応する電子署名の検証が成功すると、所定の値Ｎと、ハッシュ値の積Ｈ１と、上記さらに過去の削除者についての補助データβ2とを用いて、第３の中間データα3＝β2H1（mod  Ｎ）を算出し、当該第３の中間データα3とデータ格納部に格納されている上記さらに過去の削除データブロックの位置データ、上記さらに過去の削除者についての電子署名及び上記さらに過去の削除者についての電子署名と当該さらに過去の削除者の公開鍵とを用いて、上記さらに過去の削除者についての電子署名の検証を実施するようにしてもよい。
【００８８】
複数の削除者が存在する場合にも対処できる。なお、上で述べたように、削除データブロックの数が増加しても検証に用いられるデータはほとんど増加しない。
【００８９】
第３の態様に係るデータ処理装置は、コンテンツデータ格納部（図２２：１２０１）に格納されている署名対象のコンテンツデータを複数のデータブロックに分割し、分割データ格納部（図２２：１２０３）に格納するデータ分割部（図２２：１２０２）と、分割データ格納部に格納されている各データブロックについてハッシュ値を算出するハッシュ生成部（図２２：１２０４）と、所定の値ｇ及びＮと、算出されたハッシュ値の積Ｈとを用いて、中間データα＝ｇH（mod Ｎ）を算出し、当該中間データαに対して署名者の秘密鍵により電子署名を生成し、電子署名格納部（図２２：１２０６）に格納する電子署名生成部（図２２：１２０５）とを有する。  
【００９０】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【００９１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９２】
（付記１）
データ格納部に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付ける入力部と、
各前記データブロックについてハッシュ値を算出するハッシュ生成部と、
前記複数のデータブロックのうち前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部に格納する補助データ生成部と、
前記複数のデータブロックのうち前記削除すべきデータブロックを除く残存データブロックの前記ハッシュ値の積Ｈ２と、前記所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと前記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部に格納する電子署名生成部と、
前記補助データ格納部に格納されている前記補助データと、前記電子署名格納部に格納されている前記電子署名と、前記削除すべきデータブロックの位置データと、前記データ格納部に格納されているコンテンツデータのうち前記残存データブロックを含む改訂コンテンツデータと、前記データ格納部に格納されている他の電子署名とを、指定出力先に出力する出力部と、
を有するデータ処理装置。
【００９３】
（付記２）
前記データ格納部に、過去の補助データβi及び過去の削除データブロックの位置データが格納されている場合には、
前記補助データ生成部が、
前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、前記所定の値Ｎとを用いて、前記データ格納部に格納されている前記過去の補助データβiを、βiH1（mod  Ｎ）で更新し、前記補助データ格納部に格納し、
前記出力部が、前記補助データ格納部に格納されている前記過去の補助データと、前記データ格納部に格納されている前記過去の削除データブロックの位置データとをさらに出力する
付記１記載のデータ処理装置。
【００９４】
（付記３）
削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、前記削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部と、
前記削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するハッシュ生成部と、
所定の値ｇ及びＮと、前記ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、当該中間データαと前記データ格納部に格納されている前記削除済みコンテンツデータについての削除済みデータブロックの位置データ及び前記削除済みコンテンツデータに対応する電子署名と当該電子署名の署名者の公開鍵とを用いて、前記削除済みコンテンツデータに対応する電子署名の検証を実施する検証部と、
を有し、
前記検証部は、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、
前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、当該第２の中間データα2と前記削除前コンテンツデータについての電子署名の署名者の公開鍵と前記削除前コンテンツデータについての電子署名とを用いて、前記削除前コンテンツデータについての電子署名の検証を実施する
データ処理装置。
【００９５】
（付記４）
前記データ格納部に、さらに過去の削除者についての電子署名と、さらに過去の削除データブロックの位置データと、さらに過去の削除者についての補助データβ2とがさらに格納されている場合には、
前記検証部は、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、
前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記さらに過去の削除者についての補助データβ2とを用いて、第３の中間データα3＝β2H1（mod  Ｎ）を算出し、当該第３の中間データα3と前記データ格納部に格納されている前記さらに過去の削除データブロックの位置データ、前記さらに過去の削除者についての電子署名及び前記さらに過去の削除者についての電子署名と当該さらに過去の削除者の公開鍵とを用いて、前記さらに過去の削除者についての電子署名の検証を実施する
付記３記載のデータ処理装置。
【００９６】
（付記５）
コンテンツデータ格納部に格納されている署名対象のコンテンツデータを複数のデータブロックに分割し、分割データ格納部に格納するデータ分割部と、
前記分割データ格納部に格納されている各前記データブロックについてハッシュ値を算出するハッシュ生成部と、
所定の値ｇ及びＮと、算出された前記ハッシュ値の積Ｈとを用いて、中間データα＝ｇH（mod Ｎ）を算出し、当該中間データαに対して署名者の秘密鍵により電子署名を生成し、電子署名格納部に格納する電子署名生成部と、
を有するデータ処理装置。
【００９７】
（付記６）
コンピュータに、
コンテンツデータ格納部に格納されている署名対象のコンテンツデータを複数のデータブロックに分割し、分割データ格納部に格納するステップと、
前記分割データ格納部に格納されている各前記データブロックについてハッシュ値を算出するステップと、
所定の値ｇ及びＮと、算出された前記ハッシュ値の積Ｈとを用いて、中間データα＝ｇH（mod Ｎ）を算出し、当該中間データαに対して署名者の秘密鍵により電子署名を生成し、電子署名格納部に格納するステップと、
を実行させるための、署名処理プログラム。
【００９８】
（付記７）
コンピュータに、
データ格納部に格納されているコンテンツデータに含まれる複数のデータブロックのうち削除すべきデータブロックの指定を受け付けるステップと、
各前記データブロックについてハッシュ値を算出するステップと、
前記複数のデータブロックのうち前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、所定の値ｇ及びＮとを用いて、署名者の補助データβ＝ｇH1（mod Ｎ）を算出し、補助データ格納部に格納するステップと、
前記複数のデータブロックのうち前記削除すべきデータブロックを除く残存データブロックの前記ハッシュ値の積Ｈ２と、前記所定の値ｇ及びＮとを用いて、中間データα＝ｇH2（mod  Ｎ）を算出し、さらに当該中間データαと前記削除すべきデータブロックの位置データとの組み合わせに対して削除指示者の秘密鍵により電子署名を生成し、電子署名格納部に格納するステップと、
前記補助データ格納部に格納されている前記補助データと、前記電子署名格納部に格納されている前記電子署名と、前記削除すべきデータブロックの位置データと、前記データ格納部に格納されているコンテンツデータのうち前記残存データブロックを含む改訂コンテンツデータと、前記データ格納部に格納されている他の電子署名とを、指定出力先に出力する出力ステップと、
を実行させるための、削除署名処理プログラム。
【００９９】
（付記８）
前記データ格納部に、過去の補助データβi及び過去の削除データブロックの位置データが格納されている場合に、
前記削除すべきデータブロックの前記ハッシュ値の積Ｈ１と、前記所定の値Ｎとを用いて、前記データ格納部に格納されている前記過去の補助データβiを、βiH1（mod  Ｎ）で更新し、前記補助データ格納部に格納するステップ
をさらに前記コンピュータに実行させ、
前記出力ステップにおいて、前記補助データ格納部に格納されている前記過去の補助データと、前記データ格納部に格納されている前記過去の削除データブロックの位置データとをさらに出力する
付記７記載の削除署名処理プログラム。
【０１００】
（付記９）
コンピュータに、
削除済みコンテンツデータと、当該削除済みコンテンツデータに対応する電子署名と、当該削除済みコンテンツデータについての削除データブロックの位置データと、削除前コンテンツデータについての電子署名と、前記削除前コンテンツデータに対する電子署名の署名者の補助データβとを格納するデータ格納部に格納されている前記削除済みコンテンツデータに含まれる各データブロックについてハッシュ値を算出するステップと、
所定の値ｇ及びＮと、前記ハッシュ値の積Ｈ１とを用いて、中間データα＝ｇH1（mod  Ｎ）を算出し、当該中間データαと前記データ格納部に格納されている前記削除済みコンテンツデータについての削除データブロックの位置データ及び前記削除済みコンテンツデータに対応する電子署名と当該電子署名の署名者の公開鍵とを用いて、前記削除済みコンテンツデータに対応する電子署名の検証を実施するステップと、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記削除前コンテンツデータについての電子署名の署名者の補助データβとを用いて、第２の中間データα2＝βH1（mod  Ｎ）を算出し、当該第２の中間データα2と前記削除前コンテンツデータについての電子署名の署名者の公開鍵と前記削除前コンテンツデータについての電子署名とを用いて、前記削除前コンテンツデータについての電子署名の検証を実施するステップと、
を実行させるための、検証処理プログラム。
【０１０１】
（付記１０）
前記データ格納部に、さらに過去の削除者についての電子署名と、さらに過去の削除データブロックの位置データと、さらに過去の削除者についての補助データβ2とがさらに格納されている場合に、
前記削除済みコンテンツデータに対応する電子署名の検証が成功すると、前記所定の値Ｎと、前記ハッシュ値の積Ｈ１と、前記さらに過去の削除者についての補助データβ2とを用いて、第３の中間データα3＝β2H1（mod  Ｎ）を算出し、当該第３の中間データα3と前記データ格納部に格納されている前記さらに過去の削除データブロックの位置データ、前記さらに過去の削除者についての電子署名及び前記さらに過去の削除者についての電子署名と当該さらに過去の削除者の公開鍵とを用いて、前記さらに過去の削除者についての電子署名の検証を実施するステップ
をさらに前記コンピュータに実行させるための付記９記載の検証処理プログラム。
【符号の説明】
【０１０２】
３１  入力部    ３２  コンテンツデータ格納部
３３  データ分割部    ３４  分割データ格納部
３５  ハッシュ生成部    ３６  ハッシュデータ格納部
３７  署名処理部    ３８  署名データ格納部
３９  出力部
５１  データ受信部    ５２  受信データ格納部
５３  データ分割部    ５４  入力部
５５  分割データ格納部    ５６  ハッシュ生成部
５７  改訂データ生成部    ５８  ハッシュデータ格納部
５９  改訂データ格納部    ６０  署名処理部
６１  補助データ処理部    ６２  署名データ格納部
６３  補助データ格納部    ６５  出力部
７１  データ受信部    ７２  受信データ格納部
７３  データ分割部    ７４  分割データ格納部
７５  ハッシュ生成部    ７６  ハッシュデータ格納部
７７  公開鍵取得部    ７８  検証部
７９  出力部    ８０  入力部
【図１】
0005381543.tif 000002
【図２】
0005381543.tif 000003
【図３】
0005381543.tif 000004
【図４】
0005381543.tif 000005
【図５】
0005381543.tif 000006
【図６】
0005381543.tif 000007
【図７】
0005381543.tif 000008
【図８】
0005381543.tif 000009
【図９】
0005381543.tif 000010
【図１０】
0005381543.tif 000011
【図１１】
0005381543.tif 000012
【図１２】
0005381543.tif 000013
【図１３】
0005381543.tif 000014
【図１４】
0005381543.tif 000015
【図１５】
0005381543.tif 000016
【図１６】
0005381543.tif 000017
【図１７】
0005381543.tif 000018
【図１８】
0005381543.tif 000019
【図１９】
0005381543.tif 000020
【図２０】
0005381543.tif 000021
【図２１】
0005381543.tif 000022
【図２２】
0005381543.tif 000023