(57)【要約】【課題】コンテンツ保護システムが、サイドチャネル攻撃の影響を受けにくくなるような技術を提供する。【解決手段】クロック発生器は、コンテンツ保護システムで使用されるプロセッサの動作基準となるプロセッサクロックを出力する。クロック発生器は、ダイレクト・デジタル・シンセシスと乱数発生器とを備える。ダイレクト・デジタル・シンセシスは、位相アキュムレータを有し、プロセッサクロックを出力する。位相アキュムレータは、基準クロックに同期して設定値を累積加算する。乱数発生器は乱数を発生する。設定値は乱数に基づいて変化する。【選択図】図１
2018506101.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ保護システムで使用されるプロセッサの動作基準となるプロセッサクロックを出力するクロック発生器であって、
前記プロセッサクロックを出力するダイレクト・デジタル・シンセシスと、
前記ダイレクト・デジタル・シンセシスに設けられ、基準クロックに同期して設定値を累積加算する位相アキュムレータと、
乱数を生成する乱数発生器と
を備え、
前記設定値は、前記乱数に基づいて変化する、クロック発生器。
【請求項２】
請求項１に記載のクロック発生器であって、
前記基準クロックは、多相の基準クロックである、クロック発生器。
【請求項３】
請求項１に記載のクロック発生器であって、
前記設定値は、複数ビットで構成され、
前記複数ビットのうちの上位の所定数のビットは、前記プロセッサによって設定される、クロック発生器。
【請求項４】
請求項１に記載のクロック発生器を有する、デジタルディスプレイ。
【請求項５】
請求項１に記載のクロック発生器を有する、デジタルＡＶレシーバー。
【請求項６】
コンテンツ保護システムで使用されるプロセッサと、
前記プロセッサの動作基準となるプロセッサクロックを出力するクロック発生器と
を備え、
前記クロック発生器は、
基準クロックに同期して設定値を累積加算する位相アキュムレータを有し、前記プロセッサクロックを出力するダイレクト・デジタル・シンセシスと、
乱数を生成する乱数発生器と
を有し、
前記設定値は、前記乱数に基づいて変化する、プロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック発生器に関する。
【背景技術】
【０００２】
メディアコンテンツを保護するためのコンテンツ保護プロトコルとして、Ｈｉｇｈ−ｂａｎｄｗｉｄｔｈ  Ｄｉｇｉｔａｌ  Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ（ＨＤＣＰ）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】“ＨＤＣＰ ｄｅｃｉｐｈｅｒｅｄ”，Ｗｈｉｔｅ  Ｐａｐｅｒ，ＤＩＧＩＴＡＬ  ＣＯＮＴＥＮＴ  ＰＲＯＴＥＣＴＩＯＮ  ＬＬＣ，２００８年７月
【非特許文献２】“Ｈｉｇｈ−ｂａｎｄｗｉｄｔｈ Ｄｉｇｉｔａｌ Ｃｏｎｔｅｎｔ Ｐｒｏｔｅｃｔｉｏｎ Ｓｙｓｔｅｍ Ｍａｐｐｉｎｇ ＨＤＣＰ ｔｏ ＤｉｓｐｌａｙＰｏｒｔ”，Ｒｅｖｉｓｉｏｎ  ２．２，ＤＩＧＩＴＡＬ  ＣＯＮＴＥＮＴ  ＰＲＯＴＥＣＴＩＯＮ  ＬＬＣ，２０１２年１２月２１日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨＤＣＰ等のコンテンツ保護技術が使用されたコンテンツ保護システムについては、電力解析攻撃として知られるサイドチャネル攻撃の影響を受けにくいことが望まれる。
【０００５】
本発明は、コンテンツ保護システムが、サイドチャネル攻撃の影響を受けにくくなるような技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、クロック発生器は、コンテンツ保護システムで使用されるプロセッサの動作基準となるプロセッサクロックを出力する。クロック発生器は、ダイレクト・デジタル・シンセシスと乱数発生器とを備える。ダイレクト・デジタル・シンセシスは、位相アキュムレータを有し、プロセッサクロックを出力する。位相アキュムレータは、基準クロックに同期して設定値を累積加算する。乱数発生器は乱数を発生する。設定値は乱数に基づいて変化する。
【発明の効果】
【０００７】
コンテンツ保護システムが電力解析攻撃を受けにくくなる。
【図面の簡単な説明】
【０００８】
【図１】ＰＬＬを含むクロック生成回路の典型的な構成を示す図である。
【図２】ＤＤＳを示す図である。
【図３】ＤＤＳの動作を示す図である。
【図４】クロック発生器の構成を示す図である。
【図５】プロセッサシステムの構成を示す図である。
【図６】クロック発生器の変形例の構成を示す図である。
【図７】クロック発生器の変形例の動作を示す図である。
【発明を実施するための形態】
【０００９】
図１は、アナログ位相ロックループ、つまりＰｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ（ＰＬＬ）を含むクロック生成回路の典型的な構成を示す図である。図１に示されるクロック生成回路は、位相周波数検出器及びチャージポンプ１０１と、ローパスフィルタ１０２と、電圧制御発信器１０３と、フィードバック分周器１０４とを備えている。図１に示されるクロック生成回路は、ループの安定のために必要とされるローパスフィルタ１０２の存在により、（例えば、フィードバック分周器１０４の値の変更によって）急に出力クロック周波数が変化しようとすることに対して抵抗する。
【００１０】
このようなクロック生成回路に対して、デジタル・シグナル・シンセシス、つまりシンセサイザー（ＤＤＳ）２００（図２参照）は、出力クロック周波数を変化させる高い能力を持っている。ＤＤＳ２００は、設定値を累積加算する位相アキュムレータ２０１を備えている。ＤＤＳ２００は、位相アキュムレータ２０１の累積加算値がラップアラウンドするたびに、立ち上がりのクロックエッジを生成する。例えば、図３に示されるように、設定値に２１５（＝３２，７６８）が設定されたときには、１６ビットの位相アキュムレータ２０１（つまり、最大値２１６つまり６５，５３６）は、２つの基準クロックサイクル毎に立ち上がりのクロックエッジあるいは立ち下がりのクロックエッジを生成する。
【００１１】
本実施の形態に係るクロック発生器１は、このようなＤＤＳを備えるクロック発生器である。図４は本実施の形態に係るクロック発生器１の構成を示す図である。クロック発生器１は、図５に示されるように、ＨＤＣＰ等のコンテンツ保護技術が使用されたコンテンツ保護システムで利用されるプロセッサ５０の動作基準となるプロセッサクロック１０を生成して出力する。プロセッサ５０は、クロック発生器１からのプロセッサクロック１０に同期して動作する。プロセッサ５０とクロック発生器１とでプロセッサシステム６０が構成される。プロセッサシステム６０は、例えば、ＨＤＣＰ２．２で保護されたＡＶストリームコンテンツを受信するデジタルディスプレイである。また、プロセッサシステム６０は、ＨＤＣＰ２．２で保護されたＡＶストリームコンテンツを受信および再送信可能なデジタルＡＶレシーバーであってもよい。
【００１２】
プロセッサ５０は、コンテンツ保護技術として例えばＨＤＣＰバージョン２．２（ＨＤＣＰ２．２）が使用されたコンテンツ保護システムで利用される。プロセッサ５０は、データの暗号化あるいは復号化を行う。例えば、プロセッサ５０は、デジタル署名に対して、公開鍵、例えばＲＳＡ公開鍵を用いて復号化処理を行い、その復号化処理の結果に基づいて当該デジタル署名の検証を行う。また、プロセッサ５０は、コンテンツデータに対する暗号化処理を行ってもよいし、暗号化されたコンテンツデータに対して復号化処理を行ってもよい。
【００１３】
図４に示されるように、クロック発生器１は、ＤＤＳ２と、乱数発生器４と、レジスタ５とを備えている。ＤＤＳ２は、基準クロック１２に基づいて動作する。ＤＤＳ２は、コアな構成要素として位相アキュムレータ３を備えている。ＤＤＳ２の出力クロック１１はプロセッサクロック１０として使用される。
【００１４】
位相アキュムレータ３は、基準クロック１２に基づいて動作するＮビットのデジタル位相アキュムレータである。Ｎは例えば“１６”に設定される。位相アキュムレータ３は、基準クロック１２が立ち上がるたびに、１６ビットの設定値１３を累積加算する。ＤＤＳ２は、位相アキュムレータ３の累積加算値がラップアラウンドするたびに立ち上がりエッジを出力する。言い換えれば、ＤＤＳ２は、位相アキュムレータ３の累積加算値がラップアラウンドするたびに出力クロック１１（プロセッサクロック１０）に立ち上がりエッジを発生させる。位相アキュムレータ３での累積加算値は、２１６−１（＝６５，５３５）になったときラップアラウンドして、出力クロック１１に立ち上がりエッジが発生する。また、位相アキュムレータ３の累積加算値が、２１５（＝３２，７６８）になったとき、ＤＤＳ２は、出力クロック１１に立ち下がりエッジを発生させる。
【００１５】
Ｎビットの位相アキュムレータ３を備えるＤＤＳ２の出力クロック１１の周波数ｆ＿ＤＤＳ＿Ｏｕｔｐｕｔ＿Ｃｌｏｃｋは、基準クロック１２の周波数ｆ＿Ｒｅｆｅｒｅｎｃｅ＿Ｃｌｏｃｋと、設定値１３の値Ｖａｌｕｅとを用いて以下の式（１）で表される。
【００１６】
【数１】
2018506101.tif 000003
【００１７】
本実施の形態では、設定値１３に、乱数発生器４からの出力値を組み入れることによって、ＤＤＳ２の出力クロック１１の周波数のランダム化が実現される。つまり、設定値１３が乱数発生器４から出力される乱数に基づいて変化することによって、ＤＤＳ２の出力クロック１１の周波数のランダム化が実現される。これより、コンテンツ保護システムでのプロセッサ５０が使用するプロセッサクロック１０の周波数がランダムに変化する。よって、コンテンツ保護システムはサイドチャネル攻撃の影響を受けにくくなる。以下にこの点について詳細に説明する。
【００１８】
乱数発生器４は乱数を生成して出力する。乱数発生器４は、例えば、真性乱数発生器（ＴＲＮＧ)である。乱数発生器４は、疑似乱数発生器（ＰＲＮＧ）であってもよい。乱数発生器４は１４ビットの乱数を出力する。設定値１３を構成する１６ビットの値には、乱数発生器４が出力する１４ビットの出力値（乱数）が組み入れられる。例えば、乱数発生器４の１４ビットの出力値が、設定値１３を構成する１６ビットの値における、下位１４ビットの値として使用される。乱数発生器４の出力値の０ビット目から１３ビット目の値は、それぞれ、設定値１３の０ビット目から１３ビット目の値として使用される。
【００１９】
レジスタ５には、設定値１３を構成する１６ビットの値のうち、上位２ビットの値（１４ビット目と１５ビット目の値）が設定される。レジスタ５への値の設定は、プロセッサ５０が行う。つまり、プロセッサ５０が、設定値１３を構成する１６ビットの値のうち、上位２ビットの値を設定する。
【００２０】
乱数発生器４は、出力値（乱数）を更新する。乱数発生器４は、例えば、基準クロック１２の周期と同じ周期で出力値（乱数）を更新する。一方で、レジスタ５内の２ビットの値は、初期設定された後、変化しない。設定値１３は、乱数発生器４の出力値が更新されるたびに変化する。
【００２１】
このように、乱数発生器４の出力値の更新レートを、基準クロックレートと同等にすることによって、ＤＤＳ２の出力クロック１１の周波数（コンテンツ保護システムのプロセッサ５０のクロック周波数）のランダム化のレートが基準クロックレートと同等となる。レジスタ５内の２ビットの値（設定値１３の１４ビット目と１５ビット目の値）は、ＤＤＳ２の出力クロック１１の周波数のランダム化の度合いを決定する。ＤＤＳ２の出力クロック１１の周波数のランダム化の度合いを決定する必要がなければ、設定値１３のすべてのビットを乱数発生器４で生成してもよい。
【００２２】
なお、レジスタ５には、設定値１３を構成する１６ビットの値のうち、上位２ビットの値が設定されるが、最上位ビットの値だけが設定されてもよいし、上位３ビット以上の値が設定されてもよい。
【００２３】
乱数発生器４は、その出力値を更新すると、ＤＤＳ２に入力されるＮｅｗ＿Ｖａｌｕｅ＿ストローブを一定期間Ｈｉｇｈレベルに設定する。ＤＤＳ２は、基準クロック１２が立ち上がるごとに、Ｎｅｗ＿Ｖａｌｕｅ＿ストローブの信号レベルをラッチする。ＤＤＳ２は、ラッチした信号レベルがＨｉｇｈレベルのとき、入力される設定値１３をラッチして取り込み、取り込んだ設定値１３を累積加算する。ＤＤＳ２では、更新後の設定値１３が取り込まれるとすぐに出力クロック１１の周波数は更新される。
【００２４】
このように、コンテンツ保護システムで利用されるプロセッサ５０が使用するプロセッサクロック１０の周波数を乱数を用いて積極的に変調させることによって、当該コンテンツ保護システムはサイドチャネル攻撃の影響を受けにくくなる。
【００２５】
なお、乱数発生器４から出力される乱数に基づいて設定値１３を決定する方法は上記の方法に限られない。例えば、固定値に対して乱数を足し合わせて得られる値を設定値１３として使用しても良い。
【００２６】
また、図６に示されるに、基準クロック１２として、多相の基準クロック１２を採用してもよい。ＤＳＳ２が多相の基準クロック１２に基づいて動作することによって、ＤＤＳ２の出力クロック１１の多様性が向上する。例えば、基準クロック１２が３２相を有している場合、ＤＤＳ２は、ラップアラウンドが生じるタイミングを、基準クロック１２の周期を３２分割した精度で決定することができる。図７は、ＤＤＳ２の出力クロック１１と３２相の基準クロック１２との関係の一例を示す図である。以下に、図６に示されるＤＳＳ２の動作の一例について説明する。以下の説明では、３２相の基準クロック１２を構成する３２個のクロックを第１〜第３２位相クロックとそれぞれ呼ぶ。３２相の基準クロック１２では、第１位相クロック、第２位相クロック、・・・第３２位相クロックの順で、位相が大きくなっている。また、２１６−１（＝６５，５３６）を第１基準値と呼び、２１５（＝３２，７６８）を第２基準値と呼ぶことがある。
【００２７】
図６に示されるＤＳＳ２では、１６ビットの位相アキュムレータ３は、例えば、第１位相クロックが立ち上るたびに設定値１３を累積加算する。ＤＤＳ２は、位相アキュムレータ３の累積加算値が第１位相クロックのある立ち上がりで、第１基準値よりも小さくかつ第１基準値に最も近い値になった場合、第１〜第３２位相クロックのうちのいずれか一つの位相クロックの立ち上がりで累積加算値をラップアラウンドさせる。累積加算値がラップアラウンドすると、出力クロック１１に立ち上がりエッジが発生する。
【００２８】
以後、累積加算値が、第１基準値よりも小さくかつ第１基準値に最も近い値になる第１位相クロックの立ち上がりを「第１基準立ち上がり」と呼ぶことがある。また。第１位相クロックの第１立ち上りの次の立ち上がりを「第２基準立ち上がり」と呼ぶことがある。また、累積加算値についての、第１基準値よりも小さくかつ第１基準値に最も近い値を「近傍値」と呼ぶことがある。累積加算値は、第１位相クロックの第１基準立ち上がりで近傍値となる。
【００２９】
ここで、仮にラップアラウンドが発生しない場合、累積加算値は、第１位相クロックの第１基準立ち上がりでは近傍値となり、その次の第２基準立ち上がりで「近傍値＋設定値」となる。第１基準値から近傍値を差し引いた値を「差分値」と呼ぶと、第１位相クロックの周期に対して（差分値／設定値）を掛け合わせて得られる期間だけ第１基準立ち上がりから経過したタイミングで、累積加算値が第１基準値になると見なすことができる。以後、このタイミングを「第１基準値発生タイミング」と呼ぶ。第１基準値発生タイミングは、累積加算値が第１基準値と一致すると見なせるタイミングであると言える。
【００３０】
ＤＤＳ２は、第１〜第３２位相クロックのうち、（差分値／設定値）に対して３２を掛けて得られる値に最も近い番号の位相クロックを特定する。そして、ＤＤＳ２は、特定した位相クロックを使用対象の位相クロックとして、使用対象の位相クロックにおける、第１基準立ち上がりと第２基準立ち上がりの間の立ち上がりで、累積加算値をラップアラウンドさせる。使用対象の位相クロックにおける、第１基準立ち上がりと第２基準立ち上がりの間の立ち上がりは第１基準値発生タイミングに近くなる。したがって、ＤＤＳ２は、使用対象の位相クロックにおける、第１基準立ち上がりと第２基準立ち上がりの間の立ち上がりで、累積加算値をラップアラウンドさせることによって、第１基準値発生タイミングとほぼ同じタイミングで累積加算値をラップアラウンドさせることができる。
【００３１】
ＤＤＳ２は、第１位相クロックの第１基準立ち上がりと第２基準立ち上がりの間で累積加算値をラップアラウンドさせると、累積加算値の初期値を（設定値−差分値）に設定する。その後、位相アキュムレータ１３は、第１位相クロックの第２基準立ち上がりで、累積加算値（初期値）に対して設定値を加算する。ＤＤＳ２は以後同様に動作する。
【００３２】
例えば、設定値１３の値Ｖａｌｕｅが１３の場合、近傍値は６５５３３（＝１３×５０４１）になる。したがって、差分値は２（＝６５５３５−６５５３３）となる。このとき、第１基準値発生タイミングは、第１位相クロックの周期に対して（２／１３）を掛け合わせて得られる期間だけ第１基準立ち上がりから経過したタイミングとなる。
【００３３】
第１〜第３２位相クロックのうち、（２／１３）に対して３２を掛けて得られる値（約４．９）に最も近い番号の位相クロックは、第５位相クロックとなる。ＤＤＳ２は、第５位相クロックにおける、第１基準立ち上がりと第２基準立ち上がりの間の立ち上がりで累積加算値をラップアラウンドさせる。ＤＤＳ２は、累積加算値をラップアラウンドさせると、累積加算値の初期値を（１３−２）に設定する。そして、位相アキュムレータ１３は、第１位相クロックの第２基準立ち上がりで、累積加算値の初期値である１１に対して１３を加算する。その後、累積加算値が、近傍値である６５５３１（＝１１＋１３×５０４０）になると、差分値が４（＝６５５３５−６５５３１）となる。このとき、第１基準値発生タイミングは、第１位相クロックの周期に対して（４／１３）を掛け合わせて得られる期間だけ第１基準立ち上がりから経過したタイミングとなる。
【００３４】
第１〜第３２位相クロックのうち、（４／１３）に対して３２を掛けて得られる値（約９．８）に最も近い番号の位相クロックは、第１０位相クロックとなる。ＤＤＳ２は、第１０位相クロックにおける、第１基準立ち上がりと第２基準立ち上がりの間の立ち上がりで累積加算値をラップアラウンドさせる。ＤＤＳ２は累積加算値をラップアラウンドさせると、累積加算値の初期値を（１３−４）に設定する。そして、位相アキュムレータ１３は、第１位相クロックの第２基準立ち上がりで、累積加算値の初期値である９に対して１３を加算する。以後、ＤＤＳ２は同様に動作する。
【００３５】
このように、累積加算値がラップアラウンドするタイミングが調整されることによって、累積加算値が第１基準値と一致しない場合であっても、ＤＤＳ２は、累積加算値が第１基準値と一致すると見なせるタイミングとほぼ同じタイミングで累積加算値をラップアラウンドさせることができる。よって、設定値１３の値Ｖａｌｕｅとして任意の値を設定することができる。
【００３６】
上記と同様にして、ＤＤＳ２は、第１基準値発生タイミングに相当する、累積加算値が第２基準値と一致すると見なせるタイミングを特定する。そして、ＤＤＳ２は、特定したタイミングに近い位相クロックの立ち上がりで、出力クロック１１に立ち下がりエッジを発生させる。
【００３７】
例えば、設定値１３の値Ｖａｌｕｅが十進数で４６，３９７であり、基準クロック１２の周波数f_Reference_Clockが３２４ＭＨｚの場合には、１６ビットの位相アキュムレータ３を有するＤＤＳ２の出力クロック１１の周波数f_DDS_Output_Clockは、以下の式（２）で表される。
【００３８】
【数２】
2018506101.tif 000004
【００３９】
設定値１３と２Ｎとの比を掛けた基準クロック周波数によってＤＤＳ出力クロック周波数が直接的に決定されるため、設定値１３の変調（更新）は、直ちにプロセッサクロック１０の周波数の変化に反映する。
【００４０】
以上のように、クロック発生器１及びプロセッサシステム６０は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種の例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【産業上の利用可能性】
【００４１】
本発明は、コンテンツ保護技術としてＨＤＣＰが使用されたコンテンツ保護システムで好適に利用できる。特に、ＨＤＣＰ２．２で保護されたＡＶストリームコンテンツを受信するデジタルディスプレイと、当該ＡＶストリームコンテンツを受信および再送信可能なデジタルＡＶレシーバーとで好適に利用することができる。
【符号の説明】
【００４２】
１  クロック発生器
２  ＤＤＳ
３  位相アキュムレータ
４  乱数発生器
６０  プロセッサシステム
【図１】
2018506101.tif 000005
【図２】
2018506101.tif 000006
【図３】
2018506101.tif 000007
【図４】
2018506101.tif 000008
【図５】
2018506101.tif 000009
【図６】
2018506101.tif 000010
【図７】
2018506101.tif 000011
【国際調査報告】
2018506101.tif 000012