(57)【要約】【課題】入力デジタルデータに対するハッシュデータを生成する際に、安全性を保持しながら、高速にかつ利用メモリ量を抑えることができるようにする。【解決手段】デジタルデータＭ２０１を入力するデータ入力手段と、上記データ入力手段で得られたデジタルデータを圧縮するデータ圧縮モジュール２０３と、上記データ圧縮モジュール２０３で得られた圧縮データを、一方向性ハッシュ関数によって変換してハッシュデータＨ（Ｍ）２０６を生成するハッシュデータ生成モジュール２０４と、上記ハッシュデータ生成モジュール２０４で生成されたハッシュデータＨ（Ｍ）２０６を出力するハッシュデータ出力手段とを設けることを特徴とする。【選択図】      図２
2004184516.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデジタルデータを圧縮処理して圧縮デジタルデータを生成するとともに、上記圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するようにしたことを特徴とするデジタルデータ送信端末。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタルデータ送信端末に関し、特に、入力デジタルデータに対するハッシュデータを生成するために用いて好適なものである。
【０００２】
【従来の技術】
文書や画像データがインターネットなどの広域ネットワーク網を通して流通する場合、デジタルデータは改変が容易であるため、第三者によってデータが改ざんされる危険性がある。
【０００３】
そこで、送信されてきたデータが改ざんされたかどうかを受信者が検出するために、改ざん防止用の付加データを検証する方式として（イ）デジタル署名、（ロ）メッセージ認証などの方式が提案されている。
【０００４】
［（イ）デジタル署名］
デジタル署名データ生成にはハッシュ関数と公開鍵暗号とが用いられる。これは、秘密鍵をＫｓ、公開鍵をＫｐとすれば、送信者は、入力データＭにハッシュ処理を施して固定長データＨ（Ｍ）を算出した後、秘密鍵Ｋｓで上記固定長データＨ（Ｍ）を変換してデジタル署名データＳを作成し、その後、デジタル署名データＳと入力データＭとを受信者に送信する。
【０００５】
受信者は、上記デジタル署名データＳを上記公開鍵Ｋｐで変換（復号）したデータと、入力データＭにハッシュ処理を施したデータとが一致するかどうか検証する。そして、上記検証の結果が一致していなければ、データＭの改ざんが行われたことを検出できる。
【０００６】
［ハッシュ関数］
次に、ハッシュ関数について説明する。ハッシュ関数はデジタル署名データの生成を高速化するため等に用いられる。ハッシュ関数は任意の長さのデータＭに処理を行い、一定の長さの出力データを生成する機能を持っている。ここで、出力Ｈ（Ｍ）を平文データＭのハッシュデータと呼ぶ。
【０００７】
特に、一方向性ハッシュ関数は、データＭ’を与えた時、Ｈ（Ｍ’）＝Ｈ（Ｍ）となる平文データＭ’の算出が計算量的に困難であるという性質を持っている。上記一方向性ハッシュ関数としてはＭＤ２、ＭＤ５、ＳＨＡ−１などの標準的なアルゴリズムが存在しており、これらのアルゴリズムは公開されている。
【０００８】
［公開鍵暗号］
次に、公開鍵暗号について説明する。公開鍵暗号は２つの異なる鍵を利用し、片方の鍵で暗号処理したデータは、もう片方の鍵でしか復号処理できないという性質を持っている。上記２つの鍵のうち、一方の鍵は公開鍵と呼ばれ、広く公開するようにしている。また、もう片方の鍵は秘密鍵と呼ばれ、本人のみが持つ鍵である。
【０００９】
［（ロ）メッセージ認証］
メッセージ認証データ生成にはハッシュ関数と共有鍵暗号とが用いられる。送信者と受信者は共有鍵Ｋを共有しておく。そして、送信者は入力データＭに対してハッシュ処理を施して固定長データＨ（Ｍ）を算出する。次に、上記共有鍵Ｋで上記固定長データＨ（Ｍ）を変換してメッセージ認証データＳを作成する。その後、上記メッセージ認証データＳと入力データＭとを受信者に送信する。
【００１０】
受信者は、上記メッセージ認証データＳを上記共有鍵Ｋで復号したデータと、入力データＭにハッシュ処理を施したデータとが一致するかどうか検証する。この検証の結果が一致していなければ、データＭの改ざんが行われたことを検出できる。
【００１１】
上述した（イ）デジタル署名及び（ロ）メッセージ認証においては、暗号処理を行う前に入力データＭに対して固定長データを算出する。この場合、一般には一方向性ハッシュ関数が利用されていたが、サンプリング方式と呼ばれる方法によって固定長データを算出することもある。上記サンプリング方式は、入力データのうち、ある決められた法則に基づいて、一部のデータだけを抽出する方法である。この方法は、特に複雑な演算を行わないため、高速にサンプリングデータを生成することができるというメリットがある。
【００１２】
【発明が解決しようとする課題】
上記サンプリング方式では、入力データの一部分からのみデータを抽出するため、一方向性という性質を持ち合わせることができないという問題点があった。つまり、サンプリング位置が既知の場合、サンプリングデータを同じにするように入力データを改ざんできるという問題点があった。
【００１３】
一方、一方向性ハッシュ関数を用いて暗号処理を行う方式の場合は、処理時間が入力データ長に比例して増加する特徴を持つため、入力データ長が大きい場合には膨大な計算量が必要となる。特に、ＣＰＵ（中央演算処理装置）の処理能力が小さい場合には、現実的な時間内で処理を終わらせることができない問題もあった。
【００１４】
本発明は上述の問題点にかんがみ、入力データに対するハッシュデータを生成する際に、安全性を保持し、高速にかつ利用メモリ量を抑えることができるようにすることを目的とする。
【００１５】
【課題を解決するための手段】
本発明のデジタルデータ送信端末は、入力されたデジタルデータを圧縮処理して圧縮デジタルデータを生成するとともに、上記圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するようにしたことを特徴としている。
【００１６】
【発明の実施の形態】
以下、本発明のデジタルデータ送信端末を用いたデジタルデータ変換装置の実施の形態について図面を用いて説明する。
【００１７】
［第１の実施の形態］
本実施の形態のデジタルデータ変換装置は、例えば、図１に示すような情報処理装置（ホストコンピュータ）１００に適用される。
本実施の形態の情報処理装置１００は、パーソナルコンピュータ等のコンピュータにより構成されており、デジタルデータ変換機能を実現する。
【００１８】
すなわち、情報処理装置１００は、上記図１に示すように、公衆回線等のモデム１１８、表示部としてのモニタ１０２、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、ＨＤ（ハードディスク）１０６、ネットワークのネットワーク接続部１０７、ＣＤ１０８、ＦＤ（フレキシブルディスク）１０９、ＤＶＤ（デジタル・ビデオ・ディスク、またはＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）１１０、プリンタ１１５のインターフェース（Ｉ／Ｆ）１１７、及び操作部としてのマウス１１２やキーボード１１３等のインターフェース（Ｉ／Ｆ）１１１が、バス１１６を介して互いに通信可能に接続されて構成されている。
【００１９】
マウス１１２及びキーボード１１３は、情報処理装置１００に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報（操作情報）は、インターフェース１１１を介して、情報処理装置１００内に取り込まれる。
【００２０】
情報処理装置１００での各種情報（文字情報や画像情報等）は、プリンタ１１５により印刷出力できるようになされている。
モニタ１０２は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
【００２１】
ＣＰＵ１０３は、情報処理装置１００全体の動作制御を司るものであり、本実施の形態においては制御手段として機能している。
すなわち、ＣＰＵ１０３は、ＨＤ（ハードディスク）１０６等から処理プログラム（ソフトウェアプログラム）を読み出して実行することで、情報処理装置１００全体を制御する。特に、本実施の形態では、ＣＰＵ１０３は、ＨＤ１０６等から、デジタルデータ変換機能を実現する処理プログラムを読み出して実行することで、後述する情報変換処理を実施する。
【００２２】
ＲＯＭ１０４は、印刷許可されていない特定の画像情報、必要な画像処理のための処理プログラム、及び情報変換処理のための処理プログラム等の各種処理プログラムや、各種データ等を記憶する。
ＲＡＭ１０５は、ＣＰＵ１０３での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
【００２３】
ＨＤ１０６は、大容量記憶装置の一例としての構成要素であり、文字情報や画像情報、或いは各種処理の実行時にＲＡＭ１０５等へ転送される情報変換処理等のための処理プログラム等を保存する。
ＣＤ（ＣＤドライブ）１０８は、外部記憶媒体の一例としてのＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み、また、当該ＣＤへデータを書き出す機能を有する。
【００２４】
ＦＤ（フロッピー（Ｒ）ディスクドライブ）１０９は、ＣＤ１０８と同様に、外部記憶媒体の一例としてのＦＤ１０９に記憶されたデータを読み出す。また、種々のデータを上記ＦＤ１０９へ書き込む機能を有している。
ＤＶＤ（デジタル・ビデオ・ディスク、またはＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋドライブ）１１０は、ＣＤ１０８やＦＤ１０９と同様に、外部記憶媒体の一例としてのＤＶＤ１１０に記憶されたデータを読み出し、また、上記ＤＶＤ１１０へデータを書き込む機能を有している。
【００２５】
なお、ＣＤ１０８、ＦＤ１０９、ＤＶＤ１１０等の外部記憶媒体に対して、例えば、編集用のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラムをＨＤ１０６へインストールしておき、必要に応じて、ＲＡＭ１０５へ転送するように構成してもよい。
【００２６】
インターフェース（Ｉ／Ｆ）１１１は、マウス１１２或いはキーボード１１３によるユーザからの入力を受け付けるためのものである。
モデム１１８は、通信モデムであり、インターフェース（Ｉ／Ｆ）１１９を介して、例えば、公衆回線等を通じて外部のネットワークに接続される。
ネットワーク接続部１０７は、インターフェース（Ｉ／Ｆ）１１４を介して、外部のネットワークに接続される。
【００２７】
図２は、上記図１の情報処理装置１００において、特徴とする機能（デジタルデータ変換機能）に着目して、各機能構成を図示したものである。
図２に示すように、情報処理装置１００は、入力データ格納装置２０２、圧縮モジュール２０３、ハッシュデータ生成モジュール２０４、及びハッシュデータ格納装置２０５を有する。なお、これらの各モジュール２０３〜２０４は、ＣＰＵ１０３が所定のプログラムを実行することで実現される機能単位（モジュール）を表している。
【００２８】
情報処理装置１００に対しては、入力デジタルデータＭ２０１が外部から入力され、入力データ格納装置２０２に格納される。入力データ格納装置２０２は例えば、図１に示したＨＤ１０６により構成される装置である。
圧縮モジュール２０３は、入力データ格納装置２０２から入力デジタルデータＭ２０１を読み出して圧縮処理を行い、圧縮されたデジタルデータを入力データ格納装置２０２に格納する。
【００２９】
ハッシュデータ生成モジュール２０４は、入力データ格納装置２０２から圧縮データを読み出し、一方向性ハッシュ関数による変換処理を行い、ハッシュデータを生成してハッシュデータ格納装置２０５に格納する。ハッシュデータ格納装置２０５は例えば、ＨＤ１０６である。そして、上記ハッシュデータ格納装置２０５に格納されているハッシュデータＨ（Ｍ）２０６が計算結果として外部に出力される。
【００３０】
なお、圧縮モジュール２０３による圧縮処理は、入力データ格納装置２０２に格納された入力デジタルデータＭ２０１を読み出してから圧縮処理を行う場合に限らず、入力データ格納装置２０２に格納される前の入力デジタルデータＭ２０１を直接、圧縮処理する場合も含む。
【００３１】
また、ハッシュデータ生成モジュール２０４によって生成されたハッシュデータＨ（Ｍ）２０６は、ハッシュデータ格納装置２０５に格納されずに、外部に出力されるように構成されていてもよい。
【００３２】
図３は、上記図２に示した構成による情報処理装置１００の動作において、情報変換処理の手順を示したフローチャートである。
例えば、ＣＰＵ１０３は、図３のフローチャートに従った処理プログラムを読み出して実行する。これにより、情報処理装置１００は、次のように動作する。
【００３３】
ステップＳ３０１においては、例えば、インターフェース１１９や、インターフェース１１４、或いはＣＤ１０８、ＦＤ１０９、ＤＶＤ１１０等を介して、入力デジタルデータＭ２０１を外部から取得し、入力データ格納装置２０２に格納する。また、入力デジタルデータＭ２０１がＨＤ１０６にあらかじめ格納されている場合には、ＨＤ１０６から入力デジタルデータＭ２０１を取得する。
【００３４】
ステップＳ３０２においては、例えば、ＨＤ１０６に格納された入力デジタルデータＭ２０１を読み出し、圧縮モジュール２０３により圧縮処理を行い、圧縮データを例えばＨＤ１０６に格納する。この場合、例えば、圧縮前の入力デジタルデータＭ２０１が格納されていたＨＤ１０６の記録領域に、上記圧縮データが格納される。
【００３５】
圧縮モジュール２０３による圧縮処理は、後述するステップＳ３０３での一方向性ハッシュ関数よりも高速に演算処理できる方式である。例としては、排他的論理和（ＸＯＲ）演算などが挙げられる。
【００３６】
次に、ステップＳ３０３においては、例えば、ＨＤ１０６に格納された圧縮データを読み出し、一方向性ハッシュ関数による変換処理を行い、ハッシュデータを生成する。なお、一方向性ハッシュ関数としては、ＭＤ２、ＭＤ５、ＳＨＡ−１などの公開アルゴリズムなどが挙げられる。
【００３７】
次に、ステップＳ３０４においては、上記ステップＳ３０３で生成されたハッシュデータを、例えばＨＤ１０６に格納する。
【００３８】
上述した本実施の形態によれば、入力デジタルデータＭ２０１に対して、一方向性ハッシュ関数演算処理を行う前に、より高速に処理できる排他的論理和などの圧縮処理を施すため、ハッシュデータを算出する時間を短縮することができる。さらに、サンプリング方式と異なり、入力デジタルデータＭ２０１の一部分を利用してハッシュデータを算出しているのではないため、改ざんが入力デジタルデータＭ２０１の全体に対して影響するようにすることができ、優れた安全性を得ることができる。
なお、本実施の形態では、情報変換処理をパーソナルコンピュータ等のコンピュータにより実現するように構成したが、これに限られることはなく、例えば、ハードウエアにより実現するように構成してもよい。
【００３９】
［第２の実施の形態］
この第２の実施の形態においては、上述した第１の実施の形態におけるステップＳ３０２の圧縮処理の仕方を工夫することで、使用メモリ量を減らす方法について述べる。
図４は、第１の実施の形態におけるステップＳ３０２で排他的論理和（ＸＯＲ）演算を利用したときの情報変換処理を示したものである。入力デジタルデータ４０１を２つの記憶領域Ｄ１、Ｄ２に分割しているが、例えば、入力デジタルデータ４０１の丁度半分に区切るように分割するのがよい。
【００４０】
次に、第１の記憶領域Ｄ１のデータと第２の記憶領域Ｄ２のデータとの排他的論理和（ＸＯＲ）により得られた圧縮データを生成し、上記生成した圧縮データを上記第１の記憶領域Ｄ１に再度格納して変更後の圧縮データ４０２を得る。圧縮データを記憶する領域として、データ４０２における第１の記憶領域Ｄ１部分を利用する。このようにすることにより、通常の処理では、圧縮データ用のデータ記憶領域を別途確保する必要があったが、本実施形態では別途確保する必要をなくすことができる。
【００４１】
図５は、記憶領域の重なりを許して分割している例を示している。入力デジタルデータＭ２０１を丁度２つに分割できない場合には、符号５０１、符号５０２で示したように、重なりを許して第１の記憶領域Ｄ１と第２の記憶領域Ｄ２とに分割することも可能である。
【００４２】
この場合、排他的論理和処理を行えるようにするために、記憶領域Ｄ１と第２の記憶領域Ｄ２のデータ長は同じであることが望ましい。しかし、必ずしも同じにする必要はなく，ａ）データ領域を繰り返し利用する、ｂ）別途パディング情報を付け加える、などの処理を排他的論理和処理の前に行えばよい。
【００４３】
さらに、第１の記憶領域Ｄ１及び第２の記憶領域Ｄ２に格納されている各データのデータ長は、一方向性ハッシュ関数での処理が容易となるような所定のデータ長の倍数とする方法により、計算量を削減することができる。例えば、一方向性ハッシュ関数の一例であるＳＨＡ−１では、入力デジタルデータを６４バイト単位に区切って処理されている。ＳＨＡ−１では、最後にパディングデータ付加とデータ長の８バイトを付加する処理があるため、第１の記憶領域Ｄ１及び第２の記憶領域Ｄ２のデータ長として、例えば、５６＋６４＊ｘ（ｘ≧０）バイト長になるようにデータを入力することで、余分なパディング付加処理を無くすことが可能である。
【００４４】
上述した本実施の形態によれば、圧縮処理において余分なメモリ領域を消費せずに処理できるため、処理全体として利用メモリ領域の量を抑えることができる。
なお、本実施の形態では、入力デジタルデータを２つに分割する方式について説明を行ったが、ｎ（ｎ≧３）以上の記憶領域Ｄ１、Ｄ２、…、Ｄｎに分割し、Ｄ１  ＸＯＲ  Ｄ２  ＸＯＲ  …ＸＯＲ  Ｄｎを圧縮データとして利用する方法にも拡張できる。
【００４５】
すなわち、上述した入力デジタルデータ４０１の領域分割において、その分割数は２つに限られず、任意のサイズを有するｎ個の記憶領域に分割してもよく、この場合、各記憶領域間の排他的論理和演算（ＸＯＲ）は、例えば、Ｄ１、Ｄ２、…、Ｄｎすべてについて排他的論理和演算を行うようにしてもよいし、或いは、第１の記憶領域Ｄ１、第２の記憶領域Ｄ２、…、第ｎの記憶領域Ｄｎのうち、所定の組み合わせの領域間で排他的論理和演算を行うようにしてもよい。
【００４６】
［第３の実施の形態］
上記の実施の形態において、入力デジタルデータのデータ長に関する所定のしきい値を設定しておき、上記しきい値よりも入力デジタルデータ長が小さい場合には、一方向性ハッシュ関数による暗号処理に多くの時間を必要としないので、圧縮処理を行わないようにすることで、変換処理時間を高速化することができる。
【００４７】
図６は、本実施の形態における情報変換処理の手順を示したフローチャートである。
図６において、最初のステップＳ６０１は第１の実施の形態におけるステップＳ３０１に相当する処理である。
【００４８】
次のステップＳ６０２において、入力デジタルデータのデータ長に関するしきい値を設定しておき、しきい値と入力デジタルデータ長を比較する。しきい値よりも入力デジタルデータ長が小さい場合には、圧縮処理を行わないで、ステップＳ６０４から実行する。しきい値よりも入力デジタルデータ長が大きい場合には、圧縮処理を行うようステップＳ６０３から実行する。
【００４９】
次に、ステップＳ６０３、ステップＳ６０４、ステップＳ６０５における処理は、第１の実施の形態におけるステップＳ３０３、ステップＳ３０４、ステップＳ３０５の各処理にそれぞれ相当する。
【００５０】
上述した本実施の形態によれば、入力デジタルデータのデータ長に関する所定のしきい値を設定しておき、上記設定したしきい値よりも入力デジタルデータ長が小さい場合には、不必要な圧縮処理を行わないことで、変換処理時間を高速にすることができる。
【００５１】
［第４の実施の形態］
上記の実施の形態において、ハッシュデータに基づくデジタルデータの改ざん防止について説明する。
デジタルデータは改変が容易であるため、第三者によってデータを改ざんされる危険性がある。そこで、送信されてきたデータが改ざんされたかどうかを受信者が検出するために、改ざん防止用の付加データを検証する方式としてデジタル署名データまたはメッセージ認証データ（検証情報）を付加する方式がある。
【００５２】
まず、送信者側がデジタル署名データを生成する場合について説明する。
図７に示す点線領域Ａは、送信者側がデジタル署名データを通常に生成するときの処理手順を示している。また、図７に示す点線領域Ｂは、送信者側から送信されたデジタル署名データや入力データに基づき、入力データが改ざんされたか否かを受信者側が検証するときの処理手順を示している。
なお、後述する図８〜図１０に示す点線領域Ａ及び点線領域Ｂについても、図７と同様に、それぞれ点線領域Ａは送信者側、点線領域Ｂは受信者側が行う処理手順を示している。
【００５３】
公開暗号方式における秘密鍵（秘密情報）をＫｓ、公開鍵（公開情報）をＫｐとする送信者は、入力デジタルデータＭ７０１に一方向性ハッシュ処理を施して固定長データＨ（Ｍ）を算出する（ステップＳ７０２）。
【００５４】
次に、秘密鍵ＫｓでＨ（Ｍ）を変換してデジタル署名データ７０４を作成（検証情報の生成）する（ステップＳ７０３）。その後、デジタル署名データと入力デジタルデータＭとを受信者に送信する。
【００５５】
受信者はデジタル署名データ７０４を公開鍵Ｋｐで変換したデータ（ステップＳ７０５）と、入力デジタルデータＭに一方向性ハッシュ処理を施したデータ（ステップＳ７０６）が一致するかどうか検証（検証情報の改ざんを検証）する（ステップＳ７０７）。もし、一致していなければ、データＭの改ざんが行われたことを検出できる。
【００５６】
図８は、本実施の形態におけるデジタル署名データを生成する方法について説明した図である。公開鍵暗号方式における秘密鍵（秘密情報）をＫｓ、公開鍵（公開情報）をＫｐとする送信者は、入力デジタルデータＭ８０１を上記の実施の形態に基づき圧縮処理を行い（ステップＳ８０２）、一方向性ハッシュ処理を施して固定長データＨ（Ｍ）を算出する（ステップＳ８０３）。
【００５７】
次に、秘密鍵ＫｓでＨ（Ｍ）を変換してデジタル署名データ８０５を作成（検証情報の生成）する（ステップＳ８０４）。その後、デジタル署名データ８０５と入力デジタルデータＭとを受信者に送信する。
【００５８】
受信者はデジタル署名データ８０５を公開鍵Ｋｐで変換したデータ（ステップＳ８０６）と、入力デジタルデータＭに上記の実施の形態に基づいた圧縮処理を行い（ステップＳ８０７）、一方向性ハッシュ処理を施したデータ（ステップＳ８０８）が一致するかどうか検証（検証情報の改ざんを検証）する（ステップＳ８０９）。この検証の結果、両者が一致していなければ、データＭの改ざんが行われたことを検出できる。
【００５９】
次に、メッセージ認証データを生成する場合について説明する。
図９は、通常のメッセージ認証データの生成手順である。送信者と受信者は、秘密暗号方式における共有鍵（共有情報）Ｋを共有しておく。送信者は、入力デジタルデータＭ９０１に一方向性ハッシュ処理を施して固定長データＨ（Ｍ）を算出する（ステップＳ９０２）。
【００６０】
次に、共有鍵Ｋで固定長データＨ（Ｍ）を変換してメッセージ認証データ９０４を作成する（ステップＳ９０３）。その後、メッセージ認証データ９０４と入力デジタルデータＭとを受信者に送信する。
【００６１】
受信者はメッセージ認証データ９０４を共有鍵Ｋで復号したデータ（ステップＳ９０５）と、入力デジタルデータＭに一方向性ハッシュ処理を施したデータ（ステップＳ９０６）とが一致するかどうか検証する（ステップＳ９０７）。この検証の結果、両者が一致していなければ、入力データＭの改ざんが行われたことを検出できる。
【００６２】
図１０は、本実施の形態におけるメッセージ認証データを生成する方法について説明した図である。送信者と受信者は、秘密暗号方式における共有鍵（共有情報）Ｋを共有しておく。送信者は、入力デジタルデータＭ１００１を上記の実施の形態に基づき圧縮処理を行い（ステップＳ１００２）、一方向性ハッシュ処理を施して固定長データＨ（Ｍ）を算出する（ステップＳ１００３）。
【００６３】
次に、共有鍵ＫでＨ（Ｍ）を変換してメッセージ認証データ１００５を作成する（ステップＳ１００４）。その後、メッセージ認証データ１００５と入力デジタルデータＭとを受信者に送信する。
【００６４】
受信者はメッセージ認証データ１００５を共有鍵Ｋで復号し（ステップＳ１００６）、上記復号したデータと、入力デジタルデータＭに上記の実施の形態に基づいた圧縮処理を行い（ステップＳ１００７）、一方向性ハッシュ処理を施したデータ（ステップＳ１００８）が一致するかどうか検証する（ステップＳ１００９）。もし、一致していなければ、データＭの改ざんが行われたことを検出できる。
【００６５】
ＪＰＥＧ圧縮処理の過程で行われるＤＣＴ符号化やハフマン符号化によって圧縮された後のＪＰＥＧデータを考えると、一部改変による元画像データの影響が圧縮後のＪＰＥＧデータの全域に広がってしまう。このため、入力デジタルデータの一部を改変しながら意図した画像に改ざんすることは困難である。
これにより、上述した本実施の形態によれば、処理を高速しながら、安全性を確保できる改ざん防止システムを実現することができる。
【００６６】
［第５の実施の形態］
上述した第２の実施の形態においては、圧縮方法、つまり領域分割方法を送信者と受信者とが互いに共有しておく必要があった。これは、送信者及び受信者が同じ圧縮方式を用いて計算しない場合、同じ入力データに対するハッシュ値が異なることになり、常に改ざんとみなされてしまうことを避けるためである。そのため、領域分割方法は、署名またはメッセージ認証データとともにその都度送信するなどの方式が考えられる。
【００６７】
本実施の形態では、上記領域分割方法を非公開のデータとすることを考える。つまり、領域分割方法を秘匿にすることで、領域分割方法を知っている者のみが検証できるようにすることができる。これは、第３者による入力データの改変を防ぐことができセキュリティを高める効果がある。
【００６８】
上記領域分割方法の秘匿方法には、例えば、ａ）メッセージを送信するごとに領域分割方法を別途、暗号化して同時に送る方法、ｂ）固定の領域分割方法を秘密にしてあらかじめ共有しておく方法がある。上記ｂ）の方法については、複数の領域分割方法をあらかじめ共有しておくことにより、上記ａ）の方法のように領域分割方法を毎回、変更することも可能である。
【００６９】
［ソフトウエアでの適用による他の実施の形態］
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムの一部として適用しても、ひとつの機器（たとえば複写機、ファクシミリ装置）からなるものの一部に適用してもよい。
【００７０】
また、本発明は上記実施の形態を実現するための装置及び方法及び実施の形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上記システムまたは装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に、上記実施の形態を実現するためのソフトウエアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
またこの場合、前記ソフトウエアのプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【００７１】
この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイスを制御することにより、上記実施の形態の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【００７２】
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施の形態が実現される場合も本発明の範疇に含まれる。
【００７３】
本発明の実施態様の例を以下に列挙する。
〔実施態様１〕入力されたデジタルデータを圧縮処理して圧縮デジタルデータを生成するとともに、上記圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するようにしたことを特徴とするデジタルデータ送信端末。
【００７４】
〔実施態様２〕デジタルデータを入力するデータ入力手段と、上記データ入力手段により入力されたデジタルデータを圧縮して圧縮デジタルデータを生成するデータ圧縮手段と、上記データ圧縮手段によって生成された圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するハッシュデータ生成手段と、上記ハッシュデータ生成手段により生成されたハッシュデータを出力するハッシュデータ出力手段とを有することを特徴とするデジタルデータ送信端末。
【００７５】
〔実施態様３〕上記データ入力手段により入力されたデジタルデータを記憶媒体に格納する入力データ格納手段を備えることを特徴とする実施態様２に記載のするデジタルデータ送信端末。
【００７６】
〔実施態様４〕上記ハッシュデータ生成手段により生成されたハッシュデータを記憶媒体に格納するハッシュデータ格納手段を有することを特徴とする実施態様２または３に記載のデジタルデータ送信端末。
【００７７】
〔実施態様５〕上記データ圧縮手段は、上記入力データ格納手段により上記記憶媒体に格納されたデジタルデータを圧縮し、上記入力データ格納手段は、上記データ圧縮手段により圧縮された圧縮デジタルデータを、上記圧縮デジタルデータが圧縮される前に格納されていた上記記憶媒体の記憶領域と同じ記憶領域に格納することを特徴とする実施態様３または４に記載のデジタルデータ送信端末。
【００７８】
〔実施態様６〕上記データ圧縮手段は、少なくとも排他的論理和演算を含む圧縮方法を用いて上記デジタルデータを圧縮することを特徴とする実施態様２〜５の何れか１つに記載のデジタルデータ送信端末。
【００７９】
〔実施態様７〕上記入力データ格納手段により上記記憶媒体に格納されたデジタルデータの記憶領域を少なくとも第１の記憶領域と第２の記憶領域とに分割するデータ領域分割手段を備え、上記データ圧縮手段は、上記第１の記憶領域に格納されたデジタルデータと上記第２の記憶領域に格納されたデジタルデータとの排他的論理和演算を施すことにより圧縮デジタルデータを生成し、上記入力データ格納手段は、上記データ圧縮手段により生成された圧縮デジタルデータを上記第１の記憶領域に格納することを特徴とする実施態様３〜５の何れか１つに記載のデジタルデータ送信端末。
【００８０】
〔実施態様８〕上記データ領域分割手段は、上記入力データ格納手段により上記記憶媒体に格納されたデジタルデータの記憶領域をｎ個の記憶領域に分割し、上記データ圧縮手段は、上記データ領域分割手段により分割された第１の記憶領域に格納されたデジタルデータから第ｎの記憶領域に格納されたデジタルデータに対して排他的論理和演算を施すことにより圧縮デジタルデータを生成し、上記入力データ格納手段は、上記データ圧縮手段により生成された圧縮デジタルデータを上記第１の記憶領域に格納することを特徴とする実施態様７に記載のデジタルデータ送信端末。
【００８１】
〔実施態様９〕上記データ領域分割手段は、上記デジタルデータを１／２に分割し、上記デジタルデータにおける前半の１／２を上記第１の記憶領域に格納されたデジタルデータとし、後半の１／２を上記第２の記憶領域に格納されたデジタルデータとすることを特徴とする実施態様７に記載のデジタルデータ送信端末。
【００８２】
〔実施態様１０〕上記データ領域分割手段は、上記デジタルデータの記憶領域を分割する際に、上記記憶領域が重なることを許容して分割することを特徴とする実施態様７〜９の何れか１つに記載のデジタルデータ送信端末。
【００８３】
〔実施態様１１〕上記データ領域分割手段は、分割した後の各記憶領域のデジタルデータ長が、上記ハッシュデータ生成手段で用いる一方向性ハッシュ関数での処理が容易なデータ長の倍数となるように上記デジタルデータを分割することを特徴とする実施態様７〜１０の何れか１つに記載のデジタルデータ送信端末。
【００８４】
〔実施態様１２〕上記データ圧縮手段は、上記デジタルデータ長に関するしきい値を有し、上記デジタルデータのデータ長が上記しきい値よりも小さい場合には、上記デジタルデータの圧縮処理を行わないことを特徴とする実施態様２〜１１の何れか１つに記載のデジタルデータ送信端末。
【００８５】
〔実施態様１３〕上記データ領域分割手段による分割方法を秘匿して共有鍵データとして扱い、上記ハッシュデータ生成手段は、上記共有鍵データの有無に基づいて上記ハッシュデータを生成することを特徴とする実施態様７〜１１の何れか１つに記載のデジタルデータ送信端末。
【００８６】
〔実施態様１４〕上記ハッシュデータ生成手段で生成されたハッシュデータに対して暗号処理を行う第１の鍵データを記憶媒体に保持する第１の鍵データ保持手段と、上記第１の鍵データ保持手段において記憶媒体に保持された第１の鍵データを用いて暗号処理を行ってデジタル署名を生成するデジタル署名生成手段とを有することを特徴とする実施態様２〜１３の何れか１つに記載のデジタルデータ送信端末。
【００８７】
〔実施態様１５〕上記ハッシュデータ生成手段で生成されたハッシュデータに対して暗号処理を行う第２の鍵データを記憶媒体に保持する第２の鍵データ保持手段と、上記第２の鍵データ保持手段において記憶媒体に保持された第２の鍵データを用いて暗号処理を行ってメッセージ認証データを生成するメッセージ認証データ生成手段とを有することを特徴とする実施態様２〜１３の何れか１つに記載のデジタルデータ送信端末。
【００８８】
〔実施態様１６〕鍵データを用いた暗号処理によって生成されたデジタル署名を検証するための第１の検証用鍵データを記憶媒体に保持する検証用鍵データ保持手段と、上記検証用鍵データ保持手段において記憶媒体に保持された第１の検証用鍵データを用いて、入力されたハッシュデータに対して検証処理を行って上記デジタル署名を検証するデジタル署名検証手段とを有することを特徴とするデジタルデータ受信端末。
【００８９】
〔実施態様１７〕上記検証用鍵データ保持手段は、メッセージ認証データ検証用の第２の検証用鍵データを記憶媒体に保持し、上記検証用鍵データ保持手段において記憶媒体に保持された上記第２の検証用鍵データを用いて、上記生成されたハッシュデータに対して検証処理を行ってメッセージ認証データの検証を行うメッセージ認証データ検証手段を有することを特徴とする実施態様１６に記載のデジタルデータ受信端末。
【００９０】
〔実施態様１８〕上記第１の検証用鍵データまたは上記第２の検証用鍵データとして、上記ハッシュデータを送信したデジタルデータ送信端末側と共通の共有鍵データを用いることを特徴とする実施態様１６または１７に記載のデジタルデータ受信端末。
【００９１】
〔実施態様１９〕上記デジタルデータは画像データを含むことを特徴とする実施態様１〜１５の何れか１つに記載のデジタルデータ送信端末。
【００９２】
〔実施態様２０〕上記ハッシュデータは画像データを含むことを特徴とする実施態様１６〜１８の何れか１つに記載のデジタルデータ受信端末。
【００９３】
〔実施態様２１〕上記実施態様１〜１５の何れかに記載のデジタルデータ送信端末と、上記実施態様１６〜１８の何れかに記載のデジタルデータ受信端末とを有することを特徴とするデジタルデータ変換システム。
【００９４】
〔実施態様２２〕入力されたデジタルデータを圧縮処理して圧縮デジタルデータを生成するとともに、上記圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するようにしたことを特徴とするデジタルデータ変換方法。
【００９５】
〔実施態様２３〕デジタルデータを入力するデータ入力工程と、上記データ入力工程により入力されたデジタルデータを圧縮して圧縮デジタルデータを生成するデータ圧縮工程と、上記データ圧縮工程によって生成された圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するハッシュデータ生成工程と、上記ハッシュデータ生成工程により生成されたハッシュデータを出力するハッシュデータ出力工程とを有することを特徴とするデジタルデータ変換方法。
【００９６】
〔実施態様２４〕鍵データを用いた暗号処理によって生成されたデジタル署名を検証するための第１の検証用鍵データを記憶媒体に保持する検証用鍵データ保持工程と、上記検証用鍵データ保持工程において記憶媒体に保持された第１の検証用鍵データを用いて、入力されたハッシュデータに対して検証処理を行って上記デジタル署名を検証するデジタル署名検証工程とを有することを特徴とするデジタルデータ変換方法。
【００９７】
〔実施態様２５〕入力されたデジタルデータを圧縮処理して圧縮デジタルデータを生成するとともに、上記圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するようにしたデジタルデータ変換方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【００９８】
〔実施態様２６〕デジタルデータを入力するデータ入力工程と、上記データ入力工程により入力されたデジタルデータを圧縮して圧縮デジタルデータを生成するデータ圧縮工程と、上記データ圧縮工程によって生成された圧縮デジタルデータを一方向性ハッシュ関数により変換処理してハッシュデータを生成するハッシュデータ生成工程と、上記ハッシュデータ生成工程により生成されたハッシュデータを出力するハッシュデータ出力工程とを有するデジタルデータ変換方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【００９９】
〔実施態様２７〕鍵データを用いた暗号処理よって生成されたデジタル署名を検証するための第１の検証用鍵データを保持した検証用鍵データ保持工程と、上記検証用鍵データ保持工程において記憶媒体に保持された第１の検証用鍵データを用いて、入力されたハッシュデータに対して検証処理を行って、上記デジタル署名を検証するデジタル署名検証工程とを有するデジタルデータ変換方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【０１００】
〔実施態様２８〕上記実施態様２６または２７に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【０１０１】
【発明の効果】
以上説明したように、本発明によれば、一方向性ハッシュ関数の演算処理を行う前に圧縮処理を施すようにしたので、一方向性ハッシュ関数を用いてハッシュデータを算出する時間を大幅に短縮することができる。
【０１０２】
また、本発明の他の特徴によれば、サンプリング方式と異なり、入力デジタルデータの一部分のみのデータを抽出した後に、これを利用してハッシュデータを算出しているのではないため、データ改ざんがあった場合、入力デジタルデータ全体に対して改ざんが影響するようにすることができるので、優れた安全性も得ることができる。
【０１０３】
また、本発明のその他の特徴によれば、圧縮処理において余分なメモリを消費せずに圧縮処理を行うことができるため、デジタルデータ変換処理を全体として利用メモリ量を抑えて実行することができるメリットも得られる。これらにより、安全性を保持しつつ、高速性と利用メモリ量を抑えることの両方を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態を示し、本発明を適用した情報処理装置の構成例を示すブロック図である。
【図２】第１の実施の形態の情報処理装置の機能構成を示すブロック図である。
【図３】第１の実施の形態の情報処理装置でのデジタル情報変換処理の手順を説明するためのフローチャートである。
【図４】第２の実施の形態を示し、のデジタル変換処理における圧縮処理で、排他的論理和演算を利用した場合の入力デジタルデータを表す図である。
【図５】第２の実施の形態を示し、デジタル変換処理における圧縮処理で、排他的論理和演算を利用した場合の入力デジタルデータを表す図である。
【図６】第３の実施の形態において、本発明を適用した情報処理装置での情報変換処理の手順を説明するためのフローチャートである。
【図７】通常のデジタル署名データの生成手順の一例を説明するためのフローチャートである。
【図８】第４の実施の形態において、本発明を適用した情報処理装置での、デジタル署名データの生成手順の一例を説明するためのフローチャートである。
【図９】通常のメッセージ認証データの生成手順の一例を説明するためのフローチャートである。
【図１０】第４の実施の形態において、本発明を適用した情報処理装置での、メッセージ認証データの生成手順の一例を説明するためのフローチャートである。
【符号の説明】
１００  情報処理装置
１０２  モニタ
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ＨＤ
１０７  ネットワーク接続部
１０８  ＣＤドライブ
１０９  ＦＤドライブ
１１０  ＤＶＤドライブ
１１１  インターフェース
１１２  マウス
１１３  キーボード
１１４  インターフェース
１１５  プリンタ
１１６  バス
１１７  インターフェース
１１８  モデム
１１９  インターフェース
２０１  入力デジタルデータ
２０２  入力データ格納装置
２０３  圧縮モジュール
２０４  ハッシュデータ生成モジュール
２０５  ハッシュデータ格納装置
２０６  ハッシュデータ
【図１】
2004184516.tif 000003
【図２】
2004184516.tif 000004
【図３】
2004184516.tif 000005
【図４】
2004184516.tif 000006
【図５】
2004184516.tif 000007
【図６】
2004184516.tif 000008
【図７】
2004184516.tif 000009
【図８】
2004184516.tif 000010
【図９】
2004184516.tif 000011
【図１０】
2004184516.tif 000012