JP5416544B2 - データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム - Google Patents

データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム Download PDF

Info

Publication number
JP5416544B2
JP5416544B2 JP2009241441A JP2009241441A JP5416544B2 JP 5416544 B2 JP5416544 B2 JP 5416544B2 JP 2009241441 A JP2009241441 A JP 2009241441A JP 2009241441 A JP2009241441 A JP 2009241441A JP 5416544 B2 JP5416544 B2 JP 5416544B2
Authority
JP
Japan
Prior art keywords
data
block
hash value
encrypted
encrypted data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009241441A
Other languages
English (en)
Other versions
JP2011091494A (ja
Inventor
千草 山村
一人 小川
剛 大竹
俊之 藤澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2009241441A priority Critical patent/JP5416544B2/ja
Publication of JP2011091494A publication Critical patent/JP2011091494A/ja
Application granted granted Critical
Publication of JP5416544B2 publication Critical patent/JP5416544B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、コンピュータ等の機器が、機密性の高いデータとそれに関連する平文のデータとを配信する際に、平文データのハッシュ値を用いて機密データを暗号化することによってそれらのデータを関連付け、平文データの真正性の検証を効率的に行うことのできる技術に関する。
インターネット等のネットワークを介して、映像コンテンツや音声コンテンツ等の電子データを送受する機会が増加している。ネットワークを介したデータの配信では、データの改ざんや不正利用が懸念されるため、重要なデータは暗号化して扱うことが多い。一方で、そのデータに関する利用条件やタイトル等のメタデータは、検索や事前の判断等に利用されるため、暗号化をせずに扱うことが望ましい。
このように、ネットワーク上で、暗号化データと非暗号化データとをあわせて送受する場合、悪意のある利用者による非暗号化データ部分の改ざんが問題となる。改ざんがなされて誤った利用条件等が記述されたデータが配信されれば、映像コンテンツや音声コンテンツ等が権利者の意図しない条件下で利用される恐れがある。そのため、非暗号化データの改ざんを検知できる仕組みが必要となる。
一般に、データの真正性検証を行う技術として、メッセージ認証コード(MAC;Message Authentication Code)を用いた方法が知られている。この方法では、送信側及び受信側で鍵を共有して、送信側が、送信したい任意長のメッセージから鍵を用いてMACを生成し、メッセージとMACとを送信する。これを受信した受信側は、事前に共有した鍵を用いてメッセージからMACを生成し、受信したMACと照合することによって、改ざんを検知する方法である(非特許文献1)。
また、特許文献1では、コンテンツサーバにおいてメタデータの一部に対するハッシュ値を生成し、それに対して付与したデジタル署名とあわせてメタデータ内部に格納することで、受信側がメタデータの改ざんや変更を検知可能とする発明が記載されている。この方法によれば、データの受信側は、デジタル署名とハッシュ値とを用いて、メタデータの認証を行うことが可能となる。
特表2008−539525号 公報
今井秀樹、"暗号のおはなし 情報セキュリティの基盤 改訂版"、日本規格協会、pp. 65-72、149-152、2003年5月.
しかし、前記の方法では、非暗号化データの改ざん検知と、暗号化データの復号とは、個別の処理であるため、例え非暗号化データの改ざんが検知されたとしても、それと関連づけて配信される暗号化データは正常に復号されてしまう。そのため利用者は、正しい利用条件等が記述された非暗号化データを把握していない状況下でも、復号したデータを扱うことが可能となり、不正利用を招く恐れがあるという課題がある。
また、前記の方法では、送信側における非暗号化データの改ざん検知用認証子の生成と暗号化データの生成(暗号化)、及び、受信側における非暗号化データの改ざん検知と暗号化データの復号は、それぞれ個別の処理であるため、処理効率が悪いという課題がある。
また、前記の方法では、配信するファイルのデータ構造にハッシュ値やデジタル署名等を格納するための個別領域を設けて送信するか、又は、別途改ざん検知用認証子を送信する必要があり、通信の効率の悪化につながるという課題がある。
本発明は、かかる課題を解決するためになされたものであり、暗号化データから非暗号化データの改ざん検知を可能とし、改ざんが認められた場合には、暗号化データの正常な復号を不能とする技術を提供することを目的とする。
また、データの送信側における改ざん検知用認証子の生成と暗号化、及び、データの受信側における改ざん検知と復号をそれぞれ1つの処理として行う技術を提供することを目的とする。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、データの送信側において暗号化に必要となる計算量を同一として、改ざん検知用認証子の生成に必要となる計算量を削減すること、及び、データの受信側において復号に必要となる計算量を同一として、改ざん検知に必要となる計算量を削減することを目的とする。
また、非暗号化データの改ざんを検知するための余分なデータを配信データに含めることなく、データの受信側が、非暗号化データの改ざん等の検知を可能とする技術を提供することを目的とする。
本発明は、前記課題を解決するために創案されたものであり、まず、請求項1に記載のデータ配信装置は、入力データと非暗号化データとが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと非暗号化データとを配信するデータ配信装置であって、データ圧縮手段と、ブロック暗号処理手段と、データ配信手段と、を備える構成とした。
かかる構成において、データ配信装置は、データ圧縮手段によって、1以上の非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。ここで、ハッシュ関数には、例えば、SHA−256、SHA−512等を用いることができる。
なお、本発明において、入力データとは、例えば、映像コンテンツや音声コンテンツ等のデータである。また、非暗号化データとは、例えば、このデータに対応するタイトルや利用条件等のメタデータである。
そして、データ配信装置は、ブロック暗号処理手段によって、ハッシュ値を初期ベクトル(IV:Initial Vector)として、予め定めた利用モードにより、入力データをブロック暗号処理して暗号化データを生成する。ここで、ブロック暗号処理の利用モードとは、CBC(Cipher Block Chaining)モード、OFB(Output FeedBack)モード、CFB(Cipher FeedBack)モード等の利用モードを指す。後記するブロック復号処理の利用モードについても同様である。
なお、本発明において、ブロック暗号処理に用いる暗号化アルゴリズムには、例えば、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等があるが、特定の暗号化アルゴリズムに限定されるものではない。暗号化アルゴリズムに対応する復号アルゴリズムについても同様である。
そして、データ配信装置は、データ配信手段によって、ブロック暗号処理手段が生成した暗号化データと非暗号化データとを多重化して、この多重化の構成を記述したヘッダと非暗号化データと暗号化データとを配信データとして配信する。
また、請求項2に記載のデータ配信装置は、入力データと、非暗号化データ及びその識別子とが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと識別子とを対応付けて記憶するとともに、要求に応じて暗号化データを配信するデータ配信装置であって、データ圧縮手段と、ブロック暗号処理手段と、データ記憶手段と、要求データ抽出手段と、データ配信手段と、を備える構成とした。
かかる構成において、データ配信装置は、データ圧縮手段によって、非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。そして、データ配信装置は、ブロック暗号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、入力データをブロック暗号処理して暗号化データを生成する。
また、データ配信装置は、データ記憶手段によって、暗号化データと、当該暗号化データのブロック暗号処理に用いられた非暗号化データの識別子とを対応させて記憶する。そして、データ配信装置は、データ要求抽出手段によって、データ要求を受信すると、当該データ要求に含まれる識別子と一致する識別子に対応する暗号化データをデータ記憶手段から取得する。
また、データ配信装置は、データ配信手段によって、この要求データ抽出手段が取得した暗号化データを配信する。
また、請求項3に記載のデータ配信装置は、請求項1又は請求項2に記載のデータ配信装置において、データ圧縮手段が算出するハッシュ値の長さと、ブロック暗号処理手段におけるブロック暗号処理で用いるアルゴリズムのブロック長とを比較し、ハッシュ値の長さがブロック長より短い場合には、ハッシュ値にパディングを施し、ブロック長の長さと等しいハッシュ値ブロックとし、ハッシュ値の長さがブロック長より長い場合には、ハッシュ値に必要に応じてパディングを施して長さをブロック長の整数倍とした後、ブロック長ごとに分割して複数のブロック(以下、ハッシュ値分割ブロックとする。)とし、ハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックをブロック暗号処理手段に出力するビット長調整手段をさらに備える構成とした。
かかる構成により、データ配信装置は、ビット長調整手段によって、ハッシュ値の長さとブロック暗号処理で用いるアルゴリズムのブロック長とが異なる場合でも、非暗号化データから生成されたハッシュ値と関連付けて入力データをブロック暗号処理することができる。
また、請求項4に記載のデータ配信装置は、請求項3に記載のデータ配信装置において、ブロック暗号処理手段が、入力データをブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの1つを初期ベクトルとして、当該初期ベクトルと、複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、1番目の平文ブロックとから、1番目の暗号ブロックを生成し、i−1番目(iは2以上の整数)のブロックの出力と、複数のハッシュ値分割ブロックのうちの1つと、i番目の前記平文ブロックとから、i番目の暗号ブロックを生成し、生成された暗号ブロックを連結して暗号化データを生成することを特徴とする。
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成できる。
また、請求項5に記載のデータ配信装置は、請求項3に記載のデータ配信装置において、ブロック暗号処理手段が、入力データをブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの1つを初期ベクトルとして、当該初期ベクトルと、1番目の平文ブロックとから、1番目の暗号ブロックを生成し、i−1番目(iは2以上の整数)のブロックの出力と複数のハッシュ値分割ブロックのうちの1つとの排他的論理和の出力と、i番目の平文ブロックとから、i番目の暗号ブロックを生成し、生成された暗号ブロックを連結して暗号化データを生成することを特徴とする。
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成できる。
また、請求項6に記載のデータ配信装置は、請求項4又は請求項5に記載のデータ配信装置において、ブロック暗号処理手段が、複数のハッシュ値分割ブロックが入力された場合において、ハッシュ値分割ブロックの数をM個とすると、暗号ブロックを生成する際に、1番目からM番目までのハッシュ値分割ブロックを順次繰り返し用いることを特徴とする。
かかる構成により、データ配信装置は、ブロック暗号処理手段によって、非暗号化データから生成されたハッシュ値全体にわたって、暗号化データと関連付けることができる。
また、請求項7に記載のデータ受信装置は、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するデータ受信装置であって、データ受信手段と、データ分離手段と、データ圧縮手段と、ブロック復号処理手段と、データ検証手段と、を備える構成とした。
かかる構成において、データ受信装置は、データ受信手段によって、ヘッダと非暗号化データと暗号化データとを含んだ配信データを受信する。そして、データ受信装置は、データ分離手段によって、ヘッダに記述された多重化構成の情報に基づき、配信データから非暗号化データと暗号化データとを分離する。
また、データ受信装置は、データ圧縮手段によって、このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いてハッシュ値を算出する。そして、データ受信装置は、ブロック復号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、暗号化データをブロック復号処理して復号データを生成する。
また、データ受信装置は、データ検証手段によって、ブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、復号データと予め設定されたフォーマットとが一致するならば非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定する。
また、請求項8に記載のデータ受信装置は、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するデータ受信装置であって、データ要求手段と、データ受信手段と、データ分離手段と、データ選択手段と、データ圧縮手段と、ブロック復号処理手段と、データ検証手段と、を備える構成とした。
かかる構成において、データ受信装置は、データ要求手段によって、データ要求を送信する。そして、データ受信装置は、データ受信手段によって、非暗号化データ配信装置からヘッダと非暗号化データとを受信するとともに、データ配信装置から暗号化データを受信する。
また、データ受信装置は、データ分離手段によって、ヘッダと非暗号化データとを分離する。そして、データ受信装置は、データ選択手段によって、データ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した識別子をデータ要求手段へ出力する。
また、データ受信装置は、データ圧縮手段によって、データ選択手段が選択した非暗号化データからハッシュ関数を用いてハッシュ値を算出する。そして、データ受信装置は、ブロック復号処理手段によって、ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、暗号化データをブロック復号処理して復号データを生成する。
また、データ受信装置は、データ検証手段によって、ブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、復号データと予め設定されたフォーマットとが一致するならば非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定する。
また、請求項9に記載のデータ受信装置は、請求項7又は請求項8に記載のデータ受信装置において、データ圧縮手段が算出するハッシュ値の長さと、ブロック復号処理手段におけるブロック復号処理で用いるアルゴリズムのブロック長とを比較し、ハッシュ値の長さがブロック長より短い場合には、ハッシュ値にパディングを施し、ブロック長の長さと等しいハッシュ値ブロックとし、ハッシュ値の長さがブロック長より長い場合には、ハッシュ値に必要に応じてパディングを施して長さをブロック長の整数倍とした後、ブロック長ごとに分割して複数のハッシュ値分割ブロックとし、ハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックをブロック復号処理手段に出力するビット長調整手段をさらに備える構成とした。
かかる構成により、データ受信装置は、ビット長調整手段によって、ハッシュ値のビット長とブロック復号処理のブロック長とが異なる場合でも、非暗号化データから生成されたハッシュ値を関連付けて暗号化データをブロック復号処理することができる。
また、請求項10に記載のデータ受信装置は、請求項9に記載のデータ受信装置において、ブロック復号処理手段が、暗号化データをブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの1つを初期ベクトルとして、当該初期ベクトルと、複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、1番目の暗号ブロックとから、1番目の平文ブロックを生成し、i−1番目(iは2以上の整数)のブロックの出力と、複数のハッシュ値分割ブロックのうちの1つと、i番目の暗号ブロックとから、i番目の平文ブロックを生成し、生成された平文ブロックを連結して復号データを生成することを特徴とする。
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
また、請求項11に記載のデータ受信装置は、請求項9に記載のデータ受信装置において、ブロック復号処理手段が、暗号化データをブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、利用モードのブロックを単位として、複数のハッシュ値分割ブロックのうちの1つを初期ベクトルとして、当該初期ベクトルと、1番目の暗号ブロックとから、1番目の平文ブロックを生成し、i−1番目(iは2以上の整数)のブロックの出力と複数のハッシュ値分割ブロックのうちの1つとの排他的論理和の出力と、i番目の暗号ブロックとから、i番目の平文ブロックを生成し、生成された平文ブロックを連結して復号データを生成することを特徴とする。
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値をブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
また、請求項12に記載のデータ受信装置は、請求項10又は請求項11に記載のデータ受信装置において、ブロック復号処理手段が、複数のハッシュ値が入力された場合において、ハッシュ値分割ブロックの数をM個とすると、平文ブロックを生成する際に、1番目からM番目までのハッシュ値分割ブロックを順次繰り返し用いることを特徴とする。
かかる構成により、データ受信装置は、ブロック復号処理手段によって、非暗号化データから生成されたハッシュ値全体にわたって関連付けられている暗号化データを復号することができる。
また、請求項13に記載のデータ配信プログラムは、入力データと非暗号化データとが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと非暗号化データとを配信するために、コンピュータを、データ圧縮手段、ブロック暗号処理手段、データ配信手段、として機能させることを特徴とする。
また、請求項14に記載のデータ配信プログラムは、入力データと、非暗号化データ及びその識別子とが入力されて、非暗号化データから算出したハッシュ値を用いて入力データのブロック暗号処理を行い、暗号化データと識別子とを対応付けて記憶するとともに、要求に応じて暗号化データを配信するために、コンピュータを、データ圧縮手段、ブロック暗号処理手段、要求データ抽出手段、データ配信手段、として機能させることを特徴とする。
また、請求項15に記載のデータ受信プログラムは、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するために、コンピュータを、データ受信手段、データ分離手段、データ圧縮手段、ブロック復号処理手段、データ検証手段、として機能させることを特徴とする。
また、請求項16に記載のデータ受信プログラムは、非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、非暗号化データの真正性を検証するために、コンピュータを、データ要求手段、データ受信手段、データ分離手段、データ選択手段、データ圧縮手段、ブロック復号処理手段、データ検証手段、として機能させることを特徴とする。
請求項1、2、13、及び、14に記載の発明によれば、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられる。このため、受信側で暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知(真正性を検証)させることができる。
また、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられる。このため、受信側で非暗号化データの改ざんの有無によって暗号化データを復号させないような構成を備えなくとも、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号できなくすることができる。
また、非暗号化データから算出したハッシュ値を初期ベクトルに用いてブロック暗号処理を行い暗号化データを生成しているため、非暗号化データのための改ざん検知用認証子を別途生成する必要がなく、暗号処理と改ざん検知用認証子の生成を1つの処理で行うことができる。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量を同一として、改ざん検知用認証子の生成に必要となる計算量を削減することができる。
また、非暗号化データのための改ざん検知用認証子を送信する必要がない。
さらに、請求項2及び請求項14に記載の発明によれば、非暗号化データ及びその識別子が入力され、非暗号化データと関連付けられた暗号化データは、非暗号化データの識別子とともに記憶され、要求に応じて配信される。
このため、非暗号化データを配信する装置とは異なる装置から、暗号化データを配信しても、受信側で暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知させることができる。
また、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号できなくすることができる。
請求項3に記載の発明によれば、データ圧縮手段によって生成される非暗号化データのハッシュ値の長さによらず、非暗号化データと暗号化データとを関連付けることができる。
請求項4及び請求項5に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックをブロック暗号処理の各ブロックにおいて関連付けて暗号化データを生成するため、非暗号化データと暗号化データとの関連付けを強化できる。
請求項6に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックの全てを、暗号処理のブロック全体にわたって関連付けることができるため、非暗号化データと暗号化データとの関連付けを強化できる。
請求項7、8、15、及び、16に記載の発明によれば、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられている。このため、受信した暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知(真正性を検証)することができる。
また、非暗号化データと暗号化データとは、非暗号化データから生成したハッシュ値を介して関連付けられている。このため、非暗号化データの改ざんの有無によって暗号化データを復号させないような構成を備えなくとも、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号することができない。
また、非暗号化データから算出したハッシュ値を初期ベクトルに用いてブロック暗号処理を行い生成された暗号化データを受信するため、非暗号化データのための改ざん検知用認証子を別途生成する必要がなく、暗号化データの復号処理と認証子の検証を1つの処理で行うことができる。
また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号処理に必要となる計算量を同一として、改ざん検知に必要となる計算量を削減することができる。
また、非暗号化データのための改ざん検知用認証子を受信する必要がない。
さらに、請求項8及び請求項16に記載の発明によれば、非暗号化データは、非暗号化データ配信装置から受信され、暗号化データは、データ配信装置から受信される。
このため、非暗号化データを配信する装置とは異なる装置から、暗号化データを受信しても、受信した暗号化データが正常に復号されるか否かで、非暗号化データの改ざんを検知(真正性を検証)することができる。
また、非暗号化データが改ざん等されたり失われたりした場合には、暗号化データを正常に復号することができない。
請求項9に記載の発明によれば、データ圧縮手段によって生成される非暗号化データのハッシュ値の長さによらず、非暗号化データと関連付けられた暗号化データを復号することができる。
請求項10及び請求項11に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックをブロック暗号処理の各ブロックにおいて関連付けて生成された暗号化データに対しても復号することができる。
請求項12に記載の発明によれば、非暗号化データから生成されたハッシュ値分割ブロックの全てが暗号処理のブロック全体にわたって関連付けられている暗号化データを復号することができる。
第1実施形態、及び、第2実施形態に係るデータ配信システムの構成を示すブロック図である。 第1実施形態に係るデータ配信装置の構成を示すブロック図である。 第1実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。 第1実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。 第1実施形態に係るデータ受信装置の構成を示すブロック図である。 第1実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。 第1実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。 第2実施形態に係るデータ配信装置の構成を示すブロック図である。 第2実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。 第2実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。 第2実施形態に係るデータ配信装置のブロック暗号処理手段の一例を示すブロック図である。 第2実施形態に係るデータ受信装置の構成を示すブロック図である。 図9〜図11の一部を置換して、第2実施形態に係るデータ受信装置のブロック復号処理手段の一例を示すブロック図である。 第3実施形態、及び、第4実施形態に係るデータ配信システムの構成を示すブロック図である。 第3実施形態、及び、第4実施形態に係る非暗号化データ配信装置の構成を示すブロック図である。 第3実施形態に係る暗号化データ配信装置の構成を示すブロック図である。 第3実施形態に係るデータ受信装置の構成を示すブロック図である。 第4実施形態に係る暗号化データ配信装置の構成を示すブロック図である。 第4実施形態に係るデータ受信装置の構成を示すブロック図である。 第1実施形態に係るデータ配信装置の動作を示すフローチャートである。 第1実施形態に係るデータ受信装置の動作を示すフローチャートである。 第2実施形態に係るデータ配信装置の動作を示すフローチャートである。 第2実施形態に係るデータ受信装置の動作を示すフローチャートである。 第3実施形態、及び、第4実施形態に係る非暗号化データ配信装置の動作を示すフローチャートである。 第3実施形態に係る暗号化データ配信装置の動作を示すフローチャートである。 第3実施形態に係るデータ受信装置の動作を示すフローチャートである。 第4実施形態に係る暗号化データ配信装置の動作を示すフローチャートである。 第4実施形態に係るデータ受信装置の動作を示すフローチャートである。
以下、本発明の実施形態について適宜図面を参照しながら説明する。
なお、各実施形態において、同一の機能を有する手段には同一の符号を付して、その説明を省略する。
[データ配信システム(第1実施形態・第2実施形態)の構成]
図1を参照して、本発明の第1実施形態及び第2実施形態に係るデータ配信システム1A(1)の構成について説明する。
データ配信システム1A(1)は、データ配信装置2が生成した配信データを、ネットワーク4を介してデータ受信装置3に配信するもので、データ配信装置2と、データ受信装置3と、ネットワーク4とを備える。
データ配信装置2は、ネットワーク4に接続され、ヘッダと、非暗号化データB(B1、B2、B3、・・・)と、暗号化データE(A)とからなる配信データを生成して、ネットワーク4に配信するものである。
データ受信装置3は、ネットワーク4に接続され、データ配信装置2から配信される配信データをネットワーク4を介して受信し、非暗号化データB(B1、B2、B3、・・・)を用いて暗号化データE(A)を復号するとともに、復号したデータから、非暗号化データB(B1、B2、B3、・・・)の真正性を検証するものである。
これらについては、以下で詳述する。
ネットワーク4は、インターネット等の外部ネットワークであり、データ配信装置2及びデータ受信装置3が、直接又は間接に接続されている。そして、ネットワーク4は、データ配信装置2が配信した配信データをデータ受信装置3へ転送する。
このネットワーク4は、有線ネットワークであってもよいし、無線ネットワークであってもよい。また、ネットワーク4の代わりに放送波としてもよい(不図示)。
なお、ここでいう暗号化データE(A)とは、例えば、映像コンテンツや音声コンテンツ等のデータAを暗号化したものであり、また、非暗号化データB(B1、B2、B3、・・・)は、このデータに関連するメタデータである。
また、B(B1、B2、B3、・・・)という記載は、メタデータB1、B2、B3、・・・を集めたものがBであることを意味する。以下では、適宜、B(B1、B2、B3、・・・)を省略して、Bと書くこともある。
(第1実施形態)
第1実施形態は、データ配信システム1Aのデータ配信装置2及びデータ受信装置3において、非暗号化データB(B1、B2、B3、・・・)から求めたハッシュ値のビット長と、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長とが同一の場合である。
[データ配信装置(第1実施形態)の構成]
図2を参照して、本発明の第1実施形態に係るデータ配信装置2A(2)の構成について説明する。
データ配信装置2Aは、データAと非暗号化データBとを入力すると、非暗号化データBから、データAの暗号化に用いる初期ベクトルを生成してデータAを暗号化し、ヘッダと非暗号化データBと暗号化した暗号化データE(A)とを配信データとして配信するものである。
具体的には、データ配信装置2Aは、ヘッダと、機密性の高いデータAと、非暗号化データB(B1、B2、B3、・・・)とを入力する。すると、データ配信装置2Aは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを求め、ブロック暗号処理を行う際の初期ベクトルとしてハッシュ値hを用いてデータAを暗号化する。そして、データ配信装置2Aは、ヘッダに非暗号化データBと暗号化データE(A)とを多重化する際の構成(多重化構成)の情報を記述して、ヘッダと非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを配信データとして配信する。
データAは、例えば、映像コンテンツや音声コンテンツ等のデータである。非暗号化データB(B1、B2、B3、・・・)は、例えば、データAのメタデータである。図2に示した鍵は、ブロック暗号処理に用いられる共通鍵であり、後記するデータ受信装置3A(3)と共有するものである。データA、非暗号化データB、及び、鍵の意味は、以下の装置においても同様である。
データ配信装置2Aは、データ圧縮手段21と、ブロック暗号処理手段22と、データ配信手段23とを備えている。
データ圧縮手段21は、非暗号化データB(B1、B2、B3、・・・)からハッシュ値を生成するものである。
具体的には、データ圧縮手段21は、非暗号化データB(B1、B2、B3、・・・)を入力する。そして、データ圧縮手段21は、1つ以上の非暗号化データB1、B2、B3、・・・を連結した後に、ハッシュ関数Hを適用してハッシュ値h=H(B1||B2||B3||・・・)を生成し、ブロック暗号処理手段22へ出力する。
なお、本明細書において、「||」は、連結を表す。
データ圧縮手段21は、非暗号化データB(B1、B2、B3、・・・)に、秒単位の配信時刻等を含めることによって、ハッシュ関数Hを適用した結果のハッシュ値h=H(B1||B2||B3||・・・)を処理のたびに異なるランダムな値とすることができる。
データ圧縮手段21の用いるハッシュ関数Hは、H(・)を計算することは容易であるが、H−1(・)を計算することは困難であるという一般的性質を満たすものであれば、特定の関数に限定されるものではない。
第1実施形態においては、データ圧縮手段21の生成するハッシュ値hのビット長と、後記するブロック暗号処理手段22がブロック暗号処理を行う際に用いる暗号化アルゴリズムのブロック長とは、同一である。
このため、例えば、ブロック暗号処理手段22が、代表的な暗号化アルゴリズムであるブロック長256bitのAES(Advanced Encryption Standard)を暗号処理に用いる場合、データ圧縮手段21は、ハッシュ関数HとしてSHA−256(Secure Hash Algorithm−256)を採用することで、非暗号化データB(B1、B2、B3、・・・)を所望の長さ(256bit)に圧縮することができる。
その他、データ圧縮手段21は、例えば、SHA−512等を用いることができる。
ブロック暗号処理手段22は、データAのブロック暗号処理を行うものである。
具体的には、ブロック暗号処理手段22は、外部から機密性の高いデータAと、ブロック暗号処理に用いる鍵とを入力するとともに、データ圧縮手段21からnbitのハッシュ値h=H(B1||B2||B3||・・・)を入力する。すると、ブロック暗号処理手段22は、用いる暗号化アルゴリズムのブロック長nbitに合わせて、データAをnbitごとの平文ブロックに分割する。そして、ブロック暗号処理手段22は、ブロック暗号処理の各ブロックにおいて、暗号化の際に鍵を用いて、平文ブロックから暗号ブロックを生成する。このとき、ブロック暗号処理手段22は、ハッシュ値hを最初のブロックの初期ベクトルとして用い、また、i番目(i≧2)のブロックの暗号化に、i−1番目のブロックの暗号化結果を用いる。そして、ブロック暗号処理手段22は、暗号ブロックを連結して暗号化データE(A)とし、データ配信手段23へ出力する。
ここで、ブロック暗号処理手段22は、データAのビット長がnbit以下の場合には、データAを分割する必要はなく、複数の同じ暗号ブロックが発生することはない。しかし、ブロック暗号処理手段22は、データAのビット長がnbitを超える場合、つまり、暗号化を行う平文ブロックが複数に及ぶ場合には、単に複数の平文ブロックを同じ鍵を用いて順番に暗号化するだけでは、同一の平文ブロックから同一の暗号ブロックが発生し、第三者が平文を容易に推測する恐れがある。
その対策として、ブロック暗号処理手段22は、ブロック間を関連付け、暗号処理を強化させることが好ましい。例えば、ブロック暗号処理手段22は、i番目のブロックの暗号化に、i−1番目の暗号処理結果を利用することで、同一の暗号ブロックが発生する可能性を極めて低くすることができ、平文が解読される可能性も低くできる。
このような例では、ブロック暗号処理手段22は、i−1番目の暗号処理結果をレジスタに記憶しておき、それをi番目のブロックの暗号化に用いる必要がある。ところが、ブロック暗号処理手段22は、最初のブロックの暗号化には、1つ前の暗号処理結果が存在しないため、レジスタの初期値が必要となる。この初期値は、一般に初期ベクトル(IV:Initial Vector)と呼ばれる。
一般的に、ブロック暗号処理手段22は、仮に同じ初期ベクトルを変更せずに利用し続けると、第三者が平文を推測する可能性が高くなる。特に、ある平文を同じ鍵で暗号化した暗号文は常に等しくなるため、暗号文の同一性から平文を容易に推測される恐れがある。このため、ブロック暗号処理手段22は、初期ベクトルを処理のたびに変更して用いることが好ましい。
そこで、本実施形態では、ブロック暗号処理手段22は、データ圧縮手段21が生成したハッシュ値h-=H(B1||B2||B3||・・・)を、初期ベクトルとして用いる。非暗号化データB(B1、B2、B3、・・・)に秒単位のデータ配信時刻を含める等の対策を施すことで、データ圧縮手段21が生成するハッシュ値h=H(B1||B2||B3||・・・)が衝突を起こす可能性は極めて低くなり、処理のたびにほぼランダムな初期ベクトルを生成することができる。
このようにして、ブロック暗号処理手段22は、個別に擬似乱数を生成して初期ベクトルとするのではなく、暗号化データE(A)と同時に配信する非暗号化データB(B1、B2、B3、・・・)から生成されたハッシュ値を初期ベクトルとすることによって、メタデータB(B1、B2、B3、・・・)と関連付けてデータAの暗号処理を行うことが可能となる。
図3を参照して、ブロック暗号処理手段22におけるブロック暗号処理の一例を説明する。
<CBCモードの例>
図3は、CBCモードにおいて、初期ベクトルをH(B1||B2||B3||・・・)とした例である。図3において、“平文ブロックA”(i=1、2、・・・)は、入力されたデータAを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
図3において、最初の“暗号ブロックE(A)”は、初期ベクトル“H(B1||B2||B3||・・・)”と、“平文ブロックA”とをXOR演算し、その結果を“鍵”を用いて暗号化したものである。図3において、“暗号ブロックE(A)”(i=2、3、・・・)は、それぞれ1つ前に暗号化された“暗号ブロックE(Ai−1)”と、暗号化する“平文ブロックA”とをXOR演算し、その結果を“鍵”を用いて暗号化したものである。
そして、“暗号ブロックE(A)”(i=1、2、・・・)を連結したものが、ブロック暗号処理によって生成される暗号化データE(A)である。
なお、図3及び他の図面において、円の中に十字の記号は、XOR演算(排他的論理和)を表す。
図2に戻り、説明を続ける。
データ配信手段23は、ヘッダと非暗号化データBと暗号化データE(A)とを配信データとして配信するものである。
具体的には、データ配信手段23は、外部からデータの多重化構成を記述したヘッダと、非暗号化データB(B1、B2、B3、・・・)とを入力し、ブロック暗号処理手段22から暗号化データE(A)を入力する。そして、データ配信手段23は、非暗号化データBと暗号化データE(A)とを多重化するとともに、ヘッダに、多重化構成を記述し、ヘッダと非暗号化データBと暗号化データE(A)とを配信データとして配信する。
このデータ配信装置2Aによれば、データ圧縮手段21によって、非暗号化データからハッシュ値を算出し、ブロック暗号処理手段22によって、ハッシュ値を初期ベクトルとして、データAのブロック暗号処理を行い、データ配信手段23によって、非暗号化データと暗号化データとを多重化して配信する。
このため、非暗号化データと暗号化データとが関連付けられることから、非暗号化データが改ざん等なされると、受信側において暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
なお、データ配信装置2Aの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、データ圧縮手段21において、非暗号化データB(B1、B2、B3、・・・)から、Hを一方向性ハッシュ関数として、(1)式によりハッシュ値hを算出した。
h=H(B1||B2||B3||・・・) ・・・(1)式
しかし、ハッシュ値は、これに限られるものではなく、(2)式のように、各Bi(i≧1)にパディングを施して、等しいビット長にしてからハッシュ値を算出することも可能である。ここで、「,」は、等しいビット長にしてから連結する、又は、実際に“,”をデータとデータとの間に挿入することを意味する。
h=H(B1,B2,B3,・・・) ・・・(2)式
また、「XOR」を排他的論理和を表す記号として、(3)式のように、ハッシュ値を算出することもできる。この場合、前記と同様、各Bi(i≧1)にパディングを施して、等しいビット長にする必要がある。こうすると(1)式よりも効率よくハッシュ値を算出できる。
h=H(B1 XOR B2 XOR B3 XOR・・・) ・・・(3)式
さらにまた、(4)式のように、個々の非暗号化データに対しハッシュ関数を適用してから、排他的論理和をとることも可能である。
h=H(B1)XOR H(B2)XOR ・・・ ・・・(4)式
次に、図4を参照して、ブロック暗号処理手段22におけるブロック暗号処理の別の一例を説明する。
<OFBモードの例>
図4は、OFBモードにおいて、初期ベクトルをH(B1||B2||B3||・・・)とした例である。図4において、“平文ブロックA”(i=1、2、・・・)は、入力されたデータAを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
図4において、“暗号ブロックE(A)”(i=1、2、・・・)は、それぞれ初期ベクトル“H(B1||B2||B3||・・・)”を、“鍵”を用いてi回暗号化した結果と、暗号化する“平文ブロックA”とをXOR演算したものである。そして、“暗号ブロックE(A)”(i=1、2、・・・)を連結したものが、ブロック暗号処理によって生成される暗号化データE(A)である。
[データ受信装置(第1実施形態)の構成]
図5を参照して、本発明の第1実施形態に係るデータ受信装置3A(3)の構成について説明する。
データ受信装置3Aは、ヘッダと非暗号化データBと暗号化データE(A)とを受信すると、非暗号化データBから、暗号化データE(A)の復号に用いる初期ベクトルを生成して暗号化データE(A)を復号し、復号したデータA’から非暗号化データBの真正性を検証するものである。
具体的には、データ受信装置3Aは、ヘッダと非暗号化データBと暗号化データE(A)とを含んだ配信データを受信する。すると、データ受信装置3Aは、ヘッダの構成情報から、非暗号化データBと暗号化データE(A)とを抽出する。そして、データ受信装置3Aは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを求め、ブロック復号処理を行う際の初期ベクトルとしてハッシュ値hを用いて暗号化データE(A)を復号する。そして、データ受信装置3Aは、復号したデータA’を、予め設定されているデータフォーマットと比較することによって、非暗号化データBの真正性を検証する。すなわち、データAと関連付けられた(バインドされた)非暗号化データBが正しく配信されていることを検証する。
データ受信装置3Aは、データ受信手段31と、データ分離手段32と、データ圧縮手段33と、ブロック復号処理手段34と、データ検証手段35とを備えている。
データ受信手段31は、配信データを受信するものである。
具体的には、データ受信手段31は、インターネット等のネットワーク4を介して、データ配信装置2Aから配信された配信データを受信し、データ分離手段32へ出力する。
配信データには、データの多重化構成が記述されたヘッダ、暗号化データE(A)、及び、それに関連する非暗号化データB(B1、B2、B3、・・・)が含まれる。
データ分離手段32は、配信データから、非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを抽出するものである。
具体的には、データ分離手段32は、データ受信手段31から配信データを入力する。すると、データ分離手段32は、配信データのヘッダに記述された多重化構成の情報に基づき、配信データを、非暗号化データ部分と暗号化データ部分とに分離し、非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを抽出する。そして、データ分離手段32は、抽出した非暗号化データB(B1、B2、B3、・・・)をデータ圧縮手段33へ出力し、暗号化データE(A)をブロック復号処理手段34へ出力する。
データ圧縮手段33は、非暗号化データB(B1、B2、B3、・・・)からハッシュ値を生成するものである。
データ圧縮手段33は、生成したハッシュ値h=H(B1||B2||B3||・・・)の出力先がブロック復号処理手段34であるという違いを除いて、データ配信装置2Aのデータ圧縮手段21と同一である。データ圧縮手段33が用いるハッシュ関数Hは、データ配信装置2Aのデータ圧縮手段21が用いるハッシュ関数Hと同じである必要がある。また、データ圧縮手段33がハッシュ値を生成するための規則と、データ圧縮手段21がハッシュ値を生成するための規則とは同じである必要がある。
第1実施形態においては、データ圧縮手段33の出力するハッシュ値hのビット長と、後記するブロック復号処理手段34がブロック復号処理を行う際に用いるアルゴリズムのブロック長とは、同一である。
ブロック復号処理手段34は、暗号化データE(A)のブロック復号処理を行うものである。
具体的には、ブロック復号処理手段34は、外部からデータ配信装置2Aと共有した鍵を入力し、データ分離手段32から暗号化データE(A)を入力し、さらに、データ圧縮手段33からnbitのハッシュ値h=H(B1||B2||B3||・・・)を入力する。すると、ブロック復号処理手段34は、復号処理に用いるアルゴリズムのブロック長nbitに合わせて、暗号化データE(A)をnbitごとの暗号ブロックに分割する。そして、ブロック復号処理手段34は、ブロック復号処理の各ブロックにおいて、復号の際に鍵を用いて、暗号ブロックから平文ブロックを生成する。このとき、ブロック復号処理手段34は、ハッシュ値hを最初のブロックの初期ベクトルとして用い、また、i番目(i≧2)のブロックの復号に、i−1番目のブロックの出力結果を用いる。そして、ブロック復号処理手段34は、平文ブロックを連結して復号データA’とし、このデータA’をデータ検証手段35へ出力する。
ブロック復号処理手段34がブロック復号処理に用いる復号手段は、データ配信装置2Aのブロック暗号処理手段22がブロック暗号処理に用いる暗号化手段と対応するものである必要がある。すなわち、復号手段は、暗号化手段が暗号化したデータを復号できるものである必要がある。
なお、ブロック復号処理に用いる利用モードによっては、復号アルゴリズムは暗号化アルゴリズムと同一である場合がある。
また、ブロック復号処理手段34が用いる鍵は、データ配信装置2Aのブロック暗号処理手段22が用いる鍵と事前に共有しておく必要がある。
図6を参照して、ブロック復号処理手段34におけるブロック復号処理の一例を説明する。図6のブロック復号処理は、図3のブロック暗号処理と対応する。
<CBCモードの例>
図6は、CBCモードにおいて、初期ベクトルをh=H(B1||B2||B3||・・・)とした例である。
図6において、“暗号ブロックE(A)”(i=1、2、・・・)は、入力された暗号化データE(A)を“復号”で用いられるアルゴリズムのブロック長に合わせて分割したものである。図6において、最初の“平文ブロックA”は、“暗号ブロックE(A)”を“鍵”を用いて復号したものと、初期ベクトル“H(B1||B2||B3||・・・)”とをXOR演算したものである。
図6において、“平文ブロックA”(i=2、3、・・・)は、それぞれ“暗号ブロックE(A)”を“鍵”を用いて復号したものと、1つ前の“暗号ブロックE(Ai−1)”とをXOR演算したものである。
そして、“平文ブロックA”(i=1、2、・・・)を連結したものが、ブロック復号処理によって復号されるデータA’である。
図5に戻り、説明を続ける。
データ検証手段35は、復号されたデータの真正性を検証するものである。
具体的には、データ検証手段35は、ブロック復号処理手段34からデータA’を入力する。そして、データ検証手段35は、データA’を予め設定されているデータフォーマットと比較することによって、非暗号化データBの真正性を検証する。データA’が予め設定されているデータフォーマットに従っていた場合は、非暗号化データBに改ざんがなされなかったものと判断し、データA’を出力する。また、データA’が予め設定されているデータフォーマットに反していた場合は、非暗号化データBが改ざんされたものと判断し、データ検証手段35は、検証結果を出力する。
例えば、データ配信装置2Aとデータ受信装置3Aとの間で、暗号化するデータAのヘッダ部のフォーマットを規定しておく。そうすることで、データ検証手段35は、復号されたデータA’のヘッダ部が規定フォーマットに準拠しているか否かを検証することによって、非暗号化データB(B1、B2、B3、・・・)の改ざんの有無を検知することが可能となる。仮に非暗号化データBに改ざんがなされると、データ圧縮手段33から出力されるハッシュ値hが異なるため、ブロック復号処理手段34によって、ブロック復号処理が正しく行われないこととなり、データA’のフォーマットが規定のフォーマットに反することとなるからである。
このデータ受信装置3Aによれば、データ受信手段31によって、配信データを受信し、データ分離手段32によって、配信データから、非暗号化データと暗号化データとを分離し、データ圧縮手段33によって、非暗号化データからハッシュ値を算出し、ブロック復号処理手段34によって、ハッシュ値を初期ベクトルとして、暗号化データのブロック復号処理を行い、データ検証手段35によって、復号されたデータを検証することによって、非暗号化データの真正性を検証する。
このため、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができなくなる。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
なお、データ受信装置3Aの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、図7を参照して、ブロック復号処理手段34におけるブロック復号処理の別の一例を説明する。図7のブロック復号処理は、図4のブロック暗号処理と対応する。
<OFBモードの例>
図7は、OFBモードにおいて、初期ベクトルをH(B1||B2||B3||・・・)とした例である。
図7において、“暗号ブロックE(A)”(i=1、2、・・・)は、入力された暗号化データE(A)を“復号”で用いられるアルゴリズムのブロック長に合わせて分割したものである。
図7において、“平文ブロックA”(i=1、2、・・・)は、それぞれ初期ベクトル“H(B1||B2||B3||・・・)”を、“鍵”を用いてi回暗号化した結果と、“暗号ブロックE(A)”とをXOR演算したものである。そして、“平文ブロックA”(i=1、2、・・・)を連結したものが、ブロック復号処理によって復号されるデータA’である。
次に、第1実施形態に係る装置の動作について説明する。
[データ配信装置(第1実施形態)動作]
図20を参照して(構成については、適宜図2を参照のこと)、本発明の第1実施形態に係るデータ配信装置(2A)の動作について説明する。
データ配信装置2Aは、図示しないデータ入力手段によって、ヘッダと非暗号化データB(B1、B2、B3、・・・)とデータAとを入力する(ステップS11)。
そして、データ配信装置2Aは、データ圧縮手段21によって、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを生成する(ステップS12)。
そして、データ配信装置2Aは、ブロック暗号処理手段22によって、ハッシュ値hを用いて、データAのブロック暗号処理を行う(ステップS13)。
そして、データ配信装置2Aは、データ配信手段23によって、ヘッダと非暗号化データBと暗号化データE(A)とを配信データとして、データ受信装置3Aへ配信する(ステップS14)。
[データ受信装置(第1実施形態)の動作]
図21を参照して(構成については、適宜図5を参照のこと)、本発明の第1実施形態に係るデータ受信装置(3A)の動作について説明する。
データ受信装置3Aは、データ受信手段31によって、データ配信装置2Aから、ヘッダと非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを受信する(ステップS21)。
そして、データ受信装置3Aは、データ分離手段32によって、受信したデータから非暗号化データBと暗号化データE(A)とを分離する(ステップS22)。
そして、データ受信装置3Aは、データ圧縮手段33によって、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを生成する(ステップS23)。
そして、データ受信装置3Aは、ブロック復号処理手段34によって、ハッシュ値hを用いて、暗号化データE(A)のブロック復号処理を行う(ステップS24)。
そして、データ受信装置3Aは、データ検証手段35によって、復号したデータA’を規定のフォーマットと比較する(ステップS25)。
そして、データ受信装置3Aは、データ検証手段35によって、比較結果が一致するか否かを判断し(ステップS26)、一致するならば、データA’は正しいデータであるとともに、非暗号化データBに改ざん等なされていないと判断し(ステップS27)、一致しないならば、非暗号化データBに改ざん等なされたと判断する(ステップS28)。
(第2実施形態)
第2実施形態は、データ配信システム1Aのデータ配信装置2及びデータ受信装置3において、非暗号化データB(B1、B2、B3、・・・)から求めたハッシュ値のビット長mと、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長nとが異なる場合である。
[データ配信装置(第2実施形態)の構成]
図8を参照して、本発明の第2実施形態に係るデータ配信装置2B(2)の構成について説明する。
データ配信装置2Bは、データAと非暗号化データBとを入力すると、非暗号化データBから、データAの暗号化に用いる初期ベクトルを生成してデータAを暗号化し、ヘッダと非暗号化データBと暗号化した暗号化データE(A)とを配信データとして配信するものである。
具体的には、データ配信装置2Bは、ヘッダと、機密性の高いデータAと、非暗号化データB(B1、B2、B3、・・・)とを入力する。すると、データ配信装置2Bは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを求め、このハッシュ値hをブロック暗号処理を行う際に用いるアルゴリズムのブロック長に合わせて必要に応じてパディングを施した後に分割し、1つ以上のハッシュ値分割ブロックを用いてデータAを暗号化する。そして、データ配信装置2Bは、ヘッダに非暗号化データBと暗号化データE(A)との多重化構成を記述して、ヘッダと非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを配信データとして配信する。
データ配信装置2Bは、データ圧縮手段21Bと、ビット長調整手段24と、ブロック暗号処理手段22Bと、データ配信手段23とを備えている。
なお、データ配信手段23は、データ配信装置2Aのデータ配信手段23と同一であるため、説明を省略する。
データ圧縮手段21Bは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値を生成するものである。
具体的には、データ圧縮手段21Bは、非暗号化データB(B1、B2、B3、・・・)を入力する。そして、データ圧縮手段21Bは、1つ以上の非暗号化データB1、B2、B3、・・・を連結した後に、ハッシュ関数Hを適用してハッシュ値h=H(B1||B2||B3||・・・)を生成し、ビット長調整手段24へ出力する。
データ圧縮手段21Bは、生成するハッシュ値hのビット長mbitと、後記するブロック暗号処理手段22Bがブロック暗号処理を行う際の暗号化アルゴリズムのブロック長nbitとが異なる点を除いて、第1実施形態に係るデータ配信装置2Aのデータ圧縮手段21と同一である。
ビット長調整手段24は、ハッシュ値hのビット長mbitを、ブロック暗号処理手段22Bの暗号化アルゴリズムのブロック長nbitに合わせて調整するものである。
具体的には、ビット長調整手段24は、データ圧縮手段21Bからハッシュ値h=H(B1||B2||B3||・・・)を入力する。すると、ビット長調整手段24は、ハッシュ値hのビット長mbitと、後記するブロック暗号処理手段22Bの暗号化アルゴリズムのブロック長nbitとを比較する。そして、ビット長調整手段24は、m<nの場合には、mbitにパディングを施してnbitになるように調整する(ハッシュ値ブロック)。また、ビット長調整手段24は、m>nの場合には、必要に応じてmbitにパディングを施してnbitの整数倍となるように調整した後、nbitごとに分割する(ハッシュ値分割ブロック;h、h、・・・、h)。そして、ビット長調整手段24は、ハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックをブロック暗号処理手段22Bへ出力する。
ブロック暗号処理手段22Bは、データAのブロック暗号処理を行うものである。
具体的には、ブロック暗号処理手段22Bは、外部から機密性の高いデータAと、ブロック暗号処理に用いる鍵とを入力するとともに、ビット長調整手段24からnbitに調整されたハッシュ値ブロックh又は1つ以上のハッシュ値分割ブロック(h、h、・・・、h)を入力する。すると、ブロック暗号処理手段22Bは、用いる暗号化アルゴリズムのブロック長nbitに合わせて、データAをnbitごとの平文ブロックに分割する。そして、ブロック暗号処理手段22Bは、ブロック暗号処理の各ブロックにおいて、暗号化の際に鍵を用いて、平文ブロックから暗号ブロックを生成する。このとき、ブロック暗号処理手段22Bは、ハッシュ値ブロックh又はハッシュ値分割ブロックhを最初のブロックの初期ベクトルとして用い、また、i番目(i≧2)のブロックの暗号化に、i−1番目のブロックの暗号化結果を用いる。そして、ブロック暗号処理手段22Bは、暗号ブロックを連結して暗号化データE(A)とし、データ配信手段23へ出力する。
また、ブロック暗号処理手段22Bは、ブロック暗号処理のi番目(i≧1)のブロックにおいて、所定のハッシュ値分割ブロックh(1≦j≦M)を用いたXOR演算を行い、非暗号化データをより強固に関連づけてデータAの暗号化を行ってよい。
例えば、ブロック暗号処理手段22Bは、ビット長調整手段24から入力されたハッシュ値分割ブロックがh、h、・・・、hのM個の場合、1番目のハッシュ値からM番目までのハッシュ値分割ブロックまでを繰り返し用いることができる。
図9を参照して、ブロック暗号処理手段22Bのブロック暗号処理の一例を説明する。
<OFBモードの例1>
図9は、入力されたハッシュ値分割ブロックh、h、・・・、hに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックhを用いるとともに、第i番目のブロック(i=1、2、・・・)において、所定のハッシュ値分割ブロックh(1≦j≦M)を、次のブロックへの出力の生成に用いるブロック暗号処理の例である。ここで、jには、前記のようにハッシュ値分割ブロックを繰り返し用いることが可能である。
図9において、“平文ブロックA”(i=1、2、・・・)は、入力されたデータAを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。図9において、第i番目のブロックにおいて、次のブロックへの出力は、第i−1番目のブロックからの入力を暗号化した結果と、所定のハッシュ値分割ブロックh(1≦j≦M)とをXOR演算したものである。
図9において、“暗号ブロックE(A)”は、hを暗号化した結果と、“平文ブロックA”とをXOR演算したものである。また、図9において、“暗号ブロックE(A)”(i=2、3、・・・)は、第i−1番目のブロックからの入力を暗号化した結果と、“平文ブロックA”とをXOR演算したものである。
図8に戻り、説明を続ける。
なお、ブロック暗号処理手段22Bは、nbitのハッシュ値分割ブロックhのみを、ブロック暗号処理の初期ベクトルとして使用し、他のハッシュ値分割ブロックh、h、・・・がある場合にはそれらを使用せず、第1実施形態のブロック暗号処理手段22ようにブロック暗号処理を行ってもよい。
このデータ配信装置2Bによれば、データ圧縮手段21Bによって、非暗号化データからハッシュ値を算出し、ビット長調整手段24によって、ハッシュ値のビット長を調整し、ブロック暗号処理手段22によって、ハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックを用いて、データAのブロック暗号処理を行い、データ配信手段23によって、非暗号化データと暗号化データとを多重化して配信する。
このため、非暗号化データと暗号化データとが関連付けられることから、非暗号化データが改ざん等なされると、受信側において、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
なお、データ配信装置2Bの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、図10、及び、図11を参照して、ブロック暗号処理手段22Bにおけるブロック暗号処理の別の例を説明する。
なお、図10、及び、図11において、“平文ブロックA”(i=1、2、・・・)は、入力されたデータAを“暗号化”で用いられる暗号化アルゴリズムのブロック長に合わせて分割したものである。
<OFBモードの例2>
図10は、入力されたハッシュ値分割ブロックh、h、・・・、hに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックhを用いるとともに、第i番目のブロック(i=1、2、・・・)において、所定のハッシュ値分割ブロックh(1≦j≦M)を、暗号ブロックの生成に用いるブロック暗号処理の例である。ここで、jは、前記のように繰り返し用いることが可能である。
図10において、“暗号ブロックE(A)”は、hを暗号化した結果と、ハッシュ値分割ブロックhとをXOR演算したものに対して、さらに、“平文ブロックA”とXOR演算したものである。また、図10において、“暗号ブロックE(A)”(i=2、3、・・・)は、第i−1番目のブロックからの入力を暗号化した結果と、所定のハッシュ値分割ブロックh(1≦j≦M)とをXOR演算したものに対して、さらに、“平文ブロックA”とXOR演算したものである。
<OFBモードの例3>
図11は、入力されたハッシュ値分割ブロックh、h、・・・、hに対して、最初のブロックの初期ベクトルとしてハッシュ値分割ブロックhを用いるとともに、第i番目のブロックにおいて(i=1、2、・・・)、所定のハッシュ値分割ブロックh(1≦j≦M)を、暗号化をする際の鍵の変換に用いるブロック暗号処理の例である。ここで、jは、前記のように繰り返し用いることが可能である。
図11において、暗号化する際の鍵は、ブロック暗号処理手段22Bに入力される“鍵”と、所定のハッシュ値分割ブロックh(1≦j≦M)とをXOR演算して生成される。
図11において、“暗号ブロックE(A)”は、hを生成された鍵で暗号化した結果と、“平文ブロックA”とをXOR演算したものである。また、図11において、“暗号ブロックE(A)”(i=2、3、・・・)は、第i−1番目のブロックからの入力をこの生成された鍵で暗号化した結果と、“平文ブロックA”とをXOR演算したものである。
[データ受信装置(第2実施形態)の構成]
図12を参照して、本発明の第2実施形態に係るデータ受信装置3B(3)の構成について説明する。
データ受信装置3Bは、ヘッダと非暗号化データBと暗号化データE(A)とを受信すると、非暗号化データBから、暗号化データE(A)の復号に用いるハッシュ値を生成して暗号化データE(A)を復号し、復号したデータA’から非暗号化データBの真正性を検証するものである。
具体的には、データ受信装置3Bは、ヘッダと非暗号化データBと暗号化データE(A)とを含んだ配信データを受信する。すると、データ受信装置3Bは、ヘッダの構成情報から、非暗号化データBと暗号化データE(A)とを抽出する。そして、データ受信装置3Bは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを求め、このハッシュ値hをブロック復号処理を行う際に用いるアルゴリズムのブロック長に合わせて必要に応じてパディングを施した後に分割し、この分割されたハッシュ値分割ブロックを1つ以上用いて暗号化データE(A)を復号する。そして、データ受信装置3Bは、復号したデータA’を、予め設定されているデータフォーマットと比較することによって、非暗号化データBが改ざんされていないことを検証する。すなわち、データAと関連付けられた(バインドされた)非暗号化データBが正しく配信されていることを検証する。
データ受信装置3Bは、データ受信手段31と、データ分離手段32と、データ圧縮手段33Bと、ビット長調整手段36と、ブロック復号処理手段34Bと、データ検証手段35とを備えている。
なお、データ受信手段31、データ分離手段32、及び、データ検証手段35は、それぞれ、データ受信装置3Aのデータ受信手段31、データ分離手段32、及び、データ検証手段35と同一であるため、説明を省略する。
データ圧縮手段33Bは、非暗号化データB(B1、B2、B3、・・・)からハッシュ値を生成するものである。
データ圧縮手段33Bは、生成したハッシュ値h=H(B1||B2||B3||・・・)の出力先がビット長調整手段36であるという違いを除いて、データ配信装置2Bのデータ圧縮手段21Bと同一である。データ圧縮手段33Bが用いるハッシュ関数Hは、データ配信装置2Bのデータ圧縮手段21Bが用いるハッシュ関数と同じである必要がある。
第2実施形態においては、データ圧縮手段33Bの出力するハッシュ値hのビット長と、後記するブロック復号処理手段34Bがブロック復号処理を行う際に用いるアルゴリズムのブロック長とは、異なる。
ビット長調整手段36は、データ圧縮手段33Bから入力されたハッシュ値hのビット長mbitを、後記のブロック復号処理手段34Bで復号の際に用いるアルゴリズムのブロック長nbitに合わせて調整するものである。
ビット長調整手段36は、ブロック復号処理手段34Bの復号の際に用いるアルゴリズムのブロック長nbitに合わせて、ハッシュ値hのビット長を調整することと、結果であるハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックの出力先がブロック復号処理手段34Bであることを除いて、データ配信装置2Bのビット長調整手段24と同一である。
ブロック復号処理手段34Bは、暗号化データE(A)のブロック復号処理を行うものである。
具体的には、ブロック復号処理手段34Bは、外部からデータ配信装置と共有した鍵を入力し、データ分離手段32から暗号化データE(A)を入力し、さらに、ビット長調整手段36からnbitに調整されたハッシュ値ブロックh又は1つ以上のハッシュ値分割ブロックh、h、・・・、hを入力する。すると、ブロック復号処理手段34Bは、復号処理に用いるアルゴリズムのブロック長nbitに合わせて、暗号化データE(A)をnbitごとの暗号ブロックに分割する。そして、ブロック復号処理手段34Bは、ブロック復号処理の各ブロックにおいて、復号の際に鍵を用いて、暗号ブロックから平文ブロックを生成する。このとき、ブロック復号処理手段34Bは、ハッシュ値ブロックh又はハッシュ値分割ブロックhを最初のブロックの初期ベクトルとして用い、また、i番目(i≧2)のブロックの復号に、i−1番目のブロックの復号結果を用いる。そして、ブロック復号処理手段34Bは、平文ブロックを連結して復号データA’とし、このデータA’をデータ検証手段35へ出力する。
ブロック復号処理手段34Bがブロック復号処理に用いる復号手段は、データ配信装置2Bのブロック暗号処理手段22Bがブロック暗号処理に用いる暗号化手段と対応するものである必要がある。すなわち、復号手段は、暗号化手段が暗号化したデータを復号できるものである必要がある。
なお、ブロック復号処理に用いる利用モードによっては、復号アルゴリズムは暗号化アルゴリズムと同一である場合がある。
また、ブロック復号処理手段34Bが用いる鍵は、データ配信装置2Bのブロック暗号処理手段22Bが用いる鍵と事前に共有しておく必要がある。
また、ブロック復号処理手段34Bは、データ配信装置2Bのブロック暗号処理手段22Bにあわせて、ブロック復号処理のi番目(i≧1)のブロックにおいて、所定のハッシュ値分割ブロックh(1≦j≦M)を用いた復号処理を行ってもよい。
図13、及び、図9を参照して、ブロック復号処理手段34Bのブロック復号処理の一例を説明する。
図9において、“暗号ブロックE(A)”(i≧1)は、“暗号化”によって暗号化した結果と、“平文ブロックA”とをXOR演算したものとして生成されている。この部分を、図13に示すように、“平文ブロックA”が、“暗号化”によって暗号化した結果と、“暗号ブロックE(A)”とをXOR演算したものに置換する。すると、この置換した図9は、図9のブロック暗号処理に対応するブロック復号処理の例となる。
このデータ受信装置3Bによれば、データ受信手段31によって、配信データを受信し、データ分離手段32によって、配信データから、非暗号化データと暗号化データとを抽出し、データ圧縮手段33Bによって、非暗号化データからハッシュ値を算出し、ビット長調整手段36によって、ハッシュ値のビット長を調整し、ブロック復号処理手段34Bによって、ハッシュ値ブロック又は1つ以上のハッシュ値分割ブロックを用いて、暗号化データのブロック復号処理を行い、データ検証手段35によって、復号されたデータを検証することによって、非暗号化データの真正性を検証する。
このため、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
なお、データ受信装置3Bの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、ブロック復号処理手段34Bのブロック復号処理の一例において、図13を用いて、図9の一部を置換したが、図10、及び、図11の同一の部分を置換してもよい。
次に、第2実施形態に係る装置の動作について説明する。
[データ配信装置(第2実施形態)動作]
図22を参照して(構成については、適宜図8を参照のこと)、本発明の第2実施形態に係るデータ配信装置(2B)の動作について説明する。
データ配信装置2BのステップS31、ステップS32、ステップS34、ステップS35の動作は、それぞれ、第1実施形態に係るデータ配信装置2AのステップS11、ステップS12、ステップS13、ステップS14と同様であるので、その説明を省略する。
データ配信装置2Bは、ビット長調整手段24によって、ハッシュ値hのビット長mbitを暗号化をする際に用いるアルゴリズムのブロック長nbitに合わせて調整する(ステップS33)。
[データ受信装置(第2実施形態)の動作]
図23を参照して(構成については、適宜図12を参照のこと)、本発明の第2実施形態に係るデータ受信装置(3B)の動作について説明する。
データ受信装置3BのステップS41、ステップS42、ステップS43、ステップS45、ステップS46、ステップS47、ステップS48、ステップS49の動作は、それぞれ、第1実施形態に係るデータ受信装置3AのステップS21、ステップS22、ステップS23、ステップS24、ステップS25、ステップS26、ステップS27、ステップS28と同様であるので、その説明を省略する。
データ受信装置3Bは、ビット長調整手段36によって、ハッシュ値hのビット長mbitを復号をする際に用いるアルゴリズムのブロック長nbitに合わせて調整する(ステップS44)。
[データ配信システム(第3実施形態・第4実施形態)の構成]
図14を参照して、本発明の第3実施形態及び第4実施形態に係るデータ配信システム1B(1)の構成について説明する。
データ配信システム1Bは、データ受信装置3からのデータ要求に応じて、非暗号化データ配信装置5が非暗号化データを、暗号化データ配信装置6が暗号化データを、ネットワーク4を介してデータ受信装置3に配信するもので、非暗号化データ配信装置5と、暗号化データ配信装置6と、データ受信装置3と、ネットワーク4とから構成される。
非暗号化データ配信装置5は、ネットワーク4に接続され、メタデータ等の公開してもよいデータを管理して配信するものである。
暗号化データ配信装置6は、ネットワーク4に接続され、関連をもつ非暗号化データと関連付けられた状態で暗号化データを管理して配信するものである。
データ受信装置3は、ネットワーク4に接続され、非暗号化データ配信装置5から、暗号化データ配信装置6に暗号化されている暗号化データの関連情報(タイトルや利用条件等のメタデータ)を取得するとともに、対応する暗号化データを暗号化データ配信装置6から取得し、関連情報を用いて暗号化データを復号するとともに、非暗号化データの真正性を検証するものである。
これらについては、以下で詳述する。
(第3実施形態)
第3実施形態は、データ配信システム1Bの暗号化データ配信装置6及びデータ受信装置3において、関連する非暗号化データB(B1、B2、B3、・・・)から求めたハッシュ値のビット長と、ブロック暗号処理及びブロック復号処理を行う際のブロックのビット長とが同一の場合である。
[非暗号化データ配信装置(第3実施形態)の構成]
図15を参照して、本発明の第3実施形態に係る非暗号化データ配信装置5の構成について説明する。
非暗号化データ配信装置5は、入力される非暗号化データB(B1、B2、B3、・・・)を登録して管理するとともに、要求があった場合に非暗号化データBと識別子とを配信するものである。
非暗号化データ配信装置5は、データ登録手段51と、データ記憶手段52と、要求データ抽出手段53と、データ配信手段54とを備える。
データ登録手段51は、非暗号化データB(B1、B2、B3、・・・)を入力すると、この非暗号化データBを一意に特定できる識別子を生成して、非暗号化データBと生成した識別子との組を、データ記憶手段52に出力するものである。
非暗号化データB1、B2、B3、・・・は、関連するデータAに係わるタイトルや利用条件等の公開してもよいメタデータである。
データ記憶手段52は、非暗号化データB(B1、B2、B3、・・・)を、このデータBを一意に特定できる識別子と組にして記憶するものである。
具体的には、データ記憶手段52は、データ登録手段51から非暗号化データB(B1、B2、B3、・・・)と識別子との組を入力して記憶する。そして、データ記憶手段52は、要求データ抽出手段53からの要求に応じて、非暗号化データB(B1、B2、B3、・・・)と識別子との組を出力する。
データ記憶手段52が管理するデータ(非暗号化データと識別子との組)は、公開データであり、要求データ抽出手段53からの要求に応じ、閲覧することが可能である。
要求データ抽出手段53は、外部の装置からのデータ要求を受信し、データ記憶手段52に出力するとともに、データ記憶手段52から非暗号化データB(B1、B2、B3、・・・)と識別子との組を読み出して、データ配信手段54へ出力するものである。
データ配信手段54は、データ要求のあった外部の装置に対して、所望の非暗号化データB(B1、B2、B3、・・・)を配信するものである。
具体的には、データ配信手段54は、要求データ抽出手段53から、非暗号化データBと識別子との組を入力する。そして、データ配信手段54は、非暗号化データBに識別子を含むヘッダを付加し、データ要求のあった外部の装置に配信する。
非暗号化データ配信装置によれば、データ登録手段51によって、非暗号化データを識別子と組にしてデータ記憶手段52に記憶させ、要求データ抽出手段53によって、データ要求を受信してデータ記憶手段52から非暗号化データと識別子との組を読み出し、データ配信手段54によって、非暗号化データと識別子とを配信する。このため、データ要求に応じて、識別子と対応付けられた非暗号化データを配信することができる。
なお、非暗号化データ配信装置5の構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
なお、外部の装置を特定するためのIPアドレス等の情報は手段から手段へ適宜出力されるものとする。以下に説明する装置においても同様である。
[暗号化データ配信装置(第3実施形態)の構成]
図16を参照して、本発明の第3実施形態に係る暗号化データ配信装置6A(6)の構成について説明する。
暗号化データ配信装置6Aは、入力されるデータAに対して関連付けたい非暗号化データBを取得し、この非暗号化データBから、データAの暗号化に用いる初期ベクトルを生成してデータAを暗号化するとともに、この暗号化した暗号化データE(A)を記憶し、要求に応じて配信するものである。
暗号化データ配信装置6Aは、データ要求手段61と、データ受信手段62と、データ分離手段63と、データ選択手段64と、データ圧縮手段21と、ブロック暗号処理手段22と、データ記憶手段65と、要求データ抽出手段66、データ配信手段67とを備えている。
データ圧縮手段21、及び、ブロック暗号処理手段22は、第1実施形態に係るデータ配信装置2Aの備える手段と同一であるため、説明を省略する。
なお、この暗号化データ配信装置6Aは、特許請求の範囲では、データ配信装置と記載している。
データ要求手段61は、入力されたデータAに対して、関連する非暗号化データBを取得するために、非暗号化データ配信装置5にデータ要求をするものである。
データ受信手段62は、データ要求手段61のデータ要求に応じて、非暗号化データ配信装置5から配信されるヘッダ及び非暗号化データB(B1、B2、B3、・・・)を受信し、データ分離手段63へ出力するものである。
データ分離手段63は、データ受信手段62からヘッダ及び非暗号化データB(B1、B2、B3、・・・)を入力して、ヘッダと非暗号化データBとに分離し、これらをデータ選択手段64に出力するものである。
データ選択手段64は、データAと関連付ける非暗号化データBを選択するものである。
具体的には、データ選択手段64は、外部からデータAと、データ分離手段63からヘッダ及び非暗号化データB(B1、B2、B3、・・・)とを入力する。そして、データ選択手段64は、データAと関連付ける非暗号化データBを選択する。そして、データ選択手段64は、選択された非暗号化データBをデータ圧縮手段21へ出力するとともに、選択された非暗号化データBに対応するヘッダに含まれる識別子を抽出してデータ記憶手段65へ出力する。
データ記憶手段65は、暗号化データE(A)と識別子とを組にして、記憶管理するものである。
具体的には、ブロック暗号処理手段22から暗号化データE(A)を入力するとともに、この暗号化データE(A)のブロック暗号処理に用いられた非暗号化データBの識別子をデータ選択手段64から入力する。そして、データ記憶手段65は、この暗号化データE(A)と識別子とを組にして記憶管理する。また、データ記憶手段65は、要求データ抽出手段66からの要求に応じて、暗号化データE(A)を要求データ抽出手段66へ出力する。
要求データ抽出手段66は、データ受信装置からの識別子を含むデータ要求を受信し、データ記憶手段65に出力するとともに、データ記憶手段65から識別子に対応する暗号化データE(A)を読み出して、データ配信手段67へ出力するものである。
データ配信手段67は、要求データ抽出手段66から、暗号化データE(A)を入力し、データ要求のあったデータ受信装置に対して、この暗号化データE(A)を配信するものである。
この暗号化データ配信装置6Aによれば、データ要求手段61及びデータ受信手段62によって、データAと対応させたい非暗号化データを要求して受信し、データ分離手段63によって、非暗号化データを分離し、データ選択手段64によって、データAと関連付ける非暗号化データを選択するとともに識別子を抽出し、データ圧縮手段21によって、非暗号化データからハッシュ値hを算出し、ブロック暗号処理手段22によって、ハッシュ値hを初期ベクトルとして、データAのブロック暗号処理を行い、データ記憶手段65によって、暗号化データと識別子との組を記憶する。そして、要求データ抽出手段66によって、データ要求を受信して、データ記憶手段65からデータ要求に含まれる識別子に対応する暗号化データを読み出し、データ配信手段67によって、配信する。
このため、暗号化データと関連付けた非暗号化データとは別に、暗号化データを配信できるとともに、非暗号化データが改ざん等なされると、受信側で、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
なお、暗号化データ配信装置6Aの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、暗号化データ配信装置6Aでは、データ要求手段61によって、入力されたデータAに対応して、非暗号化データ配信装置5にデータ要求をするとしたが、データAに依存せず、非暗号化データ配信装置5に全てのデータを要求し、データ選択手段64によって、データAと関連付ける非暗号化データBを選択してもよい。
また、暗号化データ配信装置6Aでは、識別子が含まれるヘッダと非暗号化データB(B1、B2、B3、・・・)とを非暗号化データ配信装置5から取得する構成としたが、非暗号化データ配信装置5に記憶されている識別子と非暗号化データB(B1、B2、B3、・・・)とを記憶媒体等に保存しておき、この記憶媒体から、直接、データAと関連付けたい非暗号化データBをデータ圧縮手段21へ、識別子をデータ記憶手段65へ、入力してもよい。
[データ受信装置(第3実施形態)の構成]
図17を参照して、本発明の第3実施形態に係るデータ受信装置3C(3)の構成を説明する。
データ受信装置3Cは、非暗号化データ配信装置から非暗号化データB(B1、B2、・・・)を取得するとともに、暗号化データ配信装置から対応する暗号化データE(A)を取得し、非暗号化データBから、暗号化データE(A)の復号に用いる初期ベクトルを生成して暗号化データE(A)を復号し、復号したデータA’のフォーマットを規定フォーマットと比較することで、非暗号化データBの真正性を検証するものである。
データ受信装置3Cは、データ要求手段37と、データ受信手段38と、データ分離手段39と、データ選択手段40と、データ圧縮手段33と、ブロック復号処理手段34と、データ検証手段35とを備えている。
データ圧縮手段33、ブロック復号処理手段34、及び、データ検証手段35は、第1実施形態に係るデータ受信装置3Aの備える手段と同一であるため、説明を省略する。
データ要求手段37は、非暗号化データ配信装置5及び暗号化データ配信装置6Aに対して、データ要求を行うものである。
具体的には、データ要求手段37は、最初に非暗号化データ配信装置5に対してデータ要求を行う。そして、データ要求手段37は、非暗号化データ配信装置5から配信されるデータのヘッダ部に含まれる識別子を、後記するデータ選択手段40によって取得する。すると、データ要求手段37は、この識別子を用いて暗号化データ配信装置6Aに対してデータ要求を行う。
データ要求手段37が非暗号化データ配信装置5に対して行うデータ要求は、非暗号化データ配信装置5が管理する非暗号化データB(メタデータ)に対して、興味のあるものを限定する等の条件を付したものであってよい。
データ受信手段38は、非暗号化データ配信装置5から受信するヘッダ及び非暗号化データB(B1、B2、B3、・・・)をデータ分離手段39に出力するとともに、暗号化データ配信装置6Aから受信する暗号化データE(A)をデータ分離手段39に出力するものである。
データ分離手段39は、受信したデータから、非暗号化データB(B1、B2、B3、・・・)と暗号化データE(A)とを抽出するものである。
具体的には、データ分離手段39は、データ受信手段38からヘッダと非暗号化データB(B1、B2、B3、・・・)とを入力した場合には、ヘッダと非暗号化データBとに分離する。そして、データ分離手段39は、ヘッダと非暗号化データBとをデータ選択手段40に出力するとともに、非暗号化データBをデータ圧縮手段33へ出力する。
また、データ分離手段39は、データ受信手段38から暗号化データE(A)を入力した場合には、この暗号化データE(A)をブロック復号処理手段34へ出力する。
データ選択手段40は、1つ以上の非暗号化データB(B1、B2、B3、・・・)から所定のものを選択するものである。
具体的には、データ選択手段40は、データ分離手段39からヘッダと非暗号化データB(B1、B2、B3、・・・)との組を入力する。そして、データ選択手段40は、1つ以上の非暗号化データB(B1、B2、B3、・・・)から、興味のあるもの等を選択し、選択した非暗号化データBに対応するヘッダに含まれる識別子を抽出して、データ要求手段37へ出力する。また、データ選択手段40は、選択した非暗号化データBを、データ圧縮手段33へ出力する。
なお、非暗号化データBの選択方法は、予め設定された条件等により選択してもよいし、図示しない入力手段により選択してもよい。
この選択された識別子をキーとして、暗号化データ配信装置6Aに対して検索を行い、関連付けられている暗号化データE(A)を取得し、ブロック復号処理手段34において復号することとなる。
データ圧縮手段33は、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを生成するものである。
データ圧縮手段33が用いるハッシュ関数Hは、暗号化データ配信装置6Aのデータ圧縮手段21が用いるハッシュ関数と同じである必要がある。
ブロック復号処理手段34は、暗号化データE(A)のブロック復号処理を行うものである。
ブロック復号処理手段34がブロック復号処理に用いる復号手段は、暗号化データ配信装置6Aのブロック暗号処理手段22がブロック暗号処理に用いる暗号化手段と対応するものである必要がある。
また、ブロック復号処理手段34が用いる鍵は、暗号化データ配信装置6Aのブロック暗号処理手段22が用いる鍵と事前に共有しておく必要がある。
データ検証手段35は、復号されたデータA’のフォーマットを規定のフォーマットと比較することで、非暗号化データBの真正性を検証するものである。
例えば、暗号化データ配信装置6Aとデータ受信装置3Cとの間で、暗号化するデータAのヘッダ部のフォーマットを規定しておく。そうすることで、データ検証手段35は、復号されたデータA’のヘッダ部が規定フォーマットに準拠しているか否かを検証することによって、非暗号化データBの改ざんの有無を検知することが可能となる。
このデータ受信装置3Cによれば、データ要求手段37によって、非暗号化データのデータ要求をするとともに、データ選択手段40からの識別子を用いて、暗号化データのデータ要求をし、データ受信手段38によって、データを受信し、データ分離手段39によって、非暗号化データと暗号化データとを抽出し、データ圧縮手段33によって、非暗号化データからハッシュ値hを算出し、ブロック復号処理手段34によって、ハッシュ値hを初期ベクトルとして、暗号化データのブロック復号処理を行い、データ検証手段35によって、復号されたデータのフォーマットを検証することで、非暗号化データの真正性を検証する。
このため、非暗号化データと暗号化データとを別々の装置から受信した場合であっても、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
なお、データ受信装置3Cの構成はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
データ受信装置3Cでは、非暗号化データ配信装置5から取得したヘッダに含まれる識別子をデータ選択手段40がデータ要求手段37に出力して、これを用いて暗号化データ配信装置6Aにデータ要求する構成としたが、非暗号化データ配信装置5及び暗号化データ配信装置6Aから取得するヘッダに含まれる識別子が一致する構成となれば、これに限られるものではない。
次に、第3実施形態に係る装置の動作について説明する。
[非暗号化データ配信装置(第3実施形態)の動作]
図24を参照して(構成については、適宜図15を参照のこと)、本発明の第3実施形態に係る非暗号化データ配信装置5の動作について説明する。
<非暗号化データBの登録動作>
まず、図24(a)を参照して、非暗号化データ配信装置5の非暗号化データBの登録動作について説明する。
非暗号化データ配信装置5は、データ登録手段51によって、非暗号化データB(B1、B2、B3、・・・)を入力すると、この非暗号化データBを一意に特定できる識別子を生成し(ステップS51)、非暗号化データと識別子との組をデータ記憶手段52へ出力する。
そして、非暗号化データ配信装置5は、データ記憶手段52によって、非暗号化データBと識別子との組を記憶する(ステップS52)。
<非暗号化データBの配信動作>
次に、図24(b)を参照して、非暗号化データ配信装置5の非暗号化データBの配信動作について説明する。
非暗号化データ配信装置5は、要求データ抽出手段53によって、外部の装置(暗号化データ配信装置6A、データ受信装置3C)からデータ要求を受信する(ステップS53)。
すると、非暗号化データ配信装置5は、要求データ抽出手段53によって、データ記憶手段52から、識別子と非暗号化データBとの組を取得する(ステップS54)。
そして、非暗号化データ配信装置5は、データ配信手段54によって、識別子を含むヘッダと非暗号化データB(B1、B2、B3、・・・)とをデータ要求のあった外部の装置へ配信する(ステップS55)。
[暗号化データ配信装置(第3実施形態)の動作]
図25を参照して(構成については、適宜図16を参照のこと)、本発明の第3実施形態に係る暗号化データ配信装置(6A)の動作について説明する。
<暗号化データE(A)の登録動作>
まず、図25(a)を参照して、暗号化データ配信装置6Aの暗号化データE(A)の記憶動作について説明する。
暗号化データ配信装置6Aは、データ要求手段61によって、非暗号化データ配信装置5に対して非暗号化データBを要求する(ステップS61)。
すると、暗号化データ配信装置6Aは、データ受信手段62によって、非暗号化データ配信装置5から、ヘッダ及び非暗号化データB(B1、B2、B3、・・・)を受信する(ステップS62)。
そして、暗号化データ配信装置6Aは、データ分離手段63によって、ヘッダ及び非暗号化データBを分離し、データ選択手段64によって、データAと関連付ける非暗号化データBを選択する(ステップS63)。
そして、暗号化データ配信装置6Aは、選択された非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを生成する(ステップS64)。
そして、暗号化データ配信装置6Aは、ブロック暗号処理手段22によって、ハッシュ値hを用いて、データAのブロック暗号処理を行う(ステップS65)。
そして、暗号化データ配信装置6Aは、データ記憶手段65によって、識別子と暗号化データE(A)との組を記憶する(ステップS66)。
<暗号化データE(A)の配信動作>
次に、図25(b)を参照して、暗号化データ配信装置6Aの暗号化データE(A)の配信動作について説明する。
暗号化データ配信装置6Aは、要求データ抽出手段66によって、データ受信装置3Cからデータ要求を受信する(ステップS67)。
すると、暗号化データ配信装置6Aは、要求データ抽出手段66によって、データ記憶手段65から、データ要求に含まれる識別子に対応する暗号化データE(A)を取得する(ステップS68)。
そして、暗号化データ配信装置6Aは、データ配信手段67によって、暗号化データE(A)をデータ受信装置3Cへ配信する(ステップS69)。
[データ受信装置(第3実施形態)の動作]
図26を参照して(構成については、適宜図17を参照のこと)、本発明の第3実施形態に係るデータ受信装置(3C)の動作について説明する。
データ受信装置3Cは、データ要求手段37によって、非暗号化データ配信装置5に対して、データ要求を行う(ステップS71)。
すると、データ受信装置3Cは、データ受信手段38によって、非暗号化データ配信装置5からヘッダ及び非暗号化データB(B1、B2、B3、・・・)を受信する(ステップS72)。
そして、データ受信装置3Cは、データ分離手段39によって、ヘッダと非暗号化データBとを分離し、データ選択手段40によって、非暗号化データBを選択し、その識別子を取得する(ステップS73)。
そして、データ受信装置3Cは、データ要求手段37によって、暗号化データ配信装置6Aに対して、識別子を用いて暗号化データE(A)を要求する(ステップS74)。
すると、データ受信装置3Cは、データ受信手段38によって、暗号化データ配信装置6Aから暗号化データE(A)を受信する(ステップS75)。
そして、データ受信装置3Cは、データ圧縮手段33によって、非暗号化データB(B1、B2、B3、・・・)からハッシュ値hを生成する(ステップS76)。
そして、データ受信装置3Cは、ブロック復号処理手段34によって、ハッシュ値hを用いて、暗号化データE(A)のブロック復号処理を行う(ステップS77)。
そして、データ受信装置3Cは、データ検証手段35によって、復号したデータA’を規定のフォーマットと比較する(ステップS78)。
そして、データ受信装置3Cは、データ検証手段35によって、比較結果が一致するか否かを判断し(ステップS79)、一致するならば、非暗号化データBに改ざん等なされていない(非暗号化データBは真正)と判断し(ステップS80)、一致しないならば、非暗号化データBに改ざん等なされたと判断する(ステップS81)。
(第4実施形態)
第4実施形態は、データ配信システム1Bの暗号化データ配信装置6及びデータ受信装置3において、非暗号化データB(B1、B2、B3、・・・)から求めたハッシュ値hのビット長mと、ブロック暗号処理及びブロック復号処理を行う際に用いるアルゴリズムのブロックのビット長nとが異なる場合である。
なお、第4実施形態における非暗号化データ配信装置5は、第3実施形態の非暗号化データ配信装置5と同一であるので、その説明を省略する。
[暗号化データ配信装置(第4実施形態)の構成]
図18を参照して、本発明の第4実施形態に係る暗号化データ配信装置6B(6)の構成について説明する。
暗号化データ配信装置6Bは、入力されるデータAに対して関連付けたい非暗号化データBを取得し、この非暗号化データBから、データAの暗号化に用いるハッシュ値hを生成してデータAを暗号化するとともに、この暗号化した暗号化データE(A)を記憶し、要求に応じて配信するものである。
暗号化データ配信装置6Bは、データ要求手段61と、データ受信手段62と、データ分離手段63と、データ選択手段64と、データ圧縮手段21Bと、ビット長調整手段24と、ブロック暗号処理手段22Bと、データ記憶手段65と、要求データ抽出手段66と、データ配信手段67とを備えている。
データ圧縮手段21B、ビット長調整手段24、及び、ブロック暗号処理手段22Bは、第2実施形態に係るデータ配信装置2Bの備える手段と同一であるため、説明を省略する。
データ要求手段61、データ受信手段62、データ分離手段63、データ選択手段64、データ記憶手段65、要求データ抽出手段66、及び、データ配信手段67は、第3実施形態に係る暗号化データ配信装置6Aの備える手段と同一であるため、説明を省略する。
なお、この暗号化データ配信装置6Bは、特許請求の範囲では、データ配信装置と記載している。
この暗号化データ配信装置6Bによれば、データ要求手段61及びデータ受信手段62によって、データAと対応させたい非暗号化データを要求して受信し、データ分離手段63によって、非暗号化データを分離し、データ選択手段64によって、データAと関連付ける非暗号化データを選択するとともに識別子を抽出し、データ圧縮手段21Bによって、非暗号化データからハッシュ値hを算出し、ビット長調整手段24によって、ハッシュ値hのビット長を調整して、ハッシュ値ブロック、または、必要に応じて分割してハッシュ値分割ブロックとし、ブロック暗号処理手段22Bによって、ハッシュ値ブロックまたは1つ以上のハッシュ値分割ブロックを用いてデータAのブロック暗号処理を行い、データ記憶手段65によって、暗号化データと識別子との組を記憶する。そして、要求データ抽出手段66によって、データ要求を受信して、データ記憶手段65から識別子に応じた暗号化データを読み出し、データ配信手段67によって、配信する。
このため、暗号化データと関連付けた非暗号化データとは別に、暗号化データを配信できるとともに、非暗号化データが改ざん等なされると、受信側で、暗号化データを正常に復号できなくすることができる。また、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、暗号化に必要となる計算量は同一であるが、ハッシュ値を1回計算するだけで、改ざん検知用認証子を生成したことと同一の効果をもたらすことができる。
[データ受信装置(第4実施形態)の構成]
図19を参照して、本発明の第4実施形態に係るデータ受信装置3D(3)の構成を説明する。
データ受信装置3Dは、非暗号化データ配信装置から非暗号化データB(B1、B2、・・・)を取得するとともに、暗号化データ配信装置から対応する暗号化データE(A)を取得し、非暗号化データBから、暗号化データE(A)の復号に用いるハッシュ値ブロックまたはハッシュ値分割ブロックを生成して暗号化データE(A)を復号し、復号したデータA’のフォーマットを検証することで、非暗号化データBの真正性を検証するものである。
データ受信装置3Dは、データ要求手段37と、データ受信手段38と、データ分離手段39と、データ選択手段40と、データ圧縮手段33Bと、ビット長調整手段36と、ブロック復号処理手段34Bと、データ検証手段35とを備えている。
データ圧縮手段33B、ビット長調整手段36、ブロック復号処理手段34B、及び、データ検証手段35は、第2実施形態に係るデータ受信装置3Bの備える手段と同一であるため、説明を省略する。
データ要求手段37、データ受信手段38、データ分離手段39、及び、データ選択手段40は、第3実施形態に係るデータ受信装置3Cの備える手段と同一であるため、説明を省略する。
なお、データ圧縮手段33Bが用いるハッシュ関数H、ビット長調整手段36、ブロック復号処理手段34Bで用いるアルゴリズム及び鍵、並びに、データ検証手段35の例におけるデータAのヘッダ部のフォーマット等は、暗号化データ配信装置6Bとの対応をとる必要がある。
このデータ受信装置3Dによれば、データ要求手段37によって、非暗号化データのデータ要求をするとともに、データ選択手段40からの識別子を用いて、暗号化データのデータ要求をし、データ受信手段38によって、データを受信し、データ分離手段39によって、非暗号化データと暗号化データとを抽出し、データ圧縮手段33Bによって、非暗号化データからハッシュ値hを算出し、ビット長調整手段36によって、ハッシュ値hのビット長を調整して、ハッシュ値ブロック、または、必要に応じて分割してハッシュ値分割ブロックとし、ブロック復号処理手段34Bによって、ハッシュ値ブロックまたは1つ以上のハッシュ値分割ブロックを用いて暗号化データのブロック復号処理を行い、データ検証手段35によって、復号されたデータのフォーマットを検証することで、非暗号化データBの真正性を検証する。
このため、非暗号化データと暗号化データとを別々の装置から受信した場合であっても、暗号化データと関連付けられた非暗号化データを用いて復号することから、非暗号化データに改ざん等なされると、暗号化データを正常に復号することができない。さらに、改ざん検知用認証子の生成と暗号化を個別の処理で行っていた場合と比較し、復号に必要となる計算量は同一であるが、一回のハッシュ値の計算を付加するだけで、改ざん検知用認証子がある場合と同等の効果を得ることができる。
次に、第4実施形態に係る装置の動作について説明する。
[暗号化データ配信装置(第4実施形態)の動作]
図27を参照して(構成については、適宜図18を参照のこと)、本発明の第4実施形態に係る暗号化データ配信装置6Bの動作について説明する。
暗号化データ配信装置6BのステップS91〜ステップS94、ステップS96〜ステップS100の動作は、それぞれ、第3実施形態に係る暗号化データ配信装置6AのステップS61〜ステップS69と同様であるので、その説明を省略する。
暗号化データ配信装置6Bは、ビット長調整手段24によって、ハッシュ値hのビット長mbitを暗号化の際に用いるアルゴリズムのブロック長nbitに合わせて調整する(ステップS95)。
[データ受信装置(第4実施形態)の動作]
図28を参照して(構成については、適宜図19を参照のこと)、本発明の第4実施形態に係るデータ受信装置(3D)の動作について説明する。
データ受信装置3DのステップS101〜ステップS106、ステップS108〜ステップS112の動作は、それぞれ、第3実施形態に係るデータ受信装置3CのステップS71〜ステップS81と同様であるので、その説明を省略する。
データ受信装置3Dは、ビット長調整手段36によって、ハッシュ値hのビット長mbitを復号する際に用いるアルゴリズムのブロック長nbitに合わせて調整する(ステップS107)。
以上、本発明について実施形態に即して各装置を説明したが、本発明は、これらの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、データ配信装置は、コンピュータにおいて各手段を機能プログラムとして実現することも可能であり、各機能プログラムを結合して、データ配信プログラムとして動作させることも可能である。データ受信装置、非暗号化データ配信装置、及び、暗号化データ配信装置についても同様である。
また、前記した各実施形態では、入力データは、例えば、映像コンテンツ等のデータであり、非暗号化データは、このデータに関連するメタデータであるとしたが、これに限定されるものではなく、暗号化データと非暗号化データとを関連付けて配信する、より一般的な形態においても利用され得るものである。
1(1A、1B) データ配信システム
2(2A、2B) データ配信装置
21、21B データ圧縮手段
22、22B ブロック暗号処理手段
23 データ配信手段
24 ビット長調整手段
3(3A、3B、3C、3D) データ受信装置
31、38 データ受信手段
32、39 データ分離手段
33、33B データ圧縮手段
34、34B ブロック復号処理手段
35 データ検証手段
36 ビット長調整手段
37 データ要求手段
40 データ選択手段
4 ネットワーク
5 非暗号化データ配信装置
51 データ登録手段
52 データ記憶手段
53 要求データ抽出手段
54 データ配信手段
6(6A、6B) 暗号化データ配信装置(データ配信装置)
61 データ要求手段
62 データ受信手段
63 データ分離手段
64 データ選択手段
65 データ記憶手段
66 要求データ抽出手段
67 データ配信手段

Claims (16)

  1. 入力データと非暗号化データとが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記非暗号化データとを配信するデータ配信装置であって、
    前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段と、
    このブロック暗号処理手段が生成した暗号化データと前記非暗号化データとを多重化して、この多重化の構成を記述したヘッダと前記非暗号化データと前記暗号化データとを配信データとして配信するデータ配信手段と、
    を備えることを特徴とするデータ配信装置。
  2. 入力データと、非暗号化データ及びその識別子とが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記識別子とを対応付けるとともに、要求に応じて前記暗号化データを配信するデータ配信装置であって、
    前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段と、
    前記暗号化データと、当該暗号化データのブロック暗号処理に用いられた前記非暗号化データの前記識別子とを対応させて記憶するデータ記憶手段と、
    データ要求を受信すると、当該データ要求に含まれる前記識別子と一致する前記識別子に対応する前記暗号化データをデータ記憶手段から取得する要求データ抽出手段と、
    この要求データ抽出手段が取得した暗号化データを配信するデータ配信手段と、
    を備えることを特徴とするデータ配信装置。
  3. 前記データ圧縮手段が算出するハッシュ値の長さと、前記ブロック暗号処理手段におけるブロック暗号処理で用いるアルゴリズムのブロック長とを比較し、前記ハッシュ値の長さが前記ブロック長より短い場合には、前記ハッシュ値にパディングを施し、前記ブロック長の長さと等しいハッシュ値ブロックとし、前記ハッシュ値の長さが前記ブロック長より長い場合には、前記ハッシュ値に必要に応じてパディングを施して長さを前記ブロック長の整数倍とした後、前記ブロック長ごとに分割して前記ブロック長の複数ブロックであるハッシュ値分割ブロックとし、前記ハッシュ値ブロック又は1つ以上の前記ハッシュ値分割ブロックを前記ブロック暗号処理手段に出力するビット長調整手段をさらに備える
    ことを特徴とする請求項1又は請求項2に記載のデータ配信装置。
  4. 前記ブロック暗号処理手段は、
    前記入力データを前記ブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、
    前記利用モードのブロックを単位として、
    前記複数のハッシュ値分割ブロックのうちの1つを前記初期ベクトルとして、当該初期ベクトルと、前記複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、1番目の前記平文ブロックとから、1番目の暗号ブロックを生成し、
    i−1番目(iは2以上の整数)の前記ブロックの出力と、前記複数のハッシュ値分割ブロックのうちの1つと、i番目の前記平文ブロックとから、i番目の暗号ブロックを生成し、
    生成された前記暗号ブロックを連結して前記暗号化データを生成する
    ことを特徴とする請求項3に記載のデータ配信装置。
  5. 前記ブロック暗号処理手段は、
    前記複数のハッシュ値が入力された場合において、
    前記入力データを前記ブロック暗号処理で用いるアルゴリズムのブロック長に合わせて分割して平文ブロックとし、
    前記利用モードのブロックを単位として、
    前記複数のハッシュ値分割ブロックのうちの1つを前記初期ベクトルとして、当該初期ベクトルと、1番目の前記平文ブロックとから、1番目の暗号ブロックを生成し、
    i−1番目(iは2以上の整数)の前記ブロックの出力と前記複数のハッシュ値分割ブロックのうちの1つとの排他的論理和の出力と、i番目の前記平文ブロックとから、i番目の暗号ブロックを生成し、
    生成された前記暗号ブロックを連結して前記暗号化データを生成する
    ことを特徴とする請求項3に記載のデータ配信装置。
  6. 前記ブロック暗号処理手段は、
    前記複数のハッシュ値分割ブロックが入力された場合において、
    前記複数のハッシュ値分割ブロックの数をM個とすると、前記暗号ブロックを生成する際に、1番目からM番目までのハッシュ値分割ブロックを順次繰り返し用いる
    ことを特徴とする請求項4又は請求項5に記載のデータ配信装置。
  7. 非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するデータ受信装置であって、
    ヘッダと前記非暗号化データと前記暗号化データとを含んだ配信データを受信するデータ受信手段と、
    前記ヘッダに記述された多重化構成の情報に基づき、前記配信データから前記非暗号化データと前記暗号化データとを分離するデータ分離手段と、
    このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記データ分離手段が分離した暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段と、
    このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段と、
    を備えることを特徴とするデータ受信装置。
  8. 非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するデータ受信装置であって、
    データ要求を送信するデータ要求手段と、
    非暗号化データ配信装置からヘッダと前記非暗号化データとを受信するとともに、データ配信装置から前記暗号化データを受信するデータ受信手段と、
    前記ヘッダと前記非暗号化データとを分離するデータ分離手段と、
    このデータ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した前記識別子を前記データ要求手段へ出力するデータ選択手段と、
    このデータ選択手段が選択した非暗号化データからハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段と、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段と、
    このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段と、
    を備え、
    前記データ要求手段は、
    前記非暗号化データ配信装置へ前記データ要求を送信するとともに、前記データ選択手段から前記識別子が入力された場合には、前記データ配信装置へ当該識別子を含んだ前記データ要求を送信する
    ことを特徴とするデータ受信装置。
  9. 前記データ圧縮手段が算出するハッシュ値の長さと、前記ブロック復号処理手段におけるブロック復号処理で用いるアルゴリズムのブロック長とを比較し、前記ハッシュ値の長さが前記ブロック長より短い場合には、前記ハッシュ値にパディングを施し、前記ブロック長の長さと等しいハッシュ値ブロックとし、前記ハッシュ値の長さが前記ブロック長より長い場合には、前記ハッシュ値に必要に応じてパディングを施して長さを前記ブロック長の整数倍とした後、前記ブロック長ごとに分割して前記ブロック長の複数ブロックであるハッシュ値分割ブロックとし、前記ハッシュ値ブロック又は1つ以上の前記ハッシュ値分割ブロックを前記ブロック復号処理手段に出力するビット長調整手段をさらに備える
    ことを特徴とする請求項7又は請求項8に記載のデータ受信装置。
  10. 前記ブロック復号処理手段は、
    前記暗号化データを前記ブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、
    前記利用モードのブロックを単位として、
    前記複数のハッシュ値分割ブロックのうちの1つを前記初期ベクトルとして、当該初期ベクトルと、前記複数のハッシュ値分割ブロックのうち当該初期ベクトルとは異なるハッシュ値分割ブロックと、1番目の前記暗号ブロックとから、1番目の平文ブロックを生成し、
    i−1番目(iは2以上の整数)の前記ブロックの出力と、前記複数のハッシュ値分割ブロックのうちの1つと、i番目の前記暗号ブロックとから、i番目の平文ブロックを生成し、
    生成された前記平文ブロックを連結して前記復号データを生成する
    ことを特徴とする請求項9に記載のデータ受信装置。
  11. 前記ブロック復号処理手段は、
    前記暗号化データを前記ブロック復号処理で用いるアルゴリズムのブロック長に合わせて分割して暗号ブロックとし、
    前記利用モードのブロックを単位として、
    前記複数のハッシュ値分割ブロックのうちの1つを前記初期ベクトルとして、当該初期ベクトルと、1番目の前記暗号ブロックとから、1番目の平文ブロックを生成し、
    i−1番目(iは2以上の整数)の前記ブロックの出力と前記複数のハッシュ値分割ブロックのうちの1つとの排他的論理和の出力と、i番目の前記暗号ブロックとから、i番目の平文ブロックを生成し、
    生成された前記平文ブロックを連結して前記復号データを生成する
    ことを特徴とする請求項9に記載のデータ受信装置。
  12. 前記ブロック復号処理手段は、
    前記複数のハッシュ値分割ブロックが入力された場合において、
    前記複数のハッシュ値分割ブロックの数をM個とすると、前記平文ブロックを生成する際に、1番目からM番目までのハッシュ値分割ブロックを順次繰り返し用いる
    ことを特徴とする請求項10又は請求項11に記載のデータ受信装置。
  13. 入力データと非暗号化データとが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記非暗号化データとを配信するために、コンピュータを、
    前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成するブロック暗号処理手段、
    このブロック暗号処理手段が生成した暗号化データと前記非暗号化データとを多重化して、この多重化の構成を記述したヘッダと前記非暗号化データと前記暗号化データとを配信データとして配信するデータ配信手段、
    として機能させることを特徴とするデータ配信プログラム。
  14. 入力データと、非暗号化データ及びその識別子とが入力されて、前記非暗号化データから算出したハッシュ値を用いて前記入力データのブロック暗号処理を行い、暗号化データと前記識別子とを対応付けるとともに、要求に応じて前記暗号化データを配信するために、コンピュータを、
    前記非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記入力データを前記ブロック暗号処理して前記暗号化データを生成し、当該暗号化データと、当該暗号化データのブロック暗号処理に用いられた前記非暗号化データの前記識別子とを対応させてデータ記憶手段に記憶させるブロック暗号処理手段、
    データ要求を受信すると、当該データ要求に含まれる前記識別子と一致する前記識別子に対応する前記暗号化データをデータ記憶手段から取得する要求データ抽出手段、
    この要求データ抽出手段が取得した暗号化データを配信するデータ配信手段、
    として機能させることを特徴とするデータ配信プログラム。
  15. 非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するために、コンピュータを、
    ヘッダと前記非暗号化データと前記暗号化データとを含んだ配信データを受信するデータ受信手段、
    前記ヘッダに記述された多重化構成の情報に基づき、前記配信データから前記非暗号化データと前記暗号化データとを分離するデータ分離手段、
    このデータ分離手段が分離した非暗号化データから、ハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記データ分離手段が分離した暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段、
    このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段、
    として機能させることを特徴とするデータ受信プログラム。
  16. 非暗号化データから算出したハッシュ値を用いて暗号化データのブロック復号処理を行い、前記非暗号化データの真正性を検証するために、コンピュータを、
    データ要求を送信するデータ要求手段、
    非暗号化データ配信装置からヘッダと前記非暗号化データとを受信するとともに、データ配信装置から前記暗号化データを受信するデータ受信手段、
    前記ヘッダと前記非暗号化データとを分離するデータ分離手段、
    このデータ分離手段が分離した非暗号化データから所定の非暗号化データを選択してデータ圧縮手段へ出力するとともに、当該選択した非暗号化データに対応するヘッダに含まれる識別子を抽出し、抽出した前記識別子を前記データ要求手段へ出力するデータ選択手段、
    このデータ選択手段が選択した非暗号化データからハッシュ関数を用いて前記ハッシュ値を算出するデータ圧縮手段、
    前記ハッシュ値を初期ベクトルとして、予め定めた利用モードにより、前記暗号化データを前記ブロック復号処理して復号データを生成するブロック復号処理手段、
    このブロック復号処理手段が生成した復号データを、予め設定されたフォーマットと比較して、前記復号データと前記予め設定されたフォーマットとが一致するならば前記非暗号化データは真正性を有すると判定し、一致しないならば真正性を有さないと判定するデータ検証手段、
    として機能させ、
    前記データ要求手段は、
    前記非暗号化データ配信装置へ前記データ要求を送信するとともに、前記データ選択手段から前記識別子が入力された場合には、前記データ配信装置へ当該識別子を含んだ前記データ要求を送信する
    ことを特徴とするデータ受信プログラム。
JP2009241441A 2009-10-20 2009-10-20 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム Expired - Fee Related JP5416544B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009241441A JP5416544B2 (ja) 2009-10-20 2009-10-20 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009241441A JP5416544B2 (ja) 2009-10-20 2009-10-20 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム

Publications (2)

Publication Number Publication Date
JP2011091494A JP2011091494A (ja) 2011-05-06
JP5416544B2 true JP5416544B2 (ja) 2014-02-12

Family

ID=44109368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009241441A Expired - Fee Related JP5416544B2 (ja) 2009-10-20 2009-10-20 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム

Country Status (1)

Country Link
JP (1) JP5416544B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6108952B2 (ja) * 2013-05-18 2017-04-05 日本放送協会 送信システム及び受信装置
JP6167721B2 (ja) * 2013-07-23 2017-07-26 凸版印刷株式会社 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
BR112016012359A2 (pt) * 2013-12-02 2017-08-08 Mastercard International Inc Método e sistema para transmissão segura de mensagens de serviço de notificação remota para dispositivos móveis sem elementos seguros
JP6740902B2 (ja) 2014-08-20 2020-08-19 日本電気株式会社 認証暗号化方法、認証復号方法および情報処理装置
KR101663274B1 (ko) * 2015-01-14 2016-10-07 주식회사 틸론 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템
JP6429962B1 (ja) * 2017-09-04 2018-11-28 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2021044465A1 (ja) * 2019-09-02 2021-03-11 株式会社Dnpハイパーテック 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3858527B2 (ja) * 1999-08-10 2006-12-13 富士ゼロックス株式会社 データ生成装置およびデータ検証装置ならびにその方法
US7093126B1 (en) * 2000-04-14 2006-08-15 International Business Machines Corporation Encryption schemes with almost free integrity awareness
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
JP2004325677A (ja) * 2003-04-23 2004-11-18 Sony Corp 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
JP4565955B2 (ja) * 2003-11-11 2010-10-20 パナソニック株式会社 情報利用可否判定方法、端末装置、送信装置、コンテンツ配信システム、およびプログラム
US20060259781A1 (en) * 2005-04-29 2006-11-16 Sony Corporation/Sony Electronics Inc. Method and apparatus for detecting the falsification of metadata

Also Published As

Publication number Publication date
JP2011091494A (ja) 2011-05-06

Similar Documents

Publication Publication Date Title
EP3257227B1 (en) Confidential communication management
JP5416544B2 (ja) データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム
EP3476078B1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
US20080133918A1 (en) Method and apparatus for transmitting data using authentication
US7570759B2 (en) System and method for secure encryption
EP2302832A2 (en) Apparatus and method for providing a security service in a user interface
JP2002500388A (ja) 保護された通信に適当な初期化ベクトルを導出するシステムおよび方法
KR101365603B1 (ko) 조건부 인증 코드 삽입 방법 및 그 장치, 인증을 통한조건부 데이터 사용 방법 및 그 장치
CN101411114A (zh) 用于最高安全性应用的加密方法
JP5492007B2 (ja) コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム
JP4193380B2 (ja) ストリーム転送における電子署名システム
JP2009049731A (ja) 暗号化方法,復号方法,および,鍵管理方法
US20050129243A1 (en) Encryption key hiding and recovering method and system
KR101424972B1 (ko) 모바일 카드를 이용한 컨텐츠 사용 방법, 호스트 장치, 및모바일 카드
KR101991775B1 (ko) Fpga기반의 데이터 암복호화 방법
KR20060014441A (ko) 암호화 통신 시스템
JP2016075765A (ja) 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
WO2014196850A1 (en) Non-repudiable log entries for file retrieval with semi-trusted server
CN106878004B (zh) 一种防止视频插播篡改的校验方法及装置
KR100977498B1 (ko) 디지털 저작권 관리 방법
CN112954388B (zh) 一种数据文件的获取方法、装置、终端设备和存储介质
CN101043334B (zh) 加密和认证数据以及解密和验证数据真实性的方法和装置
WO2010067797A1 (ja) 通信装置、サーバ装置及び通信プログラム
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
WO2010076899A1 (ja) 放送型暗号システム、送信者装置、ユーザ装置、カプセル化/脱カプセル化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120321

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131115

LAPS Cancellation because of no payment of annual fees