JP2008035397A - 暗号情報処理方法および暗号情報処理装置 - Google Patents
暗号情報処理方法および暗号情報処理装置 Download PDFInfo
- Publication number
- JP2008035397A JP2008035397A JP2006208698A JP2006208698A JP2008035397A JP 2008035397 A JP2008035397 A JP 2008035397A JP 2006208698 A JP2006208698 A JP 2006208698A JP 2006208698 A JP2006208698 A JP 2006208698A JP 2008035397 A JP2008035397 A JP 2008035397A
- Authority
- JP
- Japan
- Prior art keywords
- key
- media key
- media
- mkb
- encrypted
- 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
Links
Images
Abstract
【課題】AACSにおけるMKB処理の冗長性低減とその処理の簡略化をはかる。
【解決手段】メディアキーKmと乱数データBNからプロテクテッドエリアキーKpaを生成し、暗号化されたタイトルキーKteを含むタイトルキーファイルTKFとプロテクテッドエリアキーKpaから、コンテンツの暗号化または復号化に用いるタイトルキーKtを生成する方法において、タイトルキーKtを利用する機器に、メディアキーKmに対応する独自保護された暗号化メディアキーEnc_Kmを保持する(ST250)。この機器は、保持された暗号化メディアキー(Enc_Km)を適宜利用する(ST210イエス、ST212〜ST214)。
【選択図】 図10
【解決手段】メディアキーKmと乱数データBNからプロテクテッドエリアキーKpaを生成し、暗号化されたタイトルキーKteを含むタイトルキーファイルTKFとプロテクテッドエリアキーKpaから、コンテンツの暗号化または復号化に用いるタイトルキーKtを生成する方法において、タイトルキーKtを利用する機器に、メディアキーKmに対応する独自保護された暗号化メディアキーEnc_Kmを保持する(ST250)。この機器は、保持された暗号化メディアキー(Enc_Km)を適宜利用する(ST210イエス、ST212〜ST214)。
【選択図】 図10
Description
この発明は、暗号鍵等を利用した情報アクセス管理に関する。特に、高度機密情報(Highly Confidential Data)の保護に利用される暗号情報の処理方法に関する。
近年、ディスクメディア等に記録されたコンテンツにアクセスするデジタル機器が種々開発されている。このような機器でアクセスされるディスクに記録されたデータには、不正アクセスあるいは違法コピーを防止するため、暗号化処理が施されている。この暗号化されたデータには、DVD(Digital Versatile Disc)では主にCSS(Content Scramble System)方式に準拠した暗号化方式が採用されている。
一方、より高度な暗号化方式として、AACS(Advanced Access Content System)が提案されている(特許文献1)。このAACS方式を採用する場合、例えばセットメーカーは、ライセンサーが持つ鍵ツリーから特定の鍵セットを入手し、異なる組み合わせの鍵を暗号化して、個々の機器に組み込んでいる。
また、アプリケーションプログラムからDVDメディアに対して認証要求があるとDVDメディア用のMKB(Media Key Block)の代わりにメモリカード用の最新のMKBをDVDメディアから読み出してアプリケーションプログラムに渡す、といった方法の提案もなされている(特許文献2)。
特開2005−39480号公報
特開2001−256113号公報
AACSでは、コンテンツを正当に記録再生する機器毎に付与されたデバイス鍵とランダムに発生させた乱数とにより、複数の鍵それぞれを暗号化して乱数とともに鍵ファイルに登録して、メディアに記録する。コンテンツを再生する場合には、この鍵ファイルに登録されている暗号化鍵を、乱数と再生しようとする機器のデバイス鍵とで復号化する。そして、復号化された鍵でコンテンツを復号化して、コンテンツを再生する。
AACSでは、上記コンテンツ復号化のための鍵(Title Key:Kt)を得る過程に、メディアキーブロック(Media Key Block:MKB)を処理してメディアキー(Media Key:Km)を生成する処理が入る。このMKBの処理は、同一のMKBについて繰り返し行なわれる可能性が高いため、毎回処理していては冗長である。
この発明の課題の1つは、AACSにおけるMKB処理の冗長性を減らし処理の簡略化をはかることである。
この発明の一実施の形態に係る方法は、メディアキー(Media Key:Km)と乱数データ(Binding Nonce:BN)からプロテクテッドエリアキー(Protected Area Key:Kpa)を生成し、暗号化されたタイトルキー(Encrypted Title Key:Kte)を含むタイトルキーファイル(Title Key File:TKF)と前記プロテクテッドエリアキー(Kpa)から、コンテンツの暗号化または復号化に用いるタイトルキー(Title Key:Kt)を生成する際に用いられる。
この方法において、前記タイトルキー(Kt)を利用する機器(HD_DVD Recorder等)に、前記メディアキー(Km)に対応する独自保護された暗号化メディアキー(Enc_Km)を保持する(図9のST141等)。そして、前記メディアキー(Km)が前記独自保護とは異なる方法(AACS)で暗号化されて記録された情報をメディアキーブロック(MKB)とし、前記機器により記録または再生が行われるメディア(光ディスク)は前記メディアキーブロック(MKB)を持ち、このメディアが持つメディアキーブロック(MKB)を更新するために前記機器上にメディアキーブロック(MKB)の情報が保持されているときに、前記機器が前記保持された暗号化メディアキー(Enc_Km)を利用する(図9のST140〜ST148等)。
AACSを用いた機器が、独自保護された暗号化メディアキーを保持することにより、その機器におけるMKBの処理を簡略化できる。
以下、図面を参照してこの発明の種々な実施の形態を説明する。光ディスク等の情報記録媒体に対して情報を記録する場合、情報を暗号化して記録することが要求される場合がある。その場合、例えば著作権保護されたコンテンツを暗号鍵で暗号化して暗号化コンテンツとし、さらに暗号化に用いた前記暗号鍵を秘匿させるため、他の暗号鍵で暗号化して暗号化鍵としている。そして前記暗号化鍵と暗号化コンテンツを一緒に記録媒体に記録し、違法コピー防止している。
現在、急速にマーケットを拡大しているDVD(Digital Versatile Disc)では、著作権保護に関して、次のような対応が図られている。即ち、DVDビデオでは、DVD CCA(DVD Copy Control Association)がライセンスしているCSS(Content Scramble System)方式を利用しており、DVDオーディオではCPPM(Content Protection for Prerecorded Media)方式を利用している。また、記録メディアに記録されるコンテンツの著作権保護方式ではCPRM(Content Protection for Recordable Media)方式が利用されている。CPPM方式とCPRM方式のライセンスは、特定の団体(例えば4C Entity, LLCと称される団体)が行っている。
一方では、更に高精細映像や高品質多チャネル音声信号などを記録再生可能とする、大容量の次世代DVD等の開発が進められている。このような次世代記録媒体へ高品位著作物を記録する場合の著作権保護方式は、従来以上にセキュリティー能力を高めた方式の導入が要求されている。その具体例として、AACS(Advanced Access Content System)方式がある。以下、HD_DVD−VR(High Density Digital Versatile Disc Video Recording)フォーマットで採用するコンテンツ保護技術であるAACSにおけるコンテンツ鍵の管理方法を説明する。
従来のCPRM方式では、ディスクの中に存在するメディアキーブロック(MKB)とメディアID(Media ID)を用いて暗号鍵を生成してコンテンツを暗号化していた。一方、AACS方式では、ディスク内のコンテンツは共通の1つの暗号鍵ではなく、コンテンツ毎の暗号鍵によって暗号化されている。
図1はメディア100内のデータの構成例を示す図である。この例では、同一のメディア内には、MPEG2−PSなどの形式のコンテンツであるビデオオブジェクト(VOB)、MPEG2−TSなどの形式のコンテンツであるストリームオブジェクト(SOB)をそれぞれ規格上最大1998個保存することが可能となっている。従来の方式ではこれらの全オブジェクトで1つの暗号鍵を使用しているが、AACS方式ではコンテンツ毎にそれぞれ異なる暗号鍵によって暗号化がなされている。そしてこのコンテンツごとの暗号鍵はタイトルキーファイル(TKF)に記憶されている。即ち、ビデオオブジェクト用タイトルキーファイルとストリームオブジェクト用タイトルキーファイルが設けられ、それぞれのタイトルキーファイルには暗号化されたタイトルキー(Encrypted Title Key:E−TK、またはKte)が最大1998個保存可能となっている。
図2は、メデイア100に記録された暗号化コンテンツ(Encrypted Contents)を復号する処理を説明する図である。図2には、コンテンツなどを記録したメディア100に格納されている情報と、情報記録再生装置200に設けられた処理機能及びそれらの間のデータの流れを表している。
HD_DVD Video Recording Formatで採用するコンテンツ保護技術はAACSである。AACSにおけるコンテンツ鍵の管理方法を図2を用いて説明する。AACS処理で使用するディスクの上書き換え不能な領域に記録されているデータには、
・Media ID
・Lead-in MKB
がある。
・Media ID
・Lead-in MKB
がある。
一方、AACS処理で使用するものであってディスク100上でファイルとして存在するデータには、
・Read Write MKB
・Title Key File
・Title Usage File
がある。またTitle Key Fileの先頭アドレスのプロテクト領域にはBinding Nonceという乱数を基にしたデータが記録されている。
・Read Write MKB
・Title Key File
・Title Usage File
がある。またTitle Key Fileの先頭アドレスのプロテクト領域にはBinding Nonceという乱数を基にしたデータが記録されている。
AACSでは、コンテンツを暗号化するための「タイトル鍵(Kt)」を生成する処理は、大きくいって、次の順番で実行される。すなわち、まずLead-in MKBとRead Write MKBのバージョンの新しいほうを使用してMKB処理を行う。この処理で生成される鍵を「メディア鍵(Km)」と呼ぶ。このメディア鍵KmとBinding Nonce(BN)を入力としてProtected Area Key処理(Kpa処理)を行うと「プロテクテッドエリアキー(Kpa)」が生成される。このKpaとTitle Usage FileのデータとTitle Key Fileのデータを入力としてTitle Key処理(TK処理)を行うことで、Title Key Fileに記載されている暗号化されたタイトル鍵(Encrypted Title Key)を本来のタイトル鍵Ktに変換することができる。
MKBとはMedia Key Blockと呼ばれるデータであり、メディア鍵Kmが暗号化されて記録されたものである。またMKBには不正機器の情報も記録されており、不正機器はKmを取り出すことができないようになっている。不正機器の情報は更新されるため、MKBも新しいものを使うようにする必要がある。このためHD_DVDのAACSでは、メディアのLead-in Areaに埋め込まれているLead-in MKB、ディスク上にファイルとして保存されているRead Write MKB、及び機器自体が内部の不揮発メモリに保存するMKB(以後、Device MKBとする)の3種類のMKBが存在し、このうちもっとも新しいMKBをRead Write MKBに上書きすることが定められている。但し、MKBが新しいものに更新されるということはKmの値が変更されることになるため、Km以降のすべての鍵情報(Kpa等)は再生成する必要がある(なお、Ktは再生成の必要はないがTKFは再生成(再暗号化)の必要がある)。
なお、図2の情報記録再生装置200には、制御部210、読み出し部220、書込み部230が設けられている。制御部210は、図2に示す情報記録再生装置200の各機能及び各処理動作を制御する。読出し部220は、メディア100よりデータを情報記録再生装置200に読み込む。書込み部230は、情報記録再生装置200内のデータをメディア100に書き込む。
メディア100の読み取り専用リードイン領域にはLead-in MKB(Media Key Block)が格納され、書き換え可能領域であるUser Data AreaにはRead Write MKBが格納されている。MKBは、コンテンツ暗号化のベース鍵であるメディアキー(Km)を、情報記録再生装置200に秘密鍵として設置されるデバイスキー(Kd)の集合体で暗号化して数学的体系を整えた、「メディアキーブロック」である。
図2のS10において、メディア100に記録されているLead-in MKBとRead Write MKBのバージョンを比較して、Read Write MKB のバージョンが、Lead-in MKBのバージョン以上であることを確認した上で、Read Write MKBをMedia MKBとして読み出す。また、メディア100にLead-in MKBのみしか存在しない場合には、Lead-in MKBをMedia MKBとして読み出す。そして、S11において情報記録再生装置200で保存されているデバイスキーセット(Set of Device KeysあるいはDevice Key Set)とMedia MKBとを用いてMKB処理を行う。このデバイスキーセットは、複数のデバイスキーKdで構成されている。
ここで、MKBにはプロテクテッドエリアキー(Kpa)を生成するための情報が暗号化されて保存されているが、そのほかに、リボーク情報(Revoke Information:取消情報あるいは無効化情報)も含まれている。即ち、あるデバイスキーセットにセキュリティホールが存在し、ライセンサが該当するデバイスキーKdを使用禁止としたときは、該当するデバイスキーKdに関するリボーク情報が記載される。このリボーク情報によって、該当するデバイスキーKdを持ったデバイスでは暗号を解くことができなくなる(つまりリボークされた情報を再生できなくなる)。不正機器の情報は時間経過に伴い漸次更新されるため、MKBも新しいもの(最新の更新されたMKB)を使うようにする必要がある。そのため上述のようにバージョンの新しいほうをMedia MKBとして使用する。
このMKB処理によって、メディア鍵(Km)が生成される。図2のS12において、生成されたメディア鍵を検証する。生成されたメディア鍵が検証結果不正である場合は、デバイスキーセットが不正であるとみなして、AACSに関する処理を終了する。
一方、タイトルキーファイル(TKF)の先頭アドレスのプロテクト領域には、Binding Nonceというファイルと結合した「乱数を基にしたデータ」が記録されている。このBinding Nonceは、例えば、PC(パソコン)のWrite命令ではコピー不可であり、AACSで定義された命令のみによってコピーが可能である。このように、AACSのライセンスを受けたハードでのみコピー可能とすることで、PCを介した情報の流出を防いでいる。
次に、図2のS13において、KmとBinding Nonceを用いて、暗号処理であるKpa処理を実施する。このKpa処理には、暗号アルゴリズムであるAES(Advanced Encrypted Standard)−Gを用いる。このKpa処理の結果としてプロテクテッドエリアキー(Kpa)が生成される。
次に、Kpaからタイトルキー(TK)を生成するための、タイトルキー処理について説明する。この処理は図2のS14で示されている。タイトルキーファイル(TKF)には、TKFN(Title Key File Nonce)という乱数データが記憶されている。このTKFNは暗号化処理(後述)において、タイトルキーを暗号化するために用いられた乱数データである。また、ディスク100にはコンテンツの利用規則を記述したTitle Usage Fileが備わっている。このTitle Usage Fileには、複数の使用規則それぞれについて、その使用規則を適用するか否かの情報(Usage Rule)が、0または1のBit情報として記述されている。
さらに、ディスク100のリードイン領域より内側に設けられた読取専用のバーストカッティングエリア(BCA)には、Media IDが記録されている。Media IDは、メディア毎に付加されている固有IDである。そして、書き換え可能領域であるユーザデータエリアには、Media IDを用いた改ざん防止コードMAC(Message Authentication Code)であるMedia ID MACが格納されている。
図2のS14に示すタイトルキー処理では、上述のUsage Ruleを処理した結果とKpaとTKFNとに基いてAES−Dのアルゴリズムを用いた処理を行い、暗号化されたタイトルキー(E−TKまたはKte)を復号してタイトルキー(TK)を生成する。なお、この際BCAに格納されているMedia IDを用いて生成したMACと、ディスクに格納されているMedia ID MACとを比較して改ざんがなされていないことが検証される。図2のS15において、このようにして生成されたTKと暗号化されたコンテンツ(Encrypted contents)とをAES−Gのアルゴリズムで処理してコンテンツキーを生成し、S16において、このコンテンツキーを用いて暗号化されたコンテンツ(Encrypted contents)を復号してコンテンツを生成する。
図3は、コンテンツを暗号化してHD_DVD-R/RW/RAM等の光ディスク100に記録する処理を説明する図である。なお、使用する用語は図2と同一であるため、重複する説明は省略する。図3のS20において、メディア100に記録されているLead-in MKBとRead Write MKBのバージョンを比較して、バージョンの新しいMKBをMedia MKBとして読み出す。次に、Media MKBと、情報記録再生装置200が保有するDevice MKBとのバージョンを比較する。Device MKBのバージョンの方が新しい場合は、S21において、MKB更新処理を起動しRead Write MKBにDevice MKBの値を更新する。但し、Media MKBのバージョンの方が新しい場合にDevice MKBの値を更新するかどうかは、セット仕様となる。そして、図3のS22において、情報記録再生装置200で保存されているデバイスキーセットとMedia MKBとを用いてMKB処理を行う。このMKB処理によって、メディア鍵(Km)が生成される。
図3のS23において、生成されたメディア鍵を検証し、生成されたメディア鍵が検証結果不正である場合は、デバイスキーセットが不正であるとみなしてAACSに関する処理を終了する。一方、図3のS24において、KmとBinding Nonceとを用いて、暗号処理であるKpa処理を実施する。AES−Gを用いたKpa処理の結果としてプロテクテッドエリアキー(Kpa)が生成される。
図3のS25において、タイトルキー(TK)とコンテンツとをAES−Gのアルゴリズムで処理してコンテンツキーを生成する。そして、S26において、このコンテンツキーを用いてコンテンツを暗号化してEncrypted contentsを生成し、メディア100に記録する。また、S27において、Media IDとTKとを用いてMACを生成し、メディア100にMedia ID MACとして格納する。一方、S28において、タイトルキーを暗号化するために用いられる乱数データを生成し、Title Key File Nonceとしてメディア100に記録する。そして、S29において、Usage Ruleをハッシュ処理(公知技術)した結果とKpaとTKとに基いてAES−Eのアルゴリズムを用いた処理を行い、暗号化されたタイトルキー(E−TKまたはKte)を生成してメディア100に格納する。なお、Usage RuleはS30においてメディア100に記録する。
上述のように、コンテンツの暗号化、復号化においてはタイトルキー等が重要な役割を担っている。しかし、このタイトルキー等はRead/Write可能なファイルとしてメディア100に記録されているため、メディア表面が例えば指紋などで汚れた場合、簡単にコンテンツの読み出し不能の状態に至るおそれがある。そこで、AACSではこれらのタイトルキー等の情報を格納したタイトルキーファイル(TKF)についてバックアップが図られている。
図4は、タイトルキーファイルとそのバックアップファイルとしてのタイトルキーファイルの構造例を示す説明図である。なお、このバックアップ方法の説明では、タイトルキーファイルをTKF1とし、バックアップファイルとしてのタイトルキーファイルをTKF2,TKF3と表す。なお、TKF1〜3は、メディア100に格納している。
それぞれのタイトルキーファイル(TKF1〜3)は、Binding Nonce1〜3(BN1〜3)と、Title Key File Generation1〜3(TKFG1〜3)と、Title Key File Nonce1〜3(TKFN1〜3)と、Encrypted Title Key1〜3(暗号化タイトルキーETK1〜3)とをそれぞれ登録した構成となっている。ここで、Binding Nonce1〜3(BN1〜3)は、上述のように自身のタイトルキーファイルの暗号化に用いられる乱数データである。Title Key File Generation1〜3(TKFG1〜3)は、タイトルキーファイル(TKF1〜3)それぞれの変更回数を表している。Title Key File Nonce〜3(TKFN1〜3)は、自身のタイトルキーファイルまたはバックアップファイル以外のファイルの暗号化タイトルキー(ETK1〜3)を生成するための乱数である。
Encrypted Title Key1〜3(暗号化タイトルキー:ETK1,ETK2,ETK3)は、次の(eq.1)〜(eq.3)式で示される:
ETK1=f(TK,Kpa1,TKFN3) …(eq.1)
ETK2=f(TK,Kpa2,TKFN1) …(eq.2)
ETK3=f(TK,Kpa3,TKFN2) …(eq.3)
ここで、Kpa=AES−G(Km,BN)である。また、TKは暗号化されていない平文のタイトルキーを示し、暗号処理関数fは、第1パラメタ(TK)に第2パラメタ(BN1〜3)と第3パラメタ(TKFN1〜3)を暗号鍵として暗号処理を施すことを示している。暗号処理fには、たとえばAES(Advanced Encryption Standard)などの公知の暗号アルゴリズムを用いればよい。
ETK1=f(TK,Kpa1,TKFN3) …(eq.1)
ETK2=f(TK,Kpa2,TKFN1) …(eq.2)
ETK3=f(TK,Kpa3,TKFN2) …(eq.3)
ここで、Kpa=AES−G(Km,BN)である。また、TKは暗号化されていない平文のタイトルキーを示し、暗号処理関数fは、第1パラメタ(TK)に第2パラメタ(BN1〜3)と第3パラメタ(TKFN1〜3)を暗号鍵として暗号処理を施すことを示している。暗号処理fには、たとえばAES(Advanced Encryption Standard)などの公知の暗号アルゴリズムを用いればよい。
すなわち、TKF1は、TKF3と関連づけられており、タイトルキー(TK)を、(BN1)と、関連づけられたTKF3の(TKFN3)とで暗号化したものとなっている。また、TKF2は、TKF1と関連づけられており、タイトルキー(TK)を、(BN2)と、関連づけられたTKF1の(TKFN1)とで暗号化したものとなっている。さらに、TKF3は、TKF2と関連づけられており、タイトルキー(TK)を、(BN3)と、関連づけられたTKF2の(TKFN2)とで暗号化したものとなっている。
このようにタイトルキーファイルTKF1と各バックアップファイルTKF2,TKF3は、互いに他のファイルと関連付けられており、暗号化タイトルキー(E−TK1,E−TK2,E−TK3)は、自己のファイルに登録された(BN1,BN2,BN2)と、関連づけられている他のファイルに登録されている(TKFN1,TKFN2,TKFN3)とでタイトルキー(TK)を暗号化したものとなっている。
上記のようにTKFを3つ保存し、TKFNを別ファイルに保存することにより、1つのTKFがデータ破損などにより壊れてしまっても、残り2つのTKFのデータから、壊れたデータを復元できる。
なお、前述したBinding Nonceを特殊なドライブ用コマンドでしか読み書きできないデータとしておくことにより、不正コピーを防止できる。すなわち、仮にTKFがコピーされてもそれに付随するBinding Nonceはコピーされないため、悪意のある第三者による不正な暗号化/復号化行為を防ぐことができる。
なお、タイトルキーファイルと各バックアップファイルの他のファイルのTKFNとの関連づけは、上記(eq.1)〜(eq.3)式に限定されるものではなく、(eq.1)〜(eq.3)式以外のパターンでタイトルキーファイルとバックアップファイルのTKFNと関連付けるように構成してもよい。
図5、図6、図7を参照しつつ、AACS方式の記録再生処理で必要となるメデイア上のデータを詳細に説明する。メディア100上のProtected Area、即ち、E−TK(またはKte)が格納されているファイルのProtected Areaには、Binding Nonce及びそのバックアップデータが格納されている。また、メディア100の読取専用エリアにあるBCA(Burst Cutting Area)にはMedia IDが記録され、リードイン領域にはLead-in MKBが記録されている。
メディア100上のユーザデータエリアには、ビデオオブジェクト(VOB)および/またはストリームオブジェクト(SOB)のCopy Protection Pointerに関する情報である管理情報が格納されている。また、ユーザデータエリアには、Read Write MKB、暗号化されたタイトルキー(E−TK)、Media ID MAC、Usage Rule及びそれらのバックアップファイルが格納されている。さらに、ユーザデータエリアは、暗号化されたコンテンツが最大1998個まで格納が可能となっている。
なお、図7のサイズ欄において“−”となっている個所には、対応情報の実際のサイズを記載することができる。例えば、Read/Write MKBというデータのサイズ欄にはこのRead/Write MKBの実サイズを記載できる。
図8は、暗号化されたタイトルキーファイル(E−TKF)の構造を示している。なお、図8はストリームオブジェクト(SOB)についてのE−TKFの構造であるが、ビデオオブジェクト(VOB)についても同様の構造である。バイト位置でいって0〜15バイトには、タイトルキーファイルを特定するための固定情報(STKF_ID、HR_STKF_EA)が記載され、32〜33バイトの“VERN”には、TKFのバージョン番号が記載されている。
そして、128〜143バイトには、Title Key File Generationが格納され、144〜159バイトにはTitle Key File Nonceが格納されている。また、160〜64095バイトには、Title Key Information(KTI)として、暗号化されたタイトルキー(E−TK、またはKte)とMedia ID MACとが1998組記載されている。
それぞれのコンテンツはこの1998個のタイトルキーのうちの1つの鍵を使って暗号化されている。但し、1998個すべてにEncrypted Title Keyを記録しておく必要は無く、未使用のものは0という数値をTK処理で暗号化したものを記述する。またTitle Key File Generationにはこのファイルの更新のたびにインクリメントされる値が記されている。上述のようにタイトルキーファイルはバックアップ用に合計3つのファイルを備えている。そしてこの3つのファイルのTitle Key File Generationの値がすべて一致していない場合、ファイル書き込み中に何らかの障害があったことを意味する。
次にタイトルキーファイルの更新方法について説明する。AACSが適用されるメディアの種類には、リライタブルメディアとライトワンスメディアがある。リライタブルメディアでは、例えば、新しいコンテンツが追加記録される毎に新しいタイトルキーが追加されるため、タイトルキーファイル中の全タイトルキーを新しいKpaを用いて再暗号化する必要がある。即ち、タイトルキーファイルの更新が必要となる。
ところで、タイトルキーファイルのプロテクト領域には、Binding Nonceという乱数を基にした数値が記載されているが、このBinding Nonceは不正な暗号解除を防止するために使用されるものであり、従って、Binding Nonceもタイトルキーファイルを更新する都度、更新される。
一方、ライトワンスメディアでは、タイトルキーファイルを更新すると毎回新しいアドレスにタイトルキーファイルが書き込まれることになる。このためBinding Nonceの書き込まれるアドレスも毎回異なる。しかし、AACSではBinding Nonceは同一個所に上書きすることが求められているため、ライトワンスメディアの場合は、タイトルキーファイルの更新を行わないようにしなければならない。従って、リライタブルメディアとライトワンスメディアでは、タイトルキーファイルの更新条件が異なることになる。
図8のTitle Key Fileの中には1998個の暗号化されたタイトル鍵(Encrypted Title Key)が記録されている。コンテンツはこの1998個のうちの1つの鍵を使って暗号化されている。1998個すべてにEncrypted Title Keyを記録しておく必要は無く、未使用のものは“0”という数値をTK処理で暗号化したものを記述することになっている。またTitle Key File Generationにはこのファイルの更新のたびにインクリメントされる値が記されている。Title Key Fileはタイトル鍵を保存するものであり、メディア上の欠陥等により読めなくなるとコンテンツの再生がまったく不能になる。このためバックアップ用に3つのファイルに書き込んでいる。この3つのファイルのTitle Key File Generationの値がすべて一致していない場合、ファイル書き込み中に何らかの障害があったことを意味する。
メディア100上のTitle Key Fileが書き込まれているアドレスのプロテクト領域に、Binding Nonceという乱数を基にした数値を記録している。プロテクト領域とはAACS専用の特殊コマンドでのみ読み書きができる領域であり、この部分にKpaを構成する要素を記録しておくことで、パソコン等を使った不正な暗号解除を防ぐことができる。
Title Key File内のタイトル鍵は、プロテクテッドエリアキーとTitle Key FileNonce
(TKFN)を組み合わせてTK処理を行うことで暗号化している。このとき、Title Key File#1の暗号化にはTitle Key File#2のTitle Key File Nonceを使い、Title Key File#2の暗号化のTitle Key File Nonceを使う、というようにしている。こうすることにより、3つのTitle Key Fileのうち1つが破損してしまっても、他の2つのファイルを用いることによって復元ができる。このようにTitle Key File Nonceはタイトル鍵の暗号に用いているものであるので、Title Key Fileを更新する都度更新する。
(TKFN)を組み合わせてTK処理を行うことで暗号化している。このとき、Title Key File#1の暗号化にはTitle Key File#2のTitle Key File Nonceを使い、Title Key File#2の暗号化のTitle Key File Nonceを使う、というようにしている。こうすることにより、3つのTitle Key Fileのうち1つが破損してしまっても、他の2つのファイルを用いることによって復元ができる。このようにTitle Key File Nonceはタイトル鍵の暗号に用いているものであるので、Title Key Fileを更新する都度更新する。
なお、Binding Nonceも、プロテクテッドエリアキーを生成するデータとしてタイトル鍵の暗号に用いているものであるので、同様に、Title Key Fileを更新する都度更新する必要がある。
一方、Binding Nonceはファイルが書き込まれるアドレスに依存しており、HD_DVD-R等のライトワンスメディアの場合、Title Key File自体が毎回新しいアドレスに保存されることになり、Binding Nonceの書き込まれる位置も一箇所ではなくなる。しかしAACSではBinding Nonceは同一箇所に上書きすることが求められているので、ライトワンスメディアの場合はTitle Key Fileの更新を行わないようにする。
Title Key Fileには1998個の暗号化されたタイトル鍵を保存することが出来る。これはビデオオブジェクト(VOB)及びストリームオブジェクト(SOB)の個数と一致しており、ビデオオブジェクト毎にタイトル鍵(Kt)を変えることを前提としている。これは、例えばそのディスクから他のメディアにコンテンツをムーブする場合、使用しているタイトル鍵を消去しないと不正コピーができる抜け穴が残ってしまうためである。タイトル鍵を削除すると、同じタイトル鍵を共用している他のオブジェクトが復号できなくなるので、極力オブジェクトごとに異なる鍵を割り当てる必要がある。このため、録画再生装置においては、1回の録画処理毎にタイトル鍵を新規に生成し、そのタイトル鍵によってビデオオブジェクト及びストリームオブジェクトを暗号化する。
一方、特にストリームオブジェクト(SOB)による録画の場合、記録対象のデジタル放送の内容によってストリームオブジェクトを動的に分割する必要がある。具体的には番組の境界で音声ストリームの個数が変わるなどストリームオブジェクト(SOB)の構成要素が変わった場合は、自動的にそこでSOBを分割する。このような場合、そこでタイトル鍵を切り替えるのは事実上不可能である(タイトル鍵を切り替えようとすると、新たな鍵の生成に時間を要するため、分割後のSOBの録画を開始する際その先頭部分の録画が欠けてしまう)。このような場合は同じタイトル鍵を使った暗号を引き続き行う。
なお、ディスクがライトワンスメディア(上書きできないメディア)である場合はTitle Key Fileの更新ができないため、録画開始時に鍵を生成する処理において、既に存在するタイトル鍵を用いることになる。
メディア100としてリライタブルメディア(HD_DVD-RW/RAMあるいはHDD等)を用いる場合において、リライタブルメディアのタイトルキーファイルの更新手続きは、例えば次のようになる。ここで、リライタブルメディアには、既にタイトルキーファイルが生成されて書き込まれているとする。この処理動作は、情報記録再生装置200の制御部210(あるいは後述する図15の鍵処理制御部210もしくは図21のCPU11のファームウエア等)により実現される。
例えばユーザが情報記録再生装置200の電源をONし、リライタブルメディアを挿入すると、MKB処理とTKF読み込み処理が一括して実行される。MKB処理では、Read Write MKB及びLead-in MKBに付加している署名を検証し、検証結果が正当であると判定した場合は、それぞれのMKBのバージョンを取得する。Read Write MKBのバージョンはLead-in MKBのバージョンと同じかもしくは新しくなければならないが、もしそうでない場合は、再生及び記録を制限する。TKF読み込み処理では、メディアにあるタイトルキーファイルをSDRAM等の上に展開する。
そして、ユーザのコンテンツ記録操作、コンテンツ編集操作、コンテンツ削除操作、メディア排出操作、情報記録再生装置200の電源OFF操作に対応して、タイトルキーファイルの更新を行うかどうかを判断する。即ち、以下の3つの条件のうちの少なくとも1つが満たされたときのみ、タイトルキーファイルを更新する。
(1)コンテンツの記録、削除が行われた場合
コンテンツの記録、削除が行われると、タイトルキーファイル内のEncrypted Title Keyが新たに追加、削除される。そのため、タイトルキーファイルを更新する。
コンテンツの記録、削除が行われると、タイトルキーファイル内のEncrypted Title Keyが新たに追加、削除される。そのため、タイトルキーファイルを更新する。
(2)MKBが更新された場合
例えば、情報記録再生装置200の内部で保持しているMKBであるDevice MKBのバージョンがRead Write MKBのバージョンよりも新しい場合、Device MKBの値をRead Write MKBにコピーしてDevice MKBのメディア鍵(Km)が変更される。Kmが変更されると、Kpaも更新される。このため、タイトルキーファイルを更新してタイトルキーの再暗号化を行う。
例えば、情報記録再生装置200の内部で保持しているMKBであるDevice MKBのバージョンがRead Write MKBのバージョンよりも新しい場合、Device MKBの値をRead Write MKBにコピーしてDevice MKBのメディア鍵(Km)が変更される。Kmが変更されると、Kpaも更新される。このため、タイトルキーファイルを更新してタイトルキーの再暗号化を行う。
(3)3つのTitle Key File Generationの1つだけが異なる場合
上述のように3つのタイトルキーファイルの内の1つが破損していることになる。そのため、正常な残りの2つのタイトルキーファイルを用いて破損したタイトルキーファイルを修復(更新)する。すなわち、上述の3つの条件のうちの少なくとも1つが成立する場合は、タイトルキーファイルの更新を行う。上述の3つの条件の全てが成立しない場合は、タイトルキーファイルを更新せずに処理を終了する。
上述のように3つのタイトルキーファイルの内の1つが破損していることになる。そのため、正常な残りの2つのタイトルキーファイルを用いて破損したタイトルキーファイルを修復(更新)する。すなわち、上述の3つの条件のうちの少なくとも1つが成立する場合は、タイトルキーファイルの更新を行う。上述の3つの条件の全てが成立しない場合は、タイトルキーファイルを更新せずに処理を終了する。
メディア100としてライトワンスメディア(片面1層のHD_DVD-Rあるいは片面2層のHD_DVD-R:DL等)を用いる場合は、ライトワンスメディアのタイトルキーファイルの書込み手続きは例えば次のようになる。この処理動作は、情報記録再生装置200の制御部210等により実行できる。
例えばユーザが情報記録再生装置200の電源をONし、ライトワンスメディアを挿入すると、MKB処理とTKF読み込み処理が一括して実行される。MKB処理では、Read Write MKB及びLead-in MKBに付加している署名を検証し、検証結果が正当であると判定した場合は、それぞれのMKBのバージョンを取得する。Read Write MKBのバージョンはLead-in MKBのバージョンと同じかもしくは新しくなければならないが、もしそうでない場合は、再生及び記録を制限する。TKF読み込み処理では、メディアにあるタイトルキーファイルをSDRAM等の上に展開する。
そして、ユーザのコンテンツ記録操作、コンテンツ編集操作、コンテンツ削除操作、メディア排出操作、情報記録再生装置200の電源OFF操作に対応して、タイトルキーファイルの書込みを行うかどうかを判断する。即ち、以下の2つの条件が満たされれば、タイトルキーファイルを書き込む。
(1*)コンテンツの記録が行われた場合
(2*)ディスクにタイトルキーファイルが記録されていなかった場合。
(2*)ディスクにタイトルキーファイルが記録されていなかった場合。
AACSではTitle Key Fileを同一箇所に上書きすることが求められているため、ライトワンスメディアの場合は、(1*)と(2*)の条件を同時に満たしたときにのみTitle Key Fileを書き込む。そうする理由を以下に述べる。
(1*)の条件のみでは、コンテンツの記録が行われる度に書き込み要求が起こるため、同一箇所に上書き不可能なライトワンスメディアでは問題となる。(2*)の条件のみでは、ディスクにコンテンツを記録していない状態では、有効なコンテンツキーは生成されていないため、無効なEncrypted Title KeyのみのTitle Key Fileとなり問題となる。(1*)と(2*)の条件を共に満たす場合には、ディスクにTitle Key Fileが記録されていない状態で記録が行われたときに書き込むこととなるため、有効なEncrypted Title Keyが1つだけ生成されたTitle Key Fileが記録されることになる。
上述の2つの条件がともに成立する場合は、タイトルキーファイルをディスクに書き込む。上述の2つの条件が全て成立しない場合は、タイトルキーファイルの書き込みを行わずに処理を終了する。
以上説明した実施の形態によれば、メディア種別ごとにタイトルキーファイルを書き込む条件を設け、その条件に合致するときのみにディスクに書き込む。この条件によれば、リライタブルメディアの場合は無駄にTitle Key Fileを更新することがなくなり、ディスクに書き込む回数を削減することができる。ライトワンスメディアの場合は、問題のあるTitle Key Fileを書き込こんでしまうことを排除することができる。
図15は、この発明が実施される機器の構成および機器に保持しているIndexデータ等のデータ構造の一例を説明する図である。ここではMediaとしてMKB(Media Key Block)およびTKF(Title Key File)が記録された光ディスク100が用いられる。ディスク100がディスクドライブ部300に装填されると、このディスク100からMKB、TKF等の情報が読み取られる。読み取られたMKB、TKF等の情報(AACSで用いる情報)は鍵処理制御部310に送られる。鍵処理制御部(AACS処理部)310は、MKB情報等をMedia Key Block保持部320に送るとともに、Media Key等を独自保護部330に送る。
独自保護部330は、(1)デバイス鍵保持部340からデバイス鍵等を取り寄せて独自の暗号化を復号し、デバイス鍵等を使用可能な状態にすること、(2)Media Keyに独自の暗号化処理を施すこと、(3)Media Keyの独自の暗号化を復号すること、といった機能を有する(後述する図17、図19参照)。独自暗号化処理が施された暗号化Media Keyは、対応するIndexの情報とともに、Media Key/Index保持部(不揮発性メモリ)350に格納される。
このMedia Key/Index保持部350に格納される情報のデータ構造は、図15の右側に例示するようになっている。すなわち、図15に例示されるMedia Key/Index保持部350には、先頭から順に、Max_Index_countと、Enc_Kmポインタと、1以上のインデックスデータ(Index00〜Index4A:この例では各データは8ビットで構成され、2桁のHex-decimalで表記されている)が格納される。Max_Index_countは、現在、機器(図15の左側のブロック構成)のMedia Key/Index保持部(不揮発性メモリ)350に保持しているインデックスデータの数を示す。Enc_Kmポインタは、Media Key/Index保持部350を構成するメモリ上の暗号化メディアキーEnc_Kmのデータの開始位置を示すもので、Enc_Kmポインタは保持しているインデックスデータと同数ある。そして、各インデックスデータは対応する暗号化メディアキーEnc_Kmのデータとペアになっている。
Media Key/Index保持部350に保持された暗号化Media Keyを利用できる場合では、この暗号化Media Keyを復号化し、復号化されたMedia KeyからタイトルキーKtを生成する。このタイトルキーKtを用いて、ディスク100から再生した暗号化コンテンツをコンテンツ復号化/暗号化部360で復号化して、コンテンツ再生部370に送る。あるいは、前記生成されたタイトルキーKtを用いて、コンテンツ受信部(デジタルTVチューナ等)380からの(AACSで保護しようとする)コンテンツをコンテンツ復号化/暗号化部360で暗号化して、ディスクドライブ部300に送る。送られた暗号化コンテンツはディスク100に記録される。
図15のMedia Key/Index保持部350にとって必要な条件、およびそこで保持すべき情報は、
・MKB上から取得してきたIndexデータであること;
・暗号化された状態のMedia Keyデータであること;
・Media KeyとIndexデータの対応付けがされており、Indexデータの番号から、暗号化Media Keyを取り出す位置が分かること
・現状のIndexの個数が把握でき、適宜Indexを追加できること
である。
・MKB上から取得してきたIndexデータであること;
・暗号化された状態のMedia Keyデータであること;
・Media KeyとIndexデータの対応付けがされており、Indexデータの番号から、暗号化Media Keyを取り出す位置が分かること
・現状のIndexの個数が把握でき、適宜Indexを追加できること
である。
また、図15のMedia Key/Index保持部350に対する付帯条件(なるべく満足したい条件)として、
・Indexと暗号化Media Keyの対応関係が維持されていれば、それぞれを並べ替えても、復号処理や新しいIndexの追加に支障をきたさないこと(前後のデータを関連付けた暗号化や、並び順に依存する暗号化はソートに適さない)
がある。
図15の右側に例示したデータ構造は、上記の必要条件および付帯条件のいずれも満たす構成を採っている。
・Indexと暗号化Media Keyの対応関係が維持されていれば、それぞれを並べ替えても、復号処理や新しいIndexの追加に支障をきたさないこと(前後のデータを関連付けた暗号化や、並び順に依存する暗号化はソートに適さない)
がある。
図15の右側に例示したデータ構造は、上記の必要条件および付帯条件のいずれも満たす構成を採っている。
図16は、暗号化データの構造の一例を説明する図で、図15の左側に例示したデータ構造をより詳細に示している。この例では、図15のMedia Key/Index保持部350を構成する不揮発性メモリのアドレスとして、BaseAddressと00000000hや00004000h等のアドレスオフセットとの組み合わせを用いている。先頭のMax_Index_Countから最終のEnc_Kmまでのアドレス範囲にあるデータの格納位置は、BaseAddressを変更することで、メモリ内の任意の位置に容易に配置換えできる。また、このアドレス範囲内において、Enc_KmポインタにリンクするEnc_Kmの格納位置の変更も容易に行うことができる。例えば、Index03に対応するEnc_Kmを取り出す場合には、「BaseAddress + Enc_Kmポインタ + 03h * 10h(Enc_Kmのサイズ)」を先頭アドレスとしてデータを取り出す。この例では、IndexとEnc_Kmとの対応関係は、Indexの並びで規定される「Index番号」に依存している。
上記のように構成すると、以下の利点が得られる:
(イ)IndexとEnc_Kmを離れた場所に置いておくことができる;
(ロ)固定フォーマットではないため、運用上、Index数などが増加した場合にも、最適なアドレスにEnc_Kmのデータを移動させることができる;
(ハ)IndexとEnc_Kmをそれぞれソートして、対応するIndexが上(アドレスの若い方)に来るように操作すれば、使用頻度・優先度の高いEnc_Kmの検索効率を上げることができる。
(イ)IndexとEnc_Kmを離れた場所に置いておくことができる;
(ロ)固定フォーマットではないため、運用上、Index数などが増加した場合にも、最適なアドレスにEnc_Kmのデータを移動させることができる;
(ハ)IndexとEnc_Kmをそれぞれソートして、対応するIndexが上(アドレスの若い方)に来るように操作すれば、使用頻度・優先度の高いEnc_Kmの検索効率を上げることができる。
図17は、機器に保持される鍵情報(Media Key)の独自暗号化処理の一例を説明する図である。AES一方向性関数処理部(入力128bit:鍵128bit:出力128bit)170には、固定値(128bit)171と機器に固有の乱数(128bit)172が入力される。この乱数172としては、例えばAACSが機器毎に発行する鍵のセットには鍵の他に乱数値が含まれているので、その値の一部を使用することができる。AES一方向性関数処理部170の処理結果は、AES暗号化処理部(入力128bit:鍵128bit:出力128bit)173側に出力される。AES暗号化処理部173には、Media Key(Km:128bit)174が入力される。AES暗号化処理部173は、入力された情報を、AES一方向性関数処理部170の処理結果を鍵とするAESで暗号化して、暗号化Media Key(Enc_Km)175を出力する(図19を参照して後述)。
ここで、暗号器自体としてAES以外の暗号器(例えばAESを一部修正した暗号器など)を用いても良いが、必ずしもその必要はない。AACSで使用するAESを元に、独自に定義した手順と、独自に定めて秘匿されている鍵を用いれば、十分に暗号化Media Keyの保護が可能である。
図18は、機器に保持される鍵情報(Media Key)の独自復号化処理の一例を説明する図である。AES一方向性関数処理部(入力128bit:鍵128bit:出力128bit)180には、固定値(128bit)181と機器に固有の乱数(128bit)182が入力される。AES一方向性関数処理部180の処理結果は、AES復号化処理部(入力128bit:鍵128bit:出力128bit)183側に出力される。AES復号化処理部183には、暗号化Media Key(Enc_Km:128bit)184が入力される。AES復号化処理部183は、入力された情報を、AES一方向性関数処理部180の処理結果を鍵とするAESで復号化して、復号されたMedia Key(Km:128bit)185を出力する(図20を参照して後述)。
図19は、独自暗号化処理手順の一例を説明するフローチャートである。まず、MKBのIndexとして扱う領域からIndexデータ取得し(ST700)、機器に実装している不揮発性メモリ(Media Key/Index保持部350)の最大Index番号(図15のデータ構造におけるMax_Index_Count)をインクリメントする(Max_Index_Countを例えば4Ahを4Bhにインクリメントする)(ST702)。次に、機器に実装している不揮発性メモリの最大Index番号位置に、Indexデータを書き込む(ST704)。続いて、入力を「機器に固有の乱数(図17の172)」とし、鍵を「ハードウエアHWあるいはファームウエアFW内で秘匿された固定値(図17の171)」として、AES一方向性関数処理(図17の170)を実行する(ST706)。この処理が済んだら、入力を「Media Key(Km)(図17の174)」とし鍵を「ST706の処理の一方向性関数処理結果」として、AES暗号化処理(図17の173)を実行する(ST708)。ST708の処理の暗号化結果が、独自方法で保護された、暗号化Media Key(Enc_Km)(図17の175)となる(ST710)。そして、機器に実装している不揮発性メモリ(Media Key/Index保持部350)の「Enc_Kmポインタ+10h*Index」アドレスに、暗号化Media Key(Enc_Km)を書き込んで(ST712)、Media Keyに対する独自保護処理(暗号化)を終了する。
図20は、独自復号化処理手順の一例を説明するフローチャートである。まず、Indexの検索結果からIndexアドレスを取得し(ST800)、機器に実装している不揮発性メモリ(Media Key/Index保持部350)から、Indexアドレスに対応する暗号化Media Key(図15のデータ構造例に示すようにIndexとペアになっているEnc_Km)を取得する(ST803)。続いて、入力を「機器に固有の乱数(図18の182)」とし、鍵を「ハードウエアHWあるいはファームウエアFW内で秘匿された固定値(図18の181)」として、AES一方向性関数処理(図18の180)を実行する(ST806)。この処理が済んだら、入力を「暗号化Media Key(Enc_Km)(図18の184)」とし、鍵を「ST806の処理の一方向性関数処理結果」として、AES復号化処理(図18の183)を実行する(ST808)。ST808の処理の復号化結果が、独自方法の保護が解除されたMedia Key(Km)(図18の185)となる(ST810)。こうして、Media Keyに対する独自保護処理(復号化)を終了する。
図9は、機器またはディスクのMKB更新処理の一例(機器にMKB更新機能が実装されている場合)を説明するフローチャートである。(この発明の一実施の形態に係る機器では、ディスクのMKBを更新する機能の実装は必須とし、機器上のMKBを更新する機能の実装はオプションとすることができる。但し、ディスクのMKBを更新する機能の実装および機器上のMKBを更新する機能の実装の双方を必須とする実施の形態も可能である。)
機器(図2、図3、図15、図21等)またはディスク100のMKB更新時などにおいてMKB処理が開始されると、まず、ディスク100よりMKBのバージョン情報を取得する(ST116)。取得したディスクのMKBバージョンと機器上に保持しているMKBのバージョンとを比較する(ST118)。両者のバージョンが異ならない(換言すれば同一である)ときは(ST118ノー)、MKB更新せずに処理を終了する。
機器(図2、図3、図15、図21等)またはディスク100のMKB更新時などにおいてMKB処理が開始されると、まず、ディスク100よりMKBのバージョン情報を取得する(ST116)。取得したディスクのMKBバージョンと機器上に保持しているMKBのバージョンとを比較する(ST118)。両者のバージョンが異ならない(換言すれば同一である)ときは(ST118ノー)、MKB更新せずに処理を終了する。
機器のMKBバージョンの方が新しければ(ST118イエスの場合の1つ)、ディスク100のMKBを更新する。このとき、TKFの再暗号化が発生するので、機器のMedia KeyおよびディスクのMedia Keyの両方が必要になる。機器のMedia Keyは独自保護していたものを使用できる(後述するST142参照)。
一方、ディスクのMKBバージョンの方が新しければ(ST118イエスの場合の他の1つ)、機器のMKBを更新する。すなわち、ディスク100よりMKBを取得し(ST120)、AACS_VerifyMKBのSignatureを検証する(ST122)。このSignature検証については、図24等を参照して後述する。Signature検証が不可であれば(ST124ノー)、このMKB処理は異常終了する。Signature検証がOKであれば(ST124イエス)、機器上(図15の例ではデバイス鍵保持部340)に保持しているDevice Keyを取得する(ST126)。MKB上のDevice Keyに対応する処理可能なノードを探索し、見つかったノードに対応するデータを取得する(ST128)。取得したデータからMedia Key導出演算を行う(ST130)。この演算としては、AES(Advanced Encrypted Standard)の処理を2〜23回程度行う(AESについては図2の説明等参照)。その後MKB上のVerification Dataの検証を行い(ST132)、検証に失敗すれば(ST134ノー)、このMKB処理は異常終了する。このVerification Dataの検証がOKであれば(ST134イエス)、ディスク100のMedia Keyを取得する(ST136)。上記ST120〜ST136の処理(ディスクのMedia Keyを取得する処理)は、図10以降を参照して説明する処理により簡易化可能となる。
ディスク100のMedia Keyを取得したあと、そのディスクのMKBバージョンと機器上に保持しているMKBのバージョンとを比較する(ST138)。ディスクのMKBバージョンが機器のMKBのバージョンより新しいときは(ST138イエス)、機器上に保持されているMKBをディスク100のMKBで更新(上書き)する(ST141)。このとき、機器のMKBを上書きするのに加え、Media Keyを独自保護して、MKBと共に機器に保持する(ST141)。ここで、機器のMKBのMedia Keyとして独自保護しておくのは1つだけなので、古いMedia Key(独自保護対象のもの)は破棄される。但し、破棄せずに、図10以降を参照して説明する処理と同様に、過去に処理したMedia Keyの1つとしてIndex管理して残すことは可能である。
ディスク100のMKBバージョンが機器のMKBのバージョンより新しくないときは(ST138ノー)、機器上の独自保護されたMedia Key(暗号化メディアキーEnc_Km)を取得し(ST142)、取得したMedia Keyの独自保護を解除する(つまり暗号化されたメディアキーを復号化する)(ST144)。なお、「機器のMKBのMedia Key保持機能」が実装されていない場合(図15の例で言えばMedia Key/Index保持部350が機器に実装されていない場合)は、ここ(ST142)でもう一度Media Key導出処理が必要になる。従い、この「機器のMKBのMedia Key保持機能」は、この発明の実施の形態における重要ポイントの1つとなる。
独自保護が解除されたMedia Keyが得られたあと、TKFの再暗号化が行われる(ST146)。この再暗号化では、復号鍵としてディスクのMedia Keyが用いられ、暗号鍵として機器に保持していた(独自保護が解除された)Media Keyが用いられる。そして、ディスクのMKBを機器上に保持しているMKBで更新して(ST148)、ディスクのMKB更新処理が完了する。
なお、機器のMKBを更新する機能を持たない機器の場合では、その機器が製造メーカから出荷される段階で組み込まれたMKBと、対応する独自保護されたMedia Keyが使われ続けることになる。 図10は、ディスク上のコンテンツを再生しあるいはディスク上にコンテンツを記録する場合における、効率的なMedia Key導出処理の一例を説明するフローチャートである。まず、ディスク100からMKBのIndex情報を取得し(ST206)、機器上のMedia Key/Index保持部350内に保持しているIndex情報を検索する(ST208)。検索対象に対応するIndexがMedia Key/Index保持部350内にあれば(ST210イエス)、そのIndexに対応する機器上の独自保護されたMedia Key(図15のデータ構造例では、例えばIndex02に対応するEnc_Km02)を取得する(ST212)。そして取得したMedia Keyの独自保護を解除して(つまり暗号化されたメディアキーを復号化するなどして)(ST214)、MKB処理を終える。これにより、冗長性の少ない簡素化された処理(ST212〜ST214)で、Media Keyの取得が完了する。
検索対象に対応するIndexがMedia Key/Index保持部350内にないときは(ST210ノー)、ディスク100からMKBを取得し(ST220)、AACS_VerifyMKBのSignatureを検証する(ST222)。このSignature検証は図9のST122における検証と同様である。
Signature検証が不可であれば(ST224ノー)、このMKB処理は異常終了する。この場合は、Media Keyは未取得となる。Signature検証がOKであれば(ST224イエス)、図9のST126〜ST134と同様な処理(ST236〜ST244)を行い、Verification Dataの検証がOKであれば(ST244イエス)、MKB処理が終了し、これによりMedia Keyの取得が完了する。こうして取得したMedia Keyに対して、Media Key保持処理が実行される(ST250)。すなわち、MKBからIndexを取得し(ST252)、Media Keyを独自保護方法で秘匿(暗号化)する(ST254)。そして、取得済みのIndexと独自暗号化で秘匿したMedia Keyとのペアを、順次、Media Key/Index保持部350内に保存(累積)する(ST256)。この保存を繰り返すと、図15の右側に示すようなデータ構造の情報がMedia Key/Index保持部350内に保持されるようになる。
図11は、ディスク上のコンテンツを再生しあるいはディスク上にコンテンツを記録する場合における、効率的なMedia Key導出処理の他例を説明するフローチャートである。まず、ディスク100からMKBのIndex情報を取得し(ST300)、AACS_VerifyMKBのSignatureを検証する(ST302)。このSignature検証は図9のST122における検証と同様である。
Signature検証が不可であれば(ST304ノー)、このMKB処理は異常終了する。この場合は、Media Keyは未取得となる。Signature検証がOKであれば(ST304イエス)、図10のST206〜ST214、ST236〜ST244と同様な処理(ST306〜ST314、ST336〜ST344)を行い、Verification Dataの検証がOKであれば(ST344イエス)、MKB処理が終了し、これによりMedia Keyの取得が完了する。こうして取得したMedia Keyに対して、Media Key保持処理が実行される(ST350)。
なお、Media Keyが取得できるのはST310の判定結果がイエスのときとノーのときの2通りある。そのうち、ST350の処理が実行されるのは、ST310の判定結果がノーであり、その後にMedia Keyが取得できた場合だけである。その場合、MKBからIndexを取得し(ST352)、Media Keyを独自保護方法で秘匿(暗号化)する(ST354)。そして、取得済みのIndexと独自暗号化で秘匿したMedia Keyとのペアを、順次、Media Key/Index保持部350内に保存(累積)する(ST356)。この保存を繰り返すと、図15の右側に示すようなデータ構造の情報がMedia Key/Index保持部350内に保持されるようになる。なお、図11のST336以降の処理(ST336〜ST344)は、図9のST126〜ST134と同様である。
図12は、ディスク上のコンテンツを再生しあるいはディスク上にコンテンツを記録する場合における、効率的なMedia Key導出処理の他例を説明するフローチャートである。図12の処理ST400〜ST414とST436〜ST456は、図11の処理ST300〜ST314とST336〜ST356にそれぞれ対応している。図11と異なるのは、図12の処理では、独自保護の解除(ST414)のあと、MKB上のVerification Dataの検証を行っている(ST432)ことである。このVerification Dataの検証がOKであれば(ST434イエス)、MKB処理が終了し、Media Keyの取得が完了する。この検証に失敗すれば(ST434ノー)、ST436の処理に移行する。ST436以降の処理(ST436〜ST444)は、図9のST126〜ST134と同様である。
図13は、ディスク上のコンテンツを再生しあるいはディスク上にコンテンツを記録する場合における、効率的なMedia Key導出処理の他例を説明するフローチャートである。図13の処理ST500〜ST504とST536〜ST556は、図11の処理ST300〜ST304とST336〜ST356にそれぞれ対応している。図11と異なるのは、図13のST506〜ST514の処理である。すなわち、ディスク100からMKBのVerification Dataを取得し(ST506)、機器上に保持しているVerification Dataを検索する(ST508)。検索対象に対応するVerification Dataがあれば(ST510イエス)、そのVerification Dataに対応する機器上の独自保護されたMedia Keyを取得する(ST512)。そして取得したMedia Keyの独自保護を解除して(ST514)、MKB処理を終える。これにより、冗長性の少ない簡素化された処理(ST512〜ST514)で、Media Keyの取得が完了する。検索対象に対応するVerification Dataがないときは(ST510ノー)、ST536の処理に移行する。ST536以降の処理(ST536〜ST544)は、図9のST126〜ST134と同様である。
図14は、(ST436〜ST444)フローチャートである。図14の処理ST600〜ST604とST606〜ST656は、図13の処理ST500〜ST504とST506〜ST556にそれぞれ対応している。図13と異なるのは、図14のST605A〜ST605Bのバージョン比較処理である。すなわち、ST604でSignature検証がOKであれば、ディスク100よりMKBのVersionを取得する(ST605A)。このVersionが、その時点で機器が指定するバージョン番号より新しければ(あるいは同じバージョンであれば)(ST605Bイエス)ST606の処理へ移行し、古ければ(ST605Bノー)ST636の処理へ移行する。ST606以降の処理(ST606〜ST614)は、図13のST506〜ST514と同様である。また、ST636以降の処理(ST636〜ST644)は、図13のST536〜ST544あるいは図9のST126〜ST134と同様である。
なお、図14のST605A〜ST605Bの処理は、メディアキーブロック(MKB)のサイズ(例えば図7のMKBのサイズ欄で“−”となっている個所の内容)の大小比較処理であってもよい。すなわち、MKBのサイズ情報を取得し(ST605A)、サイズがそれ以前よりも大きくなっていれば(ST605Bノー)ST636の処理へ移行し、サイズがそれ以前と変わらないなら(ST605Bイエス)ST606の処理へ移行するようにしてもよい。
図21は、この発明の一実施の形態に係る再生装置を示す概略的な全体構成図である。再生装置10は、CPU(またはMPU)11、RAM12、ROM13および入力データベースとしてのSignature Verification Input Table14およびディスクドライブ20を有する。再生装置10は、HD_DVD Recorderなどの記録再生装置により構成することができる。
CPU11は、ROM13内に記憶されたプログラム(ファームウエア)にしたがって、再生装置10の処理動作を制御する。CPU11は、ROM13内に記憶された署名検証プログラムおよびプログラムの実行のために必要なデータをRAM12へロードし、署名検証プログラムにしたがって署名検証演算する処理を実行する。また、CPU11は、ROM13内に記憶されたドライブ制御プログラムおよびプログラムの実行のために必要なデータをRAM12へロードし、ドライブ制御プログラムによる制御にしたがって、ディスクドライブ20の動作を制御する。
RAM12は、CPU11が実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。ROM13は、再生装置10の起動プログラム、署名検証プログラム、ドライブ制御プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。なお、ROM13は、磁気的もしくは光学的記録媒体または半導体メモリなどのCPU11により読み取り可能な記録媒体を含んだ構成を有し、ROM13内のプログラムおよびデータの一部または全部は電子ネットワークを介してダウンロードされるように構成してもよい。
Signature Verification Input Table14は、過去に挿入された媒体の、MKBのデータ部のHash値(圧縮値)およびMKBの最終ブロックのSignature(以下、このHash値およびSignatureを総称して入力データという)を格納する。
ディスクドライブ20は、CPU(またはMPU)21、RAM22、ROM23およびピックアップ部24を有する。ディスクドライブ20は、HD_DVDなどの光ディスクドライブにより構成することができる。このディスクドライブ20の処理動作は、再生装置10のCPU11によって制御される。
CPU21は、ROM23内に記憶されたプログラムにしたがって、ディスクドライブ20の処理動作を制御する。CPU21は、ROM23内に記憶された署名検証プログラムおよびプログラムの実行のために必要なデータをRAM22へロードし、署名検証プログラムにしたがって署名検証演算する処理を実行する。また、CPU21は、ROM23内に記憶されたデータ読み取り、制御プログラムおよびプログラムの実行のために必要なデータをRAM22へロードし、再生装置10のCPU11による制御に従いデータ読み取り制御プログラムによりピックアップ部24の動作を制御し、媒体1に記録された情報を読み取る。
RAM22は、CPU21が実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。ROM23は、たとえば、署名検証プログラム、データ読み取り制御プログラム、これらのプログラムを実行するために必要な各種データ等を記憶する。なお、ROM23は、磁気的もしくは光学的記録媒体または半導体メモリなどの、CPU21により読み取り可能な記録媒体を含んだ構成を有し、ROM23内のプログラムおよびデータの一部または全部は電子ネットワークを介してダウンロードされるように構成してもよい。
ピックアップ部24は、レーザ発振部、各種レンズなどを有し、再生装置10のCPU11による制御を受けたCPU21の制御により記録媒体1の情報記録面にレーザを照射し、反射光を集光し、この反射光の情報をディスクドライブ20に与える。この反射光の情報をもとに、CPU21は、読み取り制御プログラムによって媒体1に記録されたMKBなどの情報を読み取り、この情報を再生装置10へ与える。
図22は、CPU11の構成例を示す概略的なブロック図である。CPU11は、署名検証プログラムによって、少なくとも、Hash値計算手段11a、入力データ検索手段11b、署名検証演算手段11c、署名検証判定手段11dおよび最終判定手段11eとして機能できる。この各手段11a〜11eは、RAM12の所要のワークエリアを、データの一時的な格納場所として利用する。
CPU11の各手段11a〜11eを説明するにあたり、まず、この発明に係る再生装置があつかうMKBの構成について説明する。図23は、この発明の一実施の形態に係る再生装置による署名検証におけるMKBのデータの取り扱い方を模式的に示した説明図である。図23に示すように、MKBは全体で1Mbyte以内となるよう構成されている。MKBの先頭ブロックには12bytesのVersion情報が付されている。MKBのデータ部には、いくつかのデータが記録される場合がある。このデータとして、Host Revocation Listなどが挙げられる。各データにはそれぞれに対応する署名が付されている。MKBの最終ブロックに対しては、Version情報およびデータ部をメッセージとする40bytesのSignature(署名)が付加されている。このSignatureは、AACS LAが保持する秘密鍵により作成される。
次に、CPU11の各手段11a〜11eについて説明する。Hash値計算手段11aは、ディスクドライブ20から媒体1のMKBを受け、このMKBのデータ部を、SHA−1(Secure Hash Algorithm 1:ハッシュ関数の一つ)による計算を行うことにより圧縮し、20bytesのHash値を生成する機能を有する。
入力データ検索手段11bは、Hash値計算手段11aからMKBのデータ部のHash値およびMKBのSignature(入力データ)を受け、Signature Verification Input Table14にしたがって入力データを検索し、同一の入力データの有無を判定する機能を有する。また、入力データ検索手段11bは、同一の入力データがあった場合には、媒体1のMKBの署名検証が成功したと判定し、この判定結果を最終判定手段11eに与える。
署名検証演算手段11cは、媒体1のMKBについて、EC−DSAによる署名検証の演算を行う機能を有する。
署名検証判定手段11dは、この演算結果を受け、署名検証が成功したかどうかを判定し、成功した場合にはSignature Verification Input Table14に対応する入力データを記録する機能を有する。また、署名検証判定手段11dは、判定結果(成功か失敗か)を最終判定手段11eに与える機能を有する。
最終判定手段11eは、媒体1のMKBの署名検証について、判定結果を入力データ検索手段または署名検証判定手段11dから受け、ディスクドライブ20に対し、判定結果が署名検証成功だった場合には、媒体1のコンテンツ読み取りを開始する許可を与え、失敗だった場合には、媒体1のコンテンツ読み取りは行わないよう制御する機能を有する。
次に、この発明に係る再生装置10および再生方法の作用について説明する。図24は、図21に示す再生装置10のCPU11により、一度署名検証が成功した署名について、必要なデータを保持しておくことにより、二度目以降の署名検証に要する時間を大幅に短縮する際の手順を示すフローチャートである。このフローチャートの手順は、媒体1(図1〜図3あるいは図15の光ディスク100に相当)がディスクドライブ20に挿入され、ディスクドライブ20により媒体1のMKBが読み取られ、このMKBを再生装置10のCPU11が受けた時点でスタートとなる。
まず、ステップS1において、Hash値計算手段11aは、ディスクドライブ20から受けた媒体1のMKBのデータ部を、SHA−1(Secure Hash Algorithm 1:ハッシュ関数の一つ)による計算を行うことにより圧縮し、20bytesのHash値を生成する(図23参照)。次に、ステップS2において、入力データ検索手段11bは、Hash値計算手段11aからMKBのデータ部のHash値およびMKBのSignatureを受け、Signature Verification Input Table14にしたがって入力データを検索する。
ステップS3において、入力データ検索手段11bは、媒体1のMKBから導出した入力データと同一の入力データの有無を判定する。同一の入力データがある場合は媒体1のMKBの署名検証が成功したと判定し、この判定結果を最終判定手段11eに与えステップS7に進む。一方、同一の入力データがない場合は、ステップS4に進む。
ステップS4において、署名検証演算手段11cは、媒体1のMKBについて、EC−DSAによる署名検証の演算を行う。ステップS5において、署名検証判定手段11dは、署名検証の演算結果を受け、署名検証が成功したかどうかを判定する。成功したと判定する場合はステップS6に進む。一方、失敗したと判定する場合は、この判定結果を最終判定手段11eに与えステップS8に進む。
次に、ステップS6において、署名検証判定手段11dは、媒体1のMKBから導出した入力データを、Signature Verification Input Table14に記録し、署名検証成功の判定結果を最終判定手段11eに与える。ステップS7において、最終判定手段11eは、媒体1のMKBの署名検証が成功したという判定結果を入力データ検索手段11bまたは署名検証判定手段11dから受け、媒体1のMKBを正当なMKBと判定する。続いて、最終判定手段11eは、ディスクドライブ20のCPU21に対し、媒体1のコンテンツ読み取りを開始する許可を与える信号を送信し、一連の署名検証は終了となる。
また、ステップS8において、最終判定手段11eは、媒体1のMKBの署名検証が失敗したという判定結果を署名検証判定手段11dから受け、媒体1のMKBを不正なMKBと判定する。続いて、最終判定手段11eは、ディスクドライブ20のCPU21に対し、媒体1のコンテンツ読み取りは行わないよう制御するための信号を送信し、一連の署名検証は終了となる。
以上の手順により、一度署名検証が成功した署名について、対応する入力データを保持しておくことにより、二度目以降の署名検証に要する時間を大幅に短縮することができる。また、この署名検証により、使用するMKBの信頼性が高まる(MKBが不正に改竄されている恐れを殆ど払拭できる)。
図21に示した再生装置10によれば、一度署名検証が成功した署名について、対応する入力データを保持しておくことにより、二度目以降の署名検証においては、入力データを比較することのみによって、署名の正当性を判定することができる。入力データを導出するために必要な計算はSHA−1のみであり、この計算はEC−DSAによる署名検証演算にくらべ、はるかに短時間で終えることができる。したがって、一度署名検証が成功した署名について、二度目以降の署名検証に要する時間を大幅に短縮することができ、記録媒体を挿入してから記録媒体のコンテンツを読み込むまでの時間を容易に大幅に短縮することができる。
また、再生装置10およびこの再生装置10を用いた再生方法においては、Signature Verification Input Table14に記録されるMKBの入力データのうち、MKBのデータ部については、Hash関数により圧縮したHash値として保持する。したがって、一度署名検証が成功した署名について、二度目以降の署名検証を行うにあたり必要なデータとして、本来は最大1MbyteあるMKBの全データ(メッセージ(Version情報とデータ部)とSignature)を保持する必要はなく、小さな容量の入力データを保持しておくことで足りる。
また、入力データのHash値として、MKBのメッセージ(Version情報とデータ部)をSHA−1で圧縮したものを用いてもよい。この場合、MKBの全データを反映した入力データを保持することになるが、Hash関数の計算結果は常に20bytesになるようになっているため、入力データとしての容量は20bytesで変わらない。
なお、MKBの最終ブロックに付加されたSignature(署名)ではなく、MKBのデータ部に存在するデータに付された署名についての署名検証を行う場合にも、上記手順を行うことにより、同様の効果を得ることができる。この場合、入力データとは、データ部のデータのみをHash値化したものまたはデータ部のデータとVersion情報をSHA−1によりHash値化したものと、このデータ部のデータに付された署名との総称を指す。この場合において、最終判定手段11eは、署名検証の判定結果により、署名が正当なものか判定し、CPU11およびCPU21に対しこの署名が付されたデータの使用許可を与えるかどうか判定する。
また、ディスクドライブ20のCPU21についても、再生装置10のCPU11による署名検証と同様の署名検証を行うことができる。なぜなら、ディスクドライブ20のCPU21が、署名検証プログラムによって、少なくともHash値計算手段21a、入力データ検索手段21b、署名検証演算手段21c、署名検証判定手段21dおよび最終判定手段21eとして機能し、各手段はCPU11の同一名称の手段と同様の作用効果を奏するためである。
ディスクドライブ20は、一般に、再生装置10に比べて、CPUの処理能力が劣り、メモリサイズも小さいことが多い。したがって、ディスクドライブ20のCPU21に対し上記手順を適用すれば、不要な署名検証処理のスキップによる処理時間の削減や、入力データのHash値化による記憶領域削減の効果が、大きなものになることが期待できる。
図25は、この発明の一実施の形態に係る再生装置10のSignature Verification Input Table14に記録された入力データの、更新の態様を模式的に示した説明図である。Signature Verification Input Table14に格納できる入力データは有限である。したがって、あらかじめ定められたSignature Verification Input Table14の容量を超えた場合、新規な入力データを記録するため、すでに記録されている入力データのいずれかを削除する必要が生じる。
たとえば、入力データのHash値として、MKBのメッセージ(Version情報とデータ部)をSHA−1で圧縮したものを用いた場合、図25に示すように、MKBのVersion情報を比較し、Version情報の古いものから削除(上書き)するようにしてもよい。また、記録媒体の挿入回数を入力データと対応付けて保持しておき、挿入回数の少ないものから削除(上書き)するようにしてもよい。また、前回アクセスした時間を入力データと対応付けて保持しておき、前回アクセスした時間が最も古い入力データから削除(上書き)するようにしてもよい。さらに、これらの削除方法を自由に組み合わせて実施してもよい。
図21〜図25を参照して上述した方法は、Signatureのデータとその演算の途中データであるHash値を機器内に保持することで、署名検証を効率化する方法の一例である。この方法は、例えば図11のST302の処理において利用できる。
なお、この発明の実施の形態は、AACS Pre-recorded Mediaを扱うPlayer機器にも適用可能である。ただし、Player機器ではMKBの更新を行わないため、Recorder機器に実装した場合の方がこの発明の実施による効果は大きい。
ところで、AACS Recordable Mediaを扱う機器は、暗号化・復号化処理の為の鍵の1つにMedia Keyを使用する。Media KeyはAACS Recordable Media上に1つ格納されるMedia Key Block(MKB)に暗号技術を用いることで秘匿して格納されており、機器に割り当てられるDevice Key等のデータを使用してMKBから暗号的処理を用いて導出される。MKBとMedia Keyは1対1に対応しており、1つのMKBからは正当な処理を経て1つのMedia Keyが導出される。このMKBおよびそこに含まれるMedia KeyはAACS Recordable Mediaの1枚毎に異なるものではなく、同じ時期に生産された同一プロダクトタイプのディスクでは同じである場合が多い。
また、AACS Recordable Mediaを扱う機器では機器上にもMKBを持っており、AACS Recordable Media上のMKBのバージョンが、機器に格納されているMKBよりも古ければ、AACS Recordable Media上のMKBを書き換える処理を行う。一方で、機器によっては、機器上のMKBよりもバージョンの新しいMKBを検出した場合、機器上のMKBを最新のMKBに置き換える場合もある。
このような処理のために、AACS Recordable MediaにおかれるMKBは常にRecorder機器が持つ最新のものに置き換えられていく可能性がある。このため各Recorderが扱うMKBは必ずしも毎回異なるものではなく、同一のMKBを何度も処理する可能性がある。類似する著作権保護技術ではMKBの置き換えが定義されていないものがあるが、それと比べても、同一のMKBを繰り返し処理する可能性はより高まっている。
MKB処理の概要は例えば以下のようになる。(図9参照)
1.MKBの正当性検証(AACS_Verify)(ST122)
2.該当Recorderが演算可能なMKB内のノードの探索(253本保持しているDevice Keyから、そのMKBの処理に利用可能なDevice Keyを選び出す処理、あるいはMKB上の処理可能なデータを探し出す処理)(ST128)
3.Media Keyの導出(2回〜23回程度のAES処理)(ST130)
4.導出したMedia Keyの正当性検証(AES処理)(ST132)。
1.MKBの正当性検証(AACS_Verify)(ST122)
2.該当Recorderが演算可能なMKB内のノードの探索(253本保持しているDevice Keyから、そのMKBの処理に利用可能なDevice Keyを選び出す処理、あるいはMKB上の処理可能なデータを探し出す処理)(ST128)
3.Media Keyの導出(2回〜23回程度のAES処理)(ST130)
4.導出したMedia Keyの正当性検証(AES処理)(ST132)。
これらの処理はMedia Keyの使用時に必要になるが、例えばMedia Keyを使用する機会には以下の様なものがある:
1.Title Keyの復号化(コンテンツ再生時、コンテンツ記録・編集時、ディスク上のMKB更新時)
2.Title Keyの暗号化(コンテンツ記録・編集時、ディスク上のMKB更新時)。
1.Title Keyの復号化(コンテンツ再生時、コンテンツ記録・編集時、ディスク上のMKB更新時)
2.Title Keyの暗号化(コンテンツ記録・編集時、ディスク上のMKB更新時)。
また、MKBの更新を行う場合には、ディスク上のMKBと機器上のMKB両方を処理して、ディスク上のMedia KeyによるTitle Keyの復号化、機器上のMedia Keyによる再暗号化を行い、ディスク上のMKBを機器上のものに置き換える。
Media Keyは、AACS規格上、秘匿して保護することが要求されているデータである。そのため、Media KeyをHigh Definition Digital Video Recorder等の機器上に保持する場合には、例えば独自定義した保護方式により保護した状態で、Media Keyを保持する必要がある。同様のデータとして、Device Keyがある。AACS準拠の機器はDevice Keyを機器上に秘匿して保持することが義務付けられているので、例えばDevice Keyと同程度の保護をすれば、Media Keyに対するAACS規格上の保護要求は満たせる。この秘匿保護の要求はMKB自体には適用されないため、Indexとなるデータ、あるいはVerification Dataは秘匿の必要は無く、Media Keyのみを秘匿の対象とすればよい(ただしMedia Key以外を秘匿の対象にできないということではない)。
<まとめ>
(ポイント1)通常、ディスク上のMKBがRecorder上のMKBよりも古いバージョンものであり、かつディスクが書き換え可能なメディアであれば、ディスク上のMKBを更新して置き換えるため、Recorder上に保持している最新のMKBからMedia Keyを導出する必要がある。しかし、この処理は保持している最新のMKBが変わらない限り、毎回同じ演算を行い、同じ結果を得るものであるから冗長である。この発明の実施の形態では独自保護したMedia Keyを用いることで図9のST140〜ST141(機器のMKB更新)あるいはST142〜ST148(メディアのMKB更新)のように処理を簡略化する。
(ポイント1)通常、ディスク上のMKBがRecorder上のMKBよりも古いバージョンものであり、かつディスクが書き換え可能なメディアであれば、ディスク上のMKBを更新して置き換えるため、Recorder上に保持している最新のMKBからMedia Keyを導出する必要がある。しかし、この処理は保持している最新のMKBが変わらない限り、毎回同じ演算を行い、同じ結果を得るものであるから冗長である。この発明の実施の形態では独自保護したMedia Keyを用いることで図9のST140〜ST141(機器のMKB更新)あるいはST142〜ST148(メディアのMKB更新)のように処理を簡略化する。
(ポイント2)通常、ディスク上のMKBからMedia Keyを導出する処理は図10のST220〜ST244のようになる。ポイント2では、まずRecorderはMKBを処理する必要が生じた場合、そのMKBが過去に処理したことがあり、Recorder内にMedia Keyを保持しているMKBであるか判定する。そのMKBが過去に処理したことのないものであれば(ST210ノー)、通常のMKB処理(ST220〜ST244)を実行しMedia Keyを取得する。続いて、取得したMedia KeyとMKBの特徴を示すようなIndex情報をRecorder上に保持する(ST250〜ST256)。この場合、Media Keyの値は暗号化等の独自の手法によって秘匿保護されることが望ましい(ST254)。
次に、RecorderがMKBを処理する必要が生じた場合に、Recorder上に処理すべきMKBに対応するIndex情報があり(ST210イエス)、MKBを過去に処理したことがあると考えられるとき、Indexに対応するRecorder上に秘匿して保持されているMedia Keyを復号等の処理(ST212〜ST214)を通じて取得し、ディスク上のMKBから得られるものと等価なMedia Keyとして用いる(図10参照)。このとき、Indexとして用いる情報は、MKBのデータの一部で、ヘッダ等の固定値が入りやすい部分以外を用いることが望ましい。
(ポイント3)ポイント3では、ポイント2の処理に加え、MKBのSignatureを検証する(図24参照)ことで、改竄を防止する。ポイント2の実装だけの場合には、MKBの値を書き換え、Indexに用いるデータを偽装することで、偽装したMKBを処理させることが可能であるが、Signatureを検証することで、Indexを含むMKB全体が改竄されていないことを保証できる(図11参照)。
(ポイント4)ポイント4では、ポイント2またはポイント3の処理によってRecorder上に保持していたMedia Keyを使用する場合に、通常のMedia Key導出で行われるMKBのVerification Dataの検証を実施することで、Media Keyの正当性を保証する。これにより、異なるMKBにおいて偶然Indexデータが一致していた場合の混同を避けることができる。また、これにより同一IndexのMedia Keyを保持しておき、Verification Dataの検証結果によって、正当なMedia Keyを見分けることも可能である。この結果、Indexのbit長をより短くすることも可能である。また、Verification Dataの検証に失敗した場合は、通常のMKB処理を行う。これによって、Indexを短くした場合や、保持していたデータが破損した場合などの例外的な状況においても、最終的に正しくMedia Keyを導出することを保証できる(図12参照)。
(ポイント5)ポイント5では、ポイント2またはポイント3の処理で、機器上に持つIndexとしてVerification Dataを持つ。これによりIndex上の比較を行って一致を確認することで、同時にVerification Dataの検証を簡易的に済ませることができる。特にポイント3で行ったようにSignatureの検証を行っていれば、処理すべきMKBのVerification Dataが改竄されている可能性も排除できるため、この発明の実施の形態の実装として好適である(図13参照)。
(ポイント6)ポイント6では、Recorder機器上に保持するMedia KeyとIndexのペアの一覧の中にポイント1の機器上に保持しているMKBのMedia Keyを加える。ポイント1では機器で保持しているMKBを用いたディスク上のMKBの更新について扱っていたため、Indexを用いていないが、ポイント2〜ポイント6と同様にIndexを保持することで、MKBの更新時だけでなく、再生時にも該当Media Keyを用いることが出来き、かつポイント1の処理とポイント2〜ポイント5の処理を別々に実装するよりも保持するデータを若干節約できる。
(ポイント7)ポイント2〜ポイント6では、Indexを用いたMedia Keyの導出を示したが、前述のようにRecorder機器上で扱うMKBとそこから導出されるMedia Keyの使用頻度は必ずしも均一ではない。これはユーザの嗜好によるものもあるが、使用確率の高いMedia Keyと使用確率の低いMedia Keyを類推可能な要素もある。例えばMediaに書き込んだことのあるMKBはその後、再び使用される可能性が高いので、対応するMedia Keyの検索の優先順位を上げて効率化をはかる。あるいは、Recordable Media上で検出したMKBから取得したMedia Keyで、そのMediaに対しMKBの更新を行った場合、検索の優先順位を下げて、効率化をはかる。これに対し、Recordable Media上で検出したMKBから取得したMedia Keyで、そのMediaに対しMKBの更新を行わなかった場合、検索の優先順位を上げて効率化をはかる、などの方法が考えられる。また、単純に再生や記録でMedia Keyを使用する頻度を記録して、使用頻度の高いものの検索の優先順位を上げて、効率化をはかることも可能である。
また、機器上に保持するMedia KeyやIndexの個数を制限したい場合にも、このような優先順位が存在すれば、取捨選択の指針となりうる。例えばディスクに対して機器から書き込んだMKBについてはMedia Keyを保持しておくが、ディスクから読み出しただけのMKBについては保持しないなど、さまざまな実装が可能である。この発明の実施の形態では、個々の優先順位付けをどのようにするかについては制限をせず、Mediaに対して行った処理、機器内部で行った処理に応じて、Media Keyデータの優先順位を変化させる事を発明実施の対象とする。
(ポイント8)通常のMKBの処理負荷は、MKB内部の構造の複雑さによって異なる。これはMKBのサイズやMKB内に示されているバージョンによって変化する。よって、サイズが大きいものやバージョンの値が大きい(新しい)もの、あるいは特定のバージョンに対してのみ、ポイント2〜ポイント5の処理を適用する。そうではなく、通常のMKB処理を実行しても処理負荷が低いと予想されるときは、通常の処理を行うことで、処理負荷を軽減する(図14参照)。
<実施の形態の効果>
Media Keyの過去の処理結果の保持と、Verification DataをIndexとして扱う処理により、AACS を用いる機器(次世代の高精細ビデオレコーダ等)でのMKBの処理を簡略化することができる。また保持するMedia Keyの優先度設定によってデータの検索や保持の効率を向上させることができる。さらに、MKB処理に好適なデータソートの基準を示すことができる。
Media Keyの過去の処理結果の保持と、Verification DataをIndexとして扱う処理により、AACS を用いる機器(次世代の高精細ビデオレコーダ等)でのMKBの処理を簡略化することができる。また保持するMedia Keyの優先度設定によってデータの検索や保持の効率を向上させることができる。さらに、MKB処理に好適なデータソートの基準を示すことができる。
AACSが実装されたRecorderにおいてこの発明を実施することにより、MKBの構造が複雑化した場合に、記録の開始時、終了時、あるいは起動時の処理を軽減できる。
SignatureとHashを機器内部に保持してSignature検証の処理を簡略化させる方法を組み合わせ、Signature等をIndexとして使用することで、簡略化した署名検証と同時にMedia Keyを導出することも可能となる。
Media Keyの過去の処理結果の保持と、Verification DataをIndexとして扱う処理により、AACS RecoerderでのMKBの処理を簡略化できる。また、保持するMedia Keyの優先度設定によってデータの検索や保持の効率を向上させることができる。
なお、この発明は前述した実施の形態に限定されるものではなく、現在または将来の実施段階では、その時点で利用可能な技術に基づき、その要旨を逸脱しない範囲で種々に変形することが可能である。たとえば、この発明の実施において利用される情報記憶媒体は、光ディスクあるいはハードディスクドライブだけには限らず、大容量フラッシュメモリ等が利用されてもよい。また、この発明が実施可能なシステムは、HD_DVDに限られず、青ないし青紫レーザ等を用いる別規格の次世代のデジタル記録再生システムでもよい。
また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、この構成要件が削除された構成が発明として抽出され得る。
100…情報記憶媒体(光ディスク);200…情報記録再生装置;210…制御部;220…読出し部;230…書込み部;300…ディスクドライブ部;310…鍵処理制御部(AACS処理部);320…Media Key Block保持部;330…独自保護部;340…デバイス鍵保持部;350…Media Key/Index保持部(不揮発性メモリ)。
Claims (10)
- メディアキーと乱数データからプロテクテッドエリアキーを生成し、暗号化されたタイトルキーを含むタイトルキーファイルと前記プロテクテッドエリアキーから、コンテンツの暗号化または復号化に用いるタイトルキーを生成する方法において、
前記タイトルキーを利用する機器に、前記メディアキーに対応する独自保護された暗号化メディアキーを保持し、
前記メディアキーが前記独自保護とは異なる方法で暗号化されて記録された情報をメディアキーブロックとし、前記機器により記録または再生が行われるメディアは前記メディアキーブロックを持ち、このメディアが持つメディアキーブロックを更新するために前記機器上にメディアキーブロックの情報が保持されているときに、前記機器が前記保持された暗号化メディアキーを利用する暗号情報処理方法。 - メディアキーと乱数データからプロテクテッドエリアキーを生成し、暗号化されたタイトルキーを含むタイトルキーファイルと前記プロテクテッドエリアキーから、コンテンツの暗号化または復号化に用いるタイトルキーを生成する方法において、
前記メディアキーについては独自保護によって暗号化メディアキーに変換し、
前記メディアキーが前記独自保護とは異なる方法で暗号化されて記録された情報をメディアキーブロックとしたときに、前記タイトルキーを利用する機器が、前記暗号化メディアキーとそれを識別する前記メディアキーブロック上のデータを用いたインデックスの一覧を保持し、
前記メディアキーを導出する処理をする際に、所定のインデックス情報を用いて前記インデックスの一覧を参照し、このインデックスの一覧中に前記所定のインデックス情報に対応するインデックスがあるときは、このインデックスに対応して前記機器が保持している独自保護された前記暗号化メディアキーを取得し、取得した前記暗号化メディアキーの独自保護を解除して、独自保護が解除された前記メディアキーを前記タイトルキーの生成に利用する暗号情報処理方法。 - 前記メディアキーブロックの情報に電子的な署名が付加されている場合に、この署名を検証することで、前記メディアキーブロックの情報が正当なものであるか不正なものであるかを判定する請求項2に記載の方法。
- 前記メディアキーの導出過程で行われる前記メディアキーブロック上の検証を実施することで、前記メディアキーの正当性を保証する請求項2または請求項3に記載の方法。
- 前記機器上には所定の検証データを持ち、前記メディアキーブロックの処理の際に、前記所定の検証データに対応するところの前記独自保護された前記暗号化メディアキーが前記機器にある場合は、前記所定の検証データに対応するところの前記暗号化メディアキーを取得し、取得した前記暗号化メディアキーの独自保護を解除して、独自保護が解除された前記メディアキーを前記タイトルキーの生成に利用する請求項2または請求項3に記載の方法。
- 前記メディアキーについては独自保護によって暗号化メディアキーに変換し、
前記メディアキーが前記独自保護とは異なる方法で暗号化されて記録された情報をメディアキーブロックとしたときに、前記タイトルキーを利用する機器が、過去に導出した前記暗号化メディアキーとそれを識別する前記メディアキーブロック上のデータを用いたインデックスの一覧を保持し、この一覧中に前記機器上に保持している前記メディアキーブロックのメディアキーの情報が加わる請求項1に記載の方法。 - 前記機器が所定のメディアに対して行った処理、前記機器内部で行った処理、あるいは前記メディアの種類に応じて、前記機器上に保持する前記メディアキーの検索および/または保持の優先順位を上下させる請求項2ないし請求項6のいずれか1項に記載の方法。
- 前記メディアキーブロックのサイズあるいはバージョンの情報を取得し、その値によって、前記暗号化メディアキーを利用した処理を行うか否かを決定する請求項2ないし請求項6のいずれか1項に記載の方法。
- メディアキーと乱数データからプロテクテッドエリアキーを生成し、暗号化されたタイトルキーを含むタイトルキーファイルと前記プロテクテッドエリアキーから、コンテンツの暗号化または復号化に用いるタイトルキーを生成する装置において、
前記メディアキーに対応する独自保護された暗号化メディアキーを保持する手段と、
前記保持された暗号化メディアキーの独自保護を復号する手段を具備した暗号情報処理装置。 - メディアキーと乱数データからプロテクテッドエリアキーを生成し、暗号化されたタイトルキーを含むタイトルキーファイルと前記プロテクテッドエリアキーから、コンテンツの暗号化または復号化に用いるタイトルキーを生成する装置において、
前記メディアキーについては独自保護によって暗号化メディアキーに変換する手段と、
前記メディアキーが前記独自保護とは異なる方法で暗号化されて記録された情報をメディアキーブロックとしたときに、前記暗号化メディアキーとそれを識別するインデックスの一覧を保持する手段と、
所定のインデックス情報を用いて前記インデックスの一覧を参照し、このインデックスの一覧中に前記所定のインデックス情報に対応するインデックスがあるときは、このインデックスに対応して前記暗号化メディアキーを取得し、取得した前記暗号化メディアキーの独自保護を解除する手段と、
前記独自保護が解除された前記メディアキーを前記タイトルキーの生成に利用する手段を具備した暗号情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006208698A JP2008035397A (ja) | 2006-07-31 | 2006-07-31 | 暗号情報処理方法および暗号情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006208698A JP2008035397A (ja) | 2006-07-31 | 2006-07-31 | 暗号情報処理方法および暗号情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008035397A true JP2008035397A (ja) | 2008-02-14 |
Family
ID=39124314
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006208698A Pending JP2008035397A (ja) | 2006-07-31 | 2006-07-31 | 暗号情報処理方法および暗号情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008035397A (ja) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012104883A (ja) * | 2010-11-05 | 2012-05-31 | Toshiba Corp | 記憶装置、アクセス装置およびプログラム |
| US8312294B2 (en) | 2008-07-18 | 2012-11-13 | Kabushiki Kaisha Toshiba | Information processing apparatus, authentication method, and storage medium |
| JP2013117882A (ja) * | 2011-12-02 | 2013-06-13 | Toshiba Corp | ホスト装置、装置、システム |
| US8634557B2 (en) | 2011-12-02 | 2014-01-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
| US8650393B2 (en) | 2011-11-11 | 2014-02-11 | Kabushiki Kaisha Toshiba | Authenticator |
| US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
| US8667286B2 (en) | 2012-01-16 | 2014-03-04 | Kabushiki Kaisha Toshiba | Host device, semiconductor memory device, and authentication method |
| US8761389B2 (en) | 2011-12-02 | 2014-06-24 | Kabushiki Kaisha Toshiba | Memory |
| US8855297B2 (en) | 2011-12-02 | 2014-10-07 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
| US8984294B2 (en) | 2013-02-15 | 2015-03-17 | Kabushiki Kaisha Toshiba | System of authenticating an individual memory device via reading data including prohibited data and readable data |
| US9166783B2 (en) | 2010-10-14 | 2015-10-20 | Kabushiki Kaisha Toshiba | Protection method, decryption method, player, storage medium, and encryption apparatus of digital content |
| US9201811B2 (en) | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
-
2006
- 2006-07-31 JP JP2006208698A patent/JP2008035397A/ja active Pending
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8312294B2 (en) | 2008-07-18 | 2012-11-13 | Kabushiki Kaisha Toshiba | Information processing apparatus, authentication method, and storage medium |
| US9166783B2 (en) | 2010-10-14 | 2015-10-20 | Kabushiki Kaisha Toshiba | Protection method, decryption method, player, storage medium, and encryption apparatus of digital content |
| US8861723B2 (en) | 2010-11-05 | 2014-10-14 | Kabushiki Kaisha Toshiba | Storage device, access device, and program product |
| JP2012104883A (ja) * | 2010-11-05 | 2012-05-31 | Toshiba Corp | 記憶装置、アクセス装置およびプログラム |
| US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
| US10361851B2 (en) | 2011-08-31 | 2019-07-23 | Toshiba Memory Corporation | Authenticator, authenticatee and authentication method |
| US10361850B2 (en) | 2011-08-31 | 2019-07-23 | Toshiba Memory Corporation | Authenticator, authenticatee and authentication method |
| US9887841B2 (en) | 2011-08-31 | 2018-02-06 | Toshiba Memory Corporation | Authenticator, authenticatee and authentication method |
| US9225513B2 (en) | 2011-08-31 | 2015-12-29 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
| US9100187B2 (en) | 2011-11-11 | 2015-08-04 | Kabushiki Kaisha Toshiba | Authenticator |
| US8650393B2 (en) | 2011-11-11 | 2014-02-11 | Kabushiki Kaisha Toshiba | Authenticator |
| JP2013117882A (ja) * | 2011-12-02 | 2013-06-13 | Toshiba Corp | ホスト装置、装置、システム |
| US8634557B2 (en) | 2011-12-02 | 2014-01-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
| US8855297B2 (en) | 2011-12-02 | 2014-10-07 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
| US8761389B2 (en) | 2011-12-02 | 2014-06-24 | Kabushiki Kaisha Toshiba | Memory |
| US8732466B2 (en) | 2011-12-02 | 2014-05-20 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
| US8990571B2 (en) | 2012-01-16 | 2015-03-24 | Kabushiki Kaisha Toshiba | Host device, semiconductor memory device, and authentication method |
| US9160531B2 (en) | 2012-01-16 | 2015-10-13 | Kabushiki Kaisha Toshiba | Host device, semiconductor memory device, and authentication method |
| US8667286B2 (en) | 2012-01-16 | 2014-03-04 | Kabushiki Kaisha Toshiba | Host device, semiconductor memory device, and authentication method |
| US9201811B2 (en) | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
| US8984294B2 (en) | 2013-02-15 | 2015-03-17 | Kabushiki Kaisha Toshiba | System of authenticating an individual memory device via reading data including prohibited data and readable data |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20080013732A1 (en) | Encryption key information holding method and encryption key information processing apparatus | |
| US20090052670A1 (en) | Method and apparatus for storing digital content in storage device | |
| JP4901164B2 (ja) | 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム | |
| JP4792876B2 (ja) | 情報処理装置及び情報処理方法 | |
| JP2008035397A (ja) | 暗号情報処理方法および暗号情報処理装置 | |
| US7926115B2 (en) | Information recording and reproducing apparatus and method | |
| JP4784135B2 (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
| JP2006172147A (ja) | コンテンツ保護方法及びその方法を用いた情報記録再生装置 | |
| US7882367B2 (en) | Information recording and reproducing apparatus and method | |
| CN101089973A (zh) | 信息访问控制方法和装置 | |
| JP2007336058A (ja) | 情報アクセス管理方法および装置およびライトワンスメディア | |
| US7706664B2 (en) | Apparatus, method, and program product for recording and reproducing contents | |
| EP1944766A1 (en) | Method of recording and reproducing data on and from optical disc | |
| US20080049932A1 (en) | Key information update recording method and key information update recording apparatus | |
| JP4560086B2 (ja) | コンテンツデータ記録再生装置 | |
| US20120002817A1 (en) | Key management method and key management device | |
| JP2007336059A (ja) | 情報アクセス管理方法および装置 | |
| JP4894970B2 (ja) | 情報処理装置 | |
| JP2007336060A (ja) | 情報アクセス管理方法および装置 | |
| US20080168276A1 (en) | Recording Medium, and Contents Reproduction System | |
| JP4589258B2 (ja) | コンテンツ蓄積装置 | |
| JP2007164933A (ja) | 再生装置、ディスクドライブおよび再生方法 | |
| KR20090019660A (ko) | 디지털 컨텐트를 스토리지 기기에 저장하는 방법 및 이를위한 장치 | |
| JP2007080366A (ja) | 著作権保護付きデータの記録再生装置 | |
| JP2007335035A (ja) | 情報アクセス管理方法および装置および情報記録媒体 |