JP2006332941A - ブロック暗復号回路 - Google Patents

ブロック暗復号回路 Download PDF

Info

Publication number
JP2006332941A
JP2006332941A JP2005152122A JP2005152122A JP2006332941A JP 2006332941 A JP2006332941 A JP 2006332941A JP 2005152122 A JP2005152122 A JP 2005152122A JP 2005152122 A JP2005152122 A JP 2005152122A JP 2006332941 A JP2006332941 A JP 2006332941A
Authority
JP
Japan
Prior art keywords
data
encryption
block
buffer memory
processing
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.)
Pending
Application number
JP2005152122A
Other languages
English (en)
Inventor
Satoru Kuriki
悟 栗木
Masahiro Sano
正宏 佐野
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005152122A priority Critical patent/JP2006332941A/ja
Publication of JP2006332941A publication Critical patent/JP2006332941A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ハードウェア量の削減を図ったブロック暗復号回路を提供する。
【解決手段】管理ブロック単位でデータを格納する入力バッファメモリ31と、入力バッファメモリ31からのデータを処理ブロック単位で格納する待機バッファ110と、待機バッファ110に格納されるデータ量を監視する待機バッファ制御部111と、待機バッファ110に格納されたデータを処理ブロック単位で暗復号化する暗復号部12と、入力バッファメモリ31の読み出し制御を行なうバッファメモリ制御部30とを備え、バッファメモリ制御部30は、待機バッファ制御部111から通知される管理ブロック単位内における最終の処理ブロックでの、待機バッファ110に格納されたデータのデータ量を利用して、次回の入力バッファメモリ31から読み出す先頭アドレスを決定する。
【選択図】図1

Description

