説明

コンテンツ暗号方法、コンテンツ暗号装置及びコンピュータプログラム

【課題】コンテンツの圧縮率が極端に悪化することなく、コンテンツの内容を確認できる程度にコンテンツを暗号化できるコンテンツ暗号方法を提供する。
【解決手段】MPEG形式の動画ファイルからブロックに分割されたIフレーム10を抽出し、抽出したIフレーム10に、ブロック11のマトリクスで形成される処理範囲12を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、処理範囲12に含まれるブロック11を並び替える規則が示される暗号鍵13を生成し、生成した暗号鍵13に従い、処理範囲12に含まれるブロック11を処理範囲12ごとに並び替えることで、コンテンツを暗号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画や静止画などのコンテンツを暗号化する技術に関し、更に詳しくは、コンテンツを半開示するために、動画や静止画などのコンテンツを暗号化する技術に関する。
【背景技術】
【0002】
デジタル著作権管理(DRM : Digital Rights Management)などにおいて、デジタル化したコンテンツ(動画や静止画など)の半開示技術が必要とされている。半開示技術とは、暗号技術を用いて内容を確認できる程度にコンテンツを暗号化する技術である。
【0003】
半開示技術を用いて暗号化されたコンテンツを閲覧することで、コンテンツ閲覧に対する課金を行う前に、ユーザはコンテンツの内容を確認することができ、更に、コンテンツ閲覧に対する課金を行うなどして、コンテンツを復号するための暗号鍵をユーザが入手することで、ユーザは、暗号化されたコンテンツを復号し、正常な品質のコンテンツを再生することが可能になる。
【0004】
コンテンツの半開示技術としては、非特許文献1において、特許文献1や特許文献2で開示されている発明を利用した「情報半開示方式」が記述され、この「情報半開示方式」では、JPEG形式のコンテンツを半開示する技術が紹介されている。
【0005】
この「情報半開示方式」では、JPEGで符号化された離散コサイン変換(DCT: Discrete Cosine Transform)の係数の中で、対象となる係数を暗号化することで、JPEG形式の静止画にスクランブルを掛ける。なお、スクランブル強度は、領域パラメータ、ブロック内パラメータ及び密度パラメータによって制御可能である。
【非特許文献1】「NTT R&D Vol.47 No.6」(1998年) (社)電気通信協会発行、705頁〜710頁
【特許文献1】特開平8−256321号公報
【特許文献2】特開平9−179493号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述しているようにコンテンツを半開示したとき、ユーザはコンテンツの内容を確認できる必要があるが、上述の「情報半開示方式」を利用してJPEG形式などのコンテンツを暗号化した場合、DCT係数が乱数になるため圧縮率が悪化するし、更に、この乱数を強制的に「0」にすることで、かなり見易い画像が再現できてしまうため、コンテンツの暗号化の強度としては不十分である。
【0007】
そこで、コンテンツの圧縮率が極端に悪化することなく、静止画や動画などのコンテンツの内容を確認できる程度にコンテンツを暗号化できるコンテンツ暗号方法、コンテンツ暗号装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決する第1の発明は、圧縮されたコンテンツを暗号化するコンテンツ暗号方法であって、前記コンテンツに含まれ、方形のブロックに分割された静止画のフレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替えることで、前記コンテンツを暗号化することを特徴とする。
【0009】
更に、第2の発明は、圧縮されたコンテンツを暗号化するコンテンツ暗号装置であって、前記コンテンツの中から、方形のブロックに分割された静止画のフレームを抽出し、抽出した前記フレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、定めた前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替えることで、前記コンテンツを暗号化することを特徴とする。
【0010】
更に、第3の発明は、圧縮されたコンテンツを暗号化するコンテンツ暗号装置であって、前記コンテンツの中から、方形のブロックに分割された静止画のフレームを抽出し、抽出した前記フレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、定めた前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替える機能として、コンピュータのCPUを動作させるためのコンピュータプログラムである。
【0011】
なお、本発明において前記コンテンツとは、圧縮された画像(例えば、JPEG形式の画像ファイル)や圧縮された動画(例えば、MPEG形式の動画ファイル)を意味している。
【発明の効果】
【0012】
本発明によれば、圧縮されたコンテンツに含まれる静止画のフレームは、設定された処理範囲の中でブロックが並び替えられ暗号化され、暗号化されたコンテンツは、画質が劣化した状態で再生されることになる。また、処理範囲を適当なサイズに設定することで、暗号化されたコンテンツを再生したときに、ユーザはコンテンツの内容を確認することが可能になる。
【0013】
更に、コンテンツの暗号化は可逆で、コンテンツを暗号化したときに利用した乱数生成鍵を取得し、コンテンツを暗号化したときに利用した暗号鍵を生成すれば、暗号化されたコンテンツを復号して、正常な品質でのコンテンツの再生が可能になる。
【0014】
更に、本発明によれば、暗号化されたコンテンツと元のコンテンツとでは、静止画のフレームに設定された処理範囲に含まれるブロックが並び替えられている以外に相違点はないため、たとえコンテンツを暗号化してもコンテンツの圧縮率が極端に悪化することはない。
【発明を実施するための最良の形態】
【0015】
ここから、本発明のコンテンツ暗号装置及びコンテンツ暗号方法について、図を参照しながら詳細に説明する。図1は、ネットワーク3を利用してサーバ1からクライアント2に送信されるコンテンツを保護に、本発明に係るコンテンツ暗号装置を適用したシステムを説明する図である。
【0016】
コンテンツ暗号装置であるサーバ1は、ストリーム暗号から得られる乱数を用いて生成した暗号鍵でコンテンツを暗号化し、品質が劣化しているコンテンツをクライアント2に配信し、暗号化されたコンテンツを復号する前は、品質が劣化した状態のままコンテンツはクライアント2で再生され、ユーザはコンテンツの内容を確認することができる。
【0017】
正常な品質でコンテンツを再生するためには、クライアント2で暗号化されたコンテンツを復号することが必要で、暗号化されたコンテンツを復号するとき、コンテンツを暗号化したときに利用した暗号鍵がクライアント2で生成される。
【0018】
上述しているようにコンテンツを暗号化した暗号鍵は、ストリーム暗号から得られる乱数を用いて生成されているため、クライアント2で暗号鍵を生成するためには、サーバ1で暗号鍵を生成したときに利用したストリーム暗号の乱数生成鍵をクライアント2は必要とする。
【0019】
課金処理をするなどしてサーバ1から取得した乱数生成鍵を用い、クライアント2においてサーバと同じ手順で暗号鍵を生成することで、暗号化されたコンテンツは復号され、正常な品質でコンテンツは再生される。
【0020】
コンテンツ暗号装置であるサーバ1は、少なくとも、コンテンツを暗号化する機能を備え、この機能は、本発明に係るコンテンツ暗号装置が有する機能としてサーバ1に備えられたCPUを動作させるためのコンピュータプログラムで実現している。
【0021】
コンテンツをMPEG形式で圧縮された動画ファイルとしたときの例を取りながら、サーバ1がコンテンツに暗号化を掛ける動作について説明する。
【0022】
図2は、暗号化されるコンテンツ、すなわち、MPEG形式の動画ファイルに含まれるフレームを説明する図である。MPEG形式の動画ファイルであるコンテンツには、フレームとして、前方向のフレーム間予測で生成されるPフレーム10p(P: Predicted Frame)と、前方向、後方向或いは両方向のフレーム間予測で生成されるBフレーム10b (B: Bi-directional Predicted Frame)と、フレーム間予測で基点となるIフレーム10(I: Intra-coded Frame)とが含まれる。
【0023】
図3は、Iフレーム10を模式的に説明する図で、上述したようにIフレーム10は8画素×8画素のブロック11に分割され、それぞれのブロック11は圧縮されている。図3では、Iフレーム10は9行×16列のブロック11で構成されている。
【0024】
なお、MPEG形式の動画ファイルのIフレーム10に含まれるそれぞれのブロック11は、動画の現画像そのものでなく、ブロック11の画像そのものや、フレーム間予測をした画像の離散コサイン変換した係数を量子化し、エントロピー符号化(MPEG-4では、VLC: Variable Length Codeing)することで圧縮されている。
【0025】
サーバ1は、コンテンツを暗号化するとき、コンテンツに含まれるIフレーム10を抽出し、抽出したIフレーム10のみを暗号化することで、動画の圧縮率を大幅に悪化させることなく、MPEG形式の動画ファイルであるコンテンツを暗号化する。
【0026】
本発明において、コンテンツの暗号化とは、Iフレーム10に含まれるブロック11を、圧縮された状態のまま並び替えることを意味する。Iフレーム10の全体を対象としてブロック11を並び替えてもよいが、Iフレーム10の全体を対象としてブロック11を並び替えてしまうと、暗号化されたコンテンツを再生したとき、ユーザは再生したコンテンツの内容を確認することができない。
【0027】
そこで、本発明では、Iフレーム10の一部を処理領域として設定し、ブロック11を並び替えを処理領域ごとに行うことで、暗号化されたコンテンツを再生したとき、コンテンツの内容を確認できるようにする。
【0028】
図4は、図3で図示したIフレーム10に処理領域12を設定する一例を示した図で、図4では、3行×4列のブロック11のマトリクスで形成される領域を一つの処理領域12とし、一つのIフレーム10に12個の処理領域12を設定している。
【0029】
ブロック11を並び替える処理領域12は一つのみIフレーム10に設定されていてもよいが、複数の処理領域12がIフレーム10に設定されていても構わない。複数の処理領域12がIフレーム10に設定されているときは、それぞれの処理領域12ごとにブロック11の並び替えが実行される。
【0030】
処理領域12に含まれるブロック11を並び替えるときには、処理領域12に含まれるブロック11それぞれについて番号が割当られる。図4では、一つの処理領域12に12個のブロック11が含まれるため、それぞれのブロック11には、「0」~「11」までの番号が割当てられる。
【0031】
図5は、処理領域12に含まれるブロック11を並び替えるときに利用される暗号鍵13を模式的に示した図である。処理領域12に含まれるブロック11を並び替えるときに利用される暗号鍵13は、処理領域12に含まれるブロック11に付与されたそれぞれの番号を要素(i)とする1次元の配列である。
【0032】
暗号鍵13において、ブロック11に付与された番号は順序通りでなく、ストリーム暗号の乱数生成器から得られる乱数を用いて、ブロック11に付与された番号の並び順は攪拌されている。乱数を生成するストリーム暗号の乱数生成器はコンピュータプログラムで実現できるが、ストリーム暗号の乱数生成器は専用のハードウェアで実現することもできる。
【0033】
図5において、暗号鍵13は要素(0)から要素(11)を有する1次元の配列で、暗号鍵13の要素(i)のデータは、番号「i」が付与されたブロック11が並び替える位置を示し、例えば、図5で示した例においては、要素(0)のデータは「5」になっているため、0番目のブロック11は、5番目の位置に並び替えられることを意味している。
【0034】
ここから、図を参照しながら、サーバ1がコンテンツを暗号化する動作について、より詳細に説明することで、本発明に係るコンテンツ暗号方法についても説明する。
【0035】
図6は、コンテンツを暗号化する手順を示したフロー図である。この手順の最初のステップS1は、Iフレーム10にブロック11を並び替える処理領域12を設定するステップである。例えば、図4に図示したように、処理領域12はIフレーム10に設定される。
【0036】
次のステップS2は、暗号鍵13を初期化するステップである。図7は、初期化された暗号鍵13aの一例を示した図である。上述しているように暗号鍵13とは、一つの処理領域12に含まれるブロック11の数だけ要素(i)を有する一次元の配列であるため、図7に図示した初期化された暗号鍵13aにおいては、ブロック11に割当てられた番号が順に並んでいる。
【0037】
本実施の形態では、初期化された暗号鍵13aは、ストリーム暗号の乱数生成器から得られる1バイトの乱数を用いて変更される。後述するステップS3及びステップS4が予め設定された設定回数だけ繰り返して実行され、初期化された暗号鍵13aが変更されることで、ブロック11の並び替えに利用される暗号鍵13は生成される。
【0038】
ステップS3は、乱数を生成するステップである。上述したように乱数は、ストリーム暗号の乱数生成部を用いて生成される。ストリーム暗号の乱数生成部に、乱数生成鍵(例えば、128ビット)が入力され、公開された初期ベクトル(例えば、128ビット)を初期値とする1バイトの乱数(擬似乱数)が、乱数を発生する指示ごとに生成される。
【0039】
次のステップS4は、ステップS3で生成された乱数を用いて、初期化された暗号鍵13aが変更されるステップである。
【0040】
本実施の形態において、ステップS3で生成される乱数は1バイトの数値で、本実施の形態で、乱数を上位ニブルと下位ニブルに分割して利用し、データテーブルの要素(i)の中で、上位ニブルをiとしたときの要素(i)の値とi=下位ニブルとしたときの要素(i)の値を入れ替えることで、初期化された暗号鍵13aを変更する。
【0041】
例えば、乱数が「63h」(ここで、hは16進数を意味する)ならば、要素(6)の値「6」と要素(3)の値「3」を入れ替える。なお、図4の処理領域12に含まれるブロック11の数は12個であるため、上位ニブル及び下位ニブルを12(Ch)で余剰演算したときの余りを、ブロック11の並び替えに利用するとよい。
【0042】
次のステップS5は、初期化された暗号鍵13aが変更された回数を確認するステップである。このステップでは、初期化された暗号鍵13aが変更された回数が設定回数(例えば、5回)に達したときはステップS6に進み、達していないときはステップS3に戻る。
【0043】
図8に、図7で図示した初期化された暗号鍵13aから暗号鍵13が生成される一例を示した図である。5個の乱数(63h,71h,58h,A4h,2Bh)を用いることで、図7で図示した暗号鍵13の初期値13aから図7で図示した暗号鍵13が生成される。
【0044】
次のステップS6は、暗号鍵13を用いて、処理領域12に含まれるブロック11を並び替えるステップである。このステップでは、生成された暗号鍵13を参照し、処理領域12に含まれるブロック11が並び替えられる。
【0045】
図9は、図4で図示したIフレーム10の左上の処理領域12に含まれるブロック11を、図5で図示した暗号鍵13に基づいて、ブロック11が並び替えた後のIフレーム10を示した図である。
【0046】
図5で図示した暗号鍵13を参照することで、例えば、図4の1番目のブロック11は7番目の位置に並び替えられ、図4の2番目のブロックは11番目の位置に並び替えられることで、図9で図示したIフレーム10が得られる。
【0047】
これまでは、ブロック11を並び替える処理領域12は一つとしていたが、ブロック11を並び替える処理領域12が複数あるときは、すべての処理領域12ブロック11で同じ暗号鍵13を用いてブロック11を並び替えてもよく、処理領域12ごとに暗号鍵13を生成し、処理領域12ごとに異なる暗号鍵13を用いてブロック11を並び替えてもよい。ステップS6をもって、コンテンツを暗号化する手順は終了する。
【0048】
上述しているように、暗号化されたコンテンツに含まれるIフレーム10のブロック11は並び替えられているため、暗号化されたコンテンツを復号する前は、品質が劣化した状態で再生されるため、コンテンツの著作権は保護される。
【0049】
図10は、コンテンツを暗号化した一例である。図10(a)は暗号化する前のコンテンツで、図10(b)は暗号化されたコンテンツである。図10(b)を参照すればわかるように、ユーザは再生したコンテンツの内容を確認することができる程度に暗号化されている。
【0050】
これまで説明した実施の形態では、コンテンツをMPEG形式の動画ファイルとしているが、本発明はMPEG形式の動画ファイルに限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、静止画を圧縮したJPEG形式の画像ファイルにも本発明は適用できる。
【0051】
更に、MPEG形式の動画ファイルでは、動画ファイルに含まれる一つのフレームは、8画素×8画素の方形のブロック11に分割されていたが、このブロック11のサイズは圧縮する形式に依存し、本発明では方形のブロック11のサイズは任意である。例えば、ワンセグで利用されているH.264では、方形のブロック11のサイズは4画素×4画素である。
【0052】
更に、上述した実施の形態では、圧縮された後のMPEG形式の動画ファイルを暗号化していたが、オリジナルの動画を圧縮すると同時にコンテンツを暗号化してもよく、例えば、エントロピー符号化される前のブロック11を並び替えることもできる。
【0053】
更に、初期化された暗号鍵13aを変更するときに利用する乱数は1バイトに限定されず、1バイトより大きい乱数を用いて、初期化された暗号鍵13aを変更することもできる。
【0054】
例えば、2バイトの乱数を利用するときは、初期化された暗号鍵13aの要素の中で、1バイトの乱数をブロック11の数で剰余演算したときの余りをiとしたときの要素(i)の値と、もう一方の1バイトの乱数をブロック11の数で剰余演算したときの余りをiとしたときの要素(i)の値とを入れ替えることで、初期化された暗号鍵13aを変更することもできる。
【図面の簡単な説明】
【0055】
【図1】本発明に係るコンテンツ暗号装置を適用したシステムを説明する図。
【図2】MPEG形式の動画ファイルに含まれるフレームを説明する図。
【図3】Iフレームを模式的に説明する図。
【図4】Iフレームに処理領域を設定する一例を示した図。
【図5】暗号鍵を模式的に示した図。
【図6】コンテンツを暗号化する手順を示したフロー図。
【図7】暗号鍵の初期値を示した図。
【図8】暗号鍵が生成される一例を示した図。
【図9】ブロックが並び替えた後のIフレームを示した図。
【図10】コンテンツを暗号化した一例を示した図。
【符号の説明】
【0056】
1 サーバ
10 Iフレーム
11 ブロック
12 処理領域
13 暗号鍵
2 クライアント
3 ネットワーク



