(57)【特許請求の範囲】
【請求項１】
マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理方法であって、
与えられたマークアップデータから一部のデータを抽出する抽出工程と、該抽出工程により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化工程と、
前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成工程と、
前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出工程により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成工程とを備えることを特徴とするデータ処理方法。
【請求項２】
前記秘密鍵と公開鍵とを生成する鍵生成工程を備えることを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記付加工程において、前記暗号化データをタグで囲んで記述することを特徴とする請求項１に記載のデータ処理方法。
【請求項４】
前記付加工程において、前記暗号化データをタグのプロパティとして記述することを特徴とする請求項１に記載のデータ処理方法。
【請求項５】
前記付加工程において、前記鍵参照用データをタグのプロパティとして記述することを特徴とする請求項１に記載のデータ処理方法。
【請求項６】
前記付加工程において、前記鍵参照用データをタグで囲んで記述することを特徴とする請求項１に記載のデータ処理方法。
【請求項７】
前記鍵参照用データは前記公開鍵の参照可能な場所を示すデータであることを特徴とする請求項１に記載のデータ処理方法。
【請求項８】
前記鍵参照用データは前記公開鍵の識別データであることを特徴とする請求項１に記載のデータ処理方法。
【請求項９】
前記マークアップ記述言語は、XML、XMLを用いて定義された他のマークアップ記述言語、SGML、HTMLのいずれかであることを特徴とする請求項１記載のデータ処理方法。
【請求項１０】
前記生成工程により生成されたマークアップデータのチェックサムを算出するチェックサム算出工程と、
前記生成されたマークアップデータと前記チェックサムとをバイナリデータに接合させるデータ接合工程とを備えることを特徴とする請求項１記載のデータ処理方法。
【請求項１１】
前記データ接合工程において、バイナリデータの後にマークアップデータを接合させることを特徴とする請求項１０記載のデータ処理方法。
【請求項１２】
前記バイナリデータは、画像データ、音声データ、または動画像データであることを特徴とする請求項１０記載のデータ処理方法。
【請求項１３】
前記チェックサムは、前記マークアップデータのバイト数、文字数、単語数、行数または前記マークアップデータに含まれるタグの数であるであることを特徴とする請求項１０記載のデータ処理方法。
【請求項１４】
マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理方法であって、
処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出工程と、
前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得工程と、
取得した前記公開鍵を用いて前記暗号データを復号する復号工程とを備えることを特徴とするデータ処理方法。
【請求項１５】
前記データ抽出工程において、前記暗号化データまたは鍵参照用データとして、所定のタグで囲んで記述されたデータを抽出することを特徴とする請求項１４に記載のデータ処理方法。
【請求項１６】
前記データ抽出工程において、前記暗号化データまたは鍵参照用データとして、所定のタグのプロパティの値を抽出することを特徴とする請求項１４に記載のデータ処理方法。
【請求項１７】
バイナリデータを読み込むバイナリデータ読み込み工程と、
前記バイナリデータ読み込み工程で読まれたバイナリデータから、前記処理対象のマークアップデータを抽出するマークアップデータ抽出工程と、
前記バイナリデータ読み込み工程で読まれたバイナリデータからチェックサムを抽出するチェックサム抽出工程と、
前記マークアップデータ抽出工程で抽出されたマークアップデータのチェックサムを算出するチェックサム算出工程と、
前記チェックサム抽出工程で抽出されたチェックサムと前記チェックサム算出工程で算出されたチェックサムとを比較してデータの改竄の有無を判別する改竄判別工程とを備えることを特徴とする請求項１４に記載のデータ処理方法。
【請求項１８】
マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理装置であって、
与えられたマークアップデータから一部のデータを抽出する抽出手段と、
該抽出手段により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化手段と、
前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成手段と、
前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出手段により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成手段とを備えることを特徴とするデータ処理装置。
【請求項１９】
マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理装置であって、
処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出手段と、
前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得手段と、
取得した前記公開鍵を用いて前記暗号データを復号する復号手段とを備えることを特徴とするデータ処理装置。
【請求項２０】
マークアップ記述言語によりタグ付けされたマークアップデータの処理をコンピュータに実行させるためのデータ処理プログラムをコンピュータによって読み取り可能に記憶した記憶媒体であって、
前記データ処理プログラムが、
与えられたマークアップデータから一部のデータを抽出する抽出工程と、
該抽出工程により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化工程と、
前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成工程と、
前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出工程により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成工程とを前記コンピュータに実行させることを特徴とする記憶媒体。
【請求項２１】
マークアップ記述言語によりタグ付けされたマークアップデータの処理をコンピュータに実行させるためのデータ処理プログラムをコンピュータによって読み取り可能に記憶した記憶媒体であって、
前記データ処理プログラムが、
処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出工程と、
前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得工程と、取得した前記公開鍵を用いて前記暗号データを復号する復号工程とを前記コンピュータに実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理に関し、特に、マークアップデータの改竄を防止するための処理に関するものである。
【０００２】
【従来の技術】
従来より、コンピュータで扱う文書などのデータとして、マークアップ記述言語を用いて各構成要素の属性を定義したマークアップデータが用いられている。このようなマークアップ記述言語の例としては、SGML（Standard Generalized Markup Language）、HTML（Hyper-Text Markup Language）などがある。
【０００３】
近年、そのようなマークアップ記述言語の１種であるXML（eXtensible  Markup Language）を用いた様々なデータフォーマットが提案されている。
【０００４】
XMLは、テキストデータによって記述される可読のデータ形式で、例えば「<Tag>」と「</Tag>」といったような「<」と「>」形式のタグでデータ項目を表現し、またこのタグで別のデータを入れ子構造になるように囲むことによって様々なデータを表現することができる。また、タグが表すデータ項目中にデータを含まない場合には「<Tag/>」というように記述することも可能である。さらに、このタグ中にはプロパティと呼ばれる、タグに関連する特徴データを記述することも可能で、例えば、「<Tag prop="Property"> … </Tag>」というように、「プロパティ名＝“値”」という文字列をタグ名（例では"Tag"）と空白文字で区切って後続してタグに内挿することによって実現される。
【０００５】
また、XMLはDTD(Document Type Definition)と呼ばれるデータブロックを持ち、後続する実際のXMLデータ(Body)における、タグの構文を規定することが可能である。
【０００６】
さらにXMLは、XSLやCSSといったスタイルシートにより、そのデータをレンダリングする時の情報を付加したり、あるいは、XlinkやXPointerを用いることによってデータ間のハイパーリンクを定義することも可能である。
【０００７】
XMLを用いたデータフォーマットの例としては、SMILやSVGなどが挙げられる。
【０００８】
前述した通り、XMLはテキストデータからなるデータ形式であるので、一般的な文書編集ソフトウェア（テキストエディタなど）で容易に作成したり編集したりすることができる。このことは、XMLの取り扱いを容易にするという点では長所である。
【０００９】
【発明が解決しようとする課題】
しかしながら、例えばそのデータに著作権に関する情報（例：著作者名  など）のような改変されたくないデータが一部に含まれていた場合でも、その著作権データ部分も容易に改変、すなわち第三者による改竄も容易であるということになる。
【００１０】
改竄を防止するためには、例えばそのデータ全体を公開鍵暗号化方式の秘密鍵などによって暗号化することが考えられるが、この場合、暗号化されたデータを読むためには公開鍵暗号化方式に対応したソフトウェアが必須であり、それを持たないものに取ってはデータ全体が全く意味を為さない無意味なデータとなってしまうという問題がある。
【００１１】
本発明は上述した課題を解決するためになされたものであり、改変されたくない一部のデータについて、それ以外の部分の参照に対して影響を及ぼさずに改竄を防止することを目的とする。
【００１２】
【課題を解決するための手段】
上述した目的を達成するための一手段として、本発明によれば、マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理方法に、与えられたマークアップデータから一部のデータを抽出する抽出工程と、該抽出工程により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化工程と、前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成工程と、前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出工程により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成工程とを備える。
【００１３】
また、本発明の他の態様によれば、マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理方法に、処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出工程と、前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得工程と、取得した前記公開鍵を用いて前記暗号データを復号する復号工程とを備える。
【００１４】
また、本発明の他の態様によれば、マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理装置に、与えられたマークアップデータから一部のデータを抽出する抽出手段と、該抽出工程により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化手段と、前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成手段と、前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出手段により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成手段とを備える。
【００１５】
また、本発明の他の態様によれば、マークアップ記述言語によりタグ付けされたマークアップデータを処理するデータ処理装置に、処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出手段と、前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得手段と、取得した前記公開鍵を用いて前記暗号データを復号する復号手段とを備える。
【００１６】
更に、本発明の他の態様によれば、マークアップ記述言語によりタグ付けされたマークアップデータの処理をコンピュータに実行させるためのデータ処理プログラムをコンピュータによって読み取り可能に記憶する記憶媒体において、前記データ処理プログラムが、与えられたマークアップデータから一部のデータを抽出する抽出工程と、該抽出工程により抽出されたデータを公開鍵暗号化方式における秘密鍵によって暗号化して暗号化データを生成する暗号化工程と、前記秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データを作成する鍵参照用データ作成工程と、前記暗号化データ及び前記鍵参照用データのそれぞれをタグを用いて識別可能に記述し、前記抽出工程により一部のデータが抽出された残りのマークアップデータに付加することで新たなマークアップデータを生成する生成工程とを前記コンピュータに実行させることを特徴とする。
【００１７】
また、本発明の他の態様によれば、マークアップ記述言語によりタグ付けされたマークアップデータの処理をコンピュータに実行させるためのデータ処理プログラムをコンピュータによって読み取り可能に記憶する記憶媒体において、前記データ処理プログラムが、処理対象のマークアップデータから、所定のタグに基づいて、公開鍵暗号化方式における秘密鍵によって暗号化された暗号データと、当該秘密鍵に対応する公開鍵を参照可能に特定する鍵参照用データとを抽出するデータ抽出工程と、前記鍵参照用データに基づいて前記公開鍵を取得する公開鍵取得工程と、取得した前記公開鍵を用いて前記暗号データを復号する復号工程とを前記コンピュータに実行させることを特徴とする。
【００１９】
【発明の実施の形態】
＜第１の実施形態＞
以下、図面を用いて本発明の好適な１実施形態を詳細に説明する。
【００２０】
図１は、第１の実施形態のデータ処理装置の構成を示すブロック図である。図1において、読込部100はスキャナ装置などで構成され、紙などの媒体から画像を光学的に読み込むものである。入力部101はキーボードやポインティング装置などで構成され、ユーザがデータを入力するために用いられる。蓄積部102はハードディスクなどを媒体とする記憶装置で構成され、バイナリデータやメタデータを蓄積するものである。表示部103はCRTや液晶表示器などで構成され、蓄積部102に蓄積されたバイナリデータを表示したり、読込部100で読み込まれた画像データを表示するものである。
【００２１】
CPU104は、装置各部の制御を司り、プログラムを実行して各種処理を実現する。ROM105は、固定的なデータやプログラムを記憶する。本実施形態では、図２のフローチャートを参照して後述する処理手順を実現するための制御プログラムもROM104に格納されているものとする。RAM105は、その処理に必要なメモリや作業領域を提供する。バス107は、装置各部を接続する。
【００２２】
なお、第１の実施形態のデータ処理装置には前記以外にも、種々の構成要素が設けられているが、本発明の主眼ではないので、その説明については省略する。
【００２３】
次に、以上のように構成されたデータ処理装置における、改竄されたくないデータの保存方法の動作について、図２のフローチャートを参照して説明する。
【００２４】
図２において、ステップS201で、公開鍵暗号化方式の秘密鍵と公開鍵を得る。この公開鍵暗号化方式は公知の方式でよい。公知の公開鍵暗号化方式は秘密鍵と公開鍵という一対の異なる鍵データを用いて実現される。公開鍵で暗号化されたデータは秘密鍵のみで復号することができ、また秘密鍵で暗号化されたデータは公開鍵で復号可能である、また公開鍵から秘密鍵を推測することは十分に困難であるという特徴がある。
【００２５】
この秘密鍵と公開鍵を生成する手段は、本実施形態のデータ処理装置内部に例えばソフトウェアのような形態で兼ね備えていてもよいし、あるいは認証局と呼ばれるサーバコンピュータと通信して鍵の作成を依頼し、認証局が生成した鍵を受け取るのでもよい。そして、この公開鍵を他者から参照可能なところに置く。
【００２６】
次に、ステップS202で、XMLデータ中から改竄されたくないデータを取り出す。XMLのデータは、通常パーサと呼ばれるプログラムにより構文チェックおよび解析されて、一般に木構造などでプログラム内部で表現される。また、木構造などで表現されたXMLデータの各タグに対応するデータはDOM(Document Object Model)インターフェースなどを介して取り出し、書き換え、追加、削除などの処理が容易に行える。また、同様の処理を行うことが可能であれば、DOMインターフェース以外の手法でも構わない。
【００２７】
図３は、XMLファイルの一部の例である。図３の例において、１行目はXML宣言、２行目は文書型宣言であり、３〜１０行目が文書要素である。今、３行目及び５行目の著者を表す<Author>、</Auther>タグに囲まれた、４行目の"Yasuo FUKUDA"の部分が改竄されたくない部分であるとする。
【００２８】
続いてステップS203では、ステップS201で得た秘密鍵を用いて、ステップS202で取り出したデータを暗号化する。ステップS203で生成された暗号化データは秘密鍵を用いて暗号化されているので、先述の通り公開鍵で復号することが可能である。
【００２９】
そしてステップS204では、暗号化データをXMLデータに戻し、更にステップS205では、前記公開鍵に関する参照データをXMLデータに挿入する。先述したのと同様に、これらの処理は、例えばDOMインターフェース等を介して行われる。最後にステップS206では、作成したXMLデータを出力する。
【００３０】
図４は、図３のXMLファイルに対して上述した処理を施した後のXMLファイルの例である。図３の該当部分と比較すると、４行目が書き換えられているのがわかる。これは、ステップS203で秘密鍵を用いて元の４行目を暗号化した結果の暗号化文字列を表している。また、ステップS204の処理の結果、３行目の<Author>タグにencrypt-privatekey（秘密鍵）プロパティが"http://key.some.domain/yasuo.key"という値とともに挿入されていることがわかる。この"http://key.some.domain/yasuo.key"というのは、公開鍵を参照するために必要なデータであり、本実施例ではURL(Universal Resource Locator)を用いて記述する例を挙げたが、公開鍵を参照可能とするデータであれば他の形式（例えばIDなど）でもよい。また、このプロパティにより、<Author>タグで囲まれた内容が暗号化されていることが分かる。
【００３１】
本実施形態では、暗号化データをタグで囲む形にしているが、それ以外でも、例えばあるタグのプロパティの形で実施しても変わりはない。
【００３２】
また本実施形態では、公開鍵の参照データを表わすためにプロパティを用いているが、必ずしもプロパティで実現する必要はなく、例えばタグを用いるのでもよい。図５は、公開鍵の参照データを表わすためにタグを用いたXMLファイルの一例である。ここでは、< encrypt-privatekey >というタグの内容で公開鍵の参照データを表わし、それに続く< encrypt-string >というタグの内容で対応する暗号化データを表わしている。
【００３３】
本実施形態で用いているタグの要素、すなわち図３における、"SomeXML"や"Author"などは、DTDによって規定されるものである。また、あるタグがプロパティを持つかどうか、また持つ場合にどのようなプロパティを持つかということもDTD次第である。
【００３４】
したがって、暗号化データや公開鍵の参照データを表わすために、どのようなタグやプロパティを使うかということは本発明の主眼ではない。つまり、秘密鍵で暗号化された文字列と、その秘密鍵と対応する公開鍵への参照を示すデータを含むものであれば、上述した以外のタグやプロパティであっても、本発明の意図するところである。
【００３５】
また、もし、改竄されたくないデータが複数ある場合には、ステップS201からステップS205までを必要な回数繰り返す。それらの改竄されたくないデータにおいて、秘密鍵・公開鍵が共通でよければ、ステップS201は最初に一度だけ実行すればよい。よって、その場合にはステップS202からステップS205の部分を必要な回数繰り返せば良い。あるいは、これらの実行手順を実現可能な順序で適当に並び替えた手順であっても、それは本発明の意図するところと同じである。
【００３６】
次に、本実施形態による文書の読み込み処理について、図６を参照して説明する。
【００３７】
まず、ステップS601で、対象となっているXMLファイルを読み込む。読み込まれたXMLファイルは、パーサにより構文チェックおよび解析されて木構造などでで表現され、また例えばDOMなどを介して取りだし、書き換え、追加、削除などの処理が容易に行える。
【００３８】
次に、ステップS602で、このXMLファイルが本実施形態による改竄防止処理されているかどうか判定する。改竄防止処理されているかどうかの判定は、タグもしくはそのプロパティを調べ、暗号化された文字列を示す定義に合致するものを探すことにより容易に判定可能である。
【００３９】
もし、改竄防止処理がなされていない場合、例えば図３に示されるようなXMLデータがその例であるが、この場合は特に何もしない。一方、改竄防止処理されている場合、例えば図４もしくは図５に示されるようなXMLデータを含んでいる場合には、ステップS603で、そのファイルに付加されている公開鍵への参照情報を用いて公開鍵を取得し、ステップS604で、その公開鍵を用いて暗号化されている部分を復号する。
【００４０】
公開鍵暗号化方式の特徴から、この公開鍵を用いて復号されたデータは、その公開鍵に対応する秘密鍵で暗号化されていることがわかるので、その結果、暗号化されていた部分については、秘密鍵を持つ者が作成したデータであることが確認できる。一方で、データ全体としては通常のXMLのデータ形式にのっとったデータであるため、暗号化されている部分以外の部分については本実施形態によるデータ処理装置を使わずとも、公知のXML読み込み装置等で読むことが可能である。
【００４１】
＜第２の実施形態＞
第２の実施形態では、改竄防止されたデータをバイナリデータと接合する場合について説明する。この場合のバイナリデータとは、例えば、画像データ、音声データ、動画像データなどである。
【００４２】
図７は、バイナリデータと接合させる時の処理の流れを示す図である。
【００４３】
まず、ステップS701では、改竄防止されたマークアップデータを生成する。このステップS701における処理は第１の実施形態で説明したので、ここでは説明を省略する。
【００４４】
次に、ステップS702では、この改竄防止されたマークアップデータのチェックサムを算出する。このチェックサムの算出は、公知の手段によるものでかまわない。例えば、マークアップデータのバイト数、文字数、単語数、行数、あるいはタグの数などをチェックサムとして計算すればよい。
【００４５】
更に、ステップS703では、前記改竄防止されたマークアップデータと前記チェックサムとバイナリデータとを接合してデータを出力する。
【００４６】
この時、各データをどの順序で接合するかということ、すなわちデータフォーマットは任意であるが、本実施形態では例えば図９の示すような順序でデータを接合するものとする。
【００４７】
図８は、バイナリデータと接合したマークアップデータを読み込む時の処理の流れを示す流れ図である。
【００４８】
まず、ステップS801で、データ全体を読み込んでメモリ内部に展開する。次にステップS802で、読み込んだデータ中にマークアップデータが存在するかどうかの判定を行う。ステップS802における判定はデータのフォーマットに依存するが、ここでは前述のデータ出力方式による順序（図９）で各データが格納されている場合について説明する。
【００４９】
図９によるデータフォーマットの場合、データの後方から調査することによってマークアップデータが接合されているかどうかが容易に判定できる。すなわち、接合されているマークアップデータは図４ないし図５で説明されるようなテキストデータであるので、後方から、すなわち図４の場合であれば、10行目にある"</SomeXML>"というようなタグがあるかどうかを判定すればよい。
【００５０】
次にステップS803で、バイナリデータよりマークアップデータを取り出す。これは、先の例の場合、既に見つかっている"</SomeXML>"と正しく対応する"<SomeXML>"というタグを探すことにより実現される。続いて、ステップS804で、マークアップデータの検証を行う。すなわち、"<SomeXML>"というタグがあるかどうか、かつ"<SomeXML>"が見つかった場合に"<SomeXML>"から"</SomeXML>"の間のデータがマークアップ記述言語としての書式として正しいかどうか検証する。この書式の検証は公知のXMLパーザ等で行なえばよい。"<SomeXML>"というタグが見つからない、もしくは見つかっても書式が正しくない場合、読み込み処理はエラーとなり終了する。
【００５１】
更に続いてステップS805では、ステップS803で抽出したマークアップ記述言語を調べ、改竄防止処理されていた場合には、改竄防止マークアップデータ読み込み処理を行う。この部分の処理については第１の実施形態で詳細に述べたのでここでは省略する。
【００５２】
次に、ステップS806では、チェックサムを読み込んだデータから取り出す。
【００５３】
更に、ステップS807では、読み込んだ改竄防止マークアップデータよりチェックサムを生成する。最後にステップS808において、ステップS806で抽出したチェックサムと、ステップS807で生成したチェックサムとを比較する。この時、両チェックサムが一致すれば読みこんだデータ中に含まれている、部分的な改竄防止機能を持つマークアップデータは改竄されていないということが、また一致しなかった場合には部分的な改竄防止機能を持つマークアップデータが改竄されているということがわかる。
【００５４】
以上の実施形態においては、マークアップ記述言語としてXMLを用いる場合を説明したが、それに限らず、XMLを用いて定義された他のマークアップ記述言語であってもよいし、SGMLやHTMLを用いてもよい。
【００５５】
尚、本発明は、単一の機器からなる装置に適用しても、複数の機器から構成されるシステムに適用してもよい。また、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【００５６】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているＯＳなどの処理により、上述の機能を実現される場合も含まれる。
【００５７】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、改竄されたくないデータ項目を秘密鍵で暗号化し、公開鍵を参照するための情報を付加することにより、マークアップ記述言語の特定部分についてデータ改竄を防止することができる。
【００５９】
また、特定の部分のみを暗号化するため、その暗号化方式に対応していないアプリケーションにデータを処理させた場合や、何らかの理由により公開鍵を参照できない環境においても、特定の部分以外の暗号化されていない部分を参照・利用することができるという効果もある。
【図面の簡単な説明】
【図１】本発明に係る一実施形態のデータ処理装置の構成を示すブロック図である。
【図２】改竄防止処理のためのデータ保存手順を示すフローチャートである。
【図３】一般的なXMLデータを示す図である。
【図４】改竄防止処理の施されたXMLデータの例を示す図である。
【図５】改竄防止処理の施されたXMLデータの他の例を示す図である。
【図６】改竄防止処理がなされたデータの読み込み方法を示すフローチャートである。
【図７】改竄防止処理がなされ、バイナリデータと接合されたデータの保存方法を示すフローチャートである。
【図８】改竄防止処理がなされ、バイナリデータと接合されたデータの読み込み方法を示すフローチャートである。
【図９】改竄防止処理がなされ、バイナリデータと接合されたデータの構造の一例を示す図である。
【符号の説明】
１００  読込部
１０１  入力部
１０２  蓄積部
１０３  表示部
１０４  ＣＰＵ
１０５  ＲＯＭ
１０６  ＲＡＭ
１０７  バス
【図１】
0004541473.tif 000002
【図２】
0004541473.tif 000003
【図３】
0004541473.tif 000004
【図４】
0004541473.tif 000005
【図５】
0004541473.tif 000006
【図６】
0004541473.tif 000007
【図７】
0004541473.tif 000008
【図８】
0004541473.tif 000009
【図９】
0004541473.tif 000010