普段、TV、パソコン、スマホでストリーミングや映画を鑑賞することが多くなったと思いますが、読者の皆様の中で再生デバイスがコンテンツ保護非対応のため、再生できない、音声しか出ない、といった症状に遭遇したことはあるでしょうか。今回は、その裏で機能しているコンテンツ保護機能の1つであるHigh Bandwidth Digital Content Protection(以降、HDCPと記す。)について調べてみます。
コンテンツ保護とは
世の中に流通している音楽、映画等のコンテンツは、一部のフリー素材を除き著作権で保護されており権利者に無断で複製、再配布できません。コンテンツがアナログからデジタルに移行した現在、無劣化且つ無制限に複製できてしまうと権利者の利益が保護されません。そこで、コンテンツを暗号化して正規手順で入手した場合のみ、暗号化したコンテンツを複号し再生、閲覧を許可する仕組みがコンテンツ保護です。
暗号化の歴史
コンテンツ保護に使用されている暗号化について調べてみます。暗号化は、紀元前の頃から使われていたようで、スタキュレー暗号、シーザー暗号が有名ですが、平文(ひらぶん)に何らかの加工を加え暗号文を作るシーザー暗号が現在でも使用されている暗号に近いのではと思います。シーザー暗号のアルゴリズムは単純で、平文をアルファベット順にN文字シフト(N=1~25)して意味のない暗号文に変換し、受信者は予め共有しておいたN文字分を逆方向にシフトして復号するという仕組みです。
平文: hello world
シーザー暗号文: ifmmp xpsme (アルファベット順に1文字シフト)
その後、暗号を使うと敵国に通信内容を知られずに送受信者できるので、戦時中の通信に使われました。特に有名なのは、ドイツ軍が使用したEnigmaでしょうか。Enigma EmulatorのキーワードでWeb検索するといくつかヒットしますが今回は、参考文献2のUniversal Enigmaを使用してみます。初期暗号鍵のまま「hello world hello world」を暗号化すると、図1に示す暗号文「mfncz bbfzm pmvhf qegpn」が出力されました。暗号鍵を変えると図2に示すまた別の暗号文「ptctq klxgo sshbl rfyhi」が出力されました。同一暗号鍵で暗号文を入力し再度暗号化すると「hello world hello world」が複号され、暗号鍵を知っている受信者のみが平文を入手できます。1回目の「hello world」と2回目の「hello world」が異なる文字に暗号化され、暗号鍵が分からない第三者にとって解読は難しそうに思います。
図1 Universal Enigma初期暗号鍵で「hello world hello world」を暗号化
図2 Universal Enigmaの暗号鍵を変えて「hello world hello world」を暗号化
また、スマホ版Enigma Emulator、電子回路化されたEnigma Board Kitも入手できるようなのでご興味ある方は、Web、書籍等を調べてみては如何でしょうか。さて、Enigma EmulatorやEnigma Board Kitを何に使用するのかという疑問が沸いたと思いますがその答えは、概ね以下の通りになるでしょう。読者の皆様の中でEnigma EmulatorやEnigma Board Kitに興味を持った方はどのような動機だったでしょうか。
- 技術者の知的興味、好奇心を満たす。
- 自分で現物を見て触って実際に確かめたい。
HDCPの仕組み
HDCPは、認証済みDeviceかどうか確認してから暗号化コンテンツを送受信しますが、その手続きについて見てみます。現在は、HDCP1.x系と2.x系が運用されており高画質4Kコンテンツを扱う場合、HDCP2.x系が適用されます。規格文書は、Digital Content Protection LLC Webで公開されており誰でも閲覧することができます。HDCPの世界では、Source(Blu-ray player等)をTransmitter、Sink(TV, Monitor等)をReceiver、RepeaterはそのままRepeaterと呼んでいます。HDCPシステム内では、7階層、128 HDCP Device(Repeater含む。)まで接続することができます。図3は、BD playerとDigital TVをCableで接続した場合の例でHDMIの場合DDC、DisplayPortの場合AUX Channelをそれぞれ使用してHDCP信号がやり取りされます。
図3 HDCP Transmitter(BD player)とHDCP Receiver(Digital TV)の接続例
今回は、参考文献1のHDCP1.4規格文書を参照し手続きを追ってみましょう。認証手続きは、第1認証から第3認証の3段階で構成されTransmitter(Device A)とReceiver(Device B)接続の場合は、第2認証がSkipされ第1認証→第3認証の順に手続きが進みます。HDCP Deviceは、公開の40bit Key Selection Vector(以下、Transmitterの場合Aksv、Receiverの場合Bksvと記す。)と非公開の40個56bit秘密鍵(以下、Transmitterの場合Akeys、Receiverの場合Bkeysと記す。)を持ち、第三者が解読しにくい値を生成して通信に使用し手続きは、認証されたDevice間のみで成立する仕組みになっています。
- 第1認証 有効なDevice Key Set(Aksv, Akeys, Bksv, Bkeys)を持つDevice間で共有する。
- 第2認証 Repeaterの場合に手続き必須。Repeaterに接続されたReceiver Bksvを共有する。
- 第3認証 各Frame前の垂直同期期間内で暗号の初期状態を共有する。
コンテンツ保護に対し不正なReceiverが判明した場合、そのBksvを無効化リストに登録し認証を拒否する機能もあります。無効化リストは、コンテンツに同梱され市場に流通しているTransmitterが再生すると無効化リストがそのTransmitterに登録されその後、不正なReceiverが接続された場合に認証を拒否するという仕組みです。規格文書内では、5章 Renewabilityに規定されておりSystem Renewability Message(以下、SRMと記す。)と呼ばれています。
HDCP1.4第1認証
第1認証について図4に示す手続きの詳細を見てみましょう。手続きは、Transmitterが主導しいつでも第1認証が完了した後でも開始可能です。Transmitterは、Aksvと64bit疑似乱数Anを含む初期化MessageをReceiverに送信すると認証を開始する合図となります。次にReceiverは、BksvとREPEATER bitを含むMessageをTransmitterに返信します。Transmitterは、Bksvが無効化リストに載っていないこと、Bksvに0と1がそれぞれ20個含まれていることを確認します。ここで、Transmitter(Receiver)が交換したAksv(Bksv)によって選択されたAkeys(Bkeys)をBinary加算し、56bit Km(Km’)をそれぞれ計算します。次に、Transmitterは、KmとREPEATER及びAnを連結した65 bit初期値を使用したHDCP Cipher FunctionによってKs(56bit Secret key)、M0(64bit Secret value)、R0(16bit value)を計算し、同様にReceiverは、Ks’、M0’、R0’を計算しR0’のみをTransmitterに返信します。R0=R0’ならHDCP第1認証が完了します。
図4 HDCP1.4第1認証手続き
秘密鍵Akeys(Bkeys)から生成される第三者が解読しにくい値Km(Km’)の計算例を見てみましょう。参考文献1のHDCP1.4規格文書、Appendix A. Test Vectors Table A-2. Sample Km Calculationは、表5に示すKm(Km’)の計算例が記載されています。Transmitter A1は、Receiver B1のBksv 511ef21acdを取得し、Binaryが(MSB)0101-0001-0001-1110-1111-0010-0001-1010-1100-1101(LSB)なので1が立っているBitが0, 2, 3, 6, 7, 9, 11, 12, 17, 20, 21, 22, 23, 25, 26, 27, 28, 32, 36, 38であることがわかります。Transmitterは、40個のAkeys配列IndexのうちBksv=1のBitによって選択された20個のAkeysを合計しKmを計算します。同様にReceiverもKm’を計算するとKm=Km’が成立していることがわかります。暗号鍵Akeys(Bkeys)は非公開で外部から参照できないように実装されています。
Transmitter A1:
Aksv=b70361f714, 1011-0111-0000-0011-0110-0001-1111-0111-0001-0100
Km=Σ(Akeys[0]+[2]+[3]+[6]+[7]+[9]+[11]+[12]+[17]+[20]+[21]+[22]+[23]+[25]+[26]+[27]+[28]+[32]+[36]+[38])=5309c7d22fcecc
Receiver B1:
Bksv=511ef21acd, 0101-0001-0001-1110-1111-0010-0001-1010-1100-1101
Km’=Σ(Bkeys[2]+[4]+[8]+[9]+[10]+[12]+[13]+[14]+[15]+[16]+[21]+[22]+[24]+[25]+[32]+[33]+[34]+[36]+[37]+[39])=5309c7d22fcecc
__Transmitter A1__ | __Aksv:b70361f714__ | ____Receiver B1____ | __Bksv:511ef21acd__ |
Akeys[Index] | Akeys[Bksv] | Bkeys[Index] | Bkeys[Aksv] |
Akeys[0] | 4da4588f131e69 | Bkeys[2] | 24bf2185a36c60 |
Akeys[2] | 8a6a47abb9980d | Bkeys[4] | a72e69c5eb6388 |
Akeys[3] | f3181b52cbc5ca | Bkeys[8] | 3b9857797d5103 |
Akeys[6] | a0d064c8112c41 | Bkeys[9] | 0dd170be615250 |
Akeys[7] | b39d5a28242044 | Bkeys[10] | 1a748be4866bb1 |
Akeys[9] | 91a47b4a6ce4f6 | Bkeys[12] | 4bbb037899eea1 |
Akeys[11] | 8c7fb706ee3fa0 | Bkeys[13] | 190ecf9cc095a9 |
Akeys[12] | c02d8c9d7cbc28 | Bkeys[14] | a821c46897447f |
Akeys[17] | 482f8e46785498 | Bkeys[15] | 1a8a0bc4298a41 |
Akeys[20] | e2d231767b3a54 | Bkeys[16] | aefc0853e62082 |
Akeys[21] | 4d581aede66125 | Bkeys[21] | e3053fa3e9fa69 |
Akeys[22] | 326082bf7b22f7 | Bkeys[22] | 37d8002881c7d1 |
Akeys[23] | f61b463530ce6b | Bkeys[24] | 9e93d41e0811f7 |
Akeys[25] | a1e105618d49f9 | Bkeys[25] | 2c4074509eec6c |
Akeys[26] | c98e9dd1053406 | Bkeys[32] | 1280161221df6d |
Akeys[27] | 20c36794426190 | Bkeys[33] | ca31a5f2406589 |
Akeys[28] | 964451ceac4fc3 | Bkeys[34] | 1d30e8cb198e6f |
Akeys[32] | 54c7ea5bdd7b43 | Bkeys[36] | cec7ec09245b43 |
Akeys[36] | 05d3408a78fb01 | Bkeys[37] | b08129efedd583 |
Akeys[38] | 373b634a2c9e40 | Bkeys[39] | edeef9d099b78c |
ΣAkeys[]: Km | 5309c7d22fcecc | ΣBkeys[]: Km’ | 5309c7d22fcecc |
HDCP1.4第3認証
次に、第3認証について図6に示す手続きの詳細を見てみましょう。手続きは、Frame [i](iはFrame値を示す。)手前の垂直同期期間内で実行されます。Transmitterは、暗号化初期値のK[i](56bit Cipher初期値)、M[i](64bit初期値)、R[i](16bit Link検証値)を計算し、128 Frame毎に再計算されます。同様にReceiverは、K[i]’、M[i]’、R[i]’を計算しTransmitterに返信します。R[i]=R[i]’ならHDCP第3認証が完了しますが、コンテンツを送受信する限り2s毎にR[i]=R[i]’を継続して照合します。また、1.1 optionという追加機能もあり、16 Frame毎にPj[i]=Pj[i]’を照合します。
図6 HDCP1.4第3認証手続き
通信機器、AV機器、IT機器の認証試験
アリオン株式会社は、HDCP認証機関資格を取得しHDCP1.4、2.3認証試験を承っており、通信機器、AV機器、IT機器の様々な有線、無線インターフェースのロゴ認証試験、接続互換性試験、フィールドクレーム解析等、長年にわたり実績を積み重ねノウハウを蓄積しています。また、お客様のご要望に応じたカスタムメイド解析評価等も承っています。通信機器、AV機器、IT機器に関するご相談、困りごとがありましたらお問い合わせ頂ければと思います。
最後に
DVD、Blu-rayに加えダウンロード、ストリーミングによるコンテンツ配信が増えるに従い、権利者の利益を守るコンテンツ保護技術も更に発達していくと考えられます。コンテンツ保護に使用される暗号化技術は、時代と共に解読されにくい複雑な仕組みが開発されていますが、実装に必要な回路規模が増え処理速度が遅くなる副作用も発生していると思います。また、仕様を非公開にした方が解読されにくいはずなのに、HDCP規格文書が公開されていることに違和感を覚えた方もいると思います。仕様を一般公開することで専門家、研究者が分析、検証し問題がある場合にはセキュリティーホールを修正することが可能になり、仕様公開→検証→評価→課題発見→修正プロセスを経て暗号化技術が熟成していくと考えられます。
参考文献
- HDCP Specification Rev. 1.4 (https://www.digital-cp.com/)
- Universal Enigma (http://people.physik.hu-berlin.de/~palloks/js/enigma/index_en.html)
本記事に関するお問い合わせ