【特許請求の範囲】
【請求項1】
圧縮されたコンテンツを暗号化するコンテンツ暗号方法であって、前記コンテンツに含まれ、方形のブロックに分割された静止画のフレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替えることで、前記コンテンツを暗号化することを特徴とするコンテンツ暗号方法。
【請求項2】
請求項1に記載のコンテンツ暗号方法であって、前記コンテンツはMPEG形式で圧縮された動画ファイルであって、前記フレームはIフレームであることを特徴とするコンテンツ暗号方法。
【請求項3】
圧縮されたコンテンツを暗号化するコンテンツ暗号装置であって、前記コンテンツの中から、方形のブロックに分割された静止画のフレームを抽出し、抽出した前記フレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、定めた前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替えることで、前記コンテンツを暗号化することを特徴とするコンテンツ暗号装置。
【請求項4】
請求項3に記載のコンテンツ暗号装置であって、前記コンテンツはMPEG形式で圧縮された動画ファイルであって、前記フレームはIフレームであることを特徴とするコンテンツ暗号装置。
【請求項5】
圧縮されたコンテンツを暗号化するコンテンツ暗号装置であって、前記コンテンツの中から、方形のブロックに分割された静止画のフレームを抽出し、抽出した前記フレームに、前記ブロックのマトリクスで形成される処理範囲を少なくとも一つ設定し、乱数生成鍵を入力としたストリーム暗号から得られる乱数を用いて、前記処理範囲に含まれる前記ブロックの位置を並び替える規則が示される暗号鍵を生成し、生成した前記暗号鍵に従い、定めた前記処理範囲に含まれる前記ブロックを前記処理範囲ごとに並び替える機能として、コンピュータのCPUを動作させるためのコンピュータプログラム。
【請求項6】
請求項5に記載のコンピュータプログラムであって、前記コンテンツはMPEG形式で圧縮された動画ファイルであって、前記フレームはIフレームであることを特徴とするコンピュータプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−118406(P2008−118406A)
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願番号】特願2006−299753(P2006−299753)
【出願日】平成18年11月6日(2006.11.6)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】