本発明は、平文のコンテンツデータの暗号化処理、および暗号化されたコンテンツデータの復号化処理を行なうブロック暗復号回路に関し、特に、コンテンツデータを一時記憶するバッファを介して、暗復号化処理を行なうブロック暗復号回路に関する。
近年、マルチメディア関連の技術の進展により、画像データ、音声データなどを圧縮符号化し、圧縮符号化により生成されたデジタルデータを処理する装置や方法に関する技術が急速に進展している。とりわけ、情報機器等において利用される記録媒体としてのハードディスク、光ディスク、あるいはメモリカードなど、これら記録媒体の大容量化がめざましく、映像や音声信号をデジタル形式で記録する民生用の映像機器分野においても、ビデオデータのような大容量データを一般家庭で記録して扱うことが可能となっている。一方、これら記録媒体を利用することで、例えば、デジタル動画像を高画質で長時間記録できるため、不正コピーなどの防止を目的とした著作権保護に関する技術が提案されている。また、著作権保護に関する技術の一つとして、記録や通信における情報を秘匿するため、情報を暗号化して記録や通信を行なう暗号化に関する技術がある。このような暗号化技術に関する一例としては、例えば、米国における暗号化標準方式であるDES(Data Encryption Standard)方式などがある。DES方式は、このような暗号化技術として、64ビットなど所定のデータ長を1ブロックとしたブロック暗号化アルゴリズムが利用されており、暗号化処理方法に応じて、ECBモード、CBCモード、OFBモード、CFBモードと呼ばれる四つのモードが知られている。
また、特に記録媒体における暗号化に関しては、光ディスクの一種であるDVD、あるいはメモリカードの一種であるSDメモリカードなどの記録媒体に、デジタル動画像やデジタル楽曲などのコンテンツデータを暗号化したままで記録することで、その秘匿化を図り、これによって著作権の対象となるようなコンテンツの保護が図られている。
ところで、画像データや音声データなどの圧縮符号化方式においても、数々の方式が提案されている。例えば、音声データを圧縮符号化する方式として、データ圧縮効率を向上させるデータ圧縮伸長方式が開発されており、その一つにAAC(Advanced Audio Coding)方式がある。AAC方式とは、一定の演奏時間毎のデジタル音声データを音声情報量に応じた大きさに圧縮し記録することにより圧縮効率を向上させる技術であり、AAC方式に基づくコンテンツデータのデータを格納するフレームは可変長に構成される。一方、AAC方式により圧縮符号化された可変長のデータを暗号化する場合、コンテンツデータのヘッダ部に格納される同期符号と、同期符号以外のデータとが同一の値に暗号化される場合があるため、同期符号を識別してフレームの先頭位置を特定することができなかった。このため、従来、このような課題を解決することを目的とした暗復号装置が提案されている(例えば、特許文献1参照)。
図5は、このような、可変長のデータにも対応した従来の暗復号装置のブロック図である。図5において、暗復号化処理を行なうため、可変長のコンテンツデータは、例えば、512バイトの記憶容量を有した入力バッファメモリ94に格納される。特に、複数種類のコンテンツデータが供給されるような場合、入力バッファメモリ94には、各コンテンツデータが時分割で供給される。入力バッファメモリ94に供給されたコンテンツデータは、例えば、8バイトを一つの処理ブロックとしたブロック暗号化アルゴリズムに基づき暗復号化処理が実行される暗復号部90により、暗号化、あるいは復号化される。暗復号部90は、このような暗号化演算、および復号化演算を行なう演算部900と、暗号化演算、および復号化演算のための鍵データを生成する鍵生成部901とを有する。
また、8バイトとするような処理ブロックを単位として暗復号化処理を実行するため、第1の暗復号処理部91が設けられ、さらに、複数種類のコンテンツデータにも対応するよう第1の暗復号処理部91と同様の構成である第2の暗復号処理部92が設けられている。バッファメモリ制御部93は、入力バッファメモリ94に対して、第1の暗復号処理部91、および第2の暗復号処理部92へ処理ブロックを単位としてコンテンツデータを供給するよう制御する。
第1の暗復号処理部91は、このような処理ブロック単位ごとのブロック暗号化アルゴリズムに基づいた暗復号化処理のため、図5に示すように、処理ブロック単位ごとにデータを取り込む分離部911と、供給される各バイトごとのデータが暗復号化処理の対象となるか否かなどの判定を行ない、判定結果に応じた暗復号化処理の実行を制御する判定部913と、第1の暗復号処理部91の処理結果であるデータを生成する結合部914とを備えた構成である。また、分離部911は、処理ブロック単位のデータを一時記憶する待機バッファ910を有する。結合部914は、演算部900による演算結果のデータ、および入力バッファメモリ94のデータのいずれかを選択するセレクタ915と、セレクタ915から出力されるデータを一時記憶する出力バッファ916とを有する。
従来の暗復号装置は、このような構成により、入力バッファメモリ94から供給される可変長のコンテンツデータに対して次のような処理を行なう。すなわち、従来の暗復号装置は、コンテンツデータのフレームに含まれるデータに対して、順次、8バイトとするような処理ブロック単位で待機バッファ910に格納する。これとともに、判定部913は、入力バッファメモリ94から、8バイトとするような処理ブロック単位分のデータが供給可能かどうか判定する。供給可能であった場合、セレクタ915は、演算部900からのデータを選択して出力バッファ916に格納する。一方、判定部913が、8バイトとするような処理ブロック単位分のデータが供給可能ではないと判定すると、セレクタ915は、入力バッファメモリ94から供給されるデータを選択し、出力バッファ916に格納する。すなわち、例えば、フレームのデータバイト長が82バイトの場合、先頭から10個の処理ブロックとなる80バイト分のデータに対して暗復号化処理を行ない、残り2バイトについては暗復号化処理を行なわず、このようにして、暗復号化処理の結果である80バイトのデータに、暗復号化処理を行なわなかった2バイトの余剰データを付加して出力する。
従来の暗復号装置は、このような動作を実行することで、可変長のコンテンツデータにも対応することを可能としている。さらに、このような処理が可能な暗復号処理部を複数備えた構成であるため、複数種類のコンテンツデータが供給されるような場合でも、それぞれのコンテンツデータに対する暗復号化処理を可能としている。
特開2001−358708号公報
しかしながら、従来の暗復号装置では、複数種類のコンテンツデータが供給されるような場合、それぞれのコンテンツデータに対して、入力バッファメモリ94や暗復号部90などの共用化を図ることができるものの、暗復号処理部についてはそれぞれのコンテンツデータに対応させるため、対応させるコンテンツデータの数に応じて、複数の暗復号処理部を備える必要があった。また、従来の暗復号装置では、データ管理ブロックの余剰データを、それぞれのコンテンツデータに対応させるためには、それぞれ待機バッファ内に留める必要もあるため、暗復号処理部を複数備えた構成となる。このため、複数種類のコンテンツデータにも対応させようとすると、ハードウェア量が増加するという課題があった。
本発明は、上記課題を解決するためになされたもので、従来、並行する複数のハードウェアを持つことで実現していた処理を、一つの処理で可能とすることにより、ハードウェア量が増加を抑制したブロック暗復号回路を提供することを目的とする。
上述したような課題を解決するために、本発明のブロック暗復号回路は、供給元から供給されたコンテンツデータに対し、所定のデータ量を一つの処理ブロックとして処理ブロック単位で暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして供給先に供給するブロック暗復号回路であって、供給元からコンテンツデータが供給され、処理ブロックのデータ量よりも大きなデータ量である所定のデータ量を一つの管理ブロックとして、一つ以上の管理ブロック分のコンテンツデータを、管理ブロックで区分して格納する入力バッファメモリと、入力バッファメモリから、管理ブロックを管理ブロック処理単位とし、さらに、処理ブロックを処理ブロック単位として、コンテンツデータが供給され、処理ブロック単位でコンテンツデータを格納する待機バッファと、待機バッファに格納されるコンテンツデータのデータ量を判定する判定部と、待機バッファを制御するとともに、待機バッファに格納されるデータ量を監視する待機バッファ制御部と、待機バッファに格納されたコンテンツデータに対して、暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして出力する暗復号部と、暗復号部から暗復号化データが供給され、待機バッファから待機バッファに格納したコンテンツデータが供給され、判定部の判定結果に応じて、供給された暗復号化データ、およびコンテンツデータからいずれかを選択するセレクタと、セレクタが選択したデータを出力データとして格納する出力バッファと、出力バッファから出力データが供給され、一つ以上の管理ブロック分の出力データを、管理ブロックで区分して格納する出力バッファメモリと、入力バッファメモリに対する読み出し処理を含めた制御、および出力バッファメモリに対する書き込み処理を含めた制御を行なうとともに、入力バッファメモリに対する読み出し処理において、管理ブロック単位での最終読み出し処理であることを示す終了信号を生成し、生成した終了信号を待機バッファ制御部へ通知するバッファメモリ制御部とを備える。さらに、待機バッファ制御部が、バッファメモリ制御部から、管理ブロック単位での最終読み出し処理であることを示す終了信号を受け取ると、管理ブロック単位内における最終の処理ブロックでの、待機バッファに格納されたコンテンツデータのデータ量を未処理数データとして検出する構成である。
さらに、本発明のブロック暗復号回路は、待機バッファ制御部が、検出した未処理数データをバッファメモリ制御部に通知し、バッファメモリ制御部が、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとする構成である。
また、本発明のブロック暗復号回路は、さらに、入力バッファメモリに対する読み出し処理のためのアドレスを少なくとも管理するCPU(Central Processing Unit)を備え、待機バッファ制御部が、検出した未処理数データをCPUに通知し、CPUは、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、先頭アドレスをバッファメモリ制御部に通知する構成である。
本発明のブロック暗復号回路は、管理ブロック単位内における最終の処理ブロック単位での、待機バッファに格納されたコンテンツデータのデータ量が、処理ブロックの所定のデータ量に満たないデータ量であった場合、未処理数データとしてバッファメモリ制御部に通知し、バッファメモリ制御部が、この未処理数データを利用して、次回の入力バッファメモリから読み出す先頭アドレスを、今回の入力バッファメモリの終了アドレスから未処理のデータ量分戻して読み出す構成である。また、本発明の実施の形態におけるブロック暗復号回路は、管理ブロック単位内における最終の処理ブロック単位での、待機バッファに格納されたコンテンツデータのデータ量が、処理ブロックの所定のデータ量に満たないデータ量であった場合、未処理数データとしてCPUに通知し、CPUが、この未処理数データを利用して、次回の入力バッファメモリから読み出す先頭アドレスを、今回の入力バッファメモリの終了アドレスから未処理のデータ量分戻したアドレスを演算し、その演算結果であるアドレスをバッファメモリ制御部に通知し、バッファメモリ制御部が、CPUから通知されたアドレスを用いて、入力バッファメモリから読み出す構成である。
このため、本発明のブロック暗復号回路によれば、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御が容易となる。また、複数のコンテンツに対応したコンテンツデータを暗復号化処理する場合、それぞれのコンテンツデータに対応するための複数の暗復号処理部を備える必要はないため、ハードウェア量の削減を図った複数のコンテンツに対応するブロック暗復号回路を提供することができる。
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
(実施の形態)
図1は、本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の一例を示すブロック図である。
図1において、ハードディスクドライブ(以下、適宜、HDDと呼ぶ)50は、磁気ディスクなどの記録媒体を有し、その記録媒体に対してコンテンツデータなどを記録再生できる記録再生手段である。また、外部メモリ60は、DVDやSDカードのような可搬型の記録媒体であり、本コンテンツ再生装置に装着することで、この外部メモリ60に対してコンテンツデータなどの記録再生ができる。
デコード処理部49は、例えば、MPEG−2規格などに基づき圧縮符号化された映像データや、MP3規格などに基づき圧縮符号化された音声データを復号することで、映像データや音声データを復元する。復元された映像データは外部に出力され、この映像データにより、例えば、外部のディスプレイ等を駆動することで、外部のディスプレイ等には、この映像データに応じた画像が表示される。また、復元された音声データは外部に出力され、この音声データにより、例えば、外部のスピーカ等を駆動することで、外部のスピーカ等には、この音声データに応じた音声が出力される。なお、本実施の形態では、ディスプレイやスピーカは外部接続されるようなデジタル放送受信装置を例に挙げて説明するが、例えば、ディスプレイやスピーカを内蔵したような装置形態であってもよい。
CPU(Central Processing Unit)40は、後述するブロック暗復号回路の制御を含め、装置における各処理を制御統括する制御部として機能し、例えばマイクロプロセッサである。CPU40は、図示しないプログラムメモリなどに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行する。
共通バス41は、CPU40、HDD50、外部メモリ60、およびブロック暗復号回路など各構成要素間のデータ転送やデータ通信を行なうための共通のバスである。HDD50は、データ等の受け渡しを行なうためのインタフェースであるHDDI/F部51を介して共通バス41に接続され、また、外部メモリ60も同様に、データ等の受け渡しを行なうためのインタフェースである外部メモリI/F部61を介して共通バス41に接続されている。
また、図1に示すコンテンツ再生装置は、共通バス41に接続される本発明のブロック暗復号回路を含む構成である。さらに、本発明のブロック暗復号回路は、暗号化されていないデータである平文データに対して暗号化処理を行なうことで暗号文データを生成するとともに、暗号化されたデータである暗号文データに対して復号化処理を行なうことで平文データを生成する暗復号処理部10と、暗復号処理部10により処理するためのデータを一時的に記憶する入力バッファメモリ31と、暗復号処理部10の処理により生成されたデータを一時的に記憶する出力バッファメモリ32と、入力バッファメモリ31、および出力バッファメモリ32に対するデータの読み出しや、データの書き込み制御を行なうバッファメモリ制御部30と、を含む構成である。
本コンテンツ再生装置は、以上のような基本構成であり、例えば、HDD50に記録された映像データや音声データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータがSDカードなどの外部メモリ60に記録されたり、HDD50に記録された暗号化されたコンテンツデータが、ブロック暗復号回路で復号化処理され、復号化処理されたデータが外部メモリ60に記録されたり、あるいは、逆に、外部メモリ60に記録されたデジタル動画像データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータがHDD50に記録されたり、外部メモリ60に記録された暗号化されたコンテンツデータが、ブロック暗復号回路で復号化処理され、復号化処理されたデータがHDD50に記録されたりし、このようにして、一方の記録媒体に記憶された平文データが暗号化処理されて他方の記録媒体に暗号文データとして記録されたり、一方の記録媒体に記憶された暗号文データが復号化処理されて他方の記録媒体に平文データとして記録される。さらに、HDD50、あるいは外部メモリ60に記録された暗号文データは、ブロック暗復号回路で復号化処理され、復号化処理により生成された平文データである映像データや音声データをデコード処理部49に供給することにより、元の映像や音声の再生ができる。
また、本ブロック暗復号回路において、暗号化処理あるいは復号化処理を行ない、その処理により生成したデータを記録する場合など、HDD50あるいは外部メモリ60から、データ管理ブロック(以下。適宜、管理ブロックと呼ぶ)を転送単位とするデータが、入力バッファメモリ31にDMA(Direct Memory Access)転送される。入力バッファメモリ31に転送されたデータは、バッファメモリ制御部30の制御により入力バッファメモリ31に書き込まれる。次に、バッファメモリ制御部30の制御により、入力バッファメモリ31から、暗復号化処理を行なうためのブロック単位である暗復号化処理ブロック(以下、処理ブロックと呼ぶ)単位で、順次、データが読み出される。読み出されたデータは、一つの管理ブロック分のデータを一つのDMA期間として、暗復号処理部10にDMA転送され、暗復号処理部10により処理ブロック単位ごとの暗復号化処理が実行される。
暗復号処理部10による処理ブロック単位の暗復号化処理で生成されたデータは、一つの管理ブロック分のデータを一つのDMA期間として、処理ブロック単位ごとに、出力バッファメモリ32にDMA転送される。暗復号処理部10からDMA転送された処理済みのデータは、バッファメモリ制御部30の制御により、出力バッファメモリ32に書き込まれる。出力バッファメモリ32に所定の管理ブロック数のデータが書き込まれると、出力バッファメモリ32からは、バッファメモリ制御部30の制御により、所定の管理ブロック数のデータが読み出される。読み出されたデータは、転送先であるHDD50、外部メモリ60、あるいはデコード処理部49へとDMA転送される。このようにして、例えば、供給元としてのHDD50に記録された画像データなどのコンテンツデータが、ブロック暗復号回路で暗号化処理され、暗号化処理されたデータが、供給先としてのSDカードなどの外部メモリ60に記録される。
なお、以下、2種類のDMA転送を区別しやすくするため、HDD50、外部メモリ60、あるいはデコード処理部49と、入力バッファメモリ31、あるいは出力バッファメモリ32との間のDMA転送を記憶部_バッファメモリ間のDMA転送と呼び、また、暗復号処理部10と、入力バッファメモリ31、あるいは出力バッファメモリ32との間のDMA転送を処理部_バッファメモリ間のDMA転送と呼ぶ。
また、DMAとは、直接、メモリにアクセスしてメモリにデータを書き込んだり、メモリからデータを読み出したりするメモリ利用の一手法であり、上述の場合、例えば、HDD50から入力バッファメモリ31にデータをDMA転送する場合、DMA期間中、HDD50と入力バッファメモリ31とが共通バス41を占有し、HDD50から入力バッファメモリ31へと、直接、データが転送される。
また、上述したように、HDD50、外部メモリ60、あるいはデコード処理部49と、入力バッファメモリ31、あるいは出力バッファメモリ32との間のDMA転送である記憶部_バッファメモリ間のDMA転送は、管理ブロックを転送単位としてデータの転送が行なわれる。管理ブロックは、コンテンツデータ自身の論理的な構造とは関係なく、共通バス41や記録媒体におけるファイルシステムなど、装置の実装に応じて設けた単位である。また、本実施の形態のコンテンツ再生装置では、管理ブロックを転送単位としており、言い換えれば、管理ブロックを転送単位とする一つ以上の管理ブロックで構成されたデータをひとまとめにして、例えば、HDD50から入力バッファメモリ31への記憶部_バッファメモリ間のDMA転送が実行される。
本実施の形態では、512バイトを一つの管理ブロックとし、入力バッファメモリ31、および出力バッファメモリ32は、四つの管理ブロック分のデータを格納する一例を挙げて説明する。すなわち、図1に例示するように、入力バッファメモリ31、および出力バッファメモリ32は、ブロックBL1、BL2、BL3、およびBL4で示す記憶領域を有している。このような入力バッファメモリ31に対して、例えば、HDD50からデータを転送する場合、HDD50から四つの管理ブロック分のデータをひとまとめにした2048バイト、すなわち、2キロバイトのデータが記憶部_バッファメモリ間でDMA転送され、転送されたデータが入力バッファメモリ31のブロックBL1、BL2、BL3、およびBL4で示す記憶領域に格納される。また、出力バッファメモリ32のブロックBL1、BL2、BL3、およびBL4で示す記憶領域に格納された処理済みのデータは、四つのブロックのデータをひとまとめにした2キロバイトのデータとして、例えば、外部メモリ60へとDMA転送される。
また、装置内のデータ転送単位とするための管理ブロックに対して、ブロック暗復号回路では、上述した処理ブロックを単位として、暗復号化処理が実行される。すなわち、ブロック暗復号回路は、暗号化標準方式であるDES(Data Encryption Standard)方式などの規格に基づき、暗復号化処理を実行する暗復号処理部10を有し、暗復号処理部10は、このような規格に基づき所定のビット数を処理ブロック単位として、この処理ブロック単位毎に暗復号化処理を実行する。このような暗号化標準方式では、64ビットなど所定のデータ長を1処理ブロックとしたブロック暗号化アルゴリズムが利用されており、暗号化処理方法に応じて、ECB(Electric Codebook)モード、CBC(Cipher Block Chaining)モード、OFB(Output Feedback)モード、CFB(Cipher Feedback)モードと呼ばれる四つのモードが知られている。本実施の形態では、暗復号処理部10が、64ビット、すなわち、8バイトを処理ブロック単位として、暗復号化処理を行なう一例を挙げて説明する。
また、上述したように、暗復号処理部10と、入力バッファメモリ31、あるいは出力バッファメモリ32との間において、双方間のDMA転送である処理部_バッファメモリ間のDMA転送が行なわれる。このとき、一つの管理ブロック分のデータを一つのDMA期間として、入力バッファメモリ31から読み出されたデータは、処理ブロック単位ごとに、暗復号処理部10にDMA転送され、さらに、暗復号処理部10で処理されたデータが、処理ブロック単位ごとに、出力バッファメモリ32にDMA転送される。すなわち、本実施の形態での512バイトを一つの管理ブロックとする場合、この512バイトの管理ブロック分のデータに対する処理が完了するまで、一つのDMA期間として、暗復号処理部10、入力バッファメモリ31、および出力バッファメモリ32が共通バス41を占有する。さらに、このDMA期間において、処理ブロック単位である8バイトのデータが、入力バッファメモリ31から占有した共通バス41を介して暗復号処理部10にDMA転送される。さらに、暗復号処理部10で処理された処理済みのデータも、このDMA期間において、処理ブロック単位である8バイトのデータとして、暗復号処理部10から占有した共通バス41を介して出力バッファメモリ32へとDMA転送される。暗復号処理部10と、入力バッファメモリ31、あるいは出力バッファメモリ32との間の8バイトデータ転送が、このDMA期間、すなわち、512バイトの管理ブロック分のデータに対する処理が完了するまで、この処理部_バッファメモリ間のDMA転送が繰り返される。
次に、暗復号処理部10は、このような処理ブロック単位ごとのブロック暗号化アルゴリズムに基づいた暗復号化処理を実行するため、図1に示すように、処理ブロック単位ごとにデータを取り込む分離部11と、暗復号処理部10に供給される各バイトごとのデータが暗復号化処理の対象となるか否かなどの判定を行ない、判定結果に応じた暗復号化処理の実行を制御する判定部13と、ブロック暗号化アルゴリズムに基づいた暗復号化処理を実行する暗復号部12と、本暗復号処理部10の処理結果であるデータを生成する結合部14とを備えた構成である。また、分離部11は、処理ブロック単位のデータを一時記憶する待機バッファ110と、待機バッファ110へのデータ書き込み、および待機バッファ110からのデータ読み出しを制御する待機バッファ制御部111と、暗復号化処理において未処理であったデータ量を一時記憶する未処理数レジスタ112とを有する。なお、未処理数レジスタ112に記憶する未処理のデータ量については、以下で詳細に説明する。暗復号部12は、ブロック暗号化アルゴリズムに基づいた暗号化演算、および復号化演算を行なう演算部120と、暗号化演算、および復号化演算のための鍵データを生成する鍵生成部121とを有する。結合部14は、演算部120による演算結果のデータ、および待機バッファ110に一時記憶したデータのいずれかを選択するセレクタ141と、セレクタ141から出力されるデータを一時記憶する出力バッファ140とを有する。なお、暗復号処理部10の詳細な構成については、さらに、以下で説明する。
以上のような構成により、本実施の形態のコンテンツ再生装置において、例えば、HDD50に記憶したコンテンツデータを暗号化して外部メモリ60に記録する場合、HDD50からは、まず、512バイトを所定の管理ブロックとし、四つの管理ブロックで構成された2キロバイトのコンテンツデータが、入力バッファメモリ31に転送され、記憶部_バッファメモリ間のDMA転送が実行される。転送されたコンテンツデータは、入力バッファメモリ31のブロックBL1からBL4までの領域に、それぞれ管理ブロック単位、すなわち、512バイト毎に区分して一時記憶される。この後、例えば、バッファメモリ制御部30からCPU40に対してDMA割込み信号が通知されると、CPU40は、共通バス41の利用状況を解析し、CPU40が共通バス41を解放しても良いと判断すると、CPU40は、ブロック暗復号回路に対して、共通バス41を解放する。これにより、暗復号化処理のためのDMA期間として、512バイトの管理ブロック分のデータに対する処理が完了するまで、暗復号処理部10、入力バッファメモリ31、および出力バッファメモリ32が共通バス41を占有する。
このような暗復号化処理のためのDMA期間が開始されると、512バイトのデータ処理が終了するまで、処理部_バッファメモリ間のDMA転送が継続される。まず、入力バッファメモリ31から8バイトの処理ブロック単位でコンテンツデータが暗復号処理部10にDMA転送される。
暗復号処理部10において、判定部13は、DMA転送されたコンテンツデータがそのコンテンツの先頭データであるか否かの判定を行ない、その判定結果を鍵生成部121に通知する。また、待機バッファ110は、DMA転送されるコンテンツデータに対して、処理ブロック、すなわち8バイトごとのデータを取り込む。待機バッファ110に、処理ブロック単位のコンテンツデータが格納されると、演算部120は、鍵生成部121からの鍵データを用いて、このコンテンツデータに対する処理ブロック単位の暗復号化処理を実行する。このとき、判定部13から鍵生成部121に対して、コンテンツの先頭データであることが通知されると、鍵生成部121は、初期値鍵データを演算部120に供給し、初期暗復号化処理が実行される。また、判定部13から鍵生成部121に対して、コンテンツの先頭データであることが通知されていない場合は、例えば、鍵生成部121は、連鎖鍵を演算部120に供給し、例えば、暗号化モードの一つであるCBCモードのようなブロック連鎖暗号化処理が実行される。
また、暗復号処理部10において、判定部13は、DMA転送されたコンテンツデータが、コンテンツ単位で、そのコンテンツの最終処理ブロックのデータであるとともに、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。判定部13が最終処理ブロックのデータであると判定しない場合、および最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、セレクタ141は、演算部120からのデータを選択し、演算部120からのデータが出力バッファ140に一時記憶される。一方、判定部13により、DMA転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであり、かつそのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定された場合は、セレクタ141は、待機バッファ110からのデータを選択し、待機バッファ110からのデータが出力バッファ140に一時記憶される。すなわち、最終処理ブロックのコンテンツデータが、例えば、7バイトであり、最終処理ブロックのデータ量である8バイトに満たないような場合、待機バッファ110に格納された7バイトのデータは、余剰データとして暗復号化処理されず、この暗復号化処理されなかった余剰データとして出力バッファ140に格納される。このようにして、出力バッファ140に格納されたデータは、8バイトの処理ブロック単位で出力バッファメモリ32にDMA転送される。なお、上記余剰データを転送する場合は、余剰データのデータ量で出力バッファメモリ32にDMA転送するような形態であってもよく、また出力バッファ140において、余剰データ以外には例えば、空きデータであるNULLデータを格納し、処理ブロック単位で出力バッファメモリ32にDMA転送するような形態であってもよい。なお、以下、余剰データを転送する場合も、処理ブロック単位で出力バッファメモリ32にDMA転送するとして説明する。
暗復号処理部10からDMA転送された処理ブロック単位のデータは、出力バッファメモリ32に書き込まれる。このようにして、8バイトの処理ブロック単位のデータが、出力バッファメモリ32に対して、512バイトである管理ブロック分書き込まれると、処理部_バッファメモリ間のDMA転送が終了する。また、共通バス41は、他の処理のために解放される。
四つの管理ブロック分に対する暗復号化処理が終了すると、出力バッファメモリ32に一時記憶されたデータは、外部メモリ60へとDMA転送される。
以上のような処理を、例えば、画像や音声データなど、番組や楽曲ごとのコンテンツデータに対して行なうことで、不正コピーなどの防止が図られた状態、すなわち、暗号化されたコンテンツデータの状態で、著作権保護の対象となるような画像や音声データがSDカードなどの外部メモリ60に記録される。
特に、本実施の形態におけるブロック暗復号回路は、上述した構成に加えて、分離部11の待機バッファ制御部111が、処理部_バッファメモリ間のDMA転送期間内における最終処理ブロックのデータに応じた、未処理データに関する処理を行なうことを特徴とする。
すなわち、まず、バッファメモリ制御部30から待機バッファ制御部111に対して、処理部_バッファメモリ間のDMA転送期間内の最終処理ブロックであることを示す終了信号が通知される。待機バッファ制御部111は、この終了信号の通知に応答して、処理部_バッファメモリ間のDMA転送期間内における最終処理ブロックのコンテンツデータが、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。待機バッファ制御部111が、最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、未処理数レジスタ112にゼロを設定する。一方、待機バッファ制御部111が、そのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定した場合は、未処理数レジスタ112に、その処理ブロックのデータ量に満たないデータ量を、未処理数として設定する。このように、待機バッファ制御部111は、終了信号を受け取ると、管理ブロック単位内における最終の処理ブロックでの、待機バッファ110に格納されたコンテンツデータのデータ量を未処理数データとして検出し、未処理数として未処理数レジスタ112に設定する。さらに、未処理数レジスタ112に設定された未処理数は、未処理数データとしてバッファメモリ制御部30に通知される。
バッファメモリ制御部30は、通知された未処理数データを利用して、入力バッファメモリ31から次に読み出す512バイトのデータの読み出しアドレスを決定し、このようにして読み出したデータを、次に、処理部_バッファメモリ間でDMA転送する。
本実施の形態におけるコンテンツ再生装置は、ブロック暗復号回路において、このような未処理データに関する処理を行なうことを特徴とする。すなわち、512バイト単位で実行される処理部_バッファメモリ間のDMA転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、このデータを未処理で出力するとともに、未処理数データとしてバッファメモリ制御部30に通知する。バッファメモリ制御部30は、この未処理数データを利用して、次回の入力バッファメモリ31から読み出す先頭アドレスを、今回の入力バッファメモリ31の終了アドレスから未処理のデータ量分戻す。本発明のブロック暗復号回路は、このようにして、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御を容易としている。
図2は、本発明の実施の形態におけるブロック暗復号回路のより詳細な構成を示すブロック図である。以下、図2を参照しながら、本実施の形態におけるブロック暗復号回路の構成について説明する。なお、図2においても、512バイトを一つの管理ブロックとし、処理部_バッファメモリ間のDMA転送が実行される一例を挙げて説明する。
また、供給される平文データとしてのコンテンツデータは、音声データの可変長圧縮符号化方式として知られるAAC(Advanced Audio Coding)方式により圧縮符号化された音声データの一例を用いる。AAC方式とは、一定の演奏時間毎のデジタル音声データを音声情報量の多寡に応じた大きさに圧縮し記録することにより圧縮効率を向上させる技術であり、この方式に基づくコンテンツデータのフレームは可変長に構成される。このためAAC方式のコンテンツデータでは、フレームの範囲を識別するために各ヘッダ部に、属性情報として、フレームの先頭を示す同期符号とフレーム長を示す数値とが記録される。また、フレームのデータ本体部に、分割されたコンテンツの個々の部分が含まれる。コンテンツデータは、このようなヘッダ部と、データ本体部とから構成されるフレームを一つ以上含む。AAC方式に基づく音声データを本ブロック暗復号回路で暗復号化処理する場合、AAC方式に基づくコンテンツデータのフレームは可変長であるため、一つのコンテンツに対する音声データのデータ長は、処理ブロック単位である8バイトの整数倍と限定されない。以下、このようなコンテンツデータにも対応可能とした本ブロック暗復号回路の構成について説明する。
本ブロック暗復号回路において、暗復号化処理のためのDMA期間が開始されると、管理ブロックとする512バイトのデータ処理が終了するまで、処理部_バッファメモリ間のDMA転送が継続される。まず、図2に示すように、本ブロック暗復号回路において、入力バッファメモリ31に一時記憶された平文データは、入力バッファメモリ31から、例えば、処理ブロックの8バイト単位で、占有した共通バス41を介して、暗復号処理部10にDMA転送される。なお、入力バッファメモリ31から暗復号処理部10へのDMA転送は、8バイトの処理ブロック単位以外でもよい。
入力バッファメモリ31からDMA転送された平文データは、判定部13、および分離部11に供給される。
判定部13において、同期検出部131は、平文データとしてのコンテンツデータにおいて、そのヘッダ部に格納された同期符号を検出する。すなわち、同期検出部131は、コンテンツデータにおける先頭のデータ位置を検出する。
フレーム長検出部132は、コンテンツデータにおいて、そのヘッダ部に格納されたフレーム長を示す数値を検出し、その数値をフレーム長値として記憶する。
フレーム長カウンタ134は、フレーム内のデータ位置をバイト単位で示すために設けたカウンタであり、同期検出部131により同期データが検出されると、このカウンタがリセットされる。さらに、フレーム長カウンタ134は、リセットされた後、DMA転送されるコンテンツデータのフレームの各データをバイトごとにカウントする。このようにして、フレーム長カウンタ134は、フレーム中におけるバイト位置を示す値を出力する。
処理要否判定部133は、フレーム長検出部132が記憶しているフレーム長値fに対して、フレーム長カウンタ134の示す値nが、条件
8 ≦ n ≦ int((f−7)/8)×8+7
を満たす場合に、暗復号化処理を行なうと判定する。なお、int(x)はxを超えない最大の整数を表す。この条件は、コンテンツデータにおけるデータ部に属する平文データであって、データ部を先頭から処理ブロック単位に区切った際に、末尾に生じる余剰データを含む処理ブロックを検出するための条件である。処理要否判定部133は、この余剰データを含む処理ブロックを検出すると、待機バッファ制御部111に対して、この余剰データの暗復号化処理を実行しないよう通知する。
初期値設定部135は、DMA転送されたコンテンツデータが、そのフレームの先頭平文データであるか否かの判定を行なう。初期値設定部135は、フレーム長検出部132に記憶される値が15以上であって、かつフレーム長カウンタ134が8以上15以下の数値を示す場合に、フレームの最初の処理ブロック単位を構成する平文データであるとして鍵生成部121に通知する。
次に、分離部11において、待機バッファ110は、処理ブロック単位、すなわち、8バイトのコンテンツデータを一時記憶する。待機バッファ110は、待機バッファ制御部111の制御に従って、一時記憶した処理ブロック単位のコンテンツデータを演算部120に供給するとともに、一時記憶したコンテンツデータをセレクタ141に供給する。
待機バッファ制御部111は、処理要否判定部133により暗復号化処理を実行するよう通知されると、待機バッファ110に記憶されたコンテンツデータを演算部120に供給するよう制御する。また、待機バッファ制御部111は、バッファメモリ制御部30から、処理部_バッファメモリ間のDMA転送期間内の最終処理ブロックであることを示す終了信号が通知されると、この終了信号の通知に応答して、処理部_バッファメモリ間のDMA転送期間内における最終処理ブロックのコンテンツデータが、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行なう。待機バッファ制御部111は、最終処理ブロックのデータであるが処理ブロックのデータ量であると判定した場合は、未処理数レジスタ112にゼロを設定する。一方、待機バッファ制御部111は、そのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定した場合は、未処理数レジスタ112に、その処理ブロックのデータ量に満たないデータ量を、未処理数として設定する。未処理数レジスタ112に設定された未処理数は、未処理数データとしてバッファメモリ制御部30に通知される。
次に、暗復号部12において、演算部120は、指示された処理内容に応じて、供給された処理ブロック単位のデータに対し、ブロック暗号化アルゴリズムに基づいた暗号化演算、あるいは復号化演算を行なう。
鍵生成部121は、演算部120で実行される暗復号化処理のための鍵データを生成し、演算部120に供給する。なお、初期値設定部135から鍵生成部121に対して、コンテンツの先頭データであることが通知されると、鍵生成部121は、初期値鍵データを演算部120に供給し、先頭データでない場合には、連鎖鍵を演算部120に供給する。
次に、結合部14において、セレクタ141は、演算部120による演算結果のデータ、および待機バッファ110に一時記憶したデータのいずれかを、指示に応じて選択する。出力バッファ140は、セレクタ141から出力されるデータを一時記憶する。すなわち、処理要否判定部133により余剰データを含む処理ブロックが検出されない期間では、セレクタ141は、演算部120からのデータを選択し、演算部120からのデータが出力バッファ140に一時記憶される。一方、処理要否判定部133により余剰データを含む処理ブロックが検出されると、セレクタ141は、待機バッファ110からのデータを選択し、待機バッファ110からのデータが出力バッファ140に一時記憶される。
暗復号処理部10は、以上のような構成であり、出力バッファ140に格納されたデータは、8バイトの処理ブロック単位で出力バッファメモリ32にDMA転送される。暗復号処理部10からDMA転送された処理ブロック単位のデータは、出力バッファメモリ32に書き込まれる。また、8バイトの処理ブロック単位のデータが、出力バッファメモリ32に対して、512バイトである管理ブロック分書き込まれると、処理部_バッファメモリ間のDMA転送が終了する。
次に、図3で示す各データ構成の図を参照しながら、ブロック暗復号回路で実行される暗復号化処理の詳細な動作について説明する。なお、以下、入力バッファメモリ31に格納されたコンテンツデータにおいて、そのコンテンツデータのフレームに含まれる平文データが、暗復号処理部10により暗号化処理され、暗号化処理により生成された暗号文データが出力バッファメモリ32に格納される例を挙げて説明する。
例えば、HDD50に記録された映像データや音声データなどのコンテンツデータは、まず、入力バッファメモリ31に格納される。図3では、512バイトを管理ブロック単位とする入力バッファメモリ31において、入力バッファメモリ31のブロックBL1の領域に、平文Aデータを有したコンテンツデータと、平文Bデータを有したコンテンツデータと、平文Cデータの一部を有したコンテンツデータとが格納され、入力バッファメモリ31のブロックBL2の領域には、平文Cデータの残りの部分を有したコンテンツデータと、平文Dデータの一部を有したコンテンツデータとが格納され、このように、例えば、入力バッファメモリ31のブロックBL4まで複数のコンテンツデータが格納された一例を示している。
ここで、まず、暗復号化処理を行なう処理ブロック単位を8バイトとすると、処理ブロック単位と、512バイトの管理ブロック単位とは、整数倍の関係にある。一方、各コンテンツデータは、その内容に従ってデータ長が異なるため、512バイトの管理ブロック単位に整数個のコンテンツデータが含まれることは稀である。このため、図3に示すように、例えば、入力バッファメモリ31のブロックBL1に格納されたコンテンツデータにおいて、平文Cデータを有したコンテンツデータは、平文Cデータの一部のみがブロックBL1に格納される。さらに、例えば、上述したような可変長符号化方式であるAAC方式に基づき圧縮符号化した音声データであるコンテンツデータの場合、可変長符号化方式であるため、8バイトの処理ブロック単位と、コンテンツデータのフレームに格納される平文データのバイト長とも整数倍の関係は保持されない。
以下、このような、管理ブロック単位、および処理ブロック単位とのバイト長関係において、整数倍の関係が保持されていないようなコンテンツデータに対しての、本ブロック暗復号回路の動作について説明する。
図3に示すように、入力バッファメモリ31にコンテンツデータが格納されると、バッファメモリ制御部30は、入力バッファメモリ31に処理するためのデータが準備されたと判定し、次に、CPU40に対してDMA割込み信号を通知する。CPU40は、共通バス41の利用状況を解析し、CPU40が共通バス41を解放しても良いと判断すると、CPU40は、ブロック暗復号回路に対して共通バス41を解放する。これにより、暗復号処理部10、入力バッファメモリ31、および出力バッファメモリ32は、共通バス41を占有し、処理部_バッファメモリ間のDMA転送が開始される。処理部_バッファメモリ間のDMA転送は、512バイトの管理ブロック分のデータに対する処理が完了するまで継続され、このDMA転送期間、入力バッファメモリ31からコンテンツデータが暗復号処理部10にDMA転送され、また、暗復号処理部10で処理により生成された暗号化データが出力バッファメモリ32にDMA転送される。
まず、入力バッファメモリ31のブロックBL1の領域に格納されたコンテンツデータに対する処理部_バッファメモリ間のDMA転送の期間においては、図3に示すように、入力バッファメモリ31の先頭アドレス、すなわち、ブロックBL1の先頭アドレスから順次コンテンツデータが読み出される。また、読み出されたコンテンツデータのフレームに含まれる平文データに対して、処理ブロックごとに暗号化処理が実行される。このようにして、図3に示すように、まず、平文Aデータに対する暗号化処理が実行されて暗号文Aデータが生成され、次に、平文Bデータに対する暗号化処理が実行されて暗号文Bデータが生成され、次に、平文Cデータの一部に対する暗号化処理が実行されて暗号文Cデータの一部が生成される。
このとき、コンテンツデータは、管理ブロック単位、および処理ブロック単位とのバイト長関係において、整数倍の関係が保持されていないため、それぞれのコンテンツデータの最後の処理ブロックにおいて余剰データ(以下、コンテンツ余剰データと呼ぶ)が発生することがある。このため、上述したように、判定部13により、DMA転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであるとともに、処理ブロックのデータ量に満たないデータ量であるか否かの判定を行ない、DMA転送されたコンテンツデータがそのコンテンツの最終処理ブロックのデータであり、かつそのコンテンツデータ量が処理ブロックのデータ量に満たないデータ量であると判定すると、セレクタ141により選択された待機バッファ110のデータが出力バッファ140に一時記憶され、出力バッファメモリ32にDMA転送される。すなわち、このようなコンテンツデータ余剰データに対しては、暗号化処理を実行しない。
さらに、処理部_バッファメモリ間のDMA転送期間内における最終処理ブロックの平文データについても、上述したように、余剰データが発生することがある。すなわち、例えば、図3に示すブロックBL1に含まれる平文Cデータの場合、平文Cデータのバイト長を例えば10バイトとすると、2バイトの余剰データが発生することとなる。
本発明のブロック暗復号回路では、このような処理部_バッファメモリ間のDMA転送期間内での最終処理ブロックにおいて生じた余剰データ(以下、管理ブロック余剰データと呼ぶ)に対して、暗号化処理は実行せず、さらに、このような管理ブロック余剰データに対する処理を行なうことを特徴としている。
このような処理部_バッファメモリ間のDMA転送期間内での最終処理ブロックにおいて、管理ブロック余剰データが生じた場合に対応する処理を実行するため、待機バッファ制御部111は、バッファメモリ制御部30から通知された終了信号に応答して、このような管理ブロック余剰データの有無を判定している。さらに、待機バッファ制御部111は、管理ブロック余剰データのバイト数が処理ブロック単位のバイト数に満たないバイト数であると判定した場合は、未処理数レジスタ112に、その管理ブロック余剰データのバイト数を、未処理数として設定しており、この未処理数が未処理数レジスタ112に設定され、さらに、この未処理数は、未処理数データとしてバッファメモリ制御部30に通知される。
ブロックBL1に格納されたコンテンツデータに対する処理部_バッファメモリ間のDMA転送の処理が完了するまで、図3に示すような、コンテンツ余剰データと管理ブロック余剰データとを除く平文データが暗号化処理され、ブロックBL1における処理部_バッファメモリ間のDMA転送において、このように処理された512バイトのデータが、出力バッファメモリ32にDMA転送される。
ブロックBL1に対する処理が終了すると、バッファメモリ制御部30は、一旦、共通バス41の占有を終了し、CPU40に占有権を渡す。この後、BL1の場合と同様に、バッファメモリ制御部30は、CPU40に対してDMA割込み信号を通知し、次のブロックBL2に対する処理の準備を行なう。CPU40が共通バス41を解放すると、バッファメモリ制御部30は、次のブロックBL2に対する処理を開始する。これにより、次のブロックBL2に対する処理部_バッファメモリ間のDMA転送が、管理ブロック分のデータ処理の完了まで継続される。
特に、本ブロック暗復号回路は、このような次のブロックに対する処理部_バッファメモリ間のDMA転送を開始するとき、バッファメモリ制御部30が、前回の処理部_バッファメモリ間のDMA転送処理で通知された未処理数データを利用して、入力バッファメモリ31からコンテンツデータを読み出すことを特徴としている。すなわち、バッファメモリ制御部30は、この未処理数データを利用して、入力バッファメモリ31から読み出す先頭アドレスを、前回の入力バッファメモリ31の終了アドレスから未処理のデータ量分戻している。
このように、本ブロック暗復号回路は、次のブロックに対する処理部_バッファメモリ間のDMA転送を開始するとき、バッファメモリ制御部30が、この未処理数データを利用して、入力バッファメモリ31から読み出す先頭アドレスを、前回の終了アドレスから未処理のデータ量分戻している。このため、図3に示すように、バッファメモリ制御部30が、次のブロックBL2に対する処理を開始するとき、バッファメモリ制御部30は、入力バッファメモリ31の読み出しアドレスにおいて、前回の最終アドレス、すなわち、ブロックBL2の先頭アドレスから、未処理数データが示すバイト数を差し引いたアドレスを、読み出し先頭アドレスとしている。バッファメモリ制御部30は、ブロックBL2に対する処理部_バッファメモリ間のDMA転送を開始すると、まず、このように補正した入力バッファメモリ31のアドレスからコンテンツデータを読み出し、8バイトの処理ブロック単位でコンテンツデータを暗復号処理部10にDMA転送する。また、バッファメモリ制御部30は、このように補正した入力バッファメモリ31のアドレスを、ブロックBL2に対する開始アドレスとして、ブロックBL1の場合と同様に、ブロックBL2に対する処理部_バッファメモリ間のDMA転送を、512バイトの管理ブロック分のデータに対する処理が完了するまで継続する。また、バッファメモリ制御部30は、このように補正した入力バッファメモリ31のアドレスに対応したアドレスを、出力バッファメモリ32の書き込み開始アドレスとして、8バイトの処理ブロック単位で暗復号処理部10からDMA転送される処理済みデータを、512バイトの管理ブロック分のデータに対する処理が完了するまで、出力バッファメモリ32に書き込む。
なお、以上説明したコンテンツ再生装置では、バッファメモリ制御部30が、入力バッファメモリ31、および出力バッファメモリ32に対するデータの読み出しアドレスや、データの書き込みアドレスを管理するとともに、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとするような構成の一例を挙げて説明した。本発明のブロック暗復号回路を用いたコンテンツ再生装置は、このような構成に限定されず、例えば、CPU40が、入力バッファメモリ読み出し先頭アドレスの生成を含めて、入力バッファメモリ31、および出力バッファメモリ32に対するデータの読み出しアドレスやデータの書き込みアドレスを管理するような構成であってもよい。
図4は、このように、CPU40が、入力バッファメモリ31、および出力バッファメモリ32のアドレスを管理するような構成例を示したブロックである。図4において、CPU40は、入力バッファメモリ31、および出力バッファメモリ32のアドレス管理を含め、装置における各処理を制御統括する制御部として機能する。
図4に示すコンテンツ再生装置において、例えば、入力バッファメモリ31から暗復号処理部10へとデータをDMA転送するとき、CPU40が、そのデータを読み出すための読み出しアドレスを生成する。CPU40により生成された読み出しアドレスは、共通バス41を介してバッファメモリ制御部30に通知される。バッファメモリ制御部30は、このCPU40から通知されたアドレスに基づき、例えば、入力バッファメモリ31からデータを読み出し、この読み出したデータを暗復号処理部10にDMA転送するよう入力バッファメモリ31を制御する。
特に、図4に示す本コンテンツ再生装置の構成では、図1で説明した構成と比較して、待機バッファ制御部111は、レジスタ112に未処理数データの格納が完了すると、CPU40に対して未処理数通知割込み信号を出力し、CPU40が、この未処理数通知割込み信号に応答して、レジスタ112に格納された未処理数データを、共通バス41を介して取り込むような構成であることを特徴としている。すなわち、CPU40を含めた本ブロック暗復号回路では、次の管理ブロックに対する処理部_バッファメモリ間のDMA転送を開始するとき、CPU40が、前回の処理部_バッファメモリ間のDMA転送処理で取り込んだ未処理数データを利用して、入力バッファメモリ31からコンテンツデータの読み出しを開始するためのアドレスを、バッファメモリ制御部30に通知する。このアドレスは、上述したように、入力バッファメモリ31から読み出す先頭アドレスを、前回の入力バッファメモリ31の終了アドレスから未処理のデータ量分戻したアドレスである。バッファメモリ制御部30は、CPU40から通知されたこのようなアドレスにより、入力バッファメモリ31からコンテンツデータの読み出しを開始するよう制御する。このように、図4に示すブロック暗復号回路の構成は、CPU40を含む構成であり、CPU40は、管理ブロック単位での最終読み出しアドレスから通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、先頭アドレスを前記バッファメモリ制御部30に通知する。
なお、以上、図4に示す本コンテンツ再生装置の構成では、待機バッファ制御部111がCPU40に対して未処理数通知割込み信号を出力するような構成で説明したが、例えば、上述した管理ブロックごとのDMA割込み信号を利用し、CPU40がこのDMA割込みの信号に応答して、レジスタ112に格納された未処理数データを取り込むような構成であってもよい。
以上、本発明の実施の形態におけるブロック暗復号回路は、処理部_バッファメモリ間のDMA転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、未処理数データとしてバッファメモリ制御部30に通知し、バッファメモリ制御部30が、この未処理数データを利用して、次回の入力バッファメモリ31から読み出す先頭アドレスを、今回の入力バッファメモリ31の終了アドレスから未処理のデータ量分戻して読み出す構成である。また、本発明の実施の形態におけるブロック暗復号回路は、処理部_バッファメモリ間のDMA転送期間内において、最終処理ブロックのデータが処理ブロックのデータ量に満たないデータ量であった場合、未処理数データとしてCPU40に通知し、CPU40が、この未処理数データを利用して、次回の入力バッファメモリ31から読み出す先頭アドレスを、今回の入力バッファメモリ31の終了アドレスから未処理のデータ量分戻したアドレスを演算し、その演算結果であるアドレスをバッファメモリ制御部30に通知し、バッファメモリ制御部30が、CPU40から通知されたアドレスを用いて、入力バッファメモリ31から読み出す構成である。このため、本発明のブロック暗復号回路によれば、正しい処理ブロックとして暗復号化処理が可能となり、一つのリソースでも制御ドライバによるコンテンツの切り替え制御が容易となる。また、複数のコンテンツに対応したコンテンツデータを暗復号化処理する場合、それぞれのコンテンツデータに対応するための複数の暗復号処理部を備える必要はないため、ハードウェア量の削減を図った複数のコンテンツに対応するブロック暗復号回路、およびこのブロック暗復号回路を備えたコンテンツ再生装置を提供することができる。
本発明は、例えば、光ディスクの一種であるDVD、あるいはメモリカードの一種であるSDメモリカードなど著作権保護に基づいて、映像や音声などのコンテンツデータを暗号化して記録し、記録した暗号化コンテンツデータを復号化して再生するDVDレコーダなどの録画再生装置や、記録した暗号化コンテンツデータを復号化して再生するDVDデコーダなどの復号装置あるいはコンテンツデータ再生装置などに利用することが可能である。
本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の一例を示すブロック図 本発明の実施の形態におけるブロック暗復号回路の詳細な構成を示すブロック図 各データの構成を示す図 本発明の実施の形態におけるブロック暗復号回路を用いたコンテンツ再生装置の他の一例を示すブロック図 従来の暗復号装置のブロック図
符号の説明
10,91,92 暗復号処理部
11,911 分離部
12,90 暗復号部
13,913 判定部
14,914 結合部
30 バッファメモリ制御部
31,94 入力バッファメモリ
32 出力バッファメモリ
40 CPU
41 共通バス
49 デコード処理部
50 HDD
51 HDDI/F部
60 外部メモリ
61 外部メモリI/F部
93,111 待機バッファ制御部
110,910 待機バッファ
112 未処理数レジスタ
120,900 演算部
121,901 鍵生成部
131 同期検出部
132 フレーム長検出部
133 処理要否判定部
134 フレーム長カウンタ
135 初期値設定部
140,916 出力バッファ
141,915 セレクタ

