(57)【特許請求の範囲】
【請求項１】
実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置であって、
前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段と、
前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段と、
前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データ領域のデータを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段と、
前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データ領域のデータを、それぞれが互いに内包されない関係でデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する統合手段と、
を有しており、
ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるようになっている、
データ処理装置。
【請求項２】
前記統合手段は、
前記ヘッダ認証用データ領域を、前記ヘッダ領域の直後に置くようになっている、
請求項１記載のデータ処理装置。
【請求項３】
ヘッダ領域のデータを生成する前記手段は、
前記ヘッダ領域のデータを特定の大きさで生成するようになっている、
請求項１記載のデータ処理装置。
【請求項４】
実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置にて実行されるデータ処理方法であって、
前記データ処理装置が、
前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する過程と、
前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する過程と、
前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データ領域のデータを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する過程と、
前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データ領域のデータを、それぞれが互いに内包されない関係でデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する過程と、
を含んでおり、
ヘッダ領域のデータを生成する前記過程では、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含める、
データ処理方法。
【請求項５】
コンピュータを、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置として機能させるためのコンピュータプログラムであり、
前記コンピュータを、
前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段、
前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段、
前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データ領域のデータを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段、
前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データ領域のデータを、それぞれが互いに内包されない関係でデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する手段、
として機能させるものとされるとともに、
ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるものとする、
コンピュータプログラム。
【請求項６】
請求項５記載のコンピュータプログラムを記録した記録媒体。
【請求項７】
実質的に通信の対象となるデジタル情報を含むデータ領域と、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域と、前記ヘッダ領域を認証するために使用される、前記ヘッダ領域に含まれるデータ及びこのデータに対して所定の演算を行う第１アルゴリズムに基づいて生成されたヘッダ認証用データを含むヘッダ認証用データ領域と、前記データ領域並びに前記ヘッダ認証用データ領域の認証を行うための、前記データ領域並びに前記ヘッダ認証用データ領域に含まれるデータ及びこのデータに対して所定の演算を行う第２アルゴリズムに基づいて生成された認証用データを含む認証用データ領域と、を互いに内包されない関係で備えるとともに、前記ヘッダ領域には、前記認証用データを用いて前記データ領域の認証を行う際に行われる所定の演算についてのアルゴリズムを特定する情報である第２アルゴリズム情報が含まれるデータ構造を含むデータを受付け、そのデータの認証を行う認証装置であって、
前記ヘッダ領域を生成するときの演算に用いられた前記第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段と、
前記ヘッダ領域に含まれる前記第２アルゴリズム情報に基づいて特定される前記第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段と、
を有する認証装置。
【請求項８】
前記認証手段は、前記ヘッダ認証手段が、前記第１アルゴリズムに基づいて前記ヘッダ領域について演算を行って得た演算結果が前記ヘッダ認証用データと一致しないと判断した場合には前記演算を行わないようになっている、
請求項７記載の認証装置。
【請求項９】
前記ヘッダ認証用データ領域が、前記ヘッダ領域の直後に置かれている場合に、
前記ヘッダ認証手段は、前記ヘッダ領域、及び前記ヘッダ認証用データ領域を受付けた時点で、前記演算を開始するようになっているとともに、
前記ヘッダ認証手段がその演算結果が前記ヘッダ認証用データと一致しないと判断した場合には、当該判断のされたデータの更なる受付けを中止する処理を行う手段を更に備えている、
請求項７記載の認証装置。
【請求項１０】
実質的に通信の対象となるデジタル情報を含むデータ領域と、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域と、前記ヘッダ領域を認証するために使用される、前記ヘッダ領域に含まれるデータ及びこのデータに対して所定の演算を行う第１アルゴリズムに基づいて生成されたヘッダ認証用データを含むヘッダ認証用データ領域と、前記データ領域並びに前記ヘッダ認証用データ領域の認証を行うための、前記データ領域並びに前記ヘッダ認証用データ領域に含まれるデータ及びこのデータに対して所定の演算を行う第２アルゴリズムに基づいて生成された認証用データを含む認証用データ領域と、を互いに内包されない関係で備えるとともに、前記ヘッダ領域には、前記認証用データを用いて前記データ領域の認証を行う際に行われる所定の演算についてのアルゴリズムを特定する情報である第２アルゴリズム情報が含まれるデータ構造を含むデータを受付け、そのデータの認証を行う認証装置にて実行される認証方法であって、
前記認証装置が、
前記ヘッダ領域を生成するときの演算に用いられた前記第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定する過程と、
前記ヘッダ領域に含まれる前記第２アルゴリズム情報に基づいて特定される前記第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する過程と、
を含む認証方法。
【請求項１１】
所定のコンピュータを、実質的に通信の対象となるデジタル情報を含むデータ領域と、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域と、前記ヘッダ領域を認証するために使用される、前記ヘッダ領域に含まれるデータ及びこのデータに対して所定の演算を行う第１アルゴリズムに基づいて生成されたヘッダ認証用データを含むヘッダ認証用データ領域と、前記データ領域並びに前記ヘッダ認証用データ領域の認証を行うための、前記データ領域並びに前記ヘッダ認証用データ領域に含まれるデータ及びこのデータに対して所定の演算を行う第２アルゴリズムに基づいて生成された認証用データを含む認証用データ領域と、を互いに内包されない関係で備えるとともに、前記ヘッダ領域には、前記認証用データを用いて前記データ領域の認証を行う際に行われる所定の演算についてのアルゴリズムを特定する情報である第２アルゴリズム情報が含まれるデータ構造を含むデータを受付け、そのデータの認証を行う認証装置として機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記ヘッダ領域を生成するときの演算に用いられた前記第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段、
前記ヘッダ領域に含まれる前記第２アルゴリズム情報に基づいて特定される前記第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段、
として機能させるためのコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証技術に関する。
【背景技術】
【０００２】
通信（本明細書における『通信』には、複数の装置間でのデータの受渡しの他、一つの装置内での例えばチップ間でのデータの受渡しや、記録媒体と装置の間のデータの受渡しをも含む。）の対象となるデータについて、例えば、そのデータの正当性を検証したり、データの改竄、或いはなりすましを防止するために、認証が行われる場合が多い。
【０００３】
認証は、一般的に以下のようにして行われている。
認証が必要な場合、通信の対象となるデータは、ヘッダ領域と、実質的に通信の対象となるデジタル情報を含むデータ領域と、そのデータ領域の認証を行うための認証用データを含む認証用データ領域と、を含むデータ構造とされている。
このデータ構造の認証用データ領域に含まれる認証用データは、データ領域のデジタル情報に対して所定のアルゴリズムによる演算を行うことによって生成される。また、このデータ構造のヘッダ領域には、認証用データを生成するために使用されたアルゴリズムを特定するための情報や認証用データを生成するためのデータ（そのアルゴリズム自体の場合もある。）が含まれている。また、必要に応じて、データ長やシーケンス番号についての情報が含まれている。
かかるデータ構造を有するデータを受取った装置は、受取ったそのデータのヘッダ領域に含まれる情報から特定されたアルゴリズムによって、データ領域に含まれるデジタル情報に対して演算を行い、その演算結果と、認証用データ領域に含まれる認証用データを比較する。そして、その比較の結果、両者が一致すれば受取ったデータは正当、或いは完全なものであると、両者が一致しなければ受取ったデータは正当でない、或いは完全でないものであると、その装置は判定する。
【０００４】
このような認証のやり方は、広く普及し、一定の効果を挙げている。しかしながら、かかる認証の行い方にも改良すべき点がある。
上述の認証のやり方では、受取ったデータが正当、或いは完全であると判定され認証が成功するための条件として、
（１）受取ったデータのヘッダ領域に含まれるデータ長や、認証用データを生成するために使用されたアルゴリズムを特定するための情報に改竄等がないこと、
（２）データ領域に改竄等がないこと、
（３）受取ったそのデータのヘッダ領域に含まれる情報から特定されたアルゴリズムによって、データ領域に含まれるデジタル情報に対して行った演算に誤りがないこと、
が必要となる。
したがって、上記（１）〜（３）のいずれかの条件が欠けると認証が失敗することになるが、認証が失敗した場合、上記（１）〜（３）のいずれが原因かを特定することができない。
認証を失敗した場合にその原因を特定できると、例えば、上述の（３）が認証を失敗した原因であると特定できると、データの再取得を行う必要がなく、認証を再度行おうとするときの処理を効率よく行うことができる。逆に、認証を失敗した場合にその原因を特定できないと、認証を再度行おうとする場合に認証に必要なすべての処理をやり直す必要が生じるので効率が悪い。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、認証を失敗した場合にその原因を特定できるようにするための技術を提供することを、その課題とする。
【課題を解決するための手段】
【０００６】
かかる課題を解決するため、本願発明者は、以下の第１発明と第２発明を提案する。
第１発明は、実質的に通信の対象となるデジタル情報を含むデータ領域と、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データを含むヘッダ認証用データ領域と、前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データを含む認証用データ領域と、を備えるとともに、前記ヘッダ領域には、前記認証用データを用いて前記データ領域の認証を行う際に行われる所定の演算についてのアルゴリズムを特定する情報である第２アルゴリズム情報が含まれる、通信の対象となるデータのデータ構造である。
第２発明は、実質的に通信の対象となるデジタル情報を含むデータ領域と、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データを含むヘッダ認証用データ領域と、前記データ領域の認証を行うための認証用データを含む認証用データ領域と、を備えるとともに、前記ヘッダ領域には、前記認証用データを用いて前記データ領域の認証を行う際に行われる所定の演算についてのアルゴリズムを特定する情報である第２アルゴリズム情報が含まれる、通信の対象となるデータのデータ構造である。
第１発明、第２発明は共に、ヘッダ認証用データを含むヘッダ認証用データ領域を備えている。ヘッダ認証用データは、ヘッダ領域についての認証を行うものである。また、第１発明、第２発明は共に、認証用データを含む認証用データ領域を備えている。ここで、第１発明における認証用データは、データ領域及びヘッダ認証用データ領域の認証を行うためのものであり、第２発明における認証用データはデータ領域の認証を行うものとされる。
これにより、第１発明では、そのようなデータ構造を有するデータを受取った装置は、ヘッダ領域の認証と、データ領域及びヘッダ認証用データ領域の認証と、を独立して行えるようになる。また、第２発明では、そのようなデータ構造を有するデータを受取った装置は、ヘッダ領域の認証と、データ領域の認証と、を独立して行えるようになる。したがって、このようなデータ構造を有するデータを受取った装置は、仮にそのデータの認証に失敗した場合、ヘッダ領域に改竄等があったのか、その他の領域に改竄等があったのかを特定できることになる。
したがって、この第１発明、第２発明によるデータ構造を用いれば、認証を失敗した場合にその原因を特定できるようになる。これは、例えば、再度認証処理を行う場合の効率を上げるに寄与する。
なお、第１発明、第２発明における第２アルゴリズム情報は、第２アルゴリズムを特定するための情報（例えば、統一的な規格で定められている演算の方法を指定するコード）であってもよいし、第２アルゴリズムそのものであってもよい。
【０００７】
第１発明、第２発明によるデータ構造を持つデータは、ヘッダ領域、データ領域、ヘッダ認証用データ領域、認証用データ領域を有する。このデータは、ヘッダ領域を先頭として一連のものとされる。ヘッダ領域の後に、データ領域、ヘッダ認証用データ領域、認証用データ領域が連ねられるが、これらはどのような順序となっていても構わない。
ヘッダ認証用データ領域は、例えばヘッダ領域の直後に置かれていてもよい。このようにすると、ある装置が、第１発明又は第２発明に係るデータ構造を有するデータを受付ける際に、ヘッダ領域とヘッダ認証用データ領域をまず受付けた段階でヘッダ領域の認証を行ってしまうことができるので便利である。例えば、ヘッダ領域の認証を失敗した場合には、その時点で、そのデータのそれ以降の取得を中止することも可能である。これにより、データ領域内にウィルス等の不正コードが含まれていた場合に、データ領域のデータのロードを未然に中止することができるようになるので、不正コードの認証を行う装置への侵入を防止できるようになる可能性がある。
第１発明、第２発明によるデータ構造を持つデータの前記ヘッダ領域には、前記データ領域のデータの長さについての情報が記録されていてもよい。これは、これらデータを受取った装置が、データ領域の認証を行うに際して、前記データ領域がどこからどこまでかを把握できるようにするためである。第１発明、第２発明によるデータ構造を持つデータの前記ヘッダ領域には、ヘッダ領域のデータの長さについての情報、ヘッダ認証用データ領域のデータの長さについての情報、認証用データ領域のデータの長さについての情報の少なくとも１つが含まれていてもよい。なお、これらデータを受取った装置が、データ領域の認証を行うに際して、前記データ領域がどこからどこまでかを把握できるようにするために、各ヘッダ領域、ヘッダ認証用データ領域、データ領域、認証用データ領域の先頭又は末尾に、そこがデータの区切りであることを示すデータを埋め込んでおいてもよい。
第１発明、第２発明によるデータ構造を持つデータの前記ヘッダ領域には、前記ヘッダ認証用データを用いて前記ヘッダ領域を認証する際に行われる所定の演算についてのアルゴリズムを特定する情報である第１アルゴリズム情報が含まれていてもよい。もっとも、認証を行う装置で用いる第１アルゴリズムが予め定められているのであれば、ヘッダ領域に第１アルゴリズムを特定するための情報を埋め込んでおく必要はない。なお、もし用いるのであれば、第１発明、第２発明における第１アルゴリズム情報は、第１アルゴリズムを特定するための情報（例えば、統一的な規格で定められている演算の方法を指定するコード）であってもよいし、第１アルゴリズムそのものであってもよい。 
【０００８】
第１発明、第２発明に係るデータ構造を有するデータは、例えば、以下のような装置で生成することができる。
第１発明に係るデータ構造を有するデータは、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置であって、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段と、前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段と、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する統合手段と、を有しており、ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるようになっている、データ処理装置で生成することができる。
第２発明に係るデータ構造を有するデータは、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置であって、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段と、前記データ領域の認証を行うための認証用データを、前記データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段と、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する統合手段と、を有しており、ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるようになっている、データ処理装置で生成することができる。
これらデータ処理装置における前記統合手段は、前記ヘッダ認証用データ領域を、前記ヘッダ領域の直後に置くようになっていてもよい。このようなデータ処理装置によって生成されるデータは、ヘッダ認証用データ領域がヘッダ領域の直後に置かれたデータ構造を有するものとなる。この場合、データ処理装置におけるヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータを特定の大きさで生成するようになっていてもよい。このように、ヘッダ領域のデータの長さを固定とする、言い換えれば、ヘッダ領域のデータの長さを予め取決めた長さとすることで、ヘッダ領域のデータの長さの情報をヘッダ領域に含める必要がなくなり、ヘッダ領域のデータの長さの偽造を避けられるようになる。また、こうすれば、データ領域の開始位置を固定できることになるので、データ領域の改竄を防ぎ易くなる。
これらデータ処理装置におけるヘッダ領域のデータを生成する手段は、ヘッダ領域のデータに、前記データ領域のデータの長さについての情報を記録するものとされていてもよい。また、前記ヘッダ領域に、ヘッダ領域のデータの長さについての情報、ヘッダ認証用データ領域のデータの長さについての情報、認証用データ領域のデータの長さについての情報の少なくとも１つを含めるようになっていてもよい。また、上述のデータ処理装置のヘッダ領域、ヘッダ認証用データ領域、データ領域、認証用データ領域を生成する各手段は、それらが生成するデータの先頭又は末尾に、そこがデータの区切りであることを示すデータを埋め込むようになっていてもよい。
また、上述のデータ処理装置のヘッダ領域のデータを生成する手段はいずれも、前記ヘッダ領域に、前記ヘッダ認証用データを用いて前記ヘッダ領域を認証する際に行われる所定の演算についてのアルゴリズムを特定する情報である第１アルゴリズム情報を含めるようになっていてもよい。 
【０００９】
第１発明、第２発明に係るデータ構造を有するデータは、例えば、以下のような方法で生成することができる。
第１発明に係るデータ構造を有するデータは、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置にて実行されるデータ処理方法であって、前記データ処理装置が、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する過程と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する過程と、前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する過程と、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する過程と、を含んでおり、ヘッダ領域のデータを生成する前記過程では、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含める、データ処理方法で生成することができる。
第２発明に係るデータ構造を有するデータは、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置にて実行されるデータ処理方法であって、前記データ処理装置が、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する過程と、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する過程と、前記データ領域の認証を行うための認証用データを、前記データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する過程と、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する過程と、を含んでおり、ヘッダ領域のデータを生成する前記過程では、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含める、 データ処理方法で生成することができる。
【００１０】
第１発明、第２発明に係るデータ構造を有するデータを生成する上述の装置は、専用装置とすることもできるが、例えば、以下のようなコンピュータプログラムを用いれば、汎用のコンピュータにて構成することもできる。
第１発明に係るデータ構造を有するデータを生成する上述の装置は以下のコンピュータプログラムを用いて製造できる。即ち、コンピュータを、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置として機能させるためのコンピュータプログラムであり、前記コンピュータを、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段、前記データ領域、及び前記ヘッダ認証用データ領域の認証を行うための認証用データを、前記データ領域、及び前記ヘッダ認証用データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する手段、として機能させるものとされるとともに、ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるものとする、コンピュータプログラムである。
第２発明に係るデータ構造を有するデータを生成する上述の装置は以下のコンピュータプログラムを用いて製造できる。即ち、コンピュータを、実質的に通信の対象となるデジタル情報を含むデータ領域を有するデータに対して処理を行うデータ処理装置として機能させるためのコンピュータプログラムであり、前記コンピュータを、前記データ領域に付加されるものであり通信の対象となるデータの先頭に配されるヘッダ領域のデータを生成する手段、前記ヘッダ領域を認証するために使用されるヘッダ認証用データ領域のデータを、前記ヘッダ領域に含まれるデータと、このデータに対して所定の演算を行う第１アルゴリズムとに基づいて生成する手段、前記データ領域の認証を行うための認証用データを、前記データ領域に含まれるデータと、このデータに対して所定の演算を行う第２アルゴリズムとに基づいて生成する手段、前記デジタル情報、前記ヘッダ領域のデータ、前記ヘッダ認証用データ領域のデータ、及び前記認証用データを、それぞれがデータ領域、ヘッダ領域、ヘッダ認証用データ領域、認証用データ領域となるように、且つ前記ヘッダ領域がデータの先頭となるように結合する手段、として機能させるものとされるとともに、ヘッダ領域のデータを生成する前記手段は、前記ヘッダ領域のデータに、前記第２アルゴリズムを特定する情報である第２アルゴリズム情報を含めるものとする、コンピュータプログラムである。
以上のコンピュータプログラムは、記録媒体に記録されたものであってもよい。
【００１１】
第１発明、第２発明に係るデータ構造を有するデータは、例えば、以下のような装置で認証することができる。
第１発明に係るデータ構造を有するデータを認証する装置は、第１発明のデータ構造を含むデータを受付け、そのデータの認証を行う認証装置であって、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段と、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段と、を有するものである。
第２発明に係るデータ構造を有するデータを認証する装置は、第２発明のデータ構造を含むデータを受付け、そのデータの認証を行う認証装置であって、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段と、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより前記データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段と、を有するものである。
これら認証装置における前記認証手段は、前記ヘッダ認証手段が、前記第１アルゴリズムに基づいて前記ヘッダ領域について演算を行って得た演算結果が前記ヘッダ認証用データと一致しないと判断した場合には前記演算を行わないようになっていてもよい。
第１発明、第２発明に係るデータ構造を有するデータにおいて、前記ヘッダ認証用データ領域が、前記ヘッダ領域の直後に置かれている場合、前記ヘッダ認証手段は、前記ヘッダ領域、及び前記ヘッダ認証用データ領域を受付けた時点で、前記演算を開始するようになっていてもよい。この場合、前記ヘッダ認証手段がその演算結果が前記ヘッダ認証用データと一致しないと判断した場合には、当該判断のされたデータの更なる受付けを中止する処理を行う手段を更に備えていてもよい。これにより、改竄されたおそれのあるデータをすべて受付けることによる不具合、例えばデータ領域にウィルス等の不正コードが含まれていることにより懸念される不具合を避けられるようになることが期待される。
【００１２】
第１発明、第２発明に係るデータ構造を有するデータは、例えば、以下のような方法で認証することができる。
第１発明に係るデータ構造を有するデータを認証する方法は、第１発明に係るデータ構造を含むデータを受付け、そのデータの認証を行う認証装置にて実行される認証方法であって、前記認証装置が、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定する過程と、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する過程と、を含む認証方法である。
第２発明に係るデータ構造を有するデータを認証する方法は、第２発明に係るデータ構造を含むデータを受付け、そのデータの認証を行う認証装置にて実行される認証方法であって、前記認証装置が、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定する過程と、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより、前記データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する過程と、を含む認証方法である。
【００１３】
第１発明、第２発明に係るデータ構造を有するデータを認証する上述の装置は、専用装置とすることもできるが、例えば、以下のようなコンピュータプログラムを用いれば、汎用のコンピュータにて構成することもできる。
第１発明に係るデータ構造を有するデータを認証する上述の装置は以下のコンピュータプログラムを用いて製造できる。即ち、所定のコンピュータを、第１発明に係るデータ構造を含むデータを受付け、そのデータの認証を行う認証装置として機能させるためのコンピュータプログラムであって、前記コンピュータを、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより、前記データ領域、及び前記ヘッダ認証用データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段、として機能させるためのコンピュータプログラムである。
第２発明に係るデータ構造を有するデータを認証する上述の装置は以下のコンピュータプログラムを用いて製造できる。即ち、所定のコンピュータを、第２発明に係るデータ構造を含むデータを受付け、そのデータの認証を行う認証装置として機能させるためのコンピュータプログラムであって、前記コンピュータを、前記ヘッダ領域を生成するときの演算に用いられた第１アルゴリズムにより、前記ヘッダ領域について演算を行い、その演算結果が前記ヘッダ認証用データと一致するか否かを判定するヘッダ認証手段、前記ヘッダ領域に含まれる第２アルゴリズム情報に基づいて特定される第２アルゴリズムにより、前記データ領域について演算を行い、その演算結果が、前記認証用データと一致するか否かを判定する認証手段、として機能させるためのコンピュータプログラムである。
以上のコンピュータプログラムは、記録媒体に記録されたものであってもよい。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の好ましい第１〜第３実施形態を、図面を参照しながら詳細に説明する。
なお、各実施形態の説明では、共通するものには共通の符号を用いることとし、重複する説明は場合により省略するものとする。
【００１５】
≪第１実施形態≫
第１実施形態では、互いに電子メールのやりとりを行うことのできる複数の端末１が、例えばインターネットであるネットワークＮを介して互いに接続されることで構成された、図１に示した通信システムについて説明する。
各端末１が、本発明におけるデータ処理装置及び認証装置の双方に相当する。各端末１間でやりとりされる電子メールが、本発明に係るデータ構造を有するデータに相当するのであるが、各端末１は、その電子メールについてのデータを生成でき、且つ受取ったそのデータを認証することができるようになっている。
【００１６】
各端末１の構成について説明する。
各端末１は、基本的にどれも同様の構成とされている。端末１は、一般的なパーソナルコンピュータなどの汎用のコンピュータ装置本体１１を備えている。このコンピュータ装置本体１１は、キーボードやマウスなどによって構成される入力装置１２と、画像表示用のディスプレイ装置１３と接続されている。
端末１は、また、例えばＣＤ−ＲＯＭである記録媒体Ｍから所定のデータないしコンピュータプログラムを読み込むためのディスクドライブ１４を備えている。図１に示した記録媒体Ｍには、本発明によるコンピュータプログラムが記録されている。コンピュータ装置本体１１は、ディスクドライブ１４に挿入された記録媒体Ｍからその記録媒体Ｍに記録されていたコンピュータプログラムを読み込み、それをインストールすることで、本発明のデータ処理装置及び認証装置双方の機能を有するものとなる。
このコンピュータプログラムは、それ単体でコンピュータ装置本体１１に本発明のデータ処理装置及び認証装置双方の機能を奏させることができるようなものでもよく、それとコンピュータにインストールされているＯＳや、その他のコンピュータプログラム又はデータとの協働により、コンピュータ装置本体１１に本発明のデータ処理装置及び認証装置双方の機能を奏させることができるようなものとなっていても良い。
【００１７】
コンピュータ装置本体１１には、図２に示したように、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３、インタフェイス２４、及びこれらを接続するバス２５が内蔵されている。
ＣＰＵ２１は、所定のコンピュータプログラムを実行することで、所定の処理を実行するものである。
ＲＯＭ２２は、ＣＰＵ２１を動作させるためのコンピュータプログラム、ディスプレイ装置１３を制御する際に必要なデータなどを記憶する記録媒体である。
ＲＡＭ２３は、ＣＰＵ２１がデータ処理を行うためのワーク領域を提供するものである。
インタフェイス２４は、外部とのデータをやり取りする際の窓口として機能する。インタフェイス２４を通して上述の入力装置１２、ディスクドライブ１４からの入力が行われ、また、インタフェイス２４を通して上述のディスプレイ装置１３への画像データの出力が行われる。また、インタフェイス２４を通じて、ネットワークＮを介しての他の端末１との通信が行われる。
【００１８】
上述のコンピュータプログラムを実行することにより、本発明の端末１が内蔵するＣＰＵ２１は、以下の機能ブロックを形成する。
図３に示したように、生成される機能ブロックには、入出力管理部３１、制御部３２、及びデータ取得部３３が含まれる。なお、この実施形態における端末１は電子メールの生成を行うための機能を有しているがこれについては記載を省略する。
【００１９】
入出力管理部３１が、ネットワークＮを介して行われる端末１間の通信の制御を行うものであり、他の端末１へデータを送る、或いは他の端末１からのデータを受取る機能を有している。
【００２０】
制御部３２は、後述するデータ生成処理及び、データ認証処理を実行する機能を有している。
データ取得部３３は、制御部３２がデータ生成処理を実行するときに、実質的に送信の対象となるデジタル情報を端末１内の他の部分から取得するものである。データ取得部３３は、実質的に送信の対象となる上記デジタル情報を、制御部３２へ、より詳細にはデータ生成部３２１へと送るようになっている。
【００２１】
制御部３２には、データ生成部３２１、データ認証部３２２、及びアルゴリズム保持部３２３がある。
データ生成部３２１は、データ取得部３３から送られたデジタル情報を用いて後述するデータ生成処理を実行することで、送信用のデータを生成する機能を有する。
データ認証部３２２は、入出力管理部３１が他の端末１から受付けたデータに対して後述するデータ認証処理を実行するものである。
アルゴリズム保持部３２３は、データ生成処理又はデータ認証処理を実行する際に、データ生成部３２１又はデータ認証部３２２が使用するアルゴリズムについての情報を記録するものである。アルゴリズム保持部３２３には、それぞれ異なる複数のアルゴリズムが図４に示した如き状態で記録されている。アルゴリズム１、アルゴリズム２、アルゴリズム３、…と示したのがアルゴリズムである。
アルゴリズム保持部３２３には、また、図４に示した如き状態で、特定コードが記録されている。特定コード１、特定コード２、特定コード３、…と示したのが特定コードである。この特定コードは、同じ数字の付されたアルゴリズムと関連付けられており、特定コードが特定されれば、それと同じ数字の付されたアルゴリズムが特定されるという関係にある。なお、特定コードのデータ量はアルゴリズムよりもはるかに小さい。
【００２２】
データ生成部３２１は、図５に示すようなものである。
データ生成部３２１は、ヘッダ生成部３２１Ａ、ヘッダ認証用データ生成部３２１Ｂ、認証用データ生成部３２１Ｃ、データ統合部３２１Ｄを備えている。
ヘッダ生成部３２１Ａは、データ取得部３３からデータ生成部３２１が受付けたデジタル情報を送信する際に、このデジタル情報そのものについての領域であるデータ領域に対して付加されるヘッダについてのデータを生成するものである。ヘッダ領域のデータには、その端末１についての情報や、送信先の端末１の宛先、上述の特定コードなどが含まれているが、これについては後述する。このヘッダについてのデータは、後にヘッダ領域を構成する。
ヘッダ認証用データ生成部３２１Ｂは、生成されたデータを受取った端末１がヘッダ領域の認証処理を実行する際に必要とされるヘッダ認証用データを生成する機能を有する。ヘッダ認証用データは、後にヘッダ認証用データ領域を構成する。
認証用データ生成部３２１Ｃは、生成されたデータを受取った端末１がヘッダ認証用データ領域及びデータ領域の認証処理を実行する際に必要とされる認証用データを生成する。この認証用データは、後に認証用データ領域を構成する。
データ統合部３２１Ｄは、データ取得部３３から受付けたデジタル情報に、ヘッダ生成部３２１Ａが生成したヘッダのデータと、ヘッダ認証用データ生成部３２１Ｂが生成したヘッダ認証用データと、認証用データ生成部３２１Ｃが生成した認証用データとを結合させ、一連のデータとするものである。このデータは、デジタル情報がデータ領域を、ヘッダのデータがヘッダ領域を、ヘッダ認証用データがヘッダ認証用データ領域を、認証用データが認証用データ領域をそれぞれなす。
生成されたこのデータは、入出力管理部３１に送られ、ヘッダ領域に書き込まれた宛先が示す他の端末１に送られることになる。
【００２３】
データ認証部３２２は、図６に示すようなものである。
データ認証部３２２には、ヘッダ認証部３２２Ａ、認証部３２２Ｂ、中止処理部３２２Ｃ、及び一時記録部３２２Ｄがある。
一時記録部３２２Ｄは、他の端末１から送られた認証の対象となるデータを、入出力管理部３１から受取り、それを一時的に記録する機能を有する。
ヘッダ認証部３２２Ａは、ヘッダ領域の正当性を認証する機能を有している。ヘッダ認証部３２２Ａは、一時記録部３２２Ｄに記録されたデータのうちのヘッダ領域と、ヘッダ認証用データ領域のデータを読み出して、かかる認証を行う。
認証部３２２Ｂは、データ領域及びヘッダ認証用データ領域の正当性を認証する機能を有している。認証部３２２Ｂは、一時記録部３２２Ｄに記録されたデータのうちのヘッダ領域と、ヘッダ認証用データ領域と、データ領域と、認証用データ領域のデータを読み出して、かかる認証を行う。
中止処理部３２２Ｃは、ヘッダ認証部３２２Ａが、ヘッダ領域が正当でないものであると判断したときに、そのヘッダ領域を有するデータを含んでいたデータのそれ以上の受取りを中止する処理を行うための決定を行う機能を有する。中止処理部３２２Ｃがかかる決定を行った場合、その情報は入出力管理部３１へと送られる。この情報を受取った入出力管理部３１は、正当性が否定されたヘッダ領域を有するデータがまだ受信中だった場合、そのデータのそれ以上の受取りを中止する。
【００２４】
次に、この通信システムにおける各端末１の動作について説明する。
上述したように、この通信システムでは、端末１間で電子メールのやり取りが行われる。そのときに、送信側の端末１では、電子メールのデータの生成（データ生成処理）が、受信側の端末１では、電子メールのデータの認証（データ認証処理）が行われる。
以下、データ生成処理と、データ認証処理について説明する。
【００２５】
〔データ生成処理〕
データ生成処理時にデータ生成部３２１で実行される処理のフローを図７に示す。
データ生成処理は、この実施形態では電子メールの送信時に行われる。
使用者が端末１の入力装置１２を操作して電子メールの内容を生成したときにその電子メールの内容についてのデジタル情報が生成される。これが、実質的に送信の対象となるデジタル情報となる。
【００２６】
まず、実質的に送信の対象となるこのデジタル情報を、これを取得したデータ取得部３３からデータ生成部３２１が取得する（Ｓ４０１）。このデジタル情報は、データ領域と等しい。
【００２７】
次いで、ヘッダ生成部３２１Ａがヘッダのデータを生成する（Ｓ４０２）。後にヘッダ領域を構成するこのヘッダのデータには、その端末１についての情報や、送信先の端末１の宛先が含まれる。また、ヘッダのデータには、認証用データのデータの長さについての情報と、後述する認証用データ生成の際に使用されるアルゴリズムと関連付けられた特定コードが含まれる。この実施形態では、ヘッダ生成部３２１Ａが、ヘッダ認証用データ生成の際に使用されるアルゴリズムと、認証用データ生成の際に使用されるアルゴリズムを、アルゴリズム保持部３２３の中に記録されたものの中から選択し、認証用データ生成の際に使用されるアルゴリズムと関連付けられた特定コードをヘッダ領域の中に含める。この実施形態では、認証用データ生成の際に使用されるアルゴリズムと対応する特定コードとして特定コード２が、それぞれヘッダのデータに含まれるものとする。なお、この実施形態では、ヘッダ認証用データ生成の際に、常にアルゴリズム１が使用されることに決められている。この情報は、各端末１で共有されている。
なお、ヘッダ生成部３２１Ａは、ヘッダ認証用データ生成の際に使用すべきアルゴリズムがどれかということについての情報をヘッダ認証用データ生成部３２１Ｂに、また、認証用データ生成の際に使用されるアルゴリズムがどれかということについての情報を認証用データ生成部３２１Ｃにそれぞれ送る。
この実施形態では、生成されたヘッダ領域の大きさ（ヘッダのデータの大きさ）は予め定められた一定の大きさとなるようになっている。なお、ヘッダ領域の大きさがどのくらいかということについての情報は、この実施形態では、各端末１で共有されている。
また、ヘッダ生成部３２１Ａは、生成したヘッダ領域のデータを、ヘッダ認証用データ生成部３２１Ｂ及びデータ統合部３２１Ｄに送る。
【００２８】
次に、ヘッダ認証用データ生成部３２１Ｂが、ヘッダ認証用データを生成する（Ｓ４０３）。
ヘッダ認証用データ生成部３２１Ｂは、ヘッダ認証用データを生成するに先立って、ヘッダ生成部３２１Ａから、ヘッダ認証用データ生成の際に使用すべきアルゴリズムがどれかということについての情報と、生成されたヘッダのデータとを受取っている。これらに基づいて、ヘッダ認証用データ生成部３２１Ｂは、ヘッダ認証用データを生成するのである。
より詳細にいうと、ヘッダ認証用データ生成部３２１Ｃは、受取った上述の特定コードによって特定されるアルゴリズム（この実施形態では、アルゴリズム１）をアルゴリズム保持部３２３から読み出し、このアルゴリズムで、先に受取った上述のヘッダ領域に対して演算を行うことで、その演算結果としてのヘッダ認証用データを生成する。このヘッダ認証用データは、認証用データ生成部３２１Ｃ、及びデータ統合部３２１Ｄへと送られる。
アルゴリズムが特定する演算はどのようなものでも構わない。ＣＢＣ−ＭＡＣ（Cipher Block Chaining - Message Authentication Code：メッセージ認証子生成方式）などの公知の方法を使うこともできるし、新規な演算方式を用いることもできる。
この実施形態では、図８に示したようにして、演算を行う。
この実施形態では、まず、図８（Ａ）に示したヘッダのデータを、図８（Ｂ）に示したようにｎ個に等分割する。次いで、図８（Ｃ）に示したように、ヘッダのデータの前方側から、分割されたデータに特定の演算（図中で「Ｅ」と記載：通常は、ＤＥＳやＡＥＳなどのブロック暗号が用いられる。）を行い、その結果を次の分割されたデータに加えて（図中で「＋」と記載）からまた特定の演算を行い、その結果を次の分割されたデータに加えてからまた特定の演算を行い…、とこれをｎ番目のデータまで繰り返す。最後に得られたのが、ヘッダ認証用データとなる。
【００２９】
次に、認証用データ生成部３２１Ｃが、認証用データを生成する（Ｓ４０４）。
認証用データ生成部３２１Ｃは、認証用データを生成するに先立って、ヘッダ生成部３２１Ａから、認証用データ生成の際に使用すべきアルゴリズムがどれかということについての情報を受取っている。また、ヘッダ認証用データ生成部３２１Ｂから、生成されたヘッダ認証用データを、また、データ取得部３３からデータ領域とするデジタル情報を受取っている。
これらに基づいて、認証用データ生成部３２１Ｃは、認証用データ領域を生成する。
より詳細にいうと、認証用データ生成部３２１Ｃは、受取った上述の特定コードによって特定されるアルゴリズム（この実施形態では、アルゴリズム２）をアルゴリズム保持部３２３から読み出し、このアルゴリズムで、先に受取った上述のヘッダ認証用データとデジタル情報を足したものに対して演算を行うことで、その演算結果としての認証用データを生成する。
アルゴリズムが特定する演算は、上述の場合と同様どのようなものでも構わない。
生成された認証用データは、データ統合部３２１Ｄに送られる。
【００３０】
次に、データ統合部３２１Ｄが、データの統合を行う（Ｓ４０５）。
データ統合部３２１Ｄは、データ取得部３３からデジタル情報を、ヘッダ生成部３２１Ａからヘッダのデータを、ヘッダ認証用データ生成部３２１Ｂからヘッダ認証用データを、認証用データ生成部３２１Ｃから認証用データをそれぞれ受付けている。
データ統合部３２１Ｄは、これらを統合して一連のデータとする。これが、送信用のデータとなる。デジタル情報がデータ領域に、ヘッダの情報がヘッダ領域に、ヘッダ認証用データがヘッダ認証用データ領域に、認証用データが認証用データ領域をなす。この送信用のデータは、図９に示したようなものであり、先頭から、ヘッダ領域Ｄ１、ヘッダ認証用データ領域Ｄ２、データ領域Ｄ３、認証用データ領域Ｄ４を有するものとなっている。
このデータは、入出力管理部３１に送られ、ネットワークＮを介して他の端末１へ送られる。
【００３１】
〔データ認証処理〕
データ認証処理時にデータ認証部３２２で実行される処理のフローを図１０に示す。
データ認証処理は、この実施形態では電子メールの受信時に行われる。なお、説明の便宜上、受信される電子メールは、上述した〔データ生成処理〕の項で説明したデータであるものとする。
【００３２】
端末１が、他の端末１から電子メールを受信したとき、その電子メールについてのデータは、入出力管理部３１を介してデータ認証部３２２に送られる。これにより、データ認証部３２２がデータの受付けを開始する（Ｓ５０１）。
【００３３】
受付けの開始された上記データは、一時記録部３２２Ｄに一旦記録される。データは、図９に示されたデータ構造の左側から順に受付けられ、図９に示されたデータ構造の左側から順に一時記録部３２２Ｄに記録される。
【００３４】
次いで、ヘッダ認証部３２２Ａがヘッダの認証を行う。ヘッダの認証は、データがすべて受付けられてから行われてもよいが、この実施形態ではデータの受付けがすべて行われる前に、より詳細にはヘッダ領域Ｄ１と、ヘッダ認証用データ領域Ｄ２とが受付けられた（一時記録部３２２Ｄに記録された）時点で開始される。
したがって、この実施形態のヘッダ認証部３２２Ａは、ヘッダ領域Ｄ１と、ヘッダ認証用データ領域Ｄ２とが受付けられたか否か、言い換えればヘッダ認証用データ領域Ｄ２の一時記録部３２２Ｄへの記録が終わったか否かを監視している（Ｓ５０２）。
ヘッダ認証用データ領域Ｄ２の一時記録部３２２Ｄへの記録が終わったのであれば（Ｓ５０２：ＹＥＳ）、ヘッダ認証部３２２Ａはヘッダの認証を開始する（Ｓ５０３）。ヘッダ認証用データ領域Ｄ２の一時記録部３２２Ｄへの記録が終わっていないのであれば（Ｓ５０２：ＮＯ）、ヘッダ認証部３２２Ａは、上述の監視を継続する。
【００３５】
ヘッダ認証は以下のように行われる。
ヘッダ認証部３２２Ａは、アルゴリズム保持部３２３から、ヘッダ領域の認証を行うために使用されるアルゴリズムとして、アルゴリズム１を読み出す。上述するように、各端末１は、ヘッダ認証用データを生成するアルゴリズムとしてアルゴリズム１を使うべしという情報を共有しているが、それと同時にヘッダ領域についてのヘッダ認証にアルゴリズム１を使用すべきという情報も共有している。ヘッダ認証部３２２Ａは、また、一時記録部３２２Ｄから、ヘッダ領域Ｄ１と、ヘッダ認証用データ領域Ｄ２を読み出す。
以上の読み出しが終わったら、ヘッダ認証部３２２Ａは、アルゴリズム１によって特定される演算を、ヘッダ領域に対して行う。この演算は、〔データ生成処理〕の項で説明したヘッダ認証用データの生成の場合と同様に行われる。ヘッダ領域Ｄ１に改竄がなく、また、データの欠落が生じていなければ、ヘッダ領域に対して行われた演算の結果は、ヘッダ認証用データと一致する。
ヘッダ認証部３２２Ａはかかる一致をみることで、ヘッダ領域Ｄ１が正当か否かを判断する（Ｓ５０４）。
【００３６】
ヘッダ認証部３２２Ａがヘッダ領域Ｄ１が正当でないと判断した場合（Ｓ５０４：ＮＯ）、ヘッダ認証部３２２Ａが、中止処理部３２２Ｃにその旨を伝える。これを受けて、中止処理部３２２Ｃは中止処理を行う（Ｓ５０５）。中止処理とは、ヘッダ認証を失敗したヘッダ領域Ｄ１を含むデータのそれ以上の受付けを中止する処理である。中止処理部３２２Ｃは、かかる中止処理を実行する旨を入出力管理部３１に伝える。入出力管理部３１は、そのデータの受付けがまだ終了していなければ、その時点でデータのそれ以上の受付を中止する。ヘッダ領域Ｄ１が正当でない場合には、データ領域Ｄ３に不正コードが含まれているおそれが強い。このようにして、データの受付けを中止できれば、その端末１は、不正コードを受け取るによる不具合を避けられるかもしれない。
ヘッダ認証部３２２Ａがヘッダ領域Ｄ１が正当でないと判断した場合（Ｓ５０４：ＮＯ）、その情報は認証部３２２Ｂにも送られる。認証部３２２Ｂは、その認証失敗の理由をヘッダ領域Ｄ１の認証失敗によるものであると把握する（Ｓ５０６）。
【００３７】
ヘッダ認証部３２２Ａがヘッダ領域Ｄ１が正当であると判断した場合（Ｓ５０４：ＹＥＳ）、ヘッダ認証部３２２Ａが、認証部３２２Ｂにその旨を伝える。
これにより、認証部３２２Ｂが、ヘッダ認証用データ領域Ｄ２と、データ領域Ｄ３の認証を行う。
この実施形態では、認証部３２２Ｂは、データの受付けがすべて終了した、言い換えれば認証用データ領域Ｄ４が受付けられた（一時記録部３２２Ｄに記録された）時点で開始される。
したがって、この実施形態の認証部３２２Ｂは、データの受付けがすべて終わったか否か、言い換えれば認証用データ領域Ｄ４の一時記録部３２２Ｄへの記録が終わったか否かを監視している（Ｓ５０７）。
認証用データ領域Ｄ４の一時記録部３２２Ｄへの記録が終わったのであれば（Ｓ５０７：ＹＥＳ）、認証部３２２Ｂはヘッダの認証を開始する（Ｓ５０８）。認証用データ領域Ｄ４の一時記録部３２２Ｄへの記録が終わっていないのであれば（Ｓ５０７：ＮＯ）、認証部３２２Ｂは、上述の監視を継続する。
【００３８】
認証部３２２Ｂは、認証を行うに先立って、一時記録部３２２Ｄから、ヘッダ認証用データ領域Ｄ２と、データ領域Ｄ３と、認証用データ領域Ｄ４を読み出す。認証部３２２Ｂは、また、ヘッダ領域Ｄ１から、認証を行うために認証部３２２Ｂが使用するアルゴリズムを特定するための情報として特定コードを読み出す。特定コードは、上述したように、アルゴリズム２と関連付けられたものである。
以上の読み出しが終わったら、認証部３２２Ｂは、特定コードと関連付けられたアルゴリズム２によって特定される演算を、ヘッダ認証用データ領域Ｄ２とデータ領域Ｄ３に対して行う。この演算にあたっては、アルゴリズム保持部３２３から、特定コードに対応したアルゴリズムの読み出しが行われる。この演算は、〔データ生成処理〕の項で説明した認証用データの生成の場合と同様に行われる。ヘッダ認証用データ領域Ｄ２やデータ領域Ｄ３に改竄がなく、また、データの欠落が生じていなければ、この演算の結果は、認証用データと一致する。
認証部３２２Ｂはかかる一致をみることで、ヘッダ認証用データ領域Ｄ２と、データ領域Ｄ３が正当か否かを判断する（Ｓ５０９）。
【００３９】
認証部３２２Ｂがヘッダ認証用データ領域Ｄ２と、データ領域Ｄ３を正当でないと判断した場合（Ｓ５０９：ＮＯ）、認証部３２２Ｂは、その認証失敗の理由を、ヘッダ認証用データ領域Ｄ２、又はデータ領域Ｄ３が正当でないからであると把握する（Ｓ５０６）。
認証部３２２Ｂがヘッダ認証用データ領域Ｄ２と、データ領域Ｄ３を正当であると判断した場合（Ｓ５０９：ＹＥＳ）、認証部３２２Ｂは、そのデータの認証が完全に成功したものとする（Ｓ５１０）。
【００４０】
以上のようにして、データ認証処理は終了する。
上述したように、この実施形態では、認証部３２２Ｂが、認証失敗の理由を把握する。これは、データ認証処理を再度行う場合に利用できる。また、認証失敗のパターンを統計的に調べるためのデータとしても有用である。
【００４１】
なお、第１実施形態では、端末１が本発明のデータ処理装置と認証装置の機能を両方とも持つものとされていた。
ただし、端末１は、データ処理装置の機能、認証装置の機能の一方のみを持つようにすることができる。その場合、データ処理装置としてのみ機能する端末１は、上述の端末１が備えた機能ブロックのうちデータ認証部３２２を持たず、認証装置としてのみ機能する端末１は、上述の端末１が備えた機能ブロックのうちデータ生成部３２１を持たない。
【００４２】
≪第２実施形態≫
第２実施形態における端末１も、第１実施形態の端末１とほぼ同様のものとされる。第２実施形態でも端末１は、互いに電子メールのやりとりを行うことのできるものとされ、複数の端末１が、例えばインターネットであるネットワークＮを介して互いに接続されることで、図１に示した通信システムを構成する。
第２実施形態における端末１は、本発明におけるデータ処理装置及び認証装置の双方に相当する。各端末１間でやりとりされる電子メールが、本発明に係るデータ構造を有するデータに相当するのであるが、各端末１は、その電子メールについてのデータを生成でき、且つ受取ったそのデータを認証することができるようになっている。
【００４３】
各端末１の構成は、第１実施形態の場合と同様である。第２実施形態の端末１も、図２に示された如きハードウエア構成を備える。第２実施形態の端末１も、所定の記録媒体Ｍからコンピュータプログラムを読み込むことで、本発明のデータ処理装置及び認証装置双方の機能を奏するものとなる。
【００４４】
上述のコンピュータプログラムを実行することにより、第２実施形態の端末１が内蔵するＣＰＵ２１は、第１実施形態の場合と同様の機能ブロックを形成する。
生成される機能ブロックは、第２実施形態の場合も図３に示したようなものとなる。
【００４５】
第２実施形態で第１実施形態と異なるのは、認証用データ生成部３２１Ｃ及び認証部３２２Ｂの機能である。
以下、第２実施形態の端末１内に生成される認証用データ生成部３２１Ｃ及び認証部３２２Ｂの機能について説明する。
【００４６】
第２実施形態の端末１内に生成される、認証用データ生成部３２１Ｃは、第１実施形態の場合と異なり、デジタル情報に基づいて認証用データを生成する。
第２実施形態の端末１における認証用データ生成部３２１Ｃは、認証用データを生成するに先立って、ヘッダ生成部３２１Ａから、認証用データ生成の際に使用すべきアルゴリズムがどれかということについての情報を読み出す。また、この認証用データ生成部３２１Ｃは、データ取得部３３から、データ領域についてのデジタル情報を受取っている。これらに基づいて、認証用データ生成部３２１Ｃは、認証用データを生成するのである。
より詳細にいうと、認証用データ生成部３２１Ｃは、受取った上述の特定コードによって特定されるアルゴリズムをアルゴリズム保持部３２３から読み出し、このアルゴリズムで、先に受取った上述のデータ領域に対して演算を行うことで、その演算結果としての認証用データを生成する。
【００４７】
次に、第２実施形態の端末１内に生成される、認証部３２２Ｂについて説明する。
第２実施形態における認証部３２２Ｂは、第１実施形態の場合と異なり、受取ったデータのうち、ヘッダ認証用データ領域とデータ領域についてではなく、データ領域についての認証を行う。
第２実施形態における認証部３２２Ｂは、認証を行うに先立って、ヘッダ領域から、データ領域Ｄ３の認証を行うために認証部３２２Ｂが使用するアルゴリズムを特定するための情報としての特定コードを読み出す。認証部３２２Ｂは、また、一時記録部３２２Ｄから、データ領域Ｄ３と、認証用データ領域Ｄ４を読み出す。
以上の読み出しが終わったら、認証部３２２Ｂは、特定コードと関連付けられたアルゴリズムによって特定される演算を、データ領域に対して行う。この演算にあたっては、アルゴリズム保持部３２３から、特定コードに対応したアルゴリズムの読み出しが行われる。データ領域Ｄ３に改竄がなく、また、データの欠落が生じていなければ、この演算の結果は、認証用データと一致する。
認証部３２２Ｂはかかる一致をみることで、データ領域Ｄ３が正当か否かを判断する。
【００４８】
なお、第２実施形態の端末１で実行されるデータ生成処理、データ認証処理における全体的な処理フローは、第１実施形態の場合と同様である。
【００４９】
≪第３実施形態≫
第３実施形態における端末１も、第１実施形態の端末１とほぼ同様のものとされる。第３実施形態でも端末１は、互いに電子メールのやりとりを行うことのできるものとされ、複数の端末１が、例えばインターネットであるネットワークＮを介して互いに接続されることで、図１に示した通信システムを構成する。
第３実施形態における端末１は、本発明におけるデータ処理装置及び認証装置の双方に相当する。各端末１間でやりとりされる電子メールが、本発明に係るデータ構造を有するデータに相当するのであるが、各端末１は、その電子メールについてのデータを生成でき、且つ受取ったそのデータを認証することができるようになっている。
【００５０】
各端末１の構成は、第１実施形態の場合と同様である。第３実施形態の端末１も、図２に示された如きハードウエア構成を備える。第３実施形態の端末１も、所定の記録媒体Ｍからコンピュータプログラムを読み込むことで、本発明のデータ処理装置及び認証装置双方の機能を奏するものとなる。
【００５１】
上述のコンピュータプログラムを実行することにより、第３実施形態の端末１が内蔵するＣＰＵ２１は、第１実施形態の場合と同様の機能ブロックを形成する。
生成される機能ブロックは、第３実施形態の場合も図３に示したようなものとなる。
【００５２】
第３実施形態で第１実施形態と異なるのは、第３実施形態における各端末１は、ヘッダ認証用データを生成するアルゴリズムとしてどのアルゴリズムを使うべきか、また、ヘッダ領域についてのヘッダ認証にアルゴリズムを使用すべきかという情報を共有していない点にある。
この相違により、第３実施形態における端末１は、ヘッダ生成部３２１Ａ及びヘッダ認証部３２２Ａの機能が、第１実施形態における端末１とは異なるものとなっている。
以下、第３実施形態の端末１内に生成されるヘッダ生成部３２１Ａ及びヘッダ認証部３２２Ａの機能について説明する。
【００５３】
第３実施形態の端末１内に生成されるヘッダ生成部３２１Ａは、ヘッダ領域のデータに、上述した情報に加え、ヘッダ認証用データを生成するためのアルゴリズムを特定するための特定コードを含めるものとなっている。
他方、第３実施形態の端末１内に生成されるヘッダ認証部３２２Ａは、ヘッダ認証を行う際に、ヘッダ領域の認証を行うために使用するアルゴリズムを特定する上述の特定コードをヘッダ領域のデータから読み出すとともに、この特定コードによって特定されるアルゴリズムをアルゴリズム保持部３２３から読み出し、このアルゴリズムによって特定される演算をヘッダ領域のデータに対して行うようになっている。
【００５４】
なお、第３実施形態の端末１で実行されるデータ生成処理、データ認証処理における全体的な処理フローは、第１実施形態の場合と同様である。
【図面の簡単な説明】
【００５５】
【図１】第１実施形態における通信システムの全体構成を概略で示す図。
【図２】図１に示した端末のハードウエア構成を概略で示す図。
【図３】図１に示した端末内に生成される機能ブロックを示すブロック図。
【図４】図３に示したアルゴリズム保持部に記録されるデータの内容を概念的に示す図。
【図５】図３に示したデータ生成部の内部を示す機能ブロック図。
【図６】図３に示したデータ認証部の内部を示す機能ブロック図。
【図７】図１に示した端末のデータ生成部がデータ生成処理を実行する場合の処理フローを示した流れ図。
【図８】ヘッダ認証用データの生成方法の一例を概念的に示す図。
【図９】端末が生成したデータのデータ構造を概念的に示す図。
【図１０】図１に示した端末のデータ認証部がデータ認証処理を実行する場合の処理フローを示した流れ図。
【符号の説明】
【００５６】
１ 端末
３１ 入出力管理部
３２ 制御部
３３ データ取得部
３２１ データ生成部 
３２２ データ認証部
３２３ アルゴリズム保持部
【図１】
0004749680.tif 000002
【図２】
0004749680.tif 000003
【図３】
0004749680.tif 000004
【図４】
0004749680.tif 000005
【図５】
0004749680.tif 000006
【図６】
0004749680.tif 000007
【図７】
0004749680.tif 000008
【図８】
0004749680.tif 000009
【図９】
0004749680.tif 000010
【図１０】
0004749680.tif 000011