説明

インタフェース回路およびそれを用いた電子機器

【課題】複数のポートを有するインタフェース回路の、回路面積の削減にある。
【解決手段】第1セレクタ10a、第2セレクタ10bの少なくとも一方は、アクティブポートのデータを選択し、対応するチャンネルCH1、CH2へと出力する。他方のセレクタは、非アクティブポートまたはアクティブポートのデータを選択し、対応するチャンネルに出力する。各チャンネルCH1、CH2は、入力されたデータから、同期信号ENC_ENを抽出する。同期信号発生器60は、あるポートの同期信号ENC_ENが抽出されると、それ以降、そのポートの同期信号のレプリカENC_EN’を周期的に生成する。第1演算モジュール30は、同期信号ENC_EN、ENC_EN’がアサートされると、認証データRを演算する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化されたデータを復号するインタフェース回路に関する。
【背景技術】
【0002】
テレビやAVアンプをはじめとするマルチメディア機器は、複数チャンネルの入力インタフェースおよびセレクタを備え、複数の機器が接続可能であるとともに、セレクタによって選択されたひとつのチャンネルに接続される機器からのデータストリームを処理可能となっている。
【0003】
近年、こうしたマルチメディア機器のインタフェースとして、HDMI(High-Definition Multimedia Interface)規格やDVI(Digital Visual Interface)規格などが広く普及している。HDMI規格やDVI規格では、接続される機器同士が互いに認証し合った後に、映像、音声などのデータストリームを暗号化して伝送する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第09/108818号パンフレット
【特許文献2】特開2001−127754号公報
【特許文献3】特開2007−89013号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、複数の外部機器(ソース機器)から、暗号化されたデータストリームを受け、そのひとつを選択して出力する回路構成が開示されている。この技術では、図2に示されるように、ソース機器ごとに、HDCP(High-bandwidth Digital Content Protection)エンジン(104、106、108、109)が設けられる。各HDCPエンジンによって生成された復号用のコード(Cipher outputs)のうち、アクティブポートに対応するひとつがマルチプレクサ(102)によって選択される。暗号解除エンジン(De-cipher Engine 256)は、選択された復号用のデータを用いて、アクティブポートのビデオデータおよびパケットデータを復号(デクリプト)する。
【0006】
特許文献1では、入力ポートごとに、HDCPエンジンが必要となるため、ポート数が増えるにしたがい、ハードウェアの規模が大きくなってしまう。
【0007】
本発明はかかる課題に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、複数のポートを有するインタフェース回路の、回路面積の削減にある。
【課題を解決するための手段】
【0008】
本発明のある態様は、複数のポートに複数の外部機器から暗号化されたデータストリームを受け、アクティブポートに入力されるデータストリームの暗号化を解除して出力するインタフェース回路に関する。このインタフェース回路は、複数のポートと、第1セレクタと、第2セレクタと、第1デコーダと、第2デコーダと、それぞれが複数のポートごとに設けられた複数の同期信号発生器と、第1演算モジュールと、第2演算モジュールと、第3演算モジュールと、第1復号モジュールと、第2復号モジュールと、出力セレクタと、認証処理部と、を備える。
複数のポートにはそれぞれ外部機器が接続される。各ポートは、対応する外部機器からの暗号化されたデータストリームが入力される入力ポートと、対応する外部機器との間の認証に必要な信号が送受信される認証ポートと、を含む。
第1および第2セレクタはそれぞれ、複数の入力ポートに入力されるデータストリームを受け、ひとつ選択する。第1デコーダは、第1セレクタにより選択されたデータストリームを受け、同期信号を抽出する。第2デコーダは、第2セレクタにより選択されたデータストリームを受け、同期信号を抽出する。各同期信号発生器は、第1デコーダまたは第2デコーダから対応するポートの同期信号を受けると、それ以降、対応するポートの同期信号を周期的に生成する。第1演算モジュールは、いずれかの同期信号がアサートされると、アサートされた同期信号に対応するポートに接続される外部機器との間でリンクを確立し、それを維持するための認証データを演算する。第2演算モジュールは、第1演算モジュールの演算により得られるデータを利用して、第1セレクタにより選択されたデータストリームを解読するための解除コードを生成する。第3演算モジュールは、第1演算モジュールの演算により得られるデータを利用して、第2セレクタにより選択されたデータストリームを解読するための解除コードを生成する。第1復号モジュールは、第1セレクタにより選択されたデータストリームを、第2演算モジュールから出力される解除コードを用いて復号する。第2復号モジュールは、第2セレクタにより選択されたデータストリームを、第3演算モジュールから出力される解除コードを用いて復号する。出力区セレクタは、第1復号モジュールおよび第2復号モジュールから出力される、復号されたデータストリームを選択する。認証処理部は、第1演算モジュールによりポートごとに算出された認証データを用いて、各ポートに対応する外部機器との間でリンクを維持する。
【0009】
この態様によれば、第1、第2デコーダによって、2つのポートの同期信号を並列的に抽出することができ、抽出した後は、その同期信号を同期信号発生器によって内部生成することができる。したがって、第1演算モジュールは、すべてのポートとの間で、認証を確立し、それを維持することができるため、いずれのポートがアクティブポートに設定される場合でも、認証の再確立を省略することができる。またポート数が増えても、演算モジュールの数を増やす必要がないため、回路面積の増大を抑制できる。
【0010】
インタフェース回路は、第1状態と第2状態を時分割で切りかえ可能に構成されてもよい。第1状態において、第1セレクタはアクティブポートのデータストリームを選択し、第2セレクタは非アクティブポートのひとつのデータストリームを選択し、出力セレクタは、第1復号モジュールから出力される復号されたデータストリームを選択してもよい。第2状態において、第1セレクタは非アクティブポートのひとつのデータストリームを選択し、第2セレクタはアクティブポートのデータストリームを選択し、出力セレクタは、第2復号モジュールから出力される復号されたデータストリームを選択してもよい。
【0011】
第1状態において第2セレクタにより選択される非アクティブポートと、第2状態において第1セレクタにより選択される非アクティブポートは、サイクリックに切りかえられてもよい。
【0012】
インタフェース回路は、第1状態と第2状態に加えて、第3状態が切りかえ可能に構成されてもよい。第3状態において、第1、第2セレクタはアクティブポートのデータストリームを選択してもよい。
【0013】
外部機器からのデータは、少なくとも画像データを含んでもよい。第1演算モジュールは、フレームごとに演算処理を実行し、第2、第3演算モジュールは、ピクセルごとに演算処理を実行してもよい。
【0014】
本発明の別の態様は、電子機器である。この電子機器は、上述のいずれかの態様のインタフェース回路を備える。
【0015】
なお、以上の構成要素を任意に組み合わせたもの、あるいは本発明の表現を、方法、装置などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0016】
本発明のある態様によれば、複数のポートを有するインタフェース回路の回路面積を削減できる。
【図面の簡単な説明】
【0017】
【図1】実施の形態に係るインタフェース回路を備える電子機器の構成を示すブロック図である。
【図2】図2(a)〜(f)は、第1演算モジュールおよび第2演算モジュールの動作を示す図である。
【図3】図1のインタフェース回路の第1セレクタ、第2セレクタおよび出力セレクタの状態遷移を示す図である。
【図4】図1のインタフェース回路のアクティブポートに関するタイムチャートである。
【図5】図3の状態遷移図に対応する、各ポートのレプリカ同期信号の状態を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【0019】
図1は、実施の形態に係るインタフェース回路100を備える電子機器1の構成を示すブロック図である。電子機器1としては、複数の入力ポートを備えるテレビ、PC用ディスプレイ、AVアンプ、デジタルビデオレコーダをはじめとするマルチメディア機器が例示されるが、インタフェース回路100の用途は特に限定されない。たとえば電子機器1はHDMIセレクタであってもよい。本実施の形態では、電子機器1がディスプレイ装置であるものとして説明する。
【0020】
電子機器1は、外部機器(不図示)とマルチメディアインタフェースを介して接続され、外部機器からの映像データや音声データ(コンテンツデータと総称される)を受け、それらを表示、再生する。マルチメディアインタフェースとしては、HDMI規格、DVI規格、ディスプレイポート規格、VGA規格などが例示される。ただしインタフェースの規格はこれらには限定されず、データ送信に先立ち認証が要求される、公知の、あるいは将来提唱されるさまざまな規格であってよい。
【0021】
以下では、理解の容易化を目的として、HDMI規格に準拠したインタフェース回路100を想定して説明する。
【0022】
電子機器1は、複数のコネクタCN〜CNを備え、それぞれに外部機器が着脱可能に接続される。コネクタCNの個数は特に限定されるものではない。電子機器1は、ユーザが選択したひとつのコネクタ(ポート)に接続される外部機器からの映像データ(画像データ)を表示する。本明細書において、電子機器1による処理の対象となるポートをアクティブポート、その他のポートを非アクティブポートと称する。アクティブポートは、電子機器1のユーザによって指定される。
【0023】
電子機器1は、ディスプレイパネル2、パネル駆動部4、DSP6およびインタフェース回路100を備える。
【0024】
インタフェース回路100は、複数のコネクタCN〜CNに入力される外部機器からのデータストリームを受け、アクティブポートに設定されたコネクタCNに接続される外部機器からのデータストリームを選択し、その暗号を解除して出力ポートPOUTから出力する。
【0025】
DSP6は、インタフェース回路100からの出力データDOUTに対して所定の信号処理を施し、パネル駆動部4へと出力する。パネル駆動部4は出力データDOUTにもとづきディスプレイパネル2を駆動する。
【0026】
以上が電子機器1の全体の構成である。続いて実施の形態に係るインタフェース回路100について詳細に説明する。
【0027】
上述したマルチメディアインタフェースでは、データ伝送に先立って認証が必要とされる。インタフェース回路100は、外部機器との間のデータの送受信を行うとともに、認証処理を行う。
【0028】
HDMI規格では、ソース機器、シンク機器およびケーブルでシステムが構成される。本実施の形態において、電子機器1はシンク機器に、外部機器はソース機器に該当する。ソース機器からシンク機器へのビデオデータおよびオーディオデータは、TMDS(Transition Minimized Differential Signaling)方式で伝送される。ソース機器とシンク機器は、DDC(Display. Data Channel)ラインを介して、ディスプレイの製造業者、型番、解像度などの情報(ディスプレイデータ)を送受信した後、認証処理を行う。
【0029】
HDCP規格では、まず、「Authentication First Part(以下、第1認証という)」によって、ソース機器とシンク機器の認証が行われ、リンクが確立される。具体的にはソース機器からシンク機器に対して認証要求が発行され、シンク機器とソース機器との間で認証に必要なデータが送受信される。リンク確立に失敗すると、所定時間経過後に、ソース機器が再びリンク機器に対して認証要求を発行する。
【0030】
ソース機器とシンク機器の間で一旦リンクが確立すると、「Authentication Third Part(以下、第3認証という)」によって、リンクが維持される。具体的には、ソース機器は、シンク機器に対してフレームと同期した同期信号(Encryption enable:暗号化フレームであることの通知)ENC_ENを出力し、所定の周期128フレームごとに、シンク機器にリンクの確認を行う。具体的には、同期信号ENC_ENもしくはENC_DISは、垂直同期信号VSYNCの528ピクセルクロック後に配置される。シンク機器は、同期信号ENC_ENをトリガーとして、ソース機器からのリンク確認に応答する。
【0031】
インタフェース回路100は、複数の入力ポートP1〜P1、複数の認証ポートP2〜P2、第1セレクタ10a、第2セレクタ10b、第1デコーダ12a、第2デコーダ12b、DDCインタフェース部(認証処理部)14、暗号解除部20、出力インタフェース部42、複数の同期信号発生器60〜60、オシレータ70を備える。
【0032】
以下、第1デコーダ12a、第2演算モジュール32a、第1復号モジュール40aのセットを第1チャンネルCH1、第2デコーダ12b、第3演算モジュール32b、第2復号モジュール40bのセットを、第2チャンネルCH2と呼ぶ。
【0033】
複数の入力ポートP1〜P1には、複数の外部機器それぞれからのデータストリームが入力される。データストリームは、ビデオデータやオーディオデータなどを含む。また複数の認証ポートP2〜P2それぞれ、対応するHDMIケーブルのDDCラインと接続される。外部機器(ソース機器)それぞれとの間で認証に必要な信号は、認証ポートP2を介して送受信される。DDCラインを介した伝送プロトコルは、IC(Inter IC)バスに準じたものとなっている。なおHDMI規格では、DDCラインおよびTMDSラインに加えてCEC(Consumer Electronics Control)ラインが使用されるが、ここでは省略する。ひとつの入力ポートP1、それと対応する認証ポートP2およびそれと対応するCECポートの組が、ひとつのコネクタCNに接続され、ひとつのポートを形成している。
【0034】
第1セレクタ10aは、複数の入力ポートP1〜P1のうち、ひとつのポートに入力されるデータストリームを選択し、第1チャンネルCH1へと出力する。
【0035】
第1デコーダ12aは、第1セレクタ10aから出力されるデータストリームを受け、水平同期信号HSYNC、垂直同期信号VSYNC、ビデオデータ、パケットデータ、同期信号ENC_EN、ENC_DISを抽出する。
具体的には、第1デコーダ12aは、デシリアライザ11、フォーマットコンバータ13、TMDSデコーダ15を含む。デシリアライザ11は、シリアルデータであるデータストリームを受け、PLLクロックPLL_CLKを再生するとともに、データストリームをパラレルデータに変換する。PLLクロックは、ピクセルクロックとも称される。TMDS方式では、データストリームは10ビットに符号化されて伝送される。そこでフォーマットコンバータ13は、符号化されたデータストリームを復号する。TMDSデコーダ15は、第1セレクタ10aにより選択されたデータストリームから、水平同期信号HSYNC、垂直同期信号VSYNC、ビデオデータ、パケットデータ、同期信号ENC_EN、ENC_DISを抽出する。
【0036】
第2セレクタ10bは、第1セレクタ10aと同様に、複数の入力ポートP1〜P1のうち、ひとつのポートに入力されるデータストリームを選択し、第2チャンネルCH2に出力する。第2デコーダ12bは、第1デコーダ12aと同様に構成され、第2セレクタ10bにより選択されたデータストリームを受け、水平同期信号HSYNC、垂直同期信号VSYNC、ビデオデータ、パケットデータ、同期信号ENC_EN、ENC_DISを抽出する。
【0037】
同期信号発生器60は、ポートごとに設けられた同期信号発生器60〜60を含む。第1デコーダ12aまたは第2デコーダ12bにより抽出された同期信号ENC_ENA〜Dは、同期信号発生器60〜60のうち、対応するひとつへと入力される。同期信号ENC_EN(i=A〜D)が入力された同期信号発生器60は、同期信号ENC_ENの特性(プロパティ)を保持し、対応するポートのTMDSクロックTMDS_CLKを用いて、それと同じ特性を有する同期信号のレプリカ(エミュレート同期信号)ENC_EN’を生成する。
【0038】
なお同期信号発生器60は、あるポートiについて一旦、同期信号ENC_ENの特性を保持した後、第1デコーダ12aまたは第2デコーダ12bによって、そのポートの同期信号ENC_ENが抽出されるたびに、そのプロパティを更新してもよい。あるいは、外部機器からの同期信号ENC_ENのタイミングは、通常変更されないことから、一旦プロパティを保持した後は、更新を停止してもよい。
【0039】
暗号解除部20には、第1デコーダ12aおよび第2デコーダ12bから出力される同期信号ENC_ENおよび同期信号発生器60により生成されたエミュレート同期信号ENC_EN’が供給される。
【0040】
暗号解除部20は、レジスタ22、マルチポート制御部24、メモリ25、第1演算モジュール30、第2演算モジュール32a、第3演算モジュール32b、第1復号モジュール40a、第2復号モジュール40bを備える。
【0041】
マルチポート制御部24は、複数のポートの切りかえに関する処理を行う。マルチポート制御部(Multiport Control Engine)24には、アクティブポートを指示するデータ(ポートセレクトデータPS)が入力されている。第1セレクタ10aは、ポートセレクトデータPSに応じて、アクティブポートのデータストリームを選択する。またマルチポート制御部24は、解除コード生成部26を制御し、各ポートに必要な演算処理を実行させる。レジスタ22、マルチポート制御部24、メモリ25、解除コード生成部26は、バス28を介して接続される。
【0042】
メモリ25には、HDCPキーが格納される。解除コード生成部26は、複数の外部機器との間のリンクの確立、維持に必要なコード(hdcpBlockCipher:R)を生成するとともに、アクティブポートのデータストリームの暗号化を解除するために必要な解除コード(hdcpStreamCipherおよびhdcpRekeyCipher)S2を生成する。
【0043】
解除コード生成部26は、大きく分類して、以下の3つの演算処理を実行する。
1. hdcpBlockCipher
第1認証(Authentication First Part:at Authentication)において、セッションキーKsを生成するとともに、データR、Mを出力する。また、第3認証(Authentication Third Part:at Vertical Blank)においては、同期信号ENC_ENごとに、つまりフレームごとに、フレームキーK、認証データ(HDCP Cipher outputs)r、認証キー(Integrity verification key)Mを出力する。認証データrは、128フレームごとに認証データ(Link Synchronization Verification values)Rとして出力され、外部機器との認証に利用される。
【0044】
2. hdcpStreamCipher
ビデオデータおよびパケットデータに対して、各ピクセルごとに第1復号モジュール40aに入力すべき解除コードS2を生成する。
【0045】
3. hdcpRekeyCipher
1ラインのビデオデータ受信後に、Rekeyデータを生成する。
【0046】
解除コード生成部26は、第1演算モジュール30と、第2演算モジュール32a、第3演算モジュール32bを含む。
第1演算モジュール30は、各ポートそれぞれに対して、フレームごとに、hdcpBlockCipherに関する演算処理を実行し、セッションキーKsおよびフレームキーKを生成する。
【0047】
マルチポート制御部24は、同期信号発生器60から供給される同期信号ENC_EN、ENC_EN’を監視する。同期信号ENC_EN、ENC_EN’は、各ポートのフレームごとにアサートされる。マルチポート制御部24は、アクティブポートについて、デコーダにより抽出された同期信号ENC_ENまたはENC_EN’がアサートされ、もしくは非アクティブポートについて同期信号ENC_EN’がアサートされると、第1演算モジュール30に対して、そのポートに対応する外部機器との間でリンクを確立し、それを維持するために必要な認証データ(Link Synchronization verification values)rの生成を指示する。つまり第1演算モジュール30は、あるポートについて同期信号ENC_EN、ENC_EN’がアサートされると、そのポートに対する認証データrを生成する。
【0048】
なお、あるポートについて、同期信号ENC_ENとENC_EN’の両方が発生する場合には、マルチポート制御部24は、そのいずれかのみを監視すればよい。
【0049】
各ポートに対して、フレーム毎に生成されたセッションキーKsおよびフレームキーKは、レジスタに格納される。
各ポートのフレームキーKにより、128フレームごとに、認証データR’が生成され、そのポートのソース機器によってアクセスされ、認証の維持に利用される。
また、第1演算モジュール30は、アクティブポートに関して演算処理の過程で生成されたパラメータであって、hdcpStreamCipherおよびhdcpRekeyCipherに関する演算処理に必要なパラメータS3を、第2演算モジュール32aおよび第3演算モジュール32bへと出力する。
【0050】
第2演算モジュール32aは、自らに割り当てられたポートの同期信号ENC_ENがアサートされると、第1演算モジュール30からパラメータS3を利用して、そのポートのピクセルごとに、hdcpStreamCipherに関する演算を行うとともに、アクティブポートのラインごとにhdcpRekeyCipherに関する演算処理を実行する。
【0051】
第3演算モジュール32bは、自らに割り当てられたポートに対して、第2演算モジュール32aと同様の信号処理を行う。
【0052】
つまり、第1演算モジュール30は、第2演算モジュール32aおよび第3演算モジュール32bと、動作速度が異なっている。具体的には第1演算モジュール30は、133MHzの内部クロックINT_CLKと同期して動作し、第2演算モジュール32aおよび第3演算モジュール32bは、ピクセルクロックPLL_CLKと同期して動作する。内部クロックINT_CLKは、オシレータ70により生成される。
【0053】
第1演算モジュール30および第2演算モジュール32a、第3演算モジュール32bは同様に構成される。第1演算モジュール30は、LFSRモジュール50、ブロックモジュール52、出力部(出力機能)54を備える。第2演算モジュール32aも同様に、LFSRモジュール51、ブロックモジュール53、出力部55を備える。第3演算モジュール32bは、第2演算モジュール32aと同様に構成される。
【0054】
第1演算モジュール30および第2演算モジュール32aの動作を、各処理ごとに説明する。図2(a)〜(f)は、第1演算モジュール30および第2演算モジュール32aの動作を示す図である。LFSRモジュール50(51)、ブロックモジュール52(53)、出力部54(55)の動作は、HDCPの仕様書(High-bandwidth Digital Content Protection System Revision 1.4、2009年7月8日、Digital Content Protection LLC)に準拠したものであるため、詳細はそちらに譲るとして、ここでは第1演算モジュール30および第2演算モジュール32aに分割されている点に着目して、それらの動作を説明する。
【0055】
(I) hdcpBlockCipher
(I−1) 第1認証(Authentication First Part:at Authentication)
図2(a)は、第1認証において、第1演算モジュール30がセッションキーKsを生成する際の動作状態を示す。
1−a)Rekeyディスエーブルとする。
1−b)疑似ランダム値(Pseudo-random value)をAnとする。ブロックモジュール52のBレジスタに初期値としてREPEATER||Anがロードされ、そのKレジスタに初期値として秘密値(Secret value)Kmがロードされる。
1−c)ブロックモジュール52に48クロック与えられる。
1−d)ブロックモジュール52のBレジスタにセッションキーKs[83:0]が生成される。
【0056】
図2(b)は、第1認証において、第1演算モジュール30がデータR、Mを出力する際の動作状態を示す。
1−e)先だって生成されたセッションキーKsを、ブロックモジュール52のKレジスタに代入する。
1−f)ブロックモジュール52のBレジスタには、REPEATER||Anが入力される。
1−g)LFSRモジュール50を、セッションキーKsで初期化する。
1−h)Rekeyイネーブルとし、LFSRモジュール50とブロックモジュール52に56クロック与える。出力部54において最後の4クロックでコードMが、最後の2クロックでRが生成され、それらを保持する。
【0057】
(I−2) 第3認証(Authentication Third Part:at Vertical Blank)
図2(c)は、第3認証において、第1演算モジュール30がフレームキーKを生成する際の動作状態を示す。添え字iは、フレームごとにインクリメントされる変数である。第1演算モジュール30は、ポートごとに、同期信号ENC_EN(もしくはENC_EN’)がアサートされるごとに、以下の処理を実行する。
【0058】
2−a)ブロックモジュール52のBレジスタおよびKレジスタに初期値REPEATER||An、Ksがロードされる。
2−b)ブロックモジュール52に48クロック与えられる。
2−c)ブロックモジュール52のBレジスタに新たなフレームキーK[83:0]が生成される。
【0059】
図2(d)は、第3認証において、第1演算モジュール30がデータRi、Miを出力する際の動作状態を示す。
2−d)直前に生成されたフレームキーK[83:0]をブロックモジュール52のKレジスタに代入する。
2−e)ブロックモジュール52のBレジスタには、REPEATER||Mi−1が代入される。Mi−1はひとつ前のフレームで生成された値を示す。
2−f)LFSRモジュール50を、新たなフレームキーK[55:0]で初期化する。
2−g)Rekeyイネーブルとし、LFSRモジュール50とブロックモジュール52に56クロック与える。出力部54において最後の4クロックでコードMが、最後の2クロックでr’が生成され、それらを保持する。
2−h)Rekeyディスエーブルとする。
【0060】
第1演算モジュール30は、各ポートについて独立に、フレーム毎に処理2−a)〜2−h)を繰り返し実行する。出力部54は、変数iが128の倍数になるごとに、データrを、認証データRとして出力し、レジスタ22に格納する。
【0061】
処理対象がアクティブポートの場合、各フレームごとに、第2演算モジュール32aのLFSRモジュール51およびブロックモジュール53には、第1演算モジュール30のLFSRモジュール50内のすべてのノードの値と、ブロックモジュール52のBレジスタおよびKレジスタの値が入力される。これらの値は、上述のパラメータS3に相当する。
【0062】
第2演算モジュール32aは、自らに割り当てられたポートに関して、第1演算モジュール30からのパラメータS3を受け、hdcpStreamCipherおよびhdcpRekeyCipherに関する演算を行う。具体的には、以下の処理を行う。
【0063】
(II)hdcpStreamCipher
図2(e)は、hdcpStreamCipherに関する処理を行う第2演算モジュール32aの状態を示す。
3−a)次のフレームがHDCP暗号化されたデータストリームであることを示す信号ENC_ENが、第1デコーダ12aから与えられる。
3−b)第1演算モジュール30からパラメータS3、具体的にはLFSRモジュール50内のすべてのノードの値と、ブロックモジュール52内のBレジスタおよびKレジスタの値を受け、それを第2演算モジュール32a内の対応するブロックにコピーする。
3−c)ビデオデータまたはパケットデータが入力されると、LFSRモジュール50とブロックモジュール52をピクセルクロックPLL_CLKで動作させ、出力部54において24ビットの疑似ランダムデータである解除コードS2を生成し、第1復号モジュール40aへと出力する。
【0064】
(III)hdcpRekeyCipher
図2(f)は、hdcpRekeyCipherに関する処理を行う第2演算モジュール32aの状態を示す。
4−a)LFSRモジュール50およびブロックモジュール52をピクセルクロックPLL_CLKで、56サイクル動作させる。
【0065】
第1演算モジュール30と第3演算モジュール32bのペアは、第1演算モジュール30と第2演算モジュール32aのペアと同様に動作する。以上が解除コード生成部26の構成である。
【0066】
レジスタ22には、第1演算モジュール30によりポートごとに算出された認証データRが格納される。DDCインタフェース部(認証処理部)14は、レジスタ22に格納された認証データRを用いて、外部機器との間の認証処理を行う。
【0067】
図1に戻る。第1復号モジュール40aは、第1デコーダ12aからのエンクリプトされたビデオデータまたはパケットデータ(データストリーム)S1aを、第2演算モジュール32aからの解除コードS2bを用いてデクリプトする。具体的に第1復号モジュール40aは、データストリームS1aと解除コードS2aの排他的論理和(ExOR)を演算し、データストリームS1aをデクリプトする。
【0068】
第2復号モジュール40bは、第2デコーダ12bからのエンクリプトされたビデオデータまたはパケットデータ(データストリーム)S1bを、第3演算モジュール32bからの解除コードS2bを用いてデクリプトする。
【0069】
出力セレクタ41は、第1復号モジュール40aによってデクリプトされたデータS4aと第2復号モジュール40bによってデクリプトされたデータS4bを受け、ひとつを選択する。選択されたデータは、出力インタフェース部42を経由して出力端子POUTから出力される。つまり、出力セレクタ41は、チャンネルCH1、CH2の一方を選択する。
【0070】
インタフェース回路100は、第1状態φ1〜第3状態φ3を時分割で切りかえ可能に構成される。図3は、図1のインタフェース回路100の第1セレクタ10a、第2セレクタ10bおよび出力セレクタ41の状態遷移を示す図である。図3は、ポートAがアクティブポート、残りが非アクティブポートであるときの動作を示す。
【0071】
第1状態φ1において、第1セレクタ10aはアクティブポート(ACT)のデータストリームを選択し、第1チャンネルCH1にアクティブポートを割り当てる。第2セレクタ10bは非アクティブポート(INA)のひとつのデータストリームを選択し、第2チャンネルCH2に非アクティブポートのひとつを割り当てる。すべての状態φ1〜φ3において、出力セレクタ41は、アクティブポートを処理しているチャンネルを選択する。非アクティブポートを処理するチャンネルは、動作を停止してもよい。
【0072】
第2状態φ2において、第1セレクタ10aは非アクティブポート(INA)のひとつを第1チャンネルCH1に割りあて、第2セレクタ10bはアクティブポート(ACT)を第2チャンネルCH2に割り当てる。
【0073】
第1状態φ1において第2セレクタ10bが選択する非アクティブポート(INA)と、第2状態φ2において第1セレクタ10aが選択する非アクティブポート(INA)は、サイクリックに、B・C・D・B・C・D…と切りかえられる。
【0074】
第3状態φ3は、第1状態φ1と第2状態φ2の間に挿入される。第3状態φ3において、第1セレクタ10aおよび第2セレクタ10bは、アクティブポート(ACT)のデータストリームを選択する。つまりアクティブポートのデータは、チャンネルCH1、CH2の両方に割り当てられる。出力セレクタ41は、いずれのチャンネルCHを選択してもよいが、確実な動作のために、ひとつ前の状態を維持することが好ましい。なお、セレクタが非常に高速に切りかえ可能な場合には、第3状態φ3は省略しても構わない。
【0075】
以上がインタフェース回路100の構成である。続いてその動作を説明する。まず、アクティブポートに着目したときの動作を図4を参照して説明する。図4は、図1のインタフェース回路100のアクティブポートに関するタイムチャートである。
【0076】
フレーム毎に、垂直同期信号VSYNCがアサートされ、それから528ピクセルクロック後に、同期信号ENC_ENがアサートされる。デコーダ12aもしくは12bによって、アクティブポートの同期信号ENC_ENが検出されると、第1演算モジュール30によってhdcpBlockCipherに関する演算Bが実行され、データrが計算される。そのとき得られるパラメータS3が第2演算モジュール32aまたは第3演算モジュール32bに渡される。第2演算モジュール32aまたは第3演算モジュール32bは、パラメータS3を受け継ぎ、データ区間の間、ピクセルクロックにて、hdcpStreamCipherに関する演算Sを実行する。また1ラインのビデオデータ後のブランク期間の間、hdcpRekeyCipherに関する演算Rを実行する。
【0077】
続いて、図5を参照しながら、アクティブポート、非アクティブポートの動作を説明する。図5は、図3の状態遷移図に対応する、各ポートのレプリカ同期信号ENC_EN’の状態を示す。ポートAがアクティブポートである。ハッチングした部分が、レプリカ同期信号ENC_ENが生成される期間を示す。
【0078】
まず期間t1において、ポートAの同期信号ENC_ENが抽出され、第1演算モジュール30によって、ポートAに接続される外部機器との認証に必要な認証データRが生成される。また、これと平行して、同期信号発生器60は、同期信号ENC_ENのレプリカENC_EN’を生成可能となる。
第1チャンネルCH1は、解除コードS2aを生成し、ポートAのデータストリームS1aを復号する。出力セレクタ41は、復号されたデータストリームS1aを出力する。
【0079】
この間、第2セレクタ10bは、非アクティブポートのひとつであるポートBを選択している。第2デコーダ12bは、ポートBの同期信号ENC_ENを抽出する。これにより、それ以降、ポートBの同期信号ENC_ENのレプリカENC_EN’が、同期信号発生器60によって生成可能となる。第1演算モジュール30は、内部生成されるポートBの同期信号ENC_EN’に応答して、ポートBの認証データRを生成する。この認証データによって、DDCインタフェース部14は、非アクティブポートポートBに接続される外部機器との認証を行い、それを維持し続ける。
【0080】
期間t2に第3状態φ3となる。この間、第1チャンネルCH1の動作は、期間t1と同様であり、アクティブポートAのデータストリームが復号され、出力インタフェース部42へと出力される。
第2チャンネルCH2にもアクティブポートであるポートAのデータストリームが入力される。第2チャンネルは、続く期間t3においてポートAのデータストリームを復号するために待機する。
【0081】
期間t3に第2状態φ2となる。待機していた第2チャンネルCH2は、ポートAのデータストリームの復号を開始する。また期間t3において、第1セレクタ10aは非アクティブポートのひとつであるポートCを選択する。その結果、第1デコーダ12aによってポートCの同期信号ENC_ENが抽出され、同期信号発生器60は、ポートCのレプリカ同期信号ENC_EN’を生成可能となる。第1演算モジュール30は、内部生成されるポートCの同期信号ENC_EN’に応答して、ポートCの認証データを生成する。この認証データによって、DDCインタフェース部14は、非アクティブポートポートCに接続される外部機器との認証を行い、それを維持し続ける。
【0082】
期間t4において、第3状態φ3となる。第2チャンネルCH2は、引き続きポートAのデータストリームの復号を行う。第1チャンネルCH1にもアクティブポートAが割り当てられ、続く期間t5においてアクティブポートAを処理可能とするために待機する。
【0083】
期間t5に第1状態φ1となる。待機していた第1チャンネルCH1は、ポートAのデータストリームの復号を開始する。第2チャンネルCH2には、ポートDのデータが入力される。期間t5において、同期信号発生器60は、ポートDのレプリカ同期信号ENC_EN’を生成可能となる。第1演算モジュール30は、ポートDの同期信号ENC_EN’に応答して、ポートDの認証データRを生成する。この認証データRによって、DDCインタフェース部14は、非アクティブポートポートDに接続される外部機器との認証を行い、それを維持し続ける。
【0084】
期間t6において、第3状態φ3となる。第1チャンネルCH1は、引き続きポートAのデータストリームの復号を行う。第2チャンネルCH2にもアクティブポートAが割り当てられ、続く期間t1においてアクティブポートAを処理可能とするために待機する。
【0085】
以上がインタフェース回路100の動作である。
このインタフェース回路100によれば、アクティブポートのデータ処理を行いつつ、非アクティブポートの認証を行うことができる。具体的には期間t1においてポートBの認証が完了し、期間t3にポートCの認証が完了し、期間t5にポートDの認証が完了する。したがって、アクティブポートが切りかえられた場合に、ゼロから認証し直す必要がないため、ただちにコンテンツデータの暗号解除が可能となる。
【0086】
また、すべてのポートに関して、フレームごとの演算処理を行うモジュール(第1演算モジュール30)と、アクティブポートに関してピクセルごと演算を行うモジュール(第2演算モジュール32a、第3演算モジュール32b)を設けることにより、すべてのポートとのリンクを確立・維持しつつ、アクティブポートのエンクリプトされたデータストリームをデクリプトすることができる。
【0087】
実施の形態に係るインタフェース回路100の利点は、特許文献1の技術との対比によって明確となる。特許文献1に記載の技術では、ポート毎に演算モジュール(エンジン)を設け、各ポートの演算モジュールが、hdcpBlockCipher、hdcpStreamCipherおよびhdcpRekeyCipherすべてに関する演算処理を実行する。したがって、ポート数に比例した個数の演算モジュールが必要となる。
これに対して実施の形態に係るインタフェース回路100によれば、ポートの数が増加しても、演算モジュールの数は2個で足りるため、回路面積を大幅に削減することができる。
【0088】
実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【0089】
1…電子機器、2…ディスプレイパネル、4…パネル駆動部、6…DSP、P1…入力ポート、P2…認証ポート、POUT…出力ポート、10…セレクタ、12…デコーダ、11…デシリアライザ、13…フォーマットコンバータ、15…TMDSデコーダ、14…DDCインタフェース部、20…暗号解除部、22…レジスタ、24…マルチポート制御部、26…解除コード生成部、30…第1演算モジュール、32a…第2演算モジュール、32b…第3演算モジュール、40a…第1復号モジュール、40b…第2復号モジュール、41…出力セレクタ、42…出力インタフェース部、50…LFSRモジュール、52…ブロックモジュール、54…出力部、60…同期信号発生器、70…オシレータ、100…インタフェース回路。