Claims (11)

  1. 供給元から供給されたコンテンツデータに対し、所定のデータ量を一つの処理ブロックとして処理ブロック単位で暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして供給先に供給するブロック暗復号回路であって、
    供給元からコンテンツデータが供給され、前記処理ブロックのデータ量よりも大きなデータ量である所定のデータ量を一つの管理ブロックとして、一つ以上の管理ブロック分の前記コンテンツデータを、前記管理ブロックで区分して格納する入力バッファメモリと、
    前記入力バッファメモリから、前記管理ブロックを管理ブロック処理単位とし、さらに、前記処理ブロックを処理ブロック単位として、コンテンツデータが供給され、前記処理ブロック単位で前記コンテンツデータを格納する待機バッファと、
    前記待機バッファに格納されるコンテンツデータのデータ量を判定する判定部と、
    少なくとも、前記待機バッファを制御するとともに、前記待機バッファに格納されるデータ量を監視する待機バッファ制御部と、
    前記待機バッファに格納されたコンテンツデータに対して、暗復号化処理を行ない、その暗復号化処理により生成したデータを暗復号化データとして出力する暗復号部と、
    前記暗復号部から前記暗復号化データが供給され、前記待機バッファから前記待機バッファに格納したコンテンツデータが供給され、前記判定部の判定結果に応じて、前記供給された暗復号化データ、およびコンテンツデータからいずれかを選択するセレクタと、
    前記セレクタが選択したデータを出力データとして格納する出力バッファと、
    前記出力バッファから前記出力データが供給され、一つ以上の前記管理ブロック分の前記出力データを、前記管理ブロックで区分して格納する出力バッファメモリと、
    前記入力バッファメモリに対する読み出し処理を含めた制御、および前記出力バッファメモリに対する書き込み処理を含めた制御を行なうとともに、前記入力バッファメモリに対する読み出し処理において、前記管理ブロック単位での最終読み出し処理であることを示す終了信号を生成し、生成した終了信号を前記待機バッファ制御部に通知するバッファメモリ制御部とを備え、
    前記待機バッファ制御部は、前記バッファメモリ制御部から、前記管理ブロック単位での最終読み出し処理であることを示す終了信号を受け取ると、前記管理ブロック単位内における最終の前記処理ブロックでの、前記待機バッファに格納されたコンテンツデータのデータ量を未処理数データとして検出することを特徴とするブロック暗復号回路。
  2. 前記待機バッファ制御部は、前記検出した未処理数データを前記バッファメモリ制御部に通知し、
    前記バッファメモリ制御部は、前記管理ブロック単位での最終読み出しアドレスから前記通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとすることを特徴とする請求項1記載のブロック暗復号回路。
  3. 前記ブロック暗復号回路は、さらに、前記入力バッファメモリに対する読み出し処理のためのアドレスを少なくとも管理するCPU(Central Processing Unit)を備え、
    前記待機バッファ制御部は、前記検出した未処理数データを前記CPUに通知し、
    前記CPUは、前記管理ブロック単位での最終読み出しアドレスから前記通知された未処理数データのデータ量を差し引いたアドレスを、次の管理ブロック単位での入力バッファメモリ読み出し先頭アドレスとし、前記先頭アドレスを前記バッファメモリ制御部に通知することを特徴とする請求項1記載のブロック暗復号回路。
  4. 前記待機バッファ制御部は、割込み処理により、前記検出した未処理数データを前記CPUに通知することを特徴とする請求項3記載のブロック暗復号回路。
  5. 前記所定のデータ量を一つの管理ブロックとして、この所定のデータ量に対して暗復号化処理を実行する期間、入力バッファメモリと待機バッファとの間、および出力バッファと出力バッファメモリとの間のデータ転送は、DMA(Direct Memory Access)を利用したデータ転送であることを特徴とする請求項2から請求項4のいずれか一項に記載のブロック暗復号回路。
  6. 前記データ量は、8ビットを1バイトとするバイト単位でのデータ量であることを特徴とする請求項5記載のブロック暗復号回路。
  7. 前記コンテンツデータは、フレームの属性情報を含むヘッダ部と、複数に分割されたコンテンツの個々の部分を含むデータ本体部とから構成されるフレームを複数個含むコンテンツデータであることを特徴とする請求項6記載のブロック暗復号回路。
  8. 前記ヘッダ部は、前記フレームの先頭を示す同期符号と、前記フレームのデータ量を示す情報とを含み、
    前記判定部は、前記ヘッダ部に含まれるフレームのデータ量を示す情報と、処理ブロックの所定のデータ量とに基づき、前記待機バッファに格納されるコンテンツデータのデータ量を判定し、判定したデータ量が処理ブロックの所定のデータ量に満たないとき、前記セレクタに対して、前記セレクタが前記待機バッファに格納されたコンテンツデータを選択するよう制御することを特徴とする請求項7記載のブロック暗復号回路。
  9. 前記コンテンツデータは、可変長圧縮符号化方式により符号化されたデータ、または、可変長圧縮符号化方式により符号化されたコンテンツデータを暗号化したデータであることを特徴とする請求項8記載のブロック暗復号回路。
  10. 前記可変長圧縮符号化方式は、音声データを圧縮符号化するAAC(Advanced Audio Coding)方式であることを特徴とする請求項9記載のブロック暗復号回路。
  11. 前記可変長圧縮符号化方式は、音声データを圧縮符号化するMP3(MPEG Audio Layer−3)方式であることを特徴とする請求項9記載のブロック暗復号回路。
