(57)【特許請求の範囲】
【請求項１】
入力データと非暗号化データとが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記非暗号化データとを配信するデータ配信装置であって、
前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段と、
このブロック暗号処理手段が生成した暗号化データと前記非暗号化データとを多重化して、この多重化の構成を記述したヘッダと前記非暗号化データと前記暗号化データとを配信データとして配信するデータ配信手段と、
を備えることを特徴とするデータ配信装置。
【請求項２】
入力データと、非暗号化データ及びその識別子とが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記識別子とを対応付けるとともに、要求に応じて前記暗号化データを配信するデータ配信装置であって、
前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段と、
前記暗号化データと、当該暗号化データのブロック暗号処理に用いられた前記非暗号化データの前記識別子とを対応させて記憶するデータ記憶手段と、
データ要求を受信すると、当該データ要求に含まれる前記識別子と一致する前記識別子に対応する前記暗号化データをデータ記憶手段から取得する要求データ抽出手段と、
この要求データ抽出手段が取得した暗号化データを配信するデータ配信手段と、
を備えることを特徴とするデータ配信装置。
【請求項３】
前記データ圧縮手段が算出するハッシュ値の長さと、前記ブロック暗号処理手段におけるブロック暗号処理で用いるアルゴリズムのブロック長とを比較し、前記ハッシュ値の長さが前記ブロック長より短い場合には、前記ハッシュ値にパディングを施し、前記ブロック長の長さと等しいハッシュ値ブロックとし、前記ハッシュ値の長さが前記ブロック長より長い場合には、前記ハッシュ値に必要に応じてパディングを施して長さを前記ブロック長の整数倍とした後、前記ブロック長ごとに分割して前記ブロック長の複数ブロックであるハッシュ値分割ブロックとし、前記ハッシュ値ブロック又は１つ以上の前記ハッシュ値分割ブロックを前記ブロック暗号処理手段に出力するビット長調整手段をさらに備える
ことを特徴とする請求項１又は請求項２に記載のデータ配信装置。
【請求項４】
前記ブロック暗号処理手段は、
前記入力データを前記ブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、
前記利用モードのブロックを単位として、
前記複数のハッシュ値分割ブロックのうちの１つを前記初期ベクトルとして、当該初期ベクトルと、前記複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、１番目の前記平文ブロックとから、１番目の暗号ブロックを生成し、
ｉ−１番目（ｉは２以上の整数）の前記ブロックの出力と、前記複数のハッシュ値分割ブロックのうちの１つと、ｉ番目の前記平文ブロックとから、ｉ番目の暗号ブロックを生成し、
生成された前記暗号ブロックを連結して前記暗号化データを生成する
ことを特徴とする請求項３に記載のデータ配信装置。
【請求項５】
前記ブロック暗号処理手段は、
前記複数のハッシュ値が入力された場合において、
前記入力データを前記ブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、
前記利用モードのブロックを単位として、
前記複数のハッシュ値分割ブロックのうちの１つを前記初期ベクトルとして、当該初期ベクトルと、１番目の前記平文ブロックとから、１番目の暗号ブロックを生成し、
ｉ−１番目（ｉは２以上の整数）の前記ブロックの出力と前記複数のハッシュ値分割ブロックのうちの１つとの排他的論理和の出力と、ｉ番目の前記平文ブロックとから、ｉ番目の暗号ブロックを生成し、
生成された前記暗号ブロックを連結して前記暗号化データを生成する
ことを特徴とする請求項３に記載のデータ配信装置。
【請求項６】
前記ブロック暗号処理手段は、
前記複数のハッシュ値分割ブロックが入力された場合において、
前記複数のハッシュ値分割ブロックの数をＭ個とすると、前記暗号ブロックを生成する際に、１番目からＭ番目までのハッシュ値分割ブロックを順次繰り返し用いる
ことを特徴とする請求項４又は請求項５に記載のデータ配信装置。
【請求項７】
非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するデータ受信装置であって、
ヘッダと前記非暗号化データと前記暗号化データとを含んだ配信データを受信するデータ受信手段と、
前記ヘッダに記述された多重化構成の情報に基づき、前記配信データから前記非暗号化データと前記暗号化データとを分離するデータ分離手段と、
このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記データ分離手段が分離した暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段と、
このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段と、
を備えることを特徴とするデータ受信装置。
【請求項８】
非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するデータ受信装置であって、
データ要求を送信するデータ要求手段と、
非暗号化データ配信装置からヘッダと前記非暗号化データとを受信するとともに、データ配信装置から前記暗号化データを受信するデータ受信手段と、
前記ヘッダと前記非暗号化データとを分離するデータ分離手段と、
このデータ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した前記識別子を前記データ要求手段へ出力するデータ選択手段と、
このデータ選択手段が選択した非暗号化データからハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段と、
このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段と、
を備え、
前記データ要求手段は、
前記非暗号化データ配信装置へ前記データ要求を送信するとともに、前記データ選択手段から前記識別子が入力された場合には、前記データ配信装置へ当該識別子を含んだ前記データ要求を送信する
ことを特徴とするデータ受信装置。
【請求項９】
前記データ圧縮手段が算出するハッシュ値の長さと、前記ブロック復号処理手段におけるブロック復号処理で用いるアルゴリズムのブロック長とを比較し、前記ハッシュ値の長さが前記ブロック長より短い場合には、前記ハッシュ値にパディングを施し、前記ブロック長の長さと等しいハッシュ値ブロックとし、前記ハッシュ値の長さが前記ブロック長より長い場合には、前記ハッシュ値に必要に応じてパディングを施して長さを前記ブロック長の整数倍とした後、前記ブロック長ごとに分割して前記ブロック長の複数ブロックであるハッシュ値分割ブロックとし、前記ハッシュ値ブロック又は１つ以上の前記ハッシュ値分割ブロックを前記ブロック復号処理手段に出力するビット長調整手段をさらに備える
ことを特徴とする請求項７又は請求項８に記載のデータ受信装置。
【請求項１０】
前記ブロック復号処理手段は、
前記暗号化データを前記ブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、
前記利用モードのブロックを単位として、
前記複数のハッシュ値分割ブロックのうちの１つを前記初期ベクトルとして、当該初期ベクトルと、前記複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、１番目の前記暗号ブロックとから、１番目の平文ブロックを生成し、
ｉ−１番目（ｉは２以上の整数）の前記ブロックの出力と、前記複数のハッシュ値分割ブロックのうちの１つと、ｉ番目の前記暗号ブロックとから、ｉ番目の平文ブロックを生成し、
生成された前記平文ブロックを連結して前記復号データを生成する
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１１】
前記ブロック復号処理手段は、
前記暗号化データを前記ブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、
前記利用モードのブロックを単位として、
前記複数のハッシュ値分割ブロックのうちの１つを前記初期ベクトルとして、当該初期ベクトルと、１番目の前記暗号ブロックとから、１番目の平文ブロックを生成し、
ｉ−１番目（ｉは２以上の整数）の前記ブロックの出力と前記複数のハッシュ値分割ブロックのうちの１つとの排他的論理和の出力と、ｉ番目の前記暗号ブロックとから、ｉ番目の平文ブロックを生成し、
生成された前記平文ブロックを連結して前記復号データを生成する
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１２】
前記ブロック復号処理手段は、
前記複数のハッシュ値分割ブロックが入力された場合において、
前記複数のハッシュ値分割ブロックの数をＭ個とすると、前記平文ブロックを生成する際に、１番目からＭ番目までのハッシュ値分割ブロックを順次繰り返し用いる
ことを特徴とする請求項１０又は請求項１１に記載のデータ受信装置。
【請求項１３】
入力データと非暗号化データとが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記非暗号化データとを配信するために、コンピュータを、
前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段、
このブロック暗号処理手段が生成した暗号化データと前記非暗号化データとを多重化して、この多重化の構成を記述したヘッダと前記非暗号化データと前記暗号化データとを配信データとして配信するデータ配信手段、
として機能させることを特徴とするデータ配信プログラム。
【請求項１４】
入力データと、非暗号化データ及びその識別子とが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記識別子とを対応付けるとともに、要求に応じて前記暗号化データを配信するために、コンピュータを、
前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成し、当該暗号化データと、当該暗号化データのブロック暗号処理に用いられた前記非暗号化データの前記識別子とを対応させてデータ記憶手段に記憶させるブロック暗号処理手段、
データ要求を受信すると、当該データ要求に含まれる前記識別子と一致する前記識別子に対応する前記暗号化データをデータ記憶手段から取得する要求データ抽出手段、
この要求データ抽出手段が取得した暗号化データを配信するデータ配信手段、
として機能させることを特徴とするデータ配信プログラム。
【請求項１５】
非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するために、コンピュータを、
ヘッダと前記非暗号化データと前記暗号化データとを含んだ配信データを受信するデータ受信手段、
前記ヘッダに記述された多重化構成の情報に基づき、前記配信データから前記非暗号化データと前記暗号化データとを分離するデータ分離手段、
このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記データ分離手段が分離した暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段、
このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段、
として機能させることを特徴とするデータ受信プログラム。
【請求項１６】
非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するために、コンピュータを、
データ要求を送信するデータ要求手段、
非暗号化データ配信装置からヘッダと前記非暗号化データとを受信するとともに、データ配信装置から前記暗号化データを受信するデータ受信手段、
前記ヘッダと前記非暗号化データとを分離するデータ分離手段、
このデータ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した前記識別子を前記データ要求手段へ出力するデータ選択手段、
このデータ選択手段が選択した非暗号化データからハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段、
このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段、
として機能させ、
前記データ要求手段は、
前記非暗号化データ配信装置へ前記データ要求を送信するとともに、前記データ選択手段から前記識別子が入力された場合には、前記データ配信装置へ当該識別子を含んだ前記データ要求を送信する
ことを特徴とするデータ受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ等の機器が、機密性の高いデータとそれに関連する平文のデータとを配信する際に、平文データのハッシュ値を用いて機密データを暗号化することによってそれらのデータを関連付け、平文データの真正性の検証を効率的に行うことのできる技術に関する。
【背景技術】
【０００２】
インターネット等のネットワークを介して、映像コンテンツや音声コンテンツ等の電子データを送受する機会が増加している。ネットワークを介したデータの配信では、データの改ざんや不正利用が懸念されるため、重要なデータは暗号化して扱うことが多い。一方で、そのデータに関する利用条件やタイトル等のメタデータは、検索や事前の判断等に利用されるため、暗号化をせずに扱うことが望ましい。
【０００３】
このように、ネットワーク上で、暗号化データと非暗号化データとをあわせて送受する場合、悪意のある利用者による非暗号化データ部分の改ざんが問題となる。改ざんがなされて誤った利用条件等が記述されたデータが配信されれば、映像コンテンツや音声コンテンツ等が権利者の意図しない条件下で利用される恐れがある。そのため、非暗号化データの改ざんを検知できる仕組みが必要となる。
【０００４】
一般に、データの真正性検証を行う技術として、メッセージ認証コード（ＭＡＣ；Message Authentication Code）を用いた方法が知られている。この方法では、送信側及び受信側で鍵を共有して、送信側が、送信したい任意長のメッセージから鍵を用いてＭＡＣを生成し、メッセージとＭＡＣとを送信する。これを受信した受信側は、事前に共有した鍵を用いてメッセージからＭＡＣを生成し、受信したＭＡＣと照合することによって、改ざんを検知する方法である（非特許文献１）。
【０００５】
また、特許文献１では、コンテンツサーバにおいてメタデータの一部に対するハッシュ値を生成し、それに対して付与したデジタル署名とあわせてメタデータ内部に格納することで、受信側がメタデータの改ざんや変更を検知可能とする発明が記載されている。この方法によれば、データの受信側は、デジタル署名とハッシュ値とを用いて、メタデータの認証を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００８−５３９５２５号  公報
【非特許文献】
【０００７】
【非特許文献１】今井秀樹、“暗号のおはなし  情報セキュリティの基盤  改訂版”、日本規格協会、pp. 65-72、149-152、2003年5月.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、前記の方法では、非暗号化データの改ざん検知と、暗号化データの復号とは、個別の処理であるため、例え非暗号化データの改ざんが検知されたとしても、それと関連づけて配信される暗号化データは正常に復号されてしまう。そのため利用者は、正しい利用条件等が記述された非暗号化データを把握していない状況下でも、復号したデータを扱うことが可能となり、不正利用を招く恐れがあるという課題がある。
【０００９】
また、前記の方法では、送信側における非暗号化データの改ざん検知用認証子の生成と暗号化データの生成（暗号化）、及び、受信側における非暗号化データの改ざん検知と暗号化データの復号は、それぞれ個別の処理であるため、処理効率が悪いという課題がある。
【００１０】
また、前記の方法では、配信するファイルのデータ構造にハッシュ値やデジタル署名等を格納するための個別領域を設けて送信するか、又は、別途改ざん検知用認証子を送信する必要があり、通信の効率の悪化につながるという課題がある。
【００１１】
本発明は、かかる課題を解決するためになされたものであり、暗号化データから非暗号化データの改ざん検知を可能とし、改ざんが認められた場合には、暗号化データの正常な復号を不能とする技術を提供することを目的とする。
また、データの送信側における改ざん検知用認証子の生成と暗号化、及び、データの受信側における改ざん検知と復号をそれぞれ１つの処理として行う技術を提供することを目的とする。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、データの送信側において暗号化に必要となる計算量を同一として、改ざん検知用認証子の生成に必要となる計算量を削減すること、及び、データの受信側において復号に必要となる計算量を同一として、改ざん検知に必要となる計算量を削減することを目的とする。
また、非暗号化データの改ざんを検知するための余分なデータを配信データに含めることなく、データの受信側が、非暗号化データの改ざん等の検知を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記課題を解決するために創案されたものであり、まず、請求項１に記載のデータ配信装置は、入力データと非暗号化データとが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと非暗号化データとを配信するデータ配信装置であって、データ圧縮手段と、ブロック暗号処理手段と、データ配信手段と、を備える構成とした。
【００１３】
かかる構成において、データ配信装置は、データ圧縮手段によって、１以上の非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。ここで、ハッシュ関数には、例えば、ＳＨＡ−２５６、ＳＨＡ−５１２等を用いることができる。
【００１４】
なお、本発明において、入力データとは、例えば、映像コンテンツや音声コンテンツ等のデータである。また、非暗号化データとは、例えば、このデータに対応するタイトルや利用条件等のメタデータである。
【００１５】
そして、データ配信装置は、ブロック暗号処理手段によって、ハッシュ値を初期ベクトル（ＩＶ：Initial Vector）として、予め定めた利用モードにより、入力データをブロック暗号処理して暗号化データを生成する。ここで、ブロック暗号処理の利用モードとは、ＣＢＣ（Cipher Block Chaining）モード、ＯＦＢ（Output FeedBack）モード、ＣＦＢ（Cipher FeedBack）モード等の利用モードを指す。後記するブロック復号処理の利用モードについても同様である。
【００１６】
なお、本発明において、ブロック暗号処理に用いる暗号化アルゴリズムには、例えば、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）等があるが、特定の暗号化アルゴリズムに限定されるものではない。暗号化アルゴリズムに対応する復号アルゴリズムについても同様である。
【００１７】
そして、データ配信装置は、データ配信手段によって、ブロック暗号処理手段が生成した暗号化データと非暗号化データとを多重化して、この多重化の構成を記述したヘッダと非暗号化データと暗号化データとを配信データとして配信する。
【００１８】
また、請求項２に記載のデータ配信装置は、入力データと、非暗号化データ及びその識別子とが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと識別子とを対応付けて記憶するとともに、要求に応じて暗号化データを配信するデータ配信装置であって、データ圧縮手段と、ブロック暗号処理手段と、データ記憶手段と、要求データ抽出手段と、データ配信手段と、を備える構成とした。
【００１９】
かかる構成において、データ配信装置は、データ圧縮手段によって、非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。そして、データ配信装置は、ブロック暗号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、入力データをブロック暗号処理して暗号化データを生成する。
【００２０】
また、データ配信装置は、データ記憶手段によって、暗号化データと、当該暗号化データのブロック暗号処理に用いられた非暗号化データの識別子とを対応させて記憶する。そして、データ配信装置は、データ要求抽出手段によって、データ要求を受信すると、当該データ要求に含まれる識別子と一致する識別子に対応する暗号化データをデータ記憶手段から取得する。
【００２１】
また、データ配信装置は、データ配信手段によって、この要求データ抽出手段が取得した暗号化データを配信する。
【００２２】
また、請求項３に記載のデータ配信装置は、請求項１又は請求項２に記載のデータ配信装置において、データ圧縮手段が算出するハッシュ値の長さと、ブロック暗号処理手段におけるブロック暗号処理で用いるアルゴリズムのブロック長とを比較し、ハッシュ値の長さがブロック長より短い場合には、ハッシュ値にパディングを施し、ブロック長の長さと等しいハッシュ値ブロックとし、ハッシュ値の長さがブロック長より長い場合には、ハッシュ値に必要に応じてパディングを施して長さをブロック長の整数倍とした後、ブロック長ごとに分割して複数のブロック（以下、ハッシュ値分割ブロックとする。）とし、ハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックをブロック暗号処理手段に出力するビット長調整手段をさらに備える構成とした。
【００２３】
かかる構成により、データ配信装置は、ビット長調整手段によって、ハッシュ値の長さとブロック暗号処理で用いるアルゴリズムのブロック長とが異なる場合でも、非暗号化データから生成されたハッシュ値と関連付けて入力データをブロック暗号処理することができる。
【００２４】
また、請求項４に記載のデータ配信装置は、請求項３に記載のデータ配信装置において、ブロック暗号処理手段が、入力データをブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの１つを初期ベクトルとして、当該初期ベクトルと、複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、１番目の平文ブロックとから、１番目の暗号ブロックを生成し、ｉ−１番目（ｉは２以上の整数）のブロックの出力と、複数のハッシュ値分割ブロックのうちの１つと、ｉ番目の前記平文ブロックとから、ｉ番目の暗号ブロックを生成し、生成された暗号ブロックを連結して暗号化データを生成することを特徴とする。
【００２５】
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成できる。
【００２６】
また、請求項５に記載のデータ配信装置は、請求項３に記載のデータ配信装置において、ブロック暗号処理手段が、入力データをブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの１つを初期ベクトルとして、当該初期ベクトルと、１番目の平文ブロックとから、１番目の暗号ブロックを生成し、ｉ−１番目（ｉは２以上の整数）のブロックの出力と複数のハッシュ値分割ブロックのうちの１つとの排他的論理和の出力と、ｉ番目の平文ブロックとから、ｉ番目の暗号ブロックを生成し、生成された暗号ブロックを連結して暗号化データを生成することを特徴とする。
【００２７】
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成できる。
【００２８】
また、請求項６に記載のデータ配信装置は、請求項４又は請求項５に記載のデータ配信装置において、ブロック暗号処理手段が、複数のハッシュ値分割ブロックが入力された場合において、ハッシュ値分割ブロックの数をＭ個とすると、暗号ブロックを生成する際に、１番目からＭ番目までのハッシュ値分割ブロックを順次繰り返し用いることを特徴とする。
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値全体にわたって、暗号化データと関連付けることができる。
【００２９】
また、請求項７に記載のデータ受信装置は、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するデータ受信装置であって、データ受信手段と、データ分離手段と、データ圧縮手段と、ブロック復号処理手段と、データ検証手段と、を備える構成とした。
【００３０】
かかる構成において、データ受信装置は、データ受信手段によって、ヘッダと非暗号化データと暗号化データとを含んだ配信データを受信する。そして、データ受信装置は、データ分離手段によって、ヘッダに記述された多重化構成の情報に基づき、配信データから非暗号化データと暗号化データとを分離する。
【００３１】
また、データ受信装置は、データ圧縮手段によって、このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。そして、データ受信装置は、ブロック復号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、暗号化データをブロック復号処理して復号データを生成する。
【００３２】
また、データ受信装置は、データ検証手段によって、ブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、復号データと予め設定されたフォーマットとが一致するならば非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定する。
【００３３】
また、請求項８に記載のデータ受信装置は、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するデータ受信装置であって、データ要求手段と、データ受信手段と、データ分離手段と、データ選択手段と、データ圧縮手段と、ブロック復号処理手段と、データ検証手段と、を備える構成とした。
【００３４】
かかる構成において、データ受信装置は、データ要求手段によって、データ要求を送信する。そして、データ受信装置は、データ受信手段によって、非暗号化データ配信装置からヘッダと非暗号化データとを受信するとともに、データ配信装置から暗号化データを受信する。
【００３５】
また、データ受信装置は、データ分離手段によって、ヘッダと非暗号化データとを分離する。そして、データ受信装置は、データ選択手段によって、データ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した識別子をデータ要求手段へ出力する。
【００３６】
また、データ受信装置は、データ圧縮手段によって、データ選択手段が選択した非暗号化データからハッシュ関数を用いてハッシュ値を算出する。そして、データ受信装置は、ブロック復号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、暗号化データをブロック復号処理して復号データを生成する。
【００３７】
また、データ受信装置は、データ検証手段によって、ブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、復号データと予め設定されたフォーマットとが一致するならば非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定する。
【００３８】
また、請求項９に記載のデータ受信装置は、請求項７又は請求項８に記載のデータ受信装置において、データ圧縮手段が算出するハッシュ値の長さと、ブロック復号処理手段におけるブロック復号処理で用いるアルゴリズムのブロック長とを比較し、ハッシュ値の長さがブロック長より短い場合には、ハッシュ値にパディングを施し、ブロック長の長さと等しいハッシュ値ブロックとし、ハッシュ値の長さがブロック長より長い場合には、ハッシュ値に必要に応じてパディングを施して長さをブロック長の整数倍とした後、ブロック長ごとに分割して複数のハッシュ値分割ブロックとし、ハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックをブロック復号処理手段に出力するビット長調整手段をさらに備える構成とした。
【００３９】
かかる構成により、データ受信装置は、ビット長調整手段によって、ハッシュ値のビット長とブロック復号処理のブロック長とが異なる場合でも、非暗号化データから生成されたハッシュ値を関連付けて暗号化データをブロック復号処理することができる。
【００４０】
また、請求項１０に記載のデータ受信装置は、請求項９に記載のデータ受信装置において、ブロック復号処理手段が、暗号化データをブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの１つを初期ベクトルとして、当該初期ベクトルと、複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、１番目の暗号ブロックとから、１番目の平文ブロックを生成し、ｉ−１番目（ｉは２以上の整数）のブロックの出力と、複数のハッシュ値分割ブロックのうちの１つと、ｉ番目の暗号ブロックとから、ｉ番目の平文ブロックを生成し、生成された平文ブロックを連結して復号データを生成することを特徴とする。
【００４１】
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
【００４２】
また、請求項１１に記載のデータ受信装置は、請求項９に記載のデータ受信装置において、ブロック復号処理手段が、暗号化データをブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの１つを初期ベクトルとして、当該初期ベクトルと、１番目の暗号ブロックとから、１番目の平文ブロックを生成し、ｉ−１番目（ｉは２以上の整数）のブロックの出力と複数のハッシュ値分割ブロックのうちの１つとの排他的論理和の出力と、ｉ番目の暗号ブロックとから、ｉ番目の平文ブロックを生成し、生成された平文ブロックを連結して復号データを生成することを特徴とする。
【００４３】
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
【００４４】
また、請求項１２に記載のデータ受信装置は、請求項１０又は請求項１１に記載のデータ受信装置において、ブロック復号処理手段が、複数のハッシュ値が入力された場合において、ハッシュ値分割ブロックの数をＭ個とすると、平文ブロックを生成する際に、１番目からＭ番目までのハッシュ値分割ブロックを順次繰り返し用いることを特徴とする。
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値全体にわたって関連付けられている暗号化データを復号することができる。
【００４５】
また、請求項１３に記載のデータ配信プログラムは、入力データと非暗号化データとが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと非暗号化データとを配信するために、コンピュータを、データ圧縮手段、ブロック暗号処理手段、データ配信手段、として機能させることを特徴とする。
【００４６】
また、請求項１４に記載のデータ配信プログラムは、入力データと、非暗号化データ及びその識別子とが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと識別子とを対応付けて記憶するとともに、要求に応じて暗号化データを配信するために、コンピュータを、データ圧縮手段、ブロック暗号処理手段、要求データ抽出手段、データ配信手段、として機能させることを特徴とする。
【００４７】
また、請求項１５に記載のデータ受信プログラムは、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するために、コンピュータを、データ受信手段、データ分離手段、データ圧縮手段、ブロック復号処理手段、データ検証手段、として機能させることを特徴とする。
【００４８】
また、請求項１６に記載のデータ受信プログラムは、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するために、コンピュータを、データ要求手段、データ受信手段、データ分離手段、データ選択手段、データ圧縮手段、ブロック復号処理手段、データ検証手段、として機能させることを特徴とする。
【発明の効果】
【００４９】
請求項１、２、１３、及び、１４に記載の発明によれば、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられる。このため、受信側で暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知（真正性を検証）させることができる。
また、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられる。このため、受信側で非暗号化データの改ざんの有無によって暗号化データを復号させないような構成を備えなくとも、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号できなくすることができる。
また、非暗号化データから算出したハッシュ値を初期ベクトルに用いてブロック暗号処理を行い暗号化データを生成しているため、非暗号化データのための改ざん検知用認証子を別途生成する必要がなく、暗号処理と改ざん検知用認証子の生成を１つの処理で行うことができる。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量を同一として、改ざん検知用認証子の生成に必要となる計算量を削減することができる。
また、非暗号化データのための改ざん検知用認証子を送信する必要がない。
【００５０】
さらに、請求項２及び請求項１４に記載の発明によれば、非暗号化データ及びその識別子が入力され、非暗号化データと関連付けられた暗号化データは、非暗号化データの識別子とともに記憶され、要求に応じて配信される。
このため、非暗号化データを配信する装置とは異なる装置から、暗号化データを配信しても、受信側で暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知させることができる。
また、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号できなくすることができる。
【００５１】
請求項３に記載の発明によれば、データ圧縮手段によって生成される非暗号化データのハッシュ値の長さによらず、非暗号化データと暗号化データとを関連付けることができる。
【００５２】
請求項４及び請求項５に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックをブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成するため、非暗号化データと暗号化データとの関連付けを強化できる。
【００５３】
請求項６に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックの全てを、暗号処理のブロック全体にわたって関連付けることができるため、非暗号化データと暗号化データとの関連付けを強化できる。
【００５４】
請求項７、８、１５、及び、１６に記載の発明によれば、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられている。このため、受信した暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知（真正性を検証）することができる。
また、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられている。このため、非暗号化データの改ざんの有無によって暗号化データを復号させないような構成を備えなくとも、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号することができない。
また、非暗号化データから算出したハッシュ値を初期ベクトルに用いてブロック暗号処理を行い生成された暗号化データを受信するため、非暗号化データのための改ざん検知用認証子を別途生成する必要がなく、暗号化データの復号処理と認証子の検証を１つの処理で行うことができる。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号処理に必要となる計算量を同一として、改ざん検知に必要となる計算量を削減することができる。
また、非暗号化データのための改ざん検知用認証子を受信する必要がない。
【００５５】
さらに、請求項８及び請求項１６に記載の発明によれば、非暗号化データは、非暗号化データ配信装置から受信され、暗号化データは、データ配信装置から受信される。
このため、非暗号化データを配信する装置とは異なる装置から、暗号化データを受信しても、受信した暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知（真正性を検証）することができる。
また、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号することができない。
【００５６】
請求項９に記載の発明によれば、データ圧縮手段によって生成される非暗号化データのハッシュ値の長さによらず、非暗号化データと関連付けられた暗号化データを復号することができる。
【００５７】
請求項１０及び請求項１１に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックをブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
【００５８】
請求項１２に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックの全てが暗号処理のブロック全体にわたって関連付けられている暗号化データを復号することができる。
【図面の簡単な説明】
【００５９】
【図１】第１実施形態、及び、第２実施形態に係るデータ配信システムの構成を示すブロック図である。
【図２】第１実施形態に係るデータ配信装置の構成を示すブロック図である。
【図３】第1実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。
【図４】第1実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。
【図５】第1実施形態に係るデータ受信装置の構成を示すブロック図である。
【図６】第１実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。
【図７】第１実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。
【図８】第２実施形態に係るデータ配信装置の構成を示すブロック図である。
【図９】第２実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。
【図１０】第２実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。
【図１１】第２実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。
【図１２】第２実施形態に係るデータ受信装置の構成を示すブロック図である。
【図１３】図９〜図１１の一部を置換して、第２実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。
【図１４】第３実施形態、及び、第４実施形態に係るデータ配信システムの構成を示すブロック図である。
【図１５】第３実施形態、及び、第４実施形態に係る非暗号化データ配信装置の構成を示すブロック図である。
【図１６】第３実施形態に係る暗号化データ配信装置の構成を示すブロック図である。
【図１７】第３実施形態に係るデータ受信装置の構成を示すブロック図である。
【図１８】第４実施形態に係る暗号化データ配信装置の構成を示すブロック図である。
【図１９】第４実施形態に係るデータ受信装置の構成を示すブロック図である。
【図２０】第１実施形態に係るデータ配信装置の動作を示すフローチャートである。
【図２１】第１実施形態に係るデータ受信装置の動作を示すフローチャートである。
【図２２】第２実施形態に係るデータ配信装置の動作を示すフローチャートである。
【図２３】第２実施形態に係るデータ受信装置の動作を示すフローチャートである。
【図２４】第３実施形態、及び、第４実施形態に係る非暗号化データ配信装置の動作を示すフローチャートである。
【図２５】第３実施形態に係る暗号化データ配信装置の動作を示すフローチャートである。
【図２６】第３実施形態に係るデータ受信装置の動作を示すフローチャートである。
【図２７】第４実施形態に係る暗号化データ配信装置の動作を示すフローチャートである。
【図２８】第４実施形態に係るデータ受信装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００６０】
以下、本発明の実施形態について適宜図面を参照しながら説明する。
なお、各実施形態において、同一の機能を有する手段には同一の符号を付して、その説明を省略する。
【００６１】
［データ配信システム（第１実施形態・第２実施形態）の構成］
図１を参照して、本発明の第１実施形態及び第２実施形態に係るデータ配信システム１Ａ（１）の構成について説明する。
【００６２】
データ配信システム１Ａ（１）は、データ配信装置２が生成した配信データを、ネットワーク４を介してデータ受信装置３に配信するもので、データ配信装置２と、データ受信装置３と、ネットワーク４とを備える。
【００６３】
データ配信装置２は、ネットワーク４に接続され、ヘッダと、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と、暗号化データＥ（Ａ）とからなる配信データを生成して、ネットワーク４に配信するものである。
データ受信装置３は、ネットワーク４に接続され、データ配信装置２から配信される配信データをネットワーク４を介して受信し、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を用いて暗号化データＥ（Ａ）を復号するとともに、復号したデータから、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）の真正性を検証するものである。
これらについては、以下で詳述する。
【００６４】
ネットワーク４は、インターネット等の外部ネットワークであり、データ配信装置２及びデータ受信装置３が、直接又は間接に接続されている。そして、ネットワーク４は、データ配信装置２が配信した配信データをデータ受信装置３へ転送する。
このネットワーク４は、有線ネットワークであってもよいし、無線ネットワークであってもよい。また、ネットワーク４の代わりに放送波としてもよい（不図示）。
【００６５】
なお、ここでいう暗号化データＥ（Ａ）とは、例えば、映像コンテンツや音声コンテンツ等のデータＡを暗号化したものであり、また、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）は、このデータに関連するメタデータである。
また、Ｂ（Ｂ１、Ｂ２、Ｂ３、・・・）という記載は、メタデータＢ１、Ｂ２、Ｂ３、・・・を集めたものがＢであることを意味する。以下では、適宜、Ｂ（Ｂ１、Ｂ２、Ｂ３、・・・）を省略して、Ｂと書くこともある。
【００６６】
（第１実施形態）
第１実施形態は、データ配信システム１Ａのデータ配信装置２及びデータ受信装置３において、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から求めたハッシュ値のビット長と、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長とが同一の場合である。
【００６７】
［データ配信装置（第１実施形態）の構成］
図２を参照して、本発明の第１実施形態に係るデータ配信装置２Ａ（２）の構成について説明する。
【００６８】
データ配信装置２Ａは、データＡと非暗号化データＢとを入力すると、非暗号化データＢから、データＡの暗号化に用いる初期ベクトルを生成してデータＡを暗号化し、ヘッダと非暗号化データＢと暗号化した暗号化データＥ（Ａ）とを配信データとして配信するものである。
具体的には、データ配信装置２Ａは、ヘッダと、機密性の高いデータＡと、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを入力する。すると、データ配信装置２Ａは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを求め、ブロック暗号処理を行う際の初期ベクトルとしてハッシュ値ｈを用いてデータＡを暗号化する。そして、データ配信装置２Ａは、ヘッダに非暗号化データＢと暗号化データＥ（Ａ）とを多重化する際の構成（多重化構成）の情報を記述して、ヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを配信データとして配信する。
【００６９】
データＡは、例えば、映像コンテンツや音声コンテンツ等のデータである。非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）は、例えば、データＡのメタデータである。図２に示した鍵は、ブロック暗号処理に用いられる共通鍵であり、後記するデータ受信装置３Ａ（３）と共有するものである。データＡ、非暗号化データＢ、及び、鍵の意味は、以下の装置においても同様である。
【００７０】
データ配信装置２Ａは、データ圧縮手段２１と、ブロック暗号処理手段２２と、データ配信手段２３とを備えている。
【００７１】
データ圧縮手段２１は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値を生成するものである。
具体的には、データ圧縮手段２１は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を入力する。そして、データ圧縮手段２１は、１つ以上の非暗号化データＢ１、Ｂ２、Ｂ３、・・・を連結した後に、ハッシュ関数Ｈを適用してハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を生成し、ブロック暗号処理手段２２へ出力する。
なお、本明細書において、「｜｜」は、連結を表す。
【００７２】
データ圧縮手段２１は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）に、秒単位の配信時刻等を含めることによって、ハッシュ関数Ｈを適用した結果のハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を処理のたびに異なるランダムな値とすることができる。
【００７３】
データ圧縮手段２１の用いるハッシュ関数Ｈは、Ｈ（・）を計算することは容易であるが、Ｈ−１（・）を計算することは困難であるという一般的性質を満たすものであれば、特定の関数に限定されるものではない。
【００７４】
第１実施形態においては、データ圧縮手段２１の生成するハッシュ値ｈのビット長と、後記するブロック暗号処理手段２２がブロック暗号処理を行う際に用いる暗号化アルゴリズムのブロック長とは、同一である。
このため、例えば、ブロック暗号処理手段２２が、代表的な暗号化アルゴリズムであるブロック長２５６ｂｉｔのＡＥＳ（Advanced Encryption Standard）を暗号処理に用いる場合、データ圧縮手段２１は、ハッシュ関数ＨとしてＳＨＡ−２５６（Secure Hash Algorithm−２５６）を採用することで、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を所望の長さ（２５６ｂｉｔ）に圧縮することができる。
その他、データ圧縮手段２１は、例えば、ＳＨＡ−５１２等を用いることができる。
【００７５】
ブロック暗号処理手段２２は、データＡのブロック暗号処理を行うものである。
具体的には、ブロック暗号処理手段２２は、外部から機密性の高いデータＡと、ブロック暗号処理に用いる鍵とを入力するとともに、データ圧縮手段２１からｎｂｉｔのハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を入力する。すると、ブロック暗号処理手段２２は、用いる暗号化アルゴリズムのブロック長ｎｂｉｔに合わせて、データＡをｎｂｉｔごとの平文ブロックに分割する。そして、ブロック暗号処理手段２２は、ブロック暗号処理の各ブロックにおいて、暗号化の際に鍵を用いて、平文ブロックから暗号ブロックを生成する。このとき、ブロック暗号処理手段２２は、ハッシュ値ｈを最初のブロックの初期ベクトルとして用い、また、ｉ番目（ｉ≧２）のブロックの暗号化に、ｉ−１番目のブロックの暗号化結果を用いる。そして、ブロック暗号処理手段２２は、暗号ブロックを連結して暗号化データＥ（Ａ）とし、データ配信手段２３へ出力する。
【００７６】
ここで、ブロック暗号処理手段２２は、データＡのビット長がｎｂｉｔ以下の場合には、データＡを分割する必要はなく、複数の同じ暗号ブロックが発生することはない。しかし、ブロック暗号処理手段２２は、データＡのビット長がｎｂｉｔを超える場合、つまり、暗号化を行う平文ブロックが複数に及ぶ場合には、単に複数の平文ブロックを同じ鍵を用いて順番に暗号化するだけでは、同一の平文ブロックから同一の暗号ブロックが発生し、第三者が平文を容易に推測する恐れがある。
【００７７】
その対策として、ブロック暗号処理手段２２は、ブロック間を関連付け、暗号処理を強化させることが好ましい。例えば、ブロック暗号処理手段２２は、ｉ番目のブロックの暗号化に、ｉ−１番目の暗号処理結果を利用することで、同一の暗号ブロックが発生する可能性を極めて低くすることができ、平文が解読される可能性も低くできる。
【００７８】
このような例では、ブロック暗号処理手段２２は、ｉ−１番目の暗号処理結果をレジスタに記憶しておき、それをｉ番目のブロックの暗号化に用いる必要がある。ところが、ブロック暗号処理手段２２は、最初のブロックの暗号化には、１つ前の暗号処理結果が存在しないため、レジスタの初期値が必要となる。この初期値は、一般に初期ベクトル（ＩＶ：Initial Vector）と呼ばれる。
【００７９】
一般的に、ブロック暗号処理手段２２は、仮に同じ初期ベクトルを変更せずに利用し続けると、第三者が平文を推測する可能性が高くなる。特に、ある平文を同じ鍵で暗号化した暗号文は常に等しくなるため、暗号文の同一性から平文を容易に推測される恐れがある。このため、ブロック暗号処理手段２２は、初期ベクトルを処理のたびに変更して用いることが好ましい。
【００８０】
そこで、本実施形態では、ブロック暗号処理手段２２は、データ圧縮手段２１が生成したハッシュ値ｈ-＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を、初期ベクトルとして用いる。非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）に秒単位のデータ配信時刻を含める等の対策を施すことで、データ圧縮手段２１が生成するハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）が衝突を起こす可能性は極めて低くなり、処理のたびにほぼランダムな初期ベクトルを生成することができる。
【００８１】
このようにして、ブロック暗号処理手段２２は、個別に擬似乱数を生成して初期ベクトルとするのではなく、暗号化データＥ（Ａ）と同時に配信する非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から生成されたハッシュ値を初期ベクトルとすることによって、メタデータＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と関連付けてデータＡの暗号処理を行うことが可能となる。
【００８２】
図３を参照して、ブロック暗号処理手段２２におけるブロック暗号処理の一例を説明する。
＜ＣＢＣモードの例＞
図３は、ＣＢＣモードにおいて、初期ベクトルをＨ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）とした例である。図３において、“平文ブロックＡｉ”（ｉ＝１、２、・・・）は、入力されたデータＡを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
【００８３】
図３において、最初の“暗号ブロックＥ（Ａ１）”は、初期ベクトル“Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）”と、“平文ブロックＡ１”とをＸＯＲ演算し、その結果を“鍵”を用いて暗号化したものである。図３において、“暗号ブロックＥ（Ａｉ）”（ｉ＝２、３、・・・）は、それぞれ１つ前に暗号化された“暗号ブロックＥ（Ａｉ−１）”と、暗号化する“平文ブロックＡｉ”とをＸＯＲ演算し、その結果を“鍵”を用いて暗号化したものである。
【００８４】
そして、“暗号ブロックＥ（Ａｉ）”（ｉ＝１、２、・・・）を連結したものが、ブロック暗号処理によって生成される暗号化データＥ（Ａ）である。
なお、図３及び他の図面において、円の中に十字の記号は、ＸＯＲ演算（排他的論理和）を表す。
【００８５】
図２に戻り、説明を続ける。
データ配信手段２３は、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを配信データとして配信するものである。
具体的には、データ配信手段２３は、外部からデータの多重化構成を記述したヘッダと、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを入力し、ブロック暗号処理手段２２から暗号化データＥ（Ａ）を入力する。そして、データ配信手段２３は、非暗号化データＢと暗号化データＥ（Ａ）とを多重化するとともに、ヘッダに、多重化構成を記述し、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを配信データとして配信する。
【００８６】
このデータ配信装置２Ａによれば、データ圧縮手段２１によって、非暗号化データからハッシュ値を算出し、ブロック暗号処理手段２２によって、ハッシュ値を初期ベクトルとして、データＡのブロック暗号処理を行い、データ配信手段２３によって、非暗号化データと暗号化データとを多重化して配信する。
【００８７】
このため、非暗号化データと暗号化データとが関連付けられることから、非暗号化データが改ざん等なされると、受信側において暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
【００８８】
なお、データ配信装置２Ａの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、データ圧縮手段２１において、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から、Ｈを一方向性ハッシュ関数として、（１）式によりハッシュ値ｈを算出した。
ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）              ・・・（１）式
【００８９】
しかし、ハッシュ値は、これに限られるものではなく、（２）式のように、各Ｂｉ（ｉ≧１）にパディングを施して、等しいビット長にしてからハッシュ値を算出することも可能である。ここで、「，」は、等しいビット長にしてから連結する、又は、実際に“，”をデータとデータとの間に挿入することを意味する。
ｈ＝Ｈ（Ｂ１，Ｂ２，Ｂ３，・・・）                    ・・・（２）式
【００９０】
また、「ＸＯＲ」を排他的論理和を表す記号として、（３）式のように、ハッシュ値を算出することもできる。この場合、前記と同様、各Ｂｉ（ｉ≧１）にパディングを施して、等しいビット長にする必要がある。こうすると（１）式よりも効率よくハッシュ値を算出できる。
ｈ＝Ｈ（Ｂ１ ＸＯＲ Ｂ２ ＸＯＲ Ｂ３ ＸＯＲ・・・）  ・・・（３）式
【００９１】
さらにまた、（４）式のように、個々の非暗号化データに対しハッシュ関数を適用してから、排他的論理和をとることも可能である。
ｈ＝Ｈ（Ｂ１）ＸＯＲ Ｈ（Ｂ２）ＸＯＲ ・・・         ・・・（４）式
【００９２】
次に、図４を参照して、ブロック暗号処理手段２２におけるブロック暗号処理の別の一例を説明する。
【００９３】
＜ＯＦＢモードの例＞
図４は、ＯＦＢモードにおいて、初期ベクトルをＨ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）とした例である。図４において、“平文ブロックＡｉ”（ｉ＝１、２、・・・）は、入力されたデータＡを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
【００９４】
図４において、“暗号ブロックＥ（Ａｉ）”（ｉ＝１、２、・・・）は、それぞれ初期ベクトル“Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）”を、“鍵”を用いてｉ回暗号化した結果と、暗号化する“平文ブロックＡｉ”とをＸＯＲ演算したものである。そして、“暗号ブロックＥ（Ａｉ）”（ｉ＝１、２、・・・）を連結したものが、ブロック暗号処理によって生成される暗号化データＥ（Ａ）である。
【００９５】
［データ受信装置（第１実施形態）の構成］
図５を参照して、本発明の第１実施形態に係るデータ受信装置３Ａ（３）の構成について説明する。
【００９６】
データ受信装置３Ａは、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを受信すると、非暗号化データＢから、暗号化データＥ（Ａ）の復号に用いる初期ベクトルを生成して暗号化データＥ（Ａ）を復号し、復号したデータＡ’から非暗号化データＢの真正性を検証するものである。
具体的には、データ受信装置３Ａは、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを含んだ配信データを受信する。すると、データ受信装置３Ａは、ヘッダの構成情報から、非暗号化データＢと暗号化データＥ（Ａ）とを抽出する。そして、データ受信装置３Ａは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを求め、ブロック復号処理を行う際の初期ベクトルとしてハッシュ値ｈを用いて暗号化データＥ（Ａ）を復号する。そして、データ受信装置３Ａは、復号したデータＡ’を、予め設定されているデータフォーマットと比較することによって、非暗号化データＢの真正性を検証する。すなわち、データＡと関連付けられた（バインドされた）非暗号化データＢが正しく配信されていることを検証する。
【００９７】
データ受信装置３Ａは、データ受信手段３１と、データ分離手段３２と、データ圧縮手段３３と、ブロック復号処理手段３４と、データ検証手段３５とを備えている。
【００９８】
データ受信手段３１は、配信データを受信するものである。
具体的には、データ受信手段３１は、インターネット等のネットワーク４を介して、データ配信装置２Ａから配信された配信データを受信し、データ分離手段３２へ出力する。
配信データには、データの多重化構成が記述されたヘッダ、暗号化データＥ（Ａ）、及び、それに関連する非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）が含まれる。
【００９９】
データ分離手段３２は、配信データから、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを抽出するものである。
具体的には、データ分離手段３２は、データ受信手段３１から配信データを入力する。すると、データ分離手段３２は、配信データのヘッダに記述された多重化構成の情報に基づき、配信データを、非暗号化データ部分と暗号化データ部分とに分離し、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを抽出する。そして、データ分離手段３２は、抽出した非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）をデータ圧縮手段３３へ出力し、暗号化データＥ（Ａ）をブロック復号処理手段３４へ出力する。
【０１００】
データ圧縮手段３３は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値を生成するものである。
データ圧縮手段３３は、生成したハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）の出力先がブロック復号処理手段３４であるという違いを除いて、データ配信装置２Ａのデータ圧縮手段２１と同一である。データ圧縮手段３３が用いるハッシュ関数Ｈは、データ配信装置２Ａのデータ圧縮手段２１が用いるハッシュ関数Ｈと同じである必要がある。また、データ圧縮手段３３がハッシュ値を生成するための規則と、データ圧縮手段２１がハッシュ値を生成するための規則とは同じである必要がある。
【０１０１】
第１実施形態においては、データ圧縮手段３３の出力するハッシュ値ｈのビット長と、後記するブロック復号処理手段３４がブロック復号処理を行う際に用いるアルゴリズムのブロック長とは、同一である。
【０１０２】
ブロック復号処理手段３４は、暗号化データＥ（Ａ）のブロック復号処理を行うものである。
具体的には、ブロック復号処理手段３４は、外部からデータ配信装置２Ａと共有した鍵を入力し、データ分離手段３２から暗号化データＥ（Ａ）を入力し、さらに、データ圧縮手段３３からｎｂｉｔのハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を入力する。すると、ブロック復号処理手段３４は、復号処理に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて、暗号化データＥ（Ａ）をｎｂｉｔごとの暗号ブロックに分割する。そして、ブロック復号処理手段３４は、ブロック復号処理の各ブロックにおいて、復号の際に鍵を用いて、暗号ブロックから平文ブロックを生成する。このとき、ブロック復号処理手段３４は、ハッシュ値ｈを最初のブロックの初期ベクトルとして用い、また、ｉ番目（ｉ≧２）のブロックの復号に、ｉ−１番目のブロックの出力結果を用いる。そして、ブロック復号処理手段３４は、平文ブロックを連結して復号データＡ’とし、このデータＡ’をデータ検証手段３５へ出力する。
【０１０３】
ブロック復号処理手段３４がブロック復号処理に用いる復号手段は、データ配信装置２Ａのブロック暗号処理手段２２がブロック暗号処理に用いる暗号化手段と対応するものである必要がある。すなわち、復号手段は、暗号化手段が暗号化したデータを復号できるものである必要がある。
なお、ブロック復号処理に用いる利用モードによっては、復号アルゴリズムは暗号化アルゴリズムと同一である場合がある。
また、ブロック復号処理手段３４が用いる鍵は、データ配信装置２Ａのブロック暗号処理手段２２が用いる鍵と事前に共有しておく必要がある。
【０１０４】
図６を参照して、ブロック復号処理手段３４におけるブロック復号処理の一例を説明する。図６のブロック復号処理は、図３のブロック暗号処理と対応する。
＜ＣＢＣモードの例＞
図６は、ＣＢＣモードにおいて、初期ベクトルをｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）とした例である。
【０１０５】
図６において、“暗号ブロックＥ（Ａｉ）”（ｉ＝１、２、・・・）は、入力された暗号化データＥ（Ａ）を“復号”で用いられるアルゴリズムのブロック長に合わせて分割したものである。図６において、最初の“平文ブロックＡ１”は、“暗号ブロックＥ（Ａ１）”を“鍵”を用いて復号したものと、初期ベクトル“Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）”とをＸＯＲ演算したものである。
【０１０６】
図６において、“平文ブロックＡｉ”（ｉ＝２、３、・・・）は、それぞれ“暗号ブロックＥ（Ａｉ）”を“鍵”を用いて復号したものと、１つ前の“暗号ブロックＥ（Ａｉ−１）”とをＸＯＲ演算したものである。
そして、“平文ブロックＡｉ”（ｉ＝１、２、・・・）を連結したものが、ブロック復号処理によって復号されるデータＡ’である。
【０１０７】
図５に戻り、説明を続ける。
データ検証手段３５は、復号されたデータの真正性を検証するものである。
具体的には、データ検証手段３５は、ブロック復号処理手段３４からデータＡ’を入力する。そして、データ検証手段３５は、データＡ’を予め設定されているデータフォーマットと比較することによって、非暗号化データＢの真正性を検証する。データＡ’が予め設定されているデータフォーマットに従っていた場合は、非暗号化データＢに改ざんがなされなかったものと判断し、データＡ’を出力する。また、データＡ’が予め設定されているデータフォーマットに反していた場合は、非暗号化データＢが改ざんされたものと判断し、データ検証手段３５は、検証結果を出力する。
【０１０８】
例えば、データ配信装置２Ａとデータ受信装置３Ａとの間で、暗号化するデータＡのヘッダ部のフォーマットを規定しておく。そうすることで、データ検証手段３５は、復号されたデータＡ’のヘッダ部が規定フォーマットに準拠しているか否かを検証することによって、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）の改ざんの有無を検知することが可能となる。仮に非暗号化データＢに改ざんがなされると、データ圧縮手段３３から出力されるハッシュ値ｈが異なるため、ブロック復号処理手段３４によって、ブロック復号処理が正しく行われないこととなり、データＡ’のフォーマットが規定のフォーマットに反することとなるからである。
【０１０９】
このデータ受信装置３Ａによれば、データ受信手段３１によって、配信データを受信し、データ分離手段３２によって、配信データから、非暗号化データと暗号化データとを分離し、データ圧縮手段３３によって、非暗号化データからハッシュ値を算出し、ブロック復号処理手段３４によって、ハッシュ値を初期ベクトルとして、暗号化データのブロック復号処理を行い、データ検証手段３５によって、復号されたデータを検証することによって、非暗号化データの真正性を検証する。
【０１１０】
このため、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができなくなる。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
【０１１１】
なお、データ受信装置３Ａの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、図７を参照して、ブロック復号処理手段３４におけるブロック復号処理の別の一例を説明する。図７のブロック復号処理は、図４のブロック暗号処理と対応する。
【０１１２】
＜ＯＦＢモードの例＞
図７は、ＯＦＢモードにおいて、初期ベクトルをＨ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）とした例である。
図７において、“暗号ブロックＥ（Ａｉ）”（ｉ＝１、２、・・・）は、入力された暗号化データＥ（Ａ）を“復号”で用いられるアルゴリズムのブロック長に合わせて分割したものである。
【０１１３】
図７において、“平文ブロックＡｉ”（ｉ＝１、２、・・・）は、それぞれ初期ベクトル“Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）”を、“鍵”を用いてｉ回暗号化した結果と、“暗号ブロックＥ（Ａｉ）”とをＸＯＲ演算したものである。そして、“平文ブロックＡｉ”（ｉ＝１、２、・・・）を連結したものが、ブロック復号処理によって復号されるデータＡ’である。
【０１１４】
次に、第１実施形態に係る装置の動作について説明する。
［データ配信装置（第１実施形態）動作］
図２０を参照して（構成については、適宜図２を参照のこと）、本発明の第１実施形態に係るデータ配信装置（２Ａ）の動作について説明する。
【０１１５】
データ配信装置２Ａは、図示しないデータ入力手段によって、ヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とデータＡとを入力する（ステップＳ１１）。
そして、データ配信装置２Ａは、データ圧縮手段２１によって、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを生成する（ステップＳ１２）。
【０１１６】
そして、データ配信装置２Ａは、ブロック暗号処理手段２２によって、ハッシュ値ｈを用いて、データＡのブロック暗号処理を行う（ステップＳ１３）。
【０１１７】
そして、データ配信装置２Ａは、データ配信手段２３によって、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを配信データとして、データ受信装置３Ａへ配信する（ステップＳ１４）。
【０１１８】
［データ受信装置（第１実施形態）の動作］
図２１を参照して（構成については、適宜図５を参照のこと）、本発明の第１実施形態に係るデータ受信装置（３Ａ）の動作について説明する。
【０１１９】
データ受信装置３Ａは、データ受信手段３１によって、データ配信装置２Ａから、ヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを受信する（ステップＳ２１）。
そして、データ受信装置３Ａは、データ分離手段３２によって、受信したデータから非暗号化データＢと暗号化データＥ（Ａ）とを分離する（ステップＳ２２）。
【０１２０】
そして、データ受信装置３Ａは、データ圧縮手段３３によって、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを生成する（ステップＳ２３）。
【０１２１】
そして、データ受信装置３Ａは、ブロック復号処理手段３４によって、ハッシュ値ｈを用いて、暗号化データＥ（Ａ）のブロック復号処理を行う（ステップＳ２４）。
そして、データ受信装置３Ａは、データ検証手段３５によって、復号したデータＡ’を規定のフォーマットと比較する（ステップＳ２５）。
【０１２２】
そして、データ受信装置３Ａは、データ検証手段３５によって、比較結果が一致するか否かを判断し（ステップＳ２６）、一致するならば、データＡ’は正しいデータであるとともに、非暗号化データＢに改ざん等なされていないと判断し（ステップＳ２７）、一致しないならば、非暗号化データＢに改ざん等なされたと判断する（ステップＳ２８）。
【０１２３】
（第２実施形態）
第２実施形態は、データ配信システム１Ａのデータ配信装置２及びデータ受信装置３において、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から求めたハッシュ値のビット長ｍと、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長ｎとが異なる場合である。
【０１２４】
［データ配信装置（第２実施形態）の構成］
図８を参照して、本発明の第２実施形態に係るデータ配信装置２Ｂ（２）の構成について説明する。
【０１２５】
データ配信装置２Ｂは、データＡと非暗号化データＢとを入力すると、非暗号化データＢから、データＡの暗号化に用いる初期ベクトルを生成してデータＡを暗号化し、ヘッダと非暗号化データＢと暗号化した暗号化データＥ（Ａ）とを配信データとして配信するものである。
具体的には、データ配信装置２Ｂは、ヘッダと、機密性の高いデータＡと、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを入力する。すると、データ配信装置２Ｂは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを求め、このハッシュ値ｈをブロック暗号処理を行う際に用いるアルゴリズムのブロック長に合わせて必要に応じてパディングを施した後に分割し、１つ以上のハッシュ値分割ブロックを用いてデータＡを暗号化する。そして、データ配信装置２Ｂは、ヘッダに非暗号化データＢと暗号化データＥ（Ａ）との多重化構成を記述して、ヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを配信データとして配信する。
【０１２６】
データ配信装置２Ｂは、データ圧縮手段２１Ｂと、ビット長調整手段２４と、ブロック暗号処理手段２２Ｂと、データ配信手段２３とを備えている。
なお、データ配信手段２３は、データ配信装置２Ａのデータ配信手段２３と同一であるため、説明を省略する。
【０１２７】
データ圧縮手段２１Ｂは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値を生成するものである。
具体的には、データ圧縮手段２１Ｂは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を入力する。そして、データ圧縮手段２１Ｂは、１つ以上の非暗号化データＢ１、Ｂ２、Ｂ３、・・・を連結した後に、ハッシュ関数Ｈを適用してハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を生成し、ビット長調整手段２４へ出力する。
【０１２８】
データ圧縮手段２１Ｂは、生成するハッシュ値ｈのビット長ｍｂｉｔと、後記するブロック暗号処理手段２２Ｂがブロック暗号処理を行う際の暗号化アルゴリズムのブロック長ｎｂｉｔとが異なる点を除いて、第１実施形態に係るデータ配信装置２Ａのデータ圧縮手段２１と同一である。
【０１２９】
ビット長調整手段２４は、ハッシュ値ｈのビット長ｍｂｉｔを、ブロック暗号処理手段２２Ｂの暗号化アルゴリズムのブロック長ｎｂｉｔに合わせて調整するものである。
具体的には、ビット長調整手段２４は、データ圧縮手段２１Ｂからハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）を入力する。すると、ビット長調整手段２４は、ハッシュ値ｈのビット長ｍｂｉｔと、後記するブロック暗号処理手段２２Ｂの暗号化アルゴリズムのブロック長ｎｂｉｔとを比較する。そして、ビット長調整手段２４は、ｍ＜ｎの場合には、ｍｂｉｔにパディングを施してｎｂｉｔになるように調整する（ハッシュ値ブロック）。また、ビット長調整手段２４は、ｍ＞ｎの場合には、必要に応じてｍｂｉｔにパディングを施してｎｂｉｔの整数倍となるように調整した後、ｎｂｉｔごとに分割する（ハッシュ値分割ブロック；ｈ１、ｈ２、・・・、ｈＭ）。そして、ビット長調整手段２４は、ハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックをブロック暗号処理手段２２Ｂへ出力する。
【０１３０】
ブロック暗号処理手段２２Ｂは、データＡのブロック暗号処理を行うものである。
具体的には、ブロック暗号処理手段２２Ｂは、外部から機密性の高いデータＡと、ブロック暗号処理に用いる鍵とを入力するとともに、ビット長調整手段２４からｎｂｉｔに調整されたハッシュ値ブロックｈ１又は１つ以上のハッシュ値分割ブロック（ｈ１、ｈ２、・・・、ｈＭ）を入力する。すると、ブロック暗号処理手段２２Ｂは、用いる暗号化アルゴリズムのブロック長ｎｂｉｔに合わせて、データＡをｎｂｉｔごとの平文ブロックに分割する。そして、ブロック暗号処理手段２２Ｂは、ブロック暗号処理の各ブロックにおいて、暗号化の際に鍵を用いて、平文ブロックから暗号ブロックを生成する。このとき、ブロック暗号処理手段２２Ｂは、ハッシュ値ブロックｈ１又はハッシュ値分割ブロックｈ１を最初のブロックの初期ベクトルとして用い、また、ｉ番目（ｉ≧２）のブロックの暗号化に、ｉ−１番目のブロックの暗号化結果を用いる。そして、ブロック暗号処理手段２２Ｂは、暗号ブロックを連結して暗号化データＥ（Ａ）とし、データ配信手段２３へ出力する。
【０１３１】
また、ブロック暗号処理手段２２Ｂは、ブロック暗号処理のｉ番目（ｉ≧１）のブロックにおいて、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）を用いたＸＯＲ演算を行い、非暗号化データをより強固に関連づけてデータＡの暗号化を行ってよい。
例えば、ブロック暗号処理手段２２Ｂは、ビット長調整手段２４から入力されたハッシュ値分割ブロックがｈ１、ｈ２、・・・、ｈＭのＭ個の場合、１番目のハッシュ値からＭ番目までのハッシュ値分割ブロックまでを繰り返し用いることができる。
【０１３２】
図９を参照して、ブロック暗号処理手段２２Ｂのブロック暗号処理の一例を説明する。
＜ＯＦＢモードの例１＞
図９は、入力されたハッシュ値分割ブロックｈ１、ｈ２、・・・、ｈＭに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックｈ１を用いるとともに、第ｉ番目のブロック（ｉ＝１、２、・・・）において、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）を、次のブロックへの出力の生成に用いるブロック暗号処理の例である。ここで、ｊには、前記のようにハッシュ値分割ブロックを繰り返し用いることが可能である。
【０１３３】
図９において、“平文ブロックＡｉ”（ｉ＝１、２、・・・）は、入力されたデータＡを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。図９において、第ｉ番目のブロックにおいて、次のブロックへの出力は、第ｉ−１番目のブロックからの入力を暗号化した結果と、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）とをＸＯＲ演算したものである。
【０１３４】
図９において、“暗号ブロックＥ（Ａ１）”は、ｈ１を暗号化した結果と、“平文ブロックＡ１”とをＸＯＲ演算したものである。また、図９において、“暗号ブロックＥ（Ａｉ）”（ｉ＝２、３、・・・）は、第ｉ−１番目のブロックからの入力を暗号化した結果と、“平文ブロックＡｉ”とをＸＯＲ演算したものである。
【０１３５】
図８に戻り、説明を続ける。
なお、ブロック暗号処理手段２２Ｂは、ｎｂｉｔのハッシュ値分割ブロックｈ１のみを、ブロック暗号処理の初期ベクトルとして使用し、他のハッシュ値分割ブロックｈ２、ｈ３、・・・がある場合にはそれらを使用せず、第１実施形態のブロック暗号処理手段２２ようにブロック暗号処理を行ってもよい。
【０１３６】
このデータ配信装置２Ｂによれば、データ圧縮手段２１Ｂによって、非暗号化データからハッシュ値を算出し、ビット長調整手段２４によって、ハッシュ値のビット長を調整し、ブロック暗号処理手段２２によって、ハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックを用いて、データＡのブロック暗号処理を行い、データ配信手段２３によって、非暗号化データと暗号化データとを多重化して配信する。
【０１３７】
このため、非暗号化データと暗号化データとが関連付けられることから、非暗号化データが改ざん等なされると、受信側において、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
【０１３８】
なお、データ配信装置２Ｂの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、図１０、及び、図１１を参照して、ブロック暗号処理手段２２Ｂにおけるブロック暗号処理の別の例を説明する。
なお、図１０、及び、図１１において、“平文ブロックＡｉ”（ｉ＝１、２、・・・）は、入力されたデータＡを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
【０１３９】
＜ＯＦＢモードの例２＞
図１０は、入力されたハッシュ値分割ブロックｈ１、ｈ２、・・・、ｈＭに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックｈ１を用いるとともに、第ｉ番目のブロック（ｉ＝１、２、・・・）において、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）を、暗号ブロックの生成に用いるブロック暗号処理の例である。ここで、ｊは、前記のように繰り返し用いることが可能である。
【０１４０】
図１０において、“暗号ブロックＥ（Ａ１）”は、ｈ１を暗号化した結果と、ハッシュ値分割ブロックｈ２とをＸＯＲ演算したものに対して、さらに、“平文ブロックＡ１”とＸＯＲ演算したものである。また、図１０において、“暗号ブロックＥ（Ａｉ）”（ｉ＝２、３、・・・）は、第ｉ−１番目のブロックからの入力を暗号化した結果と、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）とをＸＯＲ演算したものに対して、さらに、“平文ブロックＡｉ”とＸＯＲ演算したものである。
【０１４１】
＜ＯＦＢモードの例３＞
図１１は、入力されたハッシュ値分割ブロックｈ１、ｈ２、・・・、ｈＭに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックｈ１を用いるとともに、第ｉ番目のブロックにおいて（ｉ＝１、２、・・・）、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）を、暗号化をする際の鍵の変換に用いるブロック暗号処理の例である。ここで、ｊは、前記のように繰り返し用いることが可能である。
【０１４２】
図１１において、暗号化する際の鍵は、ブロック暗号処理手段２２Ｂに入力される“鍵”と、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）とをＸＯＲ演算して生成される。
図１１において、“暗号ブロックＥ（Ａ１）”は、ｈ１を生成された鍵で暗号化した結果と、“平文ブロックＡ１”とをＸＯＲ演算したものである。また、図１１において、“暗号ブロックＥ（Ａｉ）”（ｉ＝２、３、・・・）は、第ｉ−１番目のブロックからの入力をこの生成された鍵で暗号化した結果と、“平文ブロックＡｉ”とをＸＯＲ演算したものである。
【０１４３】
［データ受信装置（第２実施形態）の構成］
図１２を参照して、本発明の第２実施形態に係るデータ受信装置３Ｂ（３）の構成について説明する。
【０１４４】
データ受信装置３Ｂは、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを受信すると、非暗号化データＢから、暗号化データＥ（Ａ）の復号に用いるハッシュ値を生成して暗号化データＥ（Ａ）を復号し、復号したデータＡ’から非暗号化データＢの真正性を検証するものである。
具体的には、データ受信装置３Ｂは、ヘッダと非暗号化データＢと暗号化データＥ（Ａ）とを含んだ配信データを受信する。すると、データ受信装置３Ｂは、ヘッダの構成情報から、非暗号化データＢと暗号化データＥ（Ａ）とを抽出する。そして、データ受信装置３Ｂは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを求め、このハッシュ値ｈをブロック復号処理を行う際に用いるアルゴリズムのブロック長に合わせて必要に応じてパディングを施した後に分割し、この分割されたハッシュ値分割ブロックを１つ以上用いて暗号化データＥ（Ａ）を復号する。そして、データ受信装置３Ｂは、復号したデータＡ’を、予め設定されているデータフォーマットと比較することによって、非暗号化データＢが改ざんされていないことを検証する。すなわち、データＡと関連付けられた（バインドされた）非暗号化データＢが正しく配信されていることを検証する。
【０１４５】
データ受信装置３Ｂは、データ受信手段３１と、データ分離手段３２と、データ圧縮手段３３Ｂと、ビット長調整手段３６と、ブロック復号処理手段３４Ｂと、データ検証手段３５とを備えている。
なお、データ受信手段３１、データ分離手段３２、及び、データ検証手段３５は、それぞれ、データ受信装置３Ａのデータ受信手段３１、データ分離手段３２、及び、データ検証手段３５と同一であるため、説明を省略する。
【０１４６】
データ圧縮手段３３Ｂは、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値を生成するものである。
データ圧縮手段３３Ｂは、生成したハッシュ値ｈ＝Ｈ（Ｂ１｜｜Ｂ２｜｜Ｂ３｜｜・・・）の出力先がビット長調整手段３６であるという違いを除いて、データ配信装置２Ｂのデータ圧縮手段２１Ｂと同一である。データ圧縮手段３３Ｂが用いるハッシュ関数Ｈは、データ配信装置２Ｂのデータ圧縮手段２１Ｂが用いるハッシュ関数と同じである必要がある。
【０１４７】
第２実施形態においては、データ圧縮手段３３Ｂの出力するハッシュ値ｈのビット長と、後記するブロック復号処理手段３４Ｂがブロック復号処理を行う際に用いるアルゴリズムのブロック長とは、異なる。
【０１４８】
ビット長調整手段３６は、データ圧縮手段３３Ｂから入力されたハッシュ値ｈのビット長ｍｂｉｔを、後記のブロック復号処理手段３４Ｂで復号の際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて調整するものである。
ビット長調整手段３６は、ブロック復号処理手段３４Ｂの復号の際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて、ハッシュ値ｈのビット長を調整することと、結果であるハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックの出力先がブロック復号処理手段３４Ｂであることを除いて、データ配信装置２Ｂのビット長調整手段２４と同一である。
【０１４９】
ブロック復号処理手段３４Ｂは、暗号化データＥ（Ａ）のブロック復号処理を行うものである。
具体的には、ブロック復号処理手段３４Ｂは、外部からデータ配信装置と共有した鍵を入力し、データ分離手段３２から暗号化データＥ（Ａ）を入力し、さらに、ビット長調整手段３６からｎｂｉｔに調整されたハッシュ値ブロックｈ１又は１つ以上のハッシュ値分割ブロックｈ１、ｈ２、・・・、ｈＭを入力する。すると、ブロック復号処理手段３４Ｂは、復号処理に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて、暗号化データＥ（Ａ）をｎｂｉｔごとの暗号ブロックに分割する。そして、ブロック復号処理手段３４Ｂは、ブロック復号処理の各ブロックにおいて、復号の際に鍵を用いて、暗号ブロックから平文ブロックを生成する。このとき、ブロック復号処理手段３４Ｂは、ハッシュ値ブロックｈ１又はハッシュ値分割ブロックｈ１を最初のブロックの初期ベクトルとして用い、また、ｉ番目（ｉ≧２）のブロックの復号に、ｉ−１番目のブロックの復号結果を用いる。そして、ブロック復号処理手段３４Ｂは、平文ブロックを連結して復号データＡ’とし、このデータＡ’をデータ検証手段３５へ出力する。
【０１５０】
ブロック復号処理手段３４Ｂがブロック復号処理に用いる復号手段は、データ配信装置２Ｂのブロック暗号処理手段２２Ｂがブロック暗号処理に用いる暗号化手段と対応するものである必要がある。すなわち、復号手段は、暗号化手段が暗号化したデータを復号できるものである必要がある。
なお、ブロック復号処理に用いる利用モードによっては、復号アルゴリズムは暗号化アルゴリズムと同一である場合がある。
また、ブロック復号処理手段３４Ｂが用いる鍵は、データ配信装置２Ｂのブロック暗号処理手段２２Ｂが用いる鍵と事前に共有しておく必要がある。
【０１５１】
また、ブロック復号処理手段３４Ｂは、データ配信装置２Ｂのブロック暗号処理手段２２Ｂにあわせて、ブロック復号処理のｉ番目（ｉ≧１）のブロックにおいて、所定のハッシュ値分割ブロックｈｊ（１≦ｊ≦Ｍ）を用いた復号処理を行ってもよい。
【０１５２】
図１３、及び、図９を参照して、ブロック復号処理手段３４Ｂのブロック復号処理の一例を説明する。
図９において、“暗号ブロックＥ（Ａｉ）”（ｉ≧１）は、“暗号化”によって暗号化した結果と、“平文ブロックＡｉ”とをＸＯＲ演算したものとして生成されている。この部分を、図１３に示すように、“平文ブロックＡｉ”が、“暗号化”によって暗号化した結果と、“暗号ブロックＥ（Ａｉ）”とをＸＯＲ演算したものに置換する。すると、この置換した図９は、図９のブロック暗号処理に対応するブロック復号処理の例となる。
【０１５３】
このデータ受信装置３Ｂによれば、データ受信手段３１によって、配信データを受信し、データ分離手段３２によって、配信データから、非暗号化データと暗号化データとを抽出し、データ圧縮手段３３Ｂによって、非暗号化データからハッシュ値を算出し、ビット長調整手段３６によって、ハッシュ値のビット長を調整し、ブロック復号処理手段３４Ｂによって、ハッシュ値ブロック又は１つ以上のハッシュ値分割ブロックを用いて、暗号化データのブロック復号処理を行い、データ検証手段３５によって、復号されたデータを検証することによって、非暗号化データの真正性を検証する。
【０１５４】
このため、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
【０１５５】
なお、データ受信装置３Ｂの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、ブロック復号処理手段３４Ｂのブロック復号処理の一例において、図１３を用いて、図９の一部を置換したが、図１０、及び、図１１の同一の部分を置換してもよい。
【０１５６】
次に、第２実施形態に係る装置の動作について説明する。
［データ配信装置（第２実施形態）動作］
図２２を参照して（構成については、適宜図８を参照のこと）、本発明の第２実施形態に係るデータ配信装置（２Ｂ）の動作について説明する。
【０１５７】
データ配信装置２ＢのステップＳ３１、ステップＳ３２、ステップＳ３４、ステップＳ３５の動作は、それぞれ、第１実施形態に係るデータ配信装置２ＡのステップＳ１１、ステップＳ１２、ステップＳ１３、ステップＳ１４と同様であるので、その説明を省略する。
【０１５８】
データ配信装置２Ｂは、ビット長調整手段２４によって、ハッシュ値ｈのビット長ｍｂｉｔを暗号化をする際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて調整する（ステップＳ３３）。
【０１５９】
［データ受信装置（第２実施形態）の動作］
図２３を参照して（構成については、適宜図１２を参照のこと）、本発明の第２実施形態に係るデータ受信装置（３Ｂ）の動作について説明する。
【０１６０】
データ受信装置３ＢのステップＳ４１、ステップＳ４２、ステップＳ４３、ステップＳ４５、ステップＳ４６、ステップＳ４７、ステップＳ４８、ステップＳ４９の動作は、それぞれ、第１実施形態に係るデータ受信装置３ＡのステップＳ２１、ステップＳ２２、ステップＳ２３、ステップＳ２４、ステップＳ２５、ステップＳ２６、ステップＳ２７、ステップＳ２８と同様であるので、その説明を省略する。
【０１６１】
データ受信装置３Ｂは、ビット長調整手段３６によって、ハッシュ値ｈのビット長ｍｂｉｔを復号をする際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて調整する（ステップＳ４４）。
【０１６２】
［データ配信システム（第３実施形態・第４実施形態）の構成］
図１４を参照して、本発明の第３実施形態及び第４実施形態に係るデータ配信システム１Ｂ（１）の構成について説明する。
【０１６３】
データ配信システム１Ｂは、データ受信装置３からのデータ要求に応じて、非暗号化データ配信装置５が非暗号化データを、暗号化データ配信装置６が暗号化データを、ネットワーク４を介してデータ受信装置３に配信するもので、非暗号化データ配信装置５と、暗号化データ配信装置６と、データ受信装置３と、ネットワーク４とから構成される。
【０１６４】
非暗号化データ配信装置５は、ネットワーク４に接続され、メタデータ等の公開してもよいデータを管理して配信するものである。
暗号化データ配信装置６は、ネットワーク４に接続され、関連をもつ非暗号化データと関連付けられた状態で暗号化データを管理して配信するものである。
データ受信装置３は、ネットワーク４に接続され、非暗号化データ配信装置５から、暗号化データ配信装置６に暗号化されている暗号化データの関連情報（タイトルや利用条件等のメタデータ）を取得するとともに、対応する暗号化データを暗号化データ配信装置６から取得し、関連情報を用いて暗号化データを復号するとともに、非暗号化データの真正性を検証するものである。
これらについては、以下で詳述する。
【０１６５】
（第３実施形態）
第３実施形態は、データ配信システム１Ｂの暗号化データ配信装置６及びデータ受信装置３において、関連する非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から求めたハッシュ値のビット長と、ブロック暗号処理及びブロック復号処理を行う際のブロックのビット長とが同一の場合である。
【０１６６】
［非暗号化データ配信装置（第３実施形態）の構成］
図１５を参照して、本発明の第３実施形態に係る非暗号化データ配信装置５の構成について説明する。
【０１６７】
非暗号化データ配信装置５は、入力される非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を登録して管理するとともに、要求があった場合に非暗号化データＢと識別子とを配信するものである。
非暗号化データ配信装置５は、データ登録手段５１と、データ記憶手段５２と、要求データ抽出手段５３と、データ配信手段５４とを備える。
【０１６８】
データ登録手段５１は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を入力すると、この非暗号化データＢを一意に特定できる識別子を生成して、非暗号化データＢと生成した識別子との組を、データ記憶手段５２に出力するものである。
非暗号化データＢ１、Ｂ２、Ｂ３、・・・は、関連するデータＡに係わるタイトルや利用条件等の公開してもよいメタデータである。
【０１６９】
データ記憶手段５２は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を、このデータＢを一意に特定できる識別子と組にして記憶するものである。
具体的には、データ記憶手段５２は、データ登録手段５１から非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と識別子との組を入力して記憶する。そして、データ記憶手段５２は、要求データ抽出手段５３からの要求に応じて、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と識別子との組を出力する。
【０１７０】
データ記憶手段５２が管理するデータ（非暗号化データと識別子との組）は、公開データであり、要求データ抽出手段５３からの要求に応じ、閲覧することが可能である。
【０１７１】
要求データ抽出手段５３は、外部の装置からのデータ要求を受信し、データ記憶手段５２に出力するとともに、データ記憶手段５２から非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と識別子との組を読み出して、データ配信手段５４へ出力するものである。
【０１７２】
データ配信手段５４は、データ要求のあった外部の装置に対して、所望の非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を配信するものである。
具体的には、データ配信手段５４は、要求データ抽出手段５３から、非暗号化データＢと識別子との組を入力する。そして、データ配信手段５４は、非暗号化データＢに識別子を含むヘッダを付加し、データ要求のあった外部の装置に配信する。
【０１７３】
非暗号化データ配信装置によれば、データ登録手段５１によって、非暗号化データを識別子と組にしてデータ記憶手段５２に記憶させ、要求データ抽出手段５３によって、データ要求を受信してデータ記憶手段５２から非暗号化データと識別子との組を読み出し、データ配信手段５４によって、非暗号化データと識別子とを配信する。このため、データ要求に応じて、識別子と対応付けられた非暗号化データを配信することができる。
【０１７４】
なお、非暗号化データ配信装置５の構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
【０１７５】
なお、外部の装置を特定するためのＩＰアドレス等の情報は手段から手段へ適宜出力されるものとする。以下に説明する装置においても同様である。
【０１７６】
［暗号化データ配信装置（第３実施形態）の構成］
図１６を参照して、本発明の第３実施形態に係る暗号化データ配信装置６Ａ（６）の構成について説明する。
【０１７７】
暗号化データ配信装置６Ａは、入力されるデータＡに対して関連付けたい非暗号化データＢを取得し、この非暗号化データＢから、データＡの暗号化に用いる初期ベクトルを生成してデータＡを暗号化するとともに、この暗号化した暗号化データＥ（Ａ）を記憶し、要求に応じて配信するものである。
【０１７８】
暗号化データ配信装置６Ａは、データ要求手段６１と、データ受信手段６２と、データ分離手段６３と、データ選択手段６４と、データ圧縮手段２１と、ブロック暗号処理手段２２と、データ記憶手段６５と、要求データ抽出手段６６、データ配信手段６７とを備えている。
データ圧縮手段２１、及び、ブロック暗号処理手段２２は、第１実施形態に係るデータ配信装置２Ａの備える手段と同一であるため、説明を省略する。
なお、この暗号化データ配信装置６Ａは、特許請求の範囲では、データ配信装置と記載している。
【０１７９】
データ要求手段６１は、入力されたデータＡに対して、関連する非暗号化データＢを取得するために、非暗号化データ配信装置５にデータ要求をするものである。
【０１８０】
データ受信手段６２は、データ要求手段６１のデータ要求に応じて、非暗号化データ配信装置５から配信されるヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を受信し、データ分離手段６３へ出力するものである。
【０１８１】
データ分離手段６３は、データ受信手段６２からヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を入力して、ヘッダと非暗号化データＢとに分離し、これらをデータ選択手段６４に出力するものである。
【０１８２】
データ選択手段６４は、データＡと関連付ける非暗号化データＢを選択するものである。
具体的には、データ選択手段６４は、外部からデータＡと、データ分離手段６３からヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを入力する。そして、データ選択手段６４は、データＡと関連付ける非暗号化データＢを選択する。そして、データ選択手段６４は、選択された非暗号化データＢをデータ圧縮手段２１へ出力するとともに、選択された非暗号化データＢに対応するヘッダに含まれる識別子を抽出してデータ記憶手段６５へ出力する。
【０１８３】
データ記憶手段６５は、暗号化データＥ（Ａ）と識別子とを組にして、記憶管理するものである。
具体的には、ブロック暗号処理手段２２から暗号化データＥ（Ａ）を入力するとともに、この暗号化データＥ（Ａ）のブロック暗号処理に用いられた非暗号化データＢの識別子をデータ選択手段６４から入力する。そして、データ記憶手段６５は、この暗号化データＥ（Ａ）と識別子とを組にして記憶管理する。また、データ記憶手段６５は、要求データ抽出手段６６からの要求に応じて、暗号化データＥ（Ａ）を要求データ抽出手段６６へ出力する。
【０１８４】
要求データ抽出手段６６は、データ受信装置からの識別子を含むデータ要求を受信し、データ記憶手段６５に出力するとともに、データ記憶手段６５から識別子に対応する暗号化データＥ（Ａ）を読み出して、データ配信手段６７へ出力するものである。
【０１８５】
データ配信手段６７は、要求データ抽出手段６６から、暗号化データＥ（Ａ）を入力し、データ要求のあったデータ受信装置に対して、この暗号化データＥ（Ａ）を配信するものである。
【０１８６】
この暗号化データ配信装置６Ａによれば、データ要求手段６１及びデータ受信手段６２によって、データＡと対応させたい非暗号化データを要求して受信し、データ分離手段６３によって、非暗号化データを分離し、データ選択手段６４によって、データＡと関連付ける非暗号化データを選択するとともに識別子を抽出し、データ圧縮手段２１によって、非暗号化データからハッシュ値ｈを算出し、ブロック暗号処理手段２２によって、ハッシュ値ｈを初期ベクトルとして、データＡのブロック暗号処理を行い、データ記憶手段６５によって、暗号化データと識別子との組を記憶する。そして、要求データ抽出手段６６によって、データ要求を受信して、データ記憶手段６５からデータ要求に含まれる識別子に対応する暗号化データを読み出し、データ配信手段６７によって、配信する。
【０１８７】
このため、暗号化データと関連付けた非暗号化データとは別に、暗号化データを配信できるとともに、非暗号化データが改ざん等なされると、受信側で、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
【０１８８】
なお、暗号化データ配信装置６Ａの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、暗号化データ配信装置６Ａでは、データ要求手段６１によって、入力されたデータＡに対応して、非暗号化データ配信装置５にデータ要求をするとしたが、データＡに依存せず、非暗号化データ配信装置５に全てのデータを要求し、データ選択手段６４によって、データＡと関連付ける非暗号化データＢを選択してもよい。
【０１８９】
また、暗号化データ配信装置６Ａでは、識別子が含まれるヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを非暗号化データ配信装置５から取得する構成としたが、非暗号化データ配信装置５に記憶されている識別子と非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを記憶媒体等に保存しておき、この記憶媒体から、直接、データＡと関連付けたい非暗号化データＢをデータ圧縮手段２１へ、識別子をデータ記憶手段６５へ、入力してもよい。
【０１９０】
［データ受信装置（第３実施形態）の構成］
図１７を参照して、本発明の第３実施形態に係るデータ受信装置３Ｃ（３）の構成を説明する。
【０１９１】
データ受信装置３Ｃは、非暗号化データ配信装置から非暗号化データＢ（Ｂ１、Ｂ２、・・・）を取得するとともに、暗号化データ配信装置から対応する暗号化データＥ（Ａ）を取得し、非暗号化データＢから、暗号化データＥ（Ａ）の復号に用いる初期ベクトルを生成して暗号化データＥ（Ａ）を復号し、復号したデータＡ’のフォーマットを規定フォーマットと比較することで、非暗号化データＢの真正性を検証するものである。
【０１９２】
データ受信装置３Ｃは、データ要求手段３７と、データ受信手段３８と、データ分離手段３９と、データ選択手段４０と、データ圧縮手段３３と、ブロック復号処理手段３４と、データ検証手段３５とを備えている。
データ圧縮手段３３、ブロック復号処理手段３４、及び、データ検証手段３５は、第１実施形態に係るデータ受信装置３Ａの備える手段と同一であるため、説明を省略する。
【０１９３】
データ要求手段３７は、非暗号化データ配信装置５及び暗号化データ配信装置６Ａに対して、データ要求を行うものである。
具体的には、データ要求手段３７は、最初に非暗号化データ配信装置５に対してデータ要求を行う。そして、データ要求手段３７は、非暗号化データ配信装置５から配信されるデータのヘッダ部に含まれる識別子を、後記するデータ選択手段４０によって取得する。すると、データ要求手段３７は、この識別子を用いて暗号化データ配信装置６Ａに対してデータ要求を行う。
【０１９４】
データ要求手段３７が非暗号化データ配信装置５に対して行うデータ要求は、非暗号化データ配信装置５が管理する非暗号化データＢ（メタデータ）に対して、興味のあるものを限定する等の条件を付したものであってよい。
【０１９５】
データ受信手段３８は、非暗号化データ配信装置５から受信するヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）をデータ分離手段３９に出力するとともに、暗号化データ配信装置６Ａから受信する暗号化データＥ（Ａ）をデータ分離手段３９に出力するものである。
【０１９６】
データ分離手段３９は、受信したデータから、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）と暗号化データＥ（Ａ）とを抽出するものである。
具体的には、データ分離手段３９は、データ受信手段３８からヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とを入力した場合には、ヘッダと非暗号化データＢとに分離する。そして、データ分離手段３９は、ヘッダと非暗号化データＢとをデータ選択手段４０に出力するとともに、非暗号化データＢをデータ圧縮手段３３へ出力する。
また、データ分離手段３９は、データ受信手段３８から暗号化データＥ（Ａ）を入力した場合には、この暗号化データＥ（Ａ）をブロック復号処理手段３４へ出力する。
【０１９７】
データ選択手段４０は、１つ以上の非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から所定のものを選択するものである。
具体的には、データ選択手段４０は、データ分離手段３９からヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）との組を入力する。そして、データ選択手段４０は、１つ以上の非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から、興味のあるもの等を選択し、選択した非暗号化データＢに対応するヘッダに含まれる識別子を抽出して、データ要求手段３７へ出力する。また、データ選択手段４０は、選択した非暗号化データＢを、データ圧縮手段３３へ出力する。
なお、非暗号化データＢの選択方法は、予め設定された条件等により選択してもよいし、図示しない入力手段により選択してもよい。
【０１９８】
この選択された識別子をキーとして、暗号化データ配信装置６Ａに対して検索を行い、関連付けられている暗号化データＥ（Ａ）を取得し、ブロック復号処理手段３４において復号することとなる。
【０１９９】
データ圧縮手段３３は、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを生成するものである。
データ圧縮手段３３が用いるハッシュ関数Ｈは、暗号化データ配信装置６Ａのデータ圧縮手段２１が用いるハッシュ関数と同じである必要がある。
【０２００】
ブロック復号処理手段３４は、暗号化データＥ（Ａ）のブロック復号処理を行うものである。
ブロック復号処理手段３４がブロック復号処理に用いる復号手段は、暗号化データ配信装置６Ａのブロック暗号処理手段２２がブロック暗号処理に用いる暗号化手段と対応するものである必要がある。
また、ブロック復号処理手段３４が用いる鍵は、暗号化データ配信装置６Ａのブロック暗号処理手段２２が用いる鍵と事前に共有しておく必要がある。
【０２０１】
データ検証手段３５は、復号されたデータＡ’のフォーマットを規定のフォーマットと比較することで、非暗号化データＢの真正性を検証するものである。
例えば、暗号化データ配信装置６Ａとデータ受信装置３Ｃとの間で、暗号化するデータＡのヘッダ部のフォーマットを規定しておく。そうすることで、データ検証手段３５は、復号されたデータＡ’のヘッダ部が規定フォーマットに準拠しているか否かを検証することによって、非暗号化データＢの改ざんの有無を検知することが可能となる。
【０２０２】
このデータ受信装置３Ｃによれば、データ要求手段３７によって、非暗号化データのデータ要求をするとともに、データ選択手段４０からの識別子を用いて、暗号化データのデータ要求をし、データ受信手段３８によって、データを受信し、データ分離手段３９によって、非暗号化データと暗号化データとを抽出し、データ圧縮手段３３によって、非暗号化データからハッシュ値ｈを算出し、ブロック復号処理手段３４によって、ハッシュ値ｈを初期ベクトルとして、暗号化データのブロック復号処理を行い、データ検証手段３５によって、復号されたデータのフォーマットを検証することで、非暗号化データの真正性を検証する。
【０２０３】
このため、非暗号化データと暗号化データとを別々の装置から受信した場合であっても、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
【０２０４】
なお、データ受信装置３Ｃの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
データ受信装置３Ｃでは、非暗号化データ配信装置５から取得したヘッダに含まれる識別子をデータ選択手段４０がデータ要求手段３７に出力して、これを用いて暗号化データ配信装置６Ａにデータ要求する構成としたが、非暗号化データ配信装置５及び暗号化データ配信装置６Ａから取得するヘッダに含まれる識別子が一致する構成となれば、これに限られるものではない。
【０２０５】
次に、第３実施形態に係る装置の動作について説明する。
［非暗号化データ配信装置（第３実施形態）の動作］
図２４を参照して（構成については、適宜図１５を参照のこと）、本発明の第３実施形態に係る非暗号化データ配信装置５の動作について説明する。
【０２０６】
＜非暗号化データＢの登録動作＞
まず、図２４（ａ）を参照して、非暗号化データ配信装置５の非暗号化データＢの登録動作について説明する。
非暗号化データ配信装置５は、データ登録手段５１によって、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を入力すると、この非暗号化データＢを一意に特定できる識別子を生成し（ステップＳ５１）、非暗号化データと識別子との組をデータ記憶手段５２へ出力する。
そして、非暗号化データ配信装置５は、データ記憶手段５２によって、非暗号化データＢと識別子との組を記憶する（ステップＳ５２）。
【０２０７】
＜非暗号化データＢの配信動作＞
次に、図２４（ｂ）を参照して、非暗号化データ配信装置５の非暗号化データＢの配信動作について説明する。
非暗号化データ配信装置５は、要求データ抽出手段５３によって、外部の装置（暗号化データ配信装置６Ａ、データ受信装置３Ｃ）からデータ要求を受信する（ステップＳ５３）。
【０２０８】
すると、非暗号化データ配信装置５は、要求データ抽出手段５３によって、データ記憶手段５２から、識別子と非暗号化データＢとの組を取得する（ステップＳ５４）。
そして、非暗号化データ配信装置５は、データ配信手段５４によって、識別子を含むヘッダと非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）とをデータ要求のあった外部の装置へ配信する（ステップＳ５５）。
【０２０９】
［暗号化データ配信装置（第３実施形態）の動作］ 
図２５を参照して（構成については、適宜図１６を参照のこと）、本発明の第３実施形態に係る暗号化データ配信装置（６Ａ）の動作について説明する。
【０２１０】
＜暗号化データＥ（Ａ）の登録動作＞
まず、図２５（ａ）を参照して、暗号化データ配信装置６Ａの暗号化データＥ（Ａ）の記憶動作について説明する。
暗号化データ配信装置６Ａは、データ要求手段６１によって、非暗号化データ配信装置５に対して非暗号化データＢを要求する（ステップＳ６１）。
すると、暗号化データ配信装置６Ａは、データ受信手段６２によって、非暗号化データ配信装置５から、ヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を受信する（ステップＳ６２）。
【０２１１】
そして、暗号化データ配信装置６Ａは、データ分離手段６３によって、ヘッダ及び非暗号化データＢを分離し、データ選択手段６４によって、データＡと関連付ける非暗号化データＢを選択する（ステップＳ６３）。
そして、暗号化データ配信装置６Ａは、選択された非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを生成する（ステップＳ６４）。
【０２１２】
そして、暗号化データ配信装置６Ａは、ブロック暗号処理手段２２によって、ハッシュ値ｈを用いて、データＡのブロック暗号処理を行う（ステップＳ６５）。
そして、暗号化データ配信装置６Ａは、データ記憶手段６５によって、識別子と暗号化データＥ（Ａ）との組を記憶する（ステップＳ６６）。
【０２１３】
＜暗号化データＥ（Ａ）の配信動作＞
次に、図２５（ｂ）を参照して、暗号化データ配信装置６Ａの暗号化データＥ（Ａ）の配信動作について説明する。
暗号化データ配信装置６Ａは、要求データ抽出手段６６によって、データ受信装置３Ｃからデータ要求を受信する（ステップＳ６７）。
【０２１４】
すると、暗号化データ配信装置６Ａは、要求データ抽出手段６６によって、データ記憶手段６５から、データ要求に含まれる識別子に対応する暗号化データＥ（Ａ）を取得する（ステップＳ６８）。
そして、暗号化データ配信装置６Ａは、データ配信手段６７によって、暗号化データＥ（Ａ）をデータ受信装置３Ｃへ配信する（ステップＳ６９）。
【０２１５】
［データ受信装置（第３実施形態）の動作］
図２６を参照して（構成については、適宜図１７を参照のこと）、本発明の第３実施形態に係るデータ受信装置（３Ｃ）の動作について説明する。
データ受信装置３Ｃは、データ要求手段３７によって、非暗号化データ配信装置５に対して、データ要求を行う（ステップＳ７１）。
【０２１６】
すると、データ受信装置３Ｃは、データ受信手段３８によって、非暗号化データ配信装置５からヘッダ及び非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）を受信する（ステップＳ７２）。
そして、データ受信装置３Ｃは、データ分離手段３９によって、ヘッダと非暗号化データＢとを分離し、データ選択手段４０によって、非暗号化データＢを選択し、その識別子を取得する（ステップＳ７３）。
【０２１７】
そして、データ受信装置３Ｃは、データ要求手段３７によって、暗号化データ配信装置６Ａに対して、識別子を用いて暗号化データＥ（Ａ）を要求する（ステップＳ７４）。
すると、データ受信装置３Ｃは、データ受信手段３８によって、暗号化データ配信装置６Ａから暗号化データＥ（Ａ）を受信する（ステップＳ７５）。
【０２１８】
そして、データ受信装置３Ｃは、データ圧縮手段３３によって、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）からハッシュ値ｈを生成する（ステップＳ７６）。
【０２１９】
そして、データ受信装置３Ｃは、ブロック復号処理手段３４によって、ハッシュ値ｈを用いて、暗号化データＥ（Ａ）のブロック復号処理を行う（ステップＳ７７）。
そして、データ受信装置３Ｃは、データ検証手段３５によって、復号したデータＡ’を規定のフォーマットと比較する（ステップＳ７８）。
【０２２０】
そして、データ受信装置３Ｃは、データ検証手段３５によって、比較結果が一致するか否かを判断し（ステップＳ７９）、一致するならば、非暗号化データＢに改ざん等なされていない（非暗号化データＢは真正）と判断し（ステップＳ８０）、一致しないならば、非暗号化データＢに改ざん等なされたと判断する（ステップＳ８１）。
【０２２１】
（第４実施形態）     
第４実施形態は、データ配信システム１Ｂの暗号化データ配信装置６及びデータ受信装置３において、非暗号化データＢ（Ｂ１、Ｂ２、Ｂ３、・・・）から求めたハッシュ値ｈのビット長ｍと、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長ｎとが異なる場合である。
なお、第４実施形態における非暗号化データ配信装置５は、第３実施形態の非暗号化データ配信装置５と同一であるので、その説明を省略する。
【０２２２】
［暗号化データ配信装置（第４実施形態）の構成］
図１８を参照して、本発明の第４実施形態に係る暗号化データ配信装置６Ｂ（６）の構成について説明する。
【０２２３】
暗号化データ配信装置６Ｂは、入力されるデータＡに対して関連付けたい非暗号化データＢを取得し、この非暗号化データＢから、データＡの暗号化に用いるハッシュ値ｈを生成してデータＡを暗号化するとともに、この暗号化した暗号化データＥ（Ａ）を記憶し、要求に応じて配信するものである。
【０２２４】
暗号化データ配信装置６Ｂは、データ要求手段６１と、データ受信手段６２と、データ分離手段６３と、データ選択手段６４と、データ圧縮手段２１Ｂと、ビット長調整手段２４と、ブロック暗号処理手段２２Ｂと、データ記憶手段６５と、要求データ抽出手段６６と、データ配信手段６７とを備えている。
【０２２５】
データ圧縮手段２１Ｂ、ビット長調整手段２４、及び、ブロック暗号処理手段２２Ｂは、第２実施形態に係るデータ配信装置２Ｂの備える手段と同一であるため、説明を省略する。
データ要求手段６１、データ受信手段６２、データ分離手段６３、データ選択手段６４、データ記憶手段６５、要求データ抽出手段６６、及び、データ配信手段６７は、第３実施形態に係る暗号化データ配信装置６Ａの備える手段と同一であるため、説明を省略する。
なお、この暗号化データ配信装置６Ｂは、特許請求の範囲では、データ配信装置と記載している。
【０２２６】
この暗号化データ配信装置６Ｂによれば、データ要求手段６１及びデータ受信手段６２によって、データＡと対応させたい非暗号化データを要求して受信し、データ分離手段６３によって、非暗号化データを分離し、データ選択手段６４によって、データＡと関連付ける非暗号化データを選択するとともに識別子を抽出し、データ圧縮手段２１Ｂによって、非暗号化データからハッシュ値ｈを算出し、ビット長調整手段２４によって、ハッシュ値ｈのビット長を調整して、ハッシュ値ブロック、または、必要に応じて分割してハッシュ値分割ブロックとし、ブロック暗号処理手段２２Ｂによって、ハッシュ値ブロックまたは１つ以上のハッシュ値分割ブロックを用いてデータＡのブロック暗号処理を行い、データ記憶手段６５によって、暗号化データと識別子との組を記憶する。そして、要求データ抽出手段６６によって、データ要求を受信して、データ記憶手段６５から識別子に応じた暗号化データを読み出し、データ配信手段６７によって、配信する。
【０２２７】
このため、暗号化データと関連付けた非暗号化データとは別に、暗号化データを配信できるとともに、非暗号化データが改ざん等なされると、受信側で、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
【０２２８】
［データ受信装置（第４実施形態）の構成］
図１９を参照して、本発明の第４実施形態に係るデータ受信装置３Ｄ（３）の構成を説明する。
【０２２９】
データ受信装置３Ｄは、非暗号化データ配信装置から非暗号化データＢ（Ｂ１、Ｂ２、・・・）を取得するとともに、暗号化データ配信装置から対応する暗号化データＥ（Ａ）を取得し、非暗号化データＢから、暗号化データＥ（Ａ）の復号に用いるハッシュ値ブロックまたはハッシュ値分割ブロックを生成して暗号化データＥ（Ａ）を復号し、復号したデータＡ’のフォーマットを検証することで、非暗号化データＢの真正性を検証するものである。
【０２３０】
データ受信装置３Ｄは、データ要求手段３７と、データ受信手段３８と、データ分離手段３９と、データ選択手段４０と、データ圧縮手段３３Ｂと、ビット長調整手段３６と、ブロック復号処理手段３４Ｂと、データ検証手段３５とを備えている。
データ圧縮手段３３Ｂ、ビット長調整手段３６、ブロック復号処理手段３４Ｂ、及び、データ検証手段３５は、第２実施形態に係るデータ受信装置３Ｂの備える手段と同一であるため、説明を省略する。
データ要求手段３７、データ受信手段３８、データ分離手段３９、及び、データ選択手段４０は、第３実施形態に係るデータ受信装置３Ｃの備える手段と同一であるため、説明を省略する。
【０２３１】
なお、データ圧縮手段３３Ｂが用いるハッシュ関数Ｈ、ビット長調整手段３６、ブロック復号処理手段３４Ｂで用いるアルゴリズム及び鍵、並びに、データ検証手段３５の例におけるデータＡのヘッダ部のフォーマット等は、暗号化データ配信装置６Ｂとの対応をとる必要がある。
【０２３２】
このデータ受信装置３Ｄによれば、データ要求手段３７によって、非暗号化データのデータ要求をするとともに、データ選択手段４０からの識別子を用いて、暗号化データのデータ要求をし、データ受信手段３８によって、データを受信し、データ分離手段３９によって、非暗号化データと暗号化データとを抽出し、データ圧縮手段３３Ｂによって、非暗号化データからハッシュ値ｈを算出し、ビット長調整手段３６によって、ハッシュ値ｈのビット長を調整して、ハッシュ値ブロック、または、必要に応じて分割してハッシュ値分割ブロックとし、ブロック復号処理手段３４Ｂによって、ハッシュ値ブロックまたは１つ以上のハッシュ値分割ブロックを用いて暗号化データのブロック復号処理を行い、データ検証手段３５によって、復号されたデータのフォーマットを検証することで、非暗号化データＢの真正性を検証する。
【０２３３】
このため、非暗号化データと暗号化データとを別々の装置から受信した場合であっても、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
【０２３４】
次に、第４実施形態に係る装置の動作について説明する。
［暗号化データ配信装置（第４実施形態）の動作］
図２７を参照して（構成については、適宜図１８を参照のこと）、本発明の第４実施形態に係る暗号化データ配信装置６Ｂの動作について説明する。
【０２３５】
暗号化データ配信装置６ＢのステップＳ９１〜ステップＳ９４、ステップＳ９６〜ステップＳ１００の動作は、それぞれ、第３実施形態に係る暗号化データ配信装置６ＡのステップＳ６１〜ステップＳ６９と同様であるので、その説明を省略する。
【０２３６】
暗号化データ配信装置６Ｂは、ビット長調整手段２４によって、ハッシュ値ｈのビット長ｍｂｉｔを暗号化の際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて調整する（ステップＳ９５）。
【０２３７】
［データ受信装置（第４実施形態）の動作］
図２８を参照して（構成については、適宜図１９を参照のこと）、本発明の第４実施形態に係るデータ受信装置（３Ｄ）の動作について説明する。
【０２３８】
データ受信装置３ＤのステップＳ１０１〜ステップＳ１０６、ステップＳ１０８〜ステップＳ１１２の動作は、それぞれ、第３実施形態に係るデータ受信装置３ＣのステップＳ７１〜ステップＳ８１と同様であるので、その説明を省略する。
【０２３９】
データ受信装置３Ｄは、ビット長調整手段３６によって、ハッシュ値ｈのビット長ｍｂｉｔを復号する際に用いるアルゴリズムのブロック長ｎｂｉｔに合わせて調整する（ステップＳ１０７）。
【０２４０】
以上、本発明について実施形態に即して各装置を説明したが、本発明は、これらの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、データ配信装置は、コンピュータにおいて各手段を機能プログラムとして実現することも可能であり、各機能プログラムを結合して、データ配信プログラムとして動作させることも可能である。データ受信装置、非暗号化データ配信装置、及び、暗号化データ配信装置についても同様である。
【０２４１】
また、前記した各実施形態では、入力データは、例えば、映像コンテンツ等のデータであり、非暗号化データは、このデータに関連するメタデータであるとしたが、これに限定されるものではなく、暗号化データと非暗号化データとを関連付けて配信する、より一般的な形態においても利用され得るものである。
【符号の説明】
【０２４２】
１（１Ａ、１Ｂ）              データ配信システム
２（２Ａ、２Ｂ）              データ配信装置
２１、２１Ｂ                  データ圧縮手段
２２、２２Ｂ                  ブロック暗号処理手段
２３                          データ配信手段
２４                          ビット長調整手段
３（３Ａ、３Ｂ、３Ｃ、３Ｄ）  データ受信装置
３１、３８                    データ受信手段
３２、３９                    データ分離手段
３３、３３Ｂ                  データ圧縮手段
３４、３４Ｂ                  ブロック復号処理手段
３５                          データ検証手段
３６                          ビット長調整手段
３７                          データ要求手段
４０                          データ選択手段
４                            ネットワーク
５                            非暗号化データ配信装置
５１                          データ登録手段
５２                          データ記憶手段
５３                          要求データ抽出手段
５４                          データ配信手段
６（６Ａ、６Ｂ）              暗号化データ配信装置（データ配信装置）
６１                          データ要求手段
６２                          データ受信手段
６３                          データ分離手段   
６４                          データ選択手段
６５                          データ記憶手段
６６                          要求データ抽出手段
６７                          データ配信手段
【図１】
0005416544.tif 000002
【図２】
0005416544.tif 000003
【図３】
0005416544.tif 000004
【図４】
0005416544.tif 000005
【図５】
0005416544.tif 000006
【図６】
0005416544.tif 000007
【図７】
0005416544.tif 000008
【図８】
0005416544.tif 000009
【図９】
0005416544.tif 000010
【図１０】
0005416544.tif 000011
【図１１】
0005416544.tif 000012
【図１２】
0005416544.tif 000013
【図１３】
0005416544.tif 000014
【図１４】
0005416544.tif 000015
【図１５】
0005416544.tif 000016
【図１６】
0005416544.tif 000017
【図１７】
0005416544.tif 000018
【図１８】
0005416544.tif 000019
【図１９】
0005416544.tif 000020
【図２０】
0005416544.tif 000021
【図２１】
0005416544.tif 000022
【図２２】
0005416544.tif 000023
【図２３】
0005416544.tif 000024
【図２４】
0005416544.tif 000025
【図２５】
0005416544.tif 000026
【図２６】
0005416544.tif 000027
【図２７】
0005416544.tif 000028
【図２８】
0005416544.tif 000029