(57)【要約】【課題】ハードウェア量の削減を図ったブロック暗復号回路を提供する。【解決手段】管理ブロック単位でデータを格納する入力バッファメモリ３１と、入力バッファメモリ３１からのデータを処理ブロック単位で格納する待機バッファ１１０と、待機バッファ１１０に格納されるデータ量を監視する待機バッファ制御部１１１と、待機バッファ１１０に格納されたデータを処理ブロック単位で暗復号化する暗復号部１２と、入力バッファメモリ３１の読み出し制御を行なうバッファメモリ制御部３０とを備え、バッファメモリ制御部３０は、待機バッファ制御部１１１から通知される管理ブロック単位内における最終の処理ブロックでの、待機バッファ１１０に格納されたデータのデータ量を利用して、次回の入力バッファメモリ３１から読み出す先頭アドレスを決定する。【選択図】図１
2006332941.tif 000002
【特許請求の範囲】
【請求項１】
供給元から供給されたコンテンツデータに対し、所定のデータ量を一つの処理ブロックとして処理ブロック単位で暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして供給先に供給するブロック暗復号回路であって、
供給元からコンテンツデータが供給され、前記処理ブロックのデータ量よりも大きなデータ量である所定のデータ量を一つの管理ブロックとして、一つ以上の管理ブロック分の前記コンテンツデータを、前記管理ブロックで区分して格納する入力バッファメモリと、
前記入力バッファメモリから、前記管理ブロックを管理ブロック処理単位とし、さらに、前記処理ブロックを処理ブロック単位として、コンテンツデータが供給され、前記処理ブロック単位で前記コンテンツデータを格納する待機バッファと、
前記待機バッファに格納されるコンテンツデータのデータ量を判定する判定部と、
少なくとも、前記待機バッファを制御するとともに、前記待機バッファに格納されるデータ量を監視する待機バッファ制御部と、
前記待機バッファに格納されたコンテンツデータに対して、暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして出力する暗復号部と、
前記暗復号部から前記暗復号化データが供給され、前記待機バッファから前記待機バッファに格納したコンテンツデータが供給され、前記判定部の判定結果に応じて、前記供給された暗復号化データ、およびコンテンツデータからいずれかを選択するセレクタと、
前記セレクタが選択したデータを出力データとして格納する出力バッファと、
前記出力バッファから前記出力データが供給され、一つ以上の前記管理ブロック分の前記出力データを、前記管理ブロックで区分して格納する出力バッファメモリと、
前記入力バッファメモリに対する読み出し処理を含めた制御、および前記出力バッファメモリに対する書き込み処理を含めた制御を行なうとともに、前記入力バッファメモリに対する読み出し処理において、前記管理ブロック単位での最終読み出し処理であることを示す終了信号を生成し、生成した終了信号を前記待機バッファ制御部に通知するバッファメモリ制御部とを備え、
前記待機バッファ制御部は、前記バッファメモリ制御部から、前記管理ブロック単位での最終読み出し処理であることを示す終了信号を受け取ると、前記管理ブロック単位内における最終の前記処理ブロックでの、前記待機バッファに格納されたコンテンツデータのデータ量を未処理数データとして検出することを特徴とするブロック暗復号回路。
【請求項２】
前記待機バッファ制御部は、前記検出した未処理数データを前記バッファメモリ制御部に通知し、
前記バッファメモリ制御部は、前記管理ブロック単位での最終読み出しアドレスから前記通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとすることを特徴とする請求項１記載のブロック暗復号回路。
【請求項３】
前記ブロック暗復号回路は、さらに、前記入力バッファメモリに対する読み出し処理のためのアドレスを少なくとも管理するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、
前記待機バッファ制御部は、前記検出した未処理数データを前記ＣＰＵに通知し、
前記ＣＰＵは、前記管理ブロック単位での最終読み出しアドレスから前記通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、前記先頭アドレスを前記バッファメモリ制御部に通知することを特徴とする請求項１記載のブロック暗復号回路。
【請求項４】
前記待機バッファ制御部は、割込み処理により、前記検出した未処理数データを前記ＣＰＵに通知することを特徴とする請求項３記載のブロック暗復号回路。
【請求項５】
前記所定のデータ量を一つの管理ブロックとして、この所定のデータ量に対して暗復号化処理を実行する期間、入力バッファメモリと待機バッファとの間、および出力バッファと出力バッファメモリとの間のデータ転送は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を利用したデータ転送であることを特徴とする請求項２から請求項４のいずれか一項に記載のブロック暗復号回路。
【請求項６】
前記データ量は、８ビットを１バイトとするバイト単位でのデータ量であることを特徴とする請求項５記載のブロック暗復号回路。
【請求項７】
前記コンテンツデータは、フレームの属性情報を含むヘッダ部と、複数に分割されたコンテンツの個々の部分を含むデータ本体部とから構成されるフレームを複数個含むコンテンツデータであることを特徴とする請求項６記載のブロック暗復号回路。
【請求項８】
前記ヘッダ部は、前記フレームの先頭を示す同期符号と、前記フレームのデータ量を示す情報とを含み、
前記判定部は、前記ヘッダ部に含まれるフレームのデータ量を示す情報と、処理ブロックの所定のデータ量とに基づき、前記待機バッファに格納されるコンテンツデータのデータ量を判定し、判定したデータ量が処理ブロックの所定のデータ量に満たないとき、前記セレクタに対して、前記セレクタが前記待機バッファに格納されたコンテンツデータを選択するよう制御することを特徴とする請求項７記載のブロック暗復号回路。
【請求項９】
前記コンテンツデータは、可変長圧縮符号化方式により符号化されたデータ、または、可変長圧縮符号化方式により符号化されたコンテンツデータを暗号化したデータであることを特徴とする請求項８記載のブロック暗復号回路。
【請求項１０】
前記可変長圧縮符号化方式は、音声データを圧縮符号化するＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）方式であることを特徴とする請求項９記載のブロック暗復号回路。
【請求項１１】
前記可変長圧縮符号化方式は、音声データを圧縮符号化するＭＰ３（ＭＰＥＧ  Ａｕｄｉｏ  Ｌａｙｅｒ−３）方式であることを特徴とする請求項９記載のブロック暗復号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、平文のコンテンツデータの暗号化処理、および暗号化されたコンテンツデータの復号化処理を行なうブロック暗復号回路に関し、特に、コンテンツデータを一時記憶するバッファを介して、暗復号化処理を行なうブロック暗復号回路に関する。
【背景技術】
【０００２】
近年、マルチメディア関連の技術の進展により、画像データ、音声データなどを圧縮符号化し、圧縮符号化により生成されたデジタルデータを処理する装置や方法に関する技術が急速に進展している。とりわけ、情報機器等において利用される記録媒体としてのハードディスク、光ディスク、あるいはメモリカードなど、これら記録媒体の大容量化がめざましく、映像や音声信号をデジタル形式で記録する民生用の映像機器分野においても、ビデオデータのような大容量データを一般家庭で記録して扱うことが可能となっている。一方、これら記録媒体を利用することで、例えば、デジタル動画像を高画質で長時間記録できるため、不正コピーなどの防止を目的とした著作権保護に関する技術が提案されている。また、著作権保護に関する技術の一つとして、記録や通信における情報を秘匿するため、情報を暗号化して記録や通信を行なう暗号化に関する技術がある。このような暗号化技術に関する一例としては、例えば、米国における暗号化標準方式であるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式などがある。ＤＥＳ方式は、このような暗号化技術として、６４ビットなど所定のデータ長を１ブロックとしたブロック暗号化アルゴリズムが利用されており、暗号化処理方法に応じて、ＥＣＢモード、ＣＢＣモード、ＯＦＢモード、ＣＦＢモードと呼ばれる四つのモードが知られている。
【０００３】
また、特に記録媒体における暗号化に関しては、光ディスクの一種であるＤＶＤ、あるいはメモリカードの一種であるＳＤメモリカードなどの記録媒体に、デジタル動画像やデジタル楽曲などのコンテンツデータを暗号化したままで記録することで、その秘匿化を図り、これによって著作権の対象となるようなコンテンツの保護が図られている。
【０００４】
ところで、画像データや音声データなどの圧縮符号化方式においても、数々の方式が提案されている。例えば、音声データを圧縮符号化する方式として、データ圧縮効率を向上させるデータ圧縮伸長方式が開発されており、その一つにＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）方式がある。ＡＡＣ方式とは、一定の演奏時間毎のデジタル音声データを音声情報量に応じた大きさに圧縮し記録することにより圧縮効率を向上させる技術であり、ＡＡＣ方式に基づくコンテンツデータのデータを格納するフレームは可変長に構成される。一方、ＡＡＣ方式により圧縮符号化された可変長のデータを暗号化する場合、コンテンツデータのヘッダ部に格納される同期符号と、同期符号以外のデータとが同一の値に暗号化される場合があるため、同期符号を識別してフレームの先頭位置を特定することができなかった。このため、従来、このような課題を解決することを目的とした暗復号装置が提案されている（例えば、特許文献１参照）。
【０００５】
図５は、このような、可変長のデータにも対応した従来の暗復号装置のブロック図である。図５において、暗復号化処理を行なうため、可変長のコンテンツデータは、例えば、５１２バイトの記憶容量を有した入力バッファメモリ９４に格納される。特に、複数種類のコンテンツデータが供給されるような場合、入力バッファメモリ９４には、各コンテンツデータが時分割で供給される。入力バッファメモリ９４に供給されたコンテンツデータは、例えば、８バイトを一つの処理ブロックとしたブロック暗号化アルゴリズムに基づき暗復号化処理が実行される暗復号部９０により、暗号化、あるいは復号化される。暗復号部９０は、このような暗号化演算、および復号化演算を行なう演算部９００と、暗号化演算、および復号化演算のための鍵データを生成する鍵生成部９０１とを有する。
【０００６】
また、８バイトとするような処理ブロックを単位として暗復号化処理を実行するため、第１の暗復号処理部９１が設けられ、さらに、複数種類のコンテンツデータにも対応するよう第１の暗復号処理部９１と同様の構成である第２の暗復号処理部９２が設けられている。バッファメモリ制御部９３は、入力バッファメモリ９４に対して、第１の暗復号処理部９１、および第２の暗復号処理部９２へ処理ブロックを単位としてコンテンツデータを供給するよう制御する。
【０００７】
第１の暗復号処理部９１は、このような処理ブロック単位ごとのブロック暗号化アルゴリズムに基づいた暗復号化処理のため、図５に示すように、処理ブロック単位ごとにデータを取り込む分離部９１１と、供給される各バイトごとのデータが暗復号化処理の対象となるか否かなどの判定を行ない、判定結果に応じた暗復号化処理の実行を制御する判定部９１３と、第１の暗復号処理部９１の処理結果であるデータを生成する結合部９１４とを備えた構成である。また、分離部９１１は、処理ブロック単位のデータを一時記憶する待機バッファ９１０を有する。結合部９１４は、演算部９００による演算結果のデータ、および入力バッファメモリ９４のデータのいずれかを選択するセレクタ９１５と、セレクタ９１５から出力されるデータを一時記憶する出力バッファ９１６とを有する。
【０００８】
従来の暗復号装置は、このような構成により、入力バッファメモリ９４から供給される可変長のコンテンツデータに対して次のような処理を行なう。すなわち、従来の暗復号装置は、コンテンツデータのフレームに含まれるデータに対して、順次、８バイトとするような処理ブロック単位で待機バッファ９１０に格納する。これとともに、判定部９１３は、入力バッファメモリ９４から、８バイトとするような処理ブロック単位分のデータが供給可能かどうか判定する。供給可能であった場合、セレクタ９１５は、演算部９００からのデータを選択して出力バッファ９１６に格納する。一方、判定部９１３が、８バイトとするような処理ブロック単位分のデータが供給可能ではないと判定すると、セレクタ９１５は、入力バッファメモリ９４から供給されるデータを選択し、出力バッファ９１６に格納する。すなわち、例えば、フレームのデータバイト長が８２バイトの場合、先頭から１０個の処理ブロックとなる８０バイト分のデータに対して暗復号化処理を行ない、残り２バイトについては暗復号化処理を行なわず、このようにして、暗復号化処理の結果である８０バイトのデータに、暗復号化処理を行なわなかった２バイトの余剰データを付加して出力する。
【０００９】
従来の暗復号装置は、このような動作を実行することで、可変長のコンテンツデータにも対応することを可能としている。さらに、このような処理が可能な暗復号処理部を複数備えた構成であるため、複数種類のコンテンツデータが供給されるような場合でも、それぞれのコンテンツデータに対する暗復号化処理を可能としている。
【特許文献１】特開２００１−３５８７０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の暗復号装置では、複数種類のコンテンツデータが供給されるような場合、それぞれのコンテンツデータに対して、入力バッファメモリ９４や暗復号部９０などの共用化を図ることができるものの、暗復号処理部についてはそれぞれのコンテンツデータに対応させるため、対応させるコンテンツデータの数に応じて、複数の暗復号処理部を備える必要があった。また、従来の暗復号装置では、データ管理ブロックの余剰データを、それぞれのコンテンツデータに対応させるためには、それぞれ待機バッファ内に留める必要もあるため、暗復号処理部を複数備えた構成となる。このため、複数種類のコンテンツデータにも対応させようとすると、ハードウェア量が増加するという課題があった。
【００１１】
本発明は、上記課題を解決するためになされたもので、従来、並行する複数のハードウェアを持つことで実現していた処理を、一つの処理で可能とすることにより、ハードウェア量が増加を抑制したブロック暗復号回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述したような課題を解決するために、本発明のブロック暗復号回路は、供給元から供給されたコンテンツデータに対し、所定のデータ量を一つの処理ブロックとして処理ブロック単位で暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして供給先に供給するブロック暗復号回路であって、供給元からコンテンツデータが供給され、処理ブロックのデータ量よりも大きなデータ量である所定のデータ量を一つの管理ブロックとして、一つ以上の管理ブロック分のコンテンツデータを、管理ブロックで区分して格納する入力バッファメモリと、入力バッファメモリから、管理ブロックを管理ブロック処理単位とし、さらに、処理ブロックを処理ブロック単位として、コンテンツデータが供給され、処理ブロック単位でコンテンツデータを格納する待機バッファと、待機バッファに格納されるコンテンツデータのデータ量を判定する判定部と、待機バッファを制御するとともに、待機バッファに格納されるデータ量を監視する待機バッファ制御部と、待機バッファに格納されたコンテンツデータに対して、暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして出力する暗復号部と、暗復号部から暗復号化データが供給され、待機バッファから待機バッファに格納したコンテンツデータが供給され、判定部の判定結果に応じて、供給された暗復号化データ、およびコンテンツデータからいずれかを選択するセレクタと、セレクタが選択したデータを出力データとして格納する出力バッファと、出力バッファから出力データが供給され、一つ以上の管理ブロック分の出力データを、管理ブロックで区分して格納する出力バッファメモリと、入力バッファメモリに対する読み出し処理を含めた制御、および出力バッファメモリに対する書き込み処理を含めた制御を行なうとともに、入力バッファメモリに対する読み出し処理において、管理ブロック単位での最終読み出し処理であることを示す終了信号を生成し、生成した終了信号を待機バッファ制御部へ通知するバッファメモリ制御部とを備える。さらに、待機バッファ制御部が、バッファメモリ制御部から、管理ブロック単位での最終読み出し処理であることを示す終了信号を受け取ると、管理ブロック単位内における最終の処理ブロックでの、待機バッファに格納されたコンテンツデータのデータ量を未処理数データとして検出する構成である。
【００１３】
さらに、本発明のブロック暗復号回路は、待機バッファ制御部が、検出した未処理数データをバッファメモリ制御部に通知し、バッファメモリ制御部が、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとする構成である。
【００１４】
また、本発明のブロック暗復号回路は、さらに、入力バッファメモリに対する読み出し処理のためのアドレスを少なくとも管理するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、待機バッファ制御部が、検出した未処理数データをＣＰＵに通知し、ＣＰＵは、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、先頭アドレスをバッファメモリ制御部に通知する構成である。
【発明の効果】
【００１５】
本発明のブロック暗復号回路は、管理ブロック単位内における最終の処理ブロック単位での、待機バッファに格納されたコンテンツデータのデータ量が、処理ブロックの所定のデータ量に満たないデータ量であった場合、未処理数データとしてバッファメモリ制御部に通知し、バッファメモリ制御部が、この未処理数データを利用して、次回の入力バッファメモリから読み出す先頭アドレスを、今回の入力バッファメモリの終了アドレスから未処理のデータ量分戻して読み出す構成である。また、本発明の実施の形態におけるブロック暗復号回路は、管理ブロック単位内における最終の処理ブロック単位での、待機バッファに格納されたコンテンツデータのデータ量が、処理ブロックの所定のデータ量に満たないデータ量であった場合、未処理数データとしてＣＰＵに通知し、ＣＰＵが、この未処理数データを利用して、次回の入力バッファメモリから読み出す先頭アドレスを、今回の入力バッファメモリの終了アドレスから未処理のデータ量分戻したアドレスを演算し、その演算結果であるアドレスをバッファメモリ制御部に通知し、バッファメモリ制御部が、ＣＰＵから通知されたアドレスを用いて、入力バッファメモリから読み出す構成である。
【００１６】
このため、本発明のブロック暗復号回路によれば、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御が容易となる。また、複数のコンテンツに対応したコンテンツデータを暗復号化処理する場合、それぞれのコンテンツデータに対応するための複数の暗復号処理部を備える必要はないため、ハードウェア量の削減を図った複数のコンテンツに対応するブロック暗復号回路を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１８】
（実施の形態）
図１は、本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の一例を示すブロック図である。
【００１９】
図１において、ハードディスクドライブ（以下、適宜、ＨＤＤと呼ぶ）５０は、磁気ディスクなどの記録媒体を有し、その記録媒体に対してコンテンツデータなどを記録再生できる記録再生手段である。また、外部メモリ６０は、ＤＶＤやＳＤカードのような可搬型の記録媒体であり、本コンテンツ再生装置に装着することで、この外部メモリ６０に対してコンテンツデータなどの記録再生ができる。
【００２０】
デコード処理部４９は、例えば、ＭＰＥＧ−２規格などに基づき圧縮符号化された映像データや、ＭＰ３規格などに基づき圧縮符号化された音声データを復号することで、映像データや音声データを復元する。復元された映像データは外部に出力され、この映像データにより、例えば、外部のディスプレイ等を駆動することで、外部のディスプレイ等には、この映像データに応じた画像が表示される。また、復元された音声データは外部に出力され、この音声データにより、例えば、外部のスピーカ等を駆動することで、外部のスピーカ等には、この音声データに応じた音声が出力される。なお、本実施の形態では、ディスプレイやスピーカは外部接続されるようなデジタル放送受信装置を例に挙げて説明するが、例えば、ディスプレイやスピーカを内蔵したような装置形態であってもよい。
【００２１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０は、後述するブロック暗復号回路の制御を含め、装置における各処理を制御統括する制御部として機能し、例えばマイクロプロセッサである。ＣＰＵ４０は、図示しないプログラムメモリなどに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行する。
【００２２】
共通バス４１は、ＣＰＵ４０、ＨＤＤ５０、外部メモリ６０、およびブロック暗復号回路など各構成要素間のデータ転送やデータ通信を行なうための共通のバスである。ＨＤＤ５０は、データ等の受け渡しを行なうためのインタフェースであるＨＤＤＩ／Ｆ部５１を介して共通バス４１に接続され、また、外部メモリ６０も同様に、データ等の受け渡しを行なうためのインタフェースである外部メモリＩ／Ｆ部６１を介して共通バス４１に接続されている。
【００２３】
また、図１に示すコンテンツ再生装置は、共通バス４１に接続される本発明のブロック暗復号回路を含む構成である。さらに、本発明のブロック暗復号回路は、暗号化されていないデータである平文データに対して暗号化処理を行なうことで暗号文データを生成するとともに、暗号化されたデータである暗号文データに対して復号化処理を行なうことで平文データを生成する暗復号処理部１０と、暗復号処理部１０により処理するためのデータを一時的に記憶する入力バッファメモリ３１と、暗復号処理部１０の処理により生成されたデータを一時的に記憶する出力バッファメモリ３２と、入力バッファメモリ３１、および出力バッファメモリ３２に対するデータの読み出しや、データの書き込み制御を行なうバッファメモリ制御部３０と、を含む構成である。
【００２４】
本コンテンツ再生装置は、以上のような基本構成であり、例えば、ＨＤＤ５０に記録された映像データや音声データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータがＳＤカードなどの外部メモリ６０に記録されたり、ＨＤＤ５０に記録された暗号化されたコンテンツデータが、ブロック暗復号回路で復号化処理され、復号化処理されたデータが外部メモリ６０に記録されたり、あるいは、逆に、外部メモリ６０に記録されたデジタル動画像データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータがＨＤＤ５０に記録されたり、外部メモリ６０に記録された暗号化されたコンテンツデータが、ブロック暗復号回路で復号化処理され、復号化処理されたデータがＨＤＤ５０に記録されたりし、このようにして、一方の記録媒体に記憶された平文データが暗号化処理されて他方の記録媒体に暗号文データとして記録されたり、一方の記録媒体に記憶された暗号文データが復号化処理されて他方の記録媒体に平文データとして記録される。さらに、ＨＤＤ５０、あるいは外部メモリ６０に記録された暗号文データは、ブロック暗復号回路で復号化処理され、復号化処理により生成された平文データである映像データや音声データをデコード処理部４９に供給することにより、元の映像や音声の再生ができる。
【００２５】
また、本ブロック暗復号回路において、暗号化処理あるいは復号化処理を行ない、その処理により生成したデータを記録する場合など、ＨＤＤ５０あるいは外部メモリ６０から、データ管理ブロック（以下。適宜、管理ブロックと呼ぶ）を転送単位とするデータが、入力バッファメモリ３１にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送される。入力バッファメモリ３１に転送されたデータは、バッファメモリ制御部３０の制御により入力バッファメモリ３１に書き込まれる。次に、バッファメモリ制御部３０の制御により、入力バッファメモリ３１から、暗復号化処理を行なうためのブロック単位である暗復号化処理ブロック（以下、処理ブロックと呼ぶ）単位で、順次、データが読み出される。読み出されたデータは、一つの管理ブロック分のデータを一つのＤＭＡ期間として、暗復号処理部１０にＤＭＡ転送され、暗復号処理部１０により処理ブロック単位ごとの暗復号化処理が実行される。
【００２６】
暗復号処理部１０による処理ブロック単位の暗復号化処理で生成されたデータは、一つの管理ブロック分のデータを一つのＤＭＡ期間として、処理ブロック単位ごとに、出力バッファメモリ３２にＤＭＡ転送される。暗復号処理部１０からＤＭＡ転送された処理済みのデータは、バッファメモリ制御部３０の制御により、出力バッファメモリ３２に書き込まれる。出力バッファメモリ３２に所定の管理ブロック数のデータが書き込まれると、出力バッファメモリ３２からは、バッファメモリ制御部３０の制御により、所定の管理ブロック数のデータが読み出される。読み出されたデータは、転送先であるＨＤＤ５０、外部メモリ６０、あるいはデコード処理部４９へとＤＭＡ転送される。このようにして、例えば、供給元としてのＨＤＤ５０に記録された画像データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータが、供給先としてのＳＤカードなどの外部メモリ６０に記録される。
【００２７】
なお、以下、２種類のＤＭＡ転送を区別しやすくするため、ＨＤＤ５０、外部メモリ６０、あるいはデコード処理部４９と、入力バッファメモリ３１、あるいは出力バッファメモリ３２との間のＤＭＡ転送を記憶部＿バッファメモリ間のＤＭＡ転送と呼び、また、暗復号処理部１０と、入力バッファメモリ３１、あるいは出力バッファメモリ３２との間のＤＭＡ転送を処理部＿バッファメモリ間のＤＭＡ転送と呼ぶ。
【００２８】
また、ＤＭＡとは、直接、メモリにアクセスしてメモリにデータを書き込んだり、メモリからデータを読み出したりするメモリ利用の一手法であり、上述の場合、例えば、ＨＤＤ５０から入力バッファメモリ３１にデータをＤＭＡ転送する場合、ＤＭＡ期間中、ＨＤＤ５０と入力バッファメモリ３１とが共通バス４１を占有し、ＨＤＤ５０から入力バッファメモリ３１へと、直接、データが転送される。
【００２９】
また、上述したように、ＨＤＤ５０、外部メモリ６０、あるいはデコード処理部４９と、入力バッファメモリ３１、あるいは出力バッファメモリ３２との間のＤＭＡ転送である記憶部＿バッファメモリ間のＤＭＡ転送は、管理ブロックを転送単位としてデータの転送が行なわれる。管理ブロックは、コンテンツデータ自身の論理的な構造とは関係なく、共通バス４１や記録媒体におけるファイルシステムなど、装置の実装に応じて設けた単位である。また、本実施の形態のコンテンツ再生装置では、管理ブロックを転送単位としており、言い換えれば、管理ブロックを転送単位とする一つ以上の管理ブロックで構成されたデータをひとまとめにして、例えば、ＨＤＤ５０から入力バッファメモリ３１への記憶部＿バッファメモリ間のＤＭＡ転送が実行される。
【００３０】
本実施の形態では、５１２バイトを一つの管理ブロックとし、入力バッファメモリ３１、および出力バッファメモリ３２は、四つの管理ブロック分のデータを格納する一例を挙げて説明する。すなわち、図１に例示するように、入力バッファメモリ３１、および出力バッファメモリ３２は、ブロックＢＬ１、ＢＬ２、ＢＬ３、およびＢＬ４で示す記憶領域を有している。このような入力バッファメモリ３１に対して、例えば、ＨＤＤ５０からデータを転送する場合、ＨＤＤ５０から四つの管理ブロック分のデータをひとまとめにした２０４８バイト、すなわち、２キロバイトのデータが記憶部＿バッファメモリ間でＤＭＡ転送され、転送されたデータが入力バッファメモリ３１のブロックＢＬ１、ＢＬ２、ＢＬ３、およびＢＬ４で示す記憶領域に格納される。また、出力バッファメモリ３２のブロックＢＬ１、ＢＬ２、ＢＬ３、およびＢＬ４で示す記憶領域に格納された処理済みのデータは、四つのブロックのデータをひとまとめにした２キロバイトのデータとして、例えば、外部メモリ６０へとＤＭＡ転送される。
【００３１】
また、装置内のデータ転送単位とするための管理ブロックに対して、ブロック暗復号回路では、上述した処理ブロックを単位として、暗復号化処理が実行される。すなわち、ブロック暗復号回路は、暗号化標準方式であるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式などの規格に基づき、暗復号化処理を実行する暗復号処理部１０を有し、暗復号処理部１０は、このような規格に基づき所定のビット数を処理ブロック単位として、この処理ブロック単位毎に暗復号化処理を実行する。このような暗号化標準方式では、６４ビットなど所定のデータ長を１処理ブロックとしたブロック暗号化アルゴリズムが利用されており、暗号化処理方法に応じて、ＥＣＢ（Ｅｌｅｃｔｒｉｃ  Ｃｏｄｅｂｏｏｋ）モード、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モード、ＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄｂａｃｋ）モード、ＣＦＢ（Ｃｉｐｈｅｒ  Ｆｅｅｄｂａｃｋ）モードと呼ばれる四つのモードが知られている。本実施の形態では、暗復号処理部１０が、６４ビット、すなわち、８バイトを処理ブロック単位として、暗復号化処理を行なう一例を挙げて説明する。
【００３２】
また、上述したように、暗復号処理部１０と、入力バッファメモリ３１、あるいは出力バッファメモリ３２との間において、双方間のＤＭＡ転送である処理部＿バッファメモリ間のＤＭＡ転送が行なわれる。このとき、一つの管理ブロック分のデータを一つのＤＭＡ期間として、入力バッファメモリ３１から読み出されたデータは、処理ブロック単位ごとに、暗復号処理部１０にＤＭＡ転送され、さらに、暗復号処理部１０で処理されたデータが、処理ブロック単位ごとに、出力バッファメモリ３２にＤＭＡ転送される。すなわち、本実施の形態での５１２バイトを一つの管理ブロックとする場合、この５１２バイトの管理ブロック分のデータに対する処理が完了するまで、一つのＤＭＡ期間として、暗復号処理部１０、入力バッファメモリ３１、および出力バッファメモリ３２が共通バス４１を占有する。さらに、このＤＭＡ期間において、処理ブロック単位である８バイトのデータが、入力バッファメモリ３１から占有した共通バス４１を介して暗復号処理部１０にＤＭＡ転送される。さらに、暗復号処理部１０で処理された処理済みのデータも、このＤＭＡ期間において、処理ブロック単位である８バイトのデータとして、暗復号処理部１０から占有した共通バス４１を介して出力バッファメモリ３２へとＤＭＡ転送される。暗復号処理部１０と、入力バッファメモリ３１、あるいは出力バッファメモリ３２との間の８バイトデータ転送が、このＤＭＡ期間、すなわち、５１２バイトの管理ブロック分のデータに対する処理が完了するまで、この処理部＿バッファメモリ間のＤＭＡ転送が繰り返される。
【００３３】
次に、暗復号処理部１０は、このような処理ブロック単位ごとのブロック暗号化アルゴリズムに基づいた暗復号化処理を実行するため、図１に示すように、処理ブロック単位ごとにデータを取り込む分離部１１と、暗復号処理部１０に供給される各バイトごとのデータが暗復号化処理の対象となるか否かなどの判定を行ない、判定結果に応じた暗復号化処理の実行を制御する判定部１３と、ブロック暗号化アルゴリズムに基づいた暗復号化処理を実行する暗復号部１２と、本暗復号処理部１０の処理結果であるデータを生成する結合部１４とを備えた構成である。また、分離部１１は、処理ブロック単位のデータを一時記憶する待機バッファ１１０と、待機バッファ１１０へのデータ書き込み、および待機バッファ１１０からのデータ読み出しを制御する待機バッファ制御部１１１と、暗復号化処理において未処理であったデータ量を一時記憶する未処理数レジスタ１１２とを有する。なお、未処理数レジスタ１１２に記憶する未処理のデータ量については、以下で詳細に説明する。暗復号部１２は、ブロック暗号化アルゴリズムに基づいた暗号化演算、および復号化演算を行なう演算部１２０と、暗号化演算、および復号化演算のための鍵データを生成する鍵生成部１２１とを有する。結合部１４は、演算部１２０による演算結果のデータ、および待機バッファ１１０に一時記憶したデータのいずれかを選択するセレクタ１４１と、セレクタ１４１から出力されるデータを一時記憶する出力バッファ１４０とを有する。なお、暗復号処理部１０の詳細な構成については、さらに、以下で説明する。
【００３４】
以上のような構成により、本実施の形態のコンテンツ再生装置において、例えば、ＨＤＤ５０に記憶したコンテンツデータを暗号化して外部メモリ６０に記録する場合、ＨＤＤ５０からは、まず、５１２バイトを所定の管理ブロックとし、四つの管理ブロックで構成された２キロバイトのコンテンツデータが、入力バッファメモリ３１に転送され、記憶部＿バッファメモリ間のＤＭＡ転送が実行される。転送されたコンテンツデータは、入力バッファメモリ３１のブロックＢＬ１からＢＬ４までの領域に、それぞれ管理ブロック単位、すなわち、５１２バイト毎に区分して一時記憶される。この後、例えば、バッファメモリ制御部３０からＣＰＵ４０に対してＤＭＡ割込み信号が通知されると、ＣＰＵ４０は、共通バス４１の利用状況を解析し、ＣＰＵ４０が共通バス４１を解放しても良いと判断すると、ＣＰＵ４０は、ブロック暗復号回路に対して、共通バス４１を解放する。これにより、暗復号化処理のためのＤＭＡ期間として、５１２バイトの管理ブロック分のデータに対する処理が完了するまで、暗復号処理部１０、入力バッファメモリ３１、および出力バッファメモリ３２が共通バス４１を占有する。
【００３５】
このような暗復号化処理のためのＤＭＡ期間が開始されると、５１２バイトのデータ処理が終了するまで、処理部＿バッファメモリ間のＤＭＡ転送が継続される。まず、入力バッファメモリ３１から８バイトの処理ブロック単位でコンテンツデータが暗復号処理部１０にＤＭＡ転送される。
【００３６】
暗復号処理部１０において、判定部１３は、ＤＭＡ転送されたコンテンツデータがそのコンテンツの先頭データであるか否かの判定を行ない、その判定結果を鍵生成部１２１に通知する。また、待機バッファ１１０は、ＤＭＡ転送されるコンテンツデータに対して、処理ブロック、すなわち８バイトごとのデータを取り込む。待機バッファ１１０に、処理ブロック単位のコンテンツデータが格納されると、演算部１２０は、鍵生成部１２１からの鍵データを用いて、このコンテンツデータに対する処理ブロック単位の暗復号化処理を実行する。このとき、判定部１３から鍵生成部１２１に対して、コンテンツの先頭データであることが通知されると、鍵生成部１２１は、初期値鍵データを演算部１２０に供給し、初期暗復号化処理が実行される。また、判定部１３から鍵生成部１２１に対して、コンテンツの先頭データであることが通知されていない場合は、例えば、鍵生成部１２１は、連鎖鍵を演算部１２０に供給し、例えば、暗号化モードの一つであるＣＢＣモードのようなブロック連鎖暗号化処理が実行される。
【００３７】
また、暗復号処理部１０において、判定部１３は、ＤＭＡ転送されたコンテンツデータが、コンテンツ単位で、そのコンテンツの最終処理ブロックのデータであるとともに、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。判定部１３が最終処理ブロックのデータであると判定しない場合、および最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、セレクタ１４１は、演算部１２０からのデータを選択し、演算部１２０からのデータが出力バッファ１４０に一時記憶される。一方、判定部１３により、ＤＭＡ転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであり、かつそのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定された場合は、セレクタ１４１は、待機バッファ１１０からのデータを選択し、待機バッファ１１０からのデータが出力バッファ１４０に一時記憶される。すなわち、最終処理ブロックのコンテンツデータが、例えば、７バイトであり、最終処理ブロックのデータ量である８バイトに満たないような場合、待機バッファ１１０に格納された７バイトのデータは、余剰データとして暗復号化処理されず、この暗復号化処理されなかった余剰データとして出力バッファ１４０に格納される。このようにして、出力バッファ１４０に格納されたデータは、８バイトの処理ブロック単位で出力バッファメモリ３２にＤＭＡ転送される。なお、上記余剰データを転送する場合は、余剰データのデータ量で出力バッファメモリ３２にＤＭＡ転送するような形態であってもよく、また出力バッファ１４０において、余剰データ以外には例えば、空きデータであるＮＵＬＬデータを格納し、処理ブロック単位で出力バッファメモリ３２にＤＭＡ転送するような形態であってもよい。なお、以下、余剰データを転送する場合も、処理ブロック単位で出力バッファメモリ３２にＤＭＡ転送するとして説明する。
【００３８】
暗復号処理部１０からＤＭＡ転送された処理ブロック単位のデータは、出力バッファメモリ３２に書き込まれる。このようにして、８バイトの処理ブロック単位のデータが、出力バッファメモリ３２に対して、５１２バイトである管理ブロック分書き込まれると、処理部＿バッファメモリ間のＤＭＡ転送が終了する。また、共通バス４１は、他の処理のために解放される。
【００３９】
四つの管理ブロック分に対する暗復号化処理が終了すると、出力バッファメモリ３２に一時記憶されたデータは、外部メモリ６０へとＤＭＡ転送される。
【００４０】
以上のような処理を、例えば、画像や音声データなど、番組や楽曲ごとのコンテンツデータに対して行なうことで、不正コピーなどの防止が図られた状態、すなわち、暗号化されたコンテンツデータの状態で、著作権保護の対象となるような画像や音声データがＳＤカードなどの外部メモリ６０に記録される。
【００４１】
特に、本実施の形態におけるブロック暗復号回路は、上述した構成に加えて、分離部１１の待機バッファ制御部１１１が、処理部＿バッファメモリ間のＤＭＡ転送期間内における最終処理ブロックのデータに応じた、未処理データに関する処理を行なうことを特徴とする。
【００４２】
すなわち、まず、バッファメモリ制御部３０から待機バッファ制御部１１１に対して、処理部＿バッファメモリ間のＤＭＡ転送期間内の最終処理ブロックであることを示す終了信号が通知される。待機バッファ制御部１１１は、この終了信号の通知に応答して、処理部＿バッファメモリ間のＤＭＡ転送期間内における最終処理ブロックのコンテンツデータが、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。待機バッファ制御部１１１が、最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、未処理数レジスタ１１２にゼロを設定する。一方、待機バッファ制御部１１１が、そのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定した場合は、未処理数レジスタ１１２に、その処理ブロックのデータ量に満たないデータ量を、未処理数として設定する。このように、待機バッファ制御部１１１は、終了信号を受け取ると、管理ブロック単位内における最終の処理ブロックでの、待機バッファ１１０に格納されたコンテンツデータのデータ量を未処理数データとして検出し、未処理数として未処理数レジスタ１１２に設定する。さらに、未処理数レジスタ１１２に設定された未処理数は、未処理数データとしてバッファメモリ制御部３０に通知される。
【００４３】
バッファメモリ制御部３０は、通知された未処理数データを利用して、入力バッファメモリ３１から次に読み出す５１２バイトのデータの読み出しアドレスを決定し、このようにして読み出したデータを、次に、処理部＿バッファメモリ間でＤＭＡ転送する。
【００４４】
本実施の形態におけるコンテンツ再生装置は、ブロック暗復号回路において、このような未処理データに関する処理を行なうことを特徴とする。すなわち、５１２バイト単位で実行される処理部＿バッファメモリ間のＤＭＡ転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、このデータを未処理で出力するとともに、未処理数データとしてバッファメモリ制御部３０に通知する。バッファメモリ制御部３０は、この未処理数データを利用して、次回の入力バッファメモリ３１から読み出す先頭アドレスを、今回の入力バッファメモリ３１の終了アドレスから未処理のデータ量分戻す。本発明のブロック暗復号回路は、このようにして、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御を容易としている。
【００４５】
図２は、本発明の実施の形態におけるブロック暗復号回路のより詳細な構成を示すブロック図である。以下、図２を参照しながら、本実施の形態におけるブロック暗復号回路の構成について説明する。なお、図２においても、５１２バイトを一つの管理ブロックとし、処理部＿バッファメモリ間のＤＭＡ転送が実行される一例を挙げて説明する。
【００４６】
また、供給される平文データとしてのコンテンツデータは、音声データの可変長圧縮符号化方式として知られるＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）方式により圧縮符号化された音声データの一例を用いる。ＡＡＣ方式とは、一定の演奏時間毎のデジタル音声データを音声情報量の多寡に応じた大きさに圧縮し記録することにより圧縮効率を向上させる技術であり、この方式に基づくコンテンツデータのフレームは可変長に構成される。このためＡＡＣ方式のコンテンツデータでは、フレームの範囲を識別するために各ヘッダ部に、属性情報として、フレームの先頭を示す同期符号とフレーム長を示す数値とが記録される。また、フレームのデータ本体部に、分割されたコンテンツの個々の部分が含まれる。コンテンツデータは、このようなヘッダ部と、データ本体部とから構成されるフレームを一つ以上含む。ＡＡＣ方式に基づく音声データを本ブロック暗復号回路で暗復号化処理する場合、ＡＡＣ方式に基づくコンテンツデータのフレームは可変長であるため、一つのコンテンツに対する音声データのデータ長は、処理ブロック単位である８バイトの整数倍と限定されない。以下、このようなコンテンツデータにも対応可能とした本ブロック暗復号回路の構成について説明する。
【００４７】
本ブロック暗復号回路において、暗復号化処理のためのＤＭＡ期間が開始されると、管理ブロックとする５１２バイトのデータ処理が終了するまで、処理部＿バッファメモリ間のＤＭＡ転送が継続される。まず、図２に示すように、本ブロック暗復号回路において、入力バッファメモリ３１に一時記憶された平文データは、入力バッファメモリ３１から、例えば、処理ブロックの８バイト単位で、占有した共通バス４１を介して、暗復号処理部１０にＤＭＡ転送される。なお、入力バッファメモリ３１から暗復号処理部１０へのＤＭＡ転送は、８バイトの処理ブロック単位以外でもよい。
【００４８】
入力バッファメモリ３１からＤＭＡ転送された平文データは、判定部１３、および分離部１１に供給される。
【００４９】
判定部１３において、同期検出部１３１は、平文データとしてのコンテンツデータにおいて、そのヘッダ部に格納された同期符号を検出する。すなわち、同期検出部１３１は、コンテンツデータにおける先頭のデータ位置を検出する。
【００５０】
フレーム長検出部１３２は、コンテンツデータにおいて、そのヘッダ部に格納されたフレーム長を示す数値を検出し、その数値をフレーム長値として記憶する。
【００５１】
フレーム長カウンタ１３４は、フレーム内のデータ位置をバイト単位で示すために設けたカウンタであり、同期検出部１３１により同期データが検出されると、このカウンタがリセットされる。さらに、フレーム長カウンタ１３４は、リセットされた後、ＤＭＡ転送されるコンテンツデータのフレームの各データをバイトごとにカウントする。このようにして、フレーム長カウンタ１３４は、フレーム中におけるバイト位置を示す値を出力する。
【００５２】
処理要否判定部１３３は、フレーム長検出部１３２が記憶しているフレーム長値ｆに対して、フレーム長カウンタ１３４の示す値ｎが、条件
８  ≦  ｎ  ≦  ｉｎｔ（（ｆ−７）／８）×８＋７
を満たす場合に、暗復号化処理を行なうと判定する。なお、ｉｎｔ（ｘ）はｘを超えない最大の整数を表す。この条件は、コンテンツデータにおけるデータ部に属する平文データであって、データ部を先頭から処理ブロック単位に区切った際に、末尾に生じる余剰データを含む処理ブロックを検出するための条件である。処理要否判定部１３３は、この余剰データを含む処理ブロックを検出すると、待機バッファ制御部１１１に対して、この余剰データの暗復号化処理を実行しないよう通知する。
【００５３】
初期値設定部１３５は、ＤＭＡ転送されたコンテンツデータが、そのフレームの先頭平文データであるか否かの判定を行なう。初期値設定部１３５は、フレーム長検出部１３２に記憶される値が１５以上であって、かつフレーム長カウンタ１３４が８以上１５以下の数値を示す場合に、フレームの最初の処理ブロック単位を構成する平文データであるとして鍵生成部１２１に通知する。
【００５４】
次に、分離部１１において、待機バッファ１１０は、処理ブロック単位、すなわち、８バイトのコンテンツデータを一時記憶する。待機バッファ１１０は、待機バッファ制御部１１１の制御に従って、一時記憶した処理ブロック単位のコンテンツデータを演算部１２０に供給するとともに、一時記憶したコンテンツデータをセレクタ１４１に供給する。
【００５５】
待機バッファ制御部１１１は、処理要否判定部１３３により暗復号化処理を実行するよう通知されると、待機バッファ１１０に記憶されたコンテンツデータを演算部１２０に供給するよう制御する。また、待機バッファ制御部１１１は、バッファメモリ制御部３０から、処理部＿バッファメモリ間のＤＭＡ転送期間内の最終処理ブロックであることを示す終了信号が通知されると、この終了信号の通知に応答して、処理部＿バッファメモリ間のＤＭＡ転送期間内における最終処理ブロックのコンテンツデータが、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。待機バッファ制御部１１１は、最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、未処理数レジスタ１１２にゼロを設定する。一方、待機バッファ制御部１１１は、そのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定した場合は、未処理数レジスタ１１２に、その処理ブロックのデータ量に満たないデータ量を、未処理数として設定する。未処理数レジスタ１１２に設定された未処理数は、未処理数データとしてバッファメモリ制御部３０に通知される。
【００５６】
次に、暗復号部１２において、演算部１２０は、指示された処理内容に応じて、供給された処理ブロック単位のデータに対し、ブロック暗号化アルゴリズムに基づいた暗号化演算、あるいは復号化演算を行なう。
【００５７】
鍵生成部１２１は、演算部１２０で実行される暗復号化処理のための鍵データを生成し、演算部１２０に供給する。なお、初期値設定部１３５から鍵生成部１２１に対して、コンテンツの先頭データであることが通知されると、鍵生成部１２１は、初期値鍵データを演算部１２０に供給し、先頭データでない場合には、連鎖鍵を演算部１２０に供給する。
【００５８】
次に、結合部１４において、セレクタ１４１は、演算部１２０による演算結果のデータ、および待機バッファ１１０に一時記憶したデータのいずれかを、指示に応じて選択する。出力バッファ１４０は、セレクタ１４１から出力されるデータを一時記憶する。すなわち、処理要否判定部１３３により余剰データを含む処理ブロックが検出されない期間では、セレクタ１４１は、演算部１２０からのデータを選択し、演算部１２０からのデータが出力バッファ１４０に一時記憶される。一方、処理要否判定部１３３により余剰データを含む処理ブロックが検出されると、セレクタ１４１は、待機バッファ１１０からのデータを選択し、待機バッファ１１０からのデータが出力バッファ１４０に一時記憶される。
【００５９】
暗復号処理部１０は、以上のような構成であり、出力バッファ１４０に格納されたデータは、８バイトの処理ブロック単位で出力バッファメモリ３２にＤＭＡ転送される。暗復号処理部１０からＤＭＡ転送された処理ブロック単位のデータは、出力バッファメモリ３２に書き込まれる。また、８バイトの処理ブロック単位のデータが、出力バッファメモリ３２に対して、５１２バイトである管理ブロック分書き込まれると、処理部＿バッファメモリ間のＤＭＡ転送が終了する。
【００６０】
次に、図３で示す各データ構成の図を参照しながら、ブロック暗復号回路で実行される暗復号化処理の詳細な動作について説明する。なお、以下、入力バッファメモリ３１に格納されたコンテンツデータにおいて、そのコンテンツデータのフレームに含まれる平文データが、暗復号処理部１０により暗号化処理され、暗号化処理により生成された暗号文データが出力バッファメモリ３２に格納される例を挙げて説明する。
【００６１】
例えば、ＨＤＤ５０に記録された映像データや音声データなどのコンテンツデータは、まず、入力バッファメモリ３１に格納される。図３では、５１２バイトを管理ブロック単位とする入力バッファメモリ３１において、入力バッファメモリ３１のブロックＢＬ１の領域に、平文Ａデータを有したコンテンツデータと、平文Ｂデータを有したコンテンツデータと、平文Ｃデータの一部を有したコンテンツデータとが格納され、入力バッファメモリ３１のブロックＢＬ２の領域には、平文Ｃデータの残りの部分を有したコンテンツデータと、平文Ｄデータの一部を有したコンテンツデータとが格納され、このように、例えば、入力バッファメモリ３１のブロックＢＬ４まで複数のコンテンツデータが格納された一例を示している。
【００６２】
ここで、まず、暗復号化処理を行なう処理ブロック単位を８バイトとすると、処理ブロック単位と、５１２バイトの管理ブロック単位とは、整数倍の関係にある。一方、各コンテンツデータは、その内容に従ってデータ長が異なるため、５１２バイトの管理ブロック単位に整数個のコンテンツデータが含まれることは稀である。このため、図３に示すように、例えば、入力バッファメモリ３１のブロックＢＬ１に格納されたコンテンツデータにおいて、平文Ｃデータを有したコンテンツデータは、平文Ｃデータの一部のみがブロックＢＬ１に格納される。さらに、例えば、上述したような可変長符号化方式であるＡＡＣ方式に基づき圧縮符号化した音声データであるコンテンツデータの場合、可変長符号化方式であるため、８バイトの処理ブロック単位と、コンテンツデータのフレームに格納される平文データのバイト長とも整数倍の関係は保持されない。
【００６３】
以下、このような、管理ブロック単位、および処理ブロック単位とのバイト長関係において、整数倍の関係が保持されていないようなコンテンツデータに対しての、本ブロック暗復号回路の動作について説明する。
【００６４】
図３に示すように、入力バッファメモリ３１にコンテンツデータが格納されると、バッファメモリ制御部３０は、入力バッファメモリ３１に処理するためのデータが準備されたと判定し、次に、ＣＰＵ４０に対してＤＭＡ割込み信号を通知する。ＣＰＵ４０は、共通バス４１の利用状況を解析し、ＣＰＵ４０が共通バス４１を解放しても良いと判断すると、ＣＰＵ４０は、ブロック暗復号回路に対して共通バス４１を解放する。これにより、暗復号処理部１０、入力バッファメモリ３１、および出力バッファメモリ３２は、共通バス４１を占有し、処理部＿バッファメモリ間のＤＭＡ転送が開始される。処理部＿バッファメモリ間のＤＭＡ転送は、５１２バイトの管理ブロック分のデータに対する処理が完了するまで継続され、このＤＭＡ転送期間、入力バッファメモリ３１からコンテンツデータが暗復号処理部１０にＤＭＡ転送され、また、暗復号処理部１０で処理により生成された暗号化データが出力バッファメモリ３２にＤＭＡ転送される。
【００６５】
まず、入力バッファメモリ３１のブロックＢＬ１の領域に格納されたコンテンツデータに対する処理部＿バッファメモリ間のＤＭＡ転送の期間においては、図３に示すように、入力バッファメモリ３１の先頭アドレス、すなわち、ブロックＢＬ１の先頭アドレスから順次コンテンツデータが読み出される。また、読み出されたコンテンツデータのフレームに含まれる平文データに対して、処理ブロックごとに暗号化処理が実行される。このようにして、図３に示すように、まず、平文Ａデータに対する暗号化処理が実行されて暗号文Ａデータが生成され、次に、平文Ｂデータに対する暗号化処理が実行されて暗号文Ｂデータが生成され、次に、平文Ｃデータの一部に対する暗号化処理が実行されて暗号文Ｃデータの一部が生成される。
【００６６】
このとき、コンテンツデータは、管理ブロック単位、および処理ブロック単位とのバイト長関係において、整数倍の関係が保持されていないため、それぞれのコンテンツデータの最後の処理ブロックにおいて余剰データ（以下、コンテンツ余剰データと呼ぶ）が発生することがある。このため、上述したように、判定部１３により、ＤＭＡ転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであるとともに、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行ない、ＤＭＡ転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであり、かつそのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定すると、セレクタ１４１により選択された待機バッファ１１０のデータが出力バッファ１４０に一時記憶され、出力バッファメモリ３２にＤＭＡ転送される。すなわち、このようなコンテンツデータ余剰データに対しては、暗号化処理を実行しない。
【００６７】
さらに、処理部＿バッファメモリ間のＤＭＡ転送期間内における最終処理ブロックの平文データについても、上述したように、余剰データが発生することがある。すなわち、例えば、図３に示すブロックＢＬ１に含まれる平文Ｃデータの場合、平文Ｃデータのバイト長を例えば１０バイトとすると、２バイトの余剰データが発生することとなる。
【００６８】
本発明のブロック暗復号回路では、このような処理部＿バッファメモリ間のＤＭＡ転送期間内での最終処理ブロックにおいて生じた余剰データ（以下、管理ブロック余剰データと呼ぶ）に対して、暗号化処理は実行せず、さらに、このような管理ブロック余剰データに対する処理を行なうことを特徴としている。
【００６９】
このような処理部＿バッファメモリ間のＤＭＡ転送期間内での最終処理ブロックにおいて、管理ブロック余剰データが生じた場合に対応する処理を実行するため、待機バッファ制御部１１１は、バッファメモリ制御部３０から通知された終了信号に応答して、このような管理ブロック余剰データの有無を判定している。さらに、待機バッファ制御部１１１は、管理ブロック余剰データのバイト数が処理ブロック単位のバイト数に満たないバイト数であると判定した場合は、未処理数レジスタ１１２に、その管理ブロック余剰データのバイト数を、未処理数として設定しており、この未処理数が未処理数レジスタ１１２に設定され、さらに、この未処理数は、未処理数データとしてバッファメモリ制御部３０に通知される。
【００７０】
ブロックＢＬ１に格納されたコンテンツデータに対する処理部＿バッファメモリ間のＤＭＡ転送の処理が完了するまで、図３に示すような、コンテンツ余剰データと管理ブロック余剰データとを除く平文データが暗号化処理され、ブロックＢＬ１における処理部＿バッファメモリ間のＤＭＡ転送において、このように処理された５１２バイトのデータが、出力バッファメモリ３２にＤＭＡ転送される。
【００７１】
ブロックＢＬ１に対する処理が終了すると、バッファメモリ制御部３０は、一旦、共通バス４１の占有を終了し、ＣＰＵ４０に占有権を渡す。この後、ＢＬ１の場合と同様に、バッファメモリ制御部３０は、ＣＰＵ４０に対してＤＭＡ割込み信号を通知し、次のブロックＢＬ２に対する処理の準備を行なう。ＣＰＵ４０が共通バス４１を解放すると、バッファメモリ制御部３０は、次のブロックＢＬ２に対する処理を開始する。これにより、次のブロックＢＬ２に対する処理部＿バッファメモリ間のＤＭＡ転送が、管理ブロック分のデータ処理の完了まで継続される。
【００７２】
特に、本ブロック暗復号回路は、このような次のブロックに対する処理部＿バッファメモリ間のＤＭＡ転送を開始するとき、バッファメモリ制御部３０が、前回の処理部＿バッファメモリ間のＤＭＡ転送処理で通知された未処理数データを利用して、入力バッファメモリ３１からコンテンツデータを読み出すことを特徴としている。すなわち、バッファメモリ制御部３０は、この未処理数データを利用して、入力バッファメモリ３１から読み出す先頭アドレスを、前回の入力バッファメモリ３１の終了アドレスから未処理のデータ量分戻している。
【００７３】
このように、本ブロック暗復号回路は、次のブロックに対する処理部＿バッファメモリ間のＤＭＡ転送を開始するとき、バッファメモリ制御部３０が、この未処理数データを利用して、入力バッファメモリ３１から読み出す先頭アドレスを、前回の終了アドレスから未処理のデータ量分戻している。このため、図３に示すように、バッファメモリ制御部３０が、次のブロックＢＬ２に対する処理を開始するとき、バッファメモリ制御部３０は、入力バッファメモリ３１の読み出しアドレスにおいて、前回の最終アドレス、すなわち、ブロックＢＬ２の先頭アドレスから、未処理数データが示すバイト数を差し引いたアドレスを、読み出し先頭アドレスとしている。バッファメモリ制御部３０は、ブロックＢＬ２に対する処理部＿バッファメモリ間のＤＭＡ転送を開始すると、まず、このように補正した入力バッファメモリ３１のアドレスからコンテンツデータを読み出し、８バイトの処理ブロック単位でコンテンツデータを暗復号処理部１０にＤＭＡ転送する。また、バッファメモリ制御部３０は、このように補正した入力バッファメモリ３１のアドレスを、ブロックＢＬ２に対する開始アドレスとして、ブロックＢＬ１の場合と同様に、ブロックＢＬ２に対する処理部＿バッファメモリ間のＤＭＡ転送を、５１２バイトの管理ブロック分のデータに対する処理が完了するまで継続する。また、バッファメモリ制御部３０は、このように補正した入力バッファメモリ３１のアドレスに対応したアドレスを、出力バッファメモリ３２の書き込み開始アドレスとして、８バイトの処理ブロック単位で暗復号処理部１０からＤＭＡ転送される処理済みデータを、５１２バイトの管理ブロック分のデータに対する処理が完了するまで、出力バッファメモリ３２に書き込む。
【００７４】
なお、以上説明したコンテンツ再生装置では、バッファメモリ制御部３０が、入力バッファメモリ３１、および出力バッファメモリ３２に対するデータの読み出しアドレスや、データの書き込みアドレスを管理するとともに、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとするような構成の一例を挙げて説明した。本発明のブロック暗復号回路を用いたコンテンツ再生装置は、このような構成に限定されず、例えば、ＣＰＵ４０が、入力バッファメモリ読み出し先頭アドレスの生成を含めて、入力バッファメモリ３１、および出力バッファメモリ３２に対するデータの読み出しアドレスやデータの書き込みアドレスを管理するような構成であってもよい。
【００７５】
図４は、このように、ＣＰＵ４０が、入力バッファメモリ３１、および出力バッファメモリ３２のアドレスを管理するような構成例を示したブロックである。図４において、ＣＰＵ４０は、入力バッファメモリ３１、および出力バッファメモリ３２のアドレス管理を含め、装置における各処理を制御統括する制御部として機能する。
【００７６】
図４に示すコンテンツ再生装置において、例えば、入力バッファメモリ３１から暗復号処理部１０へとデータをＤＭＡ転送するとき、ＣＰＵ４０が、そのデータを読み出すための読み出しアドレスを生成する。ＣＰＵ４０により生成された読み出しアドレスは、共通バス４１を介してバッファメモリ制御部３０に通知される。バッファメモリ制御部３０は、このＣＰＵ４０から通知されたアドレスに基づき、例えば、入力バッファメモリ３１からデータを読み出し、この読み出したデータを暗復号処理部１０にＤＭＡ転送するよう入力バッファメモリ３１を制御する。
【００７７】
特に、図４に示す本コンテンツ再生装置の構成では、図１で説明した構成と比較して、待機バッファ制御部１１１は、レジスタ１１２に未処理数データの格納が完了すると、ＣＰＵ４０に対して未処理数通知割込み信号を出力し、ＣＰＵ４０が、この未処理数通知割込み信号に応答して、レジスタ１１２に格納された未処理数データを、共通バス４１を介して取り込むような構成であることを特徴としている。すなわち、ＣＰＵ４０を含めた本ブロック暗復号回路では、次の管理ブロックに対する処理部＿バッファメモリ間のＤＭＡ転送を開始するとき、ＣＰＵ４０が、前回の処理部＿バッファメモリ間のＤＭＡ転送処理で取り込んだ未処理数データを利用して、入力バッファメモリ３１からコンテンツデータの読み出しを開始するためのアドレスを、バッファメモリ制御部３０に通知する。このアドレスは、上述したように、入力バッファメモリ３１から読み出す先頭アドレスを、前回の入力バッファメモリ３１の終了アドレスから未処理のデータ量分戻したアドレスである。バッファメモリ制御部３０は、ＣＰＵ４０から通知されたこのようなアドレスにより、入力バッファメモリ３１からコンテンツデータの読み出しを開始するよう制御する。このように、図４に示すブロック暗復号回路の構成は、ＣＰＵ４０を含む構成であり、ＣＰＵ４０は、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、先頭アドレスを前記バッファメモリ制御部３０に通知する。
【００７８】
なお、以上、図４に示す本コンテンツ再生装置の構成では、待機バッファ制御部１１１がＣＰＵ４０に対して未処理数通知割込み信号を出力するような構成で説明したが、例えば、上述した管理ブロックごとのＤＭＡ割込み信号を利用し、ＣＰＵ４０がこのＤＭＡ割込みの信号に応答して、レジスタ１１２に格納された未処理数データを取り込むような構成であってもよい。
【００７９】
以上、本発明の実施の形態におけるブロック暗復号回路は、処理部＿バッファメモリ間のＤＭＡ転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、未処理数データとしてバッファメモリ制御部３０に通知し、バッファメモリ制御部３０が、この未処理数データを利用して、次回の入力バッファメモリ３１から読み出す先頭アドレスを、今回の入力バッファメモリ３１の終了アドレスから未処理のデータ量分戻して読み出す構成である。また、本発明の実施の形態におけるブロック暗復号回路は、処理部＿バッファメモリ間のＤＭＡ転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、未処理数データとしてＣＰＵ４０に通知し、ＣＰＵ４０が、この未処理数データを利用して、次回の入力バッファメモリ３１から読み出す先頭アドレスを、今回の入力バッファメモリ３１の終了アドレスから未処理のデータ量分戻したアドレスを演算し、その演算結果であるアドレスをバッファメモリ制御部３０に通知し、バッファメモリ制御部３０が、ＣＰＵ４０から通知されたアドレスを用いて、入力バッファメモリ３１から読み出す構成である。このため、本発明のブロック暗復号回路によれば、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御が容易となる。また、複数のコンテンツに対応したコンテンツデータを暗復号化処理する場合、それぞれのコンテンツデータに対応するための複数の暗復号処理部を備える必要はないため、ハードウェア量の削減を図った複数のコンテンツに対応するブロック暗復号回路、およびこのブロック暗復号回路を備えたコンテンツ再生装置を提供することができる。
【産業上の利用可能性】
【００８０】
本発明は、例えば、光ディスクの一種であるＤＶＤ、あるいはメモリカードの一種であるＳＤメモリカードなど著作権保護に基づいて、映像や音声などのコンテンツデータを暗号化して記録し、記録した暗号化コンテンツデータを復号化して再生するＤＶＤレコーダなどの録画再生装置や、記録した暗号化コンテンツデータを復号化して再生するＤＶＤデコーダなどの復号装置あるいはコンテンツデータ再生装置などに利用することが可能である。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の一例を示すブロック図
【図２】本発明の実施の形態におけるブロック暗復号回路の詳細な構成を示すブロック図
【図３】各データの構成を示す図
【図４】本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の他の一例を示すブロック図
【図５】従来の暗復号装置のブロック図
【符号の説明】
【００８２】
１０，９１，９２    暗復号処理部
１１，９１１    分離部
１２，９０    暗復号部
１３，９１３    判定部
１４，９１４    結合部
３０    バッファメモリ制御部
３１，９４    入力バッファメモリ
３２    出力バッファメモリ
４０    ＣＰＵ
４１    共通バス
４９    デコード処理部
５０    ＨＤＤ
５１    ＨＤＤＩ／Ｆ部
６０    外部メモリ
６１    外部メモリＩ／Ｆ部
９３，１１１    待機バッファ制御部
１１０，９１０    待機バッファ
１１２    未処理数レジスタ
１２０，９００    演算部
１２１，９０１    鍵生成部
１３１    同期検出部
１３２    フレーム長検出部
１３３    処理要否判定部
１３４    フレーム長カウンタ
１３５    初期値設定部
１４０，９１６    出力バッファ
１４１，９１５    セレクタ
【図１】
2006332941.tif 000003
【図２】
2006332941.tif 000004
【図３】
2006332941.tif 000005
【図４】
2006332941.tif 000006
【図５】
2006332941.tif 000007