【特許請求の範囲】
【請求項1】
それぞれに外部機器が接続される複数のポートであって、それぞれが、対応する外部機器からの暗号化されたデータストリームが入力される入力ポートと、対応する前記外部機器との間の認証に必要な信号が送受信される認証ポートと、を含む複数のポートと、
複数の入力ポートに入力される前記データストリームを受け、ひとつを選択する第1セレクタと、
複数の入力ポートに入力される前記データストリームを受け、ひとつを選択する第2セレクタと、
前記第1セレクタにより選択されたデータストリームを受け、同期信号を抽出する第1デコーダと、
前記第2セレクタにより選択されたデータストリームを受け、同期信号を抽出する第2デコーダと、
それぞれが前記複数のポートごとに設けられた複数の同期信号発生器であって、それぞれが前記第1デコーダまたは前記第2デコーダから対応するポートの同期信号を受けると、それ以降、対応するポートの同期信号を周期的に生成する、複数の同期信号発生器と、
いずれかの前記同期信号がアサートされると、アサートされた同期信号に対応するポートに接続される外部機器との間で、リンクを確立し、それを維持するための認証データを演算する第1演算モジュールと、
前記第1演算モジュールの演算により得られるデータを利用して、前記第1セレクタにより選択された前記データストリームを解読するための解除コードを生成する第2演算モジュールと、
前記第1演算モジュールの演算により得られるデータを利用して、前記第2セレクタにより選択された前記データストリームを解読するための解除コードを生成する第3演算モジュールと、
前記第1セレクタにより選択された前記データストリームを、前記第2演算モジュールから出力される解除コードを用いて復号する第1復号モジュールと、
前記第2セレクタにより選択された前記データストリームを、前記第3演算モジュールから出力される解除コードを用いて復号する第2復号モジュールと、
前記第1復号モジュールおよび前記第2復号モジュールから出力される、復号された前記データストリームを選択する出力セレクタと、
前記第1演算モジュールによりポートごとに算出された認証データを用いて、各ポートに対応する外部機器との間でリンクを維持する認証処理部と、
を備えることを特徴とするインタフェース回路。
【請求項2】
前記インタフェース回路は、第1状態と第2状態を時分割で切りかえ可能に構成され、
前記第1状態において、前記第1セレクタはアクティブポートのデータストリームを選択し、前記第2セレクタは非アクティブポートのひとつのデータストリームを選択し、前記出力セレクタは、前記第1復号モジュールから出力される復号された前記データストリームを選択し、
前記第2状態において、前記第1セレクタは非アクティブポートのひとつのデータストリームを選択し、前記第2セレクタはアクティブポートのデータストリームを選択し、前記出力セレクタは、前記第2復号モジュールから出力される復号された前記データストリームを選択することを特徴とする請求項1に記載のインタフェース回路。
【請求項3】
前記第1状態において前記第2セレクタにより選択される非アクティブポートと、前記第2状態において前記第1セレクタにより選択される非アクティブポートは、サイクリックに切りかえられることを特徴とする請求項2に記載のインタフェース回路。
【請求項4】
前記インタフェース回路は、前記第1状態と前記第2状態に加えて、第3状態が切りかえ可能に構成され、
前記第3状態において、前記第1、第2セレクタはアクティブポートのデータストリームを選択することを特徴とする請求項3に記載のインタフェース回路。
【請求項5】
前記外部機器からのデータは、少なくとも画像データを含み、
前記第1演算モジュールは、フレームごとに演算処理を実行し、
前記第2、第3演算モジュールは、ピクセルごとに演算処理を実行することを特徴とする請求項1から4のいずれかに記載のインタフェース回路。
【請求項6】
請求項1から5のいずれかに記載のインタフェース回路を備えることを特徴とする電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−80264(P2012−80264A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−222535(P2010−222535)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】