JP2005152122A 2005-05-25 2005-05-25 ブロック暗復号回路 Pending JP2006332941A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005152122A JP2006332941A (ja) 2005-05-25 2005-05-25 ブロック暗復号回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005152122A JP2006332941A (ja) 2005-05-25 2005-05-25 ブロック暗復号回路

Publications (1)

Publication Number Publication Date
JP2006332941A true JP2006332941A (ja) 2006-12-07

Family

ID=37554172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005152122A Pending JP2006332941A (ja) 2005-05-25 2005-05-25 ブロック暗復号回路

Country Status (1)

Country Link
JP (1) JP2006332941A (ja)

Similar Documents

Publication Publication Date Title
JP4219680B2 (ja) 不揮発性メモリカード、コンパクトディスクまたはその他のメディアから記録済みのオーディオ、ビデオまたはその他のコンテンツを再生するためのシステム、方法およびデバイス
US8265274B2 (en) Data processing device, data processing method, data processing program, recording medium containing the data processing program and integrated circuit
US20080301467A1 (en) Memory Security Device
JP4320951B2 (ja) 記録装置及び記録・再生装置
US20080098239A1 (en) Storage medium control method
JP4667108B2 (ja) データ処理装置
KR101229522B1 (ko) 비휘발성 메모리로부터의 미디어 데이터의 효율적인 저전력 리트리브 기법들
US20070001877A1 (en) Information processing apparatus and decoding control method
US20030140239A1 (en) Contents recorder/reproducer
JP2007079876A (ja) 信号処理装置、信号処理方法及び信号処理プログラム
US7467412B2 (en) Data transfer system, data transfer program and video server system
JP2006324848A (ja) 情報処理装置及び情報処理方法
JP2006518959A (ja) 暗号化されたビデオ情報の生成
JP2008293578A (ja) ストリームデータ制御モジュール
JP4135051B2 (ja) 記録再生装置、記録再生方法およびプログラム
JP2004030882A (ja) レンダリング装置、コピー制御方法及びプログラム
JP2006330126A (ja) 暗号化処理方法、および復号化処理方法
US7366917B2 (en) System and method for accessing discrete data
JP2001069481A (ja) データ処理装置
WO2007116970A1 (ja) データ暗号化方法、暗号化データ再生方法
JP2006332941A (ja) ブロック暗復号回路
JP3739456B2 (ja) データ再生システム、可換型記録媒体およびデータ再生方法
CN100458812C (zh) 数据处理电路和方法、再现装置和方法及存储介质
JP2006331483A (ja) 復号装置、ストリーム録画再生装置、および暗号化ストリームの復号方法
JP3874021B2 (ja) 記録装置