暗号データを供給するための方法、モジュールおよびシステム
暗号データのプライマリソースの出力が利用できない期間中に暗号データを供給する方法が開示される。方法は、該期間の初めに暗号データのプライマリソースから暗号データの代替ソースに切り替えることと、該期間中に代替ソースからの暗号データを使用することと、該期間の終わりにプライマリソースに切り替えることを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に暗号データ(cipher data)のプライマリソースの出力が利用できない期間中において、暗号データを供給するための方法、モジュールおよびシステムに関する。
【背景技術】
【0002】
現代のディジタル用途は、データのセキュアな交換に大きく頼っている。例えば、ディジタルオーディオおよびビデオを含むディジタルコンテンツはたいてい、許可された受取人による後の解読のために暗号化された形式で記憶され、伝送される。当然、多くの暗号化/解読技法が知られている。
【0003】
例えば、High−bandwidth Digital Content Protection(HDCP)プロトコルは、ポイントツーポイントリンクによる高帯域幅ディジタルデータビデオストリームを保護するために使用される。HDCPは例えば、High Definition Multimedia Interface(HDMI)およびDigital Video Interface(DVI)によってビデオソースと相互接続されたディスプレイによって使用される。
【0004】
HDCPは、保護しなければならないデータストリームと後にXORされる(排他論理和がとられる)疑似ランダム暗号化暗号ストリームを生成するために後に使用される暗号エンジンを初期化するために初期認証フェーズを利用する。結果として生じるデータストリームは、暗号化暗号ストリームと同一の解読暗号ストリームを生成し、それを保護されたデータストリームとXORして初期データを復元しなければ解読することができない。単純なHDCP送信側装置/受信側装置システム100が図1に示されている。
【0005】
システム100は送信側装置110および受信側装置120を含む。送信側装置110は、データソース114からのデータを暗号化するためにHDCP暗号データを生成するHDCPエンジン112を含む。暗号データはXORゲート116を用いてデータソースからのデータと結合され、それによって保護されたデータストリーム140を生成する。
【0006】
受信側装置120は、HDCPエンジン112と同様、保護されたデータストリーム140を解読するためにHDCP暗号データを生成するHDCPエンジン122を含む。HDCP暗号データは、XORゲート126を用いて保護されたデータストリーム140と結合され、その出力はデータシンク124に向けられる。
【0007】
HDCPエンジン112および122は、それらが要求された暗号化/解読を実行する許可を与えられていることを保証し、それらが互いに同期されていることを保証するために制御および認証情報130を交換する。
【0008】
送信側装置110および受信側装置120は周期的に再初期化(すなわち鍵再生成(re-key))しなければならない。これは、送信側装置110によって供給されたビデオの各ラインについて、そしてビデオの各フレームについて行われる。鍵再生成(re-keying)は送信側装置110が受信側装置120と同期していることを確実にする。各ラインの後、HDCPシステムは、一般に58サイクルかかるソフトな鍵再生成を実行する。各フレームの後、ハードな鍵再生成が実行され、それには142サイクルが割り当てられている。
【0009】
残念なことに、暗号化は、暗号エンジン112および122がそれらの期間の間は暗号化データを生成しないので、鍵再生成期間中、不可能である。HDCPは一般にラスター化ビデオを保護するために使用されるので、垂直および水平ブランク間隔はこの周期的な鍵再生成に適応しており、暗号エンジン112および122がデータストリームの暗号化または解読に影響を及ぼすことなく間欠的な暗号化/解読暗号ストリームを生成するのを可能にする。
【0010】
図2は、HDCPラスター化ビデオ200の例を示している。ラスター化ビデオはアクティブビデオデータ210を含み、その間HDCPはアクティブである。ラスター化ビデオはまた、従来の垂直および水平帰線消去間隔に対応する垂直220および水平ブランク230を含む。補助データ222は帰線消去間隔に任意選択で埋め込むことができる。暗号化および解読ストリームは、補助データを含んでいない垂直および水平ブランク220および230のそれらの部分240について中断する。毎フレーム鍵再生成(per frame re-keying)240および毎ライン鍵再生成(per-line re-keying)は、垂直および/または水平ブランク220および230の間に生じることができる。
【0011】
HDCPは、ディジタル・コンテント・プロテクション(Digital Content Protection, LLC)から入手可能なHDCP仕様書改訂1.2および1.3においてより詳細に述べられており、その内容はこれによって参照により採り入れられる。
【0012】
残念なことに、必ずしも全部のデータストリームがHDCP鍵再生成に適応するために十分な間隔(例えば中断)を含むわけではない。そのようなストリームは従来のHDCPプロトコルを用いた暗号化に向いていない。例えば、HDCPは、非ラスター化ビデオ、または他のデータストリームと連係した使用には向いていない。
【0013】
例えば、近く公開されるDisplayPortプロトコルは、HDCP鍵再生成に適応するために十分な中断を含まない新しいビデオ相互接続を規定している。より詳しくは、DisplayPortは当初、単一ストリームラスター化ビデオに意図されていたが、データストリームに予測可能な中断が存在しない非ラスター化多重ストリーム用途まで拡張され得る。DisplayPortは、ビデオエレクトロニクス標準協会(VESA)により出版された、DisplayPort規格バージョン1.0および1.1においてより詳細に記載されており、その内容はこれによって参照により採り入れられる。
【0014】
鍵再生成を必要としない新しい暗号化プロトコルは、そのようなストリームのための選択肢である。しかし、HDCPはすでに産業界に受け入れられており、そしてHDCPエンジンはすでに多くの受信側装置および送信側装置の一部を形成している。
【発明の概要】
【発明が解決しようとする課題】
【0015】
従って、間欠的な暗号化ストリームを供給するHDCPシステムにおいて使用されるものといった暗号エンジンを用いて多様なデータストリームの暗号化を可能にする新しい暗号化技法の必要性が存在する。
【課題を解決するための手段】
【0016】
本発明の実施形態の例示的なプライマリ暗号エンジンは、間欠的暗号化ストリームを生成する。プライマリ暗号エンジンは、プライマリエンジンが暗号データを供給していない間に使用され得る暗号データの第2のソースとともに使用されるとしてよい。1実施形態において、プライマリ暗号エンジンはHDCP暗号エンジンであり、第2の暗号エンジンはHDCP暗号エンジンが鍵再生成している間に出力され得る未使用疑似ランダムデータのストリームを生成する。
【0017】
一部の実施形態において、これは、いずれかの期間にわたりデータストリームよりも高いレートでHDCP暗号エンジンを動作させることによって達成される。これがデータソースおよびシンクの両方において同期した様態で行われた場合、結果として生じるオペレーションは、暗号化および/または解読が単に鍵再生成間隔以外だけでなく常に生じることができるので、あたかも鍵再生成間隔がまったく存在しないように見える。これは鍵再生成間隔によって課される制約を排除し、HDCPをよりいっそう多くの状況において、最も顕著にはDisplayPort規格において、適用できるようにする。
【0018】
本発明の態様によれば、暗号データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法が提供され、方法は、期間の初めに暗号データのプライマリソースから暗号データの代替ソースに切り替えることと、期間中に代替ソースからの暗号データを使用することとを含む。
【0019】
本発明の別の態様によれば、データストリームを暗号化または解読するための暗号データ用プライマリソースと、暗号データの代替ソースと、プライマリソースの出力が利用できない期間中に暗号データ用代替ソースに切り替えるためのスイッチとを含む、暗号化モジュールが提供される。
【0020】
本発明のまた別の態様によれば、暗号化システムが提供され、これは、暗号化暗号データ用プライマリソースと、暗号化暗号データ用代替ソースと、暗号化データ用プライマリソースの出力が利用できない期間中に暗号化データ用代替ソースに切り替えその期間の後に暗号化データ用プライマリソースに戻すためのスイッチとを備えており、暗号化データは暗号化されたデータストリームを生成するためにデータストリームを暗号化するためのものである、送信側モジュールおよび、解読暗号データ用プライマリソースと、解読暗号データ用代替ソースと、期間中に解読データ用代替ソースに切り替えるためのスイッチとを備えており、解読データは解読されたデータストリームを生成するために暗号化されたデータストリームを解読するためのものである、受信側モジュールを含む。
【0021】
本発明の他の態様および特徴は、本発明の特定の実施形態の以下の説明を精査すれば、当業者には明瞭となるであろう。
【0022】
図には本発明の実施形態を例証としてのみ例示する。
【図面の簡単な説明】
【0023】
【図1】HDCPシステムのブロック図である。
【図2】HDCPラスター化ビデオのブロック図である。
【図3】本発明の1実施形態の例示的な方法のフローチャートである。
【図4】本発明の実施形態の例示的な暗号化モジュールのブロック図である。
【図5】本発明の実施形態の例示的な暗号化システムのブロック図である。
【図6】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図7】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図8】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図9】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図10】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図11】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図12】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【発明を実施するための形態】
【0024】
本発明の実施形態は、HDCPにおける鍵再生成の間といったプライマリソースが利用できない時にアクセスすることができる暗号データの代替ソースを使用する。
【0025】
本発明の1実施形態は、暗号化データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法であり、それをここで図3に関して説明する。
【0026】
図示の通り、方法は、期間の初めに暗号データプのライマリソースから暗号データの代替ソースに切り替えること含む(ステップ302)。暗号データは疑似ランダムデータであるとしてよい。例えば、暗号データは従来のHDCP暗号化エンジンによって出力された暗号データであるとしてよい。
【0027】
次に、代替ソースからの暗号データが期間中に使用され得る(ステップ304)。期間の終わりにプライマリソースからの暗号データが再び使用され得る(ステップ306)。
【0028】
期間は、HDCPまたは類似の鍵再生成の間といった、プライマリソースからの暗号データが利用できない期間であるとしてよい。鍵再生成期間は例えば、データの各フレームごとの前かつ/またはデータの各ラインの前にあるとしてよい。しかし、十分に理解される通り、本発明は鍵再生成期間に限定されない。プライマリソースが利用できないあらゆる期間とすることができる。例えば、プライマリソースの故障中、またはプライマリソースが別様に使用されている時、それによりそれは対象のデータストリームについて利用できない。
【0029】
暗号データの代替ソースはバッファであるとしてよい。そうした場合、方法はさらに、後の使用のために暗号データの一部をプライマリソースからバッファへ転送することを含み得る。
【0030】
例えば、プライマリ暗号ソースが暗号化されるデータよりも高いレートで暗号データを生成する場合、暗号データは、暗号化エンジンがデータを供給するのをやめたその間隔における使用のためにバッファされるとしてよい。
【0031】
極めて特定的な例において、HDCP暗号エンジンは、DisplayPortデータを暗号化するために使用されるとしてよい。HDCP暗号データは一般に3バイト/サイクルで生成されるのに対し、DisplayPortデータの各レーンは1バイト/サイクルを要求するにすぎない。1または2レーンについて1つのHDCP暗号エンジンが存在する場合、1バイト/サイクルが、バッファが満杯になるまでバッファに向けて送られ得る。このようにして、本発明の実施形態において、方法はさらに、鍵再生成期間の後に所定の期間にわたり過剰な暗号データをバッファに向けて送ることを含む。HDCPにおける代表的な最悪ケースのシナリオは、142サイクルを必要とするフレーム鍵再生成であるので、好ましい実施形態におけるバッファは暗号化または解読されるデータの各レーンについて142バイトを保持する。場合によっては、過剰な暗号データは、暗号化または解読されるデータストリームよりも高いレートで暗号データを生成することによって生成される。
【0032】
バッファはFIFO(先入れ先出し)バッファであるとしてよい。
【0033】
これは、プライマリHDCP暗号エンジンが鍵再生成期間中といった利用できない時にHDCP暗号エンジンによる暗号化および/または解読を続行可能にする。これは転じて、データストリームに予測可能な中断を欠いている非ラスター化ビデオデータを暗号化可能にする。都合のよいことに、非ラスター化ビデオデータは、結果として生じる暗号化ストリームを用いて暗号化され得る。特定の実施形態において、方法はDisplayPortデータを暗号化または解読することをさらに含む。
【0034】
代替的な実施形態において、暗号化データの第2のソースは第2のHDCP暗号エンジンであるとしてよい。
【0035】
図4は、本発明の実施形態において例示的な暗号化モジュール400を図示している。暗号化モジュール400は、暗号データ用プライマリソース402、暗号データ用代替ソース404およびスイッチ406を含む。プライマリおよび代替ソース402、402によって生成された暗号データは、データストリーム410を暗号化または解読するためのものである。スイッチ406はプライマリソース402の出力が利用できない期間中に暗号データ用代替ソース404に切り替えるとしてよい。スイッチ406は例えば、暗号データ402が利用できないまさしくその時に切り替えることができよう。代替として、スイッチ406は、暗号データが常に利用できるような定期(または不定期)間隔で暗号データ402と暗号404との間で切り替えることができよう。代替として、スイッチ406は制御可能スイッチまたはマルチプレクサであるとしてよい。スイッチ406は代替として、ソース402および404のどちらか一方または両方からの暗号化データが記憶されるメモリまたはバッファへのレジスタまたは他のポインタとしてインプリメントすることもできよう。ポインタ/レジスタは、どちらか一方のソースからの暗号データ間で選択するために更新することができよう。代替として、スイッチ406は、当業者によって理解されるソース402および404間で選択するためのいずれかの他の装置または機能ブロックとすることができよう。
【0036】
一部の実施形態において、代替ソース404は上述の通りバッファである。場合によっては、モジュール400は、暗号データの一部をプライマリソースからバッファに向けて送る機能ブロックを含む。機能ブロックは、マルチプレクサ、スイッチ等の形態を取ることができよう。場合によっては、バッファに向けて送られる暗号データの部分は、暗号化または解読に必要とされない過剰な暗号データである。例えば、制御信号は暗号化されないので、従って制御信号を含むデータストリーム410の部分は暗号データを必要としない。一般に、制御信号がデータストリーム410に現れる時に生成される暗号データは絶対に使用されないので、従ってそれはバッファに転送されるために利用できる。
【0037】
プライマリソース402は代替として、暗号データの部分がバッファに向けて送られている間、加速レートで暗号データを生成することができる。場合によっては、プライマリソース402は常にこの加速レートで動作する。常に同じレートで動作することは、バッファが満杯か否かに応じてレートを変えることよりも単純であり、より少ない制御を必要とする。一部の実施形態において、バッファに向けて送られる暗号データの部分は、暗号化または解読されるデータストリーム410が制御データを含む時に生成された暗号データである。
【0038】
やはり、暗号データはHDCP暗号データであるとしてよい。
【0039】
図5に言及すれば、本発明の別の実施形態の例示的な暗号化システム500は、送信側モジュール510および受信側モジュール520を含む。送信側モジュール510は、暗号化暗号データ用プライマリソース512、暗号化暗号データ用代替ソース514および、暗号化データ用プライマリソース512の出力が利用できない期間中に暗号化データ用代替ソース514に切り替え、その期間後にHDCP暗号化データ用プライマリソース512に戻すためのスイッチ516を含む。暗号化暗号データは、暗号化されたデータストリーム540を生成するためにデータストリーム530を暗号化するために使用される。受信側モジュール520は、解読暗号データ用プライマリソース522、解読暗号データ用代替ソース524および、期間中に解読データ用代替ソース524に切り替え、そして期間後に解読データ用プライマリソース522に戻すためのスイッチ526を含む。解読暗号データは、解読されたデータストリーム550を生成するために暗号化されたデータストリーム540を解読するためのものである。
【0040】
一部の実施形態において、送信側モジュール510および受信側モジュール520の各々のスイッチ516、526は、鍵再生成期間の初めにそれぞれの代替ソース514、524に切り替え、鍵再生成期間の終わりにそれぞれのプライマリソース512、522に戻すように適応されている。
【0041】
一部の実施形態において、送信側モジュール510は暗号化データをデータストリーム530と結合するためのXORゲートをさらに含む。同様に、受信側モジュール520の一部の実施形態は、解読データを暗号化されたデータストリーム540と結合するためのXORゲートをさらに含む。
【0042】
やはり、暗号データはHDCP暗号データであるとしてよい。
【0043】
システム500はDisplayPortプロトコル用に適応されているとしてよい。そのような場合、送信側モジュール510はレーンスキューイング(lane skewing)前のリンク層とPHY(物理層)との間のインタフェースに配置することができ、受信側モジュール520はレーンデスキューイング(lane de-skewing)前のリンク層とPHYとの間のインタフェースに配置することができる。
【0044】
十分に理解され得るように、本発明の一部の実施形態は、暗号エンジンの出力が利用できない鍵再生成期間中に暗号エンジンの出力の代わりにバッファされ出力され得る過剰な疑似ランダムデータを必要とする。必要とされるバッファリングの量、暗号エンジンがクロックされる必要があるレート、暗号エンジンが前記レートでクロックされる期間および、ソースまたは送信側装置エンジンとシンクまたは受信側装置エンジンとの間の同期メカニズムは、個々の用途に依存し、設計者の裁量である。
【0045】
HDCP暗号データをDisplayPortにマップするための特定的な解決策をここで図6〜14に関して説明する。
【0046】
DisplayPortは高帯域幅ポイントツーポイントディジタル相互接続解決策であり、それは最終的に、各々が162MB/秒または270MB/秒どちらかのデータを転送することができる現在は1、2または4データレーンをサポートするスケーラブルリンクによって多数のデータフォーマットおよびタイプをサポートすることができる。
【0047】
HDCPの出力暗号は最大3B/サイクルまでの疑似ランダムデータ生成することができるのに対し、DisplayPortはアクティブレーンの数に応じて1B、2Bまたは4B/サイクルいずれかの暗号データを必要とする。1および2レーンの場合、HDCP暗号の単一インスタンス(instance)を使用することができ、4レーンの場合には、HDCP暗号の2インスタンスを使用することができる。もし過剰分をバッファし、かつ鍵再生成がアクティブでない時に出力ストリームの必要性を満たすことの両方に十分なHDCP疑似ランダムデータが利用できることを保証するために4レーン構成をオーバークロック(overclock)させたいのであれば、全部の場合に単一エンジンを使用することができるということに留意されたい。
【0048】
1つ以上の暗号エンジンが送信側装置ロジックと同じレートでクロックされる場合、それは、それぞれ1/2/4レーン構成に必要とされるものよりも(3/1)/(3/2)/(2・3/4)=3×/1.5×/1.5×多いデータを生成する。生成された過剰なデータの一部または全部は、未定の期間バッファに格納されてから、鍵再生成されている間、暗号が利用できない期間中に出力され得る。結果として得られるインプリメンテーションが図6に示されている。
【0049】
図6において、HDCPモジュール600は、4レーンのデータ630、640、650および660にサービスするために2つのHDCP暗号エンジン610および620を備える。第1の暗号エンジン610は、マルチプレクサ614に直接2B/サイクルの暗号データを、そしてFIFOバッファ612に1B/サイクルを供給する。FIFO612の出力もまたマルチプレクサ614に供給される。マルチプレクサ614はまた、暗号エンジン610が鍵再生成モードにあるか否かを指示する信号REKEY−EN616を入力として有する。この場合、値0がアクティブモードを表し、値1が鍵再生成モードを表す。従って、マルチプレクサ614が0を受け取った時に、暗号データは暗号エンジン610からXORゲート618および619に向けて送られて、それぞれレーン630および640からのデータと結合されてそれぞれの暗号化されたデータレーン635および645を生成する。同じ設定が第2の暗号エンジン620について反映される。すなわち、2B/サイクルの暗号データがマルチプレクサ624に直接供給され、そして1B/サイクルがFIFOバッファ622に供給される。FIFO622からの出力もやはりマルチプレクサ624に向かう。マルチプレクサ624はまた、暗号エンジン620が鍵再生成モードにあるか否かを指示する信号REKEY_EN626を入力として有する。マルチプレクサ624が0を受け取った時に、暗号データは暗号エンジン620からXORゲート628および629に向けて送られて、それぞれレーン650および660からのデータと結合されてそれぞれの暗号化されたデータレーン655および665を生成する。
【0050】
暗号がクロックされるレート、およびそれらが加速レートで走行する期間は、鍵再生成期間中にデータストリームを暗号化するためにFIFO612、622に格納された十分な過剰なデータが存在する限り、完全に設計者の裁量である。HDCPの場合、毎フレーム方式で142サイクル分のデータまたは毎ライン方式で58サイクル分のデータが利用できなければならず、ここで「フレーム」および「ライン」の概念は用途に適合するように定義することができる。「ライン」および「フレーム」の文字通りの定義はラスター化ビデオデータの場合にあてはまるが、それほど構造化されていないデータパターンの場合、「ライン」は(帰線消去開始“BS”によって指示される)帰線消去開始制御シンボル間の時間として定義することができるであろうし、そして「フレーム」は512BS制御シンボルごとに生起する連続スクランブラリセット(“SR”)制御シンボル間の時間として定義することができよう。
【0051】
それらが同じ過剰データを生成することを保証するソースおよびシンク装置のHDCPエンジン間の同期は、過剰バイトが識別され格納のためにタグ付けされる単純なアプリオリ定義戦略によって維持され得る。例えば、暗号はデータストリームと同じレートで走行することができる。最初の256Bの過剰データは、鍵再生成期間の終わりの後に記憶されてから、次の鍵再生成期間までバッファされるとしてよい。バッファは、ソースおよびシンクが各期間に同じFIFO状態で始動するのを保証するために各々の鍵再生成期間の終わりにフラッシュされる。
【0052】
HDCPモジュール600の別の構成が図7に例証されている。図示の通り、HDCPモジュール700はモジュール600の一半分だけを、すなわちHDCP暗号エンジン610によってサービスされる半分を表す。この構成では、XORゲート619への出力を備える付加的なマルチプレクサ615が存在する。暗号エンジン610は、1B/サイクルをマルチプレクサ614に、1B/サイクルをマルチプレクサ615に、そして1B/サイクルをFIFO612に向けて送る。
【0053】
上述の通り、本発明の実施形態は、DisplayPortの1、2または4レーン構成に適用することができる。2レーン構成についてのタイミング図が図8に示されている。図8のタイミング図は、以下の12の信号のタイミングを示している。クロックであるLANE_CLK810;HDCPエンジンが鍵再生成モードにあるか否かを指示するREKEY_EN815;HDCP暗号エンジンからの出力であるHDCPout[7:0]820、HDCPout[15:8]825およびHDCPout[23:16]830;暗号データを出力するようにFIFOに合図するFIFO_REN835;FIFOからの出力であるFIFOout[7:0]840およびFIFOout[15:8]845;FIFOが補充されていることを指示するFIFO_WEN850;FIFOへの入力であるFIFOin855;2レーンを暗号化または解読するために使用される暗号データを表すLane0Mask860およびLane1Mask865。最初の時間ブロックは通常のHDCPオペレーション870であり、その間にHDCP出力820および825はデータをLane0Mask860およびLane1Mask865に供給する。FIFO出力840および845はイナクティブである。この例の目的で、FIFOはタイミング図の開始時にすでに満杯である。次の時間ブロックはHDCPキープアウトまたは鍵再生成期間875であり、その間にFIFO出力840および845はデータをLane0Mask860およびLane1Mask865に供給する。HDCP出力820、825および830はこの間イナクティブである。REKEY−EN815はこの期間中1の値を有し、他の全部の時間には0を有する。次の時間ブロックはFIFO再ロード期間880であり、その間にFIFOin855はFIFOを再ロードするためにHDCPout[23:16]830からデータを受け取る。FIFO_WEN850はこの期間中1の値を有し、他の全部の時間には0の値を有する。他の全部の信号はあたかもHDCP通常オペレーション870の間のように動作する。
【0054】
4レーン構成の場合、タイミング図は第2のHDCPエンジンについて繰り返される。単レーン構成の場合、Lane1Mask865が存在せず、それはFIFOout[15:8]845が使用されないことを意味する。それ以外、タイミングは同じである。
【0055】
1レーン構成において、1B/サイクルのHDCP暗号データだけが暗号化または解読に要求されるので、従って暗号エンジンは半分のレートで走行することができる。2レーン構成に加えて、1レーン構成を半分のレートで可能にする本発明の実施形態をここで図9に関して説明する。HDCPモジュール900は、マルチプレクサ614および615とXORゲート618との間の付加的なマルチプレクサ620を除いて、図7に関して説明したHDCPモジュール700と同じである。マルチプレクサ620への入力は、マルチプレクサ614および615からの出力のほか、EVEN_ODD信号622である。マルチプレクサ615からの出力はまたXORゲート619にも向かう。単レーンモードにおいて、XORゲート619が配置されたレーンはイナクティブであり、HDCP暗号エンジン610は1/2レートで走行し、EVEN_ODD信号622は0と1の間で振動する。振動信号622は、マルチプレクサ614および615の出力の組合せであるマルチプレクサ620の出力となる。2レーンモードにおいて、HDCP暗号エンジン610はフルレートで走行し、EVEN_ODD信号は0の値を有する。図10はこの実施形態の単レーンモードのタイミング図であり、そして図11は2レーンモードのタイミング図である。
【0056】
図10のタイミング図は、Lane1Mask865を除き図8と同じ全部の信号を含む。それは1つの付加的な信号EVEN_ODD1010を有し、それは全部の時間ブロックの間、振動する。
【0057】
図11は、図10に関して説明したEVEN_ODD信号を含むということ以外、図8と同じである。図11において、EVEN_ODD信号は0の値を維持し、従ってHDCPモジュールは図8に関して説明した2レーンモードと同様にして動作する。
【0058】
代替として、単レーンモードにおいて、HDCPエンジンは1/3レートで走行することができよう。この実施形態において、バッファに向けて送られる暗号データは、データストリームが制御信号を含む時に使用されない暗号データでなければならないであろう。
【0059】
別の代替的な実施形態において、HDCP暗号エンジンは4B/サイクルで出力するように修正されるとしてよい。これは、1つのHDCP暗号エンジンが4レーンのDisplayPortデータにサービスすることを可能にする。バッファはデータストリームが制御データを含む時に使用されていないHDCP出力で満たされる。図12は、この解決策の1実施形態に従ったHDCPモジュール1200の概略図である。
【0060】
HDCPモジュール1200のHDCP暗号エンジン1210は4B/サイクルを出力し、1バイトずつ4つのマルチプレクサ1230、1232、1234および1236の各々に向かう。各マルチプレクサはまた入力としてそれぞれのFIFO1211、1212、1214および1216の出力を有する。4つ全部のFIFOは入力としてKcode信号1220を有し、それはデータストリーム1250、1260、1270および1280が制御信号を含むことを指示する。HDCP暗号エンジン1210からの出力は、データストリーム1250、1260、1270および1280が制御信号を含む場合、FIFO1211、1212、1214および1216に向けて送られる。マルチプレクサ1230、1232、1234および1236はすべてREKEY−EN信号1225を入力として受け取る。HDCP暗号エンジンが鍵再生成モードにあることをこの信号1225が指示した場合、それらは各自のFIFOからの暗号データを各自の出力として使用する。以前の例と同様、マルチプレクサからの出力はXORゲート1240、1242、1244および1246に向けて送られ、そこで暗号データはデータストリーム1250、1260、1270および1280と結合されてそれぞれ出力データストリーム1245、1255、1265および1275を生成する。
【0061】
代替として、そしてより一般的に、HDCP暗号エンジン1210は、Nレーンについて要求されるよりも高いレートでクロックされることができよう。例えば、HDCPサイファー1210は、各レーンのデータレート、レートN/(N−M)で暗号データを供給するレートでクロックされることができよう。その場合、暗号データのN単位ごとのうちのM個が後の使用のためにFIFOに供給されるとしてよい。
【0062】
試みることができる代替的な解決策は、要求されるよりも大きなデータレートで走行し、他のエンジンの鍵再生成間隔を隠すために1つのHDCPエンジンの出力を使用する、複数のHDCPエンジンを利用することである。1つのエンジンが鍵再生成されている時、すなわちその出力がディスエーブルである時に、他の暗号エンジンがデータストリームを暗号化するために使用されるであろう。この付加的暗号化は、もしそれが使用されるのを待って遊んでいるのであれば付加的なサイファーをイネーブルにするか、またはそのサイファーが現在鍵再生成しているストリームによって要求される付加的な疑似ランダムデータを生成するためにそれをオーバークロックさせるかのどちらかによって、達成することができよう。
【0063】
この解決策の場合、鍵再生成間隔中の使用のために常に1つの暗号エンジンが利用可能でなければならず、そしてエンジンの鍵再生成は十分にずらされ、全部の暗号エンジンが同時に鍵再生成を要求している期間が決して存在してはならない。また、暗号インスタンスの絶対数または、所与のいずれかの時に要求量の疑似ランダムデータを供給するために任意の数の利用可能なインスタンスをオーバークロックできる能力のどちらかによって、HDCPエンジンのプール内に十分な帯域幅が存在しなければならない。
【0064】
今や十分に理解されるはずであるように、ここで説明した方法はハードウェア、ソフトウェアまたはそれらの組合せにおいて実施することができる。例えば、コンピュータによってインプリメントされた時にそれぞれの方法を実行するコンピュータ可読命令がそれに記憶されているコンピュータ可読媒体。それらはハードウェア、ソフトウェアまたはそれらの組合せを用いて実施することができる。
【0065】
説明したものは単に本発明の原理の応用を例証するにすぎない。それどころか、他の装置および方法が本発明の範囲を逸脱することなく当業者によって実施することができる。
【技術分野】
【0001】
本発明は、特に暗号データ(cipher data)のプライマリソースの出力が利用できない期間中において、暗号データを供給するための方法、モジュールおよびシステムに関する。
【背景技術】
【0002】
現代のディジタル用途は、データのセキュアな交換に大きく頼っている。例えば、ディジタルオーディオおよびビデオを含むディジタルコンテンツはたいてい、許可された受取人による後の解読のために暗号化された形式で記憶され、伝送される。当然、多くの暗号化/解読技法が知られている。
【0003】
例えば、High−bandwidth Digital Content Protection(HDCP)プロトコルは、ポイントツーポイントリンクによる高帯域幅ディジタルデータビデオストリームを保護するために使用される。HDCPは例えば、High Definition Multimedia Interface(HDMI)およびDigital Video Interface(DVI)によってビデオソースと相互接続されたディスプレイによって使用される。
【0004】
HDCPは、保護しなければならないデータストリームと後にXORされる(排他論理和がとられる)疑似ランダム暗号化暗号ストリームを生成するために後に使用される暗号エンジンを初期化するために初期認証フェーズを利用する。結果として生じるデータストリームは、暗号化暗号ストリームと同一の解読暗号ストリームを生成し、それを保護されたデータストリームとXORして初期データを復元しなければ解読することができない。単純なHDCP送信側装置/受信側装置システム100が図1に示されている。
【0005】
システム100は送信側装置110および受信側装置120を含む。送信側装置110は、データソース114からのデータを暗号化するためにHDCP暗号データを生成するHDCPエンジン112を含む。暗号データはXORゲート116を用いてデータソースからのデータと結合され、それによって保護されたデータストリーム140を生成する。
【0006】
受信側装置120は、HDCPエンジン112と同様、保護されたデータストリーム140を解読するためにHDCP暗号データを生成するHDCPエンジン122を含む。HDCP暗号データは、XORゲート126を用いて保護されたデータストリーム140と結合され、その出力はデータシンク124に向けられる。
【0007】
HDCPエンジン112および122は、それらが要求された暗号化/解読を実行する許可を与えられていることを保証し、それらが互いに同期されていることを保証するために制御および認証情報130を交換する。
【0008】
送信側装置110および受信側装置120は周期的に再初期化(すなわち鍵再生成(re-key))しなければならない。これは、送信側装置110によって供給されたビデオの各ラインについて、そしてビデオの各フレームについて行われる。鍵再生成(re-keying)は送信側装置110が受信側装置120と同期していることを確実にする。各ラインの後、HDCPシステムは、一般に58サイクルかかるソフトな鍵再生成を実行する。各フレームの後、ハードな鍵再生成が実行され、それには142サイクルが割り当てられている。
【0009】
残念なことに、暗号化は、暗号エンジン112および122がそれらの期間の間は暗号化データを生成しないので、鍵再生成期間中、不可能である。HDCPは一般にラスター化ビデオを保護するために使用されるので、垂直および水平ブランク間隔はこの周期的な鍵再生成に適応しており、暗号エンジン112および122がデータストリームの暗号化または解読に影響を及ぼすことなく間欠的な暗号化/解読暗号ストリームを生成するのを可能にする。
【0010】
図2は、HDCPラスター化ビデオ200の例を示している。ラスター化ビデオはアクティブビデオデータ210を含み、その間HDCPはアクティブである。ラスター化ビデオはまた、従来の垂直および水平帰線消去間隔に対応する垂直220および水平ブランク230を含む。補助データ222は帰線消去間隔に任意選択で埋め込むことができる。暗号化および解読ストリームは、補助データを含んでいない垂直および水平ブランク220および230のそれらの部分240について中断する。毎フレーム鍵再生成(per frame re-keying)240および毎ライン鍵再生成(per-line re-keying)は、垂直および/または水平ブランク220および230の間に生じることができる。
【0011】
HDCPは、ディジタル・コンテント・プロテクション(Digital Content Protection, LLC)から入手可能なHDCP仕様書改訂1.2および1.3においてより詳細に述べられており、その内容はこれによって参照により採り入れられる。
【0012】
残念なことに、必ずしも全部のデータストリームがHDCP鍵再生成に適応するために十分な間隔(例えば中断)を含むわけではない。そのようなストリームは従来のHDCPプロトコルを用いた暗号化に向いていない。例えば、HDCPは、非ラスター化ビデオ、または他のデータストリームと連係した使用には向いていない。
【0013】
例えば、近く公開されるDisplayPortプロトコルは、HDCP鍵再生成に適応するために十分な中断を含まない新しいビデオ相互接続を規定している。より詳しくは、DisplayPortは当初、単一ストリームラスター化ビデオに意図されていたが、データストリームに予測可能な中断が存在しない非ラスター化多重ストリーム用途まで拡張され得る。DisplayPortは、ビデオエレクトロニクス標準協会(VESA)により出版された、DisplayPort規格バージョン1.0および1.1においてより詳細に記載されており、その内容はこれによって参照により採り入れられる。
【0014】
鍵再生成を必要としない新しい暗号化プロトコルは、そのようなストリームのための選択肢である。しかし、HDCPはすでに産業界に受け入れられており、そしてHDCPエンジンはすでに多くの受信側装置および送信側装置の一部を形成している。
【発明の概要】
【発明が解決しようとする課題】
【0015】
従って、間欠的な暗号化ストリームを供給するHDCPシステムにおいて使用されるものといった暗号エンジンを用いて多様なデータストリームの暗号化を可能にする新しい暗号化技法の必要性が存在する。
【課題を解決するための手段】
【0016】
本発明の実施形態の例示的なプライマリ暗号エンジンは、間欠的暗号化ストリームを生成する。プライマリ暗号エンジンは、プライマリエンジンが暗号データを供給していない間に使用され得る暗号データの第2のソースとともに使用されるとしてよい。1実施形態において、プライマリ暗号エンジンはHDCP暗号エンジンであり、第2の暗号エンジンはHDCP暗号エンジンが鍵再生成している間に出力され得る未使用疑似ランダムデータのストリームを生成する。
【0017】
一部の実施形態において、これは、いずれかの期間にわたりデータストリームよりも高いレートでHDCP暗号エンジンを動作させることによって達成される。これがデータソースおよびシンクの両方において同期した様態で行われた場合、結果として生じるオペレーションは、暗号化および/または解読が単に鍵再生成間隔以外だけでなく常に生じることができるので、あたかも鍵再生成間隔がまったく存在しないように見える。これは鍵再生成間隔によって課される制約を排除し、HDCPをよりいっそう多くの状況において、最も顕著にはDisplayPort規格において、適用できるようにする。
【0018】
本発明の態様によれば、暗号データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法が提供され、方法は、期間の初めに暗号データのプライマリソースから暗号データの代替ソースに切り替えることと、期間中に代替ソースからの暗号データを使用することとを含む。
【0019】
本発明の別の態様によれば、データストリームを暗号化または解読するための暗号データ用プライマリソースと、暗号データの代替ソースと、プライマリソースの出力が利用できない期間中に暗号データ用代替ソースに切り替えるためのスイッチとを含む、暗号化モジュールが提供される。
【0020】
本発明のまた別の態様によれば、暗号化システムが提供され、これは、暗号化暗号データ用プライマリソースと、暗号化暗号データ用代替ソースと、暗号化データ用プライマリソースの出力が利用できない期間中に暗号化データ用代替ソースに切り替えその期間の後に暗号化データ用プライマリソースに戻すためのスイッチとを備えており、暗号化データは暗号化されたデータストリームを生成するためにデータストリームを暗号化するためのものである、送信側モジュールおよび、解読暗号データ用プライマリソースと、解読暗号データ用代替ソースと、期間中に解読データ用代替ソースに切り替えるためのスイッチとを備えており、解読データは解読されたデータストリームを生成するために暗号化されたデータストリームを解読するためのものである、受信側モジュールを含む。
【0021】
本発明の他の態様および特徴は、本発明の特定の実施形態の以下の説明を精査すれば、当業者には明瞭となるであろう。
【0022】
図には本発明の実施形態を例証としてのみ例示する。
【図面の簡単な説明】
【0023】
【図1】HDCPシステムのブロック図である。
【図2】HDCPラスター化ビデオのブロック図である。
【図3】本発明の1実施形態の例示的な方法のフローチャートである。
【図4】本発明の実施形態の例示的な暗号化モジュールのブロック図である。
【図5】本発明の実施形態の例示的な暗号化システムのブロック図である。
【図6】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図7】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図8】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図9】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【図10】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図11】本発明の実施形態の例示的なHDCPモジュールについてのタイミング図である。
【図12】本発明の実施形態の例示的なHDCPモジュールのブロック図である。
【発明を実施するための形態】
【0024】
本発明の実施形態は、HDCPにおける鍵再生成の間といったプライマリソースが利用できない時にアクセスすることができる暗号データの代替ソースを使用する。
【0025】
本発明の1実施形態は、暗号化データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法であり、それをここで図3に関して説明する。
【0026】
図示の通り、方法は、期間の初めに暗号データプのライマリソースから暗号データの代替ソースに切り替えること含む(ステップ302)。暗号データは疑似ランダムデータであるとしてよい。例えば、暗号データは従来のHDCP暗号化エンジンによって出力された暗号データであるとしてよい。
【0027】
次に、代替ソースからの暗号データが期間中に使用され得る(ステップ304)。期間の終わりにプライマリソースからの暗号データが再び使用され得る(ステップ306)。
【0028】
期間は、HDCPまたは類似の鍵再生成の間といった、プライマリソースからの暗号データが利用できない期間であるとしてよい。鍵再生成期間は例えば、データの各フレームごとの前かつ/またはデータの各ラインの前にあるとしてよい。しかし、十分に理解される通り、本発明は鍵再生成期間に限定されない。プライマリソースが利用できないあらゆる期間とすることができる。例えば、プライマリソースの故障中、またはプライマリソースが別様に使用されている時、それによりそれは対象のデータストリームについて利用できない。
【0029】
暗号データの代替ソースはバッファであるとしてよい。そうした場合、方法はさらに、後の使用のために暗号データの一部をプライマリソースからバッファへ転送することを含み得る。
【0030】
例えば、プライマリ暗号ソースが暗号化されるデータよりも高いレートで暗号データを生成する場合、暗号データは、暗号化エンジンがデータを供給するのをやめたその間隔における使用のためにバッファされるとしてよい。
【0031】
極めて特定的な例において、HDCP暗号エンジンは、DisplayPortデータを暗号化するために使用されるとしてよい。HDCP暗号データは一般に3バイト/サイクルで生成されるのに対し、DisplayPortデータの各レーンは1バイト/サイクルを要求するにすぎない。1または2レーンについて1つのHDCP暗号エンジンが存在する場合、1バイト/サイクルが、バッファが満杯になるまでバッファに向けて送られ得る。このようにして、本発明の実施形態において、方法はさらに、鍵再生成期間の後に所定の期間にわたり過剰な暗号データをバッファに向けて送ることを含む。HDCPにおける代表的な最悪ケースのシナリオは、142サイクルを必要とするフレーム鍵再生成であるので、好ましい実施形態におけるバッファは暗号化または解読されるデータの各レーンについて142バイトを保持する。場合によっては、過剰な暗号データは、暗号化または解読されるデータストリームよりも高いレートで暗号データを生成することによって生成される。
【0032】
バッファはFIFO(先入れ先出し)バッファであるとしてよい。
【0033】
これは、プライマリHDCP暗号エンジンが鍵再生成期間中といった利用できない時にHDCP暗号エンジンによる暗号化および/または解読を続行可能にする。これは転じて、データストリームに予測可能な中断を欠いている非ラスター化ビデオデータを暗号化可能にする。都合のよいことに、非ラスター化ビデオデータは、結果として生じる暗号化ストリームを用いて暗号化され得る。特定の実施形態において、方法はDisplayPortデータを暗号化または解読することをさらに含む。
【0034】
代替的な実施形態において、暗号化データの第2のソースは第2のHDCP暗号エンジンであるとしてよい。
【0035】
図4は、本発明の実施形態において例示的な暗号化モジュール400を図示している。暗号化モジュール400は、暗号データ用プライマリソース402、暗号データ用代替ソース404およびスイッチ406を含む。プライマリおよび代替ソース402、402によって生成された暗号データは、データストリーム410を暗号化または解読するためのものである。スイッチ406はプライマリソース402の出力が利用できない期間中に暗号データ用代替ソース404に切り替えるとしてよい。スイッチ406は例えば、暗号データ402が利用できないまさしくその時に切り替えることができよう。代替として、スイッチ406は、暗号データが常に利用できるような定期(または不定期)間隔で暗号データ402と暗号404との間で切り替えることができよう。代替として、スイッチ406は制御可能スイッチまたはマルチプレクサであるとしてよい。スイッチ406は代替として、ソース402および404のどちらか一方または両方からの暗号化データが記憶されるメモリまたはバッファへのレジスタまたは他のポインタとしてインプリメントすることもできよう。ポインタ/レジスタは、どちらか一方のソースからの暗号データ間で選択するために更新することができよう。代替として、スイッチ406は、当業者によって理解されるソース402および404間で選択するためのいずれかの他の装置または機能ブロックとすることができよう。
【0036】
一部の実施形態において、代替ソース404は上述の通りバッファである。場合によっては、モジュール400は、暗号データの一部をプライマリソースからバッファに向けて送る機能ブロックを含む。機能ブロックは、マルチプレクサ、スイッチ等の形態を取ることができよう。場合によっては、バッファに向けて送られる暗号データの部分は、暗号化または解読に必要とされない過剰な暗号データである。例えば、制御信号は暗号化されないので、従って制御信号を含むデータストリーム410の部分は暗号データを必要としない。一般に、制御信号がデータストリーム410に現れる時に生成される暗号データは絶対に使用されないので、従ってそれはバッファに転送されるために利用できる。
【0037】
プライマリソース402は代替として、暗号データの部分がバッファに向けて送られている間、加速レートで暗号データを生成することができる。場合によっては、プライマリソース402は常にこの加速レートで動作する。常に同じレートで動作することは、バッファが満杯か否かに応じてレートを変えることよりも単純であり、より少ない制御を必要とする。一部の実施形態において、バッファに向けて送られる暗号データの部分は、暗号化または解読されるデータストリーム410が制御データを含む時に生成された暗号データである。
【0038】
やはり、暗号データはHDCP暗号データであるとしてよい。
【0039】
図5に言及すれば、本発明の別の実施形態の例示的な暗号化システム500は、送信側モジュール510および受信側モジュール520を含む。送信側モジュール510は、暗号化暗号データ用プライマリソース512、暗号化暗号データ用代替ソース514および、暗号化データ用プライマリソース512の出力が利用できない期間中に暗号化データ用代替ソース514に切り替え、その期間後にHDCP暗号化データ用プライマリソース512に戻すためのスイッチ516を含む。暗号化暗号データは、暗号化されたデータストリーム540を生成するためにデータストリーム530を暗号化するために使用される。受信側モジュール520は、解読暗号データ用プライマリソース522、解読暗号データ用代替ソース524および、期間中に解読データ用代替ソース524に切り替え、そして期間後に解読データ用プライマリソース522に戻すためのスイッチ526を含む。解読暗号データは、解読されたデータストリーム550を生成するために暗号化されたデータストリーム540を解読するためのものである。
【0040】
一部の実施形態において、送信側モジュール510および受信側モジュール520の各々のスイッチ516、526は、鍵再生成期間の初めにそれぞれの代替ソース514、524に切り替え、鍵再生成期間の終わりにそれぞれのプライマリソース512、522に戻すように適応されている。
【0041】
一部の実施形態において、送信側モジュール510は暗号化データをデータストリーム530と結合するためのXORゲートをさらに含む。同様に、受信側モジュール520の一部の実施形態は、解読データを暗号化されたデータストリーム540と結合するためのXORゲートをさらに含む。
【0042】
やはり、暗号データはHDCP暗号データであるとしてよい。
【0043】
システム500はDisplayPortプロトコル用に適応されているとしてよい。そのような場合、送信側モジュール510はレーンスキューイング(lane skewing)前のリンク層とPHY(物理層)との間のインタフェースに配置することができ、受信側モジュール520はレーンデスキューイング(lane de-skewing)前のリンク層とPHYとの間のインタフェースに配置することができる。
【0044】
十分に理解され得るように、本発明の一部の実施形態は、暗号エンジンの出力が利用できない鍵再生成期間中に暗号エンジンの出力の代わりにバッファされ出力され得る過剰な疑似ランダムデータを必要とする。必要とされるバッファリングの量、暗号エンジンがクロックされる必要があるレート、暗号エンジンが前記レートでクロックされる期間および、ソースまたは送信側装置エンジンとシンクまたは受信側装置エンジンとの間の同期メカニズムは、個々の用途に依存し、設計者の裁量である。
【0045】
HDCP暗号データをDisplayPortにマップするための特定的な解決策をここで図6〜14に関して説明する。
【0046】
DisplayPortは高帯域幅ポイントツーポイントディジタル相互接続解決策であり、それは最終的に、各々が162MB/秒または270MB/秒どちらかのデータを転送することができる現在は1、2または4データレーンをサポートするスケーラブルリンクによって多数のデータフォーマットおよびタイプをサポートすることができる。
【0047】
HDCPの出力暗号は最大3B/サイクルまでの疑似ランダムデータ生成することができるのに対し、DisplayPortはアクティブレーンの数に応じて1B、2Bまたは4B/サイクルいずれかの暗号データを必要とする。1および2レーンの場合、HDCP暗号の単一インスタンス(instance)を使用することができ、4レーンの場合には、HDCP暗号の2インスタンスを使用することができる。もし過剰分をバッファし、かつ鍵再生成がアクティブでない時に出力ストリームの必要性を満たすことの両方に十分なHDCP疑似ランダムデータが利用できることを保証するために4レーン構成をオーバークロック(overclock)させたいのであれば、全部の場合に単一エンジンを使用することができるということに留意されたい。
【0048】
1つ以上の暗号エンジンが送信側装置ロジックと同じレートでクロックされる場合、それは、それぞれ1/2/4レーン構成に必要とされるものよりも(3/1)/(3/2)/(2・3/4)=3×/1.5×/1.5×多いデータを生成する。生成された過剰なデータの一部または全部は、未定の期間バッファに格納されてから、鍵再生成されている間、暗号が利用できない期間中に出力され得る。結果として得られるインプリメンテーションが図6に示されている。
【0049】
図6において、HDCPモジュール600は、4レーンのデータ630、640、650および660にサービスするために2つのHDCP暗号エンジン610および620を備える。第1の暗号エンジン610は、マルチプレクサ614に直接2B/サイクルの暗号データを、そしてFIFOバッファ612に1B/サイクルを供給する。FIFO612の出力もまたマルチプレクサ614に供給される。マルチプレクサ614はまた、暗号エンジン610が鍵再生成モードにあるか否かを指示する信号REKEY−EN616を入力として有する。この場合、値0がアクティブモードを表し、値1が鍵再生成モードを表す。従って、マルチプレクサ614が0を受け取った時に、暗号データは暗号エンジン610からXORゲート618および619に向けて送られて、それぞれレーン630および640からのデータと結合されてそれぞれの暗号化されたデータレーン635および645を生成する。同じ設定が第2の暗号エンジン620について反映される。すなわち、2B/サイクルの暗号データがマルチプレクサ624に直接供給され、そして1B/サイクルがFIFOバッファ622に供給される。FIFO622からの出力もやはりマルチプレクサ624に向かう。マルチプレクサ624はまた、暗号エンジン620が鍵再生成モードにあるか否かを指示する信号REKEY_EN626を入力として有する。マルチプレクサ624が0を受け取った時に、暗号データは暗号エンジン620からXORゲート628および629に向けて送られて、それぞれレーン650および660からのデータと結合されてそれぞれの暗号化されたデータレーン655および665を生成する。
【0050】
暗号がクロックされるレート、およびそれらが加速レートで走行する期間は、鍵再生成期間中にデータストリームを暗号化するためにFIFO612、622に格納された十分な過剰なデータが存在する限り、完全に設計者の裁量である。HDCPの場合、毎フレーム方式で142サイクル分のデータまたは毎ライン方式で58サイクル分のデータが利用できなければならず、ここで「フレーム」および「ライン」の概念は用途に適合するように定義することができる。「ライン」および「フレーム」の文字通りの定義はラスター化ビデオデータの場合にあてはまるが、それほど構造化されていないデータパターンの場合、「ライン」は(帰線消去開始“BS”によって指示される)帰線消去開始制御シンボル間の時間として定義することができるであろうし、そして「フレーム」は512BS制御シンボルごとに生起する連続スクランブラリセット(“SR”)制御シンボル間の時間として定義することができよう。
【0051】
それらが同じ過剰データを生成することを保証するソースおよびシンク装置のHDCPエンジン間の同期は、過剰バイトが識別され格納のためにタグ付けされる単純なアプリオリ定義戦略によって維持され得る。例えば、暗号はデータストリームと同じレートで走行することができる。最初の256Bの過剰データは、鍵再生成期間の終わりの後に記憶されてから、次の鍵再生成期間までバッファされるとしてよい。バッファは、ソースおよびシンクが各期間に同じFIFO状態で始動するのを保証するために各々の鍵再生成期間の終わりにフラッシュされる。
【0052】
HDCPモジュール600の別の構成が図7に例証されている。図示の通り、HDCPモジュール700はモジュール600の一半分だけを、すなわちHDCP暗号エンジン610によってサービスされる半分を表す。この構成では、XORゲート619への出力を備える付加的なマルチプレクサ615が存在する。暗号エンジン610は、1B/サイクルをマルチプレクサ614に、1B/サイクルをマルチプレクサ615に、そして1B/サイクルをFIFO612に向けて送る。
【0053】
上述の通り、本発明の実施形態は、DisplayPortの1、2または4レーン構成に適用することができる。2レーン構成についてのタイミング図が図8に示されている。図8のタイミング図は、以下の12の信号のタイミングを示している。クロックであるLANE_CLK810;HDCPエンジンが鍵再生成モードにあるか否かを指示するREKEY_EN815;HDCP暗号エンジンからの出力であるHDCPout[7:0]820、HDCPout[15:8]825およびHDCPout[23:16]830;暗号データを出力するようにFIFOに合図するFIFO_REN835;FIFOからの出力であるFIFOout[7:0]840およびFIFOout[15:8]845;FIFOが補充されていることを指示するFIFO_WEN850;FIFOへの入力であるFIFOin855;2レーンを暗号化または解読するために使用される暗号データを表すLane0Mask860およびLane1Mask865。最初の時間ブロックは通常のHDCPオペレーション870であり、その間にHDCP出力820および825はデータをLane0Mask860およびLane1Mask865に供給する。FIFO出力840および845はイナクティブである。この例の目的で、FIFOはタイミング図の開始時にすでに満杯である。次の時間ブロックはHDCPキープアウトまたは鍵再生成期間875であり、その間にFIFO出力840および845はデータをLane0Mask860およびLane1Mask865に供給する。HDCP出力820、825および830はこの間イナクティブである。REKEY−EN815はこの期間中1の値を有し、他の全部の時間には0を有する。次の時間ブロックはFIFO再ロード期間880であり、その間にFIFOin855はFIFOを再ロードするためにHDCPout[23:16]830からデータを受け取る。FIFO_WEN850はこの期間中1の値を有し、他の全部の時間には0の値を有する。他の全部の信号はあたかもHDCP通常オペレーション870の間のように動作する。
【0054】
4レーン構成の場合、タイミング図は第2のHDCPエンジンについて繰り返される。単レーン構成の場合、Lane1Mask865が存在せず、それはFIFOout[15:8]845が使用されないことを意味する。それ以外、タイミングは同じである。
【0055】
1レーン構成において、1B/サイクルのHDCP暗号データだけが暗号化または解読に要求されるので、従って暗号エンジンは半分のレートで走行することができる。2レーン構成に加えて、1レーン構成を半分のレートで可能にする本発明の実施形態をここで図9に関して説明する。HDCPモジュール900は、マルチプレクサ614および615とXORゲート618との間の付加的なマルチプレクサ620を除いて、図7に関して説明したHDCPモジュール700と同じである。マルチプレクサ620への入力は、マルチプレクサ614および615からの出力のほか、EVEN_ODD信号622である。マルチプレクサ615からの出力はまたXORゲート619にも向かう。単レーンモードにおいて、XORゲート619が配置されたレーンはイナクティブであり、HDCP暗号エンジン610は1/2レートで走行し、EVEN_ODD信号622は0と1の間で振動する。振動信号622は、マルチプレクサ614および615の出力の組合せであるマルチプレクサ620の出力となる。2レーンモードにおいて、HDCP暗号エンジン610はフルレートで走行し、EVEN_ODD信号は0の値を有する。図10はこの実施形態の単レーンモードのタイミング図であり、そして図11は2レーンモードのタイミング図である。
【0056】
図10のタイミング図は、Lane1Mask865を除き図8と同じ全部の信号を含む。それは1つの付加的な信号EVEN_ODD1010を有し、それは全部の時間ブロックの間、振動する。
【0057】
図11は、図10に関して説明したEVEN_ODD信号を含むということ以外、図8と同じである。図11において、EVEN_ODD信号は0の値を維持し、従ってHDCPモジュールは図8に関して説明した2レーンモードと同様にして動作する。
【0058】
代替として、単レーンモードにおいて、HDCPエンジンは1/3レートで走行することができよう。この実施形態において、バッファに向けて送られる暗号データは、データストリームが制御信号を含む時に使用されない暗号データでなければならないであろう。
【0059】
別の代替的な実施形態において、HDCP暗号エンジンは4B/サイクルで出力するように修正されるとしてよい。これは、1つのHDCP暗号エンジンが4レーンのDisplayPortデータにサービスすることを可能にする。バッファはデータストリームが制御データを含む時に使用されていないHDCP出力で満たされる。図12は、この解決策の1実施形態に従ったHDCPモジュール1200の概略図である。
【0060】
HDCPモジュール1200のHDCP暗号エンジン1210は4B/サイクルを出力し、1バイトずつ4つのマルチプレクサ1230、1232、1234および1236の各々に向かう。各マルチプレクサはまた入力としてそれぞれのFIFO1211、1212、1214および1216の出力を有する。4つ全部のFIFOは入力としてKcode信号1220を有し、それはデータストリーム1250、1260、1270および1280が制御信号を含むことを指示する。HDCP暗号エンジン1210からの出力は、データストリーム1250、1260、1270および1280が制御信号を含む場合、FIFO1211、1212、1214および1216に向けて送られる。マルチプレクサ1230、1232、1234および1236はすべてREKEY−EN信号1225を入力として受け取る。HDCP暗号エンジンが鍵再生成モードにあることをこの信号1225が指示した場合、それらは各自のFIFOからの暗号データを各自の出力として使用する。以前の例と同様、マルチプレクサからの出力はXORゲート1240、1242、1244および1246に向けて送られ、そこで暗号データはデータストリーム1250、1260、1270および1280と結合されてそれぞれ出力データストリーム1245、1255、1265および1275を生成する。
【0061】
代替として、そしてより一般的に、HDCP暗号エンジン1210は、Nレーンについて要求されるよりも高いレートでクロックされることができよう。例えば、HDCPサイファー1210は、各レーンのデータレート、レートN/(N−M)で暗号データを供給するレートでクロックされることができよう。その場合、暗号データのN単位ごとのうちのM個が後の使用のためにFIFOに供給されるとしてよい。
【0062】
試みることができる代替的な解決策は、要求されるよりも大きなデータレートで走行し、他のエンジンの鍵再生成間隔を隠すために1つのHDCPエンジンの出力を使用する、複数のHDCPエンジンを利用することである。1つのエンジンが鍵再生成されている時、すなわちその出力がディスエーブルである時に、他の暗号エンジンがデータストリームを暗号化するために使用されるであろう。この付加的暗号化は、もしそれが使用されるのを待って遊んでいるのであれば付加的なサイファーをイネーブルにするか、またはそのサイファーが現在鍵再生成しているストリームによって要求される付加的な疑似ランダムデータを生成するためにそれをオーバークロックさせるかのどちらかによって、達成することができよう。
【0063】
この解決策の場合、鍵再生成間隔中の使用のために常に1つの暗号エンジンが利用可能でなければならず、そしてエンジンの鍵再生成は十分にずらされ、全部の暗号エンジンが同時に鍵再生成を要求している期間が決して存在してはならない。また、暗号インスタンスの絶対数または、所与のいずれかの時に要求量の疑似ランダムデータを供給するために任意の数の利用可能なインスタンスをオーバークロックできる能力のどちらかによって、HDCPエンジンのプール内に十分な帯域幅が存在しなければならない。
【0064】
今や十分に理解されるはずであるように、ここで説明した方法はハードウェア、ソフトウェアまたはそれらの組合せにおいて実施することができる。例えば、コンピュータによってインプリメントされた時にそれぞれの方法を実行するコンピュータ可読命令がそれに記憶されているコンピュータ可読媒体。それらはハードウェア、ソフトウェアまたはそれらの組合せを用いて実施することができる。
【0065】
説明したものは単に本発明の原理の応用を例証するにすぎない。それどころか、他の装置および方法が本発明の範囲を逸脱することなく当業者によって実施することができる。
【特許請求の範囲】
【請求項1】
暗号データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法であって、
前記期間の初めに前記暗号データのプライマリソースから暗号データの代替ソースに切り替えることと、
前記期間中に前記代替ソースからの暗号データを使用することと、
を含むことを特徴とする方法。
【請求項2】
前記方法は、更に、前記期間の終わりに前記プライマリソースに切り換えることを含む請求項1に記載の方法。
【請求項3】
前記期間は鍵再生成期間である請求項2に記載の方法。
【請求項4】
前記鍵再生成期間は、データの各フレームの後および/またはデータの各ラインの後にある請求項2に記載の方法。
【請求項5】
前記暗号データは、HDCP暗号エンジンによって生成される請求項1の方法。
【請求項6】
前記代替ソースはバッファである、請求項1に記載の方法。
【請求項7】
前記方法は、更に、前記暗号データの一部を前記プライマリソースから前記バッファに向けて送ることを含む請求項6に記載の方法。
【請求項8】
前記方法は、更に、鍵再生成期間の後、所定の期間にわたり過剰な暗号データを前記バッファに向けて送ることを含む請求項6に記載の方法。
【請求項9】
前記過剰な暗号データは、暗号化または解読されるデータストリームよりも高いレートで暗号データを生成することによって生成される請求項8の方法。
【請求項10】
前記方法は、更に、非ラスター化ビデオデータを暗号化または解読することを含む請求項1に記載の方法。
【請求項11】
前記方法は、DisplayPortデータを暗号化または解読することを含む請求項1に記載の方法。
【請求項12】
前記バッファは、先入れ先出しメモリである請求項6に記載の方法。
【請求項13】
前記代替ソースは、第2のHDCP暗号エンジンによって提供される請求項5に記載の方法。
【請求項14】
前記暗号データは、疑似ランダムデータである請求項1に記載の方法。
【請求項15】
コンピュータ読み取り可能媒体であって、前記媒体には、コンピュータが読み取り可能な命令が記憶されており、前記命令が前記コンピュータによって実行されることによって、請求項1の方法が実行されることを特徴とする媒体。
【請求項16】
暗号化モジュールであって、
データストリームを暗号化または解読するための暗号データのプライマリソースと、
暗号データの代替ソースと、
前記プライマリソースの出力が利用できない期間中に前記暗号データの代替ソースに切り替えるためのスイッチと、
を備えることを特徴とする暗号化モジュール。
【請求項17】
前記暗号データはHDCP暗号データである請求項16の暗号化モジュール。
【請求項18】
前記代替ソースはバッファである請求項16の暗号化モジュール。
【請求項19】
前記暗号化モジュールは、更に、前記暗号データの一部を前記プライマリソースから前記バッファに向けて送るための手段を含む請求項18の暗号化モジュール。
【請求項20】
前記プライマリソースは、前記暗号データの一部が前記バッファに向けて送られている間、加速レートで暗号データを生成するように為されている請求項19の暗号化モジュール。
【請求項21】
前記バッファに向けて送られる前記暗号データの一部は、暗号化または解読に必要とされない過剰な暗号データである請求項19の暗号化モジュール。
【請求項22】
前記バッファに向けて送られる暗号データの少なくとも一部は、暗号化または解読されるデータストリームが制御データを含む時に生成される暗号データである請求項21の暗号化モジュール。
【請求項23】
暗号化システムであって、
送信側モジュールと、
受信側モジュールと、
を備えており、
前記送信側モジュールは、
暗号化暗号データのプライマリソースと、
暗号化暗号データの代替ソースと、
前記暗号化暗号データのプライマリソースの出力が利用できない期間中に前記暗号化暗号データの代替ソースに切り替えて、前記期間の後に前記暗号化暗号データのプライマリソースに切り換えるためのスイッチと、
を備えており、
前記暗号化暗号データは、データストリームを暗号化して、暗号化されたデータストリームを生成するためのものであり、
前記受信側モジュールは、
解読暗号データのプライマリソースと、
解読暗号データの代替ソースと、
前記期間中に前記解読暗号データの代替ソースに切り替えるためのスイッチと、
を備えており、
前記解読暗号データは、前記暗号化されたデータストリームを解読して、解読されたデータストリームを生成するためのものであることを特徴とする暗号化システム。
【請求項24】
前記送信側モジュールの前記スイッチ及び前記受信側モジュールの前記スイッチは、それぞれ、鍵再生成期間の初めに前記代替ソースに切り替えて、鍵再生成期間の終わりに前記プライマリソースに切り換えるように為されている請求項23の暗号化システム。
【請求項25】
前記送信側モジュールは、更に、暗号化データをデータストリームと結合するための排他論理和ゲートを含む請求項23の暗号化システム。
【請求項26】
前記受信側モジュールは、更に、解読データを暗号化されたデータストリームと結合するための排他論理和ゲートを含む請求項23の暗号化システム。
【請求項27】
前記暗号化データおよび前記解読データはHDCPデータである請求項23の暗号化システム。
【請求項1】
暗号データのプライマリソースの出力が利用できない期間中に暗号データを供給するための方法であって、
前記期間の初めに前記暗号データのプライマリソースから暗号データの代替ソースに切り替えることと、
前記期間中に前記代替ソースからの暗号データを使用することと、
を含むことを特徴とする方法。
【請求項2】
前記方法は、更に、前記期間の終わりに前記プライマリソースに切り換えることを含む請求項1に記載の方法。
【請求項3】
前記期間は鍵再生成期間である請求項2に記載の方法。
【請求項4】
前記鍵再生成期間は、データの各フレームの後および/またはデータの各ラインの後にある請求項2に記載の方法。
【請求項5】
前記暗号データは、HDCP暗号エンジンによって生成される請求項1の方法。
【請求項6】
前記代替ソースはバッファである、請求項1に記載の方法。
【請求項7】
前記方法は、更に、前記暗号データの一部を前記プライマリソースから前記バッファに向けて送ることを含む請求項6に記載の方法。
【請求項8】
前記方法は、更に、鍵再生成期間の後、所定の期間にわたり過剰な暗号データを前記バッファに向けて送ることを含む請求項6に記載の方法。
【請求項9】
前記過剰な暗号データは、暗号化または解読されるデータストリームよりも高いレートで暗号データを生成することによって生成される請求項8の方法。
【請求項10】
前記方法は、更に、非ラスター化ビデオデータを暗号化または解読することを含む請求項1に記載の方法。
【請求項11】
前記方法は、DisplayPortデータを暗号化または解読することを含む請求項1に記載の方法。
【請求項12】
前記バッファは、先入れ先出しメモリである請求項6に記載の方法。
【請求項13】
前記代替ソースは、第2のHDCP暗号エンジンによって提供される請求項5に記載の方法。
【請求項14】
前記暗号データは、疑似ランダムデータである請求項1に記載の方法。
【請求項15】
コンピュータ読み取り可能媒体であって、前記媒体には、コンピュータが読み取り可能な命令が記憶されており、前記命令が前記コンピュータによって実行されることによって、請求項1の方法が実行されることを特徴とする媒体。
【請求項16】
暗号化モジュールであって、
データストリームを暗号化または解読するための暗号データのプライマリソースと、
暗号データの代替ソースと、
前記プライマリソースの出力が利用できない期間中に前記暗号データの代替ソースに切り替えるためのスイッチと、
を備えることを特徴とする暗号化モジュール。
【請求項17】
前記暗号データはHDCP暗号データである請求項16の暗号化モジュール。
【請求項18】
前記代替ソースはバッファである請求項16の暗号化モジュール。
【請求項19】
前記暗号化モジュールは、更に、前記暗号データの一部を前記プライマリソースから前記バッファに向けて送るための手段を含む請求項18の暗号化モジュール。
【請求項20】
前記プライマリソースは、前記暗号データの一部が前記バッファに向けて送られている間、加速レートで暗号データを生成するように為されている請求項19の暗号化モジュール。
【請求項21】
前記バッファに向けて送られる前記暗号データの一部は、暗号化または解読に必要とされない過剰な暗号データである請求項19の暗号化モジュール。
【請求項22】
前記バッファに向けて送られる暗号データの少なくとも一部は、暗号化または解読されるデータストリームが制御データを含む時に生成される暗号データである請求項21の暗号化モジュール。
【請求項23】
暗号化システムであって、
送信側モジュールと、
受信側モジュールと、
を備えており、
前記送信側モジュールは、
暗号化暗号データのプライマリソースと、
暗号化暗号データの代替ソースと、
前記暗号化暗号データのプライマリソースの出力が利用できない期間中に前記暗号化暗号データの代替ソースに切り替えて、前記期間の後に前記暗号化暗号データのプライマリソースに切り換えるためのスイッチと、
を備えており、
前記暗号化暗号データは、データストリームを暗号化して、暗号化されたデータストリームを生成するためのものであり、
前記受信側モジュールは、
解読暗号データのプライマリソースと、
解読暗号データの代替ソースと、
前記期間中に前記解読暗号データの代替ソースに切り替えるためのスイッチと、
を備えており、
前記解読暗号データは、前記暗号化されたデータストリームを解読して、解読されたデータストリームを生成するためのものであることを特徴とする暗号化システム。
【請求項24】
前記送信側モジュールの前記スイッチ及び前記受信側モジュールの前記スイッチは、それぞれ、鍵再生成期間の初めに前記代替ソースに切り替えて、鍵再生成期間の終わりに前記プライマリソースに切り換えるように為されている請求項23の暗号化システム。
【請求項25】
前記送信側モジュールは、更に、暗号化データをデータストリームと結合するための排他論理和ゲートを含む請求項23の暗号化システム。
【請求項26】
前記受信側モジュールは、更に、解読データを暗号化されたデータストリームと結合するための排他論理和ゲートを含む請求項23の暗号化システム。
【請求項27】
前記暗号化データおよび前記解読データはHDCPデータである請求項23の暗号化システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2010−519821(P2010−519821A)
【公表日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2009−550192(P2009−550192)
【出願日】平成20年2月26日(2008.2.26)
【国際出願番号】PCT/CA2008/000371
【国際公開番号】WO2008/104068
【国際公開日】平成20年9月4日(2008.9.4)
【出願人】(508301087)エーティーアイ・テクノロジーズ・ユーエルシー (68)
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
【Fターム(参考)】
【公表日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願日】平成20年2月26日(2008.2.26)
【国際出願番号】PCT/CA2008/000371
【国際公開番号】WO2008/104068
【国際公開日】平成20年9月4日(2008.9.4)
【出願人】(508301087)エーティーアイ・テクノロジーズ・ユーエルシー (68)
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
【Fターム(参考)】
[ Back to top ]