(57)【要約】暗号化処理の対象データ（３０１）の中から一部分のデータを順次抽出する。前回抽出された一部分のデータの暗号結果を用いて今回抽出された一部分のデータの暗号結果を順次算出する。順次算出された暗号結果に基づいて暗号化データ（３０５）を生成する。暗号化データの生成において、最終に算出された暗号結果（ＰＦ（ｚ＋１））を生成された暗号化データに付加する。このとき、最終暗号結果は、暗号化対象データが改ざんされたか否かを検出するための改ざん検出用データ（３０８）として利用される。
2003013054.tif 000002
【特許請求の範囲】
【請求項１】
暗号化対象データ（３０１、Ｂｋ）を暗号化し、暗号化データ（３０５、ＣＢｋ）を生成する暗号化ステップ（Ｓ１０２、Ｓ６０２）と、
前記暗号化ステップによる暗号化に伴い算出される暗号化結果を示す暗号化結果データ（ＰＦ（ｚ＋１））を、前記暗号化データに付加する付加ステップ（Ｓ１０４、Ｓ６０４）とを備え、
前記暗号化結果データは、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０８、ＢＤｋ）を示すことを特徴とする、暗号化処理方法。
【請求項２】
前記暗号化ステップは、
前記暗号化対象データの中から一部分のデータ（Ｄｉ）を順次抽出する抽出ステップと、
前記抽出ステップにより前回抽出された前記一部分のデータの暗号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記暗号化結果を順次算出し、順次算出される前記暗号化結果に基づいて暗号化データ（３０５）を生成するデータ生成ステップ（Ｓ１０２）とを有して、
前記暗号化結果データは、前記データ生成ステップにおいて最終に算出された前記暗号化結果（ＰＦ（ｚ＋１））を示すことを特徴とする、請求項１に記載の暗号化処理方法。
【請求項３】
前記暗号化ステップは、
前記暗号化対象データを所定サイズのデータブロック（Ｂｋ）ごとに、当該データブロックを暗号化して、該データブロックに対応のブロック暗号化データ（ＣＢｋ）を生成するブロック暗号化ステップを有し、
前記付加ステップは、
前記ブロック暗号化ステップによる暗号化に伴い算出される前記データブロックごとの前記暗号化結果を示すブロック暗号結果データ（ＢＤｋ）と、当該データブロックに対応の前記ブロック暗号化データとを対応付ける対応付けステップを有する、請求項１に記載の暗号化処理方法。
【請求項４】
前記暗号化結果データは、該暗号化結果データが示す前記暗号化結果に対応のメッセージダイジェストであることを特徴とする、請求項１に記載の暗号化処理方法。
【請求項５】
前記暗号結果は、共通鍵暗号方式に用いる暗号パラメータ（４０１、５０１）全体またはその一部分であることを特徴とする、請求項１に記載の暗号化処理方法。
【請求項６】
暗号化データ（３０５）を受理するデータ受理ステップ（Ｓ２０１）と、
前記データ受理ステップにより受理された前記暗号化データを復号化し、復号化データ（３０７）を生成する複合化ステップ（Ｓ２０２）とを備え、
前記複合化ステップによる前記複合化に伴い算出される復号化結果を示す復号化結果データ（ＤＦ（ｚ＋１））は、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０９）を示すことを特徴とする、暗号化データの改ざん検出方法。
【請求項７】
前記復号化ステップは、
前記データ受理ステップにより受理された前記暗号化データの中から一部分のデータ（Ｃｉ）を順次抽出する抽出ステップと、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号結果を順次算出し、順次算出される前記複合化結果に基づいて前記複合化データを生成するデータ生成ステップ（Ｓ２０２）とを有して、
前記復号化結果データは、前記データ生成ステップにおいて最終に算出された前記複合化結果（ＤＦ（ｚ＋１））を示すことを特徴とする、請求項６に記載の暗号化データの改ざん検出方法。
【請求項８】
前記複合化結果データと前記暗号化データに予め付加されている改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データが改ざんされているか否かを検出する改ざん検出ステップ（Ｓ２０４）をさらに備える、請求項６に記載の暗号化データの改ざん検出方法。
【請求項９】
前記複合化ステップは、
前記暗号化データを所定サイズのデータブロック（ＣＢｋ）ごとに、該データブロックを復号化して、該データブロックに対応のブロック復号化データを生成するブロック復号化ステップ（Ｓ７０２）を有し、
前記改ざん検出ステップは、
前記ブロック複合化ステップによる前記ブロック複合化データの生成において算出された該ブロック複合化データに対応の前記複合化結果データと、当該ブロック複合化データに対応の前記データブロックに予め付加されている改ざん検出用データ（ＢＤｋ）とを比較し、比較結果に基づいて前記暗号化データが改ざんされているか否かを検出するブロック改ざん検出ステップ（Ｓ７０４）を有する、請求項８に記載の暗号化データの改ざん検出方法。
【請求項１０】
前記復号化結果データは、該復号化結果データが示す前記復号化結果に対応のメッセージダイジェストであることを特徴とする、請求項６に記載の暗号化データの改ざん検出方法。
【請求項１１】
前記復号化結果は、共通鍵暗号方式に用いる暗号パラメータ（４０１）全体またはその一部分であることを特徴とする、請求項６に記載の暗号化データの改ざん検出方法。
【請求項１２】
予め複数のブロックに分割された暗号化データ（３０５）の中の所定ブロック（ＣＢｉ）から、一部分のデータを順次抽出する抽出ステップ（Ｓ１３０１）と、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（Ｓ１３０２、Ｓ１３０３）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記データ生成ステップにより生成された該所定ブロックに対応の前記復号化データを再生するかしないかを判定する判定ステップ（Ｓ１３０４）とを備える、暗号化データの再生方法。
【請求項１３】
前記暗号化データの前記複数ブロックから、それぞれが前記所定ブロックに対応する１または複数のブロックを選択するブロック選択ステップをさらに備えて、
前記暗号化データは再生されるべきコンテンツを暗号化したデータであって、前記ブロック選択ステップは、前記コンテンツを一度に再生可能なデータサイズに相当する前記１または複数のブロックを選択することを特徴とする、請求項１２に記載の暗号化データの再生方法。
【請求項１４】
前記復号結果データは、当該復号結果データが示す前記復号結果に対応のメッセージダイジェストであることを特徴とする、請求項１２に記載の暗号化データの再生方法。
【請求項１５】
前記復号化結果は、共通鍵暗号方式に用いる暗号パラメータ（４０１）全体またはその一部分であることを特徴とする、請求項１２に記載の暗号化データの再生方法。
【請求項１６】
前記暗号化データを取得する取得ステップ（Ｓ１３０１、Ｓ１３０６）をさらに備えて、
前記判定ステップにより前記所定ブロックは再生しないと判定された場合、前記所得ステップにより、当該所定ブロックに対応の前記暗号化データを取得することを特徴とする、請求項１２に記載の暗号化データの再生方法。
【請求項１７】
複数のブロックに予め分割された暗号化データを通信により受信する受信ステップ（Ｓ１３０１、Ｓ１３０６）と、
前記受信ステップにより受信された前記暗号化データの複数ブロックの中の所定ブロックから、一部分のデータを順次抽出する抽出ステップと、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（Ｓ１３０２）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データの前記通信におけるエラーを検出するエラー検出ステップ（Ｓ１３０４）とを備える、暗号化データの通信方法。
【請求項１８】
暗号化対象データ（３０１、Ｂｋ）を暗号化し、暗号化データ（３０５、ＣＢｋ）を生成する暗号化手段（８０６）と、
前記暗号化手段による暗号化に伴い算出される暗号化結果を示す暗号化結果データ（ＰＦ（ｚ＋１））を、前記暗号化データに付加する付加手段（８０６）とを備え、
前記暗号化結果データは、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０８、ＢＤｋ）を示すことを特徴とする、暗号化処理装置。
【請求項１９】
暗号化データ（３０５）を受理するデータ受理手段（８１０）と、
前記データ受理手段により受理された前記暗号化データを復号化し、復号化データ（３０７）を生成する複合化手段（８１３）とを備え、
前記複合化手段による前記複合化に伴い算出される復号化結果を示す復号化結果データ（ＤＦ（ｚ＋１））は、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０９）を示すことを特徴とする、暗号化データの改ざん検出装置。
【請求項２０】
予め複数のブロックに分割された暗号化データの中の所定ブロックから、一部分のデータを順次抽出する抽出手段と、
前記抽出手段により前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出手段により今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成手段と、
前記データ生成手段により算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記データ生成手段により生成された該所定ブロックに対応の前記復号化データを再生するかしないかを判定する判定手段とを備える、暗号化データの再生方法。
【請求項２１】
複数のブロックに予め分割された暗号化データを通信により受信する受信手段（８１０）と、
前記受信手段により受信された前記暗号化データの複数ブロックの中の所定ブロックから、一部分のデータを順次抽出する抽出手段と、
前記抽出手段により前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出手段により今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成手段（８１３）と、
前記データ生成手段により算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データの前記通信におけるエラーを検出するエラー検出手段とを備える、暗号化データの通信方法。
【請求項２２】
暗号化処理方法をコンピュータに実行させるためのプログラムであって、
前記暗号化処理方法は、
暗号化対象データ（３０１、Ｂｋ）を暗号化し、暗号化データ（３０５、ＣＢｋ）を生成する暗号化ステップ（Ｓ１０２、Ｓ６０２）と、
前記暗号化ステップによる暗号化に伴い算出される暗号化結果を示す暗号化結果データ（ＰＦ（ｚ＋１））を、前記暗号化データに付加する付加ステップ（Ｓ１０４、Ｓ６０４）とを備え、
前記暗号化結果データは、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０８、ＢＤｋ）を示すことを特徴とする、プログラム。
【請求項２３】
暗号化データ改ざん検出方法をコンピュータに実行させるためのプログラムであって、
前記暗号化データ改ざん検出方法は、
暗号化データ（３０５）を受理するデータ受理ステップ（Ｓ２０１）と、
前記データ受理ステップにより受理された前記暗号化データを復号化し、復号化データ（３０７）を生成する複合化ステップ（Ｓ２０２）とを備え、
前記複合化ステップによる前記複合化に伴い算出される復号化結果を示す復号化結果データ（ＤＦ（ｚ＋１））は、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０９）を示すことを特徴とする、プログラム。
【請求項２４】
暗号化データ（３０５）の再生方法をコンピュータに実行させるためのプログラムであって、
前記暗号化データの再生方法は、
予め複数のブロックに分割された前記暗号化データの中の所定ブロック（ＣＢｉ）から、一部分のデータを順次抽出する抽出ステップ（Ｓ１３０１）と、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（Ｓ１３０２、Ｓ１３０３）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記データ生成ステップにより生成された該所定ブロックに対応の前記復号化データを再生するかしないかを判定する判定ステップ（Ｓ１３０４）とを備えることを特徴とする、プログラム。
【請求項２５】
暗号化データ（３０５）の通信方法をコンピュータに実行させるためのプログラムであって、
前記暗号化データの通信方法は、
複数のブロックに予め分割された前記暗号化データを通信により受信する受信ステップ（１３０１、１３０６）と、
前記受信ステップにより受信された前記暗号化データの複数ブロックの中の所定ブロックから、一部分のデータを順次抽出する抽出ステップと、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（Ｓ１３０２）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データの前記通信におけるエラーを検出するエラー検出ステップ（Ｓ１３０４）とを備えることを特徴とする、プログラム。
【請求項２６】
暗号化処理方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体であって、
前記暗号化処理方法は、
暗号化対象データ（３０１、Ｂｋ）を暗号化し、暗号化データ（３０５、ＣＢｋ）を生成する暗号化ステップ（Ｓ１０２、Ｓ６０２）と、
前記暗号化ステップによる暗号化に伴い算出される暗号化結果を示す暗号化結果データ（ＰＦ（ｚ＋１））を、前記暗号化データに付加する付加ステップ（Ｓ１０４、Ｓ６０４）とを備え、
前記暗号化結果データは、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０８、ＢＤｋ）を示すことを特徴とする、記録媒体。
【請求項２７】
暗号化データ（３０５）改ざん検出方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体であって、
前記暗号化データ改ざん検出方法は、
前記暗号化データを受理するデータ受理ステップ（Ｓ２０１）と、
前記データ受理ステップにより受理された前記暗号化データを復号化し、復号化データ（３０７）を生成する複合化ステップ（Ｓ２０２）とを備え、
前記複合化ステップによる前記複合化に伴い算出される復号化結果を示す復号化結果データ（ＤＦ（ｚ＋１））は、前記暗号化データが改ざんされたか否かを検出するための改ざん検出用データ（３０９）を示すことを特徴とする、記録媒体。
【請求項２８】
暗号化データ（３０５）の再生方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体であって、
前記暗号化データの再生方法は、
予め複数のブロックに分割された前記暗号化データの中の所定ブロック（ＣＢｉ）から、一部分のデータを順次抽出する抽出ステップ（Ｓ１３０１）と、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（Ｓ１３０２、Ｓ１３０３）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記データ生成ステップにより生成された該所定ブロックに対応の前記復号化データを再生するかしないかを判定する判定ステップ（Ｓ１３０４）とを備えることを特徴とする、記録媒体。
【請求項２９】
暗号化データ（３０５）の通信方法をコンピュータに実行させるためのプログラムを記録した機械読取り可能な記録媒体であって、
前記暗号化データの通信方法は、
複数のブロックに予め分割された前記暗号化データを通信により受信する受信ステップ（１３０１、１３０６）と、
前記受信ステップにより受信された前記暗号化データの複数ブロックの中の所定ブロックから、一部分のデータを順次抽出する抽出ステップと、
前記抽出ステップにより前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出ステップにより今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成ステップ（１３０２）と、
前記データ生成ステップにより算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データの前記通信におけるエラーを検出するエラー検出ステップ（Ｓ１３０４）とを備えることを特徴とする、記録媒体。
【発明の詳細な説明】
技術分野
この発明は、電子データの改ざんを検出可能な暗号化データを生成するための暗号化技術、および該暗号化データを復号するための復号化技術に関する。
背景技術
著作権保護が必要なプログラムおよびデータ、または機密性の高いデータをネットワークを介して送受信したり、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体に記録して市場に流通させる場合、該データを閲覧する正当な権利を有しない第三者による盗み見や改ざんを防止するために、暗号化処理が行なわれる。
データを送受信する際の暗号化処理の一例を第１５図に基づいて説明する。まず、送信側では、暗号化を行なうための対象データ（以下、暗号化対象データと呼ぶ）を読込み（ステップＳ（以下、単にＳと略す）１００１）、ハッシュ関数を用いて、改ざん検出用のチェック文字列であるＭＤ（メッセージダイジェスト：Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ）を計算する（Ｓ１００２）。ここでは、改ざん検出のためにＭＤを計算する方法を採用したが、これに限定されずＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）巡回符号などを利用した他の方法を採用してもよい。次に、暗号化対象データを所定の暗号化技術に基づいて暗号化し（Ｓ１００３）、暗号化されたデータにＳ１００２で求めたＭＤを付加して相手側に送信する（Ｓ１００４）。
一方、受信側では、図示されないが、この逆の処理が行なわれる。すなわち、受信側では暗号化データを受信すると、まず、復号化処理が行なわれ、次に、ＭＤが計算される。そして、この計算されたＭＤと受信された暗号化データに付加されているＭＤとを比較し、比較結果一致していれば、受信したデータは改ざんされてはおらず正常なデータであると判断される。
第１６図には、上述のデータの流れが模式的に示される。第１６図では、暗号化対象データ１０１は予めｚ個のデータＮｉ（ｉ＝１〜ｚ）に区分される。ステップＳ１とＳ２で、データＮｉごとにハッシュ関数を用いたハッシュ関数処理が行なわれるとともに、暗号処理情報とパラメータ変更部を用いて暗号化処理が行なわれる。その結果、暗号データＭｉ（ｉ＝１〜ｚ）が生成される。このとき、ハッシュ関数処理の最終結果は改ざん検出用のチェック文字列ＭＤとして暗号データＭ１〜Ｍｚに付加されて暗号化データ１０２が完成する。一方、この暗号化データ１０２を復号する際は、まず、ステップＳ３において暗号データＭｉについて複合処理情報およびパラメータ変更部により復号化処理を行なってデータＰｉ（ｉ＝１〜ｚ）からなる復号データ１０３を取得する。その後、ステップＳ４において全てのデータＰｉに対してハッシュ関数処理を行ないチェック文字列ＭＤを算出する。そして、この算出されたチェック文字列ＭＤと暗号化データ１０２に含まれる改ざん検出用のチェック文字列ＭＤとが一致しているか否か判定し、一致していれば暗号データＭ１〜Ｍｚは改ざんされていないことを検出し、一致してなければ改ざんされていることを検出する。
しかしながら、上述した従来の暗号化処理方法では、改ざん検出用のチェック文字列を計算するための計算ステップと、データを暗号化するための暗号化処理ステップとの２段階の処理ステップを必要とする。復号化処理方法についても同様に、データを復号するための復号化処理ステップと、改ざん検出用のチェック文字列を計算し比較するステップとの２段階の処理ステップを必要とする。これら２段階の処理ステップそれぞれの処理量は非常に大きいため、暗号化または復号化の処理を実行する装置において、データを暗号化して送信するまでまたはデータを復号して再生するまでの時間がかかりすぎてしまう。このことは、リアルタイム性を要する場合、すなわち、たとえば、サーバからネットワークを介してクライアントである携帯型端末にコンテンツを配信し、そのコンテンツを携帯型端末において即座に再生したいような場合に、リアルタイム性が損なわれていた。つまり、携帯型端末では、その処理能力が低いために、配信されたコンテンツを受信してから再生するまで長時間を要し、実用性に優れなかった。
また、正規に取得したコンテンツでありながら、コンテンツのデータをネットワークを介して送受信する途中において、またはコンテンツを格納している記憶媒体において、コンテンツのデータの一部が欠落したりあるいはデータが他のデータに置換えられたりする場合がある。この場合には、再度、正規のコンテンツを取得するためにコンテンツのデータ全体を受信しなければならず、データの転送に時間がかかりすぎる。
特開２０００−１２２８６１にはソフトウェアやデータの改ざんを防止するための技術が示される。該公報の技術では、上述のようなハッシュ関数を利用して改ざんを検出している。また、該技術では暗号化対象データは複数のブロック単位に分割されて、ブロック毎に暗号化処理が施されるとき、各ブロックの暗号鍵は、その都度算出されるので、処理時間がかかりすぎる。
発明の開示
この発明の目的は、処理量を軽減できる装置、方法、この方法をコンピュータに実行させるためのプロダラムおよび該プログラムを記録した媒体を提供することである。
上述の目的を達成するためにこの発明のある局面に係る暗号化処理方法および装置では、暗号化対象データは暗号化されて、暗号化データが生成される。この暗号化に伴い算出される暗号化結果を示す暗号化結果データは、暗号化データに付加される。この暗号化結果データは、暗号化データが改ざんされたか否かを検出するための改ざん検出用データを示す。したがって、暗号化データの生成において改ざん検出用データを取得できるから、改ざん検出用データを算出するための処理を、暗号化データの生成とは別途に実行しなくてもよくなって、暗号化時の処理量を軽減できる。
上述の目的を達成するためにこの発明の他の局面に係る暗号化データの改ざん検出方法および装置では、暗号化データが受理されると、受理された暗号化データは復号化されて、復号化データが生成される。この複合化に伴い算出される復号化結果を示す復号化結果データにより、暗号化データが改ざんされたか否かを検出するための改ざん検出用データが示される。したがって、復号化データの生成において改ざん検出用データを取得できるから、改ざん検出用データを算出するための処理を、復号化データの生成とは別途実行しなくてもよくなって、復号化時の処理量を軽減できる。
上述の暗号化データの改ざん検出方法および装置では、好ましくは、暗号化データは所定サイズのデータブロックごとに復号化されて、各データブロックに対応のブロック復号化データが生成される。復号化に伴い算出されるブロック複合化データごとに、該ブロック複合化データの復号化結果を示す複合化結果データと当該データブロックに付加されている改ざん検出用データとを比較し、その結果に基づいて暗号化データの改ざん有無が検出される。したがって、暗号化データはデータブロック単位で改ざん検出用データが付加されるので、データブロック単位で暗号化データの改ざんの有無を判定できる。改ざん有りと判定されれば、暗号化データにおいて改ざんされた部分をデータブロック単位で限定できる。改ざんされた部分のデータブロックを除く全てのデータブロックは正常に複合化できる。
この発明のさらなる他の局面に係る暗号化データの再生方法および装置では、予め複数のブロックに分割された暗号化データの中の所定ブロックから、一部分のデータが順次抽出される。前回抽出された一部分のデータの復号化結果に基づいて、今回抽出された一部分のデータの復号化結果が順次算出されて、順次算出される復号化結果に基づいて復号化データが生成される。復号化データ生成において算出される最終の復号化結果を示す復号結果データと、所定ブロックに予め対応付けられた改ざん検出用データとを比較して、比較結果に基づいて、生成された該所定ブロックに対応の復号化データを再生するかしないかが判定される。
したがって、暗号化データは所定ブロック単位で改ざん検出用データが対応付けられるので、所定ブロック単位で暗号化データの改ざんの有無を判定して、所定ブロック単位で対応の復号化データの再生の可否を判定できる。
上述の暗号化データの再生方法および装置では、好ましくは、暗号化データは再生されるべきコンテンツを暗号化したデータであって、暗号化データの複数ブロックからは、コンテンツを一度に再生可能なデータサイズに相当する１または複数のブロックが選択されて復号化される。
したがって、コンテンツの選択された１つ以上のブロックを、他のブロックに先行して再生のために復号できるから、コンテンツ全体の復号処理を終えなくても、暗号化されたコンテンツの再生を開始できる。
発明を実施するための最良の形態
以下、この発明の各実施の形態について図面を参照して詳細に説明する。
（実施の形態１）
第１図には本実施の形態に係る暗号化処理手順が示される。ここで使用される暗号化アルゴリズムは、暗号化結果および復号化結果が同一の情報であり、暗号化処理時および復号化処理時に前回の演算結果を利用して今回の演算結果を順次算出する方法であれば、どのような暗号化方式にも適用することができる。したがって、共通鍵暗号化方式などの一般的に用いられている暗号化方式を利用することができ、たとえば、周知のＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）をＣＢＣ（Ｃｉｐｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モードと呼ばれる手順に従って処理することにより実現可能である。ここでＣＢＣモードとは、連鎖を伴う暗号化の方法であり、前回の暗号化結果を利用して今回の暗号化結果を順次算出していく方法である。
第１図を参照して、暗号化処理では、まず、暗号化対象データを取得する（Ｓ１０１）。図示されないが、各実施の形態に係る暗号化処理および復号化処理は汎用のパーソナルコンピュータ、携帯型端末装置および携帯型電話機のような情報処理装置（以下、単に情報処理装置という）において実行される。したがって、暗号化対象データは、ＣＤ−ＲＯＭなどの記録媒体、情報処理装置内のハードディスクおよびネットワークを介したサーバなどから取得可能である。
次に、取得した暗号化対象データを暗号化アルゴリズムに従って暗号化処理する（Ｓ１０２）。その際、暗号化対象データは先頭から所定サイズのデータ単位ごとに順次暗号化処理が行なわれ、暗号データが生成されていく。また、データ単位ごとに算出された暗号化結果である暗号パラメータ値（以下、暗号処理情報という）は次のデータ単位の暗号処理情報を算出するために利用される。
暗号化対象データ全体に対する暗号化処理が終了し、暗号データが生成されると、その終了時点での最終的な暗号処理情報を基に改ざん検出用データを生成する（Ｓ１０３）。生成された改ざん検出用データは、暗号データに付加されて、その結果、暗号化データは完成する（Ｓ１０４）。これにより、暗号化処理は終了する。
第２図には復号化処理の手順が示される。ここで使用される復号化アルゴリズムは、上述の暗号化アルゴリズムに対応するものである。
復号化処理では、基本的に暗号化処理の逆の処理が行なわれる。第２図を参照して、まず、上述のようにして生成された暗号化データを読込む（Ｓ２０１）。復号化処理も上述のような情報処理装置で実行されるため、暗号化データは、暗号化対象データと同様に、ＣＤ−ＲＯＭなどの記録媒体、情報処理装置内のハードディスクおよびネットワークを介したサーバなどから取得可能である。
次に取得した暗号化データを復号化アルゴリズムに従って復号化処理を実行する（Ｓ２０２）。暗号化データすべてに対する復号化処理が終了すると、暗号化処理時に算出された暗号処理情報に対応する復号処理情報を検出できるので、検出された復号処理情報に基づいて暗号化処理時と同様の方法で改ざん検出用データを生成する（Ｓ２０３）。
Ｓ２０３で生成された改ざん検出用データとＳ２０１で読込んだ改ざん検出用データとは一致するか判定する（Ｓ２０４）。判定結果、一致すれば暗号化データは、すなわち暗号化データが示す暗号化対象データは改ざんされてないので復号データを取得し（Ｓ２０５）、不一致なら暗号化データ、すなわち暗号化データが示す暗号化対象データは改ざんされたので所定エラー処理する（Ｓ２０６）。
第３図を参照して、上述した暗号化処理と復号化処理の詳細な手順を説明する。
第３図には、暗号化対象データを暗号化した後、暗号化データを復号して、元のデータ（暗号化対象データ）を取得するまでの処理におけるデータの流れが模式的に示される。
まず、第３図に示す暗号化処理ステップ（Ｓ１０２）について説明する。暗号化の対象となるデータである暗号化対象データ３０１に対して、予め定められた所定サイズのデータ単位ごとに、暗号化アルゴリズムによって暗号化処理が実行される。この例では、暗号化対象データ３０１は、データＤｉ（ｉ＝１、２、３、・・・、ｚ）のそれぞれについて順次暗号化処理が実行される。
暗号化処理ステップ（Ｓ１０２）では、暗号化対象データ３０１の中からデータＤｉを抽出し、所定の暗号化アルゴリズムに従って暗号化処理を行ない、暗号データＣｉ（ｉ＝１、２、３、・・・、ｚ）を生成する。その際、データＤｉは暗号処理情報ＰＦｊ（ｊ＝１、２、３、・・・、ｚ、ｚ＋１）を参照して変換処理が行なわれる。なお、データＤ１は暗号鍵３０２で暗号化処理に先だって初期化された暗号処理情報ＰＦ１を参照して変換処理が行なわれる。暗号鍵３０２から暗号処理情報ＰＦ１を算出する方法やデータＤｉから暗号データＣｉへの変換処理については、使用する暗号化アルゴリズムによって予め定められている。暗号化アルゴリズムの一例を第４Ａ図を参照し説明する。
第４Ａ図には、第３図におけるデータＤｉから暗号データＣｉを生成する際の暗号化処理の手順が示される。第４Ａ図において、入力データＡは第３図の暗号化対象のデータＤｉを示し、出力データＢは第３図の暗号データＣｉを示している。この暗号化処理は、暗号処理情報ＰＦｊに対応の内部変換パラメータ４０１、変換部４０２およびパラメータ変更部３０４を備える。内部変換パラメータ４０１はパラメータＸ、ＹおよびＺを有し、暗号化処理が実行される前に初期値Ｋの暗号鍵３０２で初期化される。ここでは、初期状態として、パラメータＸ＝６、パラメータＹ＝２およびパラメータＺ＝１と想定する。変換部４０２により、データＤｉ（入力データＡ）と内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）とを用いて所定演算が実行されて、暗号データＣｉ（出力データＢ）が算出される。
具体的には入力データＡを受理すると、変換部４０２に図示する所定の演算式（○の中に＋の記号入れて示される記号は、排他的論理和を意味する）に従って出力データＢが算出される。すなわち、出力データＢは入力データＡと内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）とに基づいて算出される。演算結果である出力データＢは暗号データＣｉとして出力されるとともに、パラメータ変更部３０４に与えられる。パラメータ変更部３０４では与えられた暗号データＣｉを入力して、図示する所定の変換式に従って、入力した暗号データＣｉを用いてパラメータＸ、ＹおよびＺの値が更新される。
パラメータ変更部３０４について詳述する。たとえば、第４Ａ図において、入力データＡが１の場合、変換部４０２により所定演算が実行されて、出力データＢは４となる。出力データＢ（＝４）はパラメータ変更部３０４に与えられて、その結果、パラメータＸ、ＹおよびＺについて演算が実行される。その演算結果、パラメータＸ、Ｙ、およびＺの値は３、６および２のそれぞれに更新される。パラメータＸ、ＹおよびＺの更新後の値は、暗号化対象データ３０１のデータＤ１の次のデータＤ２を暗号化処理する際の内部変換パラメータ４０１として利用される。以降、暗号化対象データ３０１の最終のデータＤｚまで同様の処理がデータＤｉごとに繰返される。
暗号化対象データ３０１のデータＤｉのそれぞれに対して上述した暗号化処理が順次実行されて、暗号データＣｉが生成される。そして、改ざん検出用データ取得ステップ（Ｓ１０３）において、最終の内部変換パラメータ４０１に対応の暗号処理情報ＰＦ（ｚ＋１）を、改ざん検出用データ３０８として取得する。そして、取得した改ざん検出用データ３０８は暗号データＣ１〜Ｃｚに付加されて暗号化データ３０５が完成する。これにより暗号化処理は終了する。
次に、第３図に示される復号化処理ステップＳ２０２について説明する。暗号化データ３０５を取得すると、暗号化アルゴリズムに対応する復号化アルゴリズムに従って、暗号化処理時と同じデータ単位で復号化処理が行なわれる。復号化処理ステップＳ２０２では、暗号化データ３０５の中から暗号データＣｉを抽出し、抽出した暗号データＣｉについて復号処理情報ＤＦｊ（ｊ＝１、２、・・・、ｚ、ｚ＋１）を参照して、元のデータＤｉへの変換処理が行なわれ、その結果、データＤ１〜Ｄｚの復号データ３０７が生成される。このとき、複合化処理に先だって、復号処理情報ＤＦ１は暗号化処理のそれと同じ暗号鍵３０２で初期化される。復号化処理の一例が第４Ｂ図に示される。
なお、復号化処理時に使用される暗号鍵３０２は、暗号化データ３０５を送信するユーザから予め通知されていてもよいし、暗号化データ３０５の一部に含ませておいて暗号化データ３０５と同時に送信してもよい。ここでは、複合化処理における暗号鍵３０２の取得手順は限定されない。
第４Ｂ図は、第３図における暗号データＣｉから復号データ３０７のデータＤｉを生成する際の複合化処理の手順が示される。第４Ｂ図において、入力データＢは第３図の暗号データＣｉを示し出力データＡは第３図の復号データ３０７のデータＤｉを示している。この復号化処理は、第４Ａ図と第４Ｂ図に示されるとおり、暗号化処理と同様に、復号処理情報ＤＦｊに対応の内部変換パラメータ４０１、変換部４０２およびパラメータ変更部３０４を備え、暗号化処理と逆の演算を行なう。内部変換パラメータ４０１はパラメータＸ、ＹおよびＺを有し、これらのパラメータの値は復号化処理が実行される前に初期値Ｋの暗号鍵３０２により初期化される。ここでは、暗号化処理時と同様に初期状態としてパラメータＸ、ＹおよびＺの値は６、２および１のそれぞれに設定される。変換部４０２では、暗号データＣｉ（入力データＢ）と内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）とを用いて所定演算が実行されて、暗号データＣｉをデータＤｉ（出力データＡ）に復号する。すなわち、出力データＡは入力データＢと内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）とに基づいて算出される。入力データＢは変換部４０２に与えられるとともに、パラメータ変更部３０４に与えられる。パラメータ変更部３０４においては、与えられる入力データＢと図示される所定の変換式に従って内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）の値が更新される。
ここで、暗号化対象のデータＤ１の値が１の場合、暗号データＣ１の値は４となるので、第４Ｂ図において、データＢとして４が入力され、変換部４０２の演算によりデータＡが、元のデータＤ１の値と同じ１として出力される。このように、暗号化データ３０５が改ざんされていない場合、暗号処理情報ＰＦｊと復号処理情報ＤＦｊとは等しくなる。したがって、暗号化対象データ３０１のデータ単位であるデータＤ１〜データＤｚまでの一部のデータＤｉが改ざんされていれば、そのデータＤｉに対応する暗号処理情報と復号処理情報は一致しないため、暗号処理情報ＰＦｊを改ざん検出用データ３０８として、複合処理情報ＰＦｊを改ざん検出用データ３０９としてそれぞれ利用することができる。
さらに、データＢ（値４）がパラメータ変更部３０４に入力されて内部変換パラメータ４０１（パラメータＸ、ＹおよびＺ）が演算され、Ｘ＝３、Ｙ＝６およびＺ＝２にそれぞれ値が更新される。更新された値のパラメータはデータＣ２を復号化処理する際の内部変換パラメータ４０１として利用される。以下、データＣｚまで同様に復号化処理が繰返される。
暗号データＣ１から暗号データＣｚに対して上述の復号化処理が実行され、復号データ３０７のデータＤ１〜データＤｚが生成される。そして、ステップＳ２０３において、最終の復号処理情報ＤＦ（ｚ＋１）を改ざん検出用データ３０９として取得し（生成し）、ステップＳ２０４において、暗号化データ３０４に付加されている改ざん検出用データ３０８と取得した改ざん検出用データ３０９とが一致しているか否か判定する。一致していれば暗号化データ３０５、すなわち暗号化対象データ３０１は改ざんされずに正常に受理されたと判断され、一致していなければ改ざんされたと判断される。
（内部変換パラメータの他の例）
上述した改ざん検出用データ３０８には、内部変換パラメータ４０１のパラメータＸ、ＹおよびＺの３つの値をそのまま用いたので、第１図に示された改ざん検出用データ生成ステップ（Ｓ１０３）においては、何の処理も行なわれなかった。しかしながら、他の種類の暗号化処理を適用した場合には、内部変換パラメータ４０１に係る処理対象のデータ量が多い場合もある。そのような場合、暗号化データ３０５に関して付加されるデータの量を無視できなくなる。このような場合改ざん検出用データ生成ステップ（Ｓ１０３）において、最終状態の内部変換パラメータ４０１からＭＤ（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ）を求めて、求められたＭＤが改ざん検出用データとして付加された暗号化データ３０５を生成することもできる（Ｓ１０４）。
第５図には、前述とは異なる暗号化処理ステップが示される。ここでは、復号化処理に関する図示は省略されているが、復号化処理の構成は暗号化処理のそれと対称となっている。第５図に示される暗号化処理方式は、暗号処理情報ＰＦｊに対応の内部変換パラメータ５０１、変換部１２０２およびパラメータ変換部１２０３を有する。第５図の暗号化処理方式は、順次、データＡとして入力される暗号化対象データ３０１を所定変換方法を用いて暗号化データ３０５に変換して、データＢとして出力する。この例では、内部変換パラメータ５０１は２５６個の変換テーブルＴ（０）、Ｔ（１）、…、Ｔ（２５５）を有している。変換部１２０２において、変換テーブルＴ（０）〜Ｔ（２５５）を用いて、暗号化対象データ３０１を１バイトごとに暗号化データ３０５に変換する。パラメータ変更部１２０３では、出力された暗号化データ３０５の情報を基に変換テーブルＴ（０）〜Ｔ（２５５）の内容（値）を更新する。暗号化処理に先だって、内部変換パラメータ５０１の内容は初期値Ｋの暗号鍵３０２により初期化される。
たとえば、第５図に示すように、変換テーブルＴ（０）の値が６、変換テーブルＴ（１）の値が２、…となっており、入力データＡが０であれば、出力データＢが６になり、入力データＡが１であれば、出力データＢが４となる。
パラメータ変更部１２０３は、交換の対象となる２つの値“ｉｄｘ１”と“ｉｄｘ２”を、与えられる出力データＢとある特定の関数“ｆ”および“ｇ”から求めて、その後、テーブルＴ（ｉｄｘ１）とテーブルＴ（ｉｄｘ２）との値を交換する。たとえば、第５図では、“ｉｄｘ１”＝０および”ｉｄｘ２”＝４となるので、テーブルＴ（０）の値とテーブルＴ（４）の値を交換する。この結果、テーブルＴ（０）の値は６から４に更新されて、同様にテーブルＴ（４）の値は４から６に更新される。
ここでは図示されないが、復号化処理では、内部変換パラメータとして、暗号化処理のそれとは反対の変換を行なうテーブルを有し、順次、テーブルの内容を更新しながら暗号化処理とは逆の変換処理が行なわれる。
第５図の場合には、内部変換パラメータ５０１は２５６個のデータのサイズに相当するので、改ざん検出用データ３０８として用いるには、サイズが大きすぎる。そこで、内部変換パラメータ５０１を変換して少ないデータ量にする。このための変換方法として、たとえば、量の大きなデータから特定の数バイトのデータを生成するＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）およびＳＨＡ−１（Ｓｅｃｕｒｅ  ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）などのハッシュ関数を用いたものがあるが、これらに限定されない。また、ハッシュ関数を用いずに単に内部変換パラメータ５０１の一部分を変換データとする方法としてもよい。内部変換パラメータ５０１を改ざん検出用データ３０８に利用する場合でも、このような変換処理により、改ざん検出用データ３０８のデータ量を少なくできる。
また、復号化処理でも同様に改ざん検出用データ生成ステップＳ１０３で用いた方法を用いることで、同じ結果を得ることができる。そのため、暗号化データに付加された改ざん検出用データと復号化処理で得られたそれとを比較することで、暗号化対象データ３０１、すなわち暗号化データ３０５が改ざんされているか否かを判定することができる。
このように、改ざん検出用データ３０８のサイズを小さくするために、内部変換パラメータ５０１に対してハッシュ関数を用いた処理を行なう。一般に、暗号化対象データ３０１のデータ量に対して内部変換パラメータ５０１のデータ量ははるかに少ないので、上述のようにハッシュ関数を用いた変換処理を実行したとしても全体の処理効率が低下することはない。
（実施の形態２）
実施の形態１では、暗号化対象データ３０１の暗号化処理ステップ（Ｓ１０２）および復号化処理ステップ（Ｓ２０２）の終了時点における暗号処理情報ＰＦ（ｚ＋１）および復号処理情報ＤＦ（ｚ＋１）を利用して改ざん検出用データ３０８および３０９を生成した。本実施の形態では、暗号化対象データ３０１を複数のブロックに区分し、各ブロックの暗号化処理終了時点における暗号処理情報および復号化処理終了時点における復号処理情報を利用して改ざん検出用データを生成する。
第６Ａ図は、暗号化対象データ３０１をｎ個のブロックＢｋ（ｋ＝１、２、３、・・・ｎ）に区分した場合が示される。１つのブロックＢｋのデータサイズは、暗号化対象データ３０１の送信側および受信側の処理装置それぞれのメモリ容量や処理能力などに応じて決定すればよい。ただし、使用する暗号化処理の処理単位の整数倍であることが望ましい。たとえば、ＤＥＳは６４ビット単位で暗号化処理するので、ブロックＢｋのサイズは６４ビットの整数倍となる。１ビット単位で暗号化処理する場合は、ブロックＢｋを任意のサイズにできる。
第６Ｂ図には、第６Ａ図の暗号化対象データ３０１を暗号化処理した後の暗号化データ３０５のデータ構造が示される。第６Ｂ図の暗号化データ３０５は暗号化ブロックＣＢｋ（ｋ＝１、２、３、…、ｎ）と改ざん検出用データＢＤｋ（ｋ＝１、２、３、…、ｎ）からなり、暗号化ブロックＣＢｋと改ざん検出用データＢＤｋは１対１に対応する。改ざん検出用データＢＤｋはブロックＢｋごとの暗号化処理が終了した時点において生成されて、対応の暗号化ブロックＣＢｋの後に付加される。つまり、暗号化ブロックＣＢｋと、そのブロックＣＢｋのデータに対して算出された改ざん検出用データＢＤｋとは、ブロックＢｋ単位で交互に記録される。本実施の形態の暗号化データ３０５の構造はこれに限定されない。例えば、第６Ｃ図に示されるように暗号化ブロックＣＢ１〜ＣＢｎのデータと改ざん検出用データＢＤ１〜ＢＤｎとをそれぞれ別個の場所に記録するようなデータ構造であってもよい。
本実施の形態に係る暗号化処理の手順が第７図に、復号化処理の手順が第８図にそれぞれ示される。ここでは実施の形態１と同様の手順については説明を省略する。
暗号化処理では、第７図において、まず、暗号化対象データ３０５から予め定められたサイズの１ブロックＢｋのデータを取得し（Ｓ６０１）、暗号化処理を行なう（Ｓ６０２）。ブロックＢｋのデータの暗号化処理が終了した時点における暗号処理情報ＰＦｋに基づいて、改ざん検出用データＢＤｋを生成し（Ｓ６０３）、暗号化ブロックＣＢｋおよび改ざん検出用データＢＤｋを第６Ｂ図または第６Ｃ図に示すデータ構造となるように格納する（Ｓ６０４）。以上の処理を暗号化対象データ３０５の全てのブロックＢｋについて繰返す（Ｓ６０５）。これにより、暗号化データ３０５が取得（生成）される。
復号化処理では、第８図において、まず、上述のようにして取得された暗号化データ３０５の改ざん検出用データＢＤｋと対応の暗号化ブロックＣＢｋを読込み（Ｓ７０１）、復号化処理を行なう（Ｓ７０２）。次に復号処理情報ＤＦｋに基づいて改ざん検出用データを生成し（Ｓ７０３）、生成した改ざん検出用データとＳ７０１で読込んだ改ざん検出用データＢＤｋとが一致するか否か判定し（Ｓ７０４）、判定結果、一致すれば復号データを取得するが（Ｓ７０５）、不一致ならば暗号化データ３０５、すなわち暗号化データ３０５が示す暗号化対象データ３０１は改ざんされていると判断されて、復号化処理のエラーとなる（Ｓ７０６）。以上の処理を、暗号化デブロックＣＢｋのすべてについて同様に繰返すことにより（Ｓ７０７）、復号データ３０７が取得される。
上述したように、暗号化対象データ３０１を複数のブロックＢｋに区分し、ブロックＢｋごとに改ざん検出用データＢＤｋを付加しておくことにより、ブロックＢｋ単位で改ざんを検出することが可能になり、暗号化対象データ３０１の改ざんされている箇所を特定することができる。したがって、暗号化対象データ３０１の一部が改ざんされている場合であっても、その一部に対応のブロックＢｋ以外のブロックは正常に復号化処理できるので、通信エラーなどに起因して暗号化対象データ３０１（暗号化データ３０５）の一部が壊れた場合であっても、それによる被害を最小限に抑えることができる。
（実施の形態３）
上述した各実施の形態の具体的な利用シーンとして、本実施の形態３では、電子化された書籍のデータ（以下、電子書籍コンテンツという）を配信するシステムを想定する。
第９図には、電子書籍コンテンツの配信システムが示される。配信システムは、コンテンツ作成装置８０１とネットワーク８０４を介して通信するサーバ装置８０２、およびサーバ装置８０２とネットワーク８０４を介して通信するデータ表示装置８０３を備える。コンテンツ作成装置８０１は、電子書籍コンテンツを作成するために、汎用のパーソナルコンピュータで構成される。コンテンツ作成装置８０１は、コンテンツ入力部８０５、前述したような暗号化処理を実行するデータ暗号化処理部８０６および送受信部８０７を含む。コンテンツ作成者がコンテンツ入力部８０５を介して電子書籍コンテンツ８００を入力すると、入力された電子書籍コンテンツ８００は暗号化処理部８０６により暗号化され、暗号化された電子書籍コンテンツ８００は、送受信部８０７によりネットワーク８０４を介してサーバ装置８０２へ送信される。
ここでは、電子書籍コンテンツ８００は外部からコンテンツ作成装置に入力されるとしているが、ユーザの操作により、コンテンツ入力部８０５により作成されてもよい。
電子書籍コンテンツ８００に関するデータ構造の一例が暗号化対象データ３０１と暗号化データ３０５に分けて第１０Ａ図と第１０Ｂ図に示される。一般に電子書籍コンテンツは、本文の文書が記述されたテキストファイル、図、絵、写真などの画像ファイル、効果音などの音声ファイルなどからなる複数のファイルを含んで構成されることが多い。本実施の形態に係る暗号化対象データ３０１に対応の電子書籍コンテンツ８００は、第１０Ａ図に示すように先頭から、該電子書籍コンテンツ８００に含まれるファイル数を示すデータＦＭおよび各ファイルについてのファイルの情報ＦＤｈ（ｈ＝１、２、３、・・・、ｎ）を含む。暗号化データ３０５に対応の電子書籍コンテンツ８００は、第１０Ｂ図に示すようファイルの情報ＦＤｈのそれぞれに対応して該ファイルの情報ＦＤｈの内容を暗号化して得られるファイルデータＦＤＣｈ（ｈ＝１、２、３、・・・、ｎ）を含む。たとえば、電子書籍コンテンツ８００にテキストファイル、画像ファイルおよび音声ファイルの３つのファイルが含まれている場合は、ファイルの情報ＦＤ１がテキストデータを含み、ファイルの情報ＦＤ２が画像データを含み、およびファイルの情報ＦＤ３が音声データを含むことになる。ファイルの情報ＦＤｈには、対応のファイルに関連する情報として、たとえば、ファイルの名称、該ファイルに格納されているデータに関するオフセット値、該ファイルに格納されているデータのサイズ、適用される暗号化方法および暗号鍵を示す情報などが含まれる。
ファイルの情報ＦＤｈは、暗号化処理部８０６により、前述した各実施の形態で示した方法に従い暗号化される。ファイルの情報ＦＤ１は、ファイルを複数のブロックに区分してブロック単位で暗号化処理が施されて、ファイルの情報ＦＤＣ１に変換され、ファイルの情報ＦＤ２はファイル全体に対して暗号化処理が施されて、ファイルの情報ＦＤＣ２に変換される。ファイルのデータをブロック単位で暗号化するか、ファイルのデータ全体に対して暗号化するかは、データの種類の応じて選択すればよい。すなわち、データの種類がテキストデータや音声データや動画像（映像）データなどの場合はブロック単位で暗号化しておけば、複合化の際には、データにランダムにアクセスして再生することができて、データ全体に対して復号化処理を行なう場合に比べてアクセス時間を短縮できる。また、データの種類が静止画像のように部分的にアクセスすることがないデータの場合には、データ全体に対して暗号化しておけばよい。
第９図において、サーバ装置８０２は汎用のパーソナルコンピュータで構成されて、送受信部８０８およびコンテンツデータベース８０９を備える。コンテンツ作成装置８０１から送信されてきた暗号化済みの電子書籍コンテンツ８００を、送受信部８０８により受信すると、受信された電子書籍コンテンツ８００はコンテンツデータベース８０９に格納される。データ表示装置８０３からネットワーク８０４を介して送信要求を送受信部８０８により受理すると、受理した送信要求で示される電子書籍に対応の暗号化コンテンツはコンテンツデータベース８０９から読出されて、送受信部８０８によりネットワーク８０４を介してデータ表示装置８０３に送信される。
データ表示装置８０３は情報処理装置で構成される。データ表示装置８０３は、ネットワーク８０４を介してデータを送受信する送受信部８１０、ユーザからの指示を処理するユーザ指示処理部８１１、電子書籍コンテンツを格納しておくための記憶装置８１２、暗号化済みの電子書籍コンテンツについて前述したような復号化処理を施すためのデータ復号処理部８１３および画面に電子書籍コンテンツを表示する表示部８１４を備える。
ユーザが、画面に表示されている電子書籍コンテンツのメニュー中から所望の電子書籍コンテンツをユーザ指示処理部８１１を介して選択すると送受信部８１０は、サーバ装置８０２に対して選択されたコンテンツの送信要求を送信する。その後、サーバ装置８０２から暗号化された電子書籍コンテンツを送受信部８１０で受信すると、受信した電子書籍コンテンツを記憶装置８１２に格納する。記憶装置８１２に格納された暗号化された電子書籍コンテンツは、データ復号処理部８１３により復号されて、復号の結果得られた元の電子書籍コンテンツ８００はデータ表示部８１４により画面に表示される。この際、一度に表示可能なデータ量だけ復号化処理するようにしておくと、すべてのデータを復号する場合に比べて復号から表示までに要する時間を短縮できる。つまり、ブロック単位で暗号化された電子書籍コンテンツに対して、データ表示部８１４に関連の表示バッファのサイズに相当する数のブロック分だけ復号するようにしておけばよい。電子書籍コンテンツの場合、通常、最初に先頭ページを表示させるので、電子書籍コンテンツ８００の先頭から表示バッファのサイズに相当する数のブロック分を復号すればよい。
また、ユーザからユーザ指示処理部８１１を介してページめくりや音声出力などの指示が受理されると、その指示に必要なデータを記憶装置８１２から取得し、取得したデータをデータ復号処理部８１３で復号し、復号に伴い改ざんの有無を判定する。改ざん無しと判定されたときは、データ表示部８１４により表示させたり、図示されない音声出力部から音声を出力させたりする。データ復号処理部８１３においてデータが改ざん有りと判断された場合は、ユーザに通知して処理を中断するようにしてもよい。
本実施の形態では、電子書籍コンテンツを暗号化して配信する例を示したが、暗号化して配信される情報はこれに限定されず、音楽データや動画データやプログラムなどであってもよい。
（実施の形態４）
上述した実施の形態２の具体的な別の利用シーンを第１１図と第１２図を参照して説明する。本実施の形態では、デジタルコンテンツの配信システムを想定する。デジタルコンテンツの配信システムは、第９図に示された配信システムと同様のものを用いることとする。本実施の形態では、デジタルコンテンツとして電子書籍コンテンツに限らず、音楽データおよび映像データなども適用できる。
通常、デジタルコンテンツは、ネットワークを介して取得できる。このとき、ネットワークを介して送受信されるデータについては第三者による何らの不正も行なわれることがないとする。つまり、正規に取得できるデータのみがネットワークを介して転送されるとする。しかしながら、一般に、ネットワークを介してデータ通信を行なうと、通信エラーなどによりデータが欠落することがある。このような場合、正規に取得したデジタルコンテンツは再生できなくなり、再生可能とするためには、再度、該デジタルコンテンツのすべてのデータを取得する必要がある。本実施の形態では、ネットワークを介した通信途上でデータが欠落した場合の対処手順について説明する。
第１１図には、第９図のサーバ装置８０２とデータ表示装置８０３とにおけるデータが模式的に示される。つまり、サーバ装置８０２のコンテンツデータベース８０９に格納されている暗号化データ３０５に対応のデジタルコンテンツを、ネットワーク８０４を経由してデータ表示装置８０３に送信して、記憶装置８１２に格納された状態が示される。デジタルコンテンツに対応の暗号化データ３０５は実施の形態２で述べたように暗号化ブロックＣＢｋおよび対応の改ざん検出用データＢＤｋごとに分割された構造を有する。データ表示装置８０３の記憶装置８１２に格納されているデジタルコンテンツに対応の暗号化データ３０５の暗号化ブロックＣＢ２のデータに関して通信エラーなどによるデータの改ざんが起こっているとする。
データ表示装置８０３における再生時（復号時）において、暗号化ブロックＣＢ２において対応の改ざん検出用データＢＤ２に基づいて改ざんがあることが検出されると、データ表示装置８０３はサーバ装置８０２に対して暗号化ブロック、ＣＢ２について改ざんがなされていることを通知する。サーバ装置８０２は該通知を受信すると、改ざんされた暗号化ブロックＣＢ２と対応の改ざん検出用データＢＤ２のみを、再度、データ表示装置８０３に送信する。データ表示装置８０３はこれらデータを再度受信することによって再生が可能となる。この場合、コンテンツ全体（暗号化データ３０５全体）が再度サーバ装置８０２からデータ表示装置８０３に送信されるわけでわないから、改ざんが検出されて再度、正規のデータを通信により取得する場合でも、通信時間を短くすることができる。
第１１図を参照して示したデータ表示装置８０３における手順を第１２図のフローチャートに従い説明する。今、あるデジタルコンテンツを複合化処理して再生しようとする。まず、データ表示装置８０３は暗号化データ３０５の第１番目の暗号化ブロックＣＢ１と改ざん検出用データＢＤ１を取得する（Ｓ１３０１）。取得した暗号化ブロックＣＢ１を復号する（Ｓ１３０２）。この復号は、実施の形態２と同様の方法で行なう。復号処理情報を基に改ざん検出用データを生成する（Ｓ１３０３）。暗号化ブロックＣＢ１に付加されていた対応の改ざん検出用データＢＤ１とステップＳ１３０３で生成された改ざん検出用データとが一致するか否か判定する（Ｓ１３０４）。判定結果、一致すれば、復号かデータを取得して（Ｓ１３０５）、次の暗号化ブロックがあるか判定し（Ｓ１３０７）、あればＳ１３０１の処理に戻り、なければ終了する。
判定結果、不一致なら暗号化ブロックＣＢ１は、すなわち暗号化データＣＢ１が示すブロックＢ１は改ざんされたと判断し、暗号化ブロックＣＢ１をネットワーク８０４を介し再度、サーバ装置８０２から取得する（Ｓ１３０６）。以上の手順により、ネットワーク８０４の通信エラーなどによる改ざんを修復できる。
第１１図では、デジタルコンテンツは、データ再生装置８０３の記憶装置８１２に格納されていたが、ネットワーク８０４からデジタルコンテンツを受信しながら再生を行なう場合もある。たとえば、音楽や映像を再生する場合、コンテンツの先頭から順に再生を行なうため、データの先頭部分があれば再生を開始できる。つまり、ネットワーク８０４を介してデータを受信しながら再生することができる。第１３図は、このような場合について、サーバ装置８０２とデータ表示装置８０３とにおけるデータを模式的に示している。
第１３図ではサーバ装置８０２のコンテンツデータベース８０９に格納されている暗号化データ３０５のデジタルコンテンツを、ネットワーク８０４を経由して、データ表示装置８０３へ送信する状態を示す。第１３図では、サーバ装置８０２から、暗号化ブロックＣＢ１およびＣＢ２のみがデータ表示装置８０３に転送済みで、以降の暗号化ブロックは未取得データ９００で示される状態である。データ表示装置８０３では、データ復号処理部８１３により、複合化処理を開始するため暗号化ブロックＣＢ１から順にデータを読込み、読込んだ暗号化ブロックＣＢ１のデータについて復号化処理と改ざん検出とが行なわれる。検出結果、改ざんされていなければ、そのまま再生処理が行なわれる。今、読込んだ暗号化ブロックＣＢ２について、もし改ざんされていれば、データ表示装置８０３は暗号化ブロックＣＢ２が改ざんされていることを示す情報９０１をサーバ装置８０２に通知して、暗号化ブロックＣＢ２と対応の改ざん検出用データＢＤ２を再度、サーバ装置８０２から受信して取得する。以下同様に、次のブロックを取得しながら再生処理を続ける。
このような手順により転送時間が短くなれば、ネットワーク８０４を経由して暗号化データ３０５を取得し復号し再生する処理を途切れることなく行なうことが可能になる。
（実施の形態５）
上述した各実施の形態で示した暗号化処理および復号化処理それぞれの一部または全部はプログラム（コンピュータによる処理に適合した命令の順番づけられた列からなるもの）の形態として提供することも可能であるし、それらの処理を実行するハードウェアロジックとして提供することも可能である。
プログラムとして提供する場合は、そのプログラムを情報処理装置にインストールすることにより、所望の処理を実行することができる。その際、そのプログラムはコンピュータが読取可能な記録媒体に予め記録して提供することも可能であるし、ネットワークを介してサーバ装置などから情報処理装置にダウンロードする形態として提供することも可能であるし、予め情報処理装置にインストールした状態で提供することも可能である。
第１４図には、上述の各実施の形態に係る暗号化処理または複合化処理のプログラムを実行する情報処理装置の構成が示される。第１４図の構成は第９図のコンテンツ作成装置８０１、サーバ装置８０２およびデータ表示装置８０３それぞれの構成に対応する。第１４図を参照して情報処理装置は、液晶またはＣＲＴ（陰極線管）などからなるモニタ１１０、キーボード１５０、マウス１６０、ＣＰＵ（中央処理装置の略）１２２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはＲＡＭ（ランダムアクセスメモリの略）を含んで構成されるメモリ１２４、固定ディスク１２６、ＦＤ（フレキシブルディスク）１３２が着脱自在に装着されて、装着されたＦＤ１３２をアクセスするＦＤ駆動装置１３０、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ１４２をアクセスするＣＤ−ＲＯＭ駆動装置１４０、インターネットなどの各種のネットワークが適用されるネットワーク８０４と該情報処理装置を接続するための通信インターフェイス１８０を含む。これらの各部はバスを介して接続される。情報処理装置には、カセット形式の磁気テープが着脱自在に装着されて磁気テープをアクセスする磁気テープ装置が設けられても良い。
本実施の形態では、上述した記録媒体として、第１４図の情報処理装置で処理が行なわれるために必要なメモリ、たとえばメモリ１２４そのものであってもよいし、また図示されない磁気テープ装置、ＦＤ駆動装置１３０およびＣＤ−ＲＯＭ駆動装置１４０などのプログラム読取装置に装着されることで読取り可能な記録媒体である図示されない磁気テープ、ＦＤ１３２およびＣＤ−ＲＯＭ１４２であってもよい。いずれの場合においても、記録媒体に格納されているプログラムはＣＰＵ１２２によりアクセスされて実行されてもよいし、あるいはいずれの場合もプログラムは一旦、記録媒体から読出されて、第１４図の所定の記憶エリア、たとえばメモリ１２４の記憶エリアにロードされて、ＣＰＵ１２２により読出されて実行されてもよい。このロード用のプログラムは、予め当該情報処理装置に格納されているものとする。
ここで、上述した記録媒体は情報処理装置本体と分離可能に構成される記録媒体であり、固定的なプログラムを担持する媒体であってよい。たとえば、磁気テープやカセットテープなどのテープ系、ＦＤ１３２や固定ディスク１２６などの磁気ディスクやＣＤ−ＲＯＭ１４２／ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）、フラッシュＲＯＭなどによる半導体メモリなどである。
また、本実施の形態においては、情報処理装置はネットワーク８０４と接続可能であるから、上述の記録媒体はネットワーク８０４からプログラムがダウンロードされることにより流動的に該プログラムを担持する記録媒体であってもよい。記録媒体にネットワーク８０４からプログラムがダウンロードされる場合には、ダウンロード用プログラムは予め当該情報処理装置本体に格納しておくか、別の記録媒体から予め当該情報処理装置本体にインストールされてよい。
なお記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
以上のように各実施の形態によれば、改ざん検出機能を有する暗号化処理において、暗号化処理に伴い生成される変換パラメータ値を改ざん検出用データとして利用しているので、改ざん検出用データを算出するための処理を省略することができ、暗号化処理に係る量を軽減できる。復号化処理についても同様に処理量を軽減できる。その結果、暗号化処理および複合化処理に関する負荷は軽減されて、処理を高速化できる。
また、暗号化対象データをブロック単位で処理し、ブロック単位で改ざん有無の判定を行なえるので、データが改ざんされている場合、暗号化対象データのうち改ざんされた範囲（ブロック）のデータを限定することが容易である。また、その場合、改ざんされたブロック以外のデータを正常に復号化することができる。また、音楽、映像、電子書籍のようにデータを時系列に再生するようなコンテンツの場合、必要な部分（ブロック）だけ、先行して復号することができるため、すべてのデータの復号化処理を終える前に、再生を開始することが可能となる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
第１図は、実施の形態１の暗号化処理のフローチャートである。
第２図は、実施の形態１の復号化処理のフローチャートである。
第３図は、実施の形態１の暗号化処理と復号化処理のデータの流れを模式的に示す図である。
第４Ａ図および第４Ｂ図は、実施の形態１の暗号化処理と復号化処理の具体例を説明するための模式図である。
第５図は、実施の形態１の暗号化処理の具体例を説明するための図である。
第６Ａ図、第６Ｂ図および第６Ｃ図は、実施の形態２に係るデータ構造の一例を示す図である。
第７図は、実施の形態２の暗号化処理のフローチャートである。
第８図は、実施の形態２の復号化処理のフローチャートである。
第９図は、実施の形態３に係る配信システムの構成図である。
第１０Ａ図と第１０Ｂ図は、実施の形態３に係る電子書籍コンテンツのデータ構造の一例を示す図である。
第１１図は、実施の形態４に係る復号化処理のデータの流れを示す模式図である。
第１２図は、実施の形態４の復号化処理のフローチャートである。
第１３図は、実施の形態４の復号化処理のデータの流れを示す模式図である。
第１４図は、実施の形態５に係る情報処理装置の構成図である。
第１５図は、従来の暗号化処理のフローチャートである。
第１６図は、従来の暗号化処理と復号化処理のデータの流れを説明するための模式図である。
【図１】
2003013054.tif 000003
【図２】
2003013054.tif 000004
【図３】
2003013054.tif 000005
【図４Ａ】
2003013054.tif 000006
【図４Ｂ】
2003013054.tif 000007
【図５】
2003013054.tif 000008
【図６Ａ】
2003013054.tif 000009
【図６Ｂ】
2003013054.tif 000010
【図６Ｃ】
2003013054.tif 000011
【図７】
2003013054.tif 000012
【図８】
2003013054.tif 000013
【図９】
2003013054.tif 000014
【図１０Ａ】
2003013054.tif 000015
【図１０Ｂ】
2003013054.tif 000016
【図１１】
2003013054.tif 000017
【図１２】
2003013054.tif 000018
【図１３】
2003013054.tif 000019
【図１４】
2003013054.tif 000020
【図１５】
2003013054.tif 000021
【図１６】
2003013054.tif 000022
【手続補正書】
【提出日】平成15年6月10日(2003.6.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２０
【補正方法】変更
【補正の内容】
【請求項２０】
予め複数のブロックに分割された暗号化データの中の所定ブロックから、一部分のデータを順次抽出する抽出手段と、
前記抽出手段により前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出手段により今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成手段と、
前記データ生成手段により算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記データ生成手段により生成された該所定ブロックに対応の前記復号化データを再生するかしないかを判定する判定手段とを備える、暗号化データの再生装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２１
【補正方法】変更
【補正の内容】
【請求項２１】
複数のブロックに予め分割された暗号化データを通信により受信する受信手段（８１０）と、
前記受信手段により受信された前記暗号化データの複数ブロックの中の所定ブロックから、一部分のデータを順次抽出する抽出手段と、
前記抽出手段により前回抽出された前記一部分のデータの復号化結果に基づいて、前記抽出手段により今回抽出された前記一部分のデータの前記復号化結果を順次算出し、順次算出される前記復号化結果に基づいて復号化データを生成するデータ生成手段（８１３）と、
前記データ生成手段により算出される最終の前記復号化結果を示す復号結果データと、前記所定ブロックに予め対応付けられた該所定ブロックの改ざんを検出するための改ざん検出用データとを比較して、比較結果に基づいて前記暗号化データの前記通信におけるエラーを検出するエラー検出手段とを備える、暗号化データの通信装置。
【国際調査報告】
2003013054.tif 000023
2003013054.tif 000024
2003013054.tif 000025
2003013054.tif 000026