(57)【要約】【課題】登録情報の漏洩を防止する技術を提供する。【解決手段】登録情報受付部３０は、コンテンツデータを格納した可搬型の記憶装置に、コンテンツに関連した登録情報を記録する要求をユーザから受け付ける。登録部３１は、登録情報を取得して記憶装置に記録する。共有管理部３２は、他の装置による登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を登録情報に対応付けて記憶装置に記録する。読み出し要求受付部３３は、登録情報を記憶装置から読み出す要求を受け付ける。判定部３４は、その登録情報に対応付けられた共有情報を記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、登録情報読み出し部３５による登録情報の読み出しを禁止する。【選択図】図２
2007323367.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツのデータを格納した可搬型の記憶装置との間でデータの入出力を制御するインタフェースと、
前記コンテンツに関連した登録情報の記録要求をユーザから受け付け、前記登録情報を取得して前記記憶装置に記録する登録部と、
他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録する共有管理部と、
を備えることを特徴とするデータ管理装置。
【請求項２】
前記登録情報を前記記憶装置から読み出す要求を受け付け、要求された登録情報を前記記憶装置から読み出す登録情報読み出し部と、
前記登録情報読み出し部が登録情報を読み出す前に、その登録情報に対応付けられた共有情報を前記記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、前記登録情報読み出し部による前記登録情報の読み出しを禁止する判定部と、
を更に備えることを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
自装置に固有の情報を外部に公開しないように保持する固有情報保持部を更に備え、
前記共有管理部は、他の装置による前記登録情報の読み出しを禁止する場合は、前記固有情報保持部から読み出した自装置の固有情報を更に前記登録情報に対応付けて前記記憶装置に記録することを特徴とする請求項１又は２に記載のデータ管理装置。
【請求項４】
前記判定部は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けて前記記憶装置に記録された固有情報と、前記固有情報保持部に保持された自装置の固有情報とを比較し、一致しなければその登録情報の読み出しを禁止することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
他の装置による前記登録情報の読み出しを禁止する場合に、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を暗号鍵で暗号化するとともに、前記暗号鍵を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えることを特徴とする請求項３又は４に記載のデータ管理装置。
【請求項６】
読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有暗号鍵で暗号化された前記暗号鍵を前記記憶装置から読み出して、前記固有情報を用いて生成された固有復号鍵で復号して前記暗号鍵を得る復号部を更に備える請求項５に記載のデータ管理装置。
【請求項７】
他の装置による前記登録情報の読み出しを禁止する場合は、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えることを特徴とする請求項３又は４に記載のデータ管理装置。
【請求項８】
読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有情報を用いて生成された固有復号鍵で前記登録情報を復号する復号部を更に備える請求項７に記載のデータ管理装置。
【請求項９】
前記暗号部は、前記固有暗号鍵を用いて共通鍵暗号方式でデータを暗号化し、前記復号部は、前記暗号部において前記固有暗号鍵を生成するのと同じ方法により、前記固有暗号鍵と同一である前記固有復号鍵を生成してデータを復号することを特徴とする請求項６又は８に記載のデータ管理装置。
【請求項１０】
該データ管理装置は、ナビゲーション装置であり、
現在位置を検知する位置検知部と、
検知された現在位置の周辺の地図データを前記記憶装置から読み出して表示装置に表示させる地図データ処理部と、を更に備え、
前記登録部は、ユーザが目的地として利用する地点の登録情報を前記記憶装置に登録することを特徴とする請求項１から９のいずれかに記載のデータ管理装置。
【請求項１１】
コンテンツのデータを格納した可搬型の記憶装置に、前記コンテンツに関連した登録情報を記録する要求をユーザから受け付けるステップと、
前記登録情報を取得して前記記憶装置に記録するステップと、
他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録するステップと、
を含むことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理技術に関し、とくに、可搬型の記憶装置に格納されたコンテンツデータに関連する登録情報を記憶装置に記録するデータ管理装置及びデータ管理方法に関する。
【背景技術】
【０００２】
自動車などの輸送手段に搭載され、現在位置周辺の地図を表示したり、目的地への経路を案内する機能を有するナビゲーション装置が広く普及してきた。ナビゲーション装置は、一般に、ユーザの自宅や勤務先など、目的地として利用される地点の情報を登録する機能を有している。通常、これらの登録情報は、ナビゲーション装置に内蔵されたフラッシュメモリやハードディスクなどの記憶装置に記録される。登録情報をネットワークを介してユーザ間で共有する技術も提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−５３５２１公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、ハードディスク装置の小型化、軽量化、安定性の向上などに伴い、記録装置又は再生装置に着脱自在に接続可能な可搬型のハードディスク装置が開発されており、カーナビゲーション装置において地図データを格納する記録媒体としても利用され始めている。従来のナビゲーション装置では、登録情報は車載器に内蔵された記憶装置に記録されるので、物理的に外部へ持ち出すことはできず、第三者が車内に入って車載器を操作しない限り、登録情報が漏洩する恐れはなかった。しかし、可搬型のハードディスク装置を登録情報の記憶装置として利用する場合は、ハードディスクの紛失や盗難などにより、第三者にハードディスク装置に格納されたデータを覗かれる可能性があるので、個人情報保護の観点から、登録情報の漏洩を防止する策を講じる必要がある。
【０００４】
本発明は、こうした状況に鑑みてなされたものであり、その目的は、可搬型の記憶装置に格納された登録情報を適切に保護する技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、コンテンツのデータを格納した可搬型の記憶装置との間でデータの入出力を制御するインタフェースと、前記コンテンツに関連した登録情報の記録要求をユーザから受け付け、前記登録情報を取得して前記記憶装置に記録する登録部と、他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録する共有管理部と、を備えることを特徴とする。
【０００６】
このような構成により、秘匿すべき登録情報は他装置での読み出しを禁じて漏洩を防止しつつ、共有したい登録情報は他装置での読み出しを許可することができ、ユーザの利便性を向上させることができる。
【０００７】
前記登録情報を前記記憶装置から読み出す要求を受け付け、要求された登録情報を前記記憶装置から読み出す登録情報読み出し部と、前記登録情報読み出し部が登録情報を読み出す前に、その登録情報に対応付けられた共有情報を前記記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、前記登録情報読み出し部による前記登録情報の読み出しを禁止する判定部と、を更に備えてもよい。
【０００８】
データ管理装置は、自装置に固有の情報を外部に公開しないように保持する固有情報保持部を更に備えてもよく、前記共有管理部は、他の装置による前記登録情報の読み出しを禁止する場合は、前記固有情報保持部から読み出した自装置の固有情報を更に前記登録情報に対応付けて前記記憶装置に記録してもよい。前記判定部は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けて前記記憶装置に記録された固有情報と、前記固有情報保持部に保持された自装置の固有情報とを比較し、一致しなければその登録情報の読み出しを禁止してもよい。これにより、登録情報を登録した装置以外の装置による読み出しを適切に禁止することができる。また、機器ＩＤなどの外部に対して秘された固有情報を用いることで、なりすましを防止することができる。
【０００９】
データ管理装置は、他の装置による前記登録情報の読み出しを禁止する場合に、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を暗号鍵で暗号化するとともに、前記暗号鍵を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えてもよい。データ管理装置は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有暗号鍵で暗号化された前記暗号鍵を前記記憶装置から読み出して、前記固有情報を用いて生成された固有復号鍵で復号して前記暗号鍵を得る復号部を更に備えてもよい。
【００１０】
データ管理装置は、他の装置による前記登録情報の読み出しを禁止する場合は、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えてもよい。データ管理装置は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有情報を用いて生成された固有復号鍵で前記登録情報を復号する復号部を更に備えてもよい。以上のような構成により、記憶装置に格納された登録情報が第三者により読み出されたとしても、内容の漏洩を防止することができる。
【００１１】
前記暗号部は、前記固有暗号鍵を用いて共通鍵暗号方式でデータを暗号化し、前記復号部は、前記暗号部において前記固有暗号鍵を生成するのと同じ方法により、前記固有暗号鍵と同一である前記固有復号鍵を生成してデータを復号してもよい。これにより、簡易でかつ確実な方法で、登録情報を登録した装置のみが登録情報を復号可能とすることができる。
【００１２】
該データ管理装置は、ナビゲーション装置であってもよい。ナビゲーション装置は、現在位置を検知する位置検知部と、検知された現在位置の周辺の地図データを前記記憶装置から読み出して表示装置に表示させる地図データ処理部と、を更に備えてもよい。前記登録部は、ユーザが目的地として利用する地点の登録情報を前記記憶装置に登録してもよい。
【００１３】
本発明の別の態様は、データ管理方法に関する。このデータ管理方法は、コンテンツのデータを格納した可搬型の記憶装置に、前記コンテンツに関連した登録情報を記録する要求をユーザから受け付けるステップと、前記登録情報を取得して前記記憶装置に記録するステップと、他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録するステップと、を含むことを特徴とする。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、可搬型の記憶装置に格納された登録情報を適切に保護する技術を提供することができる。
【発明を実施するための最良の形態】
【００１６】
記憶装置に格納されたデータを管理するデータ管理装置の一例として、ナビゲーション装置について説明する。本実施の形態では、ナビゲーション装置が利用する地図データを格納した記憶装置として、ナビゲーション装置に着脱自在に接続される可搬型のリムーバブルハードディスク装置を利用する。ユーザの自宅や勤務先、その他よく利用する目的地の登録情報など、個人情報を含むデータもリムーバブルハードディスク装置に格納される。地図データが可搬型のリムーバブルＨＤＤに格納されているので、ナビゲーション装置から外して他の装置で利用することができるが、ユーザが登録した登録情報のうち、自宅の住所など他者に知られたくない情報は、個人情報保護の観点から、他の装置では読み書きできないようにすることが望ましい。本実施の形態では、可搬型の記憶装置に登録されたデータの読み書きを適切に管理する技術を提案する。
【００１７】
（第１の実施の形態）
図１は、第１の実施の形態に係るナビゲーション装置の構成を示す。ナビゲーション装置１は、現在位置を検出するために用いられるＧＰＳ受信機１０、ジャイロスコープ１２、車速センサ１４、及びこれらから得られたデータを用いて現在位置を検出する位置検出器１６、ユーザからの入力を受け付けるリモコン受光部２０、液晶ディスプレー等の表示パネル２４、リムーバブルＨＤＤユニット２００との間のデータ入出力などを制御するストレージインタフェース１０２、リムーバブルＨＤＤ２００が挿入されていることを検出するリムーバブルＨＤＤ挿入検出部２６、機器を制御するコントローラ１０１、機器に固有な機器ＩＤを外部に公開しないように格納するＲＯＭ２８、動作に必要なデータなどを格納するバッファメモリ２２、これらの構成を電気的に接続するデータバス１１０を備える。
【００１８】
ユーザが、地図データが格納されたリムーバブルＨＤＤユニット２００をナビゲーション装置１にセットし、リモートコントローラ（図示せず）のナビゲーション開始ボタンを押すと、リモコン受光部２０でコマンドを受け取り、ナビゲーションを開始する。まず、ナビゲーション装置１の現在位置を検出するために、ＧＰＳ受信機１０、ジャイロスコープ１２、車速センサ１４から得られたデータを位置検出器１６が解析し、現在地、進行方向、及び速度を検出する。また、コントローラ１０１によって、リムーバブルＨＤＤユニット２００から現在位置周辺の地図データが読み出され、位置検出器１６によって得られた情報と合わせて液晶ディスプレー等の表示パネル２４に表示される。
【００１９】
図２は、コントローラ１０１の内部構成を示す。コントローラ１０１は、登録情報受付部３０、登録部３１、共有管理部３２、読み出し要求受付部３３、判定部３４、登録情報読み出し部３５、目的地設定部３６、経路算出部３７、及び地図データ処理部３８を含む。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２０】
目的地設定部３６は、リモコン受光部２０などを介して、ユーザから目的地の設定を受け付ける。目的地設定部３６は、住所、電話番号、名称などを受け付けて、図示しない地図情報データベースを検索して目的地を取得してもよいし、地図情報データベースをカテゴリ別に提示して目的地の指定を受け付けてもよい。目的地が設定されると、経路算出部３７は、地図情報データベースを参照して、目的地へ到達するための経路を算出する。地図データ処理部３８は、現在位置周辺の地図データをリムーバブルＨＤＤユニット２００から読み出して表示するとともに、経路算出部３７により算出された経路を着色するなどして識別可能に表示する。
【００２１】
登録情報受付部３０は、ユーザから目的地などの登録情報を受け付ける。登録情報受付部３０は、目的地設定部３６において目的地として設定された地点の情報の登録要求を受け付けてもよいし、ユーザから新規に地点の情報を受け付けてもよい。また、リムーバブルＨＤＤユニット２００に格納された地図データに関する情報以外に、ユーザの氏名、住所、電話番号、嗜好情報など、ユーザの個人情報の登録を受け付けてもよい。登録部３１は、登録情報を取得してリムーバブルＨＤＤユニット２００に記録する。共有管理部３２は、他の装置による登録情報の読み出しを許可するか、他の装置による登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を登録情報に対応付けてリムーバブルＨＤＤユニット２００に記録する。共有管理部３２は、他の装置による前記登録情報の読み出しを禁止する場合は、ＲＯＭ２８から読み出した自装置の機器ＩＤを更に登録情報に対応付けてリムーバブルＨＤＤユニット２００に記録する。
【００２２】
読み出し要求受付部３３は、登録情報をリムーバブルＨＤＤユニット２００から読み出す要求を受け付ける。判定部３４は、読み出しを要求された登録情報に対応付けられた共有情報をリムーバブルＨＤＤユニット２００から読み出して、その登録情報の自装置による読み出しの許否を判定し、読み出しが許可されない場合、登録情報読み出し部３５による登録情報の読み出しを禁止する。判定部３４は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けてリムーバブルＨＤＤユニット２００に記録された機器ＩＤと、自装置のＲＯＭ２８に格納されている機器ＩＤとを比較し、一致しなければその登録情報の読み出しを禁止する。登録情報読み出し部３５は、読み出しが許可される場合、要求された登録情報をリムーバブルＨＤＤユニット２００から読み出す。
【００２３】
図３は、リムーバブルＨＤＤユニット２００のディレクトリ構造を示す。ルートディレクトリの下に地図情報管理ディレクトリ４５０とユーザ情報管理ディレクトリ４００が配置されている。地図情報管理ディレクトリ４５０の配下には、道路情報、交差点等のネットワーク情報、目的地、目印となりうるあらゆる施設の住所、電話番号等で構成される住所情報データベースなどを格納したファイル群が存在するが、ここでは説明を省略する。
【００２４】
ユーザ情報管理ディレクトリ４００の配下にユーザの登録情報が記録される。このディレクトリには、１つの登録情報管理ファイル４１０と、複数の登録データ群ファイル４２０が存在する。登録データ群ファイル４２０の名称は、ユーザが自由につけることが可能であり、例えば、「友人」、「お気に入りレストラン」等の名前をつけておき、そのファイルの中に、そのファイル名に関連した登録情報を記録するという使い方を想定している。
【００２５】
図４は、登録情報管理ファイル４１０のデータ構造の例を示す。まず、総登録データ群管理ファイル数ＮＯＦが記録され（この例ではファイル数はＮ）、その後に１番目の登録データ群ファイル名Ｆ１及び１番目のバインド情報ＢＩ１のペアが記録される。これが、ＮＯＦ個（この場合はＮ個）後に続く。
【００２６】
図５は、機器バインド情報ＢＩｎのデータ構造を示す。機器バインド情報ＢＩは、機器バインドフラグＢＩＦ及びバインド機器ＩＤ（ＢＩＤ）を含む。機器バインドフラグＢＩＦは、対応する登録データ群ファイル４２０が、記録した装置でのみ読み出しを許可された（以下、このことを「機器にバインド（紐付け）された」ともいう）ファイルであるか否かを示す。このフラグが「１」の場合、記録した機器でのみ読み出しが許可され、「０」の場合、記録した機器以外でも読み出しが許可されるものとする。バインド機器ＩＤ（ＢＩＤ）は、機器バインドフラグＢＩＦが「１」である時のみ有効なフィールドであり、登録データ群ファイル４２０を記録した装置の機器ＩＤが記録される。
【００２７】
図６は、登録データ群ファイル４２０のデータ構造を示す。最初に総登録データ数ＮＯＤが記録され（この例ではデータ数はＭ）、その後にＮＯＤ個の登録データＤ１〜ＤＭが並ぶ。
【００２８】
図７は、登録データＤｍのデータ構造を示す。登録データＤｍは、登録データ名ＤＮＡＭＥ、住所ＡＤＲ、電話番号ＴＥＬ、位置情報（地図情報へのリンク）ＬＩＮＫで構成されている。登録データ名ＤＮＡＭＥは、例えば、登録情報がレストラン情報であればレストランの名称、友人宅の情報であれば友人の氏名などであってもよい。住所ＡＤＲは、その地点の住所、電話番号ＴＥＬは、その地点にある施設の電話番号であってもよい。位置情報ＬＩＮＫは、この登録情報が選択されたときに、ナビゲーション上の位置を表示するためのリンク情報であってもよい。
【００２９】
図３から図７までに示したデータ構造により、登録データ群ファイル４２０単位で、ユーザが登録した登録情報を他の機器でも読み出して表示することが可能か否かを設定することができる。
【００３０】
図８は、本実施の形態のデータ管理方法の手順を示すフローチャートである。登録情報受付部３０がユーザから登録情報を受け付けると（Ｓ１０）、登録部３１は、登録データ群ファイル名の入力を受け付けて登録データ群ファイルを新規に作成し（Ｓ１２）、１番目の登録データとして受け付けた登録情報を登録する（Ｓ１４）。登録部３１は、更に、登録情報管理ファイル４１０に新規に作成した登録データ群ファイル名Ｆｎを追加する（Ｓ１６）。共有管理部３２は、登録情報を他の装置でも読み出し可能として共有するか否かをユーザから受け付け（Ｓ１８）、共有しない、すなわちこの装置にバインドする場合は（Ｓ１８のＮ）、登録情報管理ファイル４１０の機器バインド情報ＢＩｎの機器バインドフラグＢＦに「１」を登録するとともに（Ｓ２０）、ＲＯＭ２８から読み出した機器ＩＤをバインド機器ＩＤ（ＢＩＤ）に登録する（Ｓ２２）。共有する場合は（Ｓ１８のＹ）、機器バインドフラグＢＦに「０」を登録する（Ｓ２４）。
【００３１】
図９は、データ管理装置１がリムーバブルＨＤＤユニット２００に格納された登録情報の一覧を表示する手順を示すフローチャートである。読み出し要求受付部３３がユーザから登録情報一覧の表示要求を受け付けると（Ｓ３０）、判定部３４がＲＯＭ２８から自装置の機器ＩＤを取得し（Ｓ３２）、登録情報読み出し部３５がリムーバブルＨＤＤユニット２００から登録情報管理ファイル４１０を取得する（Ｓ３４）。判定部３４は、まず制御変数ａに１をセットし（Ｓ３６）、登録情報管理ファイル４１０のａ番目の機器バインド情報ＢＩaの機器バインドフラグＢＦを確認する（Ｓ３８）。機器バインドフラグＢＦが「０」であれば（Ｓ３８のＮ）、ａ番目の登録データ群ファイル４２０は、記録した装置以外の装置でも読み出しが許可されているので、ａ番目の登録データ群ファイル名Ｆａを表示する（Ｓ４２）。機器バインドフラグＢＦが「１」であれば（Ｓ３８のＹ）、判定部３４は、バインド機器ＩＤ（ＢＩＤ）に記録されている機器ＩＤと、ＲＯＭ２８から取得した自装置の機器ＩＤを比較する（Ｓ４０）。両者が一致した場合は（Ｓ４０のＹ）、ａ番目の登録データ群ファイル４２０を登録したのは自装置であるから、ａ番目の登録データ群ファイル名Ｆａを表示する（Ｓ４２）。両者が一致しない場合は（Ｓ４０のＮ）、ａ番目の登録データ群ファイル４２０を登録したのは他装置であり、本装置では読み出しが禁止されているので、ａ番目の登録データ群ファイル名Ｆａを表示しない。制御変数ａが総登録データ群ファイル数ＮＯＦ（ここではＮ）に達していなければ（Ｓ４４のＮ）、制御変数ａをインクリメントして（Ｓ４６）、Ｓ３８に戻り、次の登録データ群ファイル４２０の判定に移る。全ての登録データ群ファイル４２０の判定が終わると（Ｓ４４のＹ）、登録情報一覧が表示され、処理を終了する。この後に、ユーザが、ある登録データ群ファイル４２０を選択し、その中の登録データ群から任意の登録データを選択することにより、表示パネル２４に登録データの情報が表示されることになる。
【００３２】
図１０は、機器にバインドされた登録データ群ファイル４２０の機器バインドを解除する手順を示すフローチャートである。この処理は、新しいナビゲーション装置１を購入した場合などに、新しいナビゲーション装置１にリムーバブルＨＤＤユニット２００を接続して利用するために、それまで使用していたナビゲーション装置１のバインドを解除し、新しいナビゲーション装置１で新たに機器バインドする際などに使用することを想定している。
【００３３】
読み出し要求受付部３３がユーザから登録情報の機器バインドの解除要求を受け付けると（Ｓ５０）、判定部３４がＲＯＭ２８から自装置の機器ＩＤを取得し（Ｓ５２）、登録情報読み出し部３５がリムーバブルＨＤＤユニット２００から登録情報管理ファイル４１０を取得する（Ｓ５４）。判定部３４は、まず制御変数ａに１をセットし（Ｓ５６）、登録情報管理ファイル４１０のａ番目の機器バインド情報ＢＩaの機器バインドフラグＢＦを確認する（Ｓ５８）。機器バインドフラグＢＦが「０」であれば（Ｓ５８のＮ）、ａ番目の登録データ群ファイル４２０は、機器にバインドされていないので、機器バインド解除は必要ない。機器バインドフラグＢＦが「１」であれば（Ｓ５８のＹ）、判定部３４は、バインド機器ＩＤ（ＢＩＤ）に記録されている機器ＩＤと、ＲＯＭ２８から取得した自装置の機器ＩＤを比較する（Ｓ６０）。両者が一致した場合は（Ｓ６０のＹ）、ａ番目の登録データ群ファイル４２０は自装置にバインドされているので、ａ番目の機器バインド情報ＢＩａの機器バインドフラグＢＦを「０」に変更し、機器バインドを解除する（Ｓ６２）。両者が一致しない場合は（Ｓ６０のＮ）、ａ番目の登録データ群ファイル４２０を登録したのは他装置であり、他装置にバインドされているので、機器バインドを解除することはできない。制御変数ａが総登録データ群ファイル数ＮＯＦ（ここではＮ）に達していなければ（Ｓ６４のＮ）、制御変数ａをインクリメントして（Ｓ６６）、Ｓ５８に戻り、次の登録データ群ファイル４２０の判定に移る。全ての登録データ群ファイル４２０の判定が終わると（Ｓ６４のＹ）、処理を終了する。
【００３４】
（第２の実施の形態）
第１の実施の形態では、リムーバブルＨＤＤユニット２００に格納されている登録情報の読み出しの許否の判定をアプリケーションレベルで実施した。この方式では、ナビゲーション装置１を用いて、リムーバブルＨＤＤユニット２００に格納されたデータを読み出すときは、読み出しの許否が適切に判定されるが、リムーバブルＨＤＤユニット２００を接続可能で、データの読み出しの許否を判定する機能を有しない装置を用いてリムーバブルＨＤＤユニット２００に格納されたデータを読み出すと、他装置による読み出しが禁止された登録情報も読み出されてしまう可能性がある。したがって、本実施の形態では、登録情報を更に適切に保護するために、登録情報を暗号鍵で暗号化するとともに、暗号鍵を機器ＩＤなどで暗号化するなど機器に紐付けして記録する技術について説明する。
【００３５】
図１１は、本実施の形態に係るナビゲーション装置の構成を示す。本実施の形態のナビゲーション装置１は、図１に示した第１の実施の形態のナビゲーション装置１の構成に加えて、暗号／復号モジュール１１９を更に備える。暗号／復号モジュール１１９は、ライセンス生成部１０７、ライセンス判読部１０８、コンテンツ暗号部１０４、コンテンツ復号部１１１、及び暗号エンジン１０３を含む。その他の構成及び動作は、第１の実施の形態と同様である。
【００３６】
暗号／復号モジュール１１９は、登録情報などのコンテンツデータを暗号鍵で暗号化するとともに、暗号鍵をナビゲーション装置１に紐付けした状態でリムーバブルＨＤＤユニット２００に記録する。ナビゲーション装置１に紐付けするとは、ナビゲーション装置１の機器ＩＤ、ナビゲーション装置１を構成する半導体部品などに埋め込まれているデバイスＩＤ、ナビゲーション装置１にインストールされているＯＳなどのソフトウェアのプログラムＩＤ、暗号処理にて使用する埋め込み型の秘密鍵など、ナビゲーション装置１の機能単位を特定できる識別データを用いないと、コンテンツ鍵を取り出すことができず、暗号化コンテンツデータを復号できないということを意味する。
【００３７】
本実施の形態のリムーバブルＨＤＤユニット２００は、データを保持する記憶媒体だけでなく、ナビゲーション装置１などのホスト装置と記憶媒体との間でのデータの入出力を制御するコントローラなどの構成を備えるドライブ一体型の可搬型ストレージデバイスである。本実施の形態では、このようなストレージデバイスとして、可搬型ハードディスクドライブを例にとって説明する。なお、リムーバブルＨＤＤユニット２００は、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤなどにより実現されてもよい。
【００３８】
本実施の形態のリムーバブルＨＤＤユニット２００は、複数のホスト装置に接続することが可能であり、たとえば、所有者以外の第三者のホスト装置に接続され、記録されたデータが読み出される可能性もある。このリムーバブルＨＤＤユニット２００に、ユーザの登録情報などの秘匿すべきデータを記録することを想定したとき、それらの秘匿データが外部に漏洩することを防ぐためには、リムーバブルＨＤＤユニット２００自身にデータを適切に保護するための構成を設け、十分な耐タンパ機能を持たせることが好ましい。
【００３９】
このような観点から、本実施の形態のリムーバブルＨＤＤユニット２００は、ホスト装置との間で秘匿データを入出力するときに、その秘匿データを暗号化してやり取りするための構成を備える。また、秘匿データを格納するために、通常の記憶領域とは異なる機密データ記憶領域を設け、その機密データ記憶領域はリムーバブルＨＤＤユニット２００内に設けられた暗号エンジンを介さないとアクセスできないように構成する。この暗号エンジンは、正当な権限を有すると検証されたホスト装置のみと秘匿データの入出力を行う。以下、このようなデータ保護機能を「セキュア機能」ともいう。上記の構成および機能により、リムーバブルＨＤＤユニット２００に記録された秘匿データを適切に保護することができる。
【００４０】
リムーバブルＨＤＤユニット２００のリムーバブルメディアとしての特徴を最大限に生かすため、通常のデータについては、セキュア機能に非対応のホスト装置でも入出力可能とするのが好ましい。そのため、本実施の形態のリムーバブルＨＤＤユニット２００は、従来のハードディスクとの互換性を保つべく、ＡＮＳＩ（American National Standards Institute）の標準規格であるＡＴＡ（AT Attachment）に対応しており、上述のセキュア機能は、ＡＴＡの拡張命令として実現される。
【００４１】
ユーザから受け付けた登録情報をリムーバブルＨＤＤユニット２００に記録する際に、登録情報自身を秘匿データとして扱ってもよいが、本実施の形態では、登録情報を暗号化し、暗号化された登録情報自身は、リムーバブルＨＤＤユニット２００に通常のデータとして記録する。そして、暗号化された登録情報を復号するためのコンテンツ鍵と、コンテンツの読み出し制御や、ライセンスの利用、移動、複製に関する制御に関する情報（以下、「利用情報」と称す）を含むデータ（以下、「ライセンスデータ」と称す）を、秘匿データとして上述のセキュア機能を用いて入出力を行う。これにより、十分な耐タンパ性を維持しつつ、データの入出力を簡略化し、処理の高速化および消費電力の低減を図ることができる。
【００４２】
なお、以下においては、ナビゲーション装置１などのホスト装置がリムーバブルＨＤＤユニット２００に対して発行する命令のうち、セキュア機能のための拡張命令を「セキュアコマンド」とも呼び、その他の命令を「通常コマンド」とも呼ぶ。
【００４３】
ライセンス生成部１０７は、登録情報を暗号化するためのコンテンツ鍵を生成する。また、登録情報に関する利用情報を生成する。ライセンス生成部１０７は、生成したコンテンツ鍵と利用情報からライセンスデータを生成する。生成されたコンテンツ鍵はコンテンツ暗号部１０４へ伝達される。また、生成されたライセンスデータは暗号エンジン１０３へ伝達され、暗号エンジン１０３を介してリムーバブルＨＤＤユニット２００に記録される。
【００４４】
コンテンツ暗号部１０４は、ライセンス生成部１０７から伝達されたコンテンツ鍵を用いて、登録データ群ファイル４２０を暗号化する。暗号化された登録データ群ファイル４２０は、データバス１１０及びストレージインタフェース１０２を介して、通常コマンドによりリムーバブルＨＤＤユニット２００に記録される。
【００４５】
暗号エンジン１０３は、ライセンスデータをリムーバブルＨＤＤユニット２００との間で入出力するために、リムーバブルＨＤＤユニット２００との間で暗号通信の制御を行う。暗号エンジン１０３の構成及び動作の詳細については後述する。
【００４６】
ライセンス判読部１０８は、リムーバブルＨＤＤユニット２００に記録されたライセンスデータを取得して判読し、コンテンツ鍵と利用情報を取得する。ナビゲーション装置１において登録情報を表示するために登録データ群ファイル４２０を復号するときには、ライセンス判読部１０８は、後述する「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」等の利用情報を解析して、コンテンツ鍵をコンテンツ復号部１１１に伝達する。
【００４７】
コンテンツ復号部１１１は、リムーバブルＨＤＤユニット２００から取得した暗号化された登録データ群ファイル４２０を、ライセンス判読部１０８から取得したコンテンツ鍵で復号する。
【００４８】
図１２は、ライセンス生成部１０７の内部構成を示す。ライセンス生成部１０７は、乱数生成部１６１、ＩＤ整形部１６２、コンテンツ鍵暗号部１６３、ライセンスデータフォーマッタ１６４、及びスイッチ１６５を含む。
【００４９】
乱数生成部１６１は、コンテンツ鍵Ｋｃとして用いられる乱数を発生し、コンテンツ鍵暗号部１６３、コンテンツ暗号部１０４、及びスイッチ１６５へ伝達する。ＩＤ整形部１６２は、ＲＯＭ２８からナビゲーション装置１の機器ＩＤを取得し、コンテンツ鍵暗号部１６３においてコンテンツ鍵を暗号化するための暗号鍵として利用可能な形式に整形する。機器ＩＤは、ナビゲーション装置１のＢＩＯＳ領域に固定的に記録されていてもよい。また、機器ＩＤに代えて、ナビゲーション装置１のユーザのＩＤ、ナビゲーション装置１において動作するＯＳやアプリケーションなどのプログラムのＩＤ、リムーバブルＨＤＤユニット２００の機器ＩＤなどを用いてもよい。要は、登録情報を読み出す権利を有するユーザ又は装置のみが知りうる情報であればよい。
【００５０】
ＩＤ整形部１６２は、コンテンツ鍵暗号部１６３が採用する暗号方式における暗号鍵のビット長に合わせて、取得した機器ＩＤを整形する。例えば、機器ＩＤのビット数が暗号鍵のビット長よりも少ない場合は、０などでパディングしてもよい。逆に、機器ＩＤのビット数が暗号鍵のビット長よりも多い場合は、先頭から順に必要なビット長を取り出してもよいし、末尾から順に必要なビット長を取り出してもよい。
【００５１】
コンテンツ鍵暗号部１６３は、乱数生成部１６１から伝達されたコンテンツ鍵Ｋｃを、ＩＤ整形部１６２から伝達された暗号鍵で暗号化する。コンテンツ鍵暗号部１６３における暗号方式は任意でよく、例えばＡＥＳ（Advanced Encryption Standard）方式などであってもよい。ＡＥＳの鍵長は、１２８、１９２、２５６ビットのいずれかであってもよく、ＩＤ整形部１６２は、コンテンツ鍵暗号部１６３が必要とする鍵長に機器ＩＤを整形する。コンテンツ鍵暗号部１６３は、コンテンツ鍵Ｋｃと機器ＩＤの排他的論理和などを演算することにより、暗号化コンテンツ鍵を生成してもよい。暗号化されたコンテンツ鍵は、スイッチ１６５へ伝達される。
【００５２】
スイッチ１６５は、コントローラ１０１の共有管理部３２から伝達される共有情報に応じて切り替えられる。登録データ群ファイル４２０を機器にバインドする場合は、コンテンツ鍵暗号部１６３から出力される、暗号化されたコンテンツ鍵がライセンスデータフォーマッタ１６４に伝達されるようにスイッチ１６５が切り替えられる。登録データ群ファイル４２０を機器にバインドしない場合は、乱数生成部１６１から出力されるコンテンツ鍵がライセンスデータフォーマッタ１６４に伝達されるようにスイッチ１６５が切り替えられる。
【００５３】
ＡＥＳは共通鍵暗号方式であるから、暗号化コンテンツ鍵を復号するためには、機器ＩＤを取得してＩＤ整形部１６２と同様に整形し、同一の共通鍵を得ればよい。したがって、ナビゲーション装置１は、自身の機器ＩＤを用いて暗号化コンテンツ鍵を復号することができ、復号したコンテンツ鍵により、暗号化された登録データ群ファイル４２０を復号して表示することができる。しかし、他の装置は、ナビゲーション装置１の機器ＩＤを取得することができないので、たとえ暗号化コンテンツ鍵を複製したとしても、それを復号することはできない。このように、機器ＩＤを利用してコンテンツ鍵を暗号化することにより、コンテンツ鍵はその装置に束縛され、その装置でしか利用することができないようになる。
【００５４】
なお、上記の例では、乱数生成部１６１が生成した乱数をコンテンツ鍵Ｋｃとしたが、別の例では、乱数生成部１６１が生成した乱数に対して、ＩＤ整形部１６２が整形した機器ＩＤを用いてコンテンツ鍵暗号部１６３により暗号演算を行ったものをコンテンツ鍵Ｋｃとしてもよい。この場合は、乱数生成部１６１が生成した乱数をライセンスデータに記録しておき、読み出し時には、ライセンスデータに格納された乱数と機器ＩＤから同様の演算によりコンテンツ鍵Ｋｃを得る。この場合も、コンテンツ鍵Ｋｃを得るには機器ＩＤが必要となる。
【００５５】
ライセンスデータフォーマッタ１６４は、共有管理部３２などから伝達された利用情報と、コンテンツ鍵暗号部１６３から伝達された暗号化コンテンツ鍵とを、所定のフォーマットに整形して、ライセンスデータを生成する。
【００５６】
図１３は、ライセンスデータのデータ構造を示す。ライセンスデータは、ライセンスデータのＩＤを格納する「ＬＩＤ」欄、ライセンスデータの種別を格納する「Ｔｙｐｅ」欄、コンテンツ鍵が機器ＩＤなどに紐付けられているか否かを示す「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」欄、コンテンツ鍵を格納する「Ｋｃ」欄、ブロック暗号の初期ベクトルを格納する「Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ」欄、ライセンスデータの利用制御情報を格納する「Ａｃｃｅｓｓ  Ｃｏｎｄｉｔｉｏｎ」欄を含む。
【００５７】
「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」欄には、装置に束縛されている、すなわち機器ＩＤにより暗号化されていることを示す「１（ｂｉｎｄ）」、もしくは、装置に束縛されていないことを示す「０（ｎｏｔ  ｂｉｎｄ）」が格納される。すなわち、他装置による登録データの読み出しが禁止される場合は「１」が、許可される場合は「０」が格納される。
【００５８】
「Ｋｃ」欄には、「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」が「１」の場合は、機器ＩＤに紐付けされたコンテンツ鍵（ｂｉｎｄｅｄ  Ｋｃ）が格納され、「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」が「０」の場合は、コンテンツ鍵Ｋｃが格納される。本実施の形態においては、「ｂｉｎｄｅｄ  Ｋｃ」として、機器ＩＤを用いて暗号化されたコンテンツ鍵を採用しているが、コンテンツ鍵と機器ＩＤとのビット単位の排他的論理和などの簡易的な方法により生成されたデータなどであってもよい。つまり、「ｂｉｎｄｅｄ  Ｋｃ」と機器ＩＤとにより、コンテンツ鍵Ｋｃが一意に決まりさえすればよい。
【００５９】
図１４は、ライセンス判読部１０８の内部構成を示す。ライセンス判読部１０８は、形式解析部１７１、ＩＤ整形部１７２、コンテンツ鍵復号部１７３、及びスイッチ１７５を含む。
【００６０】
形式解析部１７１は、暗号エンジン１０３を介してリムーバブルＨＤＤユニット２００から読み出されたライセンスデータを取得し、その形式を解析する。形式解析部１７１は、図１３に示したライセンスデータの各フィールドの値を解析し、利用情報やコンテンツ鍵を抽出して出力するとともに、各フィールドの値に応じてスイッチ１７５を制御する。形式解析部１７１により抽出されたコンテンツ鍵は、暗号化されていればコンテンツ鍵復号部１７３へ、暗号化されていなければスイッチ１７５を介してコンテンツ復号部１１１へ出力される。
【００６１】
ＩＤ整形部１７２は、ＩＤ整形部１６２が生成した暗号鍵により暗号化されたコンテンツ鍵を復号するための復号鍵を生成する。前述したように、ＩＤ整形部１６２がナビゲーション装置１の機器ＩＤを整形して共通鍵方式の暗号鍵を生成した場合には、ＩＤ整形部１７２は、ナビゲーション装置１の機器ＩＤをＲＯＭ２８から取得し、ＩＤ整形部１６２と同様の方法で整形して、同一の共通鍵を生成する。コンテンツ鍵復号部１７３は、形式解析部１７１から伝達された暗号化されたコンテンツ鍵を、ＩＤ整形部１７２から伝達された復号鍵で復号する。
【００６２】
登録データ群ファイル４２０を復号する時、スイッチ１７５の上側の端子には、形式解析部１７１から暗号化されていないコンテンツ鍵Ｋｃが出力され、スイッチ１７５の下側の端子には、コンテンツ鍵復号部１７３から復号されたコンテンツ鍵Ｋｃが出力される。形式解析部１７１は、ライセンスデータの「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」欄を参照して、コンテンツ鍵が暗号化されているか否かを判定し、暗号化されていればスイッチ１７５を上側の端子に、暗号化されていなければ下側の端子につなぐ。これにより、スイッチ１７５を介して、コンテンツ鍵Ｋｃがコンテンツ復号部１１１に出力される。
【００６３】
図１２及び図１４に示した例では、ライセンスデータの生成時に、機器ＩＤをもとに生成された共通鍵によりコンテンツ鍵Ｋｃを暗号化して「ｂｉｎｄｅｄ  Ｋｃ」を生成し、ライセンスデータの利用時には、機器ＩＤをもとに生成された共通鍵により「ｂｉｎｄｅｄ  Ｋｃ」を復号してコンテンツ鍵Ｋｃを得た。別の例として、ライセンス生成部１０７のコンテンツ鍵暗号部１６３は、コンテンツ鍵Ｋｃに機器ＩＤなどを用いて所定の演算を施して、コンテンツ鍵Ｋｃを変換したデータを「ｂｉｎｄｅｄ  Ｋｃ」としてもよい。演算は、例えば、ビット単位で排他的論理和、論理和、論理積、否定論理和、否定論理積をとる演算などであってもよい。この場合、ライセンス判読部１０８のコンテンツ鍵復号部１７３は、ライセンスデータから得られる「ｂｉｎｄｅｄ  Ｋｃ」に、機器ＩＤを用いて、コンテンツ鍵暗号部１６３において施された演算の逆演算を施すことによりコンテンツ鍵Ｋｃを得ることができる。
【００６４】
図１５は、リムーバブルＨＤＤユニット２００の内部構成を示す。リムーバブルＨＤＤユニット２００は、主に、コントローラ２０１、ストレージインタフェース２０２、暗号エンジン２０３、耐タンパ記憶部２０４、通常データ記憶部２０５、及びそれらを電気的に接続するデータバス２１０を備える。
【００６５】
ストレージインタフェース２０２は、ナビゲーション装置１とのデータの入出力を制御する。暗号エンジン２０３は、コンテンツ鍵を含むライセンスデータなどの秘匿データをナビゲーション装置１との間で入出力するための暗号通信の制御を行う。通常データ記憶部２０５は、暗号化されたコンテンツや通常のデータなどを記録する通常記憶領域である。耐タンパ記憶部２０４は、コンテンツ鍵を含むライセンスデータなどの秘匿データを記録する機密データ記憶領域である。通常データ記憶部２０５は、外部からの直接アクセスによりデータの入出力が行われるが、耐タンパ記憶部２０４は、暗号エンジン２０３を介さないとデータの入出力ができないように構成される。コントローラ２０１は、リムーバブルＨＤＤユニット２００の構成要素を統括的に制御する。
【００６６】
つづいて、ライセンスデータをリムーバブルＨＤＤユニット２００に記録するときの暗号通信について詳述する。以下に詳述するように、ライセンスデータを記録するたびに、記録先のストレージデバイスを認証し、正当なストレージデバイスのみにライセンスデータを記録するので、記録先がリムーバブルなストレージデバイスであっても、不正な複製を抑止することができる。
【００６７】
ここで、本実施の形態で用いる鍵について説明する。本実施の形態では、鍵はすべて大文字の「Ｋ」から始まる文字列として表記する。また、第２文字が小文字の「ｃ」、「ｓ」、「ｂ」のいずれかである場合は、対称鍵（共通鍵）を示す。詳しくは、「ｃ」はチャレンジ鍵であり、ライセンスデータの送信元で生成されるテンポラルな対称鍵を示す。「ｓ」はセッション鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。「ｂ」はバス鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。また、第２文字が大文字の「Ｐ」である場合は、公開鍵暗号方式の公開鍵を示す。この鍵には、対応する秘密鍵が必ず存在し、この秘密鍵は公開鍵の表記から第２文字の大文字の「Ｐ」を除く表記となる。
【００６８】
鍵を示す文字列が小文字の「ｄ」を含む場合は、装置のグループ毎に与えられた鍵であることを表す。また鍵を示す文字列が小文字の「ｐ」を含む場合は、装置毎に与えられた鍵であることを表す。それぞれ、公開鍵と秘密鍵の対として与えられ、グループ毎に与えられた公開鍵ＫＰｄｘは、電子署名付きの公開鍵証明書Ｃ［ＫＰｄｘ］として与えられている。
【００６９】
また、鍵を示す文字列の最後に記載される文字、たとえば、公開鍵ＫＰｄ２の「２」は、その鍵が与えられる暗号エンジンを識別するための記号である。本実施の形態では、提供先が明確な場合には、数字「１」、「２」、「３」と表記し、当該暗号エンジン以外から提供される鍵であって提供先が不明な場合あるいは特定しない場合には、「ｘ」、「ｙ」などの英文字によって表記する。本実施の形態では、ライセンスデータを書き込む時のナビゲーション装置１の暗号エンジン１０３に対しては識別記号として「１」、リムーバブルＨＤＤユニット２００の暗号エンジン２０３については識別記号として「２」、ライセンスデータを読み出す時のナビゲーション装置１の暗号エンジン１０３に対しては識別記号として「３」を、それぞれ使用する。また、ライセンスデータを書き込む時のナビゲーション装置１を「ライセンス記録装置１００」と称し、ライセンスデータを読み出す時のナビゲーション装置１を「ライセンス利用装置３００」と称する。
【００７０】
図１６は、図１１に示したナビゲーション装置１の暗号エンジン１０３の内部構成を示す。図１６には、ライセンスデータをリムーバブルＨＤＤユニット２００へ送信するときに使用される構成のみを示している。ライセンスデータをリムーバブルＨＤＤユニット２００から受信するときに使用される構成は図１７に示す。暗号エンジン１０３は、証明書検証部１２０、乱数発生部１２１、第１暗号部１２２、第１復号部１２３、第２復号部１２４、第２暗号部１２５、第３復号部１２６、第３暗号部１２７、第４暗号部１２８、証明書出力部１２９、制御部１３０、ログ記憶部１３１、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス１３３を備える。
【００７１】
証明書検証部１２０は、リムーバブルＨＤＤユニット２００から取得した証明書Ｃ［ＫＰｄ２］を検証する。証明書Ｃ［ＫＰｄ２］は、公開鍵ＫＰｄ２を含む平文の情報（以下、「証明書本体」と称す）と、証明書本体に対して付される電子署名からなる。この電子署名は、証明書本体に対してハッシュ関数による演算（以下、この演算処理を「ハッシュ演算」と称す）を施した結果を、第三者機関である認証局（図示せず）のルート鍵Ｋａによって暗号化したデータである。ルート鍵Ｋａは、認証局によって厳重に管理されている非公開な鍵であり、認証局の秘密鍵となる。証明書検証部１２０は、このルート鍵Ｋａと対をなす検証鍵ＫＰａを保持している。この検証鍵ＫＰａは証明書の正当性を検証する公開鍵である。証明書の検証は、証明書の正当性と証明書の有効性によって判断する。
【００７２】
証明書の正当性の確認は、検証すべき証明書の証明書本体に対するハッシュ関数の演算結果と、検証鍵ＫＰａで電子署名を復号した結果を比較する処理であり、両者が一致したとき、正当であると判断する。証明書検証部１２０は、無効となった証明書のリストである証明書破棄リスト（Certificate Revocation List：ＣＲＬと呼ぶ）を保持し、このＣＲＬに検証すべき証明書が記載されていない場合に有効であると判断する。このように、証明書の正当性と有効性を判断し、正当な証明書を承認する処理を検証と称す。
【００７３】
証明書検証部１２０は、検証に成功すると、リムーバブルＨＤＤユニット２００の公開鍵ＫＰｄ２を取り出して第１暗号部１２２に伝達し、検証結果を通知する。検証に失敗した場合には、検証エラー通知を出力する。
【００７４】
証明書出力部１２９は、ライセンス記録装置１００の証明書Ｃ［ＫＰｄ１］を出力する。この証明書は、ライセンス記録装置１００の公開鍵ＫＰｄ１を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、リムーバブルＨＤＤユニット２００の証明書と同様に、認証局のルート鍵Ｋａにより暗号化される。
【００７５】
乱数発生部１２１は、リムーバブルＨＤＤユニット２００との間で暗号通信を行うために一時的に使用されるチャレンジ鍵Ｋｃ１、バス鍵Ｋｂ１を生成する。暗号通信を行う度に、乱数によりチャレンジ鍵Ｋｃ１を生成することで、チャレンジ鍵Ｋｃ１を見破られる可能性を最小限に抑えることができる。生成されたチャレンジ鍵Ｋｃ１は、第１暗号部１２２と第１復号部１２３に伝達され、バス鍵Ｋｂ１は、第２暗号部１２５及び第３復号部１２６に伝達される。
【００７６】
第１暗号部１２２は、リムーバブルＨＤＤユニット２００にチャレンジ鍵Ｋｃ１を通知するために、証明書検証部１２０により取り出されたリムーバブルＨＤＤユニット２００の公開鍵ＫＰｄ２でチャレンジ鍵Ｋｃ１を暗号化して、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を生成する。そして、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）は、証明書出力部１２９から出力された証明書Ｃ［ＫＰｄ１］と結合され、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］とされる。
【００７７】
ここで、記号「｜｜」は、データの連結を示し、Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］は、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）と証明書Ｃ［ＫＰｄ１］を並べて結合したデータ列を示す。また、Ｅは暗号化関数を示し、Ｅ（ＫＰｄ２，Ｋｃ１）は、公開鍵ＫＰｄ２でチャレンジ鍵Ｋｃ１を暗号化したものであることを示す。
【００７８】
第１復号部１２３は、チャレンジ鍵Ｋｃ１で暗号化されたデータを復号する。リムーバブルＨＤＤユニット２００が内部に個別かつ秘密裏に保持する秘密鍵Ｋｐ２と対をなす公開鍵ＫＰｐ２と、リムーバブルＨＤＤユニット２００を一意に識別できるユニークな識別情報ＤＩＤを暗号化した第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））がリムーバブルＨＤＤユニット２００から供給されるため、第１復号部１２３は、乱数発生部１２１が生成したチャレンジ鍵Ｋｃ１を用いて第２チャレンジ情報を復号して、暗号データＥ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を取り出す。
【００７９】
第２復号部１２４は、自身の公開鍵ＫＰｄ１で暗号化されたデータを、内部の秘密裏に保持する秘密鍵Ｋｄ１で復号する。第２復号部１２４は、第１復号部１２３から伝達された暗号データＥ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を復号し、リムーバブルＨＤＤユニット２００の公開鍵ＫＰｐ２と識別情報ＤＩＤを取り出す。
【００８０】
第２暗号部１２５は、リムーバブルＨＤＤユニット２００にバス鍵Ｋｂ１を通知するために、リムーバブルＨＤＤユニット２００の公開鍵ＫＰｐ２で暗号化して、暗号化バス鍵Ｅ（ＫＰｐ２，Ｋｂ１）を生成する。暗号化バス鍵は、コネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）として、リムーバブルＨＤＤユニット２００に提供される。
【００８１】
第３復号部１２６は、バス鍵Ｋｂ１で暗号化されたデータを復号する。リムーバブルＨＤＤユニット２００で発行されたセッション鍵Ｋｓ２は、セッション情報Ｅ（Ｋｂ１，Ｋｓ２）としてリムーバブルＨＤＤユニット２００から供給されるため、第３復号部１２６は、乱数発生部１２１が生成したバス鍵Ｋｂ１を用いてセッション情報を復号し、セッション鍵Ｋｓ２を取り出す。取り出されたセッション鍵Ｋｓ２は、第４暗号部１２８へ伝達される。
【００８２】
第３暗号部１２７は、ライセンス生成部１０７が生成したライセンスデータＬＩＣを取得し、そのライセンスデータＬＩＣをリムーバブルＨＤＤユニット２００の公開鍵ＫＰｐ２で暗号化し、Ｅ（ＫＰｐ２，ＬＩＣ）を生成する。そして、生成されたＥ（ＫＰｐ２，ＬＩＣ）は、第４暗号部１２８に伝達される。
【００８３】
第４暗号部１２８は、第３暗号部１２７から伝達されたＥ（ＫＰｐ２，ＬＩＣ）を、さらに、リムーバブルＨＤＤユニット２００で発行されたセッション鍵Ｋｓ２により暗号化し、暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を生成する。
【００８４】
ログ記憶部１３１は、第２復号部１２４から伝達されたリムーバブルＨＤＤユニット２００の識別情報ＤＩＤと、リムーバブルＨＤＤユニット２００に対して出力するライセンスデータＬＩＣと、これを記録予定のリムーバブルＨＤＤユニット２００のアドレスデータＡＤＲとを、関係付けて静的に記憶する。なお、ログ記憶部１３１に記憶されているライセンスデータＬＩＣは、所定の手続きを経たアクセスに対して、暗号化された状態でのみ出力される。
【００８５】
制御部１３０は、ライセンス記録装置１００のコントローラ１０１の指示に従って暗号エンジン１０３内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。なお、図１６では、制御部１３０による内部の各構成要素への制御を示す結線は省略されている。
【００８６】
図１６の如く、本実施の形態では、制御部１３０を介さないと、暗号エンジン１０３は外部とデータの交換ができない構成となっている。各構成要素を接続する形態については、種々考えられるが、本実施の形態では、乱数発生部１２１が生成するチャレンジ鍵Ｋｃ１、リムーバブルＨＤＤユニット２００から受け取ったセッション鍵Ｋｓ２、自身の秘密鍵Ｋｄ１などの暗号エンジン１０３内で使用される各鍵が、暗号エンジン１０３の外部に直接流出しないように構成している。これにより、暗号エンジン１０３内で使用される各鍵が、ライセンス記録装置１００の他の構成要素などを介して外部に漏洩することを防ぎ、セキュリティ性を向上させている。
【００８７】
図１７は、図１１に示したナビゲーション装置１の暗号エンジン１０３の内部構成を示す。図１７には、ライセンスデータをリムーバブルＨＤＤユニット２００から受信するときに使用される構成のみを示している。暗号エンジン１０３は、証明書出力部３２０、乱数発生部３２１、証明書検証部３２２、第１復号部３２３、第１暗号部３２４、第２暗号部３２５、第２復号部３２６、第３暗号部３２７、第３復号部３２８、第４復号部３２９、制御部３３０、ログ記憶部３３３、及びこれらの構成要素の少なくとも一部を電気的に接続するローカルバス３３４を備える。
【００８８】
証明書出力部３２０は、ライセンス利用装置３００の証明書Ｃ［ＫＰｄ３］を出力する。証明書は、証明書出力部３２０が保持してもよいし、図示しない証明書保持部に保持しておき、それを読み出してもよい。証明書は、ライセンス利用装置３００の公開鍵ＫＰｄ３を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、リムーバブルＨＤＤユニット２００の証明書と同様に、認証局のルート鍵Ｋａにより暗号化される。なお、証明書Ｃ［ＫＰｄ３］は、証明書Ｃ［ＫＰｄ１］と同一であってもよい。
【００８９】
乱数発生部３２１は、リムーバブルＨＤＤユニット２００との間で暗号通信を行うために一時的に使用されるセッション鍵Ｋｓ３を生成する。生成されたセッション鍵Ｋｓ３は、第３暗号部３２７、第３復号部３２８に伝達される。
【００９０】
証明書検証部３２２は、リムーバブルＨＤＤユニット２００の証明書Ｃ［ＫＰｄ２］の検証を行う。検証の詳細は、上述したとおりである。
【００９１】
第１復号部３２３は、公開鍵ＫＰｄ３によって暗号化されたデータを秘密鍵Ｋｄ３で復号する。再生時には、リムーバブルＨＤＤユニット２００で発行されたチャレンジ鍵Ｋｃ２は、ライセンス利用装置３００の公開鍵ＫＰｄ３により暗号化されてリムーバブルＨＤＤユニット２００から供給されるため、第１復号部３２３は、自身の秘密鍵Ｋｄ３によりこれを復号し、チャレンジ鍵Ｋｃ２を取り出す。取り出されたチャレンジ鍵Ｋｃ２は、第２暗号部３２５に伝達される。
【００９２】
第１暗号部３２４は、リムーバブルＨＤＤユニット２００の証明書Ｃ［ＫＰｄ２］から取り出された公開鍵ＫＰｄ２でデータの暗号化を行う。内部に秘密裏に保持するライセンス利用装置３００に固有の秘密鍵Ｋｐ３と対をなす公開鍵ＫＰｐ３をリムーバブルＨＤＤユニット２００に通知するために、暗号化固有公開鍵Ｅ（ＫＰｄ２，ＫＰｐ３）を生成する。生成した暗号化固有公開鍵Ｅ（ＫＰｄ２，ＫＰｐ３）は、第２暗号部３２５に伝達される。
【００９３】
第２暗号部３２５は、第１復号部３２３により取り出されたチャレンジ鍵Ｋｃ２で、データの暗号化を行う。第１暗号部３２４から伝達された暗号化固有公開鍵Ｅ（ＫＰｄ２，ＫＰｐ３）を暗号化して第２チャレンジ情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，ＫＰｐ３））を生成する。
【００９４】
第２復号部３２６は、公開鍵ＫＰｐ３で暗号化されたデータを復号する。リムーバブルＨＤＤユニット２００から提供されたコネクション情報Ｅ（ＫＰｐ３，Ｋｂ２｜｜ＤＩＤ）を、公開鍵ＫＰｐ３と対をなす秘密鍵Ｋｐ３で復号し、リムーバブルＨＤＤユニット２００で発行されたバス鍵Ｋｂ２と、ストレージデバイスを一意に特定できる識別情報ＤＩＤを取り出す。
【００９５】
第３暗号部３２７は、乱数発生部３２１で生成したセッション鍵Ｋｓ３をリムーバブルＨＤＤユニット２００に提供するために、第２復号部３２６で取り出したリムーバブルＨＤＤユニット２００が発行したバス鍵Ｋｂ２で暗号化して、セッション情報Ｅ（Ｋｂ２，Ｋｓ３）を生成する。
【００９６】
第３復号部３２８は、セッション鍵Ｋｓ３で暗号化されたデータを復号する。ライセンスデータＬＩＣは、公開鍵ＫＰｐ３およびセッション鍵Ｋｓ３により２重に暗号化された暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））としてリムーバブルＨＤＤユニット２００から供給されるため、第３復号部３２８は、乱数発生部３２１が生成するセッション鍵Ｋｓ３により復号を行い、その結果である暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を第４復号部３２９に伝達する。
【００９７】
第４復号部３２９は、公開鍵ＫＰｐ３で暗号化されたデータの復号を行う。公開鍵ＫＰｐ３と対をなす秘密鍵Ｋｐ３で、第３復号部３２８の復号結果である暗号化ライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を復号し、ライセンスデータＬＩＣを取り出す。
【００９８】
ログ記憶部３３３は、第２復号部３２６から伝達されたリムーバブルＨＤＤユニット２００の識別情報ＤＩＤ、およびリムーバブルＨＤＤユニット２００から受け取る予定のライセンスデータＬＩＣの識別情報ＬＩＤと当該ライセンスデータが格納されているリムーバブルＨＤＤユニット２００のアドレスデータＡＤＲを、関係付けて静的に記憶する。ライセンスデータＬＩＣが利用されると、当該ライセンスデータのＬＩＤおよびＡＤＲは削除される。
【００９９】
制御部３３０は、ライセンス利用装置３００のコントローラ１０１の指示に従って暗号エンジン１０３の内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。尚、図１７では、制御部３３０による内部の各構成要素への制御を示す結線は省略されている。
【０１００】
図１７に示す暗号エンジン１０３においても、各構成要素を接続する形態については、種々考えられるが、本実施の形態では、制御部３３０を介さないと、暗号エンジン１０３は外部とデータの交換ができない構成となっている。これにより、乱数発生部３２１が生成したセッション鍵Ｋｓ３、公開鍵と対をなしている秘密鍵Ｋｄ３およびＫｐ３、リムーバブルＨＤＤユニット２００から受け取ったバス鍵Ｋｂ２、チャレンジ鍵Ｋｃ２などの暗号エンジン１０３内で使用される鍵が外部に漏洩されることを防ぐ。
【０１０１】
図１８は、図１５に示したリムーバブルＨＤＤユニット２００の暗号エンジン２０３の内部構成を示す。暗号エンジン２０３は、制御部２２０、乱数発生部２２１、証明書出力部２２２、証明書検証部２２３、第１復号部２２４、第１暗号部２２５、第２暗号部２２６、第２復号部２２７、第３暗号部２２８、第３復号部２２９、第４復号部２３０、第４暗号部２３１、第５復号部２３２、第６復号部２３３、第５暗号部２３４、第７復号部２３５、第６暗号部２３６、第７暗号部２３７、及びこれらの構成要素の少なくとも一部を電気的に接続するローカルバス２４０を備える。
【０１０２】
制御部２２０は、リムーバブルＨＤＤユニット２００のコントローラ２０１の指示に従って暗号エンジン２０３の内部の構成の制御および外部の構成との間でデータの入出力を仲介する。
【０１０３】
乱数発生部２２１は、ナビゲーション装置１との間の暗号通信に一時的に使用されるセッション鍵Ｋｓ２、チャレンジ鍵Ｋｃ２、バス鍵Ｋｂ２を、乱数演算によって生成する。各鍵の用途については、追って説明する。
【０１０４】
証明書出力部２２２は、リムーバブルＨＤＤユニット２００の証明書Ｃ［ＫＰｄ２］を出力する。証明書は、証明書出力部２２２が保持してもよいし、リムーバブルＨＤＤユニット２００の所定の記憶領域、たとえば耐タンパ記憶部２０４に保持しておき、それを読み出してもよい。証明書は、リムーバブルＨＤＤユニット２００の公開鍵ＫＰｄ２を含む証明書本体と、証明書本体に付された電子署名とを含む。電子署名は、認証局のルート鍵Ｋａにより暗号化される。
【０１０５】
証明書検証部２２３は、外部から提供された証明書の検証を行う。具体的には、ナビゲーション装置１から取得した証明書Ｃ［ＫＰｄ１］およびＣ［ＫＰｄ３］を検証鍵ＫＰａにより検証する。検証の詳細は、上記のとおりである。
【０１０６】
第１復号部２２４は、自身の公開鍵ＫＰｄ２で暗号化されたデータを復号する。具体的には、記録時には、ライセンス記録装置１００で発行されたチャレンジ鍵Ｋｃ１が、リムーバブルＨＤＤユニット２００の公開鍵ＫＰｄ２で暗号化されてライセンス記録装置１００から供給されるため、これを自身の秘密鍵Ｋｄ２で復号し、チャレンジ鍵Ｋｃ１を取り出す。取り出されたチャレンジ鍵Ｋｃ１は、第２暗号部２２６に伝達される。
【０１０７】
第１暗号部２２５は、ライセンス記録装置１００の公開鍵ＫＰｄ１でデータを暗号化する。具体的には、リムーバブルＨＤＤユニット２００が個別に保持する公開鍵ＫＰｐ２とストレージデバイスを識別するための識別情報ＤＩＤとを結合した個別情報を暗号化した暗号化個別情報Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を生成する。ここで用いるライセンス記録装置１００の公開鍵ＫＰｄ１は、制御部２２０によってリムーバブルＨＤＤユニット２００の証明書Ｃ［ＫＰｄ１］内から取り出され、ローカルバス２４０を介して伝達される。
【０１０８】
第２暗号部２２６は、ライセンス記録装置１００が発行したチャレンジ鍵Ｋｃ１でデータを暗号化する。具体的には、第１暗号部２２５から受け取った暗号化個別情報Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）をチャレンジ鍵Ｋｃ１で暗号化し、第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を生成する。
【０１０９】
第２復号部２２７は、自身の公開鍵ＫＰｐ２で暗号化されたデータを復号する。第２復号部２２７は、ライセンス記録装置１００から提供されるコネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）を、公開鍵ＫＰｐ２と対をなす秘密鍵Ｋｐ２で復号し、取り出したバス鍵Ｋｂ１を第３暗号部２２８に伝達する。
【０１１０】
第３暗号部２２８は、バス鍵Ｋｂ１でデータを暗号化する。具体的には、乱数発生部２２１が生成したセッション鍵Ｋｓ２をバス鍵Ｋｂ１で暗号化し、セッション情報Ｅ（Ｋｂ１，Ｋｓ２）を生成する。
【０１１１】
第３復号部２２９は、乱数発生部２２１が生成したセッション鍵Ｋｓ２で暗号化されたデータを復号する。具体的には、ライセンス記録装置１００から、ライセンスデータＬＩＣを、公開鍵ＫＰｐ２およびセッション鍵Ｋｓ２により２重に暗号化されたＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））として受け取り、これをセッション鍵Ｋｓ２により復号し、結果を第４復号部２３０に伝達する。
【０１１２】
第４復号部２３０は、自身の公開鍵ＫＰｐ２で暗号化されたデータを復号する。第３復号部２２９から伝達されるライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を、公開鍵ＫＰｐ２と対をなす自身の秘密鍵Ｋｐ２で復号し、ライセンスデータＬＩＣを取り出す。
【０１１３】
取り出されたライセンスデータＬＩＣは、ローカルバス２４０、制御部２２０を介して、データバス２１０に供給され、コントローラ２０１の指示に従って、耐タンパ記憶部２０４に記憶される。
【０１１４】
第４暗号部２３１は、ライセンス利用装置３００の公開鍵ＫＰｄ３でデータを暗号化する。具体的には、ライセンス利用装置３００に対してライセンスデータＬＩＣを提供する場合、ライセンス利用装置３００から受け取った証明書Ｃ［ＫＰｄ３］から取り出された公開鍵ＫＰｄ３で、乱数発生部２２１が発行するチャレンジ鍵Ｋｃ２を暗号化し、暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）を生成する。生成された暗号化チャレンジ鍵Ｅ（ＫＰｄ３，Ｋｃ２）は、ローカルバス２４０を介して制御部２２０へ伝達される。制御部２２０では、これと証明書出力部２２２から出力される自身の証明書Ｃ［ＫＰｄ２］とを結合して、第１チャレンジ情報Ｅ（ＫＰｄ３，Ｋｃ２）｜｜Ｃ［ＫＰｄ２］を生成し、ライセンス利用装置３００に出力する。
【０１１５】
第５復号部２３２は、乱数発生部２２１が発行したチャレンジ鍵Ｋｃ２で暗号化されたデータを復号する。ライセンス利用装置３００から受け取った第２チャレンジ情報Ｅ（Ｋｃ２，Ｅ（ＫＰｄ２，ＫＰｐ３））を、乱数発生部２２１が生成したチャレンジ鍵Ｋｃ２で復号し、取り出された暗号化個別公開鍵Ｅ（ＫＰｄ２，ＫＰｐ３）は第６復号部２３３に伝達される。
【０１１６】
第６復号部２３３は、自身の公開鍵ＫＰｄ２で暗号化されたデータを復号する。具体的には、第５復号部２３２から伝達された暗号化個別公開鍵Ｅ（ＫＰｄ２，ＫＰｐ３）を、自身の秘密鍵Ｋｄ２で復号し、ライセンス利用装置３００の公開鍵ＫＰｐ３を取り出す。取り出された公開鍵ＫＰｐ３は、第５暗号部２３４と第６暗号部２３６に伝達される。
【０１１７】
第５暗号部２３４は、ライセンス利用装置３００の公開鍵ＫＰｐ３でデータを暗号化する。乱数発生部２２１が生成したバス鍵Ｋｂ２と自身の識別情報ＤＩＤを結合し、このデータを暗号化して、コネクション情報Ｅ（ＫＰｐ３，Ｋｂ２｜｜ＤＩＤ）を生成する。
【０１１８】
第７復号部２３５は、バス鍵Ｋｂ２で暗号化されたデータを復号する。ライセンス利用装置３００から提供されたセッション情報Ｅ（Ｋｂ２，Ｋｓ３）を復号して、ライセンス利用装置３００が発行したセッション鍵Ｋｓ３を取り出し、取り出されたセッション鍵Ｋｓ３は、第７暗号部２３７に伝達される。
【０１１９】
第６暗号部２３６は、ライセンス利用装置３００の公開鍵ＫＰｐ３でデータを暗号化する。ライセンス利用装置３００に対してライセンスデータを提供する場合、ライセンス利用装置３００から受け取った公開鍵ＫＰｐ３で、ライセンスデータＬＩＣを暗号化する。このライセンスデータＬＩＣは、コントローラ２０１の指示に従って、耐タンパ記憶部２０４から読み出され、データバス２１０、制御部２２０およびローカルバス２４０を介して第６暗号部２３６に伝達される。ここで、暗号化されたライセンスデータＥ（ＫＰｐ３，ＬＩＣ）は、第７暗号部２３７に伝達される。
【０１２０】
第７暗号部２３７は、ライセンス利用装置３００が発行したセッション鍵Ｋｓ３でデータを暗号化する。具体的には、セッション鍵Ｋｓ３で、第６暗号部２３６において暗号化されたライセンスデータＥ（ＫＰｐ３，ＬＩＣ）を、さらに暗号化し、暗号化ライセンスデータＥ（Ｋｓ３，Ｅ（ＫＰｐ３，ＬＩＣ））を生成する。
【０１２１】
図１９及び図２０は、ライセンス記録装置１００がリムーバブルＨＤＤユニット２００にライセンスデータＬＩＣを記録するまでの手順を示す。この記録処理では、ライセンス記録装置１００の暗号エンジン１０３とリムーバブルＨＤＤユニット２００の暗号エンジン２０３との間で暗号通信路が構築され、その暗号通信路によってライセンスデータＬＩＣがライセンス記録装置１００からリムーバブルＨＤＤユニット２００に送信される。図は、ライセンス記録装置１００の暗号エンジン１０３、ライセンス記録装置１００のコントローラ１０１、リムーバブルＨＤＤユニット２００の暗号エンジン２０３の処理を示している。
【０１２２】
まず、ライセンス記録装置１００のコントローラ１０１は、リムーバブルＨＤＤユニット２００に対して証明書出力命令を発行する（Ｓ１０２）。コントローラ２０１は、証明書出力命令を正常に受理する（Ｓ１０４）と、暗号エンジン２０３に証明書の出力を命じ、暗号エンジン２０３から証明書Ｃ［ＫＰｄ２］を読み出してコントローラ１０１へ出力する（Ｓ１０６）。コントローラ１０１は、リムーバブルＨＤＤユニット２００から証明書Ｃ［ＫＰｄ２］を取得すると、それを暗号エンジン１０３へ送信する（Ｓ１０８）。
【０１２３】
暗号エンジン１０３の制御部１３０は、リムーバブルＨＤＤユニット２００から発行された証明書Ｃ［ＫＰｄ２］を受信すると（Ｓ１１０）、それを暗号エンジン１０３に伝達し、証明書検証部１２０は、認証鍵ＫＰａで証明書を検証する（Ｓ１１２）。
【０１２４】
証明書が承認されなかった場合（Ｓ１１２のＮ）、証明書検証部１２０はエラーを制御部１３０に伝達する。エラーを伝達された制御部１３０は、検証エラー通知をコントローラ１０１に送信する（Ｓ１９０）。コントローラ１０１は、エラー通知を受信すると（Ｓ１９２）、処理を異常終了する。
【０１２５】
証明書が承認された場合（Ｓ１１２のＹ）、制御部１３０は、乱数発生部１２１にてチャレンジ鍵Ｋｃ１を生成する。そして、生成したチャレンジ鍵Ｋｃ１を第１暗号部１２２および第１復号部１２３に伝達する。第１復号部１２３では、このチャレンジ鍵Ｋｃ１を内部に保持する（Ｓ１１４）。また、第１暗号部１２２では、このチャレンジ鍵Ｋｃ１を、証明書Ｃ［ＫＰｄ２］から取り出したリムーバブルＨＤＤユニット２００の公開鍵ＫＰｄ２で暗号化し、暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を生成する。そして、生成した暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）と証明書出力部１２９から出力される自身の証明書Ｃ［ＫＰｄ１］とを結合し、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］を生成し、これをコントローラ１０１へ送信する（Ｓ１１６）。
【０１２６】
コントローラ１０１は、暗号エンジン１０３から第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］を受信すると（Ｓ１１８）、リムーバブルＨＤＤユニット２００に対して第１チャレンジ情報検証命令を発行する（Ｓ１２０）。リムーバブルＨＤＤユニット２００では、コントローラ２０１が第１チャレンジ情報検証命令を受理すると、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］の入力をコントローラ１０１に要求する（Ｓ１２２）。コントローラ１０１は、この要求に応じて第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］をリムーバブルＨＤＤユニット２００へ出力する（Ｓ１２４）。
【０１２７】
リムーバブルＨＤＤユニット２００は、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］を受理すると（Ｓ１２６）、暗号エンジン２０３では、制御部２２０が、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］から証明書Ｃ［ＫＰｄ１］を取り出し、これを証明書検証部２２３に伝達する。証明書検証部２２３は、伝達された証明書Ｃ［ＫＰｄ１］を検証鍵ＫＰａで検証し、検証結果を制御部２２０に伝達する（Ｓ１２８）。
【０１２８】
証明書が承認されなかった場合（Ｓ１２８のＮ）、証明書検証部２２３は検証エラー通知を制御部２２０へ通知し、検証エラー通知を受けた制御部２２０はこれをコントローラ２０１へ通知する。そしてコントローラ２０１は、受信した検証エラー通知を、ストレージインタフェース２０２を介してコントローラ１０１に送信する（Ｓ１９４）。コントローラ１０１は、検証エラー通知を受信すると（Ｓ１９２）、本処理を異常終了する。
【０１２９】
証明書が承認された場合（Ｓ１２８のＹ）、制御部２２０は、第１チャレンジ情報Ｅ（ＫＰｄ２，Ｋｃ１）｜｜Ｃ［ＫＰｄ１］から、公開鍵ＫＰｄ１と暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を取り出し、それぞれ第１暗号部２２５、第１復号部２２４に伝達する。第１暗号部２２５は、伝達された公開鍵ＫＰｄ１を保持する。第１復号部２２４は、伝達された暗号化チャレンジ鍵Ｅ（ＫＰｄ２，Ｋｃ１）を自身の秘密鍵Ｋｄ２で復号し、チャレンジ鍵Ｋｃ１を取り出す（Ｓ１３０）。取り出されたチャレンジ鍵Ｋｃ１は、第２暗号部２２６に伝達される。
【０１３０】
一方、コントローラ１０１は、リムーバブルＨＤＤユニット２００において第１チャレンジ情報検証命令の処理が終了すると、リムーバブルＨＤＤユニット２００に対して、第２チャレンジ情報生成命令を発行する（Ｓ１３２）。リムーバブルＨＤＤユニット２００では、コントローラ２０１が第２チャレンジ情報生成命令を受理する（Ｓ１３４）と、暗号エンジン２０３では制御部２２０の指示に従って、第１暗号部２２５が、自身が秘密裏に保持する秘密鍵Ｋｐ２と対をなす公開鍵ＫＰｐ２と、自身の識別情報ＤＩＤを連結したデータを、公開鍵ＫＰｄ１で暗号化して暗号化個別情報Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を生成し、これを第２暗号部２２６に伝達する。第２暗号部２２６は、暗号化個別情報Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を、Ｓ１３０で保持したチャレンジ鍵Ｋｃ１で暗号化して第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を生成する（Ｓ１３６）。
【０１３１】
コントローラ１０１では、リムーバブルＨＤＤユニット２００において第２チャレンジ情報生成命令の処理が終了すると、第２チャレンジ情報出力命令を発行する（Ｓ１３８）。リムーバブルＨＤＤユニット２００では、第２チャレンジ情報出力命令を受理する（Ｓ１４０）と、コントローラ２０１が、暗号エンジン２０３から第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を読み出し、コントローラ１０１へ出力する（Ｓ１４２）。コントローラ１０１は、リムーバブルＨＤＤユニット２００から第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を受信すると、これを暗号エンジン１０３に送信する（Ｓ１４４）。
【０１３２】
暗号エンジン１０３の制御部１３０は、第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を受信すると、第１復号部１２３に伝達する。第１復号部１２３は、内部に保持したチャレンジ鍵Ｋｃ１で、伝達された第２チャレンジ情報Ｅ（Ｋｃ１，Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ））を復号し、暗号化個別情報Ｅ（ＫＰｄ１，ＫＰｐ２｜｜ＤＩＤ）を取り出し、第２復号部１２４に伝達する。第２復号部１２４は、これを自身の秘密鍵Ｋｄ１で復号してストレージデバイスの公開鍵ＫＰｐ２と識別情報ＤＩＤを取り出し、公開鍵ＫＰｐ２を第２暗号部１２５と第３暗号部１２７に、識別情報ＤＩＤを制御部１３０へ伝達する（Ｓ１４６）。
【０１３３】
制御部１３０は、識別情報ＤＩＤを受け取ると、ログ記憶部１３１に記録されている識別情報ＤＩＤと比較する（Ｓ１５０）。このときログ記憶部１３１には、直前に接続していたストレージデバイスの識別情報ＤＩＤが記録されている。一致した場合（Ｓ１５０のＹ）、前回と同じストレージデバイスであると判断し、ログ記憶部１３１の記録を残したままＳ１５４へ進む。一致しない場合（Ｓ１５０のＮ）、ストレージデバイスが交換されていると判断する。このとき、ログ記憶部１３１に記録されている内容は意味をなさなくなる。そこで、ログ記憶部１３１に記録されている内容を削除し、新たにＳ１４６で取得した識別情報ＤＩＤを記録する（Ｓ１５２）。このようにして、リムーバブルＨＤＤユニット２００に対するライセンスデータＬＩＣの転送におけるリカバリーに必要な情報をログ記憶部１３１に保持する準備が整ったことになる。そして、Ｓ１５４に進む。
【０１３４】
制御部１３０は、乱数発生部１２１にてバス鍵Ｋｂ１を生成させ、保持する（Ｓ１５４）。そして、保持したバス鍵Ｋｂ１を第２暗号部１２５及び第３復号部１２６に伝達する。第２暗号部１２５では、このバス鍵Ｋｂ１を、Ｓ１４６で取得したストレージデバイスの公開鍵ＫＰｐ２で暗号化し、コネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）を生成する。そして、生成したコネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）をコントローラ１０１へ送信する（Ｓ１５６）。
【０１３５】
コントローラ１０１は、暗号エンジン１０３からコネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）を受信すると（Ｓ１５８）、リムーバブルＨＤＤユニット２００に対してコネクション情報入力命令を発行する（Ｓ１６０）。リムーバブルＨＤＤユニット２００では、コントローラ２０１がコネクション情報入力命令を受理すると、コネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）の入力をコントローラ１０１に要求する（Ｓ１６２）。コントローラ１０１は、この要求に応じてコネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）をリムーバブルＨＤＤユニット２００へ出力する（Ｓ１６４）。
【０１３６】
リムーバブルＨＤＤユニット２００は、コネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）を受理すると、暗号エンジン２０３では、第２復号部２２７が、コネクション情報Ｅ（ＫＰｐ２，Ｋｂ１）を、内部に保持する自身の秘密鍵Ｋｐ２で復号して、バス鍵Ｋｂ１を取り出し（Ｓ１６６）、これを内部に保持する（Ｓ１６８）。保持されたバス鍵Ｋｂ１は、第３暗号部２２８に伝達される。ここまでの手順において、暗号エンジン１０３と暗号エンジン２０３の間で、バス鍵Ｋｂ１が共有された。
【０１３７】
一方、コントローラ１０１は、リムーバブルＨＤＤユニット２００においてコネクション情報入力命令の処理が終了すると、通常のライセンスデータの書込転送処理（ＬＩＣライト転送処理）を行うためＳ１８０に進む。そして、ライセンスデータＬＩＣの書込を行う（Ｓ１８０）。ライセンスデータの書込転送処理（ＬＩＣライト転送処理）については、後に詳細に説明する。
【０１３８】
コントローラ１０１は、Ｓ１８０が終了すると、新たなライセンスデータＬＩＣを書き込むか否か判断する（Ｓ１８２）。新たなライセンスデータＬＩＣをリムーバブルＨＤＤユニット２００に書き込む場合（Ｓ１８２のＹ）、再びＳ１８０に戻ってライセンスデータの書込を行う。新たなライセンスデータＬＩＣの書込を行わない場合（Ｓ１８２のＮ）、処理を終了する。
【０１３９】
図２１は、図２０におけるライセンスデータの書込転送処理（ＬＩＣライト転送処理）のフローチャートである。本フローチャートに示す処理の前に、暗号エンジン１０３とリムーバブルＨＤＤユニット２００（暗号エンジン２０３）はバス鍵Ｋｂ１を共有し、暗号エンジン１０３はリムーバブルＨＤＤユニット２００の公開鍵ＫＰｐ２を保持し、かつ、暗号エンジン１０３のログ記憶部１３１にはリムーバブルＨＤＤユニット２００の識別情報ＤＩＤが記録されている。
【０１４０】
コントローラ１０１は、リムーバブルＨＤＤユニット２００に対して、セッション情報生成命令を発行する（Ｓ２００）。リムーバブルＨＤＤユニット２００では、コントローラ２０１がセッション情報生成命令を受理する（Ｓ２０２）と、暗号エンジン２０３では制御部２２０の指示に従って、乱数発生部２２１がセッション鍵Ｋｓ２を生成し、生成したセッション鍵Ｋｓ２を、第３暗号部２２８、第３復号部２２９に伝達する（Ｓ２０４）。続いて、第３暗号部２２８は、バス鍵Ｋｂ１で、伝達されたセッション鍵Ｋｓ２を暗号化してセッション情報Ｅ（Ｋｂ１，Ｋｓ２）を生成する（Ｓ２０６）。コントローラ１０１では、リムーバブルＨＤＤユニット２００においてセッション情報生成命令の処理が終了すると、セッション情報出力命令を発行する（Ｓ２０８）。リムーバブルＨＤＤユニット２００では、セッション情報出力命令を受理する（Ｓ２１０）と、コントローラ２０１が、暗号エンジン２０３からセッション情報Ｅ（Ｋｂ１，Ｋｓ２）を読み出し、コントローラ１０１へ出力する（Ｓ２１２）。
【０１４１】
コントローラ１０１は、リムーバブルＨＤＤユニット２００からセッション情報Ｅ（Ｋｂ１，Ｋｓ２）を受信すると（Ｓ２１４）、これとリムーバブルＨＤＤユニット２００のアドレスデータＡＤＲを連結して暗号エンジン１０３に送信する（Ｓ２１６）。アドレスデータＡＤＲは、後でライセンスデータＬＩＣを記録する際に指定するアドレスである。
【０１４２】
暗号エンジン１０３の制御部１３０は、アドレスデータが連結されたセッション情報Ｅ（Ｋｂ１，Ｋｓ２）｜｜ＡＤＲを受信すると、セッション情報Ｅ（Ｋｂ１，Ｋｓ２）とアドレスデータＡＤＲに分割し、セッション情報Ｅ（Ｋｂ１，Ｋｓ２）を第３復号部１２６に伝達する。第３復号部１２６は、乱数発生部１２１から伝達されたバス鍵Ｋｂ１で、このセッション情報Ｅ（Ｋｂ１，Ｋｓ２）を復号し、Ｋｓ２を取り出す（Ｓ２１８）。
【０１４３】
制御部１３０は、ライセンスデータ書込処理の失敗に備えて、ライセンスデータＬＩＣと、分離したアドレスデータＡＤＲを、ライセンス転送先であるリムーバブルＨＤＤユニット２００を特定する情報（識別情報ＤＩＤ）に関係付けてログ記憶部１３１に追記する（Ｓ２２０）。ログ記憶部１３１への記録は、電源断などの不慮の事故によってライセンスデータ書込処理が中断した様な場合も対象とした、ライセンスデータ再書込処理に利用することを目的としているため、静的に記録される。
【０１４４】
続いて、暗号エンジン１０３の第３暗号部１２７は、ライセンスデータＬＩＣをリムーバブルＨＤＤユニット２００の公開鍵ＫＰｐ２で暗号化してＥ（ＫＰｐ２，ＬＩＣ）を生成し、これを第４暗号部１２８に伝達する。第４暗号部１２８は、伝達されたＥ（ＫＰｐ２，ＬＩＣ）を、さらにリムーバブルＨＤＤユニット２００が発行したセッション鍵Ｋｓ２で暗号化して暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を生成し、これをコントローラ１０１に伝達する（Ｓ２２２）。
【０１４５】
コントローラ１０１は、暗号エンジン１０３から送信された暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を受信する（Ｓ２２４）と、リムーバブルＨＤＤユニット２００に対してライセンスデータ書込命令を発行する（Ｓ２２６）。このライセンス書込命令は、耐タンパ記憶部２０４上の記録位置を指定するアドレスデータＡＤＲを伴っている。このアドレスデータＡＤＲは、Ｓ２１６で暗号エンジン１０３に送信したものと同じ値である。ここでアドレスとは、論理アドレスを示し、耐タンパ記憶部２０４における記録位置を直接指定するものではないが、アドレスを指定して記録したデータは、同じアドレスを指定することで読み出せるように、コントローラ２０１によって管理されている。しかしながら、耐タンパ記憶部２０４における位置を示す物理アドレスであってもよい。
【０１４６】
リムーバブルＨＤＤユニット２００では、コントローラ１０１が発行したライセンス書込命令を受理すると、暗号化ライセンスデータをコントローラ１０１に要求し（Ｓ２２８）、コントローラ１０１は、この要求に応じて、暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））をリムーバブルＨＤＤユニット２００へ出力する（Ｓ２３０）。
【０１４７】
リムーバブルＨＤＤユニット２００は、暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を受理すると、これを暗号エンジン２０３内の第３復号部２２９に伝達する。第３復号部２２９は、内部に保持しているセッション鍵Ｋｓ２で暗号化ライセンスデータＥ（Ｋｓ２，Ｅ（ＫＰｐ２，ＬＩＣ））を復号し、自身の公開鍵ＫＰｐ２で暗号化されたライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を取り出す。そして、取り出された暗号化ライセンスデータＥ（ＫＰｐ２，ＬＩＣ）は第４復号部２３０に伝達される。
【０１４８】
第４復号部２３０は、伝達された暗号化ライセンスデータＥ（ＫＰｐ２，ＬＩＣ）を、公開鍵ＫＰｐ２と対の秘密鍵Ｋｐ２で復号してライセンスデータＬＩＣを取り出し（Ｓ２４４）、これをローカルバス２４０を介して制御部２２０に伝達する。
【０１４９】
制御部２２０は、ライセンスデータＬＩＣから識別情報ＬＩＤを取り出して、ログ記憶部１３１に伝達する。また、ライセンスデータＬＩＣをデータバス２１０へ出力する。コントローラ２０１は、データバス２１０に出力されたライセンスデータＬＩＣを耐タンパ記憶部２０４の指定されたアドレスＡＤＲに記憶する（Ｓ２４６）。続いて、完了通知をコントローラ１０１に出力する（Ｓ２４８）。
【０１５０】
コントローラ１０１は、リムーバブルＨＤＤユニット２００から出力された完了通知を受信すると、これを暗号エンジン１０３に出力する（Ｓ２５０）。暗号エンジン１０３では、完了通知を受信すると（Ｓ２５２）、ＬＩＤを確認し、該当するＡＤＲ｜｜ＬＩＤをログ記憶部１３１から削除し（Ｓ２５４）、本処理を終了する。
【０１５１】
以上の手順により、暗号化されたコンテンツを復号し再生するために必要なライセンスデータＬＩＣがリムーバブルＨＤＤユニット２００に記録される。暗号化コンテンツは、通常データであり、リムーバブルＨＤＤユニット２００の通常コマンドによって記録されるため、ここでは説明を省略する。
【０１５２】
なお、ライセンスデータＬＩＣと暗号化コンテンツデータの記録順序は、いずれが先であってもかまわない。さらには、暗号化コンテンツデータの記録における空き時間に、セキュアコマンドを分割して発行することで、ライセンスデータＬＩＣを記録するようにしてもよい。
【０１５３】
リムーバブルＨＤＤユニット２００からライセンス利用装置３００へライセンスデータを送信する場合にも、上記と同様の手順により、両者の暗号エンジンによる暗号通信が行われる。ライセンスデータをライセンス記録装置１００からリムーバブルＨＤＤユニット２００へ記録するとき、及び、リムーバブルＨＤＤユニット２００に記録されたライセンスデータをライセンス利用装置３００が読み出すときに、上述したような暗号通信路を用いてライセンスデータを送受信することにより、ライセンスデータの漏洩を防止し、コンテンツデータを保護することができる。
【０１５４】
図２２は、リムーバブルＨＤＤユニット２００のディレクトリ構造を示す。本実施の形態では、図３に示した第１の実施の形態におけるリムーバブルＨＤＤユニット２００のディレクトリ構造に比べて、ユーザ情報管理ディレクトリ４００の配下にライセンスファイル４３０が更に記録される。ライセンスファイル４３０は、登録データ群ファイル４２０に対して１対１に対応づけられる。ライセンスファイル４３０は、リムーバブルＨＤＤユニット２００の耐タンパ記憶部２０４に記録される。それ以外のファイルやディレクトリは、通常データ記憶部２０５に記録される。
【０１５５】
図２３は、登録情報管理ファイル４１０のデータ構造の例を示す。本実施の形態では、図４に示した第１の実施の形態における登録情報管理ファイル４１０のデータ構造に加えて、ライセンスファイル名ＬＦ１〜ＬＦＮが更に記録される。各登録データ群ファイル４２０に対して、１つのライセンスファイル４３０が対応している。機器バインド情報ＢＩｎのデータ構造、登録データ群ファイル４２０のデータ構造、登録データＤｍのデータ構造は、それぞれ、図５、図６、図７と同様である。ライセンスファイル４３０のデータ構造は、本実施の形態では、図１３に示したライセンスデータがライセンスファイル４３０に１つ記録されるものとする。
【０１５６】
図２４は、本実施の形態において登録情報を記録する手順を示すフローチャートである。登録情報受付部３０がユーザから登録情報を受け付けると（Ｓ４１０）、登録部３１は、登録データ群ファイル名の入力を受け付けて登録データ群ファイルを新規に作成し（Ｓ４１２）、１番目の登録データとして受け付けた登録情報を登録する（Ｓ４１４）。登録部３１は、更に、登録情報管理ファイル４１０に新規に作成した登録データ群ファイル名Ｆｎを追加する（Ｓ４１６）。共有管理部３２は、登録情報を他の装置でも読み出し可能として共有するか否かをユーザから受け付け（Ｓ４１８）、共有しない、すなわちこの装置にバインドする場合は（Ｓ４１８のＮ）、登録情報管理ファイル４１０の機器バインド情報ＢＩｎの機器バインドフラグＢＦに「１」を登録するとともに（Ｓ４２０）、ＲＯＭ２８から読み出した機器ＩＤをバインド機器ＩＤ（ＢＩＤ）に登録する（Ｓ４２２）。更に、共有管理部３２は、ライセンス生成部１０７に、機器にバインドされたライセンスファイル４３０を生成させる（Ｓ４２３）。具体的には、乱数生成部１６１がコンテンツ鍵Ｋｃを生成し、コンテンツ鍵暗号部１６３がＩＤ整形部１６２により整形された機器ＩＤを用いてコンテンツ鍵Ｋｃを暗号化してｂｉｎｄｅｄ  Ｋｃを生成する。ライセンスデータフォーマッタ１６４は生成されたｂｉｎｄｅｄ  Ｋｃを含むライセンスデータを生成し、機器にバインドされたライセンスファイル４３０を生成して暗号エンジン１０３に送る。
【０１５７】
登録情報を他の装置と共有する場合は（Ｓ４１８のＹ）、機器バインドフラグＢＦに「０」を登録し（Ｓ４２４）、ライセンス生成部１０７に、機器にバインドされないライセンスファイル４３０を生成させる（Ｓ４２６）。具体的には、乱数生成部１６１がコンテンツ鍵Ｋｃを生成し、ライセンスデータフォーマッタ１６４がこのコンテンツ鍵Ｋｃを含むライセンスデータを生成し、機器にバインドされないライセンスファイル４３０を生成して暗号エンジン１０３に送る。
【０１５８】
コンテンツ暗号部１０４は、ライセンス生成部１０７から転送されたコンテンツ鍵Ｋｃを用いて登録データ群ファイル４２０を暗号化する（Ｓ４２７）。暗号化された登録データ群ファイル４２０は、通常コマンドを用いてリムーバブルＨＤＤユニット２００の通常データ記憶部２０５に記録される（Ｓ４２８）。ライセンス生成部１０７により生成されたライセンスファイル４３０は、暗号エンジン１０３により、上述した暗号通信を用いてリムーバブルＨＤＤユニット２００の耐タンパ記憶部２０４に記録される（Ｓ４２９）。
【０１５９】
図２５は、登録データを表示する手順を示すフローチャートである。まず、図９に示した手順により、リムーバブルＨＤＤユニット２００に記録された登録データ群ファイル４２０のうち、ナビゲーション装置１により読み出し可能な登録データ群ファイル４２０の一覧を表示する（Ｓ４３０）。ユーザから、一覧の中から任意の登録データ群ファイル４２０の選択を受け付けると（Ｓ４３２）、登録情報読み出し部３５は、登録情報管理ファイル４１０を参照して、選択された登録データ群ファイル４２０に対応するライセンスファイル４３０のファイル名ＬＦを取得し、暗号エンジン１０３を介して、リムーバブルＨＤＤユニット２００からライセンスファイル４３０を取得する（Ｓ４３４）。ライセンス判読部１０８は、取得されたライセンスファイル４３０を判読する（Ｓ４３６）。形式解析部１７１は、「Ｂｉｎｄｉｎｇ  Ｆｌａｇ」を参照して機器バインドされているか否かを判別し、機器バインドされていれば、コンテンツ鍵復号部１７３がＩＤ整形部１７２により整形された機器ＩＤを用いて、暗号化されたコンテンツ鍵を復号し、コンテンツ復号部１１１に転送する。機器バインドされていなければ、形式解析部１７１がライセンスデータからコンテンツ鍵Ｋｃを抽出し、コンテンツ復号部１１１に転送する。
【０１６０】
選択された登録データ群ファイル４２０を、通常コマンドによりリムーバブルＨＤＤユニット２００から取得すると（Ｓ４３８）、コンテンツ復号部１１１がコンテンツ鍵Ｋｃで登録データ群ファイル４２０を復号し（Ｓ４４０）、登録データ群ファイル４２０に記録されている登録データの一覧を表示する（Ｓ４４２）。例えば、それぞれの登録データ名ＤＮＡＭＥを一覧表示してもよい。ユーザから、一覧の中から任意の登録データＤｍの選択を受け付けると（Ｓ４４４）、選択された登録データを表示する（Ｓ４４６）。
【０１６１】
図２６は、機器にバインドされた登録データ群ファイル４２０の機器バインドを解除する手順を示すフローチャートである。本実施の形態における機器バインドを解除する手順は、図１０に示した第１の実施の形態における手順とほぼ同じであるが、ａ番目の機器バインドを解除する手順（Ｓ６２）の内容が異なる。図２６は、図１０のＳ６２に代わる手順の詳細を示す。
【０１６２】
まず、暗号エンジン１０３を介して、ａ番目の登録データ群ファイル４２０に対応するライセンスファイル４３０を取得する（Ｓ４５０）。ライセンス判読部１０８は、取得したライセンスファイル４３０を判読し（Ｓ４５２）、コンテンツ鍵Ｋｃを取得する。コンテンツ復号部１１１は、リムーバブルＨＤＤユニット２００からａ番目の登録データ群ファイル４２０を取得し（Ｓ４５４）、コンテンツ鍵Ｋｃで復号する（Ｓ４５６）。共有管理部３２は、ａ番目の機器バインド情報ＢＩａの機器バインドフラグＢＦを「０」に変更する（Ｓ４５８）。
【０１６３】
つづいて、乱数生成部１６１は、新たにコンテンツ鍵Ｋｃを生成し（Ｓ４６０）、ライセンスデータフォーマッタ１６４は、生成されたコンテンツ鍵Ｋｃを含む機器にバインドされないライセンスファイル４３０を生成する（Ｓ４６２）。コンテンツ暗号部１０４は、新たに生成されたコンテンツ鍵Ｋｃでａ番目の登録データ群ファイル４２０を暗号化し（Ｓ４６４）、暗号化された登録データ群ファイル４２０をリムーバブルＨＤＤユニット２００に記録する（Ｓ４６６）。また、新たに生成されたライセンスファイル４３０は、暗号エンジン１０３を介してセキュアにリムーバブルＨＤＤユニット２００に記録される（Ｓ４６８）。
【０１６４】
図２７は、機器にバインドされた登録データ群ファイル４２０の機器バインドを解除する手順の別の例を示すフローチャートである。図２７も、図１０のＳ６２に代わる手順の詳細を示す。
【０１６５】
まず、暗号エンジン１０３を介して、ａ番目の登録データ群ファイル４２０に対応するライセンスファイル４３０を取得する（Ｓ４７０）。ライセンス判読部１０８は、取得したライセンスファイル４３０を判読し（Ｓ４７２）、コンテンツ鍵Ｋｃを取得する。共有管理部３２は、ａ番目の機器バインド情報ＢＩａの機器バインドフラグＢＦを「０」に変更する（Ｓ４７４）。ライセンスデータフォーマッタ１６４は、復号されたコンテンツ鍵Ｋｃを含む、機器にバインドされないライセンスファイル４３０を生成する（Ｓ４７６）。新たに生成されたライセンスファイル４３０は、暗号エンジン１０３を介してセキュアにリムーバブルＨＤＤユニット２００に記録される（Ｓ４７８）。
【０１６６】
図２８は、図２７に示した手順を実現するためのライセンス生成部１０７の構成を示す。本図のライセンス生成部１０７は、図１２に示したライセンス生成部１０７の構成に比べて、スイッチ１６５の入力端子が追加されている。スイッチ１６５には、乱数生成部１６１により生成されたコンテンツ鍵、コンテンツ鍵暗号部１６３により暗号化され機器にバインドされたコンテンツ鍵、ライセンス判読部１０８により復号されたコンテンツ鍵のいずれかが入力される。登録データ群ファイル４２０の機器バインドを解除する時は、ライセンス判読部１０８により復号されたコンテンツ鍵をライセンスデータフォーマッタ１６４に入力するようスイッチ１６５が制御される。
【０１６７】
図２９は、図２７に示した手順を実現するためのライセンス判読部１０８の構成を示す。本図のライセンス判読部１０８は、図１４に示したライセンス判読部１０８の構成に比べて、スイッチ１７６が追加されている。スイッチ１７６は、形式解析部１７１によりライセンスデータから抽出されたコンテンツ鍵、又はコンテンツ鍵復号部１７３により復号されたコンテンツ鍵を、コンテンツ復号部１１１に出力するか、ライセンス生成部１０７に出力するかを切り替える。登録データ群ファイル４２０の機器バインドを解除する時は、コンテンツ鍵復号部１７３により復号されたコンテンツ鍵をライセンス生成部１０７に出力するようスイッチ１７６が制御される。
【０１６８】
以上のように、リムーバブルＨＤＤユニット２００に登録情報を記録する際に、他装置でも読み出し可能として共有するか、他装置での読み出しを禁止して機器にバインドするかを選択可能とすることで、秘匿すべき情報は適切に保護しつつ、他装置との間で情報を共有することができ、可搬型の記憶装置であるリムーバブルＨＤＤユニット２００の利便性を享受することができる。
【０１６９】
なお、本実施の形態では、個人情報を保護する観点から、機器にバインドせずに他の装置による読み出しが許可される登録情報もコンテンツ鍵で暗号化する例を示したが、暗号化せずにリムーバブルＨＤＤユニット２００に記録してもよい。
【０１７０】
本実施の形態では、登録情報を機器にバインドする場合、登録データ群ファイル４２０をコンテンツ鍵Ｋｃで暗号化し、コンテンツ鍵Ｋｃを機器ＩＤで暗号化してリムーバブルＨＤＤユニット２００に記録したが、登録データ群ファイル４２０を機器ＩＤで暗号化してもよい。この場合、登録データ群ファイル４２０を記録したナビゲーション装置１であれば、自装置の機器ＩＤを用いて、暗号化された登録データ群ファイル４２０を復号することができるので、ライセンスファイル４３０をリムーバブルＨＤＤユニット２００に記録しなくてもよい。
【０１７１】
以上、本発明に係る実施の形態について説明したが、この実施の形態は例示であり、本発明はこの実施の形態に限定されるものではなく、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０１７２】
【図１】第１の実施の形態に係るナビゲーション装置の構成を示す図である。
【図２】コントローラの内部構成を示す図である。
【図３】リムーバブルＨＤＤユニットのディレクトリ構造を示す図である。
【図４】登録情報管理ファイルのデータ構造の例を示す図である。
【図５】機器バインド情報のデータ構造を示す図である。
【図６】登録データ群ファイルのデータ構造を示す図である。
【図７】登録データのデータ構造を示す図である。
【図８】登録情報を記録する手順を示すフローチャートである。
【図９】リムーバブルＨＤＤユニットに格納された登録情報の一覧を表示する手順を示すフローチャートである。
【図１０】機器にバインドされた登録情報群ファイルの機器バインドを解除する手順を示すフローチャートである。
【図１１】第２の実施の形態に係るナビゲーション装置の構成を示す図である。
【図１２】ライセンス生成部の内部構成を示す図である。
【図１３】ライセンスデータのデータ構造を示す図である。
【図１４】ライセンス判読部の内部構成を示す図である。
【図１５】リムーバブルＨＤＤユニットの内部構成を示す図である。
【図１６】ナビゲーション装置の暗号エンジンの内部構成を示す図である。
【図１７】ナビゲーション装置の暗号エンジンの内部構成を示す図である。
【図１８】リムーバブルＨＤＤユニットの暗号エンジンの内部構成を示す図である。
【図１９】ナビゲーション装置がリムーバブルＨＤＤユニットにライセンスデータを記録するの手順を示す図である。
【図２０】ナビゲーション装置がリムーバブルＨＤＤユニットにライセンスデータを記録するの手順を示す図である。
【図２１】図２０におけるライセンスデータの書込転送処理の手順を示すフローチャートである。
【図２２】リムーバブルＨＤＤユニットのディレクトリ構造を示す図である。
【図２３】登録情報管理ファイルのデータ構造の例を示す図である。
【図２４】登録情報を記録する手順を示すフローチャートである。
【図２５】登録データを表示する手順を示すフローチャートである。
【図２６】機器にバインドされた登録情報群ファイルの機器バインドを解除する手順を示すフローチャートである。
【図２７】機器にバインドされた登録情報群ファイルの機器バインドを解除する手順の別の例を示すフローチャートである。
【図２８】図２７に示した手順を実現するためのライセンス生成部の構成を示す図である。
【図２９】図２７に示した手順を実現するためのライセンス判読部の構成を示す図である。
【符号の説明】
【０１７３】
１０  ＧＰＳ受信機、１２  ジャイロスコープ、１４  車速センサ、１６  位置検出器、２０  リモコン受光部、２２  バッファメモリ、２４  表示パネル、２６  リムーバブルＨＤＤ挿入検出部、２８  ＲＯＭ、３０  登録情報受付部、３１  登録部、３２  共有管理部、３３  読み出し要求受付部、３４  判定部、３５  登録情報読み出し部、３６  目的地設定部、３７  経路算出部、３８  地図データ処理部、１０１  コントローラ、１０２  ストレージインタフェース、１０３  暗号エンジン、１０４  コンテンツ暗号部、１０７  ライセンス生成部、１０８  ライセンス判読部、１１１  コンテンツ復号部、１１９  暗号／復号モジュール、１６１  乱数生成部、１６２  ＩＤ整形部、１６３  コンテンツ鍵暗号部、１６４  ライセンスデータフォーマッタ、１７１  形式解析部、１７２  ＩＤ整形部、１７３  コンテンツ鍵復号部、２００  リムーバブルＨＤＤユニット、２０１  コントローラ、２０２  ストレージインタフェース、２０３  暗号エンジン、２０４  耐タンパ記憶部、２０５  通常データ記憶部。
【図１】
2007323367.tif 000003
【図２】
2007323367.tif 000004
【図３】
2007323367.tif 000005
【図４】
2007323367.tif 000006
【図５】
2007323367.tif 000007
【図６】
2007323367.tif 000008
【図７】
2007323367.tif 000009
【図８】
2007323367.tif 000010
【図９】
2007323367.tif 000011
【図１０】
2007323367.tif 000012
【図１１】
2007323367.tif 000013
【図１２】
2007323367.tif 000014
【図１３】
2007323367.tif 000015
【図１４】
2007323367.tif 000016
【図１５】
2007323367.tif 000017
【図１６】
2007323367.tif 000018
【図１７】
2007323367.tif 000019
【図１８】
2007323367.tif 000020
【図１９】
2007323367.tif 000021
【図２０】
2007323367.tif 000022
【図２１】
2007323367.tif 000023
【図２２】
2007323367.tif 000024
【図２３】
2007323367.tif 000025
【図２４】
2007323367.tif 000026
【図２５】
2007323367.tif 000027
【図２６】
2007323367.tif 000028
【図２７】
2007323367.tif 000029
【図２８】
2007323367.tif 000030
【図２９】
2007323367.tif 000031