(57)【要約】【課題】メモリカードの鍵管理情報の更新中にメモリカードが機器から抜かれる等の異常が発生した時に、既に書き込まれているコンテンツが使用できなくなる状態を防ぐこと。【解決手段】  暗号化コンテンツと、コンテンツの暗号化に用いられる複数のタイトル鍵（Ｋｔ）と、鍵管理情報（ＭＫＢ）と、複数のタイトル鍵をコンテンツのアプリケーション毎に暗号化するのに用いられる第１のアプリケーション鍵（６２）と第２のアプリケーション鍵（６４）とを格納するＳＤカード（５０）が接続されるホスト（１００）であって、鍵管理情報を更新する更新部（１０３）と、鍵管理情報の更新時に第１、第２のアプリケーション鍵を交互に更新する処理部（１１０）とを具備する。【選択図】      図１
2011030275.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体がカードスロットを介して接続される情報処理装置において、
前記情報処理装置は、装置全体を制御するＣＰＵ（Central Processing Unit）と、各種データや各種アプリケーションの各種プログラムを記憶するＲＯＭ(Read Only Memory)とＲＡＭ(Random Access Memory)と、該ＣＰＵと該ＲＯＭと該ＲＡＭとを接続するバスとを少なくとも備え、
前記記憶媒体はコンテンツ暗号化のための複数のタイトル鍵と、前記複数のタイトル鍵をコンテンツのアプリケーション毎に暗号化するための第１のアプリケーション鍵と第２のアプリケーション鍵と、メディア鍵ブロックと、認証鍵と、メディアユニーク鍵と、を格納し、
前記メディア鍵ブロックは複数の異なるデバイス鍵で暗号化されている複数の暗号化メディア鍵を含み、
前記第１のアプリケーション鍵と第２のアプリケーション鍵はメディアユニーク鍵で暗号化されており、
前記メディアユニーク鍵はメディア鍵とメディア識別子とから導出され、
前記情報処理装置は、
前記記憶媒体からメディア鍵ブロックを読み出し、暗号化メディア鍵から認証鍵を導出する算出手段と、
前記記憶媒体から認証鍵を読み出して前記導出された認証鍵と比較し、相互認証を実行する手段と、
相互認証が成功した場合、前記記憶媒体から前記メディアユニーク鍵と、前記第１、第２の暗号化アプリケーション鍵のうち有効なアプリケーション鍵を読み出し、読み出したアプリケーション鍵を記憶媒体のメディアユニーク鍵を用いて復号し、復号結果をホストのメディアユニーク鍵で再暗号化し、再暗号化結果を前記記憶媒体へ供給し、前記第１、第２の暗号化アプリケーション鍵のうち無効なアプリケーション鍵を更新する手段と、
該装置が格納しているメディア鍵ブロックを前記記憶媒体へ供給する手段と、を具備し、
前記記憶媒体は前記情報処理装置から供給されたメディア鍵ブロックと、該媒体が格納しているメディア鍵ブロックとの新旧を比較し、該媒体が格納している旧のメディア鍵ブロックを前記情報処理装置から供給された新のメディア鍵ブロックで書き換える更新手段を具備する情報処理装置。
【請求項２】
前記記憶媒体は前記メディア鍵ブロックの更新回数情報も格納し、前記更新回数情報に基づいて、奇数回目の更新の場合、前記第１のアプリケーション鍵を読み出して前記情報処理装置へ送信し、偶数回目の更新の場合、前記第２のアプリケーション鍵を読み出して前記情報処理装置へ送信する請求項１記載の情報処理装置。
【請求項３】
前記記憶媒体から読み出したメディア鍵ブロックと、前記情報処理装置が格納しているデバイス鍵とで一方向関数に演算することによりメディア鍵を求める手段と、
前記メディア鍵と前記記憶媒体の識別子とで一方向性関数に演算することによりメディアユニーク鍵を求める手段とをさらに具備する請求項１記載の情報処理装置。
【請求項４】
前記算出手段は、
記憶媒体から読み出したメディア鍵ブロックと、前記情報処理装置が格納しているデバイス鍵とで一方向性関数に演算することによりメディア鍵を求める手段と、
前記メディア鍵と定数とで一方向性関数に演算することによりメディア鍵プライムを求める手段と、
前記メディア鍵プライムと前記記憶媒体の識別子とで一方向性関数に演算することにより認証鍵を求める手段と、を具備する請求項１記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録可能な記憶媒体に記録されるコンテンツの保護技術に関し、不正機器や不正記憶媒体を無効化するための情報処理装置に関する。
【背景技術】
【０００２】
コンテンツの記憶媒体の一例としてＳＤ（Secure Digital）カードと称されるメモリカードがある。ＳＤカードではコンテンツを保護するための仕組みとして、Content Protection for Recordable Media(ＣＰＲＭ)と呼ばれるコンテンツ保護技術が採用されている。このＣＰＲＭでは以下のような特徴の技術が採用されている。
【０００３】
コンテンツを保護するためのコンテンツの暗号化に用いられる暗号化鍵などの管理情報をメモリカードに読み書きするための仕組みとして、相互認証方式が採用されている。さらに、不正機器を無効化するための仕組みとして、メディア鍵ブロックと呼ばれる鍵管理情報を利用する技術が採用されている（例えば、非特許文献１参照）。不正機器とはコンテンツ保護技術によりコンテンツに施されている保護情報をコンテンツから取り外したり、コンテンツの改窟を行ったり、あるいは機器の秘密情報を露呈する機器である。
【０００４】
鍵管理情報は技術ライセンス団体が発行するが、発行時点で不正機器として認知されている機器ではメモリカード等の記憶媒体に記憶された暗号化コンテンツが復号できなくすること(不正機器の無効化または不正機器の排除：これらはリボークとも称される)を実現するための管理情報である。鍵管理情報は特定のメディア鍵が複数の異なるデバイス鍵で暗号化された複数の暗号化メディア鍵を含む。メディア鍵は通信を行う双方の機器や記憶媒体において認証やコンテンツを暗号化するための暗号化鍵自体の暗号化に用いられる鍵情報である。デバイス鍵は各機器や各記憶媒体に対して一意もしくは一定に割り当てられた鍵情報であり、少なくとも1つのデバイス鍵が機器や記憶媒体に各々記憶される。このメディア鍵を無効にする新たな鍵管理情報を生成し、これを用いて相互認証を行うことにより、不正機器に対する認証が成功しなくなる。この結果、不正機器を無効化または排除することができる。従って、鍵管理情報は記憶媒体の製造時点において判明している不正機器の情報を反映した最新のものでなければ、不正機器の無効化が健全且つ効率的に実現されなくなってしまう。このため、メモリカードでは鍵管理情報をより新しいものに更新するための仕組みも導入されている。
【０００５】
メモリカードはＤＶＤ(Digital Versatile Disc)等の光ディスクまたは磁気ディスクとは異なり、データの記憶のためのフラッシュメモリ以外にコントローラも内蔵している。不正機器ではない正当な機器でしか暗号化鍵や鍵管理情報などのデータの書き込みや読み出しをできないようにするための相互認証がこのコントローラにより情報処理装置との間で行われる。
【０００６】
一方、秘密領域を有する記録媒体にコンテンツの記録を行い、コンテンツの記憶を行い、コンテンツの著作権の保護を図る有効な鍵管理方法において、タイトル鍵で暗号化を行って記録を行う秘密領域の無駄な消費を防止する方法も提案されている（例えば、特許文献１参照）。
【０００７】
また、著作権保護技術の安全性を確保することができる相互認証方法も提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２１７２１８号公報
【特許文献２】特開２００４−２２０３１７号公報
【非特許文献】
【０００９】
【非特許文献１】Content Protection for Recordable Media Specification: SD Memory Card Book Common Part, Revision 0.961, May 3, 2007
【発明の概要】
【発明が解決しようとする課題】
【００１０】
メモリカード内にある鍵管理情報を更新する際、メモリカードの認証エリア内にあるタイトル鍵を鍵管理情報から導出されるメモリカード固有のメディアユニーク鍵を用いて新たに暗号化して書き込む必要がある。タイトル鍵は多数（例えば、数千個）あるので、再暗号化したタイトル鍵を認証エリアに書き込んでいる際に、ユーザによりメモリカードが機器から抜かれると、全てのタイトル鍵の再暗号化が完了せずに、一部のタイトル鍵は旧いメディアユニーク鍵のままで暗号化されているため、全体としてタイトル鍵が正常な状態にならず、コンテンツが復号できなくなる場合がある。
【００１１】
上述の課題はＳＤカードに限らず、他のメモリカードにおいても適用される。
【００１２】
本発明の目的はメモリカードの鍵管理情報の更新中にメモリカードが機器から抜かれる等の異常が発生した時に、既に書き込まれているコンテンツが使用できなくなる状態を防ぐことができる情報処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一態様による情報処理装置は、記憶媒体がカードスロットを介して接続される情報処理装置において、前記情報処理装置は、装置全体を制御するＣＰＵ（Central Processing Unit）と、各種データや各種アプリケーションの各種プログラムを記憶するＲＯＭ(Read Only Memory)とＲＡＭ(Random Access Memory)と、該ＣＰＵと該ＲＯＭと該ＲＡＭとを接続するバスとを少なくとも備え、前記記憶媒体はコンテンツ暗号化のための複数のタイトル鍵と、前記複数のタイトル鍵をコンテンツのアプリケーション毎に暗号化するための第１のアプリケーション鍵と第２のアプリケーション鍵と、メディア鍵ブロックと、認証鍵と、メディアユニーク鍵と、を格納し、前記メディア鍵ブロックは複数の異なるデバイス鍵で暗号化されている複数の暗号化メディア鍵を含み、前記第１のアプリケーション鍵と第２のアプリケーション鍵はメディアユニーク鍵で暗号化されており、前記メディアユニーク鍵はメディア鍵とメディア識別子とから導出され、前記情報処理装置は、前記記憶媒体からメディア鍵ブロックを読み出し、暗号化メディア鍵から認証鍵を導出する算出手段と、前記記憶媒体から認証鍵を読み出して前記導出された認証鍵と比較し、相互認証を実行する手段と、相互認証が成功した場合、前記記憶媒体から前記メディアユニーク鍵と、前記第１、第２の暗号化アプリケーション鍵のうち有効なアプリケーション鍵を読み出し、読み出したアプリケーション鍵を記憶媒体のメディアユニーク鍵を用いて復号し、復号結果をホストのメディアユニーク鍵で再暗号化し、再暗号化結果を前記記憶媒体へ供給し、前記第１、第２の暗号化アプリケーション鍵のうち無効なアプリケーション鍵を更新する手段と、該装置が格納しているメディア鍵ブロックを前記記憶媒体へ供給する手段と、を具備し、前記記憶媒体は前記情報処理装置から供給されたメディア鍵ブロックと、該媒体が格納しているメディア鍵ブロックとの新旧を比較し、該媒体が格納している旧のメディア鍵ブロックを前記情報処理装置から供給された新のメディア鍵ブロックで書き換える更新手段を具備する情報処理装置である。
【発明の効果】
【００１４】
メモリカードの鍵管理情報の更新中にメモリカードが機器から抜かれる等の異常が発生した時に、既に書き込まれているコンテンツが使用できなくなる状態を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態にかかるホストの構成の一例を示す図。
【図２】本発明の一実施の形態にかかるＳＤカードの構成の一例を示す図。
【図３】一実施の形態に係るメディア鍵ブロックのデータ構成の一例を示す図。
【図４】一実施の形態に係る認証エリアのディレクトリ構成例を示す図。
【図５】一実施の形態に係る更新処理の手順の前半を示すフローチャートである。
【図６】一実施の形態に係る更新処理の手順の中間の部分を示すフローチャートである。
【図７】一実施の形態に係る更新処理の手順の後半を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明による情報処理装置の実施の形態を説明する。
【００１７】
第１の実施の形態
本実施の形態においては鍵管理情報としては、ＡＡＣＳ(Advanced Access Content System)などで利用しているメディア鍵ブロックＭＫＢを用いる。相互認証を行う２つの情報処理装置としては、ＳＤカードのようにセキュリティ機能としてアクセス制限の掛けられた記憶領域とコントローラとを有するメモリカードと、メモリカードにデータを読み書きするアプリケーションを実行するホストとを例にして説明する。メモリカードとしては、ＳＤカードを例にして説明する。
【００１８】
図１は本実施の形態にかかるホスト１００の構成の概要を示す図である。図２は本実施の形態にかかるＳＤカード５０の構成の概要を示す図である。
【００１９】
ホスト１００は装置全体を制御するＣＰＵ(Central Processing Unit)等の制御装置と、各種データや各種アプリケーション等の各種プログラムを記憶するＲＯＭ(Read Only Memory)やＲＡＭ(Random Access Memory)等の記憶装置と、これらを接続するバスとを少なくとも備えており、通常のコンピュータを利用したハードウェア構成となっている。ホスト１００では情報を表示する表示装置と、ユーザの指示入力を受け付けるキーボードやマウス等の入力装置と、外部装置の通信を制御する通信Ｉ／Ｆ(interface)とが有線または無線により各々接続される。ＳＤカード５０はＣＰＵ、ＲＯＭ及びＲＡＭを有するコントローラと、各種データや各種プログラムを記憶領域とを有する。
【００２０】
鍵管理情報の使用に関連して、ＳＤカード５０に記憶されるデータ及びホスト１００に記憶されるデータについて各々説明する。
【００２１】
図２に示すように、ＳＤカード５０は記憶領域として、更新可能メモリ５１、更新不可メモリ５２、アクセス制限の掛けられた認証エリア５９を有する。認証エリア５９はホスト１００とＳＤカード５０間で相互認証が成功しなければアクセスできない領域である。ＳＤカード５０は暗号化コンテンツを格納するユーザデータエリアも含むが、本発明の動作と関係ないので、図示省略する。なお、コンテンツが１２８ビットより大きい場合、コンテンツの暗号化方式はＣＢＣモードのＡＥＳ暗号化である。最後のブロックが１２８ビット以下である場合、最後のブロックは暗号化されない。コンテンツ全体が１２８ビット以下である場合、コンテンツは暗号化されない。
【００２２】
更新可能メモリ５１はデータを更新可能に記憶する記憶領域であり、メディア鍵ブロックＭＫＢＭ、認証鍵ＫauthＭ、カード内のメディア鍵ブロックＭＫＢの更新毎にインクリメントされる更新カウンタのカウント値である更新回数ＵＣ(Update Counter)を格納する。ホスト１００は更新回数ＵＣが奇数か偶数かを判ればよいので、更新回数ＵＣは複数ビットであるが、ホスト１００は更新回数ＵＣのＬＳＢの１ビットだけ判ればよい。
【００２３】
更新不可メモリ５２はデータを更新不能に記憶する記憶領域であり、メディア識別子ＭＩＤ、デバイス鍵（ＫｄＭ）セット、デバイス情報番号（Ｄｅｖｉｃｅ＿ｉｎｆｏ、またはＤｅｖｉｃｅ＿ｎｏｄｅ）を格納する。
【００２４】
認証エリア５９はタイトル鍵（Ｋｔ）ファイル、偶数用アプリケーション鍵（Ｋapp）ファイル６２、奇数用アプリケーション鍵（Ｋapp）ファイル６４を格納する。コンテンツの各部分はユニークなタイトル鍵Ｋｔで暗号化される。タイトル鍵Ｋｔおよびタイトル鍵ファイルは認証エリア５９に複数存在し得る。タイトル鍵ファイルはアプリケーション毎にアプリケーション鍵Ｋappで暗号化される。アプリケーション鍵Ｋappは各メディア鍵ブロックＭＫＢに関連するメディアユニーク鍵Ｋｍｕで暗号化される。各メディア鍵ブロックＭＫＢ毎に２つのアプリケーション鍵ファイルがある。１つは偶数用アプリケーション鍵ファイル６２であり、他は奇数用アプリケーション鍵ファイル６４である。ホスト１００はどちらのアプリケーション鍵ファイルが有効であるかを決定する。ホスト１００がＳＤカード５０へメディア鍵ブロックＭＫＢＭを要求すると、ＳＤカード５０はメディア鍵ブロックＭＫＢＭとともに更新回数を返送する。更新回数が偶数である場合、偶数用アプリケーション鍵ファイル６２が有効であり、奇数用アプリケーション鍵ファイル６４が無効である。更新回数が奇数である場合、奇数用アプリケーション鍵ファイル６４が有効であり、偶数用アプリケーション鍵ファイル６２が無効である。０は偶数として扱う。タイトル鍵Ｋｔは暗号化されて、暗号化アプリケーション鍵ファイルと同様に認証・鍵交換実行部１０９、５８を介してホスト１００から供給される。
【００２５】
メディア識別子ＭＩＤはＳＤカード５０を一意に識別可能な媒体識別情報であり、識別情報に相当する。例えば、１２８ビットであり、メディアデバイス鍵（ＫｄＭ）セットのデバイスノードを含む。
【００２６】
メディア鍵ブロックＭＫＢＭは複数のデバイス鍵のそれぞれで暗号化されたメディア鍵（秘密鍵）である複数の暗号化メディア鍵Ｋｍ（暗号化秘密鍵）を含む鍵管理情報である。複数のアプリケーションをサポートするためにメモリカードは複数、例えば８個のメディア鍵ブロックＭＫＢを含む。メディア鍵ブロックＭＫＢの最大サイズは、例えば１メガバイトである
デバイス鍵（ＫｄＭ）セットはＳＤカード５０やホスト１００などの各情報処理装置に対して割り当てられた鍵情報であり、暗号化メディア鍵Ｋｍを復号可能なデバイス鍵Ｋｄを少なくとも１つ含む鍵情報であり、装置秘密鍵に相当する。デバイス鍵（ＫｄＭ）セットは各情報処理装置に対して一意に割り当てられているものとする。デバイス鍵（ＫｄＭ）セットはデバイスノードと、１以上ののメディアデバイス鍵ＫｄＭと各デバイス鍵に関連するｕｖ番号（ＵＶ）とを含む。
【００２７】
デバイス情報番号はデバイス鍵（ＫｄＭ）セットを識別可能なインデックス情報である。デバイス情報番号は指定情報に相当し、メディア鍵ブロックＭＫＢに含まれる暗号化メディア鍵Ｋｍを特定するために用いられる。
【００２８】
認証鍵ＫauthＭはメディア鍵ブロックＭＫＢＭ毎に設けられ、メディア識別子ＭＩＤとメディア鍵プライム（後述）とで一方向性関数（ＡＥＳ）に演算することにより計算される。認証鍵ＫauthＭは例えば１２８ビット長である。
【００２９】
メディアユニーク鍵Ｋｍｕはメディア識別子ＭＩＤとメディア鍵Ｋｍとで一方向性関数に演算することで得られるもので、秘密固有鍵に相当する。
【００３０】
鍵管理情報（メディア鍵ブロックＭＫＢ）について、ＳＤカード５０が記憶しているものと、ホスト１００が記憶しているものとを区別する必要がある場合は前者をメディア鍵ブロックＭＫＢＭと記載し、後者をメディア鍵ブロックＭＫＢＨと記載し、これらを区別する必要がない場合は単にメディア鍵ブロックＭＫＢと記載する。
【００３１】
デバイス鍵セットについても、ＳＤカード５０が記憶しているものと、ホスト１００が記憶しているものとを区別する必要がある場合は前者をＫｄＭと記載し、後者をＫｄＨと記載し、これらを区別する必要がない場合は単にデバイス鍵（Ｋｄ）セットと記載する。
【００３２】
メディア鍵Ｋｍについても、メディア鍵ブロックＭＫＢＭに基づいて復号されるものと、メディア鍵ブロックＭＫＢＨに基づいて復号されるものとを区別する必要がある場合は前者をＫｍＭと記載し、後者をＫｍＨと記載し、これらを区別する必要がない場合は単にメディア鍵Ｋｍと記載する。
【００３３】
メディアユニーク鍵Ｋｍｕについても、メディア鍵ブロックＭＫＢＭに基づいて生成されるものと、メディア鍵ブロックＭＫＢＨに基づいて生成されるものとを区別する必要がある場合は前者をＫｍｕＭと記載し、後者をＫｍｕＨと記載し、これらを区別する必要がない場合には単にメディアユニーク鍵Ｋｍｕと記載する。
【００３４】
図１に示すように、ホスト１００はＳＤカード５０と同様に、記憶領域として、更新可能メモリ１０１、更新不可メモリ１０２を有する。
【００３５】
更新可能メモリ１０１はメディア鍵ブロックＭＫＢＨを格納する。メディア鍵ブロックＭＫＢＨはホスト１００で実行されるアプリケーションの製造（或いは出荷）時にホスト１００に書き込まれるようにしても良いし、出荷後にネットワークや他のメディアを使ってホスト１００に配布されるようにしても良い。
【００３６】
更新不可メモリ１０２は更新可能メモリ１０１に記憶されたメディア鍵ブロックＭＫＢＨを復号するために必要なデバイス鍵（ＫｄＨ)セットを格納する。デバイス鍵（ＫｄＨ）セットはデバイスノードと、３２５対のデバイス鍵ＫｄＨとデバイス鍵ＫｄＨに関連するｕｖ番号（ＵＶ）とからなる。
【００３７】
次に、上述のハードウェア構成において、ＳＤカード５０においてＣＰＵがＲＯＭや記憶領域に記憶された各種プログラムを実行することにより実現される各種機能のうち本実施の形態に関連する機能について説明する。ここでは、ＳＤカード５０は利用可能な鍵管理情報として、更新可能メモリ５１に記憶されているメディア鍵ブロックＭＫＢＭを用いるものとする。
【００３８】
図２に示すように、ＳＤカード５０は送信部５３、復号部５４、一方向性関数部５５、一方向性関数部５６、ＭＫＢ検証・更新部５７、認証・鍵交換実行部５８の各機能を実現させる。
【００３９】
送信部５３は更新可能メモリ５１に記憶されているメディア鍵ブロックＭＫＢＭ、認証鍵ＫauthＭ、更新カウンタＵＣ、及び更新不可メモリ５２に記憶されているメディア識別子ＭＩＤ及びデバイス情報番号を送信部５３を介してホスト１００に送る。
【００４０】
復号部５４はＭＫＢ処理の一部を実行するものであり、ＳＤカード５０に記憶されているメディア鍵ブロックＭＫＢＭがホスト１００に記憶されているメディア鍵ブロックＭＫＢＨより旧い場合、メディア鍵ブロックＭＫＢＨの一部のレコードであって、自身のデバイス情報番号によって特定される暗号化メディア鍵ＫｍＨ、即ち、自身のデバイス情報番号によって識別されるデバイス鍵（Ｋｄ）セットに対応した暗号化メディア鍵ＫｍＨをホスト１００から受け取る。復号部５４は受け取った暗号化メディア鍵ＫｍＨをデバイス鍵（ＫｄＭ）セットに含まれるデバイス鍵の１つを用いて復号し、さらにメディア鍵と一定の値とで一方向性関数に演算して、メディア鍵プライムＫｍＨ’を求める。
【００４１】
一方向性関数部５５はメディア識別子ＭＩＤとメディア鍵プライムＫｍＨ’とで一方向性関数に演算することにより認証鍵ＫauthＨを求める。
【００４２】
一方向性関数部５６はメディア鍵プライムＫｍＨ’とメディア鍵プライムデータ（後述）とで一方向性関数に演算することによりメディア鍵プライム応答（後述）を生成し、これを認証・鍵交換実行部５８、１０９を介してホスト１００に送る。
【００４３】
ＭＫＢ検証・更新部５７はホスト１００での検証結果に応じてメディア鍵ブロックＭＫＢＨの全てをホスト１００から受け取り、これを検証する。ＭＫＢ検証・更新部５７は当該検証結果に応じて、更新可能メモリ５１に記憶されたメディア鍵ブロックＭＫＢＭをメディア鍵ブロックＭＫＢＨに置き換えると共に、更新可能メモリ５１に記憶された認証鍵ＫauthＭを一方向性関数部５５がメディア鍵ブロックＭＫＢＨから求めた認証鍵ＫauthＨに置き換える。
【００４４】
認証・鍵交換実行部５８はホスト１００と共有される認証鍵ＫauthＨを用いて暗号通信を行うための認証（ＡＫＥ相互認証）及び鍵交換処理を実行する。認証（ＡＫＥ相互認証）及び鍵交換処理は外部にはその内容が判らないようにセキュアに実行される。
【００４５】
次に、ホスト１００の制御装置が記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能のうち本実施の形態に関連する機能について説明する。
【００４６】
図１に示すように、ホスト１００は受信部１１１、ＭＫＢ検証・更新部１０３、メディア鍵ブロックＭＫＢ処理部１０４、一方向性関数部１０５、アプリケーション鍵処理部１１０、一方向性関数部１１２、１１３、指定レコード選択処理部１０６、一方向性関数部１０７、データ検証処理部１０８、認証・鍵交換実行部１０９の各機能を実現させる。
【００４７】
ＭＫＢ検証・更新部１０３はメディア鍵ブロックＭＫＢＭ、メディア識別子ＭＩＤ及びデバイス情報番号をＳＤカード５０から受け取ると、更新不可メモリ１０２に記憶されているデバイス鍵セットＫｄＨを用いてメディア鍵ブロックＭＫＢＭの正当性を検証する。ＭＫＢ検証・更新部１０３はメディア鍵ブロックＭＫＢＭと更新可能メモリ１０１に記憶されているメディア鍵ブロックＭＫＢＨとの新旧を比較する。メディア鍵ブロックＭＫＢＨの方が旧い場合、ＭＫＢ検証・更新部１０３は更新可能メモリ１０１に記憶されているメディア鍵ブロックＭＫＢＨをメディア鍵ブロックＭＫＢＭに置き換える。一方、メディア鍵ブロックＭＫＢＨの方が新しい場合、ＭＫＢ検証・更新部１０３はデバイス情報番号を指定レコード選択処理部１０６に送る。
【００４８】
指定レコード選択処理部１０６は更新可能メモリ１０１に記憶されているメディア鍵ブロックＭＫＢＨの一部のレコードであって、ＭＫＢ検証・更新部１０３から受け取ったデバイス情報番号によって特定される暗号化メディア鍵、即ち、当該デバイス情報番号によって識別されるデバイス鍵セットＫｄに対応した暗号化メディア鍵ＫｍをＳＤカード５０に送る。
【００４９】
ＭＫＢ処理部１０４はメディア鍵ブロックＭＫＢＨを更新不可メモリ１０２に記憶されているデバイス鍵セットＫｄＨに含まれるデバイス鍵の１つを用いて処理しメディア鍵ＫｍＨを求める。
【００５０】
一方向性関数部１０５はＳＤカード５０から受け取ったメディア識別子ＭＩＤとメディア鍵ブロックＭＫＢ処理部１０４が求めたメディア鍵ＫｍＨとで一方向性関数に演算することによりメディアユニーク鍵ＫｍｕＨを求める。メディアユニーク鍵ＫｍｕＨはアプリケーション鍵処理部１１０に供給される。アプリケーション鍵はＳＤカード５０の認証エリア５９から認証・鍵交換実行部５８、１０９を介してアプリケーション鍵処理部１１０に供給され、処理後のアプリケーション鍵は認証・鍵交換実行部１０９、５８を介して再びＳＤカード５０の認証エリア５９に供給される。
【００５１】
一方向性関数部１１２はメディア鍵ＫｍＨと定数とで一方向性関数に演算し、メディア鍵プライムＫｍ’Ｈを求める。
【００５２】
一方向性関数部１１３はメディア鍵プライムＫｍ’Ｈとメディア識別子ＭＩＤとで一方向性関数に演算し、認証鍵ＫauthＨを求める。認証鍵ＫauthＨを認証・鍵交換実行部１０９に供給される。
【００５３】
一方向性関数部１０７はメディア鍵プライムＫｍ’Ｈとメディア鍵プライムデータ（後述）とで一方向性関数に演算し、メディア鍵プライム応答の期待値（後述）を求める。期待値はデータ検証処理部１０８に供給される。
【００５４】
データ検証処理部１０８は指定レコード選択処理部１０６が行った暗号化メディア鍵Ｋｍの送信に応答してＳＤカード５０から応答を受け取ると、応答と期待値とを比較することにより、当該応答の正当性を検証する。データ検証処理部１０８は当該検証により正当性が確認されたら、メディア鍵ブロックＭＫＢＨの全てをＳＤカード５０に送る。この送信は、その信号経路は図示していないが、認証・鍵交換実行部１０９、認証・鍵交換実行部５８を介して行われる。
【００５５】
アプリケーション鍵処理部１１０はＳＤカード５０の更新可能メモリ５１から取得したメディア鍵ブロックＭＫＢの更新回数ＵＣを読み取って、認証エリア５９内の偶数用アプリケーション鍵ファイル６２、奇数用アプリケーション鍵ファイル６４のいずれが有効／無効かを判定するとともに、有効なアプリケーション鍵ファイルをメディアユニーク鍵ＫｍｕＨで再暗号化し、再暗号化したアプリケーション鍵ファイルを無効アプリケーション鍵ファイルに上書きする機能を有する。アプリケーション鍵ファイルも認証・鍵交換実行部１０９、５８を介してＳＤカード５０とホスト１００との間で通信される。
【００５６】
メディア鍵ブロックＭＫＢのデータ構成について図３を用いて説明する。メディア鍵ブロックＭＫＢはバージョン番号、メディア鍵検証用レコード、複数の暗号化メディア鍵の各レコード、複数のメディア鍵プライムの各レコード、複数のＵＶデスクリプターの各レコードを含む。
【００５７】
バージョン番号はメディア鍵ブロックＭＫＢのバージョンを示し、メディア鍵ブロックＭＫＢの新旧を比較可能な情報（比較管理情報）である。
【００５８】
メディア鍵検証用レコードはＳＤカード５０がホスト１００からメディア鍵ブロックＭＫＢを受け取った時に当該メディア鍵ブロックＭＫＢを検証するために用いられる。具体的にはメディア鍵検証用レコードは固定データ（例えば、”０１２３４ＸＸＸ”などの数列）をメディア鍵Ｋｍで暗号化したものである。固定データはＳＤカード５０に別途予め記憶される。
【００５９】
暗号化メディア鍵は１つのブロック情報番号またはブロック情報番号のグループ毎に、１つずつレコードが分かれてメディア鍵ブロックＭＫＢに含まれる。例えば、ブロック情報番号“１”に対応する１つの暗号化メディア鍵と、ブロック情報番号“１００”〜“１９９”に対応する１つの暗号化メディア鍵とが別々のレコードとして含まれる。各ブロック情報番号には上述したようにデバイス鍵セットが対応しているから、各暗号化メディア鍵はブロック情報番号に対応するデバイス鍵セットに含まれるデバイス鍵の１つによって復号可能である。
【００６０】
暗号化メディア鍵プライムは暗号化メディア鍵と同様に格納されている。なお、暗号化メディア鍵のレコードおよび暗号化メディア鍵プライムのレコードは図４のように種別毎にブロックをなして配置されておいてもよいし、暗号化メディア鍵のレコードおよび暗号化メディア鍵プライムのレコードが一つのブロックに混ざって配置されていてもよい。
【００６１】
図４は認証エリアのディレクトリ構成例を示す図である。認証エリアではディレクトリは各アプリケーションにより割り当てられる。ディレクトリ名はＸＸＸである。ＸＸＸはＳＤアプリケーション名である。各ディレクトリ内で暗号化タイトル鍵を格納するファイル名はＹＹＹ．ＫＹＸである。ＹＹＹはＳＤアプリケーションにより割り当てられる。各メディア鍵ブロックＭＫＢに関連した暗号化アプリケーション鍵を格納するファイル名はＡＰＰ＿ｎｎ＿ｘ．ＫＹＸである。“ｎｎ”はメディア鍵ブロックＭＫＢの番号（十進数で００から０７）、ｘは１は奇数を示し、２は偶数を示す。
【００６２】
図４はビデオコンテンツに対するタイトル鍵束の例を示す。ディレクトリ名はＶＩＤＥＯであり、ビデオコンテンツを暗号化するためのタイトル鍵の束を格納するファイルはＶＩＤＥＯｎｎｎ．ＫＹＸ、またはＭＯｎｎｎ．ＫＹＸである。ｎｎｎは十進数である。ＡＰＰ＿０８＿１．ＫＹＸはビデオアプリケーション用のアプリケーション鍵ファイルであり、奇数用である。ＡＰＰ＿０８＿２．ＫＹＸは偶数用のアプリケーション鍵ファイルである。メディア鍵ブロックＭＫＢの更新回数が０の場合、ＡＰＰ＿０８＿２．ＫＹＸが有効のアプリケーション鍵ファイルである。
【００６３】
アプリケーション鍵は一つのアプリケーションに対して一つである。つまり、一つのメディア鍵ブロックＭＫＢに対して一つである。それに対して、アプリケーション鍵ファイルは奇数用と偶数用で二つになる。メモリカードに一つ以上のメディア鍵ブロックＭＫＢが格納されていると、それぞれのＭＫＢに対してアプリケーション鍵が存在する。前述のビデオ用のタイトル鍵は一つのアプリケーション鍵で暗号化されている。また、アプリケーション鍵はメモリカードに固有のメディアユニーク鍵Ｋｍｕで暗号化されている。メディアユニーク鍵はＭＫＢとデバイス鍵セット、メディア識別子から算出できる値である。
【００６４】
ＭＫＢをデバイス鍵ＫｄでＭＫＢ処理すると、メディア鍵Ｋｍが得られる。メディア鍵Ｋｍとメディア識別子ＭＩＤとで一方向性関数に演算することによりメディアユニーク鍵Ｋｍｕが得られる。
【００６５】
一方、メディア鍵Ｋｍと定数とで一方向性関数に演算すると、メディア鍵プライムＫｍ’が得られる。メディア識別子ＭＩＤとメディア鍵プライムＫｍ’とで一方向性関数に演算すると、認証鍵Ｋauthが得られる。
【００６６】
次に、本実施の形態にかかるホスト１００とＳＤカード５０とで行うＳＤカードのメディア鍵ブロックＭＫＢ更新処理の手順について図５、図６、図７のフローチャートを参照して説明する。
【００６７】
ＳＤカード５０がホスト１００のカードスロット（図示せず）に挿入されると、ステップ＃１２で、ホスト１００はＧＥＴ＿ＭＫＢコマンドを発行する。
【００６８】
ＳＤカード５０はステップ＃１４で更新可能メモリ５１内のメディア鍵ブロックＭＫＢＭ及び更新回数ＵＣをホスト１００へ送信する。ホスト１００はステップ＃１６でメディア鍵ブロックＭＫＢＭ及び更新回数ＵＣをＳＤカード５０から受信する。ホスト１００はＳＤカード５０のＭＫＢＭのバージョン番号とホスト１００のメディア鍵ブロックＭＫＢＨのバージョン番号とを比べ、ホスト１００のメディア鍵ブロックＭＫＢＨのバージョン番号がＳＤカード５０のＭＫＢＭのバージョン番号より新しい場合、ＳＤカード５０のメディア鍵ブロックＭＫＢＭを更新する。これにより、不正なＳＤカードはホストに接続された時、メディア鍵ブロックＭＫＢＭが最新のメディア鍵ブロックＭＫＢに更新されるので、最新のメディア鍵ブロックＭＫＢが当該カードの情報を含んでいれば、無効化することができる。それ以外の場合は、本発明の範囲外なので、説明は省略するが、ＳＤカード５０のメディア鍵ブロックＭＫＢＭのバージョン番号がホスト１００のメディア鍵ブロックＭＫＢＭのバージョン番号より新しい場合、ホスト１００のメディア鍵ブロックＭＫＢＨが更新される。
【００６９】
更新回数ＵＣは認証エリア５９内の２つのアプリケーション鍵ファイルのいずれが有効であるかを示すものであり、更新回数ＵＣが偶数の場合、偶数用アプリケーション鍵ファイル６２が有効で、奇数用アプリケーション鍵ファイル６４が無効である。反対に、更新回数ＵＣが奇数の場合、奇数用アプリケーション鍵ファイル６４が有効で、偶数用アプリケーション鍵ファイル６２が無効である。この識別結果はステップ＃７４および＃８６で使用する。
【００７０】
ホスト１００はステップ＃１８で更新不可メモリ１０２内のデバイス鍵セットＫｄＨと受信したメディア鍵ブロックＭＫＢＭとで一方向性関数に演算することによりメディア鍵プライムＫｍ’Ｈを求める。具体的には、ＭＫＢ処理部１０４がメディア鍵ブロックＭＫＢＭとＫｄＨをＭＫＢ処理して求めたＫｍＨが一方向性関数部１１２に供給され、ＫｍＨと定数とで一方向性関数に演算することによりメディア鍵プライムＫｍ’Ｈが求められる。
【００７１】
ホスト１００はステップ＃２２でＧＥＴ＿ＭＩＤコマンドを発行する。ＳＤカード５０はステップ＃２４で更新不可メモリ５２内のメディア識別子ＭＩＤをホスト１００へ送信する。ホスト１００はステップ＃２６でメディア識別子ＭＩＤをＳＤカード５０から受信する。ホスト１００はステップ＃２８で一方向性関数部１１３によりメディア鍵プライムＫｍ’Ｈとメディア識別子ＭＩＤとで一方向性関数に演算することにより認証鍵ＫauthＨを求める。
【００７２】
ホスト１００はステップ＃３２でホスト１００とＳＤカード５０間で上記認証鍵ＫauthＨと、ＳＤカード５０の更新可能エリア５１内に格納されている認証鍵ＫauthＭとを用いて相互認証（ＡＫＥ）を行う。相互認証が成功した場合、ホスト１００とＳＤカード５０で同じセッション鍵Ｋｓが生成され、共有される。
【００７３】
ホスト１００はステップ＃３４でＳＤカード５０の更新不可メモリ５２内のメディア識別子ＭＩＤに含まれているデバイスノードに対応するホスト１００のメディア鍵ブロックＭＫＢＨの中からメディア鍵プライムメディアレコード内のメディア鍵プライムデータレコードの１６バイトのエントリと、メディア鍵プライムレコードの明示的なサブセット差分内のＵＶデスクリプターの６バイトのエントリとを探す。
【００７４】
ホスト１００はステップ＃３６でメディア鍵ブロックＭＫＢＨのバージョン番号(Version Number)、メディア鍵プライムレコード(Media Key Prime Data)、ＵＶデスクリプター(UV Descriptor)、パディングデータ(00000000000016)を連結し、３２バイトのメディア鍵プライム要求Ｋｍ’Requestを生成する。
【００７５】
Ｋｍ’Request＝Version Number||Media Key Prime Data||UV Descriptor||00000000000016
ホスト１００はステップ＃３８でメディア鍵プライム要求Ｋｍ’Requestをステップ＃３２で共有されているセッション鍵Ｋｓで暗号化する。暗号化方式はＡＥＳのＥＣＢＣモードである（以下、この暗号化方式をＡＥＳ＿ＥＣＢＣと称する）。
【００７６】
ホスト１００はステップ＃４２で暗号化メディア鍵プライム要求Ｋｍ’Requestを認証・鍵交換実行部１０９、５８を介してＳＤカード５０へ送信する。ＳＤカード５０はステップ＃４４で暗号化メディア鍵プライム要求Ｋｍ’Requestを受信する。
【００７７】
ホスト１００はステップ＃４６でメディア鍵プライム応答の期待値を計算する。メディア鍵プライム応答の期待値はメディア鍵プライムデータ（図３に示すようにメディア鍵ブロックＭＫＢに格納されている）とメディア鍵ブロックＭＫＢＨから導出したメディア鍵プライムＫｍ’とでＡＥＳ暗号アルゴリズムを用いた一方向性関数（以下、この方式をＡＥＳ＿Ｇと称する）に演算することにより計算される。計算された期待値は図示しないセキュアなメモリに保存される。
【００７８】
Expected-Ｋｍ’Response＝ＡＥＳ＿Ｇ（Ｋｍ’，Media Key Prime Data）
ＳＤカード５０はステップ＃４４で受信した暗号化メディア鍵プライム要求Ｋｍ’Requestをステップ＃３２で共有したセッション鍵Ｋｓを用いて復号する（ステップ＃４８）。復号方式はＡＥＳのＤＣＢＣモードである（以下、この暗号化方式をＡＥＳ＿ＤＣＢＣと称する）。
【００７９】
ＳＤカード５０はステップ＃５０で以下の式により受信したデータが正確に復号できたことを確認する。
【００８０】
［ＡＥＳ＿ＤＣＢＣ（Ｋｓ，Ｋｍ’Request）］lsb_48＝00000000000016
復号データの正当性が確認できた場合、ＳＤカード５０（復号部５４）は復号したメディア鍵プライムデータ要求Ｋｍ’Request、更新不可メモリ５２内のデバイス鍵セットＫｄＭ、メディア鍵ブロックＭＫＢのバージョン番号を用いてＭＫＢ処理を行い、メディア鍵プライムＫｍ’Ｈの候補値を計算する（ステップ＃５４）。ＳＤカード５０はそのメディア鍵プライムＫｍ’Ｈの候補値をセキュアなメモリに保存しておく。
【００８１】
ＳＤカード５０（一方向性関数部５５）はステップ＃５６でメディア鍵プライムＫｍ’Ｈの候補値とメディア識別子ＭＩＤとで一方向性関数に演算し、認証鍵ＫauthＨを計算する。さらに、その認証鍵ＫauthＨを候補値としてセキュアなメモリに保存しておく。
【００８２】
ＳＤカード５０（一方向性関数部５６）はステップ＃５８でメディア鍵プライムＫｍ’Ｈの候補値とメディア鍵プライムデータ（図３に示すようにメディア鍵ブロックＭＫＢに格納されている）とで一方向性関数に演算し１６バイトのメディア鍵プライム応答を以下の式にて計算する。
【００８３】
Ｋｍ’Response＝ＡＥＳ＿Ｇ（the candidate Ｋｍ’，Media Key Prime Data）
ホスト１００はステップ＃６２でＧＥＴ＿ＭＫＰＲコマンドを発行する。ＳＤカード５０はステップ＃６４でメディア鍵プライム応答をセッション鍵Ｋｓで暗号化して、ホスト１００へ送信する。暗号化方式はＡＥＳ＿ＥＣＢＣである。ホスト１００はステップ＃６６で暗号化メディア鍵プライム応答をＳＤカード５０から受信し、セッション鍵Ｋｓで復号する。復号方式はＡＥＳ＿ＤＣＢＣである。
【００８４】
ホスト１００（データ検証処理部１０８）はステップ＃４６で求めたメディア鍵プライム応答の期待値と、ステップ＃６６で復号したメディア鍵プライム応答とが一致するか否かを確認する（ステップ＃６８）。一致したときは次のステップへ進み、一致しない場合、処理は中止される。
【００８５】
ホスト１００はステップ＃７２でＳＤカード５０の更新可能メモリ５１内のメディア鍵ブロックＭＫＢＭを用いてホスト１００とＳＤカード５０間で相互認証（ＡＫＥ）を行う。相互認証が成功した場合、ホスト１００はＳＤカード５０の認証エリア５９からデータを読む／認証エリア５９にデータを書く前に必要である新セッション鍵Ｋｓを求める。
【００８６】
ホスト１００はステップ＃７３でＳＤカードへ有効なアプリケーションファイルの読み込み要求する。
【００８７】
ホスト１００はステップ＃７４でＳＥＣＵＲＥ＿ＲＥＡＤ＿ＭＵＬＴＩ＿ＢＬＯＣＫコマンドを発行する。ＳＤカード５０はステップ＃７６で認証エリア５９から有効なアプリケーション鍵ファイル６２または６４を読出し、ホスト１００へ送信する。ホスト１００はステップ＃７８で有効なアプリケーション鍵ファイル６２または６４をＳＤカード５０から受信する。
【００８８】
ホスト１００はステップ＃８０でメディア鍵ブロックＭＫＢＭから導出したメディア鍵ＫｍＭとメディア識別子ＭＩＤから導出したメディアユニーク鍵ＫｍｕＭを用いて暗号化アプリケーション鍵ファイルを復号する。ホスト１００はステップ＃８２でメディア鍵ブロックＭＫＢＨから導出したメディア鍵ＫｍＨとメディア識別子ＭＩＤから導出したＳＤカード５０のメディアユニーク鍵ＫｍｕＨでアプリケーション鍵ファイルを再度暗号化する。
【００８９】
ホスト１００はステップ＃８４でホスト１００とＳＤカード５０間で相互認証（ＡＫＥ）を行う。相互認証が成功した場合、新セッション鍵Ｋｓを求める。
【００９０】
ホスト１００はステップ＃８５でＳＤカードへ無効なアプリケーションファイルへ書き込みを要求する。
【００９１】
ホスト１００はステップ＃８６でＳＥＣＵＲＥ＿ＷＲＩＴＥ＿ＭＵＬＴＩ＿ＢＬＯＣＫコマンドを発行する。
【００９２】
ホスト１００はステップ＃８８で再暗号化アプリケーション鍵ファイルをＳＤカード５０へ送信する。ＳＤカード５０はステップ＃９０で再暗号化アプリケーション鍵ファイルをホスト１００から受信し、認証エリア５９内の無効のアプリケーション鍵ファイルへ上書きする。
【００９３】
ホスト１００はステップ＃９２でＳＥＴ＿ＭＫＢコマンドを発行する。ホスト１００はステップ＃９４でメディア鍵ブロックＭＫＢＨをＳＤカード５０へ送信する。ＳＤカード１００はステップ＃９６でメディア鍵ブロックＭＫＢＨをホスト１００から受信する。ＳＤカード１００はステップ＃９８（あるいは受信中のステップ＃９６）でメディア鍵ブロックＭＫＢＨの正当性を確認する。例えば、ＳＤカード５０が保持しているメディア鍵プライムＫｍ’が正しいものがどうかをメディア鍵ブロックＭＫＢ内の検証データ（図３参照）を用いて検証する。あるいは、メディア鍵ブロックＭＫＢＨのバージョン番号がメディア鍵ブロックＭＫＢＭのバージョン番号よりも大きいことを確認する。あるいは、メディア鍵ブロックＭＫＢＨ内のハッシュ値が正しいことを確認する等である。
【００９４】
ＳＤカード５０は受信したメディア鍵ブロックＭＫＢＨの正当性を確認できた場合、ステップ＃１００でメディア鍵ブロックＭＫＢＭとこれに付随する認証鍵ＫauthＭをメディア鍵ブロックＭＫＢＨと認証鍵ＫauthＨの候補に置き換える。さらに、メディア鍵ブロックＭＫＢの更新回数ＵＣをインクリメントする。更新回数ＵＣをインクリメントすることで、ホスト１００がＳＤカード５０からメディア鍵ブロックＭＫＢＭを取得する際に付随する更新回数ＵＣがインクリメントされているので、二つのアプリケーション鍵ファイルの有効および無効が入れ替わる。
【００９５】
以上説明したように、ホスト１００だけでなく、コントローラを内蔵したＳＤカード５０にも、メディア鍵ブロック（鍵管理情報）を復号するために必要なデバイス鍵を含むデバイス鍵セットを記憶する。そして、ホスト１００とＳＤカード５０とが互いに自身が記憶しているデバイス鍵セットを用いて、メディア鍵ブロックＭＫＢにより秘匿されているメディア鍵を復号する。更に、両者が、メディア識別子を用いてメディア鍵を変換したメディアユニーク鍵が一致した場合のみ、相互認証を継続できるようにする。
【００９６】
また、複数のタイトル鍵を一つのアプリケーション鍵で暗号化し、アプリケーション鍵をメディアユニーク鍵で再暗号化する。アプリケーション鍵はメモリの一つのセクタに収まるサイズなので、再暗号化する部分を小さくすることができ、書換えに係る時間を短縮することができる。そのため、鍵管理情報の更新中にメモリカードがホストから抜かれる等の異常が発生しても、既に書き込まれているコンテンツが使用できなくなる状態を防ぐことができる。
【００９７】
メモリカードは新たな鍵管理情報が入力された際に鍵管理情報の正当性を確認し、正当性が確認できた場合、鍵管理情報を更新し、更新回数をインクリメントする。
【００９８】
一つの鍵管理情報毎に２つのアプリケーション鍵があり、一つは有効アプリケーション鍵、他は無効アプリケーション鍵である。ホストはメモリカードから鍵管理情報を取得する際に、メモリカード内で鍵管理情報が何回更新されたかを検出し、更新回数が偶数か奇数かで２つのアプリケーション鍵の何れが有効であるかを判断する。
【００９９】
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【０１００】
＜変形例１＞
上述した実施の形態において、ホスト１００またはＳＤカード５０で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【０１０１】
ホスト１００はＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記憶媒体からデータを読み出すドライブを備え、記憶媒体に記憶された各種プログラムを、当該ドライブを介して読み出してこれをインストールすることにより提供するように構成しても良い。
【０１０２】
＜変形例２＞
上述した実施の形態において、相互認証を行う２つの情報処理装置としてはホスト１００とＳＤカード５０とを例にして説明した。しかし、相互認証を行う２つの情報処理装置はこれらに限らない。
【０１０３】
一方の情報処理装置としてＳＤカード５０にメディア鍵ブロック、デバイス鍵セット、メディア識別子及びメディアユニーク鍵が予め記憶される構成とした。しかし、当該一方の情報処理装置自体にこれらの情報が記憶されるのではなく、例えば、当該一方の情報処理装置はデバイス鍵を保有し、自身に着脱自在に装着され且つメディア鍵ブロック、メディア識別子及びメディアユニーク鍵が記憶されている記憶媒体からこれらの情報を取得するようにしても良い。即ち、この場合、当該一方の情報処理装置は利用可能な鍵管理情報として、記憶媒体に記憶されているメディア鍵ブロックを用いる。
【０１０４】
また、相互認証を行う２つの情報処理装置はＤＶＤなどの光磁気ディスクにデータの読み書きを行うドライブと、ドライブを介して光磁気ディスクにデータの読み書きを行う情報処理装置（ＰＣにインストールされるアプリケーション）とであっても良い。この場合、より複製されやすいアプリケーションがインストールされる情報処理装置が上述のＳＤカード５０と同様の機能を実現させ、ドライブが上述のホスト１００と同様の機能を実現させるようにする。このような構成においてはアプリケーションが秘匿しているデバイス鍵に対応したデバイス情報番号をドライブに送り、ドライブは光磁気ディスクに記録されているメディア鍵ブロックから受信したデバイス情報番号に対応した暗号化メディア鍵を取り出し、アプリケーション側に送り返すことになる。このような構成によれば、このアプリケーションを不正に複製した不正アプリケーションが出回った場合に、当該不正アプリケーションに記憶されているデバイス鍵セットを管理団体が特定できるようになる。
【０１０５】
なお、ドライブは常に光磁気ディスクからメディア鍵ブロックを読み出すだけでなく、自身の不揮発性メモリにメディア鍵ブロックを記憶しておき、光磁気ディスクとアプリケーションとの両方から送られてくる各メディア鍵ブロックを用いて不揮発性メモリ内のメディア鍵ブロックを最新の状態に更新しておくこともできる。
【０１０６】
＜変形例３＞
上述した実施の形態において、認証鍵Ｋauthはメディア鍵Ｋｍから求めたメディア鍵プライムＫｍ’から求め、メディアユニーク鍵Ｋｍｕもメディア鍵Ｋｍから求めている。そのため、メディアユニーク鍵Ｋｍｕを認証鍵Ｋauthの代わりに使うことも可能である。その場合、ＳＤカード５０の更新可能メモリ５１は認証鍵ＫauthＭの代わりにメディアユニーク鍵Ｋｍｕを格納する。
【０１０７】
さらに、認証鍵Ｋauthの代わりにメディアユニーク鍵Ｋｍｕを使う場合、ＳＤカード５０の更新可能メモリ５１内にメディアユニーク鍵Ｋｍｕを格納しなくても良い。これは、メディアユニーク鍵Ｋｍｕはメディア鍵Ｋｍとメディア識別子ＭＩＤとで一方向演算すれば求めることができるからである。
【０１０８】
＜変形例４＞
上述した実施の形態において、ＳＤカード５０は一方向性関数部５５、５６を備え、一方向性関数演算によりデータの変換を行ったが、これに限らず、その他の演算によりデータの変換を行う変換部を備えるようにしても良い。ホスト１００についても同様に、一方向性関数部１０５、１１２、１１３に限らず、その他の演算によりデータの変換を行う変換部を備えるようにしても良い。
【０１０９】
＜変形例５＞
上述した実施の形態において、識別情報としてメディア識別子を用いたが、これに限らず、識別情報は情報処理装置を一意に識別可能な情報であれば良い。また、装置秘密鍵としてデバイス鍵を用いたが、これに限らず、装置秘密鍵は各情報処理装置に対して割り当てられた鍵情報であれば良い。更に、指定情報としてデバイス情報番号を用いたが、これに限らず、指定情報はメディア鍵ブロックＭＫＢに含まれる暗号化メディア鍵を特定する情報であれば良い。
【符号の説明】
【０１１０】
５０…メモリカード、５１…更新可能メモリ、５２…更新不可メモリ、５３…送信部、５４…復号部、５５、５６…一方向性関数部、５７…ＭＫＢ検証・更新部、５８…認証・鍵交換実行部、５９…認証エリア、１００…ホスト、１０１…更新可能メモリ、１０２…更新不可メモリ、１０３…ＭＫＢ検証・更新部、１０４…ＭＫＢ処理部、１０５、１０７…一方向性関数部、１０６…指定レコード選択処理部、１０８…データ検証処理部、１０９…認証・鍵交換実行部、１１０…アプリケーション鍵再暗号化部。
【図１】
2011030275.tif 000003
【図２】
2011030275.tif 000004
【図３】
2011030275.tif 000005
【図４】
2011030275.tif 000006
【図５】
2011030275.tif 000007
【図６】
2011030275.tif 000008
【図７】
2011030275.tif 000009